{"version":3,"file":"vendor.js","mappings":"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AAII,MAAM,GAAG,EAAE;MAEf,IAAItzF,IAAqC,EAAE;QACzCszF,MAAM,GAAGL,2DAAa,CAAC,8EAA8E,CAAC;MACxG;MAEAD,wDAAU,CAACM,MAAM,CAAC;IACpB;IAEA,IAAI1lF,MAAM,GAAGmlF,kEAAkB,CAACK,QAAQ,CAACG,UAAU,CAAC,CAAC,EAAE3nF,MAAM,CAACpJ,MAAM,CAAC;IACrE,OAAO,CAAC;MACNqpE,UAAU,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC;MACzDrjF,IAAI,EAAEolB,MAAM,CAAC4lF;IACf,CAAC,EAAE;MACDhrG,IAAI,EAAEolB,MAAM,CAAC6lF;IACf,CAAC,CAAC;EACJ;AACF,CAAC;;;;;;;;;;;;;;;;;;;ACpED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACoD;AACT;AACI;AACU;AAClD,SAAS7F,OAAOA,CAACxb,SAAS,EAAE;EACjCA,SAAS,CAAC0b,mBAAmB,CAACkB,yDAAkB,CAAC;EACjD5c,SAAS,CAACyb,iBAAiB,CAACyB,uDAAW,CAAC;EACxCld,SAAS,CAAC2b,cAAc,CAACwC,yDAAa,CAAC;EACvCne,SAAS,CAACshB,iBAAiB,CAACP,kEAAgB,CAAC;AAC/C;;;;;;;;;;;;;;;;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACqD;AACW;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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A;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACmD;AACS;AACf;AACU;AACA;AAChD,SAASvL,OAAOA,CAACxb,SAAS,EAAE;EACjCA,SAAS,CAACyb,iBAAiB,CAACwH,2DAAe,CAAC;EAC5CjjB,SAAS,CAAC0b,mBAAmB,CAAC8G,6DAAsB,CAAC;EACrDxiB,SAAS,CAACwnB,oBAAoB,CAACD,wDAAY,CAAC;EAC5CvnB,SAAS,CAACynB,cAAc,CAACV,6DAAiB,CAAC;EAC3C/mB,SAAS,CAAC2b,cAAc,CAAC4I,6DAAiB,CAAC;AAC7C;;;;;;;;;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACmD;AACpC,SAASmD,uBAAuBA,CAAChW,MAAM,EAAE;EACtD,IAAI,CAACA,MAAM,IAAI,CAACwC,6DAAc,CAACxC,MAAM,CAACxT,MAAM,CAAC,EAAE;IAC7C;EACF,CAAC,CAAC;;EAGFgW,0DAAW,CAACxC,MAAM,CAACxT,MAAM,EAAE,UAAUypB,UAAU,EAAE;IAC/C,IAAIzT,8DAAe,CAACyT,UAAU,CAAC,IAAIA,UAAU,CAACvoG,IAAI,KAAK,GAAG,EAAE;MAC1DuoG,UAAU,CAACvoG,IAAI,GAAG,aAAa;IACjC;EACF,CAAC,CAAC;AACJ;;;;;;;;;;;;;;;;;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACkC;AAC2B;AACb;AACA,CAAC;AACjD;;AAEO,IAAIwoG,i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DAAa,CAAC;MAC1B/sF,KAAK,EAAE;QACL2P,KAAK,EAAEA,KAAK;QACZE,MAAM,EAAEA,MAAM;QACdhe,CAAC,EAAEA,CAAC;QACJ/F,CAAC,EAAEA,CAAC;QACJ2nG,KAAK,EAAE08B,OAAO,CAAClE;MACjB,CAAC;MACD1gD,MAAM,EAAE;IACV,CAAC,CAAC;IACF,IAAI,CAACqL,KAAK,CAACltF,GAAG,CAACknI,GAAG,CAAC;EACrB,CAAC;EAEDhC,WAAW,CAAC52H,IAAI,GAAG,SAAS;EAC5B,OAAO42H,WAAW;AACpB,CAAC,CAAClyC,sDAAS,CAAC;AAEZ,iEAAekyC,WAAW;;;;;;;;;;;;;;;;;AC5V1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC2C;AACS;AAC7C,SAASx6B,OAAOA,CAACxb,SAAS,EAAE;EACjCA,SAAS,CAACyb,iBAAiB,CAACu6B,uDAAW,CAAC;EACxCh2C,SAAS,CAAC0b,mBAAmB,CAACy5B,yDAAkB,CAAC;AACnD;;;;;;;;;;;;;;;;;;;;;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACkC;AAClC;AACA;AACA;;AAEiD;AACpB;AACsB;AACC;AACD;AACI;AAEvD,IAAI+C,UAAU,GACd;AACA,UAAUh3C,MAAM,EAAE;EAChBL,gDAAS,CAACq3C,UAAU,EAAEh3C,MAAM,CAAC;EAE7B,SAASg3C,UAAUA,CAACC,QAAQ,EAAE3/C,GAAG,EAAE4/C,WAAW,EAAE;IAC9C,IAAIx+H,KAAK,GAAGsnF,MAAM,CAACr1F,IAAI,CA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;;;;;;;;;;;;AChVzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACyC;AACS;AACL;AACA;AACtC,SAASr4D,OAAOA,CAACxb,SAAS,EAAE;EACjCA,SAAS,CAACyb,iBAAiB,CAACo4D,sDAAU,CAAC;EACvC7zE,SAAS,CAAC0b,mBAAmB,CAAC82D,wDAAiB,CAAC;EAChDxyE,SAAS,CAAC2b,cAAc,CAACu5D,wDAAY,CAAC;EACtCl1E,SAAS,CAACynB,cAAc,CAAC0tD,wDAAY,CAAC;EACtCn1E,SAAS,CAACoc,cAAc,CAAC;IACvBh9F,IAAI,EAAE,UAAU;IAChB4xF,KAAK,EAAE,UAAU;IACjB;IACA7T,MAAM,EAAE;EACV,CAAC,EAAE,UAAUphF,OAAO,EAAE6uE,OAAO,EAAE;IAC7BA,OAAO,CAACyxB,aAAa,CAAC;MACpBC,QAAQ,EAAE,QAAQ;MAClB84D,OAAO,EAAE,QAAQ;MACjB74D,KAAK,EAAExgG;IACT,CAAC,EAAE,UAAUs7E,WAAW,EAAE;MACxBA,WAAW,CAACw7E,eAAe,CAAC92J,OAAO,CAACyuE,SAAS,EAAE,CAACzuE,OAAO,CAACg3J,MAAM,EAAEh3J,OAAO,CAACi3J,MAAM,CAAC,CAAC;IAClF,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ;;;;;;;;;;;;;;;;;;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC+C;AACI;AACH;AACjC,SAASkC,YAAYA,CAACtqF,OAAO,EAAErhD,GAAG,EAAE;EACjDqhD,OAAO,CAACi0B,gBAAgB,CAAC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AAC;AAEZ,iEAAei4E,YAAY;;;;;;;;;;;;;;;;;;;;;;AC5O3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC6C;AACS;AACL;AACA;AACM;AACN;AACW;AACrD,SAASvgE,OAAOA,CAACxb,SAAS,EAAE;EACjCA,SAAS,CAACyb,iBAAiB,CAACsgE,wDAAY,CAAC;EACzC/7E,SAAS,CAAC0b,mBAAmB,CAACk/D,0DAAmB,CAAC;EAClD56E,SAAS,CAAC2b,cAAc,CAACI,+DAAK,CAACghE,0DAAc,EAAE,UAAU,CAAC,CAAC;EAC3D/8E,SAAS,CAACic,iBAAiB,CAACF,+DAAK,CAAC8f,gEAAU,EAAE,UAAU,CAAC,CAAC;EAC1D77B,SAAS,CAACynB,cAAc,CAACu1D,0DAAc,CAAC;EACxCC,yEAAqB,CAACj9E,SAAS,CAAC;AAClC;;;;;;;;;;;;;;;;;;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACkD;AACM;AACoB;AACrE,IAAI67E,mBAAmB,GAAG,oBAAoB;AACrD,IAAIsB,gBAAgB,GAAG,mBAAmB;AAC1C,IAAIC,kBAAkB,GAAG,qBAAqB;AACvC,SAASH,qBAAqBA,CAACj9E,SAAS,EAAE;EAC/CA,SAAS,CAACoc,cAAc,CAAC;IACvBh9F,IAAI,EAAEy8J,mBAAmB;IACzB1+E,MAAM,EAAE;EACV,CAAC,EAAE,UAAUphF,OAAO,EAAE6uE,OAAO,EAAE;IAC7BA,OAAO,CAACyxB,aAAa,CAAC;MACpBC,QAAQ,EAAE,QAAQ;MAClB84D,OAAO,EAAE,U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wBAAwB,CAAC36H,KAAK,EAAEuvC,MAAM,EAAEkX,GAAG,EAAE2/B,MAAM,EAAEw0C,QAAQ,CAAC;MACzE,CAAC,CAAC;MACFjlH,KAAK,CAACltF,GAAG,CAAC2yM,QAAQ,CAAC;IACrB;EACF,CAAC;EAEDhE,YAAY,CAACrgM,IAAI,GAAG,UAAU;EAC9B,OAAOqgM,YAAY;AACrB,CAAC,CAACnb,0DAAa,CAAC;AAEhB,iEAAemb,YAAY;;;;;;;;;;;;;;;;;;ACld3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACkE;AACrB;AACW;AACjD,SAASjkG,OAAOA,CAACxb,SAAS,EAAE;EACjCA,SAAS,CAACq2G,sBAAsB,CAACqN,wEAAa,CAAC;EAC/C1jH,SAAS,CAACs2G,qBAAqB,CAACmJ,wDAAY,CAAC;EAC7Cz/G,SAAS,CAACwyC,wBAAwB,CAAC,UAAU,EAAEmxE,mEAAQ,CAAC;AAC1D;;;;;;;;;;;;;;;;;;;;;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACmD;AACA;AACF;AACmB;AACS;AACb;AACT;AACvD,IAAIj2H,IAAI,GAAGwmB,0DAAW;AACtB,IAAIsN,GAAG,GAAG8/D,gDAAc;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI2iC,SAAS,GACb;AACA,YAAY;EACV,SAASA,SAASA,CAACpzF,OAAO,EAAEshD,SAAS,EAAE+xC,aAAa,EAAEt5H,OAAO,EAAE;IAC7D,IAAI,CAACu5H,QAAQ,GAAGtzF,OAAO;IACvB,IAAI,CAACuzF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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACuD;AACC;AACxD,IAAIC,SAAS,GAAG,KAAK;AACN,SAASC,aAAaA,CAACj4H,SAAS,EAAE;EAC/C,IAAIg4H,SAAS,EAAE;IACb;EACF;EAEAA,SAAS,GAAG,IAAI;EAChBh4H,SAAS,CAACic,iBAAiB,CAACjc,SAAS,CAAC4b,QAAQ,CAACM,SAAS,CAACg8G,MAAM,EAAEnC,6DAAiB,CAAC;EACnFF,8DAAqB,CAAC71H,SAAS,CAAC;EAChCA,SAAS,CAACm4H,wBAAwB,CAAC,UAAU,EAAE,YAAY;IACzD;IACA,OAAO,QAAQ;EACjB,CAAC,CAAC;AACJ;;;;;;;;;;;;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACmD;AACF;AACS;AACX;AACxC,SAAS38G,OAAOA,CAACxb,SAAS,EAAE;EACjCi4H,6DAAa,CAACj4H,SAAS,CAAC;EACxBA,SAAS,CAACq2G,sBAAsB,CAACwU,2DAAe,CAAC;EACjD7qH,SAAS,CAACs2G,qBAAqB,CAAC8U,0DAAc,CAAC;EAC/CgN,uEAA4B,CAACp4H,SAAS,CAAC;AACzC;;;;;;;;;;;;;;;;;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACmD;AACF;AACF;AACxC,SAASwb,OAAOA,CAACxb,SAAS,EAAE;EACjCA,SAAS,CAACq2G,sBAAsB,CAACgiB,2DAAe,CAAC;EACjDr4H,SAAS,CAACs2G,qBAAqB,CAACgiB,0DAAc,CAAC;EAC/CL,6DAAa,CAACj4H,SAAS,CAAC;AAC1B;;;;;;;;;;;;;;;;;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACmD;AACF;AACF;AACxC,SAASwb,OAAOA,CAACxb,SAAS,EAAE;EACjCA,SAAS,CAACq2G,sBAAsB,CAACwW,2DAAe,CAAC;EACjD7sH,SAAS,CAACs2G,qBAAqB,CAACgY,0DAAc,CAAC;EAC/C2J,6DAAa,CAACj4H,SAAS,CAAC;AAC1B;;;;;;;;;;;;;;;;;;;;;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;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;AACsE;AACf;AACP;AACsB;AACV;AAC5D,IAAIppE,KAAK,GAAGuzD,yDAAS,CAAC,CAAC;AAChB,SAASkhI,2BAA2BA,CAAC9hL,GAAG,EAAE26K,aAAa,EAAEqU,QAAQ,EAAE;EACxE3hM,KAAK,CAAC2S,GAAG,CAAC,CAACivL,iBAAiB,CAAC9qI,IAAI,CAAC,UAAU+qI,cAAc,EAAE;IAC1D,IAAIC,MAAM,GAAGD,cAAc,CAACE,eAAe,CAAC5rN,GAAG,CAACm3M,aAAa,CAACl4D,GAAG,CAAC;IAElE,IAAI0sE,MAAM,EAAE;MACVA,MAAM,CAACH,QAAQ,GAAGA,QAAQ;IAC5B;EACF,CAAC,CAAC;AACJ;AACO,SAAS9M,6BAA6BA,CAACliL,GAAG,EAAE26K,aAAa,EAAE;EAChE,IAAIsU,iBAAiB,GAAG5hM,KAAK,CAAC2S,GAAG,CAAC,CAACivL,iBAAiB;EACpD,IAAII,cAAc,GAAGJ,iBAAiB,CAAC7mN,IAAI,CAAC,CAAC;EAE7C,KAAK,IAAInG,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGotN,cAAc,CAAC3sN,MAAM,EAAET,CAAC,EAAE,EAAE;IAC9C,IAAIumM,WAAW,GAAG6mB,cAAc,CAACptN,CAAC,CAAC;IACnC,IAAIitN,cAAc,GAAGD,iBAAiB,CAACzrN,GAAG,CAACglM,WAAW,CAAC;IACvD,IAAI4mB,eAAe,GAAGF,cAAc,CAACE,eAAe;IAEpD,IAAIA,eAAe,EAAE;MACnB,IAAIE,KAAK,GAAG3U,aAAa,CAACl4D,GAAG;MAC7B,IAAI0sE,MAAM,GAAGC,eAAe,CAAC5rN,GAAG,CAAC8rN,KAAK,CAAC;MAEvC,IAAIH,MAAM,EAAE;QACVC,eAAe,CAACG,SAAS,CAACD,KAAK,CAAC;QAEhC,IAAI,CAACF,eAAe,CAAChnN,IAAI,CAAC,CAAC,CAAC1F,MAAM,EAAE;UAClC8sN,qBAAqB,CAACP,iBAAiB,EAAEC,cAAc,CAAC;QAC1D;MACF;IACF;EACF;AACF;AAEA,SAASM,qBAAqBA,CAACP,iBAAiB,EAAEC,cAAc,EAAE;EAChE,IAAIA,cAAc,EAAE;IAClBD,iBAAiB,CAACM,SAAS,CAACL,cAAc,CAAC/lI,KAAK,CAACs5D,GAAG,CAAC;IACrD,IAAIniB,UAAU,GAAG4uF,cAAc,CAAC5uF,UAAU;IAC1CA,UAAU,IAAIA,UAAU,CAACp+B,OAAO,CAAC,CAAC;EACpC;AACF;AAEA,SAASutH,oBAAoBA,CAACzvL,GAAG,EAAE29J,aAAa,EAAE;EAChD;EACA,IAAIuxB,cAAc,GAAG;IACnB/lI,KAAK,EAAEw0G,aAAa;IACpB+xB,aAAa,EAAEl9G,+DAAK,CAACk9G,aAAa,EAAE/xB,aAAa,CAAC;IAClD97F,cAAc,EAAE2Q,+DAAK,CAAC3Q,cAAc,EAAE7hE,GAAG,CAAC;IAC1CovL,eAAe,EAAE,IAAI;IACrB9uF,UAAU,EAAE;EACd,CAAC,CAAC,CAAC;EACH;;EAEA,IAAIA,UAAU,GAAG4uF,cAAc,CAAC5uF,UAAU,GAAG,IAAIlC,2EAAc,CAACp+F,GAAG,CAACggE,KAAK,CAAC,CAAC,CAAC;EAC5E7b,8DAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,UAAUwrI,SAAS,EAAE;IACvDrvF,UAAU,CAACrgC,EAAE,CAAC0vH,SAAS,EAAE,UAAUloH,KAAK,EAAE;MACxC,IAAIrZ,KAAK,GAAG,EAAE;MACd8gI,cAAc,CAACE,eAAe,CAACjrI,IAAI,CAAC,UAAUgrI,MAAM,EAAE;QACpD;QACA;QACA,IAAI,CAAC1nH,KAAK,CAACmoH,mBAAmB,CAACT,MAAM,CAAChmI,KAAK,CAACgf,MAAM,CAAC,EAAE;UACnD;QACF;QAEA,IAAIr5F,MAAM,GAAG,CAACqgN,MAAM,CAACH,QAAQ,IAAI,CAAC,CAAC,EAAEW,SAAS,CAAC;QAC/C,IAAIpjF,KAAK,GAAGz9H,MAAM,IAAIA,MAAM,CAACqgN,MAAM,CAACU,mBAAmB,EAAEX,cAAc,CAAC/lI,KAAK,CAAC4pB,QAAQ,EAAEm8G,cAAc,CAAC5uF,UAAU,EAAE74B,KAAK,CAAC;QACzH,CAAC0nH,MAAM,CAAChmI,KAAK,CAAC3lF,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI+oI,KAAK,IAAIn+C,KAAK,CAAC5oF,IAAI,CAAC;UACzD0mN,UAAU,EAAEiD,MAAM,CAAChmI,KAAK,CAACpjF,EAAE;UAC3B2/E,KAAK,EAAE6mD,KAAK,CAAC,CAAC,CAAC;UACf96G,GAAG,EAAE86G,KAAK,CAAC,CAAC;QACd,CAAC,CAAC;MACJ,CAAC,CAAC;MACFn+C,KAAK,CAAC1rF,MAAM,IAAIwsN,cAAc,CAACrtH,cAAc,CAACzT,KAAK,CAAC;IACtD,CAAC,CAAC;EACJ,CAAC,CAAC;EACF,OAAO8gI,cAAc;AACvB;AACA;AACA;AACA;;AAGA,SAASrtH,cAAcA,CAAC7hE,GAAG,EAAEouD,KAAK,EAAE;EAClC,IAAI,CAACpuD,GAAG,CAAC21K,UAAU,CAAC,CAAC,EAAE;IACrB31K,GAAG,CAAC6hE,cAAc,CAAC;MACjBhsF,IAAI,EAAE,UAAU;MAChB2rE,SAAS,EAAE;QACTK,MAAM,EAAE,UAAU;QAClBD,QAAQ,EAAE;MACZ,CAAC;MACDwM,KAAK,EAAEA;IACT,CAAC,CAAC;EACJ;AACF;AAEA,SAASshI,aAAaA,CAAC/xB,aAAa,EAAE57L,CAAC,EAAE2N,CAAC,EAAE/F,CAAC,EAAE;EAC7C,OAAOg0L,aAAa,CAAC7gG,gBAAgB,CAACklE,YAAY,CAAC,CAACtyJ,CAAC,EAAE/F,CAAC,CAAC,CAAC;AAC5D;AACA;AACA;AACA;;AAGA,SAASmmN,qBAAqBA,CAACV,eAAe,EAAE;EAC9C,IAAIW,WAAW,CAAC,CAAC;EACjB;;EAEA,IAAI1gN,MAAM,GAAG,OAAO;EACpB,IAAI2gN,YAAY,GAAG;IACjB,WAAW,EAAE,CAAC;IACd,WAAW,EAAE,CAAC;IACd,YAAY,EAAE,CAAC;IACf,gBAAgB,EAAE,CAAC;EACrB,CAAC;EACD,IAAIrO,uBAAuB,GAAG,IAAI;EAClCyN,eAAe,CAACjrI,IAAI,CAAC,UAAU8rI,YAAY,EAAE;IAC3C,IAAItV,aAAa,GAAGsV,YAAY,CAAC9mI,KAAK;IACtC,IAAI+mI,OAAO,GAAGvV,aAAa,CAACn3M,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,KAAK,GAAGm3M,aAAa,CAACn3M,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI;IAE/G,IAAIwsN,YAAY,CAAC3gN,MAAM,GAAG6gN,OAAO,CAAC,GAAGF,YAAY,CAAC3gN,MAAM,GAAG0gN,WAAW,CAAC,EAAE;MACvEA,WAAW,GAAGG,OAAO;IACvB,CAAC,CAAC;IACF;;IAGAvO,uBAAuB,GAAGA,uBAAuB,IAAIhH,aAAa,CAACn3M,GAAG,CAAC,yBAAyB,EAAE,IAAI,CAAC;EACzG,CAAC,CAAC;EACF,OAAO;IACLusN,WAAW,EAAEA,WAAW;IACxBh5H,GAAG,EAAE;MACH;MACA;MACA;MACAyqH,gBAAgB,EAAE,IAAI;MACtBC,eAAe,EAAE,IAAI;MACrBC,gBAAgB,EAAE,IAAI;MACtBC,uBAAuB,EAAE,CAAC,CAACA;IAC7B;EACF,CAAC;AACH;AAEO,SAASkN,4BAA4BA,CAACp4H,SAAS,EAAE;EACtDA,SAAS,CAACic,iBAAiB,CAACjc,SAAS,CAAC4b,QAAQ,CAACM,SAAS,CAACg8G,MAAM,EAAE,UAAUttI,OAAO,EAAErhD,GAAG,EAAE;IACvF,IAAImwL,QAAQ,GAAG9iM,KAAK,CAAC2S,GAAG,CAAC;IACzB,IAAIivL,iBAAiB,GAAGkB,QAAQ,CAAClB,iBAAiB,KAAKkB,QAAQ,CAAClB,iBAAiB,GAAGp/H,uEAAa,CAAC,CAAC,CAAC;IACpGo/H,iBAAiB,CAAC9qI,IAAI,CAAC,UAAU+qI,cAAc,EAAE;MAC/C;MACA;MACAA,cAAc,CAACE,eAAe,GAAG,IAAI;IACvC,CAAC,CAAC;IACF/tI,OAAO,CAACyxB,aAAa,CAAC;MACpBC,QAAQ,EAAE,UAAU;MACpB84D,OAAO,EAAE;IACX,CAAC,EAAE,UAAU8uC,aAAa,EAAE;MAC1B,IAAIyV,mBAAmB,GAAGlM,yEAA6B,CAACvJ,aAAa,CAAC;MACtEx2H,8DAAI,CAACisI,mBAAmB,CAAChE,QAAQ,EAAE,UAAUiE,cAAc,EAAE;QAC3D,IAAIrC,WAAW,GAAGqC,cAAc,CAAClnI,KAAK,CAACs5D,GAAG;QAC1C,IAAIysE,cAAc,GAAGD,iBAAiB,CAACzrN,GAAG,CAACwqN,WAAW,CAAC,IAAIiB,iBAAiB,CAACxrN,GAAG,CAACuqN,WAAW,EAAEyB,oBAAoB,CAACzvL,GAAG,EAAEqwL,cAAc,CAAClnI,KAAK,CAAC,CAAC;QAC9I,IAAIimI,eAAe,GAAGF,cAAc,CAACE,eAAe,KAAKF,cAAc,CAACE,eAAe,GAAGv/H,uEAAa,CAAC,CAAC,CAAC,CAAC,CAAC;;QAE5Gu/H,eAAe,CAAC3rN,GAAG,CAACk3M,aAAa,CAACl4D,GAAG,EAAE;UACrCotE,mBAAmB,EAAEQ,cAAc;UACnClnI,KAAK,EAAEwxH,aAAa;UACpBqU,QAAQ,EAAE;QACZ,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC,CAAC;IACJ;;IAEAC,iBAAiB,CAAC9qI,IAAI,CAAC,UAAU+qI,cAAc,EAAE;MAC/C,IAAI5uF,UAAU,GAAG4uF,cAAc,CAAC5uF,UAAU;MAC1C,IAAIgwF,WAAW;MACf,IAAIlB,eAAe,GAAGF,cAAc,CAACE,eAAe;MAEpD,IAAIA,eAAe,EAAE;QACnB,IAAImB,UAAU,GAAGnB,eAAe,CAAChnN,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAE1C,IAAImoN,UAAU,IAAI,IAAI,EAAE;UACtBD,WAAW,GAAGlB,eAAe,CAAC5rN,GAAG,CAAC+sN,UAAU,CAAC;QAC/C;MACF;MAEA,IAAI,CAACD,WAAW,EAAE;QAChBd,qBAAqB,CAACP,iBAAiB,EAAEC,cAAc,CAAC;QACxD;MACF;MAEA,IAAIsB,gBAAgB,GAAGV,qBAAqB,CAACV,eAAe,CAAC;MAC7D9uF,UAAU,CAACM,MAAM,CAAC4vF,gBAAgB,CAACT,WAAW,EAAES,gBAAgB,CAACz5H,GAAG,CAAC;MACrEupC,UAAU,CAACE,iBAAiB,CAAC0uF,cAAc,CAACQ,aAAa,CAAC;MAC1D3tB,6DAA2B,CAACmtB,cAAc,EAAE,gBAAgB,EAAEoB,WAAW,CAACnnI,KAAK,CAAC3lF,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,SAAS,CAAC;IACnH,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ;;;;;;;;;;;;;;;;;;;;;ACrPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEsD;AACF;AACU;AACkC;AAEhG,IAAIotN,YAAY,GAChB;AACA,UAAUj5H,MAAM,EAAE;EAChBL,gDAAS,CAACs5H,YAAY,EAAEj5H,MAAM,CAAC;EAE/B,SAASi5H,YAAYA,CAAA,EAAG;IACtB,IAAIvgN,KAAK,GAAGsnF,MAAM,KAAK,IAAI,IAAIA,MAAM,CAAC7yF,KAAK,CAAC,IAAI,EAAE0G,SAAS,CAAC,IAAI,IAAI;IAEpE6E,KAAK,CAACwF,IAAI,GAAG,SAAS;IACtB,OAAOxF,KAAK;EACd;EAEAugN,YAAY,CAACxuN,SAAS,CAAC8pH,IAAI,GAAG,UAAU/jB,MAAM,EAAEthB,WAAW,EAAExF,OAAO,EAAE;IACpEsW,MAAM,CAACv1F,SAAS,CAAC8pH,IAAI,CAAC5pH,IAAI,CAAC,IAAI,EAAE6lG,MAAM,EAAEthB,WAAW,EAAExF,OAAO,CAAC;IAE9D,IAAI,CAACwvI,cAAc,GAAG,IAAIF,wEAAa,CAAC,IAAI,CAAC;IAC7CD,0FAA2B,CAAC,IAAI,CAAC;EACnC,CAAC;EAEDE,YAAY,CAACxuN,SAAS,CAACg5H,WAAW,GAAG,UAAUk1E,SAAS,EAAEjvH,OAAO,EAAE;IACjEsW,MAAM,CAACv1F,SAAS,CAACg5H,WAAW,CAAC94H,IAAI,CAAC,IAAI,EAAEguM,SAAS,EAAEjvH,OAAO,CAAC;IAE3DqvI,0FAA2B,CAAC,IAAI,CAAC;EACnC,CAAC;EAEDE,YAAY,CAACxuN,SAAS,CAAC08G,aAAa,GAAG,YAAY;IACjD,IAAI,CAAC+xG,cAAc,CAACvoI,KAAK,CAAC,CAAC;EAC7B,CAAC;EAEDsoI,YAAY,CAACxuN,SAAS,CAACo+I,gBAAgB,GAAG,YAAY;IACpD,OAAO,IAAI,CAACqwE,cAAc;EAC5B,CAAC;EAEDD,YAAY,CAAC/6M,IAAI,GAAG,SAAS;EAC7B+6M,YAAY,CAACp4H,aAAa,GAAG;IAC3Bs4H,cAAc,EAAEL,mEAAuBA;EACzC,CAAC;EACD,OAAOG,YAAY;AACrB,CAAC,CAAC5vB,2DAAc,CAAC;AAEO;AAExB,IAAI+vB,WAAW,GACf;AACA,UAAUp5H,MAAM,EAAE;EAChBL,gDAAS,CAACy5H,WAAW,EAAEp5H,MAAM,CAAC;EAE9B,SAASo5H,WAAWA,CAAA,EAAG;IACrB,IAAI1gN,KAAK,GAAGsnF,MAAM,KAAK,IAAI,IAAIA,MAAM,CAAC7yF,KAAK,CAAC,IAAI,EAAE0G,SAAS,CAAC,IAAI,IAAI;IAEpE6E,KAAK,CAACwF,IAAI,GAAG,SAAS;IACtB,OAAOxF,KAAK;EACd;EAEA0gN,WAAW,CAACl7M,IAAI,GAAG,SAAS;EAC5B,OAAOk7M,WAAW;AACpB,CAAC,CAACh2B,0DAAa,CAAC;AAET,SAAS9oF,OAAOA,CAACxb,SAAS,EAAE;EACjCA,SAAS,CAACq2G,sBAAsB,CAAC8jB,YAAY,CAAC;EAC9Cn6H,SAAS,CAACs2G,qBAAqB,CAACgkB,WAAW,CAAC;AAC9C;;;;;;;;;;;;;;;;;;;;ACtHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACkC;AACS;AACS;AACC;AACK;AAE1D,IAAIE,OAAO,GACX;AACA,UAAUt5H,MAAM,EAAE;EAChBL,gDAAS,CAAC25H,OAAO,EAAEt5H,MAAM,CAAC;EAE1B,SAASs5H,OAAOA,CAAA,EAAG;IACjB,IAAI5gN,KAAK,GAAGsnF,MAAM,KAAK,IAAI,IAAIA,MAAM,CAAC7yF,KAAK,CAAC,IAAI,EAAE0G,SAAS,CAAC,IAAI,IAAI;IAEpE6E,KAAK,CAACwF,IAAI,GAAGo7M,OAAO,CAACp7M,IAAI;IACzBxF,KAAK,CAAC6gN,gBAAgB,GAAG,IAAI;IAC7B,OAAO7gN,KAAK;EACd;EAEA4gN,OAAO,CAAC7uN,SAAS,CAAC8pH,IAAI,GAAG,UAAU7qC,OAAO,EAAErhD,GAAG,EAAE;IAC/C,IAAI,CAACqiK,IAAI,GAAGriK,GAAG;EACjB,CAAC;EAEDixL,OAAO,CAAC7uN,SAAS,CAACw5F,MAAM,GAAG,UAAUu1H,QAAQ,EAAE9vI,OAAO,EAAErhD,GAAG,EAAExtB,OAAO,EAAE;IACpE,IAAI,CAACqpF,MAAM,GAAGs1H,QAAQ;IAEtB,IAAI,CAACA,QAAQ,CAAC3tN,GAAG,CAAC,MAAM,CAAC,EAAE;MACzB,IAAI,CAACs4J,QAAQ,IAAI,IAAI,CAACA,QAAQ,CAACnsJ,MAAM,CAAC,CAAC;MACvC,IAAI,CAACmsJ,QAAQ,GAAG,IAAI;MACpB;IACF;IAEA,IAAI,CAAC,IAAI,CAACA,QAAQ,EAAE;MAClB,IAAI,CAACA,QAAQ,GAAG,IAAIJ,0DAAO,CAAC17H,GAAG,CAAC;IAClC;IAEA,IAAIg8H,OAAO,GAAG,IAAI,CAACF,QAAQ;IAC3BE,OAAO,CAACC,IAAI,CAACk1D,QAAQ,EAAE9vI,OAAO,EAAErhD,GAAG,EAAE,IAAI,EAAExtB,OAAO,CAAC;IACnDwpJ,OAAO,CAACvnE,KAAK,CAACwL,EAAE,CAAC,OAAO,EAAE,IAAI,CAACmxH,kBAAkB,EAAE,IAAI,CAAC;IACxDp1D,OAAO,CAACvnE,KAAK,CAACrL,MAAM,GAAG+nI,QAAQ,CAAC3tN,GAAG,CAAC,QAAQ,CAAC;IAC7C,IAAI,CAACixF,KAAK,CAACltF,GAAG,CAACy0J,OAAO,CAACvnE,KAAK,CAAC;IAC7B,IAAI,CAAC48H,kBAAkB,CAACF,QAAQ,EAAE9vI,OAAO,EAAErhD,GAAG,CAAC;EACjD,CAAC;EAEDixL,OAAO,CAAC7uN,SAAS,CAACgvN,kBAAkB,GAAG,UAAUrvN,CAAC,EAAE;IAClD,IAAIysJ,SAAS;IACbwiE,mEAAmB,CAACjvN,CAAC,CAACie,MAAM,EAAE,UAAU4hI,OAAO,EAAE;MAC/C,OAAO,CAAC4M,SAAS,GAAG30D,8DAAS,CAAC+nD,OAAO,CAAC,CAAC4M,SAAS,KAAK,IAAI;IAC3D,CAAC,EAAE,IAAI,CAAC;IAER,IAAIA,SAAS,EAAE;MACb,IAAI,CAAC6zC,IAAI,CAACxgG,cAAc,CAAC;QACvBhsF,IAAI,EAAE,iBAAiB;QACvBy7M,KAAK,EAAE,IAAI,CAACz1H,MAAM,CAAC91F,EAAE;QACrBwC,IAAI,EAAEimJ,SAAS,CAACjmJ;MAClB,CAAC,CAAC;IACJ;EACF,CAAC;EAED0oN,OAAO,CAAC7uN,SAAS,CAACivN,kBAAkB,GAAG,UAAUloI,KAAK,EAAE9H,OAAO,EAAErhD,GAAG,EAAE;IACpE,IAAI3vB,KAAK,GAAG,IAAI;IAEhB,IAAI,CAACyrJ,QAAQ,CAACrnE,KAAK,CAAC3Q,QAAQ,CAAC,UAAUh4D,IAAI,EAAE;MAC3C,IAAI0iI,SAAS,GAAG30D,8DAAS,CAAC/tE,IAAI,CAAC,CAAC0iI,SAAS;MAEzC,IAAIA,SAAS,EAAE;QACbn+I,KAAK,CAACwrF,MAAM,CAACynC,UAAU,CAACkrB,SAAS,CAACjmJ,IAAI,CAAC,GAAGy3B,GAAG,CAACuxL,WAAW,CAACzlM,IAAI,CAAC,GAAGkU,GAAG,CAACwxL,WAAW,CAAC1lM,IAAI,CAAC,CAAC,CAAC;;QAEzF,OAAO,IAAI;MACb;IACF,CAAC,CAAC;EACJ,CAAC;EAEDmlM,OAAO,CAAC7uN,SAAS,CAACqvN,uBAAuB,GAAG,UAAUlpN,IAAI,EAAE;IAC1D,OAAO,IAAI,CAACuzJ,QAAQ,IAAI,IAAI,CAACA,QAAQ,CAAC21D,uBAAuB,CAAClpN,IAAI,EAAE,IAAI,CAACszF,MAAM,CAAC;EAClF,CAAC;EAEDo1H,OAAO,CAAC7uN,SAAS,CAAC8/F,OAAO,GAAG,YAAY;IACtC,IAAI,CAAC45D,QAAQ,IAAI,IAAI,CAACA,QAAQ,CAACnsJ,MAAM,CAAC,CAAC;EACzC,CAAC;EAEDshN,OAAO,CAACp7M,IAAI,GAAG,KAAK;EACpB,OAAOo7M,OAAO;AAChB,CAAC,CAACl2B,0DAAa,CAAC;AAEhB,iEAAek2B,OAAO;;;;;;;;;;;;;;;;;;;;;AC/HtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACmD;AACI;AACP;AACiB;AAC9B;AACgC;AAEnE,SAASW,WAAWA,CAACC,OAAO,EAAEC,OAAO,EAAEC,YAAY,EAAE;EACnDx4D,kFAA4B,CAACs4D,OAAO,EAAEC,OAAO,EAAEC,YAAY,CAAC;AAC9D;AAEO,SAAS9/G,OAAOA,CAACxb,SAAS,EAAE;EACjCA,SAAS,CAACwyC,wBAAwB,CAAC,KAAK,EAAE0oF,gEAAU,CAAC;EACrDl7H,SAAS,CAACq2G,sBAAsB,CAAC4kB,8DAAQ,CAAC;EAC1Cj7H,SAAS,CAACs2G,qBAAqB,CAACkkB,mDAAO,CAAC;EACxCx6H,SAAS,CAACu7H,YAAY,CAAC,aAAa,EAAEJ,WAAW,CAAC;EAClDn7H,SAAS,CAACu7H,YAAY,CAAC,QAAQ,EAAE,UAAUH,OAAO,EAAE;IAClD,OAAOt4D,oFAA8B,CAACs4D,OAAO,CAAC;EAChD,CAAC,CAAC;EAEF,SAASK,UAAUA,CAACpjN,MAAM,EAAEi6H,UAAU,EAAE;IACtCA,UAAU,CAACn1C,MAAM,GAAG,wBAAwB;IAC5C6C,SAAS,CAACoc,cAAc,CAACk2B,UAAU,EAAE,UAAUv2H,OAAO,EAAE6uE,OAAO,EAAE;MAC/D,IAAI8qD,QAAQ,GAAG,CAAC,CAAC;MACjB,IAAIgmF,WAAW,GAAG,EAAE;MACpB9wI,OAAO,CAACyxB,aAAa,CAAC;QACpBC,QAAQ,EAAE,KAAK;QACfC,KAAK,EAAExgG;MACT,CAAC,EAAE,UAAU2+M,QAAQ,EAAE;QACrBA,QAAQ,CAACriN,MAAM,CAAC,CAAC0D,OAAO,CAACjK,IAAI,CAAC;QAC9B,IAAIw4G,GAAG,GAAGowG,QAAQ,CAACr0H,gBAAgB;QACnC3Y,8DAAI,CAAC48B,GAAG,CAACw5C,OAAO,EAAE,UAAUV,MAAM,EAAE;UAClC1tB,QAAQ,CAAC0tB,MAAM,CAACtxJ,IAAI,CAAC,GAAG4oN,QAAQ,CAAC7tF,UAAU,CAACu2B,MAAM,CAACtxJ,IAAI,CAAC,IAAI,KAAK;QACnE,CAAC,CAAC,CAAC,CAAC;;QAEJ,IAAI42M,KAAK,GAAG,EAAE;QACdh7H,8DAAI,CAACgoD,QAAQ,EAAE,UAAU3hI,CAAC,EAAEjC,IAAI,EAAE;UAChC4jI,QAAQ,CAAC5jI,IAAI,CAAC,IAAI42M,KAAK,CAAC35M,IAAI,CAAC+C,IAAI,CAAC;QACpC,CAAC,CAAC;QACF4pN,WAAW,CAAC3sN,IAAI,CAAC;UACfwmI,QAAQ,EAAEmlF,QAAQ,CAACziE,cAAc;UACjC;UACAnmJ,IAAI,EAAE42M;QACR,CAAC,CAAC;MACJ,CAAC,CAAC;MACF,OAAO;QACLhzE,QAAQ,EAAEA,QAAQ;QAClBgmF,WAAW,EAAEA,WAAW;QACxB5pN,IAAI,EAAEiK,OAAO,CAACjK;MAChB,CAAC;IACH,CAAC,CAAC;EACJ;EAEA2pN,UAAU,CAAC,gBAAgB,EAAE;IAC3Br8M,IAAI,EAAE,iBAAiB;IACvB4xF,KAAK,EAAE;EACT,CAAC,CAAC;EACFyqH,UAAU,CAAC,QAAQ,EAAE;IACnBr8M,IAAI,EAAE,WAAW;IACjB4xF,KAAK,EAAE;EACT,CAAC,CAAC;EACFyqH,UAAU,CAAC,UAAU,EAAE;IACrBr8M,IAAI,EAAE,aAAa;IACnB4xF,KAAK,EAAE;EACT,CAAC,CAAC;EACF;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EAEEhR,SAAS,CAACoc,cAAc,CAAC;IACvBh9F,IAAI,EAAE,SAAS;IACf4xF,KAAK,EAAE,SAAS;IAChB7T,MAAM,EAAE;EACV,CAAC,EAAE,UAAUphF,OAAO,EAAE6uE,OAAO,EAAErhD,GAAG,EAAE;IAClC,IAAI8hE,aAAa,GAAGtvF,OAAO,CAACsvF,aAAa,IAAI,QAAQ;IACrDzgB,OAAO,CAACyxB,aAAa,CAAC;MACpBC,QAAQ,EAAEjR,aAAa;MACvBkR,KAAK,EAAExgG;IACT,CAAC,EAAE,UAAUygG,cAAc,EAAE;MAC3B,IAAI8N,GAAG,GAAG9N,cAAc,CAACnW,gBAAgB;MAEzC,IAAIikB,GAAG,CAAClrG,IAAI,KAAK,KAAK,EAAE;QACtB;MACF;MAEA,IAAI02G,GAAG,GAAGttC,0EAAmB,CAAC8hC,GAAG,EAAEvuG,OAAO,EAAEygG,cAAc,CAACzvG,GAAG,CAAC,YAAY,CAAC,EAAEw8B,GAAG,CAAC;MAClFizE,cAAc,CAACrzB,SAAS,IAAIqzB,cAAc,CAACrzB,SAAS,CAAC2sC,GAAG,CAACltC,MAAM,CAAC;MAChE4zB,cAAc,CAACzyB,OAAO,IAAIyyB,cAAc,CAACzyB,OAAO,CAAC+rC,GAAG,CAAChtC,IAAI,CAAC,CAAC,CAAC;MAC5D;;MAEA,IAAIuiB,aAAa,KAAK,QAAQ,EAAE;QAC9B3d,8DAAI,CAAC8uB,cAAc,CAACymD,WAAW,EAAE,UAAU5rE,WAAW,EAAE;UACtDA,WAAW,CAAClO,SAAS,CAAC2sC,GAAG,CAACltC,MAAM,CAAC;UACjCyO,WAAW,CAACtN,OAAO,CAAC+rC,GAAG,CAAChtC,IAAI,CAAC;QAC/B,CAAC,CAAC;MACJ;IACF,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ;;;;;;;;;;;;;;;;;;;;;AClJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACkC;AACiB;AACF;AACK;AACoB;AAC1E;AACA;AACA;AACO,SAAS+yI,uBAAuBA,CAACC,UAAU,EAAEC,WAAW,EAAE;EAC/D,IAAIC,aAAa,GAAGF,UAAU,CAACG,QAAQ,CAAC,CAAC;;EAEzCF,WAAW,CAACzsN,EAAE,GAAGwsN,UAAU,CAACI,OAAO,CAAC5sN,EAAE;EACtC,CAACysN,WAAW,CAAC38M,IAAI,IAAI48M,aAAa,KAAKD,WAAW,CAAC38M,IAAI,GAAG48M,aAAa,CAAC58M,IAAI,CAAC,CAAC,CAAC;;EAE/E,IAAI28M,WAAW,CAACI,QAAQ,IAAI,IAAI,EAAE;IAChC,IAAIC,iBAAiB,GAAGL,WAAW,CAACM,YAAY;IAEhD,IAAID,iBAAiB,EAAE;MACrBL,WAAW,CAACI,QAAQ,GAAGC,iBAAiB,CAAC9sN,EAAE;IAC7C,CAAC,MAAM,IAAI0sN,aAAa,EAAE;MACxBD,WAAW,CAACI,QAAQ,GAAGH,aAAa,CAACG,QAAQ;IAC/C;EACF,CAAC,CAAC;;EAGFJ,WAAW,CAACM,YAAY,GAAG,IAAI;AACjC;AAEA,SAASC,QAAQA,CAACnzM,GAAG,EAAEK,KAAK,EAAE;EAC5B,IAAI+yM,KAAK;EACTroH,0DAAW,CAAC1qF,KAAK,EAAE,UAAUmX,IAAI,EAAE;IACjCxX,GAAG,CAACwX,IAAI,CAAC,IAAI,IAAI,IAAIxX,GAAG,CAACwX,IAAI,CAAC,KAAK,MAAM,KAAK47L,KAAK,GAAG,IAAI,CAAC;EAC7D,CAAC,CAAC;EACF,OAAOA,KAAK;AACd;AAEA,SAASC,uBAAuBA,CAACC,SAAS,EAAE1oM,KAAK,EAAEgoM,WAAW,EAAE;EAC9D;EACA,IAAIW,YAAY,GAAGxoH,4DAAa,CAAC,CAAC,CAAC,EAAE6nH,WAAW,CAAC;EACjD,IAAIC,aAAa,GAAGS,SAAS,CAAC1oM,KAAK,CAAC;EACpC,IAAI4oM,OAAO,GAAGZ,WAAW,CAACY,OAAO,IAAI,OAAO;EAE5C,IAAIA,OAAO,KAAK,OAAO,EAAE;IACvB,IAAIX,aAAa,EAAE;MACjB,IAAIpuM,IAAqC,EAAE;QACzC,IAAIgvM,OAAO,GAAGb,WAAW,CAAC38M,IAAI;QAC9B80F,4DAAa,CAAC,CAAC0oH,OAAO,IAAIZ,aAAa,CAAC58M,IAAI,KAAKw9M,OAAO,EAAE,gDAAgD,CAAC;MAC7G,CAAC,CAAC;MACF;;MAGA1oH,2DAAY,CAAC8nH,aAAa,EAAEU,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;;MAEjDd,iEAAgB,CAACI,aAAa,EAAEU,YAAY,EAAE;QAC5CG,UAAU,EAAE;MACd,CAAC,CAAC,CAAC,CAAC;;MAEJlB,iEAAgB,CAACI,WAAW,EAAEC,aAAa,CAAC,CAAC,CAAC;MAC9C;;MAEAc,kBAAkB,CAACf,WAAW,EAAEC,aAAa,CAAC;MAC9Cc,kBAAkB,CAACf,WAAW,EAAEC,aAAa,EAAE,OAAO,CAAC;MACvDc,kBAAkB,CAACf,WAAW,EAAEC,aAAa,EAAE,OAAO,CAAC;MACvDc,kBAAkB,CAACf,WAAW,EAAEC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC;;MAEzDD,WAAW,CAAC/yH,QAAQ,GAAGgzH,aAAa,CAAChzH,QAAQ;IAC/C,CAAC,MAAM;MACLyzH,SAAS,CAAC1oM,KAAK,CAAC,GAAG2oM,YAAY;IACjC;EACF,CAAC,MAAM,IAAIC,OAAO,KAAK,SAAS,EAAE;IAChCF,SAAS,CAAC1oM,KAAK,CAAC,GAAG2oM,YAAY;EACjC,CAAC,MAAM,IAAIC,OAAO,KAAK,QAAQ,EAAE;IAC/B;IACAX,aAAa,KAAKS,SAAS,CAAC1oM,KAAK,CAAC,GAAG,IAAI,CAAC;EAC5C;AACF;AAEA,IAAIgpM,wBAAwB,GAAG,CAAC,YAAY,EAAE,WAAW,EAAE,SAAS,CAAC;AACrE,IAAIC,6BAA6B,GAAGD,wBAAwB,CAAC3yM,MAAM,CAAC,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;AAE5H,SAAS0yM,kBAAkBA,CAACvzM,MAAM,EAAE/B,MAAM,EAAEy1M,UAAU,EAAE;EACtD,IAAIA,UAAU,EAAE;IACd,IAAI,CAAC1zM,MAAM,CAAC0zM,UAAU,CAAC,IAAIz1M,MAAM,CAACy1M,UAAU,CAAC,EAAE;MAC7C;MACA1zM,MAAM,CAAC0zM,UAAU,CAAC,GAAG,CAAC,CAAC;IACzB;IAEA1zM,MAAM,GAAGA,MAAM,CAAC0zM,UAAU,CAAC;IAC3Bz1M,MAAM,GAAGA,MAAM,CAACy1M,UAAU,CAAC;EAC7B;EAEA,IAAI,CAAC1zM,MAAM,IAAI,CAAC/B,MAAM,EAAE;IACtB;EACF;EAEA,IAAIgC,KAAK,GAAGyzM,UAAU,GAAGF,wBAAwB,GAAGC,6BAA6B;EAEjF,KAAK,IAAIxxN,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGge,KAAK,CAACvd,MAAM,EAAET,CAAC,EAAE,EAAE;IACrC,IAAIm1B,IAAI,GAAGnX,KAAK,CAAChe,CAAC,CAAC;IAEnB,IAAI+d,MAAM,CAACoX,IAAI,CAAC,IAAI,IAAI,IAAInZ,MAAM,CAACmZ,IAAI,CAAC,IAAI,IAAI,EAAE;MAChDpX,MAAM,CAACoX,IAAI,CAAC,GAAGnZ,MAAM,CAACmZ,IAAI,CAAC;IAC7B;EACF;AACF;AAEA,SAASu8L,oBAAoBA,CAACC,SAAS,EAAEpB,WAAW,EAAE;EACpD,IAAI,CAACoB,SAAS,EAAE;IACd;EACF;EAEAA,SAAS,CAACC,EAAE,GAAGrB,WAAW,CAACqB,EAAE,GAAG;EAAC;EACjCd,QAAQ,CAACP,WAAW,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;EAAE;EAC1CO,QAAQ,CAACP,WAAW,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;;EAE3C,IAAIoB,SAAS,CAAC/9M,IAAI,KAAK,OAAO,EAAE;IAC9B,IAAIi+M,gBAAgB,GAAGF,SAAS;IAChC,IAAIG,WAAW,GAAGvB,WAAW;IAC7BsB,gBAAgB,CAACtmM,KAAK,IAAI,IAAI,KAAKsmM,gBAAgB,CAACtmM,KAAK,GAAGumM,WAAW,CAACvmM,KAAK,GAAG,CAAC,CAAC;IAClFsmM,gBAAgB,CAACpmM,MAAM,IAAI,IAAI,KAAKomM,gBAAgB,CAACpmM,MAAM,GAAGqmM,WAAW,CAACrmM,MAAM,GAAG,CAAC,CAAC;EACvF;AACF;AAEA,IAAIsmM,qBAAqB,GACzB;AACA,UAAUr8H,MAAM,EAAE;EAChBL,gDAAS,CAAC08H,qBAAqB,EAAEr8H,MAAM,CAAC;EAExC,SAASq8H,qBAAqBA,CAAA,EAAG;IAC/B,IAAI3jN,KAAK,GAAGsnF,MAAM,KAAK,IAAI,IAAIA,MAAM,CAAC7yF,KAAK,CAAC,IAAI,EAAE0G,SAAS,CAAC,IAAI,IAAI;IAEpE6E,KAAK,CAACwF,IAAI,GAAGm+M,qBAAqB,CAACn+M,IAAI;IACvCxF,KAAK,CAAC4jN,YAAY,GAAG,IAAI;IACzB,OAAO5jN,KAAK;EACd;EAEA2jN,qBAAqB,CAAC5xN,SAAS,CAACg5H,WAAW,GAAG,UAAUjzB,MAAM,EAAE9mB,OAAO,EAAE;IACvE;IACA,IAAIqL,QAAQ,GAAG,IAAI,CAACyb,MAAM,CAACzb,QAAQ;IACnC,IAAI,CAACyb,MAAM,CAACzb,QAAQ,GAAG,IAAI;IAE3BiL,MAAM,CAACv1F,SAAS,CAACg5H,WAAW,CAAC94H,IAAI,CAAC,IAAI,EAAE6lG,MAAM,EAAE9mB,OAAO,CAAC;IAExD,IAAI,CAAC8mB,MAAM,CAACzb,QAAQ,GAAGA,QAAQ;EACjC,CAAC;EAEDsnI,qBAAqB,CAAC5xN,SAAS,CAAC08G,aAAa,GAAG,UAAUwxF,SAAS,EAAEnpH,MAAM,EAAE;IAC3E,IAAIopH,UAAU,GAAG,IAAI,CAACpoG,MAAM;IAC5B,IAAIjW,OAAO,GAAG,CAAC/K,MAAM,GAAGopH,UAAU,GAAGD,SAAS,EAAE5jH,QAAQ;IACxD,IAAIwmI,SAAS,GAAG3iB,UAAU,CAAC7jH,QAAQ,GAAGvF,MAAM,GAAG,EAAE,GAAGopH,UAAU,CAAC7jH,QAAQ;IACvE,IAAIwnI,aAAa,GAAG,EAAE;IAEtB,IAAI,CAACC,QAAQ,CAACjiI,OAAO,EAAEgiI,aAAa,EAAE,IAAI,CAAC;IAE3C,IAAIE,aAAa,GAAGxtE,2DAAyB,CAACssE,SAAS,EAAEgB,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC;;IAExF,IAAII,iBAAiB,GAAG,IAAI,CAACC,kBAAkB,GAAG,EAAE;IACpD5pH,0DAAW,CAACypH,aAAa,EAAE,UAAU7B,UAAU,EAAE/nM,KAAK,EAAE;MACtD,IAAIgoM,WAAW,GAAGD,UAAU,CAACjiB,SAAS;MAEtC,IAAIjsL,IAAqC,EAAE;QACzCsmF,4DAAa,CAACA,8DAAe,CAAC6nH,WAAW,CAAC,IAAID,UAAU,CAACG,QAAQ,EAAE,iCAAiC,CAAC;MACvG;MAEA,IAAI,CAACF,WAAW,EAAE;QAChB;MACF;MAEA8B,iBAAiB,CAAC9uN,IAAI,CAACgtN,WAAW,CAAC;MACnCF,uBAAuB,CAACC,UAAU,EAAEC,WAAW,CAAC;MAChDS,uBAAuB,CAACC,SAAS,EAAE1oM,KAAK,EAAEgoM,WAAW,CAAC;MACtDmB,oBAAoB,CAACT,SAAS,CAAC1oM,KAAK,CAAC,EAAEgoM,WAAW,CAAC;IACrD,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;;IAEVjiB,UAAU,CAAC7jH,QAAQ,GAAGie,4DAAa,CAACuoH,SAAS,EAAE,UAAUvyH,IAAI,EAAE;MAC7D;MACA;MACAA,IAAI,IAAI,OAAOA,IAAI,CAACyyH,OAAO;MAC3B,OAAOzyH,IAAI,IAAI,IAAI;IACrB,CAAC,CAAC;EACJ,CAAC;EACD;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EAGEqzH,qBAAqB,CAAC5xN,SAAS,CAAC+xN,QAAQ,GAAG,UAAUK,UAAU,EAAEviM,MAAM,EAAE6gM,YAAY,EAAE;IACrFnoH,0DAAW,CAAC6pH,UAAU,EAAE,UAAUrsH,MAAM,EAAE;MACxC,IAAI,CAACA,MAAM,EAAE;QACX;MACF;MAEA,IAAI2qH,YAAY,EAAE;QAChB3qH,MAAM,CAAC2qH,YAAY,GAAGA,YAAY;MACpC;MAEA7gM,MAAM,CAACzsB,IAAI,CAAC2iG,MAAM,CAAC;MACnB,IAAI/5E,QAAQ,GAAG+5E,MAAM,CAAC/5E,QAAQ,CAAC,CAAC;MAChC;;MAEA,IAAIA,QAAQ,IAAIA,QAAQ,CAAC1rB,MAAM,EAAE;QAC/B,IAAI,CAACyxN,QAAQ,CAAC/lM,QAAQ,EAAE6D,MAAM,EAAEk2E,MAAM,CAAC;MACzC,CAAC,CAAC;;MAGF,OAAOA,MAAM,CAAC/5E,QAAQ;IACxB,CAAC,EAAE,IAAI,CAAC;EACV,CAAC,CAAC,CAAC;EACH;;EAGA4lM,qBAAqB,CAAC5xN,SAAS,CAACqyN,oBAAoB,GAAG,YAAY;IACjE,IAAIvtC,GAAG,GAAG,IAAI,CAACqtC,kBAAkB,CAAC,CAAC;;IAEnC,IAAI,CAACA,kBAAkB,GAAG,IAAI;IAC9B,OAAOrtC,GAAG;EACZ,CAAC;EAED8sC,qBAAqB,CAACn+M,IAAI,GAAG,SAAS;EACtCm+M,qBAAqB,CAACx7H,aAAa,GAAG;IACpC9L,QAAQ,EAAE,EAAE,CAAC;EAEf,CAAC;;EACD,OAAOsnI,qBAAqB;AAC9B,CAAC,CAAChzB,2DAAc,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrRjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACkC;AACiB;AACU;AACZ;AACI;AACF;AACC;AACA;AACC;AAC2C;AACyC;AACxE;AACmE;AACpI,IAAI2zB,uBAAuB,GAAG;EAC5B;EACAvgN,IAAI,EAAE,IAAI;EACVwgN,YAAY,EAAE,IAAI;EAClB;EACAngI,KAAK,EAAE2qB,wDAAiB;EACxB9N,KAAK,EAAE8N,wDAAiB;EACxBlgF,IAAI,EAAEkgF,wDAAgB0D;AACxB,CAAC;AACM,IAAIz1F,KAAK,GAAGu5H,qDAAmB,CAAC,CAAC,CAAC,CAAC;AAC1C;AACA;;AAEA,IAAIiuE,oBAAoB,GACxB;AACA,UAAUl9H,MAAM,EAAE;EAChBL,gDAAS,CAACu9H,oBAAoB,EAAEl9H,MAAM,CAAC;EAEvC,SAASk9H,oBAAoBA,CAAA,EAAG;IAC9B,IAAIxkN,KAAK,GAAGsnF,MAAM,KAAK,IAAI,IAAIA,MAAM,CAAC7yF,KAAK,CAAC,IAAI,EAAE0G,SAAS,CAAC,IAAI,IAAI;IAEpE6E,KAAK,CAACwF,IAAI,GAAGg/M,oBAAoB,CAACh/M,IAAI;IACtC,OAAOxF,KAAK;EACd;EAEAwkN,oBAAoB,CAACzyN,SAAS,CAAC8pH,IAAI,GAAG,YAAY;IAChD,IAAI,CAAC4oG,MAAM,GAAGnqH,mEAAoB,CAAC,CAAC;EACtC,CAAC;EAEDkqH,oBAAoB,CAACzyN,SAAS,CAACw5F,MAAM,GAAG,UAAUm5H,YAAY,EAAE1zI,OAAO,EAAErhD,GAAG,EAAE;IAC5E;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI+0L,YAAY,KAAK,IAAI,CAACC,iBAAiB,EAAE;MAC3C,IAAI,CAAC14H,MAAM,CAAC,CAAC;IACf;IAEA,IAAI,CAAC04H,iBAAiB,GAAGD,YAAY;IAErC,IAAI,CAACE,eAAe,CAACF,YAAY,CAAC;IAElC,IAAI,CAACG,SAAS,CAACH,YAAY,EAAE/0L,GAAG,CAAC;EACnC,CAAC;EACD;AACF;AACA;;EAGE60L,oBAAoB,CAACzyN,SAAS,CAAC6yN,eAAe,GAAG,UAAUF,YAAY,EAAE;IACvE,IAAIT,iBAAiB,GAAGS,YAAY,CAACN,oBAAoB,CAAC,CAAC;IAE3D,IAAI,CAACH,iBAAiB,EAAE;MACtB;IACF;IAEA,IAAIa,KAAK,GAAG,IAAI,CAACL,MAAM;IACvB,IAAIM,SAAS,GAAG,IAAI,CAAC3gI,KAAK;IAC1B,IAAI4gI,OAAO,GAAGN,YAAY,CAACvxN,GAAG,CAAC,GAAG,CAAC;IACnC,IAAI8xN,YAAY,GAAGP,YAAY,CAACvxN,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;;IAE/CmnG,0DAAW,CAAC2pH,iBAAiB,EAAE,UAAU1tI,QAAQ,EAAE;MACjD,IAAI7gF,EAAE,GAAG6gJ,+DAA6B,CAAChgE,QAAQ,CAAC7gF,EAAE,EAAE,IAAI,CAAC;MACzD,IAAIwvN,UAAU,GAAGxvN,EAAE,IAAI,IAAI,GAAGovN,KAAK,CAAC3xN,GAAG,CAACuC,EAAE,CAAC,GAAG,IAAI;MAClD,IAAI6sN,QAAQ,GAAGhsE,+DAA6B,CAAChgE,QAAQ,CAACgsI,QAAQ,EAAE,IAAI,CAAC;MACrE,IAAI4C,cAAc,GAAG5C,QAAQ,IAAI,IAAI,GAAGuC,KAAK,CAAC3xN,GAAG,CAACovN,QAAQ,CAAC,GAAGwC,SAAS;MACvE,IAAIvrG,MAAM,GAAGjjC,QAAQ,CAAC/wE,IAAI;MAC1B,IAAIkzG,aAAa,GAAGniC,QAAQ,CAAC/oE,KAAK;MAElC,IAAIgsG,MAAM,KAAK,MAAM,IAAId,aAAa,EAAE;QACtC;QACA;QACA,IAAIniC,QAAQ,CAACitI,EAAE,IAAIjtI,QAAQ,CAACitI,EAAE,CAAC,CAAC,CAAC,EAAE;UACjC9qG,aAAa,CAACswB,iBAAiB,GAAGtwB,aAAa,CAAC0sG,YAAY,GAAG1sG,aAAa,CAAC0G,aAAa,GAAG1G,aAAa,CAACwG,KAAK,GAAG,IAAI;QACzH;MACF;MAEA,IAAImmG,iBAAiB,GAAG9uI,QAAQ,CAAC4iC,WAAW;MAC5C,IAAIxjB,UAAU,GAAGpf,QAAQ,CAACof,UAAU;MAEpC,IAAI+iB,aAAa,IAAIjJ,0EAAoB,CAACiJ,aAAa,EAAEc,MAAM,EAAE,CAAC,CAAC7jB,UAAU,EAAE,CAAC,CAAC0vH,iBAAiB,CAAC,EAAE;QACnG,IAAI1rG,aAAa,GAAGjK,mFAA6B,CAACgJ,aAAa,EAAEc,MAAM,EAAE,IAAI,CAAC;QAE9E,IAAI,CAAC7jB,UAAU,IAAIgkB,aAAa,CAAChkB,UAAU,EAAE;UAC3CA,UAAU,GAAGpf,QAAQ,CAACof,UAAU,GAAGgkB,aAAa,CAAChkB,UAAU;QAC7D;QAEA,IAAI,CAAC0vH,iBAAiB,IAAI1rG,aAAa,CAACR,WAAW,EAAE;UACnDksG,iBAAiB,GAAG1rG,aAAa,CAACR,WAAW;QAC/C;MACF,CAAC,CAAC;;MAGF,IAAImsG,eAAe,GAAGC,kBAAkB,CAAChvI,QAAQ,CAAC,CAAC,CAAC;;MAEpD,IAAIviE,IAAqC,EAAE;QACzCkxM,UAAU,IAAI5qH,4DAAa,CAAC6qH,cAAc,KAAKD,UAAU,CAAC3xI,MAAM,EAAE,mCAAmC,CAAC;MACxG;MAEA,IAAIwvI,OAAO,GAAGxsI,QAAQ,CAACwsI,OAAO,IAAI,OAAO;MACzC,IAAIyC,OAAO,GAAGzC,OAAO,KAAK,OAAO;MACjC,IAAI0C,SAAS,GAAG1C,OAAO,KAAK,SAAS;MAErC,IAAIyC,OAAO,EAAE;QACX,IAAI1uI,MAAM,GAAG,CAACouI,UAAU;QACxB,IAAIQ,IAAI,GAAGR,UAAU;QAErB,IAAIpuI,MAAM,EAAE;UACV4uI,IAAI,GAAG1zG,QAAQ,CAACt8G,EAAE,EAAEyvN,cAAc,EAAE5uI,QAAQ,CAAC/wE,IAAI,EAAEs/M,KAAK,CAAC;QAC3D,CAAC,MAAM;UACLY,IAAI,KAAK1oM,KAAK,CAAC0oM,IAAI,CAAC,CAAC5jB,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC;;UAErC5tH,qHAAuC,CAACwxI,IAAI,CAAC;QAC/C;QAEA,IAAIA,IAAI,EAAE;UACR9uI,4FAAqB,CAAC8uI,IAAI,EAAEJ,eAAe,EAAEZ,YAAY,EAAE;YACzD5tI,MAAM,EAAEA;UACV,CAAC,CAAC;UACF6uI,iBAAiB,CAACD,IAAI,EAAEnvI,QAAQ,EAAEyuI,OAAO,EAAEC,YAAY,CAAC;QAC1D;MACF,CAAC,MAAM,IAAIQ,SAAS,EAAE;QACpBzkI,QAAQ,CAACkkI,UAAU,EAAE3uI,QAAQ,EAAEuuI,KAAK,EAAEJ,YAAY,CAAC;QACnD,IAAIkB,IAAI,GAAG5zG,QAAQ,CAACt8G,EAAE,EAAEyvN,cAAc,EAAE5uI,QAAQ,CAAC/wE,IAAI,EAAEs/M,KAAK,CAAC;QAE7D,IAAIc,IAAI,EAAE;UACRhvI,4FAAqB,CAACgvI,IAAI,EAAEN,eAAe,EAAEZ,YAAY,EAAE;YACzD5tI,MAAM,EAAE;UACV,CAAC,CAAC;UACF6uI,iBAAiB,CAACC,IAAI,EAAErvI,QAAQ,EAAEyuI,OAAO,EAAEC,YAAY,CAAC;QAC1D;MACF,CAAC,MAAM,IAAIlC,OAAO,KAAK,QAAQ,EAAE;QAC/B/qI,oFAAa,CAACktI,UAAU,EAAE3uI,QAAQ,CAAC;QACnCyK,QAAQ,CAACkkI,UAAU,EAAE3uI,QAAQ,EAAEuuI,KAAK,EAAEJ,YAAY,CAAC;MACrD;MAEA,IAAI9yI,EAAE,GAAGkzI,KAAK,CAAC3xN,GAAG,CAACuC,EAAE,CAAC;MAEtB,IAAIk8E,EAAE,IAAIyzI,iBAAiB,EAAE;QAC3B,IAAIG,OAAO,EAAE;UACX,IAAIK,mBAAmB,GAAGj0I,EAAE,CAACgd,cAAc,CAAC,CAAC;UAC7Ci3H,mBAAmB,GAAGA,mBAAmB,CAACzwM,IAAI,CAACiwM,iBAAiB,CAAC,GAAGzzI,EAAE,CAACwnC,cAAc,CAAC,IAAIrK,wDAAgB,CAACs2G,iBAAiB,CAAC,CAAC;QAChI,CAAC,MAAM,IAAII,SAAS,EAAE;UACpB7zI,EAAE,CAACwnC,cAAc,CAAC,IAAIrK,wDAAgB,CAACs2G,iBAAiB,CAAC,CAAC;QAC5D;MACF;MAEA,IAAIzzI,EAAE,EAAE;QACN,IAAIk0I,cAAc,GAAGvvI,QAAQ,CAAC6Y,QAAQ;QAEtC,IAAI02H,cAAc,EAAE;UAClB,IAAIC,YAAY,GAAGD,cAAc,CAACtgN,IAAI;UACtC,IAAI4pF,QAAQ,GAAG,KAAK,CAAC;UACrB,IAAItY,MAAM,GAAG,KAAK;UAElB,IAAI0uI,OAAO,EAAE;YACX,IAAIjoE,WAAW,GAAG3rE,EAAE,CAACinC,WAAW,CAAC,CAAC;YAClC/hC,MAAM,GAAG,CAACymE,WAAW,IAAIvgI,KAAK,CAACugI,WAAW,CAAC,CAAC/3I,IAAI,KAAKugN,YAAY;YACjE32H,QAAQ,GAAGtY,MAAM,GAAG+J,KAAK,CAACklI,YAAY,CAAC,GAAGxoE,WAAW;UACvD,CAAC,MAAM,IAAIkoE,SAAS,EAAE;YACpB3uI,MAAM,GAAG,IAAI;YACbsY,QAAQ,GAAGvO,KAAK,CAACklI,YAAY,CAAC;UAChC;UAEAn0I,EAAE,CAACyd,WAAW,CAACD,QAAQ,CAAC;UACxBxY,4FAAqB,CAACwY,QAAQ,EAAE02H,cAAc,EAAEpB,YAAY,EAAE;YAC5D5tI,MAAM,EAAEA;UACV,CAAC,CAAC;UACF3C,oGAAsB,CAACib,QAAQ,EAAE02H,cAAc,CAACpyG,iBAAiB,EAAEgxG,YAAY,CAAC;QAClF;QAEA,IAAInsG,OAAO,GAAGv7F,KAAK,CAAC40D,EAAE,CAAC;QACvBA,EAAE,CAACuhC,aAAa,CAACxd,UAAU,CAAC;QAC5B4iB,OAAO,CAACzgB,MAAM,GAAGvhB,QAAQ;QACzByvI,YAAY,CAACp0I,EAAE,EAAE8yI,YAAY,EAAEnuI,QAAQ,CAAC;QACxCw4B,8DAA4B,CAAC;UAC3Bn9B,EAAE,EAAEA,EAAE;UACNgxB,cAAc,EAAE8hH,YAAY;UAC5Bj8G,QAAQ,EAAE72B,EAAE,CAAC15E,IAAI;UACjB+tN,iBAAiB,EAAE1vI,QAAQ,CAAC8+D;QAC9B,CAAC,CAAC;QACFlhE,oGAAsB,CAACvC,EAAE,EAAE2E,QAAQ,CAACm9B,iBAAiB,EAAEgxG,YAAY,CAAC;MACtE;IACF,CAAC,CAAC;EACJ,CAAC;EACD;AACF;AACA;;EAGEF,oBAAoB,CAACzyN,SAAS,CAAC8yN,SAAS,GAAG,UAAUH,YAAY,EAAE/0L,GAAG,EAAE;IACtE,IAAIu2L,SAAS,GAAGxB,YAAY,CAAC5sH,MAAM,CAACzb,QAAQ;IAC5C,IAAI0oI,SAAS,GAAG,IAAI,CAAC3gI,KAAK;IAC1B,IAAI0gI,KAAK,GAAG,IAAI,CAACL,MAAM;IACvB,IAAI0B,QAAQ,GAAGx2L,GAAG,CAAC+rE,QAAQ,CAAC,CAAC;IAC7B,IAAI0qH,SAAS,GAAGz2L,GAAG,CAACgsE,SAAS,CAAC,CAAC;IAC/B,IAAIZ,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;;IAErB,KAAK,IAAInpG,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGs0N,SAAS,CAAC7zN,MAAM,EAAET,CAAC,EAAE,EAAE;MACzC,IAAI2kF,QAAQ,GAAG2vI,SAAS,CAACt0N,CAAC,CAAC;MAC3B,IAAI8D,EAAE,GAAG6gJ,+DAA6B,CAAChgE,QAAQ,CAAC7gF,EAAE,EAAE,IAAI,CAAC;MACzD,IAAIk8E,EAAE,GAAGl8E,EAAE,IAAI,IAAI,GAAGovN,KAAK,CAAC3xN,GAAG,CAACuC,EAAE,CAAC,GAAG,IAAI;MAE1C,IAAI,CAACk8E,EAAE,IAAI,CAACA,EAAE,CAAC4B,OAAO,EAAE;QACtB;MACF;MAEA,IAAIo4F,QAAQ,GAAGh6F,EAAE,CAAC2B,MAAM;MACxB,IAAI8yI,YAAY,GAAGz6C,QAAQ,KAAKm5C,SAAS,CAAC,CAAC;;MAE3C,IAAIxsG,OAAO,GAAGv7F,KAAK,CAAC40D,EAAE,CAAC;MACvB,IAAI00I,aAAa,GAAGtpM,KAAK,CAAC4uJ,QAAQ,CAAC;MACnCrzD,OAAO,CAACp7F,KAAK,GAAGu9E,8DAAY,CAAC6d,OAAO,CAACzgB,MAAM,CAAC36E,KAAK,EAAEkpM,YAAY,GAAGF,QAAQ,GAAGG,aAAa,CAACnpM,KAAK,CAAC,IAAI,CAAC;MACtGo7F,OAAO,CAACl7F,MAAM,GAAGq9E,8DAAY,CAAC6d,OAAO,CAACzgB,MAAM,CAACz6E,MAAM,EAAEgpM,YAAY,GAAGD,SAAS,GAAGE,aAAa,CAACjpM,MAAM,CAAC,IAAI,CAAC;IAC5G,CAAC,CAAC;;IAGF,KAAK,IAAIzrB,CAAC,GAAGs0N,SAAS,CAAC7zN,MAAM,GAAG,CAAC,EAAET,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;MAC9C,IAAI2kF,QAAQ,GAAG2vI,SAAS,CAACt0N,CAAC,CAAC;MAC3B,IAAI8D,EAAE,GAAG6gJ,+DAA6B,CAAChgE,QAAQ,CAAC7gF,EAAE,EAAE,IAAI,CAAC;MACzD,IAAIk8E,EAAE,GAAGl8E,EAAE,IAAI,IAAI,GAAGovN,KAAK,CAAC3xN,GAAG,CAACuC,EAAE,CAAC,GAAG,IAAI;MAE1C,IAAI,CAACk8E,EAAE,EAAE;QACP;MACF;MAEA,IAAIg6F,QAAQ,GAAGh6F,EAAE,CAAC2B,MAAM;MACxB,IAAI+yI,aAAa,GAAGtpM,KAAK,CAAC4uJ,QAAQ,CAAC;MACnC,IAAI26C,aAAa,GAAG36C,QAAQ,KAAKm5C,SAAS,GAAG;QAC3C5nM,KAAK,EAAEgpM,QAAQ;QACf9oM,MAAM,EAAE+oM;MACV,CAAC,GAAG;QACFjpM,KAAK,EAAEmpM,aAAa,CAACnpM,KAAK;QAC1BE,MAAM,EAAEipM,aAAa,CAACjpM;MACxB,CAAC,CAAC,CAAC;MACH;MACA;MACA;;MAEA,IAAImpM,SAAS,GAAG,CAAC,CAAC;MAClB,IAAIC,QAAQ,GAAGpC,6DAA0B,CAACzyI,EAAE,EAAE2E,QAAQ,EAAEgwI,aAAa,EAAE,IAAI,EAAE;QAC3E/C,EAAE,EAAEjtI,QAAQ,CAACitI,EAAE;QACfkD,YAAY,EAAEnwI,QAAQ,CAACowI;MACzB,CAAC,EAAEH,SAAS,CAAC;MAEb,IAAI,CAACxpM,KAAK,CAAC40D,EAAE,CAAC,CAACkwH,KAAK,IAAI2kB,QAAQ,EAAE;QAChC,IAAIhuI,UAAU,GAAGlC,QAAQ,CAACkC,UAAU;QACpC,IAAImuI,UAAU,GAAG,CAAC,CAAC;QAEnB,KAAK,IAAIjtN,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGohG,EAAE,CAAC1oG,MAAM,EAAEsH,CAAC,EAAE,EAAE;UAClC,IAAIsW,GAAG,GAAG8qF,EAAE,CAACphG,CAAC,CAAC;UACf,IAAI8b,GAAG,GAAG+wM,SAAS,CAACv2M,GAAG,CAAC;UAExB,IAAIwoE,UAAU,KAAKD,sFAAe,CAACC,UAAU,CAAC,IAAI6hB,6DAAc,CAAC7hB,UAAU,EAAExoE,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE;YACvF22M,UAAU,CAAC32M,GAAG,CAAC,GAAGwF,GAAG;UACvB,CAAC,MAAM;YACLm8D,EAAE,CAAC3hE,GAAG,CAAC,GAAGwF,GAAG;UACf;QACF;QAEAk9D,2EAAW,CAACf,EAAE,EAAEg1I,UAAU,EAAElC,YAAY,EAAE,CAAC,CAAC;MAC9C,CAAC,MAAM;QACL9yI,EAAE,CAACx8D,IAAI,CAACoxM,SAAS,CAAC;MACpB;IACF;EACF,CAAC;EACD;AACF;AACA;;EAGEhC,oBAAoB,CAACzyN,SAAS,CAACk6F,MAAM,GAAG,YAAY;IAClD,IAAIjsF,KAAK,GAAG,IAAI;IAEhB,IAAI8kN,KAAK,GAAG,IAAI,CAACL,MAAM;IACvBK,KAAK,CAAChxI,IAAI,CAAC,UAAUlC,EAAE,EAAE;MACvBoP,QAAQ,CAACpP,EAAE,EAAE50D,KAAK,CAAC40D,EAAE,CAAC,CAACkmB,MAAM,EAAEgtH,KAAK,EAAE9kN,KAAK,CAAC2kN,iBAAiB,CAAC;IAChE,CAAC,CAAC;IACF,IAAI,CAACF,MAAM,GAAGnqH,mEAAoB,CAAC,CAAC;EACtC,CAAC;EAEDkqH,oBAAoB,CAACzyN,SAAS,CAAC8/F,OAAO,GAAG,YAAY;IACnD,IAAI,CAAC5F,MAAM,CAAC,CAAC;EACf,CAAC;EAEDu4H,oBAAoB,CAACh/M,IAAI,GAAG,SAAS;EACrC,OAAOg/M,oBAAoB;AAC7B,CAAC,CAAC95B,2DAAa,CAAC;AAEgB;AAEhC,SAAS7pG,KAAKA,CAACoxB,WAAW,EAAE;EAC1B,IAAIj+F,IAAqC,EAAE;IACzCsmF,4DAAa,CAAC2X,WAAW,EAAE,0BAA0B,CAAC;EACxD;EAEA,IAAIS,GAAG,GAAGpY,4DAAa,CAACgqH,uBAAuB,EAAEryG,WAAW,CAAC,CAAC;EAC9D;EAAA,EACEqyG,uBAAuB,CAACryG,WAAW,CAAC,GAAGlD,2DAAyB,CAACkD,WAAW,CAAC;EAE/E,IAAIj+F,IAAqC,EAAE;IACzCsmF,4DAAa,CAACoY,GAAG,EAAE,eAAe,GAAGT,WAAW,GAAG,mBAAmB,CAAC;EACzE;EAEA,IAAIrgC,EAAE,GAAG,IAAI8gC,GAAG,CAAC,CAAC,CAAC,CAAC;EACpB11F,KAAK,CAAC40D,EAAE,CAAC,CAACpsE,IAAI,GAAGysG,WAAW;EAC5B,OAAOrgC,EAAE;AACX;AAEA,SAASogC,QAAQA,CAACt8G,EAAE,EAAEyvN,cAAc,EAAElzG,WAAW,EAAE6yG,KAAK,EAAE;EACxD,IAAIlzI,EAAE,GAAGiP,KAAK,CAACoxB,WAAW,CAAC;EAC3BkzG,cAAc,CAACjuN,GAAG,CAAC06E,EAAE,CAAC;EACtBkzI,KAAK,CAAC1xN,GAAG,CAACsC,EAAE,EAAEk8E,EAAE,CAAC;EACjB50D,KAAK,CAAC40D,EAAE,CAAC,CAACl8E,EAAE,GAAGA,EAAE;EACjBsnB,KAAK,CAAC40D,EAAE,CAAC,CAACkwH,KAAK,GAAG,IAAI;EACtB,OAAOlwH,EAAE;AACX;AAEA,SAASoP,QAAQA,CAACkkI,UAAU,EAAE3uI,QAAQ,EAAEuuI,KAAK,EAAEJ,YAAY,EAAE;EAC3D,IAAImC,aAAa,GAAG3B,UAAU,IAAIA,UAAU,CAAC3xI,MAAM;EAEnD,IAAIszI,aAAa,EAAE;IACjB3B,UAAU,CAAC1/M,IAAI,KAAK,OAAO,IAAI0/M,UAAU,CAACzxI,QAAQ,CAAC,UAAU7B,EAAE,EAAE;MAC/DoP,QAAQ,CAACpP,EAAE,EAAE2E,QAAQ,EAAEuuI,KAAK,EAAEJ,YAAY,CAAC;IAC7C,CAAC,CAAC;IACFrsI,2FAAoB,CAAC6sI,UAAU,EAAE3uI,QAAQ,EAAEmuI,YAAY,CAAC;IACxDI,KAAK,CAAC5F,SAAS,CAACliM,KAAK,CAACkoM,UAAU,CAAC,CAACxvN,EAAE,CAAC;EACvC;AACF;AAEA,SAASiwN,iBAAiBA,CAAC/zI,EAAE,EAAE2E,QAAQ,EAAEuwI,QAAQ,EAAEC,aAAa,EAAE;EAChE,IAAI,CAACn1I,EAAE,CAAC4B,OAAO,EAAE;IACf8mB,0DAAW,CAAC,CAAC,CAAC,QAAQ,EAAEzkB,4FAA4B,CAAC;IAAE;IACvD;IACA,CAAC,QAAQ,EAAEkxI,aAAa,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,EAAED,QAAQ,IAAI,CAAC,CAAC;IAAE;IACtD,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,UAAUx2H,IAAI,EAAE;MAC1B,IAAIvpE,IAAI,GAAGupE,IAAI,CAAC,CAAC,CAAC;MAElB,IAAIgK,4DAAa,CAAC/jB,QAAQ,EAAExvD,IAAI,CAAC,EAAE;QACjC6qD,EAAE,CAAC7qD,IAAI,CAAC,GAAGuzE,+DAAgB,CAAC/jB,QAAQ,CAACxvD,IAAI,CAAC,EAAEupE,IAAI,CAAC,CAAC,CAAC,CAAC;MACtD,CAAC,MAAM,IAAI1e,EAAE,CAAC7qD,IAAI,CAAC,IAAI,IAAI,EAAE;QAC3B6qD,EAAE,CAAC7qD,IAAI,CAAC,GAAGupE,IAAI,CAAC,CAAC,CAAC;MACpB;IACF,CAAC,CAAC;EACJ;EAEAgK,0DAAW,CAACA,0DAAW,CAAC/jB,QAAQ,CAAC,EAAE,UAAUtmE,GAAG,EAAE;IAChD;IACA;IACA,IAAIA,GAAG,CAAC/d,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;MAC3B,IAAIujB,GAAG,GAAG8gE,QAAQ,CAACtmE,GAAG,CAAC;MACvB2hE,EAAE,CAAC3hE,GAAG,CAAC,GAAGqqF,gEAAiB,CAAC7kF,GAAG,CAAC,GAAGA,GAAG,GAAG,IAAI;IAC/C;EACF,CAAC,CAAC;EAEF,IAAI6kF,4DAAa,CAAC/jB,QAAQ,EAAE,WAAW,CAAC,EAAE;IACxC3E,EAAE,CAAC87C,SAAS,GAAGn3C,QAAQ,CAACm3C,SAAS;EACnC,CAAC,CAAC;;EAGFn3C,QAAQ,CAACr+E,IAAI,IAAI,IAAI,KAAK05E,EAAE,CAAC15E,IAAI,GAAGq+E,QAAQ,CAACr+E,IAAI,CAAC;EAClDq+E,QAAQ,CAAC7gF,EAAE,IAAI,IAAI,KAAKk8E,EAAE,CAACl8E,EAAE,GAAG6gF,QAAQ,CAAC7gF,EAAE,CAAC;AAC9C,CAAC,CAAC;;AAGF,SAAS6vN,kBAAkBA,CAAChvI,QAAQ,EAAE;EACpCA,QAAQ,GAAG+jB,4DAAa,CAAC,CAAC,CAAC,EAAE/jB,QAAQ,CAAC;EACtC+jB,0DAAW,CAAC,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC9pF,MAAM,CAAC6zM,6DAA0B,CAAC,EAAE,UAAUnsN,IAAI,EAAE;IACzI,OAAOq+E,QAAQ,CAACr+E,IAAI,CAAC;EACvB,CAAC,CAAC;EACF,OAAOq+E,QAAQ;AACjB;AAEA,SAASyvI,YAAYA,CAACp0I,EAAE,EAAE8yI,YAAY,EAAEnuI,QAAQ,EAAE;EAChD,IAAI4nE,SAAS,GAAG30D,+DAAS,CAAC5X,EAAE,CAAC,CAACusE,SAAS,CAAC,CAAC;;EAEzC,IAAI,CAACvsE,EAAE,CAACmH,MAAM,IAAI,CAACnH,EAAE,CAACoH,MAAM,IAAI,CAACmlE,SAAS,EAAE;IAC1CA,SAAS,GAAG30D,+DAAS,CAAC5X,EAAE,CAAC,CAACusE,SAAS,GAAG;MACpC1sD,aAAa,EAAE,SAAS;MACxB4sD,cAAc,EAAEqmE,YAAY,CAACrmE,cAAc;MAC3CnmJ,IAAI,EAAE05E,EAAE,CAAC15E;IACX,CAAC;EACH,CAAC,CAAC;EACF;;EAGA,IAAIimJ,SAAS,EAAE;IACbA,SAAS,CAACpuD,IAAI,GAAGxZ,QAAQ,CAACwZ,IAAI;EAChC;AACF;;;;;;;;;;;;;;;;;;ACjcA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACmD;AACO;AACF;AACjD,SAAS6R,OAAOA,CAACxb,SAAS,EAAE;EACjCA,SAAS,CAACq2G,sBAAsB,CAACknB,mEAAqB,CAAC;EACvDv9H,SAAS,CAACs2G,qBAAqB,CAAC8nB,iEAAoB,CAAC;EACrDp+H,SAAS,CAACwnB,oBAAoB,CAAC,UAAU9V,MAAM,EAAE;IAC/C,IAAImvH,aAAa,GAAGnvH,MAAM,CAACyC,OAAO,CAAC,CAAC;IACpC;IACA;IACA;IACA;IACA;;IAEA,IAAI53F,iEAAO,CAACskN,aAAa,CAAC,EAAE;MAC1B,IAAI,CAACA,aAAa,CAAC,CAAC,CAAC,IAAI,CAACA,aAAa,CAAC,CAAC,CAAC,CAAC5qI,QAAQ,EAAE;QACnDyb,MAAM,CAACyC,OAAO,GAAG,CAAC;UAChBle,QAAQ,EAAE4qI;QACZ,CAAC,CAAC;MACJ,CAAC,MAAM;QACL;QACA;QACAnvH,MAAM,CAACyC,OAAO,GAAG,CAACzC,MAAM,CAACyC,OAAO,CAAC,CAAC,CAAC,CAAC;MACtC;IACF,CAAC,MAAM,IAAI0sH,aAAa,IAAI,CAACA,aAAa,CAAC5qI,QAAQ,EAAE;MACnDyb,MAAM,CAACyC,OAAO,GAAG,CAAC;QAChBle,QAAQ,EAAE,CAAC4qI,aAAa;MAC1B,CAAC,CAAC;IACJ;EACF,CAAC,CAAC;AACJ;;;;;;;;;;;;;;;;;;ACxEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC8D;AACY;AACjC;AAClC,SAASrlH,OAAOA,CAACxb,SAAS,EAAE;EACjClb,kDAAG,CAACg8I,sDAAa,CAAC;EAClBh8I,kDAAG,CAACi8I,4DAAkB,CAAC;AACzB;;;;;;;;;;;;;;;;;;;;;;;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACkC;AACkB;AACO;AACd;AACO;AACoB;AACT;AACd;AACqC,CAAC;;AAEvF,IAAIK,QAAQ,GACZ;AACA,UAAUlgI,MAAM,EAAE;EAChBL,gDAAS,CAACugI,QAAQ,EAAElgI,MAAM,CAAC;EAE3B,SAASkgI,QAAQA,CAAA,EAAG;IAClB,IAAIxnN,KAAK,GAAGsnF,MAAM,KAAK,IAAI,IAAIA,MAAM,CAAC7yF,KAAK,CAAC,IAAI,EAAE0G,SAAS,CAAC,IAAI,IAAI;IAEpE6E,KAAK,CAACwF,IAAI,GAAG,MAAM;IACnB,OAAOxF,KAAK;EACd;EAEAwnN,QAAQ,CAACz1N,SAAS,CAACw5F,MAAM,GAAG,UAAU2gG,SAAS,EAAEl7G,OAAO,EAAE;IACxD,IAAI,CAACoT,KAAK,CAAC6K,SAAS,CAAC,CAAC;IAEtB,IAAIi9F,SAAS,CAAC/4L,GAAG,CAAC,MAAM,CAAC,EAAE;MACzB,IAAI,CAACixF,KAAK,CAACltF,GAAG,CAAC,IAAImyF,wDAAI,CAAC;QACtB5P,KAAK,EAAEyyG,SAAS,CAACz/F,gBAAgB,CAAC+O,OAAO,CAAC,CAAC;QAC3ChuF,KAAK,EAAE0uE,kEAAQ,CAAC;UACdt+D,IAAI,EAAEsuK,SAAS,CAAC/4L,GAAG,CAAC,iBAAiB;QACvC,CAAC,EAAE+4L,SAAS,CAACr+F,YAAY,CAAC,CAAC,CAAC;QAC5B9U,MAAM,EAAE,IAAI;QACZga,EAAE,EAAE,CAAC;MACP,CAAC,CAAC,CAAC;IACL;EACF,CAAC;EAEDy0H,QAAQ,CAAChiN,IAAI,GAAG,MAAM;EACtB,OAAOgiN,QAAQ;AACjB,CAAC,CAAC98B,0DAAa,CAAC;AAEhB,IAAI+8B,WAAW,GAAG;EAChB;EACA;EACAjoM,MAAM,EAAE;AACV,CAAC;AACM,SAASoiF,OAAOA,CAACxb,SAAS,EAAE;EACjCA,SAAS,CAACs2G,qBAAqB,CAAC8qB,QAAQ,CAAC;EACzCphI,SAAS,CAACq2G,sBAAsB,CAAC2qB,qEAAS,CAAC;EAC3ChhI,SAAS,CAACwyC,wBAAwB,CAAC,aAAa,EAAE2uF,gEAAI,CAAC;EACvDD,sEAAgB,CAAClhI,SAAS,EAAE,GAAG,EAAEihI,6EAAkB,EAAEI,WAAW,CAAC;EACjEH,sEAAgB,CAAClhI,SAAS,EAAE,GAAG,EAAEihI,6EAAkB,EAAEI,WAAW,CAAC;EACjErhI,SAAS,CAACs2G,qBAAqB,CAAC5P,0EAAkB,CAAC;EACnD1mG,SAAS,CAACs2G,qBAAqB,CAAC3P,0EAAkB,CAAC;EACnD3mG,SAAS,CAACwnB,oBAAoB,CAAC,UAAU9V,MAAM,EAAE;IAC/C;IACA,IAAIA,MAAM,CAACglC,KAAK,IAAIhlC,MAAM,CAACklC,KAAK,IAAI,CAACllC,MAAM,CAACw9F,IAAI,EAAE;MAChDx9F,MAAM,CAACw9F,IAAI,GAAG,CAAC,CAAC;IAClB;EACF,CAAC,CAAC;AACJ;;;;;;;;;;;;;;;;;;;;;;;;;ACtGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACkC;AACgE;AAC9C;AACH;AACS;AACR;AAClD,IAAIsyB,kBAAkB,GAAG,IAAI;AAC7B,IAAIl9H,OAAO,GAAGt1F,IAAI,CAACq6E,GAAG;AACtB,IAAIgb,OAAO,GAAGr1F,IAAI,CAACqC,GAAG;AACtB,IAAIowN,OAAO,GAAGzyN,IAAI,CAAC+nF,GAAG;AACtB,IAAI2qI,OAAO,GAAG,KAAK;AACnB,IAAIC,kBAAkB,GAAG,CAAC;AAC1B,IAAIC,qBAAqB,GAAG,CAAC;AAC7B,IAAIC,kBAAkB,GAAG,WAAW;AACpC,IAAIC,aAAa,GAAG;EAClB9uN,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;EACT1H,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;EACTU,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;EACT8B,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AACV,CAAC;AACD,IAAIi0N,UAAU,GAAG;EACf/uN,CAAC,EAAE,IAAI;EACP1H,CAAC,EAAE,IAAI;EACPU,CAAC,EAAE,IAAI;EACP8B,CAAC,EAAE,IAAI;EACPk0N,EAAE,EAAE,MAAM;EACV5hB,EAAE,EAAE,MAAM;EACV6hB,EAAE,EAAE,MAAM;EACVC,EAAE,EAAE;AACN,CAAC;AACD,IAAIC,iBAAiB,GAAG;EACtB95B,UAAU,EAAE;IACVv4F,SAAS,EAAE,CAAC;IACZH,MAAM,EAAE,uBAAuB;IAC/Bn4E,IAAI,EAAE;EACR,CAAC;EACD8iL,aAAa,EAAE,IAAI;EACnBD,SAAS,EAAE,QAAQ;EACnB/R,aAAa,EAAE;AACjB,CAAC;AACD,IAAI85B,OAAO,GAAG,CAAC;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAIx7B,eAAe,GACnB;AACA,UAAU1lG,MAAM,EAAE;EAChBL,gDAAS,CAAC+lG,eAAe,EAAE1lG,MAAM,CAAC;EAElC,SAAS0lG,eAAeA,CAACplC,EAAE,EAAE;IAC3B,IAAI5nJ,KAAK,GAAGsnF,MAAM,CAACr1F,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI;IACrC;AACJ;AACA;;IAGI+N,KAAK,CAACyoN,MAAM,GAAG,EAAE;IACjB;AACJ;AACA;;IAEIzoN,KAAK,CAAC0oN,OAAO,GAAG,EAAE;IAClB1oN,KAAK,CAAC2oN,SAAS,GAAG,CAAC,CAAC;IAEpB,IAAI30M,IAAqC,EAAE;MACzCuhE,gEAAM,CAACqyE,EAAE,CAAC;IACZ;IAEA5nJ,KAAK,CAAC4oN,GAAG,GAAGhhE,EAAE;IACd5nJ,KAAK,CAACokF,KAAK,GAAG,IAAImW,wDAAa,CAAC,CAAC;IACjCv6F,KAAK,CAAC6oN,IAAI,GAAG,kBAAkB,GAAGL,OAAO,EAAE;IAC3C10I,8DAAI,CAACg1I,eAAe,EAAE,UAAUxtB,OAAO,EAAEgkB,SAAS,EAAE;MAClD,IAAI,CAACqJ,SAAS,CAACrJ,SAAS,CAAC,GAAGvpN,8DAAI,CAACulM,OAAO,EAAE,IAAI,CAAC;IACjD,CAAC,EAAEt7L,KAAK,CAAC;IACT,OAAOA,KAAK;EACd;EACA;AACF;AACA;;EAGEgtL,eAAe,CAACj7L,SAAS,CAACy8L,WAAW,GAAG,UAAUwR,WAAW,EAAE;IAC7D,IAAIhsL,IAAqC,EAAE;MACzCuhE,gEAAM,CAAC,IAAI,CAACwzI,QAAQ,CAAC;IACvB;IAEA,IAAI,CAACC,UAAU,IAAI,IAAI,CAACC,eAAe,CAAC,CAAC;IACzCjpB,WAAW,CAAC3kF,SAAS,IAAI,IAAI,CAAC6tG,cAAc,CAAClpB,WAAW,CAAC;IACzD,OAAO,IAAI;EACb,CAAC;EAEDhT,eAAe,CAACj7L,SAAS,CAACm3N,cAAc,GAAG,UAAUlpB,WAAW,EAAE;IAChE,IAAIp4C,EAAE,GAAG,IAAI,CAACghE,GAAG,CAAC,CAAC;;IAEnB,IAAI,CAAC,IAAI,CAACO,gBAAgB,EAAE;MAC1BxB,sDAAqB,CAAC//D,EAAE,EAAEqgE,kBAAkB,EAAE,IAAI,CAACY,IAAI,CAAC;IAC1D;IAEA/0I,8DAAI,CAAC,IAAI,CAAC60I,SAAS,EAAE,UAAUrtB,OAAO,EAAEgkB,SAAS,EAAE;MACjD13D,EAAE,CAACh4D,EAAE,CAAC0vH,SAAS,EAAEhkB,OAAO,CAAC;IAC3B,CAAC,CAAC;IACF,IAAI,CAAC0tB,UAAU,GAAGhpB,WAAW,CAAC3kF,SAAS;IACvC,IAAI,CAACguG,YAAY,GAAGxoB,+DAAK,CAAC7jH,+DAAK,CAACurI,iBAAiB,CAAC,EAAEvoB,WAAW,EAAE,IAAI,CAAC;EACxE,CAAC;EAEDhT,eAAe,CAACj7L,SAAS,CAACk3N,eAAe,GAAG,YAAY;IACtD,IAAIrhE,EAAE,GAAG,IAAI,CAACghE,GAAG;IACjBjB,yDAAwB,CAAC//D,EAAE,EAAEqgE,kBAAkB,EAAE,IAAI,CAACY,IAAI,CAAC;IAC3D/0I,8DAAI,CAAC,IAAI,CAAC60I,SAAS,EAAE,UAAUrtB,OAAO,EAAEgkB,SAAS,EAAE;MACjD13D,EAAE,CAAChrE,GAAG,CAAC0iI,SAAS,EAAEhkB,OAAO,CAAC;IAC5B,CAAC,CAAC;IACF,IAAI,CAAC0tB,UAAU,GAAG,IAAI,CAACK,YAAY,GAAG,IAAI;EAC5C,CAAC;EACD;AACF;AACA;;EAGEr8B,eAAe,CAACj7L,SAAS,CAACk8L,SAAS,GAAG,UAAUs7B,SAAS,EAAE;IACzD,IAAIA,SAAS,IAAIA,SAAS,CAACl3N,MAAM,EAAE;MACjC,IAAIm3N,QAAQ,GAAG,IAAI,CAACC,OAAO,GAAG,CAAC,CAAC;MAChC31I,8DAAI,CAACy1I,SAAS,EAAE,UAAUA,SAAS,EAAE;QACnCC,QAAQ,CAACD,SAAS,CAACr7B,OAAO,CAAC,GAAGlxG,+DAAK,CAACusI,SAAS,CAAC;MAChD,CAAC,CAAC;IACJ,CAAC,MAAM;MACL,IAAI,CAACE,OAAO,GAAG,IAAI;IACrB;IAEA,OAAO,IAAI;EACb,CAAC;EAEDz8B,eAAe,CAACj7L,SAAS,CAACg8L,KAAK,GAAG,UAAUrnG,GAAG,EAAE;IAC/CA,GAAG,GAAGA,GAAG,IAAI,CAAC,CAAC;IAEf,IAAI1yE,IAAqC,EAAE;MACzC,IAAI,CAAC+0M,QAAQ,GAAG,IAAI,CAAC,CAAC;IACxB;;IAEA,IAAI,CAACI,gBAAgB,GAAGziI,GAAG,CAACsnG,eAAe;IAC3C,IAAI7d,SAAS,GAAG,IAAI,CAAC/rF,KAAK;IAE1B,IAAI,CAACwkI,GAAG,CAAC1xN,GAAG,CAACi5K,SAAS,CAAC;IAEvBA,SAAS,CAAC/6J,IAAI,CAAC;MACb/V,CAAC,EAAEqnF,GAAG,CAACrnF,CAAC,IAAI,CAAC;MACb/F,CAAC,EAAEotF,GAAG,CAACptF,CAAC,IAAI,CAAC;MACbojG,QAAQ,EAAEhW,GAAG,CAACgW,QAAQ,IAAI,CAAC;MAC3B9sB,MAAM,EAAE8W,GAAG,CAAC9W,MAAM,IAAI,CAAC;MACvBC,MAAM,EAAE6W,GAAG,CAAC7W,MAAM,IAAI;IACxB,CAAC,CAAC;IACF,IAAI,CAAC65I,UAAU,GAAGv5C,SAAS,CAACsZ,iBAAiB,CAAC,CAAC;IAC/C,OAAO,IAAI;EACb,CAAC,CAAC,CAAC;EACH;EACA;;EAEA;AACF;AACA;AACA;AACA;;EAGEuD,eAAe,CAACj7L,SAAS,CAAC48L,YAAY,GAAG,UAAUg7B,eAAe,EAAE;IAClE,IAAI31M,IAAqC,EAAE;MACzCuhE,gEAAM,CAAC,IAAI,CAACwzI,QAAQ,CAAC;IACvB;IAEAY,eAAe,GAAGpvN,6DAAG,CAACovN,eAAe,EAAE,UAAUC,WAAW,EAAE;MAC5D,OAAO/oB,+DAAK,CAAC7jH,+DAAK,CAACurI,iBAAiB,CAAC,EAAEqB,WAAW,EAAE,IAAI,CAAC;IAC3D,CAAC,CAAC;IACF,IAAIC,WAAW,GAAG,iBAAiB;IACnC,IAAIC,SAAS,GAAG,IAAI,CAACpB,OAAO;IAC5B,IAAIqB,SAAS,GAAG,IAAI,CAACrB,OAAO,GAAG,EAAE;IACjC,IAAIz4F,UAAU,GAAG,IAAI;IACrB,IAAI+5F,aAAa,GAAG,IAAI,CAACC,cAAc;IACvC,IAAIxqI,2DAAU,CAACqqI,SAAS,EAAEH,eAAe,EAAEO,SAAS,EAAEtvG,MAAM,CAAC,CAAC1jH,GAAG,CAACizN,WAAW,CAAC,CAAC5mI,MAAM,CAAC4mI,WAAW,CAAC,CAAC7qN,MAAM,CAACA,MAAM,CAAC,CAAC4kF,OAAO,CAAC,CAAC;IAC3H,OAAO,IAAI;IAEX,SAAS02B,MAAMA,CAAColF,WAAW,EAAE7lL,KAAK,EAAE;MAClC,OAAO,CAAC6lL,WAAW,CAACtqM,EAAE,IAAI,IAAI,GAAGsqM,WAAW,CAACtqM,EAAE,GAAGm0N,WAAW,GAAG1vM,KAAK,IAAI,GAAG,GAAG6lL,WAAW,CAAC3kF,SAAS;IACtG;IAEA,SAAS6uG,SAASA,CAACE,KAAK,EAAEjwM,KAAK,EAAE;MAC/B,OAAOygG,MAAM,CAACwvG,KAAK,CAACC,aAAa,EAAElwM,KAAK,CAAC;IAC3C;IAEA,SAASgwM,WAAWA,CAACppI,QAAQ,EAAEqC,QAAQ,EAAE;MACvC,IAAIknI,gBAAgB,GAAGX,eAAe,CAAC5oI,QAAQ,CAAC,CAAC,CAAC;MAClD;;MAEA,IAAIqC,QAAQ,IAAI,IAAI,IAAI0mI,SAAS,CAAC1mI,QAAQ,CAAC,KAAK4mI,aAAa,EAAE;QAC7DD,SAAS,CAAChpI,QAAQ,CAAC,GAAG+oI,SAAS,CAAC1mI,QAAQ,CAAC;MAC3C,CAAC,MAAM;QACL,IAAIgnI,KAAK,GAAGL,SAAS,CAAChpI,QAAQ,CAAC,GAAGqC,QAAQ,IAAI,IAAI,IAAI0mI,SAAS,CAAC1mI,QAAQ,CAAC,CAACinI,aAAa,GAAGC,gBAAgB,EAAER,SAAS,CAAC1mI,QAAQ,CAAC,IAAImnI,WAAW,CAACt6F,UAAU,EAAEu6F,WAAW,CAACv6F,UAAU,EAAEq6F,gBAAgB,CAAC,CAAC;QACrMG,wBAAwB,CAACx6F,UAAU,EAAEm6F,KAAK,CAAC;MAC7C;IACF;IAEA,SAAS9qN,MAAMA,CAAC8jF,QAAQ,EAAE;MACxB,IAAI0mI,SAAS,CAAC1mI,QAAQ,CAAC,KAAK4mI,aAAa,EAAE;QACzC/5F,UAAU,CAAC7rC,KAAK,CAAC9kF,MAAM,CAACwqN,SAAS,CAAC1mI,QAAQ,CAAC,CAAC;MAC9C;IACF;EACF,CAAC;EAED4pG,eAAe,CAACj7L,SAAS,CAAC24N,OAAO,GAAG,YAAY;IAC9C,IAAI12M,IAAqC,EAAE;MACzC,IAAI,CAAC,IAAI,CAAC+0M,QAAQ,EAAE;QAClB;MACF;IACF;IAEA,IAAI,CAACv6B,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;;IAEzBm8B,WAAW,CAAC,IAAI,CAAC;IAEjB,IAAI,CAAC/B,GAAG,CAACtpN,MAAM,CAAC,IAAI,CAAC8kF,KAAK,CAAC;IAE3B,IAAIpwE,IAAqC,EAAE;MACzC,IAAI,CAAC+0M,QAAQ,GAAG,KAAK,CAAC,CAAC;IACzB;;IAEA,OAAO,IAAI;EACb,CAAC;EAED/7B,eAAe,CAACj7L,SAAS,CAAC8/F,OAAO,GAAG,YAAY;IAC9C,IAAI,CAAC64H,OAAO,CAAC,CAAC;IACd,IAAI,CAAC9tI,GAAG,CAAC,CAAC;EACZ,CAAC;EAED,OAAOowG,eAAe;AACxB,CAAC,CAAC06B,oEAAQ,CAAC;AAEX,SAAS8C,WAAWA,CAACv6F,UAAU,EAAE+vE,WAAW,EAAE;EAC5C,IAAIoqB,KAAK,GAAGQ,cAAc,CAAC5qB,WAAW,CAAC3kF,SAAS,CAAC,CAACmvG,WAAW,CAACv6F,UAAU,EAAE+vE,WAAW,CAAC;EACtFoqB,KAAK,CAACC,aAAa,GAAGrqB,WAAW;EACjC/rF,OAAO,CAACm2G,KAAK,EAAEpqB,WAAW,CAAC;EAC3B/vE,UAAU,CAAC7rC,KAAK,CAACltF,GAAG,CAACkzN,KAAK,CAAC;EAC3B,OAAOA,KAAK;AACd;AAEA,SAASG,WAAWA,CAACt6F,UAAU,EAAE+5F,aAAa,EAAE;EAC9C,IAAIa,aAAa,GAAGC,gBAAgB,CAACd,aAAa,CAAC;EAEnD,IAAIa,aAAa,CAACN,WAAW,EAAE;IAC7BM,aAAa,CAACN,WAAW,CAACt6F,UAAU,EAAE+5F,aAAa,CAAC;IACpD/1G,OAAO,CAAC+1G,aAAa,EAAEA,aAAa,CAACK,aAAa,CAAC;EACrD;EAEA,OAAOL,aAAa;AACtB;AAEA,SAASe,gBAAgBA,CAAC96F,UAAU,EAAEm6F,KAAK,EAAE;EAC3C,IAAIpqB,WAAW,GAAGoqB,KAAK,CAACC,aAAa;EACrCS,gBAAgB,CAACV,KAAK,CAAC,CAACW,gBAAgB,CAAC96F,UAAU,EAAEm6F,KAAK,EAAEpqB,WAAW,CAAC9jE,KAAK,EAAE8jE,WAAW,CAAC;AAC7F;AAEA,SAAS/rF,OAAOA,CAACm2G,KAAK,EAAEpqB,WAAW,EAAE;EACnC,IAAIvgM,CAAC,GAAGugM,WAAW,CAACvgM,CAAC;EACrBA,CAAC,IAAI,IAAI,KAAKA,CAAC,GAAGqoN,OAAO,CAAC;EAC1BsC,KAAK,CAAC32I,QAAQ,CAAC,UAAU7B,EAAE,EAAE;IAC3BA,EAAE,CAACnyE,CAAC,GAAGA,CAAC;IACRmyE,EAAE,CAACmhB,EAAE,GAAGtzF,CAAC,CAAC,CAAC;EACb,CAAC,CAAC;AACJ;;AAEA,SAASgrN,wBAAwBA,CAACx6F,UAAU,EAAEm6F,KAAK,EAAE;EACnDU,gBAAgB,CAACV,KAAK,CAAC,CAACjuH,YAAY,CAAC8zB,UAAU,EAAEm6F,KAAK,CAAC;EACvDW,gBAAgB,CAAC96F,UAAU,EAAEm6F,KAAK,CAAC;AACrC;AAEA,SAASU,gBAAgBA,CAACV,KAAK,EAAE;EAC/B,OAAOQ,cAAc,CAACR,KAAK,CAACC,aAAa,CAAChvG,SAAS,CAAC;AACtD,CAAC,CAAC;;AAGF,SAAS2vG,eAAeA,CAAC/6F,UAAU,EAAEv+H,CAAC,EAAEu5N,gBAAgB,EAAE;EACxD,IAAIC,MAAM,GAAGj7F,UAAU,CAACw5F,OAAO;EAE/B,IAAI,CAACyB,MAAM,EAAE;IACX,OAAOtD,kBAAkB,CAAC,CAAC;EAC7B;;EAEA,IAAIuD,KAAK;EACT,IAAI3uM,SAAS,GAAGyzG,UAAU,CAACy5F,UAAU;EACrC51I,8DAAI,CAACo3I,MAAM,EAAE,UAAUE,EAAE,EAAE;IACzBA,EAAE,CAACh9B,gBAAgB,CAAC18L,CAAC,EAAEu5N,gBAAgB,EAAEzuM,SAAS,CAAC,KAAK2uM,KAAK,GAAGC,EAAE,CAAC;EACrE,CAAC,CAAC;EACF,OAAOD,KAAK;AACd,CAAC,CAAC;;AAGF,SAASE,eAAeA,CAACp7F,UAAU,EAAEm6F,KAAK,EAAE;EAC1C,IAAIc,MAAM,GAAGj7F,UAAU,CAACw5F,OAAO;EAE/B,IAAI,CAACyB,MAAM,EAAE;IACX,OAAOtD,kBAAkB,CAAC,CAAC;EAC7B;;EAEA,IAAI15B,OAAO,GAAGk8B,KAAK,CAACC,aAAa,CAACn8B,OAAO,CAAC,CAAC;EAC3C;;EAEA,OAAOA,OAAO,IAAI,IAAI,GAAGg9B,MAAM,CAACh9B,OAAO,CAAC,GAAG05B,kBAAkB;AAC/D;AAEA,SAAS+C,WAAWA,CAAC16F,UAAU,EAAE;EAC/B,IAAIq7F,MAAM,GAAGr7F,UAAU,CAACy4F,OAAO;EAC/B,IAAI6C,cAAc,GAAGD,MAAM,CAACj5N,MAAM;EAClCyhF,8DAAI,CAACw3I,MAAM,EAAE,UAAUlB,KAAK,EAAE;IAC5Bn6F,UAAU,CAAC7rC,KAAK,CAAC9kF,MAAM,CAAC8qN,KAAK,CAAC;EAChC,CAAC,EAAEn6F,UAAU,CAAC;EACdq7F,MAAM,CAACj5N,MAAM,GAAG,CAAC;EACjB,OAAO,CAAC,CAACk5N,cAAc;AACzB;AAEA,SAASC,OAAOA,CAACv7F,UAAU,EAAEvpC,GAAG,EAAE;EAChC,IAAIqoG,KAAK,GAAGx0L,6DAAG,CAAC01H,UAAU,CAACy4F,OAAO,EAAE,UAAU0B,KAAK,EAAE;IACnD,IAAIpqB,WAAW,GAAGoqB,KAAK,CAACC,aAAa;IACrC,IAAInuF,KAAK,GAAGl/C,+DAAK,CAACgjH,WAAW,CAAC9jE,KAAK,CAAC;IACpC,OAAO;MACL7gB,SAAS,EAAE2kF,WAAW,CAAC3kF,SAAS;MAChC6yE,OAAO,EAAE8R,WAAW,CAAC9R,OAAO;MAC5BhyD,KAAK,EAAEA;IACT,CAAC;EACH,CAAC,CAAC;EACFjM,UAAU,CAACu7F,OAAO,CAAC,OAAO,EAAE;IAC1Bz8B,KAAK,EAAEA,KAAK;IACZr2F,KAAK,EAAE,CAAC,CAAChS,GAAG,CAACgS,KAAK;IAClBg2F,aAAa,EAAE,CAAC,CAAChoG,GAAG,CAACgoG;EACvB,CAAC,CAAC;AACJ;AAEA,SAAS+8B,eAAeA,CAACx7F,UAAU,EAAE;EACnC,IAAIy7F,KAAK,GAAGz7F,UAAU,CAACw4F,MAAM;EAE7B,IAAI,CAACiD,KAAK,CAACr5N,MAAM,EAAE;IACjB,OAAO,KAAK;EACd;EAEA,IAAIs/H,EAAE,GAAG+5F,KAAK,CAACA,KAAK,CAACr5N,MAAM,GAAG,CAAC,CAAC;EAChC,IAAIq/H,EAAE,GAAGg6F,KAAK,CAAC,CAAC,CAAC;EACjB,IAAIr8I,EAAE,GAAGsiD,EAAE,CAAC,CAAC,CAAC,GAAGD,EAAE,CAAC,CAAC,CAAC;EACtB,IAAIpiD,EAAE,GAAGqiD,EAAE,CAAC,CAAC,CAAC,GAAGD,EAAE,CAAC,CAAC,CAAC;EACtB,IAAImO,IAAI,GAAGgoF,OAAO,CAACx4I,EAAE,GAAGA,EAAE,GAAGC,EAAE,GAAGA,EAAE,EAAE,GAAG,CAAC;EAC1C,OAAOuwD,IAAI,GAAGkoF,kBAAkB;AAClC;AAEA,SAAS4D,YAAYA,CAACD,KAAK,EAAE;EAC3B,IAAIp6C,IAAI,GAAGo6C,KAAK,CAACr5N,MAAM,GAAG,CAAC;EAC3Bi/K,IAAI,GAAG,CAAC,KAAKA,IAAI,GAAG,CAAC,CAAC;EACtB,OAAO,CAACo6C,KAAK,CAAC,CAAC,CAAC,EAAEA,KAAK,CAACp6C,IAAI,CAAC,CAAC;AAChC;AAEA;AAEA,SAASs6C,mBAAmBA,CAACC,kBAAkB,EAAE57F,UAAU,EAAE+vE,WAAW,EAAE8rB,iBAAiB,EAAE;EAC3F,IAAI1B,KAAK,GAAG,IAAI7vH,wDAAa,CAAC,CAAC;EAC/B6vH,KAAK,CAAClzN,GAAG,CAAC,IAAIqjG,wDAAY,CAAC;IACzBriG,IAAI,EAAE,MAAM;IACZsV,KAAK,EAAEu+M,SAAS,CAAC/rB,WAAW,CAAC;IAC7BjnH,MAAM,EAAE,IAAI;IACZ20C,SAAS,EAAE,IAAI;IACftsB,MAAM,EAAE,MAAM;IACd0pC,KAAK,EAAE3oC,+DAAK,CAAC6pH,SAAS,EAAEH,kBAAkB,EAAE57F,UAAU,EAAEm6F,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACpF/uD,SAAS,EAAEl5D,+DAAK,CAACqpH,OAAO,EAAEv7F,UAAU,EAAE;MACpCv3B,KAAK,EAAE;IACT,CAAC;EACH,CAAC,CAAC,CAAC;EACH5kB,8DAAI,CAACg4I,iBAAiB,EAAE,UAAUG,YAAY,EAAE;IAC9C7B,KAAK,CAAClzN,GAAG,CAAC,IAAIqjG,wDAAY,CAAC;MACzBriG,IAAI,EAAE+zN,YAAY,CAACxxN,IAAI,CAAC,EAAE,CAAC;MAC3B+S,KAAK,EAAE;QACLwb,OAAO,EAAE;MACX,CAAC;MACD0kG,SAAS,EAAE,IAAI;MACf30C,MAAM,EAAE,IAAI;MACZE,SAAS,EAAE,IAAI;MACf6xD,KAAK,EAAE3oC,+DAAK,CAAC6pH,SAAS,EAAEH,kBAAkB,EAAE57F,UAAU,EAAEm6F,KAAK,EAAE6B,YAAY,CAAC;MAC5E5wD,SAAS,EAAEl5D,+DAAK,CAACqpH,OAAO,EAAEv7F,UAAU,EAAE;QACpCv3B,KAAK,EAAE;MACT,CAAC;IACH,CAAC,CAAC,CAAC;EACL,CAAC,CAAC;EACF,OAAO0xH,KAAK;AACd;AAEA,SAAS8B,cAAcA,CAACj8F,UAAU,EAAEm6F,KAAK,EAAE+B,UAAU,EAAEnsB,WAAW,EAAE;EAClE,IAAI9pG,SAAS,GAAG8pG,WAAW,CAACvR,UAAU,CAACv4F,SAAS,IAAI,CAAC;EACrD,IAAI+9F,UAAU,GAAGxpG,OAAO,CAACyL,SAAS,EAAE8xH,qBAAqB,CAAC;EAC1D,IAAI3oN,CAAC,GAAG8sN,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;EACxB,IAAI7yN,CAAC,GAAG6yN,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;EACxB,IAAIC,EAAE,GAAG/sN,CAAC,GAAG62F,SAAS,GAAG,CAAC;EAC1B,IAAIm2H,EAAE,GAAG/yN,CAAC,GAAG48F,SAAS,GAAG,CAAC;EAC1B,IAAI7D,EAAE,GAAG85H,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;EACzB,IAAI75H,EAAE,GAAG65H,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;EACzB,IAAIG,GAAG,GAAGj6H,EAAE,GAAG4hG,UAAU,GAAG/9F,SAAS,GAAG,CAAC;EACzC,IAAIq2H,GAAG,GAAGj6H,EAAE,GAAG2hG,UAAU,GAAG/9F,SAAS,GAAG,CAAC;EACzC,IAAI/4E,KAAK,GAAGk1E,EAAE,GAAGhzF,CAAC;EAClB,IAAIge,MAAM,GAAGi1E,EAAE,GAAGh5F,CAAC;EACnB,IAAIkzN,MAAM,GAAGrvM,KAAK,GAAG+4E,SAAS;EAC9B,IAAIu2H,OAAO,GAAGpvM,MAAM,GAAG64E,SAAS;EAChCw2H,eAAe,CAACz8F,UAAU,EAAEm6F,KAAK,EAAE,MAAM,EAAE/qN,CAAC,EAAE/F,CAAC,EAAE6jB,KAAK,EAAEE,MAAM,CAAC;EAE/D,IAAI2iL,WAAW,CAACU,aAAa,EAAE;IAC7BgsB,eAAe,CAACz8F,UAAU,EAAEm6F,KAAK,EAAE,GAAG,EAAEgC,EAAE,EAAEC,EAAE,EAAEp4B,UAAU,EAAEw4B,OAAO,CAAC;IACpEC,eAAe,CAACz8F,UAAU,EAAEm6F,KAAK,EAAE,GAAG,EAAEkC,GAAG,EAAED,EAAE,EAAEp4B,UAAU,EAAEw4B,OAAO,CAAC;IACrEC,eAAe,CAACz8F,UAAU,EAAEm6F,KAAK,EAAE,GAAG,EAAEgC,EAAE,EAAEC,EAAE,EAAEG,MAAM,EAAEv4B,UAAU,CAAC;IACnEy4B,eAAe,CAACz8F,UAAU,EAAEm6F,KAAK,EAAE,GAAG,EAAEgC,EAAE,EAAEG,GAAG,EAAEC,MAAM,EAAEv4B,UAAU,CAAC;IACpEy4B,eAAe,CAACz8F,UAAU,EAAEm6F,KAAK,EAAE,IAAI,EAAEgC,EAAE,EAAEC,EAAE,EAAEp4B,UAAU,EAAEA,UAAU,CAAC;IACxEy4B,eAAe,CAACz8F,UAAU,EAAEm6F,KAAK,EAAE,IAAI,EAAEkC,GAAG,EAAED,EAAE,EAAEp4B,UAAU,EAAEA,UAAU,CAAC;IACzEy4B,eAAe,CAACz8F,UAAU,EAAEm6F,KAAK,EAAE,IAAI,EAAEgC,EAAE,EAAEG,GAAG,EAAEt4B,UAAU,EAAEA,UAAU,CAAC;IACzEy4B,eAAe,CAACz8F,UAAU,EAAEm6F,KAAK,EAAE,IAAI,EAAEkC,GAAG,EAAEC,GAAG,EAAEt4B,UAAU,EAAEA,UAAU,CAAC;EAC5E;AACF;AAEA,SAAS93F,YAAYA,CAAC8zB,UAAU,EAAEm6F,KAAK,EAAE;EACvC,IAAIpqB,WAAW,GAAGoqB,KAAK,CAACC,aAAa;EACrC,IAAI3pB,aAAa,GAAGV,WAAW,CAACU,aAAa;EAC7C,IAAIisB,MAAM,GAAGvC,KAAK,CAAC3vG,OAAO,CAAC,CAAC,CAAC;EAC7BkyG,MAAM,CAACh0I,QAAQ,CAACozI,SAAS,CAAC/rB,WAAW,CAAC,CAAC;EACvC2sB,MAAM,CAACv3M,IAAI,CAAC;IACV2jE,MAAM,EAAE,CAAC2nH,aAAa;IACtBt/F,MAAM,EAAEs/F,aAAa,GAAG,MAAM,GAAG;EACnC,CAAC,CAAC;EACF5sH,8DAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,UAAUm4I,YAAY,EAAE;IACzG,IAAIr6I,EAAE,GAAGw4I,KAAK,CAACljF,WAAW,CAAC+kF,YAAY,CAACxxN,IAAI,CAAC,EAAE,CAAC,CAAC;IACjD,IAAImyN,SAAS,GAAGX,YAAY,CAAC55N,MAAM,KAAK,CAAC,GAAGw6N,mBAAmB,CAAC58F,UAAU,EAAEg8F,YAAY,CAAC,CAAC,CAAC,CAAC,GAAGa,mBAAmB,CAAC78F,UAAU,EAAEg8F,YAAY,CAAC;IAC5Ir6I,EAAE,IAAIA,EAAE,CAACx8D,IAAI,CAAC;MACZ2jE,MAAM,EAAE,CAAC2nH,aAAa;MACtBznH,SAAS,EAAE,CAACynH,aAAa;MACzBt/F,MAAM,EAAEs/F,aAAa,GAAGynB,UAAU,CAACyE,SAAS,CAAC,GAAG,SAAS,GAAG;IAC9D,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ;AAEA,SAASF,eAAeA,CAACz8F,UAAU,EAAEm6F,KAAK,EAAElyN,IAAI,EAAEmH,CAAC,EAAE/F,CAAC,EAAEF,CAAC,EAAE7C,CAAC,EAAE;EAC5D,IAAIq7E,EAAE,GAAGw4I,KAAK,CAACljF,WAAW,CAAChvI,IAAI,CAAC;EAChC05E,EAAE,IAAIA,EAAE,CAAC2H,QAAQ,CAACwzI,YAAY,CAACC,WAAW,CAAC/8F,UAAU,EAAEm6F,KAAK,EAAE,CAAC,CAAC/qN,CAAC,EAAE/F,CAAC,CAAC,EAAE,CAAC+F,CAAC,GAAGjG,CAAC,EAAEE,CAAC,GAAG/C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3F;AAEA,SAASw1N,SAASA,CAAC/rB,WAAW,EAAE;EAC9B,OAAO9jH,kEAAQ,CAAC;IACdmjB,aAAa,EAAE;EACjB,CAAC,EAAE2gG,WAAW,CAACvR,UAAU,CAAC;AAC5B;AAEA,SAASw+B,eAAeA,CAAC5tN,CAAC,EAAE/F,CAAC,EAAE+4F,EAAE,EAAEC,EAAE,EAAE;EACrC,IAAI7iB,GAAG,GAAG,CAACib,OAAO,CAACrrF,CAAC,EAAEgzF,EAAE,CAAC,EAAE3H,OAAO,CAACpxF,CAAC,EAAEg5F,EAAE,CAAC,CAAC;EAC1C,IAAI76F,GAAG,GAAG,CAACgzF,OAAO,CAACprF,CAAC,EAAEgzF,EAAE,CAAC,EAAE5H,OAAO,CAACnxF,CAAC,EAAEg5F,EAAE,CAAC,CAAC;EAC1C,OAAO,CAAC,CAAC7iB,GAAG,CAAC,CAAC,CAAC,EAAEh4E,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAACg4E,GAAG,CAAC,CAAC,CAAC,EAAEh4E,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;EAAA,CAC1C;AACH;;AAEA,SAAS6hF,YAAYA,CAAC22C,UAAU,EAAE;EAChC,OAAO11B,0DAAoB,CAAC01B,UAAU,CAAC7rC,KAAK,CAAC;AAC/C;AAEA,SAASyoI,mBAAmBA,CAAC58F,UAAU,EAAEi9F,YAAY,EAAE;EACrD,IAAI3yN,GAAG,GAAG;IACRnB,CAAC,EAAE,MAAM;IACT1H,CAAC,EAAE,OAAO;IACVU,CAAC,EAAE,KAAK;IACR8B,CAAC,EAAE;EACL,CAAC;EACD,IAAIi5N,UAAU,GAAG;IACfzvG,IAAI,EAAE,GAAG;IACTE,KAAK,EAAE,GAAG;IACVD,GAAG,EAAE,GAAG;IACRE,MAAM,EAAE;EACV,CAAC;EACD,IAAIwrB,GAAG,GAAG9uC,gEAA0B,CAAChgG,GAAG,CAAC2yN,YAAY,CAAC,EAAE5zI,YAAY,CAAC22C,UAAU,CAAC,CAAC;EACjF,OAAOk9F,UAAU,CAAC9jF,GAAG,CAAC;AACxB;AAEA,SAASyjF,mBAAmBA,CAAC78F,UAAU,EAAEm9F,eAAe,EAAE;EACxD,IAAIR,SAAS,GAAG,CAACC,mBAAmB,CAAC58F,UAAU,EAAEm9F,eAAe,CAAC,CAAC,CAAC,CAAC,EAAEP,mBAAmB,CAAC58F,UAAU,EAAEm9F,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;EAC1H,CAACR,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,IAAIA,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,KAAKA,SAAS,CAAC/uH,OAAO,CAAC,CAAC;EACrE,OAAO+uH,SAAS,CAACnyN,IAAI,CAAC,EAAE,CAAC;AAC3B;AAEA,SAASuxN,SAASA,CAACH,kBAAkB,EAAE57F,UAAU,EAAEm6F,KAAK,EAAEiD,eAAe,EAAEh+I,EAAE,EAAEC,EAAE,EAAE;EACjF,IAAI0wH,WAAW,GAAGoqB,KAAK,CAACC,aAAa;EACrC,IAAIiD,SAAS,GAAGzB,kBAAkB,CAAC0B,WAAW,CAACvtB,WAAW,CAAC9jE,KAAK,CAAC;EACjE,IAAIsxF,UAAU,GAAGC,YAAY,CAACx9F,UAAU,EAAE5gD,EAAE,EAAEC,EAAE,CAAC;EACjDwE,8DAAI,CAACu5I,eAAe,EAAE,UAAUK,OAAO,EAAE;IACvC,IAAIC,GAAG,GAAGzF,aAAa,CAACwF,OAAO,CAAC;IAChCJ,SAAS,CAACK,GAAG,CAAC,CAAC,CAAC,CAAC,CAACA,GAAG,CAAC,CAAC,CAAC,CAAC,IAAIH,UAAU,CAACG,GAAG,CAAC,CAAC,CAAC,CAAC;EACjD,CAAC,CAAC;EACF3tB,WAAW,CAAC9jE,KAAK,GAAG2vF,kBAAkB,CAAC+B,aAAa,CAACX,eAAe,CAACK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;EACzI7C,wBAAwB,CAACx6F,UAAU,EAAEm6F,KAAK,CAAC;EAC3CoB,OAAO,CAACv7F,UAAU,EAAE;IAClBv3B,KAAK,EAAE;EACT,CAAC,CAAC;AACJ;AAEA,SAASm1H,YAAYA,CAAC59F,UAAU,EAAEm6F,KAAK,EAAE/6I,EAAE,EAAEC,EAAE,EAAE;EAC/C,IAAI4sD,KAAK,GAAGkuF,KAAK,CAACC,aAAa,CAACnuF,KAAK;EACrC,IAAIsxF,UAAU,GAAGC,YAAY,CAACx9F,UAAU,EAAE5gD,EAAE,EAAEC,EAAE,CAAC;EACjDwE,8DAAI,CAACooD,KAAK,EAAE,UAAUztD,KAAK,EAAE;IAC3BA,KAAK,CAAC,CAAC,CAAC,IAAI++I,UAAU,CAAC,CAAC,CAAC;IACzB/+I,KAAK,CAAC,CAAC,CAAC,IAAI++I,UAAU,CAAC,CAAC,CAAC;EAC3B,CAAC,CAAC;EACF/C,wBAAwB,CAACx6F,UAAU,EAAEm6F,KAAK,CAAC;EAC3CoB,OAAO,CAACv7F,UAAU,EAAE;IAClBv3B,KAAK,EAAE;EACT,CAAC,CAAC;AACJ;AAEA,SAAS+0H,YAAYA,CAACx9F,UAAU,EAAE5gD,EAAE,EAAEC,EAAE,EAAE;EACxC,IAAI6gG,SAAS,GAAGlgD,UAAU,CAAC7rC,KAAK;EAChC,IAAI0pI,MAAM,GAAG39C,SAAS,CAAC3sC,qBAAqB,CAACn0D,EAAE,EAAEC,EAAE,CAAC;EACpD,IAAIy+I,SAAS,GAAG59C,SAAS,CAAC3sC,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC;EACrD,OAAO,CAACsqF,MAAM,CAAC,CAAC,CAAC,GAAGC,SAAS,CAAC,CAAC,CAAC,EAAED,MAAM,CAAC,CAAC,CAAC,GAAGC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC7D;AAEA,SAASf,WAAWA,CAAC/8F,UAAU,EAAEm6F,KAAK,EAAE5tN,IAAI,EAAE;EAC5C,IAAI2uN,KAAK,GAAGE,eAAe,CAACp7F,UAAU,EAAEm6F,KAAK,CAAC;EAC9C,OAAOe,KAAK,IAAIA,KAAK,KAAKvD,kBAAkB,GAAGuD,KAAK,CAAC/7H,QAAQ,CAAC5yF,IAAI,EAAEyzH,UAAU,CAACy5F,UAAU,CAAC,GAAG1sI,+DAAK,CAACxgF,IAAI,CAAC;AAC1G;AAEA,SAASuwN,YAAYA,CAACv2H,MAAM,EAAE;EAC5B,IAAIw3H,IAAI,GAAGtjI,OAAO,CAAC8L,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;EAC9C,IAAIy3H,IAAI,GAAGvjI,OAAO,CAAC8L,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;EAC9C,IAAI03H,IAAI,GAAGzjI,OAAO,CAAC+L,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;EAC9C,IAAI23H,IAAI,GAAG1jI,OAAO,CAAC+L,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;EAC9C,OAAO;IACLn3F,CAAC,EAAE2uN,IAAI;IACP10N,CAAC,EAAE20N,IAAI;IACP9wM,KAAK,EAAE+wM,IAAI,GAAGF,IAAI;IAClB3wM,MAAM,EAAE8wM,IAAI,GAAGF;EACjB,CAAC;AACH;AAEA,SAASG,WAAWA,CAACn+F,UAAU,EAAEv+H,CAAC,EAAEu5N,gBAAgB,EAAE;EACpD;EAAK;EACL,CAACh7F,UAAU,CAAC+4F,UAAU,CAAC;EACvB;EACA;EAAA,GACGqF,eAAe,CAACp+F,UAAU,EAAEv+H,CAAC,CAAC6lG,OAAO,EAAE7lG,CAAC,CAAC8lG,OAAO,CAAC,EAAE;IACpD;EACF;EAEA,IAAIowD,EAAE,GAAG33B,UAAU,CAAC24F,GAAG;EACvB,IAAI0C,MAAM,GAAGr7F,UAAU,CAACy4F,OAAO;EAC/B,IAAI4F,SAAS,GAAGtD,eAAe,CAAC/6F,UAAU,EAAEv+H,CAAC,EAAEu5N,gBAAgB,CAAC,CAAC,CAAC;;EAElE,IAAI,CAACh7F,UAAU,CAAC2hE,SAAS,EAAE;IACzB,KAAK,IAAIhgM,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG05N,MAAM,CAACj5N,MAAM,EAAET,CAAC,EAAE,EAAE;MACtC,IAAIouM,WAAW,GAAGsrB,MAAM,CAAC15N,CAAC,CAAC,CAACy4N,aAAa;MAEzC,IAAIiE,SAAS,KAAKA,SAAS,KAAK1G,kBAAkB,IAAI5nB,WAAW,CAAC9R,OAAO,KAAKogC,SAAS,CAACpgC,OAAO,CAAC,IAAI08B,cAAc,CAAC5qB,WAAW,CAAC3kF,SAAS,CAAC,CAACvR,OAAO,CAACwhH,MAAM,CAAC15N,CAAC,CAAC,EAAEq5N,gBAAgB,CAAC,CAAC,CAAC,EAAEA,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE;QACtM;QACA;MACF;IACF;EACF;EAEAqD,SAAS,IAAI1mE,EAAE,CAAC2mE,cAAc,CAAC,WAAW,CAAC;AAC7C;AAEA,SAASC,cAAcA,CAAC98N,CAAC,EAAE;EACzB,IAAI+8N,IAAI,GAAG/8N,CAAC,CAAC0lG,KAAK;EAClBq3H,IAAI,CAACD,cAAc,IAAIC,IAAI,CAACD,cAAc,CAAC,CAAC;AAC9C;AAEA,SAASE,gBAAgBA,CAACtE,KAAK,EAAE/qN,CAAC,EAAE/F,CAAC,EAAE;EACrC,OAAO8wN,KAAK,CAACljF,WAAW,CAAC,MAAM,CAAC,CAACp9B,OAAO,CAACzqG,CAAC,EAAE/F,CAAC,CAAC;AAChD;AAEA,SAASq1N,kBAAkBA,CAAC1+F,UAAU,EAAEv+H,CAAC,EAAEu5N,gBAAgB,EAAEvyH,KAAK,EAAE;EAClE,IAAIsxH,aAAa,GAAG/5F,UAAU,CAACg6F,cAAc;EAC7C,IAAIkB,KAAK,GAAGl7F,UAAU,CAAC2+F,cAAc;EACrC,IAAIC,eAAe,GAAG5+F,UAAU,CAACo5F,YAAY;EAC7C,IAAIyF,WAAW;EAEf7+F,UAAU,CAACw4F,MAAM,CAACtzN,IAAI,CAAC81N,gBAAgB,CAACrzN,KAAK,CAAC,CAAC,CAAC;EAEhD,IAAI6zN,eAAe,CAACx7F,UAAU,CAAC,IAAI+5F,aAAa,EAAE;IAChD,IAAImB,KAAK,IAAI,CAACnB,aAAa,EAAE;MAC3B6E,eAAe,CAACpuB,SAAS,KAAK,QAAQ,IAAIkqB,WAAW,CAAC16F,UAAU,CAAC;MACjE,IAAI+vE,WAAW,GAAGhjH,+DAAK,CAAC6xI,eAAe,CAAC;MACxC7uB,WAAW,CAAC3kF,SAAS,GAAG0zG,kBAAkB,CAAC/uB,WAAW,CAAC3kF,SAAS,EAAE8vG,KAAK,CAAC;MACxEnrB,WAAW,CAAC9R,OAAO,GAAGi9B,KAAK,KAAKvD,kBAAkB,GAAG,IAAI,GAAGuD,KAAK,CAACj9B,OAAO;MACzE87B,aAAa,GAAG/5F,UAAU,CAACg6F,cAAc,GAAGO,WAAW,CAACv6F,UAAU,EAAE+vE,WAAW,CAAC;MAEhF/vE,UAAU,CAACy4F,OAAO,CAACvzN,IAAI,CAAC60N,aAAa,CAAC;IACxC;IAEA,IAAIA,aAAa,EAAE;MACjB,IAAIa,aAAa,GAAGD,cAAc,CAACmE,kBAAkB,CAAC9+F,UAAU,CAAC+4F,UAAU,EAAEmC,KAAK,CAAC,CAAC;MACpF,IAAI6D,gBAAgB,GAAGhF,aAAa,CAACK,aAAa;MAClD2E,gBAAgB,CAAC9yF,KAAK,GAAG2uF,aAAa,CAACoE,gBAAgB,CAACjC,WAAW,CAAC/8F,UAAU,EAAE+5F,aAAa,EAAE/5F,UAAU,CAACw4F,MAAM,CAAC,CAAC;MAElH,IAAI/vH,KAAK,EAAE;QACT6xH,WAAW,CAACt6F,UAAU,EAAE+5F,aAAa,CAAC;QACtCa,aAAa,CAAC1uH,YAAY,CAAC8zB,UAAU,EAAE+5F,aAAa,CAAC;MACvD;MAEAe,gBAAgB,CAAC96F,UAAU,EAAE+5F,aAAa,CAAC;MAC3C8E,WAAW,GAAG;QACZp2H,KAAK,EAAEA;MACT,CAAC;IACH;EACF,CAAC,MAAM,IAAIA,KAAK,IAAIm2H,eAAe,CAACpuB,SAAS,KAAK,QAAQ,IAAIouB,eAAe,CAACngC,aAAa,EAAE;IAC3F;IACA;IACA;IACA;IACA;IACA,IAAIs8B,eAAe,CAAC/6F,UAAU,EAAEv+H,CAAC,EAAEu5N,gBAAgB,CAAC,IAAIN,WAAW,CAAC16F,UAAU,CAAC,EAAE;MAC/E6+F,WAAW,GAAG;QACZp2H,KAAK,EAAEA,KAAK;QACZg2F,aAAa,EAAE;MACjB,CAAC;IACH;EACF;EAEA,OAAOogC,WAAW;AACpB;AAEA,SAASC,kBAAkBA,CAAC1zG,SAAS,EAAE8vG,KAAK,EAAE;EAC5C,IAAI9vG,SAAS,KAAK,MAAM,EAAE;IACxB,IAAIrnG,IAAqC,EAAE;MACzCuhE,gEAAM,CAAC41I,KAAK,IAAIA,KAAK,CAAC+D,gBAAgB,EAAE,qDAAqD,CAAC;IAChG;IAEA,OAAO/D,KAAK,CAAC+D,gBAAgB;EAC/B;EAEA,OAAO7zG,SAAS;AAClB;AAEA,IAAIytG,eAAe,GAAG;EACpBqG,SAAS,EAAE,SAAAA,CAAUz9N,CAAC,EAAE;IACtB,IAAI,IAAI,CAACkgM,SAAS,EAAE;MAClB;MACA;MACAw9B,aAAa,CAAC,IAAI,EAAE19N,CAAC,CAAC;IACxB,CAAC,MAAM,IAAI,CAACA,CAAC,CAACie,MAAM,IAAI,CAACje,CAAC,CAACie,MAAM,CAAC+9G,SAAS,EAAE;MAC3C8gG,cAAc,CAAC98N,CAAC,CAAC;MACjB,IAAIu5N,gBAAgB,GAAG,IAAI,CAAC7mI,KAAK,CAACo/C,qBAAqB,CAAC9xI,CAAC,CAAC6lG,OAAO,EAAE7lG,CAAC,CAAC8lG,OAAO,CAAC;MAC7E,IAAI,CAACyyH,cAAc,GAAG,IAAI;MAC1B,IAAIkB,KAAK,GAAG,IAAI,CAACyD,cAAc,GAAG5D,eAAe,CAAC,IAAI,EAAEt5N,CAAC,EAAEu5N,gBAAgB,CAAC;MAE5E,IAAIE,KAAK,EAAE;QACT,IAAI,CAACv5B,SAAS,GAAG,IAAI;QACrB,IAAI,CAAC62B,MAAM,GAAG,CAACwC,gBAAgB,CAACrzN,KAAK,CAAC,CAAC,CAAC;MAC1C;IACF;EACF,CAAC;EACDy3N,SAAS,EAAE,SAAAA,CAAU39N,CAAC,EAAE;IACtB,IAAI2N,CAAC,GAAG3N,CAAC,CAAC6lG,OAAO;IACjB,IAAIj+F,CAAC,GAAG5H,CAAC,CAAC8lG,OAAO;IACjB,IAAIyzH,gBAAgB,GAAG,IAAI,CAAC7mI,KAAK,CAACo/C,qBAAqB,CAACnkI,CAAC,EAAE/F,CAAC,CAAC;IAC7D80N,WAAW,CAAC,IAAI,EAAE18N,CAAC,EAAEu5N,gBAAgB,CAAC;IAEtC,IAAI,IAAI,CAACr5B,SAAS,EAAE;MAClB48B,cAAc,CAAC98N,CAAC,CAAC;MACjB,IAAIo9N,WAAW,GAAGH,kBAAkB,CAAC,IAAI,EAAEj9N,CAAC,EAAEu5N,gBAAgB,EAAE,KAAK,CAAC;MACtE6D,WAAW,IAAItD,OAAO,CAAC,IAAI,EAAEsD,WAAW,CAAC;IAC3C;EACF,CAAC;EACDQ,OAAO,EAAE,SAAAA,CAAU59N,CAAC,EAAE;IACpB09N,aAAa,CAAC,IAAI,EAAE19N,CAAC,CAAC;EACxB;AACF,CAAC;AAED,SAAS09N,aAAaA,CAACn/F,UAAU,EAAEv+H,CAAC,EAAE;EACpC,IAAIu+H,UAAU,CAAC2hE,SAAS,EAAE;IACxB48B,cAAc,CAAC98N,CAAC,CAAC;IACjB,IAAI2N,CAAC,GAAG3N,CAAC,CAAC6lG,OAAO;IACjB,IAAIj+F,CAAC,GAAG5H,CAAC,CAAC8lG,OAAO;IACjB,IAAIyzH,gBAAgB,GAAGh7F,UAAU,CAAC7rC,KAAK,CAACo/C,qBAAqB,CAACnkI,CAAC,EAAE/F,CAAC,CAAC;IACnE,IAAIw1N,WAAW,GAAGH,kBAAkB,CAAC1+F,UAAU,EAAEv+H,CAAC,EAAEu5N,gBAAgB,EAAE,IAAI,CAAC;IAC3Eh7F,UAAU,CAAC2hE,SAAS,GAAG,KAAK;IAC5B3hE,UAAU,CAACw4F,MAAM,GAAG,EAAE;IACtBx4F,UAAU,CAACg6F,cAAc,GAAG,IAAI,CAAC,CAAC;;IAElC6E,WAAW,IAAItD,OAAO,CAACv7F,UAAU,EAAE6+F,WAAW,CAAC;EACjD;AACF;AAEA,SAAST,eAAeA,CAACp+F,UAAU,EAAE5wH,CAAC,EAAE/F,CAAC,EAAE;EACzC,IAAIsuJ,EAAE,GAAG33B,UAAU,CAAC24F,GAAG;EACvB,OAAOvpN,CAAC,GAAG,CAAC,IAAIA,CAAC,GAAGuoJ,EAAE,CAAClsD,QAAQ,CAAC,CAAC,IAAIpiG,CAAC,GAAG,CAAC,IAAIA,CAAC,GAAGsuJ,EAAE,CAACjsD,SAAS,CAAC,CAAC;AAClE;AACA;AACA;AACA;;AAGA,IAAIivH,cAAc,GAAG;EACnB9nB,KAAK,EAAEysB,eAAe,CAAC,CAAC,CAAC;EACzBvsB,KAAK,EAAEusB,eAAe,CAAC,CAAC,CAAC;EACzBvnI,IAAI,EAAE;IACJwiI,WAAW,EAAE,SAAAA,CAAUv6F,UAAU,EAAE+vE,WAAW,EAAE;MAC9C,SAASwvB,WAAWA,CAACtzF,KAAK,EAAE;QAC1B,OAAOA,KAAK;MACd;MAEA,OAAO0vF,mBAAmB,CAAC;QACzB2B,WAAW,EAAEiC,WAAW;QACxB5B,aAAa,EAAE4B;MACjB,CAAC,EAAEv/F,UAAU,EAAE+vE,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAC3G,CAAC;IACDivB,gBAAgB,EAAE,SAAAA,CAAUQ,UAAU,EAAE;MACtC,IAAIzrH,IAAI,GAAG2nH,YAAY,CAAC8D,UAAU,CAAC;MACnC,OAAOxC,eAAe,CAACjpH,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxE,CAAC;IACD+mH,gBAAgB,EAAE,SAAAA,CAAU96F,UAAU,EAAEm6F,KAAK,EAAE+B,UAAU,EAAEnsB,WAAW,EAAE;MACtEksB,cAAc,CAACj8F,UAAU,EAAEm6F,KAAK,EAAE+B,UAAU,EAAEnsB,WAAW,CAAC;IAC5D,CAAC;IACD7jG,YAAY,EAAEA,YAAY;IAC1B2N,OAAO,EAAE4kH;EACX,CAAC;EACDlwG,OAAO,EAAE;IACPgsG,WAAW,EAAE,SAAAA,CAAUv6F,UAAU,EAAE+vE,WAAW,EAAE;MAC9C,IAAIoqB,KAAK,GAAG,IAAI7vH,wDAAa,CAAC,CAAC,CAAC,CAAC;MACjC;;MAEA6vH,KAAK,CAAClzN,GAAG,CAAC,IAAIqjG,wDAAgB,CAAC;QAC7BriG,IAAI,EAAE,MAAM;QACZsV,KAAK,EAAEu+M,SAAS,CAAC/rB,WAAW,CAAC;QAC7BjnH,MAAM,EAAE;MACV,CAAC,CAAC,CAAC;MACH,OAAOqxI,KAAK;IACd,CAAC;IACD6E,gBAAgB,EAAE,SAAAA,CAAUQ,UAAU,EAAE;MACtC,OAAOA,UAAU;IACnB,CAAC;IACDlF,WAAW,EAAE,SAAAA,CAAUt6F,UAAU,EAAEm6F,KAAK,EAAE;MACxCA,KAAK,CAAC9qN,MAAM,CAAC8qN,KAAK,CAAC3vG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;MAEhC2vG,KAAK,CAAClzN,GAAG,CAAC,IAAIqjG,wDAAe,CAAC;QAC5BriG,IAAI,EAAE,MAAM;QACZw1H,SAAS,EAAE,IAAI;QACfod,KAAK,EAAE3oC,+DAAK,CAAC0rH,YAAY,EAAE59F,UAAU,EAAEm6F,KAAK,CAAC;QAC7C/uD,SAAS,EAAEl5D,+DAAK,CAACqpH,OAAO,EAAEv7F,UAAU,EAAE;UACpCv3B,KAAK,EAAE;QACT,CAAC;MACH,CAAC,CAAC,CAAC;IACL,CAAC;IACDqyH,gBAAgB,EAAE,SAAAA,CAAU96F,UAAU,EAAEm6F,KAAK,EAAE+B,UAAU,EAAEnsB,WAAW,EAAE;MACtEoqB,KAAK,CAAC3vG,OAAO,CAAC,CAAC,CAAC,CAAClhC,QAAQ,CAAC;QACxBid,MAAM,EAAEw2H,WAAW,CAAC/8F,UAAU,EAAEm6F,KAAK,EAAE+B,UAAU;MACnD,CAAC,CAAC;IACJ,CAAC;IACDhwH,YAAY,EAAEA,YAAY;IAC1B2N,OAAO,EAAE4kH;EACX;AACF,CAAC;AAED,SAASa,eAAeA,CAACrsB,OAAO,EAAE;EAChC,OAAO;IACLsnB,WAAW,EAAE,SAAAA,CAAUv6F,UAAU,EAAE+vE,WAAW,EAAE;MAC9C,OAAO4rB,mBAAmB,CAAC;QACzB2B,WAAW,EAAE,SAAAA,CAAUrxF,KAAK,EAAE;UAC5B,IAAIoxF,SAAS,GAAG,CAACpxF,KAAK,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;UACjCgnE,OAAO,IAAIoqB,SAAS,CAACzvH,OAAO,CAAC,CAAC;UAC9B,OAAOyvH,SAAS;QAClB,CAAC;QACDM,aAAa,EAAE,SAAAA,CAAUN,SAAS,EAAE;UAClC,OAAOA,SAAS,CAACpqB,OAAO,CAAC;QAC3B;MACF,CAAC,EAAEjzE,UAAU,EAAE+vE,WAAW,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAACkD,OAAO,CAAC,CAAC;IACxE,CAAC;IACD+rB,gBAAgB,EAAE,SAAAA,CAAUQ,UAAU,EAAE;MACtC,IAAIzrH,IAAI,GAAG2nH,YAAY,CAAC8D,UAAU,CAAC;MACnC,IAAIhgJ,GAAG,GAAGib,OAAO,CAACsZ,IAAI,CAAC,CAAC,CAAC,CAACk/F,OAAO,CAAC,EAAEl/F,IAAI,CAAC,CAAC,CAAC,CAACk/F,OAAO,CAAC,CAAC;MACrD,IAAIzrM,GAAG,GAAGgzF,OAAO,CAACuZ,IAAI,CAAC,CAAC,CAAC,CAACk/F,OAAO,CAAC,EAAEl/F,IAAI,CAAC,CAAC,CAAC,CAACk/F,OAAO,CAAC,CAAC;MACrD,OAAO,CAACzzH,GAAG,EAAEh4E,GAAG,CAAC;IACnB,CAAC;IACDszN,gBAAgB,EAAE,SAAAA,CAAU96F,UAAU,EAAEm6F,KAAK,EAAE+B,UAAU,EAAEnsB,WAAW,EAAE;MACtE,IAAIxK,WAAW,CAAC,CAAC;;MAEjB,IAAI21B,KAAK,GAAGE,eAAe,CAACp7F,UAAU,EAAEm6F,KAAK,CAAC;MAE9C,IAAIe,KAAK,KAAKvD,kBAAkB,IAAIuD,KAAK,CAAC78B,yBAAyB,EAAE;QACnEkH,WAAW,GAAG21B,KAAK,CAAC78B,yBAAyB,CAAC4U,OAAO,CAAC;MACxD,CAAC,MAAM;QACL,IAAIt7C,EAAE,GAAG33B,UAAU,CAAC24F,GAAG;QACvBpzB,WAAW,GAAG,CAAC,CAAC,EAAE,CAAC5tC,EAAE,CAAClsD,QAAQ,CAAC,CAAC,EAAEksD,EAAE,CAACjsD,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGunG,OAAO,CAAC,CAAC;MACjE;MAEA,IAAIoqB,SAAS,GAAG,CAACnB,UAAU,EAAE32B,WAAW,CAAC;MACzC0N,OAAO,IAAIoqB,SAAS,CAACzvH,OAAO,CAAC,CAAC;MAC9BquH,cAAc,CAACj8F,UAAU,EAAEm6F,KAAK,EAAEkD,SAAS,EAAEttB,WAAW,CAAC;IAC3D,CAAC;IACD7jG,YAAY,EAAEA,YAAY;IAC1B2N,OAAO,EAAE4kH;EACX,CAAC;AACH;AAEA,iEAAe1hC,eAAe;;;;;;;;;;;;;;;;;;;AC30B9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC4F;AAC3C;AACD;AAC0B,CAAC;AAC3E;;AAEA,IAAI4iC,yBAAyB,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,CAAC;AAEtH,IAAIvsB,kBAAkB,GACtB;AACA,YAAY;EACV;AACF;AACA;AACA;AACA;EACE,SAASA,kBAAkBA,CAACx9G,MAAM,EAAE7U,OAAO,EAAE0V,GAAG,EAAE;IAChD,IAAI1mF,KAAK,GAAG,IAAI;IAEhB,IAAI,CAAC6vN,eAAe,GAAG,EAAE;IACzB,IAAIC,SAAS,GAAGJ,WAAW,CAAC1+I,OAAO,EAAE6U,MAAM,CAAC;IAC5C/R,8DAAI,CAACi8I,kBAAkB,EAAE,UAAU5rB,OAAO,EAAE3+L,IAAI,EAAE;MAChD,IAAI,CAACkhF,GAAG,IAAI,CAACA,GAAG,CAACspI,OAAO,IAAI99N,iEAAO,CAACw0F,GAAG,CAACspI,OAAO,EAAExqN,IAAI,CAAC,IAAI,CAAC,EAAE;QAC3D2+L,OAAO,CAAC2rB,SAAS,EAAE9vN,KAAK,CAAC6vN,eAAe,CAAC;MAC3C;IACF,CAAC,CAAC;EACJ;EAEAxsB,kBAAkB,CAACtxM,SAAS,CAACwvM,eAAe,GAAG,UAAUxS,KAAK,EAAE/9G,OAAO,EAAE;IACvE,IAAI,CAACi/I,iBAAiB,CAAClhC,KAAK,EAAE/9G,OAAO,EAAE,UAAU2rG,IAAI,EAAEuzC,UAAU,EAAEr8H,QAAQ,EAAE;MAC3E,CAAC8oF,IAAI,CAACwzC,WAAW,KAAKxzC,IAAI,CAACwzC,WAAW,GAAG,EAAE,CAAC,EAAEh7N,IAAI,CAAC+6N,UAAU,CAAC,CAAC,CAAC;;MAEhE,IAAI,CAACvzC,IAAI,CAACuzC,UAAU,EAAE;QACpBvzC,IAAI,CAACuzC,UAAU,GAAGA,UAAU,CAAC,CAAC;QAC9B;QACA;QACA;QACA;;QAEA,IAAItuM,MAAM,GAAGwuM,YAAY,CAACzzC,IAAI,CAACthE,SAAS,CAAC,CAAC,CAAC,EAAExnB,QAAQ,EAAEq8H,UAAU,CAAC;QAClEvzC,IAAI,CAAC0zC,aAAa,GAAG;UACnB7wM,MAAM,EAAE8wM,aAAa,CAAC3zC,IAAI,CAACthE,SAAS,CAAC,CAACz5F,MAAM,CAAC4B,MAAM,EAAEm5J,IAAI,CAACzgD,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;UACxEq0F,QAAQ,EAAE3uM,MAAM,CAAC2uM;QACnB,CAAC;MACH;IACF,CAAC,CAAC;IACF,OAAOxhC,KAAK;EACd,CAAC;EAEDsU,kBAAkB,CAACtxM,SAAS,CAACk+N,iBAAiB,GAAG,UAAUlhC,KAAK,EAAE/9G,OAAO,EAAEa,EAAE,EAAE;IAC7EiC,8DAAI,CAACi7G,KAAK,EAAE,UAAUpS,IAAI,EAAE;MAC1B,IAAIjZ,UAAU,GAAG,IAAI,CAAC8sD,cAAc,CAAC7zC,IAAI,EAAE3rG,OAAO,CAAC;MAEnD,IAAI0yF,UAAU,IAAIA,UAAU,KAAK,IAAI,EAAE;QACrC5vF,8DAAI,CAAC4vF,UAAU,CAAC+sD,UAAU,EAAE,UAAU58H,QAAQ,EAAE;UAC9C,IAAIjyE,MAAM,GAAGwuM,YAAY,CAACzzC,IAAI,CAACthE,SAAS,CAAC,CAAC,CAAC,EAAExnB,QAAQ,EAAE8oF,IAAI,CAACzgD,KAAK,EAAE,IAAI,CAAC;UACxErqD,EAAE,CAAC8qG,IAAI,EAAE/6J,MAAM,CAAC4B,MAAM,EAAEqwE,QAAQ,EAAE7iB,OAAO,CAAC;QAC5C,CAAC,CAAC;MACJ;IACF,CAAC,EAAE,IAAI,CAAC;EACV,CAAC;EACD;AACF;AACA;AACA;AACA;;EAGEqyH,kBAAkB,CAACtxM,SAAS,CAAC0xM,cAAc,GAAG,UAAU1U,KAAK,EAAE/9G,OAAO,EAAE;IACtE8C,8DAAI,CAACi7G,KAAK,EAAE,UAAUpS,IAAI,EAAE;MAC1B,IAAIjZ,UAAU,GAAG,IAAI,CAAC8sD,cAAc,CAAC7zC,IAAI,EAAE3rG,OAAO,CAAC;MAEnD,IAAIh9D,IAAqC,EAAE;QACzCuhE,gEAAM,CAAC,CAACmuF,UAAU,IAAIA,UAAU,KAAK,IAAI,IAAIiZ,IAAI,CAACuzC,UAAU,EAAE,0DAA0D,CAAC;QACzH36I,gEAAM,CAAC,CAACmuF,UAAU,IAAIA,UAAU,KAAK,IAAI,IAAIiZ,IAAI,CAACzgD,KAAK,EAAE,0CAA0C,CAAC;MACtG;MAEAygD,IAAI,CAACzgD,KAAK,GAAGygD,IAAI,CAACzgD,KAAK,IAAI,EAAE,CAAC,CAAC;;MAE/B,IAAIwnC,UAAU,IAAIA,UAAU,KAAK,IAAI,EAAE;QACrCiZ,IAAI,CAACuR,OAAO,GAAGxqB,UAAU,CAACwqB,OAAO,CAAC,CAAC;QACnC;QACA;QACA;QACA;QACA;;QAEA,IAAItsK,MAAM,GAAGwuM,YAAY,CAACzzC,IAAI,CAACthE,SAAS,CAAC,CAAC,CAAC,EAAEqoD,UAAU,CAAC7vE,QAAQ,EAAE8oF,IAAI,CAACuzC,UAAU,CAAC;QAClF,IAAIQ,WAAW,GAAG/zC,IAAI,CAAC0zC,aAAa;QACpC1zC,IAAI,CAACzgD,KAAK,GAAGw0F,WAAW,GAAGJ,aAAa,CAAC3zC,IAAI,CAACthE,SAAS,CAAC,CAACz5F,MAAM,CAAC4B,MAAM,EAAEktM,WAAW,CAAClxM,MAAM,EAAEmxM,SAAS,CAAC/uM,MAAM,CAAC2uM,QAAQ,EAAEG,WAAW,CAACH,QAAQ,CAAC,CAAC,GAAG3uM,MAAM,CAAC4B,MAAM;MAC/J;IACF,CAAC,EAAE,IAAI,CAAC;EACV,CAAC;EAED6/K,kBAAkB,CAACtxM,SAAS,CAACsvM,aAAa,GAAG,UAAU1xK,GAAG,EAAEihM,mBAAmB,EAAE;IAC/E,OAAOr2N,6DAAG,CAAC,IAAI,CAACs1N,eAAe,EAAE,UAAUnsD,UAAU,EAAE;MACrD,IAAI17E,IAAI,GAAG07E,UAAU,CAACmtD,YAAY,CAAC,CAAC;MACpC,OAAO;QACL3iC,OAAO,EAAExqB,UAAU,CAACwqB,OAAO;QAC3BghC,gBAAgB,EAAE0B,mBAAmB,GAAGA,mBAAmB,CAACltD,UAAU,CAAC,GAAG,IAAI;QAC9Et0E,QAAQ,EAAE69F,kEAAiC,CAACjlG,IAAI,CAAC;QACjDomG,gBAAgB,EAAEnB,qEAAoC,CAACjlG,IAAI,EAAEr4D,GAAG,EAAE+zI,UAAU,CAAC4pB,aAAa,CAAC;QAC3FgB,yBAAyB,EAAErB,uEAAsC,CAACjlG,IAAI;MACxE,CAAC;IACH,CAAC,CAAC;EACJ,CAAC;EAEDq7G,kBAAkB,CAACtxM,SAAS,CAACizM,aAAa,GAAG,UAAUroB,IAAI,EAAEl/F,WAAW,EAAEzM,OAAO,EAAE;IACjF;IACA;IACA,IAAI0yF,UAAU,GAAG,IAAI,CAAC8sD,cAAc,CAAC7zC,IAAI,EAAE3rG,OAAO,CAAC;IACnD,OAAO0yF,UAAU,KAAK,IAAI,IAAIA,UAAU,IAAIxxK,iEAAO,CAACwxK,UAAU,CAAC+sD,UAAU,EAAEhzI,WAAW,CAACgP,gBAAgB,CAAC,IAAI,CAAC;EAC/G,CAAC;EACD;AACF;AACA;AACA;AACA;;EAGE42G,kBAAkB,CAACtxM,SAAS,CAACy+N,cAAc,GAAG,UAAU7zC,IAAI,EAAE3rG,OAAO,EAAE;IACrE,IAAI8/I,cAAc,GAAG,IAAI,CAACjB,eAAe;IACzC,IAAIC,SAAS,GAAGJ,WAAW,CAAC1+I,OAAO,EAAE2rG,IAAI,CAAC;IAE1C,KAAK,IAAI/qL,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGk/N,cAAc,CAACz+N,MAAM,EAAET,CAAC,EAAE,EAAE;MAC9C,IAAI8xK,UAAU,GAAGotD,cAAc,CAACl/N,CAAC,CAAC;MAClC,IAAIm/N,WAAW,GAAGp0C,IAAI,CAACuR,OAAO;MAE9B,IAAI6iC,WAAW,EAAE;QACf,IAAIrtD,UAAU,CAACwqB,OAAO,KAAK6iC,WAAW,EAAE;UACtC,OAAOrtD,UAAU;QACnB;MACF,CAAC,MAAM;QACL,KAAK,IAAI9kK,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGoyN,kBAAkB,CAAC3+N,MAAM,EAAEuM,CAAC,EAAE,EAAE;UAClD,IAAIoyN,kBAAkB,CAACpyN,CAAC,CAAC,CAACkxN,SAAS,EAAEpsD,UAAU,CAAC,EAAE;YAChD,OAAOA,UAAU;UACnB;QACF;MACF;IACF;IAEA,OAAO,IAAI;EACb,CAAC;EAED,OAAO2/B,kBAAkB;AAC3B,CAAC,CAAC,CAAC;AAEH,SAAS4tB,YAAYA,CAACxrB,MAAM,EAAE;EAC5BA,MAAM,CAAC,CAAC,CAAC,GAAGA,MAAM,CAAC,CAAC,CAAC,IAAIA,MAAM,CAAC5nG,OAAO,CAAC,CAAC;EACzC,OAAO4nG,MAAM;AACf;AAEA,SAASiqB,WAAWA,CAAC1+I,OAAO,EAAE6U,MAAM,EAAE;EACpC,OAAO8pI,2DAAoB,CAAC3+I,OAAO,EAAE6U,MAAM,EAAE;IAC3CqrI,gBAAgB,EAAEtB;EACpB,CAAC,CAAC;AACJ;AAEA,IAAIG,kBAAkB,GAAG;EACvBz6B,IAAI,EAAE,SAAAA,CAAUw6B,SAAS,EAAEgB,cAAc,EAAE;IACzC,IAAIK,WAAW,GAAGrB,SAAS,CAACqB,WAAW;IACvC,IAAIC,WAAW,GAAGtB,SAAS,CAACsB,WAAW;IACvC,IAAIC,UAAU,GAAGvB,SAAS,CAACuB,UAAU,CAAC,CAAC;;IAEvC,IAAIC,YAAY,GAAG9xI,uEAAa,CAAC,CAAC;IAClC,IAAI+xI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAIC,QAAQ,GAAG,CAAC,CAAC;IAEjB,IAAI,CAACL,WAAW,IAAI,CAACC,WAAW,IAAI,CAACC,UAAU,EAAE;MAC/C;IACF;IAEAv9I,8DAAI,CAACq9I,WAAW,EAAE,UAAUr+H,SAAS,EAAE;MACrC,IAAIo5F,SAAS,GAAGp5F,SAAS,CAACwF,IAAI,CAACg9F,IAAI,CAACx8G,KAAK;MACzCw4I,YAAY,CAACl+N,GAAG,CAAC84L,SAAS,CAACx2L,EAAE,EAAEw2L,SAAS,CAAC;MACzCqlC,QAAQ,CAACrlC,SAAS,CAACx2L,EAAE,CAAC,GAAG,IAAI;IAC/B,CAAC,CAAC;IACFo+E,8DAAI,CAACs9I,WAAW,EAAE,UAAUt+H,SAAS,EAAE;MACrC,IAAIo5F,SAAS,GAAGp5F,SAAS,CAACwF,IAAI,CAACg9F,IAAI,CAACx8G,KAAK;MACzCw4I,YAAY,CAACl+N,GAAG,CAAC84L,SAAS,CAACx2L,EAAE,EAAEw2L,SAAS,CAAC;MACzCslC,QAAQ,CAACtlC,SAAS,CAACx2L,EAAE,CAAC,GAAG,IAAI;IAC/B,CAAC,CAAC;IACFo+E,8DAAI,CAACu9I,UAAU,EAAE,UAAUnlC,SAAS,EAAE;MACpColC,YAAY,CAACl+N,GAAG,CAAC84L,SAAS,CAACx2L,EAAE,EAAEw2L,SAAS,CAAC;MACzCqlC,QAAQ,CAACrlC,SAAS,CAACx2L,EAAE,CAAC,GAAG,IAAI;MAC7B87N,QAAQ,CAACtlC,SAAS,CAACx2L,EAAE,CAAC,GAAG,IAAI;IAC/B,CAAC,CAAC;IACF47N,YAAY,CAACx9I,IAAI,CAAC,UAAUo4G,SAAS,EAAE;MACrC,IAAIoJ,IAAI,GAAGpJ,SAAS,CAACz/F,gBAAgB;MACrC,IAAI6/F,UAAU,GAAG,EAAE;MACnBx4G,8DAAI,CAACwhH,IAAI,CAAC/I,aAAa,CAAC,CAAC,EAAE,UAAUlxF,SAAS,EAAElhF,KAAK,EAAE;QACrD,IAAIjoB,iEAAO,CAACi/N,WAAW,EAAE91H,SAAS,CAAC0hC,OAAO,CAAC,GAAG,CAAC,CAACjkD,KAAK,CAAC,IAAI,CAAC,IAAI5mF,iEAAO,CAACk/N,WAAW,EAAE/1H,SAAS,CAAC0hC,OAAO,CAAC,GAAG,CAAC,CAACjkD,KAAK,CAAC,IAAI,CAAC,EAAE;UACtHwzG,UAAU,CAACn3L,IAAI,CAACkmG,SAAS,CAAC;QAC5B;MACF,CAAC,CAAC;MACFy1H,cAAc,CAAC37N,IAAI,CAAC;QAClB+4L,OAAO,EAAE,QAAQ,GAAGhC,SAAS,CAACx2L,EAAE;QAChCw2L,SAAS,EAAEA,SAAS;QACpBoB,aAAa,EAAEpB,SAAS;QACxB;QACAr4F,QAAQ,EAAEy4F,UAAU,CAAC,CAAC,CAAC;QACvBmkC,UAAU,EAAEnkC,UAAU;QACtBukC,YAAY,EAAEY,iBAAiB,CAACn8B,IAAI;QACpCo8B,aAAa,EAAEH,QAAQ,CAACrlC,SAAS,CAACx2L,EAAE,CAAC;QACrCi8N,aAAa,EAAEH,QAAQ,CAACtlC,SAAS,CAACx2L,EAAE;MACtC,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC;EACDg7G,GAAG,EAAE,SAAAA,CAAUo/G,SAAS,EAAEgB,cAAc,EAAE;IACxCh9I,8DAAI,CAACg8I,SAAS,CAAC8B,SAAS,EAAE,UAAU9Q,QAAQ,EAAE;MAC5C,IAAIjtH,QAAQ,GAAGitH,QAAQ,CAACr0H,gBAAgB;MACxCqkI,cAAc,CAAC37N,IAAI,CAAC;QAClB+4L,OAAO,EAAE,OAAO,GAAG4yB,QAAQ,CAACprN,EAAE;QAC9BorN,QAAQ,EAAEA,QAAQ;QAClBxzB,aAAa,EAAEwzB,QAAQ;QACvBjtH,QAAQ,EAAEA,QAAQ;QAClB48H,UAAU,EAAE,CAAC58H,QAAQ,CAAC;QACtBg9H,YAAY,EAAEY,iBAAiB,CAAC/gH;MAClC,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ;AACF,CAAC;AACD,IAAIsgH,kBAAkB,GAAG;AAAC;AAC1B,UAAUlB,SAAS,EAAEpsD,UAAU,EAAE;EAC/B,IAAInvB,UAAU,GAAGu7E,SAAS,CAACv7E,UAAU;EACrC,IAAIE,UAAU,GAAGq7E,SAAS,CAACr7E,UAAU;EACrC,IAAIy3C,SAAS,GAAG4jC,SAAS,CAAC5jC,SAAS;EACnC,CAACA,SAAS,IAAI33C,UAAU,KAAK23C,SAAS,GAAG33C,UAAU,CAACj8C,IAAI,CAACg9F,IAAI,CAACx8G,KAAK,CAAC;EACpE,CAACozG,SAAS,IAAIz3C,UAAU,KAAKy3C,SAAS,GAAGz3C,UAAU,CAACn8C,IAAI,CAACg9F,IAAI,CAACx8G,KAAK,CAAC;EACpE,OAAOozG,SAAS,IAAIA,SAAS,KAAKxoB,UAAU,CAACwoB,SAAS;AACxD,CAAC;AAAE;AACH,UAAU4jC,SAAS,EAAEpsD,UAAU,EAAE;EAC/B,IAAIo9C,QAAQ,GAAGgP,SAAS,CAAChP,QAAQ;EACjC,OAAOA,QAAQ,IAAIA,QAAQ,KAAKp9C,UAAU,CAACo9C,QAAQ;AACrD,CAAC,CAAC;AACF,IAAI2Q,iBAAiB,GAAG;EACtBn8B,IAAI,EAAE,SAAAA,CAAA,EAAY;IAChB;IACA,OAAO,IAAI,CAACzhG,QAAQ,CAAC0H,MAAM,CAACC,OAAO,CAAC,CAAC,CAACxe,KAAK,CAAC,CAAC;EAC/C,CAAC;EACD0zB,GAAG,EAAE,SAAAA,CAAA,EAAY;IACf,IAAI7c,QAAQ,GAAG,IAAI,CAACA,QAAQ;IAC5B,IAAI7L,IAAI,GAAG6L,QAAQ,CAACu8B,eAAe,CAAC,CAAC,CAACpzC,KAAK,CAAC,CAAC,CAAC,CAAC;;IAE/CgL,IAAI,CAACqoC,cAAc,CAAC91B,0DAAoB,CAAC1G,QAAQ,CAAC,CAAC;IACnD,OAAO7L,IAAI;EACb;AACF,CAAC;AACD,IAAIooI,YAAY,GAAG;EACjBttB,KAAK,EAAE3gG,+DAAK,CAAC0vH,WAAW,EAAE,CAAC,CAAC;EAC5B7uB,KAAK,EAAE7gG,+DAAK,CAAC0vH,WAAW,EAAE,CAAC,CAAC;EAC5B7pI,IAAI,EAAE,SAAAA,CAAUzK,EAAE,EAAEsW,QAAQ,EAAEi+H,iBAAiB,EAAE/hC,KAAK,EAAE;IACtD,IAAIgiC,QAAQ,GAAGx0I,EAAE,GAAGsW,QAAQ,CAACllB,WAAW,CAAC,CAACmjJ,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE/hC,KAAK,CAAC,GAAGl8F,QAAQ,CAACzkB,WAAW,CAAC,CAAC0iJ,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE/hC,KAAK,CAAC;IACrL,IAAIiiC,QAAQ,GAAGz0I,EAAE,GAAGsW,QAAQ,CAACllB,WAAW,CAAC,CAACmjJ,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE/hC,KAAK,CAAC,GAAGl8F,QAAQ,CAACzkB,WAAW,CAAC,CAAC0iJ,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE/hC,KAAK,CAAC;IACrL,IAAIvsK,MAAM,GAAG,CAACytM,YAAY,CAAC,CAACc,QAAQ,CAAC,CAAC,CAAC,EAAEC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEf,YAAY,CAAC,CAACc,QAAQ,CAAC,CAAC,CAAC,EAAEC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjG,OAAO;MACLxuM,MAAM,EAAEA,MAAM;MACd+sM,QAAQ,EAAE/sM;IACZ,CAAC;EACH,CAAC;EACDg7F,OAAO,EAAE,SAAAA,CAAUjhC,EAAE,EAAEsW,QAAQ,EAAEi+H,iBAAiB,EAAE/hC,KAAK,EAAE;IACzD,IAAIwgC,QAAQ,GAAG,CAAC,CAAC5gJ,QAAQ,EAAE,CAACA,QAAQ,CAAC,EAAE,CAACA,QAAQ,EAAE,CAACA,QAAQ,CAAC,CAAC;IAC7D,IAAInsD,MAAM,GAAGjpB,6DAAG,CAACu3N,iBAAiB,EAAE,UAAUxhI,IAAI,EAAE;MAClD,IAAIz3F,CAAC,GAAG0kF,EAAE,GAAGsW,QAAQ,CAACllB,WAAW,CAAC2hB,IAAI,EAAEy/F,KAAK,CAAC,GAAGl8F,QAAQ,CAACzkB,WAAW,CAACkhB,IAAI,EAAEy/F,KAAK,CAAC;MAClFwgC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGn7N,IAAI,CAACq6E,GAAG,CAAC8gJ,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE13N,CAAC,CAAC,CAAC,CAAC,CAAC;MAC/C03N,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGn7N,IAAI,CAACq6E,GAAG,CAAC8gJ,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE13N,CAAC,CAAC,CAAC,CAAC,CAAC;MAC/C03N,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGn7N,IAAI,CAACqC,GAAG,CAAC84N,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE13N,CAAC,CAAC,CAAC,CAAC,CAAC;MAC/C03N,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGn7N,IAAI,CAACqC,GAAG,CAAC84N,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE13N,CAAC,CAAC,CAAC,CAAC,CAAC;MAC/C,OAAOA,CAAC;IACV,CAAC,CAAC;IACF,OAAO;MACL2qB,MAAM,EAAEA,MAAM;MACd+sM,QAAQ,EAAEA;IACZ,CAAC;EACH;AACF,CAAC;AAED,SAASsB,WAAWA,CAACI,aAAa,EAAE10I,EAAE,EAAEsW,QAAQ,EAAEi+H,iBAAiB,EAAE;EACnE,IAAI99M,IAAqC,EAAE;IACzCuhE,gEAAM,CAACse,QAAQ,CAACruF,IAAI,KAAK,aAAa,EAAE,qDAAqD,CAAC;EAChG;EAEA,IAAI8yF,IAAI,GAAGzE,QAAQ,CAACkpC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAACk1F,aAAa,CAAC,CAAC;EACtD,IAAIzuM,MAAM,GAAGytM,YAAY,CAAC12N,6DAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU3I,CAAC,EAAE;IACjD,OAAO2rF,EAAE,GAAG+a,IAAI,CAAC42F,WAAW,CAAC52F,IAAI,CAAC45H,YAAY,CAACJ,iBAAiB,CAAClgO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG0mG,IAAI,CAACK,aAAa,CAACL,IAAI,CAACmF,WAAW,CAACq0H,iBAAiB,CAAClgO,CAAC,CAAC,CAAC,CAAC;EAC1I,CAAC,CAAC,CAAC;EACH,IAAI2+N,QAAQ,GAAG,EAAE;EACjBA,QAAQ,CAAC0B,aAAa,CAAC,GAAGzuM,MAAM;EAChC+sM,QAAQ,CAAC,CAAC,GAAG0B,aAAa,CAAC,GAAG,CAAC7hI,GAAG,EAAEA,GAAG,CAAC;EACxC,OAAO;IACL5sE,MAAM,EAAEA,MAAM;IACd+sM,QAAQ,EAAEA;EACZ,CAAC;AACH;AAEA,IAAID,aAAa,GAAG;EAClBxtB,KAAK,EAAE3gG,+DAAK,CAACgwH,iBAAiB,EAAE,CAAC,CAAC;EAClCnvB,KAAK,EAAE7gG,+DAAK,CAACgwH,iBAAiB,EAAE,CAAC,CAAC;EAClCnqI,IAAI,EAAE,SAAAA,CAAUxkE,MAAM,EAAE4uM,KAAK,EAAEC,MAAM,EAAE;IACrC,OAAO,CAAC,CAAC7uM,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG6uM,MAAM,CAAC,CAAC,CAAC,GAAGD,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE5uM,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG6uM,MAAM,CAAC,CAAC,CAAC,GAAGD,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC5uM,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG6uM,MAAM,CAAC,CAAC,CAAC,GAAGD,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE5uM,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG6uM,MAAM,CAAC,CAAC,CAAC,GAAGD,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;EAC7K,CAAC;EACD5zG,OAAO,EAAE,SAAAA,CAAUh7F,MAAM,EAAE4uM,KAAK,EAAEC,MAAM,EAAE;IACxC,OAAO93N,6DAAG,CAACipB,MAAM,EAAE,UAAU8sE,IAAI,EAAE1R,GAAG,EAAE;MACtC,OAAO,CAAC0R,IAAI,CAAC,CAAC,CAAC,GAAG+hI,MAAM,CAAC,CAAC,CAAC,GAAGD,KAAK,CAACxzI,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE0R,IAAI,CAAC,CAAC,CAAC,GAAG+hI,MAAM,CAAC,CAAC,CAAC,GAAGD,KAAK,CAACxzI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACnF,CAAC,CAAC;EACJ;AACF,CAAC;AAED,SAASuzI,iBAAiBA,CAACF,aAAa,EAAEzuM,MAAM,EAAE4uM,KAAK,EAAEC,MAAM,EAAE;EAC/D,OAAO,CAAC7uM,MAAM,CAAC,CAAC,CAAC,GAAG6uM,MAAM,CAACJ,aAAa,CAAC,GAAGG,KAAK,CAAC,CAAC,CAAC,EAAE5uM,MAAM,CAAC,CAAC,CAAC,GAAG6uM,MAAM,CAACJ,aAAa,CAAC,GAAGG,KAAK,CAAC,CAAC,CAAC,CAAC;AACrG,CAAC,CAAC;AACF;AACA;;AAGA,SAASzB,SAASA,CAAC2B,YAAY,EAAEC,cAAc,EAAE;EAC/C,IAAIC,QAAQ,GAAGC,OAAO,CAACH,YAAY,CAAC;EACpC,IAAII,UAAU,GAAGD,OAAO,CAACF,cAAc,CAAC;EACxC,IAAIF,MAAM,GAAG,CAACG,QAAQ,CAAC,CAAC,CAAC,GAAGE,UAAU,CAAC,CAAC,CAAC,EAAEF,QAAQ,CAAC,CAAC,CAAC,GAAGE,UAAU,CAAC,CAAC,CAAC,CAAC;EACvElrM,KAAK,CAAC6qM,MAAM,CAAC,CAAC,CAAC,CAAC,KAAKA,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;EACnC7qM,KAAK,CAAC6qM,MAAM,CAAC,CAAC,CAAC,CAAC,KAAKA,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;EACnC,OAAOA,MAAM;AACf;AAEA,SAASI,OAAOA,CAAClC,QAAQ,EAAE;EACzB,OAAOA,QAAQ,GAAG,CAACA,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGA,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGA,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAACngI,GAAG,EAAEA,GAAG,CAAC;AACnG;AAEA,iEAAeizG,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClXjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACmD;AACF;AACkB;AACU;AAC5B;AACiE;AAC/C;AAClB;AAC+B;AAC3B;AACgB;AACR;AACb;AAChD;AACA;AACA;AACA;AACA;;AAEA,IAAIwvB,yBAAyB,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC;AACpG,IAAIC,4BAA4B,GAAGx4H,mEAAoB,CAACu4H,yBAAyB,CAAC;AAClF,IAAIE,qBAAqB,GAAGz4H,mEAAoB,CAACu4H,yBAAyB,CAACriN,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACzF,IAAIwiN,cAAc,GAAG14H,mEAAoB,CAACu4H,yBAAyB,CAACriN,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAClF,IAAIyiN,WAAW,GAAG1iJ,yDAAS,CAAC,CAAC;AAE7B,SAAS2iJ,iBAAiBA,CAACp6I,KAAK,EAAE;EAChC,IAAIoQ,SAAS,GAAGpQ,KAAK,CAAC+U,YAAY,CAAC,CAAC;EACpC,IAAIu9D,SAAS,GAAGtyE,KAAK,CAAC3lF,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;EACxC;;EAEA,IAAIi4J,SAAS,IAAI,IAAI,EAAE;IACrBliE,SAAS,CAACtrE,IAAI,GAAGwtI,SAAS;EAC5B;EAEA,OAAOliE,SAAS;AAClB,CAAC,CAAC;AACF;AACA;;AAGA,SAASiqI,YAAYA,CAACC,SAAS,EAAE;EAC/B,IAAI5lN,KAAK,GAAG4lN,SAAS,CAAC5lN,KAAK;EAE3B,IAAIA,KAAK,EAAE;IACTA,KAAK,CAACuoF,MAAM,GAAGvoF,KAAK,CAACuoF,MAAM,IAAIvoF,KAAK,CAACoQ,IAAI;IACzCpQ,KAAK,CAACoQ,IAAI,GAAG,IAAI;EACnB;AACF;AAEA,IAAIytI,OAAO,GACX;AACA,YAAY;EACV,SAASA,OAAOA,CAAC17H,GAAG,EAAE;IACpB,IAAIy0D,KAAK,GAAG,IAAImW,wDAAa,CAAC,CAAC;IAC/B,IAAI,CAAC63C,GAAG,GAAGwgF,0DAAM,CAAC,aAAa,CAAC;IAChC,IAAI,CAACjkG,WAAW,GAAG,IAAIZ,0DAAc,CAACp+F,GAAG,CAACggE,KAAK,CAAC,CAAC,CAAC;IAClD,IAAI,CAACi/B,eAAe,GAAG;MACrBj/G,MAAM,EAAEy0E;IACV,CAAC;IACD,IAAI,CAACA,KAAK,GAAGA,KAAK;IAClBA,KAAK,CAACltF,GAAG,CAAC,IAAI,CAACm8N,aAAa,GAAG,IAAI94H,wDAAa,CAAC,CAAC,CAAC;IACnDnW,KAAK,CAACltF,GAAG,CAAC,IAAI,CAACo8N,SAAS,GAAG,IAAI/4H,wDAAa,CAAC,CAAC,CAAC;EACjD;EAEA8wD,OAAO,CAACt5J,SAAS,CAAC65J,IAAI,GAAG,UAAU2nE,aAAa,EAAEviJ,OAAO,EAAErhD,GAAG,EAAE6jM,QAAQ,EAAErxN,OAAO,EAAE;IACjF,IAAIsxN,KAAK,GAAGF,aAAa,CAAC7wH,QAAQ,KAAK,KAAK,CAAC,CAAC;IAC9C;;IAEA,IAAIlmG,IAAI,GAAG+2N,aAAa,CAAC9tI,OAAO,IAAI8tI,aAAa,CAAC9tI,OAAO,CAAC,CAAC;IAC3DguI,KAAK,IAAIziJ,OAAO,CAACyxB,aAAa,CAAC;MAC7BC,QAAQ,EAAE,QAAQ;MAClB84D,OAAO,EAAE;IACX,CAAC,EAAE,UAAUvO,SAAS,EAAE;MACtB,IAAI,CAACzwJ,IAAI,IAAIywJ,SAAS,CAAC7C,eAAe,CAAC,CAAC,KAAKmpE,aAAa,EAAE;QAC1D/2N,IAAI,GAAGywJ,SAAS,CAACxnE,OAAO,CAAC,CAAC;MAC5B;IACF,CAAC,CAAC;IACF,IAAIirB,GAAG,GAAG6iH,aAAa,CAAC9mI,gBAAgB;IACxC,IAAIinI,YAAY,GAAG,IAAI,CAACL,aAAa;IACrC,IAAIjvI,KAAK,GAAG,IAAI,CAACA,KAAK;IACtB,IAAIuvI,aAAa,GAAGjjH,GAAG,CAACkjH,gBAAgB,CAAC,CAAC;IAC1C,IAAIC,gBAAgB,GAAGF,aAAa,CAACG,GAAG;IACxC,IAAIC,iBAAiB,GAAGJ,aAAa,CAAChmG,IAAI,CAAC,CAAC;;IAE5C,IAAIqmG,WAAW,GAAG,CAACN,YAAY,CAACj5G,OAAO,CAAC,CAAC,CAAC,IAAIt4G,OAAO;IAErD,IAAI6xN,WAAW,EAAE;MACf5vI,KAAK,CAAC/kF,CAAC,GAAG00N,iBAAiB,CAAC10N,CAAC;MAC7B+kF,KAAK,CAAC9qF,CAAC,GAAGy6N,iBAAiB,CAACz6N,CAAC;MAC7B8qF,KAAK,CAACxU,MAAM,GAAGmkJ,iBAAiB,CAACnkJ,MAAM;MACvCwU,KAAK,CAACvU,MAAM,GAAGkkJ,iBAAiB,CAAClkJ,MAAM;MACvCuU,KAAK,CAACnM,KAAK,CAAC,CAAC;IACf,CAAC,MAAM;MACLsiB,yDAAmB,CAACnW,KAAK,EAAE2vI,iBAAiB,EAAER,aAAa,CAAC;IAC9D;IAEA,IAAIU,0BAA0B,GAAGz3N,IAAI,IAAIA,IAAI,CAAC06F,SAAS,CAAC,YAAY,CAAC,IAAI16F,IAAI,CAAC06F,SAAS,CAAC,YAAY,CAAC,CAAC7kG,MAAM,GAAG,CAAC;IAChH,IAAI6hO,YAAY,GAAG;MACjBvkM,GAAG,EAAEA,GAAG;MACR+gF,GAAG,EAAEA,GAAG;MACR6iH,aAAa,EAAEA,aAAa;MAC5B/2N,IAAI,EAAEA,IAAI;MACVy3N,0BAA0B,EAAEA,0BAA0B;MACtDR,KAAK,EAAEA,KAAK;MACZI,gBAAgB,EAAEA;IACpB,CAAC;IAED,IAAInjH,GAAG,CAACyjH,YAAY,KAAK,SAAS,EAAE;MAClC,IAAI,CAACC,aAAa,CAACF,YAAY,CAAC;IAClC,CAAC,MAAM,IAAIxjH,GAAG,CAACyjH,YAAY,KAAK,QAAQ,EAAE;MACxC,IAAI,CAACE,SAAS,CAACH,YAAY,CAAC;IAC9B;IAEA,IAAI,CAACjlG,iBAAiB,CAACskG,aAAa,EAAEviJ,OAAO,EAAErhD,GAAG,CAAC;IAEnD,IAAI,CAAC2kM,uBAAuB,CAACf,aAAa,EAAEG,YAAY,EAAE/jM,GAAG,EAAE6jM,QAAQ,CAAC;EAC1E,CAAC;EAEDnoE,OAAO,CAACt5J,SAAS,CAACqiO,aAAa,GAAG,UAAUF,YAAY,EAAE;IACxD,IAAIK,kBAAkB,GAAG,IAAI,CAACC,mBAAmB,GAAGl6H,mEAAoB,CAAC,CAAC;IAC1E,IAAIm6H,iBAAiB,GAAGn6H,mEAAoB,CAAC,CAAC;IAC9C,IAAIo5H,YAAY,GAAG,IAAI,CAACL,aAAa;IACrC,IAAIQ,gBAAgB,GAAGK,YAAY,CAACL,gBAAgB;IACpD,IAAIN,aAAa,GAAGW,YAAY,CAACX,aAAa;IAC9C,IAAI/2N,IAAI,GAAG03N,YAAY,CAAC13N,IAAI;IAC5B,IAAIk4N,UAAU,GAAGR,YAAY,CAACxjH,GAAG,CAACgkH,UAAU;IAC5C,IAAIC,gBAAgB,GAAGD,UAAU,IAAIA,UAAU,CAACE,MAAM;IAEtD,SAASC,cAAcA,CAACpmJ,KAAK,EAAEqmJ,OAAO,EAAE;MACtC,IAAIA,OAAO,EAAE;QACX;QACArmJ,KAAK,GAAGqmJ,OAAO,CAACrmJ,KAAK,CAAC;MACxB;MAEA,OAAOA,KAAK,IAAI,CAACA,KAAK,CAAC,CAAC,CAAC,GAAGolJ,gBAAgB,CAACjkJ,MAAM,GAAGikJ,gBAAgB,CAACx0N,CAAC,EAAEovE,KAAK,CAAC,CAAC,CAAC,GAAGolJ,gBAAgB,CAAChkJ,MAAM,GAAGgkJ,gBAAgB,CAACv6N,CAAC,CAAC;IACpI;IAEA;IAEA,SAASy7N,sBAAsBA,CAACC,QAAQ,EAAE;MACxC,IAAIC,SAAS,GAAG,EAAE,CAAC,CAAC;;MAEpB,IAAIH,OAAO,GAAG,CAACH,gBAAgB,IAAID,UAAU,IAAIA,UAAU,CAACI,OAAO;MAEnE,KAAK,IAAIljO,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGojO,QAAQ,CAAC3iO,MAAM,EAAE,EAAET,CAAC,EAAE;QACxC,IAAIsjO,KAAK,GAAGL,cAAc,CAACG,QAAQ,CAACpjO,CAAC,CAAC,EAAEkjO,OAAO,CAAC;QAChDI,KAAK,IAAID,SAAS,CAAC9/N,IAAI,CAAC+/N,KAAK,CAAC;MAChC;MAEA,OAAOD,SAAS;IAClB;IAEA,SAASE,YAAYA,CAAC3+H,MAAM,EAAE;MAC5B,OAAO;QACL/c,KAAK,EAAE;UACL+c,MAAM,EAAEu+H,sBAAsB,CAACv+H,MAAM;QACvC;MACF,CAAC;IACH;IAEAk9H,YAAY,CAACzkI,SAAS,CAAC,CAAC,CAAC,CAAC;;IAE1BqL,0DAAW,CAAC45H,YAAY,CAACxjH,GAAG,CAACw5C,OAAO,EAAE,UAAUV,MAAM,EAAE;MACtD,IAAIc,UAAU,GAAGd,MAAM,CAACtxJ,IAAI,CAAC,CAAC;MAC9B;MACA;MACA;MACA;;MAEA,IAAIi0J,WAAW,GAAGooE,kBAAkB,CAACphO,GAAG,CAACm3J,UAAU,CAAC;MAEpD,IAAIvrE,EAAE,GAAG01I,iBAAiB,CAACthO,GAAG,CAACm3J,UAAU,CAAC,IAAI,CAAC,CAAC;QAC5Cp6D,OAAO,GAAGnR,EAAE,CAACmR,OAAO;QACpBklI,WAAW,GAAGr2I,EAAE,CAACq2I,WAAW;MAEhC,IAAI,CAACjpE,WAAW,EAAE;QAChBA,WAAW,GAAGooE,kBAAkB,CAACnhO,GAAG,CAACk3J,UAAU,EAAE,IAAI/vD,wDAAa,CAAC,CAAC,CAAC;QACrEm5H,YAAY,CAACx8N,GAAG,CAACi1J,WAAW,CAAC;QAC7Bj8D,OAAO,GAAG1zF,IAAI,GAAGA,IAAI,CAAC+tJ,WAAW,CAACD,UAAU,CAAC,GAAG,IAAI;QACpD8qE,WAAW,GAAGlB,YAAY,CAACT,KAAK,GAAGF,aAAa,CAAClpE,cAAc,CAACC,UAAU,CAAC,GAAG9tJ,IAAI,GAAGA,IAAI,CAACwxF,YAAY,CAACkC,OAAO,CAAC,GAAG,IAAI;QACtHukI,iBAAiB,CAACrhO,GAAG,CAACk3J,UAAU,EAAE;UAChCp6D,OAAO,EAAEA,OAAO;UAChBklI,WAAW,EAAEA;QACf,CAAC,CAAC;MACJ;MAEA,IAAIC,eAAe,GAAG,EAAE;MACxB,IAAIC,gBAAgB,GAAG,EAAE;MACzBh7H,0DAAW,CAACkvD,MAAM,CAAC+rE,UAAU,EAAE,UAAUC,QAAQ,EAAE;QACjD;QACA,IAAIA,QAAQ,CAAChwN,IAAI,KAAK,SAAS,EAAE;UAC/B,IAAIiwN,KAAK,GAAG,CAACD,QAAQ,CAACE,QAAQ,CAAC,CAACllN,MAAM,CAACglN,QAAQ,CAACG,SAAS,IAAI,EAAE,CAAC;UAEhE,IAAIhB,gBAAgB,EAAE;YACpBc,KAAK,GAAGG,YAAY,CAACH,KAAK,EAAEd,gBAAgB,CAAC;UAC/C;UAEAr6H,0DAAW,CAACm7H,KAAK,EAAE,UAAUI,IAAI,EAAE;YACjCR,eAAe,CAAClgO,IAAI,CAAC,IAAIolG,wDAAe,CAAC46H,YAAY,CAACU,IAAI,CAAC,CAAC,CAAC;UAC/D,CAAC,CAAC;QACJ,CAAC,CAAC;QAAA,KACG;UACD,IAAIr/H,MAAM,GAAGg/H,QAAQ,CAACh/H,MAAM;UAE5B,IAAIm+H,gBAAgB,EAAE;YACpBn+H,MAAM,GAAGo/H,YAAY,CAACp/H,MAAM,EAAEm+H,gBAAgB,EAAE,IAAI,CAAC;UACvD;UAEAr6H,0DAAW,CAAC9D,MAAM,EAAE,UAAUA,MAAM,EAAE;YACpC8+H,gBAAgB,CAACngO,IAAI,CAAC,IAAIolG,wDAAgB,CAAC46H,YAAY,CAAC3+H,MAAM,CAAC,CAAC,CAAC;UACnE,CAAC,CAAC;QACJ;MACJ,CAAC,CAAC;MACF,IAAIs/H,QAAQ,GAAGjB,cAAc,CAACrrE,MAAM,CAACv6E,SAAS,CAAC,CAAC,EAAEylJ,UAAU,IAAIA,UAAU,CAACI,OAAO,CAAC;MAEnF,SAASiB,kBAAkBA,CAACC,QAAQ,EAAEC,MAAM,EAAE;QAC5C,IAAI,CAACD,QAAQ,CAAC3jO,MAAM,EAAE;UACpB;QACF;QAEA,IAAIkyN,YAAY,GAAG,IAAIhqH,wDAAoB,CAAC;UAC1C6E,OAAO,EAAE,IAAI;UACbo/C,sBAAsB,EAAE,CAAC;UACzB/kE,KAAK,EAAE;YACL8mB,KAAK,EAAEy1H;UACT;QACF,CAAC,CAAC;QACF7pE,WAAW,CAACj1J,GAAG,CAACqtN,YAAY,CAAC;QAC7B4R,yBAAyB,CAACjC,YAAY,EAAE3P,YAAY,EAAEr0H,OAAO,EAAEklI,WAAW,CAAC;QAC3EgB,mBAAmB,CAAClC,YAAY,EAAE3P,YAAY,EAAEj6D,UAAU,EAAE8qE,WAAW,EAAE7B,aAAa,EAAErjI,OAAO,EAAE4lI,QAAQ,CAAC;QAE1G,IAAIG,MAAM,EAAE;UACV9C,YAAY,CAAC5O,YAAY,CAAC;UAC1BjqH,0DAAW,CAACiqH,YAAY,CAACvuH,MAAM,EAAEm9H,YAAY,CAAC;QAChD;MACF;MAEA4C,kBAAkB,CAACV,eAAe,CAAC;MACnCU,kBAAkB,CAACT,gBAAgB,EAAE,IAAI,CAAC;IAC5C,CAAC,CAAC,CAAC,CAAC;;IAEJf,kBAAkB,CAACzgJ,IAAI,CAAC,UAAUq4E,WAAW,EAAE7B,UAAU,EAAE;MACzD,IAAIvrE,EAAE,GAAG01I,iBAAiB,CAACthO,GAAG,CAACm3J,UAAU,CAAC;QACtCp6D,OAAO,GAAGnR,EAAE,CAACmR,OAAO;QACpBklI,WAAW,GAAGr2I,EAAE,CAACq2I,WAAW;MAEhCiB,0BAA0B,CAACnC,YAAY,EAAE/nE,WAAW,EAAE7B,UAAU,EAAE8qE,WAAW,EAAE7B,aAAa,EAAErjI,OAAO,CAAC;MACtGomI,qBAAqB,CAACpC,YAAY,EAAE/nE,WAAW,EAAE7B,UAAU,EAAE8qE,WAAW,EAAE7B,aAAa,CAAC;MACxFgD,0BAA0B,CAACrC,YAAY,EAAE/nE,WAAW,EAAE7B,UAAU,EAAE8qE,WAAW,EAAE7B,aAAa,CAAC;IAC/F,CAAC,EAAE,IAAI,CAAC;EACV,CAAC;EAEDloE,OAAO,CAACt5J,SAAS,CAACsiO,SAAS,GAAG,UAAUH,YAAY,EAAE;IACpD,IAAI1S,OAAO,GAAG0S,YAAY,CAACxjH,GAAG,CAACn2G,GAAG;IAClC,IAAIs5N,gBAAgB,GAAGK,YAAY,CAACL,gBAAgB;IACpD,IAAI,CAACP,SAAS,CAACj0N,CAAC,GAAGw0N,gBAAgB,CAACx0N,CAAC;IACrC,IAAI,CAACi0N,SAAS,CAACh6N,CAAC,GAAGu6N,gBAAgB,CAACv6N,CAAC;IACrC,IAAI,CAACg6N,SAAS,CAAC1jJ,MAAM,GAAGikJ,gBAAgB,CAACjkJ,MAAM;IAC/C,IAAI,CAAC0jJ,SAAS,CAACzjJ,MAAM,GAAGgkJ,gBAAgB,CAAChkJ,MAAM;IAE/C,IAAI,IAAI,CAAC2mJ,mBAAmB,CAAChV,OAAO,CAAC,EAAE;MACrC,IAAI,CAACiV,QAAQ,CAAC,CAAC;MAEf,IAAI,CAACC,OAAO,CAAClV,OAAO,CAAC;IACvB;IAEA,IAAImV,gBAAgB,GAAG,IAAI,CAACC,iBAAiB,GAAGt8H,mEAAoB,CAAC,CAAC;IACtE,IAAIu8H,SAAS,GAAG,KAAK;IACrBv8H,0DAAW,CAAC,IAAI,CAACw8H,iBAAiB,CAACC,KAAK,EAAE,UAAUC,SAAS,EAAE;MAC7D;MACA;MACA;MACA;MACA,IAAI1sE,UAAU,GAAG0sE,SAAS,CAAC9+N,IAAI;MAC/B,IAAIq7N,aAAa,GAAGW,YAAY,CAACX,aAAa;MAC9C,IAAI/2N,IAAI,GAAG03N,YAAY,CAAC13N,IAAI;MAC5B,IAAIy6N,eAAe,GAAGD,SAAS,CAACC,eAAe;MAC/C,IAAIrlJ,EAAE,GAAGolJ,SAAS,CAACplJ,EAAE;MACrB,IAAIse,OAAO,GAAG1zF,IAAI,GAAGA,IAAI,CAAC+tJ,WAAW,CAACD,UAAU,CAAC,GAAG,IAAI;MACxD,IAAI8qE,WAAW,GAAG7B,aAAa,CAAClpE,cAAc,CAACC,UAAU,CAAC;MAE1D,IAAIwoE,4BAA4B,CAAC3/N,GAAG,CAAC8jO,eAAe,CAAC,IAAI,IAAI,IAAIrlJ,EAAE,YAAYiE,0EAAW,EAAE;QAC1FsgJ,yBAAyB,CAACjC,YAAY,EAAEtiJ,EAAE,EAAEse,OAAO,EAAEklI,WAAW,CAAC;MACnE;MAEA,IAAIxjJ,EAAE,YAAYiE,0EAAW,EAAE;QAC7BjE,EAAE,CAACwtB,OAAO,GAAG,IAAI;MACnB,CAAC,CAAC;MACF;MACA;;MAGAxtB,EAAE,CAACihC,cAAc,GAAG,CAAC,CAAC,CAAC;;MAEvB,IAAI,CAACmkH,SAAS,CAACE,SAAS,EAAE;QACxB;QACA;QACA,IAAIlE,cAAc,CAAC7/N,GAAG,CAAC8jO,eAAe,CAAC,IAAI,IAAI,EAAE;UAC/Cb,mBAAmB,CAAClC,YAAY,EAAEtiJ,EAAE,EAAE04E,UAAU,EAAE8qE,WAAW,EAAE7B,aAAa,EAAErjI,OAAO,EAAE,IAAI,CAAC;QAC9F;QAEAmmI,0BAA0B,CAACnC,YAAY,EAAEtiJ,EAAE,EAAE04E,UAAU,EAAE8qE,WAAW,EAAE7B,aAAa,EAAErjI,OAAO,CAAC;QAC7FomI,qBAAqB,CAACpC,YAAY,EAAEtiJ,EAAE,EAAE04E,UAAU,EAAE8qE,WAAW,EAAE7B,aAAa,CAAC;QAE/E,IAAIR,qBAAqB,CAAC5/N,GAAG,CAAC8jO,eAAe,CAAC,IAAI,IAAI,EAAE;UACtD,IAAIE,OAAO,GAAGZ,0BAA0B,CAACrC,YAAY,EAAEtiJ,EAAE,EAAE04E,UAAU,EAAE8qE,WAAW,EAAE7B,aAAa,CAAC;UAElG,IAAI4D,OAAO,KAAK,MAAM,EAAE;YACtBN,SAAS,GAAG,IAAI;UAClB;UAEA,IAAIhgD,GAAG,GAAG8/C,gBAAgB,CAACxjO,GAAG,CAACm3J,UAAU,CAAC,IAAIqsE,gBAAgB,CAACvjO,GAAG,CAACk3J,UAAU,EAAE,EAAE,CAAC;UAClFusB,GAAG,CAAC1hL,IAAI,CAACy8E,EAAE,CAAC;QACd;MACF;IACF,CAAC,EAAE,IAAI,CAAC;IAER,IAAI,CAACwlJ,oBAAoB,CAACP,SAAS,EAAE3C,YAAY,CAAC;EACpD,CAAC;EAED7oE,OAAO,CAACt5J,SAAS,CAACqlO,oBAAoB,GAAG,UAAUP,SAAS,EAAE3C,YAAY,EAAE;IAC1E;IACA;IACA;IACA,IAAI2C,SAAS,IAAI3C,YAAY,CAACT,KAAK,EAAE;MACnC,IAAI7yH,SAAS,GAAGszH,YAAY,CAACX,aAAa,CAAC31I,QAAQ,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAACiQ,YAAY,CAAC,CAAC,CAAC,CAAC;MAC3F;;MAEA,IAAIwpI,SAAS,GAAGz2H,SAAS,CAAC53E,OAAO;MAEjC,IAAI,CAAC8tM,iBAAiB,CAAC1sM,IAAI,CAACqpD,QAAQ,CAAC,UAAU7B,EAAE,EAAE;QACjD,IAAI,CAACA,EAAE,CAAC4B,OAAO,EAAE;UACf;UACA;UACAw7B,sEAAoB,CAACp9B,EAAE,CAAC;UACxB,IAAIpkE,KAAK,GAAGokE,EAAE,CAACuvB,WAAW,CAAC,MAAM,CAAC,CAAC3zF,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;;UAEhD,IAAIA,KAAK,CAACwb,OAAO,IAAI,IAAI,IAAIquM,SAAS,IAAI,IAAI,EAAE;YAC9C7pN,KAAK,CAACwb,OAAO,GAAGquM,SAAS;UAC3B,CAAC,CAAC;UACF;;UAGAzlJ,EAAE,CAACuvB,WAAW,CAAC,UAAU,CAAC;QAC5B;MACF,CAAC,CAAC;IACJ;EACF,CAAC;EAEDkqD,OAAO,CAACt5J,SAAS,CAACuN,MAAM,GAAG,YAAY;IACrC,IAAI,CAAC+zN,aAAa,CAACpkI,SAAS,CAAC,CAAC;IAE9B,IAAI,CAACulI,mBAAmB,GAAG,IAAI;IAE/B,IAAI,CAAClB,SAAS,CAACrkI,SAAS,CAAC,CAAC;IAE1B,IAAI,CAACwnI,QAAQ,CAAC,CAAC;IAEf,IAAI,CAAC9nG,WAAW,CAAC98B,OAAO,CAAC,CAAC;IAE1B,IAAI,CAAC+8B,eAAe,GAAG,IAAI;EAC7B,CAAC;EAEDy8B,OAAO,CAACt5J,SAAS,CAACqvN,uBAAuB,GAAG,UAAUlpN,IAAI,EAAE4oN,QAAQ,EAAE;IACpE,IAAI5oN,IAAI,IAAI,IAAI,EAAE;MAChB,OAAO,EAAE;IACX;IAEA,IAAIw4G,GAAG,GAAGowG,QAAQ,CAACr0H,gBAAgB;IAEnC,IAAIikB,GAAG,CAACyjH,YAAY,KAAK,SAAS,EAAE;MAClC,IAAII,kBAAkB,GAAG,IAAI,CAACC,mBAAmB;MAEjD,IAAID,kBAAkB,EAAE;QACtB,IAAIpoE,WAAW,GAAGooE,kBAAkB,CAACphO,GAAG,CAAC+E,IAAI,CAAC;QAC9C,OAAOi0J,WAAW,GAAG,CAACA,WAAW,CAAC,GAAG,EAAE;MACzC;IACF,CAAC,MAAM,IAAIz7C,GAAG,CAACyjH,YAAY,KAAK,QAAQ,EAAE;MACxC,OAAO,IAAI,CAACyC,iBAAiB,IAAI,IAAI,CAACA,iBAAiB,CAACzjO,GAAG,CAAC+E,IAAI,CAAC,IAAI,EAAE;IACzE;EACF,CAAC;EAEDmzJ,OAAO,CAACt5J,SAAS,CAACykO,mBAAmB,GAAG,UAAUhV,OAAO,EAAE;IACzD,OAAO,IAAI,CAAC8V,WAAW,KAAK9V,OAAO;EACrC,CAAC;EAEDn2D,OAAO,CAACt5J,SAAS,CAAC2kO,OAAO,GAAG,UAAUlV,OAAO,EAAE;IAC7C,IAAI+V,QAAQ,GAAGruE,sFAA+B,CAACs4D,OAAO,CAAC;IAEvD,IAAI+V,QAAQ,IAAIA,QAAQ,CAAC/xN,IAAI,KAAK,QAAQ,EAAE;MAC1C,IAAIiyN,UAAU,GAAGF,QAAQ,CAACG,UAAU,CAAC,IAAI,CAACtlF,GAAG,CAAC;MAE9C,IAAI,CAACkhF,SAAS,CAACp8N,GAAG,CAACugO,UAAU,CAACrtM,IAAI,CAAC;MAEnC,IAAI,CAAC0sM,iBAAiB,GAAGW,UAAU;MACnC,IAAI,CAACH,WAAW,GAAG9V,OAAO;IAC5B;EACF,CAAC;EAEDn2D,OAAO,CAACt5J,SAAS,CAAC0kO,QAAQ,GAAG,YAAY;IACvC,IAAIjV,OAAO,GAAG,IAAI,CAAC8V,WAAW;IAE9B,IAAI9V,OAAO,IAAI,IAAI,EAAE;MACnB;IACF;IAEA,IAAI+V,QAAQ,GAAGruE,sFAA+B,CAACs4D,OAAO,CAAC;IAEvD,IAAI+V,QAAQ,IAAIA,QAAQ,CAAC/xN,IAAI,KAAK,QAAQ,EAAE;MAC1C+xN,QAAQ,CAACI,WAAW,CAAC,IAAI,CAACvlF,GAAG,CAAC;IAChC;IAEA,IAAI,CAAC0kF,iBAAiB,GAAG,IAAI;IAC7B,IAAI,CAACF,iBAAiB,GAAG,IAAI;IAE7B,IAAI,CAACtD,SAAS,CAACrkI,SAAS,CAAC,CAAC;IAE1B,IAAI,CAACqoI,WAAW,GAAG,IAAI;EACzB,CAAC;EAEDjsE,OAAO,CAACt5J,SAAS,CAACk9H,iBAAiB,GAAG,UAAUskG,aAAa,EAAEviJ,OAAO,EAAErhD,GAAG,EAAE;IAC3E,IAAI+gF,GAAG,GAAG6iH,aAAa,CAAC9mI,gBAAgB;IACxC,IAAIwjC,UAAU,GAAG,IAAI,CAACtB,WAAW;IACjC,IAAIuB,cAAc,GAAG,IAAI,CAACtB,eAAe,CAAC,CAAC;;IAE3CsB,cAAc,CAACrhD,SAAS,GAAG0kJ,aAAa,CAACpgO,GAAG,CAAC,YAAY,CAAC;IAC1D+8H,cAAc,CAAChhD,IAAI,GAAGwhC,GAAG,CAAC3hC,OAAO,CAAC,CAAC,CAAC,CAAC;IACrC;;IAEAkhD,UAAU,CAACM,MAAM,CAACgjG,aAAa,CAACpgO,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC;IACrD,IAAIuvG,QAAQ,GAAG6wH,aAAa,CAAC7wH,QAAQ;IAErC,SAASk1H,cAAcA,CAAA,EAAG;MACxB,IAAIC,MAAM,GAAG;QACXryN,IAAI,EAAE,SAAS;QACfisF,aAAa,EAAEiR;MACjB,CAAC;MACDm1H,MAAM,CAACn1H,QAAQ,GAAG,IAAI,CAAC,GAAG6wH,aAAa,CAAC79N,EAAE;MAC1C,OAAOmiO,MAAM;IACf;IAEA5nG,UAAU,CAACrzC,GAAG,CAAC,KAAK,CAAC,CAACgT,EAAE,CAAC,KAAK,EAAE,UAAUl+F,CAAC,EAAE;MAC3C,IAAI,CAAComO,cAAc,GAAG,KAAK;MAC3B9pG,6EAA0B,CAACkC,cAAc,EAAEx+H,CAAC,CAAC29E,EAAE,EAAE39E,CAAC,CAAC49E,EAAE,CAAC;MACtD3/C,GAAG,CAAC6hE,cAAc,CAAC8I,4DAAa,CAACs9H,cAAc,CAAC,CAAC,EAAE;QACjDvoJ,EAAE,EAAE39E,CAAC,CAAC29E,EAAE;QACRC,EAAE,EAAE59E,CAAC,CAAC49E,EAAE;QACR6B,SAAS,EAAE;UACTI,QAAQ,EAAE;QACZ;MACF,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,IAAI,CAAC;IACR0+C,UAAU,CAACrzC,GAAG,CAAC,MAAM,CAAC,CAACgT,EAAE,CAAC,MAAM,EAAE,UAAUl+F,CAAC,EAAE;MAC7C,IAAI,CAAComO,cAAc,GAAG,KAAK;MAC3B9pG,8EAA2B,CAACkC,cAAc,EAAEx+H,CAAC,CAACukF,KAAK,EAAEvkF,CAAC,CAACq+E,OAAO,EAAEr+E,CAAC,CAACu+E,OAAO,CAAC;MAC1EtgD,GAAG,CAAC6hE,cAAc,CAAC8I,4DAAa,CAACs9H,cAAc,CAAC,CAAC,EAAE;QACjD1oJ,IAAI,EAAEx9E,CAAC,CAACukF,KAAK;QACblG,OAAO,EAAEr+E,CAAC,CAACq+E,OAAO;QAClBE,OAAO,EAAEv+E,CAAC,CAACu+E,OAAO;QAClBkB,SAAS,EAAE;UACTI,QAAQ,EAAE;QACZ;MACF,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,IAAI,CAAC;IACR0+C,UAAU,CAACE,iBAAiB,CAAC,UAAUz+H,CAAC,EAAE2N,CAAC,EAAE/F,CAAC,EAAE;MAC9C,OAAOo3G,GAAG,CAACihD,YAAY,CAAC,CAACtyJ,CAAC,EAAE/F,CAAC,CAAC,CAAC,IAAI,CAAC20H,uFAAmB,CAACv8H,CAAC,EAAEi+B,GAAG,EAAE4jM,aAAa,CAAC;IAChF,CAAC,CAAC;EACJ,CAAC;EACD;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EAGEloE,OAAO,CAACt5J,SAAS,CAAC25J,mBAAmB,GAAG,YAAY;IAClD,IAAI,CAACtnE,KAAK,CAAC3Q,QAAQ,CAAC,UAAU7B,EAAE,EAAE;MAChC,IAAIj9E,KAAK,GAAGi9E,EAAE,CAACgd,cAAc,CAAC,CAAC;MAE/B,IAAIj6F,KAAK,EAAE;QACTA,KAAK,CAACqkF,MAAM,GAAGi6I,WAAW,CAACt+N,KAAK,CAAC,CAACqkF,MAAM;MAC1C;IACF,CAAC,CAAC;EACJ,CAAC;EAEDqyE,OAAO,CAACt5J,SAAS,CAACuiO,uBAAuB,GAAG,UAAUf,aAAa,EAAEG,YAAY,EAAE/jM,GAAG,EAAE6jM,QAAQ,EAAE;IAChG,IAAI7nE,OAAO,GAAG,IAAI;IAClB+nE,YAAY,CAAC92I,GAAG,CAAC,WAAW,CAAC;IAC7B82I,YAAY,CAAC92I,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;;IAE3B,IAAI22I,aAAa,CAACpgO,GAAG,CAAC,cAAc,CAAC,EAAE;MACrCugO,YAAY,CAAC9jI,EAAE,CAAC,WAAW,EAAE,YAAY;QACvC+7D,OAAO,CAACmsE,cAAc,GAAG,IAAI;MAC/B,CAAC,CAAC;MACFpE,YAAY,CAAC9jI,EAAE,CAAC,OAAO,EAAE,UAAUl+F,CAAC,EAAE;QACpC,IAAI,CAACi6J,OAAO,CAACmsE,cAAc,EAAE;UAC3B;QACF;QAEAnsE,OAAO,CAACmsE,cAAc,GAAG,KAAK;MAChC,CAAC,CAAC;IACJ;EACF,CAAC;EAED,OAAOzsE,OAAO;AAChB,CAAC,CAAC,CAAC;AAEH;AAEA,SAAS8qE,yBAAyBA,CAACjC,YAAY,EAAEtiJ,EAAE,EAAEhB,SAAS,EAAEwkJ,WAAW,EAAE;EAC3E;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAIhlD,gBAAgB,GAAGglD,WAAW,CAACx3I,QAAQ,CAAC,WAAW,CAAC;EACxD,IAAIm6I,kBAAkB,GAAG3C,WAAW,CAACx3I,QAAQ,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;EACxE,IAAIo6I,cAAc,GAAG5C,WAAW,CAACx3I,QAAQ,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;EAChE,IAAIq6I,gBAAgB,GAAG7C,WAAW,CAACx3I,QAAQ,CAAC,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;EACtE;;EAEA,IAAIoiF,WAAW,GAAGkzD,iBAAiB,CAAC9iD,gBAAgB,CAAC;EACrD,IAAIzvE,aAAa,GAAGuyH,iBAAiB,CAAC6E,kBAAkB,CAAC;EACzD,IAAIl3H,WAAW,GAAGqyH,iBAAiB,CAAC+E,gBAAgB,CAAC;EACrD,IAAIr3H,SAAS,GAAGsyH,iBAAiB,CAAC8E,cAAc,CAAC,CAAC,CAAC;;EAEnD,IAAIx7N,IAAI,GAAG03N,YAAY,CAAC13N,IAAI;EAE5B,IAAIA,IAAI,EAAE;IACR;IACA;IACA;IACA,IAAIgR,KAAK,GAAGhR,IAAI,CAACw4F,aAAa,CAACpkB,SAAS,EAAE,OAAO,CAAC;IAClD,IAAI09B,KAAK,GAAG9xG,IAAI,CAACw4F,aAAa,CAACpkB,SAAS,EAAE,OAAO,CAAC;IAElD,IAAIsjJ,YAAY,CAACD,0BAA0B,IAAIzmN,KAAK,CAACoQ,IAAI,EAAE;MACzDoiJ,WAAW,CAACpiJ,IAAI,GAAGpQ,KAAK,CAACoQ,IAAI;IAC/B;IAEA,IAAI0wF,KAAK,EAAE;MACT0xD,WAAW,CAAC1xD,KAAK,GAAGsB,+EAA8B,CAACtB,KAAK,EAAE4lH,YAAY,CAACvkM,GAAG,CAAC;IAC7E;EACF,CAAC,CAAC;EACF;;EAGAiiD,EAAE,CAACiH,QAAQ,CAACmnF,WAAW,CAAC;EACxBpuF,EAAE,CAACpkE,KAAK,CAAC6xF,aAAa,GAAG,IAAI;EAC7BztB,EAAE,CAACuvB,WAAW,CAAC,UAAU,CAAC,CAAC3zF,KAAK,GAAGmzF,aAAa;EAChD/uB,EAAE,CAACuvB,WAAW,CAAC,QAAQ,CAAC,CAAC3zF,KAAK,GAAGqzF,WAAW;EAC5CjvB,EAAE,CAACuvB,WAAW,CAAC,MAAM,CAAC,CAAC3zF,KAAK,GAAGozF,SAAS,CAAC,CAAC;;EAE1CoO,sEAAoB,CAACp9B,EAAE,CAAC;AAC1B;AAEA,SAASwkJ,mBAAmBA,CAAClC,YAAY,EAAEtiJ,EAAE,EAAE04E,UAAU,EAAE8qE,WAAW,EAAE7B,aAAa;AAAE;AACvFrjI,OAAO;AAAE;AACTgoI,OAAO,EAAE;EACP,IAAI17N,IAAI,GAAG03N,YAAY,CAAC13N,IAAI;EAC5B,IAAIi3N,KAAK,GAAGS,YAAY,CAACT,KAAK;EAC9B,IAAI0E,SAAS,GAAG37N,IAAI,IAAIgrB,KAAK,CAAChrB,IAAI,CAACrJ,GAAG,CAACqJ,IAAI,CAACwzF,YAAY,CAAC,OAAO,CAAC,EAAEE,OAAO,CAAC,CAAC;EAC5E,IAAIuT,UAAU,GAAGjnG,IAAI,IAAIA,IAAI,CAACyrF,aAAa,CAACiI,OAAO,CAAC,CAAC,CAAC;EACtD;EACA;EACA;;EAEA,IAAIujI,KAAK,IAAI0E,SAAS,IAAI10H,UAAU,IAAIA,UAAU,CAAC4pD,SAAS,EAAE;IAC5D,IAAI1qD,KAAK,GAAG,CAAC8wH,KAAK,GAAGvjI,OAAO,GAAGo6D,UAAU;IACzC,IAAIj1D,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC;;IAE3B,IAAI,CAAC74F,IAAI,IAAI0zF,OAAO,IAAI,CAAC,EAAE;MACzBmF,YAAY,GAAGk+H,aAAa;IAC9B;IAEA,IAAI6E,gBAAgB,GAAGF,OAAO,GAAG;MAC/B/nH,MAAM,EAAE;QACN+O,KAAK,EAAE,QAAQ;QACfE,aAAa,EAAE;MACjB;IACF,CAAC,GAAG,IAAI,CAAC,CAAC;IACV;;IAEAz1B,oEAAa,CAAC/X,EAAE,EAAEgY,2EAAoB,CAACwrI,WAAW,CAAC,EAAE;MACnD//H,YAAY,EAAEA,YAAY;MAC1BC,cAAc,EAAEqN,KAAK;MACrBpN,WAAW,EAAE+0D;IACf,CAAC,EAAE8tE,gBAAgB,CAAC;IACpB,IAAIzpI,MAAM,GAAG/c,EAAE,CAACgd,cAAc,CAAC,CAAC;IAEhC,IAAID,MAAM,EAAE;MACVskI,WAAW,CAACtkI,MAAM,CAAC,CAAC3V,MAAM,GAAG2V,MAAM,CAAC3V,MAAM;MAE1C,IAAIpH,EAAE,CAAC+jB,UAAU,IAAIuiI,OAAO,EAAE;QAC5B;QACA,IAAIlwI,IAAI,GAAGpW,EAAE,CAACw+C,eAAe,CAAC,CAAC,CAACpzC,KAAK,CAAC,CAAC,CAAC,CAAC;QACzC;QACA;QACA;;QAEApL,EAAE,CAAC+jB,UAAU,CAAC2kF,UAAU,GAAGtyF,IAAI;QAC/BpW,EAAE,CAAC+jB,UAAU,CAAC5qE,QAAQ,GAAG,CAAC,CAACmtM,OAAO,CAAC,CAAC,CAAC,GAAGlwI,IAAI,CAAC3oF,CAAC,IAAI2oF,IAAI,CAAC7qE,KAAK,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC+6M,OAAO,CAAC,CAAC,CAAC,GAAGlwI,IAAI,CAAC1uF,CAAC,IAAI0uF,IAAI,CAAC3qE,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC;MAC5H;IACF,CAAC,CAAC;IACF;IACA;IACA;IACA;IACA;;IAGAu0D,EAAE,CAACqtE,qBAAqB,GAAG,IAAI;EACjC,CAAC,MAAM;IACLrtE,EAAE,CAACuB,iBAAiB,CAAC,CAAC;IACtBvB,EAAE,CAACymJ,gBAAgB,CAAC,CAAC;IACrBzmJ,EAAE,CAACqtE,qBAAqB,GAAG,IAAI;EACjC;AACF;AAEA,SAASo3E,0BAA0BA,CAACnC,YAAY,EAAEoE,YAAY,EAAEhuE,UAAU,EAAE8qE,WAAW,EAAE7B,aAAa;AAAE;AACxGrjI,OAAO,EAAE;EACP;EACA;EACA,IAAIgkI,YAAY,CAAC13N,IAAI,EAAE;IACrB;IACA;IACA;IACA;IACA;IACA;IACA;IACA03N,YAAY,CAAC13N,IAAI,CAACiyF,gBAAgB,CAACyB,OAAO,EAAEooI,YAAY,CAAC;EAC3D,CAAC,CAAC;EACF;EACA;EACA;EACA;EAAA,KACK;IACD;IACA9uI,+DAAS,CAAC8uI,YAAY,CAAC,CAACn6E,SAAS,GAAG;MAClC1sD,aAAa,EAAE,KAAK;MACpB4sD,cAAc,EAAEk1E,aAAa,CAACl1E,cAAc;MAC5C1iB,QAAQ,EAAE43F,aAAa,CAACl1E,cAAc;MACtCnmJ,IAAI,EAAEoyJ,UAAU;MAChBd,MAAM,EAAE4rE,WAAW,IAAIA,WAAW,CAACt9H,MAAM,IAAI,CAAC;IAChD,CAAC;EACH;AACJ;AAEA,SAASw+H,qBAAqBA,CAACpC,YAAY,EAAEtiJ,EAAE,EAAE04E,UAAU,EAAE8qE,WAAW,EAAE7B,aAAa,EAAE;EACvF,IAAI,CAACW,YAAY,CAAC13N,IAAI,EAAE;IACtB+9F,+DAAwB,CAAC;MACvB3oB,EAAE,EAAEA,EAAE;MACNgxB,cAAc,EAAE2wH,aAAa;MAC7B9qH,QAAQ,EAAE6hD,UAAU;MACpB;MACA27D,iBAAiB,EAAEmP,WAAW,CAACjiO,GAAG,CAAC,SAAS;IAC9C,CAAC,CAAC;EACJ;AACF;AAEA,SAASojO,0BAA0BA,CAACrC,YAAY,EAAEtiJ,EAAE,EAAE04E,UAAU,EAAE8qE,WAAW,EAAE7B,aAAa,EAAE;EAC5F;EACA3hJ,EAAE,CAAC2mJ,qBAAqB,GAAG,CAAC,CAAChF,aAAa,CAACpgO,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;;EAEhE,IAAI2iG,aAAa,GAAGs/H,WAAW,CAACx3I,QAAQ,CAAC,UAAU,CAAC;EACpD,IAAIkjB,KAAK,GAAGhL,aAAa,CAAC3iG,GAAG,CAAC,OAAO,CAAC;EACtCu2F,qEAAmB,CAAC9X,EAAE,EAAEkvB,KAAK,EAAEhL,aAAa,CAAC3iG,GAAG,CAAC,WAAW,CAAC,EAAE2iG,aAAa,CAAC3iG,GAAG,CAAC,UAAU,CAAC,CAAC;EAE7F,IAAI+gO,YAAY,CAACT,KAAK,EAAE;IACtBd,iFAA+B,CAAC/gJ,EAAE,EAAE2hJ,aAAa,EAAEjpE,UAAU,CAAC;EAChE;EAEA,OAAOxpD,KAAK;AACd;AAEA,SAAS80H,YAAYA,CAAC4C,KAAK;AAAE;AAC7BC,YAAY,EAAExC,MAAM,EAAE;EACpB,IAAIyC,QAAQ,GAAG,EAAE;EACjB,IAAIC,OAAO;EAEX,SAASC,YAAYA,CAAA,EAAG;IACtBD,OAAO,GAAG,EAAE;EACd;EAEA,SAASE,UAAUA,CAAA,EAAG;IACpB,IAAIF,OAAO,CAACtmO,MAAM,EAAE;MAClBqmO,QAAQ,CAACvjO,IAAI,CAACwjO,OAAO,CAAC;MACtBA,OAAO,GAAG,EAAE;IACd;EACF;EAEA,IAAI/D,MAAM,GAAG6D,YAAY,CAAC;IACxBK,YAAY,EAAEF,YAAY;IAC1BG,UAAU,EAAEF,UAAU;IACtBG,SAAS,EAAEJ,YAAY;IACvBK,OAAO,EAAEJ,UAAU;IACnBpqJ,KAAK,EAAE,SAAAA,CAAUpvE,CAAC,EAAE/F,CAAC,EAAE;MACrB;MACA,IAAIsiF,QAAQ,CAACv8E,CAAC,CAAC,IAAIu8E,QAAQ,CAACtiF,CAAC,CAAC,EAAE;QAC9Bq/N,OAAO,CAACxjO,IAAI,CAAC,CAACkK,CAAC,EAAE/F,CAAC,CAAC,CAAC;MACtB;IACF,CAAC;IACD4/N,MAAM,EAAE,SAAAA,CAAA,EAAY,CAAC;EACvB,CAAC,CAAC;EACF,CAACjD,MAAM,IAAIrB,MAAM,CAACkE,YAAY,CAAC,CAAC;EAChCx+H,0DAAW,CAACk+H,KAAK,EAAE,UAAUW,IAAI,EAAE;IACjCvE,MAAM,CAACoE,SAAS,CAAC,CAAC;IAElB,KAAK,IAAIpnO,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGunO,IAAI,CAAC9mO,MAAM,EAAET,CAAC,EAAE,EAAE;MACpCgjO,MAAM,CAACnmJ,KAAK,CAAC0qJ,IAAI,CAACvnO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEunO,IAAI,CAACvnO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC;IAEAgjO,MAAM,CAACqE,OAAO,CAAC,CAAC;EAClB,CAAC,CAAC;EACF,CAAChD,MAAM,IAAIrB,MAAM,CAACmE,UAAU,CAAC,CAAC;EAC9B,OAAOL,QAAQ;AACjB;AAEA,iEAAertE,OAAO,EAAC,CAAC;;;;;;;;;;;;;;;;;;;;AChwBxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACkC;AACkB;AACG;AACG;AACiB;AAC3E;AAEA,IAAIt9B,cAAc,GAClB;AACA,UAAUzmC,MAAM,EAAE;EAChBL,gDAAS,CAAC8mC,cAAc,EAAEzmC,MAAM,CAAC;EAEjC,SAASymC,cAAcA,CAAC65B,EAAE,EAAE;IAC1B,IAAI5nJ,KAAK,GAAGsnF,MAAM,CAACr1F,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI;IAErC+N,KAAK,CAAC4oN,GAAG,GAAGhhE,EAAE,CAAC,CAAC;;IAEhB,IAAIwxE,gBAAgB,GAAGrjO,8DAAI,CAACiK,KAAK,CAACq5N,iBAAiB,EAAEr5N,KAAK,CAAC;IAC3D,IAAIs5N,gBAAgB,GAAGvjO,8DAAI,CAACiK,KAAK,CAACu5N,iBAAiB,EAAEv5N,KAAK,CAAC;IAC3D,IAAIw5N,cAAc,GAAGzjO,8DAAI,CAACiK,KAAK,CAACy5N,eAAe,EAAEz5N,KAAK,CAAC;IACvD,IAAI05N,iBAAiB,GAAG3jO,8DAAI,CAACiK,KAAK,CAAC25N,kBAAkB,EAAE35N,KAAK,CAAC;IAC7D,IAAI45N,YAAY,GAAG7jO,8DAAI,CAACiK,KAAK,CAAC65N,aAAa,EAAE75N,KAAK,CAAC;IACnD;AACJ;AACA;AACA;AACA;;IAEIA,KAAK,CAACuwH,MAAM,GAAG,UAAUmvF,WAAW,EAAEh5H,GAAG,EAAE;MACzC;MACA,IAAI,CAAC4pC,OAAO,CAAC,CAAC;MACd,IAAI,CAACwpG,IAAI,GAAG59I,kEAAQ,CAACc,+DAAK,CAAC0J,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE;QACrCyqH,gBAAgB,EAAE,IAAI;QACtBC,eAAe,EAAE,IAAI;QACrB;QACAC,gBAAgB,EAAE,KAAK;QACvBC,uBAAuB,EAAE;MAC3B,CAAC,CAAC;MAEF,IAAIoO,WAAW,IAAI,IAAI,EAAE;QACvBA,WAAW,GAAG,IAAI;MACpB;MAEA,IAAIA,WAAW,KAAK,IAAI,IAAIA,WAAW,KAAK,MAAM,IAAIA,WAAW,KAAK,KAAK,EAAE;QAC3E93D,EAAE,CAACh4D,EAAE,CAAC,WAAW,EAAEwpI,gBAAgB,CAAC;QACpCxxE,EAAE,CAACh4D,EAAE,CAAC,WAAW,EAAE0pI,gBAAgB,CAAC;QACpC1xE,EAAE,CAACh4D,EAAE,CAAC,SAAS,EAAE4pI,cAAc,CAAC;MAClC;MAEA,IAAI9Z,WAAW,KAAK,IAAI,IAAIA,WAAW,KAAK,OAAO,IAAIA,WAAW,KAAK,MAAM,EAAE;QAC7E93D,EAAE,CAACh4D,EAAE,CAAC,YAAY,EAAE8pI,iBAAiB,CAAC;QACtC9xE,EAAE,CAACh4D,EAAE,CAAC,OAAO,EAAEgqI,YAAY,CAAC;MAC9B;IACF,CAAC;IAED55N,KAAK,CAACswH,OAAO,GAAG,YAAY;MAC1Bs3B,EAAE,CAAChrE,GAAG,CAAC,WAAW,EAAEw8I,gBAAgB,CAAC;MACrCxxE,EAAE,CAAChrE,GAAG,CAAC,WAAW,EAAE08I,gBAAgB,CAAC;MACrC1xE,EAAE,CAAChrE,GAAG,CAAC,SAAS,EAAE48I,cAAc,CAAC;MACjC5xE,EAAE,CAAChrE,GAAG,CAAC,YAAY,EAAE88I,iBAAiB,CAAC;MACvC9xE,EAAE,CAAChrE,GAAG,CAAC,OAAO,EAAEg9I,YAAY,CAAC;IAC/B,CAAC;IAED,OAAO55N,KAAK;EACd;EAEA+tH,cAAc,CAACh8H,SAAS,CAACgoO,UAAU,GAAG,YAAY;IAChD,OAAO,IAAI,CAACnoC,SAAS;EACvB,CAAC;EAED7jE,cAAc,CAACh8H,SAAS,CAACioO,UAAU,GAAG,YAAY;IAChD,OAAO,IAAI,CAACC,SAAS;EACvB,CAAC;EAEDlsG,cAAc,CAACh8H,SAAS,CAACo+H,iBAAiB,GAAG,UAAU+pG,cAAc,EAAE;IACrE,IAAI,CAACA,cAAc,GAAGA,cAAc;EACtC,CAAC;EAEDnsG,cAAc,CAACh8H,SAAS,CAAC8/F,OAAO,GAAG,YAAY;IAC7C,IAAI,CAACy+B,OAAO,CAAC,CAAC;EAChB,CAAC;EAEDvC,cAAc,CAACh8H,SAAS,CAACsnO,iBAAiB,GAAG,UAAU3nO,CAAC,EAAE;IACxD,IAAI+/L,yFAA4C,CAAC//L,CAAC,CAAC,EAAE;MACnD;IACF;IAEA,IAAIkgF,EAAE,GAAGlgF,CAAC,CAACie,MAAM;IAEjB,OAAOiiE,EAAE,EAAE;MACT,IAAIA,EAAE,CAAC87C,SAAS,EAAE;QAChB;MACF,CAAC,CAAC;;MAGF97C,EAAE,GAAGA,EAAE,CAACmgC,YAAY,IAAIngC,EAAE,CAAC2B,MAAM;IACnC;IAEA,IAAIl0E,CAAC,GAAG3N,CAAC,CAAC6lG,OAAO;IACjB,IAAIj+F,CAAC,GAAG5H,CAAC,CAAC8lG,OAAO,CAAC,CAAC;IACnB;;IAEA,IAAI,IAAI,CAAC0iI,cAAc,IAAI,IAAI,CAACA,cAAc,CAACxoO,CAAC,EAAE2N,CAAC,EAAE/F,CAAC,CAAC,EAAE;MACvD,IAAI,CAAC2B,EAAE,GAAGoE,CAAC;MACX,IAAI,CAAC+6N,EAAE,GAAG9gO,CAAC;MACX,IAAI,CAACs4L,SAAS,GAAG,IAAI;IACvB;EACF,CAAC;EAED7jE,cAAc,CAACh8H,SAAS,CAACwnO,iBAAiB,GAAG,UAAU7nO,CAAC,EAAE;IACxD,IAAI,CAAC,IAAI,CAACkgM,SAAS,IAAI,CAAC2tB,mBAAmB,CAAC,iBAAiB,EAAE7tN,CAAC,EAAE,IAAI,CAACooO,IAAI,CAAC,IAAIpoO,CAAC,CAAC2oO,YAAY,KAAK,OAAO,IAAI1S,yDAAwB,CAAC,IAAI,CAACiB,GAAG,EAAE,WAAW,CAAC,EAAE;MAC7J;IACF;IAEA,IAAIvpN,CAAC,GAAG3N,CAAC,CAAC6lG,OAAO;IACjB,IAAIj+F,CAAC,GAAG5H,CAAC,CAAC8lG,OAAO;IACjB,IAAI+/E,IAAI,GAAG,IAAI,CAACt8K,EAAE;IAClB,IAAIu8K,IAAI,GAAG,IAAI,CAAC4iD,EAAE;IAClB,IAAI/qJ,EAAE,GAAGhwE,CAAC,GAAGk4K,IAAI;IACjB,IAAIjoG,EAAE,GAAGh2E,CAAC,GAAGk+K,IAAI;IACjB,IAAI,CAACv8K,EAAE,GAAGoE,CAAC;IACX,IAAI,CAAC+6N,EAAE,GAAG9gO,CAAC;IACX,IAAI,CAACwgO,IAAI,CAACxoB,uBAAuB,IAAI7f,2DAAc,CAAC//L,CAAC,CAAC0lG,KAAK,CAAC;IAC5Do0H,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,iBAAiB,EAAE95N,CAAC,EAAE;MACzC29E,EAAE,EAAEA,EAAE;MACNC,EAAE,EAAEA,EAAE;MACNioG,IAAI,EAAEA,IAAI;MACVC,IAAI,EAAEA,IAAI;MACV5kB,IAAI,EAAEvzJ,CAAC;MACPmzM,IAAI,EAAEl5M,CAAC;MACPimN,mBAAmB,EAAE;IACvB,CAAC,CAAC;EACJ,CAAC;EAEDxxF,cAAc,CAACh8H,SAAS,CAAC0nO,eAAe,GAAG,UAAU/nO,CAAC,EAAE;IACtD,IAAI,CAAC+/L,yFAA4C,CAAC//L,CAAC,CAAC,EAAE;MACpD,IAAI,CAACkgM,SAAS,GAAG,KAAK;IACxB;EACF,CAAC;EAED7jE,cAAc,CAACh8H,SAAS,CAAC4nO,kBAAkB,GAAG,UAAUjoO,CAAC,EAAE;IACzD,IAAI6oO,UAAU,GAAGhb,mBAAmB,CAAC,kBAAkB,EAAE7tN,CAAC,EAAE,IAAI,CAACooO,IAAI,CAAC;IACtE,IAAIU,UAAU,GAAGjb,mBAAmB,CAAC,kBAAkB,EAAE7tN,CAAC,EAAE,IAAI,CAACooO,IAAI,CAAC;IACtE,IAAIW,UAAU,GAAG/oO,CAAC,CAAC+oO,UAAU;IAC7B,IAAIC,kBAAkB,GAAGtlO,IAAI,CAACo6F,GAAG,CAACirI,UAAU,CAAC;IAC7C,IAAI1qJ,OAAO,GAAGr+E,CAAC,CAAC6lG,OAAO;IACvB,IAAItnB,OAAO,GAAGv+E,CAAC,CAAC8lG,OAAO,CAAC,CAAC;;IAEzB,IAAIijI,UAAU,KAAK,CAAC,IAAI,CAACF,UAAU,IAAI,CAACC,UAAU,EAAE;MAClD;IACF,CAAC,CAAC;IACF;IACA;;IAGA,IAAID,UAAU,EAAE;MACd;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA,IAAII,MAAM,GAAGD,kBAAkB,GAAG,CAAC,GAAG,GAAG,GAAGA,kBAAkB,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG;MAC9E,IAAIzkJ,KAAK,GAAGwkJ,UAAU,GAAG,CAAC,GAAGE,MAAM,GAAG,CAAC,GAAGA,MAAM;MAChDC,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,kBAAkB,EAAElpO,CAAC,EAAE;QAC1DukF,KAAK,EAAEA,KAAK;QACZlG,OAAO,EAAEA,OAAO;QAChBE,OAAO,EAAEA,OAAO;QAChBsvI,mBAAmB,EAAE;MACvB,CAAC,CAAC;IACJ;IAEA,IAAIib,UAAU,EAAE;MACd;MACA,IAAIK,QAAQ,GAAGzlO,IAAI,CAACo6F,GAAG,CAACirI,UAAU,CAAC,CAAC,CAAC;;MAErC,IAAIhoB,WAAW,GAAG,CAACgoB,UAAU,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAKI,QAAQ,GAAG,CAAC,GAAG,GAAG,GAAGA,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;MAC/FD,sBAAsB,CAAC,IAAI,EAAE,YAAY,EAAE,kBAAkB,EAAElpO,CAAC,EAAE;QAChE+gN,WAAW,EAAEA,WAAW;QACxB1iI,OAAO,EAAEA,OAAO;QAChBE,OAAO,EAAEA,OAAO;QAChBsvI,mBAAmB,EAAE;MACvB,CAAC,CAAC;IACJ;EACF,CAAC;EAEDxxF,cAAc,CAACh8H,SAAS,CAAC8nO,aAAa,GAAG,UAAUnoO,CAAC,EAAE;IACpD,IAAIi2N,yDAAwB,CAAC,IAAI,CAACiB,GAAG,EAAE,WAAW,CAAC,EAAE;MACnD;IACF;IAEA,IAAI3yI,KAAK,GAAGvkF,CAAC,CAACopO,UAAU,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG;IAC5CF,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAElpO,CAAC,EAAE;MAC5CukF,KAAK,EAAEA,KAAK;MACZlG,OAAO,EAAEr+E,CAAC,CAACqpO,MAAM;MACjB9qJ,OAAO,EAAEv+E,CAAC,CAACspO,MAAM;MACjBzb,mBAAmB,EAAE;IACvB,CAAC,CAAC;EACJ,CAAC;EAED,OAAOxxF,cAAc;AACvB,CAAC,CAAC25F,oEAAQ,CAAC;AAEX,SAASkT,sBAAsBA,CAAC3qG,UAAU,EAAEqvF,SAAS,EAAE2b,eAAe,EAAEvpO,CAAC,EAAEwpO,cAAc,EAAE;EACzF,IAAIjrG,UAAU,CAACiqG,cAAc,IAAIjqG,UAAU,CAACiqG,cAAc,CAACxoO,CAAC,EAAEwpO,cAAc,CAACnrJ,OAAO,EAAEmrJ,cAAc,CAACjrJ,OAAO,CAAC,EAAE;IAC7G;IACA;IACA;IACAwhH,2DAAc,CAAC//L,CAAC,CAAC0lG,KAAK,CAAC;IACvBo0H,OAAO,CAACv7F,UAAU,EAAEqvF,SAAS,EAAE2b,eAAe,EAAEvpO,CAAC,EAAEwpO,cAAc,CAAC;EACpE;AACF;AAEA,SAAS1P,OAAOA,CAACv7F,UAAU,EAAEqvF,SAAS,EAAE2b,eAAe,EAAEvpO,CAAC,EAAEwpO,cAAc,EAAE;EAC1E;EACA;EACAA,cAAc,CAAC3b,mBAAmB,GAAGxpN,8DAAI,CAACwpN,mBAAmB,EAAE,IAAI,EAAE0b,eAAe,EAAEvpO,CAAC,CAAC,CAAC,CAAC;;EAE1Fu+H,UAAU,CAACu7F,OAAO,CAAClM,SAAS,EAAE4b,cAAc,CAAC;AAC/C,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;;AAGA,SAAS3b,mBAAmBA,CAAC0b,eAAe,EAAEvpO,CAAC,EAAEypO,QAAQ,EAAE;EACzD,IAAIC,OAAO,GAAGD,QAAQ,CAACF,eAAe,CAAC;EACvC,OAAO,CAACA,eAAe,IAAIG,OAAO,KAAK,CAACvzH,kEAAQ,CAACuzH,OAAO,CAAC,IAAI1pO,CAAC,CAAC0lG,KAAK,CAACgkI,OAAO,GAAG,KAAK,CAAC,CAAC;AACxF;AAEA,iEAAertG,cAAc;;;;;;;;;;;;;;;;;;;;ACpR7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC4D;AACJ;AACH;AAC9C,SAASogE,qBAAqBA,CAACnmG,IAAI,EAAE;EAC1CA,IAAI,GAAGqzI,aAAa,CAACrzI,IAAI,CAAC;EAC1B,OAAO,UAAUszI,WAAW,EAAE;IAC5B,OAAOvsH,8DAA4B,CAACusH,WAAW,EAAEtzI,IAAI,CAAC;EACxD,CAAC;AACH;AACO,SAASumG,0BAA0BA,CAACvmG,IAAI,EAAEwzI,gBAAgB,EAAE;EACjExzI,IAAI,GAAGqzI,aAAa,CAACrzI,IAAI,CAAC;EAC1B,OAAO,UAAUk7G,OAAO,EAAE;IACxB,IAAItkH,GAAG,GAAG48I,gBAAgB,IAAI,IAAI,GAAGA,gBAAgB,GAAGt4B,OAAO;IAC/D,IAAIu4B,UAAU,GAAG78I,GAAG,GAAGoJ,IAAI,CAAC7qE,KAAK,GAAG6qE,IAAI,CAAC3qE,MAAM;IAC/C,IAAIqoF,IAAI,GAAG9mB,GAAG,GAAGoJ,IAAI,CAAC3oF,CAAC,GAAG2oF,IAAI,CAAC1uF,CAAC;IAChC,OAAO,CAACosG,IAAI,EAAEA,IAAI,IAAI+1H,UAAU,IAAI,CAAC,CAAC,CAAC;EACzC,CAAC;AACH;AACO,SAASptC,wBAAwBA,CAACrmG,IAAI,EAAEr4D,GAAG,EAAE+rM,WAAW,EAAE;EAC/D,IAAIz4B,YAAY,GAAGo4B,aAAa,CAACrzI,IAAI,CAAC;EACtC,OAAO,UAAUt2F,CAAC,EAAEu5N,gBAAgB,EAAE;IACpC,OAAOhoB,YAAY,CAACn5F,OAAO,CAACmhH,gBAAgB,CAAC,CAAC,CAAC,EAAEA,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAACh9F,qEAAmB,CAACv8H,CAAC,EAAEi+B,GAAG,EAAE+rM,WAAW,CAAC;EACpH,CAAC;AACH,CAAC,CAAC;;AAEF,SAASL,aAAaA,CAACrzI,IAAI,EAAE;EAC3B,OAAO87C,+EAAmB,CAAC97C,IAAI,CAAC;AAClC;;;;;;;;;;;;;;;ACrEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI2zI,mBAAmB,GAAG;EACxB,aAAa,EAAE,CAAC;EAChB,SAAS,EAAE,CAAC;EACZ,OAAO,EAAE;AACX,CAAC;AACD;AACA;AACA;AACA;;AAEO,SAAS1tG,mBAAmBA,CAACv8H,CAAC,EAAEi+B,GAAG,EAAEisM,mBAAmB,EAAE;EAC/D,IAAI9iJ,KAAK,GAAGnpD,GAAG,CAACksM,qBAAqB,CAACnqO,CAAC,CAACoqO,SAAS,CAAC,CAAC,CAAC;;EAEpD,IAAIjoI,QAAQ,GAAG/a,KAAK,IAAIA,KAAK,CAAC2T,gBAAgB;EAC9C,OAAO3T,KAAK,IAAIA,KAAK,KAAK8iJ,mBAAmB,IAAI,CAACD,mBAAmB,CAAC3pO,cAAc,CAAC8mF,KAAK,CAAC4pB,QAAQ,CAAC,IAAI7O,QAAQ,IAAIA,QAAQ,CAAC/a,KAAK,KAAK8iJ,mBAAmB;AAC5J;;;;;;;;;;;;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACiD;AACD;AAChD,IAAII,IAAI,GAAG,yBAAyB;AAC7B,SAAS5S,IAAIA,CAACxhE,EAAE,EAAEq0E,WAAW,EAAEC,OAAO,EAAE;EAC7C,IAAIjlJ,KAAK,GAAG00B,QAAQ,CAACi8C,EAAE,CAAC;EACxB3wE,KAAK,CAACglJ,WAAW,CAAC,GAAGC,OAAO;AAC9B;AACO,SAAS5S,OAAOA,CAAC1hE,EAAE,EAAEq0E,WAAW,EAAEC,OAAO,EAAE;EAChD,IAAIjlJ,KAAK,GAAG00B,QAAQ,CAACi8C,EAAE,CAAC;EACxB,IAAIu0E,IAAI,GAAGllJ,KAAK,CAACglJ,WAAW,CAAC;EAE7B,IAAIE,IAAI,KAAKD,OAAO,EAAE;IACpBjlJ,KAAK,CAACglJ,WAAW,CAAC,GAAG,IAAI;EAC3B;AACF;AACO,SAAS3B,OAAOA,CAAC1yE,EAAE,EAAEq0E,WAAW,EAAE;EACvC,OAAO,CAAC,CAACtwH,QAAQ,CAACi8C,EAAE,CAAC,CAACq0E,WAAW,CAAC;AACpC;AAEA,SAAStwH,QAAQA,CAACi8C,EAAE,EAAE;EACpB,OAAOA,EAAE,CAACo0E,IAAI,CAAC,KAAKp0E,EAAE,CAACo0E,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGAD,4DAAsB,CAAC;EACrBv2N,IAAI,EAAE,kBAAkB;EACxB4xF,KAAK,EAAE,mBAAmB;EAC1B7T,MAAM,EAAE;AACV,CAAC,EAAEzxE,0DAAI,CAAC;;;;;;;;;;;;;;;;;;;AC/ER;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACwF;AACrC;AACF;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASm8E,MAAMA,CAAC7J,KAAK,EAAEwe,cAAc,EAAEjzE,GAAG,EAAE;EACjD,IAAI0sM,eAAe,GAAGz5H,cAAc,CAACwd,kBAAkB,CAAC,CAAC;EACzD,IAAI+C,OAAO,GAAGvgB,cAAc,CAACzvG,GAAG,CAAC,SAAS,CAAC;EAC3C,IAAImpO,YAAY,GAAG;IACjBn/M,KAAK,EAAEwS,GAAG,CAAC+rE,QAAQ,CAAC,CAAC;IACrBr+E,MAAM,EAAEsS,GAAG,CAACgsE,SAAS,CAAC;EACxB,CAAC;EACD,IAAI3T,IAAI,GAAGm4B,8DAAa,CAACk8G,eAAe,EAAEC,YAAY,EAAEn5G,OAAO,CAAC;EAChEi5G,oDAAS,CAACx5H,cAAc,CAACzvG,GAAG,CAAC,QAAQ,CAAC,EAAEixF,KAAK,EAAEwe,cAAc,CAACzvG,GAAG,CAAC,SAAS,CAAC,EAAE60F,IAAI,CAAC7qE,KAAK,EAAE6qE,IAAI,CAAC3qE,MAAM,CAAC;EACtGyzJ,gEAAe,CAAC1sF,KAAK,EAAEi4I,eAAe,EAAEC,YAAY,EAAEn5G,OAAO,CAAC;AAChE;AACO,SAASo5G,cAAcA,CAACv0I,IAAI,EAAE4a,cAAc,EAAE;EACnD,IAAIugB,OAAO,GAAG67E,8DAA4B,CAACp8F,cAAc,CAACzvG,GAAG,CAAC,SAAS,CAAC,CAAC;EACzE,IAAIqa,KAAK,GAAGo1F,cAAc,CAAC/U,YAAY,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;EAC7DrgF,KAAK,CAACoQ,IAAI,GAAGglF,cAAc,CAACzvG,GAAG,CAAC,iBAAiB,CAAC;EAClD60F,IAAI,GAAG,IAAIuS,wDAAY,CAAC;IACtB9gB,KAAK,EAAE;MACLp6E,CAAC,EAAE2oF,IAAI,CAAC3oF,CAAC,GAAG8jH,OAAO,CAAC,CAAC,CAAC;MACtB7pH,CAAC,EAAE0uF,IAAI,CAAC1uF,CAAC,GAAG6pH,OAAO,CAAC,CAAC,CAAC;MACtBhmG,KAAK,EAAE6qE,IAAI,CAAC7qE,KAAK,GAAGgmG,OAAO,CAAC,CAAC,CAAC,GAAGA,OAAO,CAAC,CAAC,CAAC;MAC3C9lG,MAAM,EAAE2qE,IAAI,CAAC3qE,MAAM,GAAG8lG,OAAO,CAAC,CAAC,CAAC,GAAGA,OAAO,CAAC,CAAC,CAAC;MAC7C9uH,CAAC,EAAEuuG,cAAc,CAACzvG,GAAG,CAAC,cAAc;IACtC,CAAC;IACDqa,KAAK,EAAEA,KAAK;IACZurE,MAAM,EAAE,IAAI;IACZga,EAAE,EAAE,CAAC;EACP,CAAC,CAAC,CAAC,CAAC;EACJ;EACA;EACA;;EAEA,OAAO/K,IAAI;AACb;;;;;;;;;;;;;;;;ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACO,SAASwoC,eAAeA,CAACN,cAAc,EAAE7gD,EAAE,EAAEC,EAAE,EAAE;EACtD,IAAI3/D,MAAM,GAAGugH,cAAc,CAACvgH,MAAM;EAClCA,MAAM,CAACtQ,CAAC,IAAIgwE,EAAE;EACd1/D,MAAM,CAACrW,CAAC,IAAIg2E,EAAE;EACd3/D,MAAM,CAACsoE,KAAK,CAAC,CAAC;AAChB;AACA;AACA;AACA;;AAEO,SAASw4C,gBAAgBA,CAACP,cAAc,EAAEssG,SAAS,EAAEC,KAAK,EAAEC,KAAK,EAAE;EACxE,IAAI/sN,MAAM,GAAGugH,cAAc,CAACvgH,MAAM;EAClC,IAAIk/D,SAAS,GAAGqhD,cAAc,CAACrhD,SAAS;EACxC,IAAI8tJ,OAAO,GAAGzsG,cAAc,CAAChhD,IAAI,GAAGghD,cAAc,CAAChhD,IAAI,IAAI,CAAC;EAC5DytJ,OAAO,IAAIH,SAAS;EAEpB,IAAI3tJ,SAAS,EAAE;IACb,IAAIW,OAAO,GAAGX,SAAS,CAACY,GAAG,IAAI,CAAC;IAChC,IAAIC,OAAO,GAAGb,SAAS,CAACp3E,GAAG,IAAIk4E,QAAQ;IACvCgtJ,OAAO,GAAGvnO,IAAI,CAACqC,GAAG,CAACrC,IAAI,CAACq6E,GAAG,CAACC,OAAO,EAAEitJ,OAAO,CAAC,EAAEntJ,OAAO,CAAC;EACzD;EAEA,IAAIotJ,SAAS,GAAGD,OAAO,GAAGzsG,cAAc,CAAChhD,IAAI;EAC7CghD,cAAc,CAAChhD,IAAI,GAAGytJ,OAAO,CAAC,CAAC;;EAE/BhtN,MAAM,CAACtQ,CAAC,IAAI,CAACo9N,KAAK,GAAG9sN,MAAM,CAACtQ,CAAC,KAAKu9N,SAAS,GAAG,CAAC,CAAC;EAChDjtN,MAAM,CAACrW,CAAC,IAAI,CAACojO,KAAK,GAAG/sN,MAAM,CAACrW,CAAC,KAAKsjO,SAAS,GAAG,CAAC,CAAC;EAChDjtN,MAAM,CAACigE,MAAM,IAAIgtJ,SAAS;EAC1BjtN,MAAM,CAACkgE,MAAM,IAAI+sJ,SAAS;EAC1BjtN,MAAM,CAACsoE,KAAK,CAAC,CAAC;AAChB;;;;;;;;;;;;;;;AC5EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAAS+xH,UAAUA,CAAC36B,KAAK,EAAEyqC,UAAU,EAAE1oH,MAAM,EAAEinH,WAAW,EAAEhG,OAAO,EAAEC,OAAO,EAAE;EAC3FjjC,KAAK,GAAGA,KAAK,IAAI,CAAC;EAClB,IAAIwtD,UAAU,GAAGzrI,MAAM,CAAC,CAAC,CAAC,GAAGA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;;EAExC,IAAIihH,OAAO,IAAI,IAAI,EAAE;IACnBA,OAAO,GAAGyqB,QAAQ,CAACzqB,OAAO,EAAE,CAAC,CAAC,EAAEwqB,UAAU,CAAC,CAAC;EAC9C;EAEA,IAAIvqB,OAAO,IAAI,IAAI,EAAE;IACnBA,OAAO,GAAGl9M,IAAI,CAACqC,GAAG,CAAC66M,OAAO,EAAED,OAAO,IAAI,IAAI,GAAGA,OAAO,GAAG,CAAC,CAAC;EAC5D;EAEA,IAAIgG,WAAW,KAAK,KAAK,EAAE;IACzB,IAAI0kB,UAAU,GAAG3nO,IAAI,CAACo6F,GAAG,CAACsqH,UAAU,CAAC,CAAC,CAAC,GAAGA,UAAU,CAAC,CAAC,CAAC,CAAC;IACxDijB,UAAU,GAAGD,QAAQ,CAACC,UAAU,EAAE,CAAC,CAAC,EAAEF,UAAU,CAAC,CAAC;IAClDxqB,OAAO,GAAGC,OAAO,GAAGwqB,QAAQ,CAACC,UAAU,EAAE,CAAC1qB,OAAO,EAAEC,OAAO,CAAC,CAAC;IAC5D+F,WAAW,GAAG,CAAC;EACjB;EAEAyB,UAAU,CAAC,CAAC,CAAC,GAAGgjB,QAAQ,CAAChjB,UAAU,CAAC,CAAC,CAAC,EAAE1oH,MAAM,CAAC;EAC/C0oH,UAAU,CAAC,CAAC,CAAC,GAAGgjB,QAAQ,CAAChjB,UAAU,CAAC,CAAC,CAAC,EAAE1oH,MAAM,CAAC;EAC/C,IAAI4rI,gBAAgB,GAAGC,WAAW,CAACnjB,UAAU,EAAEzB,WAAW,CAAC;EAC3DyB,UAAU,CAACzB,WAAW,CAAC,IAAIhpC,KAAK,CAAC,CAAC;;EAElC,IAAI6tD,aAAa,GAAG7qB,OAAO,IAAI,CAAC;EAChC,IAAI8qB,UAAU,GAAG/rI,MAAM,CAACx5F,KAAK,CAAC,CAAC;EAC/BolO,gBAAgB,CAACzyH,IAAI,GAAG,CAAC,GAAG4yH,UAAU,CAAC,CAAC,CAAC,IAAID,aAAa,GAAGC,UAAU,CAAC,CAAC,CAAC,IAAID,aAAa;EAC3FpjB,UAAU,CAACzB,WAAW,CAAC,GAAGykB,QAAQ,CAAChjB,UAAU,CAACzB,WAAW,CAAC,EAAE8kB,UAAU,CAAC,CAAC,CAAC;;EAEzE,IAAIC,YAAY;EAChBA,YAAY,GAAGH,WAAW,CAACnjB,UAAU,EAAEzB,WAAW,CAAC;EAEnD,IAAIhG,OAAO,IAAI,IAAI,KAAK+qB,YAAY,CAAC7yH,IAAI,KAAKyyH,gBAAgB,CAACzyH,IAAI,IAAI6yH,YAAY,CAAC5mC,IAAI,GAAG6b,OAAO,CAAC,EAAE;IACnG;IACAyH,UAAU,CAAC,CAAC,GAAGzB,WAAW,CAAC,GAAGyB,UAAU,CAACzB,WAAW,CAAC,GAAG2kB,gBAAgB,CAACzyH,IAAI,GAAG8nG,OAAO;EACzF,CAAC,CAAC;;EAGF+qB,YAAY,GAAGH,WAAW,CAACnjB,UAAU,EAAEzB,WAAW,CAAC;EAEnD,IAAI/F,OAAO,IAAI,IAAI,IAAI8qB,YAAY,CAAC5mC,IAAI,GAAG8b,OAAO,EAAE;IAClDwH,UAAU,CAAC,CAAC,GAAGzB,WAAW,CAAC,GAAGyB,UAAU,CAACzB,WAAW,CAAC,GAAG+kB,YAAY,CAAC7yH,IAAI,GAAG+nG,OAAO;EACrF;EAEA,OAAOwH,UAAU;AACnB;AAEA,SAASmjB,WAAWA,CAACnjB,UAAU,EAAEzB,WAAW,EAAE;EAC5C,IAAIx4E,IAAI,GAAGi6E,UAAU,CAACzB,WAAW,CAAC,GAAGyB,UAAU,CAAC,CAAC,GAAGzB,WAAW,CAAC,CAAC,CAAC;EAClE;;EAEA,OAAO;IACL7hB,IAAI,EAAEphM,IAAI,CAACo6F,GAAG,CAACqwC,IAAI,CAAC;IACpBt1B,IAAI,EAAEs1B,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,GAAGA,IAAI,GAAG,CAAC,GAAG,CAAC,GAAGw4E,WAAW,GAAG,CAAC,CAAC,GAAG;EAC1D,CAAC;AACH;AAEA,SAASykB,QAAQA,CAAC/pO,KAAK,EAAE0iF,MAAM,EAAE;EAC/B,OAAOrgF,IAAI,CAACq6E,GAAG,CAACgG,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,GAAGA,MAAM,CAAC,CAAC,CAAC,GAAG9F,QAAQ,EAAEv6E,IAAI,CAACqC,GAAG,CAACg+E,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,GAAGA,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC9F,QAAQ,EAAE58E,KAAK,CAAC,CAAC;AACvH;;;;;;;;;;;;;;;;;;;;AC1HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACkC;AACiB;AACV;AACa;AACA;AAEtD,IAAIuqO,yBAAyB,GAAG,SAAAA,CAAUtsJ,OAAO,EAAExrE,IAAI,EAAE;EACvD,IAAIA,IAAI,KAAK,KAAK,EAAE;IAClB,OAAO;MACLA,IAAI,EAAE,KAAK;MACXua,KAAK,EAAEixD,OAAO,CAAC40H,cAAc,CAAC,CAAC,CAACzyM,GAAG,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC;IACnE,CAAC;EACH,CAAC,MAAM,IAAIqS,IAAI,KAAK,SAAS,EAAE;IAC7B,OAAO;MACLA,IAAI,EAAE,SAAS;MACfua,KAAK,EAAEixD,OAAO,CAAC40H,cAAc,CAAC,CAAC,CAACzyM,GAAG,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC;IACvE,CAAC;EACH;AACF,CAAC;AAED,IAAIoqO,WAAW,GACf;AACA,UAAUj2I,MAAM,EAAE;EAChBL,gDAAS,CAACs2I,WAAW,EAAEj2I,MAAM,CAAC;EAE9B,SAASi2I,WAAWA,CAAA,EAAG;IACrB,IAAIv9N,KAAK,GAAGsnF,MAAM,KAAK,IAAI,IAAIA,MAAM,CAAC7yF,KAAK,CAAC,IAAI,EAAE0G,SAAS,CAAC,IAAI,IAAI;IAEpE6E,KAAK,CAACwF,IAAI,GAAG+3N,WAAW,CAAC/3N,IAAI;IAC7BxF,KAAK,CAAC8qJ,UAAU,GAAG;MACjBtlJ,IAAI,EAAE,KAAK;MACX;MACA;MACA;MACA;MACA;MACA;MACA;MACAy9M,UAAU,EAAE;IACd,CAAC;IACD,OAAOjjN,KAAK;EACd;EAEAu9N,WAAW,CAACxrO,SAAS,CAAC8pH,IAAI,GAAG,UAAU/jB,MAAM,EAAEthB,WAAW,EAAExF,OAAO,EAAE;IACnE,IAAI,CAACg6C,oBAAoB,CAAClzB,MAAM,EAAE9mB,OAAO,CAAC;IAC1C8mB,MAAM,CAACgkC,QAAQ,GAAGhkC,MAAM,CAACgkC,QAAQ,IAAI,CAAC,CAAC;IAEvC,IAAI,CAAC0hG,eAAe,CAAC1lI,MAAM,CAAC;EAC9B,CAAC;EAEDylI,WAAW,CAACxrO,SAAS,CAACg5H,WAAW,GAAG,UAAUjzB,MAAM,EAAE9mB,OAAO,EAAE;IAC7DsW,MAAM,CAACv1F,SAAS,CAACg5H,WAAW,CAAC94H,IAAI,CAAC,IAAI,EAAE6lG,MAAM,EAAE9mB,OAAO,CAAC;IAExD,IAAI,CAACwsJ,eAAe,CAAC1lI,MAAM,CAAC;EAC9B,CAAC;EAEDylI,WAAW,CAACxrO,SAAS,CAACyrO,eAAe,GAAG,UAAU1lI,MAAM,EAAE;IACxD,IAAI+qG,QAAQ,GAAG/qG,MAAM,CAAC+qG,QAAQ;IAC9B,IAAI7xH,OAAO,GAAG,IAAI,CAACA,OAAO;IAE1B,IAAI6xH,QAAQ,KAAK,IAAI,EAAE;MACrBA,QAAQ,GAAG/qG,MAAM,CAAC+qG,QAAQ,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC;IACjD;IAEA,IAAIvoG,6DAAc,CAACuoG,QAAQ,CAAC,EAAE;MAC5BvoG,0DAAW,CAACuoG,QAAQ,EAAE,UAAUvyG,IAAI,EAAEn2E,KAAK,EAAE;QAC3CmgF,8DAAe,CAAChK,IAAI,CAAC,KAAKA,IAAI,GAAG;UAC/B9qF,IAAI,EAAE8qF;QACR,CAAC,CAAC;QACFuyG,QAAQ,CAAC1oL,KAAK,CAAC,GAAGmgF,2DAAY,CAAChK,IAAI,EAAEgtI,yBAAyB,CAACtsJ,OAAO,EAAEsf,IAAI,CAAC9qF,IAAI,CAAC,CAAC;MACrF,CAAC,CAAC;IACJ;EACF,CAAC;EAED+3N,WAAW,CAACxrO,SAAS,CAAC08G,aAAa,GAAG,YAAY;IAChD,IAAI,CAACgvH,WAAW,CAAC,IAAI,CAACzsJ,OAAO,CAAC;IAE9B,IAAI0sJ,UAAU,GAAG,IAAI,CAAC3kN,KAAK,CAAC,CAAC;;IAE7B,IAAI2kN,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,CAACvqO,GAAG,CAAC,cAAc,CAAC,KAAK,QAAQ,EAAE;MAC1D,IAAIwqO,WAAW,GAAG,KAAK,CAAC,CAAC;;MAEzB,KAAK,IAAI/rO,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG8rO,UAAU,CAACrrO,MAAM,EAAET,CAAC,EAAE,EAAE;QAC1C,IAAI23J,MAAM,GAAGm0E,UAAU,CAAC9rO,CAAC,CAAC,CAACuB,GAAG,CAAC,MAAM,CAAC;QAEtC,IAAI,IAAI,CAAC8/H,UAAU,CAACs2B,MAAM,CAAC,EAAE;UAC3B;UACA,IAAI,CAACtgE,MAAM,CAACsgE,MAAM,CAAC;UACnBo0E,WAAW,GAAG,IAAI;UAClB;QACF;MACF,CAAC,CAAC;;MAGF,CAACA,WAAW,IAAI,IAAI,CAAC10I,MAAM,CAACy0I,UAAU,CAAC,CAAC,CAAC,CAACvqO,GAAG,CAAC,MAAM,CAAC,CAAC;IACxD;EACF,CAAC;EAEDoqO,WAAW,CAACxrO,SAAS,CAAC0rO,WAAW,GAAG,UAAUzsJ,OAAO,EAAE;IACrD,IAAI4sJ,aAAa,GAAG,EAAE;IACtB,IAAIC,cAAc,GAAG,EAAE;IACvB7sJ,OAAO,CAAC8sJ,aAAa,CAAC,UAAUrgJ,WAAW,EAAE;MAC3C,IAAIu3B,UAAU,GAAGv3B,WAAW,CAACvlF,IAAI;MACjC2lO,cAAc,CAAC1oO,IAAI,CAAC6/G,UAAU,CAAC;MAC/B,IAAI+oH,WAAW;MAEf,IAAItgJ,WAAW,CAACo/B,oBAAoB,EAAE;QACpC,IAAImhH,QAAQ,GAAGvgJ,WAAW,CAACo/B,oBAAoB;QAC/C,IAAIiyF,KAAK,GAAGkvB,QAAQ,CAACC,WAAW,CAAC,CAAC;QAElC,IAAI,CAACjtJ,OAAO,CAACu8B,gBAAgB,CAAC9vB,WAAW,CAAC,EAAE;UAC1CogJ,cAAc,GAAGA,cAAc,CAACrtN,MAAM,CAACs+L,KAAK,CAAC;QAC/C;QAEA,IAAIA,KAAK,CAACz8M,MAAM,EAAE;UAChBurO,aAAa,GAAGA,aAAa,CAACptN,MAAM,CAACs+L,KAAK,CAAC;QAC7C,CAAC,MAAM;UACLivB,WAAW,GAAG,IAAI;QACpB;MACF,CAAC,MAAM;QACLA,WAAW,GAAG,IAAI;MACpB;MAEA,IAAIA,WAAW,IAAIV,+DAAe,CAAC5/I,WAAW,CAAC,EAAE;QAC/CmgJ,aAAa,CAACzoO,IAAI,CAACsoF,WAAW,CAACvlF,IAAI,CAAC;MACtC;IACF,CAAC,CAAC;IACF;AACJ;AACA;AACA;;IAEI,IAAI,CAACgmO,eAAe,GAAGL,cAAc,CAAC,CAAC;IACvC;;IAEA,IAAI/1H,OAAO,GAAG,IAAI,CAAC30G,GAAG,CAAC,MAAM,CAAC,IAAIyqO,aAAa;IAC/C,IAAIO,aAAa,GAAG7jI,mEAAoB,CAAC,CAAC;IAC1C,IAAIojI,UAAU,GAAGpjI,yDAAU,CAACwN,OAAO,EAAE,UAAUY,QAAQ,EAAE;MACvD;MACA,IAAIpO,8DAAe,CAACoO,QAAQ,CAAC,IAAIpO,8DAAe,CAACoO,QAAQ,CAAC,EAAE;QAC1DA,QAAQ,GAAG;UACTxwG,IAAI,EAAEwwG;QACR,CAAC;MACH;MAEA,IAAIy1H,aAAa,CAAChrO,GAAG,CAACu1G,QAAQ,CAACxwG,IAAI,CAAC,EAAE;QACpC;QACA,OAAO,IAAI;MACb;MAEAimO,aAAa,CAAC/qO,GAAG,CAACs1G,QAAQ,CAACxwG,IAAI,EAAE,IAAI,CAAC;MACtC,OAAO,IAAIgyH,uDAAK,CAACxhB,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC13B,OAAO,CAAC;IAChD,CAAC,EAAE,IAAI,CAAC;IACR;AACJ;AACA;AACA;;IAEI,IAAI,CAACj4D,KAAK,GAAGuhF,4DAAa,CAACojI,UAAU,EAAE,UAAUptI,IAAI,EAAE;MACrD,OAAO,CAAC,CAACA,IAAI;IACf,CAAC,CAAC;EACJ,CAAC;EAEDitI,WAAW,CAACxrO,SAAS,CAAC0zF,OAAO,GAAG,YAAY;IAC1C,OAAO,IAAI,CAAC1sE,KAAK;EACnB,CAAC;EAEDwkN,WAAW,CAACxrO,SAAS,CAACk3F,MAAM,GAAG,UAAU/wF,IAAI,EAAE;IAC7C,IAAI4jI,QAAQ,GAAG,IAAI,CAAChkC,MAAM,CAACgkC,QAAQ;IACnC,IAAIqvB,YAAY,GAAG,IAAI,CAACh4J,GAAG,CAAC,cAAc,CAAC;IAE3C,IAAIg4J,YAAY,KAAK,QAAQ,EAAE;MAC7B,IAAI3uJ,IAAI,GAAG,IAAI,CAACuc,KAAK;MACrBuhF,0DAAW,CAAC99F,IAAI,EAAE,UAAUksG,QAAQ,EAAE;QACpCozB,QAAQ,CAACpzB,QAAQ,CAACv1G,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK;MACxC,CAAC,CAAC;IACJ;IAEA2oI,QAAQ,CAAC5jI,IAAI,CAAC,GAAG,IAAI;EACvB,CAAC;EAEDqlO,WAAW,CAACxrO,SAAS,CAACqsO,QAAQ,GAAG,UAAUlmO,IAAI,EAAE;IAC/C,IAAI,IAAI,CAAC/E,GAAG,CAAC,cAAc,CAAC,KAAK,QAAQ,EAAE;MACzC,IAAI,CAAC2kG,MAAM,CAACgkC,QAAQ,CAAC5jI,IAAI,CAAC,GAAG,KAAK;IACpC;EACF,CAAC;EAEDqlO,WAAW,CAACxrO,SAAS,CAACssO,cAAc,GAAG,UAAUnmO,IAAI,EAAE;IACrD,IAAI4jI,QAAQ,GAAG,IAAI,CAAChkC,MAAM,CAACgkC,QAAQ,CAAC,CAAC;;IAErC,IAAI,CAACA,QAAQ,CAAC9pI,cAAc,CAACkG,IAAI,CAAC,EAAE;MAClC4jI,QAAQ,CAAC5jI,IAAI,CAAC,GAAG,IAAI;IACvB;IAEA,IAAI,CAAC4jI,QAAQ,CAAC5jI,IAAI,CAAC,GAAG,UAAU,GAAG,QAAQ,CAAC,CAACA,IAAI,CAAC;EACpD,CAAC;EAEDqlO,WAAW,CAACxrO,SAAS,CAACusO,SAAS,GAAG,YAAY;IAC5C,IAAI9hO,IAAI,GAAG,IAAI,CAACuc,KAAK;IACrB,IAAI+iH,QAAQ,GAAG,IAAI,CAAChkC,MAAM,CAACgkC,QAAQ;IACnCxhC,0DAAW,CAAC99F,IAAI,EAAE,UAAUksG,QAAQ,EAAE;MACpCozB,QAAQ,CAACpzB,QAAQ,CAACv1G,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI;IAC7C,CAAC,CAAC;EACJ,CAAC;EAEDoqO,WAAW,CAACxrO,SAAS,CAACwsO,aAAa,GAAG,YAAY;IAChD,IAAI/hO,IAAI,GAAG,IAAI,CAACuc,KAAK;IACrB,IAAI+iH,QAAQ,GAAG,IAAI,CAAChkC,MAAM,CAACgkC,QAAQ;IACnCxhC,0DAAW,CAAC99F,IAAI,EAAE,UAAUksG,QAAQ,EAAE;MACpC,IAAIxwG,IAAI,GAAGwwG,QAAQ,CAACv1G,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;;MAEvC,IAAI,CAAC2oI,QAAQ,CAAC9pI,cAAc,CAACkG,IAAI,CAAC,EAAE;QAClC4jI,QAAQ,CAAC5jI,IAAI,CAAC,GAAG,IAAI;MACvB;MAEA4jI,QAAQ,CAAC5jI,IAAI,CAAC,GAAG,CAAC4jI,QAAQ,CAAC5jI,IAAI,CAAC;IAClC,CAAC,CAAC;EACJ,CAAC;EAEDqlO,WAAW,CAACxrO,SAAS,CAACkhI,UAAU,GAAG,UAAU/6H,IAAI,EAAE;IACjD,IAAI4jI,QAAQ,GAAG,IAAI,CAAChkC,MAAM,CAACgkC,QAAQ;IACnC,OAAO,EAAEA,QAAQ,CAAC9pI,cAAc,CAACkG,IAAI,CAAC,IAAI,CAAC4jI,QAAQ,CAAC5jI,IAAI,CAAC,CAAC,IAAIoiG,6DAAc,CAAC,IAAI,CAAC4jI,eAAe,EAAEhmO,IAAI,CAAC,IAAI,CAAC;EAC/G,CAAC;EAEDqlO,WAAW,CAACxrO,SAAS,CAAC+2K,SAAS,GAAG,YAAY;IAC5C,OAAO,IAAI,CAAC31K,GAAG,CAAC,QAAQ,CAAC,KAAK,UAAU,GAAG;MACzCgnB,KAAK,EAAE,CAAC;MACRjiB,IAAI,EAAE;IACR,CAAC,GAAG;MACFiiB,KAAK,EAAE,CAAC;MACRjiB,IAAI,EAAE;IACR,CAAC;EACH,CAAC;EAEDqlO,WAAW,CAAC/3N,IAAI,GAAG,cAAc;EACjC+3N,WAAW,CAACr1I,YAAY,GAAG,CAAC,QAAQ,CAAC;EACrCq1I,WAAW,CAACp1I,aAAa,GAAG;IAC1B;IACA1oF,CAAC,EAAE,CAAC;IACJ29G,IAAI,EAAE,IAAI;IACVY,MAAM,EAAE,YAAY;IACpBN,IAAI,EAAE,QAAQ;IACd;IACAC,GAAG,EAAE,CAAC;IACN;IACAuB,KAAK,EAAE,MAAM;IACbgE,eAAe,EAAE,eAAe;IAChCz6B,WAAW,EAAE,MAAM;IACnBG,YAAY,EAAE,CAAC;IACfF,WAAW,EAAE,CAAC;IACdy6B,OAAO,EAAE,CAAC;IACVq7G,OAAO,EAAE,EAAE;IACX18G,SAAS,EAAE,EAAE;IACbF,UAAU,EAAE,EAAE;IACdjoB,YAAY,EAAE,SAAS;IACvBuU,gBAAgB,EAAE,IAAI;IACtBuwH,aAAa,EAAE,MAAM;IACrBC,mBAAmB,EAAE,MAAM;IAC3BC,mBAAmB,EAAE,MAAM;IAC3Bz1I,SAAS,EAAE;MACTV,KAAK,EAAE,SAAS;MAChBx/D,OAAO,EAAE,SAAS;MAClBy/D,WAAW,EAAE,SAAS;MACtBC,WAAW,EAAE,MAAM;MACnBk2I,SAAS,EAAE,SAAS;MACpBjuE,UAAU,EAAE,SAAS;MACrBkuE,gBAAgB,EAAE,SAAS;MAC3BC,gBAAgB,EAAE;IACpB,CAAC;IACD3gH,SAAS,EAAE;MACThhG,KAAK,EAAE,MAAM;MACbqrE,KAAK,EAAE,SAAS;MAChBi2I,aAAa,EAAE,MAAM;MACrBM,aAAa,EAAE,CAAC;MAChB/1M,OAAO,EAAE,SAAS;MAClBxjB,IAAI,EAAE,SAAS;MACfw5N,GAAG,EAAE,SAAS;MACdvkO,IAAI,EAAE,SAAS;MACfwkO,UAAU,EAAE,SAAS;MACrBC,UAAU,EAAE;IACd,CAAC;IACD9oH,SAAS,EAAE;MACT5tB,KAAK,EAAE;IACT,CAAC;IACD2iE,YAAY,EAAE,IAAI;IAClB03C,QAAQ,EAAE,KAAK;IACfs8B,aAAa,EAAE;MACb/hH,IAAI,EAAE,IAAI;MACVx0B,YAAY,EAAE,EAAE;MAChBu6B,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;MACrBp5F,QAAQ,EAAE,EAAE;MACZmB,UAAU,EAAE,YAAY;MACxBs9D,KAAK,EAAE,MAAM;MACbE,WAAW,EAAE,CAAC;MACdD,WAAW,EAAE;IACf,CAAC;IACD4R,QAAQ,EAAE;MACR8kI,aAAa,EAAE;QACb/hH,IAAI,EAAE,IAAI;QACV50B,KAAK,EAAE,MAAM;QACb06B,eAAe,EAAE;MACnB;IACF,CAAC;IACDk8G,gBAAgB,EAAE,MAAM;IACxBC,eAAe,EAAE,CAAC;IAClBC,iBAAiB,EAAE,EAAE;IACrBjqF,OAAO,EAAE;MACPj4B,IAAI,EAAE;IACR;EACF,CAAC;EACD,OAAOmgH,WAAW;AACpB,CAAC,CAAC5sC,2DAAc,CAAC;AAEjB,iEAAe4sC,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnW1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACkC;AACiB;AACU;AACZ;AACU;AACgB;AACf;AACT;AACC;AACA;AACiB;AACrE,IAAIp7H,KAAK,GAAG7H,2DAAY;AACxB,IAAIxmB,IAAI,GAAGwmB,0DAAW;AACtB,IAAIlR,KAAK,GAAGmR,wDAAa;AAEzB,IAAIglI,UAAU,GACd;AACA,UAAUj4I,MAAM,EAAE;EAChBL,gDAAS,CAACs4I,UAAU,EAAEj4I,MAAM,CAAC;EAE7B,SAASi4I,UAAUA,CAAA,EAAG;IACpB,IAAIv/N,KAAK,GAAGsnF,MAAM,KAAK,IAAI,IAAIA,MAAM,CAAC7yF,KAAK,CAAC,IAAI,EAAE0G,SAAS,CAAC,IAAI,IAAI;IAEpE6E,KAAK,CAACwF,IAAI,GAAG+5N,UAAU,CAAC/5N,IAAI;IAC5BxF,KAAK,CAACw/N,eAAe,GAAG,KAAK;IAC7B,OAAOx/N,KAAK;EACd;EAEAu/N,UAAU,CAACxtO,SAAS,CAAC8pH,IAAI,GAAG,YAAY;IACtC,IAAI,CAACz3B,KAAK,CAACltF,GAAG,CAAC,IAAI,CAACuoO,aAAa,GAAG,IAAIr2I,KAAK,CAAC,CAAC,CAAC;IAChD,IAAI,CAAChF,KAAK,CAACltF,GAAG,CAAC,IAAI,CAACwoO,cAAc,GAAG,IAAIt2I,KAAK,CAAC,CAAC,CAAC;IACjD,IAAI,CAACu2I,cAAc,GAAG,IAAI;EAC5B,CAAC;EACD;AACF;AACA;;EAGEJ,UAAU,CAACxtO,SAAS,CAAC6tO,eAAe,GAAG,YAAY;IACjD,OAAO,IAAI,CAACH,aAAa;EAC3B,CAAC;EACD;AACF;AACA;;EAGEF,UAAU,CAACxtO,SAAS,CAAC8tO,gBAAgB,GAAG,YAAY;IAClD,OAAO,IAAI,CAACH,cAAc;EAC5B,CAAC;EACD;AACF;AACA;;EAGEH,UAAU,CAACxtO,SAAS,CAACw5F,MAAM,GAAG,UAAUu0I,WAAW,EAAE9uJ,OAAO,EAAErhD,GAAG,EAAE;IACjE,IAAIowM,aAAa,GAAG,IAAI,CAACJ,cAAc;IACvC,IAAI,CAACA,cAAc,GAAG,KAAK;IAC3B,IAAI,CAACK,UAAU,CAAC,CAAC;IAEjB,IAAI,CAACF,WAAW,CAAC3sO,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;MAClC;IACF;IAEA,IAAI8sO,SAAS,GAAGH,WAAW,CAAC3sO,GAAG,CAAC,OAAO,CAAC;IACxC,IAAI6qH,MAAM,GAAG8hH,WAAW,CAAC3sO,GAAG,CAAC,QAAQ,CAAC;IAEtC,IAAI,CAAC8sO,SAAS,IAAIA,SAAS,KAAK,MAAM,EAAE;MACtCA,SAAS,GAAGH,WAAW,CAAC3sO,GAAG,CAAC,MAAM,CAAC,KAAK,OAAO,IAAI6qH,MAAM,KAAK,UAAU,GAAG,OAAO,GAAG,MAAM;IAC7F,CAAC,CAAC;;IAGF,IAAI6kF,QAAQ,GAAGi9B,WAAW,CAAC3sO,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC;IAChD,IAAIisO,gBAAgB,GAAGU,WAAW,CAAC3sO,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC;IAEhE,IAAI0vM,QAAQ,KAAK,CAACu8B,gBAAgB,IAAIA,gBAAgB,KAAK,MAAM,CAAC,EAAE;MAClEA,gBAAgB,GAAGphH,MAAM,KAAK,YAAY,GAAG,KAAK,GAAG,OAAO;IAC9D;IAEA,IAAI,CAACkiH,WAAW,CAACD,SAAS,EAAEH,WAAW,EAAE9uJ,OAAO,EAAErhD,GAAG,EAAEkzK,QAAQ,EAAE7kF,MAAM,EAAEohH,gBAAgB,CAAC,CAAC,CAAC;;IAE5F,IAAI1pB,YAAY,GAAGoqB,WAAW,CAAC1/G,kBAAkB,CAAC,CAAC;IACnD,IAAIk8G,YAAY,GAAG;MACjBn/M,KAAK,EAAEwS,GAAG,CAAC+rE,QAAQ,CAAC,CAAC;MACrBr+E,MAAM,EAAEsS,GAAG,CAACgsE,SAAS,CAAC;IACxB,CAAC;IACD,IAAIwnB,OAAO,GAAG28G,WAAW,CAAC3sO,GAAG,CAAC,SAAS,CAAC;IACxC,IAAI4qH,OAAO,GAAGsmG,0DAAwB,CAAC3O,YAAY,EAAE4mB,YAAY,EAAEn5G,OAAO,CAAC;IAC3E,IAAIg9G,QAAQ,GAAG,IAAI,CAACC,WAAW,CAACN,WAAW,EAAEG,SAAS,EAAEliH,OAAO,EAAEgiH,aAAa,EAAEl9B,QAAQ,EAAEu8B,gBAAgB,CAAC,CAAC,CAAC;;IAE7G,IAAI9kD,UAAU,GAAG+pC,0DAAwB,CAAC/pH,8DAAe,CAAC;MACxDn9E,KAAK,EAAEgjN,QAAQ,CAAChjN,KAAK;MACrBE,MAAM,EAAE8iN,QAAQ,CAAC9iN;IACnB,CAAC,EAAEq4L,YAAY,CAAC,EAAE4mB,YAAY,EAAEn5G,OAAO,CAAC;IACxC,IAAI,CAAC/+B,KAAK,CAAC/kF,CAAC,GAAGi7K,UAAU,CAACj7K,CAAC,GAAG8gO,QAAQ,CAAC9gO,CAAC;IACxC,IAAI,CAAC+kF,KAAK,CAAC9qF,CAAC,GAAGghL,UAAU,CAAChhL,CAAC,GAAG6mO,QAAQ,CAAC7mO,CAAC;IACxC,IAAI,CAAC8qF,KAAK,CAAClM,UAAU,CAAC,CAAC,CAAC,CAAC;;IAEzB,IAAI,CAACkM,KAAK,CAACltF,GAAG,CAAC,IAAI,CAACmpO,aAAa,GAAG9D,wEAAc,CAAC4D,QAAQ,EAAEL,WAAW,CAAC,CAAC;EAC5E,CAAC;EAEDP,UAAU,CAACxtO,SAAS,CAACiuO,UAAU,GAAG,YAAY;IAC5C,IAAI,CAACJ,eAAe,CAAC,CAAC,CAAC3wI,SAAS,CAAC,CAAC;IAClC,IAAI,CAACoxI,aAAa,IAAI,IAAI,CAACj8I,KAAK,CAAC9kF,MAAM,CAAC,IAAI,CAAC+gO,aAAa,CAAC;IAC3D,IAAI,CAACR,gBAAgB,CAAC,CAAC,CAAC5wI,SAAS,CAAC,CAAC;EACrC,CAAC;EAEDswI,UAAU,CAACxtO,SAAS,CAACmuO,WAAW,GAAG,UAAUD,SAAS,EAAEH,WAAW,EAAE9uJ,OAAO,EAAErhD,GAAG,EAAEkzK,QAAQ,EAAE7kF,MAAM,EAAEohH,gBAAgB,EAAE;IACrH,IAAI72G,YAAY,GAAG,IAAI,CAACq3G,eAAe,CAAC,CAAC;IACzC,IAAIU,cAAc,GAAGhmI,mEAAoB,CAAC,CAAC;IAC3C,IAAIimI,UAAU,GAAGT,WAAW,CAAC3sO,GAAG,CAAC,cAAc,CAAC;IAChD,IAAIqtO,eAAe,GAAG,EAAE;IACxBxvJ,OAAO,CAAC8sJ,aAAa,CAAC,UAAUrgJ,WAAW,EAAE;MAC3C,CAACA,WAAW,CAACtqF,GAAG,CAAC,iBAAiB,CAAC,IAAIqtO,eAAe,CAACrrO,IAAI,CAACsoF,WAAW,CAAC/nF,EAAE,CAAC;IAC7E,CAAC,CAAC;IACFo+E,IAAI,CAACgsJ,WAAW,CAACr6I,OAAO,CAAC,CAAC,EAAE,UAAUg7I,eAAe,EAAE7vJ,SAAS,EAAE;MAChE,IAAI14E,IAAI,GAAGuoO,eAAe,CAACttO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;;MAExC,IAAI,CAAC,IAAI,CAACqsO,eAAe,KAAKtnO,IAAI,KAAK,EAAE,IAAIA,IAAI,KAAK,IAAI,CAAC,EAAE;QAC3D,IAAIe,CAAC,GAAG,IAAImwF,KAAK,CAAC,CAAC,CAAC,CAAC;;QAErBnwF,CAAC,CAACynO,OAAO,GAAG,IAAI;QAChBn4G,YAAY,CAACrxH,GAAG,CAAC+B,CAAC,CAAC;QACnB;MACF,CAAC,CAAC;;MAGF,IAAIwkF,WAAW,GAAGzM,OAAO,CAAC2vJ,eAAe,CAACzoO,IAAI,CAAC,CAAC,CAAC,CAAC;MAElD,IAAIooO,cAAc,CAACntO,GAAG,CAAC+E,IAAI,CAAC,EAAE;QAC5B;QACA;MACF,CAAC,CAAC;;MAGF,IAAIulF,WAAW,EAAE;QACf,IAAIjhF,IAAI,GAAGihF,WAAW,CAACgI,OAAO,CAAC,CAAC;QAChC,IAAIm7I,eAAe,GAAGpkO,IAAI,CAAC06F,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC7D,IAAIiX,UAAU,GAAG3xG,IAAI,CAAC06F,SAAS,CAAC,YAAY,CAAC;QAC7C;AACR;AACA;AACA;;QAEQ,IAAI1pF,KAAK,GAAGhR,IAAI,CAAC06F,SAAS,CAAC,OAAO,CAAC;QAEnC,IAAI2xB,SAAS,GAAG,IAAI,CAACg4G,WAAW,CAACpjJ,WAAW,EAAEvlF,IAAI,EAAE04E,SAAS,EAAE6vJ,eAAe,EAAEX,WAAW,EAAEG,SAAS,EAAEW,eAAe,EAAEpzN,KAAK,EAAE2gG,UAAU,EAAEoyH,UAAU,EAAE5wM,GAAG,CAAC;QAE5Jk5F,SAAS,CAACj5B,EAAE,CAAC,OAAO,EAAEuS,KAAK,CAAC2+H,oBAAoB,EAAE5oO,IAAI,EAAE,IAAI,EAAEy3B,GAAG,EAAE6wM,eAAe,CAAC,CAAC,CAAC5wI,EAAE,CAAC,WAAW,EAAEuS,KAAK,CAAC4+H,uBAAuB,EAAEtjJ,WAAW,CAACvlF,IAAI,EAAE,IAAI,EAAEy3B,GAAG,EAAE6wM,eAAe,CAAC,CAAC,CAAC5wI,EAAE,CAAC,UAAU,EAAEuS,KAAK,CAAC6+H,sBAAsB,EAAEvjJ,WAAW,CAACvlF,IAAI,EAAE,IAAI,EAAEy3B,GAAG,EAAE6wM,eAAe,CAAC,CAAC;QAC9QF,cAAc,CAACltO,GAAG,CAAC8E,IAAI,EAAE,IAAI,CAAC;MAChC,CAAC,MAAM;QACL;QACA84E,OAAO,CAAC8sJ,aAAa,CAAC,UAAUrgJ,WAAW,EAAE;UAC3C;UACA,IAAI6iJ,cAAc,CAACntO,GAAG,CAAC+E,IAAI,CAAC,EAAE;YAC5B;UACF;UAEA,IAAIulF,WAAW,CAACo/B,oBAAoB,EAAE;YACpC,IAAImhH,QAAQ,GAAGvgJ,WAAW,CAACo/B,oBAAoB;YAE/C,IAAI,CAACmhH,QAAQ,CAACiD,WAAW,CAAC/oO,IAAI,CAAC,EAAE;cAC/B;YACF;YAEA,IAAI0mF,GAAG,GAAGo/I,QAAQ,CAACzzE,WAAW,CAACryJ,IAAI,CAAC;YACpC,IAAIsV,KAAK,GAAGwwN,QAAQ,CAAChpI,aAAa,CAACpW,GAAG,EAAE,OAAO,CAAC;YAChD,IAAIuvB,UAAU,GAAG6vH,QAAQ,CAAChpI,aAAa,CAACpW,GAAG,EAAE,YAAY,CAAC;YAC1D,IAAIsiJ,QAAQ,GAAGjqO,gEAAK,CAACuW,KAAK,CAACoQ,IAAI,CAAC,CAAC,CAAC;YAClC;;YAEA,IAAIsjN,QAAQ,IAAIA,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;cACjCA,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;;cAEnB1zN,KAAK,GAAG8sF,4DAAa,CAACA,4DAAa,CAAC,CAAC,CAAC,EAAE9sF,KAAK,CAAC,EAAE;gBAC9CoQ,IAAI,EAAEhnB,oEAAS,CAACsqO,QAAQ,EAAE,MAAM;cAClC,CAAC,CAAC;YACJ;YAEA,IAAIr4G,SAAS,GAAG,IAAI,CAACg4G,WAAW,CAACpjJ,WAAW,EAAEvlF,IAAI,EAAE04E,SAAS,EAAE6vJ,eAAe,EAAEX,WAAW,EAAEG,SAAS,EAAE,CAAC,CAAC,EAAEzyN,KAAK,EAAE2gG,UAAU,EAAEoyH,UAAU,EAAE5wM,GAAG,CAAC,CAAC,CAAC;;YAGjJk5F,SAAS,CAACj5B,EAAE,CAAC,OAAO,EAAEuS,KAAK,CAAC2+H,oBAAoB,EAAE,IAAI,EAAE5oO,IAAI,EAAEy3B,GAAG,EAAE6wM,eAAe,CAAC,CAAC,CAAC;YACrF;YAAA,CACC5wI,EAAE,CAAC,WAAW,EAAEuS,KAAK,CAAC4+H,uBAAuB,EAAE,IAAI,EAAE7oO,IAAI,EAAEy3B,GAAG,EAAE6wM,eAAe,CAAC,CAAC,CAAC5wI,EAAE,CAAC,UAAU,EAAEuS,KAAK,CAAC6+H,sBAAsB,EAAE,IAAI,EAAE9oO,IAAI,EAAEy3B,GAAG,EAAE6wM,eAAe,CAAC,CAAC;YAClKF,cAAc,CAACltO,GAAG,CAAC8E,IAAI,EAAE,IAAI,CAAC;UAChC;QACF,CAAC,EAAE,IAAI,CAAC;MACV;MAEA,IAAI8b,IAAqC,EAAE;QACzC,IAAI,CAACssN,cAAc,CAACntO,GAAG,CAAC+E,IAAI,CAAC,EAAE;UAC7BwP,OAAO,CAACC,IAAI,CAACzP,IAAI,GAAG,+EAA+E,CAAC;QACtG;MACF;IACF,CAAC,EAAE,IAAI,CAAC;IAER,IAAI2qM,QAAQ,EAAE;MACZ,IAAI,CAACs+B,eAAe,CAACt+B,QAAQ,EAAEi9B,WAAW,EAAEnwM,GAAG,EAAEquF,MAAM,EAAEohH,gBAAgB,CAAC;IAC5E;EACF,CAAC;EAEDG,UAAU,CAACxtO,SAAS,CAACovO,eAAe,GAAG,UAAUt+B,QAAQ,EAAEi9B,WAAW,EAAEnwM,GAAG,EAAEquF,MAAM,EAAEohH,gBAAgB,EAAE;IACrG,IAAIgC,aAAa,GAAG,IAAI,CAACvB,gBAAgB,CAAC,CAAC;IAC3C/rJ,IAAI,CAAC+uH,QAAQ,EAAE,SAASw+B,oBAAoBA,CAACC,YAAY,EAAE;MACzD,IAAI97N,IAAI,GAAG87N,YAAY,CAAC97N,IAAI;MAC5B,IAAIu5G,SAAS,GAAG,IAAIxkB,wDAAY,CAAC;QAC/B/sF,KAAK,EAAE;UACLnO,CAAC,EAAE,CAAC;UACJ/F,CAAC,EAAE,CAAC;UACJ4lH,KAAK,EAAE,QAAQ;UACfE,aAAa,EAAE;QACjB,CAAC;QACDiyD,OAAO,EAAE,SAAAA,CAAA,EAAY;UACnB1hJ,GAAG,CAAC6hE,cAAc,CAAC;YACjBhsF,IAAI,EAAEA,IAAI,KAAK,KAAK,GAAG,iBAAiB,GAAG;UAC7C,CAAC,CAAC;QACJ;MACF,CAAC,CAAC;MACF47N,aAAa,CAAClqO,GAAG,CAAC6nH,SAAS,CAAC;MAC5B,IAAI5I,UAAU,GAAG2pH,WAAW,CAACliJ,QAAQ,CAAC,eAAe,CAAC;MACtD,IAAI2jJ,kBAAkB,GAAGzB,WAAW,CAACliJ,QAAQ,CAAC,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;MAC5E+L,mEAAa,CAACo1B,SAAS,EAAE;QACvB5O,MAAM,EAAEgG,UAAU;QAClB9b,QAAQ,EAAEknI;MACZ,CAAC,EAAE;QACDhsI,WAAW,EAAE+rI,YAAY,CAACvhN;MAC5B,CAAC,CAAC;MACF+zL,oEAAmB,CAAC/0F,SAAS,CAAC;IAChC,CAAC,CAAC;EACJ,CAAC;EAEDwgH,UAAU,CAACxtO,SAAS,CAAC8uO,WAAW,GAAG,UAAUpjJ,WAAW,EAAEvlF,IAAI,EAAE04E,SAAS,EAAE6vJ,eAAe,EAAEX,WAAW,EAAEG,SAAS,EAAEW,eAAe,EAAEY,eAAe,EAAErzH,UAAU,EAAEoyH,UAAU,EAAE5wM,GAAG,EAAE;IACjL,IAAI8xM,QAAQ,GAAGhkJ,WAAW,CAAC0lB,cAAc;IACzC,IAAI2e,SAAS,GAAGg+G,WAAW,CAAC3sO,GAAG,CAAC,WAAW,CAAC;IAC5C,IAAIyuH,UAAU,GAAGk+G,WAAW,CAAC3sO,GAAG,CAAC,YAAY,CAAC;IAC9C,IAAI8/H,UAAU,GAAG6sG,WAAW,CAAC7sG,UAAU,CAAC/6H,IAAI,CAAC;IAC7C,IAAIy9I,UAAU,GAAG8qF,eAAe,CAACttO,GAAG,CAAC,cAAc,CAAC;IACpD,IAAI+6G,gBAAgB,GAAGuyH,eAAe,CAACttO,GAAG,CAAC,kBAAkB,CAAC;IAC9D,IAAIuuO,cAAc,GAAGjB,eAAe,CAACttO,GAAG,CAAC,MAAM,CAAC;IAChDg7G,UAAU,GAAGuzH,cAAc,IAAIvzH,UAAU,IAAI,WAAW;IACxD,IAAI3gG,KAAK,GAAGm0N,cAAc,CAACxzH,UAAU,EAAEsyH,eAAe,EAAEG,eAAe,EAAEY,eAAe,EAAEC,QAAQ,EAAExuG,UAAU,EAAEtjG,GAAG,CAAC;IACpH,IAAIk5F,SAAS,GAAG,IAAIz/B,KAAK,CAAC,CAAC;IAC3B,IAAIinF,cAAc,GAAGowD,eAAe,CAAC7iJ,QAAQ,CAAC,WAAW,CAAC;IAE1D,IAAI0c,gEAAiB,CAAC7c,WAAW,CAACg4D,aAAa,CAAC,KAAK,CAACisF,cAAc,IAAIA,cAAc,KAAK,SAAS,CAAC,EAAE;MACrG;MACA74G,SAAS,CAAC3xH,GAAG,CAACumF,WAAW,CAACg4D,aAAa,CAAC;QACtC3zB,SAAS,EAAEA,SAAS;QACpBF,UAAU,EAAEA,UAAU;QACtBrjG,IAAI,EAAE4vF,UAAU;QAChBwnC,UAAU,EAAEA,UAAU;QACtBzsD,SAAS,EAAE17E,KAAK,CAAC07E,SAAS;QAC1Bi1B,SAAS,EAAE3wG,KAAK,CAAC2wG,SAAS;QAC1BjQ,gBAAgB,EAAEA;MACpB,CAAC,CAAC,CAAC;IACL,CAAC,MAAM;MACL;MACA,IAAI5zF,MAAM,GAAGonN,cAAc,KAAK,SAAS,IAAIjkJ,WAAW,CAACgI,OAAO,CAAC,CAAC,CAACyR,SAAS,CAAC,QAAQ,CAAC,GAAGy+C,UAAU,KAAK,SAAS,GAAGl4D,WAAW,CAACgI,OAAO,CAAC,CAAC,CAACyR,SAAS,CAAC,cAAc,CAAC,GAAGy+C,UAAU,GAAG,CAAC,CAAC,CAAC;;MAEtL9sB,SAAS,CAAC3xH,GAAG,CAAC0qO,oBAAoB,CAAC;QACjC9/G,SAAS,EAAEA,SAAS;QACpBF,UAAU,EAAEA,UAAU;QACtBrjG,IAAI,EAAE4vF,UAAU;QAChBwnC,UAAU,EAAEr7H,MAAM;QAClB4uE,SAAS,EAAE17E,KAAK,CAAC07E,SAAS;QAC1Bi1B,SAAS,EAAE3wG,KAAK,CAAC2wG,SAAS;QAC1BjQ,gBAAgB,EAAEA;MACpB,CAAC,CAAC,CAAC;IACL;IAEA,IAAI0S,KAAK,GAAGq/G,SAAS,KAAK,MAAM,GAAGn+G,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC;IACrD,IAAI3C,SAAS,GAAG8gH,SAAS;IACzB,IAAIpyG,SAAS,GAAGiyG,WAAW,CAAC3sO,GAAG,CAAC,WAAW,CAAC;IAC5C,IAAIstB,OAAO,GAAGvoB,IAAI;IAElB,IAAIoiG,8DAAe,CAACuzB,SAAS,CAAC,IAAIA,SAAS,EAAE;MAC3CptG,OAAO,GAAGotG,SAAS,CAACnzH,OAAO,CAAC,QAAQ,EAAExC,IAAI,IAAI,IAAI,GAAGA,IAAI,GAAG,EAAE,CAAC;IACjE,CAAC,MAAM,IAAIoiG,gEAAiB,CAACuzB,SAAS,CAAC,EAAE;MACvCptG,OAAO,GAAGotG,SAAS,CAAC31H,IAAI,CAAC;IAC3B;IAEA,IAAIumO,aAAa,GAAGgC,eAAe,CAACttO,GAAG,CAAC,eAAe,CAAC;IACxD01H,SAAS,CAAC3xH,GAAG,CAAC,IAAIqjG,wDAAY,CAAC;MAC7B/sF,KAAK,EAAE6oG,qEAAe,CAACg6D,cAAc,EAAE;QACrCxhJ,IAAI,EAAEpO,OAAO;QACbphB,CAAC,EAAEuhH,KAAK;QACRtnH,CAAC,EAAEsoH,UAAU,GAAG,CAAC;QACjBhkG,IAAI,EAAEq1G,UAAU,GAAGo9C,cAAc,CAACsT,YAAY,CAAC,CAAC,GAAG86C,aAAa;QAChEv/G,KAAK,EAAEC,SAAS;QAChBC,aAAa,EAAE;MACjB,CAAC;IACH,CAAC,CAAC,CAAC,CAAC,CAAC;;IAEL,IAAIyiH,OAAO,GAAG,IAAItnI,wDAAY,CAAC;MAC7B9gB,KAAK,EAAEovC,SAAS,CAACuH,eAAe,CAAC,CAAC;MAClCn3C,SAAS,EAAE;IACb,CAAC,CAAC;IACF,IAAI6oJ,YAAY,GAAGrB,eAAe,CAAC7iJ,QAAQ,CAAC,SAAS,CAAC;IAEtD,IAAIkkJ,YAAY,CAAC3uO,GAAG,CAAC,MAAM,CAAC,EAAE;MAC5BonG,+DAAwB,CAAC;QACvB3oB,EAAE,EAAEiwJ,OAAO;QACXj/H,cAAc,EAAEk9H,WAAW;QAC3Br3H,QAAQ,EAAEvwG,IAAI;QACd+tN,iBAAiB,EAAE6b,YAAY,CAAChqI;MAClC,CAAC,CAAC;IACJ;IAEA+wB,SAAS,CAAC3xH,GAAG,CAAC2qO,OAAO,CAAC;IACtBh5G,SAAS,CAAC0Y,SAAS,CAAC,UAAUvmH,KAAK,EAAE;MACnCA,KAAK,CAAC+9D,MAAM,GAAG,IAAI;IACrB,CAAC,CAAC;IACF8oJ,OAAO,CAAC9oJ,MAAM,GAAG,CAACwnJ,UAAU;IAC5B,IAAI,CAACX,eAAe,CAAC,CAAC,CAAC1oO,GAAG,CAAC2xH,SAAS,CAAC;IACrCirF,oEAAmB,CAACjrF,SAAS,CAAC,CAAC,CAAC;;IAEhCA,SAAS,CAACk5G,iBAAiB,GAAGnxJ,SAAS;IACvC,OAAOi4C,SAAS;EAClB,CAAC;EAED02G,UAAU,CAACxtO,SAAS,CAACquO,WAAW,GAAG,UAAUN,WAAW,EAAEG,SAAS,EAAEliH,OAAO,EAAEgiH,aAAa,EAAEl9B,QAAQ,EAAEu8B,gBAAgB,EAAE;IACvH,IAAI72G,YAAY,GAAG,IAAI,CAACq3G,eAAe,CAAC,CAAC;IACzC,IAAIwB,aAAa,GAAG,IAAI,CAACvB,gBAAgB,CAAC,CAAC,CAAC,CAAC;;IAE7Cxb,gDAAc,CAACyb,WAAW,CAAC3sO,GAAG,CAAC,QAAQ,CAAC,EAAEo1H,YAAY,EAAEu3G,WAAW,CAAC3sO,GAAG,CAAC,SAAS,CAAC,EAAE4qH,OAAO,CAAC5gG,KAAK,EAAE4gG,OAAO,CAAC1gG,MAAM,CAAC;IAClH,IAAI2kN,WAAW,GAAGz5G,YAAY,CAAC6H,eAAe,CAAC,CAAC;IAChD,IAAI6xG,UAAU,GAAG,CAAC,CAACD,WAAW,CAAC3iO,CAAC,EAAE,CAAC2iO,WAAW,CAAC1oO,CAAC,CAAC;IACjD8nO,aAAa,CAAClpJ,UAAU,CAAC,CAAC;IAC1BqwC,YAAY,CAACrwC,UAAU,CAAC,CAAC;IAEzB,IAAI2qH,QAAQ,EAAE;MACZ;MACAwhB,gDAAc;MAAE;MAChB,YAAY,EAAE+c,aAAa,EAAEtB,WAAW,CAAC3sO,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;MACtE,IAAI+uO,YAAY,GAAGd,aAAa,CAAChxG,eAAe,CAAC,CAAC;MAClD,IAAI+xG,WAAW,GAAG,CAAC,CAACD,YAAY,CAAC7iO,CAAC,EAAE,CAAC6iO,YAAY,CAAC5oO,CAAC,CAAC;MACpD,IAAIgmO,iBAAiB,GAAGQ,WAAW,CAAC3sO,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC;MAClE,IAAIivO,SAAS,GAAGtC,WAAW,CAACh3D,SAAS,CAAC,CAAC,CAAC3uJ,KAAK;MAC7C,IAAI6gF,EAAE,GAAGonI,SAAS,KAAK,CAAC,GAAG,OAAO,GAAG,QAAQ;MAC7C,IAAIC,EAAE,GAAGD,SAAS,KAAK,CAAC,GAAG,QAAQ,GAAG,OAAO;MAC7C,IAAIE,EAAE,GAAGF,SAAS,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG;MAEpC,IAAIhD,gBAAgB,KAAK,KAAK,EAAE;QAC9B+C,WAAW,CAACC,SAAS,CAAC,IAAIJ,WAAW,CAAChnI,EAAE,CAAC,GAAGskI,iBAAiB;MAC/D,CAAC,MAAM;QACL2C,UAAU,CAACG,SAAS,CAAC,IAAIF,YAAY,CAAClnI,EAAE,CAAC,GAAGskI,iBAAiB;MAC/D,CAAC,CAAC;;MAGF6C,WAAW,CAAC,CAAC,GAAGC,SAAS,CAAC,IAAIJ,WAAW,CAACK,EAAE,CAAC,GAAG,CAAC,GAAGH,YAAY,CAACG,EAAE,CAAC,GAAG,CAAC;MACxEjB,aAAa,CAAC/hO,CAAC,GAAG8iO,WAAW,CAAC,CAAC,CAAC;MAChCf,aAAa,CAAC9nO,CAAC,GAAG6oO,WAAW,CAAC,CAAC,CAAC;MAChC55G,YAAY,CAAClpH,CAAC,GAAG4iO,UAAU,CAAC,CAAC,CAAC;MAC9B15G,YAAY,CAACjvH,CAAC,GAAG2oO,UAAU,CAAC,CAAC,CAAC;MAC9B,IAAI9B,QAAQ,GAAG;QACb9gO,CAAC,EAAE,CAAC;QACJ/F,CAAC,EAAE;MACL,CAAC;MACD6mO,QAAQ,CAACnlI,EAAE,CAAC,GAAGgnI,WAAW,CAAChnI,EAAE,CAAC,GAAGskI,iBAAiB,GAAG4C,YAAY,CAAClnI,EAAE,CAAC;MACrEmlI,QAAQ,CAACkC,EAAE,CAAC,GAAGjtO,IAAI,CAACqC,GAAG,CAACuqO,WAAW,CAACK,EAAE,CAAC,EAAEH,YAAY,CAACG,EAAE,CAAC,CAAC;MAC1DlC,QAAQ,CAACmC,EAAE,CAAC,GAAGltO,IAAI,CAACq6E,GAAG,CAAC,CAAC,EAAEyyJ,YAAY,CAACI,EAAE,CAAC,GAAGH,WAAW,CAAC,CAAC,GAAGC,SAAS,CAAC,CAAC;MACzE,OAAOjC,QAAQ;IACjB,CAAC,MAAM;MACL53G,YAAY,CAAClpH,CAAC,GAAG4iO,UAAU,CAAC,CAAC,CAAC;MAC9B15G,YAAY,CAACjvH,CAAC,GAAG2oO,UAAU,CAAC,CAAC,CAAC;MAC9B,OAAO,IAAI,CAAC79I,KAAK,CAACgsC,eAAe,CAAC,CAAC;IACrC;EACF,CAAC;EACD;AACF;AACA;;EAGEmvG,UAAU,CAACxtO,SAAS,CAACuN,MAAM,GAAG,YAAY;IACxC,IAAI,CAACsgO,eAAe,CAAC,CAAC,CAAC3wI,SAAS,CAAC,CAAC;IAClC,IAAI,CAAC0wI,cAAc,GAAG,IAAI;EAC5B,CAAC;EAEDJ,UAAU,CAAC/5N,IAAI,GAAG,cAAc;EAChC,OAAO+5N,UAAU;AACnB,CAAC,CAAC70C,2DAAa,CAAC;AAEhB,SAASi3C,cAAcA,CAAC92E,QAAQ,EAAE41E,eAAe,EAAEG,eAAe,EAAEY,eAAe,EAAEC,QAAQ,EAAExuG,UAAU,EAAEtjG,GAAG,EAAE;EAC9G;AACF;AACA;AACA;EACE,SAAS4yM,iBAAiBA,CAAC/0N,KAAK,EAAEg1N,WAAW,EAAE;IAC7C;IACA,IAAIh1N,KAAK,CAAC0oF,SAAS,KAAK,MAAM,EAAE;MAC9B1oF,KAAK,CAAC0oF,SAAS,GAAGssI,WAAW,CAACtsI,SAAS,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;IACrD;IAEApiB,IAAI,CAACtmE,KAAK,EAAE,UAAUi1N,OAAO,EAAE5qJ,QAAQ,EAAE;MACvCrqE,KAAK,CAACqqE,QAAQ,CAAC,KAAK,SAAS,KAAKrqE,KAAK,CAACqqE,QAAQ,CAAC,GAAG2qJ,WAAW,CAAC3qJ,QAAQ,CAAC,CAAC;IAC5E,CAAC,CAAC;EACJ,CAAC,CAAC;;EAGF,IAAIooF,cAAc,GAAGwgE,eAAe,CAAC7iJ,QAAQ,CAAC,WAAW,CAAC;EAC1D,IAAIsL,SAAS,GAAG+2E,cAAc,CAACpyE,YAAY,CAAC,CAAC;EAC7C,IAAI60I,aAAa,GAAG73E,QAAQ,CAACvsD,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM,GAAG,QAAQ;EAC9E,IAAIqkI,UAAU,GAAG1iE,cAAc,CAACvuF,UAAU,CAAC,OAAO,CAAC;EACnDwX,SAAS,CAAColB,KAAK,GAAG,CAACq0H,UAAU,IAAIA,UAAU,KAAK,SAAS,GAAGnB,eAAe,CAAClzH,KAAK,GAAGsB,+EAA8B,CAAC+yH,UAAU,EAAEhzM,GAAG,CAAC;EAEnI,IAAIu5D,SAAS,CAACtrE,IAAI,KAAK,SAAS,EAAE;IAChC;AACJ;AACA;AACA;IACIsrE,SAAS,CAACtrE,IAAI,GAAG4jN,eAAe,CAACC,QAAQ,CAAC;EAC5C;EAEA,IAAIv4I,SAAS,CAAC6M,MAAM,KAAK,SAAS,EAAE;IAClC;AACJ;AACA;AACA;IACI7M,SAAS,CAAC6M,MAAM,GAAGyrI,eAAe,CAACkB,aAAa,CAAC;EACnD;EAEA,IAAIx5I,SAAS,CAAClgE,OAAO,KAAK,SAAS,EAAE;IACnC;AACJ;AACA;IACIkgE,SAAS,CAAClgE,OAAO,GAAG,CAACy4M,QAAQ,KAAK,MAAM,GAAGD,eAAe,GAAGZ,eAAe,EAAE53M,OAAO;EACvF;EAEAu5M,iBAAiB,CAACr5I,SAAS,EAAEs4I,eAAe,CAAC,CAAC,CAAC;;EAE/C,IAAIoB,eAAe,GAAGnC,eAAe,CAAC7iJ,QAAQ,CAAC,WAAW,CAAC;EAC3D,IAAIugC,SAAS,GAAGykH,eAAe,CAACl+G,YAAY,CAAC,CAAC;EAC9C69G,iBAAiB,CAACpkH,SAAS,EAAEyiH,eAAe,CAAC,CAAC,CAAC;;EAE/C13I,SAAS,CAACtrE,IAAI,KAAK,MAAM,KAAKsrE,SAAS,CAACtrE,IAAI,GAAG4jN,eAAe,CAAC5jN,IAAI,CAAC;EACpEsrE,SAAS,CAAC6M,MAAM,KAAK,MAAM,KAAK7M,SAAS,CAAC6M,MAAM,GAAGyrI,eAAe,CAAC5jN,IAAI,CAAC;EACxEugG,SAAS,CAACpoB,MAAM,KAAK,MAAM,KAAKooB,SAAS,CAACpoB,MAAM,GAAGyrI,eAAe,CAAC5jN,IAAI,CAAC;EAExE,IAAI,CAACq1G,UAAU,EAAE;IACf,IAAIvqC,WAAW,GAAG+3I,eAAe,CAACttO,GAAG,CAAC,qBAAqB,CAAC;IAC5D;AACJ;AACA;AACA;AACA;;IAEI,IAAI0vO,eAAe,GAAG35I,SAAS,CAACw5I,aAAa,CAAC;IAC9Cx5I,SAAS,CAACgN,SAAS,GAAGxN,WAAW,KAAK,MAAM,GAAG84I,eAAe,CAACtrI,SAAS,GAAG,CAAC,IAAI2sI,eAAe,GAAG,CAAC,GAAG,CAAC,GAAG35I,SAAS,CAACgN,SAAS;IAC7HhN,SAAS,CAACtrE,IAAI,GAAG6iN,eAAe,CAACttO,GAAG,CAAC,eAAe,CAAC;IACrD+1F,SAAS,CAAC6M,MAAM,GAAG0qI,eAAe,CAACttO,GAAG,CAAC,qBAAqB,CAAC;IAC7DgrH,SAAS,CAACpoB,MAAM,GAAG6sI,eAAe,CAACzvO,GAAG,CAAC,eAAe,CAAC;IACvDgrH,SAAS,CAACjoB,SAAS,GAAG0sI,eAAe,CAACzvO,GAAG,CAAC,eAAe,CAAC;EAC5D;EAEA,OAAO;IACL+1F,SAAS,EAAEA,SAAS;IACpBi1B,SAAS,EAAEA;EACb,CAAC;AACH;AAEA,SAASyjH,oBAAoBA,CAACl7I,GAAG,EAAE;EACjC,IAAIo8I,SAAS,GAAGp8I,GAAG,CAACnoE,IAAI,IAAI,WAAW;EACvC,IAAIA,IAAI,GAAGi8E,8DAAY,CAACsoI,SAAS,EAAE,CAAC,EAAE,CAAC,EAAEp8I,GAAG,CAACo7B,SAAS,EAAEp7B,GAAG,CAACk7B,UAAU,EAAEl7B,GAAG,CAACwC,SAAS,CAACtrE,IAAI,EAAE8oE,GAAG,CAACwnB,gBAAgB,CAAC;EACjH3vF,IAAI,CAACs6D,QAAQ,CAAC6N,GAAG,CAACwC,SAAS,CAAC;EAC5B3qE,IAAI,CAACm+E,QAAQ,GAAG,CAAChW,GAAG,CAACivD,UAAU,IAAI,CAAC,IAAIvgJ,IAAI,CAACuiG,EAAE,GAAG,GAAG;EACrDp5E,IAAI,CAACq3H,SAAS,CAAC,CAAClvD,GAAG,CAACo7B,SAAS,GAAG,CAAC,EAAEp7B,GAAG,CAACk7B,UAAU,GAAG,CAAC,CAAC,CAAC;EAEvD,IAAIkhH,SAAS,CAAC5wO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE;IACnCqsB,IAAI,CAAC/Q,KAAK,CAACuoF,MAAM,GAAGx3E,IAAI,CAAC/Q,KAAK,CAACoQ,IAAI;IACnCW,IAAI,CAAC/Q,KAAK,CAACoQ,IAAI,GAAG,MAAM;IACxBW,IAAI,CAAC/Q,KAAK,CAAC0oF,SAAS,GAAG,CAAC;EAC1B;EAEA,OAAO33E,IAAI;AACb;AAEA,SAASuiN,oBAAoBA,CAAC9rH,UAAU,EAAE+tH,QAAQ,EAAEpzM,GAAG,EAAE6wM,eAAe,EAAE;EACxE;EACAQ,sBAAsB,CAAChsH,UAAU,EAAE+tH,QAAQ,EAAEpzM,GAAG,EAAE6wM,eAAe,CAAC;EAClE7wM,GAAG,CAAC6hE,cAAc,CAAC;IACjBhsF,IAAI,EAAE,oBAAoB;IAC1BtN,IAAI,EAAE88G,UAAU,IAAI,IAAI,GAAGA,UAAU,GAAG+tH;EAC1C,CAAC,CAAC,CAAC,CAAC;EACJ;;EAEAhC,uBAAuB,CAAC/rH,UAAU,EAAE+tH,QAAQ,EAAEpzM,GAAG,EAAE6wM,eAAe,CAAC;AACrE;AAEA,SAASwC,eAAeA,CAACrzM,GAAG,EAAE;EAC5B,IAAIwwD,IAAI,GAAGxwD,GAAG,CAACggE,KAAK,CAAC,CAAC,CAACpuF,OAAO,CAAC0hO,cAAc,CAAC,CAAC;EAC/C,IAAI/hI,aAAa;EACjB,IAAItvG,CAAC,GAAG,CAAC;EACT,IAAI+qF,GAAG,GAAGwD,IAAI,CAAC9tF,MAAM;EAErB,OAAOT,CAAC,GAAG+qF,GAAG,IAAI,EAAEukB,aAAa,GAAG/gB,IAAI,CAACvuF,CAAC,CAAC,CAACokG,MAAM,CAACqE,QAAQ,CAAC,EAAE;IAC5DzoG,CAAC,EAAE;EACL;EAEA,OAAOsvG,aAAa,IAAIA,aAAa,CAACwQ,UAAU;AAClD;AAEA,SAASqvH,uBAAuBA,CAAC/rH,UAAU,EAAE+tH,QAAQ,EAAEpzM,GAAG,EAAE6wM,eAAe,EAAE;EAC3E;EACA,IAAI,CAACwC,eAAe,CAACrzM,GAAG,CAAC,EAAE;IACzBA,GAAG,CAAC6hE,cAAc,CAAC;MACjBhsF,IAAI,EAAE,WAAW;MACjBwvG,UAAU,EAAEA,UAAU;MACtB98G,IAAI,EAAE6qO,QAAQ;MACdvC,eAAe,EAAEA;IACnB,CAAC,CAAC;EACJ;AACF;AAEA,SAASQ,sBAAsBA,CAAChsH,UAAU,EAAE+tH,QAAQ,EAAEpzM,GAAG,EAAE6wM,eAAe,EAAE;EAC1E;EACA,IAAI,CAACwC,eAAe,CAACrzM,GAAG,CAAC,EAAE;IACzBA,GAAG,CAAC6hE,cAAc,CAAC;MACjBhsF,IAAI,EAAE,UAAU;MAChBwvG,UAAU,EAAEA,UAAU;MACtB98G,IAAI,EAAE6qO,QAAQ;MACdvC,eAAe,EAAEA;IACnB,CAAC,CAAC;EACJ;AACF;AAEA,iEAAejB,UAAU;;;;;;;;;;;;;;;;;;;ACvjBzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACkC;AACS;AAC8B;AACV;AAE/D,IAAI2D,qBAAqB,GACzB;AACA,UAAU57I,MAAM,EAAE;EAChBL,gDAAS,CAACi8I,qBAAqB,EAAE57I,MAAM,CAAC;EAExC,SAAS47I,qBAAqBA,CAAA,EAAG;IAC/B,IAAIljO,KAAK,GAAGsnF,MAAM,KAAK,IAAI,IAAIA,MAAM,CAAC7yF,KAAK,CAAC,IAAI,EAAE0G,SAAS,CAAC,IAAI,IAAI;IAEpE6E,KAAK,CAACwF,IAAI,GAAG09N,qBAAqB,CAAC19N,IAAI;IACvC,OAAOxF,KAAK;EACd;EACA;AACF;AACA;;EAGEkjO,qBAAqB,CAACnxO,SAAS,CAACoxO,kBAAkB,GAAG,UAAUC,eAAe,EAAE;IAC9E,IAAI,CAACtrI,MAAM,CAACsrI,eAAe,GAAGA,eAAe;EAC/C,CAAC;EAEDF,qBAAqB,CAACnxO,SAAS,CAAC8pH,IAAI,GAAG,UAAU/jB,MAAM,EAAEthB,WAAW,EAAExF,OAAO,EAAE;IAC7E,IAAIqyJ,mBAAmB,GAAGztB,gEAAe,CAAC99G,MAAM,CAAC;IAEjDxQ,MAAM,CAACv1F,SAAS,CAAC8pH,IAAI,CAAC5pH,IAAI,CAAC,IAAI,EAAE6lG,MAAM,EAAEthB,WAAW,EAAExF,OAAO,CAAC;IAE9DsyJ,6BAA6B,CAAC,IAAI,EAAExrI,MAAM,EAAEurI,mBAAmB,CAAC;EAClE,CAAC;EACD;AACF;AACA;;EAGEH,qBAAqB,CAACnxO,SAAS,CAACg5H,WAAW,GAAG,UAAUjzB,MAAM,EAAE9mB,OAAO,EAAE;IACvEsW,MAAM,CAACv1F,SAAS,CAACg5H,WAAW,CAAC94H,IAAI,CAAC,IAAI,EAAE6lG,MAAM,EAAE9mB,OAAO,CAAC;IAExDsyJ,6BAA6B,CAAC,IAAI,EAAE,IAAI,CAACxrI,MAAM,EAAEA,MAAM,CAAC;EAC1D,CAAC;EAEDorI,qBAAqB,CAAC19N,IAAI,GAAG,eAAe;EAC5C09N,qBAAqB,CAAC/6I,aAAa,GAAGf,wEAAoB,CAACm2I,qEAAyB,EAAE;IACpF6F,eAAe,EAAE,CAAC;IAClBG,iBAAiB,EAAE,CAAC;IACpBC,aAAa,EAAE,IAAI;IACnBC,kBAAkB,EAAE,KAAK;IACzBC,aAAa,EAAE,mBAAmB;IAClCC,SAAS,EAAE;MACTC,UAAU,EAAE,CAAC,oBAAoB,EAAE,sBAAsB,CAAC;MAC1DC,QAAQ,EAAE,CAAC,mBAAmB,EAAE,kBAAkB;IACpD,CAAC;IACDC,aAAa,EAAE,SAAS;IACxBC,qBAAqB,EAAE,MAAM;IAC7BC,YAAY,EAAE,EAAE;IAChBC,aAAa,EAAE;MACbz7I,KAAK,EAAE;IACT,CAAC;IACD2oE,uBAAuB,EAAE;EAC3B,CAAC,CAAC;EACF,OAAO+xE,qBAAqB;AAC9B,CAAC,CAAC3F,uDAAW,CAAC;AAEd,CAAC,CAAC;;AAEF,SAAS+F,6BAA6BA,CAACxD,WAAW,EAAEnwN,MAAM,EAAEmkN,GAAG,EAAE;EAC/D,IAAI91G,MAAM,GAAG8hH,WAAW,CAACh3D,SAAS,CAAC,CAAC;EACpC,IAAIm6C,UAAU,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;EACvBA,UAAU,CAACjlG,MAAM,CAAC7jG,KAAK,CAAC,GAAG,CAAC;EAC5B6nM,iEAAgB,CAACryM,MAAM,EAAEmkN,GAAG,EAAE;IAC5BtuN,IAAI,EAAE,KAAK;IACXy9M,UAAU,EAAE,CAAC,CAACA;EAChB,CAAC,CAAC;AACJ;AAEA,iEAAeigB,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;ACvHpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACkC;AAClC;AACA;AACA;;AAEmD;AACF;AACE;AACV;AACzC,IAAI95I,KAAK,GAAGmR,wDAAa;AACzB,IAAI28F,EAAE,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC;AAC5B,IAAID,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC;AAEnB,IAAIitC,oBAAoB,GACxB;AACA,UAAU58I,MAAM,EAAE;EAChBL,gDAAS,CAACi9I,oBAAoB,EAAE58I,MAAM,CAAC;EAEvC,SAAS48I,oBAAoBA,CAAA,EAAG;IAC9B,IAAIlkO,KAAK,GAAGsnF,MAAM,KAAK,IAAI,IAAIA,MAAM,CAAC7yF,KAAK,CAAC,IAAI,EAAE0G,SAAS,CAAC,IAAI,IAAI;IAEpE6E,KAAK,CAACwF,IAAI,GAAG0+N,oBAAoB,CAAC1+N,IAAI;IACtCxF,KAAK,CAACw/N,eAAe,GAAG,IAAI;IAC5Bx/N,KAAK,CAACmkO,aAAa,GAAG,CAAC;IACvB,OAAOnkO,KAAK;EACd;EAEAkkO,oBAAoB,CAACnyO,SAAS,CAAC8pH,IAAI,GAAG,YAAY;IAChDv0B,MAAM,CAACv1F,SAAS,CAAC8pH,IAAI,CAAC5pH,IAAI,CAAC,IAAI,CAAC;IAEhC,IAAI,CAACmyF,KAAK,CAACltF,GAAG,CAAC,IAAI,CAACy+K,eAAe,GAAG,IAAIvsF,KAAK,CAAC,CAAC,CAAC;IAElD,IAAI,CAACusF,eAAe,CAACz+K,GAAG,CAAC,IAAI,CAAC0oO,eAAe,CAAC,CAAC,CAAC;IAEhD,IAAI,CAACx7I,KAAK,CAACltF,GAAG,CAAC,IAAI,CAACktO,gBAAgB,GAAG,IAAIh7I,KAAK,CAAC,CAAC,CAAC;EACrD,CAAC;EACD;AACF;AACA;;EAGE86I,oBAAoB,CAACnyO,SAAS,CAACiuO,UAAU,GAAG,YAAY;IACtD14I,MAAM,CAACv1F,SAAS,CAACiuO,UAAU,CAAC/tO,IAAI,CAAC,IAAI,CAAC;IAEtC,IAAI,CAACmyO,gBAAgB,CAACn1I,SAAS,CAAC,CAAC;IAEjC,IAAI,CAAC0mF,eAAe,CAAC3oF,cAAc,CAAC,CAAC;IAErC,IAAI,CAAC2oF,eAAe,CAAC0uD,UAAU,GAAG,IAAI;EACxC,CAAC;EACD;AACF;AACA;;EAGEH,oBAAoB,CAACnyO,SAAS,CAACmuO,WAAW,GAAG,UAAUD,SAAS,EAAEH,WAAW,EAAE9uJ,OAAO,EAAErhD,GAAG,EAAEkzK,QAAQ,EAAE7kF,MAAM,EAAEohH,gBAAgB,EAAE;IAC/H,IAAI1sO,IAAI,GAAG,IAAI,CAAC,CAAC;;IAEjB40F,MAAM,CAACv1F,SAAS,CAACmuO,WAAW,CAACjuO,IAAI,CAAC,IAAI,EAAEguO,SAAS,EAAEH,WAAW,EAAE9uJ,OAAO,EAAErhD,GAAG,EAAEkzK,QAAQ,EAAE7kF,MAAM,EAAEohH,gBAAgB,CAAC;IAEjH,IAAIkF,eAAe,GAAG,IAAI,CAACF,gBAAgB,CAAC,CAAC;IAC7C;;IAEA,IAAIJ,YAAY,GAAGlE,WAAW,CAAC3sO,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC;IACxD,IAAIoxO,eAAe,GAAGjqI,6DAAc,CAAC0pI,YAAY,CAAC,GAAGA,YAAY,GAAG,CAACA,YAAY,EAAEA,YAAY,CAAC;IAChGQ,gBAAgB,CAAC,UAAU,EAAE,CAAC,CAAC;IAC/B,IAAIC,kBAAkB,GAAG3E,WAAW,CAACliJ,QAAQ,CAAC,eAAe,CAAC;IAC9D0mJ,eAAe,CAACptO,GAAG,CAAC,IAAIqjG,wDAAY,CAAC;MACnCriG,IAAI,EAAE,UAAU;MAChBsV,KAAK,EAAE;QACL;QACAqhB,IAAI,EAAE,OAAO;QACbjR,IAAI,EAAE6mN,kBAAkB,CAAC9gD,YAAY,CAAC,CAAC;QACvC7uE,IAAI,EAAE2vH,kBAAkB,CAAC1tH,OAAO,CAAC,CAAC;QAClCqI,aAAa,EAAE,QAAQ;QACvBF,KAAK,EAAE;MACT,CAAC;MACDnmC,MAAM,EAAE;IACV,CAAC,CAAC,CAAC;IACHyrJ,gBAAgB,CAAC,UAAU,EAAE,CAAC,CAAC;IAE/B,SAASA,gBAAgBA,CAACtsO,IAAI,EAAEwsO,OAAO,EAAE;MACvC,IAAIC,iBAAiB,GAAGzsO,IAAI,GAAG,WAAW;MAC1C,IAAIqmB,IAAI,GAAGg8E,wDAAkB,CAACulI,WAAW,CAAC3sO,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC2sO,WAAW,CAACh3D,SAAS,CAAC,CAAC,CAAC5wK,IAAI,CAAC,CAACwsO,OAAO,CAAC,EAAE;QACvG;QACA;QACArzD,OAAO,EAAE/2E,0DAAW,CAAC5nG,IAAI,CAACkyO,OAAO,EAAElyO,IAAI,EAAEiyO,iBAAiB,EAAE7E,WAAW,EAAEnwM,GAAG;MAC9E,CAAC,EAAE;QACDtwB,CAAC,EAAE,CAACklO,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC;QAC1BjrO,CAAC,EAAE,CAACirO,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC;QAC1BpnN,KAAK,EAAEonN,eAAe,CAAC,CAAC,CAAC;QACzBlnN,MAAM,EAAEknN,eAAe,CAAC,CAAC;MAC3B,CAAC,CAAC;MACFhmN,IAAI,CAACrmB,IAAI,GAAGA,IAAI;MAChBosO,eAAe,CAACptO,GAAG,CAACqnB,IAAI,CAAC;IAC3B;EACF,CAAC;EACD;AACF;AACA;;EAGE2lN,oBAAoB,CAACnyO,SAAS,CAACquO,WAAW,GAAG,UAAUN,WAAW,EAAEG,SAAS,EAAEliH,OAAO,EAAEgiH,aAAa,EAAEl9B,QAAQ,EAAEu8B,gBAAgB,EAAE;IACjI,IAAIgC,aAAa,GAAG,IAAI,CAACvB,gBAAgB,CAAC,CAAC;IAC3C,IAAIuC,SAAS,GAAGtC,WAAW,CAACh3D,SAAS,CAAC,CAAC,CAAC3uJ,KAAK;IAC7C,IAAI6gF,EAAE,GAAGk8F,EAAE,CAACkrC,SAAS,CAAC;IACtB,IAAIrnI,EAAE,GAAGk8F,EAAE,CAACmrC,SAAS,CAAC;IACtB,IAAIC,EAAE,GAAGnrC,EAAE,CAAC,CAAC,GAAGkrC,SAAS,CAAC;IAC1B,IAAIE,EAAE,GAAGrrC,EAAE,CAAC,CAAC,GAAGmrC,SAAS,CAAC;IAC1Bv/B,QAAQ,IAAIwhB,gDAAc;IAAE;IAC5B,YAAY,EAAE+c,aAAa,EAAEtB,WAAW,CAAC3sO,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;IACtE,IAAImsO,iBAAiB,GAAGQ,WAAW,CAAC3sO,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC;IAClE,IAAI+uO,YAAY,GAAGd,aAAa,CAAChxG,eAAe,CAAC,CAAC;IAClD,IAAI+xG,WAAW,GAAG,CAAC,CAACD,YAAY,CAAC7iO,CAAC,EAAE,CAAC6iO,YAAY,CAAC5oO,CAAC,CAAC;IACpD,IAAIurO,cAAc,GAAGvqI,2DAAY,CAACyjB,OAAO,CAAC;IAC1C8kF,QAAQ,KAAKgiC,cAAc,CAAC7pI,EAAE,CAAC,GAAG+iB,OAAO,CAAC/iB,EAAE,CAAC,GAAGknI,YAAY,CAAClnI,EAAE,CAAC,GAAGskI,iBAAiB,CAAC;IAErF,IAAIa,QAAQ,GAAG,IAAI,CAAC2E,2BAA2B,CAAChF,WAAW,EAAEC,aAAa,EAAE8E,cAAc,EAAEzC,SAAS,EAAEpnI,EAAE,EAAEqnI,EAAE,EAAEC,EAAE,EAAEvnI,EAAE,CAAC;IAEtH,IAAI8nG,QAAQ,EAAE;MACZ,IAAIu8B,gBAAgB,KAAK,KAAK,EAAE;QAC9B+C,WAAW,CAACC,SAAS,CAAC,IAAIjC,QAAQ,CAACnlI,EAAE,CAAC,GAAGskI,iBAAiB;MAC5D,CAAC,MAAM;QACL,IAAI9/M,MAAM,GAAG0iN,YAAY,CAAClnI,EAAE,CAAC,GAAGskI,iBAAiB;QACjD6C,WAAW,CAACC,SAAS,CAAC,IAAI5iN,MAAM;QAChC2gN,QAAQ,CAACplI,EAAE,CAAC,IAAIv7E,MAAM;MACxB;MAEA2gN,QAAQ,CAACnlI,EAAE,CAAC,IAAIknI,YAAY,CAAClnI,EAAE,CAAC,GAAGskI,iBAAiB;MACpD6C,WAAW,CAAC,CAAC,GAAGC,SAAS,CAAC,IAAIjC,QAAQ,CAACmC,EAAE,CAAC,GAAGnC,QAAQ,CAACkC,EAAE,CAAC,GAAG,CAAC,GAAGH,YAAY,CAACG,EAAE,CAAC,GAAG,CAAC;MACpFlC,QAAQ,CAACkC,EAAE,CAAC,GAAGjtO,IAAI,CAACqC,GAAG,CAAC0oO,QAAQ,CAACkC,EAAE,CAAC,EAAEH,YAAY,CAACG,EAAE,CAAC,CAAC;MACvDlC,QAAQ,CAACmC,EAAE,CAAC,GAAGltO,IAAI,CAACq6E,GAAG,CAAC0wJ,QAAQ,CAACmC,EAAE,CAAC,EAAEJ,YAAY,CAACI,EAAE,CAAC,GAAGH,WAAW,CAAC,CAAC,GAAGC,SAAS,CAAC,CAAC;MACpFhB,aAAa,CAAC/hO,CAAC,GAAG8iO,WAAW,CAAC,CAAC,CAAC;MAChCf,aAAa,CAAC9nO,CAAC,GAAG6oO,WAAW,CAAC,CAAC,CAAC;MAChCf,aAAa,CAAClpJ,UAAU,CAAC,CAAC;IAC5B;IAEA,OAAOioJ,QAAQ;EACjB,CAAC;EAED+D,oBAAoB,CAACnyO,SAAS,CAAC+yO,2BAA2B,GAAG,UAAUhF,WAAW,EAAEC,aAAa,EAAEhiH,OAAO,EAAEqkH,SAAS,EAAEpnI,EAAE,EAAEqnI,EAAE,EAAEC,EAAE,EAAEvnI,EAAE,EAAE;IACrI,IAAIwtB,YAAY,GAAG,IAAI,CAACq3G,eAAe,CAAC,CAAC;IACzC,IAAI3vD,cAAc,GAAG,IAAI,CAAC0F,eAAe;IACzC,IAAI2uD,eAAe,GAAG,IAAI,CAACF,gBAAgB,CAAC,CAAC;;IAE7C/f,gDAAc,CAACyb,WAAW,CAAC3sO,GAAG,CAAC,QAAQ,CAAC,EAAEo1H,YAAY,EAAEu3G,WAAW,CAAC3sO,GAAG,CAAC,SAAS,CAAC,EAAE,CAACivO,SAAS,GAAG,IAAI,GAAGrkH,OAAO,CAAC5gG,KAAK,EAAEilN,SAAS,GAAG,IAAI,GAAGrkH,OAAO,CAAC1gG,MAAM,CAAC;IACzJgnM,gDAAc;IAAE;IAChB,YAAY,EAAEigB,eAAe,EAAExE,WAAW,CAAC3sO,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;IAC1E,IAAI6uO,WAAW,GAAGz5G,YAAY,CAAC6H,eAAe,CAAC,CAAC;IAChD,IAAI20G,cAAc,GAAGT,eAAe,CAACl0G,eAAe,CAAC,CAAC;IACtD,IAAI40G,cAAc,GAAG,IAAI,CAACC,eAAe,GAAGjD,WAAW,CAAChnI,EAAE,CAAC,GAAG+iB,OAAO,CAAC/iB,EAAE,CAAC,CAAC,CAAC;;IAE3E,IAAIinI,UAAU,GAAG,CAAC,CAACD,WAAW,CAAC3iO,CAAC,EAAE,CAAC2iO,WAAW,CAAC1oO,CAAC,CAAC,CAAC,CAAC;IACnD;IACA;;IAEA,IAAI,CAACymO,aAAa,EAAE;MAClBkC,UAAU,CAACG,SAAS,CAAC,GAAG75G,YAAY,CAACxtB,EAAE,CAAC;IAC1C,CAAC,CAAC;;IAGF,IAAImqI,YAAY,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IACzB,IAAIC,aAAa,GAAG,CAAC,CAACJ,cAAc,CAAC1lO,CAAC,EAAE,CAAC0lO,cAAc,CAACzrO,CAAC,CAAC;IAC1D,IAAIkqO,aAAa,GAAGlpI,+DAAgB,CAACwlI,WAAW,CAAC3sO,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,EAAE2sO,WAAW,CAAC3sO,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;;IAEhH,IAAI6xO,cAAc,EAAE;MAClB,IAAIvB,kBAAkB,GAAG3D,WAAW,CAAC3sO,GAAG,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC,CAAC;;MAEtE,IAAIswO,kBAAkB,KAAK,KAAK,EAAE;QAChC0B,aAAa,CAAC/C,SAAS,CAAC,IAAIrkH,OAAO,CAAC/iB,EAAE,CAAC,GAAG+pI,cAAc,CAAC/pI,EAAE,CAAC;MAC9D,CAAC,CAAC;MAAA,KACG;QACDkqI,YAAY,CAAC9C,SAAS,CAAC,IAAI2C,cAAc,CAAC/pI,EAAE,CAAC,GAAGwoI,aAAa;MAC/D;IACJ,CAAC,CAAC;;IAGF2B,aAAa,CAAC,CAAC,GAAG/C,SAAS,CAAC,IAAIJ,WAAW,CAACK,EAAE,CAAC,GAAG,CAAC,GAAG0C,cAAc,CAAC1C,EAAE,CAAC,GAAG,CAAC;IAC5E95G,YAAY,CAACwgB,WAAW,CAACk5F,UAAU,CAAC;IACpChyD,cAAc,CAAClnC,WAAW,CAACm8F,YAAY,CAAC;IACxCZ,eAAe,CAACv7F,WAAW,CAACo8F,aAAa,CAAC,CAAC,CAAC;IAC5C;IACA;;IAEA,IAAIhF,QAAQ,GAAG;MACb9gO,CAAC,EAAE,CAAC;MACJ/F,CAAC,EAAE;IACL,CAAC,CAAC,CAAC;;IAEH6mO,QAAQ,CAACnlI,EAAE,CAAC,GAAGgqI,cAAc,GAAGjnH,OAAO,CAAC/iB,EAAE,CAAC,GAAGgnI,WAAW,CAAChnI,EAAE,CAAC;IAC7DmlI,QAAQ,CAACkC,EAAE,CAAC,GAAGjtO,IAAI,CAACqC,GAAG,CAACuqO,WAAW,CAACK,EAAE,CAAC,EAAE0C,cAAc,CAAC1C,EAAE,CAAC,CAAC,CAAC,CAAC;;IAE9DlC,QAAQ,CAACmC,EAAE,CAAC,GAAGltO,IAAI,CAACq6E,GAAG,CAAC,CAAC,EAAEs1J,cAAc,CAACzC,EAAE,CAAC,GAAG6C,aAAa,CAAC,CAAC,GAAG/C,SAAS,CAAC,CAAC;IAC7EnyD,cAAc,CAACo0D,UAAU,GAAGtmH,OAAO,CAAC/iB,EAAE,CAAC;IAEvC,IAAIgqI,cAAc,EAAE;MAClB,IAAI9lI,SAAS,GAAG;QACd7/F,CAAC,EAAE,CAAC;QACJ/F,CAAC,EAAE;MACL,CAAC;MACD4lG,SAAS,CAAClE,EAAE,CAAC,GAAG5lG,IAAI,CAACqC,GAAG,CAACsmH,OAAO,CAAC/iB,EAAE,CAAC,GAAG+pI,cAAc,CAAC/pI,EAAE,CAAC,GAAGwoI,aAAa,EAAE,CAAC,CAAC;MAC7EtkI,SAAS,CAACmjI,EAAE,CAAC,GAAGlC,QAAQ,CAACkC,EAAE,CAAC;MAC5BpyD,cAAc,CAAC5gF,WAAW,CAAC,IAAIkL,wDAAY,CAAC;QAC1C9gB,KAAK,EAAEylB;MACT,CAAC,CAAC,CAAC,CAAC,CAAC;MACL;;MAEA+wE,cAAc,CAACo0D,UAAU,GAAGnlI,SAAS,CAAClE,EAAE,CAAC;IAC3C,CAAC,MAAM;MACL;MACAspI,eAAe,CAAC/iG,SAAS,CAAC,UAAUvmH,KAAK,EAAE;QACzCA,KAAK,CAAC5F,IAAI,CAAC;UACT6jE,SAAS,EAAE,IAAI;UACfF,MAAM,EAAE;QACV,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ,CAAC,CAAC;;IAGF,IAAIqsJ,QAAQ,GAAG,IAAI,CAACC,YAAY,CAACvF,WAAW,CAAC;IAE7CsF,QAAQ,CAACE,SAAS,IAAI,IAAI,IAAI/qI,yDAAmB,CAACguB,YAAY,EAAE;MAC9DlpH,CAAC,EAAE+lO,QAAQ,CAACG,eAAe,CAAC,CAAC,CAAC;MAC9BjsO,CAAC,EAAE8rO,QAAQ,CAACG,eAAe,CAAC,CAAC;IAC/B,CAAC;IAAE;IACH;IACAP,cAAc,GAAGlF,WAAW,GAAG,IAAI,CAAC;IAEpC,IAAI,CAAC0F,mBAAmB,CAAC1F,WAAW,EAAEsF,QAAQ,CAAC;IAE/C,OAAOjF,QAAQ;EACjB,CAAC;EAED+D,oBAAoB,CAACnyO,SAAS,CAAC6yO,OAAO,GAAG,UAAUrnJ,EAAE,EAAEuiJ,WAAW,EAAEnwM,GAAG,EAAE;IACvE,IAAIyzM,eAAe,GAAG,IAAI,CAACiC,YAAY,CAACvF,WAAW,CAAC,CAACviJ,EAAE,CAAC;IAExD6lJ,eAAe,IAAI,IAAI,IAAIzzM,GAAG,CAAC6hE,cAAc,CAAC;MAC5ChsF,IAAI,EAAE,cAAc;MACpB49N,eAAe,EAAEA,eAAe;MAChCqC,QAAQ,EAAE3F,WAAW,CAACpqO;IACxB,CAAC,CAAC;EACJ,CAAC;EAEDwuO,oBAAoB,CAACnyO,SAAS,CAACyzO,mBAAmB,GAAG,UAAU1F,WAAW,EAAEsF,QAAQ,EAAE;IACpF,IAAId,eAAe,GAAG,IAAI,CAACF,gBAAgB;IAC3C9pI,0DAAW,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,UAAUpiG,IAAI,EAAE;MACpD,IAAI+X,GAAG,GAAG/X,IAAI,GAAG,WAAW;MAC5B,IAAIwtO,OAAO,GAAGN,QAAQ,CAACn1N,GAAG,CAAC,IAAI,IAAI;MACnC,IAAIsO,IAAI,GAAG+lN,eAAe,CAACp9F,WAAW,CAAChvI,IAAI,CAAC;MAE5C,IAAIqmB,IAAI,EAAE;QACRA,IAAI,CAACs6D,QAAQ,CAAC,MAAM,EAAE6sJ,OAAO,GAAG5F,WAAW,CAAC3sO,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,GAAG2sO,WAAW,CAAC3sO,GAAG,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC;QACxHorB,IAAI,CAAC6iF,MAAM,GAAGskI,OAAO,GAAG,SAAS,GAAG,SAAS;MAC/C;IACF,CAAC,CAAC;IACF,IAAIC,QAAQ,GAAGrB,eAAe,CAACp9F,WAAW,CAAC,UAAU,CAAC;IACtD,IAAIw8F,aAAa,GAAG5D,WAAW,CAAC3sO,GAAG,CAAC,eAAe,CAAC;IACpD,IAAImyO,SAAS,GAAGF,QAAQ,CAACE,SAAS;IAClC,IAAI/zF,OAAO,GAAG+zF,SAAS,IAAI,IAAI,GAAGA,SAAS,GAAG,CAAC,GAAG,CAAC;IACnD,IAAIM,KAAK,GAAGR,QAAQ,CAACS,SAAS;IAC9BF,QAAQ,IAAIjC,aAAa,IAAIiC,QAAQ,CAAC9sJ,QAAQ,CAAC,MAAM,EAAEyhB,8DAAe,CAACopI,aAAa,CAAC,GAAGA,aAAa,CAAChpO,OAAO,CAAC,WAAW,EAAE62I,OAAO,IAAI,IAAI,GAAG,EAAE,GAAGA,OAAO,GAAG,EAAE,CAAC,CAAC72I,OAAO,CAAC,SAAS,EAAEkrO,KAAK,IAAI,IAAI,GAAG,EAAE,GAAGA,KAAK,GAAG,EAAE,CAAC,GAAGlC,aAAa,CAAC;MAClOnyF,OAAO,EAAEA,OAAO;MAChBq0F,KAAK,EAAEA;IACT,CAAC,CAAC,CAAC;EACL,CAAC;EACD;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;EAGE1B,oBAAoB,CAACnyO,SAAS,CAACszO,YAAY,GAAG,UAAUvF,WAAW,EAAE;IACnE,IAAIsD,eAAe,GAAGtD,WAAW,CAAC3sO,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAC;IAC9D,IAAIo1H,YAAY,GAAG,IAAI,CAACq3G,eAAe,CAAC,CAAC;IACzC,IAAIkG,iBAAiB,GAAG,IAAI,CAACnwD,eAAe,CAAC0uD,UAAU;IACvD,IAAIjC,SAAS,GAAGtC,WAAW,CAACh3D,SAAS,CAAC,CAAC,CAAC3uJ,KAAK;IAC7C,IAAI6gF,EAAE,GAAGk8F,EAAE,CAACkrC,SAAS,CAAC;IACtB,IAAIrnI,EAAE,GAAGk8F,EAAE,CAACmrC,SAAS,CAAC;IAEtB,IAAI2D,eAAe,GAAG,IAAI,CAACC,oBAAoB,CAAC5C,eAAe,CAAC;IAEhE,IAAIrlN,QAAQ,GAAGwqG,YAAY,CAACxqG,QAAQ,CAAC,CAAC;IACtC,IAAIkoN,UAAU,GAAGloN,QAAQ,CAACgoN,eAAe,CAAC;IAC1C,IAAIG,SAAS,GAAGnoN,QAAQ,CAAC1rB,MAAM;IAC/B,IAAI8zO,MAAM,GAAG,CAACD,SAAS,GAAG,CAAC,GAAG,CAAC;IAC/B,IAAItkN,MAAM,GAAG;MACX2jN,eAAe,EAAE,CAACh9G,YAAY,CAAClpH,CAAC,EAAEkpH,YAAY,CAACjvH,CAAC,CAAC;MACjDusO,SAAS,EAAEM,MAAM;MACjBb,SAAS,EAAEa,MAAM,GAAG,CAAC;MACrBC,iBAAiB,EAAE,IAAI;MACvBC,iBAAiB,EAAE;IACrB,CAAC;IAED,IAAI,CAACJ,UAAU,EAAE;MACf,OAAOrkN,MAAM;IACf;IAEA,IAAI0kN,cAAc,GAAGC,WAAW,CAACN,UAAU,CAAC;IAC5CrkN,MAAM,CAAC2jN,eAAe,CAACnD,SAAS,CAAC,GAAG,CAACkE,cAAc,CAACpyO,CAAC,CAAC,CAAC;IACvD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;IAEA,KAAK,IAAItC,CAAC,GAAGm0O,eAAe,GAAG,CAAC,EAAES,gBAAgB,GAAGF,cAAc,EAAEG,cAAc,GAAGH,cAAc,EAAEI,YAAY,GAAG,IAAI,EAAE90O,CAAC,IAAIs0O,SAAS,EAAE,EAAEt0O,CAAC,EAAE;MAC9I80O,YAAY,GAAGH,WAAW,CAACxoN,QAAQ,CAACnsB,CAAC,CAAC,CAAC;MAEvC;MAAK;MACL,CAAC80O,YAAY,IAAID,cAAc,CAAC/0O,CAAC,GAAG80O,gBAAgB,CAACtyO,CAAC,GAAG4xO,iBAAiB;MAAI;MAC9E;MACAY,YAAY,IAAI,CAACtnD,SAAS,CAACsnD,YAAY,EAAEF,gBAAgB,CAACtyO,CAAC,CAAC,EAAE;QAC5D,IAAIuyO,cAAc,CAAC70O,CAAC,GAAG40O,gBAAgB,CAAC50O,CAAC,EAAE;UACzC40O,gBAAgB,GAAGC,cAAc;QACnC,CAAC,MAAM;UACL;UACAD,gBAAgB,GAAGE,YAAY;QACjC;QAEA,IAAIF,gBAAgB,EAAE;UACpB,IAAI5kN,MAAM,CAACykN,iBAAiB,IAAI,IAAI,EAAE;YACpCzkN,MAAM,CAACykN,iBAAiB,GAAGG,gBAAgB,CAAC50O,CAAC;UAC/C;UAEA,EAAEgwB,MAAM,CAACikN,SAAS;QACpB;MACF;MAEAY,cAAc,GAAGC,YAAY;IAC/B;IAEA,KAAK,IAAI90O,CAAC,GAAGm0O,eAAe,GAAG,CAAC,EAAES,gBAAgB,GAAGF,cAAc,EAAEG,cAAc,GAAGH,cAAc,EAAEI,YAAY,GAAG,IAAI,EAAE90O,CAAC,IAAI,CAAC,CAAC,EAAE,EAAEA,CAAC,EAAE;MACvI80O,YAAY,GAAGH,WAAW,CAACxoN,QAAQ,CAACnsB,CAAC,CAAC,CAAC;MAEvC;MAAK;MACL;MACA,CAAC,CAAC80O,YAAY,IAAI,CAACtnD,SAAS,CAACqnD,cAAc,EAAEC,YAAY,CAACxyO,CAAC,CAAC;MAAK;MACjEsyO,gBAAgB,CAAC50O,CAAC,GAAG60O,cAAc,CAAC70O,CAAC,EAAE;QACrC60O,cAAc,GAAGD,gBAAgB;QAEjC,IAAI5kN,MAAM,CAACwkN,iBAAiB,IAAI,IAAI,EAAE;UACpCxkN,MAAM,CAACwkN,iBAAiB,GAAGI,gBAAgB,CAAC50O,CAAC;QAC/C;QAEA,EAAEgwB,MAAM,CAACikN,SAAS;QAClB,EAAEjkN,MAAM,CAAC0jN,SAAS;MACpB;MAEAkB,gBAAgB,GAAGE,YAAY;IACjC;IAEA,OAAO9kN,MAAM;IAEb,SAAS2kN,WAAWA,CAAC30J,EAAE,EAAE;MACvB,IAAIA,EAAE,EAAE;QACN,IAAI+0J,QAAQ,GAAG/0J,EAAE,CAACw+C,eAAe,CAAC,CAAC;QACnC,IAAI/6C,KAAK,GAAGsxJ,QAAQ,CAAC5rI,EAAE,CAAC,GAAGnpB,EAAE,CAACmpB,EAAE,CAAC;QACjC,OAAO;UACL7mG,CAAC,EAAEmhF,KAAK;UACR3jF,CAAC,EAAE2jF,KAAK,GAAGsxJ,QAAQ,CAAC3rI,EAAE,CAAC;UACvBppG,CAAC,EAAEggF,EAAE,CAACmwJ;QACR,CAAC;MACH;IACF;IAEA,SAAS3iD,SAASA,CAACwnD,QAAQ,EAAEC,QAAQ,EAAE;MACrC,OAAOD,QAAQ,CAACl1O,CAAC,IAAIm1O,QAAQ,IAAID,QAAQ,CAAC1yO,CAAC,IAAI2yO,QAAQ,GAAGf,iBAAiB;IAC7E;EACF,CAAC;EAED5B,oBAAoB,CAACnyO,SAAS,CAACi0O,oBAAoB,GAAG,UAAUc,eAAe,EAAE;IAC/E,IAAI,CAAC,IAAI,CAAC7B,eAAe,EAAE;MACzB,OAAO,CAAC;IACV;IAEA,IAAI9qN,KAAK;IACT,IAAIouG,YAAY,GAAG,IAAI,CAACq3G,eAAe,CAAC,CAAC;IACzC,IAAImH,YAAY;IAChBx+G,YAAY,CAACgZ,SAAS,CAAC,UAAUvmH,KAAK,EAAE4jE,GAAG,EAAE;MAC3C,IAAIooJ,aAAa,GAAGhsN,KAAK,CAAC+mN,iBAAiB,CAAC,CAAC;MAC7C;MACA;MACA;MACA;;MAEA,IAAIgF,YAAY,IAAI,IAAI,IAAIC,aAAa,IAAI,IAAI,EAAE;QACjDD,YAAY,GAAGnoJ,GAAG;MACpB;MAEA,IAAIooJ,aAAa,KAAKF,eAAe,EAAE;QACrC3sN,KAAK,GAAGykE,GAAG;MACb;IACF,CAAC,CAAC;IACF,OAAOzkE,KAAK,IAAI,IAAI,GAAGA,KAAK,GAAG4sN,YAAY;EAC7C,CAAC;EAED7C,oBAAoB,CAAC1+N,IAAI,GAAG,eAAe;EAC3C,OAAO0+N,oBAAoB;AAC7B,CAAC,CAAC3E,sDAAU,CAAC;AAEb,iEAAe2E,oBAAoB;;;;;;;;;;;;;;;;;;ACncnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACyC;AAC+B;AACE;AACnE,SAAStiI,OAAOA,CAACxb,SAAS,EAAE;EACjClb,kDAAG,CAAC+7J,2DAAkB,CAAC;EACvB/7J,kDAAG,CAACg8J,4DAAmB,CAAC;AAC1B;;;;;;;;;;;;;;;;;;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC2C;AACF;AACI;AACW;AACjD,SAAStlI,OAAOA,CAACxb,SAAS,EAAE;EACjCA,SAAS,CAACq2G,sBAAsB,CAAC8gC,uDAAW,CAAC;EAC7Cn3I,SAAS,CAACs2G,qBAAqB,CAAC6iC,sDAAU,CAAC;EAC3Cn5I,SAAS,CAACic,iBAAiB,CAACjc,SAAS,CAAC4b,QAAQ,CAACM,SAAS,CAAC+kI,aAAa,EAAEF,wDAAY,CAAC;EACrF/gJ,SAAS,CAACm4H,wBAAwB,CAAC,QAAQ,EAAE,YAAY;IACvD,OAAO,OAAO;EAChB,CAAC,CAAC;EACF6oB,qEAAmB,CAAChhJ,SAAS,CAAC;AAChC;;;;;;;;;;;;;;;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACyC;AAC+B;AACT;AACF;AACW;AACjE,SAASwb,OAAOA,CAACxb,SAAS,EAAE;EACjClb,kDAAG,CAAC+7J,2DAAkB,CAAC;EACvB7gJ,SAAS,CAACq2G,sBAAsB,CAACymC,iEAAqB,CAAC;EACvD98I,SAAS,CAACs2G,qBAAqB,CAACwnC,gEAAoB,CAAC;EACrDoD,sEAA6B,CAAClhJ,SAAS,CAAC;AAC1C;;;;;;;;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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AACoc,cAAc,CAAC8pK,oEAAmB,EAAEC,sEAAqB,CAAC;EACpEz4L,8DAAI,CAAC04L,yEAAyB,EAAE,UAAUlxE,OAAO,EAAE;IACjDl1G,SAAS,CAACynB,cAAc,CAACznB,SAAS,CAAC4b,QAAQ,CAACC,MAAM,CAACwqK,SAAS,EAAEnxE,OAAO,CAAC;EACxE,CAAC,CAAC;EACFl1G,SAAS,CAACwnB,oBAAoB,CAACD,wDAAY,CAAC;AAC9C;;;;;;;;;;;;;;;;;;AC9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACmD;AACF;AACF;AACxC,SAAS/L,OAAOA,CAACxb,SAAS,EAAE;EACjCA,SAAS,CAACq2G,sBAAsB,CAAC+hE,2DAAe,CAAC;EACjDp4K,SAAS,CAACs2G,qBAAqB,CAAC+jE,0DAAc,CAAC;EAC/CpiD,6DAAa,CAACj4H,SAAS,CAAC;AAC1B;;;;;;;;;;;;;;;;;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACiD;AACF;AACA;AACxC,SAASwb,OAAOA,CAACxb,SAAS,EAAE;EACjCA,SAAS,CAACq2G,sBAAsB,CAACwpE,0DAAc,CAAC;EAChD7/K,SAAS,CAACs2G,qBAAqB,CAACgwE,yDAAa,CAAC;EAC9CruD,6DAAa,CAACj4H,SAAS,CAAC;AAC1B;;;;;;;;;;;;;;;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACmD;AACnD,IAAItS,IAAI,GAAGwmB,0DAAW;AACP,SAASqyK,qBAAqBA,CAAC70K,MAAM,EAAE;EACpD,IAAIwkC,SAAS,GAAGxkC,MAAM,IAAIA,MAAM,CAACwkC,SAAS;EAE1C,IAAI,CAAChiC,6DAAc,CAACgiC,SAAS,CAAC,EAAE;IAC9BA,SAAS,GAAGA,SAAS,GAAG,CAACA,SAAS,CAAC,GAAG,EAAE;EAC1C;EAEAxoD,IAAI,CAACwoD,SAAS,EAAE,UAAU51C,GAAG,EAAE;IAC7B,IAAI,CAACA,GAAG,EAAE;MACR;IACF,CAAC,CAAC;;IAGF,IAAInzF,GAAG,CAACmzF,GAAG,EAAE,WAAW,CAAC,IAAI,CAACnzF,GAAG,CAACmzF,GAAG,EAAE,QAAQ,CAAC,EAAE;MAChDA,GAAG,CAACkgL,MAAM,GAAGlgL,GAAG,CAACkmL,SAAS;MAC1B,OAAOlmL,GAAG,CAACkmL,SAAS;IACtB;IAEA,IAAIhG,MAAM,GAAGlgL,GAAG,CAACkgL,MAAM;IAEvB,IAAIA,MAAM,IAAItsK,6DAAc,CAACssK,MAAM,CAAC,EAAE;MACpC9yL,IAAI,CAAC8yL,MAAM,EAAE,UAAU5mJ,KAAK,EAAE;QAC5B,IAAI1lB,8DAAe,CAAC0lB,KAAK,CAAC,EAAE;UAC1B,IAAIzsH,GAAG,CAACysH,KAAK,EAAE,OAAO,CAAC,IAAI,CAACzsH,GAAG,CAACysH,KAAK,EAAE,KAAK,CAAC,EAAE;YAC7CA,KAAK,CAACvwC,GAAG,GAAGuwC,KAAK,CAAC3qC,KAAK;UACzB;UAEA,IAAI9hF,GAAG,CAACysH,KAAK,EAAE,KAAK,CAAC,IAAI,CAACzsH,GAAG,CAACysH,KAAK,EAAE,KAAK,CAAC,EAAE;YAC3CA,KAAK,CAACvoH,GAAG,GAAGuoH,KAAK,CAAC5+F,GAAG;UACvB;QACF;MACF,CAAC,CAAC;IACJ;EACF,CAAC,CAAC;AACJ;AAEA,SAAS7tB,GAAGA,CAACgc,GAAG,EAAErX,IAAI,EAAE;EACtB,OAAOqX,GAAG,IAAIA,GAAG,CAACvd,cAAc,IAAIud,GAAG,CAACvd,cAAc,CAACkG,IAAI,CAAC;AAC9D;;;;;;;;;;;;;;;;;;;ACnFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACmD;AACc;AACP;AACC;AACpD,IAAIs0Q,yBAAyB,GAAG,CAAC;EACtCK,iBAAiB,EAAE,IAAI;EACvBjgP,KAAK,EAAE,SAAAA,CAAU6wD,WAAW,EAAEzM,OAAO,EAAE;IACrC,IAAI87L,YAAY,GAAG,EAAE;IACrB97L,OAAO,CAACyxB,aAAa,CAAC,WAAW,EAAE,UAAU86B,cAAc,EAAE;MAC3D,IAAIhxC,eAAe,GAAG9O,WAAW,CAAC8O,eAAe;MAEjD,IAAI,CAACgxC,cAAc,CAACqoI,cAAc,CAACnoL,WAAW,CAAC,IAAI8O,eAAe,IAAIA,eAAe,CAACC,KAAK,EAAE;QAC3F;MACF;MAEAsgL,YAAY,CAAC33Q,IAAI,CAAC0qM,6EAAqC,CAACtiE,cAAc,CAACwhI,SAAS,EAAExhI,cAAc,CAACE,aAAa,EAAEnjC,0DAAW,CAACijC,cAAc,CAAC4nE,aAAa,EAAE5nE,cAAc,CAAC,EAAEA,cAAc,CAAC4hI,qBAAqB,CAAC1hL,WAAW,CAACgI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1O,CAAC,CAAC;IACF,OAAOqnL,YAAY;EACrB;AACF,CAAC;AAAE;AACH;EACED,iBAAiB,EAAE,IAAI;EACvBjgP,KAAK,EAAE,SAAAA,CAAU6wD,WAAW,EAAEzM,OAAO,EAAE;IACrC,IAAIx0E,IAAI,GAAGihF,WAAW,CAACgI,OAAO,CAAC,CAAC;IAChC,IAAIwzD,cAAc,GAAG,EAAE;IACvBjoE,OAAO,CAACyxB,aAAa,CAAC,WAAW,EAAE,UAAU86B,cAAc,EAAE;MAC3D,IAAIA,cAAc,CAACqoI,cAAc,CAACnoL,WAAW,CAAC,EAAE;QAC9C,IAAI2wB,UAAU,GAAGmvB,cAAc,CAAC6hI,aAAa,CAAC9kK,0DAAW,CAAC+kK,cAAc,EAAE,IAAI,EAAE5hL,WAAW,EAAE8/C,cAAc,CAAC,CAAC,IAAI;UAC/G2b,KAAK,EAAE,EAAE;UACTG,WAAW,EAAE;QACf,CAAC;QACD,IAAIyB,MAAM,GAAGvd,cAAc,CAAC4hI,qBAAqB,CAAC3iQ,IAAI,CAAC;QAEvD,IAAIs+I,MAAM,IAAI,CAAC,EAAE;UACf;UACA1sC,UAAU,CAACloB,SAAS,GAAG40D,MAAM;UAC7B7B,cAAc,CAAC9jJ,IAAI,CAACi5G,UAAU,CAAC;QACjC;MACF;IACF,CAAC,CAAC,CAAC,CAAC;;IAEJ3wB,WAAW,CAACgI,OAAO,CAAC,CAAC,CAAC4wC,SAAS,CAAC,YAAY,EAAE4iB,cAAc,CAAC;EAC/D;AACF,CAAC,CAAC,CAAC,CAAC;AACJ;AACA;;AAEA,SAASomH,cAAcA,CAAC5hL,WAAW,EAAE8/C,cAAc,EAAExqI,KAAK,EAAE2sQ,UAAU,EAAE;EACtE,IAAI8L,QAAQ,GAAGjuI,cAAc,CAACE,aAAa,CAACiiI,UAAU,CAAC;EACvD,IAAI+G,WAAW,GAAG5nG,mFAAgC,CAAC2sG,QAAQ,CAAC;EAC5D,IAAIwB,YAAY,GAAG;IACjBxkL,KAAK,EAAE6/I,oEAAiB,CAAC5qJ,WAAW,CAACgI,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;EAE3D,CAAC;;EAED,KAAK,IAAI7zF,CAAC,GAAG,CAAC,EAAE+qF,GAAG,GAAG8pL,WAAW,CAACp0Q,MAAM,EAAET,CAAC,GAAG+qF,GAAG,EAAE/qF,CAAC,EAAE,EAAE;IACtD,IAAI4T,IAAI,GAAGihQ,WAAW,CAAC70Q,CAAC,CAAC;IACzB,IAAI+xB,OAAO,GAAG6nP,QAAQ,CAAChmQ,IAAI,KAAK,SAAS,GAAG,mBAAmB,GAAGA,IAAI,CAAC;IACvEme,OAAO,IAAIA,OAAO,CAACyhL,WAAW,CAACryM,KAAK,EAAEmkG,SAAS,EAAEm/B,SAAS,CAAC;EAC7D;EAEA,OAAO22I,YAAY,CAACxkL,KAAK;EAEzB,SAAS0O,SAASA,CAACjnF,GAAG,EAAE;IACtB,OAAO+8P,YAAY,CAAC/8P,GAAG,CAAC;EAC1B;EAEA,SAASomH,SAASA,CAACpmH,GAAG,EAAEld,KAAK,EAAE;IAC7Bi6Q,YAAY,CAAC/8P,GAAG,CAAC,GAAGld,KAAK;EAC3B;AACF;;;;;;;;;;;;;;;;AChHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAIu5Q,mBAAmB,GAAG;EAC/B9mQ,IAAI,EAAE,iBAAiB;EACvB4xF,KAAK,EAAE,mBAAmB;EAC1B;EACA7T,MAAM,EAAE;AACV,CAAC;AACM,IAAIgpL,qBAAqB,GAAG,SAAAA,CAAUpqQ,OAAO,EAAE6uE,OAAO,EAAE;EAC7DA,OAAO,CAACyxB,aAAa,CAAC;IACpBC,QAAQ,EAAE,WAAW;IACrBC,KAAK,EAAExgG;EACT,CAAC,EAAE,UAAU22E,KAAK,EAAE;IAClBA,KAAK,CAACkmL,WAAW,CAAC78P,OAAO,CAAC25H,QAAQ,CAAC;EACrC,CAAC,CAAC;AACJ,CAAC;;;;;;;;;;;;;;;;;;ACvDD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACqD;AACmB;AACiC;AACzG,IAAIsxI,iBAAiB,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AAC9B;AACA;AACA;;AAEA,IAAI9xB,IAAI,GACR;AACA,YAAY;EACV,SAASA,IAAIA,CAAC56J,GAAG,EAAEzK,KAAK,EAAEmb,MAAM,EAAE;IAChC,IAAI,CAACnG,MAAM,GAAG,KAAK;IACnB,IAAI,CAAC+hD,OAAO,GAAG,KAAK;IACpB,IAAI,CAACtsD,GAAG,GAAGA,GAAG;IACd,IAAI,CAACzK,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACo3L,OAAO,GAAGj8K,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;EACjC;EACA;AACF;AACA;;EAGEkqJ,IAAI,CAACvpP,SAAS,CAAC+3G,OAAO,GAAG,UAAUlf,KAAK,EAAE;IACxC,IAAIwG,MAAM,GAAG,IAAI,CAACi8K,OAAO;IACzB,IAAI59L,GAAG,GAAGr6E,IAAI,CAACq6E,GAAG,CAAC2hB,MAAM,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC;IACxC,IAAI35F,GAAG,GAAGrC,IAAI,CAACqC,GAAG,CAAC25F,MAAM,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC;IACxC,OAAOxG,KAAK,IAAInb,GAAG,IAAImb,KAAK,IAAInzF,GAAG;EACrC,CAAC;EACD;AACF;AACA;;EAGE6jP,IAAI,CAACvpP,SAAS,CAACynM,WAAW,GAAG,UAAUh9L,IAAI,EAAE;IAC3C,OAAO,IAAI,CAACy5E,KAAK,CAAC6zB,OAAO,CAACttG,IAAI,CAAC;EACjC,CAAC;EACD;AACF;AACA;;EAGE8+O,IAAI,CAACvpP,SAAS,CAACs/F,SAAS,GAAG,YAAY;IACrC,OAAO,IAAI,CAACg8K,OAAO,CAACz1Q,KAAK,CAAC,CAAC;EAC7B,CAAC;EACD;AACF;AACA;;EAGE0jP,IAAI,CAACvpP,SAAS,CAACy7M,iBAAiB,GAAG,UAAUlsF,UAAU,EAAE;IACvD,OAAOksF,kEAAiB,CAAClsF,UAAU,IAAI,IAAI,CAACrrC,KAAK,CAACob,SAAS,CAAC,CAAC,EAAE,IAAI,CAACg8K,OAAO,CAAC;EAC9E,CAAC;EACD;AACF;AACA;;EAGE/xB,IAAI,CAACvpP,SAAS,CAACmmP,SAAS,GAAG,UAAU7iK,KAAK,EAAEj0D,GAAG,EAAE;IAC/C,IAAIgwE,MAAM,GAAG,IAAI,CAACi8K,OAAO;IACzBj8K,MAAM,CAAC,CAAC,CAAC,GAAG/b,KAAK;IACjB+b,MAAM,CAAC,CAAC,CAAC,GAAGhwE,GAAG;EACjB,CAAC;EACD;AACF;AACA;;EAGEk6N,IAAI,CAACvpP,SAAS,CAAC0rG,WAAW,GAAG,UAAUjhG,IAAI,EAAEuzL,KAAK,EAAE;IAClD,IAAI3+F,MAAM,GAAG,IAAI,CAACi8K,OAAO;IACzB,IAAIp3L,KAAK,GAAG,IAAI,CAACA,KAAK;IACtBz5E,IAAI,GAAGy5E,KAAK,CAACw8C,SAAS,CAACj2H,IAAI,CAAC;IAE5B,IAAI,IAAI,CAACyuF,MAAM,IAAIhV,KAAK,CAACzwE,IAAI,KAAK,SAAS,EAAE;MAC3C4rF,MAAM,GAAGA,MAAM,CAACx5F,KAAK,CAAC,CAAC;MACvB01Q,kBAAkB,CAACl8K,MAAM,EAAEnb,KAAK,CAACmH,KAAK,CAAC,CAAC,CAAC;IAC3C;IAEA,OAAO6iC,0DAAS,CAACzjH,IAAI,EAAE4wQ,iBAAiB,EAAEh8K,MAAM,EAAE2+F,KAAK,CAAC;EAC1D,CAAC;EACD;AACF;AACA;;EAGEurD,IAAI,CAACvpP,SAAS,CAACm9L,WAAW,GAAG,UAAUtkG,KAAK,EAAEmlG,KAAK,EAAE;IACnD,IAAI3+F,MAAM,GAAG,IAAI,CAACi8K,OAAO;IACzB,IAAIp3L,KAAK,GAAG,IAAI,CAACA,KAAK;IAEtB,IAAI,IAAI,CAACgV,MAAM,IAAIhV,KAAK,CAACzwE,IAAI,KAAK,SAAS,EAAE;MAC3C4rF,MAAM,GAAGA,MAAM,CAACx5F,KAAK,CAAC,CAAC;MACvB01Q,kBAAkB,CAACl8K,MAAM,EAAEnb,KAAK,CAACmH,KAAK,CAAC,CAAC,CAAC;IAC3C;IAEA,IAAIzrF,CAAC,GAAGsuH,0DAAS,CAACr1B,KAAK,EAAEwG,MAAM,EAAEg8K,iBAAiB,EAAEr9E,KAAK,CAAC;IAC1D,OAAO,IAAI,CAAC95G,KAAK,CAACA,KAAK,CAACtkF,CAAC,CAAC;EAC5B,CAAC;EACD;AACF;AACA;;EAGE2pP,IAAI,CAACvpP,SAAS,CAAC48E,WAAW,GAAG,UAAUF,KAAK,EAAEshH,KAAK,EAAE;IACnD;IACA;EACF,CAAC;EACD;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EAGEurD,IAAI,CAACvpP,SAAS,CAACymG,cAAc,GAAG,UAAU9R,GAAG,EAAE;IAC7CA,GAAG,GAAGA,GAAG,IAAI,CAAC,CAAC;IACf,IAAIw+B,SAAS,GAAGx+B,GAAG,CAACw+B,SAAS,IAAI,IAAI,CAACqoJ,YAAY,CAAC,CAAC;IACpD,IAAI3rP,MAAM,GAAGqrP,yEAAe,CAAC,IAAI,EAAE/nJ,SAAS,CAAC;IAC7C,IAAIwzH,KAAK,GAAG92N,MAAM,CAAC82N,KAAK;IACxB,IAAI/uD,WAAW,GAAGpvL,6DAAG,CAACm+O,KAAK,EAAE,UAAU80B,OAAO,EAAE;MAC9C,OAAO;QACL5iL,KAAK,EAAE,IAAI,CAAC6S,WAAW,CAAC,IAAI,CAACxnB,KAAK,CAACzwE,IAAI,KAAK,SAAS,GAAG,IAAI,CAACywE,KAAK,CAAC8a,mBAAmB,CAACy8K,OAAO,CAAC,GAAGA,OAAO,CAAC;QAC1Gz0K,SAAS,EAAEy0K;MACb,CAAC;IACH,CAAC,EAAE,IAAI,CAAC;IACR,IAAIC,cAAc,GAAGvoJ,SAAS,CAAC/xH,GAAG,CAAC,gBAAgB,CAAC;IACpDu6Q,oBAAoB,CAAC,IAAI,EAAE/jF,WAAW,EAAE8jF,cAAc,EAAE/mL,GAAG,CAACqpG,KAAK,CAAC;IAClE,OAAOpG,WAAW;EACpB,CAAC;EAED2xD,IAAI,CAACvpP,SAAS,CAACswL,mBAAmB,GAAG,YAAY;IAC/C,IAAI,IAAI,CAACpsG,KAAK,CAACzwE,IAAI,KAAK,SAAS,EAAE;MACjC;MACA,OAAO,EAAE;IACX;IAEA,IAAIy9K,cAAc,GAAG,IAAI,CAACnqG,KAAK,CAAC8E,QAAQ,CAAC,WAAW,CAAC;IACrD,IAAIykC,WAAW,GAAG4gE,cAAc,CAAC9vL,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;;IAErD,IAAI,EAAEkvH,WAAW,GAAG,CAAC,IAAIA,WAAW,GAAG,GAAG,CAAC,EAAE;MAC3CA,WAAW,GAAG,CAAC;IACjB;IAEA,IAAIsrJ,UAAU,GAAG,IAAI,CAAC13L,KAAK,CAAC23L,aAAa,CAACvrJ,WAAW,CAAC;IACtD,IAAI2nE,gBAAgB,GAAGzvL,6DAAG,CAACozQ,UAAU,EAAE,UAAUE,eAAe,EAAE;MAChE,OAAOtzQ,6DAAG,CAACszQ,eAAe,EAAE,UAAU9qF,SAAS,EAAE;QAC/C,OAAO;UACLn4F,KAAK,EAAE,IAAI,CAAC6S,WAAW,CAACslF,SAAS,CAAC;UAClChqF,SAAS,EAAEgqF;QACb,CAAC;MACH,CAAC,EAAE,IAAI,CAAC;IACV,CAAC,EAAE,IAAI,CAAC;IACR,OAAOiH,gBAAgB;EACzB,CAAC;EAEDsxD,IAAI,CAACvpP,SAAS,CAACqoJ,aAAa,GAAG,YAAY;IACzC,OAAO8yH,0EAAgB,CAAC,IAAI,CAAC,CAAC5qF,MAAM;EACtC,CAAC;EAEDg5D,IAAI,CAACvpP,SAAS,CAAC8jH,aAAa,GAAG,YAAY;IACzC,OAAO,IAAI,CAAC/8B,KAAK,CAAC8E,QAAQ,CAAC,WAAW,CAAC;EACzC,CAAC;EACD;AACF;AACA;AACA;AACA;AACA;AACA;;EAGE09J,IAAI,CAACvpP,SAAS,CAACw7Q,YAAY,GAAG,YAAY;IACxC,OAAO,IAAI,CAACz0L,KAAK,CAAC8E,QAAQ,CAAC,UAAU,CAAC;EACxC,CAAC;EACD;AACF;AACA;;EAGE09J,IAAI,CAACvpP,SAAS,CAACszG,YAAY,GAAG,YAAY;IACxC,IAAIi1C,UAAU,GAAG,IAAI,CAAC+yH,OAAO;IAC7B,IAAI/rJ,UAAU,GAAG,IAAI,CAACrrC,KAAK,CAACob,SAAS,CAAC,CAAC;IACvC,IAAI1U,GAAG,GAAG2kC,UAAU,CAAC,CAAC,CAAC,GAAGA,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,CAACr2B,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;;IAEjEtO,GAAG,KAAK,CAAC,KAAKA,GAAG,GAAG,CAAC,CAAC;IACtB,IAAIp2E,IAAI,GAAGnR,IAAI,CAACo6F,GAAG,CAAC8qD,UAAU,CAAC,CAAC,CAAC,GAAGA,UAAU,CAAC,CAAC,CAAC,CAAC;IAClD,OAAOllJ,IAAI,CAACo6F,GAAG,CAACjpF,IAAI,CAAC,GAAGo2E,GAAG;EAC7B,CAAC;EACD;AACF;AACA;AACA;AACA;;EAGE2+J,IAAI,CAACvpP,SAAS,CAACo7Q,yBAAyB,GAAG,YAAY;IACrD,OAAOA,mFAAyB,CAAC,IAAI,CAAC;EACxC,CAAC;EAED,OAAO7xB,IAAI;AACb,CAAC,CAAC,CAAC;AAEH,SAASgyB,kBAAkBA,CAACl8K,MAAM,EAAE08K,KAAK,EAAE;EACzC,IAAIvnQ,IAAI,GAAG6qF,MAAM,CAAC,CAAC,CAAC,GAAGA,MAAM,CAAC,CAAC,CAAC;EAChC,IAAIzU,GAAG,GAAGmxL,KAAK;EACf,IAAIj5G,MAAM,GAAGtuJ,IAAI,GAAGo2E,GAAG,GAAG,CAAC;EAC3ByU,MAAM,CAAC,CAAC,CAAC,IAAIyjE,MAAM;EACnBzjE,MAAM,CAAC,CAAC,CAAC,IAAIyjE,MAAM;AACrB,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAAS64G,oBAAoBA,CAACp1K,IAAI,EAAEqxF,WAAW,EAAE8jF,cAAc,EAAE19E,KAAK,EAAE;EACtE,IAAIg+E,QAAQ,GAAGpkF,WAAW,CAACt3L,MAAM;EAEjC,IAAI,CAACimG,IAAI,CAACrN,MAAM,IAAIwiL,cAAc,IAAI,CAACM,QAAQ,EAAE;IAC/C;EACF;EAEA,IAAIzzH,UAAU,GAAGhiD,IAAI,CAACjH,SAAS,CAAC,CAAC;EACjC,IAAIimF,IAAI;EACR,IAAI02F,QAAQ;EAEZ,IAAID,QAAQ,KAAK,CAAC,EAAE;IAClBpkF,WAAW,CAAC,CAAC,CAAC,CAAC/+F,KAAK,GAAG0vD,UAAU,CAAC,CAAC,CAAC;IACpCg9B,IAAI,GAAGqS,WAAW,CAAC,CAAC,CAAC,GAAG;MACtB/+F,KAAK,EAAE0vD,UAAU,CAAC,CAAC;IACrB,CAAC;EACH,CAAC,MAAM;IACL,IAAI2zH,QAAQ,GAAGtkF,WAAW,CAACokF,QAAQ,GAAG,CAAC,CAAC,CAACh1K,SAAS,GAAG4wF,WAAW,CAAC,CAAC,CAAC,CAAC5wF,SAAS;IAC7E,IAAIm1K,OAAO,GAAG,CAACvkF,WAAW,CAACokF,QAAQ,GAAG,CAAC,CAAC,CAACnjL,KAAK,GAAG++F,WAAW,CAAC,CAAC,CAAC,CAAC/+F,KAAK,IAAIqjL,QAAQ;IACjFn6L,8DAAI,CAAC61G,WAAW,EAAE,UAAUwkF,SAAS,EAAE;MACrCA,SAAS,CAACvjL,KAAK,IAAIsjL,OAAO,GAAG,CAAC;IAChC,CAAC,CAAC;IACF,IAAI5sJ,UAAU,GAAGhpB,IAAI,CAACriB,KAAK,CAACob,SAAS,CAAC,CAAC;IACvC28K,QAAQ,GAAG,CAAC,GAAG1sJ,UAAU,CAAC,CAAC,CAAC,GAAGqoE,WAAW,CAACokF,QAAQ,GAAG,CAAC,CAAC,CAACh1K,SAAS;IAClEu+E,IAAI,GAAG;MACL1sF,KAAK,EAAE++F,WAAW,CAACokF,QAAQ,GAAG,CAAC,CAAC,CAACnjL,KAAK,GAAGsjL,OAAO,GAAGF;IACrD,CAAC;IACDrkF,WAAW,CAACx0L,IAAI,CAACmiL,IAAI,CAAC;EACxB;EAEA,IAAItqC,OAAO,GAAGsN,UAAU,CAAC,CAAC,CAAC,GAAGA,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;;EAE7C,IAAI8zH,UAAU,CAACzkF,WAAW,CAAC,CAAC,CAAC,CAAC/+F,KAAK,EAAE0vD,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE;IACnDy1C,KAAK,GAAGpG,WAAW,CAAC,CAAC,CAAC,CAAC/+F,KAAK,GAAG0vD,UAAU,CAAC,CAAC,CAAC,GAAGqvC,WAAW,CAACvc,KAAK,CAAC,CAAC;EACpE;EAEA,IAAI2iB,KAAK,IAAIq+E,UAAU,CAAC9zH,UAAU,CAAC,CAAC,CAAC,EAAEqvC,WAAW,CAAC,CAAC,CAAC,CAAC/+F,KAAK,CAAC,EAAE;IAC5D++F,WAAW,CAACt2L,OAAO,CAAC;MAClBu3F,KAAK,EAAE0vD,UAAU,CAAC,CAAC;IACrB,CAAC,CAAC;EACJ;EAEA,IAAI8zH,UAAU,CAAC9zH,UAAU,CAAC,CAAC,CAAC,EAAEg9B,IAAI,CAAC1sF,KAAK,CAAC,EAAE;IACzCmlG,KAAK,GAAGzY,IAAI,CAAC1sF,KAAK,GAAG0vD,UAAU,CAAC,CAAC,CAAC,GAAGqvC,WAAW,CAACh2L,GAAG,CAAC,CAAC;EACxD;EAEA,IAAIo8L,KAAK,IAAIq+E,UAAU,CAAC92F,IAAI,CAAC1sF,KAAK,EAAE0vD,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE;IAClDqvC,WAAW,CAACx0L,IAAI,CAAC;MACfy1F,KAAK,EAAE0vD,UAAU,CAAC,CAAC;IACrB,CAAC,CAAC;EACJ;EAEA,SAAS8zH,UAAUA,CAACp6Q,CAAC,EAAE6F,CAAC,EAAE;IACxB;IACA;IACA7F,CAAC,GAAGwtG,sDAAK,CAACxtG,CAAC,CAAC;IACZ6F,CAAC,GAAG2nG,sDAAK,CAAC3nG,CAAC,CAAC;IACZ,OAAOmzI,OAAO,GAAGh5I,CAAC,GAAG6F,CAAC,GAAG7F,CAAC,GAAG6F,CAAC;EAChC;AACF;AAEA,iEAAeyhP,IAAI;;;;;;;;;;;;;;;ACrUnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASnxJ,sBAAsBA,CAAC0J,QAAQ,EAAEruF,IAAI,EAAE;EACrD,OAAOquF,QAAQ,CAACruF,IAAI,KAAKA,IAAI;AAC/B;;;;;;;;;;;;;;;;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACkC;AAClC;AACA;AACA;AACA;;AAEqD;AACA;AACO;AACE;AACb;AACjD,IAAIu/K,gBAAgB,GAAG9+C,sEAAqB;AAE5C,IAAI3Q,IAAI,GACR;AACA,UAAUhuC,MAAM,EAAE;EAChBL,gDAAS,CAACquC,IAAI,EAAEhuC,MAAM,CAAC;EAEvB,SAASguC,IAAIA,CAACp9H,IAAI,EAAE;IAClB,IAAI8H,KAAK,GAAGsnF,MAAM,CAACr1F,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI;IAErC+N,KAAK,CAACwF,IAAI,GAAG,MAAM;IACnBxF,KAAK,CAAC6/E,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC;IAC7B;AACJ;AACA;AACA;AACA;;IAEI7/E,KAAK,CAACsuQ,kBAAkB,GAAG,IAAID,yEAAa,CAAC,CAAC;IAC9C;AACJ;AACA;;IAEIruQ,KAAK,CAACuuQ,iBAAiB,GAAG,IAAIF,yEAAa,CAAC,CAAC;IAC7CruQ,KAAK,CAAC9H,IAAI,GAAGA,IAAI;IACjB,OAAO8H,KAAK;EACd;EAEAs1H,IAAI,CAACvjI,SAAS,CAACmkI,eAAe,GAAG,UAAU72H,CAAC,EAAE/F,CAAC,EAAE6jB,KAAK,EAAEE,MAAM,EAAE;IAC9D,IAAI,CAAComH,KAAK,GAAG,IAAIK,wEAAY,CAACzkI,CAAC,EAAE/F,CAAC,EAAE6jB,KAAK,EAAEE,MAAM,CAAC;IAClD,OAAO,IAAI,CAAComH,KAAK;EACnB,CAAC;EACD;AACF;AACA;;EAGEnO,IAAI,CAACvjI,SAAS,CAACq+H,eAAe,GAAG,YAAY;IAC3C,OAAO,IAAI,CAACqT,KAAK;EACnB,CAAC;EAEDnO,IAAI,CAACvjI,SAAS,CAACokI,WAAW,GAAG,UAAU92H,CAAC,EAAE/F,CAAC,EAAE6jB,KAAK,EAAEE,MAAM,EAAE;IAC1D,IAAI,CAACmxP,YAAY,CAACnvQ,CAAC,EAAE/F,CAAC,EAAE6jB,KAAK,EAAEE,MAAM,CAAC;IAEtC,IAAI,CAACoxP,SAAS,GAAG,IAAI3qI,wEAAY,CAACzkI,CAAC,EAAE/F,CAAC,EAAE6jB,KAAK,EAAEE,MAAM,CAAC;EACxD,CAAC;EACD;AACF;AACA;;EAGEi4G,IAAI,CAACvjI,SAAS,CAACy8Q,YAAY,GAAG,UAAUnvQ,CAAC,EAAE/F,CAAC,EAAE6jB,KAAK,EAAEE,MAAM,EAAE;IAC3D,IAAI2qE,IAAI,GAAG,IAAI,CAACooC,eAAe,CAAC,CAAC;IACjC,IAAIs+I,YAAY,GAAG,IAAI,CAACH,iBAAiB;IACzCG,YAAY,CAAClyP,SAAS,GAAGwrE,IAAI,CAAC2mL,kBAAkB,CAAC,IAAI7qI,wEAAY,CAACzkI,CAAC,EAAE/F,CAAC,EAAE6jB,KAAK,EAAEE,MAAM,CAAC,CAAC;IACvF,IAAIuxP,SAAS,GAAGF,YAAY,CAACn7L,MAAM;IACnCm7L,YAAY,CAACn7L,MAAM,GAAG,IAAI;IAC1Bm7L,YAAY,CAACpyJ,kBAAkB,CAAC,CAAC;IACjCoyJ,YAAY,CAACn7L,MAAM,GAAGq7L,SAAS;IAE/B,IAAI,CAACC,gBAAgB,CAAC,CAAC;EACzB,CAAC;EACD;AACF;AACA;;EAGEv5I,IAAI,CAACvjI,SAAS,CAACw9E,SAAS,GAAG,UAAUu/L,WAAW,EAAEn/O,GAAG,EAAE;IACrD,IAAI,CAACm/O,WAAW,EAAE;MAChB;IACF;IAEA,IAAI,CAACC,OAAO,GAAG,CAACr0K,6DAAY,CAACo0K,WAAW,CAAC,CAAC,CAAC,EAAEn/O,GAAG,CAAC+rE,QAAQ,CAAC,CAAC,CAAC,EAAEhB,6DAAY,CAACo0K,WAAW,CAAC,CAAC,CAAC,EAAEn/O,GAAG,CAACgsE,SAAS,CAAC,CAAC,CAAC,CAAC;IAE5G,IAAI,CAACqzK,oBAAoB,CAAC,CAAC;EAC7B,CAAC;EAED15I,IAAI,CAACvjI,SAAS,CAACo+E,OAAO,GAAG,UAAUjB,IAAI,EAAE;IACvCA,IAAI,GAAGA,IAAI,IAAI,CAAC;IAChB,IAAIL,SAAS,GAAG,IAAI,CAACA,SAAS;IAE9B,IAAIA,SAAS,EAAE;MACb,IAAIA,SAAS,CAACp3E,GAAG,IAAI,IAAI,EAAE;QACzBy3E,IAAI,GAAG95E,IAAI,CAACq6E,GAAG,CAACZ,SAAS,CAACp3E,GAAG,EAAEy3E,IAAI,CAAC;MACtC;MAEA,IAAIL,SAAS,CAACY,GAAG,IAAI,IAAI,EAAE;QACzBP,IAAI,GAAG95E,IAAI,CAACqC,GAAG,CAACo3E,SAAS,CAACY,GAAG,EAAEP,IAAI,CAAC;MACtC;IACF;IAEA,IAAI,CAAC+/L,KAAK,GAAG//L,IAAI;IAEjB,IAAI,CAAC8/L,oBAAoB,CAAC,CAAC;EAC7B,CAAC;EACD;AACF;AACA;;EAGE15I,IAAI,CAACvjI,SAAS,CAACm9Q,gBAAgB,GAAG,YAAY;IAC5C;IACA,IAAIC,OAAO,GAAG,IAAI,CAAC/+I,eAAe,CAAC,CAAC;IACpC,IAAIvnG,EAAE,GAAGsmP,OAAO,CAAC9vQ,CAAC,GAAG8vQ,OAAO,CAAChyP,KAAK,GAAG,CAAC;IACtC,IAAI2L,EAAE,GAAGqmP,OAAO,CAAC71Q,CAAC,GAAG61Q,OAAO,CAAC9xP,MAAM,GAAG,CAAC;IACvC,OAAO,CAACwL,EAAE,EAAEC,EAAE,CAAC;EACjB,CAAC;EAEDwsG,IAAI,CAACvjI,SAAS,CAACk9E,SAAS,GAAG,YAAY;IACrC,OAAO,IAAI,CAAC8/L,OAAO,IAAI,IAAI,CAACG,gBAAgB,CAAC,CAAC;EAChD,CAAC;EAED55I,IAAI,CAACvjI,SAAS,CAACg9E,OAAO,GAAG,YAAY;IACnC,OAAO,IAAI,CAACkgM,KAAK,IAAI,CAAC;EACxB,CAAC;EAED35I,IAAI,CAACvjI,SAAS,CAACsqH,gBAAgB,GAAG,YAAY;IAC5C,OAAO,IAAI,CAACiyJ,kBAAkB,CAAC7kF,iBAAiB,CAAC,CAAC;EACpD,CAAC;EACD;AACF;AACA;;EAGEn0D,IAAI,CAACvjI,SAAS,CAACi9Q,oBAAoB,GAAG,YAAY;IAChD;IACA,IAAII,kBAAkB,GAAG,IAAI,CAACb,iBAAiB,CAAC9kF,iBAAiB,CAAC,CAAC;IAEnE,IAAI5rD,aAAa,GAAG,IAAI,CAACywI,kBAAkB;IAC3C,IAAIe,aAAa,GAAG,IAAI,CAACH,gBAAgB,CAAC,CAAC;IAC3C,IAAIlgM,MAAM,GAAG,IAAI,CAACC,SAAS,CAAC,CAAC;IAC7B,IAAIC,IAAI,GAAG,IAAI,CAACH,OAAO,CAAC,CAAC;IACzBC,MAAM,GAAGi3D,sEAAqB,CAAC,EAAE,EAAEj3D,MAAM,EAAEogM,kBAAkB,CAAC;IAC9DC,aAAa,GAAGppI,sEAAqB,CAAC,EAAE,EAAEopI,aAAa,EAAED,kBAAkB,CAAC;IAC5EvxI,aAAa,CAAC9tD,OAAO,GAAGf,MAAM,CAAC,CAAC,CAAC;IACjC6uD,aAAa,CAAC5tD,OAAO,GAAGjB,MAAM,CAAC,CAAC,CAAC;IACjC6uD,aAAa,CAACx+H,CAAC,GAAGgwQ,aAAa,CAAC,CAAC,CAAC,GAAGrgM,MAAM,CAAC,CAAC,CAAC;IAC9C6uD,aAAa,CAACvkI,CAAC,GAAG+1Q,aAAa,CAAC,CAAC,CAAC,GAAGrgM,MAAM,CAAC,CAAC,CAAC;IAC9C6uD,aAAa,CAACjuD,MAAM,GAAGiuD,aAAa,CAAChuD,MAAM,GAAGX,IAAI;IAElD,IAAI,CAAC2/L,gBAAgB,CAAC,CAAC;EACzB,CAAC;EACD;AACF;AACA;AACA;;EAGEv5I,IAAI,CAACvjI,SAAS,CAAC88Q,gBAAgB,GAAG,YAAY;IAC5C,IAAIS,iBAAiB,GAAG,IAAI,CAAChB,kBAAkB;IAC/C,IAAIiB,gBAAgB,GAAG,IAAI,CAAChB,iBAAiB;IAC7CgB,gBAAgB,CAACh8L,MAAM,GAAG+7L,iBAAiB;IAC3CA,iBAAiB,CAACp/L,eAAe,CAAC,CAAC;IACnCq/L,gBAAgB,CAACr/L,eAAe,CAAC,CAAC;IAClCwrC,4DAAW,CAAC,IAAI,CAACl/F,SAAS,KAAK,IAAI,CAACA,SAAS,GAAG,EAAE,CAAC,EAAE+yP,gBAAgB,CAAC/yP,SAAS,IAAIk/F,8DAAa,CAAC,CAAC,CAAC;IACnG,IAAI,CAAC8zJ,aAAa,GAAGD,gBAAgB,CAAC9lF,iBAAiB,CAAC,CAAC;IACzD,IAAI,CAACgmF,YAAY,GAAG,IAAI,CAACA,YAAY,IAAI,EAAE;IAC3C/zJ,8DAAa,CAAC,IAAI,CAAC+zJ,YAAY,EAAE,IAAI,CAACjzP,SAAS,CAAC;IAChD,IAAI,CAAC8/F,kBAAkB,CAAC,CAAC;EAC3B,CAAC;EAEDgZ,IAAI,CAACvjI,SAAS,CAAC6hO,gBAAgB,GAAG,YAAY;IAC5C,IAAI27C,gBAAgB,GAAG,IAAI,CAAChB,iBAAiB;IAC7C,IAAIe,iBAAiB,GAAG,IAAI,CAAChB,kBAAkB,CAAC,CAAC;IACjD;IACA;;IAEA,IAAIqB,kBAAkB,GAAG,IAAItB,yEAAa,CAAC,CAAC;IAC5CsB,kBAAkB,CAACnzP,SAAS,GAAG8yP,iBAAiB,CAAC9yP,SAAS;IAC1DmzP,kBAAkB,CAACrzJ,kBAAkB,CAAC,CAAC;IACvC,OAAO;MACLqR,IAAI,EAAE;QACJtuH,CAAC,EAAEswQ,kBAAkB,CAACtwQ,CAAC;QACvB/F,CAAC,EAAEq2Q,kBAAkB,CAACr2Q,CAAC;QACvBs2E,MAAM,EAAE+/L,kBAAkB,CAAC//L,MAAM;QACjCC,MAAM,EAAE8/L,kBAAkB,CAAC9/L;MAC7B,CAAC;MACDikJ,GAAG,EAAE;QACHz0N,CAAC,EAAEkwQ,gBAAgB,CAAClwQ,CAAC;QACrB/F,CAAC,EAAEi2Q,gBAAgB,CAACj2Q,CAAC;QACrBs2E,MAAM,EAAE2/L,gBAAgB,CAAC3/L,MAAM;QAC/BC,MAAM,EAAE0/L,gBAAgB,CAAC1/L;MAC3B;IACF,CAAC;EACH,CAAC;EAEDylD,IAAI,CAACvjI,SAAS,CAACmuH,WAAW,GAAG,YAAY;IACvC,OAAO,IAAI,CAACuuJ,SAAS;EACvB,CAAC;EACD;AACF;AACA;;EAGEn5I,IAAI,CAACvjI,SAAS,CAAC69Q,oBAAoB,GAAG,YAAY;IAChD,IAAI5nL,IAAI,GAAG,IAAI,CAACooC,eAAe,CAAC,CAAC,CAACpzC,KAAK,CAAC,CAAC;IACzCgL,IAAI,CAACqoC,cAAc,CAAC,IAAI,CAAC7zG,SAAS,CAAC;IACnC,OAAOwrE,IAAI;EACb,CAAC;EACD;AACF;AACA;;EAGEstC,IAAI,CAACvjI,SAAS,CAACq9E,WAAW,GAAG,UAAU5yE,IAAI,EAAEqzQ,MAAM,EAAEjpH,GAAG,EAAE;IACxD,IAAIpqI,SAAS,GAAGqzP,MAAM,GAAG,IAAI,CAACL,aAAa,GAAG,IAAI,CAAChzP,SAAS;IAC5DoqI,GAAG,GAAGA,GAAG,IAAI,EAAE;IACf,OAAOpqI,SAAS,GAAGuoK,gBAAgB,CAACn+B,GAAG,EAAEpqJ,IAAI,EAAEggB,SAAS,CAAC,GAAGypH,4DAAW,CAAC2gB,GAAG,EAAEpqJ,IAAI,CAAC;EACpF,CAAC;EACD;AACF;AACA;;EAGE84H,IAAI,CAACvjI,SAAS,CAAC48E,WAAW,GAAG,UAAUF,KAAK,EAAE;IAC5C,IAAIghM,YAAY,GAAG,IAAI,CAACA,YAAY;IACpC,OAAOA,YAAY,GAAG1qF,gBAAgB,CAAC,EAAE,EAAEt2G,KAAK,EAAEghM,YAAY,CAAC,GAAG,CAAChhM,KAAK,CAAC,CAAC,CAAC,EAAEA,KAAK,CAAC,CAAC,CAAC,CAAC;EACxF,CAAC;EAED6mD,IAAI,CAACvjI,SAAS,CAAC+9Q,cAAc,GAAG,UAAU9+L,OAAO,EAAE6U,MAAM,EAAE9yF,KAAK,EAAE;IAChE,IAAI8gG,QAAQ,GAAGk8K,WAAW,CAAClqL,MAAM,CAAC;IAClC,OAAOgO,QAAQ,KAAK,IAAI,GAAGA,QAAQ,CAACzkB,WAAW,CAACr8E,KAAK,CAAC,GAAG,IAAI;EAC/D,CAAC;EAEDuiI,IAAI,CAACvjI,SAAS,CAACi+Q,gBAAgB,GAAG,UAAUh/L,OAAO,EAAE6U,MAAM,EAAEusH,KAAK,EAAE;IAClE,IAAIv+G,QAAQ,GAAGk8K,WAAW,CAAClqL,MAAM,CAAC;IAClC,OAAOgO,QAAQ,KAAK,IAAI,GAAGA,QAAQ,CAACllB,WAAW,CAACyjI,KAAK,CAAC,GAAG,IAAI;EAC/D,CAAC;EACD;AACF;AACA;;EAGE98E,IAAI,CAACvjI,SAAS,CAAC4/J,YAAY,GAAG,UAAUljF,KAAK,EAAE;IAC7C,OAAO,IAAI,CAACmhM,oBAAoB,CAAC,CAAC,CAAC9lK,OAAO,CAACr7B,KAAK,CAAC,CAAC,CAAC,EAAEA,KAAK,CAAC,CAAC,CAAC,CAAC;EAChE,CAAC;EAED6mD,IAAI,CAACz1C,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC;EAC5B,OAAOy1C,IAAI;AACb,CAAC,CAAC+4I,yEAAa,CAAC;AAEhB,SAAS0B,WAAWA,CAAClqL,MAAM,EAAE;EAC3B,IAAIpI,WAAW,GAAGoI,MAAM,CAACpI,WAAW;EACpC,OAAOA,WAAW,GAAGA,WAAW,CAACgP,gBAAgB,GAAG,IAAI,CAAC,CAAC;AAC5D;;AAEA,iEAAe6oC,IAAI;;;;;;;;;;;;;;;;;;;;AC3SnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC4D;AACX;AACA;AACX;AAC6B;AACnE,IAAI+6I,OAAO,GAAGj7Q,IAAI,CAACk7Q,GAAG;AACf,SAASC,eAAeA,CAACt6L,KAAK,EAAE6c,SAAS,EAAE09K,YAAY,EAAE;EAC9D,IAAIC,kBAAkB,GAAG37B,oEAAuB,CAAC,CAAC;EAClD;EACA;EACA;;EAEA,IAAI47B,YAAY,GAAGD,kBAAkB,CAACx4B,QAAQ,CAAChmP,IAAI,CAACu+Q,YAAY,CAAC;EACjE,IAAIG,iBAAiB,GAAGF,kBAAkB,CAACx4B,QAAQ,CAAChmP,IAAI,CAACu+Q,YAAY,EAAE,IAAI,CAAC;EAC5E,IAAII,kBAAkB,GAAGF,YAAY,CAACr+Q,MAAM,GAAG,CAAC;EAChD,IAAIw+Q,eAAe,GAAGJ,kBAAkB,CAACK,WAAW,CAAC7+Q,IAAI,CAACu+Q,YAAY,CAAC;EACvE,IAAIO,WAAW,GAAGb,8DAAc,CAACj6L,KAAK,EAAE6c,SAAS,CAAC;EAClD,IAAIk+K,SAAS,GAAGD,WAAW,CAAC3/K,MAAM;EAClC,IAAI6/K,UAAU,GAAGF,WAAW,CAACG,MAAM;EACnC,IAAIC,UAAU,GAAGJ,WAAW,CAACK,MAAM;EAEnC,IAAIn7L,KAAK,CAACzwE,IAAI,KAAK,KAAK,EAAE;IACxB,IAAI6rQ,OAAO,GAAGhB,OAAO,CAACp6L,KAAK,CAACyvB,IAAI,CAAC;IACjCsrK,SAAS,GAAG,CAACX,OAAO,CAACW,SAAS,CAAC,CAAC,CAAC,CAAC,GAAGK,OAAO,EAAEhB,OAAO,CAACW,SAAS,CAAC,CAAC,CAAC,CAAC,GAAGK,OAAO,CAAC;EAChF;EAEAp7L,KAAK,CAACiiK,SAAS,CAAC84B,SAAS,CAAC,CAAC,CAAC,EAAEA,SAAS,CAAC,CAAC,CAAC,CAAC;EAC3C/6L,KAAK,CAACq7L,cAAc,CAAC;IACnBjvJ,WAAW,EAAEuuJ,kBAAkB;IAC/BM,MAAM,EAAED,UAAU;IAClBG,MAAM,EAAED;EACV,CAAC,CAAC;EACF,IAAI//K,MAAM,GAAGq/K,kBAAkB,CAACp/K,SAAS,CAACp/F,IAAI,CAACgkF,KAAK,CAAC,CAAC,CAAC;EACvD;;EAEA,IAAIg7L,UAAU,EAAE;IACdD,SAAS,CAAC,CAAC,CAAC,GAAG5/K,MAAM,CAAC,CAAC,CAAC;EAC1B;EAEA,IAAI+/K,UAAU,EAAE;IACdH,SAAS,CAAC,CAAC,CAAC,GAAG5/K,MAAM,CAAC,CAAC,CAAC;EAC1B;EAEA,IAAIygC,QAAQ,GAAG4+I,kBAAkB,CAACK,WAAW,CAAC7+Q,IAAI,CAACgkF,KAAK,CAAC;EACzD,IAAIxG,GAAG,GAAGuhM,SAAS,CAAC,CAAC,CAAC;EACtB,IAAIv5Q,GAAG,GAAGu5Q,SAAS,CAAC,CAAC,CAAC;EAEtB,IAAIC,UAAU,IAAIE,UAAU,EAAE;IAC5B;IACAt/I,QAAQ,GAAG,CAACp6H,GAAG,GAAGg4E,GAAG,IAAImhM,kBAAkB;EAC7C,CAAC,MAAM,IAAIK,UAAU,EAAE;IACrBx5Q,GAAG,GAAGu5Q,SAAS,CAAC,CAAC,CAAC,GAAGn/I,QAAQ,GAAG++I,kBAAkB,CAAC,CAAC;;IAEpD,OAAOn5Q,GAAG,GAAGu5Q,SAAS,CAAC,CAAC,CAAC,IAAIp1L,QAAQ,CAACnkF,GAAG,CAAC,IAAImkF,QAAQ,CAACo1L,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;MACpEn/I,QAAQ,GAAGs+I,kEAAgB,CAACt+I,QAAQ,CAAC;MACrCp6H,GAAG,GAAGu5Q,SAAS,CAAC,CAAC,CAAC,GAAGn/I,QAAQ,GAAG++I,kBAAkB;IACpD;EACF,CAAC,MAAM,IAAIO,UAAU,EAAE;IACrB;IACA1hM,GAAG,GAAGuhM,SAAS,CAAC,CAAC,CAAC,GAAGn/I,QAAQ,GAAG++I,kBAAkB;IAElD,OAAOnhM,GAAG,GAAGuhM,SAAS,CAAC,CAAC,CAAC,IAAIp1L,QAAQ,CAACnM,GAAG,CAAC,IAAImM,QAAQ,CAACo1L,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;MACpEn/I,QAAQ,GAAGs+I,kEAAgB,CAACt+I,QAAQ,CAAC;MACrCpiD,GAAG,GAAGuhM,SAAS,CAAC,CAAC,CAAC,GAAGn/I,QAAQ,GAAG++I,kBAAkB;IACpD;EACF,CAAC,MAAM;IACL,IAAIW,gBAAgB,GAAGt7L,KAAK,CAACgiK,QAAQ,CAAC,CAAC,CAAC5lP,MAAM,GAAG,CAAC;IAElD,IAAIk/Q,gBAAgB,GAAGX,kBAAkB,EAAE;MACzC/+I,QAAQ,GAAGs+I,kEAAgB,CAACt+I,QAAQ,CAAC;IACvC;IAEA,IAAIqK,KAAK,GAAGrK,QAAQ,GAAG++I,kBAAkB;IACzCn5Q,GAAG,GAAGrC,IAAI,CAACkrB,IAAI,CAAC0wP,SAAS,CAAC,CAAC,CAAC,GAAGn/I,QAAQ,CAAC,GAAGA,QAAQ;IACnDpiD,GAAG,GAAG+xB,sDAAK,CAAC/pG,GAAG,GAAGykI,KAAK,CAAC,CAAC,CAAC;;IAE1B,IAAIzsD,GAAG,GAAG,CAAC,IAAIuhM,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;MAChCvhM,GAAG,GAAG,CAAC;MACPh4E,GAAG,GAAG+pG,sDAAK,CAAC06B,KAAK,CAAC;IACpB,CAAC,MAAM,IAAIzkI,GAAG,GAAG,CAAC,IAAIu5Q,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;MACvCv5Q,GAAG,GAAG,CAAC;MACPg4E,GAAG,GAAG,CAAC+xB,sDAAK,CAAC06B,KAAK,CAAC;IACrB;EACF,CAAC,CAAC;;EAGF,IAAIs1I,EAAE,GAAG,CAACd,YAAY,CAAC,CAAC,CAAC,CAAC39Q,KAAK,GAAG49Q,iBAAiB,CAAC,CAAC,CAAC,CAAC59Q,KAAK,IAAI89Q,eAAe;EAC/E,IAAIY,EAAE,GAAG,CAACf,YAAY,CAACE,kBAAkB,CAAC,CAAC79Q,KAAK,GAAG49Q,iBAAiB,CAACC,kBAAkB,CAAC,CAAC79Q,KAAK,IAAI89Q,eAAe,CAAC,CAAC;;EAEnHJ,kBAAkB,CAACv4B,SAAS,CAACjmP,IAAI,CAACgkF,KAAK,EAAExG,GAAG,GAAGoiD,QAAQ,GAAG2/I,EAAE,EAAE/5Q,GAAG,GAAGo6H,QAAQ,GAAG4/I,EAAE,CAAC;EAClFhB,kBAAkB,CAAClmQ,WAAW,CAACtY,IAAI,CAACgkF,KAAK,EAAE47C,QAAQ,CAAC;EAEpD,IAAI2/I,EAAE,IAAIC,EAAE,EAAE;IACZhB,kBAAkB,CAACiB,aAAa,CAACz/Q,IAAI,CAACgkF,KAAK,EAAExG,GAAG,GAAGoiD,QAAQ,EAAEp6H,GAAG,GAAGo6H,QAAQ,CAAC;EAC9E;EAEA,IAAI79G,IAAqC,EAAE;IACzC,IAAI0kO,KAAK,GAAG+3B,kBAAkB,CAACx4B,QAAQ,CAAChmP,IAAI,CAACgkF,KAAK,CAAC;IAEnD,IAAIyiK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC03B,6DAAW,CAACv+I,QAAQ,CAAC,IAAIo+I,iEAAgB,CAACv3B,KAAK,CAAC,CAAC,CAAC,CAAC3lP,KAAK,CAAC,GAAGk9Q,iEAAgB,CAACp+I,QAAQ,CAAC,CAAC,EAAE;MACzGlqH,kDAAI;MAAE;MACN,8CAA8C,GAAGmrF,SAAS,CAAC3/F,GAAG,CAAC,KAAK,CAAC,GAAG,SAAS,GAAG2/F,SAAS,CAAC3/F,GAAG,CAAC,KAAK,CAAC,GAAG,uBAAuB,CAAC;IACrI;EACF;AACF;;;;;;;;;;;;;;;AClJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAIw+Q,UAAU,GAAG;EACtB5+Q,KAAK,EAAE,CAAC;EACR65H,QAAQ,EAAE,CAAC;EACXg6E,IAAI,EAAE,CAAC;EACP0pE,GAAG,EAAE;AACP,CAAC;;;;;;;;;;;;;;;;AC/CD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACmD;AACnD,IAAInoL,aAAa,GAAG;EAClBi1B,IAAI,EAAE,IAAI;EACV;EACA39G,CAAC,EAAE,CAAC;EACJ;EACAutI,OAAO,EAAE,KAAK;EACd;EACA90I,IAAI,EAAE,EAAE;EACR;EACAsvL,YAAY,EAAE,KAAK;EACnB;EACAoqF,UAAU,EAAE,IAAI;EAChBC,YAAY,EAAE;IACZ5pF,QAAQ,EAAE,IAAI;IACdD,QAAQ,EAAE,KAAK;IACf8pF,WAAW,EAAE;EACf,CAAC;EACD;EACAC,aAAa,EAAE,CAAC,CAAC;EACjB;EACAC,OAAO,EAAE,EAAE;EACX;EACAj5L,MAAM,EAAE,KAAK;EACb;EACAuqG,YAAY,EAAE,KAAK;EACnBjuC,OAAO,EAAE;IACPj4B,IAAI,EAAE;EACR,CAAC;EACD2tE,WAAW,EAAE,CAAC,CAAC;EACfzoE,QAAQ,EAAE;IACRlF,IAAI,EAAE,IAAI;IACV60J,MAAM,EAAE,IAAI;IACZC,eAAe,EAAE,IAAI;IACrB/zJ,SAAS,EAAE;MACT31B,KAAK,EAAE,SAAS;MAChBrrE,KAAK,EAAE,CAAC;MACR3X,IAAI,EAAE;IACR,CAAC;IACD;IACAka,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;IACxBg6E,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE;EACrB,CAAC;EACDgpB,QAAQ,EAAE;IACRtF,IAAI,EAAE,IAAI;IACV;IACAxnB,MAAM,EAAE,KAAK;IACb;IACAvjG,MAAM,EAAE,CAAC;IACT8rH,SAAS,EAAE;MACThhG,KAAK,EAAE;IACT;EACF,CAAC;EACDwlG,SAAS,EAAE;IACTvF,IAAI,EAAE,IAAI;IACV;IACAxnB,MAAM,EAAE,KAAK;IACbt7E,MAAM,EAAE,CAAC;IACT;IACAkuK,YAAY,EAAE,IAAI;IAClB;IACAC,YAAY,EAAE,IAAI;IAClB5zB,MAAM,EAAE,CAAC;IACT;IACA9qI,QAAQ,EAAE;EACZ,CAAC;EACDy4F,SAAS,EAAE;IACTpF,IAAI,EAAE,IAAI;IACVe,SAAS,EAAE;MACT31B,KAAK,EAAE,CAAC,SAAS,CAAC;MAClBrrE,KAAK,EAAE,CAAC;MACR3X,IAAI,EAAE;IACR;EACF,CAAC;EACD8+K,SAAS,EAAE;IACTlnE,IAAI,EAAE,KAAK;IACXkzE,SAAS,EAAE;MACT9nG,KAAK,EAAE,CAAC,uBAAuB,EAAE,uBAAuB;IAC1D;EACF;AACF,CAAC;AACD,IAAIuxD,YAAY,GAAGz/C,2DAAY,CAAC;EAC9B;EACAssE,WAAW,EAAE,IAAI;EACjB;EACAurG,aAAa,EAAE,IAAI;EACnB;EACA;EACA;EACA3vJ,SAAS,EAAE;IACTpF,IAAI,EAAE;EACR,CAAC;EACDsF,QAAQ,EAAE;IACR;IACA+qJ,cAAc,EAAE,KAAK;IACrB57I,QAAQ,EAAE;EACZ,CAAC;EACDlP,SAAS,EAAE;IACTkP,QAAQ,EAAE;EACZ;AACF,CAAC,EAAE1pC,aAAa,CAAC;AACjB,IAAIoV,SAAS,GAAGjD,2DAAY,CAAC;EAC3BssE,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;EACnBtkD,QAAQ,EAAE;IACR;IACAlF,IAAI,EAAE;EACR,CAAC;EACDsF,QAAQ,EAAE;IACR;IACAtF,IAAI,EAAE;EACR,CAAC;EACD;EACA;EACAiF,WAAW,EAAE,CAAC;EACd0gE,SAAS,EAAE;IACT;IACA3lE,IAAI,EAAE,KAAK;IACX;IACAiF,WAAW,EAAE,CAAC;IACd;IACAhwH,MAAM,EAAE,CAAC;IACT;IACA8rH,SAAS,EAAE,CAAC;IAAA;EAEd,CAAC;EACDimE,cAAc,EAAE;IACdhnE,IAAI,EAAE,KAAK;IACXe,SAAS,EAAE;MACT31B,KAAK,EAAE,SAAS;MAChBrrE,KAAK,EAAE;IACT;EACF;AACF,CAAC,EAAEgrE,aAAa,CAAC;AACjB,IAAIiqL,QAAQ,GAAG93K,2DAAY,CAAC;EAC1B+nB,WAAW,EAAE,CAAC;EACdM,SAAS,EAAE;IACT;IACA6lE,YAAY,EAAE,KAAK;IACnBC,YAAY,EAAE,KAAK;IACnBqmE,IAAI,EAAE;MACJujB,OAAO,EAAE;QACPjnP,UAAU,EAAE;MACd;IACF;EACF,CAAC;EACDo3F,SAAS,EAAE;IACTpF,IAAI,EAAE;EACR;AACF,CAAC,EAAE7f,SAAS,CAAC;AACb,IAAI+0K,OAAO,GAAGh4K,8DAAe,CAAC;EAC5B+2K,OAAO,EAAE;AACX,CAAC,EAAE9zK,SAAS,CAAC;AACb,iEAAe;EACbqvB,QAAQ,EAAEmtB,YAAY;EACtBhnJ,KAAK,EAAEwqG,SAAS;EAChBqpG,IAAI,EAAEwrE,QAAQ;EACd9B,GAAG,EAAEgC;AACP,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvMD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACmD;AACJ;AACE;AACX;AACgE;AAC1C;AACnB;AACF;AACiC;AACL;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASpC,cAAcA,CAACj6L,KAAK,EAAE6C,KAAK,EAAE;EAC3C,IAAI85L,SAAS,GAAG38L,KAAK,CAACzwE,IAAI;EAC1B,IAAIqoM,eAAe,GAAG3D,gFAAwB,CAACj0H,KAAK,EAAE6C,KAAK,EAAE7C,KAAK,CAACob,SAAS,CAAC,CAAC,CAAC,CAACy8G,SAAS,CAAC,CAAC;EAC3F73H,KAAK,CAAC48L,QAAQ,CAAChlE,eAAe,CAACtrB,OAAO,CAAC;EACvC,IAAI9yG,GAAG,GAAGo+H,eAAe,CAACp+H,GAAG;EAC7B,IAAIh4E,GAAG,GAAGo2M,eAAe,CAACp2M,GAAG,CAAC,CAAC;EAC/B;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA,IAAIu5E,OAAO,GAAG8H,KAAK,CAAC9H,OAAO;EAE3B,IAAIA,OAAO,IAAI4hM,SAAS,KAAK;EAC7B,mCACE;IACA,IAAIE,eAAe,GAAGN,0EAAsB,CAAC,KAAK,EAAExhM,OAAO,CAAC;IAC5D,IAAI+hM,2BAA2B,GAAG,KAAK;IACvCz4K,0DAAW,CAACw4K,eAAe,EAAE,UAAUr1L,WAAW,EAAE;MAClDs1L,2BAA2B,GAAGA,2BAA2B,IAAIt1L,WAAW,CAACuN,WAAW,CAAC,CAAC,KAAKlS,KAAK,CAACwf,IAAI;IACvG,CAAC,CAAC;IAEF,IAAIy6K,2BAA2B,EAAE;MAC/B;MACA;MACA,IAAIC,iBAAiB,GAAGP,oEAAgB,CAACK,eAAe,CAAC,CAAC,CAAC;;MAE3D,IAAIG,aAAa,GAAGC,sBAAsB,CAACzjM,GAAG,EAAEh4E,GAAG,EAAEqhF,KAAK,EAAEk6L,iBAAiB,CAAC;MAC9EvjM,GAAG,GAAGwjM,aAAa,CAACxjM,GAAG;MACvBh4E,GAAG,GAAGw7Q,aAAa,CAACx7Q,GAAG;IACzB;EACF;EAEA,OAAO;IACL25F,MAAM,EAAE,CAAC3hB,GAAG,EAAEh4E,GAAG,CAAC;IAClB;IACA;IACAy5Q,MAAM,EAAErjE,eAAe,CAACslE,QAAQ;IAChC/B,MAAM,EAAEvjE,eAAe,CAACulE;EAC1B,CAAC;AACH;AAEA,SAASF,sBAAsBA,CAACzjM,GAAG,EAAEh4E,GAAG,EAAEqhF,KAAK;AAAE;AACjDk6L,iBAAiB,EAAE;EACjB;EACA,IAAI14H,UAAU,GAAGxhE,KAAK,CAACwf,IAAI,CAACjH,SAAS,CAAC,CAAC;EACvC,IAAIgiL,UAAU,GAAG/4H,UAAU,CAAC,CAAC,CAAC,GAAGA,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;;EAEhD,IAAIg5H,iBAAiB,GAAGZ,wEAAoB,CAACM,iBAAiB,EAAEl6L,KAAK,CAACwf,IAAI,CAAC;EAE3E,IAAIg7K,iBAAiB,KAAK5hQ,SAAS,EAAE;IACnC,OAAO;MACL+9D,GAAG,EAAEA,GAAG;MACRh4E,GAAG,EAAEA;IACP,CAAC;EACH;EAEA,IAAI87Q,WAAW,GAAG5jM,QAAQ;EAC1B2qB,0DAAW,CAACg5K,iBAAiB,EAAE,UAAUhjL,IAAI,EAAE;IAC7CijL,WAAW,GAAGn+Q,IAAI,CAACq6E,GAAG,CAAC6gB,IAAI,CAAC9wE,MAAM,EAAE+zP,WAAW,CAAC;EAClD,CAAC,CAAC;EACF,IAAIC,WAAW,GAAG,CAAC7jM,QAAQ;EAC3B2qB,0DAAW,CAACg5K,iBAAiB,EAAE,UAAUhjL,IAAI,EAAE;IAC7CkjL,WAAW,GAAGp+Q,IAAI,CAACqC,GAAG,CAAC64F,IAAI,CAAC9wE,MAAM,GAAG8wE,IAAI,CAACnzE,KAAK,EAAEq2P,WAAW,CAAC;EAC/D,CAAC,CAAC;EACFD,WAAW,GAAGn+Q,IAAI,CAACo6F,GAAG,CAAC+jL,WAAW,CAAC;EACnCC,WAAW,GAAGp+Q,IAAI,CAACo6F,GAAG,CAACgkL,WAAW,CAAC;EACnC,IAAIC,aAAa,GAAGF,WAAW,GAAGC,WAAW,CAAC,CAAC;;EAE/C,IAAIE,QAAQ,GAAGj8Q,GAAG,GAAGg4E,GAAG;EACxB,IAAIkkM,oBAAoB,GAAG,CAAC,GAAG,CAACJ,WAAW,GAAGC,WAAW,IAAIH,UAAU;EACvE,IAAIO,cAAc,GAAGF,QAAQ,GAAGC,oBAAoB,GAAGD,QAAQ;EAC/Dj8Q,GAAG,IAAIm8Q,cAAc,IAAIJ,WAAW,GAAGC,aAAa,CAAC;EACrDhkM,GAAG,IAAImkM,cAAc,IAAIL,WAAW,GAAGE,aAAa,CAAC;EACrD,OAAO;IACLhkM,GAAG,EAAEA,GAAG;IACRh4E,GAAG,EAAEA;EACP,CAAC;AACH,CAAC,CAAC;AACF;AACA;;AAGO,SAASo8Q,eAAeA,CAAC59L,KAAK,EAAE69L,OAAO,EAAE;EAC9C,IAAIh7L,KAAK,GAAGg7L,OAAO;EACnB,IAAIC,UAAU,GAAG7D,cAAc,CAACj6L,KAAK,EAAE6C,KAAK,CAAC;EAC7C,IAAIsY,MAAM,GAAG2iL,UAAU,CAAC3iL,MAAM;EAC9B,IAAIixB,WAAW,GAAGvpC,KAAK,CAAC3lF,GAAG,CAAC,aAAa,CAAC;EAE1C,IAAI8iF,KAAK,YAAY08L,qDAAQ,EAAE;IAC7B18L,KAAK,CAACyvB,IAAI,GAAG5sB,KAAK,CAAC3lF,GAAG,CAAC,SAAS,CAAC;EACnC;EAEA,IAAIy/Q,SAAS,GAAG38L,KAAK,CAACzwE,IAAI;EAC1B,IAAIqsH,QAAQ,GAAG/4C,KAAK,CAAC3lF,GAAG,CAAC,UAAU,CAAC;EACpC,IAAI6gR,gBAAgB,GAAGpB,SAAS,KAAK,UAAU,IAAIA,SAAS,KAAK,MAAM;EACvE38L,KAAK,CAACiiK,SAAS,CAAC9mJ,MAAM,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC;EACrCnb,KAAK,CAACq7L,cAAc,CAAC;IACnBjvJ,WAAW,EAAEA,WAAW;IACxB6uJ,MAAM,EAAE6C,UAAU,CAAC7C,MAAM;IACzBE,MAAM,EAAE2C,UAAU,CAAC3C,MAAM;IACzB6C,WAAW,EAAED,gBAAgB,GAAGl7L,KAAK,CAAC3lF,GAAG,CAAC,aAAa,CAAC,GAAG,IAAI;IAC/D+gR,WAAW,EAAEF,gBAAgB,GAAGl7L,KAAK,CAAC3lF,GAAG,CAAC,aAAa,CAAC,GAAG;EAC7D,CAAC,CAAC,CAAC,CAAC;EACJ;EACA;EACA;EACA;;EAEA,IAAI0+H,QAAQ,IAAI,IAAI,EAAE;IACpB57C,KAAK,CAAC1rE,WAAW,IAAI0rE,KAAK,CAAC1rE,WAAW,CAACsnH,QAAQ,CAAC;EAClD;AACF;AACA;AACA;AACA;;AAEO,SAASmmH,kBAAkBA,CAACl/J,KAAK,EAAE22D,QAAQ,EAAE;EAClDA,QAAQ,GAAGA,QAAQ,IAAI32D,KAAK,CAAC3lF,GAAG,CAAC,MAAM,CAAC;EAExC,IAAIs8I,QAAQ,EAAE;IACZ,QAAQA,QAAQ;MACd;MACA,KAAK,UAAU;QACb,OAAO,IAAImlG,yDAAY,CAAC;UACtBjyJ,WAAW,EAAE7J,KAAK,CAAC+X,cAAc,GAAG/X,KAAK,CAAC+X,cAAc,CAAC,CAAC,GAAG/X,KAAK,CAACqqG,aAAa,CAAC,CAAC;UAClF/xF,MAAM,EAAE,CAACzhB,QAAQ,EAAE,CAACA,QAAQ;QAC9B,CAAC,CAAC;MAEJ,KAAK,MAAM;QACT,OAAO,IAAIklK,sDAAS,CAAC;UACnBoG,MAAM,EAAEniK,KAAK,CAAC9H,OAAO,CAAC40H,cAAc,CAAC,CAAC;UACtCs1C,MAAM,EAAEpiK,KAAK,CAAC9H,OAAO,CAAC79E,GAAG,CAAC,QAAQ;QACpC,CAAC,CAAC;MAEJ;QACE;QACA,OAAO,KAAKo/Q,gEAAc,CAAC9iI,QAAQ,CAAC,IAAIqlG,0DAAa,EAAE,CAAC;IAC5D;EACF;AACF;AACA;AACA;AACA;;AAEO,SAASs/B,eAAeA,CAAC97K,IAAI,EAAE;EACpC,IAAIgpB,UAAU,GAAGhpB,IAAI,CAACriB,KAAK,CAACob,SAAS,CAAC,CAAC;EACvC,IAAI5hB,GAAG,GAAG6xC,UAAU,CAAC,CAAC,CAAC;EACvB,IAAI7pH,GAAG,GAAG6pH,UAAU,CAAC,CAAC,CAAC;EACvB,OAAO,EAAE7xC,GAAG,GAAG,CAAC,IAAIh4E,GAAG,GAAG,CAAC,IAAIg4E,GAAG,GAAG,CAAC,IAAIh4E,GAAG,GAAG,CAAC,CAAC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAAS48Q,kBAAkBA,CAAC/7K,IAAI,EAAE;EACvC,IAAIsrB,cAAc,GAAGtrB,IAAI,CAACud,aAAa,CAAC,CAAC,CAAC1iH,GAAG,CAAC,WAAW,CAAC;EAC1D,IAAImhR,iBAAiB,GAAGh8K,IAAI,CAAC9yF,IAAI,KAAK,UAAU,GAAG8yF,IAAI,CAACriB,KAAK,CAACob,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;EAEnF,IAAIiH,IAAI,CAACriB,KAAK,CAACzwE,IAAI,KAAK,MAAM,EAAE;IAC9B,OAAO,UAAU+uQ,GAAG,EAAE;MACpB,OAAO,UAAU37B,IAAI,EAAEh6J,GAAG,EAAE;QAC1B,OAAO0Z,IAAI,CAACriB,KAAK,CAACqgC,iBAAiB,CAACsiI,IAAI,EAAEh6J,GAAG,EAAE21L,GAAG,CAAC;MACrD,CAAC;IACH,CAAC,CAAC3wJ,cAAc,CAAC;EACnB,CAAC,MAAM,IAAItpB,8DAAe,CAACspB,cAAc,CAAC,EAAE;IAC1C,OAAO,UAAU2wJ,GAAG,EAAE;MACpB,OAAO,UAAU37B,IAAI,EAAE;QACrB;QACA;QACA,IAAIjkP,KAAK,GAAG2jG,IAAI,CAACriB,KAAK,CAACqpH,QAAQ,CAACs5C,IAAI,CAAC;QACrC,IAAI/pN,IAAI,GAAG0lP,GAAG,CAAC75Q,OAAO,CAAC,SAAS,EAAE/F,KAAK,IAAI,IAAI,GAAGA,KAAK,GAAG,EAAE,CAAC;QAC7D,OAAOk6B,IAAI;MACb,CAAC;IACH,CAAC,CAAC+0F,cAAc,CAAC;EACnB,CAAC,MAAM,IAAItpB,gEAAiB,CAACspB,cAAc,CAAC,EAAE;IAC5C,OAAO,UAAU/xC,EAAE,EAAE;MACnB,OAAO,UAAU+mK,IAAI,EAAEh6J,GAAG,EAAE;QAC1B;QACA;QACA;QACA;QACA;QACA;QACA,IAAI01L,iBAAiB,IAAI,IAAI,EAAE;UAC7B11L,GAAG,GAAGg6J,IAAI,CAAC7lP,KAAK,GAAGuhR,iBAAiB;QACtC;QAEA,OAAOziM,EAAE,CAAC2tH,eAAe,CAAClnG,IAAI,EAAEsgJ,IAAI,CAAC,EAAEh6J,GAAG,EAAEg6J,IAAI,CAACruD,KAAK,IAAI,IAAI,GAAG;UAC/DA,KAAK,EAAEquD,IAAI,CAACruD;QACd,CAAC,GAAG,IAAI,CAAC;MACX,CAAC;IACH,CAAC,CAAC3mE,cAAc,CAAC;EACnB,CAAC,MAAM;IACL,OAAO,UAAUg1H,IAAI,EAAE;MACrB,OAAOtgJ,IAAI,CAACriB,KAAK,CAACqpH,QAAQ,CAACs5C,IAAI,CAAC;IAClC,CAAC;EACH;AACF;AACO,SAASp5C,eAAeA,CAAClnG,IAAI,EAAEsgJ,IAAI,EAAE;EAC1C;EACA;EACA;EACA,OAAOtgJ,IAAI,CAAC9yF,IAAI,KAAK,UAAU,GAAG8yF,IAAI,CAACriB,KAAK,CAACqpH,QAAQ,CAACs5C,IAAI,CAAC,GAAGA,IAAI,CAAC7lP,KAAK;AAC1E;AACA;AACA;AACA;AACA;;AAEO,SAASyhR,sBAAsBA,CAACl8K,IAAI,EAAE;EAC3C,IAAIxF,SAAS,GAAGwF,IAAI,CAACxf,KAAK;EAC1B,IAAI7C,KAAK,GAAGqiB,IAAI,CAACriB,KAAK;EAEtB,IAAI,CAAC6c,SAAS,CAAC3/F,GAAG,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,IAAI8iF,KAAK,CAACssG,OAAO,CAAC,CAAC,EAAE;IAC5D;EACF;EAEA,IAAIkyF,oBAAoB;EACxB,IAAIC,SAAS;EACb,IAAIC,mBAAmB,GAAG1+L,KAAK,CAACob,SAAS,CAAC,CAAC,CAAC,CAAC;;EAE7C,IAAIpb,KAAK,YAAY2+J,yDAAY,EAAE;IACjC8/B,SAAS,GAAGz+L,KAAK,CAACmH,KAAK,CAAC,CAAC;EAC3B,CAAC,MAAM;IACLq3L,oBAAoB,GAAGx+L,KAAK,CAACgiK,QAAQ,CAAC,CAAC;IACvCy8B,SAAS,GAAGD,oBAAoB,CAACpiR,MAAM;EACzC;EAEA,IAAIuiR,cAAc,GAAGt8K,IAAI,CAACud,aAAa,CAAC,CAAC;EACzC,IAAI+N,cAAc,GAAGywJ,kBAAkB,CAAC/7K,IAAI,CAAC;EAC7C,IAAItQ,IAAI;EACR,IAAIu9B,IAAI,GAAG,CAAC,CAAC,CAAC;;EAEd,IAAImvJ,SAAS,GAAG,EAAE,EAAE;IAClBnvJ,IAAI,GAAGnwH,IAAI,CAACkrB,IAAI,CAACo0P,SAAS,GAAG,EAAE,CAAC;EAClC;EAEA,KAAK,IAAI9iR,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG8iR,SAAS,EAAE9iR,CAAC,IAAI2zH,IAAI,EAAE;IACxC,IAAIqzH,IAAI,GAAG67B,oBAAoB,GAAGA,oBAAoB,CAAC7iR,CAAC,CAAC,GAAG;MAC1DmB,KAAK,EAAE4hR,mBAAmB,CAAC,CAAC,CAAC,GAAG/iR;IAClC,CAAC;IACD,IAAI+C,KAAK,GAAGivH,cAAc,CAACg1H,IAAI,EAAEhnP,CAAC,CAAC;IACnC,IAAIijR,mBAAmB,GAAGD,cAAc,CAAC7jG,WAAW,CAACp8K,KAAK,CAAC;IAC3D,IAAImgR,UAAU,GAAGC,cAAc,CAACF,mBAAmB,EAAED,cAAc,CAACzhR,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACvF60F,IAAI,GAAGA,IAAI,CAACgtL,KAAK,CAACF,UAAU,CAAC,GAAG9sL,IAAI,GAAG8sL,UAAU;EACnD;EAEA,OAAO9sL,IAAI;AACb;AAEA,SAAS+sL,cAAcA,CAAC3gH,QAAQ,EAAE95I,MAAM,EAAE;EACxC,IAAI26P,aAAa,GAAG36P,MAAM,GAAGllB,IAAI,CAACuiG,EAAE,GAAG,GAAG;EAC1C,IAAIu9K,WAAW,GAAG9gH,QAAQ,CAACj3I,KAAK;EAChC,IAAIg4P,YAAY,GAAG/gH,QAAQ,CAAC/2I,MAAM;EAClC,IAAI+3P,UAAU,GAAGF,WAAW,GAAG9/Q,IAAI,CAACo6F,GAAG,CAACp6F,IAAI,CAAC0wH,GAAG,CAACmvJ,aAAa,CAAC,CAAC,GAAG7/Q,IAAI,CAACo6F,GAAG,CAAC2lL,YAAY,GAAG//Q,IAAI,CAAC2wH,GAAG,CAACkvJ,aAAa,CAAC,CAAC;EACnH,IAAII,WAAW,GAAGH,WAAW,GAAG9/Q,IAAI,CAACo6F,GAAG,CAACp6F,IAAI,CAAC2wH,GAAG,CAACkvJ,aAAa,CAAC,CAAC,GAAG7/Q,IAAI,CAACo6F,GAAG,CAAC2lL,YAAY,GAAG//Q,IAAI,CAAC0wH,GAAG,CAACmvJ,aAAa,CAAC,CAAC;EACpH,IAAIK,WAAW,GAAG,IAAIxxI,wEAAY,CAACswB,QAAQ,CAAC/0J,CAAC,EAAE+0J,QAAQ,CAAC96J,CAAC,EAAE87Q,UAAU,EAAEC,WAAW,CAAC;EACnF,OAAOC,WAAW;AACpB;AACA;AACA;AACA;AACA;;AAGO,SAASC,yBAAyBA,CAACz8L,KAAK,EAAE;EAC/C,IAAI+4C,QAAQ,GAAG/4C,KAAK,CAAC3lF,GAAG,CAAC,UAAU,CAAC;EACpC,OAAO0+H,QAAQ,IAAI,IAAI,GAAG,MAAM,GAAGA,QAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASmzD,mBAAmBA,CAAC1sF,IAAI,EAAE;EACxC,OAAOA,IAAI,CAAC9yF,IAAI,KAAK,UAAU,IAAI+vQ,yBAAyB,CAACj9K,IAAI,CAACud,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC;AAC1F;AACO,SAAS2/J,uBAAuBA,CAACh5Q,IAAI,EAAEwxJ,OAAO,EAAE;EACrD;EACA,IAAIynH,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC;EACrB;EACA;;EAEAn7K,0DAAW,CAAC99F,IAAI,CAACypG,gBAAgB,CAAC+nD,OAAO,CAAC,EAAE,UAAU8rC,OAAO,EAAE;IAC7D;IACA;IACA;IACA;IACA;IACA;IACA27E,UAAU,CAACpqC,oFAAmB,CAAC7uO,IAAI,EAAEs9L,OAAO,CAAC,CAAC,GAAG,IAAI;EACvD,CAAC,CAAC;EACF,OAAOx/F,0DAAW,CAACm7K,UAAU,CAAC;AAChC;AACO,SAASxrE,uBAAuBA,CAAC3oF,UAAU,EAAE9kH,IAAI,EAAEwxJ,OAAO,EAAE;EACjE,IAAIxxJ,IAAI,EAAE;IACR89F,0DAAW,CAACk7K,uBAAuB,CAACh5Q,IAAI,EAAEwxJ,OAAO,CAAC,EAAE,UAAUttE,GAAG,EAAE;MACjE,IAAIg1L,YAAY,GAAGl5Q,IAAI,CAACm5Q,oBAAoB,CAACj1L,GAAG,CAAC;MACjDg1L,YAAY,CAAC,CAAC,CAAC,GAAGp0J,UAAU,CAAC,CAAC,CAAC,KAAKA,UAAU,CAAC,CAAC,CAAC,GAAGo0J,YAAY,CAAC,CAAC,CAAC,CAAC;MACpEA,YAAY,CAAC,CAAC,CAAC,GAAGp0J,UAAU,CAAC,CAAC,CAAC,KAAKA,UAAU,CAAC,CAAC,CAAC,GAAGo0J,YAAY,CAAC,CAAC,CAAC,CAAC;IACtE,CAAC,CAAC;EACJ;AACF;;;;;;;;;;;;;;;ACvXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIE,oBAAoB,GACxB;AACA,YAAY;EACV,SAASA,oBAAoBA,CAAA,EAAG,CAAC;EAEjCA,oBAAoB,CAAC7jR,SAAS,CAAC8jR,gBAAgB,GAAG,YAAY;IAC5D,IAAI/9K,MAAM,GAAG,IAAI,CAACA,MAAM;IACxB,OAAO,CAACA,MAAM,CAAC7hB,KAAK;EACtB,CAAC;EACD;AACF;AACA;AACA;;EAGE2/L,oBAAoB,CAAC7jR,SAAS,CAACo6L,gBAAgB,GAAG,YAAY;IAC5D;EACF,CAAC;EAED,OAAOypF,oBAAoB;AAC7B,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;AC/DH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACkC;AACS;AAC4C;AACtC;AACC;AACK;AACvD;AACA;AACA;AACA;;AAEe,SAAStuD,gBAAgBA,CAAClhI,SAAS,EAAEmhG,QAAQ,EAAE0uF,kBAAkB,EAAEC,kBAAkB,EAAE;EACpGpiM,8DAAI,CAAC69L,2DAAU,EAAE,UAAUx3Q,CAAC,EAAEs1I,QAAQ,EAAE;IACtC,IAAItnD,aAAa,GAAG04G,+DAAK,CAACA,+DAAK,CAAC,CAAC,CAAC,EAAEi1E,uDAAW,CAACrmI,QAAQ,CAAC,EAAE,IAAI,CAAC,EAAEymI,kBAAkB,EAAE,IAAI,CAAC;IAE3F,IAAIC,SAAS,GACb;IACA,UAAU7uL,MAAM,EAAE;MAChBL,gDAAS,CAACkvL,SAAS,EAAE7uL,MAAM,CAAC;MAE5B,SAAS6uL,SAASA,CAAA,EAAG;QACnB,IAAIn2Q,KAAK,GAAGsnF,MAAM,KAAK,IAAI,IAAIA,MAAM,CAAC7yF,KAAK,CAAC,IAAI,EAAE0G,SAAS,CAAC,IAAI,IAAI;QAEpE6E,KAAK,CAACwF,IAAI,GAAG+hL,QAAQ,GAAG,OAAO,GAAG93C,QAAQ;QAC1C,OAAOzvI,KAAK;MACd;MAEAm2Q,SAAS,CAACpkR,SAAS,CAACi5H,oBAAoB,GAAG,UAAUlzB,MAAM,EAAE9mB,OAAO,EAAE;QACpE,IAAI85E,UAAU,GAAGirH,gEAAe,CAAC,IAAI,CAAC;QACtC,IAAI1yC,mBAAmB,GAAGv4E,UAAU,GAAG8qD,gEAAe,CAAC99G,MAAM,CAAC,GAAG,CAAC,CAAC;QACnE,IAAIs+K,UAAU,GAAGplM,OAAO,CAACqlM,QAAQ,CAAC,CAAC;QACnCx1E,+DAAK,CAAC/oG,MAAM,EAAEs+K,UAAU,CAACjjR,GAAG,CAACs8I,QAAQ,GAAG,MAAM,CAAC,CAAC;QAChDoxD,+DAAK,CAAC/oG,MAAM,EAAE,IAAI,CAACqmJ,gBAAgB,CAAC,CAAC,CAAC;QACtCrmJ,MAAM,CAACtyF,IAAI,GAAG8wQ,WAAW,CAACx+K,MAAM,CAAC;QAEjC,IAAIgzD,UAAU,EAAE;UACdk3D,iEAAgB,CAAClqH,MAAM,EAAEurI,mBAAmB,EAAEv4E,UAAU,CAAC;QAC3D;MACF,CAAC;MAEDqrH,SAAS,CAACpkR,SAAS,CAAC08G,aAAa,GAAG,YAAY;QAC9C,IAAIyxF,UAAU,GAAG,IAAI,CAACpoG,MAAM;QAE5B,IAAIooG,UAAU,CAAC16L,IAAI,KAAK,UAAU,EAAE;UAClC,IAAI,CAAC+wQ,aAAa,GAAGP,8EAA6B,CAAC,IAAI,CAAC;QAC1D;MACF,CAAC;MACD;AACN;AACA;AACA;;MAGMG,SAAS,CAACpkR,SAAS,CAACoxL,aAAa,GAAG,UAAUr7E,OAAO,EAAE;QACrD,IAAIhQ,MAAM,GAAG,IAAI,CAACA,MAAM,CAAC,CAAC;QAC1B;;QAEA,IAAIA,MAAM,CAACtyF,IAAI,KAAK,UAAU,EAAE;UAC9B,IAAIsiG,OAAO,EAAE;YACX,OAAOhQ,MAAM,CAACt7F,IAAI;UACpB;UAEA,OAAO,IAAI,CAAC+5Q,aAAa,CAAC3zL,UAAU;QACtC;MACF,CAAC;MAEDuzL,SAAS,CAACpkR,SAAS,CAAC8+F,cAAc,GAAG,YAAY;QAC/C,OAAO,IAAI,CAAC0lL,aAAa;MAC3B,CAAC;MAEDJ,SAAS,CAAC3wQ,IAAI,GAAG+hL,QAAQ,GAAG,OAAO,GAAG93C,QAAQ;MAC9C0mI,SAAS,CAAChuL,aAAa,GAAGA,aAAa;MACvC,OAAOguL,SAAS;IAClB,CAAC,CAACF,kBAAkB,CAAC;IAErB7vL,SAAS,CAACq2G,sBAAsB,CAAC05E,SAAS,CAAC;EAC7C,CAAC,CAAC;EACF/vL,SAAS,CAACm4H,wBAAwB,CAACh3B,QAAQ,GAAG,MAAM,EAAE+uF,WAAW,CAAC;AACpE;AAEA,SAASA,WAAWA,CAACx+K,MAAM,EAAE;EAC3B;EACA,OAAOA,MAAM,CAACtyF,IAAI,KAAKsyF,MAAM,CAACt7F,IAAI,GAAG,UAAU,GAAG,OAAO,CAAC;AAC5D;;;;;;;;;;;;;;;;;;;;;AC7HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACmD;AACQ;AACd;AACwD;AACrG,IAAIwgB,KAAK,GAAGuzD,yDAAS,CAAC,CAAC;AAChB,SAAS28L,gBAAgBA,CAAC50K,IAAI,EAAE;EACrC;EACA,OAAOA,IAAI,CAAC9yF,IAAI,KAAK,UAAU,GAAGixQ,kBAAkB,CAACn+K,IAAI,CAAC,GAAGo+K,oBAAoB,CAACp+K,IAAI,CAAC;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAAS20K,eAAeA,CAAC30K,IAAI,EAAE4sB,SAAS,EAAE;EAC/C;EACA,OAAO5sB,IAAI,CAAC9yF,IAAI,KAAK,UAAU,GAAGmxQ,iBAAiB,CAACr+K,IAAI,EAAE4sB,SAAS,CAAC,GAAG;IACrEwzH,KAAK,EAAEp+I,yDAAU,CAAChC,IAAI,CAACriB,KAAK,CAACgiK,QAAQ,CAAC,CAAC,EAAE,UAAUW,IAAI,EAAE;MACvD,OAAOA,IAAI,CAAC7lP,KAAK;IACnB,CAAC;EACH,CAAC;AACH;AAEA,SAAS0jR,kBAAkBA,CAACn+K,IAAI,EAAE;EAChC,IAAI6d,UAAU,GAAG7d,IAAI,CAACud,aAAa,CAAC,CAAC;EACrC,IAAIj0F,MAAM,GAAGg1P,0BAA0B,CAACt+K,IAAI,EAAE6d,UAAU,CAAC;EACzD,OAAO,CAACA,UAAU,CAAChjH,GAAG,CAAC,MAAM,CAAC,IAAImlG,IAAI,CAACriB,KAAK,CAACssG,OAAO,CAAC,CAAC,GAAG;IACvDD,MAAM,EAAE,EAAE;IACVu0F,qBAAqB,EAAEj1P,MAAM,CAACi1P;EAChC,CAAC,GAAGj1P,MAAM;AACZ;AAEA,SAASg1P,0BAA0BA,CAACt+K,IAAI,EAAE6d,UAAU,EAAE;EACpD,IAAI2gK,WAAW,GAAGC,YAAY,CAACz+K,IAAI,EAAE,QAAQ,CAAC;EAC9C,IAAI0+K,mBAAmB,GAAGzB,yEAAyB,CAACp/J,UAAU,CAAC;EAC/D,IAAIv0F,MAAM,GAAGq1P,YAAY,CAACH,WAAW,EAAEE,mBAAmB,CAAC;EAE3D,IAAIp1P,MAAM,EAAE;IACV,OAAOA,MAAM;EACf;EAEA,IAAI0gK,MAAM;EACV,IAAI40F,oBAAoB;EAExB,IAAI58K,gEAAiB,CAAC08K,mBAAmB,CAAC,EAAE;IAC1C10F,MAAM,GAAG60F,sCAAsC,CAAC7+K,IAAI,EAAE0+K,mBAAmB,CAAC;EAC5E,CAAC,MAAM;IACLE,oBAAoB,GAAGF,mBAAmB,KAAK,MAAM,GAAGI,wBAAwB,CAAC9+K,IAAI,CAAC,GAAG0+K,mBAAmB;IAC5G10F,MAAM,GAAG+0F,mCAAmC,CAAC/+K,IAAI,EAAE4+K,oBAAoB,CAAC;EAC1E,CAAC,CAAC;;EAGF,OAAOI,YAAY,CAACR,WAAW,EAAEE,mBAAmB,EAAE;IACpD10F,MAAM,EAAEA,MAAM;IACdu0F,qBAAqB,EAAEK;EACzB,CAAC,CAAC;AACJ;AAEA,SAASP,iBAAiBA,CAACr+K,IAAI,EAAE4sB,SAAS,EAAE;EAC1C,IAAIqyJ,UAAU,GAAGR,YAAY,CAACz+K,IAAI,EAAE,OAAO,CAAC;EAC5C,IAAIk/K,kBAAkB,GAAGjC,yEAAyB,CAACrwJ,SAAS,CAAC;EAC7D,IAAItjG,MAAM,GAAGq1P,YAAY,CAACM,UAAU,EAAEC,kBAAkB,CAAC;EAEzD,IAAI51P,MAAM,EAAE;IACV,OAAOA,MAAM;EACf;EAEA,IAAI82N,KAAK;EACT,IAAI++B,oBAAoB,CAAC,CAAC;EAC1B;;EAEA,IAAI,CAACvyJ,SAAS,CAAC/xH,GAAG,CAAC,MAAM,CAAC,IAAImlG,IAAI,CAACriB,KAAK,CAACssG,OAAO,CAAC,CAAC,EAAE;IAClDm2D,KAAK,GAAG,EAAE;EACZ;EAEA,IAAIp+I,gEAAiB,CAACk9K,kBAAkB,CAAC,EAAE;IACzC9+B,KAAK,GAAGy+B,sCAAsC,CAAC7+K,IAAI,EAAEk/K,kBAAkB,EAAE,IAAI,CAAC;EAChF,CAAC,CAAC;EACF;EACA;EAAA,KACK,IAAIA,kBAAkB,KAAK,MAAM,EAAE;IACpC,IAAIE,YAAY,GAAGd,0BAA0B,CAACt+K,IAAI,EAAEA,IAAI,CAACud,aAAa,CAAC,CAAC,CAAC;IACzE4hK,oBAAoB,GAAGC,YAAY,CAACb,qBAAqB;IACzDn+B,KAAK,GAAGp+I,yDAAU,CAACo9K,YAAY,CAACp1F,MAAM,EAAE,UAAUjoC,SAAS,EAAE;MAC3D,OAAOA,SAAS,CAACthD,SAAS;IAC5B,CAAC,CAAC;EACJ,CAAC,MAAM;IACL0+K,oBAAoB,GAAGD,kBAAkB;IACzC9+B,KAAK,GAAG2+B,mCAAmC,CAAC/+K,IAAI,EAAEm/K,oBAAoB,EAAE,IAAI,CAAC;EAC/E,CAAC,CAAC;;EAGJ,OAAOH,YAAY,CAACC,UAAU,EAAEC,kBAAkB,EAAE;IAClD9+B,KAAK,EAAEA,KAAK;IACZ++B,oBAAoB,EAAEA;EACxB,CAAC,CAAC;AACJ;AAEA,SAASf,oBAAoBA,CAACp+K,IAAI,EAAE;EAClC,IAAIogJ,KAAK,GAAGpgJ,IAAI,CAACriB,KAAK,CAACgiK,QAAQ,CAAC,CAAC;EACjC,IAAIr0H,cAAc,GAAGywJ,kEAAkB,CAAC/7K,IAAI,CAAC;EAC7C,OAAO;IACLgqF,MAAM,EAAEhoF,yDAAU,CAACo+I,KAAK,EAAE,UAAUE,IAAI,EAAEh6J,GAAG,EAAE;MAC7C,OAAO;QACL2rG,KAAK,EAAEquD,IAAI,CAACruD,KAAK;QACjB3G,cAAc,EAAEhgE,cAAc,CAACg1H,IAAI,EAAEh6J,GAAG,CAAC;QACzCmlG,QAAQ,EAAEzrF,IAAI,CAACriB,KAAK,CAACqpH,QAAQ,CAACs5C,IAAI,CAAC;QACnC7/I,SAAS,EAAE6/I,IAAI,CAAC7lP;MAClB,CAAC;IACH,CAAC;EACH,CAAC;AACH;AAEA,SAASgkR,YAAYA,CAACz+K,IAAI,EAAEvxE,IAAI,EAAE;EAChC;EACA,OAAO/J,KAAK,CAACs7E,IAAI,CAAC,CAACvxE,IAAI,CAAC,KAAK/J,KAAK,CAACs7E,IAAI,CAAC,CAACvxE,IAAI,CAAC,GAAG,EAAE,CAAC;AACtD;AAEA,SAASkwP,YAAYA,CAACr3Q,KAAK,EAAEqQ,GAAG,EAAE;EAChC,KAAK,IAAIre,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGgO,KAAK,CAACvN,MAAM,EAAET,CAAC,EAAE,EAAE;IACrC,IAAIgO,KAAK,CAAChO,CAAC,CAAC,CAACqe,GAAG,KAAKA,GAAG,EAAE;MACxB,OAAOrQ,KAAK,CAAChO,CAAC,CAAC,CAACmB,KAAK;IACvB;EACF;AACF;AAEA,SAASukR,YAAYA,CAAC13Q,KAAK,EAAEqQ,GAAG,EAAEld,KAAK,EAAE;EACvC6M,KAAK,CAACzK,IAAI,CAAC;IACT8a,GAAG,EAAEA,GAAG;IACRld,KAAK,EAAEA;EACT,CAAC,CAAC;EACF,OAAOA,KAAK;AACd;AAEA,SAASqkR,wBAAwBA,CAAC9+K,IAAI,EAAE;EACtC,IAAI12E,MAAM,GAAG5E,KAAK,CAACs7E,IAAI,CAAC,CAACq/K,YAAY;EACrC,OAAO/1P,MAAM,IAAI,IAAI,GAAGA,MAAM,GAAG5E,KAAK,CAACs7E,IAAI,CAAC,CAACq/K,YAAY,GAAGr/K,IAAI,CAAC60K,yBAAyB,CAAC,CAAC;AAC9F;AACA;AACA;AACA;AACA;AACA;;AAGO,SAASA,yBAAyBA,CAAC70K,IAAI,EAAE;EAC9C,IAAI14E,MAAM,GAAGg4P,0CAA0C,CAACt/K,IAAI,CAAC;EAC7D,IAAIsrB,cAAc,GAAGywJ,kEAAkB,CAAC/7K,IAAI,CAAC;EAC7C,IAAIoE,QAAQ,GAAG,CAAC98E,MAAM,CAACi4P,UAAU,GAAGj4P,MAAM,CAACm1G,WAAW,IAAI,GAAG,GAAG3/H,IAAI,CAACuiG,EAAE;EACvE,IAAImgL,YAAY,GAAGx/K,IAAI,CAACriB,KAAK;EAC7B,IAAI8hM,aAAa,GAAGD,YAAY,CAACzmL,SAAS,CAAC,CAAC,CAAC,CAAC;EAC9C;EACA;;EAEA,IAAIqjL,SAAS,GAAGoD,YAAY,CAAC16L,KAAK,CAAC,CAAC;EAEpC,IAAI26L,aAAa,CAAC,CAAC,CAAC,GAAGA,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;IAC3C,OAAO,CAAC;EACV;EAEA,IAAIxyJ,IAAI,GAAG,CAAC,CAAC,CAAC;;EAEd,IAAImvJ,SAAS,GAAG,EAAE,EAAE;IAClBnvJ,IAAI,GAAGnwH,IAAI,CAACqC,GAAG,CAAC,CAAC,EAAErC,IAAI,CAACC,KAAK,CAACq/Q,SAAS,GAAG,EAAE,CAAC,CAAC;EAChD;EAEA,IAAI37K,SAAS,GAAGg/K,aAAa,CAAC,CAAC,CAAC;EAChC,IAAIC,QAAQ,GAAG1/K,IAAI,CAACmF,WAAW,CAAC1E,SAAS,GAAG,CAAC,CAAC,GAAGT,IAAI,CAACmF,WAAW,CAAC1E,SAAS,CAAC;EAC5E,IAAIk/K,KAAK,GAAG7iR,IAAI,CAACo6F,GAAG,CAACwoL,QAAQ,GAAG5iR,IAAI,CAAC0wH,GAAG,CAACppB,QAAQ,CAAC,CAAC;EACnD,IAAIw7K,KAAK,GAAG9iR,IAAI,CAACo6F,GAAG,CAACwoL,QAAQ,GAAG5iR,IAAI,CAAC2wH,GAAG,CAACrpB,QAAQ,CAAC,CAAC;EACnD,IAAIy7K,IAAI,GAAG,CAAC;EACZ,IAAIC,IAAI,GAAG,CAAC,CAAC,CAAC;EACd;;EAEA,OAAOr/K,SAAS,IAAIg/K,aAAa,CAAC,CAAC,CAAC,EAAEh/K,SAAS,IAAIwsB,IAAI,EAAE;IACvD,IAAIpoG,KAAK,GAAG,CAAC;IACb,IAAIE,MAAM,GAAG,CAAC,CAAC,CAAC;IAChB;;IAEA,IAAI2qE,IAAI,GAAG+2G,wEAA2B,CAACn7E,cAAc,CAAC;MACpD7wH,KAAK,EAAEgmG;IACT,CAAC,CAAC,EAAEn5E,MAAM,CAACk1F,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;;IAEnC33F,KAAK,GAAG6qE,IAAI,CAAC7qE,KAAK,GAAG,GAAG;IACxBE,MAAM,GAAG2qE,IAAI,CAAC3qE,MAAM,GAAG,GAAG,CAAC,CAAC;;IAE5B86P,IAAI,GAAG/iR,IAAI,CAACqC,GAAG,CAAC0gR,IAAI,EAAEh7P,KAAK,EAAE,CAAC,CAAC;IAC/Bi7P,IAAI,GAAGhjR,IAAI,CAACqC,GAAG,CAAC2gR,IAAI,EAAE/6P,MAAM,EAAE,CAAC,CAAC;EAClC;EAEA,IAAIg7P,EAAE,GAAGF,IAAI,GAAGF,KAAK;EACrB,IAAIK,EAAE,GAAGF,IAAI,GAAGF,KAAK,CAAC,CAAC;;EAEvB1wP,KAAK,CAAC6wP,EAAE,CAAC,KAAKA,EAAE,GAAG1oM,QAAQ,CAAC;EAC5BnoD,KAAK,CAAC8wP,EAAE,CAAC,KAAKA,EAAE,GAAG3oM,QAAQ,CAAC;EAC5B,IAAIkiD,QAAQ,GAAGz8H,IAAI,CAACqC,GAAG,CAAC,CAAC,EAAErC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACq6E,GAAG,CAAC4oM,EAAE,EAAEC,EAAE,CAAC,CAAC,CAAC;EACxD,IAAI14Q,KAAK,GAAGod,KAAK,CAACs7E,IAAI,CAACxf,KAAK,CAAC;EAC7B,IAAIwhE,UAAU,GAAGhiD,IAAI,CAACjH,SAAS,CAAC,CAAC;EACjC,IAAIknL,gBAAgB,GAAG34Q,KAAK,CAAC24Q,gBAAgB;EAC7C,IAAIC,aAAa,GAAG54Q,KAAK,CAAC44Q,aAAa,CAAC,CAAC;EACzC;EACA;EACA;EACA;EACA;;EAEA,IAAID,gBAAgB,IAAI,IAAI,IAAIC,aAAa,IAAI,IAAI,IAAIpjR,IAAI,CAACo6F,GAAG,CAAC+oL,gBAAgB,GAAG1mJ,QAAQ,CAAC,IAAI,CAAC,IAAIz8H,IAAI,CAACo6F,GAAG,CAACgpL,aAAa,GAAG9D,SAAS,CAAC,IAAI,CAAC,CAAC;EAChJ;EAAA,GACG6D,gBAAgB,GAAG1mJ,QAAQ,CAAC;EAC/B;EAAA,GACGjyH,KAAK,CAAC64Q,WAAW,KAAKn+H,UAAU,CAAC,CAAC,CAAC,IAAI16I,KAAK,CAAC84Q,WAAW,KAAKp+H,UAAU,CAAC,CAAC,CAAC,EAAE;IAC7EzoB,QAAQ,GAAG0mJ,gBAAgB;EAC7B,CAAC,CAAC;EACF;EAAA,KACK;IACD34Q,KAAK,CAAC44Q,aAAa,GAAG9D,SAAS;IAC/B90Q,KAAK,CAAC24Q,gBAAgB,GAAG1mJ,QAAQ;IACjCjyH,KAAK,CAAC64Q,WAAW,GAAGn+H,UAAU,CAAC,CAAC,CAAC;IACjC16I,KAAK,CAAC84Q,WAAW,GAAGp+H,UAAU,CAAC,CAAC,CAAC;EACnC;EAEF,OAAOzoB,QAAQ;AACjB;AAEA,SAAS+lJ,0CAA0CA,CAACt/K,IAAI,EAAE;EACxD,IAAI6d,UAAU,GAAG7d,IAAI,CAACud,aAAa,CAAC,CAAC;EACrC,OAAO;IACLgiK,UAAU,EAAEv/K,IAAI,CAACqgL,SAAS,GAAGrgL,IAAI,CAACqgL,SAAS,CAAC,CAAC,GAAGrgL,IAAI,CAAClN,YAAY,IAAI,CAACkN,IAAI,CAAClN,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC;IAClG2pC,WAAW,EAAE5e,UAAU,CAAChjH,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC1C2hH,IAAI,EAAEqB,UAAU,CAACY,OAAO,CAAC;EAC3B,CAAC;AACH;AAEA,SAASsgK,mCAAmCA,CAAC/+K,IAAI,EAAEsgL,gBAAgB,EAAEC,QAAQ,EAAE;EAC7E,IAAIj1J,cAAc,GAAGywJ,kEAAkB,CAAC/7K,IAAI,CAAC;EAC7C,IAAIw/K,YAAY,GAAGx/K,IAAI,CAACriB,KAAK;EAC7B,IAAI8hM,aAAa,GAAGD,YAAY,CAACzmL,SAAS,CAAC,CAAC;EAC5C,IAAI8kB,UAAU,GAAG7d,IAAI,CAACud,aAAa,CAAC,CAAC;EACrC,IAAIj0F,MAAM,GAAG,EAAE,CAAC,CAAC;;EAEjB,IAAI2jG,IAAI,GAAGnwH,IAAI,CAACqC,GAAG,CAAC,CAACmhR,gBAAgB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;EACnD,IAAIE,SAAS,GAAGf,aAAa,CAAC,CAAC,CAAC;EAChC,IAAIrD,SAAS,GAAGoD,YAAY,CAAC16L,KAAK,CAAC,CAAC,CAAC,CAAC;EACtC;EACA;EACA;;EAEA,IAAI07L,SAAS,KAAK,CAAC,IAAIvzJ,IAAI,GAAG,CAAC,IAAImvJ,SAAS,GAAGnvJ,IAAI,GAAG,CAAC,EAAE;IACvDuzJ,SAAS,GAAG1jR,IAAI,CAACosG,KAAK,CAACpsG,IAAI,CAACkrB,IAAI,CAACw4P,SAAS,GAAGvzJ,IAAI,CAAC,GAAGA,IAAI,CAAC;EAC5D,CAAC,CAAC;EACF;EACA;EACA;EACA;;EAGA,IAAIwzJ,YAAY,GAAG/zF,mEAAmB,CAAC1sF,IAAI,CAAC;EAC5C,IAAI0gL,eAAe,GAAG7iK,UAAU,CAAChjH,GAAG,CAAC,cAAc,CAAC,IAAI4lR,YAAY;EACpE,IAAIE,eAAe,GAAG9iK,UAAU,CAAChjH,GAAG,CAAC,cAAc,CAAC,IAAI4lR,YAAY;EAEpE,IAAIC,eAAe,IAAIF,SAAS,KAAKf,aAAa,CAAC,CAAC,CAAC,EAAE;IACrDmB,OAAO,CAACnB,aAAa,CAAC,CAAC,CAAC,CAAC;EAC3B,CAAC,CAAC;;EAGF,IAAIh/K,SAAS,GAAG+/K,SAAS;EAEzB,OAAO//K,SAAS,IAAIg/K,aAAa,CAAC,CAAC,CAAC,EAAEh/K,SAAS,IAAIwsB,IAAI,EAAE;IACvD2zJ,OAAO,CAACngL,SAAS,CAAC;EACpB;EAEA,IAAIkgL,eAAe,IAAIlgL,SAAS,GAAGwsB,IAAI,KAAKwyJ,aAAa,CAAC,CAAC,CAAC,EAAE;IAC5DmB,OAAO,CAACnB,aAAa,CAAC,CAAC,CAAC,CAAC;EAC3B;EAEA,SAASmB,OAAOA,CAACngL,SAAS,EAAE;IAC1B,IAAIogL,OAAO,GAAG;MACZpmR,KAAK,EAAEgmG;IACT,CAAC;IACDn3E,MAAM,CAACzsB,IAAI,CAAC0jR,QAAQ,GAAG9/K,SAAS,GAAG;MACjC6qF,cAAc,EAAEhgE,cAAc,CAACu1J,OAAO,CAAC;MACvCp1F,QAAQ,EAAE+zF,YAAY,CAACx4E,QAAQ,CAAC65E,OAAO,CAAC;MACxCpgL,SAAS,EAAEA;IACb,CAAC,CAAC;EACJ;EAEA,OAAOn3E,MAAM;AACf;AAEA,SAASu1P,sCAAsCA,CAAC7+K,IAAI,EAAEsgL,gBAAgB,EAAEC,QAAQ,EAAE;EAChF,IAAIf,YAAY,GAAGx/K,IAAI,CAACriB,KAAK;EAC7B,IAAI2tC,cAAc,GAAGywJ,kEAAkB,CAAC/7K,IAAI,CAAC;EAC7C,IAAI12E,MAAM,GAAG,EAAE;EACf04E,0DAAW,CAACw9K,YAAY,CAAC7/B,QAAQ,CAAC,CAAC,EAAE,UAAUW,IAAI,EAAE;IACnD,IAAI70D,QAAQ,GAAG+zF,YAAY,CAACx4E,QAAQ,CAACs5C,IAAI,CAAC;IAC1C,IAAI7/I,SAAS,GAAG6/I,IAAI,CAAC7lP,KAAK;IAE1B,IAAI6lR,gBAAgB,CAAChgC,IAAI,CAAC7lP,KAAK,EAAEgxL,QAAQ,CAAC,EAAE;MAC1CniK,MAAM,CAACzsB,IAAI,CAAC0jR,QAAQ,GAAG9/K,SAAS,GAAG;QACjC6qF,cAAc,EAAEhgE,cAAc,CAACg1H,IAAI,CAAC;QACpC70D,QAAQ,EAAEA,QAAQ;QAClBhrF,SAAS,EAAEA;MACb,CAAC,CAAC;IACJ;EACF,CAAC,CAAC;EACF,OAAOn3E,MAAM;AACf;;;;;;;;;;;;;;;;;;AChWA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACmD;AACJ;AACI,CAAC;;AAEpD,IAAIw3P,iBAAiB,GAAG,QAAQ;AAEhC,IAAIrvE,QAAQ,GACZ;AACA,YAAY;EACV,SAASA,QAAQA,CAACjE,aAAa,EAAE90H,OAAO,EAAErhD,GAAG,EAAE;IAC7C,IAAI,CAACnqB,IAAI,GAAG,UAAU;IACtB,IAAI,CAACq6E,UAAU,GAAGkqH,QAAQ,CAAClqH,UAAU,CAAC,CAAC;;IAEvC,IAAI,CAAC6vD,iBAAiB,GAAGq6D,QAAQ,CAACr6D,iBAAiB;IACnD,IAAI,CAAClkD,MAAM,GAAGs6G,aAAa;EAC7B;EAEAiE,QAAQ,CAACr6D,iBAAiB,GAAG,YAAY;IACvC,OAAO,CAAC;MACNx3I,IAAI,EAAE,MAAM;MACZsN,IAAI,EAAE;IACR,CAAC,EAAE,OAAO,CAAC;EACb,CAAC;EAEDukM,QAAQ,CAACh4M,SAAS,CAACi0M,YAAY,GAAG,YAAY;IAC5C,OAAO,IAAI,CAACqzE,UAAU;EACxB,CAAC;EAEDtvE,QAAQ,CAACh4M,SAAS,CAAC6rF,QAAQ,GAAG,YAAY;IACxC,OAAO,IAAI,CAAC4N,MAAM;EACpB,CAAC;EAEDu+G,QAAQ,CAACh4M,SAAS,CAACypG,OAAO,GAAG,YAAY;IACvC,OAAO,IAAI,CAACioC,KAAK;EACnB,CAAC;EAEDsmE,QAAQ,CAACh4M,SAAS,CAAC00M,YAAY,GAAG,YAAY;IAC5C,OAAO,IAAI,CAAC6yE,GAAG;EACjB,CAAC;EAEDvvE,QAAQ,CAACh4M,SAAS,CAAC40M,aAAa,GAAG,YAAY;IAC7C,OAAO,IAAI,CAAC4yE,GAAG;EACjB,CAAC;EAEDxvE,QAAQ,CAACh4M,SAAS,CAAC+2K,SAAS,GAAG,YAAY;IACzC,OAAO,IAAI,CAACumC,OAAO;EACrB,CAAC;EACD;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EAGEtF,QAAQ,CAACh4M,SAAS,CAAC03M,iBAAiB,GAAG,YAAY;IACjD,OAAO,IAAI,CAAC+vE,eAAe;EAC7B,CAAC;EACD;AACF;AACA;AACA;;EAGEzvE,QAAQ,CAACh4M,SAAS,CAACu1M,WAAW,GAAG,UAAUC,IAAI,EAAE;IAC/CA,IAAI,GAAG7/B,sDAAoB,CAAC6/B,IAAI,CAAC;IACjC,IAAIjuM,CAAC,GAAGiuM,IAAI,CAACmyE,WAAW,CAAC,CAAC;IAC1B,IAAI5gR,CAAC,GAAGyuM,IAAI,CAACE,QAAQ,CAAC,CAAC,GAAG,CAAC;IAC3B,IAAIkyE,IAAI,GAAG7gR,CAAC,GAAG,EAAE,GAAG,GAAG,GAAGA,CAAC,GAAG,EAAE,GAAGA,CAAC;IACpC,IAAIvD,CAAC,GAAGgyM,IAAI,CAACqyE,OAAO,CAAC,CAAC;IACtB,IAAIC,IAAI,GAAGtkR,CAAC,GAAG,EAAE,GAAG,GAAG,GAAGA,CAAC,GAAG,EAAE,GAAGA,CAAC;IACpC,IAAI0yM,GAAG,GAAGV,IAAI,CAACuyE,MAAM,CAAC,CAAC;IACvB7xE,GAAG,GAAG7yM,IAAI,CAACo6F,GAAG,CAAC,CAACy4G,GAAG,GAAG,CAAC,GAAG,IAAI,CAACwB,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC;IACxD,OAAO;MACLnwM,CAAC,EAAEA,CAAC,GAAG,EAAE;MACTR,CAAC,EAAE6gR,IAAI;MACPpkR,CAAC,EAAEskR,IAAI;MACP5xE,GAAG,EAAEA,GAAG;MACRrB,IAAI,EAAEW,IAAI,CAACwyE,OAAO,CAAC,CAAC;MACpB1yE,YAAY,EAAE/tM,CAAC,GAAG,GAAG,GAAGqgR,IAAI,GAAG,GAAG,GAAGE,IAAI;MACzCtyE,IAAI,EAAEA;IACR,CAAC;EACH,CAAC;EAEDwC,QAAQ,CAACh4M,SAAS,CAAC80M,WAAW,GAAG,UAAUU,IAAI,EAAEn1M,CAAC,EAAE;IAClDA,CAAC,GAAGA,CAAC,IAAI,CAAC;IAEV,IAAIA,CAAC,KAAK,CAAC,EAAE;MACX,OAAO,IAAI,CAACk1M,WAAW,CAACC,IAAI,CAAC;IAC/B;IAEAA,IAAI,GAAG,IAAI5xM,IAAI,CAAC,IAAI,CAAC2xM,WAAW,CAACC,IAAI,CAAC,CAACX,IAAI,CAAC;IAC5CW,IAAI,CAACyyE,OAAO,CAACzyE,IAAI,CAACqyE,OAAO,CAAC,CAAC,GAAGxnR,CAAC,CAAC;IAChC,OAAO,IAAI,CAACk1M,WAAW,CAACC,IAAI,CAAC;EAC/B,CAAC;EAEDwC,QAAQ,CAACh4M,SAAS,CAACwxF,MAAM,GAAG,UAAUvS,OAAO,EAAErhD,GAAG,EAAE;IAClD,IAAI,CAAC6pP,eAAe,GAAG,CAAC,IAAI,CAAChuL,MAAM,CAAC5N,QAAQ,CAAC,UAAU,CAAC,CAACzqF,GAAG,CAAC,UAAU,CAAC;IACxE,IAAI,CAACk8M,OAAO,GAAG,IAAI,CAAC7jH,MAAM,CAACr4F,GAAG,CAAC,QAAQ,CAAC;IACxC,IAAI,CAAC8mR,UAAU,GAAG,IAAI,CAACzuL,MAAM,CAAC5N,QAAQ,CAAC,WAAW,CAAC,CAACiQ,YAAY,CAAC,CAAC,CAACqI,SAAS,IAAI,CAAC;IACjF,IAAI,CAACmjL,UAAU,GAAG,IAAI,CAACa,aAAa,CAAC,IAAI,CAACC,gBAAgB,CAAC,CAAC,CAAC;IAC7D,IAAIC,KAAK,GAAG,IAAI,CAACf,UAAU,CAACe,KAAK,IAAI,CAAC;IACtC,IAAIC,OAAO,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC;IAEjC,IAAIhxE,QAAQ,GAAG,IAAI,CAAC79G,MAAM,CAAC8uL,WAAW,CAAC,CAAC,CAAC1iR,KAAK,CAAC,CAAC;IAEhD,IAAI+9M,YAAY,GAAG,IAAI,CAACnqH,MAAM,CAAC40B,kBAAkB,CAAC,CAAC;IAEnD,IAAIm6J,WAAW,GAAG,IAAI,CAAClrE,OAAO,KAAK,YAAY,GAAG,CAAC+qE,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAEA,KAAK,CAAC;IACzE9/K,0DAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU1b,GAAG,EAAE;MACjC,IAAI47L,iBAAiB,CAACnxE,QAAQ,EAAEzqH,GAAG,CAAC,EAAE;QACpC+2H,YAAY,CAAC0kE,OAAO,CAACz7L,GAAG,CAAC,CAAC,GAAGyqH,QAAQ,CAACzqH,GAAG,CAAC,GAAG27L,WAAW,CAAC37L,GAAG,CAAC;MAC/D;IACF,CAAC,CAAC;IACF,IAAI67L,QAAQ,GAAG;MACbt9P,KAAK,EAAEwS,GAAG,CAAC+rE,QAAQ,CAAC,CAAC;MACrBr+E,MAAM,EAAEsS,GAAG,CAACgsE,SAAS,CAAC;IACxB,CAAC;IACD,IAAI++K,YAAY,GAAG,IAAI,CAACj3I,KAAK,GAAGx1C,0DAAoB,CAAC0nH,YAAY,EAAE8kE,QAAQ,CAAC;IAC5EngL,0DAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU1b,GAAG,EAAE;MACjC,IAAI,CAAC47L,iBAAiB,CAACnxE,QAAQ,EAAEzqH,GAAG,CAAC,EAAE;QACrCyqH,QAAQ,CAACzqH,GAAG,CAAC,GAAG87L,YAAY,CAACL,OAAO,CAACz7L,GAAG,CAAC,CAAC,GAAG27L,WAAW,CAAC37L,GAAG,CAAC;MAC/D;IACF,CAAC,CAAC;IAEF,SAAS47L,iBAAiBA,CAACnxE,QAAQ,EAAEzqH,GAAG,EAAE;MACxC,OAAOyqH,QAAQ,CAACzqH,GAAG,CAAC,IAAI,IAAI,IAAIyqH,QAAQ,CAACzqH,GAAG,CAAC,KAAK,MAAM;IAC1D,CAAC,CAAC;;IAGF,IAAI,CAAC06L,GAAG,GAAGjwE,QAAQ,CAAC,CAAC,CAAC;IACtB,IAAI,CAACkwE,GAAG,GAAGlwE,QAAQ,CAAC,CAAC,CAAC;EACxB,CAAC;EACD;AACF;AACA;EACE;EACA;;EAGAU,QAAQ,CAACh4M,SAAS,CAACq9E,WAAW,GAAG,UAAU5yE,IAAI,EAAEuzL,KAAK,EAAE;IACtDz1F,6DAAc,CAAC99F,IAAI,CAAC,KAAKA,IAAI,GAAGA,IAAI,CAAC,CAAC,CAAC,CAAC;IACxCuzL,KAAK,IAAI,IAAI,KAAKA,KAAK,GAAG,IAAI,CAAC;IAC/B,IAAI4qF,OAAO,GAAG,IAAI,CAACrzE,WAAW,CAAC9qM,IAAI,CAAC;IACpC,IAAI0/H,KAAK,GAAG,IAAI,CAACm9I,UAAU;IAC3B,IAAI9xE,IAAI,GAAGozE,OAAO,CAACtzE,YAAY,CAAC,CAAC;;IAEjC,IAAItX,KAAK,IAAI,EAAE4qF,OAAO,CAAC/zE,IAAI,IAAI1qE,KAAK,CAAC7mD,KAAK,CAACuxH,IAAI,IAAI+zE,OAAO,CAAC/zE,IAAI,GAAG1qE,KAAK,CAAC96G,GAAG,CAACwlL,IAAI,GAAGwyE,iBAAiB,CAAC,EAAE;MACrG,OAAO,CAAChpL,GAAG,EAAEA,GAAG,CAAC;IACnB;IAEA,IAAIwqL,IAAI,GAAGD,OAAO,CAAC1yE,GAAG;IAEtB,IAAI4yE,OAAO,GAAG,IAAI,CAACX,aAAa,CAAC,CAACh+I,KAAK,CAAC7mD,KAAK,CAACuxH,IAAI,EAAEW,IAAI,CAAC,CAAC,CAACszE,OAAO;IAElE,IAAI,IAAI,CAACxrE,OAAO,KAAK,UAAU,EAAE;MAC/B,OAAO,CAAC,IAAI,CAAC5rE,KAAK,CAACpkI,CAAC,GAAGu7Q,IAAI,GAAG,IAAI,CAACtB,GAAG,GAAG,IAAI,CAACA,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC71I,KAAK,CAACnqI,CAAC,GAAGuhR,OAAO,GAAG,IAAI,CAACtB,GAAG,GAAG,IAAI,CAACA,GAAG,GAAG,CAAC,CAAC;IAC1G;IAEA,OAAO,CAAC,IAAI,CAAC91I,KAAK,CAACpkI,CAAC,GAAGw7Q,OAAO,GAAG,IAAI,CAACvB,GAAG,GAAG,IAAI,CAACA,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC71I,KAAK,CAACnqI,CAAC,GAAGshR,IAAI,GAAG,IAAI,CAACrB,GAAG,GAAG,IAAI,CAACA,GAAG,GAAG,CAAC,CAAC;EAC1G,CAAC;EACD;AACF;AACA;;EAGExvE,QAAQ,CAACh4M,SAAS,CAAC48E,WAAW,GAAG,UAAUF,KAAK,EAAE;IAChD,IAAI84H,IAAI,GAAG,IAAI,CAACuzE,WAAW,CAACrsM,KAAK,CAAC;IAClC,OAAO84H,IAAI,IAAIA,IAAI,CAACX,IAAI;EAC1B,CAAC;EACD;AACF;AACA;;EAGEmD,QAAQ,CAACh4M,SAAS,CAACorI,UAAU,GAAG,UAAU3gI,IAAI,EAAEuzL,KAAK,EAAE;IACrD,IAAIthH,KAAK,GAAG,IAAI,CAACW,WAAW,CAAC5yE,IAAI,EAAEuzL,KAAK,CAAC;IACzC,OAAO;MACL3yD,YAAY,EAAE;QACZ/9H,CAAC,EAAEovE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC6qM,GAAG,GAAG,IAAI,CAACW,UAAU,IAAI,CAAC;QAC9C3gR,CAAC,EAAEm1E,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC8qM,GAAG,GAAG,IAAI,CAACU,UAAU,IAAI,CAAC;QAC9C98P,KAAK,EAAE,IAAI,CAACm8P,GAAG,GAAG,IAAI,CAACW,UAAU;QACjC58P,MAAM,EAAE,IAAI,CAACk8P,GAAG,GAAG,IAAI,CAACU;MAC1B,CAAC;MACDjrM,MAAM,EAAEP,KAAK;MACbq4H,EAAE,EAAE,CAACr4H,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC6qM,GAAG,GAAG,CAAC,EAAE7qM,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC8qM,GAAG,GAAG,CAAC,CAAC;MACtDwB,EAAE,EAAE,CAACtsM,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC6qM,GAAG,GAAG,CAAC,EAAE7qM,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC8qM,GAAG,GAAG,CAAC,CAAC;MACtDyB,EAAE,EAAE,CAACvsM,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC6qM,GAAG,GAAG,CAAC,EAAE7qM,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC8qM,GAAG,GAAG,CAAC,CAAC;MACtD0B,EAAE,EAAE,CAACxsM,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC6qM,GAAG,GAAG,CAAC,EAAE7qM,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC8qM,GAAG,GAAG,CAAC;IACvD,CAAC;EACH,CAAC;EACD;AACF;AACA;AACA;AACA;AACA;;EAGExvE,QAAQ,CAACh4M,SAAS,CAAC+oR,WAAW,GAAG,UAAUrsM,KAAK,EAAE;IAChD,IAAIysM,IAAI,GAAG9lR,IAAI,CAACC,KAAK,CAAC,CAACo5E,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAACg1D,KAAK,CAACpkI,CAAC,IAAI,IAAI,CAACi6Q,GAAG,CAAC,GAAG,CAAC;IAC/D,IAAI6B,IAAI,GAAG/lR,IAAI,CAACC,KAAK,CAAC,CAACo5E,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAACg1D,KAAK,CAACnqI,CAAC,IAAI,IAAI,CAACigR,GAAG,CAAC,GAAG,CAAC;IAC/D,IAAIr9I,KAAK,GAAG,IAAI,CAACm9I,UAAU,CAACn9I,KAAK;IAEjC,IAAI,IAAI,CAACmzE,OAAO,KAAK,UAAU,EAAE;MAC/B,OAAO,IAAI,CAAC+rE,qBAAqB,CAACD,IAAI,EAAED,IAAI,GAAG,CAAC,EAAEh/I,KAAK,CAAC;IAC1D;IAEA,OAAO,IAAI,CAACk/I,qBAAqB,CAACF,IAAI,EAAEC,IAAI,GAAG,CAAC,EAAEj/I,KAAK,CAAC;EAC1D,CAAC;EAED6tE,QAAQ,CAACh4M,SAAS,CAAC+9Q,cAAc,GAAG,UAAU9+L,OAAO,EAAE6U,MAAM,EAAE9yF,KAAK,EAAE;IACpE,IAAI8gG,QAAQ,GAAGk8K,WAAW,CAAClqL,MAAM,CAAC;IAClC,OAAOgO,QAAQ,KAAK,IAAI,GAAGA,QAAQ,CAACzkB,WAAW,CAACr8E,KAAK,CAAC,GAAG,IAAI;EAC/D,CAAC;EAEDg3M,QAAQ,CAACh4M,SAAS,CAACi+Q,gBAAgB,GAAG,UAAUh/L,OAAO,EAAE6U,MAAM,EAAEusH,KAAK,EAAE;IACtE,IAAIv+G,QAAQ,GAAGk8K,WAAW,CAAClqL,MAAM,CAAC;IAClC,OAAOgO,QAAQ,KAAK,IAAI,GAAGA,QAAQ,CAACllB,WAAW,CAACyjI,KAAK,CAAC,GAAG,IAAI;EAC/D,CAAC;EAEDrI,QAAQ,CAACh4M,SAAS,CAAC4/J,YAAY,GAAG,UAAUljF,KAAK,EAAE;IACjD/mE,OAAO,CAACC,IAAI,CAAC,kBAAkB,CAAC;IAChC,OAAO,KAAK;EACd,CAAC;EACD;AACF;AACA;AACA;;EAGEoiM,QAAQ,CAACh4M,SAAS,CAACooR,gBAAgB,GAAG,YAAY;IAChD,IAAIj+I,KAAK,GAAG,IAAI,CAAC1wC,MAAM,CAACr4F,GAAG,CAAC,OAAO,CAAC;IAEpC,IAAIkoR,eAAe,CAAC,CAAC;;IAErB,IAAI/gL,6DAAc,CAAC4hC,KAAK,CAAC,IAAIA,KAAK,CAAC7pI,MAAM,KAAK,CAAC,EAAE;MAC/C6pI,KAAK,GAAGA,KAAK,CAAC,CAAC,CAAC;IAClB;IAEA,IAAI,CAAC5hC,6DAAc,CAAC4hC,KAAK,CAAC,EAAE;MAC1B,IAAIo/I,QAAQ,GAAGp/I,KAAK,CAACrmI,QAAQ,CAAC,CAAC,CAAC,CAAC;;MAEjC,IAAI,SAAS,CAAC2S,IAAI,CAAC8yQ,QAAQ,CAAC,EAAE;QAC5BD,eAAe,GAAG,CAACC,QAAQ,GAAG,QAAQ,EAAEA,QAAQ,GAAG,QAAQ,CAAC;MAC9D,CAAC,CAAC;;MAGF,IAAI,sBAAsB,CAAC9yQ,IAAI,CAAC8yQ,QAAQ,CAAC,EAAE;QACzC,IAAIjmM,KAAK,GAAG,IAAI,CAACiyH,WAAW,CAACg0E,QAAQ,CAAC;QACtC,IAAIn0E,QAAQ,GAAG9xH,KAAK,CAACkyH,IAAI;QACzBJ,QAAQ,CAACK,QAAQ,CAACL,QAAQ,CAACM,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAIrmL,GAAG,GAAG,IAAI,CAACylL,WAAW,CAACM,QAAQ,EAAE,CAAC,CAAC,CAAC;QACxCk0E,eAAe,GAAG,CAAChmM,KAAK,CAACgyH,YAAY,EAAEjmL,GAAG,CAACimL,YAAY,CAAC;MAC1D,CAAC,CAAC;;MAGF,IAAI,mCAAmC,CAAC7+L,IAAI,CAAC8yQ,QAAQ,CAAC,EAAE;QACtDD,eAAe,GAAG,CAACC,QAAQ,EAAEA,QAAQ,CAAC;MACxC;IACF,CAAC,MAAM;MACLD,eAAe,GAAGn/I,KAAK;IACzB;IAEA,IAAI,CAACm/I,eAAe,EAAE;MACpB,IAAIrnQ,IAAqC,EAAE;QACzCsmF,8DAAe,CAAC,qBAAqB,CAAC;MACxC,CAAC,CAAC;;MAGF,OAAO4hC,KAAK;IACd;IAEA,IAAItpC,GAAG,GAAG,IAAI,CAACsnL,aAAa,CAACmB,eAAe,CAAC;IAE7C,IAAIzoL,GAAG,CAACvd,KAAK,CAACuxH,IAAI,GAAGh0G,GAAG,CAACxxE,GAAG,CAACwlL,IAAI,EAAE;MACjCy0E,eAAe,CAACx9K,OAAO,CAAC,CAAC;IAC3B;IAEA,OAAOw9K,eAAe;EACxB,CAAC;EACD;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;EAGEtxE,QAAQ,CAACh4M,SAAS,CAACmoR,aAAa,GAAG,UAAUh+I,KAAK,EAAE;IAClD,IAAIq/I,WAAW,GAAG,CAAC,IAAI,CAACj0E,WAAW,CAACprE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAACorE,WAAW,CAACprE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,IAAIs/I,QAAQ;IAEZ,IAAID,WAAW,CAAC,CAAC,CAAC,CAAC30E,IAAI,GAAG20E,WAAW,CAAC,CAAC,CAAC,CAAC30E,IAAI,EAAE;MAC7C40E,QAAQ,GAAG,IAAI;MACfD,WAAW,CAAC19K,OAAO,CAAC,CAAC;IACvB;IAEA,IAAI49K,MAAM,GAAGrmR,IAAI,CAACC,KAAK,CAACkmR,WAAW,CAAC,CAAC,CAAC,CAAC30E,IAAI,GAAGwyE,iBAAiB,CAAC,GAAGhkR,IAAI,CAACC,KAAK,CAACkmR,WAAW,CAAC,CAAC,CAAC,CAAC30E,IAAI,GAAGwyE,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5H;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;IAEA,IAAI7xE,IAAI,GAAG,IAAI5xM,IAAI,CAAC4lR,WAAW,CAAC,CAAC,CAAC,CAAC30E,IAAI,CAAC;IACxC,IAAI80E,YAAY,GAAGn0E,IAAI,CAACqyE,OAAO,CAAC,CAAC;IACjC,IAAI+B,UAAU,GAAGJ,WAAW,CAAC,CAAC,CAAC,CAACh0E,IAAI,CAACqyE,OAAO,CAAC,CAAC;IAC9CryE,IAAI,CAACyyE,OAAO,CAAC0B,YAAY,GAAGD,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;;IAEzC,IAAIG,OAAO,GAAGr0E,IAAI,CAACqyE,OAAO,CAAC,CAAC;IAE5B,IAAIgC,OAAO,KAAKD,UAAU,EAAE;MAC1B,IAAIpxK,IAAI,GAAGg9F,IAAI,CAACwyE,OAAO,CAAC,CAAC,GAAGwB,WAAW,CAAC,CAAC,CAAC,CAAC30E,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;MAE5D,OAAO,CAACg1E,OAAO,GAAGr0E,IAAI,CAACqyE,OAAO,CAAC,CAAC,MAAM+B,UAAU,IAAI,CAACp0E,IAAI,CAACwyE,OAAO,CAAC,CAAC,GAAGwB,WAAW,CAAC,CAAC,CAAC,CAAC30E,IAAI,IAAIr8F,IAAI,GAAG,CAAC,EAAE;QACrGkxK,MAAM,IAAIlxK,IAAI;QACdg9F,IAAI,CAACyyE,OAAO,CAAC4B,OAAO,GAAGrxK,IAAI,CAAC;MAC9B;IACF;IAEA,IAAI6vK,KAAK,GAAGhlR,IAAI,CAACC,KAAK,CAAC,CAAComR,MAAM,GAAGF,WAAW,CAAC,CAAC,CAAC,CAACtzE,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7D,IAAI4yE,OAAO,GAAGW,QAAQ,GAAG,CAACpB,KAAK,GAAG,CAAC,GAAGA,KAAK,GAAG,CAAC;IAC/CoB,QAAQ,IAAID,WAAW,CAAC19K,OAAO,CAAC,CAAC;IACjC,OAAO;MACLq+B,KAAK,EAAE,CAACq/I,WAAW,CAAC,CAAC,CAAC,CAACl0E,YAAY,EAAEk0E,WAAW,CAAC,CAAC,CAAC,CAACl0E,YAAY,CAAC;MACjEhyH,KAAK,EAAEkmM,WAAW,CAAC,CAAC,CAAC;MACrBn6P,GAAG,EAAEm6P,WAAW,CAAC,CAAC,CAAC;MACnBE,MAAM,EAAEA,MAAM;MACdrB,KAAK,EAAEA,KAAK;MACZ;MACAS,OAAO,EAAEA,OAAO;MAChBjxE,KAAK,EAAE2xE,WAAW,CAAC,CAAC,CAAC,CAACtzE,GAAG;MACzB0B,KAAK,EAAE4xE,WAAW,CAAC,CAAC,CAAC,CAACtzE;IACxB,CAAC;EACH,CAAC;EACD;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EAGE8B,QAAQ,CAACh4M,SAAS,CAACqpR,qBAAqB,GAAG,UAAUP,OAAO,EAAE5yE,GAAG,EAAE/rE,KAAK,EAAE;IACxE,IAAI2/I,SAAS,GAAG,IAAI,CAAC3B,aAAa,CAACh+I,KAAK,CAAC;IAEzC,IAAI2+I,OAAO,GAAGgB,SAAS,CAACzB,KAAK,IAAIS,OAAO,KAAK,CAAC,IAAI5yE,GAAG,GAAG4zE,SAAS,CAACjyE,KAAK,IAAIixE,OAAO,KAAKgB,SAAS,CAACzB,KAAK,IAAInyE,GAAG,GAAG4zE,SAAS,CAAClyE,KAAK,EAAE;MAC/H,OAAO,IAAI;IACb;IAEA,IAAImyE,MAAM,GAAG,CAACjB,OAAO,GAAG,CAAC,IAAI,CAAC,GAAGgB,SAAS,CAACjyE,KAAK,GAAG3B,GAAG;IACtD,IAAIV,IAAI,GAAG,IAAI5xM,IAAI,CAACkmR,SAAS,CAACxmM,KAAK,CAACuxH,IAAI,CAAC;IACzCW,IAAI,CAACyyE,OAAO,CAAC,CAAC6B,SAAS,CAACxmM,KAAK,CAAC9/E,CAAC,GAAGumR,MAAM,CAAC;IACzC,OAAO,IAAI,CAACx0E,WAAW,CAACC,IAAI,CAAC;EAC/B,CAAC;EAEDwC,QAAQ,CAACroM,MAAM,GAAG,UAAUsvE,OAAO,EAAErhD,GAAG,EAAE;IACxC,IAAIosP,YAAY,GAAG,EAAE;IACrB/qM,OAAO,CAACyxB,aAAa,CAAC,UAAU,EAAE,UAAUqjG,aAAa,EAAE;MACzD,IAAIl1F,QAAQ,GAAG,IAAIm5F,QAAQ,CAACjE,aAAa,EAAE90H,OAAO,EAAErhD,GAAG,CAAC;MACxDosP,YAAY,CAAC5mR,IAAI,CAACy7G,QAAQ,CAAC;MAC3Bk1F,aAAa,CAACr5G,gBAAgB,GAAGmkB,QAAQ;IAC3C,CAAC,CAAC;IACF5/B,OAAO,CAACwtH,UAAU,CAAC,UAAUw9E,cAAc,EAAE;MAC3C,IAAIA,cAAc,CAAC7oR,GAAG,CAAC,kBAAkB,CAAC,KAAK,UAAU,EAAE;QACzD;QACA6oR,cAAc,CAACvvL,gBAAgB,GAAGsvL,YAAY,CAACC,cAAc,CAAC7oR,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;MAC1F;IACF,CAAC,CAAC;IACF,OAAO4oR,YAAY;EACrB,CAAC;EAEDhyE,QAAQ,CAAClqH,UAAU,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;EACvC,OAAOkqH,QAAQ;AACjB,CAAC,CAAC,CAAC;AAEH,SAASgmE,WAAWA,CAAClqL,MAAM,EAAE;EAC3B,IAAIigH,aAAa,GAAGjgH,MAAM,CAACigH,aAAa;EACxC,IAAIroH,WAAW,GAAGoI,MAAM,CAACpI,WAAW;EACpC,IAAIoW,QAAQ,GAAGiyG,aAAa,GAAGA,aAAa,CAACr5G,gBAAgB,GAAGhP,WAAW,GAAGA,WAAW,CAACgP,gBAAgB,GAAG,IAAI;EACjH,OAAOoH,QAAQ;AACjB;AAEA,iEAAek2G,QAAQ;;;;;;;;;;;;;;;;;;;ACtbvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACkC;AACiB;AACG;AACmC;AAEzF,IAAID,aAAa,GACjB;AACA,UAAUxiH,MAAM,EAAE;EAChBL,gDAAS,CAAC6iH,aAAa,EAAExiH,MAAM,CAAC;EAEhC,SAASwiH,aAAaA,CAAA,EAAG;IACvB,IAAI9pM,KAAK,GAAGsnF,MAAM,KAAK,IAAI,IAAIA,MAAM,CAAC7yF,KAAK,CAAC,IAAI,EAAE0G,SAAS,CAAC,IAAI,IAAI;IAEpE6E,KAAK,CAACwF,IAAI,GAAGskM,aAAa,CAACtkM,IAAI;IAC/B,OAAOxF,KAAK;EACd;EACA;AACF;AACA;;EAGE8pM,aAAa,CAAC/3M,SAAS,CAAC8pH,IAAI,GAAG,UAAU/jB,MAAM,EAAEthB,WAAW,EAAExF,OAAO,EAAE;IACrE,IAAIqyJ,mBAAmB,GAAGztB,gEAAe,CAAC99G,MAAM,CAAC;IAEjDxQ,MAAM,CAACv1F,SAAS,CAAC8pH,IAAI,CAACpnH,KAAK,CAAC,IAAI,EAAE0G,SAAS,CAAC;IAE5CmoO,6BAA6B,CAACxrI,MAAM,EAAEurI,mBAAmB,CAAC;EAC5D,CAAC;EACD;AACF;AACA;;EAGEv5B,aAAa,CAAC/3M,SAAS,CAACg5H,WAAW,GAAG,UAAUjzB,MAAM,EAAE;IACtDxQ,MAAM,CAACv1F,SAAS,CAACg5H,WAAW,CAACt2H,KAAK,CAAC,IAAI,EAAE0G,SAAS,CAAC;IAEnDmoO,6BAA6B,CAAC,IAAI,CAACxrI,MAAM,EAAEA,MAAM,CAAC;EACpD,CAAC;EAEDgyG,aAAa,CAAC/3M,SAAS,CAACuoR,WAAW,GAAG,YAAY;IAChD;IACA,OAAO,IAAI,CAACxiL,MAAM,CAACuxG,QAAQ;EAC7B,CAAC;EAEDS,aAAa,CAACtkM,IAAI,GAAG,UAAU;EAC/BskM,aAAa,CAAC3hH,aAAa,GAAG;IAC5B;IACA1oF,CAAC,EAAE,CAAC;IACJi+G,IAAI,EAAE,EAAE;IACRC,GAAG,EAAE,EAAE;IACP0rF,QAAQ,EAAE,EAAE;IACZ;IACArrF,MAAM,EAAE,YAAY;IACpB;IACAwE,SAAS,EAAE;MACTpF,IAAI,EAAE,IAAI;MACVe,SAAS,EAAE;QACT31B,KAAK,EAAE,MAAM;QACbrrE,KAAK,EAAE,CAAC;QACR3X,IAAI,EAAE;MACR;IACF,CAAC;IACD;IACA0jF,SAAS,EAAE;MACTV,KAAK,EAAE,MAAM;MACbE,WAAW,EAAE,CAAC;MACdD,WAAW,EAAE;IACf,CAAC;IACD;IACA8gH,QAAQ,EAAE;MACRnsF,IAAI,EAAE,IAAI;MACV+pF,QAAQ,EAAE,CAAC;MACX;MACAp8K,QAAQ,EAAE,OAAO;MACjB8pI,MAAM,EAAE,KAAK;MACbrsE,KAAK,EAAE;IACT,CAAC;IACD;IACAqgH,UAAU,EAAE;MACVzrF,IAAI,EAAE,IAAI;MACV;MACAryF,QAAQ,EAAE,OAAO;MACjB8pI,MAAM,EAAE,CAAC;MACT;MACA31C,KAAK,EAAE,QAAQ;MACf2O,SAAS,EAAE,IAAI;MACfrlC,KAAK,EAAE;IACT,CAAC;IACD;IACA6/G,SAAS,EAAE;MACTjrF,IAAI,EAAE,IAAI;MACV;MACAryF,QAAQ,EAAE,IAAI;MACd8pI,MAAM,EAAE,EAAE;MACVhnC,SAAS,EAAE,IAAI;MACfrlC,KAAK,EAAE,MAAM;MACbt9D,UAAU,EAAE,YAAY;MACxBE,UAAU,EAAE,QAAQ;MACpBrB,QAAQ,EAAE;IACZ;EACF,CAAC;EACD,OAAO+/K,aAAa;AACtB,CAAC,CAACnZ,2DAAc,CAAC;AAEjB,SAAS2yC,6BAA6BA,CAAC3zN,MAAM,EAAEmkN,GAAG,EAAE;EAClD;EACA,IAAIzqB,QAAQ,GAAG15L,MAAM,CAAC05L,QAAQ;EAC9B,IAAI6yE,WAAW;EAEf,IAAI,CAAC5hL,6DAAc,CAAC+uG,QAAQ,CAAC,EAAE;IAC7B6yE,WAAW,GAAGvsQ,MAAM,CAAC05L,QAAQ,GAAG,CAACA,QAAQ,EAAEA,QAAQ,CAAC;EACtD,CAAC,MAAM;IACL6yE,WAAW,GAAG7yE,QAAQ;EACxB;EAEA,IAAI6yE,WAAW,CAAC7pR,MAAM,KAAK,CAAC,EAAE;IAC5B6pR,WAAW,CAAC,CAAC,CAAC,GAAGA,WAAW,CAAC,CAAC,CAAC;EACjC;EAEA,IAAIj5D,UAAU,GAAG3oH,yDAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU6hL,KAAK,EAAE;IACnD;IACA;IACA;IACA,IAAIF,+DAAc,CAACnoD,GAAG,EAAEqoD,KAAK,CAAC,EAAE;MAC9BD,WAAW,CAACC,KAAK,CAAC,GAAG,MAAM;IAC7B;IAEA,OAAOD,WAAW,CAACC,KAAK,CAAC,IAAI,IAAI,IAAID,WAAW,CAACC,KAAK,CAAC,KAAK,MAAM;EACpE,CAAC,CAAC;EACFn6D,iEAAgB,CAACryM,MAAM,EAAEmkN,GAAG,EAAE;IAC5BtuN,IAAI,EAAE,KAAK;IACXy9M,UAAU,EAAEA;EACd,CAAC,CAAC;AACJ;AAEA,iEAAenZ,aAAa;;;;;;;;;;;;;;;ACjL5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASsyE,qBAAqBA,CAACvoL,QAAQ,EAAE;EACtD,IAAI7L,IAAI,GAAG6L,QAAQ,CAAC2H,OAAO,CAAC,CAAC;EAC7B,IAAIqgL,SAAS,GAAGhoL,QAAQ,CAACmyG,YAAY,CAAC,CAAC;EACvC,OAAO;IACLnyG,QAAQ,EAAE;MACRruF,IAAI,EAAE,UAAU;MAChBnG,CAAC,EAAE2oF,IAAI,CAAC3oF,CAAC;MACT/F,CAAC,EAAE0uF,IAAI,CAAC1uF,CAAC;MACT6jB,KAAK,EAAE6qE,IAAI,CAAC7qE,KAAK;MACjBE,MAAM,EAAE2qE,IAAI,CAAC3qE,MAAM;MACnBg/P,SAAS,EAAExoL,QAAQ,CAAC4yG,YAAY,CAAC,CAAC;MAClC61E,UAAU,EAAEzoL,QAAQ,CAAC8yG,aAAa,CAAC,CAAC;MACpCk1E,SAAS,EAAE;QACTxmM,KAAK,EAAEwmM,SAAS,CAACxmM,KAAK;QACtBj0D,GAAG,EAAEy6P,SAAS,CAACz6P,GAAG;QAClBg5P,KAAK,EAAEyB,SAAS,CAACzB,KAAK;QACtBmC,QAAQ,EAAEV,SAAS,CAACJ;MACtB;IACF,CAAC;IACD9rP,GAAG,EAAE;MACHi7D,KAAK,EAAE,SAAAA,CAAUpuF,IAAI,EAAEuzL,KAAK,EAAE;QAC5B,OAAOl8F,QAAQ,CAACzkB,WAAW,CAAC5yE,IAAI,EAAEuzL,KAAK,CAAC;MAC1C;IACF;EACF,CAAC;AACH;;;;;;;;;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACkC;AACJ;AAE9B,IAAIysF,MAAM,GACV;AACA,UAAUl1L,MAAM,EAAE;EAChBL,gDAAS,CAACu1L,MAAM,EAAEl1L,MAAM,CAAC;EAEzB,SAASk1L,MAAMA,CAAC97L,GAAG,EAAEzK,KAAK,EAAEslK,WAAW,EAAE9rG,QAAQ,EAAE1kH,QAAQ,EAAE;IAC3D,IAAI/qB,KAAK,GAAGsnF,MAAM,CAACr1F,IAAI,CAAC,IAAI,EAAEyuF,GAAG,EAAEzK,KAAK,EAAEslK,WAAW,CAAC,IAAI,IAAI;IAC9D;AACJ;AACA;AACA;;IAGIv7O,KAAK,CAACma,KAAK,GAAG,CAAC;IACfna,KAAK,CAACwF,IAAI,GAAGiqI,QAAQ,IAAI,OAAO;IAChCzvI,KAAK,CAAC+qB,QAAQ,GAAGA,QAAQ,IAAI,QAAQ;IACrC,OAAO/qB,KAAK;EACd;EAEAw8Q,MAAM,CAACzqR,SAAS,CAACq5F,YAAY,GAAG,YAAY;IAC1C,IAAIrgE,QAAQ,GAAG,IAAI,CAACA,QAAQ;IAC5B,OAAOA,QAAQ,KAAK,KAAK,IAAIA,QAAQ,KAAK,QAAQ;EACpD,CAAC;EACD;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;EAGEyxP,MAAM,CAACzqR,SAAS,CAAC2jM,eAAe,GAAG,UAAU9tF,GAAG,EAAE;IAChD,IAAI3qB,GAAG,GAAG,IAAI,CAACoU,SAAS,CAAC,CAAC;IAC1BpU,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC0b,aAAa,CAAC1b,GAAG,CAAC,CAAC,CAAC,CAAC;IACnCA,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC0b,aAAa,CAAC1b,GAAG,CAAC,CAAC,CAAC,CAAC;IACnC2qB,GAAG,IAAI3qB,GAAG,CAAC,CAAC,CAAC,GAAGA,GAAG,CAAC,CAAC,CAAC,IAAIA,GAAG,CAAC4gB,OAAO,CAAC,CAAC;IACvC,OAAO5gB,GAAG;EACZ,CAAC;EAEDu/L,MAAM,CAACzqR,SAAS,CAAC48E,WAAW,GAAG,UAAUF,KAAK,EAAEshH,KAAK,EAAE;IACrD,OAAO,IAAI,CAACb,WAAW,CAAC,IAAI,CAACgjC,YAAY,CAACzjJ,KAAK,CAAC,IAAI,CAACiS,GAAG,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAEqvG,KAAK,CAAC;EACpF,CAAC;EACD;AACF;AACA;AACA;;EAGEysF,MAAM,CAACzqR,SAAS,CAAC8wG,mBAAmB,GAAG,UAAU9S,IAAI,EAAE;IACrD,IAAI,IAAI,CAACvqF,IAAI,KAAK,UAAU,EAAE;MAC5B,OAAO,KAAK;IACd;IAEA,IAAI,CAACszE,KAAK,CAACgf,MAAM,CAAC2kL,gBAAgB,GAAG1sL,IAAI;IACzC,IAAI,CAAC9Z,KAAK,CAACymM,WAAW,CAAC3sL,IAAI,CAAC;EAC9B,CAAC;EAED,OAAOysL,MAAM;AACf,CAAC,CAAClhC,gDAAI,CAAC;AAEP,iEAAekhC,MAAM;;;;;;;;;;;;;;;;;;;;;AC3GrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACkC;AACiB;AACG;AACY;AACX;AAEvD,IAAIn1D,kBAAkB,GACtB;AACA,UAAU//H,MAAM,EAAE;EAChBL,gDAAS,CAACogI,kBAAkB,EAAE//H,MAAM,CAAC;EAErC,SAAS+/H,kBAAkBA,CAAA,EAAG;IAC5B,OAAO//H,MAAM,KAAK,IAAI,IAAIA,MAAM,CAAC7yF,KAAK,CAAC,IAAI,EAAE0G,SAAS,CAAC,IAAI,IAAI;EACjE;EAEAksN,kBAAkB,CAACt1N,SAAS,CAACo6L,gBAAgB,GAAG,YAAY;IAC1D,OAAO,IAAI,CAACzmB,sBAAsB,CAAC,MAAM,EAAEX,4DAAgB,CAAC,CAACY,MAAM,CAAC,CAAC,CAAC;EACxE,CAAC;EAED0hD,kBAAkB,CAAC7hN,IAAI,GAAG,iBAAiB;EAC3C,OAAO6hN,kBAAkB;AAC3B,CAAC,CAAC12B,2DAAc,CAAC;AAEa;AAC9Br2F,2DAAY,CAAC+sH,kBAAkB,EAAEuuD,0EAAoB,CAAC;AACtD,iEAAevuD,kBAAkB;;;;;;;;;;;;;;;;ACnEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACmD;AAEnD,IAAIs1D,SAAS,GACb;AACA,YAAY;EACV,SAASA,SAASA,CAACzkR,IAAI,EAAE;IACvB,IAAI,CAACsN,IAAI,GAAG,WAAW;IACvB,IAAI,CAACo3Q,QAAQ,GAAG,EAAE;IAClB,IAAI,CAACC,KAAK,GAAG,CAAC,CAAC;IACf,IAAI,CAAC3kR,IAAI,GAAGA,IAAI,IAAI,EAAE;EACxB;EAEAykR,SAAS,CAAC5qR,SAAS,CAACgrI,OAAO,GAAG,UAAUr8C,GAAG,EAAE;IAC3C,OAAO,IAAI,CAACm8L,KAAK,CAACn8L,GAAG,CAAC;EACxB,CAAC;EAEDi8L,SAAS,CAAC5qR,SAAS,CAACsmG,OAAO,GAAG,YAAY;IACxC,OAAOiC,yDAAU,CAAC,IAAI,CAACsiL,QAAQ,EAAE,UAAUl8L,GAAG,EAAE;MAC9C,OAAO,IAAI,CAACm8L,KAAK,CAACn8L,GAAG,CAAC;IACxB,CAAC,EAAE,IAAI,CAAC;EACV,CAAC;EAEDi8L,SAAS,CAAC5qR,SAAS,CAACioJ,cAAc,GAAG,UAAU44H,SAAS,EAAE;IACxDA,SAAS,GAAGA,SAAS,CAACluP,WAAW,CAAC,CAAC;IACnC,OAAO41E,4DAAa,CAAC,IAAI,CAACjC,OAAO,CAAC,CAAC,EAAE,UAAUC,IAAI,EAAE;MACnD,OAAOA,IAAI,CAACriB,KAAK,CAACzwE,IAAI,KAAKotQ,SAAS;IACtC,CAAC,CAAC;EACJ,CAAC;EAED+J,SAAS,CAAC5qR,SAAS,CAAC+qR,OAAO,GAAG,UAAUxkL,IAAI,EAAE;IAC5C,IAAI5X,GAAG,GAAG4X,IAAI,CAAC5X,GAAG;IAClB,IAAI,CAACm8L,KAAK,CAACn8L,GAAG,CAAC,GAAG4X,IAAI;IAEtB,IAAI,CAACskL,QAAQ,CAACznR,IAAI,CAACurF,GAAG,CAAC;EACzB,CAAC;EAED,OAAOi8L,SAAS;AAClB,CAAC,CAAC,CAAC;AAEH;AACA,iEAAeA,SAAS;;;;;;;;;;;;;;;;;;;;;AClFxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACkC;AAC0B;AACrB;AACa;AACQ;AACrD,IAAII,qBAAqB,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC;AAE7C,SAASC,2BAA2BA,CAAC/mM,KAAK,EAAE;EAC1C,OAAOA,KAAK,CAACzwE,IAAI,KAAK,UAAU,IAAIywE,KAAK,CAACzwE,IAAI,KAAK,MAAM;AAC3D;AAEA,IAAIy3Q,WAAW,GACf;AACA,UAAU31L,MAAM,EAAE;EAChBL,gDAAS,CAACg2L,WAAW,EAAE31L,MAAM,CAAC;EAE9B,SAAS21L,WAAWA,CAAA,EAAG;IACrB,IAAIj9Q,KAAK,GAAGsnF,MAAM,KAAK,IAAI,IAAIA,MAAM,CAAC7yF,KAAK,CAAC,IAAI,EAAE0G,SAAS,CAAC,IAAI,IAAI;IAEpE6E,KAAK,CAACwF,IAAI,GAAG,aAAa;IAC1BxF,KAAK,CAAC6/E,UAAU,GAAGk9L,qBAAqB;IACxC,OAAO/8Q,KAAK;EACd;EACA;AACF;AACA;AACA;;EAGEi9Q,WAAW,CAAClrR,SAAS,CAACmrR,mBAAmB,GAAG,YAAY;IACtD,IAAI,CAACxzD,UAAU,GAAG,IAAI,CAACyzD,aAAa,GAAG,IAAI;IAC3C,IAAIxyC,UAAU,GAAG,IAAI,CAAC5tG,OAAO,CAAC,GAAG,CAAC,CAAC9mD,KAAK;IACxC,IAAI20J,UAAU,GAAG,IAAI,CAAC7tG,OAAO,CAAC,GAAG,CAAC,CAAC9mD,KAAK;IAExC,IAAI,CAAC+mM,2BAA2B,CAACryC,UAAU,CAAC,IAAI,CAACqyC,2BAA2B,CAACpyC,UAAU,CAAC,EAAE;MACxF;IACF;IAEA,IAAIwyC,YAAY,GAAGzyC,UAAU,CAACt5I,SAAS,CAAC,CAAC;IACzC,IAAIgsL,YAAY,GAAGzyC,UAAU,CAACv5I,SAAS,CAAC,CAAC;IACzC,IAAIhc,KAAK,GAAG,IAAI,CAACjG,WAAW,CAAC,CAACguM,YAAY,CAAC,CAAC,CAAC,EAAEC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAChE,IAAIj8P,GAAG,GAAG,IAAI,CAACguD,WAAW,CAAC,CAACguM,YAAY,CAAC,CAAC,CAAC,EAAEC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,IAAIC,UAAU,GAAGF,YAAY,CAAC,CAAC,CAAC,GAAGA,YAAY,CAAC,CAAC,CAAC;IAClD,IAAIG,UAAU,GAAGF,YAAY,CAAC,CAAC,CAAC,GAAGA,YAAY,CAAC,CAAC,CAAC;IAElD,IAAI,CAACC,UAAU,IAAI,CAACC,UAAU,EAAE;MAC9B;IACF,CAAC,CAAC;;IAGF,IAAI3tM,MAAM,GAAG,CAACxuD,GAAG,CAAC,CAAC,CAAC,GAAGi0D,KAAK,CAAC,CAAC,CAAC,IAAIioM,UAAU;IAC7C,IAAIztM,MAAM,GAAG,CAACzuD,GAAG,CAAC,CAAC,CAAC,GAAGi0D,KAAK,CAAC,CAAC,CAAC,IAAIkoM,UAAU;IAC7C,IAAIC,UAAU,GAAGnoM,KAAK,CAAC,CAAC,CAAC,GAAG+nM,YAAY,CAAC,CAAC,CAAC,GAAGxtM,MAAM;IACpD,IAAI6tM,UAAU,GAAGpoM,KAAK,CAAC,CAAC,CAAC,GAAGgoM,YAAY,CAAC,CAAC,CAAC,GAAGxtM,MAAM;IACpD,IAAI/2E,CAAC,GAAG,IAAI,CAAC4wN,UAAU,GAAG,CAAC95I,MAAM,EAAE,CAAC,EAAE,CAAC,EAAEC,MAAM,EAAE2tM,UAAU,EAAEC,UAAU,CAAC;IACxE,IAAI,CAACN,aAAa,GAAGzN,kEAAM,CAAC,EAAE,EAAE52Q,CAAC,CAAC;EACpC,CAAC;EACD;AACF;AACA;;EAGEmkR,WAAW,CAAClrR,SAAS,CAACi5F,WAAW,GAAG,YAAY;IAC9C,OAAO,IAAI,CAACgvD,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAACA,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAACjd,OAAO,CAAC,GAAG,CAAC;EACjG,CAAC;EAEDkgJ,WAAW,CAAClrR,SAAS,CAAC4/J,YAAY,GAAG,UAAUljF,KAAK,EAAE;IACpD,IAAIivM,KAAK,GAAG,IAAI,CAAC3gJ,OAAO,CAAC,GAAG,CAAC;IAC7B,IAAI4gJ,KAAK,GAAG,IAAI,CAAC5gJ,OAAO,CAAC,GAAG,CAAC;IAC7B,OAAO2gJ,KAAK,CAAC5zK,OAAO,CAAC4zK,KAAK,CAACxrD,YAAY,CAACzjJ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAIkvM,KAAK,CAAC7zK,OAAO,CAAC6zK,KAAK,CAACzrD,YAAY,CAACzjJ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;EACnG,CAAC;EAEDwuM,WAAW,CAAClrR,SAAS,CAACynM,WAAW,GAAG,UAAUh9L,IAAI,EAAE;IAClD,OAAO,IAAI,CAACugI,OAAO,CAAC,GAAG,CAAC,CAACy8D,WAAW,CAACh9L,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAACugI,OAAO,CAAC,GAAG,CAAC,CAACy8D,WAAW,CAACh9L,IAAI,CAAC,CAAC,CAAC,CAAC;EACzF,CAAC;EAEDygR,WAAW,CAAClrR,SAAS,CAAC2+O,WAAW,GAAG,UAAUktC,KAAK,EAAEC,KAAK,EAAE;IAC1D,IAAIC,SAAS,GAAG,IAAI,CAAC1uM,WAAW,CAACwuM,KAAK,CAAC;IACvC,IAAIG,SAAS,GAAG,IAAI,CAAC3uM,WAAW,CAACyuM,KAAK,CAAC;IACvC,IAAIlhG,IAAI,GAAG,IAAI,CAAC7xF,OAAO,CAAC,CAAC;IACzB,IAAIkzL,IAAI,GAAG,IAAIl6I,wEAAY,CAACg6I,SAAS,CAAC,CAAC,CAAC,EAAEA,SAAS,CAAC,CAAC,CAAC,EAAEC,SAAS,CAAC,CAAC,CAAC,GAAGD,SAAS,CAAC,CAAC,CAAC,EAAEC,SAAS,CAAC,CAAC,CAAC,GAAGD,SAAS,CAAC,CAAC,CAAC,CAAC;IACjH,OAAOnhG,IAAI,CAACyC,SAAS,CAAC4+F,IAAI,CAAC;EAC7B,CAAC;EAEDf,WAAW,CAAClrR,SAAS,CAACq9E,WAAW,GAAG,UAAU5yE,IAAI,EAAEuzL,KAAK,EAAEnpC,GAAG,EAAE;IAC9DA,GAAG,GAAGA,GAAG,IAAI,EAAE;IACf,IAAIq3H,IAAI,GAAGzhR,IAAI,CAAC,CAAC,CAAC;IAClB,IAAI0hR,IAAI,GAAG1hR,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;;IAEpB,IAAI,IAAI,CAACktN,UAAU,CAAC;IAAA,GACjBu0D,IAAI,IAAI,IAAI,IAAIriM,QAAQ,CAACqiM,IAAI,CAAC,IAAIC,IAAI,IAAI,IAAI,IAAItiM,QAAQ,CAACsiM,IAAI,CAAC,EAAE;MACnE,OAAO7tJ,0EAAc,CAACu2B,GAAG,EAAEpqJ,IAAI,EAAE,IAAI,CAACktN,UAAU,CAAC;IACnD;IAEA,IAAI5sF,KAAK,GAAG,IAAI,CAACC,OAAO,CAAC,GAAG,CAAC;IAC7B,IAAIC,KAAK,GAAG,IAAI,CAACD,OAAO,CAAC,GAAG,CAAC;IAC7B6pB,GAAG,CAAC,CAAC,CAAC,GAAG9pB,KAAK,CAACnkC,aAAa,CAACmkC,KAAK,CAACr/B,WAAW,CAACwgL,IAAI,EAAEluF,KAAK,CAAC,CAAC;IAC5DnpC,GAAG,CAAC,CAAC,CAAC,GAAG5pB,KAAK,CAACrkC,aAAa,CAACqkC,KAAK,CAACv/B,WAAW,CAACygL,IAAI,EAAEnuF,KAAK,CAAC,CAAC;IAC5D,OAAOnpC,GAAG;EACZ,CAAC;EAEDq2H,WAAW,CAAClrR,SAAS,CAACmmG,SAAS,GAAG,UAAU17F,IAAI,EAAEoqJ,GAAG,EAAE;IACrD,IAAIu3H,MAAM,GAAG,IAAI,CAACphJ,OAAO,CAAC,GAAG,CAAC,CAAC9mD,KAAK;IACpC,IAAImoM,MAAM,GAAG,IAAI,CAACrhJ,OAAO,CAAC,GAAG,CAAC,CAAC9mD,KAAK;IACpC,IAAI2mD,WAAW,GAAGuhJ,MAAM,CAAC9sL,SAAS,CAAC,CAAC;IACpC,IAAIwrC,WAAW,GAAGuhJ,MAAM,CAAC/sL,SAAS,CAAC,CAAC;IACpC,IAAIhyF,CAAC,GAAG8+Q,MAAM,CAAClnR,KAAK,CAACuF,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7B,IAAIlD,CAAC,GAAG8kR,MAAM,CAACnnR,KAAK,CAACuF,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7BoqJ,GAAG,GAAGA,GAAG,IAAI,EAAE;IACfA,GAAG,CAAC,CAAC,CAAC,GAAGxxJ,IAAI,CAACq6E,GAAG,CAACr6E,IAAI,CAACqC,GAAG,CAACrC,IAAI,CAACq6E,GAAG,CAACmtD,WAAW,CAAC,CAAC,CAAC,EAAEA,WAAW,CAAC,CAAC,CAAC,CAAC,EAAEv9H,CAAC,CAAC,EAAEjK,IAAI,CAACqC,GAAG,CAACmlI,WAAW,CAAC,CAAC,CAAC,EAAEA,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAClHgqB,GAAG,CAAC,CAAC,CAAC,GAAGxxJ,IAAI,CAACq6E,GAAG,CAACr6E,IAAI,CAACqC,GAAG,CAACrC,IAAI,CAACq6E,GAAG,CAACotD,WAAW,CAAC,CAAC,CAAC,EAAEA,WAAW,CAAC,CAAC,CAAC,CAAC,EAAEvjI,CAAC,CAAC,EAAElE,IAAI,CAACqC,GAAG,CAAColI,WAAW,CAAC,CAAC,CAAC,EAAEA,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAClH,OAAO+pB,GAAG;EACZ,CAAC;EAEDq2H,WAAW,CAAClrR,SAAS,CAAC48E,WAAW,GAAG,UAAUF,KAAK,EAAEshH,KAAK,EAAE;IAC1D,IAAInpC,GAAG,GAAG,EAAE;IAEZ,IAAI,IAAI,CAACu2H,aAAa,EAAE;MACtB,OAAO9sJ,0EAAc,CAACu2B,GAAG,EAAEn4E,KAAK,EAAE,IAAI,CAAC0uM,aAAa,CAAC;IACvD;IAEA,IAAIrgJ,KAAK,GAAG,IAAI,CAACC,OAAO,CAAC,GAAG,CAAC;IAC7B,IAAIC,KAAK,GAAG,IAAI,CAACD,OAAO,CAAC,GAAG,CAAC;IAC7B6pB,GAAG,CAAC,CAAC,CAAC,GAAG9pB,KAAK,CAACoyD,WAAW,CAACpyD,KAAK,CAACo1F,YAAY,CAACzjJ,KAAK,CAAC,CAAC,CAAC,CAAC,EAAEshH,KAAK,CAAC;IAC/DnpC,GAAG,CAAC,CAAC,CAAC,GAAG5pB,KAAK,CAACkyD,WAAW,CAAClyD,KAAK,CAACk1F,YAAY,CAACzjJ,KAAK,CAAC,CAAC,CAAC,CAAC,EAAEshH,KAAK,CAAC;IAC/D,OAAOnpC,GAAG;EACZ,CAAC;EAEDq2H,WAAW,CAAClrR,SAAS,CAACgiG,YAAY,GAAG,UAAUuE,IAAI,EAAE;IACnD,OAAO,IAAI,CAACykC,OAAO,CAACzkC,IAAI,CAAC5X,GAAG,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;EACnD,CAAC;EACD;AACF;AACA;AACA;;EAGEu8L,WAAW,CAAClrR,SAAS,CAAC+4F,OAAO,GAAG,YAAY;IAC1C,IAAIuzL,OAAO,GAAG,IAAI,CAACthJ,OAAO,CAAC,GAAG,CAAC,CAAC24D,eAAe,CAAC,CAAC;IACjD,IAAI4oF,OAAO,GAAG,IAAI,CAACvhJ,OAAO,CAAC,GAAG,CAAC,CAAC24D,eAAe,CAAC,CAAC;IACjD,IAAIr2L,CAAC,GAAGjK,IAAI,CAACq6E,GAAG,CAAC4uM,OAAO,CAAC,CAAC,CAAC,EAAEA,OAAO,CAAC,CAAC,CAAC,CAAC;IACxC,IAAI/kR,CAAC,GAAGlE,IAAI,CAACq6E,GAAG,CAAC6uM,OAAO,CAAC,CAAC,CAAC,EAAEA,OAAO,CAAC,CAAC,CAAC,CAAC;IACxC,IAAInhQ,KAAK,GAAG/nB,IAAI,CAACqC,GAAG,CAAC4mR,OAAO,CAAC,CAAC,CAAC,EAAEA,OAAO,CAAC,CAAC,CAAC,CAAC,GAAGh/Q,CAAC;IAChD,IAAIge,MAAM,GAAGjoB,IAAI,CAACqC,GAAG,CAAC6mR,OAAO,CAAC,CAAC,CAAC,EAAEA,OAAO,CAAC,CAAC,CAAC,CAAC,GAAGhlR,CAAC;IACjD,OAAO,IAAIwqI,wEAAY,CAACzkI,CAAC,EAAE/F,CAAC,EAAE6jB,KAAK,EAAEE,MAAM,CAAC;EAC9C,CAAC;EAED,OAAO4/P,WAAW;AACpB,CAAC,CAACN,qDAAS,CAAC;AAEZ;AACA,iEAAeM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;ACjM1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACoF;AAC/B;AAC6F;AAC5E;AACrC;AACsB;AACwB;AAClB;AACN;AAEvD,IAAI11D,IAAI,GACR;AACA,YAAY;EACV,SAASA,IAAIA,CAACr7B,SAAS,EAAEl7G,OAAO,EAAErhD,GAAG,EAAE;IACrC;IACA,IAAI,CAACnqB,IAAI,GAAG,MAAM;IAClB,IAAI,CAACi5Q,UAAU,GAAG,CAAC,CAAC;IACpB,IAAI,CAACC,WAAW,GAAG,EAAE;IACrB,IAAI,CAACC,QAAQ,GAAG,CAAC,CAAC;IAClB,IAAI,CAACC,SAAS,GAAG,EAAE;IACnB,IAAI,CAAC3hF,kBAAkB,GAAG,IAAI;IAC9B,IAAI,CAACp9G,UAAU,GAAGk9L,kEAAqB;IAEvC,IAAI,CAAC8B,cAAc,CAAC3yF,SAAS,EAAEl7G,OAAO,EAAErhD,GAAG,CAAC;IAE5C,IAAI,CAACmpD,KAAK,GAAGozG,SAAS;EACxB;EAEAq7B,IAAI,CAACx1N,SAAS,CAACypG,OAAO,GAAG,YAAY;IACnC,OAAO,IAAI,CAACioC,KAAK;EACnB,CAAC;EAED8jF,IAAI,CAACx1N,SAAS,CAACwxF,MAAM,GAAG,UAAUvS,OAAO,EAAErhD,GAAG,EAAE;IAC9C,IAAImvP,OAAO,GAAG,IAAI,CAACH,QAAQ;IAE3B,IAAI,CAACI,YAAY,CAAC/tM,OAAO,EAAE,IAAI,CAAC8H,KAAK,CAAC;IAEtC,SAASkmM,eAAeA,CAAC1mH,IAAI,EAAE;MAC7B,IAAIlI,OAAO,CAAC,CAAC;;MAEb,IAAI6uH,WAAW,GAAGlnR,8DAAI,CAACugK,IAAI,CAAC;MAC5B,IAAI37E,GAAG,GAAGsiM,WAAW,CAAC5sR,MAAM;MAE5B,IAAI,CAACsqF,GAAG,EAAE;QACR;MACF;MAEA,IAAIuiM,cAAc,GAAG,EAAE,CAAC,CAAC;;MAEzB,KAAK,IAAIttR,CAAC,GAAG+qF,GAAG,GAAG,CAAC,EAAE/qF,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;QACjC,IAAIgtF,GAAG,GAAG,CAACqgM,WAAW,CAACrtR,CAAC,CAAC,CAAC,CAAC;;QAE3B,IAAI0mG,IAAI,GAAGggE,IAAI,CAAC15E,GAAG,CAAC;QACpB,IAAI9F,KAAK,GAAGwf,IAAI,CAACxf,KAAK;QACtB,IAAI7C,KAAK,GAAGqiB,IAAI,CAACriB,KAAK;QAEtB;QAAK;QACL21G,sEAAoB,CAAC31G,KAAK,CAAC,IAAI6C,KAAK,CAAC3lF,GAAG,CAAC,YAAY,CAAC,IAAI2lF,KAAK,CAAC3lF,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE;UACvF+rR,cAAc,CAAC/pR,IAAI,CAACmjG,IAAI,CAAC;QAC3B,CAAC,MAAM;UACLu7K,qEAAe,CAAC59L,KAAK,EAAE6C,KAAK,CAAC;UAE7B,IAAI8yG,sEAAoB,CAAC31G,KAAK,CAAC,EAAE;YAC/B;YACAm6E,OAAO,GAAG93D,IAAI;UAChB;QACF;MACF;MAEA,CAAC,CAAC;MACF;;MAEA,IAAI4mL,cAAc,CAAC7sR,MAAM,EAAE;QACzB,IAAI,CAAC+9J,OAAO,EAAE;UACZA,OAAO,GAAG8uH,cAAc,CAACvrR,GAAG,CAAC,CAAC;UAC9BkgR,qEAAe,CAACzjH,OAAO,CAACn6E,KAAK,EAAEm6E,OAAO,CAACt3E,KAAK,CAAC;QAC/C;QAEAhF,8DAAI,CAACorM,cAAc,EAAE,UAAU5mL,IAAI,EAAE;UACnCi4K,mEAAe,CAACj4K,IAAI,CAACriB,KAAK,EAAEqiB,IAAI,CAACxf,KAAK,EAAEs3E,OAAO,CAACn6E,KAAK,CAAC;QACxD,CAAC,CAAC;MACJ;IACF;IAEA+oM,eAAe,CAACF,OAAO,CAACz/Q,CAAC,CAAC;IAC1B2/Q,eAAe,CAACF,OAAO,CAACxlR,CAAC,CAAC,CAAC,CAAC;;IAE5B,IAAI6lR,aAAa,GAAG,CAAC,CAAC;IACtBrrM,8DAAI,CAACgrM,OAAO,CAACz/Q,CAAC,EAAE,UAAUy9H,KAAK,EAAE;MAC/BsiJ,aAAa,CAACN,OAAO,EAAE,GAAG,EAAEhiJ,KAAK,EAAEqiJ,aAAa,CAAC;IACnD,CAAC,CAAC;IACFrrM,8DAAI,CAACgrM,OAAO,CAACxlR,CAAC,EAAE,UAAU0jI,KAAK,EAAE;MAC/BoiJ,aAAa,CAACN,OAAO,EAAE,GAAG,EAAE9hJ,KAAK,EAAEmiJ,aAAa,CAAC;IACnD,CAAC,CAAC,CAAC,CAAC;IACJ;;IAEA,IAAI,CAACE,MAAM,CAAC,IAAI,CAACvmM,KAAK,EAAEnpD,GAAG,CAAC;EAC9B,CAAC;EACD;AACF;AACA;;EAGE43L,IAAI,CAACx1N,SAAS,CAACstR,MAAM,GAAG,UAAUnzF,SAAS,EAAEv8J,GAAG,EAAE2vP,kBAAkB,EAAE;IACpE,IAAIjjD,eAAe,GAAGnwC,SAAS,CAAC9rE,kBAAkB,CAAC,CAAC;IACpD,IAAIm/J,cAAc,GAAG,CAACD,kBAAkB,IAAIpzF,SAAS,CAAC/4L,GAAG,CAAC,cAAc,CAAC;IACzE,IAAI05L,QAAQ,GAAG1sE,8DAAa,CAACk8G,eAAe,EAAE;MAC5Cl/M,KAAK,EAAEwS,GAAG,CAAC+rE,QAAQ,CAAC,CAAC;MACrBr+E,MAAM,EAAEsS,GAAG,CAACgsE,SAAS,CAAC;IACxB,CAAC,CAAC;IACF,IAAI,CAAC8nC,KAAK,GAAGopD,QAAQ;IACrB,IAAI2yF,QAAQ,GAAG,IAAI,CAACZ,SAAS;IAC7Ba,UAAU,CAAC,CAAC,CAAC,CAAC;;IAEd,IAAIF,cAAc,EAAE;MAClBzrM,8DAAI,CAAC0rM,QAAQ,EAAE,UAAUlnL,IAAI,EAAE;QAC7B,IAAI,CAACA,IAAI,CAACxf,KAAK,CAAC3lF,GAAG,CAAC,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,EAAE;UAC5C,IAAIusR,cAAc,GAAGlL,4EAAsB,CAACl8K,IAAI,CAAC;UAEjD,IAAIonL,cAAc,EAAE;YAClB,IAAIh/L,GAAG,GAAG4X,IAAI,CAAClN,YAAY,CAAC,CAAC,GAAG,QAAQ,GAAG,OAAO;YAClD,IAAIypE,MAAM,GAAGv8D,IAAI,CAACxf,KAAK,CAAC3lF,GAAG,CAAC,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YACpD05L,QAAQ,CAACnsG,GAAG,CAAC,IAAIg/L,cAAc,CAACh/L,GAAG,CAAC,GAAGm0E,MAAM;YAE7C,IAAIv8D,IAAI,CAACvtE,QAAQ,KAAK,KAAK,EAAE;cAC3B8hK,QAAQ,CAACvzL,CAAC,IAAIomR,cAAc,CAACriQ,MAAM,GAAGw3I,MAAM;YAC9C,CAAC,MAAM,IAAIv8D,IAAI,CAACvtE,QAAQ,KAAK,MAAM,EAAE;cACnC8hK,QAAQ,CAACxtL,CAAC,IAAIqgR,cAAc,CAACviQ,KAAK,GAAG03I,MAAM;YAC7C;UACF;QACF;MACF,CAAC,CAAC;MACF4qH,UAAU,CAAC,CAAC;IACd;IAEA3rM,8DAAI,CAAC,IAAI,CAAC4qM,WAAW,EAAE,UAAU9zL,KAAK,EAAE;MACtC;MACA;MACAA,KAAK,CAACsyL,mBAAmB,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,SAASuC,UAAUA,CAAA,EAAG;MACpB3rM,8DAAI,CAAC0rM,QAAQ,EAAE,UAAUlnL,IAAI,EAAE;QAC7B,IAAIlN,YAAY,GAAGkN,IAAI,CAAClN,YAAY,CAAC,CAAC;QACtC,IAAIgG,MAAM,GAAGhG,YAAY,GAAG,CAAC,CAAC,EAAEyhG,QAAQ,CAAC1vK,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE0vK,QAAQ,CAACxvK,MAAM,CAAC;QACtE,IAAIuhE,GAAG,GAAG0Z,IAAI,CAAC00C,OAAO,GAAG,CAAC,GAAG,CAAC;QAC9B10C,IAAI,CAAC4/I,SAAS,CAAC9mJ,MAAM,CAACxS,GAAG,CAAC,EAAEwS,MAAM,CAAC,CAAC,GAAGxS,GAAG,CAAC,CAAC;QAC5C+gM,mBAAmB,CAACrnL,IAAI,EAAElN,YAAY,GAAGyhG,QAAQ,CAACxtL,CAAC,GAAGwtL,QAAQ,CAACvzL,CAAC,CAAC;MACnE,CAAC,CAAC;IACJ;EACF,CAAC;EAEDiuN,IAAI,CAACx1N,SAAS,CAACgrI,OAAO,GAAG,UAAUr8C,GAAG,EAAE63E,SAAS,EAAE;IACjD,IAAIqnH,YAAY,GAAG,IAAI,CAACjB,QAAQ,CAACj+L,GAAG,CAAC;IAErC,IAAIk/L,YAAY,IAAI,IAAI,EAAE;MACxB,OAAOA,YAAY,CAACrnH,SAAS,IAAI,CAAC,CAAC;IACrC;EACF,CAAC;EAEDgvD,IAAI,CAACx1N,SAAS,CAACsmG,OAAO,GAAG,YAAY;IACnC,OAAO,IAAI,CAACumL,SAAS,CAAChnR,KAAK,CAAC,CAAC;EAC/B,CAAC;EAED2vN,IAAI,CAACx1N,SAAS,CAAC0jM,YAAY,GAAG,UAAUnuC,UAAU,EAAEC,UAAU,EAAE;IAC9D,IAAID,UAAU,IAAI,IAAI,IAAIC,UAAU,IAAI,IAAI,EAAE;MAC5C,IAAIt3I,GAAG,GAAG,GAAG,GAAGq3I,UAAU,GAAG,GAAG,GAAGC,UAAU;MAC7C,OAAO,IAAI,CAACk3H,UAAU,CAACxuQ,GAAG,CAAC;IAC7B;IAEA,IAAIogE,kEAAQ,CAACi3E,UAAU,CAAC,EAAE;MACxBC,UAAU,GAAGD,UAAU,CAACC,UAAU;MAClCD,UAAU,GAAGA,UAAU,CAACA,UAAU;IACpC;IAEA,KAAK,IAAI11J,CAAC,GAAG,CAAC,EAAEiuR,SAAS,GAAG,IAAI,CAACnB,WAAW,EAAE9sR,CAAC,GAAGiuR,SAAS,CAACxtR,MAAM,EAAET,CAAC,EAAE,EAAE;MACvE,IAAIiuR,SAAS,CAACjuR,CAAC,CAAC,CAACmrI,OAAO,CAAC,GAAG,CAAC,CAAC5iH,KAAK,KAAKmtI,UAAU,IAAIu4H,SAAS,CAACjuR,CAAC,CAAC,CAACmrI,OAAO,CAAC,GAAG,CAAC,CAAC5iH,KAAK,KAAKotI,UAAU,EAAE;QACpG,OAAOs4H,SAAS,CAACjuR,CAAC,CAAC;MACrB;IACF;EACF,CAAC;EAED21N,IAAI,CAACx1N,SAAS,CAACw6L,aAAa,GAAG,YAAY;IACzC,OAAO,IAAI,CAACmyF,WAAW,CAAC9mR,KAAK,CAAC,CAAC;EACjC,CAAC;EACD;AACF;AACA;;EAGE2vN,IAAI,CAACx1N,SAAS,CAAC+9Q,cAAc,GAAG,UAAU9+L,OAAO,EAAE6U,MAAM,EAAE9yF,KAAK,EAAE;IAChE,IAAI4c,MAAM,GAAG,IAAI,CAACmwQ,kBAAkB,CAACj6L,MAAM,CAAC;IAE5C,OAAOl2E,MAAM,CAAC0rF,SAAS,GAAG1rF,MAAM,CAAC0rF,SAAS,CAACjsB,WAAW,CAACr8E,KAAK,CAAC,GAAG4c,MAAM,CAAC2oF,IAAI,GAAG3oF,MAAM,CAAC2oF,IAAI,CAACK,aAAa,CAAChpF,MAAM,CAAC2oF,IAAI,CAACmF,WAAW,CAAC1qG,KAAK,CAAC,CAAC,GAAG,IAAI;EAChJ,CAAC;EACD;AACF;AACA;;EAGEw0N,IAAI,CAACx1N,SAAS,CAACi+Q,gBAAgB,GAAG,UAAUh/L,OAAO,EAAE6U,MAAM,EAAE9yF,KAAK,EAAE;IAClE,IAAI4c,MAAM,GAAG,IAAI,CAACmwQ,kBAAkB,CAACj6L,MAAM,CAAC;IAE5C,OAAOl2E,MAAM,CAAC0rF,SAAS,GAAG1rF,MAAM,CAAC0rF,SAAS,CAAC1sB,WAAW,CAAC57E,KAAK,CAAC,GAAG4c,MAAM,CAAC2oF,IAAI,GAAG3oF,MAAM,CAAC2oF,IAAI,CAAC42F,WAAW,CAACv/K,MAAM,CAAC2oF,IAAI,CAAC45H,YAAY,CAACn/N,KAAK,CAAC,CAAC,GAAG,IAAI;EAC/I,CAAC;EAEDw0N,IAAI,CAACx1N,SAAS,CAAC+tR,kBAAkB,GAAG,UAAUj6L,MAAM,EAAE;IACpD,IAAIpI,WAAW,GAAGoI,MAAM,CAACpI,WAAW;IACpC,IAAI82D,UAAU,GAAG1uD,MAAM,CAAC0uD,UAAU,IAAI92D,WAAW,IAAIA,WAAW,CAACioF,sBAAsB,CAAC,OAAO,EAAEX,4DAAgB,CAAC,CAACY,MAAM,CAAC,CAAC,CAAC;IAC5H,IAAIlxB,UAAU,GAAG5uD,MAAM,CAAC4uD,UAAU,IAAIh3D,WAAW,IAAIA,WAAW,CAACioF,sBAAsB,CAAC,OAAO,EAAEX,4DAAgB,CAAC,CAACY,MAAM,CAAC,CAAC,CAAC;IAC5H,IAAIumB,SAAS,GAAGrmG,MAAM,CAACqmG,SAAS;IAChC,IAAI6zF,UAAU,GAAG,IAAI,CAACrB,WAAW;IACjC,IAAIrjL,SAAS;IACb,IAAI/C,IAAI;IAER,IAAI7a,WAAW,EAAE;MACf4d,SAAS,GAAG5d,WAAW,CAACgP,gBAAgB;MACxCv6F,iEAAO,CAAC6tR,UAAU,EAAE1kL,SAAS,CAAC,GAAG,CAAC,KAAKA,SAAS,GAAG,IAAI,CAAC;IAC1D,CAAC,MAAM,IAAIk5C,UAAU,IAAIE,UAAU,EAAE;MACnCp5C,SAAS,GAAG,IAAI,CAACo6F,YAAY,CAAClhD,UAAU,CAAC8J,cAAc,EAAE5J,UAAU,CAAC4J,cAAc,CAAC;IACrF,CAAC,MAAM,IAAI9J,UAAU,EAAE;MACrBj8C,IAAI,GAAG,IAAI,CAACykC,OAAO,CAAC,GAAG,EAAEwX,UAAU,CAAC8J,cAAc,CAAC;IACrD,CAAC,MAAM,IAAI5J,UAAU,EAAE;MACrBn8C,IAAI,GAAG,IAAI,CAACykC,OAAO,CAAC,GAAG,EAAE0X,UAAU,CAAC4J,cAAc,CAAC;IACrD,CAAC,CAAC;IAAA,KACG,IAAI6tC,SAAS,EAAE;MAChB,IAAIoJ,IAAI,GAAGpJ,SAAS,CAACz/F,gBAAgB;MAErC,IAAI6oG,IAAI,KAAK,IAAI,EAAE;QACjBj6F,SAAS,GAAG,IAAI,CAACqjL,WAAW,CAAC,CAAC,CAAC;MACjC;IACF;IAEF,OAAO;MACLrjL,SAAS,EAAEA,SAAS;MACpB/C,IAAI,EAAEA;IACR,CAAC;EACH,CAAC;EACD;AACF;AACA;;EAGEivH,IAAI,CAACx1N,SAAS,CAAC4/J,YAAY,GAAG,UAAUljF,KAAK,EAAE;IAC7C,IAAImc,KAAK,GAAG,IAAI,CAAC8zL,WAAW,CAAC,CAAC,CAAC;IAE/B,IAAI9zL,KAAK,EAAE;MACT,OAAOA,KAAK,CAAC+mE,YAAY,CAACljF,KAAK,CAAC;IAClC;EACF,CAAC;EACD;AACF;AACA;;EAGE84I,IAAI,CAACx1N,SAAS,CAAC8sR,cAAc,GAAG,UAAU3yF,SAAS,EAAEl7G,OAAO,EAAErhD,GAAG,EAAE;IACjE,IAAI3vB,KAAK,GAAG,IAAI;IAEhB,IAAIs1L,IAAI,GAAG,IAAI;IACf,IAAI0qF,gBAAgB,GAAG;MACrBtiK,IAAI,EAAE,KAAK;MACXE,KAAK,EAAE,KAAK;MACZD,GAAG,EAAE,KAAK;MACVE,MAAM,EAAE;IACV,CAAC;IACD,IAAIihK,OAAO,GAAG;MACZz/Q,CAAC,EAAE,CAAC,CAAC;MACL/F,CAAC,EAAE,CAAC;IACN,CAAC;IACD,IAAI2mR,SAAS,GAAG;MACd5gR,CAAC,EAAE,CAAC;MACJ/F,CAAC,EAAE;IACL,CAAC,CAAC,CAAC;;IAEH03E,OAAO,CAACyxB,aAAa,CAAC,OAAO,EAAEy9K,iBAAiB,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;IAC5DlvM,OAAO,CAACyxB,aAAa,CAAC,OAAO,EAAEy9K,iBAAiB,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;IAE5D,IAAI,CAACD,SAAS,CAAC5gR,CAAC,IAAI,CAAC4gR,SAAS,CAAC3mR,CAAC,EAAE;MAChC;MACA,IAAI,CAACqlR,QAAQ,GAAG,CAAC,CAAC;MAClB,IAAI,CAACC,SAAS,GAAG,EAAE;MACnB;IACF;IAEA,IAAI,CAACD,QAAQ,GAAGG,OAAO,CAAC,CAAC;;IAEzBhrM,8DAAI,CAACgrM,OAAO,CAACz/Q,CAAC,EAAE,UAAUy9H,KAAK,EAAEwqB,UAAU,EAAE;MAC3CxzE,8DAAI,CAACgrM,OAAO,CAACxlR,CAAC,EAAE,UAAU0jI,KAAK,EAAEuqB,UAAU,EAAE;QAC3C,IAAIt3I,GAAG,GAAG,GAAG,GAAGq3I,UAAU,GAAG,GAAG,GAAGC,UAAU;QAC7C,IAAIlsD,SAAS,GAAG,IAAI4hL,uDAAW,CAAChtQ,GAAG,CAAC;QACpCorF,SAAS,CAACE,MAAM,GAAGv7F,KAAK;QACxBq7F,SAAS,CAACviB,KAAK,GAAGozG,SAAS;QAC3BlsL,KAAK,CAACy+Q,UAAU,CAACxuQ,GAAG,CAAC,GAAGorF,SAAS;QAEjCr7F,KAAK,CAAC0+Q,WAAW,CAACvpR,IAAI,CAACkmG,SAAS,CAAC;QAEjCA,SAAS,CAACyhL,OAAO,CAAChgJ,KAAK,CAAC;QACxBzhC,SAAS,CAACyhL,OAAO,CAAC9/I,KAAK,CAAC;MAC1B,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,SAASkjJ,iBAAiBA,CAACjpK,OAAO,EAAE;MAClC,OAAO,UAAUnkB,SAAS,EAAElU,GAAG,EAAE;QAC/B,IAAI,CAACuhM,mBAAmB,CAACrtL,SAAS,EAAEo5F,SAAS,CAAC,EAAE;UAC9C;QACF;QAEA,IAAIk0F,YAAY,GAAGttL,SAAS,CAAC3/F,GAAG,CAAC,UAAU,CAAC;QAE5C,IAAI8jH,OAAO,KAAK,GAAG,EAAE;UACnB;UACA,IAAImpK,YAAY,KAAK,KAAK,IAAIA,YAAY,KAAK,QAAQ,EAAE;YACvD;YACAA,YAAY,GAAGJ,gBAAgB,CAACniK,MAAM,GAAG,KAAK,GAAG,QAAQ;UAC3D;QACF,CAAC,MAAM;UACL;UACA,IAAIuiK,YAAY,KAAK,MAAM,IAAIA,YAAY,KAAK,OAAO,EAAE;YACvD;YACAA,YAAY,GAAGJ,gBAAgB,CAACtiK,IAAI,GAAG,OAAO,GAAG,MAAM;UACzD;QACF;QAEAsiK,gBAAgB,CAACI,YAAY,CAAC,GAAG,IAAI;QACrC,IAAI9nL,IAAI,GAAG,IAAIkkL,kDAAM,CAACvlK,OAAO,EAAE+gI,wEAAkB,CAACllJ,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAEA,SAAS,CAAC3/F,GAAG,CAAC,MAAM,CAAC,EAAEitR,YAAY,CAAC;QAC1G,IAAIzZ,UAAU,GAAGruK,IAAI,CAAC9yF,IAAI,KAAK,UAAU;QACzC8yF,IAAI,CAACrN,MAAM,GAAG07K,UAAU,IAAI7zK,SAAS,CAAC3/F,GAAG,CAAC,aAAa,CAAC;QACxDmlG,IAAI,CAAC00C,OAAO,GAAGl6C,SAAS,CAAC3/F,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;;QAEzC2/F,SAAS,CAACwF,IAAI,GAAGA,IAAI,CAAC,CAAC;;QAEvBA,IAAI,CAACxf,KAAK,GAAGga,SAAS,CAAC,CAAC;;QAExBwF,IAAI,CAACg9F,IAAI,GAAGA,IAAI,CAAC,CAAC;;QAElBh9F,IAAI,CAACn+E,KAAK,GAAGykE,GAAG;QAEhB02G,IAAI,CAACspF,SAAS,CAACzpR,IAAI,CAACmjG,IAAI,CAAC;QAEzBwmL,OAAO,CAAC7nK,OAAO,CAAC,CAACr4B,GAAG,CAAC,GAAG0Z,IAAI;QAC5B2nL,SAAS,CAAChpK,OAAO,CAAC,EAAE;MACtB,CAAC;IACH;EACF,CAAC;EACD;AACF;AACA;;EAGEswG,IAAI,CAACx1N,SAAS,CAACgtR,YAAY,GAAG,UAAU/tM,OAAO,EAAEk7G,SAAS,EAAE;IAC1D;IACAp4G,8DAAI,CAAC,IAAI,CAAC8qM,SAAS,EAAE,UAAUtmL,IAAI,EAAE;MACnCA,IAAI,CAACriB,KAAK,CAACiiK,SAAS,CAACvoK,QAAQ,EAAE,CAACA,QAAQ,CAAC;MAEzC,IAAI2oB,IAAI,CAAC9yF,IAAI,KAAK,UAAU,EAAE;QAC5B,IAAIi3Q,gBAAgB,GAAGnkL,IAAI,CAACxf,KAAK,CAAC3lF,GAAG,CAAC,kBAAkB,CAAC;QACzDmlG,IAAI,CAACriB,KAAK,CAACymM,WAAW,CAACD,gBAAgB,CAAC;MAC1C;IACF,CAAC,CAAC;IACFzrM,OAAO,CAACwtH,UAAU,CAAC,UAAU/gH,WAAW,EAAE;MACxC,IAAI8gM,4EAAmB,CAAC9gM,WAAW,CAAC,EAAE;QACpC,IAAI4iM,YAAY,GAAG7B,uEAAc,CAAC/gM,WAAW,CAAC;QAC9C,IAAI82D,UAAU,GAAG8rI,YAAY,CAAC9rI,UAAU;QACxC,IAAIE,UAAU,GAAG4rI,YAAY,CAAC5rI,UAAU;QAExC,IAAI,CAAC0rI,mBAAmB,CAAC5rI,UAAU,EAAE23C,SAAS,CAAC,IAAI,CAACi0F,mBAAmB,CAAC1rI,UAAU,EAAEy3C,SAAS,CAAC,EAAE;UAC9F;QACF;QAEA,IAAI7wF,SAAS,GAAG,IAAI,CAACo6F,YAAY,CAAClhD,UAAU,CAAC8J,cAAc,EAAE5J,UAAU,CAAC4J,cAAc,CAAC;QACvF,IAAI7hJ,IAAI,GAAGihF,WAAW,CAACgI,OAAO,CAAC,CAAC;QAChC,IAAIq3C,KAAK,GAAGzhC,SAAS,CAAC0hC,OAAO,CAAC,GAAG,CAAC;QAClC,IAAIC,KAAK,GAAG3hC,SAAS,CAAC0hC,OAAO,CAAC,GAAG,CAAC;QAClCujJ,WAAW,CAAC9jR,IAAI,EAAEsgI,KAAK,CAAC;QACxBwjJ,WAAW,CAAC9jR,IAAI,EAAEwgI,KAAK,CAAC;MAC1B;IACF,CAAC,EAAE,IAAI,CAAC;IAER,SAASsjJ,WAAWA,CAAC9jR,IAAI,EAAE87F,IAAI,EAAE;MAC/BxkB,8DAAI,CAAC0hM,6EAAuB,CAACh5Q,IAAI,EAAE87F,IAAI,CAAC5X,GAAG,CAAC,EAAE,UAAUA,GAAG,EAAE;QAC3D4X,IAAI,CAACriB,KAAK,CAACsqM,mBAAmB,CAAC/jR,IAAI,EAAEkkF,GAAG,CAAC;MAC3C,CAAC,CAAC;IACJ;EACF,CAAC;EACD;AACF;AACA;;EAGE6mI,IAAI,CAACx1N,SAAS,CAACsrM,cAAc,GAAG,UAAU38G,GAAG,EAAE;IAC7C,IAAI+8G,QAAQ,GAAG,EAAE;IACjB,IAAIC,SAAS,GAAG,EAAE;IAClB5pH,8DAAI,CAAC,IAAI,CAACy4G,aAAa,CAAC,CAAC,EAAE,UAAUlxF,SAAS,EAAE;MAC9C,IAAItQ,QAAQ,GAAGrK,GAAG,IAAI,IAAI,IAAIA,GAAG,KAAK,MAAM,GAAG2a,SAAS,CAAC0hC,OAAO,CAACr8C,GAAG,CAAC,GAAG2a,SAAS,CAACrQ,WAAW,CAAC,CAAC;MAC/F,IAAI4G,SAAS,GAAGyJ,SAAS,CAACtH,YAAY,CAAChJ,QAAQ,CAAC;MAChD74F,iEAAO,CAACurM,QAAQ,EAAE1yG,QAAQ,CAAC,GAAG,CAAC,IAAI0yG,QAAQ,CAACtoM,IAAI,CAAC41F,QAAQ,CAAC;MAC1D74F,iEAAO,CAACwrM,SAAS,EAAE9rG,SAAS,CAAC,GAAG,CAAC,IAAI8rG,SAAS,CAACvoM,IAAI,CAACy8F,SAAS,CAAC;IAChE,CAAC,CAAC;IACF,OAAO;MACL6rG,QAAQ,EAAEA,QAAQ;MAClBC,SAAS,EAAEA;IACb,CAAC;EACH,CAAC;EAED6pB,IAAI,CAAC7lN,MAAM,GAAG,UAAUsvE,OAAO,EAAErhD,GAAG,EAAE;IACpC,IAAI6wP,KAAK,GAAG,EAAE;IACdxvM,OAAO,CAACyxB,aAAa,CAAC,MAAM,EAAE,UAAUypF,SAAS,EAAEttG,GAAG,EAAE;MACtD,IAAI02G,IAAI,GAAG,IAAIiyB,IAAI,CAACr7B,SAAS,EAAEl7G,OAAO,EAAErhD,GAAG,CAAC;MAC5C2lK,IAAI,CAACp9L,IAAI,GAAG,OAAO,GAAG0mF,GAAG,CAAC,CAAC;MAC3B;;MAEA02G,IAAI,CAAC+pF,MAAM,CAACnzF,SAAS,EAAEv8J,GAAG,EAAE,IAAI,CAAC;MACjCu8J,SAAS,CAACz/F,gBAAgB,GAAG6oG,IAAI;MACjCkrF,KAAK,CAACrrR,IAAI,CAACmgM,IAAI,CAAC;IAClB,CAAC,CAAC,CAAC,CAAC;;IAEJtkH,OAAO,CAACwtH,UAAU,CAAC,UAAU/gH,WAAW,EAAE;MACxC,IAAI,CAAC8gM,4EAAmB,CAAC9gM,WAAW,CAAC,EAAE;QACrC;MACF;MAEA,IAAI4iM,YAAY,GAAG7B,uEAAc,CAAC/gM,WAAW,CAAC;MAC9C,IAAI82D,UAAU,GAAG8rI,YAAY,CAAC9rI,UAAU;MACxC,IAAIE,UAAU,GAAG4rI,YAAY,CAAC5rI,UAAU;MACxC,IAAIy3C,SAAS,GAAG33C,UAAU,CAAC43C,gBAAgB,CAAC,CAAC;MAE7C,IAAIn4K,IAAqC,EAAE;QACzC,IAAI,CAACk4K,SAAS,EAAE;UACd,MAAM,IAAI9zL,KAAK,CAAC,QAAQ,GAAG02G,mEAAS,CAACylC,UAAU,CAACphJ,GAAG,CAAC,WAAW,CAAC,EAAEohJ,UAAU,CAACphJ,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,GAAG,aAAa,CAAC;QACjH;QAEA,IAAIohJ,UAAU,CAAC43C,gBAAgB,CAAC,CAAC,KAAK13C,UAAU,CAAC03C,gBAAgB,CAAC,CAAC,EAAE;UACnE,MAAM,IAAI/zL,KAAK,CAAC,wCAAwC,CAAC;QAC3D;MACF;MAEA,IAAIk9L,IAAI,GAAGpJ,SAAS,CAACz/F,gBAAgB;MACrChP,WAAW,CAACgP,gBAAgB,GAAG6oG,IAAI,CAACG,YAAY,CAAClhD,UAAU,CAAC8J,cAAc,EAAE5J,UAAU,CAAC4J,cAAc,CAAC;IACxG,CAAC,CAAC;IACF,OAAOmiI,KAAK;EACd,CAAC,CAAC,CAAC;;EAGHj5D,IAAI,CAAC1nI,UAAU,GAAGk9L,kEAAqB;EACvC,OAAOx1D,IAAI;AACb,CAAC,CAAC,CAAC;AACH;AACA;AACA;;AAGA,SAAS44D,mBAAmBA,CAACrtL,SAAS,EAAEo5F,SAAS,EAAE;EACjD,OAAOp5F,SAAS,CAACq5F,gBAAgB,CAAC,CAAC,KAAKD,SAAS;AACnD;AAEA,SAASkzF,aAAaA,CAACN,OAAO,EAAE9pI,YAAY,EAAE18C,IAAI;AAAE;AACpD6mL,aAAa,EAAE;EACb7mL,IAAI,CAACmoL,eAAe,GAAG,YAAY;IACjC;IACA,OAAOC,iBAAiB,GAAG,CAACA,iBAAiB,CAAC,GAAG,EAAE;EACrD,CAAC,CAAC,CAAC;EACH;EACA;;EAGA,IAAIhjF,SAAS,GAAGohF,OAAO,CAAC9pI,YAAY,CAAC;EACrC,IAAI0rI,iBAAiB;EACrB,IAAI5tL,SAAS,GAAGwF,IAAI,CAACxf,KAAK;EAC1B,IAAIm5L,MAAM,GAAGn/K,SAAS,CAAC3/F,GAAG,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;EAClD,IAAI++Q,eAAe,GAAGp/K,SAAS,CAAC3/F,GAAG,CAAC,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;EAEpE,IAAI,CAAC8+Q,MAAM,EAAE;IACX;EACF,CAAC,CAAC;;EAGF,IAAIC,eAAe,IAAI,IAAI,EAAE;IAC3B,IAAIyO,eAAe,CAACjjF,SAAS,CAACw0E,eAAe,CAAC,CAAC,EAAE;MAC/CwO,iBAAiB,GAAGhjF,SAAS,CAACw0E,eAAe,CAAC;IAChD;EACF,CAAC,MAAM;IACL;IACA,KAAK,IAAItzL,GAAG,IAAI8+G,SAAS,EAAE;MACzB,IAAIA,SAAS,CAAC1rM,cAAc,CAAC4sF,GAAG,CAAC,IAAI+hM,eAAe,CAACjjF,SAAS,CAAC9+G,GAAG,CAAC,CAAC,CAAC;MACrE;MAAA,GACG,CAACugM,aAAa,CAACyB,kBAAkB,CAACljF,SAAS,CAAC9+G,GAAG,CAAC,CAAC,CAAC,EAAE;QACrD8hM,iBAAiB,GAAGhjF,SAAS,CAAC9+G,GAAG,CAAC;QAClC;MACF;IACF;EACF;EAEA,IAAI8hM,iBAAiB,EAAE;IACrBvB,aAAa,CAACyB,kBAAkB,CAACF,iBAAiB,CAAC,CAAC,GAAG,IAAI;EAC7D;EAEA,SAASE,kBAAkBA,CAACtoL,IAAI,EAAE;IAChC,OAAOA,IAAI,CAAC5X,GAAG,GAAG,GAAG,GAAG4X,IAAI,CAACn+E,KAAK;EACpC;AACF;AAEA,SAASwmQ,eAAeA,CAACroL,IAAI,EAAE;EAC7B,OAAOA,IAAI,IAAIA,IAAI,CAAC9yF,IAAI,KAAK,UAAU,IAAI8yF,IAAI,CAAC9yF,IAAI,KAAK,MAAM,IAAI4uQ,qEAAe,CAAC97K,IAAI,CAAC;AAC1F;AAEA,SAASqnL,mBAAmBA,CAACrnL,IAAI,EAAEuoL,SAAS,EAAE;EAC5C,IAAIvmI,UAAU,GAAGhiD,IAAI,CAACjH,SAAS,CAAC,CAAC;EACjC,IAAIyvL,aAAa,GAAGxmI,UAAU,CAAC,CAAC,CAAC,GAAGA,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;;EAEnDhiD,IAAI,CAACK,aAAa,GAAGL,IAAI,CAAC5X,GAAG,KAAK,GAAG,GAAG,UAAUkK,KAAK,EAAE;IACvD,OAAOA,KAAK,GAAGi2L,SAAS;EAC1B,CAAC,GAAG,UAAUj2L,KAAK,EAAE;IACnB,OAAOk2L,aAAa,GAAGl2L,KAAK,GAAGi2L,SAAS;EAC1C,CAAC;EACDvoL,IAAI,CAAC45H,YAAY,GAAG55H,IAAI,CAAC5X,GAAG,KAAK,GAAG,GAAG,UAAUkK,KAAK,EAAE;IACtD,OAAOA,KAAK,GAAGi2L,SAAS;EAC1B,CAAC,GAAG,UAAUj2L,KAAK,EAAE;IACnB,OAAOk2L,aAAa,GAAGl2L,KAAK,GAAGi2L,SAAS;EAC1C,CAAC;AACH;AAEA,iEAAet5D,IAAI;;;;;;;;;;;;;;;;;ACzjBnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACkC;AACoB;AAEtD,IAAIH,SAAS,GACb;AACA,UAAU9/H,MAAM,EAAE;EAChBL,gDAAS,CAACmgI,SAAS,EAAE9/H,MAAM,CAAC;EAE5B,SAAS8/H,SAASA,CAAA,EAAG;IACnB,OAAO9/H,MAAM,KAAK,IAAI,IAAIA,MAAM,CAAC7yF,KAAK,CAAC,IAAI,EAAE0G,SAAS,CAAC,IAAI,IAAI;EACjE;EAEAisN,SAAS,CAAC5hN,IAAI,GAAG,MAAM;EACvB4hN,SAAS,CAACl/H,YAAY,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC;EAC3Ck/H,SAAS,CAACt8D,UAAU,GAAG,KAAK;EAC5Bs8D,SAAS,CAACj/H,aAAa,GAAG;IACxBi1B,IAAI,EAAE,KAAK;IACX;IACA39G,CAAC,EAAE,CAAC;IACJi+G,IAAI,EAAE,KAAK;IACXC,GAAG,EAAE,EAAE;IACPC,KAAK,EAAE,KAAK;IACZC,MAAM,EAAE,EAAE;IACV;IACAkjK,YAAY,EAAE,KAAK;IACnB;IACA;IACA79J,eAAe,EAAE,eAAe;IAChCx6B,WAAW,EAAE,CAAC;IACdD,WAAW,EAAE;EACf,CAAC;EACD,OAAO2+H,SAAS;AAClB,CAAC,CAACz2B,2DAAc,CAAC;AAEjB,iEAAey2B,SAAS;;;;;;;;;;;;;;;;;;;AC5ExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACmD;AACI;AACvD;AACA;AACA;AACA;;AAEO,SAASn5H,MAAMA,CAACi+F,SAAS,EAAEp5F,SAAS,EAAEpM,GAAG,EAAE;EAChDA,GAAG,GAAGA,GAAG,IAAI,CAAC,CAAC;EACf,IAAI4uG,IAAI,GAAGpJ,SAAS,CAACz/F,gBAAgB;EACrC,IAAI6L,IAAI,GAAGxF,SAAS,CAACwF,IAAI;EACzB,IAAIrK,MAAM,GAAG,CAAC,CAAC;EACf,IAAIyyL,iBAAiB,GAAGpoL,IAAI,CAACmoL,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;EACjD,IAAIO,eAAe,GAAG1oL,IAAI,CAACvtE,QAAQ;EACnC,IAAIq1P,YAAY,GAAGM,iBAAiB,GAAG,QAAQ,GAAGM,eAAe;EACjE,IAAIhzH,OAAO,GAAG11D,IAAI,CAAC5X,GAAG;EACtB,IAAIsH,IAAI,GAAGstG,IAAI,CAAC95F,OAAO,CAAC,CAAC;EACzB,IAAIylL,SAAS,GAAG,CAACj5L,IAAI,CAAC3oF,CAAC,EAAE2oF,IAAI,CAAC3oF,CAAC,GAAG2oF,IAAI,CAAC7qE,KAAK,EAAE6qE,IAAI,CAAC1uF,CAAC,EAAE0uF,IAAI,CAAC1uF,CAAC,GAAG0uF,IAAI,CAAC3qE,MAAM,CAAC;EAC3E,IAAIuhE,GAAG,GAAG;IACR8+B,IAAI,EAAE,CAAC;IACPE,KAAK,EAAE,CAAC;IACRD,GAAG,EAAE,CAAC;IACNE,MAAM,EAAE,CAAC;IACTo0J,MAAM,EAAE;EACV,CAAC;EACD,IAAIiP,UAAU,GAAGpuL,SAAS,CAAC3/F,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;EAC7C,IAAIguR,QAAQ,GAAGnzH,OAAO,KAAK,GAAG,GAAG,CAACizH,SAAS,CAAC,CAAC,CAAC,GAAGC,UAAU,EAAED,SAAS,CAAC,CAAC,CAAC,GAAGC,UAAU,CAAC,GAAG,CAACD,SAAS,CAAC,CAAC,CAAC,GAAGC,UAAU,EAAED,SAAS,CAAC,CAAC,CAAC,GAAGC,UAAU,CAAC;EAEhJ,IAAIR,iBAAiB,EAAE;IACrB,IAAIU,WAAW,GAAGV,iBAAiB,CAAC/nL,aAAa,CAAC+nL,iBAAiB,CAACjjL,WAAW,CAAC,CAAC,CAAC,CAAC;IACnF0jL,QAAQ,CAACviM,GAAG,CAACqzL,MAAM,CAAC,GAAG78Q,IAAI,CAACqC,GAAG,CAACrC,IAAI,CAACq6E,GAAG,CAAC2xM,WAAW,EAAED,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAEA,QAAQ,CAAC,CAAC,CAAC,CAAC;EAClF,CAAC,CAAC;;EAGFlzL,MAAM,CAACljE,QAAQ,GAAG,CAACijI,OAAO,KAAK,GAAG,GAAGmzH,QAAQ,CAACviM,GAAG,CAACwhM,YAAY,CAAC,CAAC,GAAGa,SAAS,CAAC,CAAC,CAAC,EAAEjzH,OAAO,KAAK,GAAG,GAAGmzH,QAAQ,CAACviM,GAAG,CAACwhM,YAAY,CAAC,CAAC,GAAGa,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;EAEhJhzL,MAAM,CAACyO,QAAQ,GAAGtnG,IAAI,CAACuiG,EAAE,GAAG,CAAC,IAAIq2D,OAAO,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;;EAE3D,IAAIqzH,MAAM,GAAG;IACX1jK,GAAG,EAAE,CAAC,CAAC;IACPE,MAAM,EAAE,CAAC;IACTH,IAAI,EAAE,CAAC,CAAC;IACRE,KAAK,EAAE;EACT,CAAC;EACD3vB,MAAM,CAACo3F,cAAc,GAAGp3F,MAAM,CAACm3F,aAAa,GAAGn3F,MAAM,CAACk3F,aAAa,GAAGk8F,MAAM,CAACL,eAAe,CAAC;EAC7F/yL,MAAM,CAACi3F,WAAW,GAAGw7F,iBAAiB,GAAGS,QAAQ,CAACviM,GAAG,CAACoiM,eAAe,CAAC,CAAC,GAAGG,QAAQ,CAACviM,GAAG,CAACqzL,MAAM,CAAC,GAAG,CAAC;EAElG,IAAIn/K,SAAS,CAAC3/F,GAAG,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,EAAE;IACzC86F,MAAM,CAACm3F,aAAa,GAAG,CAACn3F,MAAM,CAACm3F,aAAa;EAC9C;EAEA,IAAI9qF,8DAAe,CAAC5T,GAAG,CAACsvG,WAAW,EAAEljG,SAAS,CAAC3/F,GAAG,CAAC,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE;IAC5E86F,MAAM,CAACo3F,cAAc,GAAG,CAACp3F,MAAM,CAACo3F,cAAc;EAChD,CAAC,CAAC;;EAGF,IAAItwD,WAAW,GAAGjiC,SAAS,CAAC3/F,GAAG,CAAC,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;EACxD86F,MAAM,CAAC8mC,WAAW,GAAGqrJ,YAAY,KAAK,KAAK,GAAG,CAACrrJ,WAAW,GAAGA,WAAW,CAAC,CAAC;;EAE1E9mC,MAAM,CAAC8E,EAAE,GAAG,CAAC;EACb,OAAO9E,MAAM;AACf;AACO,SAASswL,mBAAmBA,CAAC9gM,WAAW,EAAE;EAC/C,OAAOA,WAAW,CAACtqF,GAAG,CAAC,kBAAkB,CAAC,KAAK,aAAa;AAC9D;AACO,SAASqrR,cAAcA,CAAC/gM,WAAW,EAAE;EAC1C,IAAI6jM,YAAY,GAAG;IACjB/sI,UAAU,EAAE,IAAI;IAChBE,UAAU,EAAE;EACd,CAAC;EACDn6C,0DAAW,CAACgnL,YAAY,EAAE,UAAUnnR,CAAC,EAAE8V,GAAG,EAAE;IAC1C,IAAIw/H,QAAQ,GAAGx/H,GAAG,CAACvV,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;IACxC,IAAIo4F,SAAS,GAAGrV,WAAW,CAACioF,sBAAsB,CAACj2B,QAAQ,EAAEs1B,4DAAgB,CAAC,CAACY,MAAM,CAAC,CAAC,CAAC;IAExF,IAAI3xJ,IAAqC,EAAE;MACzC,IAAI,CAAC8+E,SAAS,EAAE;QACd,MAAM,IAAI16F,KAAK,CAACq3I,QAAQ,GAAG,IAAI,GAAGn1C,+DAAgB,CAAC7c,WAAW,CAACtqF,GAAG,CAACs8I,QAAQ,GAAG,OAAO,CAAC,EAAEhyD,WAAW,CAACtqF,GAAG,CAACs8I,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,aAAa,CAAC;MAC/I;IACF;IAEA6xI,YAAY,CAACrxQ,GAAG,CAAC,GAAG6iF,SAAS;EAC/B,CAAC,CAAC;EACF,OAAOwuL,YAAY;AACrB;;;;;;;;;;;;;;;;AC7HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACmD;AAEnD,SAASC,eAAeA,CAACC,QAAQ,EAAE94K,QAAQ,EAAE;EAC3C;EACAA,QAAQ,GAAGA,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;EAC7B,OAAOpO,yDAAU,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,UAAU5Z,GAAG,EAAEo6D,MAAM,EAAE;IACnD,IAAIxiD,IAAI,GAAG,IAAI,CAACykC,OAAO,CAACr8C,GAAG,CAAC;IAC5B,IAAIjrE,GAAG,GAAGizF,QAAQ,CAACoyC,MAAM,CAAC;IAC1B,IAAI2mI,QAAQ,GAAGD,QAAQ,CAAC1mI,MAAM,CAAC,GAAG,CAAC;IACnC,OAAOxiD,IAAI,CAAC9yF,IAAI,KAAK,UAAU,GAAG8yF,IAAI,CAAC+M,YAAY,CAAC,CAAC,GAAGjwG,IAAI,CAACo6F,GAAG,CAAC8I,IAAI,CAACmF,WAAW,CAAChoF,GAAG,GAAGgsQ,QAAQ,CAAC,GAAGnpL,IAAI,CAACmF,WAAW,CAAChoF,GAAG,GAAGgsQ,QAAQ,CAAC,CAAC;EACvI,CAAC,EAAE,IAAI,CAAC;AACV;AAEe,SAASC,sBAAsBA,CAAC7tL,QAAQ,EAAE;EACvD,IAAI7L,IAAI,GAAG6L,QAAQ,CAAC0H,MAAM,CAACC,OAAO,CAAC,CAAC;EACpC,OAAO;IACL3H,QAAQ,EAAE;MACR;MACAruF,IAAI,EAAE,aAAa;MACnBnG,CAAC,EAAE2oF,IAAI,CAAC3oF,CAAC;MACT/F,CAAC,EAAE0uF,IAAI,CAAC1uF,CAAC;MACT6jB,KAAK,EAAE6qE,IAAI,CAAC7qE,KAAK;MACjBE,MAAM,EAAE2qE,IAAI,CAAC3qE;IACf,CAAC;IACDsS,GAAG,EAAE;MACHi7D,KAAK,EAAE,SAAAA,CAAUpuF,IAAI,EAAE;QACrB;QACA,OAAOq3F,QAAQ,CAACzkB,WAAW,CAAC5yE,IAAI,CAAC;MACnC,CAAC;MACD+J,IAAI,EAAE+zF,0DAAW,CAACinL,eAAe,EAAE1tL,QAAQ;IAC7C;EACF,CAAC;AACH;;;;;;;;;;;;;;;;;;;;;;;AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACkC;AACiB;AACS;AAC9B;AACuB;AACE;AACd;AACzC,IAAI8tL,kBAAkB,GAAG;EACvB,SAAS,EAAE;IACT52H,WAAW,EAAE,IAAI;IACjB62H,eAAe,EAAE;EACnB,CAAC;EACD,QAAQ,EAAE;IACR72H,WAAW,EAAE,CAAC;IACd62H,eAAe,EAAE;EACnB;AACF,CAAC;AACM,IAAIC,eAAe,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC;AAE3C,IAAIC,GAAG,GACP;AACA,UAAUx6L,MAAM,EAAE;EAChBL,gDAAS,CAAC66L,GAAG,EAAEx6L,MAAM,CAAC;EAEtB,SAASw6L,GAAGA,CAAC5pR,IAAI,EAAEqC,GAAG,EAAEmsF,GAAG,EAAE;IAC3B,IAAI1mF,KAAK,GAAGsnF,MAAM,CAACr1F,IAAI,CAAC,IAAI,EAAEiG,IAAI,CAAC,IAAI,IAAI;IAE3C8H,KAAK,CAAC6/E,UAAU,GAAGgiM,eAAe;IAClC7hR,KAAK,CAACwF,IAAI,GAAG,KAAK,CAAC,CAAC;;IAEpBxF,KAAK,CAAC+hR,aAAa,GAAGznL,mEAAoB,CAAC,CAAC;IAC5Ct6F,KAAK,CAACzF,GAAG,GAAGA,GAAG;IACf,IAAIm6N,UAAU,GAAGhuI,GAAG,CAACguI,UAAU;IAC/B,IAAI9mN,MAAM,GAAGs7I,iEAAqB,CAAC3uJ,GAAG,EAAEmsF,GAAG,CAACsjE,OAAO,EAAEtjE,GAAG,CAACujE,YAAY,CAAC;IACtE,IAAIstE,QAAQ,GAAGruE,2EAA+B,CAAC3uJ,GAAG,CAAC;IACnD,IAAI45N,YAAY,GAAGn0N,KAAK,CAACm0N,YAAY,GAAGoD,QAAQ,GAAGA,QAAQ,CAAC/xN,IAAI,GAAG,IAAI;IACvE,IAAI0kJ,OAAO,GAAGlqJ,KAAK,CAACkqJ,OAAO,GAAGt8I,MAAM,CAACs8I,OAAO;IAC5C,IAAI83H,aAAa,GAAGL,kBAAkB,CAACpqD,QAAQ,CAAC/xN,IAAI,CAAC;IACrDxF,KAAK,CAACiiR,WAAW,GAAGr0Q,MAAM,CAACs0Q,UAAU;IACrCliR,KAAK,CAACkqJ,OAAO,GAAGt8I,MAAM,CAACs8I,OAAO;IAE9B,IAAIl2I,KAAqC,IAAI0gN,UAAU,EAAE;MACvD;MACA,IAAIP,YAAY,KAAK,QAAQ,EAAE;QAC7B,IAAIngN,IAAqC,EAAE;UACzCrM,kDAAI,CAAC,MAAM,GAAGpN,GAAG,GAAG,iFAAiF,CAAC;QACxG;QAEAm6N,UAAU,GAAG,IAAI;MACnB;MAEA,IAAI,EAAEA,UAAU,CAACI,OAAO,IAAIJ,UAAU,CAACytD,SAAS,CAAC,EAAE;QACjD,IAAInuQ,IAAqC,EAAE;UACzCrM,kDAAI,CAAC,gEAAgE,CAAC;QACxE;QAEA+sN,UAAU,GAAG,IAAI;MACnB;IACF;IAEA10N,KAAK,CAAC00N,UAAU,GAAGA,UAAU;IAC7B,IAAIzxB,YAAY;IAEhB,IAAIyxB,UAAU,EAAE;MACd;MACA,KAAK,IAAI9iO,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGs4J,OAAO,CAAC73J,MAAM,EAAET,CAAC,EAAE,EAAE;QACvC,IAAIwwR,UAAU,GAAGl4H,OAAO,CAACt4J,CAAC,CAAC,CAACw+H,eAAe,CAACskG,UAAU,CAAC;QACvDzxB,YAAY,GAAGA,YAAY,IAAIm/E,UAAU,CAACplM,KAAK,CAAC,CAAC;QACjDimH,YAAY,CAAC+xE,KAAK,CAACoN,UAAU,CAAC;MAChC;IACF,CAAC,MAAM;MACLn/E,YAAY,GAAGr1L,MAAM,CAACq1L,YAAY;IACpC;IAEAjjM,KAAK,CAACk2H,eAAe,CAAC+sE,YAAY,CAAC5jM,CAAC,EAAE4jM,YAAY,CAAC3pM,CAAC,EAAE2pM,YAAY,CAAC9lL,KAAK,EAAE8lL,YAAY,CAAC5lL,MAAM,CAAC,CAAC,CAAC;IAChG;IACA;;IAGArd,KAAK,CAAC+qJ,WAAW,GAAG2pE,UAAU,GAAG,CAAC,GAAGp6H,+DAAgB,CAAC5T,GAAG,CAACqkE,WAAW,EAAEi3H,aAAa,CAACj3H,WAAW,CAAC,CAAC,CAAC;;IAEnG/qJ,KAAK,CAACqiR,gBAAgB,GAAG3tD,UAAU,GAAG,KAAK,GAAGstD,aAAa,CAACJ,eAAe;IAC3E,OAAO5hR,KAAK;EACd;EAEA8hR,GAAG,CAAC/vR,SAAS,CAACy8Q,YAAY,GAAG,UAAUnvQ,CAAC,EAAE/F,CAAC,EAAE6jB,KAAK,EAAEE,MAAM,EAAE;IAC1D,IAAI2qE,IAAI,GAAG,IAAI,CAACooC,eAAe,CAAC,CAAC;IACjC,IAAIwxJ,eAAe,GAAG,IAAI,CAACS,gBAAgB;IAC3Cr6L,IAAI,GAAGA,IAAI,CAAChL,KAAK,CAAC,CAAC;IAEnB,IAAI4kM,eAAe,EAAE;MACnB;MACA55L,IAAI,CAAC1uF,CAAC,GAAG,CAAC0uF,IAAI,CAAC1uF,CAAC,GAAG0uF,IAAI,CAAC3qE,MAAM;IAChC;IAEA,IAAIkyP,gBAAgB,GAAG,IAAI,CAAChB,iBAAiB;IAC7CgB,gBAAgB,CAAC/yP,SAAS,GAAGwrE,IAAI,CAAC2mL,kBAAkB,CAAC,IAAI7qI,wEAAY,CAACzkI,CAAC,EAAE/F,CAAC,EAAE6jB,KAAK,EAAEE,MAAM,CAAC,CAAC;IAC3F,IAAIuxP,SAAS,GAAGW,gBAAgB,CAACh8L,MAAM;IACvCg8L,gBAAgB,CAACh8L,MAAM,GAAG,IAAI;IAC9Bg8L,gBAAgB,CAACjzJ,kBAAkB,CAAC,CAAC;IACrCizJ,gBAAgB,CAACh8L,MAAM,GAAGq7L,SAAS;IAEnC,IAAIgT,eAAe,EAAE;MACnBrS,gBAAgB,CAAC1/L,MAAM,GAAG,CAAC0/L,gBAAgB,CAAC1/L,MAAM;IACpD;IAEA,IAAI,CAACg/L,gBAAgB,CAAC,CAAC;EACzB,CAAC;EAEDiT,GAAG,CAAC/vR,SAAS,CAAC03J,SAAS,GAAG,UAAUvxJ,IAAI,EAAE;IACxC,OAAO,IAAI,CAAC+pR,WAAW,CAAC9uR,GAAG,CAAC+E,IAAI,CAAC;EACnC,CAAC;EAED4pR,GAAG,CAAC/vR,SAAS,CAACuwR,gBAAgB,GAAG,UAAU13L,KAAK,EAAE;IAChD,IAAIs/D,OAAO,GAAG,IAAI,CAACA,OAAO;IAE1B,KAAK,IAAIt4J,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGs4J,OAAO,CAAC73J,MAAM,EAAET,CAAC,EAAE,EAAE;MACvC,IAAI43J,MAAM,GAAGU,OAAO,CAACt4J,CAAC,CAAC;MAEvB,IAAI43J,MAAM,CAAChkJ,IAAI,KAAK,SAAS,IAAIgkJ,MAAM,CAAC1/C,OAAO,CAAClf,KAAK,CAAC,EAAE;QACtD,OAAOs/D,OAAO,CAACt4J,CAAC,CAAC;MACnB;IACF;EACF,CAAC;EACD;AACF;AACA;;EAGEkwR,GAAG,CAAC/vR,SAAS,CAACwwR,WAAW,GAAG,UAAUrqR,IAAI,EAAEsqR,QAAQ,EAAE;IACpD,IAAI,CAACT,aAAa,CAAC3uR,GAAG,CAAC8E,IAAI,EAAEsqR,QAAQ,CAAC;EACxC,CAAC;EACD;AACF;AACA;;EAGEV,GAAG,CAAC/vR,SAAS,CAAC0wR,WAAW,GAAG,UAAUvqR,IAAI,EAAE;IAC1C,IAAIsxJ,MAAM,GAAG,IAAI,CAACy4H,WAAW,CAAC9uR,GAAG,CAAC+E,IAAI,CAAC,CAAC,CAAC;;IAGzC,OAAO,IAAI,CAAC6pR,aAAa,CAAC5uR,GAAG,CAAC+E,IAAI,CAAC,IAAIsxJ,MAAM,IAAIA,MAAM,CAACv6E,SAAS,CAAC,CAAC;EACrE,CAAC;EAED6yM,GAAG,CAAC/vR,SAAS,CAACq9E,WAAW,GAAG,UAAU5yE,IAAI,EAAEqzQ,MAAM,EAAEjpH,GAAG,EAAE;IACvD,IAAItsD,8DAAe,CAAC99F,IAAI,CAAC,EAAE;MACzB;MACAA,IAAI,GAAG,IAAI,CAACimR,WAAW,CAACjmR,IAAI,CAAC;IAC/B;IAEA,IAAIA,IAAI,EAAE;MACR,IAAIk4N,UAAU,GAAG,IAAI,CAACA,UAAU;MAEhC,IAAIA,UAAU,EAAE;QACd;QACAl4N,IAAI,GAAGk4N,UAAU,CAACI,OAAO,CAACt4N,IAAI,CAAC;MACjC;MAEA,OAAOA,IAAI,IAAI,IAAI,CAAC2yE,gBAAgB,CAAC3yE,IAAI,EAAEqzQ,MAAM,EAAEjpH,GAAG,CAAC;IACzD;EACF,CAAC;EAEDk7H,GAAG,CAAC/vR,SAAS,CAAC48E,WAAW,GAAG,UAAUF,KAAK,EAAE;IAC3C,IAAIimJ,UAAU,GAAG,IAAI,CAACA,UAAU;IAEhC,IAAIA,UAAU,EAAE;MACd;MACAjmJ,KAAK,GAAGimJ,UAAU,CAACytD,SAAS,CAAC1zM,KAAK,CAAC;IACrC;IAEA,OAAOA,KAAK,IAAI,IAAI,CAACC,gBAAgB,CAACD,KAAK,CAAC;EAC9C,CAAC;EACD;AACF;AACA;;EAGEqzM,GAAG,CAAC/vR,SAAS,CAAC28E,gBAAgB,GAAG,UAAUD,KAAK,EAAE;IAChD,OAAO6Y,MAAM,CAACv1F,SAAS,CAAC48E,WAAW,CAAC18E,IAAI,CAAC,IAAI,EAAEw8E,KAAK,CAAC;EACvD,CAAC;EAEDqzM,GAAG,CAAC/vR,SAAS,CAACo9E,gBAAgB,GAAG,UAAUuzM,SAAS,EAAE7S,MAAM,EAAEjpH,GAAG,EAAE;IACjE,OAAOt/D,MAAM,CAACv1F,SAAS,CAACq9E,WAAW,CAACn9E,IAAI,CAAC,IAAI,EAAEywR,SAAS,EAAE7S,MAAM,EAAEjpH,GAAG,CAAC;EACxE,CAAC;EAEDk7H,GAAG,CAAC/vR,SAAS,CAAC+9Q,cAAc,GAAG,UAAU9+L,OAAO,EAAE6U,MAAM,EAAE9yF,KAAK,EAAE;IAC/D,IAAI8gG,QAAQ,GAAGk8K,WAAW,CAAClqL,MAAM,CAAC;IAClC,OAAOgO,QAAQ,KAAK,IAAI,GAAGA,QAAQ,CAACzkB,WAAW,CAACr8E,KAAK,CAAC,GAAG,IAAI;EAC/D,CAAC;EAED+uR,GAAG,CAAC/vR,SAAS,CAACi+Q,gBAAgB,GAAG,UAAUh/L,OAAO,EAAE6U,MAAM,EAAEusH,KAAK,EAAE;IACjE,IAAIv+G,QAAQ,GAAGk8K,WAAW,CAAClqL,MAAM,CAAC;IAClC,OAAOgO,QAAQ,KAAK,IAAI,GAAGA,QAAQ,CAACllB,WAAW,CAACyjI,KAAK,CAAC,GAAG,IAAI;EAC/D,CAAC;EAED,OAAO0vE,GAAG;AACZ,CAAC,CAACxsJ,gDAAI,CAAC;AAEP;AACAh7B,2DAAY,CAACwnL,GAAG,EAAExsJ,gDAAI,CAAC;AAEvB,SAASy6I,WAAWA,CAAClqL,MAAM,EAAE;EAC3B,IAAIi7H,QAAQ,GAAGj7H,MAAM,CAACi7H,QAAQ;EAC9B,IAAIrjI,WAAW,GAAGoI,MAAM,CAACpI,WAAW;EACpC,OAAOqjI,QAAQ,GAAGA,QAAQ,CAACr0H,gBAAgB,GAAGhP,WAAW,GAAGA,WAAW,CAACgP,gBAAgB,CAAC;EAAA,GACtF,CAAChP,WAAW,CAACioF,sBAAsB,CAAC,KAAK,EAAEX,4DAAgB,CAAC,CAACY,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAEl5E,gBAAgB,GAAG,IAAI;AAC1G;AAEA,iEAAeq1L,GAAG;;;;;;;;;;;;;;;;;;;;;AC1PlB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACiF;AACpC,CAAC;;AAEN;AACM;AACM;AACQ;AAC5D,IAAIiB,qBAAqB,GAAG,MAAM;AAElC,IAAIC,eAAe,GACnB;AACA,YAAY;EACV,SAASA,eAAeA,CAACxhE,OAAO,EAAEyhE,OAAO,EAAEvhE,YAAY,EAAE;IACvD,IAAI,CAACl8M,IAAI,GAAG,SAAS;IACrB,IAAI,CAAC09Q,UAAU,GAAG1jM,uEAAa,CAAC,CAAC;IACjC,IAAI,CAAC2jM,QAAQ,GAAG3hE,OAAO;IACvB,IAAI,CAAC4hE,aAAa,GAAG1hE,YAAY,CAAC,CAAC;;IAEnC,IAAI,CAAC2hE,QAAQ,GAAGC,UAAU,CAACL,OAAO,CAAC;EACrC;EACA;AACF;AACA;AACA;;EAGED,eAAe,CAACjxR,SAAS,CAAC+3J,IAAI,GAAG,UAAUE,OAAO,EAAEC,YAAY,EAAE;IAChEA,YAAY,GAAGA,YAAY,IAAI84H,qBAAqB;IAEpD,IAAIQ,MAAM,GAAG,IAAI,CAACL,UAAU,CAAC/vR,GAAG,CAAC82J,YAAY,CAAC;IAE9C,IAAI,CAACs5H,MAAM,EAAE;MACX,IAAIC,UAAU,GAAG,IAAI,CAACC,eAAe,CAACx5H,YAAY,CAAC;MAEnDs5H,MAAM,GAAG,IAAI,CAACL,UAAU,CAAC9vR,GAAG,CAAC62J,YAAY,EAAE;QACzCC,OAAO,EAAEs5H,UAAU;QACnBvgF,YAAY,EAAEygF,qBAAqB,CAACF,UAAU;MAChD,CAAC,CAAC;IACJ;IAEA,IAAItB,UAAU,GAAG1iM,uEAAa,CAAC,CAAC;IAChC,IAAImkM,YAAY,GAAG,EAAE;IACrB7vM,8DAAI,CAACyvM,MAAM,CAACr5H,OAAO,EAAE,UAAUV,MAAM,EAAE;MACrC,IAAIc,UAAU,GAAGd,MAAM,CAACtxJ,IAAI,CAAC,CAAC;;MAE9B,IAAI8xJ,OAAO,IAAIt0E,gEAAM,CAACs0E,OAAO,EAAEM,UAAU,CAAC,EAAE;QAC1Cd,MAAM,GAAGA,MAAM,CAACuD,YAAY,CAACzC,UAAU,GAAGN,OAAO,CAACM,UAAU,CAAC,CAAC;MAChE;MAEAq5H,YAAY,CAACxuR,IAAI,CAACq0J,MAAM,CAAC;MACzB04H,UAAU,CAAC9uR,GAAG,CAACk3J,UAAU,EAAEd,MAAM,CAAC;IACpC,CAAC,CAAC;IACF,OAAO;MACLU,OAAO,EAAEy5H,YAAY;MACrB1gF,YAAY,EAAEsgF,MAAM,CAACtgF,YAAY,IAAI,IAAIn/D,wEAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;MACjEo+I,UAAU,EAAEA;IACd,CAAC;EACH,CAAC;EAEDc,eAAe,CAACjxR,SAAS,CAAC0xR,eAAe,GAAG,UAAUx5H,YAAY,EAAE;IAClE,IAAIu3D,OAAO,GAAG,IAAI,CAAC2hE,QAAQ;IAC3B,IAAIF,OAAO,GAAG,IAAI,CAACI,QAAQ;IAC3B,IAAIG,UAAU,CAAC,CAAC;;IAEhB,IAAI;MACFA,UAAU,GAAGP,OAAO,GAAGN,4DAAY,CAACM,OAAO,EAAEh5H,YAAY,CAAC,GAAG,EAAE;IACjE,CAAC,CAAC,OAAOv4J,CAAC,EAAE;MACV,MAAM,IAAI0G,KAAK,CAAC,0BAA0B,GAAG1G,CAAC,CAACqc,OAAO,CAAC;IACzD;IAEA60Q,0DAAS,CAACphE,OAAO,EAAEgiE,UAAU,CAAC;IAC9B1vM,8DAAI,CAAC0vM,UAAU,EAAE,UAAUh6H,MAAM,EAAE;MACjC,IAAIc,UAAU,GAAGd,MAAM,CAACtxJ,IAAI;MAC5B2qR,6DAAY,CAACrhE,OAAO,EAAEh4D,MAAM,CAAC;MAC7Bs5H,gEAAe,CAACthE,OAAO,EAAEh4D,MAAM,CAAC,CAAC,CAAC;MAClC;;MAEA,IAAIo6H,WAAW,GAAG,IAAI,CAACR,aAAa,IAAI,IAAI,CAACA,aAAa,CAAC94H,UAAU,CAAC;MAEtE,IAAIs5H,WAAW,EAAE;QACfp6H,MAAM,CAACq6H,WAAW,CAACD,WAAW,CAAClmK,IAAI,EAAEkmK,WAAW,CAACjmK,GAAG,EAAEimK,WAAW,CAACzmQ,KAAK,EAAEymQ,WAAW,CAACvmQ,MAAM,CAAC;MAC9F;IACF,CAAC,EAAE,IAAI,CAAC;IACR,OAAOmmQ,UAAU;EACnB,CAAC;EACD;AACF;AACA;AACA;;EAGER,eAAe,CAACjxR,SAAS,CAAC6vN,aAAa,GAAG,YAAY;IACpD,OAAO;MACL;MACA;MACA;MACAH,OAAO,EAAE,IAAI,CAAC4hE,QAAQ;MACtBJ,OAAO,EAAE,IAAI,CAACI,QAAQ;MACtB3hE,YAAY,EAAE,IAAI,CAAC0hE;IACrB,CAAC;EACH,CAAC;EAED,OAAOJ,eAAe;AACxB,CAAC,CAAC,CAAC;AAEwB;AAE3B,SAASU,qBAAqBA,CAACx5H,OAAO,EAAE;EACtC,IAAIliE,IAAI;EAER,KAAK,IAAIp2F,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGs4J,OAAO,CAAC73J,MAAM,EAAET,CAAC,EAAE,EAAE;IACvC,IAAIwwR,UAAU,GAAGl4H,OAAO,CAACt4J,CAAC,CAAC,CAACw+H,eAAe,CAAC,CAAC;IAC7CpoC,IAAI,GAAGA,IAAI,IAAIo6L,UAAU,CAACplM,KAAK,CAAC,CAAC;IACjCgL,IAAI,CAACgtL,KAAK,CAACoN,UAAU,CAAC;EACxB;EAEA,OAAOp6L,IAAI;AACb;AAEA,SAASs7L,UAAUA,CAAC11Q,MAAM,EAAE;EAC1B,OAAO,CAACi6F,kEAAQ,CAACj6F,MAAM,CAAC,GAAGA,MAAM,GAAG,OAAOjX,IAAI,KAAK,WAAW,IAAIA,IAAI,CAACM,KAAK,GAAGN,IAAI,CAACM,KAAK,CAAC2W,MAAM,CAAC,GAAG,IAAIk2Q,QAAQ,CAAC,UAAU,GAAGl2Q,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;AACjJ;;;;;;;;;;;;;;;;;;;;;;ACnKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACkC;AACiB;AACF;AACK;AACb;AACA;AACY;AACrD;AAEA,IAAIyzM,QAAQ,GACZ;AACA,UAAU/5H,MAAM,EAAE;EAChBL,gDAAS,CAACo6H,QAAQ,EAAE/5H,MAAM,CAAC;EAE3B,SAAS+5H,QAAQA,CAAA,EAAG;IAClB,IAAIrhN,KAAK,GAAGsnF,MAAM,KAAK,IAAI,IAAIA,MAAM,CAAC7yF,KAAK,CAAC,IAAI,EAAE0G,SAAS,CAAC,IAAI,IAAI;IAEpE6E,KAAK,CAACwF,IAAI,GAAG67M,QAAQ,CAAC77M,IAAI;IAC1B,OAAOxF,KAAK;EACd;EAEAqhN,QAAQ,CAACtvN,SAAS,CAAC8pH,IAAI,GAAG,UAAU/jB,MAAM,EAAEthB,WAAW,EAAExF,OAAO,EAAE;IAChE,IAAIpjE,MAAM,GAAGs7I,2EAA+B,CAACpxD,MAAM,CAACv9F,GAAG,CAAC;IAExD,IAAIqT,MAAM,IAAIA,MAAM,CAACpI,IAAI,KAAK,SAAS,EAAE;MACvC,IAAI0jF,SAAS,GAAG4O,MAAM,CAAC5O,SAAS,GAAG4O,MAAM,CAAC5O,SAAS,IAAI,CAAC,CAAC;MAEzD,IAAI,EAAE,OAAO,IAAIA,SAAS,CAAC,EAAE;QAC3BA,SAAS,CAACV,KAAK,GAAG,MAAM;MAC1B;IACF;IAEA,IAAI,CAACwiC,oBAAoB,CAAClzB,MAAM,EAAE9mB,OAAO,CAAC,CAAC,CAAC;;IAE5CulE,2DAAyB,CAACz+C,MAAM,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;EACtD,CAAC;EAEDupH,QAAQ,CAACtvN,SAAS,CAAC08G,aAAa,GAAG,YAAY;IAC7C,IAAIzuG,KAAK,GAAG,IAAI;IAEhB,IAAI83F,MAAM,GAAG,IAAI,CAACA,MAAM;IACxBA,MAAM,CAACoyD,OAAO,GAAGo3D,uEAA2B,CAACxpH,MAAM,CAACoyD,OAAO,EAAEpyD,MAAM,CAACv9F,GAAG,EAAEu9F,MAAM,CAACkyD,OAAO,EAAElyD,MAAM,CAACmyD,YAAY,CAAC;IAC7G,IAAIw9E,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,CAACu8C,eAAe,GAAG1pL,4DAAa,CAACxC,MAAM,CAACoyD,OAAO,IAAI,EAAE,EAAE,UAAU+5H,cAAc,EAAEC,SAAS,EAAE;MAC9F,IAAI55H,UAAU,GAAG45H,SAAS,CAAChsR,IAAI;MAE/B,IAAIoyJ,UAAU,EAAE;QACd25H,cAAc,CAAC7wR,GAAG,CAACk3J,UAAU,EAAE,IAAIpgC,uDAAK,CAACg6J,SAAS,EAAElkR,KAAK,EAAEA,KAAK,CAACgxE,OAAO,CAAC,CAAC;QAE1E,IAAIkzM,SAAS,CAACpoJ,QAAQ,EAAE;UACtB2rG,WAAW,CAACn9E,UAAU,CAAC,GAAG,IAAI;QAChC;MACF;MAEA,OAAO25H,cAAc;IACvB,CAAC,EAAE3pL,mEAAoB,CAAC,CAAC,CAAC;IAE1B,IAAI,CAACxC,MAAM,CAAC2vI,WAAW,EAAE;MACvB3vI,MAAM,CAAC2vI,WAAW,GAAGA,WAAW;IAClC;EACF,CAAC;EACD;AACF;AACA;;EAGEpmB,QAAQ,CAACtvN,SAAS,CAACs4J,cAAc,GAAG,UAAUnyJ,IAAI,EAAE;IAClD,OAAO,IAAI,CAAC8rR,eAAe,CAAC7wR,GAAG,CAAC+E,IAAI,CAAC,IAAI,IAAIgyH,uDAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAACl5C,OAAO,CAAC;EAC9E,CAAC;EACD;AACF;AACA;AACA;;EAGEqwI,QAAQ,CAACtvN,SAAS,CAACukH,iBAAiB,GAAG,UAAUp+G,IAAI,EAAEuxH,MAAM,EAAE;IAC7D,IAAI2rG,WAAW,GAAG,IAAI,CAAC/qE,cAAc,CAACnyJ,IAAI,CAAC;IAC3C,IAAI21H,SAAS,GAAGpE,MAAM,KAAK,QAAQ,GAAG2rG,WAAW,CAACjiO,GAAG,CAAC,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,GAAGiiO,WAAW,CAACjiO,GAAG,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IACnI,IAAIysB,MAAM,GAAG;MACX1nB,IAAI,EAAEA;IACR,CAAC;IAED,IAAIoiG,gEAAiB,CAACuzB,SAAS,CAAC,EAAE;MAChCjuG,MAAM,CAAC6pG,MAAM,GAAGA,MAAM;MACtB,OAAOoE,SAAS,CAACjuG,MAAM,CAAC;IAC1B,CAAC,MAAM,IAAI06E,8DAAe,CAACuzB,SAAS,CAAC,EAAE;MACrC,OAAOA,SAAS,CAACnzH,OAAO,CAAC,KAAK,EAAExC,IAAI,IAAI,IAAI,GAAGA,IAAI,GAAG,EAAE,CAAC;IAC3D;EACF,CAAC;EAEDmpN,QAAQ,CAACtvN,SAAS,CAACo+E,OAAO,GAAG,UAAUjB,IAAI,EAAE;IAC3C,IAAI,CAAC4oB,MAAM,CAAC5oB,IAAI,GAAGA,IAAI;EACzB,CAAC;EAEDmyI,QAAQ,CAACtvN,SAAS,CAACw9E,SAAS,GAAG,UAAUP,MAAM,EAAE;IAC/C,IAAI,CAAC8oB,MAAM,CAAC9oB,MAAM,GAAGA,MAAM;EAC7B,CAAC,CAAC,CAAC;;EAGHqyI,QAAQ,CAACtvN,SAAS,CAACk3F,MAAM,GAAG,UAAU/wF,IAAI,EAAE;IAC1C,IAAI4/F,MAAM,GAAG,IAAI,CAACA,MAAM;IACxB,IAAIqzD,YAAY,GAAGrzD,MAAM,CAACqzD,YAAY;IAEtC,IAAI,CAACA,YAAY,EAAE;MACjB;IACF;IAEA,IAAIA,YAAY,KAAK,UAAU,EAAE;MAC/BrzD,MAAM,CAAC2vI,WAAW,GAAG,IAAI;IAC3B;IAEA,IAAIA,WAAW,GAAG3vI,MAAM,CAAC2vI,WAAW,KAAK3vI,MAAM,CAAC2vI,WAAW,GAAG,CAAC,CAAC,CAAC;IACjEA,WAAW,CAACvvO,IAAI,CAAC,GAAG,IAAI;EAC1B,CAAC;EAEDmpN,QAAQ,CAACtvN,SAAS,CAACqsO,QAAQ,GAAG,UAAUlmO,IAAI,EAAE;IAC5C,IAAIuvO,WAAW,GAAG,IAAI,CAAC3vI,MAAM,CAAC2vI,WAAW;IAEzC,IAAIA,WAAW,EAAE;MACfA,WAAW,CAACvvO,IAAI,CAAC,GAAG,KAAK;IAC3B;EACF,CAAC;EAEDmpN,QAAQ,CAACtvN,SAAS,CAACssO,cAAc,GAAG,UAAUnmO,IAAI,EAAE;IAClD,IAAI,CAAC,IAAI,CAAC+6H,UAAU,CAAC/6H,IAAI,CAAC,GAAG,UAAU,GAAG,QAAQ,CAAC,CAACA,IAAI,CAAC;EAC3D,CAAC;EAEDmpN,QAAQ,CAACtvN,SAAS,CAACkhI,UAAU,GAAG,UAAU/6H,IAAI,EAAE;IAC9C,IAAIuvO,WAAW,GAAG,IAAI,CAAC3vI,MAAM,CAAC2vI,WAAW;IACzC,OAAO,CAAC,EAAEA,WAAW,IAAIA,WAAW,CAACvvO,IAAI,CAAC,CAAC;EAC7C,CAAC;EAEDmpN,QAAQ,CAAC77M,IAAI,GAAG,KAAK;EACrB67M,QAAQ,CAACv2D,UAAU,GAAG,KAAK;EAC3Bu2D,QAAQ,CAACl5H,aAAa,GAAG;IACvB;IACA1oF,CAAC,EAAE,CAAC;IACJ29G,IAAI,EAAE,IAAI;IACVM,IAAI,EAAE,QAAQ;IACdC,GAAG,EAAE,QAAQ;IACb;IACA;IACA;IACAotC,WAAW,EAAE,IAAI;IACjB;IACA;IACA;IACA;IACA;IACAhyE,MAAM,EAAE,KAAK;IACb;IACAx+E,GAAG,EAAE,EAAE;IACP;IACA;IACA0wJ,cAAc,EAAE,IAAI;IACpB;IACAj8E,MAAM,EAAE,IAAI;IACZE,IAAI,EAAE,CAAC;IACPg8E,UAAU,EAAE,IAAI;IAChB;IACAv2J,KAAK,EAAE;MACLyoH,IAAI,EAAE,KAAK;MACX50B,KAAK,EAAE;IACT,CAAC;IACDU,SAAS,EAAE;MACTR,WAAW,EAAE,GAAG;MAChBD,WAAW,EAAE,MAAM,CAAC;MACpB;MACA;MACA;IAEF,CAAC;;IACD4R,QAAQ,EAAE;MACR1lG,KAAK,EAAE;QACLyoH,IAAI,EAAE,IAAI;QACV50B,KAAK,EAAE;MACT,CAAC;MACDU,SAAS,EAAE;QACTV,KAAK,EAAE;MACT;IACF,CAAC;IACDS,MAAM,EAAE;MACNt0F,KAAK,EAAE;QACLyoH,IAAI,EAAE,IAAI;QACV50B,KAAK,EAAE;MACT,CAAC;MACDU,SAAS,EAAE;QACTV,KAAK,EAAE;MACT;IACF,CAAC;IACD0hE,OAAO,EAAE,EAAE,CAAC;IACZ;IACA;EAEF,CAAC;;EACD,OAAOm3D,QAAQ;AACjB,CAAC,CAAC1wB,2DAAc,CAAC;AAEjB,iEAAe0wB,QAAQ;;;;;;;;;;;;;;;;;;;;;;AChPvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC8E;AAC7B;AACI;AACkB;AACX;AACJ;AACb;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAIkjE,4BAA4B,GAAG/kM,uEAAa,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM;AAAE;AACtH;AACA,MAAM,EAAE,OAAO;AAAE;AACjB;AACA;AACA;AACA,GAAG,CAAC,CAAC;AAEL,IAAIglM,cAAc,GAClB;AACA,YAAY;EACV,SAASA,cAAcA,CAAChjE,OAAO,EAAEijE,GAAG,EAAE;IACpC,IAAI,CAACj/Q,IAAI,GAAG,QAAQ,CAAC,CAAC;;IAEtB,IAAI,CAACk/Q,eAAe,GAAGllM,uEAAa,CAAC,CAAC,CAAC,CAAC;;IAExC,IAAI,CAACmlM,cAAc,GAAG,EAAE;IACxB,IAAI,CAACxB,QAAQ,GAAG3hE,OAAO,CAAC,CAAC;IACzB;IACA;IACA;IACA;IACA;;IAEA,IAAI,CAACojE,UAAU,GAAGP,sEAAQ,CAACI,GAAG,CAAC;EACjC;EAEAD,cAAc,CAACzyR,SAAS,CAAC+3J,IAAI,GAAG,YAChC;EACA;IACE;IACA;IACA,IAAI+6H,YAAY,GAAG,IAAI,CAACC,aAAa,CAAC,CAAC;IACvC;IACA;IACA;IACA;;IAEA,IAAI,CAACD,YAAY,EAAE;MACjBA,YAAY,GAAG,IAAI,CAACC,aAAa,GAAG,IAAI,CAACC,aAAa,CAAC,IAAI,CAACH,UAAU,CAAC;MAEvE,IAAI,CAACD,cAAc,CAACxvR,IAAI,CAAC0vR,YAAY,CAAC;MAEtC,IAAI,CAACG,aAAa,GAAG,IAAI,CAACF,aAAa,CAAC7hF,YAAY,CAACjmH,KAAK,CAAC,CAAC,CAAC,CAAC;MAC9D;MACA;MACA;;MAEA,IAAI+B,EAAE,GAAGkmM,aAAa,CAACJ,YAAY,CAAC9tD,KAAK,CAAC;QACtC7sE,OAAO,GAAGnrE,EAAE,CAACmrE,OAAO;QACpBg4H,UAAU,GAAGnjM,EAAE,CAACmjM,UAAU;MAE9B,IAAI,CAACgD,QAAQ,GAAGh7H,OAAO;MACvB,IAAI,CAAC+3H,WAAW,GAAGC,UAAU;IAC/B;IAEA,OAAO;MACLj/E,YAAY,EAAE,IAAI,CAAC+hF,aAAa;MAChC96H,OAAO,EAAE,IAAI,CAACg7H,QAAQ;MACtBhD,UAAU,EAAE,IAAI,CAACD;IACnB,CAAC;EACH,CAAC;EAEDuC,cAAc,CAACzyR,SAAS,CAACgzR,aAAa,GAAG,UAAUI,MAAM,EAAE;IACzD,IAAIvjQ,MAAM;IACV,IAAIwjQ,aAAa;IAEjB,IAAI;MACFxjQ,MAAM,GAAGujQ,MAAM,IAAIhB,sEAAQ,CAACgB,MAAM,EAAE;QAClCE,aAAa,EAAE,IAAI;QACnBC,cAAc,EAAE;MAClB,CAAC,CAAC,IAAI,CAAC,CAAC;MACRF,aAAa,GAAGxjQ,MAAM,CAACwI,IAAI;MAC3BmrD,gEAAM,CAAC6vM,aAAa,IAAI,IAAI,CAAC;IAC/B,CAAC,CAAC,OAAO1zR,CAAC,EAAE;MACV,MAAM,IAAI0G,KAAK,CAAC,sBAAsB,GAAG1G,CAAC,CAACqc,OAAO,CAAC;IACrD,CAAC,CAAC;;IAGF,IAAIqc,IAAI,GAAG,IAAIg/D,oEAAK,CAAC,CAAC;IACtBh/D,IAAI,CAAClzB,GAAG,CAACkuR,aAAa,CAAC;IACvBh7P,IAAI,CAACm7P,mBAAmB,GAAG,IAAI,CAAC,CAAC;IACjC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;IAEA,IAAIC,QAAQ,GAAG5jQ,MAAM,CAACzE,KAAK;IAC3B,IAAIsoQ,SAAS,GAAG7jQ,MAAM,CAACvE,MAAM;IAC7B,IAAIqoQ,WAAW,GAAG9jQ,MAAM,CAAC8jQ,WAAW;IACpC,IAAIziF,YAAY,GAAG,IAAI,CAAC+hF,aAAa;IAErC,IAAI,CAAC/hF,YAAY,EAAE;MACjB,IAAI0iF,MAAM,GAAG,KAAK,CAAC;MACnB,IAAIC,MAAM,GAAG,KAAK,CAAC;MACnB,IAAIC,UAAU,GAAG,KAAK,CAAC;MACvB,IAAIC,WAAW,GAAG,KAAK,CAAC;MAExB,IAAIN,QAAQ,IAAI,IAAI,EAAE;QACpBG,MAAM,GAAG,CAAC;QACVE,UAAU,GAAGL,QAAQ;MACvB,CAAC,MAAM,IAAIE,WAAW,EAAE;QACtBC,MAAM,GAAGD,WAAW,CAACrmR,CAAC;QACtBwmR,UAAU,GAAGH,WAAW,CAACvoQ,KAAK;MAChC;MAEA,IAAIsoQ,SAAS,IAAI,IAAI,EAAE;QACrBG,MAAM,GAAG,CAAC;QACVE,WAAW,GAAGL,SAAS;MACzB,CAAC,MAAM,IAAIC,WAAW,EAAE;QACtBE,MAAM,GAAGF,WAAW,CAACpsR,CAAC;QACtBwsR,WAAW,GAAGJ,WAAW,CAACroQ,MAAM;MAClC,CAAC,CAAC;MACF;;MAGA,IAAIsoQ,MAAM,IAAI,IAAI,IAAIC,MAAM,IAAI,IAAI,EAAE;QACpC,IAAIG,sBAAsB,GAAGX,aAAa,CAACh1J,eAAe,CAAC,CAAC;QAE5D,IAAIu1J,MAAM,IAAI,IAAI,EAAE;UAClBA,MAAM,GAAGI,sBAAsB,CAAC1mR,CAAC;UACjCwmR,UAAU,GAAGE,sBAAsB,CAAC5oQ,KAAK;QAC3C;QAEA,IAAIyoQ,MAAM,IAAI,IAAI,EAAE;UAClBA,MAAM,GAAGG,sBAAsB,CAACzsR,CAAC;UACjCwsR,WAAW,GAAGC,sBAAsB,CAAC1oQ,MAAM;QAC7C;MACF;MAEA4lL,YAAY,GAAG,IAAI,CAAC+hF,aAAa,GAAG,IAAIlhJ,wEAAY,CAAC6hJ,MAAM,EAAEC,MAAM,EAAEC,UAAU,EAAEC,WAAW,CAAC;IAC/F;IAEA,IAAIJ,WAAW,EAAE;MACf,IAAIM,gBAAgB,GAAG5B,kFAAoB,CAACsB,WAAW,EAAEziF,YAAY,CAAC,CAAC,CAAC;;MAExEmiF,aAAa,CAACx1M,MAAM,GAAGw1M,aAAa,CAACv1M,MAAM,GAAGm2M,gBAAgB,CAAC/vM,KAAK;MACpEmvM,aAAa,CAAC/lR,CAAC,GAAG2mR,gBAAgB,CAAC3mR,CAAC;MACpC+lR,aAAa,CAAC9rR,CAAC,GAAG0sR,gBAAgB,CAAC1sR,CAAC;IACtC,CAAC,CAAC;IACF;IACA;IACA;IACA;IACA;;IAGA8wB,IAAI,CAACilE,WAAW,CAAC,IAAIhG,yEAAI,CAAC;MACxB5P,KAAK,EAAEwpH,YAAY,CAACgjF,KAAK,CAAC;IAC5B,CAAC,CAAC,CAAC;IACH,IAAIlvD,KAAK,GAAG,EAAE;IACdjjJ,8DAAI,CAAClyD,MAAM,CAACm1M,KAAK,EAAE,UAAUC,SAAS,EAAE;MACtC,IAAIutD,4BAA4B,CAACpxR,GAAG,CAAC6jO,SAAS,CAACC,eAAe,CAAC,IAAI,IAAI,EAAE;QACvEF,KAAK,CAAC5hO,IAAI,CAAC6hO,SAAS,CAAC;QACrBkvD,SAAS,CAAClvD,SAAS,CAACplJ,EAAE,CAAC;MACzB;IACF,CAAC,CAAC;IACF,OAAO;MACLxnD,IAAI,EAAEA,IAAI;MACV64K,YAAY,EAAEA,YAAY;MAC1B8zB,KAAK,EAAEA;IACT,CAAC;EACH,CAAC;EACD;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EAGEytD,cAAc,CAACzyR,SAAS,CAAC2lO,UAAU,GAAG,UAAUyuD;EAChD,0BACE;IACA,IAAIC,WAAW,GAAG,IAAI,CAAC1B,eAAe;IACtC,IAAIjtD,UAAU,GAAG2uD,WAAW,CAACjzR,GAAG,CAACgzR,OAAO,CAAC;IAEzC,IAAI1uD,UAAU,EAAE;MACd,OAAOA,UAAU;IACnB;IAEAA,UAAU,GAAG,IAAI,CAACktD,cAAc,CAAChxR,GAAG,CAAC,CAAC,CAAC;IAAA,GACpC,IAAI,CAACoxR,aAAa,CAAC,IAAI,CAACH,UAAU,CAAC;IACtCwB,WAAW,CAAChzR,GAAG,CAAC+yR,OAAO,EAAE1uD,UAAU,CAAC,CAAC,CAAC;IACtC;IACA;IACA;IACA;IACA;IACA;;IAEA,OAAOA,UAAU;EACnB,CAAC;EAED+sD,cAAc,CAACzyR,SAAS,CAAC4lO,WAAW,GAAG,UAAUwuD,OAAO,EAAE;IACxD,IAAIC,WAAW,GAAG,IAAI,CAAC1B,eAAe;IACtC,IAAIjtD,UAAU,GAAG2uD,WAAW,CAACjzR,GAAG,CAACgzR,OAAO,CAAC;IAEzC,IAAI1uD,UAAU,EAAE;MACd2uD,WAAW,CAAClnE,SAAS,CAACinE,OAAO,CAAC;MAE9B,IAAI,CAACxB,cAAc,CAACxvR,IAAI,CAACsiO,UAAU,CAAC;IACtC;EACF,CAAC;EAED,OAAO+sD,cAAc;AACvB,CAAC,CAAC,CAAC;AAEuB;AAE1B,SAAS0B,SAASA,CAACt0M,EAAE,EAAE;EACrB;EACA;EACAA,EAAE,CAACmH,MAAM,GAAG,KAAK,CAAC,CAAC;;EAEnB,IAAInH,EAAE,CAAC4B,OAAO,EAAE;IACd5B,EAAE,CAAC6B,QAAQ,CAAC,UAAUz4D,KAAK,EAAE;MAC3BA,KAAK,CAAC+9D,MAAM,GAAG,KAAK;IACtB,CAAC,CAAC;EACJ;AACF;AAEA,SAASksM,aAAaA,CAACluD,KAAK,EAAE;EAC5B,IAAI7sE,OAAO,GAAG,EAAE;EAChB,IAAIg4H,UAAU,GAAG1iM,uEAAa,CAAC,CAAC,CAAC,CAAC;;EAElC1L,8DAAI,CAACijJ,KAAK,EAAE,UAAUC,SAAS,EAAE;IAC/B;IACA;IACA;IACA,IAAIA,SAAS,CAACE,SAAS,IAAI,IAAI,EAAE;MAC/B;IACF;IAEA,IAAI1tE,MAAM,GAAG,IAAI86H,oDAAY,CAACttD,SAAS,CAAC9+N,IAAI,EAAE8+N,SAAS,CAACplJ,EAAE,CAAC,CAAC,CAAC;IAC7D;;IAEAs4E,OAAO,CAAC/0J,IAAI,CAACq0J,MAAM,CAAC,CAAC,CAAC;IACtB;IACA;;IAEA04H,UAAU,CAAC9uR,GAAG,CAAC4jO,SAAS,CAAC9+N,IAAI,EAAEsxJ,MAAM,CAAC;EACxC,CAAC,CAAC;EACF,OAAO;IACLU,OAAO,EAAEA,OAAO;IAChBg4H,UAAU,EAAEA;EACd,CAAC;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;AC3WA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACkC;AAC0B;AACT;AACc;AACZ;AACL;AAChD,IAAImE,aAAa,GAAG,EAAE;AAEtB,SAASC,eAAeA,CAAC9vL,MAAM,EAAEh6E,SAAS,EAAE;EAC1C,KAAK,IAAI3jB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG29F,MAAM,CAACnkG,MAAM,EAAEwG,CAAC,EAAE,EAAE;IACtCi4H,sEAAmB,CAACt6B,MAAM,CAAC39F,CAAC,CAAC,EAAE29F,MAAM,CAAC39F,CAAC,CAAC,EAAE2jB,SAAS,CAAC;EACtD;AACF;AAEA,SAAS+pQ,oBAAoBA,CAAC/vL,MAAM,EAAE/mB,GAAG,EAAEh4E,GAAG,EAAEi9N,UAAU,EAAE;EAC1D,KAAK,IAAI9iO,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG4kG,MAAM,CAACnkG,MAAM,EAAET,CAAC,EAAE,EAAE;IACtC,IAAIiH,CAAC,GAAG29F,MAAM,CAAC5kG,CAAC,CAAC;IAEjB,IAAI8iO,UAAU,EAAE;MACd;MACA77N,CAAC,GAAG67N,UAAU,CAACI,OAAO,CAACj8N,CAAC,CAAC;IAC3B;IAEA,IAAIA,CAAC,IAAI+iF,QAAQ,CAAC/iF,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI+iF,QAAQ,CAAC/iF,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;MACzCi4H,2DAAQ,CAACrhD,GAAG,EAAEA,GAAG,EAAE52E,CAAC,CAAC;MACrBi4H,2DAAQ,CAACr5H,GAAG,EAAEA,GAAG,EAAEoB,CAAC,CAAC;IACvB;EACF;AACF;AAEA,SAAS2tR,QAAQA,CAAChwL,MAAM,EAAE;EACxB,IAAIiwL,UAAU,GAAG,CAAC;EAClB,IAAI59P,EAAE,GAAG,CAAC;EACV,IAAIC,EAAE,GAAG,CAAC;EACV,IAAI6zD,GAAG,GAAG6Z,MAAM,CAACnkG,MAAM;EACvB,IAAI0vH,EAAE,GAAGvrB,MAAM,CAAC7Z,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;EAC3B,IAAIklC,EAAE,GAAGrrB,MAAM,CAAC7Z,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;EAE7B,KAAK,IAAI/qF,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG+qF,GAAG,EAAE/qF,CAAC,EAAE,EAAE;IAC5B,IAAIkvH,EAAE,GAAGtqB,MAAM,CAAC5kG,CAAC,CAAC,CAAC,CAAC,CAAC;IACrB,IAAImvH,EAAE,GAAGvqB,MAAM,CAAC5kG,CAAC,CAAC,CAAC,CAAC,CAAC;IACrB,IAAIoC,CAAC,GAAG+tH,EAAE,GAAGhB,EAAE,GAAGD,EAAE,GAAGe,EAAE;IACzB4kK,UAAU,IAAIzyR,CAAC;IACf60B,EAAE,IAAI,CAACk5F,EAAE,GAAGjB,EAAE,IAAI9sH,CAAC;IACnB80B,EAAE,IAAI,CAAC+4F,EAAE,GAAGd,EAAE,IAAI/sH,CAAC;IACnB+tH,EAAE,GAAGjB,EAAE;IACPe,EAAE,GAAGd,EAAE;EACT;EAEA,OAAO0lK,UAAU,GAAG,CAAC59P,EAAE,GAAG49P,UAAU,GAAG,CAAC,EAAE39P,EAAE,GAAG29P,UAAU,GAAG,CAAC,EAAEA,UAAU,CAAC,GAAG,CAACjwL,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACrH;AAEA,IAAIkwL,MAAM,GACV;AACA,YAAY;EACV,SAASA,MAAMA,CAACxuR,IAAI,EAAE;IACpB,IAAI,CAACA,IAAI,GAAGA,IAAI;EAClB;EAEAwuR,MAAM,CAAC30R,SAAS,CAACw9E,SAAS,GAAG,UAAUP,MAAM,EAAE;IAC7C,IAAI,CAAC+/L,OAAO,GAAG//L,MAAM;EACvB,CAAC;EACD;AACF;AACA;AACA;AACA;;EAGE03M,MAAM,CAAC30R,SAAS,CAACk9E,SAAS,GAAG,YAAY;IACvC,IAAID,MAAM,GAAG,IAAI,CAAC+/L,OAAO;IAEzB,IAAI,CAAC//L,MAAM,EAAE;MACX;MACA;MACAA,MAAM,GAAG,IAAI,CAAC+/L,OAAO,GAAG,IAAI,CAAC4X,UAAU,CAAC,CAAC;IAC3C;IAEA,OAAO33M,MAAM;EACf,CAAC;EAED,OAAO03M,MAAM;AACf,CAAC,CAAC,CAAC;AAEe;AAElB,IAAIE,sBAAsB,GAC1B;AACA,YAAY;EACV,SAASA,sBAAsBA,CAAClxD,QAAQ,EAAEC,SAAS,EAAE;IACnD,IAAI,CAACnwN,IAAI,GAAG,SAAS;IACrB,IAAI,CAACkwN,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,SAAS,GAAGA,SAAS;EAC5B;EAEA,OAAOixD,sBAAsB;AAC/B,CAAC,CAAC,CAAC;AAE+B;AAElC,IAAIC,yBAAyB,GAC7B;AACA,YAAY;EACV,SAASA,yBAAyBA,CAACrwL,MAAM,EAAE;IACzC,IAAI,CAAChxF,IAAI,GAAG,YAAY;IACxB,IAAI,CAACgxF,MAAM,GAAGA,MAAM;EACtB;EAEA,OAAOqwL,yBAAyB;AAClC,CAAC,CAAC,CAAC;AAEkC;AAErC,IAAIC,aAAa,GACjB;AACA,UAAUx/L,MAAM,EAAE;EAChBL,gDAAS,CAAC6/L,aAAa,EAAEx/L,MAAM,CAAC;EAEhC,SAASw/L,aAAaA,CAAC5uR,IAAI,EAAEq9N,UAAU,EAAEnsF,EAAE,EAAE;IAC3C,IAAIppI,KAAK,GAAGsnF,MAAM,CAACr1F,IAAI,CAAC,IAAI,EAAEiG,IAAI,CAAC,IAAI,IAAI;IAE3C8H,KAAK,CAACwF,IAAI,GAAG,SAAS;IACtBxF,KAAK,CAACu1N,UAAU,GAAGA,UAAU;IAC7Bv1N,KAAK,CAAC+uQ,OAAO,GAAG3lI,EAAE,IAAI,CAACA,EAAE,CAAC,CAAC,CAAC,EAAEA,EAAE,CAAC,CAAC,CAAC,CAAC;IACpC,OAAOppI,KAAK;EACd;EAEA8mR,aAAa,CAAC/0R,SAAS,CAAC40R,UAAU,GAAG,YAAY;IAC/C,IAAIpxD,UAAU,GAAG,IAAI,CAACA,UAAU;IAChC,IAAIwxD,UAAU;IACd,IAAIC,cAAc,GAAG,CAAC;IAEtB,KAAK,IAAIp1R,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG2jO,UAAU,CAACljO,MAAM,EAAET,CAAC,EAAE,EAAE;MAC1C,IAAI8+G,GAAG,GAAG6kH,UAAU,CAAC3jO,CAAC,CAAC;MACvB,IAAI8jO,QAAQ,GAAGhlH,GAAG,CAACglH,QAAQ,CAAC,CAAC;MAC7B;;MAEA,IAAInvN,IAAI,GAAGmvN,QAAQ,IAAIA,QAAQ,CAACrjO,MAAM;MAEtC,IAAIkU,IAAI,GAAGygR,cAAc,EAAE;QACzBD,UAAU,GAAGr2K,GAAG;QAChBs2K,cAAc,GAAGzgR,IAAI;MACvB;IACF;IAEA,IAAIwgR,UAAU,EAAE;MACd,OAAOP,QAAQ,CAACO,UAAU,CAACrxD,QAAQ,CAAC;IACtC,CAAC,CAAC;;IAGF,IAAI1tI,IAAI,GAAG,IAAI,CAACooC,eAAe,CAAC,CAAC;IACjC,OAAO,CAACpoC,IAAI,CAAC3oF,CAAC,GAAG2oF,IAAI,CAAC7qE,KAAK,GAAG,CAAC,EAAE6qE,IAAI,CAAC1uF,CAAC,GAAG0uF,IAAI,CAAC3qE,MAAM,GAAG,CAAC,CAAC;EAC5D,CAAC;EAEDypQ,aAAa,CAAC/0R,SAAS,CAACq+H,eAAe,GAAG,UAAUskG,UAAU,EAAE;IAC9D,IAAI1sI,IAAI,GAAG,IAAI,CAACy7C,KAAK,CAAC,CAAC;;IAEvB,IAAIz7C,IAAI,IAAI,CAAC0sI,UAAU,EAAE;MACvB,OAAO1sI,IAAI;IACb;IAEA,IAAIvY,GAAG,GAAG,CAACE,QAAQ,EAAEA,QAAQ,CAAC;IAC9B,IAAIl4E,GAAG,GAAG,CAAC,CAACk4E,QAAQ,EAAE,CAACA,QAAQ,CAAC;IAChC,IAAI4lJ,UAAU,GAAG,IAAI,CAACA,UAAU;IAChCzhJ,8DAAI,CAACyhJ,UAAU,EAAE,UAAU7kH,GAAG,EAAE;MAC9B,IAAIA,GAAG,CAAClrG,IAAI,KAAK,SAAS,EAAE;QAC1B;QACA+gR,oBAAoB,CAAC71K,GAAG,CAACglH,QAAQ,EAAEjmJ,GAAG,EAAEh4E,GAAG,EAAEi9N,UAAU,CAAC;MAC1D,CAAC,MAAM;QACL5gJ,8DAAI,CAAC48B,GAAG,CAACla,MAAM,EAAE,UAAUA,MAAM,EAAE;UACjC+vL,oBAAoB,CAAC/vL,MAAM,EAAE/mB,GAAG,EAAEh4E,GAAG,EAAEi9N,UAAU,CAAC;QACpD,CAAC,CAAC;MACJ;IACF,CAAC,CAAC,CAAC,CAAC;;IAEJ,IAAI,EAAE94I,QAAQ,CAACnM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAImM,QAAQ,CAACnM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAImM,QAAQ,CAACnkF,GAAG,CAAC,CAAC,CAAC,CAAC,IAAImkF,QAAQ,CAACnkF,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;MACnFg4E,GAAG,CAAC,CAAC,CAAC,GAAGA,GAAG,CAAC,CAAC,CAAC,GAAGh4E,GAAG,CAAC,CAAC,CAAC,GAAGA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACvC;IAEAuwF,IAAI,GAAG,IAAI87C,wEAAY,CAACr0D,GAAG,CAAC,CAAC,CAAC,EAAEA,GAAG,CAAC,CAAC,CAAC,EAAEh4E,GAAG,CAAC,CAAC,CAAC,GAAGg4E,GAAG,CAAC,CAAC,CAAC,EAAEh4E,GAAG,CAAC,CAAC,CAAC,GAAGg4E,GAAG,CAAC,CAAC,CAAC,CAAC;IAEzE,IAAI,CAACilJ,UAAU,EAAE;MACf,IAAI,CAACjxF,KAAK,GAAGz7C,IAAI;IACnB;IAEA,OAAOA,IAAI;EACb,CAAC;EAED8+L,aAAa,CAAC/0R,SAAS,CAAC+3G,OAAO,GAAG,UAAUlf,KAAK,EAAE;IACjD,IAAI5C,IAAI,GAAG,IAAI,CAACooC,eAAe,CAAC,CAAC;IACjC,IAAImlG,UAAU,GAAG,IAAI,CAACA,UAAU;IAEhC,IAAI,CAACvtI,IAAI,CAAC8hB,OAAO,CAAClf,KAAK,CAAC,CAAC,CAAC,EAAEA,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;MACrC,OAAO,KAAK;IACd;IAEAq8L,OAAO,EAAE,KAAK,IAAIr1R,CAAC,GAAG,CAAC,EAAE+qF,GAAG,GAAG44I,UAAU,CAACljO,MAAM,EAAET,CAAC,GAAG+qF,GAAG,EAAE/qF,CAAC,EAAE,EAAE;MAC9D,IAAI8+G,GAAG,GAAG6kH,UAAU,CAAC3jO,CAAC,CAAC,CAAC,CAAC;;MAEzB,IAAI8+G,GAAG,CAAClrG,IAAI,KAAK,SAAS,EAAE;QAC1B;MACF;MAEA,IAAIkwN,QAAQ,GAAGhlH,GAAG,CAACglH,QAAQ;MAC3B,IAAIC,SAAS,GAAGjlH,GAAG,CAACilH,SAAS;MAE7B,IAAIjzB,mEAAsB,CAACgzB,QAAQ,EAAE9qI,KAAK,CAAC,CAAC,CAAC,EAAEA,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;QACxD;QACA,KAAK,IAAIjxF,CAAC,GAAG,CAAC,EAAEA,CAAC,IAAIg8N,SAAS,GAAGA,SAAS,CAACtjO,MAAM,GAAG,CAAC,CAAC,EAAEsH,CAAC,EAAE,EAAE;UAC3D,IAAI+oM,mEAAsB,CAACizB,SAAS,CAACh8N,CAAC,CAAC,EAAEixF,KAAK,CAAC,CAAC,CAAC,EAAEA,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;YAC5D,SAASq8L,OAAO;UAClB;QACF;QAEA,OAAO,IAAI;MACb;IACF;IAEA,OAAO,KAAK;EACd,CAAC;EACD;AACF;AACA;AACA;AACA;AACA;AACA;;EAGEH,aAAa,CAAC/0R,SAAS,CAAC8xR,WAAW,GAAG,UAAUxkR,CAAC,EAAE/F,CAAC,EAAE6jB,KAAK,EAAEE,MAAM,EAAE;IACnE,IAAI2qE,IAAI,GAAG,IAAI,CAACooC,eAAe,CAAC,CAAC;IACjC,IAAIoF,MAAM,GAAGxtC,IAAI,CAAC7qE,KAAK,GAAG6qE,IAAI,CAAC3qE,MAAM;IAErC,IAAI,CAACF,KAAK,EAAE;MACVA,KAAK,GAAGq4G,MAAM,GAAGn4G,MAAM;IACzB,CAAC,MAAM,IAAI,CAACA,MAAM,EAAE;MAClBA,MAAM,GAAGF,KAAK,GAAGq4G,MAAM;IACzB;IAEA,IAAI7lH,MAAM,GAAG,IAAIm0H,wEAAY,CAACzkI,CAAC,EAAE/F,CAAC,EAAE6jB,KAAK,EAAEE,MAAM,CAAC;IAClD,IAAIb,SAAS,GAAGwrE,IAAI,CAAC2mL,kBAAkB,CAACh/P,MAAM,CAAC;IAC/C,IAAI4lN,UAAU,GAAG,IAAI,CAACA,UAAU;IAEhC,KAAK,IAAI3jO,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG2jO,UAAU,CAACljO,MAAM,EAAET,CAAC,EAAE,EAAE;MAC1C,IAAI8+G,GAAG,GAAG6kH,UAAU,CAAC3jO,CAAC,CAAC;MAEvB,IAAI8+G,GAAG,CAAClrG,IAAI,KAAK,SAAS,EAAE;QAC1B8gR,eAAe,CAAC51K,GAAG,CAACglH,QAAQ,EAAEl5M,SAAS,CAAC;QACxCs3D,8DAAI,CAAC48B,GAAG,CAACilH,SAAS,EAAE,UAAUuxD,QAAQ,EAAE;UACtCZ,eAAe,CAACY,QAAQ,EAAE1qQ,SAAS,CAAC;QACtC,CAAC,CAAC;MACJ,CAAC,MAAM;QACLs3D,8DAAI,CAAC48B,GAAG,CAACla,MAAM,EAAE,UAAUA,MAAM,EAAE;UACjC8vL,eAAe,CAAC9vL,MAAM,EAAEh6E,SAAS,CAAC;QACpC,CAAC,CAAC;MACJ;IACF;IAEAwrE,IAAI,GAAG,IAAI,CAACy7C,KAAK;IACjBz7C,IAAI,CAACwqC,IAAI,CAAC7iH,MAAM,CAAC,CAAC,CAAC;;IAEnB,IAAI,CAACo/P,OAAO,GAAG,CAAC/mL,IAAI,CAAC3oF,CAAC,GAAG2oF,IAAI,CAAC7qE,KAAK,GAAG,CAAC,EAAE6qE,IAAI,CAAC1uF,CAAC,GAAG0uF,IAAI,CAAC3qE,MAAM,GAAG,CAAC,CAAC;EACpE,CAAC;EAEDypQ,aAAa,CAAC/0R,SAAS,CAACg7J,YAAY,GAAG,UAAU70J,IAAI,EAAE;IACrDA,IAAI,IAAI,IAAI,KAAKA,IAAI,GAAG,IAAI,CAACA,IAAI,CAAC;IAClC,IAAIivR,SAAS,GAAG,IAAIL,aAAa,CAAC5uR,IAAI,EAAE,IAAI,CAACq9N,UAAU,EAAE,IAAI,CAACw5C,OAAO,CAAC;IACtEoY,SAAS,CAAC1jJ,KAAK,GAAG,IAAI,CAACA,KAAK;IAC5B0jJ,SAAS,CAACtD,WAAW,GAAG,IAAI,CAAC,CAAC;;IAE9B,OAAOsD,SAAS;EAClB,CAAC;EAED,OAAOL,aAAa;AACtB,CAAC,CAACJ,MAAM,CAAC;AAEgB;AAEzB,IAAIpC,YAAY,GAChB;AACA,UAAUh9L,MAAM,EAAE;EAChBL,gDAAS,CAACq9L,YAAY,EAAEh9L,MAAM,CAAC;EAE/B,SAASg9L,YAAYA,CAACpsR,IAAI,EAAEkvR,kBAAkB,EAAE;IAC9C,IAAIpnR,KAAK,GAAGsnF,MAAM,CAACr1F,IAAI,CAAC,IAAI,EAAEiG,IAAI,CAAC,IAAI,IAAI;IAE3C8H,KAAK,CAACwF,IAAI,GAAG,QAAQ;IACrBxF,KAAK,CAACqnR,mBAAmB,GAAGD,kBAAkB;IAC9C,OAAOpnR,KAAK;EACd;EAEAskR,YAAY,CAACvyR,SAAS,CAAC40R,UAAU,GAAG,YAAY;IAC9C,IAAI/0M,EAAE,GAAG,IAAI,CAACy1M,mBAAmB;IACjC,IAAIr/L,IAAI,GAAGpW,EAAE,CAACw+C,eAAe,CAAC,CAAC;IAC/B,IAAIphD,MAAM,GAAG,CAACgZ,IAAI,CAAC3oF,CAAC,GAAG2oF,IAAI,CAAC7qE,KAAK,GAAG,CAAC,EAAE6qE,IAAI,CAAC1uF,CAAC,GAAG0uF,IAAI,CAAC3qE,MAAM,GAAG,CAAC,CAAC;IAChE,IAAIiqQ,GAAG,GAAG5rK,gEAAe,CAAC2qK,aAAa,CAAC;IACxC,IAAI12Q,MAAM,GAAGiiE,EAAE;IAEf,OAAOjiE,MAAM,IAAI,CAACA,MAAM,CAAC41Q,mBAAmB,EAAE;MAC5C7pK,2DAAU,CAAC4rK,GAAG,EAAE33Q,MAAM,CAAC85K,iBAAiB,CAAC,CAAC,EAAE69F,GAAG,CAAC;MAChD33Q,MAAM,GAAGA,MAAM,CAAC4jE,MAAM;IACxB;IAEAmoC,8DAAa,CAAC4rK,GAAG,EAAEA,GAAG,CAAC;IACvBx2J,sEAAmB,CAAC9hD,MAAM,EAAEA,MAAM,EAAEs4M,GAAG,CAAC;IACxC,OAAOt4M,MAAM;EACf,CAAC;EAED,OAAOs1M,YAAY;AACrB,CAAC,CAACoC,MAAM,CAAC;;;;;;;;;;;;;;;;AC/VT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;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,IAAIlwL,MAAM,GAAG,CAAC,CAAC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,EAAE,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,EAAE,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,EAAE,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,EAAE,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAC,CAAC;AAC/M,SAASssL,eAAeA,CAAC51H,OAAO,EAAE1D,MAAM,EAAE;EACvD,IAAI0D,OAAO,KAAK,OAAO,IAAI1D,MAAM,CAACtxJ,IAAI,KAAK,IAAI,EAAE;IAC/CsxJ,MAAM,CAAC+rE,UAAU,CAACpgO,IAAI,CAAC;MACrBqQ,IAAI,EAAE,SAAS;MACfkwN,QAAQ,EAAEl/H,MAAM,CAAC,CAAC;IACpB,CAAC,CAAC;EACJ;AACF;;;;;;;;;;;;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACmD;AACN;AAC7C,IAAIgsL,QAAQ,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC;AACxB,IAAI+E,UAAU,GAAG,MAAM;AACvB,IAAI/wL,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,C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,CAAC;IACF,OAAO8wR,UAAU;EACnB,CAAC;EAED,OAAOP,UAAU;AACnB,CAAC,CAAC,CAAC;AAEH,IAAInnE,UAAU,GAAG,IAAImnE,UAAU,CAAC,CAAC;AACjC,iEAAennE,UAAU;;;;;;;;;;;;;;;;;;ACvQzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACyD;AACJ;AACE;AACvD,IAAI//M,OAAO,GAAGi+E,uEAAa,CAAC,CAAC;AAC7B,iEAAe;EACb;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;AACA;AACA;AACA;EACE+hI,WAAW,EAAE,SAAAA,CAAUC,OAAO,EAAEynE,MAAM,EAAEC,eAAe,EAAE;IACvD,IAAID,MAAM,CAACxE,GAAG,EAAE;MACd,IAAIltD,QAAQ,GAAG,IAAIitD,8DAAc,CAAChjE,OAAO,EAAEynE,MAAM,CAACxE,GAAG,CAAC;MACtDljR,OAAO,CAACnO,GAAG,CAACouN,OAAO,EAAE+V,QAAQ,CAAC;IAChC,CAAC,MAAM;MACL;MACA;MACA;MACA;MACA;MACA,IAAI0rD,OAAO,GAAGgG,MAAM,CAACxnE,OAAO,IAAIwnE,MAAM,CAAChG,OAAO;MAE9C,IAAIA,OAAO,IAAI,CAACgG,MAAM,CAACpqC,QAAQ,EAAE;QAC/BqqC,eAAe,GAAGD,MAAM,CAACvnE,YAAY;MACvC,CAAC,MAAM;QACLuhE,OAAO,GAAGgG,MAAM;MAClB;MAEA,IAAI1xD,QAAQ,GAAG,IAAIyrD,gEAAe,CAACxhE,OAAO,EAAEyhE,OAAO,EAAEiG,eAAe,CAAC;MACrE3nR,OAAO,CAACnO,GAAG,CAACouN,OAAO,EAAE+V,QAAQ,CAAC;IAChC;EAC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;EACD,OAAO2vH,UAAU;AACnB,CAAC,CAACphD,2DAAc,CAAC;AAEjB,iEAAeohD,UAAU;;;;;;;;;;;;;;;;;AC/EzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACkC;AACJ;AAE9B,IAAI47C,UAAU,GACd;AACA,UAAUrmM,MAAM,EAAE;EAChBL,gDAAS,CAAC0mM,UAAU,EAAErmM,MAAM,CAAC;EAE7B,SAASqmM,UAAUA,CAAC13M,KAAK,EAAEisG,YAAY,EAAE;IACvC,OAAO56F,MAAM,CAACr1F,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAEgkF,KAAK,EAAEisG,YAAY,CAAC,IAAI,IAAI;EACjE;EAEAyrG,UAAU,CAAC57R,SAAS,CAAC48E,WAAW,GAAG,UAAUF,KAAK,EAAEshH,KAAK,EAAE;IACzD,OAAO,IAAI,CAACt9F,KAAK,CAAC9jB,WAAW,CAACF,KAAK,EAAEshH,KAAK,CAAC,CAAC,IAAI,CAACrvG,GAAG,KAAK,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC;EAC5E,CAAC;EAED,OAAOitM,UAAU;AACnB,CAAC,CAACryC,gDAAI,CAAC;AAEPqyC,UAAU,CAAC57R,SAAS,CAACi8R,YAAY,GAAG1yC,sEAA0B;AAC9DqyC,UAAU,CAAC57R,SAAS,CAACk8R,YAAY,GAAG3yC,sEAA0B;AAC9D,iEAAeqyC,UAAU;;;;;;;;;;;;;;;;;;;;AC/DzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACmD;AACC;AACA;AACqD;AAClD;AACvD;AACA;AACA;;AAEA,S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,GAAG+Z,MAAM;MACrBH,QAAQ,GAAGp5S,IAAI,CAACkrB,IAAI,CAACs0Q,YAAY,GAAGC,KAAK,CAAC;MAC1C4Z,EAAE,CAACr6S,IAAI,GAAGygS,KAAK,GAAG,CAAC,IAAID,YAAY,GAAG,CAAC,GAAGga,OAAO,GAAGC,cAAc;IACpE;EACF,CAAC;EACD,OAAOJ,EAAE;EAET,SAASI,cAAcA,CAAA,EAAG;IACxB,OAAOt9J,OAAO,GAAGnwH,GAAG,GAAGmwH,OAAO,EAAE,GAAG,IAAI;EACzC;EAEA,SAASq9J,OAAOA,CAAA,EAAG;IACjB,IAAIh+N,SAAS,GAAG2gE,OAAO,GAAGi9J,QAAQ,GAAG3Z,KAAK,GAAGz/R,IAAI,CAACkrB,IAAI,CAACixH,OAAO,GAAGi9J,QAAQ,CAAC;IAC1E,IAAI5sR,MAAM,GAAG2vH,OAAO,IAAInwH,GAAG,GAAG,IAAI,GAAGwvD,SAAS,GAAGgkN,YAAY,GAAGhkN,SAAS,CAAC;IAC1E;IAAA,EACE2gE,OAAO;IACTA,OAAO,EAAE;IACT,OAAO3vH,MAAM;EACf;AACF,CAAC,CAAC,CAAC,CAAC,CAAC;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACpYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;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AC1B,IAAI6jB,GAAG,GAAGm5H,gEAAgB,CAACt+C,IAAI,CAAC;MAEhC,IAAI,CAAC3tF,iEAAO,CAAC8S,GAAG,CAAC,EAAE;QACjB,OAAOgrS,UAAU,CAACoM,GAAG;MACvB;MAEA,IAAI,CAACjrS,MAAM,GAAGmtS,WAAW,CAACt5S,GAAG,CAACugG,QAAQ,CAAC,CAAC,KAAK,IAAI,EAAE;QACjD,OAAOp0F,MAAM;MACf;IACF;EACF;EAEA,SAASmtS,WAAWA,CAACt5S,GAAG,EAAE;IACxB,IAAI05S,KAAK,GAAGtnN,kEAAQ,CAACpyF,GAAG,CAAC,CAAC,CAAC;IAC3B;;IAEA,IAAIA,GAAG,IAAI,IAAI,IAAImmE,QAAQ,CAACnmE,GAAG,CAAC,IAAIA,GAAG,KAAK,EAAE,EAAE;MAC9C,OAAO05S,KAAK,GAAG1O,UAAU,CAACmM,KAAK,GAAGnM,UAAU,CAACoM,GAAG;IAClD,CAAC,MAAM,IAAIsC,KAAK,IAAI15S,GAAG,KAAK,GAAG,EAAE;MAC/B,OAAOgrS,UAAU,CAACK,IAAI;IACxB;EACF;EAEA,OAAOL,UAAU,CAACoM,GAAG;AACvB;;;;;;;;;;;;;;;;;;;;;;;AC3YA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACsG;AACtC;AACwB;AACe;AACnD;AACZ;AACgB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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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ACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACmD;AACF;AACJ;AACJ;AACM;AACK;AACpB;AACuB;AACzB;AACyB;AACzB;AACuB;AACvB;AACuB;AACzB;AACmB;AACH;AACd;AACQ;AACwB,CAAC;;AAEQ;AACA;AAC3B;AACd;AACU;AACd;AACoB;AACd;AACY;AACd;AACU;AACd;AAC+B,CAAC;AAC1D;;AAE8B,CAAC;;AAEsB;AACF;AACc,CAAC;;AAEsB,CAAC;AACzF;AACA;AACA;AACA;AACA;;AAEO,SAASs3D,oBAAoBA,CAAC5N,KAAK,EAAE;EAC1C,IAAI/8L,KAAK,GAAGymE,mEAAqB,CAACs2H,KAAK,CAAC;EACxCt2H,0EAA4B,CAACzmE,KAAK,CAAC;EACnC,OAAOA,KAAK;AACd;AACO,SAAS4qM,mBAAmBA,CAAC7N,KAAK,EAAE;EACzC,IAAI3xL,IAAI,GAAGo1D,kEAAoB,CAACu8H,KAAK,CAAC;EACtCv8H,yEAA2B,CAACp1D,IAAI,CAAC;EACjC,OAAOA,IAAI;AACb;AACO,SAASy/L,iBAAiBA,CAAC9N,KAAK,EAAE;EACvC,IAAI/8L,KAAK,GAAGryB,gEAAkB,CAACovN,KAAK,CAAC;EACrCpvN,uEAAyB,CAACqyB,KAAK,CAAC;EAChC,OAAOA,KAAK;AACd;AACO,SAAS8qM,eAAeA,CAAC/N,KAAK,EAAE;EACrC,IAAI3xL,IAAI,GAAGprC,8DAAgB,CAAC+8N,KAAK,CAAC;EAClC/8N,qEAAuB,CAACorC,IAAI,CAAC;EAC7B,OAAOA,IAAI;AACb;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACmD;AACmB,CAAC;;AAEf;AACmB;AAClC;AACY;AAC2D;AAC3D;AAC+B;AACpF;AACA;AACA;;AAEO,SAASo1G,UAAUA,CAACjtJ,WAAW,EAAE;EACtC,OAAO0J,6EAAgB,CAAC,IAAI,EAAE1J,WAAW,CAAC;AAC5C,CAAC,CAAC;AACF;AACA;AACA;AACA;;AAEyB;AACgD;AAClE,IAAI87M,SAAS,GAAG;EACrBl5I,kBAAkB,EAAEA,+EAAkB;EACtCtR,eAAe,EAAEA,4EAAe;EAChCs8F,mBAAmB,EAAEA,gFAAmBA;AAC1C,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEoD;AACpD;AACA;AACA;AACA;AACA;AACA;;AAEO,SAAS2qF,WAAWA,CAAC10M,UAAU,EAAExpB,MAAM,EAAE;EAC9C,IAAIhF,SAAS,GAAGgF,MAAM;EAEtB,IAAI,EAAEA,MAAM,YAAYoyB,uDAAK,CAAC,EAAE;IAC9Bp3B,SAAS,GAAG,IAAIo3B,uDAAK,CAACpyB,MAAM,CAAC,CAAC,CAAC;IAC/B;IACA;IACA;IACA;IACA;IACA;IACA;EACF;;EAEA,IAAI7hB,KAAK,GAAGgpH,oEAA6B,CAACnsG,SAAS,CAAC;EACpD7c,KAAK,CAACiiK,SAAS,CAAC52H,UAAU,CAAC,CAAC,CAAC,EAAEA,UAAU,CAAC,CAAC,CAAC,CAAC;EAC7C29E,iEAA0B,CAAChpH,KAAK,EAAE6c,SAAS,CAAC;EAC5C,OAAO7c,KAAK;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASggP,2BAA2BA,CAAC/rM,KAAK,EAAE;EACjD5vB,2DAAY,CAAC4vB,KAAK,EAAE0rJ,gFAAoB,CAAC;AAC3C;AACqB;AACsC;AACpD,SAASv/J,eAAeA,CAACg6D,cAAc,EAAEx5F,IAAI,EAAE;EACpDA,IAAI,GAAGA,IAAI,IAAI,CAAC,CAAC;EACjB,OAAOk/O,sEAAoB,CAAC1lJ,cAAc,EAAE,IAAI,EAAE,IAAI,EAAEx5F,IAAI,CAACn+E,KAAK,KAAK,QAAQ,CAAC;AAClF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC0D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1C1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,iEAAe6+R,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACze5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACkC;AACiB;AACT;AACI;AACF;AACM;AACa;AACwB;AAC1C;AACE;AACiB;AACyB;AACzF,IAAIt8Q,KAAK,GAAGu5H,qDAAmB,CAAC,CAAC;AAEjC,SAAS29L,eAAeA,CAAC13U,IAAI,EAAEo0E,SAAS,EAAE;EACxC,OAAOp0E,IAAI,CAACyiH,OAAO,CAACruC,SAAS,CAAC,IAAIp0E,IAAI,CAACklF,KAAK,CAAC9Q,SAAS,CAAC;AACzD;AAEO,IAAI2O,gCAAgC,GAAG,8BAA8B;AAE5E,IAAIsY,WAAW,GACf;AACA,UAAUvQ,MAAM,EAAE;EAChBL,gDAAS,CAAC4Q,WAAW,EAAEvQ,MAAM,CAAC;EAE9B,SAASuQ,WAAWA,CAAA,EAAG;IACrB;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI73F,KAAK,GAAGsnF,MAAM,KAAK,IAAI,IAAIA,MAAM,CAAC7yF,KAAK,CAAC,IAAI,EAAE0G,SAAS,CAAC,IAAI,IAAI,CAAC,CAAC;IACtE;IACA;;IAGA6E,KAAK,CAACm0U,uBAAuB,GAAG,CAAC,CAAC;IAClC,OAAOn0U,KAAK;EACd;EAEA63F,WAAW,CAAC9lG,SAAS,CAAC8pH,IAAI,GAAG,UAAU/jB,MAAM,EAAEthB,WAAW,EAAExF,OAAO,EAAE;IACnE,IAAI,CAAC8U,WAAW,GAAG,IAAI,CAACu4D,cAAc;IACtC,IAAI,CAACi3I,QAAQ,GAAGhC,yDAAU,CAAC;MACzBl2M,KAAK,EAAEg3P,aAAa;MACpBxnT,KAAK,EAAEynT;IACT,CAAC,CAAC;IACF,IAAI,CAAC/+C,QAAQ,CAAC90L,OAAO,GAAG;MACtB1nB,KAAK,EAAE;IACT,CAAC;IACD,IAAI,CAACkyC,oBAAoB,CAAClzB,MAAM,EAAE9mB,OAAO,CAAC;IAC1C,IAAIk/D,aAAa,GAAGlzH,KAAK,CAAC,IAAI,CAAC,CAACkzH,aAAa,GAAG,IAAIowE,wEAAa,CAAC,IAAI,CAAC;IACvEpwE,aAAa,CAAC6/K,aAAa,CAAC,CAAC;IAC7B,IAAIvzT,IAAI,GAAG,IAAI,CAAC+qF,cAAc,CAACuQ,MAAM,EAAE9mB,OAAO,CAAC;IAC/CsjQ,QAAQ,CAAC93U,IAAI,EAAE,IAAI,CAAC;IACpB,IAAI,CAAC84R,QAAQ,CAAC90L,OAAO,CAAChkG,IAAI,GAAGA,IAAI;IAEjC,IAAIwX,IAAqC,EAAE;MACzCsmF,4DAAa,CAAC99F,IAAI,EAAE,uCAAuC,CAAC;IAC9D;IAEAwgB,KAAK,CAAC,IAAI,CAAC,CAACu3T,mBAAmB,GAAG/3U,IAAI,CAAC,CAAC;IACxC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;IAEAg4U,cAAc,CAAC,IAAI,CAAC;IAEpB,IAAI,CAACC,wBAAwB,CAACj4U,IAAI,CAAC;EACrC,CAAC;EACD;AACF;AACA;;EAGEq7F,WAAW,CAAC9lG,SAAS,CAACi5H,oBAAoB,GAAG,UAAUlzB,MAAM,EAAE9mB,OAAO,EAAE;IACtE,IAAI85E,UAAU,GAAGirH,gEAAe,CAAC,IAAI,CAAC;IACtC,IAAI1yC,mBAAmB,GAAGv4E,UAAU,GAAG8qD,gEAAe,CAAC99G,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACrE;IACA;IACA;;IAEA,IAAI48O,YAAY,GAAG,IAAI,CAACl5K,OAAO;IAE/B,IAAIm1B,8DAAuB,CAAC+jJ,YAAY,CAAC,EAAE;MACzCA,YAAY,IAAI,QAAQ;IAC1B;IAEAp6O,2DAAY,CAACxC,MAAM,EAAE9mB,OAAO,CAACqlM,QAAQ,CAAC,CAAC,CAACljR,GAAG,CAAC,IAAI,CAACqoK,OAAO,CAAC,CAAC;IAC1DlhE,2DAAY,CAACxC,MAAM,EAAE,IAAI,CAACqmJ,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;;IAE/C5nG,2DAAyB,CAACz+C,MAAM,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;IACpD,IAAI,CAAC6yB,iBAAiB,CAAC7yB,MAAM,CAACt7F,IAAI,CAAC;IAEnC,IAAIsuJ,UAAU,EAAE;MACdk3D,iEAAgB,CAAClqH,MAAM,EAAEurI,mBAAmB,EAAEv4E,UAAU,CAAC;IAC3D;EACF,CAAC;EAEDjzD,WAAW,CAAC9lG,SAAS,CAACg5H,WAAW,GAAG,UAAU4pN,eAAe,EAAE3jQ,OAAO,EAAE;IACtE;IACA2jQ,eAAe,GAAGr6O,2DAAY,CAAC,IAAI,CAACxC,MAAM,EAAE68O,eAAe,EAAE,IAAI,CAAC;IAClE,IAAI,CAAChqN,iBAAiB,CAACgqN,eAAe,CAACn4U,IAAI,CAAC;IAC5C,IAAIsuJ,UAAU,GAAGirH,gEAAe,CAAC,IAAI,CAAC;IAEtC,IAAIjrH,UAAU,EAAE;MACdk3D,iEAAgB,CAAC,IAAI,CAAClqH,MAAM,EAAE68O,eAAe,EAAE7pL,UAAU,CAAC;IAC5D;IAEA,IAAI5a,aAAa,GAAGlzH,KAAK,CAAC,IAAI,CAAC,CAACkzH,aAAa;IAC7CA,aAAa,CAACj4D,KAAK,CAAC,CAAC;IACrBi4D,aAAa,CAAC6/K,aAAa,CAAC,CAAC;IAC7B,IAAIvzT,IAAI,GAAG,IAAI,CAAC+qF,cAAc,CAACotP,eAAe,EAAE3jQ,OAAO,CAAC;IACxDsjQ,QAAQ,CAAC93U,IAAI,EAAE,IAAI,CAAC;IACpB,IAAI,CAAC84R,QAAQ,CAACr9M,KAAK,CAAC,CAAC;IACrB,IAAI,CAACq9M,QAAQ,CAAC90L,OAAO,CAAChkG,IAAI,GAAGA,IAAI;IACjCwgB,KAAK,CAAC,IAAI,CAAC,CAACu3T,mBAAmB,GAAG/3U,IAAI;IACtCg4U,cAAc,CAAC,IAAI,CAAC;IAEpB,IAAI,CAACC,wBAAwB,CAACj4U,IAAI,CAAC;EACrC,CAAC;EAEDq7F,WAAW,CAAC9lG,SAAS,CAAC44H,iBAAiB,GAAG,UAAUnuH,IAAI,EAAE;IACxD;IACA;IACA;IACA,IAAIA,IAAI,IAAI,CAAC89F,kEAAmB,CAAC99F,IAAI,CAAC,EAAE;MACtC,IAAIoT,KAAK,GAAG,CAAC,MAAM,CAAC;MAEpB,KAAK,IAAIhe,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG4K,IAAI,CAACnK,MAAM,EAAET,CAAC,EAAE,EAAE;QACpC,IAAI4K,IAAI,CAAC5K,CAAC,CAAC,IAAI4K,IAAI,CAAC5K,CAAC,CAAC,CAAC+C,KAAK,EAAE;UAC5B4hJ,2DAAyB,CAAC/5I,IAAI,CAAC5K,CAAC,CAAC,EAAE,OAAO,EAAEge,KAAK,CAAC;QACpD;MACF;IACF;EACF,CAAC;EACD;AACF;AACA;AACA;;EAGEioF,WAAW,CAAC9lG,SAAS,CAACw1F,cAAc,GAAG,UAAUuQ,MAAM,EAAE9mB,OAAO,EAAE;IAChE;EACF,CAAC;EACD;AACF;AACA;;EAGE6mB,WAAW,CAAC9lG,SAAS,CAACy0J,UAAU,GAAG,UAAU5mI,MAAM,EAAE;IACnD;IACA;IACA;IACA,IAAIpjB,IAAI,GAAG,IAAI,CAAC+qG,UAAU,CAAC,CAAC;IAC5B/qG,IAAI,CAACgqJ,UAAU,CAAC5mI,MAAM,CAACpjB,IAAI,CAAC;EAC9B,CAAC;EACD;AACF;AACA;AACA;AACA;AACA;;EAGEq7F,WAAW,CAAC9lG,SAAS,CAAC0zF,OAAO,GAAG,UAAUopB,QAAQ,EAAE;IAClD,IAAIslL,IAAI,GAAGygD,cAAc,CAAC,IAAI,CAAC;IAE/B,IAAIzgD,IAAI,EAAE;MACR,IAAI33R,IAAI,GAAG23R,IAAI,CAAC3zL,OAAO,CAAChkG,IAAI;MAC5B,OAAOqyG,QAAQ,IAAI,IAAI,GAAGryG,IAAI,GAAGA,IAAI,CAACkwT,aAAa,CAAC79M,QAAQ,CAAC;IAC/D,CAAC,MAAM;MACL;MACA;MACA;MACA;MACA,OAAO7xF,KAAK,CAAC,IAAI,CAAC,CAACxgB,IAAI;IACzB;EACF,CAAC;EAEDq7F,WAAW,CAAC9lG,SAAS,CAAC8iV,UAAU,GAAG,YAAY;IAC7C,IAAI3mM,QAAQ,GAAG,IAAI,CAACzoD,OAAO,CAAC,CAAC;IAC7B,OAAOyoD,QAAQ,IAAIA,QAAQ,CAACy+K,gBAAgB,GAAGz+K,QAAQ,CAACy+K,gBAAgB,CAAC,CAAC,GAAG,CAAC;MAC5EnwT,IAAI,EAAE0xI;IACR,CAAC,CAAC;EACJ,CAAC;EAEDr2C,WAAW,CAAC9lG,SAAS,CAAC+6J,OAAO,GAAG,UAAUtwJ,IAAI,EAAE;IAC9C,IAAI23R,IAAI,GAAGygD,cAAc,CAAC,IAAI,CAAC;IAE/B,IAAIzgD,IAAI,EAAE;MACR,IAAI3zL,OAAO,GAAG2zL,IAAI,CAAC3zL,OAAO,CAAC,CAAC;MAC5B;MACA;MACA;MACA;;MAEAA,OAAO,CAAC0sM,UAAU,GAAG1wS,IAAI,CAAC,CAAC;MAC3B;MACA;MACA;MACA;MACA;MACA;MACA;;MAEA,IAAI23R,IAAI,KAAK,IAAI,CAACmB,QAAQ,EAAE;QAC1B90L,OAAO,CAAChkG,IAAI,GAAGA,IAAI;MACrB;IACF;IAEAwgB,KAAK,CAAC,IAAI,CAAC,CAACxgB,IAAI,GAAGA,IAAI;EACzB,CAAC;EAEDq7F,WAAW,CAAC9lG,SAAS,CAACk8I,SAAS,GAAG,YAAY;IAC5C,IAAI5pI,MAAM,GAAG,IAAI,CAAClR,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC;IAErC,IAAIkR,MAAM,EAAE;MACV,OAAOi2F,mEAAoB,CAACj2F,MAAM,CAAC;IACrC;EACF,CAAC;EAEDwzF,WAAW,CAAC9lG,SAAS,CAACo+I,gBAAgB,GAAG,YAAY;IACnD,OAAOnzH,KAAK,CAAC,IAAI,CAAC,CAACkzH,aAAa;EAClC,CAAC;EAEDr4C,WAAW,CAAC9lG,SAAS,CAACs+I,SAAS,GAAG,YAAY;IAC5C,OAAO,IAAI,CAACF,gBAAgB,CAAC,CAAC,CAACE,SAAS,CAAC,CAAC;EAC5C,CAAC;EACD;AACF;AACA;;EAGEx4C,WAAW,CAAC9lG,SAAS,CAACw1G,UAAU,GAAG,YAAY;IAC7C,OAAOvqF,KAAK,CAAC,IAAI,CAAC,CAACu3T,mBAAmB;EACxC,CAAC;EAED18O,WAAW,CAAC9lG,SAAS,CAAC+iV,UAAU,GAAG,YAAY;IAC7C,IAAIr3N,OAAO,GAAG,IAAI,CAACtqH,GAAG,CAAC,SAAS,CAAC;IACjC,OAAOsqH,OAAO,IAAI,QAAQ;EAC5B,CAAC;EAED5lB,WAAW,CAAC9lG,SAAS,CAACgjV,eAAe,GAAG,YAAY;IAClD,OAAO,IAAI,CAACD,UAAU,CAAC,CAAC,KAAK,QAAQ;EACvC,CAAC;EACD;AACF;AACA;AACA;AACA;AACA;;EAGEj9O,WAAW,CAAC9lG,SAAS,CAACi5F,WAAW,GAAG,YAAY;IAC9C,IAAI6I,QAAQ,GAAG,IAAI,CAACpH,gBAAgB,CAAC,CAAC;;IAEtC,OAAOoH,QAAQ,IAAIA,QAAQ,CAAC7I,WAAW,IAAI6I,QAAQ,CAAC7I,WAAW,CAAC,CAAC;EACnE,CAAC;EACD;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EAGE6M,WAAW,CAAC9lG,SAAS,CAACs6H,aAAa,GAAG,UAAUz7C,SAAS,EAAE07C,cAAc,EAAEzd,QAAQ,EAAE;IACnF,OAAOwb,qGAA0B,CAAC;MAChC/lC,MAAM,EAAE,IAAI;MACZ1T,SAAS,EAAEA,SAAS;MACpB07C,cAAc,EAAEA;IAClB,CAAC,CAAC;EACJ,CAAC;EAEDz0B,WAAW,CAAC9lG,SAAS,CAACs/E,kBAAkB,GAAG,YAAY;IACrD,IAAIL,OAAO,GAAG,IAAI,CAACA,OAAO,CAAC,CAAC;IAC5B;;IAEA,IAAI/8D,oEAAQ,IAAI,EAAE+8D,OAAO,IAAIA,OAAO,CAACyrE,GAAG,CAAC,EAAE;MACzC,OAAO,KAAK;IACd;IAEA,IAAIrrE,gBAAgB,GAAG,IAAI,CAACM,UAAU,CAAC,WAAW,CAAC;IAEnD,IAAIN,gBAAgB,EAAE;MACpB,IAAI,IAAI,CAACqU,OAAO,CAAC,CAAC,CAACrI,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC1L,UAAU,CAAC,oBAAoB,CAAC,EAAE;QAClEN,gBAAgB,GAAG,KAAK;MAC1B;IACF;IAEA,OAAO,CAAC,CAACA,gBAAgB;EAC3B,CAAC;EAEDymB,WAAW,CAAC9lG,SAAS,CAACgiS,WAAW,GAAG,YAAY;IAC9C,IAAI,CAACuB,QAAQ,CAACr9M,KAAK,CAAC,CAAC;EACvB,CAAC;EAED4f,WAAW,CAAC9lG,SAAS,CAACshI,mBAAmB,GAAG,UAAUn7H,IAAI,EAAEiB,KAAK,EAAE67U,eAAe,EAAE;IAClF,IAAIhkQ,OAAO,GAAG,IAAI,CAACA,OAAO,CAAC,CAAC;;IAE5B,IAAIwX,KAAK,GAAGkjP,8FAA+C,CAAC,IAAI,EAAExzU,IAAI,EAAEiB,KAAK,EAAE67U,eAAe,CAAC;IAE/F,IAAI,CAACxsP,KAAK,EAAE;MACVA,KAAK,GAAGxX,OAAO,CAACqiD,mBAAmB,CAACn7H,IAAI,EAAEiB,KAAK,EAAE67U,eAAe,CAAC;IACnE;IAEA,OAAOxsP,KAAK;EACd,CAAC;EACD;AACF;AACA;AACA;;EAGEqP,WAAW,CAAC9lG,SAAS,CAACkjV,iBAAiB,GAAG,UAAU99N,QAAQ,EAAE;IAC5D,OAAO,IAAI,CAAC5P,UAAU,CAAC,CAAC,CAACtB,gBAAgB,CAACkR,QAAQ,CAAC;EACrD,CAAC;EACD;AACF;AACA;;EAGEtf,WAAW,CAAC9lG,SAAS,CAAC21F,cAAc,GAAG,YAAY;IACjD,OAAO,IAAI,CAACv0F,GAAG,CAAC,aAAa,CAAC;EAChC,CAAC;EACD;AACF;AACA;;EAGE0kG,WAAW,CAAC9lG,SAAS,CAAC41F,uBAAuB,GAAG,YAAY;IAC1D,OAAO,IAAI,CAACx0F,GAAG,CAAC,sBAAsB,CAAC;EACzC,CAAC,CAAC,CAAC;;EAGH0kG,WAAW,CAAC9lG,SAAS,CAACk3F,MAAM,GAAG,UAAUisP,gBAAgB,EAAErmO,QAAQ,EAAE;IACnE,IAAI,CAACsmO,YAAY,CAAC,IAAI,CAAC1vP,OAAO,CAACopB,QAAQ,CAAC,EAAEqmO,gBAAgB,CAAC;EAC7D,CAAC;EAEDr9O,WAAW,CAAC9lG,SAAS,CAACqjV,QAAQ,GAAG,UAAUF,gBAAgB,EAAErmO,QAAQ,EAAE;IACrE,IAAI44H,WAAW,GAAG,IAAI,CAAC3vI,MAAM,CAAC2vI,WAAW;IAEzC,IAAI,CAACA,WAAW,EAAE;MAChB;IACF;IAEA,IAAIt8E,YAAY,GAAG,IAAI,CAACrzD,MAAM,CAACqzD,YAAY;IAC3C,IAAI3uJ,IAAI,GAAG,IAAI,CAACipF,OAAO,CAACopB,QAAQ,CAAC;IAEjC,IAAIs8C,YAAY,KAAK,QAAQ,IAAIs8E,WAAW,KAAK,KAAK,EAAE;MACtD,IAAI,CAAC3vI,MAAM,CAAC2vI,WAAW,GAAG,CAAC,CAAC;MAC5B,IAAI,CAAC0sG,uBAAuB,GAAG,CAAC,CAAC;MACjC;IACF;IAEA,KAAK,IAAIviV,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGsjV,gBAAgB,CAAC7iV,MAAM,EAAET,CAAC,EAAE,EAAE;MAChD,IAAIg/E,SAAS,GAAGskQ,gBAAgB,CAACtjV,CAAC,CAAC;MACnC,IAAIyjV,QAAQ,GAAGnB,eAAe,CAAC13U,IAAI,EAAEo0E,SAAS,CAAC;MAC/C62J,WAAW,CAAC4tG,QAAQ,CAAC,GAAG,KAAK;MAC7B,IAAI,CAAClB,uBAAuB,CAACkB,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC7C;EACF,CAAC;EAEDx9O,WAAW,CAAC9lG,SAAS,CAACujV,YAAY,GAAG,UAAUJ,gBAAgB,EAAErmO,QAAQ,EAAE;IACzE,IAAI2vN,MAAM,GAAG,EAAE;IAEf,KAAK,IAAI5sU,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGsjV,gBAAgB,CAAC7iV,MAAM,EAAET,CAAC,EAAE,EAAE;MAChD4sU,MAAM,CAAC,CAAC,CAAC,GAAG0W,gBAAgB,CAACtjV,CAAC,CAAC;MAC/B,IAAI,CAACqhI,UAAU,CAACiiN,gBAAgB,CAACtjV,CAAC,CAAC,EAAEi9G,QAAQ,CAAC,GAAG,IAAI,CAACumO,QAAQ,CAAC5W,MAAM,EAAE3vN,QAAQ,CAAC,GAAG,IAAI,CAAC5lB,MAAM,CAACu1O,MAAM,EAAE3vN,QAAQ,CAAC;IAClH;EACF,CAAC;EAEDhX,WAAW,CAAC9lG,SAAS,CAACwjV,sBAAsB,GAAG,YAAY;IACzD,IAAI,IAAI,CAACz9O,MAAM,CAAC2vI,WAAW,KAAK,KAAK,EAAE;MACrC,OAAO,EAAE,CAAC7vO,KAAK,CAAC3F,IAAI,CAAC,IAAI,CAACwzF,OAAO,CAAC,CAAC,CAAClF,UAAU,CAAC,CAAC,CAAC;IACnD;IAEA,IAAIi1P,sBAAsB,GAAG,IAAI,CAACrB,uBAAuB;IACzD,IAAIsB,SAAS,GAAGn7O,0DAAW,CAACk7O,sBAAsB,CAAC;IACnD,IAAI7uK,WAAW,GAAG,EAAE;IAEpB,KAAK,IAAI/0K,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG6jV,SAAS,CAACpjV,MAAM,EAAET,CAAC,EAAE,EAAE;MACzC,IAAIg/E,SAAS,GAAG4kQ,sBAAsB,CAACC,SAAS,CAAC7jV,CAAC,CAAC,CAAC;MAEpD,IAAIg/E,SAAS,IAAI,CAAC,EAAE;QAClB+1F,WAAW,CAACxxK,IAAI,CAACy7E,SAAS,CAAC;MAC7B;IACF;IAEA,OAAO+1F,WAAW;EACpB,CAAC;EAED9uE,WAAW,CAAC9lG,SAAS,CAACkhI,UAAU,GAAG,UAAUriD,SAAS,EAAEi+B,QAAQ,EAAE;IAChE,IAAI44H,WAAW,GAAG,IAAI,CAAC3vI,MAAM,CAAC2vI,WAAW;IAEzC,IAAI,CAACA,WAAW,EAAE;MAChB,OAAO,KAAK;IACd;IAEA,IAAIjrO,IAAI,GAAG,IAAI,CAACipF,OAAO,CAACopB,QAAQ,CAAC;IACjC,OAAO,CAAC44H,WAAW,KAAK,KAAK,IAAIA,WAAW,CAACysG,eAAe,CAAC13U,IAAI,EAAEo0E,SAAS,CAAC,CAAC,KAAK,CAACp0E,IAAI,CAACwxF,YAAY,CAACpd,SAAS,CAAC,CAACz9E,GAAG,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;EAC9I,CAAC;EAED0kG,WAAW,CAAC9lG,SAAS,CAACwzF,4BAA4B,GAAG,YAAY;IAC/D,IAAI,IAAI,CAAChG,gCAAgC,CAAC,EAAE;MAC1C,OAAO,IAAI;IACb;IAEA,IAAIm2P,sBAAsB,GAAG,IAAI,CAAC59O,MAAM,CAACyjB,mBAAmB,CAAC,CAAC;;IAE9D,IAAI,CAACm6N,sBAAsB,EAAE;MAC3B,OAAO,KAAK;IACd;IAEA,IAAIA,sBAAsB,KAAK,IAAI,EAAE;MACnC,OAAO,IAAI;IACb,CAAC,CAAC;;IAGF,OAAOA,sBAAsB,IAAIA,sBAAsB,CAACx0J,OAAO;EACjE,CAAC;EAEDrpF,WAAW,CAAC9lG,SAAS,CAACojV,YAAY,GAAG,UAAU34U,IAAI,EAAE04U,gBAAgB,EAAE;IACrE,IAAIn2P,EAAE,EAAEu4D,EAAE;IAEV,IAAIx/C,MAAM,GAAG,IAAI,CAACA,MAAM;IACxB,IAAIqzD,YAAY,GAAGrzD,MAAM,CAACqzD,YAAY;IACtC,IAAIxuE,GAAG,GAAGu4P,gBAAgB,CAAC7iV,MAAM;IAEjC,IAAI,CAAC84J,YAAY,IAAI,CAACxuE,GAAG,EAAE;MACzB;IACF;IAEA,IAAIwuE,YAAY,KAAK,QAAQ,EAAE;MAC7BrzD,MAAM,CAAC2vI,WAAW,GAAG,KAAK;IAC5B,CAAC,MAAM,IAAIt8E,YAAY,KAAK,UAAU,EAAE;MACtC,IAAI,CAAC7wD,8DAAe,CAACxC,MAAM,CAAC2vI,WAAW,CAAC,EAAE;QACxC3vI,MAAM,CAAC2vI,WAAW,GAAG,CAAC,CAAC;MACzB;MAEA,IAAIA,WAAW,GAAG3vI,MAAM,CAAC2vI,WAAW;MAEpC,KAAK,IAAI71O,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG+qF,GAAG,EAAE/qF,CAAC,EAAE,EAAE;QAC5B,IAAIg/E,SAAS,GAAGskQ,gBAAgB,CAACtjV,CAAC,CAAC,CAAC,CAAC;;QAErC,IAAIyjV,QAAQ,GAAGnB,eAAe,CAAC13U,IAAI,EAAEo0E,SAAS,CAAC;QAC/C62J,WAAW,CAAC4tG,QAAQ,CAAC,GAAG,IAAI;QAC5B,IAAI,CAAClB,uBAAuB,CAACkB,QAAQ,CAAC,GAAG74U,IAAI,CAACs5G,WAAW,CAACllC,SAAS,CAAC;MACtE;IACF,CAAC,MAAM,IAAIu6E,YAAY,KAAK,QAAQ,IAAIA,YAAY,KAAK,IAAI,EAAE;MAC7D,IAAIwqL,aAAa,GAAGT,gBAAgB,CAACv4P,GAAG,GAAG,CAAC,CAAC;MAC7C,IAAI04P,QAAQ,GAAGnB,eAAe,CAAC13U,IAAI,EAAEm5U,aAAa,CAAC;MACnD79O,MAAM,CAAC2vI,WAAW,IAAI1oJ,EAAE,GAAG,CAAC,CAAC,EAAEA,EAAE,CAACs2P,QAAQ,CAAC,GAAG,IAAI,EAAEt2P,EAAE,CAAC;MACvD,IAAI,CAACo1P,uBAAuB,IAAI78L,EAAE,GAAG,CAAC,CAAC,EAAEA,EAAE,CAAC+9L,QAAQ,CAAC,GAAG74U,IAAI,CAACs5G,WAAW,CAAC6/N,aAAa,CAAC,EAAEr+L,EAAE,CAAC;IAC9F;EACF,CAAC;EAEDz/C,WAAW,CAAC9lG,SAAS,CAAC0iV,wBAAwB,GAAG,UAAUj4U,IAAI,EAAE;IAC/D;IACA;IACA,IAAI,IAAI,CAACs7F,MAAM,CAAC2vI,WAAW,EAAE;MAC3B;IACF;IAEA,IAAI9gE,WAAW,GAAG,EAAE;IAEpB,IAAInqK,IAAI,CAACo5G,aAAa,EAAE;MACtBp5G,IAAI,CAACs3E,IAAI,CAAC,UAAU8K,GAAG,EAAE;QACvB,IAAIg+K,OAAO,GAAGpgQ,IAAI,CAACsmF,cAAc,CAAClE,GAAG,CAAC;QAEtC,IAAIg+K,OAAO,IAAIA,OAAO,CAAC9gI,QAAQ,EAAE;UAC/B6qC,WAAW,CAACxxK,IAAI,CAACypF,GAAG,CAAC;QACvB;MACF,CAAC,CAAC;IACJ;IAEA,IAAI+nF,WAAW,CAACt0K,MAAM,GAAG,CAAC,EAAE;MAC1B,IAAI,CAAC8iV,YAAY,CAAC34U,IAAI,EAAEmqK,WAAW,CAAC;IACtC;EACF,CAAC,CAAC,CAAC;EACH;EACA;EACA;;EAGA9uE,WAAW,CAACyB,aAAa,GAAG,UAAUwxO,GAAG,EAAE;IACzC,OAAOn6I,mEAA4B,CAACm6I,GAAG,CAAC;EAC1C,CAAC;EAEDjzO,WAAW,CAACmvN,eAAe,GAAG,YAAY;IACxC,IAAIC,KAAK,GAAGpvN,WAAW,CAAC9lG,SAAS;IACjCk1T,KAAK,CAACzhT,IAAI,GAAG,iBAAiB;IAC9ByhT,KAAK,CAACnhO,WAAW,GAAG,CAAC;IACrBmhO,KAAK,CAAChmJ,iBAAiB,GAAG,KAAK;IAC/BgmJ,KAAK,CAACztN,eAAe,GAAG,KAAK;IAC7BytN,KAAK,CAACxtN,aAAa,GAAG,QAAQ,CAAC,CAAC;;IAEhCwtN,KAAK,CAAC9kM,qBAAqB,GAAG,WAAW;IACzC8kM,KAAK,CAAC9jN,cAAc,GAAG,MAAM;EAC/B,CAAC,CAAC,CAAC;EAEH,OAAOtL,WAAW;AACpB,CAAC,CAAC84F,qDAAc,CAAC;AAEjBr2F,2DAAY,CAACzC,WAAW,EAAEo2I,wEAAe,CAAC;AAC1C3zI,2DAAY,CAACzC,WAAW,EAAE6zO,2DAAY,CAAC;AACvCf,4DAAW,CAAC9yO,WAAW,EAAE84F,qDAAc,CAAC;AACxC;AACA;AACA;AACA;AACA;;AAEA,SAAS6jJ,cAAcA,CAAC/2P,WAAW,EAAE;EACnC;EACA;EACA,IAAIvlF,IAAI,GAAGulF,WAAW,CAACvlF,IAAI;EAE3B,IAAI,CAACq+I,2DAAyB,CAAC94D,WAAW,CAAC,EAAE;IAC3CA,WAAW,CAACvlF,IAAI,GAAG09U,iBAAiB,CAACn4P,WAAW,CAAC,IAAIvlF,IAAI;EAC3D;AACF;AAEA,SAAS09U,iBAAiBA,CAACn4P,WAAW,EAAE;EACtC,IAAIjhF,IAAI,GAAGihF,WAAW,CAAC8pB,UAAU,CAAC,CAAC;EACnC,IAAI6P,QAAQ,GAAG56G,IAAI,CAACypG,gBAAgB,CAAC,YAAY,CAAC;EAClD,IAAIwmB,OAAO,GAAG,EAAE;EAChBnyB,0DAAW,CAAC8c,QAAQ,EAAE,UAAU0iF,OAAO,EAAE;IACvC,IAAIh6G,OAAO,GAAGtjF,IAAI,CAACujF,gBAAgB,CAAC+5G,OAAO,CAAC;IAC5Ch6G,OAAO,CAACq4K,WAAW,IAAI1rI,OAAO,CAACt3H,IAAI,CAAC2qF,OAAO,CAACq4K,WAAW,CAAC;EAC1D,CAAC,CAAC;EACF,OAAO1rI,OAAO,CAAChyH,IAAI,CAAC,GAAG,CAAC;AAC1B;AAEA,SAAS25U,aAAaA,CAAC5zO,OAAO,EAAE;EAC9B,OAAOA,OAAO,CAAC1nB,KAAK,CAACyuB,UAAU,CAAC,CAAC,CAACnqB,KAAK,CAAC,CAAC;AAC3C;AAEA,SAASi3P,aAAaA,CAAC7zO,OAAO,EAAE;EAC9B,IAAI/iB,WAAW,GAAG+iB,OAAO,CAAC1nB,KAAK;EAC/B2E,WAAW,CAACqvE,OAAO,CAACrvE,WAAW,CAAC8pB,UAAU,CAAC,CAAC,CAACwlD,YAAY,CAAC,CAAC,CAAC;EAC5D,OAAO8oL,gBAAgB;AACzB;AAEA,SAASA,gBAAgBA,CAAC14E,KAAK,EAAE38J,OAAO,EAAE;EACxC;EACA,IAAIA,OAAO,CAAC0sM,UAAU,IAAI/vC,KAAK,CAAC/7O,GAAG,GAAGo/E,OAAO,CAAC0sM,UAAU,CAAC9vN,KAAK,CAAC,CAAC,EAAE;IAChEojB,OAAO,CAAC1nB,KAAK,CAACyuB,UAAU,CAAC,CAAC,CAACwlD,YAAY,CAACvsD,OAAO,CAAC0sM,UAAU,CAAC;EAC7D;AACF,CAAC,CAAC;;AAGF,SAASonC,QAAQA,CAAC93U,IAAI,EAAEihF,WAAW,EAAE;EACnC6c,0DAAW,CAACA,iEAAkB,CAAC99F,IAAI,CAAC6/S,iBAAiB,EAAE7/S,IAAI,CAAC8/S,kBAAkB,CAAC,EAAE,UAAU90E,UAAU,EAAE;IACrGhrO,IAAI,CAACivH,UAAU,CAAC+7G,UAAU,EAAEltI,2DAAY,CAACw7O,YAAY,EAAEr4P,WAAW,CAAC,CAAC;EACtE,CAAC,CAAC;AACJ;AAEA,SAASq4P,YAAYA,CAACr4P,WAAW,EAAEoE,OAAO,EAAE;EAC1C,IAAIsyM,IAAI,GAAGygD,cAAc,CAACn3P,WAAW,CAAC;EAEtC,IAAI02M,IAAI,EAAE;IACR;IACAA,IAAI,CAACoa,YAAY,CAAC,CAAC1sN,OAAO,IAAI,IAAI,EAAEzE,KAAK,CAAC,CAAC,CAAC;EAC9C;EAEA,OAAOyE,OAAO;AAChB;AAEA,SAAS+yP,cAAcA,CAACn3P,WAAW,EAAE;EACnC,IAAI03M,SAAS,GAAG,CAAC13M,WAAW,CAACzM,OAAO,IAAI,CAAC,CAAC,EAAEmkN,SAAS;EACrD,IAAIb,QAAQ,GAAGa,SAAS,IAAIA,SAAS,CAACL,WAAW,CAACr3M,WAAW,CAAC20D,GAAG,CAAC;EAElE,IAAIkiJ,QAAQ,EAAE;IACZ;IACA;IACA,IAAIH,IAAI,GAAGG,QAAQ,CAAC6Y,WAAW;IAE/B,IAAIhZ,IAAI,EAAE;MACR,IAAIoC,YAAY,GAAGpC,IAAI,CAACoC,YAAY;MAEpC,IAAIA,YAAY,EAAE;QAChBpC,IAAI,GAAGoC,YAAY,CAACpjS,GAAG,CAACsqF,WAAW,CAAC20D,GAAG,CAAC;MAC1C;IACF;IAEA,OAAO+hJ,IAAI;EACb;AACF;AAEA,iEAAet8L,WAAW;;;;;;;;;;;;;;;AC1oB1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIk+O,QAAQ,GAAG,EAAE,CAAC,CAAC;;AAEnB,IAAI,OAAOxjU,SAAS,KAAK,WAAW,EAAE;EACpC;EACAwjU,QAAQ,GAAGxjU,SAAS,CAACwjU,QAAQ,IAAI,EAAE;AACrC;AAEA,IAAIC,UAAU,GAAG,oBAAoB;AACrC,iEAAe;EACblwC,QAAQ,EAAE,MAAM;EAChB;EACAroL,OAAO,EAAE,QAAQ;EACjBj1B,KAAK,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;EAC1GytP,aAAa,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;EAChDh1J,IAAI,EAAE;IACJ3yE,KAAK,EAAE;MACL4nO,MAAM,EAAE,CAAC;QACP1tP,KAAK,EAAEwtP,UAAU;QACjBG,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAClBC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAClB18O,UAAU,EAAE,CAAC;QACbgD,QAAQ,EAAEtnG,IAAI,CAACuiG,EAAE,GAAG;MACtB,CAAC,EAAE;QACDnP,KAAK,EAAEwtP,UAAU;QACjBt2T,MAAM,EAAE,QAAQ;QAChBy2T,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAClCC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAClB18O,UAAU,EAAE;MACd,CAAC,EAAE;QACDlR,KAAK,EAAEwtP,UAAU;QACjBG,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAClBC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAClB15O,QAAQ,EAAE,CAACtnG,IAAI,CAACuiG,EAAE,GAAG;MACvB,CAAC,EAAE;QACDnP,KAAK,EAAEwtP,UAAU;QACjBG,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAClCC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC;MACnB,CAAC,EAAE;QACD5tP,KAAK,EAAEwtP,UAAU;QACjBG,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5BC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACxB15O,QAAQ,EAAEtnG,IAAI,CAACuiG,EAAE,GAAG;MACtB,CAAC,EAAE;QACDnP,KAAK,EAAEwtP,UAAU;QACjBt2T,MAAM,EAAE,UAAU;QAClBy2T,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAClCC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAClB18O,UAAU,EAAE;MACd,CAAC;IACH;EACF,CAAC;EACD;EACA;EACA0c,SAAS,EAAE;IACT;IACA;IACA;IACAlrF,UAAU,EAAE6qT,QAAQ,CAAC9wT,KAAK,CAAC,MAAM,CAAC,GAAG,iBAAiB,GAAG,YAAY;IACrE;IACA8E,QAAQ,EAAE,EAAE;IACZu7S,SAAS,EAAE,QAAQ;IACnBl6S,UAAU,EAAE;EACd,CAAC;EACD;EACA;EACA;EACAq9Q,SAAS,EAAE,IAAI;EACf4tC,cAAc,EAAE;IACd9kQ,QAAQ,EAAE,GAAG;IACbC,MAAM,EAAE;EACV,CAAC;EACDL,SAAS,EAAE,MAAM;EACjBkyB,iBAAiB,EAAE,IAAI;EACvB8tD,uBAAuB,EAAE,GAAG;EAC5B7+E,eAAe,EAAE,YAAY;EAC7B4+E,qBAAqB,EAAE,YAAY;EACnC2gC,kBAAkB,EAAE,IAAI;EACxB;EACAjqG,oBAAoB,EAAE,IAAI;EAC1BwR,WAAW,EAAE,GAAG;EAChB;EACA;EACA;EACA;EACA;EACAg9C,mBAAmB,EAAE,IAAI;EACzB;EACA8kG,MAAM,EAAE;AACV,CAAC;;;;;;;;;;;;;;;;;;AClID;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACiE;AACR;AACzD,IAAIo7F,wBAAwB,GAAG92P,uEAAa,CAAC,CAAC;AACvC,SAAS+kK,6BAA6BA,CAAC7hJ,QAAQ,EAAEwwL,OAAO,EAAE;EAC/D39M,gEAAM,CAAC+gQ,wBAAwB,CAACnjV,GAAG,CAACuvG,QAAQ,CAAC,IAAI,IAAI,IAAIwwL,OAAO,CAAC;EACjEojD,wBAAwB,CAACljV,GAAG,CAACsvG,QAAQ,EAAEwwL,OAAO,CAAC;AACjD;AACO,SAASu4C,qBAAqBA,CAACz6P,OAAO,EAAE0xB,QAAQ,EAAEmrO,iBAAiB,EAAE;EAC1E,IAAI0I,qBAAqB,GAAGD,wBAAwB,CAACnjV,GAAG,CAACuvG,QAAQ,CAAC;EAElE,IAAI,CAAC6zO,qBAAqB,EAAE;IAC1B,OAAO1I,iBAAiB;EAC1B;EAEA,IAAI2I,eAAe,GAAGD,qBAAqB,CAACvlQ,OAAO,CAAC;EAEpD,IAAI,CAACwlQ,eAAe,EAAE;IACpB,OAAO3I,iBAAiB;EAC1B;EAEA,IAAI75T,IAAqC,EAAE;IACzC,KAAK,IAAIpiB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG4kV,eAAe,CAACnkV,MAAM,EAAET,CAAC,EAAE,EAAE;MAC/C2jF,gEAAM,CAACw5P,qEAAqB,CAACyH,eAAe,CAAC5kV,CAAC,CAAC,CAAC,CAAC;IACnD;EACF;EAEA,OAAOi8U,iBAAiB,CAACr9T,MAAM,CAACgmU,eAAe,CAAC;AAClD;;;;;;;;;;;;;;;;;ACrEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACmD;AAC5C,IAAIC,kBAAkB,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;AACvI;AAAA,CACC;;AACD,IAAI34L,YAAY,GAAGm2B,+DAAe,CAACwiK,kBAAkB,CAAC;AAEtD,IAAIvF,cAAc,GAClB;AACA,YAAY;EACV,SAASA,cAAcA,CAAA,EAAG,CAAC;EAE3BA,cAAc,CAACn/U,SAAS,CAAC+rJ,YAAY,GAAG,UAAU44L,QAAQ,EAAE1+U,QAAQ,EAAE;IACpE,OAAO8lJ,YAAY,CAAC,IAAI,EAAE44L,QAAQ,EAAE1+U,QAAQ,CAAC;EAC/C,CAAC;EAED,OAAOk5U,cAAc;AACvB,CAAC,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACmD;AACkB;AACpB;AACQ;AACzD,IAAIyF,mBAAmB,GAAG,aAAa;AAEvC,IAAI1oG,eAAe,GACnB;AACA,YAAY;EACV,SAASA,eAAeA,CAAA,EAAG,CAAC;EAC5B;AACF;AACA;;EAGEA,eAAe,CAACl8O,SAAS,CAAC68G,aAAa,GAAG,UAAUh+B,SAAS,EAAEi+B,QAAQ,EAAE;IACvE,IAAIryG,IAAI,GAAG,IAAI,CAACipF,OAAO,CAACopB,QAAQ,CAAC;IACjC,IAAIyuB,QAAQ,GAAG,IAAI,CAACznC,WAAW,CAACjlB,SAAS,EAAEi+B,QAAQ,CAAC;IACpD,IAAImmM,YAAY,GAAGx4S,IAAI,CAACs5G,WAAW,CAACllC,SAAS,CAAC;IAC9C,IAAI14E,IAAI,GAAGsE,IAAI,CAACyiH,OAAO,CAACruC,SAAS,CAAC;IAClC,IAAIkgE,OAAO,GAAGt0I,IAAI,CAACsmF,cAAc,CAAClS,SAAS,CAAC;IAC5C,IAAIpjE,KAAK,GAAGhR,IAAI,CAACw4F,aAAa,CAACpkB,SAAS,EAAE,OAAO,CAAC;IAClD,IAAI4X,KAAK,GAAGh7E,KAAK,IAAIA,KAAK,CAAChR,IAAI,CAACw4F,aAAa,CAACpkB,SAAS,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC;IAC/E,IAAI6X,WAAW,GAAGj7E,KAAK,IAAIA,KAAK,CAACuoF,MAAM;IACvC,IAAI2M,QAAQ,GAAG,IAAI,CAACA,QAAQ;IAC5B,IAAI4tN,QAAQ,GAAG5tN,QAAQ,KAAK,QAAQ;IACpC,IAAI67M,UAAU,GAAG/hT,IAAI,CAAC+hT,UAAU,IAAI/hT,IAAI,CAAC+hT,UAAU,CAACprT,GAAG,CAAC,CAAC;IACzD,OAAO;MACLs+F,aAAa,EAAEiR,QAAQ;MACvB07C,gBAAgB,EAAE,IAAI,CAACod,OAAO;MAC9Bnd,cAAc,EAAE,IAAI,CAACA,cAAc;MACnCzzC,UAAU,EAAE0lN,QAAQ,GAAG,IAAI,CAAC90J,OAAO,GAAG,IAAI;MAC1C11E,WAAW,EAAE,IAAI,CAACA,WAAW;MAC7BC,QAAQ,EAAEuqO,QAAQ,GAAG,IAAI,CAAC56T,EAAE,GAAG,IAAI;MACnCs/G,UAAU,EAAEs7M,QAAQ,GAAG,IAAI,CAACp4T,IAAI,GAAG,IAAI;MACvCA,IAAI,EAAEA,IAAI;MACV04E,SAAS,EAAEokO,YAAY;MACvBx4S,IAAI,EAAEs0I,OAAO;MACbjiC,QAAQ,EAAEA,QAAQ;MAClB97G,KAAK,EAAEuqI,QAAQ;MACf90C,KAAK,EAAEA,KAAK;MACZC,WAAW,EAAEA,WAAW;MACxBk0N,cAAc,EAAE4B,UAAU,GAAGA,UAAU,CAACgN,cAAc,GAAG,IAAI;MAC7DlnT,MAAM,EAAEk6S,UAAU,GAAGA,UAAU,CAACl6S,MAAM,GAAG,IAAI;MAC7C;MACAm5G,KAAK,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO;IACvC,CAAC;EACH,CAAC;EACD;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EAGEywH,eAAe,CAACl8O,SAAS,CAACukH,iBAAiB,GAAG,UAAU1lC,SAAS,EAAE64C,MAAM,EAAE5a,QAAQ,EAAE6a,aAAa,EAAEmE,SAAS,EAAEjE,YAAY,EAAE;IAC3HH,MAAM,GAAGA,MAAM,IAAI,QAAQ;IAC3B,IAAIjtH,IAAI,GAAG,IAAI,CAACipF,OAAO,CAACopB,QAAQ,CAAC;IACjC,IAAIjvF,MAAM,GAAG,IAAI,CAACgvF,aAAa,CAACh+B,SAAS,EAAEi+B,QAAQ,CAAC;IAEpD,IAAI+a,YAAY,EAAE;MAChBhqG,MAAM,CAAC7sB,KAAK,GAAG62H,YAAY,CAACC,iBAAiB;IAC/C;IAEA,IAAIH,aAAa,IAAI,IAAI,IAAIpvB,6DAAc,CAAC16E,MAAM,CAAC7sB,KAAK,CAAC,EAAE;MACzD6sB,MAAM,CAAC7sB,KAAK,GAAG6sB,MAAM,CAAC7sB,KAAK,CAAC22H,aAAa,CAAC;IAC5C;IAEA,IAAI,CAACmE,SAAS,EAAE;MACd,IAAI9/B,SAAS,GAAGvxF,IAAI,CAACwxF,YAAY,CAACpd,SAAS,CAAC,CAAC,CAAC;;MAE9Ci9C,SAAS,GAAG9/B,SAAS,CAAC56F,GAAG,CAACs2H,MAAM,KAAK,QAAQ,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,CAACA,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IAC1G;IAEA,IAAInvB,gEAAiB,CAACuzB,SAAS,CAAC,EAAE;MAChCjuG,MAAM,CAAC6pG,MAAM,GAAGA,MAAM;MACtB7pG,MAAM,CAACg3T,cAAc,GAAGltN,aAAa;MACrC,OAAOmE,SAAS,CAACjuG,MAAM,CAAC;IAC1B,CAAC,MAAM,IAAI06E,8DAAe,CAACuzB,SAAS,CAAC,EAAE;MACrC,IAAI7xG,GAAG,GAAGozO,0DAAS,CAACvhI,SAAS,EAAEjuG,MAAM,CAAC,CAAC,CAAC;MACxC;;MAEA,OAAO5D,GAAG,CAACthB,OAAO,CAACi8U,mBAAmB,EAAE,UAAUtsU,MAAM,EAAEwsU,MAAM,EAAE;QAChE,IAAIl6P,GAAG,GAAGk6P,MAAM,CAACxkV,MAAM;QACvB,IAAI4qQ,QAAQ,GAAG45E,MAAM;QAErB,IAAI55E,QAAQ,CAAC/4P,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI+4P,QAAQ,CAAC/4P,MAAM,CAACy4E,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;UAClEsgL,QAAQ,GAAG,CAACA,QAAQ,CAACrlQ,KAAK,CAAC,CAAC,EAAE+kF,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;;UAExC,IAAI3oE,IAAqC,EAAE;YACzC,IAAIwT,KAAK,CAACy1O,QAAQ,CAAC,EAAE;cACnB3kQ,mDAAK,CAAC,6BAA6B,GAAGu+U,MAAM,GAAG,sCAAsC,CAAC;YACxF;UACF;QACF;QAEA,IAAIphU,GAAG,GAAGg8H,8EAAgB,CAACj1I,IAAI,EAAEo0E,SAAS,EAAEqsL,QAAQ,CAAC;QAErD,IAAIrzI,YAAY,IAAItvB,6DAAc,CAACsvB,YAAY,CAACC,iBAAiB,CAAC,EAAE;UAClE,IAAI7T,QAAQ,GAAGx5G,IAAI,CAACyuG,iBAAiB,CAACgyJ,QAAQ,CAAC;UAE/C,IAAIjnJ,QAAQ,IAAI,CAAC,EAAE;YACjBvgG,GAAG,GAAGm0G,YAAY,CAACC,iBAAiB,CAAC7T,QAAQ,CAAC;UAChD;QACF;QAEA,OAAOvgG,GAAG,IAAI,IAAI,GAAGA,GAAG,GAAG,EAAE,GAAG,EAAE;MACpC,CAAC,CAAC;IACJ;EACF,CAAC;EACD;AACF;AACA;;EAGEw4N,eAAe,CAACl8O,SAAS,CAAC8jG,WAAW,GAAG,UAAUjX,GAAG,EAAEiwB,QAAQ,EAAE;IAC/D,OAAO4iC,8EAAgB,CAAC,IAAI,CAAChsD,OAAO,CAACopB,QAAQ,CAAC,EAAEjwB,GAAG,CAAC;EACtD,CAAC;EACD;AACF;AACA;AACA;AACA;AACA;;EAGEqvJ,eAAe,CAACl8O,SAAS,CAACs6H,aAAa,GAAG,UAAUz7C,SAAS,EAAE07C,cAAc,EAAEzd,QAAQ,EAAE;IACvF;IACA;EACF,CAAC;EAED,OAAOo/H,eAAe;AACxB,CAAC,CAAC,CAAC;AAEwB;AAC3B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEO,SAAS0hB,4BAA4BA,CAAC/tO,MAAM,EAAE;EACnD,IAAI4xO,UAAU,CAAC,CAAC;;EAEhB,IAAIsjF,cAAc;EAElB,IAAIx8O,8DAAe,CAAC14E,MAAM,CAAC,EAAE;IAC3B,IAAIA,MAAM,CAACpc,IAAI,EAAE;MACfsxU,cAAc,GAAGl1T,MAAM;IACzB,CAAC,MAAM;MACL,IAAI5N,IAAqC,EAAE;QACzCtM,OAAO,CAACC,IAAI,CAAC,uDAAuD,GAAGs/F,2DAAa,CAACrlF,MAAM,CAAC,CAAC;MAC/F;IACF,CAAC,CAAC;IACF;IACA;IACA;IACA;IACA;IACA;EAEF,CAAC,MAAM;IACL4xO,UAAU,GAAG5xO,MAAM;EACrB;EAEA,OAAO;IACLiN,IAAI,EAAE2kO,UAAU;IAChB;IACAZ,IAAI,EAAEkkF;EACR,CAAC;AACH;;;;;;;;;;;;;;;;;AClOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACmD;AAC5C,IAAIC,kBAAkB,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,CAAC,WAAW,EAAE,aAAa,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;AAC9V;AAAA,CACC;;AACD,IAAIlpP,YAAY,GAAGomF,+DAAe,CAAC8iK,kBAAkB,CAAC;AAEtD,IAAI1F,cAAc,GAClB;AACA,YAAY;EACV,SAASA,cAAcA,CAAA,EAAG,CAAC;EAE3BA,cAAc,CAACt/U,SAAS,CAAC87F,YAAY,GAAG,UAAU6oP,QAAQ,EAAE1+U,QAAQ,EAAE;IACpE,OAAO61F,YAAY,CAAC,IAAI,EAAE6oP,QAAQ,EAAE1+U,QAAQ,CAAC;EAC/C,CAAC;EAED,OAAOq5U,cAAc;AACvB,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;AC1DH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACmD;AAC5C,IAAI2F,kBAAkB,GAAG,CAAC,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC,gBAAgB,EAAE,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;AACnR;AAAA,CACC;;AACD,IAAItyN,YAAY,GAAGuvD,+DAAe,CAAC+iK,kBAAkB,CAAC;AAEtD,IAAI5F,cAAc,GAClB;AACA,YAAY;EACV,SAASA,cAAcA,CAAA,EAAG,CAAC;EAE3BA,cAAc,CAACr/U,SAAS,CAAC2yH,YAAY,GAAG,UAAUgyN,QAAQ,EAAE;IAC1D,OAAOhyN,YAAY,CAAC,IAAI,EAAEgyN,QAAQ,CAAC;EACrC,CAAC;EAED,OAAOtF,cAAc;AACvB,CAAC,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACmD;AACpC,SAASn9J,eAAeA,CAAC81G,UAAU,EAAEunD,YAAY,EAAE;EAChE;EACA,KAAK,IAAI1/U,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGm4R,UAAU,CAAC13R,MAAM,EAAET,CAAC,EAAE,EAAE;IAC1C,IAAI,CAACm4R,UAAU,CAACn4R,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;MACrBm4R,UAAU,CAACn4R,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGm4R,UAAU,CAACn4R,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC;EACF;EAEA0/U,YAAY,GAAGA,YAAY,IAAI,KAAK;EACpC,OAAO,UAAUx4P,KAAK,EAAE49P,QAAQ,EAAE1+U,QAAQ,EAAE;IAC1C,IAAIwV,KAAK,GAAG,CAAC,CAAC;IAEd,KAAK,IAAI5b,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGm4R,UAAU,CAAC13R,MAAM,EAAET,CAAC,EAAE,EAAE;MAC1C,IAAIimF,QAAQ,GAAGkyM,UAAU,CAACn4R,CAAC,CAAC,CAAC,CAAC,CAAC;MAE/B,IAAI8kV,QAAQ,IAAIp8O,6DAAc,CAACo8O,QAAQ,EAAE7+P,QAAQ,CAAC,IAAI,CAAC,IAAI7/E,QAAQ,IAAIsiG,6DAAc,CAACtiG,QAAQ,EAAE6/E,QAAQ,CAAC,GAAG,CAAC,EAAE;QAC7G;MACF;MAEA,IAAIpiE,GAAG,GAAGqjE,KAAK,CAACpH,UAAU,CAACmG,QAAQ,EAAEy5P,YAAY,CAAC;MAElD,IAAI77T,GAAG,IAAI,IAAI,EAAE;QACfjI,KAAK,CAACu8Q,UAAU,CAACn4R,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG6jB,GAAG;MAC/B;IACF,CAAC,CAAC;;IAGF,OAAOjI,KAAK;EACd,CAAC;AACH;;;;;;;;;;;;;;;;;AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACkE;AAClE,IAAIypU,UAAU,GAAG1mQ,yDAAS,CAAC,CAAC;AAC5B,IAAI2mQ,UAAU,GAAG3mQ,yDAAS,CAAC,CAAC;AAE5B,IAAIm7P,YAAY,GAChB;AACA,YAAY;EACV,SAASA,YAAYA,CAAA,EAAG,CAAC;EAEzBA,YAAY,CAAC35U,SAAS,CAACshI,mBAAmB,GAAG,UAAUn7H,IAAI,EAAEiB,KAAK,EAAEg+U,UAAU,EAAE;IAC9E,IAAIC,cAAc,GAAG9hQ,gEAAgB,CAAC,IAAI,CAACniF,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC9D,IAAIkkV,cAAc,GAAG,IAAI,CAAClkV,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC;IACjD,OAAOmkV,cAAc,CAAC,IAAI,EAAEL,UAAU,EAAEG,cAAc,EAAEC,cAAc,EAAEn/U,IAAI,EAAEiB,KAAK,EAAEg+U,UAAU,CAAC;EAClG,CAAC;EAEDzL,YAAY,CAAC35U,SAAS,CAAC8zS,iBAAiB,GAAG,YAAY;IACrD0xC,YAAY,CAAC,IAAI,EAAEN,UAAU,CAAC;EAChC,CAAC;EAED,OAAOvL,YAAY;AACrB,CAAC,CAAC,CAAC;AAEI,SAASv6L,mBAAmBA,CAACngE,OAAO,EAAE94E,IAAI,EAAEiB,KAAK,EAAEg+U,UAAU,EAAE;EACpE,IAAIK,aAAa,GAAGliQ,gEAAgB,CAACtE,OAAO,CAAC79E,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;EAC9E,OAAOmkV,cAAc,CAACtmQ,OAAO,EAAEkmQ,UAAU,EAAEM,aAAa,EAAE,IAAI,EAAEt/U,IAAI,EAAEiB,KAAK,EAAEg+U,UAAU,CAAC;AAC1F;AAEA,SAASM,iBAAiBA,CAACC,QAAQ,EAAE1C,eAAe,EAAE;EACpD,IAAI2C,UAAU,GAAGD,QAAQ,CAACrlV,MAAM,CAAC,CAAC;;EAElC,KAAK,IAAIT,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG+lV,UAAU,EAAE/lV,CAAC,EAAE,EAAE;IACnC,IAAI8lV,QAAQ,CAAC9lV,CAAC,CAAC,CAACS,MAAM,GAAG2iV,eAAe,EAAE;MACxC,OAAO0C,QAAQ,CAAC9lV,CAAC,CAAC;IACpB;EACF;EAEA,OAAO8lV,QAAQ,CAACC,UAAU,GAAG,CAAC,CAAC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASL,cAAcA,CAACM,IAAI,EAAE56T,KAAK,EAAEo6T,cAAc,EAAEC,cAAc,EAAEn/U,IAAI,EAAEiB,KAAK,EAAEg+U,UAAU,EAAE;EAC5Fh+U,KAAK,GAAGA,KAAK,IAAIy+U,IAAI;EACrB,IAAIC,WAAW,GAAG76T,KAAK,CAAC7jB,KAAK,CAAC;EAC9B,IAAI2+U,UAAU,GAAGD,WAAW,CAACC,UAAU,IAAI,CAAC;EAC5C,IAAIC,cAAc,GAAGF,WAAW,CAACE,cAAc,GAAGF,WAAW,CAACE,cAAc,IAAI,CAAC,CAAC,CAAC,CAAC;;EAEpF,IAAIA,cAAc,CAAC/lV,cAAc,CAACkG,IAAI,CAAC,EAAE;IACvC,OAAO6/U,cAAc,CAAC7/U,IAAI,CAAC;EAC7B;EAEA,IAAI8/U,OAAO,GAAGb,UAAU,IAAI,IAAI,IAAI,CAACE,cAAc,GAAGD,cAAc,GAAGK,iBAAiB,CAACJ,cAAc,EAAEF,UAAU,CAAC,CAAC,CAAC;;EAEtHa,OAAO,GAAGA,OAAO,IAAIZ,cAAc;EAEnC,IAAI,CAACY,OAAO,IAAI,CAACA,OAAO,CAAC3lV,MAAM,EAAE;IAC/B;EACF;EAEA,IAAI4lV,iBAAiB,GAAGD,OAAO,CAACF,UAAU,CAAC;EAE3C,IAAI5/U,IAAI,EAAE;IACR6/U,cAAc,CAAC7/U,IAAI,CAAC,GAAG+/U,iBAAiB;EAC1C;EAEAJ,WAAW,CAACC,UAAU,GAAG,CAACA,UAAU,GAAG,CAAC,IAAIE,OAAO,CAAC3lV,MAAM;EAC1D,OAAO4lV,iBAAiB;AAC1B;AAEA,SAASV,YAAYA,CAACK,IAAI,EAAE56T,KAAK,EAAE;EACjCA,KAAK,CAAC46T,IAAI,CAAC,CAACE,UAAU,GAAG,CAAC;EAC1B96T,KAAK,CAAC46T,IAAI,CAAC,CAACG,cAAc,GAAG,CAAC,CAAC;AACjC;;;;;;;;;;;;;;;;;;ACvHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACoD;AACH;AACjD,IAAIG,UAAU,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC;AACvC,IAAIC,eAAe,GAAG,CAAC,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;;AAE7I,IAAIC,OAAO,GAAG,IAAI55F,mEAAM,CAAC,CAAC;AAE1B,IAAI2yF,cAAc,GAClB;AACA,YAAY;EACV,SAASA,cAAcA,CAAA,EAAG,CAAC;EAC3B;AACF;AACA;EACE;;EAGAA,cAAc,CAACp/U,SAAS,CAAC4xL,YAAY,GAAG,UAAU00J,UAAU,EAAE;IAC5D,IAAIrnQ,OAAO,GAAG,IAAI,CAACA,OAAO;IAC1B,OAAO,IAAI,CAACU,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC2mQ,UAAU,IAAIrnQ,OAAO,GAAGA,OAAO,CAAC79E,GAAG,CAAC+kV,UAAU,CAAC,GAAG,IAAI,CAAC;EAC9F,CAAC;EACD;AACF;AACA;AACA;;EAGE/G,cAAc,CAACp/U,SAAS,CAACglH,OAAO,GAAG,YAAY;IAC7C,OAAOA,6DAAO,CAAC;MACbuuN,SAAS,EAAE,IAAI,CAAC5zP,UAAU,CAAC,WAAW,CAAC;MACvCtmD,UAAU,EAAE,IAAI,CAACsmD,UAAU,CAAC,YAAY,CAAC;MACzC3nD,QAAQ,EAAE,IAAI,CAAC2nD,UAAU,CAAC,UAAU,CAAC;MACrCxmD,UAAU,EAAE,IAAI,CAACwmD,UAAU,CAAC,YAAY;IAC1C,CAAC,EAAE,IAAI,CAACV,OAAO,CAAC;EAClB,CAAC;EAEDmgQ,cAAc,CAACp/U,SAAS,CAACg/K,WAAW,GAAG,UAAUliJ,IAAI,EAAE;IACrD,IAAIrhB,KAAK,GAAG;MACVqhB,IAAI,EAAEA,IAAI;MACVuwF,aAAa,EAAE,IAAI,CAAC1tC,UAAU,CAAC,eAAe,CAAC,IAAI,IAAI,CAACA,UAAU,CAAC,UAAU;IAC/E,CAAC;IAED,KAAK,IAAI9/E,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGumV,eAAe,CAAC9lV,MAAM,EAAET,CAAC,EAAE,EAAE;MAC/C4b,KAAK,CAAC2qU,eAAe,CAACvmV,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC8/E,UAAU,CAACymQ,eAAe,CAACvmV,CAAC,CAAC,CAAC;IACjE;IAEAwmV,OAAO,CAACz/P,QAAQ,CAACnrE,KAAK,CAAC;IACvB4qU,OAAO,CAAC70P,MAAM,CAAC,CAAC;IAChB,OAAO60P,OAAO,CAAChoN,eAAe,CAAC,CAAC;EAClC,CAAC;EAED,OAAO+gN,cAAc;AACvB,CAAC,CAAC,CAAC;AAEH;AACA,iEAAeA,cAAc;;;;;;;;;;;;;;;;;ACjG7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACyE;AACrB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAImH,YAAY,GAChB;AACA,YAAY;EACV,SAASA,YAAYA,CAAClpM,YAAY,EAAE;IAClC,IAAI,CAACG,YAAY,GAAG,EAAE;IACtB,IAAI,CAACC,OAAO,GAAGhwD,uEAAa,CAAC,CAAC;IAC9B,IAAI,CAACwwD,eAAe,GAAGxwD,uEAAa,CAAC,CAAC;IACtC,IAAI,CAAC4vD,YAAY,GAAGA,YAAY;EAClC;EAEA,OAAOkpM,YAAY;AACrB,CAAC,CAAC,CAAC;AAEI,SAASzpM,uBAAuBA,CAACpxD,WAAW,EAAE;EACnD,IAAI2xD,YAAY,GAAG3xD,WAAW,CAACtqF,GAAG,CAAC,kBAAkB,CAAC;EACtD,IAAIyuB,MAAM,GAAG,IAAI02T,YAAY,CAAClpM,YAAY,CAAC;EAC3C,IAAIt0I,KAAK,GAAGy9U,QAAQ,CAACnpM,YAAY,CAAC;EAElC,IAAIt0I,KAAK,EAAE;IACTA,KAAK,CAAC2iF,WAAW,EAAE77D,MAAM,EAAEA,MAAM,CAAC4tH,OAAO,EAAE5tH,MAAM,CAACouH,eAAe,CAAC;IAClE,OAAOpuH,MAAM;EACf;AACF;AACA,IAAI22T,QAAQ,GAAG;EACbxmP,WAAW,EAAE,SAAAA,CAAUtU,WAAW,EAAE77D,MAAM,EAAE4tH,OAAO,EAAEQ,eAAe,EAAE;IACpE,IAAIuE,UAAU,GAAG92D,WAAW,CAACioF,sBAAsB,CAAC,OAAO,EAAEX,4DAAgB,CAAC,CAACY,MAAM,CAAC,CAAC,CAAC;IACxF,IAAIlxB,UAAU,GAAGh3D,WAAW,CAACioF,sBAAsB,CAAC,OAAO,EAAEX,4DAAgB,CAAC,CAACY,MAAM,CAAC,CAAC,CAAC;IAExF,IAAI3xJ,IAAqC,EAAE;MACzC,IAAI,CAACugI,UAAU,EAAE;QACf,MAAM,IAAIn8I,KAAK,CAAC,SAAS,GAAGgmG,kEAAQ,CAAC3gB,WAAW,CAACtqF,GAAG,CAAC,YAAY,CAAC,EAAEsqF,WAAW,CAACtqF,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,aAAa,CAAC;MACrH;MAEA,IAAI,CAACshJ,UAAU,EAAE;QACf,MAAM,IAAIr8I,KAAK,CAAC,SAAS,GAAGgmG,kEAAQ,CAAC3gB,WAAW,CAACtqF,GAAG,CAAC,YAAY,CAAC,EAAEsqF,WAAW,CAACtqF,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,aAAa,CAAC;MACrH;IACF;IAEAyuB,MAAM,CAAC2tH,YAAY,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC;IAChCC,OAAO,CAACp8I,GAAG,CAAC,GAAG,EAAEmhJ,UAAU,CAAC;IAC5B/E,OAAO,CAACp8I,GAAG,CAAC,GAAG,EAAEqhJ,UAAU,CAAC;IAE5B,IAAIkyH,UAAU,CAACpyH,UAAU,CAAC,EAAE;MAC1BvE,eAAe,CAAC58I,GAAG,CAAC,GAAG,EAAEmhJ,UAAU,CAAC;MACpC3yH,MAAM,CAACiuH,qBAAqB,GAAG,CAAC;IAClC;IAEA,IAAI82H,UAAU,CAAClyH,UAAU,CAAC,EAAE;MAC1BzE,eAAe,CAAC58I,GAAG,CAAC,GAAG,EAAEqhJ,UAAU,CAAC;MACpC7yH,MAAM,CAACiuH,qBAAqB,IAAI,IAAI,KAAKjuH,MAAM,CAACiuH,qBAAqB,GAAG,CAAC,CAAC;IAC5E;EACF,CAAC;EACDijE,UAAU,EAAE,SAAAA,CAAUr1H,WAAW,EAAE77D,MAAM,EAAE4tH,OAAO,EAAEQ,eAAe,EAAE;IACnE,IAAIy1B,eAAe,GAAGhoF,WAAW,CAACioF,sBAAsB,CAAC,YAAY,EAAEX,4DAAgB,CAAC,CAACY,MAAM,CAAC,CAAC,CAAC;IAElG,IAAI3xJ,IAAqC,EAAE;MACzC,IAAI,CAACyxJ,eAAe,EAAE;QACpB,MAAM,IAAIrtK,KAAK,CAAC,iCAAiC,CAAC;MACpD;IACF;IAEAwpB,MAAM,CAAC2tH,YAAY,GAAG,CAAC,QAAQ,CAAC;IAChCC,OAAO,CAACp8I,GAAG,CAAC,QAAQ,EAAEqyK,eAAe,CAAC;IAEtC,IAAIkhG,UAAU,CAAClhG,eAAe,CAAC,EAAE;MAC/Bz1B,eAAe,CAAC58I,GAAG,CAAC,QAAQ,EAAEqyK,eAAe,CAAC;MAC9C7jJ,MAAM,CAACiuH,qBAAqB,GAAG,CAAC;IAClC;EACF,CAAC;EACDp9C,KAAK,EAAE,SAAAA,CAAUhV,WAAW,EAAE77D,MAAM,EAAE4tH,OAAO,EAAEQ,eAAe,EAAE;IAC9D,IAAIo+I,UAAU,GAAG3wM,WAAW,CAACioF,sBAAsB,CAAC,OAAO,EAAEX,4DAAgB,CAAC,CAACY,MAAM,CAAC,CAAC,CAAC;IACxF,IAAI4pB,eAAe,GAAG6+F,UAAU,CAACC,aAAa,CAAC,YAAY,CAAC;IAC5D,IAAIrsG,cAAc,GAAGosG,UAAU,CAACC,aAAa,CAAC,WAAW,CAAC;IAE1D,IAAIr6Q,IAAqC,EAAE;MACzC,IAAI,CAACguK,cAAc,EAAE;QACnB,MAAM,IAAI5pL,KAAK,CAAC,4BAA4B,CAAC;MAC/C;MAEA,IAAI,CAACm3L,eAAe,EAAE;QACpB,MAAM,IAAIn3L,KAAK,CAAC,6BAA6B,CAAC;MAChD;IACF;IAEAwpB,MAAM,CAAC2tH,YAAY,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzCC,OAAO,CAACp8I,GAAG,CAAC,QAAQ,EAAEm8L,eAAe,CAAC;IACtC//C,OAAO,CAACp8I,GAAG,CAAC,OAAO,EAAE4uL,cAAc,CAAC;IAEpC,IAAI2kF,UAAU,CAACp3E,eAAe,CAAC,EAAE;MAC/Bv/C,eAAe,CAAC58I,GAAG,CAAC,QAAQ,EAAEm8L,eAAe,CAAC;MAC9C3tK,MAAM,CAACiuH,qBAAqB,GAAG,CAAC;IAClC;IAEA,IAAI82H,UAAU,CAAC3kF,cAAc,CAAC,EAAE;MAC9BhyC,eAAe,CAAC58I,GAAG,CAAC,OAAO,EAAE4uL,cAAc,CAAC;MAC5CpgK,MAAM,CAACiuH,qBAAqB,IAAI,IAAI,KAAKjuH,MAAM,CAACiuH,qBAAqB,GAAG,CAAC,CAAC;IAC5E;EACF,CAAC;EACDn/B,GAAG,EAAE,SAAAA,CAAUjzB,WAAW,EAAE77D,MAAM,EAAE4tH,OAAO,EAAEQ,eAAe,EAAE;IAC5DpuH,MAAM,CAAC2tH,YAAY,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC;EACtC,CAAC;EACD29I,QAAQ,EAAE,SAAAA,CAAUzvM,WAAW,EAAE77D,MAAM,EAAE4tH,OAAO,EAAEQ,eAAe,EAAE;IACjE,IAAIh/D,OAAO,GAAGyM,WAAW,CAACzM,OAAO;IACjC,IAAI+8E,aAAa,GAAG/8E,OAAO,CAACwjE,YAAY,CAAC,UAAU,EAAE/2D,WAAW,CAACtqF,GAAG,CAAC,eAAe,CAAC,CAAC;IACtF,IAAIo8I,YAAY,GAAG3tH,MAAM,CAAC2tH,YAAY,GAAGwe,aAAa,CAACluE,UAAU,CAACjoF,KAAK,CAAC,CAAC;IACzEk8E,8DAAI,CAACi6E,aAAa,CAACy8H,iBAAiB,EAAE,UAAUjyH,SAAS,EAAEp+I,KAAK,EAAE;MAChE,IAAI24E,SAAS,GAAG9hB,OAAO,CAACwjE,YAAY,CAAC,cAAc,EAAE+jB,SAAS,CAAC;MAC/D,IAAIvK,OAAO,GAAGze,YAAY,CAACp1H,KAAK,CAAC;MACjCq1H,OAAO,CAACp8I,GAAG,CAAC46J,OAAO,EAAEl7D,SAAS,CAAC;MAE/B,IAAI6zK,UAAU,CAAC7zK,SAAS,CAAC,EAAE;QACzBk9C,eAAe,CAAC58I,GAAG,CAAC46J,OAAO,EAAEl7D,SAAS,CAAC;QAEvC,IAAIlxE,MAAM,CAACiuH,qBAAqB,IAAI,IAAI,EAAE;UACxCjuH,MAAM,CAACiuH,qBAAqB,GAAG11H,KAAK;QACtC;MACF;IACF,CAAC,CAAC;EACJ;AACF,CAAC;AAED,SAASwsP,UAAUA,CAAC7zK,SAAS,EAAE;EAC7B,OAAOA,SAAS,CAAC3/F,GAAG,CAAC,MAAM,CAAC,KAAK,UAAU;AAC7C;;;;;;;;;;;;;;;;;;;ACpMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC2F;AACzC;AACE;AACe;AAEnE,SAASA,GAAGA,CAACuzF,GAAG,EAAE3iF,IAAI,EAAE;EACtB,IAAIkoH,OAAO,GAAGloH,IAAI,CAACzJ,KAAK,CAAC,GAAG,CAAC;EAC7B,IAAIiV,GAAG,GAAGm3E,GAAG;EAEb,KAAK,IAAI90F,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGq6H,OAAO,CAAC55H,MAAM,EAAET,CAAC,EAAE,EAAE;IACvC2d,GAAG,GAAGA,GAAG,IAAIA,GAAG,CAAC08G,OAAO,CAACr6H,CAAC,CAAC,CAAC;IAE5B,IAAI2d,GAAG,IAAI,IAAI,EAAE;MACf;IACF;EACF;EAEA,OAAOA,GAAG;AACZ;AAEA,SAASnc,GAAGA,CAACszF,GAAG,EAAE3iF,IAAI,EAAE0R,GAAG,EAAEgjU,SAAS,EAAE;EACtC,IAAIxsN,OAAO,GAAGloH,IAAI,CAACzJ,KAAK,CAAC,GAAG,CAAC;EAC7B,IAAIiV,GAAG,GAAGm3E,GAAG;EACb,IAAIz2E,GAAG;EACP,IAAIre,CAAC,GAAG,CAAC;EAET,OAAOA,CAAC,GAAGq6H,OAAO,CAAC55H,MAAM,GAAG,CAAC,EAAET,CAAC,EAAE,EAAE;IAClCqe,GAAG,GAAGg8G,OAAO,CAACr6H,CAAC,CAAC;IAEhB,IAAI2d,GAAG,CAACU,GAAG,CAAC,IAAI,IAAI,EAAE;MACpBV,GAAG,CAACU,GAAG,CAAC,GAAG,CAAC,CAAC;IACf;IAEAV,GAAG,GAAGA,GAAG,CAACU,GAAG,CAAC;EAChB;EAEA,IAAIwoU,SAAS,IAAIlpU,GAAG,CAAC08G,OAAO,CAACr6H,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;IACxC2d,GAAG,CAAC08G,OAAO,CAACr6H,CAAC,CAAC,CAAC,GAAG6jB,GAAG;EACvB;AACF;AAEA,SAASijU,sBAAsBA,CAAC5gP,MAAM,EAAE;EACtCA,MAAM,IAAIhkB,8DAAI,CAAC6kQ,iBAAiB,EAAE,UAAU5xT,IAAI,EAAE;IAChD,IAAIA,IAAI,CAAC,CAAC,CAAC,IAAI+wE,MAAM,IAAI,EAAE/wE,IAAI,CAAC,CAAC,CAAC,IAAI+wE,MAAM,CAAC,EAAE;MAC7CA,MAAM,CAAC/wE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG+wE,MAAM,CAAC/wE,IAAI,CAAC,CAAC,CAAC,CAAC;IACnC;EACF,CAAC,CAAC;AACJ;AAEA,IAAI4xT,iBAAiB,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACxF,IAAIC,uBAAuB,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,CAAC;AAC5H,IAAIC,kBAAkB,GAAG,CAAC,CAAC,cAAc,EAAE,iBAAiB,CAAC,EAAE,CAAC,aAAa,EAAE,gBAAgB,CAAC,EAAE,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;AAEpI,SAASC,kBAAkBA,CAAChhP,MAAM,EAAE;EAClC,IAAI5O,SAAS,GAAG4O,MAAM,IAAIA,MAAM,CAAC5O,SAAS;EAE1C,IAAIA,SAAS,EAAE;IACb,KAAK,IAAIt3F,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGinV,kBAAkB,CAACxmV,MAAM,EAAET,CAAC,EAAE,EAAE;MAClD,IAAIoxB,OAAO,GAAG61T,kBAAkB,CAACjnV,CAAC,CAAC,CAAC,CAAC,CAAC;MACtC,IAAImnV,OAAO,GAAGF,kBAAkB,CAACjnV,CAAC,CAAC,CAAC,CAAC,CAAC;MAEtC,IAAIs3F,SAAS,CAAClmE,OAAO,CAAC,IAAI,IAAI,EAAE;QAC9BkmE,SAAS,CAAC6vP,OAAO,CAAC,GAAG7vP,SAAS,CAAClmE,OAAO,CAAC;QAEvC,IAAIhP,IAAqC,EAAE;UACzCsvJ,iEAAmB,CAACtgJ,OAAO,EAAE+1T,OAAO,CAAC;QACvC;MACF;IACF;EACF;AACF;AAEA,SAASC,cAAcA,CAAClhP,MAAM,EAAE;EAC9B,IAAI,CAACA,MAAM,EAAE;IACX;EACF;EAEA,IAAIA,MAAM,CAACs4D,OAAO,KAAK,MAAM,IAAIt4D,MAAM,CAAC+8D,MAAM,IAAI,IAAI,IAAI/8D,MAAM,CAACu4D,YAAY,IAAI,IAAI,EAAE;IACrF,IAAIr8I,IAAqC,EAAE;MACzCsvJ,iEAAmB,CAAC,cAAc,EAAE,oBAAoB,EAAE,KAAK,CAAC;IAClE;IAEAxrE,MAAM,CAACu4D,YAAY,GAAGv4D,MAAM,CAAC+8D,MAAM;EACrC;AACF;AAEA,SAASokL,mBAAmBA,CAACnhP,MAAM,EAAE;EACnC,IAAI,CAACA,MAAM,EAAE;IACX;EACF;EAEA,IAAIA,MAAM,CAACsqC,QAAQ,IAAI,CAACtqC,MAAM,CAACsY,IAAI,EAAE;IACnCtY,MAAM,CAACsY,IAAI,GAAGtY,MAAM,CAACsqC,QAAQ;IAE7B,IAAIpuH,IAAqC,EAAE;MACzCsvJ,iEAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC;IACrD;EACF;AACF;AAEA,SAAS41K,gBAAgBA,CAACphP,MAAM,EAAE;EAChC,IAAI,CAACA,MAAM,EAAE;IACX;EACF;EAEA,IAAIA,MAAM,CAACqhP,kBAAkB,IAAI,IAAI,EAAE;IACrCrhP,MAAM,CAACuC,QAAQ,GAAGvC,MAAM,CAACuC,QAAQ,IAAI,CAAC,CAAC;IAEvC,IAAIvC,MAAM,CAACuC,QAAQ,CAACyG,KAAK,IAAI,IAAI,EAAE;MACjC,IAAI9sF,IAAqC,EAAE;QACzCsvJ,iEAAmB,CAAC,oBAAoB,EAAE,mCAAmC,EAAE,cAAc,CAAC;MAChG;MAEAxrE,MAAM,CAACuC,QAAQ,CAACyG,KAAK,GAAG,WAAW;IACrC;EACF;AACF;AAEA,SAASs4O,YAAYA,CAAC58U,IAAI,EAAEq1E,EAAE,EAAE;EAC9B,IAAIr1E,IAAI,EAAE;IACR,KAAK,IAAI5K,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG4K,IAAI,CAACnK,MAAM,EAAET,CAAC,EAAE,EAAE;MACpCigF,EAAE,CAACr1E,IAAI,CAAC5K,CAAC,CAAC,CAAC;MACX4K,IAAI,CAAC5K,CAAC,CAAC,IAAIwnV,YAAY,CAAC58U,IAAI,CAAC5K,CAAC,CAAC,CAACmsB,QAAQ,EAAE8zD,EAAE,CAAC;IAC/C;EACF;AACF;AAEe,SAASwnQ,oBAAoBA,CAACvhP,MAAM,EAAEwhP,OAAO,EAAE;EAC5Dd,kEAAW,CAAC1gP,MAAM,EAAEwhP,OAAO,CAAC,CAAC,CAAC;;EAE9BxhP,MAAM,CAACxT,MAAM,GAAGhP,gEAAgB,CAACwiB,MAAM,CAACxT,MAAM,CAAC;EAC/CxQ,8DAAI,CAACgkB,MAAM,CAACxT,MAAM,EAAE,UAAUwhE,SAAS,EAAE;IACvC,IAAI,CAACz1E,kEAAQ,CAACy1E,SAAS,CAAC,EAAE;MACxB;IACF;IAEA,IAAIl7C,UAAU,GAAGk7C,SAAS,CAACtgJ,IAAI;IAE/B,IAAIolG,UAAU,KAAK,MAAM,EAAE;MACzB,IAAIk7C,SAAS,CAACyzL,YAAY,IAAI,IAAI,EAAE;QAClCzzL,SAAS,CAAC19D,IAAI,GAAG09D,SAAS,CAACyzL,YAAY;QAEvC,IAAIvlU,IAAqC,EAAE;UACzCsvJ,iEAAmB,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,CAAC;QACrD;MACF;IACF,CAAC,MAAM,IAAI14D,UAAU,KAAK,KAAK,IAAIA,UAAU,KAAK,OAAO,EAAE;MACzD,IAAIk7C,SAAS,CAAC0zL,SAAS,IAAI,IAAI,EAAE;QAC/B1zL,SAAS,CAAClxD,SAAS,GAAGkxD,SAAS,CAAC0zL,SAAS;QAEzC,IAAIxlU,IAAqC,EAAE;UACzCsvJ,iEAAmB,CAAC,WAAW,EAAE,WAAW,CAAC;QAC/C;MACF;MAEA01K,cAAc,CAAClzL,SAAS,CAACnxJ,KAAK,CAAC;MAC/B,IAAI6H,IAAI,GAAGspJ,SAAS,CAACtpJ,IAAI;MAEzB,IAAIA,IAAI,IAAI,CAAC6jT,sEAAY,CAAC7jT,IAAI,CAAC,EAAE;QAC/B,KAAK,IAAI5K,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG4K,IAAI,CAACnK,MAAM,EAAET,CAAC,EAAE,EAAE;UACpConV,cAAc,CAACx8U,IAAI,CAAC5K,CAAC,CAAC,CAAC;QACzB;MACF;MAEA,IAAIk0J,SAAS,CAAC2zL,WAAW,IAAI,IAAI,EAAE;QACjC3zL,SAAS,CAACzrD,QAAQ,GAAGyrD,SAAS,CAACzrD,QAAQ,IAAI,CAAC,CAAC;QAE7C,IAAIyrD,SAAS,CAACzrD,QAAQ,CAAC02D,SAAS,GAAG,IAAI,EAAE;UACvC,IAAI/8I,IAAqC,EAAE;YACzCsvJ,iEAAmB,CAAC,aAAa,EAAE,oBAAoB,CAAC;UAC1D;UAEAxd,SAAS,CAACzrD,QAAQ,CAAC02D,SAAS,GAAGjL,SAAS,CAAC2zL,WAAW;QACtD;MACF;IACF,CAAC,MAAM,IAAI7uO,UAAU,KAAK,OAAO,EAAE;MACjC,IAAI8uO,YAAY,GAAGvmV,GAAG,CAAC2yJ,SAAS,EAAE,eAAe,CAAC;MAClD4zL,YAAY,IAAI,IAAI,IAAItmV,GAAG,CAAC0yJ,SAAS,EAAE,iBAAiB,EAAE4zL,YAAY,CAAC;IACzE,CAAC,MAAM,IAAI9uO,UAAU,KAAK,KAAK,EAAE;MAC/BkuO,kBAAkB,CAAChzL,SAAS,CAAC;MAC7BgzL,kBAAkB,CAAChzL,SAAS,CAACv9D,eAAe,CAAC;MAC7CuwP,kBAAkB,CAAChzL,SAAS,CAACzrD,QAAQ,CAAC;MACtC,IAAI79F,IAAI,GAAGspJ,SAAS,CAACtpJ,IAAI;MAEzB,IAAIA,IAAI,IAAI,CAAC6jT,sEAAY,CAAC7jT,IAAI,CAAC,EAAE;QAC/B,KAAK,IAAI5K,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG4K,IAAI,CAACnK,MAAM,EAAET,CAAC,EAAE,EAAE;UACpC,IAAI,OAAO4K,IAAI,CAAC5K,CAAC,CAAC,KAAK,QAAQ,EAAE;YAC/BknV,kBAAkB,CAACt8U,IAAI,CAAC5K,CAAC,CAAC,CAAC;YAC3BknV,kBAAkB,CAACt8U,IAAI,CAAC5K,CAAC,CAAC,IAAI4K,IAAI,CAAC5K,CAAC,CAAC,CAACyoG,QAAQ,CAAC;UACjD;QACF;MACF;IACF,CAAC,MAAM,IAAIuQ,UAAU,KAAK,UAAU,EAAE;MACpC,IAAI+uO,eAAe,GAAG7zL,SAAS,CAAC6zL,eAAe;MAE/C,IAAIA,eAAe,EAAE;QACnB7zL,SAAS,CAACzrD,QAAQ,GAAGyrD,SAAS,CAACzrD,QAAQ,IAAI,CAAC,CAAC;QAE7C,IAAI,CAACyrD,SAAS,CAACzrD,QAAQ,CAACyG,KAAK,EAAE;UAC7BglD,SAAS,CAACzrD,QAAQ,CAACyG,KAAK,GAAG64O,eAAe;UAE1C,IAAI3lU,IAAqC,EAAE;YACzCsvJ,iEAAmB,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,UAAU,CAAC;UACtE;QACF;MACF;MAEA21K,mBAAmB,CAACnzL,SAAS,CAAC;MAC9BszL,YAAY,CAACtzL,SAAS,CAACtpJ,IAAI,EAAEy8U,mBAAmB,CAAC;IACnD,CAAC,MAAM,IAAIruO,UAAU,KAAK,OAAO,IAAIA,UAAU,KAAK,QAAQ,EAAE;MAC5DsuO,gBAAgB,CAACpzL,SAAS,CAAC,CAAC,CAAC;IAC/B,CAAC,MAAM,IAAIl7C,UAAU,KAAK,KAAK,EAAE;MAC/B,IAAIk7C,SAAS,CAACoH,OAAO,IAAI,CAACpH,SAAS,CAACvrJ,GAAG,EAAE;QACvC,IAAIyZ,IAAqC,EAAE;UACzCsvJ,iEAAmB,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC;QAC9C;QAEAxd,SAAS,CAACvrJ,GAAG,GAAGurJ,SAAS,CAACoH,OAAO;MACnC;MAEA,IAAIpH,SAAS,CAAC8zL,WAAW,EAAE;QACzB,IAAI5lU,IAAqC,EAAE;UACzCggM,0DAAY,CAAC,oCAAoC,CAAC;QACpD;QAEA93H,kEAAQ,CAAC4pE,SAAS,EAAEA,SAAS,CAAC8zL,WAAW,CAAC;MAC5C;IACF;IAEA,IAAI9zL,SAAS,CAAC+zL,cAAc,IAAI,IAAI,EAAE;MACpC/zL,SAAS,CAACzrD,QAAQ,GAAGyrD,SAAS,CAACzrD,QAAQ,IAAI,CAAC,CAAC;MAE7C,IAAIyrD,SAAS,CAACzrD,QAAQ,IAAIyrD,SAAS,CAACzrD,QAAQ,CAACpkB,KAAK,IAAI,IAAI,EAAE;QAC1D,IAAIjiE,IAAqC,EAAE;UACzCsvJ,iEAAmB,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;QACzD;QAEAxd,SAAS,CAACzrD,QAAQ,CAACpkB,KAAK,GAAG6vE,SAAS,CAAC+zL,cAAc;MACrD;IACF;IAEAnB,sBAAsB,CAAC5yL,SAAS,CAAC;EACnC,CAAC,CAAC,CAAC,CAAC;;EAEJ,IAAIhuD,MAAM,CAACgiP,SAAS,EAAE;IACpBhiP,MAAM,CAACwkC,SAAS,GAAGxkC,MAAM,CAACgiP,SAAS;EACrC;EAEAhmQ,8DAAI,CAAC8kQ,uBAAuB,EAAE,UAAUmB,aAAa,EAAE;IACrD,IAAIxyU,OAAO,GAAGuwF,MAAM,CAACiiP,aAAa,CAAC;IAEnC,IAAIxyU,OAAO,EAAE;MACX,IAAI,CAAC5E,iEAAO,CAAC4E,OAAO,CAAC,EAAE;QACrBA,OAAO,GAAG,CAACA,OAAO,CAAC;MACrB;MAEAusE,8DAAI,CAACvsE,OAAO,EAAE,UAAUuwF,MAAM,EAAE;QAC9B4gP,sBAAsB,CAAC5gP,MAAM,CAAC;MAChC,CAAC,CAAC;IACJ;EACF,CAAC,CAAC;AACJ;;;;;;;;;;;;;;;;;;AC/SA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACmD;AACF;AACqB;AACtE,IAAIhkB,IAAI,GAAGwmB,0DAAW;AACtB,IAAIjqB,QAAQ,GAAGiqB,8DAAe;AAC9B,IAAI0/O,eAAe,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,CAAC;AAE9G,SAASC,kBAAkBA,CAACvzP,GAAG,EAAE;EAC/B,IAAIwzP,YAAY,GAAGxzP,GAAG,IAAIA,GAAG,CAACwC,SAAS;EAEvC,IAAI,CAACgxP,YAAY,EAAE;IACjB;EACF;EAEA,KAAK,IAAItoV,CAAC,GAAG,CAAC,EAAE+qF,GAAG,GAAGq9P,eAAe,CAAC3nV,MAAM,EAAET,CAAC,GAAG+qF,GAAG,EAAE/qF,CAAC,EAAE,EAAE;IAC1D,IAAI0qB,SAAS,GAAG09T,eAAe,CAACpoV,CAAC,CAAC;IAClC,IAAIuoV,kBAAkB,GAAGD,YAAY,CAAC/pO,MAAM;IAC5C,IAAIiqO,oBAAoB,GAAGF,YAAY,CAAC7/O,QAAQ;IAEhD,IAAI8/O,kBAAkB,IAAIA,kBAAkB,CAAC79T,SAAS,CAAC,EAAE;MACvD,IAAItI,IAAqC,EAAE;QACzCsvJ,iEAAmB,CAAC,mBAAmB,GAAGhnJ,SAAS,EAAEA,SAAS,CAAC;MACjE;MAEAoqE,GAAG,CAACpqE,SAAS,CAAC,GAAGoqE,GAAG,CAACpqE,SAAS,CAAC,IAAI,CAAC,CAAC;MAErC,IAAI,CAACoqE,GAAG,CAACpqE,SAAS,CAAC,CAAC6zF,MAAM,EAAE;QAC1BzpB,GAAG,CAACpqE,SAAS,CAAC,CAAC6zF,MAAM,GAAGgqO,kBAAkB,CAAC79T,SAAS,CAAC;MACvD,CAAC,MAAM;QACLg+E,2DAAY,CAAC5T,GAAG,CAACpqE,SAAS,CAAC,CAAC6zF,MAAM,EAAEgqO,kBAAkB,CAAC79T,SAAS,CAAC,CAAC;MACpE;MAEA69T,kBAAkB,CAAC79T,SAAS,CAAC,GAAG,IAAI;IACtC;IAEA,IAAI89T,oBAAoB,IAAIA,oBAAoB,CAAC99T,SAAS,CAAC,EAAE;MAC3D,IAAItI,IAAqC,EAAE;QACzCsvJ,iEAAmB,CAAC,qBAAqB,GAAGhnJ,SAAS,EAAE,WAAW,GAAGA,SAAS,CAAC;MACjF;MAEAoqE,GAAG,CAACpqE,SAAS,CAAC,GAAGoqE,GAAG,CAACpqE,SAAS,CAAC,IAAI,CAAC,CAAC;MAErC,IAAI,CAACoqE,GAAG,CAACpqE,SAAS,CAAC,CAAC+9E,QAAQ,EAAE;QAC5B3T,GAAG,CAACpqE,SAAS,CAAC,CAAC+9E,QAAQ,GAAG+/O,oBAAoB,CAAC99T,SAAS,CAAC;MAC3D,CAAC,MAAM;QACLg+E,2DAAY,CAAC5T,GAAG,CAACpqE,SAAS,CAAC,CAAC+9E,QAAQ,EAAE+/O,oBAAoB,CAAC99T,SAAS,CAAC,CAAC;MACxE;MAEA89T,oBAAoB,CAAC99T,SAAS,CAAC,GAAG,IAAI;IACxC;EACF;AACF;AAEA,SAAS+9T,qBAAqBA,CAAC3zP,GAAG,EAAE4zP,OAAO,EAAEC,SAAS,EAAE;EACtD,IAAI7zP,GAAG,IAAIA,GAAG,CAAC4zP,OAAO,CAAC,KAAK5zP,GAAG,CAAC4zP,OAAO,CAAC,CAACnqO,MAAM,IAAIzpB,GAAG,CAAC4zP,OAAO,CAAC,CAACjgP,QAAQ,CAAC,EAAE;IACzE,IAAImgP,SAAS,GAAG9zP,GAAG,CAAC4zP,OAAO,CAAC,CAACnqO,MAAM;IACnC,IAAIsqO,WAAW,GAAG/zP,GAAG,CAAC4zP,OAAO,CAAC,CAACjgP,QAAQ;IAEvC,IAAImgP,SAAS,EAAE;MACb,IAAIxmU,IAAqC,EAAE;QACzC;QACAggM,0DAAY,CAAC,wBAAwB,GAAGsmI,OAAO,GAAG,sEAAsE,GAAGA,OAAO,GAAG,gBAAgB,CAAC;MACxJ,CAAC,CAAC;;MAGF,IAAIC,SAAS,EAAE;QACb7zP,GAAG,CAAC4zP,OAAO,CAAC,CAACnqO,MAAM,GAAGzpB,GAAG,CAAC4zP,OAAO,CAAC,CAACjgP,QAAQ,GAAG,IAAI;QAClDC,8DAAe,CAAC5T,GAAG,CAAC4zP,OAAO,CAAC,EAAEE,SAAS,CAAC;MAC1C,CAAC,MAAM;QACL9zP,GAAG,CAAC4zP,OAAO,CAAC,GAAGE,SAAS;MAC1B;IACF;IAEA,IAAIC,WAAW,EAAE;MACf,IAAIzmU,IAAqC,EAAE;QACzCggM,0DAAY,CAACsmI,OAAO,GAAG,yCAAyC,GAAGA,OAAO,GAAG,YAAY,CAAC;MAC5F;MAEA5zP,GAAG,CAAC2T,QAAQ,GAAG3T,GAAG,CAAC2T,QAAQ,IAAI,CAAC,CAAC;MACjC3T,GAAG,CAAC2T,QAAQ,CAACigP,OAAO,CAAC,GAAGG,WAAW,CAAC,CAAC;MACrC;;MAEA,IAAIA,WAAW,CAAC35O,KAAK,EAAE;QACrBpa,GAAG,CAAC2T,QAAQ,CAACyG,KAAK,GAAG25O,WAAW,CAAC35O,KAAK;MACxC;MAEA,IAAI25O,WAAW,CAAC15O,SAAS,EAAE;QACzBra,GAAG,CAAC2T,QAAQ,CAAC0G,SAAS,GAAG05O,WAAW,CAAC15O,SAAS;MAChD;IACF;EACF;AACF;AAEA,SAAS25O,qBAAqBA,CAACh0P,GAAG,EAAE;EAClC2zP,qBAAqB,CAAC3zP,GAAG,EAAE,WAAW,CAAC;EACvC2zP,qBAAqB,CAAC3zP,GAAG,EAAE,WAAW,CAAC;EACvC2zP,qBAAqB,CAAC3zP,GAAG,EAAE,WAAW,CAAC;EACvC2zP,qBAAqB,CAAC3zP,GAAG,EAAE,OAAO,CAAC;EACnC2zP,qBAAqB,CAAC3zP,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;;EAEzC2zP,qBAAqB,CAAC3zP,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;;EAE1C2zP,qBAAqB,CAAC3zP,GAAG,EAAE,WAAW,CAAC;AACzC;AAEA,SAASi0P,eAAeA,CAACj0P,GAAG,EAAE7O,QAAQ,EAAE;EACtC;EACA,IAAI+iQ,cAAc,GAAGvqQ,QAAQ,CAACqW,GAAG,CAAC,IAAIA,GAAG,CAAC7O,QAAQ,CAAC;EACnD,IAAIu+B,SAAS,GAAG/lC,QAAQ,CAACuqQ,cAAc,CAAC,IAAIA,cAAc,CAACxkO,SAAS;EAEpE,IAAIA,SAAS,EAAE;IACb,IAAIpiG,IAAqC,EAAE;MACzC;MACAggM,0DAAY,CAAC,yBAAyB,GAAGn8H,QAAQ,GAAG,0EAA0E,GAAGA,QAAQ,GAAG,gBAAgB,CAAC;IAC/J;IAEA,KAAK,IAAIjmF,CAAC,GAAG,CAAC,EAAE+qF,GAAG,GAAG45D,qEAAmC,EAAE3kJ,CAAC,GAAG+qF,GAAG,EAAE/qF,CAAC,EAAE,EAAE;MACvE,IAAIkpV,YAAY,GAAGvkM,8DAA4B,CAAC3kJ,CAAC,CAAC;MAElD,IAAIwkH,SAAS,CAACpkH,cAAc,CAAC8oV,YAAY,CAAC,EAAE;QAC1CF,cAAc,CAACE,YAAY,CAAC,GAAG1kO,SAAS,CAAC0kO,YAAY,CAAC;MACxD;IACF;EACF;AACF;AAEA,SAASC,qBAAqBA,CAACr0P,GAAG,EAAE;EAClC,IAAIA,GAAG,EAAE;IACPg0P,qBAAqB,CAACh0P,GAAG,CAAC;IAC1Bi0P,eAAe,CAACj0P,GAAG,EAAE,OAAO,CAAC;IAC7BA,GAAG,CAAC2T,QAAQ,IAAIsgP,eAAe,CAACj0P,GAAG,CAAC2T,QAAQ,EAAE,OAAO,CAAC;EACxD;AACF;AAEA,SAAS2gP,aAAaA,CAACl1L,SAAS,EAAE;EAChC,IAAI,CAACz1E,QAAQ,CAACy1E,SAAS,CAAC,EAAE;IACxB;EACF;EAEAm0L,kBAAkB,CAACn0L,SAAS,CAAC;EAC7B40L,qBAAqB,CAAC50L,SAAS,CAAC;EAChC60L,eAAe,CAAC70L,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;;EAErC60L,eAAe,CAAC70L,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;;EAE1C60L,eAAe,CAAC70L,SAAS,EAAE,WAAW,CAAC;EAEvC,IAAIA,SAAS,CAACzrD,QAAQ,EAAE;IACtBsgP,eAAe,CAAC70L,SAAS,CAACzrD,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;;IAE9CsgP,eAAe,CAAC70L,SAAS,CAACzrD,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;;IAEnDsgP,eAAe,CAAC70L,SAAS,CAACzrD,QAAQ,EAAE,WAAW,CAAC;EAClD;EAEA,IAAIi1I,SAAS,GAAGxpF,SAAS,CAACwpF,SAAS;EAEnC,IAAIA,SAAS,EAAE;IACb2qG,kBAAkB,CAAC3qG,SAAS,CAAC;IAC7ByrG,qBAAqB,CAACzrG,SAAS,CAAC;EAClC;EAEA,IAAID,QAAQ,GAAGvpF,SAAS,CAACupF,QAAQ;EAEjC,IAAIA,QAAQ,EAAE;IACZ4qG,kBAAkB,CAAC5qG,QAAQ,CAAC;IAC5B0rG,qBAAqB,CAAC1rG,QAAQ,CAAC;EACjC;EAEA,IAAID,QAAQ,GAAGtpF,SAAS,CAACspF,QAAQ;EAEjC,IAAIA,QAAQ,EAAE;IACZ2rG,qBAAqB,CAAC3rG,QAAQ,CAAC;EACjC;EAEA,IAAI5yO,IAAI,GAAGspJ,SAAS,CAACtpJ,IAAI,CAAC,CAAC;EAC3B;;EAEA,IAAIspJ,SAAS,CAACtgJ,IAAI,KAAK,OAAO,EAAE;IAC9BhJ,IAAI,GAAGA,IAAI,IAAIspJ,SAAS,CAAC76B,KAAK;IAC9B,IAAIO,QAAQ,GAAGs6B,SAAS,CAACj7B,KAAK,IAAIi7B,SAAS,CAACl7B,KAAK;IAEjD,IAAIY,QAAQ,IAAI,CAAClxB,kEAAmB,CAACkxB,QAAQ,CAAC,EAAE;MAC9C,KAAK,IAAI55H,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG45H,QAAQ,CAACn5H,MAAM,EAAET,CAAC,EAAE,EAAE;QACxCmpV,qBAAqB,CAACvvN,QAAQ,CAAC55H,CAAC,CAAC,CAAC;MACpC;IACF;IAEA0oG,0DAAW,CAACwrD,SAAS,CAACljE,UAAU,EAAE,UAAU8D,GAAG,EAAE;MAC/Cg0P,qBAAqB,CAACh0P,GAAG,CAAC;IAC5B,CAAC,CAAC;EACJ;EAEA,IAAIlqF,IAAI,IAAI,CAAC89F,kEAAmB,CAAC99F,IAAI,CAAC,EAAE;IACtC,KAAK,IAAI5K,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG4K,IAAI,CAACnK,MAAM,EAAET,CAAC,EAAE,EAAE;MACpCmpV,qBAAqB,CAACv+U,IAAI,CAAC5K,CAAC,CAAC,CAAC;IAChC;EACF,CAAC,CAAC;;EAGF09O,SAAS,GAAGxpF,SAAS,CAACwpF,SAAS;EAE/B,IAAIA,SAAS,IAAIA,SAAS,CAAC9yO,IAAI,EAAE;IAC/B,IAAIkxO,MAAM,GAAG4B,SAAS,CAAC9yO,IAAI;IAE3B,KAAK,IAAI5K,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG87O,MAAM,CAACr7O,MAAM,EAAET,CAAC,EAAE,EAAE;MACtCmpV,qBAAqB,CAACrtG,MAAM,CAAC97O,CAAC,CAAC,CAAC;IAClC;EACF,CAAC,CAAC;;EAGFy9O,QAAQ,GAAGvpF,SAAS,CAACupF,QAAQ;EAE7B,IAAIA,QAAQ,IAAIA,QAAQ,CAAC7yO,IAAI,EAAE;IAC7B,IAAIkwO,MAAM,GAAG2C,QAAQ,CAAC7yO,IAAI;IAE1B,KAAK,IAAI5K,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG86O,MAAM,CAACr6O,MAAM,EAAET,CAAC,EAAE,EAAE;MACtC,IAAI0oG,6DAAc,CAACoyI,MAAM,CAAC96O,CAAC,CAAC,CAAC,EAAE;QAC7BmpV,qBAAqB,CAACruG,MAAM,CAAC96O,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnCmpV,qBAAqB,CAACruG,MAAM,CAAC96O,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;MACrC,CAAC,MAAM;QACLmpV,qBAAqB,CAACruG,MAAM,CAAC96O,CAAC,CAAC,CAAC;MAClC;IACF;EACF,CAAC,CAAC;;EAGF,IAAIk0J,SAAS,CAACtgJ,IAAI,KAAK,OAAO,EAAE;IAC9Bm1U,eAAe,CAAC70L,SAAS,EAAE,WAAW,CAAC;IACvC60L,eAAe,CAAC70L,SAAS,EAAE,OAAO,CAAC;IACnC60L,eAAe,CAAC70L,SAAS,EAAE,QAAQ,CAAC;EACtC,CAAC,MAAM,IAAIA,SAAS,CAACtgJ,IAAI,KAAK,SAAS,EAAE;IACvC60U,qBAAqB,CAACv0L,SAAS,CAAC0sB,UAAU,EAAE,WAAW,CAAC;IACxDl4E,0DAAW,CAACwrD,SAAS,CAAC+S,MAAM,EAAE,UAAUnyE,GAAG,EAAE;MAC3Cg0P,qBAAqB,CAACh0P,GAAG,CAAC;IAC5B,CAAC,CAAC;EACJ,CAAC,MAAM,IAAIo/D,SAAS,CAACtgJ,IAAI,KAAK,MAAM,EAAE;IACpCk1U,qBAAqB,CAAC50L,SAAS,CAACuiB,MAAM,CAAC;EACzC,CAAC,CAAC;AAEJ;;AAEA,SAAS4yK,KAAKA,CAACppV,CAAC,EAAE;EAChB,OAAOyoG,6DAAc,CAACzoG,CAAC,CAAC,GAAGA,CAAC,GAAGA,CAAC,GAAG,CAACA,CAAC,CAAC,GAAG,EAAE;AAC7C;AAEA,SAASqpV,KAAKA,CAACrpV,CAAC,EAAE;EAChB,OAAO,CAACyoG,6DAAc,CAACzoG,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,KAAK,CAAC,CAAC;AAC7C;AAEe,SAASspV,iBAAiBA,CAACrjP,MAAM,EAAEwhP,OAAO,EAAE;EACzDxlQ,IAAI,CAACmnQ,KAAK,CAACnjP,MAAM,CAACxT,MAAM,CAAC,EAAE,UAAUwhE,SAAS,EAAE;IAC9Cz1E,QAAQ,CAACy1E,SAAS,CAAC,IAAIk1L,aAAa,CAACl1L,SAAS,CAAC;EACjD,CAAC,CAAC;EACF,IAAIwS,IAAI,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,OAAO,CAAC;EAC/FghL,OAAO,IAAIhhL,IAAI,CAACnjK,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,CAAC;EACxE2+E,IAAI,CAACwkF,IAAI,EAAE,UAAUivB,QAAQ,EAAE;IAC7BzzG,IAAI,CAACmnQ,KAAK,CAACnjP,MAAM,CAACyvF,QAAQ,CAAC,CAAC,EAAE,UAAU6zJ,OAAO,EAAE;MAC/C,IAAIA,OAAO,EAAE;QACXT,eAAe,CAACS,OAAO,EAAE,WAAW,CAAC;QACrCT,eAAe,CAACS,OAAO,CAACrwJ,WAAW,EAAE,OAAO,CAAC;MAC/C;IACF,CAAC,CAAC;EACJ,CAAC,CAAC;EACFj3G,IAAI,CAACmnQ,KAAK,CAACnjP,MAAM,CAACo1L,QAAQ,CAAC,EAAE,UAAUmuD,WAAW,EAAE;IAClD,IAAIxuD,mBAAmB,GAAGwuD,WAAW,IAAIA,WAAW,CAACxuD,mBAAmB;IACxE8tD,eAAe,CAAC9tD,mBAAmB,EAAE,WAAW,CAAC;IACjD8tD,eAAe,CAAC9tD,mBAAmB,IAAIA,mBAAmB,CAAC9hG,WAAW,EAAE,OAAO,CAAC;EAClF,CAAC,CAAC;EACFj3G,IAAI,CAACmnQ,KAAK,CAACnjP,MAAM,CAAC8Y,QAAQ,CAAC,EAAE,UAAU0qO,WAAW,EAAE;IAClDjB,qBAAqB,CAACiB,WAAW,EAAE,WAAW,CAAC;IAC/CX,eAAe,CAACW,WAAW,EAAE,UAAU,CAAC;IACxCX,eAAe,CAACW,WAAW,EAAE,YAAY,CAAC;IAC1CX,eAAe,CAACW,WAAW,EAAE,WAAW,CAAC;EAC3C,CAAC,CAAC,CAAC,CAAC;;EAEJxnQ,IAAI,CAACmnQ,KAAK,CAACnjP,MAAM,CAACmgE,KAAK,CAAC,EAAE,UAAUsjL,QAAQ,EAAE;IAC5CZ,eAAe,CAACY,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;;IAEnC,IAAIA,QAAQ,CAACrjV,IAAI,IAAIqjV,QAAQ,CAACh0J,QAAQ,IAAI,IAAI,EAAE;MAC9Cg0J,QAAQ,CAACh0J,QAAQ,GAAGg0J,QAAQ,CAACrjV,IAAI;MACjC,OAAOqjV,QAAQ,CAACrjV,IAAI;MAEpB,IAAI8b,IAAqC,EAAE;QACzCggM,0DAAY,CAAC,+DAA+D,CAAC;MAC/E;IACF;IAEA,IAAIunI,QAAQ,CAACvpE,OAAO,IAAI,IAAI,IAAIupE,QAAQ,CAACnrD,WAAW,IAAI,IAAI,EAAE;MAC5DmrD,QAAQ,CAACnrD,WAAW,GAAGmrD,QAAQ,CAACvpE,OAAO;MACvC,OAAOupE,QAAQ,CAACvpE,OAAO;MAEvB,IAAIh+P,IAAqC,EAAE;QACzCggM,0DAAY,CAAC,qEAAqE,CAAC;MACrF;IACF;IAEA,IAAIhgM,IAAqC,EAAE;MACzC8/D,IAAI,CAACynQ,QAAQ,CAACvjL,SAAS,EAAE,UAAU+3H,YAAY,EAAE;QAC/C,IAAIA,YAAY,CAAClhQ,IAAI,EAAE;UACrBy0I,iEAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC;QACxD;MACF,CAAC,CAAC;IACJ;EACF,CAAC,CAAC;EACFxvF,IAAI,CAACmnQ,KAAK,CAACnjP,MAAM,CAAC4Y,GAAG,CAAC,EAAE,UAAU8qO,MAAM,EAAE;IACxC,IAAInrQ,QAAQ,CAACmrQ,MAAM,CAAC,EAAE;MACpBT,qBAAqB,CAACS,MAAM,CAAC;MAC7B1nQ,IAAI,CAACmnQ,KAAK,CAACO,MAAM,CAACtxL,OAAO,CAAC,EAAE,UAAUuxL,SAAS,EAAE;QAC/CV,qBAAqB,CAACU,SAAS,CAAC;MAClC,CAAC,CAAC;IACJ;EACF,CAAC,CAAC;EACF3nQ,IAAI,CAACmnQ,KAAK,CAACnjP,MAAM,CAACwkJ,QAAQ,CAAC,EAAE,UAAUD,WAAW,EAAE;IAClD0+F,qBAAqB,CAAC1+F,WAAW,CAAC;IAClCg+F,qBAAqB,CAACh+F,WAAW,EAAE,OAAO,CAAC;IAC3Cg+F,qBAAqB,CAACh+F,WAAW,EAAE,WAAW,CAAC;IAC/Cg+F,qBAAqB,CAACh+F,WAAW,EAAE,cAAc,EAAE,IAAI,CAAC;IACxD,IAAI7/O,IAAI,GAAG6/O,WAAW,CAAC7/O,IAAI;IAC3B89F,6DAAc,CAAC99F,IAAI,CAAC,IAAI89F,0DAAW,CAAC99F,IAAI,EAAE,UAAU8zF,IAAI,EAAE;MACxD,IAAIgK,8DAAe,CAAChK,IAAI,CAAC,EAAE;QACzB+pP,qBAAqB,CAAC/pP,IAAI,EAAE,OAAO,CAAC;QACpC+pP,qBAAqB,CAAC/pP,IAAI,EAAE,WAAW,CAAC;MAC1C;IACF,CAAC,CAAC;EACJ,CAAC,CAAC;EACFxc,IAAI,CAACmnQ,KAAK,CAACnjP,MAAM,CAACqqG,OAAO,CAAC,EAAE,UAAUu5I,UAAU,EAAE;IAChDrB,qBAAqB,CAACqB,UAAU,EAAE,WAAW,CAAC;IAC9C5nQ,IAAI,CAAC4nQ,UAAU,CAACt5I,OAAO,EAAE,UAAU27C,UAAU,EAAE;MAC7Cs8F,qBAAqB,CAACt8F,UAAU,EAAE,WAAW,CAAC;IAChD,CAAC,CAAC;EACJ,CAAC,CAAC;EACF48F,eAAe,CAACO,KAAK,CAACpjP,MAAM,CAACizF,WAAW,CAAC,EAAE,OAAO,CAAC;EACnD4vJ,eAAe,CAACO,KAAK,CAACpjP,MAAM,CAACu9C,OAAO,CAAC,CAAC01C,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;EAC7D;AACF;;;;;;;;;;;;;;;ACzXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAAS9oE,UAAUA,CAACrX,UAAU,EAAE;EAC7C,OAAO;IACLA,UAAU,EAAEA,UAAU;IACtBh+E,KAAK,EAAE,SAAAA,CAAU6wD,WAAW,EAAEzM,OAAO,EAAE;MACrC,IAAI4hD,YAAY,GAAG5hD,OAAO,CAAC6hD,cAAc,CAAC;QACxCnwB,QAAQ,EAAE;MACZ,CAAC,CAAC;MAEF,IAAI,CAACkwB,YAAY,IAAI,CAACA,YAAY,CAACvgI,MAAM,EAAE;QACzC;MACF;MAEA,IAAImK,IAAI,GAAGihF,WAAW,CAACgI,OAAO,CAAC,CAAC;MAChCjpF,IAAI,CAACw2H,UAAU,CAAC,UAAUp0C,GAAG,EAAE;QAC7B,IAAI1mF,IAAI,GAAGsE,IAAI,CAACyiH,OAAO,CAACrgC,GAAG,CAAC,CAAC,CAAC;;QAE9B,KAAK,IAAIhtF,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGghI,YAAY,CAACvgI,MAAM,EAAET,CAAC,EAAE,EAAE;UAC5C;UACA,IAAI,CAACghI,YAAY,CAAChhI,CAAC,CAAC,CAACqhI,UAAU,CAAC/6H,IAAI,CAAC,EAAE;YACrC,OAAO,KAAK;UACd;QACF;QAEA,OAAO,IAAI;MACb,CAAC,CAAC;IACJ;EACF,CAAC;AACH;;;;;;;;;;;;;;;;ACrEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACgE;AAChE,IAAIyjV,QAAQ,GAAG;EACbxrG,OAAO,EAAE,SAAAA,CAAUzqN,KAAK,EAAE;IACxB,IAAI23F,GAAG,GAAG,CAAC;IACX,IAAIjgC,KAAK,GAAG,CAAC;IAEb,KAAK,IAAIxrF,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG8zB,KAAK,CAACrzB,MAAM,EAAET,CAAC,EAAE,EAAE;MACrC,IAAI,CAAC41B,KAAK,CAAC9B,KAAK,CAAC9zB,CAAC,CAAC,CAAC,EAAE;QACpByrH,GAAG,IAAI33F,KAAK,CAAC9zB,CAAC,CAAC;QACfwrF,KAAK,EAAE;MACT;IACF,CAAC,CAAC;;IAGF,OAAOA,KAAK,KAAK,CAAC,GAAGgT,GAAG,GAAGitB,GAAG,GAAGjgC,KAAK;EACxC,CAAC;EACDigC,GAAG,EAAE,SAAAA,CAAU33F,KAAK,EAAE;IACpB,IAAI23F,GAAG,GAAG,CAAC;IAEX,KAAK,IAAIzrH,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG8zB,KAAK,CAACrzB,MAAM,EAAET,CAAC,EAAE,EAAE;MACrC;MACAyrH,GAAG,IAAI33F,KAAK,CAAC9zB,CAAC,CAAC,IAAI,CAAC;IACtB;IAEA,OAAOyrH,GAAG;EACZ,CAAC;EACD5lH,GAAG,EAAE,SAAAA,CAAUiuB,KAAK,EAAE;IACpB,IAAIjuB,GAAG,GAAG,CAACk4E,QAAQ;IAEnB,KAAK,IAAI/9E,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG8zB,KAAK,CAACrzB,MAAM,EAAET,CAAC,EAAE,EAAE;MACrC8zB,KAAK,CAAC9zB,CAAC,CAAC,GAAG6F,GAAG,KAAKA,GAAG,GAAGiuB,KAAK,CAAC9zB,CAAC,CAAC,CAAC;IACpC,CAAC,CAAC;;IAGF,OAAOgqF,QAAQ,CAACnkF,GAAG,CAAC,GAAGA,GAAG,GAAG24F,GAAG;EAClC,CAAC;EACD3gB,GAAG,EAAE,SAAAA,CAAU/pD,KAAK,EAAE;IACpB,IAAI+pD,GAAG,GAAGE,QAAQ;IAElB,KAAK,IAAI/9E,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG8zB,KAAK,CAACrzB,MAAM,EAAET,CAAC,EAAE,EAAE;MACrC8zB,KAAK,CAAC9zB,CAAC,CAAC,GAAG69E,GAAG,KAAKA,GAAG,GAAG/pD,KAAK,CAAC9zB,CAAC,CAAC,CAAC;IACpC,CAAC,CAAC;;IAGF,OAAOgqF,QAAQ,CAACnM,GAAG,CAAC,GAAGA,GAAG,GAAG2gB,GAAG;EAClC,CAAC;EACD;EACA;EACAwrP,OAAO,EAAE,SAAAA,CAAUl2T,KAAK,EAAE;IACxB,OAAOA,KAAK,CAAC,CAAC,CAAC;EACjB;AACF,CAAC;AAED,IAAIm2T,YAAY,GAAG,SAAAA,CAAUn2T,KAAK,EAAE;EAClC,OAAOtwB,IAAI,CAACosG,KAAK,CAAC97E,KAAK,CAACrzB,MAAM,GAAG,CAAC,CAAC;AACrC,CAAC;AAEc,SAASqvG,UAAUA,CAACkJ,UAAU,EAAE;EAC7C,OAAO;IACLA,UAAU,EAAEA,UAAU;IACtB;IACA;IACAh+E,KAAK,EAAE,SAAAA,CAAU6wD,WAAW,EAAEzM,OAAO,EAAErhD,GAAG,EAAE;MAC1C,IAAInzB,IAAI,GAAGihF,WAAW,CAACgI,OAAO,CAAC,CAAC;MAChC,IAAI0wD,QAAQ,GAAG14D,WAAW,CAACtqF,GAAG,CAAC,UAAU,CAAC;MAC1C,IAAI0gG,QAAQ,GAAGpW,WAAW,CAACgP,gBAAgB;MAC3C,IAAIrP,KAAK,GAAG5gF,IAAI,CAAC4gF,KAAK,CAAC,CAAC,CAAC,CAAC;;MAE1B,IAAIA,KAAK,GAAG,EAAE,IAAIyW,QAAQ,CAACruF,IAAI,KAAK,aAAa,IAAI2wI,QAAQ,EAAE;QAC7D,IAAIprD,QAAQ,GAAG8I,QAAQ,CAAC7I,WAAW,CAAC,CAAC;QACrC,IAAIuS,SAAS,GAAG1J,QAAQ,CAACE,YAAY,CAAChJ,QAAQ,CAAC;QAC/C,IAAIqG,MAAM,GAAGrG,QAAQ,CAACsG,SAAS,CAAC,CAAC;QACjC,IAAIowM,GAAG,GAAG9xQ,GAAG,CAAC6kF,mBAAmB,CAAC,CAAC,CAAC,CAAC;;QAErC,IAAIjuG,IAAI,GAAGnR,IAAI,CAACo6F,GAAG,CAAC4B,MAAM,CAAC,CAAC,CAAC,GAAGA,MAAM,CAAC,CAAC,CAAC,CAAC,IAAIqwM,GAAG,IAAI,CAAC,CAAC;QACvD,IAAI6U,IAAI,GAAGlhT,IAAI,CAACosG,KAAK,CAACpkB,KAAK,GAAG72E,IAAI,CAAC;QAEnC,IAAIq1E,QAAQ,CAAC06N,IAAI,CAAC,IAAIA,IAAI,GAAG,CAAC,EAAE;UAC9B,IAAIngK,QAAQ,KAAK,MAAM,EAAE;YACvB14D,WAAW,CAACqvE,OAAO,CAACtwJ,IAAI,CAAC45S,cAAc,CAAC55S,IAAI,CAACwzF,YAAY,CAACuN,SAAS,CAAC7c,GAAG,CAAC,EAAE,CAAC,GAAG41N,IAAI,CAAC,CAAC;UACtF;UAEA,IAAIwlC,OAAO,GAAG,KAAK,CAAC;UAEpB,IAAIj0O,kEAAQ,CAACsuC,QAAQ,CAAC,EAAE;YACtB2lM,OAAO,GAAGH,QAAQ,CAACxlM,QAAQ,CAAC;UAC9B,CAAC,MAAM,IAAI/lE,oEAAU,CAAC+lE,QAAQ,CAAC,EAAE;YAC/B2lM,OAAO,GAAG3lM,QAAQ;UACpB;UAEA,IAAI2lM,OAAO,EAAE;YACX;YACAr+P,WAAW,CAACqvE,OAAO,CAACtwJ,IAAI,CAACg7S,UAAU,CAACh7S,IAAI,CAACwzF,YAAY,CAACuN,SAAS,CAAC7c,GAAG,CAAC,EAAE,CAAC,GAAG41N,IAAI,EAAEwlC,OAAO,EAAED,YAAY,CAAC,CAAC;UACzG;QACF;MACF;IACF;EACF,CAAC;AACH;;;;;;;;;;;;;;;;;AC5IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC+D;AACnB,CAAC;AAC7C;AACA;AACA;AACA;;AAEe,SAAStiD,SAASA,CAACvoN,OAAO,EAAE;EACzC,IAAIgrQ,YAAY,GAAGx8P,uEAAa,CAAC,CAAC;EAClCxO,OAAO,CAACwtH,UAAU,CAAC,UAAU/gH,WAAW,EAAE;IACxC,IAAIr1D,KAAK,GAAGq1D,WAAW,CAACtqF,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;;IAEtC,IAAIi1B,KAAK,EAAE;MACT,IAAI6zT,aAAa,GAAGD,YAAY,CAAC7oV,GAAG,CAACi1B,KAAK,CAAC,IAAI4zT,YAAY,CAAC5oV,GAAG,CAACg1B,KAAK,EAAE,EAAE,CAAC;MAC1E,IAAI5rB,IAAI,GAAGihF,WAAW,CAACgI,OAAO,CAAC,CAAC;MAChC,IAAIy2P,SAAS,GAAG;QACd;QACA;QACApzB,oBAAoB,EAAEtsT,IAAI,CAACohJ,kBAAkB,CAAC,sBAAsB,CAAC;QACrEkD,oBAAoB,EAAEtkJ,IAAI,CAACohJ,kBAAkB,CAAC,sBAAsB,CAAC;QACrEwrK,gBAAgB,EAAE5sT,IAAI,CAACohJ,kBAAkB,CAAC,kBAAkB,CAAC;QAC7DyrK,kBAAkB,EAAE7sT,IAAI,CAACohJ,kBAAkB,CAAC,oBAAoB,CAAC;QACjE0rK,gBAAgB,EAAE9sT,IAAI,CAACohJ,kBAAkB,CAAC,kBAAkB,CAAC;QAC7DphJ,IAAI,EAAEA,IAAI;QACVihF,WAAW,EAAEA;MACf,CAAC,CAAC,CAAC;;MAEH,IAAI,CAACy+P,SAAS,CAAC9yB,gBAAgB,IAAI,EAAE8yB,SAAS,CAAC5yB,gBAAgB,IAAI4yB,SAAS,CAAC7yB,kBAAkB,CAAC,EAAE;QAChG;MACF;MAEA4yB,aAAa,CAAC5pV,MAAM,IAAImK,IAAI,CAACm0I,kBAAkB,CAAC,iBAAiB,EAAEsrM,aAAa,CAACA,aAAa,CAAC5pV,MAAM,GAAG,CAAC,CAAC,CAACorF,WAAW,CAAC;MACvHw+P,aAAa,CAAC9mV,IAAI,CAAC+mV,SAAS,CAAC;IAC/B;EACF,CAAC,CAAC;EACFF,YAAY,CAACloQ,IAAI,CAACqoQ,cAAc,CAAC;AACnC;AAEA,SAASA,cAAcA,CAACF,aAAa,EAAE;EACrCnoQ,8DAAI,CAACmoQ,aAAa,EAAE,UAAUG,eAAe,EAAEC,UAAU,EAAE;IACzD,IAAIC,SAAS,GAAG,EAAE;IAClB,IAAIC,SAAS,GAAG,CAACnsP,GAAG,EAAEA,GAAG,CAAC;IAC1B,IAAI4H,IAAI,GAAG,CAACokP,eAAe,CAACtzB,oBAAoB,EAAEszB,eAAe,CAACt7L,oBAAoB,CAAC;IACvF,IAAI07L,UAAU,GAAGJ,eAAe,CAAC5/U,IAAI;IACrC,IAAI8sT,gBAAgB,GAAG8yB,eAAe,CAAC9yB,gBAAgB;IACvD,IAAImzB,aAAa,GAAGL,eAAe,CAAC3+P,WAAW,CAACtqF,GAAG,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,CAAC;IACpF;;IAEAqpV,UAAU,CAACzmC,MAAM,CAAC/9M,IAAI,EAAE,UAAU0kP,EAAE,EAAE1rN,EAAE,EAAEpgD,SAAS,EAAE;MACnD,IAAIysC,GAAG,GAAGm/N,UAAU,CAACrpV,GAAG,CAACipV,eAAe,CAAChzB,gBAAgB,EAAEx4O,SAAS,CAAC,CAAC,CAAC;MACvE;;MAEA,IAAIppD,KAAK,CAAC61F,GAAG,CAAC,EAAE;QACd,OAAOk/N,SAAS;MAClB;MAEA,IAAII,OAAO;MACX,IAAIC,mBAAmB;MAEvB,IAAItzB,gBAAgB,EAAE;QACpBszB,mBAAmB,GAAGJ,UAAU,CAAC1mO,WAAW,CAACllC,SAAS,CAAC;MACzD,CAAC,MAAM;QACL+rQ,OAAO,GAAGH,UAAU,CAACrpV,GAAG,CAACipV,eAAe,CAAC/yB,kBAAkB,EAAEz4O,SAAS,CAAC;MACzE,CAAC,CAAC;;MAGF,IAAIisQ,WAAW,GAAGzsP,GAAG;MAErB,KAAK,IAAIxxF,CAAC,GAAGy9U,UAAU,GAAG,CAAC,EAAEz9U,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;QACxC,IAAIs9U,SAAS,GAAGD,aAAa,CAACr9U,CAAC,CAAC,CAAC,CAAC;;QAElC,IAAI,CAAC0qT,gBAAgB,EAAE;UACrBszB,mBAAmB,GAAGV,SAAS,CAAC1/U,IAAI,CAACs0F,UAAU,CAACorP,SAAS,CAAC7yB,kBAAkB,EAAEszB,OAAO,CAAC;QACxF;QAEA,IAAIC,mBAAmB,IAAI,CAAC,EAAE;UAC5B,IAAInnU,GAAG,GAAGymU,SAAS,CAAC1/U,IAAI,CAACo4S,aAAa,CAACsnC,SAAS,CAACpzB,oBAAoB,EAAE8zB,mBAAmB,CAAC,CAAC,CAAC;;UAE7F,IAAIH,aAAa,KAAK,KAAK,CAAC;UAAA,GACzBA,aAAa,KAAK,UAAU,IAAIhnU,GAAG,GAAG,CAAC,IAAIgnU,aAAa,KAAK,UAAU,IAAIhnU,GAAG,GAAG,CAAC,IAAIgnU,aAAa,KAAK,UAAU,IAAIp/N,GAAG,IAAI,CAAC,IAAI5nG,GAAG,GAAG,CAAC,CAAC;UAAA,GAC1IgnU,aAAa,KAAK,UAAU,IAAIp/N,GAAG,IAAI,CAAC,IAAI5nG,GAAG,GAAG,CAAC,CAAC;UAAA,EACrD;YACE;YACA;YACA;YACA4nG,GAAG,GAAG0+N,wDAAO,CAAC1+N,GAAG,EAAE5nG,GAAG,CAAC;YACvBonU,WAAW,GAAGpnU,GAAG;YACjB;UACF;QACJ;MACF;MAEA6mU,SAAS,CAAC,CAAC,CAAC,GAAGj/N,GAAG;MAClBi/N,SAAS,CAAC,CAAC,CAAC,GAAGO,WAAW;MAC1B,OAAOP,SAAS;IAClB,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ;;;;;;;;;;;;;;;;AC3IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACoD;AACrC,SAASzqL,kBAAkBA,CAACjnD,UAAU,EAAE;EACrD,OAAO;IACLA,UAAU,EAAEA,UAAU;IACtBh+E,KAAK,EAAE,SAAAA,CAAU6wD,WAAW,EAAEzM,OAAO,EAAE;MACrC,IAAIx0E,IAAI,GAAGihF,WAAW,CAACgI,OAAO,CAAC,CAAC;MAChCjpF,IAAI,CAACw2H,UAAU,CAAC,UAAUp0C,GAAG,EAAE;QAC7B;QACA,IAAIid,QAAQ,GAAGr/F,IAAI,CAACwzF,YAAY,CAAC,OAAO,CAAC;QACzC,IAAI8sP,QAAQ,GAAGtgV,IAAI,CAACrJ,GAAG,CAAC0oG,QAAQ,EAAEjd,GAAG,CAAC;QAEtC,IAAI2kC,kEAAQ,CAACu5N,QAAQ,CAAC,IAAI,CAACt1T,KAAK,CAACs1T,QAAQ,CAAC,IAAIA,QAAQ,GAAG,CAAC,EAAE;UAC1D,OAAO,KAAK;QACd;QAEA,OAAO,IAAI;MACb,CAAC,CAAC;IACJ;EACF,CAAC;AACH;;;;;;;;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC0D;AACnD,SAASl7O,OAAOA,CAACxb,SAAS,EAAE;EACjCA,SAAS,CAACowO,eAAe,CAAC,QAAQ,EAAEumB,qEAAa,CAAC;AACpD;;;;;;;;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA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mBAAmBA,CAACuB,IAAI,EAAE;EACjC,IAAII,WAAW,GAAG,CAAC;EAEnB,KAAK,IAAI39V,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGu9V,IAAI,CAAC98V,MAAM,EAAE,EAAET,CAAC,EAAE;IACpC29V,WAAW,IAAIJ,IAAI,CAACv9V,CAAC,CAAC;EACxB;EAEA,IAAIu9V,IAAI,CAAC98V,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE;IACzB;IACA;IACA,OAAOk9V,WAAW,GAAG,CAAC;EACxB;EAEA,OAAOA,WAAW;AACpB;;;;;;;;;;;;;;;ACpdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS5uI,mBAAmBA,CAAChxM,MAAM,EAAE6/U,GAAG,EAAEC,gBAAgB,EAAE;EACjE,IAAIlwU,KAAK;EAET,OAAO5P,MAAM,EAAE;IACb,IAAI6/U,GAAG,CAAC7/U,MAAM,CAAC,EAAE;MACf4P,KAAK,GAAG5P,MAAM;MAEd,IAAI8/U,gBAAgB,EAAE;QACpB;MACF;IACF;IAEA9/U,MAAM,GAAGA,MAAM,CAACoiG,YAAY,IAAIpiG,MAAM,CAAC4jE,MAAM;EAC/C;EAEA,OAAOh0D,KAAK;AACd;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACmD;AACE;AACe;AACd;AACP;AAC/C;AACA;AACA;;AAEO,SAAS01S,SAASA,CAAC51T,CAAC,EAAE;EAC3B,IAAI,CAACs7F,qDAAS,CAACt7F,CAAC,CAAC,EAAE;IACjB,OA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,QAAQ,CAAC2F,IAAI,GAAGujI,IAAI;EAC5B,CAAC,MAAM;IACLr7I,MAAM,CAAC4X,IAAI,CAACyjI,IAAI,EAAEl+H,MAAM,CAAC;EAC3B;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1QA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACqD;AACA;AACA;AACN;AACe;AACX;AACF;AACA;AACQ;AACE;AACF;AACJ;AACM;AACE;AACR;AACA;AACc;AAChB;AACY;AACI;AACA;AACP;AACgB;AAC9B;AACqC;AACI;AAC8B;AACzE;AACwF;AACpI;AACA;AACA;;AAE6F;AAC7F,IAAI86E,OAAO,GAAGr1F,IAAI,CAACqC,GAAG;AACtB,IAAIizF,OAAO,GAAGt1F,IAAI,CAACq6E,GAAG;AACtB,IAAIwhR,eAAe,GAAG,CAAC,CAAC;AACxB;AACA;AACA;;AAEO,SAAS57B,WAAWA,CAACx+O,IAAI,EAAE;EAChC,OAAOf,0EAAW,CAACe,IAAI,CAAC;AAC1B;AACA,IAAIq6Q,oBAAoB,GAAGH,sEAAyB;AACpD;AACA;AACA;;AAEO,SAASz7B,UAAUA,CAACnjN,QAAQ,EAAEt7B,IAAI,EAAE;EACzC,OAAOq6Q,oBAAoB,CAAC/+O,QAAQ,EAAEt7B,IAAI,CAAC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAAS6+O,aAAaA,CAACx9T,IAAI,EAAEk7F,UAAU,EAAE;EAC9C69P,eAAe,CAAC/4V,IAAI,CAAC,GAAGk7F,UAAU;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA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AAU,EAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAC9C,U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X,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IACX,MAAM,EAAE,CAAC;IAAE;IAC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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;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,mCAAmC,oCAAoC,gBAAgB;AACvF,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,gDAAgD,kBAAkB;AAC7I;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB,sCAAsC,kBAAkB;AACnF,0BAA0B;AAC1B;AACA;AACA;AACO;AACP;AACA;AACA;AACA,oBAAoB;AACpB;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB,sCAAsC,kBAAkB;AACnF,0BAA0B;AAC1B;AACA;AACA;AACO;AACP;AACA;AACA;AACA,oBAAoB;AACpB;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;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,mCAAmC,oCAAoC,gBAAgB;AACvF,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,gDAAgD,kBAAkB;AAC7I;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9OA;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,MAAM88jB,gBAAgB,CAAC;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,gBAAgB,CAAC;;AAGvB;AACA;AACA;AACA;AACA;AACA,MAAMC,UAAU,GAAG,GAAG;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS3pW,OAAOA,CAACtzN,IAAI,EAAEq0B,WAAW,EAAE;EAChC,OAAO;IAAE/mB,IAAI,EAAE,CAAC,CAAC;IAAqCtN,IAAI;IAAEq0B,WAAW;IAAEhlB,OAAO,EAAE,CAAC;EAAE,CAAC;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASwtE,OAAOA,CAACqgf,OAAO,EAAE3+iB,MAAM,GAAG,IAAI,EAAE;EACrC,OAAO;IAAEjR,IAAI,EAAE,CAAC,CAAC;IAAqCiR,MAAM;IAAE2+iB;EAAQ,CAAC;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAShxe,KAAKA,CAACixe,KAAK,EAAE9tjB,OAAO,GAAG,IAAI,EAAE;EAClC,OAAO;IAAE/B,IAAI,EAAE,CAAC,CAAC;IAAmC6vjB,KAAK;IAAE9tjB;EAAQ,CAAC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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+tjB,QAAQA,CAACD,KAAK,EAAE9tjB,OAAO,GAAG,IAAI,EAAE;EACrC,OAAO;IAAE/B,IAAI,EAAE,CAAC,CAAC;IAAsC6vjB,KAAK;IAAE9tjB;EAAQ,CAAC;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASiG,KAAKA,CAACovW,MAAM,EAAE;EACnB,OAAO;IAAEp3W,IAAI,EAAE,CAAC,CAAC;IAAmCiR,MAAM,EAAEmmW,MAAM;IAAEp9V,MAAM,EAAE;EAAK,CAAC;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS9mB,KAAKA,CAACR,IAAI,EAAEue,MAAM,EAAElP,OAAO,EAAE;EAClC,OAAO;IAAE/B,IAAI,EAAE,CAAC,CAAC;IAAmCtN,IAAI;IAAEue,MAAM;IAAElP;EAAQ,CAAC;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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+sE,SAASA,CAAC+gf,KAAK,EAAE;EACtB,OAAO;IAAE7vjB,IAAI,EAAE,CAAC,CAAC;IAAuC6vjB;EAAM,CAAC;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS58e,UAAUA,CAAC88e,eAAe,EAAEF,KAAK,EAAE9tjB,OAAO,GAAG,IAAI,EAAE;EACxD,OAAO;IAAE/B,IAAI,EAAE,CAAC,CAAC;IAAwCgwjB,IAAI,EAAED,eAAe;IAAEpkf,SAAS,EAAEkkf,KAAK;IAAE9tjB;EAAQ,CAAC;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS4pE,SAASA,CAACkkf,KAAK,EAAE9tjB,OAAO,GAAG,IAAI,EAAE;EACtC,OAAO;IAAE/B,IAAI,EAAE,CAAC,CAAC;IAAuC2rE,SAAS,EAAEkkf,KAAK;IAAE9tjB;EAAQ,CAAC;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASkujB,YAAYA,CAAClujB,OAAO,GAAG,IAAI,EAAE;EAClC,OAAO;IAAE/B,IAAI,EAAE,CAAC,CAAC;IAA0C+B;EAAQ,CAAC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASmujB,YAAYA,CAACvkf,SAAS,EAAE5pE,OAAO,GAAG,IAAI,EAAE;EAC7C,OAAO;IAAE/B,IAAI,EAAE,EAAE,CAAC;IAAwC2rE,SAAS;IAAE5pE;EAAQ,CAAC;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASo7F,KAAKA,CAACkgG,QAAQ,EAAE1xH,SAAS,EAAE5pE,OAAO,GAAG,IAAI,EAAE;EAChD,OAAO;IAAE/B,IAAI,EAAE,EAAE,CAAC;IAAmCq9L,QAAQ;IAAE1xH,SAAS;IAAE5pE;EAAQ,CAAC;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASoujB,OAAOA,CAACP,OAAO,EAAEjkf,SAAS,EAAE;EACjC,OAAO;IAAE3rE,IAAI,EAAE,EAAE,CAAC;IAAqC4vjB,OAAO;IAAEjkf;EAAU,CAAC;AAC/E;AAEA,SAASykf,iBAAiBA,CAAC/jf,EAAE,EAAE;EAC3Bp+E,OAAO,CAACyN,OAAO,CAAC,CAAC,CAAC1M,IAAI,CAACq9E,EAAE,CAAC;AAC9B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMgkf,mBAAmB,CAAC;EACtBx9jB,WAAWA,CAACk5E,QAAQ,GAAG,CAAC,EAAEE,KAAK,GAAG,CAAC,EAAE;IACjC,IAAI,CAACqkf,UAAU,GAAG,EAAE;IACpB,IAAI,CAACC,WAAW,GAAG,EAAE;IACrB,IAAI,CAACC,aAAa,GAAG,EAAE;IACvB,IAAI,CAACC,kBAAkB,GAAG,EAAE;IAC5B,IAAI,CAACC,mBAAmB,GAAG,EAAE;IAC7B,IAAI,CAACvmD,QAAQ,GAAG,KAAK;IACrB,IAAI,CAACwmD,UAAU,GAAG,KAAK;IACvB,IAAI,CAAC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E,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,CAAC,IAAI,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,KAAK,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAAC,GAAG,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAAC,GAAG,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,KAAK,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE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AAG;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,SAAS6jiB,qBAAqBA,CAAC9ka,MAAM,EAAEz1O,IAAI,EAAE;EACzC,MAAMhJ,IAAI,GAAGs7oB,iEAAe,CAAC78Z,MAAM,CAAC;EACpC,OAAOz+O,IAAI,CAACu7oB,4EAA8B,CAAC,CAACvyoB,IAAI,CAAC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASy6oB,uBAAuBA,CAAChla,MAAM,EAAE;EACrC,MAAMz+O,IAAI,GAAGs7oB,iEAAe,CAAC78Z,MAAM,CAAC;EACpC,OAAOz+O,IAAI,CAACu7oB,6EAA+B,CAAC,IAAI,IAAI;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASoI,qBAAqBA,CAAClla,MAAM,EAAE;EACnC,MAAMz+O,IAAI,GAAGs7oB,iEAAe,CAAC78Z,MAAM,CAAC;EACpC,OAAOz+O,IAAI,CAACu7oB,2EAA6B,CAAC,IAAI,IAAI;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASsI,qBAAqBA,CAACpla,MAAM,EAAE;EACnC,OAAO+8Z,wEAAsB,CAAC/8Z,MAAM,CAAC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASqla,mBAAmBA,CAACrla,MAAM,EAAE;EACjC,MAAMz+O,IAAI,GAAGs7oB,iEAAe,CAAC78Z,MAAM,CAAC;EACpC,OAAOz+O,IAAI,CAACu7oB,yEAA2B,CAAC;AAC5C;AACA;AACA;AACA;AACA;AACA,MAAMyI,mBAAmB,GAAGvI,kEAAoB;AAChD,SAASwI,aAAaA,CAACjkpB,IAAI,EAAE;EACzB,IAAI,CAACA,IAAI,CAACu7oB,wEAA0B,CAAC,EAAE;IACnC,MAA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CAACijE,KAAK,GAAGA,KAAK;EACtB;EACA,IAAI91D,KAAKA,CAAA,EAAG;IACR,OAAO,IAAI,CAACnN,KAAK,KAAK,CAAC;EAC3B;EACA,IAAIm9J,IAAIA,CAAA,EAAG;IACP,OAAO,IAAI,CAACn9J,KAAK,KAAK,IAAI,CAACijE,KAAK,GAAG,CAAC;EACxC;EACA,IAAIk+iB,IAAIA,CAAA,EAAG;IACP,OAAO,IAAI,CAACnhnB,KAAK,GAAG,CAAC,KAAK,CAAC;EAC/B;EACA,IAAIohnB,GAAGA,CAAA,EAAG;IACN,OAAO,CAAC,IAAI,CAACD,IAAI;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMszB,OAAO,CAAC;EACV;AACJ;AACA;AACA;EACI,IAAID,OAAOA,CAACA,OAAO,EAAE;IACjB,IAAI,CAACE,QAAQ,GAAGF,OAAO;IACvB,IAAI,CAACG,aAAa,GAAG,IAAI;EAC7B;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI,IAAIC,YAAYA,CAAC/3oB,EAAE,EAAE;IACjB,IAAI,CAAC,OAAOuhjB,SAAS,KAAK,WAAW,IAAIA,SAAS,KAAKvhjB,EAAE,IAAI,IAAI,IAAI,OA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,EAAE,kBAAkB;MAC5Bslb,UAAU,EAAE;IAChB,CAAC;EACT,CAAC,CAAC,EAAkB,YAAY;IAAE,OAAO,CAAC;MAAE3inB,IAAI,EAAE0yjB,2DAAmB4xD;IAAC,CAAC,EAAE;MAAEtknB,IAAI,EAAE0yjB,sDAAcusC;IAAC,CAAC,EAAE;MAAEj/lB,IAAI,EAAE0yjB,0DAAkBujE;IAAC,CAAC,CAAC;EAAE,CAAC,EAAkB;IAAEkzB,OAAO,EAAE,CAAC;MACzJnppB,IAAI,EAAEw9kB,gDAAKA;IACf,CAAC,CAAC;IAAE+rE,YAAY,EAAE,CAAC;MACfvppB,IAAI,EAAEw9kB,gDAAKA;IACf,CAAC,CAAC;IAAEgsE,aAAa,EAAE,CAAC;MAChBxppB,IAAI,EAAEw9kB,gDAAKA;IACf,CAAC;EAAE,CAAC;AAAA;AAChB,SAASksE,eAAeA,CAAC1glB,IAAI,EAAEitH,MAAM,EAAE;EACnCjtH,IAAI,CAACgyB,OAAO,CAACghgB,SAAS,GAAG/la,MAAM,CAACnrG,IAAI;AACxC;AACA,SAAS2+jB,WAAWA,CAACzppB,IAAI,EAAE;EACvB,OAAOA,IAAI,CAAC,MAAM,CAAC,IAAI,OAAOA,IAAI;AACtC;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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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AAO,EAAE;IAClB,IAAIA,OAAO,IAAI,CAAC,IAAI,CAACF,QAAQ,EAAE;MAC3B,IAAI,CAAC3upB,MAAM,CAAC,CAAC;IACjB,CAAC,MACI,IAAI,CAAC6upB,OAAO,IAAI,IAAI,CAACF,QAAQ,EAAE;MAChC,IAAI,CAACh+R,OAAO,CAAC,CAAC;IAClB;EACJ;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMm+R,QAAQ,CAAC;EACXn4pB,WAAWA,CAAA,EAAG;IACV,IAAI,CAACo4pB,aAAa,GAAG,EAAE;IACvB,IAAI,CAACC,YAAY,GAAG,KAAK;IACzB,IAAI,CAACC,UAAU,GAAG,CAAC;IACnB,IAAI,CAACC,mBAAmB,GAAG,CAAC;IAC5B,IAAI,CAACC,iBAAiB,GAAG,KAAK;EAClC;EACA,IAAIC,QAAQA,CAACz3d,QAAQ,EAAE;IACnB,IAAI,CAAC03d,SAAS,GAAG13d,QAAQ;IACzB,IAAI,IAAI,CAACs3d,UAAU,KAAK,CAAC,EAAE;MACvB,IAAI,CAACK,mBAAmB,CAAC,IAAI,CAAC;IAClC;EACJ;EACA;EACAC,QAAQA,CAAA,EAAG;IACP,OAAO,IAAI,CAACN,UAAU,EAAE;EAC5B;EACA;EACAO,WAAWA,CAAC1ilB,IAAI,EAAE;IACd,IAAI,CAACiilB,aAAa,CAACt7pB,IAAI,CAACq5E,IAAI,CAAC;EACjC;EACA;EACA2ilB,UAAUA,CAACp+pB,KAAK,EAAE;IACd,MAAM2gV,OAAO,GAAG3gV,KAAK,IAAI,IAAI,CAACg+pB,SAAS;IACvC,IAAI,CAACF,iBAAiB,G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AA2B,CAAC;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMuyE,QAAQ,CAAC;EACXn9pB,WAAWA,CAAC4iP,MAAM,EAAEw6a,eAAe,EAAEtupB,cAAc,EAAE;IACjD,IAAI,CAAC8zO,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACw6a,eAAe,GAAGA,eAAe;IACtC,IAAI,CAACtupB,cAAc,GAAGA,cAAc;EACxC;EACAqV,SAASA,CAACzpB,KAAK,EAAE08P,MAAM,EAAEqyZ,QAAQ,EAAE7ma,MAAM,EAAE;IACvC,IAAIloP,KAAK,IAAI,IAAI,IAAIA,KAAK,KAAK,EAAE,IAAIA,KAAK,KAAKA,KAAK,EAChD,OAAO,IAAI;IACf,IAAI;MACA,MAAM2iqB,OAAO,GAAGjma,MAAM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,GAAG,CAAC9D,eAAe,EAAEN,kBAAkB,EAAEN,oBAAoB,CAAC;AACpF,MAAM2E,aAAa,GAAG;EAClB7sD,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;AAChG,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM8sD,YAAY,GAAG,IAAI/8E,yDAAc,CAAC,aAAa,EAAE;EAAEwE,UAAU,EAAE,MAAM;EAAEl5O,OAAO,EAAEA,CAAA,KAAMwxT;AAAc,CAAC,CAAC;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAME,gBAAgB,CAAC;EACnB5nqB,WAAWA,CAAA,EAAG;IACV,IAAI,CAAC6nqB,WAAW,GAAGv9E,qDAAM,CAAC+3E,YAAY,CAAC;IACvC,IAAI,CAAClkpB,MAAM,GAAG2ppB,aAAa,CAACx9E,qDAAM,CAACq9E,YAAY,CAAC,CAAC;IACjD,IAAI,CAACngY,QAAQ,GAAG8iT,qDAAM,CAACo2D,oDAAS,CAAC;IACjC,IAAI,CAACqnB,UAAU,GAAGz9E,qDAAM,CAACwN,qDAAU,CA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OAAO,CAAC5I,OAAO;IACxB6hG,OAAO,EAAEj5F,OAAO,CAACi5F,OAAO;IACxBx6E,OAAO,EAAEze,OAAO,CAACye,OAAO;IACxBpG,MAAM,EAAErY,OAAO,CAACqY,MAAM;IACtB6ppB,cAAc,EAAEliqB,OAAO,CAACkiqB,cAAc;IACtC74S,YAAY,EAAErpX,OAAO,CAACqpX,YAAY;IAClC84S,eAAe,EAAEniqB,OAAO,CAACmiqB;EAC7B,CAAC;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMkB,UAAU,CAAC;EACbvyqB,WAAWA,CAACijM,OAAO,EAAE;IACjB,IAAI,CAACA,OAAO,GAAGA,OAAO;EAC1B;EACA;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;EACIizN,OAAOA,CAACjnY,KAAK,EAAEzd,GAAG,EAAEtC,OAAO,GAAG,CAAC,CAAC,EAAE;IAC9B,IAAIsjqB,GAAG;IACP;IACA,IAAIvjpB,KAAK,YAAYgipB,WAAW,EAAE;MAC9B;MACA;MACAuB,GAAG,GAAGvjpB,KAAK;IACf,CAAC,MACI;MACD;MACA;MACA;MACA;MACA,IAAI3oB,OAAO,GAAG+S,SAAS;MACvB,IAAInK,OAAO,CAAC5I,OAAO,YAAYooqB,WAAW,EAAE;QACxCpoqB,OAAO,GAAG4I,OAAO,CAAC5I,OAAO;MAC7B,CAAC,MACI;QACDA,OAAO,GAAG,IAAIooqB,WAAW,CAACx/pB,OAAO,CAAC5I,OAAO,CAAC;MAC9C;MACA;MACA,IAAIihB,MAAM,GAA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C,IAAI,CAAC;EAC1BC,eAAe,EAAE,IAAI;EACrBC,sBAAsB,EAAE;AAC5B,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIC,uBAAuB,GAAG,KAAK;AACnC;AACA;AACA;AACA;AACA;AACA,SAASC,+BAA+BA,CAAA,EAAG;EACvC,OAAON,gBAAgB,CAACC,MAAM,CAACx6mB,MAAM,KAAK,IAAI;AAClD;AACA,SAAS86mB,oBAAoBA,CAAA,EAAG;EAC5B,OAAOP,gBAAgB,CAACC,MAAM,CAACO,iBAAiB;AACpD;AACA,SAASC,yBAAyBA,CAAA,EAAG;EACjCT,gBAAgB,CAACC,MAAM,CAACO,iBAAiB,EAAE;AAC/C;AACA,SAASE,yBAAyBA,CAAA,EAAG;EACjCV,gBAAgB,CAACC,MAAM,CAACO,iBAAiB,EAAE;AAC/C;AACA,SAASG,kBAAkBA,CAAA,EAAG;EAC1B,OAAOX,gBAAgB,CAACG,eAAe;AAC3C;AACA;AACA;AACA;AACA;AACA,SAASS,wBAAwBA,CAAA,EAAG;EAChC,OAAOZ,gBAAgB,CAACI,sBAAsB,KAAK,IAAI;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,SAASS,wBAAwBA,CAAC9V,KAAK,EAAE;EACrC,OAAOiV,gBAAgB,CAACI,sBAAsB,KAAKrV,KAAK;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS+V,gBAAgBA,CAAA,EAAG;EACxBd,gBAAgB,CAACG,eAAe,GAAG,IAAI;AAC3C;AACA;AACA;AACA;AACA;AACA,SAASY,uBAAuBA,CAAChW,KAAK,EAAE;EACpCiV,gBAAgB,CAACI,sBAAsB,GAAGrV,KAAK;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASiW,iBAAiBA,CAAA,EAAG;EACzBhB,gBAAgB,CAACG,eAAe,GAAG,KAAK;AAC5C;AACA;AA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B,CAACC,SAAS,EAAEJ,IAAI,CAAC;IACrC;EACJ,CAAC,MACI;IACDG,gBAAgB,CAACC,SAAS,EAAEJ,IAAI,CAAC;EACrC;AACJ;AAEA,MAAMM,kBAAkB,GAAG,CAAC,CAAC;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,mBAAmB,CAAC;EACtB38rB,WAAWA;EACX;AACJ;AACA;EACIk2W,OAAO;EACP;AACJ;AACA;EACI0mV,cAAc,EAAEC,oBAAoB,EAAE;IAClC,IAAI,CAAC3mV,OAAO,GAAGA,OAAO;IACtB;AACR;AACA;AACA;IACQ,IAAI,CAAC4mV,SAAS,GAAG,KAAK;IACtB58H,SAAS,IAAIq+G,aAAa,CAACroU,OAAO,EAAE,uBAAuB,CAAC;IAC5DgqN,SAAS,IAAI69G,WAAW,CAAC,OAAO7nU,OAAO,EAAE,UAAU,EAAE,4BAA4B,CAAC;IAClF,IAAI,CAAC6mV,mBAAmB,GAAGH,cAAc;IACzC,IAAI,CAACI,UAAU,GAAGH,oBAAoB;EAC1C;AACJ;AACA,SAASI,SAASA,CAAC/lrB,GAAG,EAAE;EACpB,OAAOA,GAAG,YAAYylrB,mBAAmB;AAC7C;AACA;AACA;AACA,MAAMO,+BAA+B,GAAG,CAAC;;AAEzC;AACA;AACA;AACA;AACA,SAASC,mBAAmBA,CAACC,SAAS,EAAE;EACpC,IAAI5mqB,IAAI,GAAG,EAAE;EACZ4mqB,SAAS,GAAG,CAAC,CAAC,yBAA0B5mqB,IAAI,IAAI,OAAO,CAAC;EACxD4mqB,SAAS,GAAG,CAAC,CAAC,4BAA6B5mqB,IAAI,IAAI,UAAU,CAAC;EAC9D4mqB,SAAS,GAAG,CAAC,CAAC,8BAA+B5mqB,IAAI,IAAI,YAAY,CAAC;EAClE4mqB,SAAS,GAAG,CAAC,CAAC,qCAAsC5mqB,IAAI,IAAI,mBAAmB,CAAC;EAChF4mqB,SAAS,GAAG,EAAE,CAAC,+BAAgC5mqB,IAAI,IAAI,aAAa,CAAC;EACrE4mqB,SAAS,GAAG,EAAE,CAAC,wBAAyB5mqB,IAAI,IAAI,eAAe,CAAC;EAChE4mqB,SAAS,GAAG,EAAE,CAAC,gCAAiC5mqB,IAAI,IAAI,cAAc,CAAC;EACxE,OAAOA,IAAI,CAACx8B,MAAM,GAAG,CAAC,GAAGw8B,IAAI,CAACvpB,SAAS,CAAC,CAAC,CAAC,GAAGupB,IAAI;AACrD;AACA;AACA;AACA,MAAM6mqB,+BAA+B,GAAG,CAAC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,aAAaA,CAAC9c,KAAK,EAAE;EAC1B,OAAO,CAACA,KAAK,CAAC37T,KAAK,GAAG,CAAC,CAAC,oCAAoC,CAAC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS04U,aAAaA,CAAC/c,KAAK,EAAE;EAC1B,OAAO,CAACA,KAAK,CAAC37T,KAAK,GAAG,EAAE,CAAC,oCAAoC,CAAC;AAClE;AAEA,SAAS24U,eAAeA,CAAChd,KAAK,EAAEid,aAAa,EAAE/nrB,OAAO,EAAE;EACpD6oqB,aAAa,CAACiC,KAAK,EAAE,+BAA+B,CAAC;EACrD,IAAI,CAACA,KAAK,CAACrzqB,IAAI,GAAGswrB,aAAa,MAAM,CAAC,EAAE;IACpC9ulB,UAAU,CAACj5F,OAAO,IACb,aAAYynrB,mBAAmB,CAACM,aAAa,CAAE,aAAYN,mBAAmB,CAAC3c,KAAK,CAACrzqB,IAAI,CAAE,GAAE,CAAC;EACvG;AACJ;AACA,SAASuwrB,mBAAmBA,CAACvwrB,IAAI,EAAE;EAC/B,IAAI,EAAEA,IAAI,KAAK,CAAC,CAAC;EAA2B;EACxCA,IAAI,KAAK,CAAC,CAAC;EAAwB;EACnCA,IAAI,KAAK,CAAC,CAAC;EAA6B;EACxCA,IAAI,KAAK,CAAC,CAAC;EAAoC;EAC/CA,IAAI,KAAK,EAAE,CAAC;EAAuB;EACnCA,IAAI,KAAK,EAAE,CAAC;EAA8B;EAC1CA,IAAI,KAAK,EAAE,CAAC,4BAA4B,EAAE;IAC1CwhG,UAAU,CAAE,mEAAkEwulB,mBAAmB,CAAChwrB,IAAI,CAAE,GAAE,CAAC;EAC/G;AACJ;;AAEA;AACA,SAASwwrB,iBAAiBA,CAACC,cAAc,EAAE;EACvC,OAAOA,cAAc,KAAKlB,kBAAkB;AAChD;AACA,SAASmB,sBAAsBA,CAACD,cAAc,EAAE;EAC5C19H,SAAS,IAAIo9G,YAAY,CAACsgB,cAAc,EAAE,iBAAiB,CAAC;EAC5D19H,SAAS,IAAI+9G,cAAc,CAAC2f,cAAc,EAAE,CAAC,CAAC,EAAE,oBAAoB,CAAC;EACrE,MAAME,mBAAmB,GAAGF,cAAc,GAAG,KAAK,CAAC;EACnD19H,SAAS,IACLm+G,iBAAiB,CAACyf,mBAAmB,EAAE9R,aAAa,EAAE,sDAAsD,CAAC;EACjH,OAAO4R,cAAc,GAAG,KAAK,CAAC;AAClC;;AACA,SAASG,2BAA2BA,CAACH,cAAc,EAAE;EACjD,OAAOA,cAAc,IAAI,EAAE,CAAC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASI,qBAAqBA,CAAC1xrB,QAAQ,EAAE2xrB,SAAS,EAAE;EAChD,IAAIC,UAAU,GAAGH,2BAA2B,CAACzxrB,QAAQ,CAAC;EACtD,IAAI6xrB,UAAU,GAAGF,SAAS;EAC1B;EACA;EACA;EACA;EACA,OAAOC,UAAU,GAAG,CAAC,EAAE;IACnBC,UAAU,GAAGA,UAAU,CAAC7S,gBAAgB,CAAC;IACzC4S,UAAU,EAAE;EAChB;EACA,OAAOC,UAAU;AACrB;;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,IAAIC,oBAAoB,GAAG,IAAI;AAC/B,SAASC,uBAAuBA,CAACv8rB,CAAC,EAAE;EAChC,MAAMuklB,QAAQ,GAAG+3G,oBAAoB;EACrCA,oBAAoB,GAAGt8rB,CAAC;EACxB,OAAOuklB,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,MAAMi4G,UAAU,GAAG,GAAG;AACtB,MAAMC,UAAU,GAAGD,UAAU,GAAG,CAAC;AACjC;AACA;AACA;AACA;AACA;AACA,MAAME,iBAAiB,GAAG,CAAC;AAC3B;AACA,IAAIC,eAAe,GAAG,CAAC;AACvB;AACA,MAAMC,SAAS,GAAG,CAAC,CAAC;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,QAAQA,CAAC3P,aAAa,EAAEvO,KAAK,EAAEtzqB,IAAI,EAAE;EAC1C+yjB,SAAS,IAAI69G,WAAW,CAAC0C,KAAK,CAACF,eAAe,EAAE,IAAI,EAAE,qCAAqC,CAAC;EAC5F,IAAIljrB,EAAE;EACN,IAAI,OAAO8P,IAAI,KAAK,QAAQ,EAAE;IAC1B9P,EAAE,GAAG8P,IAAI,CAAChL,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;EAChC,CAAC,MACI,IAAIgL,IAAI,CAACxT,cAAc,CAACuqrB,aAAa,CAAC,EAAE;IACzC7mrB,EAAE,GAAG8P,IAAI,CAAC+2qB,aAAa,CAAC;EAC5B;EACA;EACA;EACA,IAAI7mrB,EAAE,IAAI,IAAI,EAAE;IACZA,EAAE,GAAG8P,IAAI,CAAC+2qB,aAAa,CAAC,GAAGua,eAAe,EAAE;EAChD;EACA;EACA;EACA,MAAMG,SAAS,GAAGvhsB,EAAE,GAAGkhsB,UAAU;EACjC;EACA;EACA;EACA,MAAM14qB,IAAI,GAAG,CAAC,IAAI+4qB,SAAS;EAC3B;EACA;EACA;EACAne,KAAK,CAACt8qB,IAAI,CAAC6qrB,aAAa,IAAI4P,SAAS,IAAIJ,iBAAiB,CAAC,CAAC,IAAI34qB,IAAI;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASg5qB,8BAA8BA,CAACre,KAAK,EAAE2M,KAAK,EAAE;EAClD,MAAM2R,qBAAqB,GAAGC,gBAAgB,CAACve,KAAK,EAAE2M,KAAK,CAAC;EAC5D,IAAI2R,qBAAqB,KAAK,CAAC,CAAC,EAAE;IAC9B,OAAOA,qBAAqB;EAChC;EACA,MAAMre,KAAK,GAAG0M,KAAK,CAACzC,KAAK,CAAC;EAC1B,IAAIjK,KAAK,CAACF,eAAe,EAAE;IACvBC,KAAK,CAACwO,aAAa,GAAG7B,KAAK,CAACnzrB,MAAM;IAClCglsB,WAAW,CAACve,KAAK,CAACt8qB,IAAI,EAAEq8qB,KAAK,CAAC,CAAC,CAAC;IAChCwe,WAAW,CAAC7R,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IAC1B6R,WAAW,CAACve,KAAK,CAACwe,SAAS,EAAE,IAAI,CAAC;EACtC;EACA,MAAMC,SAAS,GAAGC,yBAAyB,CAAC3e,KAAK,EAAE2M,KAAK,CAAC;EACzD,MAAM6B,aAAa,GAAGxO,KAAK,CAACwO,aAAa;EACzC;EACA;EACA,IAAI2O,iBAAiB,CAACuB,SAAS,CAAC,EAAE;IAC9B,MAAME,WAAW,GAAGvB,sBAAsB,CAACqB,SAAS,CAAC;IACrD,MAAMjG,WAAW,GAAG+E,qBAAqB,CAACkB,SAAS,EAAE/R,KAAK,CAAC;IAC3D,MAAMkS,UAAU,GAAGpG,WAAW,CAACvO,KAAK,CAAC,CAACvmrB,IAAI;IAC1C;IACA;IACA,KAAK,IAAI5K,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,CAAC,CAAC,qCAAqCA,CAAC,EAAE,EAAE;MAC5D4zrB,KAAK,CAAC6B,aAAa,GAAGz1rB,CAAC,CAAC,GAAG0/rB,WAAW,CAACmG,WAAW,GAAG7lsB,CAAC,CAAC,GAAG8lsB,UAAU,CAACD,WAAW,GAAG7lsB,CAAC,CAAC;IACzF;EACJ;EACA4zrB,KAAK,CAAC6B,aAAa,GAAG,CAAC,CAAC,gCAAgC,GAAGkQ,SAAS;EACpE,OAAOlQ,aAAa;AACxB;AACA,SAASgQ,WAAWA,CAACzmrB,GAAG,EAAEs2c,MAAM,EAAE;EAC9Bt2c,GAAG,CAACzb,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE+xd,MAAM,CAAC;AAC5C;AACA,SAASkwO,gBAAgBA,CAACve,KAAK,EAAE2M,KAAK,EAAE;EACpC,IAAI3M,KAAK,CAACwO,aAAa,KAAK,CAAC,CAAC;EAC1B;EACA;EACCxO,KAAK,CAACtlmB,MAAM,IAAIslmB,KAAK,CAACtlmB,MAAM,CAAC8zmB,aAAa,KAAKxO,KAAK,CAACwO,aAAc;EACpE;EACA;EACA7B,KAAK,CAAC3M,KAAK,CAACwO,aAAa,GAAG,CAAC,CAAC,gCAAgC,KAAK,IAAI,EAAE;IACzE,OAAO,CAAC,CAAC;EACb,CAAC,MACI;IACD9uH,SAAS,IAAIw+G,kBAAkB,CAACyO,KAAK,EAAE3M,KAAK,CAACwO,aAAa,CAAC;IAC3D,OAAOxO,KAAK,CAACwO,aAAa;EAC9B;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASmQ,yBAAyBA,CAAC3e,KAAK,EAAE2M,KAAK,EAAE;EAC7C,IAAI3M,KAAK,CAACtlmB,MAAM,IAAIslmB,KAAK,CAACtlmB,MAAM,CAAC8zmB,aAAa,KAAK,CAAC,CAAC,EAAE;IACnD;IACA;IACA,OAAOxO,KAAK,CAACtlmB,MAAM,CAAC8zmB,aAAa,CAAC,CAAC;EACvC;EACA;EACA;EACA;EACA,IAAIsQ,qBAAqB,GAAG,CAAC;EAC7B,IAAItG,WAAW,GAAG,IAAI;EACtB,IAAIuG,WAAW,GAAGpS,KAAK;EACvB;EACA;EACA;EACA,OAAOoS,WAAW,KAAK,IAAI,EAAE;IACzBvG,WAAW,GAAGwG,iBAAiB,CAACD,WAAW,CAAC;IAC5C,IAAIvG,WAAW,KAAK,IAAI,EAAE;MACtB;MACA,OAAO0D,kBAAkB;IAC7B;IACAx8H,SAAS,IAAI84H,WAAW,IAAI9L,mBAAmB,CAAC8L,WAAW,EAAEuG,WAAW,CAACjU,gBAAgB,CAAC,CAAC;IAC3F;IACAgU,qBAAqB,EAAE;IACvBC,WAAW,GAAGA,WAAW,CAACjU,gBAAgB,CAAC;IAC3C,IAAI0N,WAAW,CAAChK,aAAa,KAAK,CAAC,CAAC,EAAE;MAClC;MACA,OAAQgK,WAAW,CAAChK,aAAa,GAC5BsQ,qBAAqB,IAAI,EAAE,CAAC,mDAAoD;IACzF;EACJ;;EACA,OAAO5C,kBAAkB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS+C,kBAAkBA,CAACzQ,aAAa,EAAEvO,KAAK,EAAEj8T,KAAK,EAAE;EACrDm6U,QAAQ,CAAC3P,aAAa,EAAEvO,KAAK,EAAEj8T,KAAK,CAAC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASk7U,mBAAmBA,CAAClf,KAAK,EAAEmf,gBAAgB,EAAE;EAClDz/H,SAAS,IAAIs9H,eAAe,CAAChd,KAAK,EAAE,EAAE,CAAC,+BAA+B,CAAC,CAAC,wBAAwB,CAAC;EACjGtgH,SAAS,IAAIq+G,aAAa,CAACiC,KAAK,EAAE,iBAAiB,CAAC;EACpD,IAAImf,gBAAgB,KAAK,OAAO,EAAE;IAC9B,OAAOnf,KAAK,CAACr4pB,OAAO;EACxB;EACA,IAAIw3qB,gBAAgB,KAAK,OAAO,EAAE;IAC9B,OAAOnf,KAAK,CAACpiqB,MAAM;EACvB;EACA,MAAMf,KAAK,GAAGmjqB,KAAK,CAACnjqB,KAAK;EACzB,IAAIA,KAAK,EAAE;IACP,MAAMuirB,WAAW,GAAGvirB,KAAK,CAACrjB,MAAM;IAChC,IAAIT,CAAC,GAAG,CAAC;IACT,OAAOA,CAAC,GAAGqmsB,WAAW,EAAE;MACpB,MAAMllsB,KAAK,GAAG2iB,KAAK,CAAC9jB,CAAC,CAAC;MACtB;MACA,IAAIwrrB,yBAAyB,CAACrqrB,KAAK,CAAC,EAChC;MACJ;MACA,IAAIA,KAAK,KAAK,CAAC,CAAC,oCAAoC;QAChD;QACA;QACA;QACA;QACAnB,CAAC,GAAGA,CAAC,GAAG,CAAC;MACb,CAAC,MACI,IAAI,OAAOmB,KAAK,KAAK,QAAQ,EAAE;QAChC;QACAnB,CAAC,EAAE;QACH,OAAOA,CAAC,GAAGqmsB,WAAW,IAAI,OAAOvirB,KAAK,CAAC9jB,CAAC,CAAC,KAAK,QAAQ,EAAE;UACpDA,CAAC,EAAE;QACP;MACJ,CAAC,MACI,IAAImB,KAAK,KAAKilsB,gBAAgB,EAAE;QACjC,OAAOtirB,KAAK,CAAC9jB,CAAC,GAAG,CAAC,CAAC;MACvB,CAAC,MACI;QACDA,CAAC,GAAGA,CAAC,GAAG,CAAC;MACb;IACJ;EACJ;EACA,OAAO,IAAI;AACf;AACA,SAASsmsB,oBAAoBA,CAACpnE,aAAa,EAAEj0Q,KAAK,EAAEK,KAAK,EAAE;EACvD,IAAKA,KAAK,GAAG66T,WAAW,CAAC70F,QAAQ,IAAK4tC,aAAa,KAAKp/mB,SAAS,EAAE;IAC/D,OAAOo/mB,aAAa;EACxB,CAAC,MACI;IACD0kD,0BAA0B,CAAC34T,KAAK,EAAE,cAAc,CAAC;EACrD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASs7U,8BAA8BA,CAAC3S,KAAK,EAAE3oU,KAAK,EAAEK,KAAK,EAAE4zQ,aAAa,EAAE;EACxE,IAAK5zQ,KAAK,GAAG66T,WAAW,CAAC70F,QAAQ,IAAK4tC,aAAa,KAAKp/mB,SAAS,EAAE;IAC/D;IACAo/mB,aAAa,GAAG,IAAI;EACxB;EACA,IAAI,CAAC5zQ,KAAK,IAAI66T,WAAW,CAACqgB,IAAI,GAAGrgB,WAAW,CAACx/B,IAAI,CAAC,MAAM,CAAC,EAAE;IACvD,MAAM8/C,cAAc,GAAG7S,KAAK,CAAClC,UAAU,CAAC;IACxC;IACA;IACA;IACA,MAAMgV,4BAA4B,GAAGpgB,uBAAuB,CAACxmqB,SAAS,CAAC;IACvE,IAAI;MACA,IAAI2mrB,cAAc,EAAE;QAChB,OAAOA,cAAc,CAACllsB,GAAG,CAAC0pX,KAAK,EAAEi0Q,aAAa,EAAE5zQ,KAAK,GAAG66T,WAAW,CAAC70F,QAAQ,CAAC;MACjF,CAAC,MACI;QACD,OAAOi1F,kBAAkB,CAACt7T,KAAK,EAAEi0Q,aAAa,EAAE5zQ,KAAK,GAAG66T,WAAW,CAAC70F,QAAQ,CAAC;MACjF;IACJ,CAAC,SACO;MACJg1F,uBAAuB,CAACogB,4BAA4B,CAAC;IACzD;EACJ;EACA,OAAOJ,oBAAoB,CAACpnE,aAAa,EAAEj0Q,KAAK,EAAEK,KAAK,CAAC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASq7U,qBAAqBA,CAAC1f,KAAK,EAAE2M,KAAK,EAAE3oU,KAAK,EAAEK,KAAK,GAAG66T,WAAW,CAACxvE,OAAO,EAAEuoB,aAAa,EAAE;EAC5F,IAAI+nD,KAAK,KAAK,IAAI,EAAE;IAChB;IACA;IACA,IAAI2M,KAAK,CAAC9yQ,KAAK,CAAC,GAAG,IAAI,CAAC;IACpB;IACA;IACA,EAAEx1D,KAAK,GAAG66T,WAAW,CAACqgB,IAAI,CAAC,EAAE;MAC7B,MAAMI,qBAAqB,GAAGC,gCAAgC,CAAC5f,KAAK,EAAE2M,KAAK,EAAE3oU,KAAK,EAAEK,KAAK,EAAE65U,SAAS,CAAC;MACrG,IAAIyB,qBAAqB,KAAKzB,SAAS,EAAE;QACrC,OAAOyB,qBAAqB;MAChC;IACJ;IACA;IACA,MAAMzlsB,KAAK,GAAG2lsB,4BAA4B,CAAC7f,KAAK,EAAE2M,KAAK,EAAE3oU,KAAK,EAAEK,KAAK,EAAE65U,SAAS,CAAC;IACjF,IAAIhksB,KAAK,KAAKgksB,SAAS,EAAE;MACrB,OAAOhksB,KAAK;IAChB;EACJ;EACA;EACA,OAAOolsB,8BAA8B,CAAC3S,KAAK,EAAE3oU,KAAK,EAAEK,KAAK,EAAE4zQ,aAAa,CAAC;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS4nE,4BAA4BA,CAAC7f,KAAK,EAAE2M,KAAK,EAAE3oU,KAAK,EAAEK,KAAK,EAAE4zQ,aAAa,EAAE;EAC7E,MAAMmmE,SAAS,GAAG0B,qBAAqB,CAAC97U,KAAK,CAAC;EAC9C;EACA;EACA,IAAI,OAAOo6U,SAAS,KAAK,UAAU,EAAE;IACjC,IAAI,CAAC7F,OAAO,CAAC5L,KAAK,EAAE3M,KAAK,EAAE37T,KAAK,CAAC,EAAE;MAC/B;MACA;MACA,OAAQA,KAAK,GAAG66T,WAAW,CAACx/B,IAAI,GAC5B2/C,oBAAoB,CAACpnE,aAAa,EAAEj0Q,KAAK,EAAEK,KAAK,CAAC,GACjDi7U,8BAA8B,CAAC3S,KAAK,EAAE3oU,KAAK,EAAEK,KAAK,EAAE4zQ,aAAa,CAAC;IAC1E;IACA,IAAI;MACA,MAAM/9nB,KAAK,GAAGkksB,SAAS,CAAC/5U,KAAK,CAAC;MAC9B,IAAInqX,KAAK,IAAI,IAAI,IAAI,EAAEmqX,KAAK,GAAG66T,WAAW,CAAC70F,QAAQ,CAAC,EAAE;QAClDsyF,0BAA0B,CAAC34T,KAAK,CAAC;MACrC,CAAC,MACI;QACD,OAAO9pX,KAAK;MAChB;IACJ,CAAC,SACO;MACJi/rB,OAAO,CAAC,CAAC;IACb;EACJ,CAAC,MACI,IAAI,OAAOiF,SAAS,KAAK,QAAQ,EAAE;IACpC;IACA;IACA;IACA,IAAI2B,aAAa,GAAG,IAAI;IACxB,IAAIvR,aAAa,GAAG+P,gBAAgB,CAACve,KAAK,EAAE2M,KAAK,CAAC;IAClD,IAAIyQ,cAAc,GAAGlB,kBAAkB;IACvC,IAAI8D,gBAAgB,GAAG37U,KAAK,GAAG66T,WAAW,CAACx/B,IAAI,GAAGitC,KAAK,CAAC5B,0BAA0B,CAAC,CAACT,MAAM,CAAC,GAAG,IAAI;IAClG;IACA;IACA,IAAIkE,aAAa,KAAK,CAAC,CAAC,IAAInqU,KAAK,GAAG66T,WAAW,CAAC19E,QAAQ,EAAE;MACtD47F,cAAc,GAAG5O,aAAa,KAAK,CAAC,CAAC,GAAGmQ,yBAAyB,CAAC3e,KAAK,EAAE2M,KAAK,CAAC,GAC3EA,KAAK,CAAC6B,aAAa,GAAG,CAAC,CAAC,gCAAgC;MAC5D,IAAI4O,cAAc,KAAKlB,kBAAkB,IAAI,CAAC+D,kBAAkB,CAAC57U,KAAK,EAAE,KAAK,CAAC,EAAE;QAC5EmqU,aAAa,GAAG,CAAC,CAAC;MACtB,CAAC,MACI;QACDuR,aAAa,GAAGpT,KAAK,CAACzC,KAAK,CAAC;QAC5BsE,aAAa,GAAG6O,sBAAsB,CAACD,cAAc,CAAC;QACtDzQ,KAAK,GAAG6Q,qBAAqB,CAACJ,cAAc,EAAEzQ,KAAK,CAAC;MACxD;IACJ;IACA;IACA;IACA,OAAO6B,aAAa,KAAK,CAAC,CAAC,EAAE;MACzB9uH,SAAS,IAAI6uH,kBAAkB,CAAC5B,KAAK,EAAE6B,aAAa,CAAC;MACrD;MACA,MAAMvO,KAAK,GAAG0M,KAAK,CAACzC,KAAK,CAAC;MAC1BxqH,SAAS,IACLgtH,mBAAmB,CAACzM,KAAK,CAACt8qB,IAAI,CAAC6qrB,aAAa,GAAG,CAAC,CAAC,+BAA+B,EAAE7B,KAAK,CAAC;MAC5F,IAAIuT,aAAa,CAAC9B,SAAS,EAAE5P,aAAa,EAAEvO,KAAK,CAACt8qB,IAAI,CAAC,EAAE;QACrD;QACA;QACA;QACA,MAAMzI,QAAQ,GAAGilsB,sBAAsB,CAAC3R,aAAa,EAAE7B,KAAK,EAAE3oU,KAAK,EAAE+7U,aAAa,EAAE17U,KAAK,EAAE27U,gBAAgB,CAAC;QAC5G,IAAI9ksB,QAAQ,KAAKgjsB,SAAS,EAAE;UACxB,OAAOhjsB,QAAQ;QACnB;MACJ;MACAkisB,cAAc,GAAGzQ,KAAK,CAAC6B,aAAa,GAAG,CAAC,CAAC,gCAAgC;MACzE,IAAI4O,cAAc,KAAKlB,kBAAkB,IACrC+D,kBAAkB,CAAC57U,KAAK,EAAEsoU,KAAK,CAACzC,KAAK,CAAC,CAACvmrB,IAAI,CAAC6qrB,aAAa,GAAG,CAAC,CAAC,+BAA+B,KAAKwR,gBAAgB,CAAC,IACnHE,aAAa,CAAC9B,SAAS,EAAE5P,aAAa,EAAE7B,KAAK,CAAC,EAAE;QAChD;QACA;QACAoT,aAAa,GAAG9f,KAAK;QACrBuO,aAAa,GAAG6O,sBAAsB,CAACD,cAAc,CAAC;QACtDzQ,KAAK,GAAG6Q,qBAAqB,CAACJ,cAAc,EAAEzQ,KAAK,CAAC;MACxD,CAAC,MACI;QACD;QACA;QACA;QACA6B,aAAa,GAAG,CAAC,CAAC;MACtB;IACJ;EACJ;EACA,OAAOv2D,aAAa;AACxB;AACA,SAASkoE,sBAAsBA,CAAC3R,aAAa,EAAE7B,KAAK,EAAE3oU,KAAK,EAAE+7U,aAAa,EAAE17U,KAAK,EAAE27U,gBAAgB,EAAE;EACjG,MAAMI,YAAY,GAAGzT,KAAK,CAACzC,KAAK,CAAC;EACjC,MAAMlK,KAAK,GAAGogB,YAAY,CAACz8rB,IAAI,CAAC6qrB,aAAa,GAAG,CAAC,CAAC,+BAA+B;EACjF;EACA;EACA,MAAM6R,sBAAsB,GAAGN,aAAa,IAAI,IAAI;EAChD;EACA;EACA;EACA;EACA;EACA;EACA;EACC3T,eAAe,CAACpM,KAAK,CAAC,IAAI4d,oBAAoB;EAC/C;EACA;EACA;EACA;EACA;EACA;EACCmC,aAAa,IAAIK,YAAY,IAAK,CAACpgB,KAAK,CAACrzqB,IAAI,GAAG,CAAC,CAAC,8BAA8B,CAAG;EACxF;EACA;EACA,MAAM2zrB,iBAAiB,GAAIj8U,KAAK,GAAG66T,WAAW,CAACx/B,IAAI,IAAKsgD,gBAAgB,KAAKhgB,KAAK;EAClF,MAAMugB,aAAa,GAAGC,yBAAyB,CAACxgB,KAAK,EAAEogB,YAAY,EAAEp8U,KAAK,EAAEq8U,sBAAsB,EAAEC,iBAAiB,CAAC;EACtH,IAAIC,aAAa,KAAK,IAAI,EAAE;IACxB,OAAOE,iBAAiB,CAAC9T,KAAK,EAAEyT,YAAY,EAAEG,aAAa,EAAEvgB,KAAK,CAAC;EACvE,CAAC,MACI;IACD,OAAOke,SAAS;EACpB;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASsC,yBAAyBA,CAACxgB,KAAK,EAAEC,KAAK,EAAEj8T,KAAK,EAAEq8U,sBAAsB,EAAEC,iBAAiB,EAAE;EAC/F,MAAMI,mBAAmB,GAAG1gB,KAAK,CAAC2gB,eAAe;EACjD,MAAMC,YAAY,GAAG3gB,KAAK,CAACt8qB,IAAI;EAC/B,MAAMk9rB,gBAAgB,GAAGH,mBAAmB,GAAG,OAAO,CAAC;EACvD,MAAMI,eAAe,GAAG9gB,KAAK,CAAC2a,cAAc;EAC5C,MAAMC,YAAY,GAAG5a,KAAK,CAAC4a,YAAY;EACvC,MAAMmG,qBAAqB,GAAGL,mBAAmB,IAAI,EAAE,CAAC;EACxD,MAAM1c,aAAa,GAAGqc,sBAAsB,GAAGQ,gBAAgB,GAAGA,gBAAgB,GAAGE,qBAAqB;EAC1G;EACA,MAAMj0jB,QAAQ,GAAGwzjB,iBAAiB,GAAGO,gBAAgB,GAAGE,qBAAqB,GAAGnG,YAAY;EAC5F,KAAK,IAAI7hsB,CAAC,GAAGirrB,aAAa,EAAEjrrB,CAAC,GAAG+zI,QAAQ,EAAE/zI,CAAC,EAAE,EAAE;IAC3C,MAAMiosB,kBAAkB,GAAGJ,YAAY,CAAC7nsB,CAAC,CAAC;IAC1C,IAAIA,CAAC,GAAG+nsB,eAAe,IAAI98U,KAAK,KAAKg9U,kBAAkB,IACnDjosB,CAAC,IAAI+nsB,eAAe,IAAIE,kBAAkB,CAACr0rB,IAAI,KAAKq3W,KAAK,EAAE;MAC3D,OAAOjrX,CAAC;IACZ;EACJ;EACA,IAAIunsB,iBAAiB,EAAE;IACnB,MAAMW,MAAM,GAAGL,YAAY,CAACE,eAAe,CAAC;IAC5C,IAAIG,MAAM,IAAI1U,cAAc,CAAC0U,MAAM,CAAC,IAAIA,MAAM,CAACt0rB,IAAI,KAAKq3W,KAAK,EAAE;MAC3D,OAAO88U,eAAe;IAC1B;EACJ;EACA,OAAO,IAAI;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASL,iBAAiBA,CAAC9T,KAAK,EAAE1M,KAAK,EAAE3+pB,KAAK,EAAE0+pB,KAAK,EAAE;EACnD,IAAI9lrB,KAAK,GAAGyyrB,KAAK,CAACrrqB,KAAK,CAAC;EACxB,MAAM42qB,KAAK,GAAGjY,KAAK,CAACt8qB,IAAI;EACxB,IAAI84rB,SAAS,CAACvisB,KAAK,CAAC,EAAE;IAClB,MAAMw7W,OAAO,GAAGx7W,KAAK;IACrB,IAAIw7W,OAAO,CAAC4mV,SAAS,EAAE;MACnBlgB,0BAA0B,CAACD,iBAAiB,CAAC+b,KAAK,CAAC52qB,KAAK,CAAC,CAAC,CAAC;IAC/D;IACA,MAAM4/qB,4BAA4B,GAAGrD,uBAAuB,CAACnoV,OAAO,CAAC6mV,mBAAmB,CAAC;IACzF7mV,OAAO,CAAC4mV,SAAS,GAAG,IAAI;IACxB,MAAMmD,4BAA4B,GAAG/pV,OAAO,CAAC8mV,UAAU,GAAGnd,uBAAuB,CAAC3pU,OAAO,CAAC8mV,UAAU,CAAC,GAAG,IAAI;IAC5G,MAAM2E,OAAO,GAAG5I,OAAO,CAAC5L,KAAK,EAAE3M,KAAK,EAAEd,WAAW,CAACxvE,OAAO,CAAC;IAC1DhwC,SAAS,IACL69G,WAAW,CAAC4jB,OAAO,EAAE,IAAI,EAAE,6EAA6E,CAAC;IAC7G,IAAI;MACAjnsB,KAAK,GAAGyyrB,KAAK,CAACrrqB,KAAK,CAAC,GAAGo0V,OAAO,CAACA,OAAO,CAAC78V,SAAS,EAAEq/qB,KAAK,EAAEvL,KAAK,EAAE3M,KAAK,CAAC;MACtE;MACA;MACA;MACA;MACA;MACA;MACA,IAAIC,KAAK,CAACF,eAAe,IAAIz+pB,KAAK,IAAI0+pB,KAAK,CAAC2a,cAAc,EAAE;QACxDj7H,SAAS,IAAImuH,kBAAkB,CAACqK,KAAK,CAAC52qB,KAAK,CAAC,CAAC;QAC7C84qB,qBAAqB,CAAC94qB,KAAK,EAAE42qB,KAAK,CAAC52qB,KAAK,CAAC,EAAE2+pB,KAAK,CAAC;MACrD;IACJ,CAAC,SACO;MACJwf,4BAA4B,KAAK,IAAI,IACjCpgB,uBAAuB,CAACogB,4BAA4B,CAAC;MACzD5B,uBAAuB,CAACqD,4BAA4B,CAAC;MACrDxrV,OAAO,CAAC4mV,SAAS,GAAG,KAAK;MACzBnD,OAAO,CAAC,CAAC;IACb;EACJ;EACA,OAAOj/rB,KAAK;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS4lsB,qBAAqBA,CAAC97U,KAAK,EAAE;EAClC07M,SAAS,IAAIq+G,aAAa,CAAC/5T,KAAK,EAAE,uBAAuB,CAAC;EAC1D,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAC3B,OAAOA,KAAK,CAACriX,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;EACnC;EACA,MAAMy/rB,OAAO;EACb;EACAp9U,KAAK,CAAC7qX,cAAc,CAACuqrB,aAAa,CAAC,GAAG1/T,KAAK,CAAC0/T,aAAa,CAAC,GAAG7qqB,SAAS;EACtE;EACA,IAAI,OAAOuorB,OAAO,KAAK,QAAQ,EAAE;IAC7B,IAAIA,OAAO,IAAI,CAAC,EAAE;MACd,OAAOA,OAAO,GAAGrD,UAAU;IAC/B,CAAC,MACI;MACDr+H,SAAS,IACL69G,WAAW,CAAC6jB,OAAO,EAAE,CAAC,CAAC,CAAC,gCAAgC,sCAAsC,CAAC;MACnG,OAAOC,kBAAkB;IAC7B;EACJ,CAAC,MACI;IACD,OAAOD,OAAO;EAClB;AACJ;AACA,SAASlB,aAAaA,CAAC9B,SAAS,EAAE5P,aAAa,EAAE8S,YAAY,EAAE;EAC3D;EACA;EACA;EACA,MAAMj8qB,IAAI,GAAG,CAAC,IAAI+4qB,SAAS;EAC3B;EACA;EACA;EACA,MAAMlksB,KAAK,GAAGonsB,YAAY,CAAC9S,aAAa,IAAI4P,SAAS,IAAIJ,iBAAiB,CAAC,CAAC;EAC5E;EACA;EACA,OAAO,CAAC,EAAE9jsB,KAAK,GAAGmrB,IAAI,CAAC;AAC3B;AACA;AACA,SAAS46qB,kBAAkBA,CAAC57U,KAAK,EAAEk9U,gBAAgB,EAAE;EACjD,OAAO,EAAEl9U,KAAK,GAAG66T,WAAW,CAACqgB,IAAI,CAAC,IAAI,EAAEl7U,KAAK,GAAG66T,WAAW,CAACx/B,IAAI,IAAI6hD,gBAAgB,CAAC;AACzF;AACA,MAAMC,YAAY,CAAC;EACfhisB,WAAWA,CAACiisB,MAAM,EAAEC,MAAM,EAAE;IACxB,IAAI,CAACD,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACC,MAAM,GAAGA,MAAM;EACxB;EACApnsB,GAAGA,CAAC0pX,KAAK,EAAEi0Q,aAAa,EAAE5zQ,KAAK,EAAE;IAC7B,OAAOq7U,qBAAqB,CAAC,IAAI,CAAC+B,MAAM,EAAE,IAAI,CAACC,MAAM,EAAE19U,KAAK,EAAE0+T,iBAAiB,CAACr+T,KAAK,CAAC,EAAE4zQ,aAAa,CAAC;EAC1G;AACJ;AACA;AACA,SAASopE,kBAAkBA,CAAA,EAAG;EAC1B,OAAO,IAAIG,YAAY,CAAC/K,eAAe,CAAC,CAAC,EAAEN,QAAQ,CAAC,CAAC,CAAC;AAC1D;AACA;AACA;AACA;AACA,SAASj/D,qBAAqBA,CAACvqnB,IAAI,EAAE;EACjC,OAAOw2qB,aAAa,CAAC,MAAM;IACvB,MAAMwe,cAAc,GAAGh1rB,IAAI,CAACzT,SAAS,CAACsG,WAAW;IACjD,MAAMoisB,UAAU,GAAGD,cAAc,CAACle,cAAc,CAAC,IAAIoe,YAAY,CAACF,cAAc,CAAC;IACjF,MAAMG,eAAe,GAAG7osB,MAAM,CAACC,SAAS;IACxC,IAAIwhF,MAAM,GAAGzhF,MAAM,CAACy9Z,cAAc,CAAC/pZ,IAAI,CAACzT,SAAS,CAAC,CAACsG,WAAW;IAC9D;IACA,OAAOk7E,MAAM,IAAIA,MAAM,KAAKonnB,eAAe,EAAE;MACzC,MAAMpsV,OAAO,GAAGh7R,MAAM,CAAC+omB,cAAc,CAAC,IAAIoe,YAAY,CAACnnnB,MAAM,CAAC;MAC9D;MACA;MACA;MACA;MACA;MACA,IAAIg7R,OAAO,IAAIA,OAAO,KAAKksV,UAAU,EAAE;QACnC,OAAOlsV,OAAO;MAClB;MACAh7R,MAAM,GAAGzhF,MAAM,CAACy9Z,cAAc,CAACh8U,MAAM,CAAC;IAC1C;IACA;IACA;IACA;IACA;IACA,OAAO5hF,CAAC,IAAI,IAAIA,CAAC,CAAC,CAAC;EACvB,CAAC,CAAC;AACN;AACA,SAAS+osB,YAAYA,CAACl1rB,IAAI,EAAE;EACxB,IAAI+uqB,YAAY,CAAC/uqB,IAAI,CAAC,EAAE;IACpB,OAAO,MAAM;MACT,MAAM+oW,OAAO,GAAGmsV,YAAY,CAACpmB,iBAAiB,CAAC9uqB,IAAI,CAAC,CAAC;MACrD,OAAO+oW,OAAO,IAAIA,OAAO,CAAC,CAAC;IAC/B,CAAC;EACL;EACA,OAAO+4U,aAAa,CAAC9hrB,IAAI,CAAC;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASizrB,gCAAgCA,CAAC5f,KAAK,EAAE2M,KAAK,EAAE3oU,KAAK,EAAEK,KAAK,EAAE4zQ,aAAa,EAAE;EACjF,IAAIy+D,YAAY,GAAG1W,KAAK;EACxB,IAAI+hB,YAAY,GAAGpV,KAAK;EACxB;EACA;EACA;EACA;EACA;EACA;EACA,OAAO+J,YAAY,KAAK,IAAI,IAAIqL,YAAY,KAAK,IAAI,IAChDA,YAAY,CAACloR,KAAK,CAAC,GAAG,IAAI,CAAC,wCAAyC,IACrE,EAAEkoR,YAAY,CAACloR,KAAK,CAAC,GAAG,GAAG,CAAC,wBAAwB,EAAE;IACtD6lJ,SAAS,IAAIgtH,mBAAmB,CAACgK,YAAY,EAAEqL,YAAY,CAAC;IAC5D;IACA;IACA;IACA,MAAMC,iBAAiB,GAAGnC,4BAA4B,CAACnJ,YAAY,EAAEqL,YAAY,EAAE/9U,KAAK,EAAEK,KAAK,GAAG66T,WAAW,CAACqgB,IAAI,EAAErB,SAAS,CAAC;IAC9H,IAAI8D,iBAAiB,KAAK9D,SAAS,EAAE;MACjC,OAAO8D,iBAAiB;IAC5B;IACA;IACA,IAAIxJ,WAAW,GAAG9B,YAAY,CAACh8mB,MAAM;IACrC;IACA;IACA,IAAI,CAAC89mB,WAAW,EAAE;MACd;MACA,MAAMyJ,oBAAoB,GAAGF,YAAY,CAAC5W,sBAAsB,CAAC;MACjE,IAAI8W,oBAAoB,EAAE;QACtB,MAAMC,yBAAyB,GAAGD,oBAAoB,CAAC3nsB,GAAG,CAAC0pX,KAAK,EAAEk6U,SAAS,EAAE75U,KAAK,CAAC;QACnF,IAAI69U,yBAAyB,KAAKhE,SAAS,EAAE;UACzC,OAAOgE,yBAAyB;QACpC;MACJ;MACA;MACA1J,WAAW,GAAGwG,iBAAiB,CAAC+C,YAAY,CAAC;MAC7CA,YAAY,GAAGA,YAAY,CAACjX,gBAAgB,CAAC;IACjD;IACA4L,YAAY,GAAG8B,WAAW;EAC9B;EACA,OAAOvgE,aAAa;AACxB;AACA;AACA,SAAS+mE,iBAAiBA,CAACrS,KAAK,EAAE;EAC9B,MAAM1M,KAAK,GAAG0M,KAAK,CAACzC,KAAK,CAAC;EAC1B,MAAMiY,SAAS,GAAGliB,KAAK,CAACtzqB,IAAI;EAC5B;EACA,IAAIw1rB,SAAS,KAAK,CAAC,CAAC,0BAA0B;IAC1CziI,SAAS,IAAIq+G,aAAa,CAACkC,KAAK,CAACqY,SAAS,EAAE,kDAAkD,CAAC;IAC/F,OAAOrY,KAAK,CAACqY,SAAS;EAC1B,CAAC,MACI,IAAI6J,SAAS,KAAK,CAAC,CAAC,2BAA2B;IAChD;IACA;IACA,OAAOxV,KAAK,CAACrC,MAAM,CAAC;EACxB;EACA,OAAO,IAAI;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA,SAASnvC,iBAAiBA,CAACgkD,gBAAgB,EAAE;EACzC,OAAOD,mBAAmB,CAACzI,eAAe,CAAC,CAAC,EAAE0I,gBAAgB,CAAC;AACnE;AAEA,MAAMiD,WAAW,GAAG,iBAAiB;AACrC,MAAMC,UAAU,GAAG,gBAAgB;AACnC,MAAMC,aAAa,GAAG,oBAAoB;AAC1C;AACA;AACA;AACA,SAASC,aAAaA,CAACljsB,IAAI,EAAE0X,KAAK,EAAEyrrB,WAAW,EAAEC,oBAAoB,EAAEC,MAAM,EAAE;EAC3E,OAAOvf,aAAa,CAAC,MAAM;IACvB,MAAMwf,QAAQ,GAAGC,gBAAgB,CAAC7rrB,KAAK,CAAC;IACxC,SAAS8rrB,gBAAgBA,CAAC,GAAG96qB,IAAI,EAAE;MAC/B,IAAI,IAAI,YAAY86qB,gBAAgB,EAAE;QAClCF,QAAQ,CAACvpsB,IAAI,CAAC,IAAI,EAAE,GAAG2uB,IAAI,CAAC;QAC5B,OAAO,IAAI;MACf;MACA,MAAM+6qB,kBAAkB,GAAG,IAAID,gBAAgB,CAAC,GAAG96qB,IAAI,CAAC;MACxD,OAAO,SAASg7qB,aAAaA,CAAChgrB,GAAG,EAAE;QAC/B,IAAI2/qB,MAAM,EACNA,MAAM,CAAC3/qB,GAAG,EAAE,GAAGgF,IAAI,CAAC;QACxB;QACA;QACA,MAAMi7qB,WAAW,GAAGjgrB,GAAG,CAAC5pB,cAAc,CAACipsB,WAAW,CAAC,GAC/Cr/qB,GAAG,CAACq/qB,WAAW,CAAC,GAChBnpsB,MAAM,CAACgB,cAAc,CAAC8oB,GAAG,EAAEq/qB,WAAW,EAAE;UAAElosB,KAAK,EAAE;QAAG,CAAC,CAAC,CAACkosB,WAAW,CAAC;QACvEY,WAAW,CAAC1msB,IAAI,CAACwmsB,kBAAkB,CAAC;QACpC,IAAIL,oBAAoB,EACpBA,oBAAoB,CAAC1/qB,GAAG,CAAC;QAC7B,OAAOA,GAAG;MACd,CAAC;IACL;IACA,IAAIy/qB,WAAW,EAAE;MACbK,gBAAgB,CAAC3psB,SAAS,GAAGD,MAAM,CAAC4P,MAAM,CAAC25rB,WAAW,CAACtpsB,SAAS,CAAC;IACrE;IACA2psB,gBAAgB,CAAC3psB,SAAS,CAAC+psB,cAAc,GAAG5jsB,IAAI;IAChDwjsB,gBAAgB,CAACK,aAAa,GAAGL,gBAAgB;IACjD,OAAOA,gBAAgB;EAC3B,CAAC,CAAC;AACN;AACA,SAASD,gBAAgBA,CAAC7rrB,KAAK,EAAE;EAC7B,OAAO,SAAS24O,IAAIA,CAAC,GAAG3nO,IAAI,EAAE;IAC1B,IAAIhR,KAAK,EAAE;MACP,MAAM4T,MAAM,GAAG5T,KAAK,CAAC,GAAGgR,IAAI,CAAC;MAC7B,KAAK,MAAMi3D,QAAQ,IAAIr0D,MAAM,EAAE;QAC3B,IAAI,CAACq0D,QAAQ,CAAC,GAAGr0D,MAAM,CAACq0D,QAAQ,CAAC;MACrC;IACJ;EACJ,CAAC;AACL;AACA,SAASmknB,kBAAkBA,CAAC9jsB,IAAI,EAAE0X,KAAK,EAAEyrrB,WAAW,EAAE;EAClD,OAAOrf,aAAa,CAAC,MAAM;IACvB,MAAMwf,QAAQ,GAAGC,gBAAgB,CAAC7rrB,KAAK,CAAC;IACxC,SAASqsrB,qBAAqBA,CAAC,GAAGr7qB,IAAI,EAAE;MACpC,IAAI,IAAI,YAAYq7qB,qBAAqB,EAAE;QACvCT,QAAQ,CAAC/msB,KAAK,CAAC,IAAI,EAAEmsB,IAAI,CAAC;QAC1B,OAAO,IAAI;MACf;MACA,MAAM+6qB,kBAAkB,GAAG,IAAIM,qBAAqB,CAAC,GAAGr7qB,IAAI,CAAC;MAC7Ds7qB,cAAc,CAACC,UAAU,GAAGR,kBAAkB;MAC9C,OAAOO,cAAc;MACrB,SAASA,cAAcA,CAACtgrB,GAAG,EAAEwgrB,SAAS,EAAEjirB,KAAK,EAAE;QAC3C;QACA;QACA,MAAMkirB,UAAU,GAAGzgrB,GAAG,CAAC5pB,cAAc,CAACkpsB,UAAU,CAAC,GAC7Ct/qB,GAAG,CAACs/qB,UAAU,CAAC,GACfppsB,MAAM,CAACgB,cAAc,CAAC8oB,GAAG,EAAEs/qB,UAAU,EAAE;UAAEnosB,KAAK,EAAE;QAAG,CAAC,CAAC,CAACmosB,UAAU,CAAC;QACrE;QACA;QACA,OAAOmB,UAAU,CAAChqsB,MAAM,IAAI8nB,KAAK,EAAE;UAC/BkirB,UAAU,CAAClnsB,IAAI,CAAC,IAAI,CAAC;QACzB;QACA,CAACknsB,UAAU,CAAClirB,KAAK,CAAC,GAAGkirB,UAAU,CAAClirB,KAAK,CAAC,IAAI,EAAE,EAAEhlB,IAAI,CAACwmsB,kBAAkB,CAAC;QACtE,OAAO//qB,GAAG;MACd;IACJ;IACA,IAAIy/qB,WAAW,EAAE;MACbY,qBAAqB,CAAClqsB,SAAS,GAAGD,MAAM,CAAC4P,MAAM,CAAC25rB,WAAW,CAACtpsB,SAAS,CAAC;IAC1E;IACAkqsB,qBAAqB,CAAClqsB,SAAS,CAAC+psB,cAAc,GAAG5jsB,IAAI;IACrD+jsB,qBAAqB,CAACF,aAAa,GAAGE,qBAAqB;IAC3D,OAAOA,qBAAqB;EAChC,CAAC,CAAC;AACN;AACA,SAASK,iBAAiBA,CAACpksB,IAAI,EAAE0X,KAAK,EAAEyrrB,WAAW,EAAEC,oBAAoB,EAAE;EACvE,OAAOtf,aAAa,CAAC,MAAM;IACvB,MAAMwf,QAAQ,GAAGC,gBAAgB,CAAC7rrB,KAAK,CAAC;IACxC,SAAS2srB,oBAAoBA,CAAC,GAAG37qB,IAAI,EAAE;MACnC,IAAI,IAAI,YAAY27qB,oBAAoB,EAAE;QACtCf,QAAQ,CAAC/msB,KAAK,CAAC,IAAI,EAAEmsB,IAAI,CAAC;QAC1B,OAAO,IAAI;MACf;MACA,MAAM47qB,iBAAiB,GAAG,IAAID,oBAAoB,CAAC,GAAG37qB,IAAI,CAAC;MAC3D,SAAS67qB,aAAaA,CAAC9srB,MAAM,EAAEzX,IAAI,EAAE;QACjC;QACA;QACA,IAAIyX,MAAM,KAAK+B,SAAS,EAAE;UACtB,MAAM,IAAItZ,KAAK,CAAC,kEAAkE,CAAC;QACvF;QACA,MAAMC,WAAW,GAAGsX,MAAM,CAACtX,WAAW;QACtC;QACA;QACA,MAAMozB,IAAI,GAAGpzB,WAAW,CAACrG,cAAc,CAACmpsB,aAAa,CAAC,GAClD9isB,WAAW,CAAC8isB,aAAa,CAAC,GAC1BrpsB,MAAM,CAACgB,cAAc,CAACuF,WAAW,EAAE8isB,aAAa,EAAE;UAAEposB,KAAK,EAAE,CAAC;QAAE,CAAC,CAAC,CAACoosB,aAAa,CAAC;QACnF1vqB,IAAI,CAACvzB,IAAI,CAAC,GAAGuzB,IAAI,CAACz5B,cAAc,CAACkG,IAAI,CAAC,IAAIuzB,IAAI,CAACvzB,IAAI,CAAC,IAAI,EAAE;QAC1DuzB,IAAI,CAACvzB,IAAI,CAAC,CAAC7E,OAAO,CAACmpsB,iBAAiB,CAAC;QACrC,IAAIlB,oBAAoB,EACpBA,oBAAoB,CAAC3rrB,MAAM,EAAEzX,IAAI,EAAE,GAAG0oB,IAAI,CAAC;MACnD;MACA,OAAO67qB,aAAa;IACxB;IACA,IAAIpB,WAAW,EAAE;MACbkB,oBAAoB,CAACxqsB,SAAS,GAAGD,MAAM,CAAC4P,MAAM,CAAC25rB,WAAW,CAACtpsB,SAAS,CAAC;IACzE;IACAwqsB,oBAAoB,CAACxqsB,SAAS,CAAC+psB,cAAc,GAAG5jsB,IAAI;IACpDqksB,oBAAoB,CAACR,aAAa,GAAGQ,oBAAoB;IACzD,OAAOA,oBAAoB;EAC/B,CAAC,CAAC;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMv6D,SAAS,GAAGg6D,kBAAkB,CAAC,WAAW,EAAG5/qB,aAAa,KAAM;EAAEA,aAAa;EAAEogqB,iBAAiB,EAAEA,CAAA,KAAMxoC,iBAAiB,CAAC53nB,aAAa;AAAE,CAAC,CAAC,CAAC;;AAEpJ;AACA;AACA,MAAMsgrB,mCAAmC,GAAG,IAAI;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,KAAK,CAAC;AAEZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMxgE,eAAe,GAAGmgE,iBAAiB,CAAC,iBAAiB,EAAE,CAACz5f,QAAQ,EAAErmM,IAAI,GAAG,CAAC,CAAC,MAAM;EACnFqmM,QAAQ;EACRv7K,KAAK,EAAE,KAAK;EACZs1qB,WAAW,EAAE,KAAK;EAClBz7D,WAAW,EAAE,KAAK;EAClB07D,uBAAuB,EAAEH,mCAAmC;EAC5D,GAAGlgsB;AACP,CAAC,CAAC,EAAEmgsB,KAAK,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMzgE,YAAY,GAAGogE,iBAAiB,CAAC,cAAc,EAAE,CAACz5f,QAAQ,EAAErmM,IAAI,GAAG,CAAC,CAAC,MAAM;EAAEqmM,QAAQ;EAAEv7K,KAAK,EAAE,IAAI;EAAEs1qB,WAAW,EAAE,KAAK;EAAEz7D,WAAW,EAAE,IAAI;EAAE,GAAG3koB;AAAK,CAAC,CAAC,EAAEmgsB,KAAK,CAAC;AACnK;AACA;AACA;AACA;AACA;AACA;AACA,MAAMG,YAAY,GAAGR,iBAAiB,CAAC,cAAc,EAAE,CAACz5f,QAAQ,EAAErmM,IAAI,GAAG,CAAC,CAAC,MAAM;EAC7EqmM,QAAQ;EACRv7K,KAAK,EAAE,KAAK;EACZs1qB,WAAW,EAAE,IAAI;EACjBz7D,WAAW,EAAE,IAAI;EACjB07D,uBAAuB,EAAEH,mCAAmC;EAC5D,GAAGlgsB;AACP,CAAC,CAAC,EAAEmgsB,KAAK,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA,MAAMp4F,SAAS,GAAG+3F,iBAAiB,CAAC,WAAW,EAAE,CAACz5f,QAAQ,EAAErmM,IAAI,MAAM;EAAEqmM,QAAQ;EAAEv7K,KAAK,EAAE,IAAI;EAAEs1qB,WAAW,EAAE,IAAI;EAAEz7D,WAAW,EAAE,IAAI;EAAE,GAAG3koB;AAAK,CAAC,CAAC,EAAEmgsB,KAAK,CAAC;AAEvJ,IAAII,aAAa;AACjB,CAAC,UAAUA,aAAa,EAAE;EACtBA,aAAa,CAACA,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW;EAC3DA,aAAa,CAACA,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW;EAC3DA,aAAa,CAACA,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY;EAC7DA,aAAa,CAACA,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM;EACjDA,aAAa,CAACA,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU;AAC7D,CAAC,EAAEA,aAAa,KAAKA,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC;AACzC,IAAIC,wBAAwB;AAC5B,CAAC,UAAUA,wBAAwB,EAAE;EACjCA,wBAAwB,CAACA,wBAAwB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW;EACjFA,wBAAwB,CAACA,wBAAwB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM;EACvEA,wBAAwB,CAACA,wBAAwB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU;AACnF,CAAC,EAAEA,wBAAwB,KAAKA,wBAAwB,GAAG,CAAC,CAAC,CAAC,CAAC;AAC/D,IAAI34F,iBAAiB;AACrB,CAAC,UAAUA,iBAAiB,EAAE;EAC1BA,iBAAiB,CAACA,iBAAiB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU;EACjE;EACAA,iBAAiB,CAACA,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM;EACzDA,iBAAiB,CAACA,iBAAiB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW;AACvE,CAAC,EAAEA,iBAAiB,KAAKA,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC;AAEjD,SAAS44F,iBAAiBA,CAAC1uS,OAAO,EAAE;EAChC,MAAM2uS,QAAQ,GAAG5kB,OAAO,CAAC,IAAI,CAAC;EAC9B,IAAI4kB,QAAQ,IAAIA,QAAQ,CAACC,eAAe,EAAE;IACtC,OAAOD,QAAQ,CAACC,eAAe;EACnC;EACA,IAAI,OAAO5kI,SAAS,KAAK,WAAW,IAAIA,SAAS,EAAE;IAC/C;IACA;IACA7wjB,OAAO,CAACpP,KAAK,CAAE,8BAA6Bi2Z,OAAO,CAACjT,IAAK,EAAC,EAAEiT,OAAO,CAAC/oZ,IAAI,CAAC;IACzE,IAAIuI,OAAO,GAAI,OAAMwgZ,OAAO,CAACjT,IAAK,KAAIiT,OAAO,CACxC/oZ,IAAI,CAACtN,IAAK,8FAA6F;IAC5G,IAAIq2Z,OAAO,CAAC6uS,KAAK,KAAK,CAAC,CAAC,2CAA2C;MAC/DrvrB,OAAO,IAAK,OAAMwgZ,OAAO,CAACjT,IAAK,2DAA0D;MACzFvtY,OAAO,IACF,4GAA2G;MAChHA,OAAO,IAAI,IAAI;MACfA,OAAO,IACF,4FAA2F;IACpG,CAAC,MACI;MACDA,OAAO,IACF,6FAA4F;IACrG;IACAA,OAAO,IACF,8IAA6I;IAClJA,OAAO,IACF,2FAA0F;IAC/F,MAAM,IAAI3V,KAAK,CAAC2V,OAAO,CAAC;EAC5B,CAAC,MACI;IACD,MAAM,IAAI3V,KAAK,CAAC,0BAA0B,CAAC;EAC/C;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMu0c,IAAI,GAAG7oL,QAAQ;AACrB,SAASu5a,MAAMA,CAACljsB,CAAC,EAAE;EACf,OAAO,OAAOA,CAAC,KAAK,UAAU;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASmjsB,WAAWA,CAACtpsB,CAAC,EAAE6F,CAAC,EAAE0jsB,gBAAgB,EAAE;EACzC,IAAIvpsB,CAAC,CAAC3B,MAAM,KAAKwH,CAAC,CAACxH,MAAM,EACrB,OAAO,KAAK;EAChB,KAAK,IAAIT,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGoC,CAAC,CAAC3B,MAAM,EAAET,CAAC,EAAE,EAAE;IAC/B,IAAIwwV,MAAM,GAAGpuV,CAAC,CAACpC,CAAC,CAAC;IACjB,IAAIywV,MAAM,GAAGxoV,CAAC,CAACjI,CAAC,CAAC;IACjB,IAAI2rsB,gBAAgB,EAAE;MAClBn7W,MAAM,GAAGm7W,gBAAgB,CAACn7W,MAAM,CAAC;MACjCC,MAAM,GAAGk7W,gBAAgB,CAACl7W,MAAM,CAAC;IACrC;IACA,IAAIA,MAAM,KAAKD,MAAM,EAAE;MACnB,OAAO,KAAK;IAChB;EACJ;EACA,OAAO,IAAI;AACf;AACA;AACA;AACA;AACA,SAASo7W,OAAOA,CAACr9mB,IAAI,EAAE;EACnB,OAAOA,IAAI,CAACs9mB,IAAI,CAAC/smB,MAAM,CAACgtmB,iBAAiB,CAAC;AAC9C;AACA,SAASr/B,WAAWA,CAAC/9V,KAAK,EAAEtpT,EAAE,EAAE;EAC5BspT,KAAK,CAACzoU,OAAO,CAAC9E,KAAK,IAAIwG,KAAK,CAACoJ,OAAO,CAAC5P,KAAK,CAAC,GAAGsrqB,WAAW,CAACtrqB,KAAK,EAAEikB,EAAE,CAAC,GAAGA,EAAE,CAACjkB,KAAK,CAAC,CAAC;AACrF;AACA,SAAS4qsB,UAAUA,CAAC/srB,GAAG,EAAEuJ,KAAK,EAAEpnB,KAAK,EAAE;EACnC;EACA,IAAIonB,KAAK,IAAIvJ,GAAG,CAACve,MAAM,EAAE;IACrBue,GAAG,CAACzb,IAAI,CAACpC,KAAK,CAAC;EACnB,CAAC,MACI;IACD6d,GAAG,CAAC2gK,MAAM,CAACp3J,KAAK,EAAE,CAAC,EAAEpnB,KAAK,CAAC;EAC/B;AACJ;AACA,SAAS6qsB,eAAeA,CAAChtrB,GAAG,EAAEuJ,KAAK,EAAE;EACjC;EACA,IAAIA,KAAK,IAAIvJ,GAAG,CAACve,MAAM,GAAG,CAAC,EAAE;IACzB,OAAOue,GAAG,CAACjd,GAAG,CAAC,CAAC;EACpB,CAAC,MACI;IACD,OAAOid,GAAG,CAAC2gK,MAAM,CAACp3J,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;EAClC;AACJ;AACA,SAASughB,QAAQA,CAACn0hB,IAAI,EAAExT,KAAK,EAAE;EAC3B,MAAMotF,IAAI,GAAG,EAAE;EACf,KAAK,IAAIvuF,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG2U,IAAI,EAAE3U,CAAC,EAAE,EAAE;IAC3BuuF,IAAI,CAAChrF,IAAI,CAACpC,KAAK,CAAC;EACpB;EACA,OAAOotF,IAAI;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS09mB,WAAWA,CAACtirB,KAAK,EAAEpB,KAAK,EAAEijE,KAAK,EAAE;EACtC,MAAM/qF,MAAM,GAAGkpB,KAAK,CAAClpB,MAAM,GAAG+qF,KAAK;EACnC,OAAOjjE,KAAK,GAAG9nB,MAAM,EAAE;IACnBkpB,KAAK,CAACpB,KAAK,CAAC,GAAGoB,KAAK,CAACpB,KAAK,GAAGijE,KAAK,CAAC;IACnCjjE,KAAK,EAAE;EACX;EACA,OAAOijE,KAAK,EAAE,EAAE;IACZ7hE,KAAK,CAAC5nB,GAAG,CAAC,CAAC,CAAC,CAAC;EACjB;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASmqsB,WAAWA,CAACvirB,KAAK,EAAEpB,KAAK,EAAEpnB,KAAK,EAAE;EACtCwlkB,SAAS,IAAIy9G,qBAAqB,CAAC77pB,KAAK,EAAEoB,KAAK,CAAClpB,MAAM,EAAE,+BAA+B,CAAC;EACxF,IAAI+uB,GAAG,GAAG7F,KAAK,CAAClpB,MAAM;EACtB,OAAO+uB,GAAG,GAAGjH,KAAK,EAAE;IAChB,MAAM4jrB,WAAW,GAAG38qB,GAAG,GAAG,CAAC;IAC3B7F,KAAK,CAAC6F,GAAG,CAAC,GAAG7F,KAAK,CAACwirB,WAAW,CAAC;IAC/B38qB,GAAG,GAAG28qB,WAAW;EACrB;EACAxirB,KAAK,CAACpB,KAAK,CAAC,GAAGpnB,KAAK;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASirsB,YAAYA,CAACzirB,KAAK,EAAEpB,KAAK,EAAE8hJ,MAAM,EAAEG,MAAM,EAAE;EAChDm8Z,SAAS,IAAIy9G,qBAAqB,CAAC77pB,KAAK,EAAEoB,KAAK,CAAClpB,MAAM,EAAE,+BAA+B,CAAC;EACxF,IAAI+uB,GAAG,GAAG7F,KAAK,CAAClpB,MAAM;EACtB,IAAI+uB,GAAG,IAAIjH,KAAK,EAAE;IACd;IACAoB,KAAK,CAACpmB,IAAI,CAAC8mK,MAAM,EAAEG,MAAM,CAAC;EAC9B,CAAC,MACI,IAAIh7I,GAAG,KAAK,CAAC,EAAE;IAChB;IACA7F,KAAK,CAACpmB,IAAI,CAACinK,MAAM,EAAE7gJ,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5BA,KAAK,CAAC,CAAC,CAAC,GAAG0gJ,MAAM;EACrB,CAAC,MACI;IACD76I,GAAG,EAAE;IACL7F,KAAK,CAACpmB,IAAI,CAAComB,KAAK,CAAC6F,GAAG,GAAG,CAAC,CAAC,EAAE7F,KAAK,CAAC6F,GAAG,CAAC,CAAC;IACtC,OAAOA,GAAG,GAAGjH,KAAK,EAAE;MAChB,MAAM4jrB,WAAW,GAAG38qB,GAAG,GAAG,CAAC;MAC3B7F,KAAK,CAAC6F,GAAG,CAAC,GAAG7F,KAAK,CAACwirB,WAAW,CAAC;MAC/B38qB,GAAG,EAAE;IACT;IACA7F,KAAK,CAACpB,KAAK,CAAC,GAAG8hJ,MAAM;IACrB1gJ,KAAK,CAACpB,KAAK,GAAG,CAAC,CAAC,GAAGiiJ,MAAM;EAC7B;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS6hiB,kBAAkBA,CAAC1irB,KAAK,EAAExoB,KAAK,EAAE;EACtC,OAAOmrsB,mBAAmB,CAAC3irB,KAAK,EAAExoB,KAAK,EAAE,CAAC,CAAC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASorsB,gBAAgBA,CAACC,aAAa,EAAEnurB,GAAG,EAAEld,KAAK,EAAE;EACjD,IAAIonB,KAAK,GAAGkkrB,oBAAoB,CAACD,aAAa,EAAEnurB,GAAG,CAAC;EACpD,IAAIkK,KAAK,IAAI,CAAC,EAAE;IACZ;IACAikrB,aAAa,CAACjkrB,KAAK,GAAG,CAAC,CAAC,GAAGpnB,KAAK;EACpC,CAAC,MACI;IACDonB,KAAK,GAAG,CAACA,KAAK;IACd6jrB,YAAY,CAACI,aAAa,EAAEjkrB,KAAK,EAAElK,GAAG,EAAEld,KAAK,CAAC;EAClD;EACA,OAAOonB,KAAK;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASmkrB,gBAAgBA,CAACF,aAAa,EAAEnurB,GAAG,EAAE;EAC1C,MAAMkK,KAAK,GAAGkkrB,oBAAoB,CAACD,aAAa,EAAEnurB,GAAG,CAAC;EACtD,IAAIkK,KAAK,IAAI,CAAC,EAAE;IACZ;IACA,OAAOikrB,aAAa,CAACjkrB,KAAK,GAAG,CAAC,CAAC;EACnC;EACA,OAAOzI,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS2srB,oBAAoBA,CAACD,aAAa,EAAEnurB,GAAG,EAAE;EAC9C,OAAOiurB,mBAAmB,CAACE,aAAa,EAAEnurB,GAAG,EAAE,CAAC,CAAC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASsurB,mBAAmBA,CAACH,aAAa,EAAEnurB,GAAG,EAAE;EAC7C,MAAMkK,KAAK,GAAGkkrB,oBAAoB,CAACD,aAAa,EAAEnurB,GAAG,CAAC;EACtD,IAAIkK,KAAK,IAAI,CAAC,EAAE;IACZ;IACA0jrB,WAAW,CAACO,aAAa,EAAEjkrB,KAAK,EAAE,CAAC,CAAC;EACxC;EACA,OAAOA,KAAK;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS+jrB,mBAAmBA,CAAC3irB,KAAK,EAAExoB,KAAK,EAAEq6K,KAAK,EAAE;EAC9CmrZ,SAAS,IAAI69G,WAAW,CAAC78qB,KAAK,CAACoJ,OAAO,CAAC4Y,KAAK,CAAC,EAAE,IAAI,EAAE,oBAAoB,CAAC;EAC1E,IAAI85D,KAAK,GAAG,CAAC;EACb,IAAIj0D,GAAG,GAAG7F,KAAK,CAAClpB,MAAM,IAAI+6K,KAAK;EAC/B,OAAOhsJ,GAAG,KAAKi0D,KAAK,EAAE;IAClB,MAAM8iE,MAAM,GAAG9iE,KAAK,IAAKj0D,GAAG,GAAGi0D,KAAK,IAAK,CAAC,CAAC,CAAC,CAAC;IAC7C,MAAMk8D,OAAO,GAAGh2H,KAAK,CAAC48H,MAAM,IAAIi1B,KAAK,CAAC;IACtC,IAAIr6K,KAAK,KAAKw+I,OAAO,EAAE;MACnB,OAAQ4G,MAAM,IAAIi1B,KAAK;IAC3B,CAAC,MACI,IAAI77B,OAAO,GAAGx+I,KAAK,EAAE;MACtBquB,GAAG,GAAG+2H,MAAM;IAChB,CAAC,MACI;MACD9iE,KAAK,GAAG8iE,MAAM,GAAG,CAAC,CAAC,CAAC;IACxB;EACJ;;EACA,OAAO,EAAE/2H,GAAG,IAAIgsJ,KAAK,CAAC;AAC1B;;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,MAAMoxhB,iBAAiB,GAAG,sGAAsG;AAChI;AACA,MAAMC,sBAAsB,GAAG,2CAA2C;AAC1E;AACA;AACA;AACA;AACA,MAAMC,gCAAgC,GAAG,kEAAkE;AAC3G;AACA;AACA;AACA;AACA,MAAMC,yCAAyC,GAAG,qGAAqG;AACvJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,cAAcA,CAACtlK,OAAO,EAAE;EAC7B,OAAOklK,iBAAiB,CAACh2rB,IAAI,CAAC8whB,OAAO,CAAC,IAClCqlK,yCAAyC,CAACn2rB,IAAI,CAAC8whB,OAAO,CAAC,IACtDmlK,sBAAsB,CAACj2rB,IAAI,CAAC8whB,OAAO,CAAC,IAAI,CAAColK,gCAAgC,CAACl2rB,IAAI,CAAC8whB,OAAO,CAAE;AACjG;AACA,MAAMulK,sBAAsB,CAAC;EACzBxmsB,WAAWA,CAACymsB,OAAO,EAAE;IACjB,IAAI,CAACC,QAAQ,GAAGD,OAAO,IAAIxmB,OAAO,CAAC,SAAS,CAAC;EACjD;EACA/pU,OAAOA,CAAC58W,CAAC,EAAE;IACP,OAAO,CAAC,GAAGivB,IAAI,KAAK,IAAIjvB,CAAC,CAAC,GAAGivB,IAAI,CAAC;EACtC;EACA;EACAo+qB,uBAAuBA,CAACC,UAAU,EAAEC,gBAAgB,EAAE;IAClD,IAAIt9qB,MAAM;IACV,IAAI,OAAOq9qB,UAAU,KAAK,WAAW,EAAE;MACnCr9qB,MAAM,GAAG84gB,QAAQ,CAACwkK,gBAAgB,CAAC7ssB,MAAM,CAAC;IAC9C,CAAC,MACI;MACDuvB,MAAM,GAAG84gB,QAAQ,CAACukK,UAAU,CAAC5ssB,MAAM,CAAC;IACxC;IACA,KAAK,IAAIT,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGgwB,MAAM,CAACvvB,MAAM,EAAET,CAAC,EAAE,EAAE;MACpC;MACA;MACA;MACA,IAAI,OAAOqtsB,UAAU,KAAK,WAAW,EAAE;QACnCr9qB,MAAM,CAAChwB,CAAC,CAAC,GAAG,EAAE;MAClB,CAAC,MACI,IAAIqtsB,UAAU,CAACrtsB,CAAC,CAAC,IAAIqtsB,UAAU,CAACrtsB,CAAC,CAAC,IAAIE,MAAM,EAAE;QAC/C8vB,MAAM,CAAChwB,CAAC,CAAC,GAAG,CAACqtsB,UAAU,CAACrtsB,CAAC,CAAC,CAAC;MAC/B,CAAC,MACI;QACDgwB,MAAM,CAAChwB,CAAC,CAAC,GAAG,EAAE;MAClB;MACA,IAAIstsB,gBAAgB,IAAIA,gBAAgB,CAACttsB,CAAC,CAAC,IAAI,IAAI,EAAE;QACjDgwB,MAAM,CAAChwB,CAAC,CAAC,GAAGgwB,MAAM,CAAChwB,CAAC,CAAC,CAAC4e,MAAM,CAAC0urB,gBAAgB,CAACttsB,CAAC,CAAC,CAAC;MACrD;IACJ;IACA,OAAOgwB,MAAM;EACjB;EACAu9qB,cAAcA,CAAC35rB,IAAI,EAAE45rB,UAAU,EAAE;IAC7B,MAAM9lK,OAAO,GAAG9zhB,IAAI,CAAC3P,QAAQ,CAAC,CAAC;IAC/B;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI+osB,cAAc,CAACtlK,OAAO,CAAC,EAAE;MACzB,OAAO,IAAI;IACf;IACA;IACA,IAAI9zhB,IAAI,CAAC62rB,UAAU,IAAI72rB,IAAI,CAAC62rB,UAAU,KAAK+C,UAAU,CAAC/C,UAAU,EAAE;MAC9D,OAAO72rB,IAAI,CAAC62rB,UAAU;IAC1B;IACA;IACA,MAAMgD,iBAAiB,GAAG75rB,IAAI,CAAC85rB,cAAc;IAC7C,IAAID,iBAAiB,IAAIA,iBAAiB,KAAKD,UAAU,CAACE,cAAc,EAAE;MACtE;MACA;MACA,MAAMA,cAAc,GAAG,OAAOD,iBAAiB,KAAK,UAAU,GAAGA,iBAAiB,CAAC,CAAC,GAAGA,iBAAiB;MACxG,MAAMJ,UAAU,GAAGK,cAAc,CAAC/ksB,GAAG,CAAEglsB,SAAS,IAAKA,SAAS,IAAIA,SAAS,CAAC/5rB,IAAI,CAAC;MACjF,MAAM05rB,gBAAgB,GAAGI,cAAc,CAAC/ksB,GAAG,CAAEglsB,SAAS,IAAKA,SAAS,IAAIC,mCAAmC,CAACD,SAAS,CAAC73G,UAAU,CAAC,CAAC;MAClI,OAAO,IAAI,CAACs3G,uBAAuB,CAACC,UAAU,EAAEC,gBAAgB,CAAC;IACrE;IACA;IACA,MAAMA,gBAAgB,GAAG15rB,IAAI,CAACxT,cAAc,CAACkpsB,UAAU,CAAC,IAAI11rB,IAAI,CAAC01rB,UAAU,CAAC;IAC5E,MAAM+D,UAAU,GAAG,IAAI,CAACF,QAAQ,IAAI,IAAI,CAACA,QAAQ,CAACU,cAAc,IAC5D,IAAI,CAACV,QAAQ,CAACU,cAAc,CAAC,mBAAmB,EAAEj6rB,IAAI,CAAC;IAC3D,IAAIy5rB,UAAU,IAAIC,gBAAgB,EAAE;MAChC,OAAO,IAAI,CAACF,uBAAuB,CAACC,UAAU,EAAEC,gBAAgB,CAAC;IACrE;IACA;IACA;IACA;IACA;IACA,OAAOxkK,QAAQ,CAACl1hB,IAAI,CAACnT,MAAM,CAAC;EAChC;EACAgqsB,UAAUA,CAAC72rB,IAAI,EAAE;IACb;IACA;IACA,IAAI,CAAC63rB,MAAM,CAAC73rB,IAAI,CAAC,EAAE;MACf,OAAO,EAAE;IACb;IACA,MAAM45rB,UAAU,GAAGM,aAAa,CAACl6rB,IAAI,CAAC;IACtC,IAAI62rB,UAAU,GAAG,IAAI,CAAC8C,cAAc,CAAC35rB,IAAI,EAAE45rB,UAAU,CAAC;IACtD,IAAI,CAAC/C,UAAU,IAAI+C,UAAU,KAAKttsB,MAAM,EAAE;MACtCuqsB,UAAU,GAAG,IAAI,CAACA,UAAU,CAAC+C,UAAU,CAAC;IAC5C;IACA,OAAO/C,UAAU,IAAI,EAAE;EAC3B;EACAsD,eAAeA,CAACC,UAAU,EAAER,UAAU,EAAE;IACpC;IACA,IAAIQ,UAAU,CAAC/D,WAAW,IAAI+D,UAAU,CAAC/D,WAAW,KAAKuD,UAAU,CAACvD,WAAW,EAAE;MAC7E,IAAIA,WAAW,GAAG+D,UAAU,CAAC/D,WAAW;MACxC,IAAI,OAAOA,WAAW,KAAK,UAAU,IAAIA,WAAW,CAACA,WAAW,EAAE;QAC9DA,WAAW,GAAGA,WAAW,CAACA,WAAW;MACzC;MACA,OAAOA,WAAW;IACtB;IACA;IACA,IAAI+D,UAAU,CAACl4G,UAAU,IAAIk4G,UAAU,CAACl4G,UAAU,KAAK03G,UAAU,CAAC13G,UAAU,EAAE;MAC1E,OAAO83G,mCAAmC,CAACI,UAAU,CAACl4G,UAAU,CAAC;IACrE;IACA;IACA,IAAIk4G,UAAU,CAAC5tsB,cAAc,CAACipsB,WAAW,CAAC,EAAE;MACxC,OAAO2E,UAAU,CAAC3E,WAAW,CAAC;IAClC;IACA,OAAO,IAAI;EACf;EACAY,WAAWA,CAAC+D,UAAU,EAAE;IACpB,IAAI,CAACvC,MAAM,CAACuC,UAAU,CAAC,EAAE;MACrB,OAAO,EAAE;IACb;IACA,MAAMR,UAAU,GAAGM,aAAa,CAACE,UAAU,CAAC;IAC5C,MAAMC,cAAc,GAAG,IAAI,CAACF,eAAe,CAACC,UAAU,EAAER,UAAU,CAAC,IAAI,EAAE;IACzE,MAAMU,iBAAiB,GAAGV,UAAU,KAAKttsB,MAAM,GAAG,IAAI,CAAC+psB,WAAW,CAACuD,UAAU,CAAC,GAAG,EAAE;IACnF,OAAOU,iBAAiB,CAACtvrB,MAAM,CAACqvrB,cAAc,CAAC;EACnD;EACAE,gBAAgBA,CAACH,UAAU,EAAER,UAAU,EAAE;IACrC;IACA,IAAIQ,UAAU,CAACI,YAAY,IACvBJ,UAAU,CAACI,YAAY,KAAKZ,UAAU,CAACY,YAAY,EAAE;MACrD,IAAIA,YAAY,GAAGJ,UAAU,CAACI,YAAY;MAC1C,IAAI,OAAOA,YAAY,KAAK,UAAU,IAAIA,YAAY,CAACA,YAAY,EAAE;QACjEA,YAAY,GAAGA,YAAY,CAACA,YAAY;MAC5C;MACA,OAAOA,YAAY;IACvB;IACA;IACA,IAAIJ,UAAU,CAACK,cAAc,IACzBL,UAAU,CAACK,cAAc,KAAKb,UAAU,CAACa,cAAc,EAAE;MACzD,MAAMA,cAAc,GAAGL,UAAU,CAACK,cAAc;MAChD,MAAMD,YAAY,GAAG,CAAC,CAAC;MACvBlusB,MAAM,CAACiG,IAAI,CAACkosB,cAAc,CAAC,CAACposB,OAAO,CAACkvB,IAAI,IAAI;QACxCi5qB,YAAY,CAACj5qB,IAAI,CAAC,GAAGy4qB,mCAAmC,CAACS,cAAc,CAACl5qB,IAAI,CAAC,CAAC;MAClF,CAAC,CAAC;MACF,OAAOi5qB,YAAY;IACvB;IACA;IACA,IAAIJ,UAAU,CAAC5tsB,cAAc,CAACmpsB,aAAa,CAAC,EAAE;MAC1C,OAAOyE,UAAU,CAACzE,aAAa,CAAC;IACpC;IACA,OAAO,IAAI;EACf;EACA6E,YAAYA,CAACJ,UAAU,EAAE;IACrB,IAAI,CAACvC,MAAM,CAACuC,UAAU,CAAC,EAAE;MACrB,OAAO,CAAC,CAAC;IACb;IACA,MAAMR,UAAU,GAAGM,aAAa,CAACE,UAAU,CAAC;IAC5C,MAAMI,YAAY,GAAG,CAAC,CAAC;IACvB,IAAIZ,UAAU,KAAKttsB,MAAM,EAAE;MACvB,MAAMousB,kBAAkB,GAAG,IAAI,CAACF,YAAY,CAACZ,UAAU,CAAC;MACxDttsB,MAAM,CAACiG,IAAI,CAACmosB,kBAAkB,CAAC,CAACrosB,OAAO,CAAEggF,QAAQ,IAAK;QAClDmonB,YAAY,CAACnonB,QAAQ,CAAC,GAAGqonB,kBAAkB,CAACronB,QAAQ,CAAC;MACzD,CAAC,CAAC;IACN;IACA,MAAMsonB,eAAe,GAAG,IAAI,CAACJ,gBAAgB,CAACH,UAAU,EAAER,UAAU,CAAC;IACrE,IAAIe,eAAe,EAAE;MACjBrusB,MAAM,CAACiG,IAAI,CAACoosB,eAAe,CAAC,CAACtosB,OAAO,CAAEggF,QAAQ,IAAK;QAC/C,MAAM6vgB,UAAU,GAAG,EAAE;QACrB,IAAIs4G,YAAY,CAAChusB,cAAc,CAAC6lF,QAAQ,CAAC,EAAE;UACvC6vgB,UAAU,CAACvylB,IAAI,CAAC,GAAG6qsB,YAAY,CAACnonB,QAAQ,CAAC,CAAC;QAC9C;QACA6vgB,UAAU,CAACvylB,IAAI,CAAC,GAAGgrsB,eAAe,CAACtonB,QAAQ,CAAC,CAAC;QAC7CmonB,YAAY,CAACnonB,QAAQ,CAAC,GAAG6vgB,UAAU;MACvC,CAAC,CAAC;IACN;IACA,OAAOs4G,YAAY;EACvB;EACAG,eAAeA,CAACP,UAAU,EAAE;IACxB,IAAI,CAACvC,MAAM,CAACuC,UAAU,CAAC,EAAE;MACrB,OAAO,CAAC,CAAC;IACb;IACA,OAAO,IAAI,CAACG,gBAAgB,CAACH,UAAU,EAAEF,aAAa,CAACE,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;EAC7E;EACAQ,gBAAgBA,CAAC56rB,IAAI,EAAE66rB,UAAU,EAAE;IAC/B,OAAO76rB,IAAI,YAAYmnc,IAAI,IAAI0zP,UAAU,IAAI76rB,IAAI,CAACzT,SAAS;EAC/D;AACJ;AACA,SAASytsB,mCAAmCA,CAACc,oBAAoB,EAAE;EAC/D,IAAI,CAACA,oBAAoB,EAAE;IACvB,OAAO,EAAE;EACb;EACA,OAAOA,oBAAoB,CAAC/lsB,GAAG,CAACgmsB,mBAAmB,IAAI;IACnD,MAAMC,aAAa,GAAGD,mBAAmB,CAAC/6rB,IAAI;IAC9C,MAAMu2rB,aAAa,GAAGyE,aAAa,CAACzE,aAAa;IACjD,MAAM0E,cAAc,GAAGF,mBAAmB,CAAC3/qB,IAAI,GAAG2/qB,mBAAmB,CAAC3/qB,IAAI,GAAG,EAAE;IAC/E,OAAO,IAAIm7qB,aAAa,CAAC,GAAG0E,cAAc,CAAC;EAC/C,CAAC,CAAC;AACN;AACA,SAASf,aAAaA,CAACn3c,IAAI,EAAE;EACzB,MAAMm4c,WAAW,GAAGn4c,IAAI,CAACx2P,SAAS,GAAGD,MAAM,CAACy9Z,cAAc,CAAChnK,IAAI,CAACx2P,SAAS,CAAC,GAAG,IAAI;EACjF,MAAMqtsB,UAAU,GAAGsB,WAAW,GAAGA,WAAW,CAACrosB,WAAW,GAAG,IAAI;EAC/D;EACA;EACA,OAAO+msB,UAAU,IAAIttsB,MAAM;AAC/B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM+wlB,MAAM,GAAG64F,gBAAgB;AAC/B;AACA;AACAsgB,kBAAkB,CAAC,QAAQ,EAAGn/U,KAAK,KAAM;EAAEA;AAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,2BAA2B,CAAC;AACrF;AACA;AACA;AACA;AACA;AACA;AACA,MAAMqmO,QAAQ;AACd;AACA;AACAw4F,gBAAgB,CAACsgB,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,kCAAkC,CAAC;AACtF;AACA;AACA;AACA;AACA;AACA;AACA,MAAM5D,IAAI;AACV;AACA;AACA1c,gBAAgB,CAACsgB,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,8BAA8B,CAAC;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA,MAAM3hG,QAAQ;AACd;AACA;AACAqhF,gBAAgB,CAACsgB,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,kCAAkC,CAAC;AACtF;AACA;AACA;AACA;AACA;AACA;AACA,MAAMzjD,IAAI;AACV;AACA;AACAmjC,gBAAgB,CAACsgB,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,8BAA8B,CAAC;;AAE9E,IAAI+C,QAAQ,GAAG,IAAI;AACnB,SAAS4B,UAAUA,CAAA,EAAG;EAClB,OAAQ5B,QAAQ,GAAGA,QAAQ,IAAI,IAAIF,sBAAsB,CAAC,CAAC;AAC/D;AACA,SAAS+B,mBAAmBA,CAACp7rB,IAAI,EAAE;EAC/B,OAAOq7rB,mBAAmB,CAACF,UAAU,CAAC,CAAC,CAACtE,UAAU,CAAC72rB,IAAI,CAAC,CAAC;AAC7D;AACA,SAASq7rB,mBAAmBA,CAACv1X,IAAI,EAAE;EAC/B,OAAOA,IAAI,CAAC/wU,GAAG,CAACsvV,GAAG,IAAIi3W,iBAAiB,CAACj3W,GAAG,CAAC,CAAC;AAClD;AACA,SAASi3W,iBAAiBA,CAACj3W,GAAG,EAAE;EAC5B,MAAMp+T,IAAI,GAAG;IACToxV,KAAK,EAAE,IAAI;IACXkkV,SAAS,EAAE,IAAI;IACfnja,IAAI,EAAE,KAAK;IACXipS,QAAQ,EAAE,KAAK;IACfn0kB,IAAI,EAAE,KAAK;IACXy/qB,QAAQ,EAAE;EACd,CAAC;EACD,IAAI54qB,KAAK,CAACoJ,OAAO,CAACknV,GAAG,CAAC,IAAIA,GAAG,CAACx3V,MAAM,GAAG,CAAC,EAAE;IACtC,KAAK,IAAIuM,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGirV,GAAG,CAACx3V,MAAM,EAAEuM,CAAC,EAAE,EAAE;MACjC,MAAMu+P,KAAK,GAAG0sF,GAAG,CAACjrV,CAAC,CAAC;MACpB,IAAIu+P,KAAK,KAAKzrP,SAAS,EAAE;QACrB;QACA;MACJ;MACA,MAAMu1S,KAAK,GAAGn1T,MAAM,CAACy9Z,cAAc,CAACpyJ,KAAK,CAAC;MAC1C,IAAIA,KAAK,YAAY+lV,QAAQ,IAAIj8R,KAAK,CAAC60Y,cAAc,KAAK,UAAU,EAAE;QAClErwqB,IAAI,CAACo7iB,QAAQ,GAAG,IAAI;MACxB,CAAC,MACI,IAAI1pU,KAAK,YAAYk9V,QAAQ,IAAIpzS,KAAK,CAAC60Y,cAAc,KAAK,UAAU,EAAE;QACvErwqB,IAAI,CAAC0mpB,QAAQ,GAAG,IAAI;MACxB,CAAC,MACI,IAAIh1a,KAAK,YAAYi7b,IAAI,IAAInxY,KAAK,CAAC60Y,cAAc,KAAK,MAAM,EAAE;QAC/DrwqB,IAAI,CAAC/4B,IAAI,GAAG,IAAI;MACpB,CAAC,MACI,IAAIyqQ,KAAK,YAAYo7Y,IAAI,IAAItxV,KAAK,CAAC60Y,cAAc,KAAK,MAAM,EAAE;QAC/DrwqB,IAAI,CAACmyQ,IAAI,GAAG,IAAI;MACpB,CAAC,MACI,IAAIzgC,KAAK,YAAY0lV,MAAM,EAAE;QAC9Bp3jB,IAAI,CAACoxV,KAAK,GAAG1/G,KAAK,CAAC0/G,KAAK;MAC5B,CAAC,MACI,IAAI1/G,KAAK,YAAY6kY,SAAS,EAAE;QACjC,IAAI7kY,KAAK,CAAC/gP,aAAa,KAAK1K,SAAS,EAAE;UACnC,MAAM,IAAIijqB,YAAY,CAAC,GAAG,CAAC,gDAAgDp8G,SAAS,IAAK,iCAAgC,CAAC;QAC9H;QACA9siB,IAAI,CAACs1qB,SAAS,GAAG5jc,KAAK,CAAC/gP,aAAa;MACxC,CAAC,MACI;QACDqP,IAAI,CAACoxV,KAAK,GAAG1/G,KAAK;MACtB;IACJ;EACJ,CAAC,MACI,IAAI0sF,GAAG,KAAKn4U,SAAS,IAAKnY,KAAK,CAACoJ,OAAO,CAACknV,GAAG,CAAC,IAAIA,GAAG,CAACx3V,MAAM,KAAK,CAAE,EAAE;IACpEo5B,IAAI,CAACoxV,KAAK,GAAG,IAAI;EACrB,CAAC,MACI;IACDpxV,IAAI,CAACoxV,KAAK,GAAGhzB,GAAG;EACpB;EACA,OAAOp+T,IAAI;AACf;;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,SAASu1qB,yBAAyBA,CAACC,gBAAgB,EAAE;EACjD;EACA,MAAMC,iBAAiB,GAAG,EAAE;EAC5B;EACA,MAAMC,MAAM,GAAG,IAAIlusB,GAAG,CAAC,CAAC;EACxB,SAASmusB,qBAAqBA,CAACv3rB,GAAG,EAAE;IAChC,IAAIwO,OAAO,GAAG8orB,MAAM,CAAChusB,GAAG,CAAC0W,GAAG,CAAC;IAC7B,IAAI,CAACwO,OAAO,EAAE;MACV,MAAMgprB,IAAI,GAAGJ,gBAAgB,CAACp3rB,GAAG,CAAC;MAClCs3rB,MAAM,CAAC/tsB,GAAG,CAACyW,GAAG,EAAEwO,OAAO,GAAGgprB,IAAI,CAAC7ssB,IAAI,CAAC8ssB,cAAc,CAAC,CAAC;IACxD;IACA,OAAOjprB,OAAO;EAClB;EACAkprB,gCAAgC,CAAC1psB,OAAO,CAAC,CAACuqS,SAAS,EAAE58R,IAAI,KAAK;IAC1D,MAAMwU,QAAQ,GAAG,EAAE;IACnB,IAAIooR,SAAS,CAACo/Z,WAAW,EAAE;MACvBxnrB,QAAQ,CAAC7kB,IAAI,CAACissB,qBAAqB,CAACh/Z,SAAS,CAACo/Z,WAAW,CAAC,CAAChtsB,IAAI,CAAEixW,QAAQ,IAAK;QAC1ErjE,SAAS,CAACqjE,QAAQ,GAAGA,QAAQ;MACjC,CAAC,CAAC,CAAC;IACP;IACA,MAAMg8V,SAAS,GAAGr/Z,SAAS,CAACq/Z,SAAS;IACrC,MAAMhrrB,MAAM,GAAG2rR,SAAS,CAAC3rR,MAAM,KAAK2rR,SAAS,CAAC3rR,MAAM,GAAG,EAAE,CAAC;IAC1D,MAAMirrB,WAAW,GAAGt/Z,SAAS,CAAC3rR,MAAM,CAACpkB,MAAM;IAC3CovsB,SAAS,IAAIA,SAAS,CAAC5psB,OAAO,CAAC,CAAC8psB,QAAQ,EAAExnrB,KAAK,KAAK;MAChD1D,MAAM,CAACthB,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;MACjB6kB,QAAQ,CAAC7kB,IAAI,CAACissB,qBAAqB,CAACO,QAAQ,CAAC,CAACntsB,IAAI,CAAEgZ,KAAK,IAAK;QAC1DiJ,MAAM,CAACirrB,WAAW,GAAGvnrB,KAAK,CAAC,GAAG3M,KAAK;QACnCi0rB,SAAS,CAAClwhB,MAAM,CAACkwhB,SAAS,CAACvvsB,OAAO,CAACyvsB,QAAQ,CAAC,EAAE,CAAC,CAAC;QAChD,IAAIF,SAAS,CAACpvsB,MAAM,IAAI,CAAC,EAAE;UACvB+vS,SAAS,CAACq/Z,SAAS,GAAG/vrB,SAAS;QACnC;MACJ,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IACF,MAAMkwrB,aAAa,GAAGnusB,OAAO,CAACsmB,GAAG,CAACC,QAAQ,CAAC,CAACxlB,IAAI,CAAC,MAAMqtsB,oBAAoB,CAACr8rB,IAAI,CAAC,CAAC;IAClF07rB,iBAAiB,CAAC/rsB,IAAI,CAACyssB,aAAa,CAAC;EACzC,CAAC,CAAC;EACFE,wCAAwC,CAAC,CAAC;EAC1C,OAAOrusB,OAAO,CAACsmB,GAAG,CAACmnrB,iBAAiB,CAAC,CAAC1ssB,IAAI,CAAC,MAAMkd,SAAS,CAAC;AAC/D;AACA,IAAI6vrB,gCAAgC,GAAG,IAAItusB,GAAG,CAAC,CAAC;AAChD;AACA,MAAM8usB,6BAA6B,GAAG,IAAItssB,GAAG,CAAC,CAAC;AAC/C,SAASussB,wCAAwCA,CAACx8rB,IAAI,EAAEuqd,QAAQ,EAAE;EAC9D,IAAIkyO,wBAAwB,CAAClyO,QAAQ,CAAC,EAAE;IACpCwxO,gCAAgC,CAACnusB,GAAG,CAACoS,IAAI,EAAEuqd,QAAQ,CAAC;IACpDgyO,6BAA6B,CAAC7qsB,GAAG,CAACsO,IAAI,CAAC;EAC3C;AACJ;AACA,SAAS08rB,+BAA+BA,CAAC18rB,IAAI,EAAE;EAC3C,OAAOu8rB,6BAA6B,CAACxusB,GAAG,CAACiS,IAAI,CAAC;AAClD;AACA,SAASy8rB,wBAAwBA,CAAC7/Z,SAAS,EAAE;EACzC,OAAO,CAAC,EAAGA,SAAS,CAACo/Z,WAAW,IAAI,CAACp/Z,SAAS,CAACpwS,cAAc,CAAC,UAAU,CAAC,IACrEowS,SAAS,CAACq/Z,SAAS,IAAIr/Z,SAAS,CAACq/Z,SAAS,CAACpvsB,MAAM,CAAC;AAC1D;AACA,SAASyvsB,wCAAwCA,CAAA,EAAG;EAChD,MAAMlhK,GAAG,GAAG2gK,gCAAgC;EAC5CA,gCAAgC,GAAG,IAAItusB,GAAG,CAAC,CAAC;EAC5C,OAAO2tiB,GAAG;AACd;AACA,SAASuhK,+BAA+BA,CAAC3oZ,KAAK,EAAE;EAC5CuoZ,6BAA6B,CAAClhsB,KAAK,CAAC,CAAC;EACrC24S,KAAK,CAAC3hT,OAAO,CAAC,CAAC8C,CAAC,EAAE6K,IAAI,KAAKu8rB,6BAA6B,CAAC7qsB,GAAG,CAACsO,IAAI,CAAC,CAAC;EACnE+7rB,gCAAgC,GAAG/nZ,KAAK;AAC5C;AACA,SAAS4oZ,uCAAuCA,CAAA,EAAG;EAC/C,OAAOb,gCAAgC,CAACh7rB,IAAI,KAAK,CAAC;AACtD;AACA,SAAS+6rB,cAAcA,CAAC52rB,QAAQ,EAAE;EAC9B,OAAO,OAAOA,QAAQ,IAAI,QAAQ,GAAGA,QAAQ,GAAGA,QAAQ,CAACmkB,IAAI,CAAC,CAAC;AACnE;AACA,SAASgzqB,oBAAoBA,CAACr8rB,IAAI,EAAE;EAChCu8rB,6BAA6B,CAAClusB,MAAM,CAAC2R,IAAI,CAAC;AAC9C;;AAEA;AACA;AACA;AACA,MAAM68rB,OAAO,GAAG,IAAIpvsB,GAAG,CAAC,CAAC;AACzB;AACA;AACA;AACA;AACA;AACA,IAAIqvsB,0BAA0B,GAAG,IAAI;AACrC,SAASC,uBAAuBA,CAAC7ssB,EAAE,EAAE8P,IAAI,EAAEg9rB,QAAQ,EAAE;EACjD,IAAIh9rB,IAAI,IAAIA,IAAI,KAAKg9rB,QAAQ,IAAIF,0BAA0B,EAAE;IACzD,MAAM,IAAIlqsB,KAAK,CAAE,mCAAkC1C,EAAG,MAAKkB,SAAS,CAAC4O,IAAI,CAAE,OAAM5O,SAAS,CAAC4O,IAAI,CAACtN,IAAI,CAAE,EAAC,CAAC;EAC5G;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASuqsB,oBAAoBA,CAACptB,YAAY,EAAE3/qB,EAAE,EAAE;EAC5C,MAAM2sN,QAAQ,GAAGggf,OAAO,CAAClvsB,GAAG,CAACuC,EAAE,CAAC,IAAI,IAAI;EACxC6ssB,uBAAuB,CAAC7ssB,EAAE,EAAE2sN,QAAQ,EAAEgzd,YAAY,CAAC;EACnDgtB,OAAO,CAACjvsB,GAAG,CAACsC,EAAE,EAAE2/qB,YAAY,CAAC;AACjC;AACA,SAASqtB,mBAAmBA,CAAA,EAAG;EAC3BL,OAAO,CAACxhsB,KAAK,CAAC,CAAC;AACnB;AACA,SAAS8hsB,yBAAyBA,CAACjtsB,EAAE,EAAE;EACnC,OAAO2ssB,OAAO,CAAClvsB,GAAG,CAACuC,EAAE,CAAC;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASktsB,mCAAmCA,CAACC,eAAe,EAAE;EAC1DP,0BAA0B,GAAG,CAACO,eAAe;AACjD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,sBAAsB,GAAG;EAC3B5qsB,IAAI,EAAE;AACV,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM6qsB,gBAAgB,GAAG;EACrB7qsB,IAAI,EAAE;AACV,CAAC;AAED,IAAI8qsB,gCAAgC,GAAG,KAAK;AAC5C;AACA;AACA;AACA;AACA;AACA,SAASC,4BAA4BA,CAACC,WAAW,EAAE;EAC/CF,gCAAgC,GAAGE,WAAW;AAClD;AACA;AACA;AACA;AACA,SAASC,4BAA4BA,CAAA,EAAG;EACpC,OAAOH,gCAAgC;AAC3C;AACA,IAAII,iCAAiC,GAAG,KAAK;AAC7C;AACA;AACA;AACA;AACA;AACA,SAASC,6BAA6BA,CAACH,WAAW,EAAE;EAChDE,iCAAiC,GAAGF,WAAW;AACnD;AACA;AACA;AACA;AACA,SAASI,6BAA6BA,CAAA,EAAG;EACrC,OAAOF,iCAAiC;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASG,sBAAsBA,CAAClurB,OAAO,EAAEmwqB,KAAK,EAAEvqqB,OAAO,EAAEulqB,OAAO,EAAEgjB,aAAa,EAAE;EAC7E;EACA;EACA;EACA;EACA,IAAIhjB,OAAO,KAAK,IAAI,EAChB;EACJ;EACA,IAAI,CAACgjB,aAAa,IAAIvorB,OAAO,KAAK,IAAI,EAAE;IACpC;IACA;IACA;IACA,MAAMworB,SAAS;IACf;IACA;IACC,OAAOC,kBAAkB,KAAK,WAAW,IAAIA,kBAAkB,IAC5DrurB,OAAO,YAAYqurB,kBAAkB,IACpC,OAAOC,cAAc,KAAK,WAAW,IAAI1orB,OAAO,CAAC/oB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAC/D,CAACyxsB,cAAc,CAACxwsB,GAAG,CAAC8nB,OAAO,CAAE;IACrC,IAAIworB,SAAS,IAAI,CAACG,eAAe,CAACpjB,OAAO,EAAEvlqB,OAAO,CAAC,EAAE;MACjD,MAAM4orB,gBAAgB,GAAGC,yBAAyB,CAACte,KAAK,CAAC;MACzD,MAAMue,gBAAgB,GAAGC,0BAA0B,CAACxe,KAAK,CAAC;MAC1D,MAAMhF,OAAO,GAAI,IAAGqjB,gBAAgB,GAAG,YAAY,GAAG,WAAY,WAAU;MAC5E,IAAI91rB,OAAO,GAAI,IAAGkN,OAAQ,2BAA0B8orB,gBAAiB,KAAI;MACzEh2rB,OAAO,IAAK,UAASkN,OAAQ,qDAAoD4orB,gBAAgB,GAAG,0DAA0D,GAC1J,yDAA0D,KAAI;MAClE,IAAI5orB,OAAO,IAAIA,OAAO,CAAC/oB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;QACtC6b,OAAO,IACF,UAASkN,OAAQ,iEAAgEulqB,OAAQ,8CAA6C;MAC/I,CAAC,MACI;QACDzyqB,OAAO,IACF,yDAAwDyyqB,OAAQ,qBAAoB;MAC7F;MACA,IAAIwiB,gCAAgC,EAAE;QAClC,MAAM,IAAIruB,YAAY,CAAC,GAAG,CAAC,wCAAwC5mqB,OAAO,CAAC;MAC/E,CAAC,MACI;QACDrG,OAAO,CAACpP,KAAK,CAACs8qB,kBAAkB,CAAC,GAAG,CAAC,wCAAwC7mqB,OAAO,CAAC,CAAC;MAC1F;IACJ;EACJ;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASk2rB,eAAeA,CAAC5urB,OAAO,EAAEwiE,QAAQ,EAAE58D,OAAO,EAAEulqB,OAAO,EAAE;EAC1D;EACA;EACA;EACA;EACA,IAAIA,OAAO,KAAK,IAAI,EAChB,OAAO,IAAI;EACf;EACA;EACA,IAAIojB,eAAe,CAACpjB,OAAO,EAAEvlqB,OAAO,CAAC,IAAI48D,QAAQ,IAAIxiE,OAAO,IAAI8nqB,eAAe,CAACtlmB,QAAQ,CAAC,EAAE;IACvF,OAAO,IAAI;EACf;EACA;EACA,OAAO,OAAO0uT,IAAI,KAAK,WAAW,IAAIA,IAAI,KAAK,IAAI,IAAI,EAAElxX,OAAO,YAAYkxX,IAAI,CAAC;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS29T,0BAA0BA,CAACrsnB,QAAQ,EAAE58D,OAAO,EAAEqrX,QAAQ,EAAEk/S,KAAK,EAAE;EACpE;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,CAACvqqB,OAAO,IAAIqrX,QAAQ,KAAK,CAAC,CAAC,2BAA2B;IACtDrrX,OAAO,GAAG,aAAa;EAC3B;EACA,MAAM4orB,gBAAgB,GAAGC,yBAAyB,CAACte,KAAK,CAAC;EACzD,MAAMue,gBAAgB,GAAGC,0BAA0B,CAACxe,KAAK,CAAC;EAC1D,IAAIz3qB,OAAO,GAAI,kBAAiB8pE,QAAS,yCAAwC58D,OAAQ,IAAG8orB,gBAAiB,GAAE;EAC/G,MAAMvjB,OAAO,GAAI,IAAGqjB,gBAAgB,GAAG,YAAY,GAAG,WAAY,WAAU;EAC5E,MAAMM,cAAc,GAAGN,gBAAgB,GACnC,0DAA0D,GAC1D,yDAAyD;EAC7D,IAAIO,6BAA6B,CAAC7wsB,GAAG,CAACskF,QAAQ,CAAC,EAAE;IAC7C;IACA;IACA,MAAMwsnB,mBAAmB,GAAGD,6BAA6B,CAACjxsB,GAAG,CAAC0kF,QAAQ,CAAC;IACvE9pE,OAAO,IAAK,aAAY8pE,QAAS,0CAAyC,GACrE,qCAAoCwsnB,mBAAoB,wCAAuCF,cAAe,GAAE;EACzH,CAAC,MACI;IACD;IACAp2rB,OAAO,IAAK,YAAWkN,OAAQ,2CAA0C,GACpE,IAAG48D,QAAS,mCAAkCssnB,cAAe,GAAE;IACpE;IACA,IAAIlprB,OAAO,IAAIA,OAAO,CAAC/oB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;MACtC6b,OAAO,IAAK,YAAWkN,OAAQ,yDAAwD,GAClF,UAASulqB,OAAQ,8CAA6C;MACnEzyqB,OAAO,IAAK,uDAAsD,GAC7D,OAAMyyqB,OAAQ,qBAAoB;IAC3C,CAAC,MACI;MACD;MACAzyqB,OAAO,IAAK,uDAAsD,GAC7D,OAAMyyqB,OAAQ,qBAAoB;IAC3C;EACJ;EACA8jB,0BAA0B,CAACv2rB,OAAO,CAAC;AACvC;AACA,SAASu2rB,0BAA0BA,CAACv2rB,OAAO,EAAE;EACzC,IAAIq1rB,iCAAiC,EAAE;IACnC,MAAM,IAAIzuB,YAAY,CAAC,GAAG,CAAC,wCAAwC5mqB,OAAO,CAAC;EAC/E,CAAC,MACI;IACDrG,OAAO,CAACpP,KAAK,CAACs8qB,kBAAkB,CAAC,GAAG,CAAC,wCAAwC7mqB,OAAO,CAAC,CAAC;EAC1F;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASw2rB,0BAA0BA,CAAC/e,KAAK,EAAE;EACvC,CAACjtH,SAAS,IAAIvxd,UAAU,CAAC,yCAAyC,CAAC;EACnE,MAAMw9lB,gBAAgB,GAAGhf,KAAK,CAAC5B,0BAA0B,CAAC;EAC1D,MAAMpjlB,OAAO,GAAGgkmB,gBAAgB,CAACnhB,OAAO,CAAC;EACzC;EACA,IAAI,CAAC7ilB,OAAO,EACR,OAAO,IAAI;EACf,OAAOA,OAAO,CAACnoG,WAAW,GAAG2orB,eAAe,CAACxglB,OAAO,CAACnoG,WAAW,CAAC,GAAG,IAAI;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASyrsB,yBAAyBA,CAACte,KAAK,EAAE;EACtC,CAACjtH,SAAS,IAAIvxd,UAAU,CAAC,yCAAyC,CAAC;EACnE,MAAM07kB,YAAY,GAAG6hB,0BAA0B,CAAC/e,KAAK,CAAC;EACtD;EACA,OAAO,CAAC,CAAC9C,YAAY,EAAEv6D,UAAU;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS67E,0BAA0BA,CAACxe,KAAK,EAAE;EACvC,CAACjtH,SAAS,IAAIvxd,UAAU,CAAC,yCAAyC,CAAC;EACnE,MAAMy9lB,gBAAgB,GAAGF,0BAA0B,CAAC/e,KAAK,CAAC;EAC1D,MAAMkf,kBAAkB,GAAGD,gBAAgB,EAAEj/rB,IAAI,EAAEtN,IAAI;EACvD,OAAOwssB,kBAAkB,GAAI,kBAAiBA,kBAAmB,uBAAsB,GAAG,EAAE;AAChG;AACA;AACA;AACA;AACA;AACA;AACA,MAAMN,6BAA6B,GAAG,IAAInxsB,GAAG,CAAC,CAC1C,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,cAAc,EAAE,cAAc,CAAC,EACtE,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CACzC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA,SAAS2wsB,eAAeA,CAACpjB,OAAO,EAAEvlqB,OAAO,EAAE;EACvC,IAAIulqB,OAAO,KAAK,IAAI,EAAE;IAClB,KAAK,IAAI5urB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG4urB,OAAO,CAACnurB,MAAM,EAAET,CAAC,EAAE,EAAE;MACrC,MAAM4+I,MAAM,GAAGgwiB,OAAO,CAAC5urB,CAAC,CAAC;MACzB,IAAI4+I,MAAM,KAAKuyjB,gBAAgB,IAC3BvyjB,MAAM,KAAKsyjB,sBAAsB,IAAI7nrB,OAAO,IAAIA,OAAO,CAAC/oB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;QAC3E,OAAO,IAAI;MACf;IACJ;EACJ;EACA,OAAO,KAAK;AAChB;;AAEA;AACA;AACA;AACA;AACA,MAAMyysB,wBAAwB,GAAG,iBAAiB;AAClD;AACA;AACA;AACA,SAASC,sBAAsBA,CAAC/rB,KAAK,EAAE;EACnC,MAAMgsB,mCAAmC,GAAGF,wBAAwB,CAACjgrB,WAAW,CAAC,CAAC;EAClF,MAAMhP,KAAK,GAAGmjqB,KAAK,CAACisB,WAAW;EAC/B,IAAIpvrB,KAAK,KAAK,IAAI,EACd,OAAO,KAAK;EAChB;EACA,KAAK,IAAI9jB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG8jB,KAAK,CAACrjB,MAAM,EAAET,CAAC,IAAI,CAAC,EAAE;IACtC,MAAMmB,KAAK,GAAG2iB,KAAK,CAAC9jB,CAAC,CAAC;IACtB;IACA;IACA,IAAI,OAAOmB,KAAK,KAAK,QAAQ,EACzB,OAAO,KAAK;IAChB,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,CAAC2xB,WAAW,CAAC,CAAC,KAAKmgrB,mCAAmC,EAAE;MAC1F,OAAO,IAAI;IACf;EACJ;EACA,OAAO,KAAK;AAChB;AACA;AACA;AACA;AACA;AACA,SAASE,2BAA2BA,CAAClsB,KAAK,EAAE;EACxC,OAAO,CAACA,KAAK,CAAC37T,KAAK,GAAG,GAAG,CAAC,2CAA2C,GAAG,CAAC;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS8nV,sBAAsBA,CAACnsB,KAAK,EAAE;EACnC,IAAI0W,YAAY,GAAG1W,KAAK,CAACtlmB,MAAM;EAC/B,OAAOg8mB,YAAY,EAAE;IACjB,IAAIqV,sBAAsB,CAACrV,YAAY,CAAC,EAAE;MACtC,OAAO,IAAI;IACf;IACAA,YAAY,GAAGA,YAAY,CAACh8mB,MAAM;EACtC;EACA,OAAO,KAAK;AAChB;;AAEA;AACA;AACA;AACA;AACA,IAAIilkB,mBAAmB;AACvB,CAAC,UAAUA,mBAAmB,EAAE;EAC5B;EACA;EACA;EACA;AACJ;AACA;EACIA,mBAAmB,CAACA,mBAAmB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW;EACvE;AACJ;AACA;EACIA,mBAAmB,CAACA,mBAAmB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU;AACzE,CAAC,EAAEA,mBAAmB,KAAKA,mBAAmB,GAAG,CAAC,CAAC,CAAC,CAAC;;AAErD;AACA;AACA;AACA;AACA;AACA,MAAMysD,kBAAkB,GAAG,4BAA4B;AACvD;AACA;AACA;AACA,MAAMC,iBAAiB,GAAG,OAAO;AACjC,MAAMC,yBAAyB,GAAG,gBAAgB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,iBAAiBA,CAACrysB,KAAK,EAAE;EAC9B,OAAOA,KAAK,CAAC2H,OAAO,CAACuqsB,kBAAkB,EAAGp2qB,IAAI,IAAKA,IAAI,CAACn0B,OAAO,CAACwqsB,iBAAiB,EAAEC,yBAAyB,CAAC,CAAC;AAClH;;AAEA;AACA,MAAME,cAAc,GAAG,IAAIpysB,GAAG,CAAC,CAAC;AAChC;AACA,IAAIqysB,eAAe,GAAG,CAAC;AACvB;AACA,SAASC,gBAAgBA,CAAA,EAAG;EACxB,OAAOD,eAAe,EAAE;AAC5B;AACA;AACA,SAASE,aAAaA,CAAChgB,KAAK,EAAE;EAC1BjtH,SAAS,IAAIo9G,YAAY,CAAC6P,KAAK,CAACjxU,EAAE,CAAC,EAAE,iDAAiD,CAAC;EACvF8wV,cAAc,CAACjysB,GAAG,CAACoyrB,KAAK,CAACjxU,EAAE,CAAC,EAAEixU,KAAK,CAAC;AACxC;AACA;AACA,SAASigB,YAAYA,CAAC/vsB,EAAE,EAAE;EACtB6ikB,SAAS,IAAIo9G,YAAY,CAACjgrB,EAAE,EAAE,2CAA2C,CAAC;EAC1E,OAAO2vsB,cAAc,CAAClysB,GAAG,CAACuC,EAAE,CAAC,IAAI,IAAI;AACzC;AACA;AACA,SAASgwsB,eAAeA,CAAClgB,KAAK,EAAE;EAC5BjtH,SAAS,IAAIo9G,YAAY,CAAC6P,KAAK,CAACjxU,EAAE,CAAC,EAAE,wDAAwD,CAAC;EAC9F8wV,cAAc,CAACxxsB,MAAM,CAAC2xrB,KAAK,CAACjxU,EAAE,CAAC,CAAC;AACpC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMoxV,QAAQ,CAAC;EACX;EACA,IAAIngB,KAAKA,CAAA,EAAG;IACR,OAAOigB,YAAY,CAAC,IAAI,CAACG,OAAO,CAAC;EACrC;EACAvtsB,WAAWA;EACX;AACJ;AACA;EACIutsB,OAAO;EACP;AACJ;AACA;EACI7oiB,SAAS;EACT;AACJ;AACA;EACIighB,MAAM,EAAE;IACJ,IAAI,CAAC4oB,OAAO,GAAGA,OAAO;IACtB,IAAI,CAAC7oiB,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACighB,MAAM,GAAGA,MAAM;EACxB;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS6oB,WAAWA,CAACl2rB,MAAM,EAAE;EACzB,IAAIm2rB,OAAO,GAAGC,eAAe,CAACp2rB,MAAM,CAAC;EACrC,IAAIm2rB,OAAO,EAAE;IACT;IACA;IACA,IAAIhhB,OAAO,CAACghB,OAAO,CAAC,EAAE;MAClB,MAAMtgB,KAAK,GAAGsgB,OAAO;MACrB,IAAI/oiB,SAAS;MACb,IAAIqlI,SAAS,GAAG1wR,SAAS;MACzB,IAAImvqB,UAAU,GAAGnvqB,SAAS;MAC1B,IAAIs0rB,mBAAmB,CAACr2rB,MAAM,CAAC,EAAE;QAC7BotJ,SAAS,GAAGkpiB,gBAAgB,CAACzgB,KAAK,EAAE71qB,MAAM,CAAC;QAC3C,IAAIotJ,SAAS,IAAI,CAAC,CAAC,EAAE;UACjB,MAAM,IAAI3kK,KAAK,CAAC,yDAAyD,CAAC;QAC9E;QACAgqS,SAAS,GAAGzyR,MAAM;MACtB,CAAC,MACI,IAAIu2rB,mBAAmB,CAACv2rB,MAAM,CAAC,EAAE;QAClCotJ,SAAS,GAAGopiB,gBAAgB,CAAC3gB,KAAK,EAAE71qB,MAAM,CAAC;QAC3C,IAAIotJ,SAAS,IAAI,CAAC,CAAC,EAAE;UACjB,MAAM,IAAI3kK,KAAK,CAAC,yDAAyD,CAAC;QAC9E;QACAyorB,UAAU,GAAGulB,wBAAwB,CAACrpiB,SAAS,EAAEyohB,KAAK,CAAC;MAC3D,CAAC,MACI;QACDzohB,SAAS,GAAGspiB,oBAAoB,CAAC7gB,KAAK,EAAE71qB,MAAM,CAAC;QAC/C,IAAIotJ,SAAS,IAAI,CAAC,CAAC,EAAE;UACjB,OAAO,IAAI;QACf;MACJ;MACA;MACA;MACA;MACA;MACA,MAAMighB,MAAM,GAAGyP,WAAW,CAACjH,KAAK,CAACzohB,SAAS,CAAC,CAAC;MAC5C,MAAMupiB,WAAW,GAAGP,eAAe,CAAC/oB,MAAM,CAAC;MAC3C,MAAMx8kB,OAAO,GAAI8lmB,WAAW,IAAI,CAAC/ssB,KAAK,CAACoJ,OAAO,CAAC2jsB,WAAW,CAAC,GACvDA,WAAW,GACXC,cAAc,CAAC/gB,KAAK,EAAEzohB,SAAS,EAAEighB,MAAM,CAAC;MAC5C;MACA,IAAI56Y,SAAS,IAAI5hM,OAAO,CAAC4hM,SAAS,KAAK1wR,SAAS,EAAE;QAC9C8uF,OAAO,CAAC4hM,SAAS,GAAGA,SAAS;QAC7Boka,eAAe,CAAChmmB,OAAO,CAAC4hM,SAAS,EAAE5hM,OAAO,CAAC;MAC/C;MACA;MACA,IAAIqglB,UAAU,IAAIrglB,OAAO,CAACqglB,UAAU,KAAKnvqB,SAAS,EAAE;QAChD8uF,OAAO,CAACqglB,UAAU,GAAGA,UAAU;QAC/B,KAAK,IAAIjvrB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGivrB,UAAU,CAACxurB,MAAM,EAAET,CAAC,EAAE,EAAE;UACxC40sB,eAAe,CAAC3lB,UAAU,CAACjvrB,CAAC,CAAC,EAAE4uG,OAAO,CAAC;QAC3C;MACJ;MACAgmmB,eAAe,CAAChmmB,OAAO,CAACw8kB,MAAM,EAAEx8kB,OAAO,CAAC;MACxCslmB,OAAO,GAAGtlmB,OAAO;IACrB;EACJ,CAAC,MACI;IACD,MAAMimmB,QAAQ,GAAG92rB,MAAM;IACvB4ojB,SAAS,IAAIu+G,aAAa,CAAC2vB,QAAQ,CAAC;IACpC;IACA;IACA,IAAIlznB,MAAM,GAAGkznB,QAAQ;IACrB,OAAOlznB,MAAM,GAAGA,MAAM,CAAC/uD,UAAU,EAAE;MAC/B,MAAM0mjB,aAAa,GAAG66H,eAAe,CAACxynB,MAAM,CAAC;MAC7C,IAAI23f,aAAa,EAAE;QACf,MAAMs6G,KAAK,GAAGjsrB,KAAK,CAACoJ,OAAO,CAACuokB,aAAa,CAAC,GAAGA,aAAa,GAAGA,aAAa,CAACs6G,KAAK;QAChF;QACA;QACA,IAAI,CAACA,KAAK,EAAE;UACR,OAAO,IAAI;QACf;QACA,MAAMrrqB,KAAK,GAAGksrB,oBAAoB,CAAC7gB,KAAK,EAAEihB,QAAQ,CAAC;QACnD,IAAItsrB,KAAK,IAAI,CAAC,EAAE;UACZ,MAAM6iqB,MAAM,GAAGyP,WAAW,CAACjH,KAAK,CAACrrqB,KAAK,CAAC,CAAC;UACxC,MAAMqmF,OAAO,GAAG+lmB,cAAc,CAAC/gB,KAAK,EAAErrqB,KAAK,EAAE6iqB,MAAM,CAAC;UACpDwpB,eAAe,CAACxpB,MAAM,EAAEx8kB,OAAO,CAAC;UAChCslmB,OAAO,GAAGtlmB,OAAO;UACjB;QACJ;MACJ;IACJ;EACJ;EACA,OAAOslmB,OAAO,IAAI,IAAI;AAC1B;AACA;AACA;AACA;AACA,SAASS,cAAcA,CAAC/gB,KAAK,EAAEzohB,SAAS,EAAEighB,MAAM,EAAE;EAC9C,OAAO,IAAI2oB,QAAQ,CAACngB,KAAK,CAACjxU,EAAE,CAAC,EAAEx3M,SAAS,EAAEighB,MAAM,CAAC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS0pB,0BAA0BA,CAACz9F,iBAAiB,EAAE;EACnD,IAAI09F,WAAW,GAAGZ,eAAe,CAAC98F,iBAAiB,CAAC;EACpD,IAAIu8E,KAAK;EACT,IAAIV,OAAO,CAAC6hB,WAAW,CAAC,EAAE;IACtB,MAAMvX,YAAY,GAAGuX,WAAW;IAChC,MAAM5piB,SAAS,GAAGkpiB,gBAAgB,CAAC7W,YAAY,EAAEnmF,iBAAiB,CAAC;IACnEu8E,KAAK,GAAGuH,wBAAwB,CAAChwhB,SAAS,EAAEqyhB,YAAY,CAAC;IACzD,MAAM5ulB,OAAO,GAAG+lmB,cAAc,CAACnX,YAAY,EAAEryhB,SAAS,EAAEyohB,KAAK,CAAC1C,IAAI,CAAC,CAAC;IACpEtilB,OAAO,CAAC4hM,SAAS,GAAG6mU,iBAAiB;IACrCu9F,eAAe,CAACv9F,iBAAiB,EAAEzogB,OAAO,CAAC;IAC3CgmmB,eAAe,CAAChmmB,OAAO,CAACw8kB,MAAM,EAAEx8kB,OAAO,CAAC;EAC5C,CAAC,MACI;IACD,MAAMA,OAAO,GAAGmmmB,WAAW;IAC3B,MAAMvX,YAAY,GAAG5ulB,OAAO,CAACgllB,KAAK;IAClCjtH,SAAS,IAAI8tH,WAAW,CAAC+I,YAAY,CAAC;IACtC5J,KAAK,GAAGuH,wBAAwB,CAACvslB,OAAO,CAACu8D,SAAS,EAAEqyhB,YAAY,CAAC;EACrE;EACA,OAAO5J,KAAK;AAChB;AACA;AACA;AACA;AACA,MAAMohB,qBAAqB,GAAG,eAAe;AAC7C;AACA;AACA;AACA;AACA,SAASJ,eAAeA,CAAC72rB,MAAM,EAAEnT,IAAI,EAAE;EACnC+7jB,SAAS,IAAIq+G,aAAa,CAACjnqB,MAAM,EAAE,iBAAiB,CAAC;EACrD;EACA;EACA;EACA,IAAIm1qB,OAAO,CAACtorB,IAAI,CAAC,EAAE;IACfmT,MAAM,CAACi3rB,qBAAqB,CAAC,GAAGpqsB,IAAI,CAAC+3W,EAAE,CAAC;IACxCixV,aAAa,CAAChpsB,IAAI,CAAC;EACvB,CAAC,MACI;IACDmT,MAAM,CAACi3rB,qBAAqB,CAAC,GAAGpqsB,IAAI;EACxC;AACJ;AACA;AACA;AACA;AACA;AACA,SAASupsB,eAAeA,CAACp2rB,MAAM,EAAE;EAC7B4ojB,SAAS,IAAIq+G,aAAa,CAACjnqB,MAAM,EAAE,iBAAiB,CAAC;EACrD,MAAMnT,IAAI,GAAGmT,MAAM,CAACi3rB,qBAAqB,CAAC;EAC1C,OAAQ,OAAOpqsB,IAAI,KAAK,QAAQ,GAAIipsB,YAAY,CAACjpsB,IAAI,CAAC,GAAGA,IAAI,IAAI,IAAI;AACzE;AACA,SAASqqsB,gBAAgBA,CAACl3rB,MAAM,EAAE;EAC9B,MAAM5c,KAAK,GAAGgzsB,eAAe,CAACp2rB,MAAM,CAAC;EACrC,IAAI5c,KAAK,EAAE;IACP,OAAQ+xrB,OAAO,CAAC/xrB,KAAK,CAAC,GAAGA,KAAK,GAAGA,KAAK,CAACyyrB,KAAK;EAChD;EACA,OAAO,IAAI;AACf;AACA,SAASwgB,mBAAmBA,CAACjysB,QAAQ,EAAE;EACnC,OAAOA,QAAQ,IAAIA,QAAQ,CAACsE,WAAW,IAAItE,QAAQ,CAACsE,WAAW,CAACivmB,IAAI;AACxE;AACA,SAAS4+F,mBAAmBA,CAACnysB,QAAQ,EAAE;EACnC,OAAOA,QAAQ,IAAIA,QAAQ,CAACsE,WAAW,IAAItE,QAAQ,CAACsE,WAAW,CAAC+3lB,IAAI;AACxE;AACA;AACA;AACA;AACA,SAASi2G,oBAAoBA,CAAC7gB,KAAK,EAAE71qB,MAAM,EAAE;EACzC,MAAMmpqB,KAAK,GAAG0M,KAAK,CAACzC,KAAK,CAAC;EAC1B,KAAK,IAAInxrB,CAAC,GAAGyyrB,aAAa,EAAEzyrB,CAAC,GAAGknrB,KAAK,CAAC+N,iBAAiB,EAAEj1rB,CAAC,EAAE,EAAE;IAC1D,IAAI66rB,WAAW,CAACjH,KAAK,CAAC5zrB,CAAC,CAAC,CAAC,KAAK+d,MAAM,EAAE;MAClC,OAAO/d,CAAC;IACZ;EACJ;EACA,OAAO,CAAC,CAAC;AACb;AACA;AACA;AACA;AACA,SAASk1sB,mBAAmBA,CAACjuB,KAAK,EAAE;EAChC,IAAIA,KAAK,CAAC79pB,KAAK,EAAE;IACb,OAAO69pB,KAAK,CAAC79pB,KAAK;EACtB,CAAC,MACI,IAAI69pB,KAAK,CAACzkrB,IAAI,EAAE;IACjB,OAAOykrB,KAAK,CAACzkrB,IAAI;EACrB,CAAC,MACI;IACD;IACA;IACA;IACA,OAAOykrB,KAAK,CAACtlmB,MAAM,IAAI,CAACslmB,KAAK,CAACtlmB,MAAM,CAACn/E,IAAI,EAAE;MACvCykrB,KAAK,GAAGA,KAAK,CAACtlmB,MAAM;IACxB;IACA,OAAOslmB,KAAK,CAACtlmB,MAAM,IAAIslmB,KAAK,CAACtlmB,MAAM,CAACn/E,IAAI;EAC5C;AACJ;AACA;AACA;AACA;AACA,SAAS6xsB,gBAAgBA,CAACzgB,KAAK,EAAEv8E,iBAAiB,EAAE;EAChD,MAAM89F,gBAAgB,GAAGvhB,KAAK,CAACzC,KAAK,CAAC,CAAC3yW,UAAU;EAChD,IAAI22X,gBAAgB,EAAE;IAClB,KAAK,IAAIn1sB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGm1sB,gBAAgB,CAAC10sB,MAAM,EAAET,CAAC,EAAE,EAAE;MAC9C,MAAMo1sB,qBAAqB,GAAGD,gBAAgB,CAACn1sB,CAAC,CAAC;MACjD,MAAMq0S,aAAa,GAAG8mZ,wBAAwB,CAACia,qBAAqB,EAAExhB,KAAK,CAAC;MAC5E,IAAIv/Y,aAAa,CAACo9Y,OAAO,CAAC,KAAKp6E,iBAAiB,EAAE;QAC9C,OAAO+9F,qBAAqB;MAChC;IACJ;EACJ,CAAC,MACI;IACD,MAAMC,iBAAiB,GAAGla,wBAAwB,CAAC1I,aAAa,EAAEmB,KAAK,CAAC;IACxE,MAAM0hB,aAAa,GAAGD,iBAAiB,CAAC5jB,OAAO,CAAC;IAChD,IAAI6jB,aAAa,KAAKj+F,iBAAiB,EAAE;MACrC;MACA;MACA,OAAOo7E,aAAa;IACxB;EACJ;EACA,OAAO,CAAC,CAAC;AACb;AACA;AACA;AACA;AACA,SAAS8hB,gBAAgBA,CAAC3gB,KAAK,EAAE2hB,iBAAiB,EAAE;EAChD;EACA;EACA;EACA;EACA;EACA,IAAItuB,KAAK,GAAG2M,KAAK,CAACzC,KAAK,CAAC,CAACr3pB,UAAU;EACnC,OAAOmtpB,KAAK,EAAE;IACV,MAAMuuB,mBAAmB,GAAGvuB,KAAK,CAAC2a,cAAc;IAChD,MAAM6T,iBAAiB,GAAGxuB,KAAK,CAAC4a,YAAY;IAC5C,KAAK,IAAI7hsB,CAAC,GAAGw1sB,mBAAmB,EAAEx1sB,CAAC,GAAGy1sB,iBAAiB,EAAEz1sB,CAAC,EAAE,EAAE;MAC1D,IAAI4zrB,KAAK,CAAC5zrB,CAAC,CAAC,KAAKu1sB,iBAAiB,EAAE;QAChC,OAAOtuB,KAAK,CAAC1+pB,KAAK;MACtB;IACJ;IACA0+pB,KAAK,GAAGiuB,mBAAmB,CAACjuB,KAAK,CAAC;EACtC;EACA,OAAO,CAAC,CAAC;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASutB,wBAAwBA,CAACrpiB,SAAS,EAAEyohB,KAAK,EAAE;EAChD,MAAM3M,KAAK,GAAG2M,KAAK,CAACzC,KAAK,CAAC,CAACvmrB,IAAI,CAACugK,SAAS,CAAC;EAC1C,IAAI87gB,KAAK,CAAC2a,cAAc,KAAK,CAAC,EAC1B,OAAO/mC,WAAW;EACtB,MAAMxyoB,OAAO,GAAG,EAAE;EAClB,KAAK,IAAIroB,CAAC,GAAGinrB,KAAK,CAAC2a,cAAc,EAAE5hsB,CAAC,GAAGinrB,KAAK,CAAC4a,YAAY,EAAE7hsB,CAAC,EAAE,EAAE;IAC5D,MAAMu1sB,iBAAiB,GAAG3hB,KAAK,CAAC5zrB,CAAC,CAAC;IAClC,IAAI,CAACo0sB,mBAAmB,CAACmB,iBAAiB,CAAC,EAAE;MACzCltrB,OAAO,CAAC9kB,IAAI,CAACgysB,iBAAiB,CAAC;IACnC;EACJ;EACA,OAAOltrB,OAAO;AAClB;AACA,SAASqtrB,uBAAuBA,CAACvqiB,SAAS,EAAEyohB,KAAK,EAAE;EAC/C,MAAM3M,KAAK,GAAG2M,KAAK,CAACzC,KAAK,CAAC,CAACvmrB,IAAI,CAACugK,SAAS,CAAC;EAC1C,MAAM;IAAEy2hB,cAAc;IAAEtO;EAAgB,CAAC,GAAGrM,KAAK;EACjD,OAAOqM,eAAe,GAAG,CAAC,CAAC,GAAGM,KAAK,CAACgO,cAAc,GAAGtO,eAAe,CAAC,GAAG,IAAI;AAChF;AACA;AACA;AACA;AACA;AACA,SAASqiB,iBAAiBA,CAAC/hB,KAAK,EAAEzohB,SAAS,EAAE;EACzC,MAAM87gB,KAAK,GAAG2M,KAAK,CAACzC,KAAK,CAAC,CAACvmrB,IAAI,CAACugK,SAAS,CAAC;EAC1C,IAAI87gB,KAAK,IAAIA,KAAK,CAAC2uB,UAAU,EAAE;IAC3B,MAAM5lrB,MAAM,GAAG,CAAC,CAAC;IACjB,IAAI6lrB,UAAU,GAAG5uB,KAAK,CAAC1+pB,KAAK,GAAG,CAAC;IAChC,KAAK,IAAIvoB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGinrB,KAAK,CAAC2uB,UAAU,CAACn1sB,MAAM,EAAET,CAAC,IAAI,CAAC,EAAE;MACjDgwB,MAAM,CAACi3pB,KAAK,CAAC2uB,UAAU,CAAC51sB,CAAC,CAAC,CAAC,GAAG4zrB,KAAK,CAACiiB,UAAU,CAAC;MAC/CA,UAAU,EAAE;IAChB;IACA,OAAO7lrB,MAAM;EACjB;EACA,OAAO,IAAI;AACf;AAEA,IAAI8lrB,oBAAoB;AACxB;AACA;AACA;AACA,SAASC,mBAAmBA,CAACC,iBAAiB,EAAEpiB,KAAK,EAAE;EACnD,OAAOkiB,oBAAoB,CAACE,iBAAiB,EAAEpiB,KAAK,CAAC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASqiB,+BAA+BA,CAACliC,MAAM,EAAE;EAC7C,IAAI+hC,oBAAoB,KAAKh2rB,SAAS,EAAE;IACpC;IACA;IACAg2rB,oBAAoB,GAAG/hC,MAAM,CAAC,CAAC;EACnC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA,SAASmiC,cAAcA,CAACtiB,KAAK,EAAE;EAC3BjtH,SAAS,IAAI8tH,WAAW,CAACb,KAAK,CAAC;EAC/B,MAAMjymB,MAAM,GAAGiymB,KAAK,CAACxC,MAAM,CAAC;EAC5B,OAAO+B,YAAY,CAACxxmB,MAAM,CAAC,GAAGA,MAAM,CAACyvmB,MAAM,CAAC,GAAGzvmB,MAAM;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASw0nB,WAAWA,CAACC,gBAAgB,EAAE;EACnCzvI,SAAS,IAAIq+G,aAAa,CAACoxB,gBAAgB,EAAE,WAAW,CAAC;EACzD,IAAIxiB,KAAK,GAAGV,OAAO,CAACkjB,gBAAgB,CAAC,GAAGA,gBAAgB,GAAGnB,gBAAgB,CAACmB,gBAAgB,CAAC;EAC7F,OAAOxiB,KAAK,IAAI,EAAEA,KAAK,CAAC9yQ,KAAK,CAAC,GAAG,GAAG,CAAC,wBAAwB,EAAE;IAC3D8yQ,KAAK,GAAGsiB,cAAc,CAACtiB,KAAK,CAAC;EACjC;EACAjtH,SAAS,IAAI8tH,WAAW,CAACb,KAAK,CAAC;EAC/B,OAAOA,KAAK;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASyiB,cAAcA,CAACC,eAAe,EAAE;EACrC,MAAMC,QAAQ,GAAGJ,WAAW,CAACG,eAAe,CAAC;EAC7C3vI,SAAS,IACLq+G,aAAa,CAACuxB,QAAQ,CAAC9kB,OAAO,CAAC,EAAE,uDAAuD,CAAC;EAC7F,OAAO8kB,QAAQ,CAAC9kB,OAAO,CAAC;AAC5B;AACA;AACA;AACA;AACA,SAAS+kB,kBAAkBA,CAAC5iB,KAAK,EAAE;EAC/B,OAAO6iB,oBAAoB,CAAC7iB,KAAK,CAAC/B,UAAU,CAAC,CAAC;AAClD;AACA;AACA;AACA;AACA,SAAS6kB,iBAAiBA,CAACn7qB,SAAS,EAAE;EAClC,OAAOk7qB,oBAAoB,CAACl7qB,SAAS,CAAC81pB,IAAI,CAAC,CAAC;AAChD;AACA,SAASolB,oBAAoBA,CAAC5a,eAAe,EAAE;EAC3C,OAAOA,eAAe,KAAK,IAAI,IAAI,CAAC1I,YAAY,CAAC0I,eAAe,CAAC,EAAE;IAC/DA,eAAe,GAAGA,eAAe,CAACxK,IAAI,CAAC;EAC3C;EACA,OAAOwK,eAAe;AAC1B;;AAEA;AACA;AACA;AACA;AACA,SAAS8a,yBAAyBA,CAAC1we,MAAM,EAAEgoE,QAAQ,EAAEtsN,MAAM,EAAEi1nB,aAAa,EAAEC,UAAU,EAAE;EACpF;EACA;EACA;EACA;EACA,IAAID,aAAa,IAAI,IAAI,EAAE;IACvB,IAAIE,UAAU;IACd,IAAI/ja,WAAW,GAAG,KAAK;IACvB;IACA;IACA;IACA,IAAIogZ,YAAY,CAACyjB,aAAa,CAAC,EAAE;MAC7BE,UAAU,GAAGF,aAAa;IAC9B,CAAC,MACI,IAAI1jB,OAAO,CAAC0jB,aAAa,CAAC,EAAE;MAC7B7ja,WAAW,GAAG,IAAI;MAClB4zR,SAAS,IAAIq+G,aAAa,CAAC4xB,aAAa,CAAC1lB,IAAI,CAAC,EAAE,4CAA4C,CAAC;MAC7F0lB,aAAa,GAAGA,aAAa,CAAC1lB,IAAI,CAAC;IACvC;IACA,MAAM6lB,KAAK,GAAGlc,WAAW,CAAC+b,aAAa,CAAC;IACxC,IAAI3we,MAAM,KAAK,CAAC,CAAC,oCAAoCtkJ,MAAM,KAAK,IAAI,EAAE;MAClE,IAAIk1nB,UAAU,IAAI,IAAI,EAAE;QACpBG,iBAAiB,CAAC/oa,QAAQ,EAAEtsN,MAAM,EAAEo1nB,KAAK,CAAC;MAC9C,CAAC,MACI;QACDE,kBAAkB,CAAChpa,QAAQ,EAAEtsN,MAAM,EAAEo1nB,KAAK,EAAEF,UAAU,IAAI,IAAI,EAAE,IAAI,CAAC;MACzE;IACJ,CAAC,MACI,IAAI5we,MAAM,KAAK,CAAC,CAAC,oCAAoCtkJ,MAAM,KAAK,IAAI,EAAE;MACvEs1nB,kBAAkB,CAAChpa,QAAQ,EAAEtsN,MAAM,EAAEo1nB,KAAK,EAAEF,UAAU,IAAI,IAAI,EAAE,IAAI,CAAC;IACzE,CAAC,MACI,IAAI5we,MAAM,KAAK,CAAC,CAAC,kCAAkC;MACpDixe,gBAAgB,CAACjpa,QAAQ,EAAE8oa,KAAK,EAAEhka,WAAW,CAAC;IAClD,CAAC,MACI,IAAI9sE,MAAM,KAAK,CAAC,CAAC,mCAAmC;MACrD0gW,SAAS,IAAIA,SAAS,CAACqhH,mBAAmB,EAAE;MAC5C/5Y,QAAQ,CAACkpa,WAAW,CAACJ,KAAK,CAAC;IAC/B;IACA,IAAID,UAAU,IAAI,IAAI,EAAE;MACpBM,cAAc,CAACnpa,QAAQ,EAAEhoE,MAAM,EAAE6we,UAAU,EAAEn1nB,MAAM,EAAEk1nB,UAAU,CAAC;IACpE;EACJ;AACJ;AACA,SAASj9T,cAAcA,CAAC3rG,QAAQ,EAAE9sS,KAAK,EAAE;EACrCwlkB,SAAS,IAAIA,SAAS,CAACwgH,sBAAsB,EAAE;EAC/CxgH,SAAS,IAAIA,SAAS,CAACygH,eAAe,EAAE;EACxC,OAAOn5Y,QAAQ,CAACopa,UAAU,CAACl2sB,KAAK,CAAC;AACrC;AACA,SAASm2sB,cAAcA,CAACrpa,QAAQ,EAAE8oa,KAAK,EAAE51sB,KAAK,EAAE;EAC5CwlkB,SAAS,IAAIA,SAAS,CAACygH,eAAe,EAAE;EACxCn5Y,QAAQ,CAACspa,QAAQ,CAACR,KAAK,EAAE51sB,KAAK,CAAC;AACnC;AACA,SAASq2sB,iBAAiBA,CAACvpa,QAAQ,EAAE9sS,KAAK,EAAE;EACxCwlkB,SAAS,IAAIA,SAAS,CAAC0hH,qBAAqB,EAAE;EAC9C,OAAOp6Y,QAAQ,CAACi5Q,aAAa,CAACssJ,iBAAiB,CAACrysB,KAAK,CAAC,CAAC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASs2sB,iBAAiBA,CAACxpa,QAAQ,EAAE3nS,IAAI,EAAE0e,SAAS,EAAE;EAClD2hjB,SAAS,IAAIA,SAAS,CAAC0gH,qBAAqB,EAAE;EAC9C,OAAOp5Y,QAAQ,CAACvyR,aAAa,CAACpV,IAAI,EAAE0e,SAAS,CAAC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS0yrB,uBAAuBA,CAACxwB,KAAK,EAAE0M,KAAK,EAAE;EAC3C,MAAM3lZ,QAAQ,GAAG2lZ,KAAK,CAAChC,QAAQ,CAAC;EAChC+lB,SAAS,CAACzwB,KAAK,EAAE0M,KAAK,EAAE3lZ,QAAQ,EAAE,CAAC,CAAC,kCAAkC,IAAI,EAAE,IAAI,CAAC;EACjF2lZ,KAAK,CAAC1C,IAAI,CAAC,GAAG,IAAI;EAClB0C,KAAK,CAACrC,MAAM,CAAC,GAAG,IAAI;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASqmB,kBAAkBA,CAAC1wB,KAAK,EAAEuY,WAAW,EAAExxZ,QAAQ,EAAE2lZ,KAAK,EAAEikB,gBAAgB,EAAEhB,UAAU,EAAE;EAC3FjjB,KAAK,CAAC1C,IAAI,CAAC,GAAG2mB,gBAAgB;EAC9BjkB,KAAK,CAACrC,MAAM,CAAC,GAAGkO,WAAW;EAC3BkY,SAAS,CAACzwB,KAAK,EAAE0M,KAAK,EAAE3lZ,QAAQ,EAAE,CAAC,CAAC,kCAAkC4pa,gBAAgB,EAAEhB,UAAU,CAAC;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASiB,gBAAgBA,CAAC5wB,KAAK,EAAE0M,KAAK,EAAE;EACpC+jB,SAAS,CAACzwB,KAAK,EAAE0M,KAAK,EAAEA,KAAK,CAAChC,QAAQ,CAAC,EAAE,CAAC,CAAC,kCAAkC,IAAI,EAAE,IAAI,CAAC;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASmmB,eAAeA,CAACxB,QAAQ,EAAE;EAC/B;EACA,IAAIyB,iBAAiB,GAAGzB,QAAQ,CAAC1kB,UAAU,CAAC;EAC5C,IAAI,CAACmmB,iBAAiB,EAAE;IACpB,OAAOC,WAAW,CAAC1B,QAAQ,CAACplB,KAAK,CAAC,EAAEolB,QAAQ,CAAC;EACjD;EACA,OAAOyB,iBAAiB,EAAE;IACtB,IAAIx1sB,IAAI,GAAG,IAAI;IACf,IAAI0wrB,OAAO,CAAC8kB,iBAAiB,CAAC,EAAE;MAC5B;MACAx1sB,IAAI,GAAGw1sB,iBAAiB,CAACnmB,UAAU,CAAC;IACxC,CAAC,MACI;MACDlrH,SAAS,IAAI4tH,gBAAgB,CAACyjB,iBAAiB,CAAC;MAChD;MACA,MAAME,SAAS,GAAGF,iBAAiB,CAAChlB,uBAAuB,CAAC;MAC5D,IAAIklB,SAAS,EACT11sB,IAAI,GAAG01sB,SAAS;IACxB;IACA,IAAI,CAAC11sB,IAAI,EAAE;MACP;MACA;MACA,OAAOw1sB,iBAAiB,IAAI,CAACA,iBAAiB,CAAC3mB,IAAI,CAAC,IAAI2mB,iBAAiB,KAAKzB,QAAQ,EAAE;QACpF,IAAIrjB,OAAO,CAAC8kB,iBAAiB,CAAC,EAAE;UAC5BC,WAAW,CAACD,iBAAiB,CAAC7mB,KAAK,CAAC,EAAE6mB,iBAAiB,CAAC;QAC5D;QACAA,iBAAiB,GAAGA,iBAAiB,CAAC5mB,MAAM,CAAC;MACjD;MACA,IAAI4mB,iBAAiB,KAAK,IAAI,EAC1BA,iBAAiB,GAAGzB,QAAQ;MAChC,IAAIrjB,OAAO,CAAC8kB,iBAAiB,CAAC,EAAE;QAC5BC,WAAW,CAACD,iBAAiB,CAAC7mB,KAAK,CAAC,EAAE6mB,iBAAiB,CAAC;MAC5D;MACAx1sB,IAAI,GAAGw1sB,iBAAiB,IAAIA,iBAAiB,CAAC3mB,IAAI,CAAC;IACvD;IACA2mB,iBAAiB,GAAGx1sB,IAAI;EAC5B;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS21sB,UAAUA,CAACjxB,KAAK,EAAE0M,KAAK,EAAEkjB,UAAU,EAAEvurB,KAAK,EAAE;EACjDo+iB,SAAS,IAAI8tH,WAAW,CAACb,KAAK,CAAC;EAC/BjtH,SAAS,IAAI4tH,gBAAgB,CAACuiB,UAAU,CAAC;EACzC,MAAMsB,gBAAgB,GAAGplB,uBAAuB,GAAGzqqB,KAAK;EACxD,MAAM8vrB,eAAe,GAAGvB,UAAU,CAACr2sB,MAAM;EACzC,IAAI8nB,KAAK,GAAG,CAAC,EAAE;IACX;IACAuurB,UAAU,CAACsB,gBAAgB,GAAG,CAAC,CAAC,CAAC/mB,IAAI,CAAC,GAAGuC,KAAK;EAClD;EACA,IAAIrrqB,KAAK,GAAG8vrB,eAAe,GAAGrlB,uBAAuB,EAAE;IACnDY,KAAK,CAACvC,IAAI,CAAC,GAAGylB,UAAU,CAACsB,gBAAgB,CAAC;IAC1CrM,UAAU,CAAC+K,UAAU,EAAE9jB,uBAAuB,GAAGzqqB,KAAK,EAAEqrqB,KAAK,CAAC;EAClE,CAAC,MACI;IACDkjB,UAAU,CAACvzsB,IAAI,CAACqwrB,KAAK,CAAC;IACtBA,KAAK,CAACvC,IAAI,CAAC,GAAG,IAAI;EACtB;EACAuC,KAAK,CAACxC,MAAM,CAAC,GAAG0lB,UAAU;EAC1B;EACA,MAAMwB,qBAAqB,GAAG1kB,KAAK,CAAC3B,sBAAsB,CAAC;EAC3D,IAAIqmB,qBAAqB,KAAK,IAAI,IAAIxB,UAAU,KAAKwB,qBAAqB,EAAE;IACxEC,cAAc,CAACD,qBAAqB,EAAE1kB,KAAK,CAAC;EAChD;EACA;EACA,MAAM4kB,QAAQ,GAAG5kB,KAAK,CAACzB,OAAO,CAAC;EAC/B,IAAIqmB,QAAQ,KAAK,IAAI,EAAE;IACnBA,QAAQ,CAACL,UAAU,CAACjxB,KAAK,CAAC;EAC9B;EACA;EACA0M,KAAK,CAAC9yQ,KAAK,CAAC,IAAI,GAAG,CAAC;AACxB;AACA;AACA;AACA;AACA;AACA,SAASy3R,cAAcA,CAACE,oBAAoB,EAAE7kB,KAAK,EAAE;EACjDjtH,SAAS,IAAIq+G,aAAa,CAAC4O,KAAK,EAAE,gBAAgB,CAAC;EACnDjtH,SAAS,IAAI4tH,gBAAgB,CAACkkB,oBAAoB,CAAC;EACnD,MAAMC,UAAU,GAAGD,oBAAoB,CAAC3lB,WAAW,CAAC;EACpD,MAAM6lB,kBAAkB,GAAG/kB,KAAK,CAACxC,MAAM,CAAC;EACxCzqH,SAAS,IAAI4tH,gBAAgB,CAACokB,kBAAkB,CAAC;EACjD,MAAMC,sBAAsB,GAAGD,kBAAkB,CAACvnB,MAAM,CAAC,CAACY,0BAA0B,CAAC;EACrFrrH,SAAS,IAAIq+G,aAAa,CAAC4zB,sBAAsB,EAAE,gCAAgC,CAAC;EACpF,MAAMC,sBAAsB,GAAGjlB,KAAK,CAAC5B,0BAA0B,CAAC;EAChErrH,SAAS,IAAIq+G,aAAa,CAAC6zB,sBAAsB,EAAE,gCAAgC,CAAC;EACpF,IAAIA,sBAAsB,KAAKD,sBAAsB,EAAE;IACnD;IACA;IACA;IACAH,oBAAoB,CAAC9lB,sBAAsB,CAAC,GAAG,IAAI;EACvD;EACA,IAAI+lB,UAAU,KAAK,IAAI,EAAE;IACrBD,oBAAoB,CAAC3lB,WAAW,CAAC,GAAG,CAACc,KAAK,CAAC;EAC/C,CAAC,MACI;IACD8kB,UAAU,CAACn1sB,IAAI,CAACqwrB,KAAK,CAAC;EAC1B;AACJ;AACA,SAASklB,eAAeA,CAACL,oBAAoB,EAAE7kB,KAAK,EAAE;EAClDjtH,SAAS,IAAI4tH,gBAAgB,CAACkkB,oBAAoB,CAAC;EACnD9xI,SAAS,IACLq+G,aAAa,CAACyzB,oBAAoB,CAAC3lB,WAAW,CAAC,EAAE,0EAA0E,CAAC;EAChI,MAAM4lB,UAAU,GAAGD,oBAAoB,CAAC3lB,WAAW,CAAC;EACpD,MAAMimB,oBAAoB,GAAGL,UAAU,CAACp4sB,OAAO,CAACszrB,KAAK,CAAC;EACtD,MAAMolB,mBAAmB,GAAGplB,KAAK,CAACxC,MAAM,CAAC;EACzCzqH,SAAS,IAAI4tH,gBAAgB,CAACykB,mBAAmB,CAAC;EAClD;EACA;EACApd,oBAAoB,CAAChI,KAAK,CAAC;EAC3B8kB,UAAU,CAAC/4hB,MAAM,CAACo5hB,oBAAoB,EAAE,CAAC,CAAC;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASx7E,UAAUA,CAACu5E,UAAU,EAAEmC,WAAW,EAAE;EACzC,IAAInC,UAAU,CAACr2sB,MAAM,IAAIuyrB,uBAAuB,EAC5C;EACJ,MAAMolB,gBAAgB,GAAGplB,uBAAuB,GAAGimB,WAAW;EAC9D,MAAMC,YAAY,GAAGpC,UAAU,CAACsB,gBAAgB,CAAC;EACjD,IAAIc,YAAY,EAAE;IACd,MAAMZ,qBAAqB,GAAGY,YAAY,CAACjnB,sBAAsB,CAAC;IAClE,IAAIqmB,qBAAqB,KAAK,IAAI,IAAIA,qBAAqB,KAAKxB,UAAU,EAAE;MACxEgC,eAAe,CAACR,qBAAqB,EAAEY,YAAY,CAAC;IACxD;IACA,IAAID,WAAW,GAAG,CAAC,EAAE;MACjBnC,UAAU,CAACsB,gBAAgB,GAAG,CAAC,CAAC,CAAC/mB,IAAI,CAAC,GAAG6nB,YAAY,CAAC7nB,IAAI,CAAC;IAC/D;IACA,MAAM8nB,YAAY,GAAGnN,eAAe,CAAC8K,UAAU,EAAE9jB,uBAAuB,GAAGimB,WAAW,CAAC;IACvFvB,uBAAuB,CAACwB,YAAY,CAAC/nB,KAAK,CAAC,EAAE+nB,YAAY,CAAC;IAC1D;IACA,MAAMV,QAAQ,GAAGW,YAAY,CAAChnB,OAAO,CAAC;IACtC,IAAIqmB,QAAQ,KAAK,IAAI,EAAE;MACnBA,QAAQ,CAACj7E,UAAU,CAAC47E,YAAY,CAAChoB,KAAK,CAAC,CAAC;IAC5C;IACA+nB,YAAY,CAAC9nB,MAAM,CAAC,GAAG,IAAI;IAC3B8nB,YAAY,CAAC7nB,IAAI,CAAC,GAAG,IAAI;IACzB;IACA6nB,YAAY,CAACp4R,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;EAChC;;EACA,OAAOo4R,YAAY;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASE,YAAYA,CAAClyB,KAAK,EAAE0M,KAAK,EAAE;EAChC,IAAI,EAAEA,KAAK,CAAC9yQ,KAAK,CAAC,GAAG,GAAG,CAAC,2BAA2B,EAAE;IAClD,MAAM7yI,QAAQ,GAAG2lZ,KAAK,CAAChC,QAAQ,CAAC;IAChCgC,KAAK,CAACrB,0BAA0B,CAAC,EAAE9xT,OAAO,CAAC,CAAC;IAC5CmzT,KAAK,CAACpB,8BAA8B,CAAC,EAAE/xT,OAAO,CAAC,CAAC;IAChD,IAAIxyF,QAAQ,CAACkpa,WAAW,EAAE;MACtBQ,SAAS,CAACzwB,KAAK,EAAE0M,KAAK,EAAE3lZ,QAAQ,EAAE,CAAC,CAAC,mCAAmC,IAAI,EAAE,IAAI,CAAC;IACtF;IACA8pa,eAAe,CAACnkB,KAAK,CAAC;EAC1B;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASqkB,WAAWA,CAAC/wB,KAAK,EAAE0M,KAAK,EAAE;EAC/B,IAAI,EAAEA,KAAK,CAAC9yQ,KAAK,CAAC,GAAG,GAAG,CAAC,2BAA2B,EAAE;IAClD;IACA;IACA8yQ,KAAK,CAAC9yQ,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;IACrB;IACA;IACA;IACA;IACA;IACA8yQ,KAAK,CAAC9yQ,KAAK,CAAC,IAAI,GAAG,CAAC;IACpBu4R,iBAAiB,CAACnyB,KAAK,EAAE0M,KAAK,CAAC;IAC/B0lB,eAAe,CAACpyB,KAAK,EAAE0M,KAAK,CAAC;IAC7B;IACA,IAAIA,KAAK,CAACzC,KAAK,CAAC,CAACv9qB,IAAI,KAAK,CAAC,CAAC,2BAA2B;MACnD+yjB,SAAS,IAAIA,SAAS,CAACohH,eAAe,EAAE;MACxC6L,KAAK,CAAChC,QAAQ,CAAC,CAACnxT,OAAO,CAAC,CAAC;IAC7B;IACA,MAAMg4U,oBAAoB,GAAG7kB,KAAK,CAAC3B,sBAAsB,CAAC;IAC1D;IACA,IAAIwmB,oBAAoB,KAAK,IAAI,IAAItlB,YAAY,CAACS,KAAK,CAACxC,MAAM,CAAC,CAAC,EAAE;MAC9D;MACA,IAAIqnB,oBAAoB,KAAK7kB,KAAK,CAACxC,MAAM,CAAC,EAAE;QACxC0nB,eAAe,CAACL,oBAAoB,EAAE7kB,KAAK,CAAC;MAChD;MACA;MACA,MAAM4kB,QAAQ,GAAG5kB,KAAK,CAACzB,OAAO,CAAC;MAC/B,IAAIqmB,QAAQ,KAAK,IAAI,EAAE;QACnBA,QAAQ,CAACj7E,UAAU,CAAC2pD,KAAK,CAAC;MAC9B;IACJ;IACA;IACA4sB,eAAe,CAAClgB,KAAK,CAAC;EAC1B;AACJ;AACA;AACA,SAAS0lB,eAAeA,CAACpyB,KAAK,EAAE0M,KAAK,EAAE;EACnC,MAAM2lB,QAAQ,GAAGryB,KAAK,CAACtL,OAAO;EAC9B,MAAM49B,QAAQ,GAAG5lB,KAAK,CAACpC,OAAO,CAAC;EAC/B,IAAI+nB,QAAQ,KAAK,IAAI,EAAE;IACnB,KAAK,IAAIv5sB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGu5sB,QAAQ,CAAC94sB,MAAM,GAAG,CAAC,EAAET,CAAC,IAAI,CAAC,EAAE;MAC7C,IAAI,OAAOu5sB,QAAQ,CAACv5sB,CAAC,CAAC,KAAK,QAAQ,EAAE;QACjC;QACA;QACA,MAAMy5sB,SAAS,GAAGF,QAAQ,CAACv5sB,CAAC,GAAG,CAAC,CAAC;QACjC2mkB,SAAS,IAAIo9G,YAAY,CAAC01B,SAAS,EAAE,iCAAiC,CAAC;QACvE,IAAIA,SAAS,IAAI,CAAC,EAAE;UAChB;UACAD,QAAQ,CAACC,SAAS,CAAC,CAAC,CAAC;QACzB,CAAC,MACI;UACD;UACAD,QAAQ,CAAC,CAACC,SAAS,CAAC,CAAC/uT,WAAW,CAAC,CAAC;QACtC;QACA1qZ,CAAC,IAAI,CAAC;MACV,CAAC,MACI;QACD;QACA,MAAM4uG,OAAO,GAAG4qmB,QAAQ,CAACD,QAAQ,CAACv5sB,CAAC,GAAG,CAAC,CAAC,CAAC;QACzCu5sB,QAAQ,CAACv5sB,CAAC,CAAC,CAACK,IAAI,CAACuuG,OAAO,CAAC;MAC7B;IACJ;EACJ;EACA,IAAI4qmB,QAAQ,KAAK,IAAI,EAAE;IACnB5lB,KAAK,CAACpC,OAAO,CAAC,GAAG,IAAI;EACzB;EACA,MAAM4Q,YAAY,GAAGxO,KAAK,CAACvB,gBAAgB,CAAC;EAC5C,IAAI+P,YAAY,KAAK,IAAI,EAAE;IACvB;IACA;IACAxO,KAAK,CAACvB,gBAAgB,CAAC,GAAG,IAAI;IAC9B,KAAK,IAAIryrB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGoisB,YAAY,CAAC3hsB,MAAM,EAAET,CAAC,EAAE,EAAE;MAC1C,MAAM05sB,cAAc,GAAGtX,YAAY,CAACpisB,CAAC,CAAC;MACtC2mkB,SAAS,IAAI49G,cAAc,CAACm1B,cAAc,EAAE,0CAA0C,CAAC;MACvFA,cAAc,CAAC,CAAC;IACpB;EACJ;AACJ;AACA;AACA,SAASL,iBAAiBA,CAACnyB,KAAK,EAAE0M,KAAK,EAAE;EACrC,IAAIwO,YAAY;EAChB,IAAIlb,KAAK,IAAI,IAAI,IAAI,CAACkb,YAAY,GAAGlb,KAAK,CAACkb,YAAY,KAAK,IAAI,EAAE;IAC9D,KAAK,IAAIpisB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGoisB,YAAY,CAAC3hsB,MAAM,EAAET,CAAC,IAAI,CAAC,EAAE;MAC7C,MAAM4uG,OAAO,GAAGgllB,KAAK,CAACwO,YAAY,CAACpisB,CAAC,CAAC,CAAC;MACtC;MACA,IAAI,EAAE4uG,OAAO,YAAYw0lB,mBAAmB,CAAC,EAAE;QAC3C,MAAMuW,MAAM,GAAGvX,YAAY,CAACpisB,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI2H,KAAK,CAACoJ,OAAO,CAAC4osB,MAAM,CAAC,EAAE;UACvB,KAAK,IAAI3ssB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG2ssB,MAAM,CAACl5sB,MAAM,EAAEuM,CAAC,IAAI,CAAC,EAAE;YACvC,MAAM4ssB,WAAW,GAAGhrmB,OAAO,CAAC+qmB,MAAM,CAAC3ssB,CAAC,CAAC,CAAC;YACtC,MAAM61rB,IAAI,GAAG8W,MAAM,CAAC3ssB,CAAC,GAAG,CAAC,CAAC;YAC1BytrB,QAAQ,CAAC,CAAC,CAAC,wCAAwCmf,WAAW,EAAE/W,IAAI,CAAC;YACrE,IAAI;cACAA,IAAI,CAACxisB,IAAI,CAACu5sB,WAAW,CAAC;YAC1B,CAAC,SACO;cACJnf,QAAQ,CAAC,CAAC,CAAC,sCAAsCmf,WAAW,EAAE/W,IAAI,CAAC;YACvE;UACJ;QACJ,CAAC,MACI;UACDpI,QAAQ,CAAC,CAAC,CAAC,wCAAwC7rlB,OAAO,EAAE+qmB,MAAM,CAAC;UACnE,IAAI;YACAA,MAAM,CAACt5sB,IAAI,CAACuuG,OAAO,CAAC;UACxB,CAAC,SACO;YACJ6rlB,QAAQ,CAAC,CAAC,CAAC,sCAAsC7rlB,OAAO,EAAE+qmB,MAAM,CAAC;UACrE;QACJ;MACJ;IACJ;EACJ;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASE,iBAAiBA,CAAC3yB,KAAK,EAAED,KAAK,EAAE2M,KAAK,EAAE;EAC5C,OAAOkmB,kBAAkB,CAAC5yB,KAAK,EAAED,KAAK,CAACtlmB,MAAM,EAAEiymB,KAAK,CAAC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASkmB,kBAAkBA,CAAC5yB,KAAK,EAAED,KAAK,EAAE2M,KAAK,EAAE;EAC7C,IAAI6L,WAAW,GAAGxY,KAAK;EACvB;EACA;EACA,OAAOwY,WAAW,KAAK,IAAI,IACtBA,WAAW,CAAC7rrB,IAAI,IAAI,CAAC,CAAC,mCAAmC,EAAE,CAAC,oBAAqB,EAAE;IACpFqzqB,KAAK,GAAGwY,WAAW;IACnBA,WAAW,GAAGxY,KAAK,CAACtlmB,MAAM;EAC9B;EACA;EACA;EACA,IAAI89mB,WAAW,KAAK,IAAI,EAAE;IACtB;IACA;IACA,OAAO7L,KAAK,CAAC1C,IAAI,CAAC;EACtB,CAAC,MACI;IACDvqH,SAAS,IAAIs9H,eAAe,CAACxE,WAAW,EAAE,CAAC,CAAC,2BAA2B,CAAC,CAAC,yBAAyB,CAAC;IACnG,MAAM;MAAEnM;IAAgB,CAAC,GAAGmM,WAAW;IACvC,IAAInM,eAAe,GAAG,CAAC,CAAC,EAAE;MACtB3sH,SAAS,IAAIgtH,mBAAmB,CAAC8L,WAAW,EAAE7L,KAAK,CAAC;MACpD,MAAM;QAAEp9E;MAAc,CAAC,GAAG0wE,KAAK,CAACt8qB,IAAI,CAAC60rB,WAAW,CAACmC,cAAc,GAAGtO,eAAe,CAAC;MAClF;MACA;MACA;MACA;MACA;MACA;MACA,IAAI98E,aAAa,KAAK6zE,mBAAmB,CAAC5zE,IAAI,IAC1CD,aAAa,KAAK6zE,mBAAmB,CAACsE,QAAQ,EAAE;QAChD,OAAO,IAAI;MACf;IACJ;IACA,OAAOqM,gBAAgB,CAACyE,WAAW,EAAE7L,KAAK,CAAC;EAC/C;AACJ;AACA;AACA;AACA;AACA;AACA,SAASqjB,kBAAkBA,CAAChpa,QAAQ,EAAEtsN,MAAM,EAAEv4D,KAAK,EAAEytrB,UAAU,EAAEkD,MAAM,EAAE;EACrEpzI,SAAS,IAAIA,SAAS,CAACyhH,oBAAoB,EAAE;EAC7Cn6Y,QAAQ,CAAC1kR,YAAY,CAACo4D,MAAM,EAAEv4D,KAAK,EAAEytrB,UAAU,EAAEkD,MAAM,CAAC;AAC5D;AACA,SAAS/C,iBAAiBA,CAAC/oa,QAAQ,EAAEtsN,MAAM,EAAEv4D,KAAK,EAAE;EAChDu9iB,SAAS,IAAIA,SAAS,CAACwhH,mBAAmB,EAAE;EAC5CxhH,SAAS,IAAIq+G,aAAa,CAACrjmB,MAAM,EAAE,6BAA6B,CAAC;EACjEssN,QAAQ,CAAChyR,WAAW,CAAC0lE,MAAM,EAAEv4D,KAAK,CAAC;AACvC;AACA,SAAS4wrB,0BAA0BA,CAAC/ra,QAAQ,EAAEtsN,MAAM,EAAEv4D,KAAK,EAAEytrB,UAAU,EAAEkD,MAAM,EAAE;EAC7E,IAAIlD,UAAU,KAAK,IAAI,EAAE;IACrBI,kBAAkB,CAAChpa,QAAQ,EAAEtsN,MAAM,EAAEv4D,KAAK,EAAEytrB,UAAU,EAAEkD,MAAM,CAAC;EACnE,CAAC,MACI;IACD/C,iBAAiB,CAAC/oa,QAAQ,EAAEtsN,MAAM,EAAEv4D,KAAK,CAAC;EAC9C;AACJ;AACA;AACA,SAAS6wrB,iBAAiBA,CAAChsa,QAAQ,EAAEtsN,MAAM,EAAEv4D,KAAK,EAAE8wrB,aAAa,EAAE;EAC/Djsa,QAAQ,CAAClyR,WAAW,CAAC4lE,MAAM,EAAEv4D,KAAK,EAAE8wrB,aAAa,CAAC;AACtD;AACA;AACA,SAASC,cAAcA,CAACtwrB,IAAI,EAAE;EAC1B,OAAOA,IAAI,CAACR,OAAO,KAAK,UAAU,IAAIQ,IAAI,CAACgF,OAAO,KAAK/O,SAAS;AACpE;AACA;AACA;AACA;AACA,SAASs6rB,gBAAgBA,CAACnsa,QAAQ,EAAEpkR,IAAI,EAAE;EACtC,OAAOokR,QAAQ,CAACr7Q,UAAU,CAAC/I,IAAI,CAAC;AACpC;AACA;AACA;AACA;AACA,SAASwwrB,iBAAiBA,CAACpsa,QAAQ,EAAEpkR,IAAI,EAAE;EACvC,OAAOokR,QAAQ,CAACylG,WAAW,CAAC7pX,IAAI,CAAC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASywrB,uBAAuBA,CAAC7a,WAAW,EAAE9B,YAAY,EAAE/J,KAAK,EAAE;EAC/D,OAAO2mB,gCAAgC,CAAC9a,WAAW,EAAE9B,YAAY,EAAE/J,KAAK,CAAC;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS4mB,iCAAiCA,CAAC/a,WAAW,EAAE9B,YAAY,EAAE/J,KAAK,EAAE;EACzE,IAAI6L,WAAW,CAAC7rrB,IAAI,IAAI,CAAC,CAAC,mCAAmC,EAAE,CAAC,oBAAoB,EAAE;IAClF,OAAOonrB,gBAAgB,CAACyE,WAAW,EAAE7L,KAAK,CAAC;EAC/C;EACA,OAAO,IAAI;AACf;AACA;AACA;AACA;AACA;AACA;AACA,IAAI2mB,gCAAgC,GAAGC,iCAAiC;AACxE;AACA;AACA;AACA;AACA;AACA,IAAIC,wBAAwB;AAC5B,SAASC,eAAeA,CAACC,+BAA+B,EAAEC,uBAAuB,EAAE;EAC/EL,gCAAgC,GAAGI,+BAA+B;EAClEF,wBAAwB,GAAGG,uBAAuB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS3+rB,WAAWA,CAACirqB,KAAK,EAAE0M,KAAK,EAAEinB,UAAU,EAAEC,UAAU,EAAE;EACvD,MAAMC,WAAW,GAAGlB,iBAAiB,CAAC3yB,KAAK,EAAE4zB,UAAU,EAAElnB,KAAK,CAAC;EAC/D,MAAM3lZ,QAAQ,GAAG2lZ,KAAK,CAAChC,QAAQ,CAAC;EAChC,MAAM6N,WAAW,GAAGqb,UAAU,CAACn5nB,MAAM,IAAIiymB,KAAK,CAACrC,MAAM,CAAC;EACtD,MAAMx0D,UAAU,GAAGu9E,uBAAuB,CAAC7a,WAAW,EAAEqb,UAAU,EAAElnB,KAAK,CAAC;EAC1E,IAAImnB,WAAW,IAAI,IAAI,EAAE;IACrB,IAAIpzsB,KAAK,CAACoJ,OAAO,CAAC8psB,UAAU,CAAC,EAAE;MAC3B,KAAK,IAAI76sB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG66sB,UAAU,CAACp6sB,MAAM,EAAET,CAAC,EAAE,EAAE;QACxCg6sB,0BAA0B,CAAC/ra,QAAQ,EAAE8sa,WAAW,EAAEF,UAAU,CAAC76sB,CAAC,CAAC,EAAE+8nB,UAAU,EAAE,KAAK,CAAC;MACvF;IACJ,CAAC,MACI;MACDi9E,0BAA0B,CAAC/ra,QAAQ,EAAE8sa,WAAW,EAAEF,UAAU,EAAE99E,UAAU,EAAE,KAAK,CAAC;IACpF;EACJ;EACA09E,wBAAwB,KAAK36rB,SAAS,IAClC26rB,wBAAwB,CAACxsa,QAAQ,EAAE6sa,UAAU,EAAElnB,KAAK,EAAEinB,UAAU,EAAEE,WAAW,CAAC;AACtF;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,kBAAkBA,CAACpnB,KAAK,EAAE3M,KAAK,EAAE;EACtC,IAAIA,KAAK,KAAK,IAAI,EAAE;IAChBtgH,SAAS,IACLs9H,eAAe,CAAChd,KAAK,EAAE,CAAC,CAAC,2BAA2B,EAAE,CAAC,+BAA+B,EAAE,CAAC,sBAAsB,EAAE,CAAC,0BAA0B,CAAC;IACjJ,MAAM4c,SAAS,GAAG5c,KAAK,CAACrzqB,IAAI;IAC5B,IAAIiwrB,SAAS,GAAG,CAAC,CAAC,0BAA0B;MACxC,OAAO7I,gBAAgB,CAAC/T,KAAK,EAAE2M,KAAK,CAAC;IACzC,CAAC,MACI,IAAIiQ,SAAS,GAAG,CAAC,CAAC,2BAA2B;MAC9C,OAAOoX,oBAAoB,CAAC,CAAC,CAAC,EAAErnB,KAAK,CAAC3M,KAAK,CAAC1+pB,KAAK,CAAC,CAAC;IACvD,CAAC,MACI,IAAIs7qB,SAAS,GAAG,CAAC,CAAC,kCAAkC;MACrD,MAAMqX,mBAAmB,GAAGj0B,KAAK,CAAC79pB,KAAK;MACvC,IAAI8xrB,mBAAmB,KAAK,IAAI,EAAE;QAC9B,OAAOF,kBAAkB,CAACpnB,KAAK,EAAEsnB,mBAAmB,CAAC;MACzD,CAAC,MACI;QACD,MAAMC,iBAAiB,GAAGvnB,KAAK,CAAC3M,KAAK,CAAC1+pB,KAAK,CAAC;QAC5C,IAAI4qqB,YAAY,CAACgoB,iBAAiB,CAAC,EAAE;UACjC,OAAOF,oBAAoB,CAAC,CAAC,CAAC,EAAEE,iBAAiB,CAAC;QACtD,CAAC,MACI;UACD,OAAOtgB,WAAW,CAACsgB,iBAAiB,CAAC;QACzC;MACJ;IACJ,CAAC,MACI,IAAItX,SAAS,GAAG,EAAE,CAAC,qBAAqB;MACzC,IAAIuX,SAAS,GAAGrF,mBAAmB,CAAC9uB,KAAK,EAAE2M,KAAK,CAAC;MACjD,IAAImjB,KAAK,GAAGqE,SAAS,CAAC,CAAC;MACvB;MACA,OAAOrE,KAAK,IAAIlc,WAAW,CAACjH,KAAK,CAAC3M,KAAK,CAAC1+pB,KAAK,CAAC,CAAC;IACnD,CAAC,MACI;MACD,MAAM8yrB,eAAe,GAAGC,kBAAkB,CAAC1nB,KAAK,EAAE3M,KAAK,CAAC;MACxD,IAAIo0B,eAAe,KAAK,IAAI,EAAE;QAC1B,IAAI1zsB,KAAK,CAACoJ,OAAO,CAACsqsB,eAAe,CAAC,EAAE;UAChC,OAAOA,eAAe,CAAC,CAAC,CAAC;QAC7B;QACA,MAAMzW,UAAU,GAAGsR,cAAc,CAACtiB,KAAK,CAAC5B,0BAA0B,CAAC,CAAC;QACpErrH,SAAS,IAAI4uH,gBAAgB,CAACqP,UAAU,CAAC;QACzC,OAAOoW,kBAAkB,CAACpW,UAAU,EAAEyW,eAAe,CAAC;MAC1D,CAAC,MACI;QACD,OAAOL,kBAAkB,CAACpnB,KAAK,EAAE3M,KAAK,CAACzkrB,IAAI,CAAC;MAChD;IACJ;EACJ;EACA,OAAO,IAAI;AACf;AACA,SAAS84sB,kBAAkBA,CAAC1nB,KAAK,EAAE3M,KAAK,EAAE;EACtC,IAAIA,KAAK,KAAK,IAAI,EAAE;IAChB,MAAM5yY,aAAa,GAAGu/Y,KAAK,CAAC5B,0BAA0B,CAAC;IACvD,MAAMupB,aAAa,GAAGlna,aAAa,CAACk9Y,MAAM,CAAC;IAC3C,MAAMiqB,OAAO,GAAGv0B,KAAK,CAACnkd,UAAU;IAChC6jW,SAAS,IAAI2uH,qBAAqB,CAAC1B,KAAK,CAAC;IACzC,OAAO2nB,aAAa,CAACz4e,UAAU,CAAC04e,OAAO,CAAC;EAC5C;EACA,OAAO,IAAI;AACf;AACA,SAASP,oBAAoBA,CAACQ,oBAAoB,EAAE3E,UAAU,EAAE;EAC5D,MAAM4E,aAAa,GAAG1oB,uBAAuB,GAAGyoB,oBAAoB,GAAG,CAAC;EACxE,IAAIC,aAAa,GAAG5E,UAAU,CAACr2sB,MAAM,EAAE;IACnC,MAAMmzrB,KAAK,GAAGkjB,UAAU,CAAC4E,aAAa,CAAC;IACvC,MAAMC,gBAAgB,GAAG/nB,KAAK,CAACzC,KAAK,CAAC,CAACr3pB,UAAU;IAChD,IAAI6hrB,gBAAgB,KAAK,IAAI,EAAE;MAC3B,OAAOX,kBAAkB,CAACpnB,KAAK,EAAE+nB,gBAAgB,CAAC;IACtD;EACJ;EACA,OAAO7E,UAAU,CAAClkB,MAAM,CAAC;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASskB,gBAAgBA,CAACjpa,QAAQ,EAAE8oa,KAAK,EAAEmD,aAAa,EAAE;EACtDvzI,SAAS,IAAIA,SAAS,CAACuhH,kBAAkB,EAAE;EAC3C,MAAM0zB,YAAY,GAAGxB,gBAAgB,CAACnsa,QAAQ,EAAE8oa,KAAK,CAAC;EACtD,IAAI6E,YAAY,EAAE;IACd3B,iBAAiB,CAAChsa,QAAQ,EAAE2ta,YAAY,EAAE7E,KAAK,EAAEmD,aAAa,CAAC;EACnE;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,SAAS2B,oBAAoBA,CAAChH,QAAQ,EAAE;EACpCA,QAAQ,CAACttlB,WAAW,GAAG,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA,SAASu0lB,UAAUA,CAAC7ta,QAAQ,EAAEhoE,MAAM,EAAEghd,KAAK,EAAE2M,KAAK,EAAEmoB,cAAc,EAAElF,UAAU,EAAEmF,YAAY,EAAE;EAC1F,OAAO/0B,KAAK,IAAI,IAAI,EAAE;IAClBtgH,SAAS,IAAIgtH,mBAAmB,CAAC1M,KAAK,EAAE2M,KAAK,CAAC;IAC9CjtH,SAAS,IACLs9H,eAAe,CAAChd,KAAK,EAAE,CAAC,CAAC,2BAA2B,EAAE,CAAC,+BAA+B,EAAE,CAAC,6BAA6B,EAAE,CAAC,mBAAmB,CAAC;IACjJ,MAAMg1B,YAAY,GAAGroB,KAAK,CAAC3M,KAAK,CAAC1+pB,KAAK,CAAC;IACvC,MAAMs7qB,SAAS,GAAG5c,KAAK,CAACrzqB,IAAI;IAC5B,IAAIoosB,YAAY,EAAE;MACd,IAAI/1e,MAAM,KAAK,CAAC,CAAC,kCAAkC;QAC/Cg2e,YAAY,IAAIrH,eAAe,CAAC/Z,WAAW,CAACohB,YAAY,CAAC,EAAEroB,KAAK,CAAC;QACjE3M,KAAK,CAAC37T,KAAK,IAAI,CAAC,CAAC;MACrB;IACJ;;IACA,IAAI,CAAC27T,KAAK,CAAC37T,KAAK,GAAG,EAAE,CAAC,iCAAiC,EAAE,CAAC,6BAA6B;MACnF,IAAIu4U,SAAS,GAAG,CAAC,CAAC,kCAAkC;QAChDiY,UAAU,CAAC7ta,QAAQ,EAAEhoE,MAAM,EAAEghd,KAAK,CAAC79pB,KAAK,EAAEwqqB,KAAK,EAAEmoB,cAAc,EAAElF,UAAU,EAAE,KAAK,CAAC;QACnFF,yBAAyB,CAAC1we,MAAM,EAAEgoE,QAAQ,EAAE8ta,cAAc,EAAEE,YAAY,EAAEpF,UAAU,CAAC;MACzF,CAAC,MACI,IAAIhT,SAAS,GAAG,EAAE,CAAC,qBAAqB;QACzC,MAAMuX,SAAS,GAAGrF,mBAAmB,CAAC9uB,KAAK,EAAE2M,KAAK,CAAC;QACnD,IAAImjB,KAAK;QACT,OAAOA,KAAK,GAAGqE,SAAS,CAAC,CAAC,EAAE;UACxBzE,yBAAyB,CAAC1we,MAAM,EAAEgoE,QAAQ,EAAE8ta,cAAc,EAAEhF,KAAK,EAAEF,UAAU,CAAC;QAClF;QACAF,yBAAyB,CAAC1we,MAAM,EAAEgoE,QAAQ,EAAE8ta,cAAc,EAAEE,YAAY,EAAEpF,UAAU,CAAC;MACzF,CAAC,MACI,IAAIhT,SAAS,GAAG,EAAE,CAAC,4BAA4B;QAChDqY,wBAAwB,CAACjua,QAAQ,EAAEhoE,MAAM,EAAE2td,KAAK,EAAE3M,KAAK,EAAE80B,cAAc,EAAElF,UAAU,CAAC;MACxF,CAAC,MACI;QACDlwI,SAAS,IAAIs9H,eAAe,CAAChd,KAAK,EAAE,CAAC,CAAC,2BAA2B,CAAC,CAAC,yBAAyB,CAAC;QAC7F0vB,yBAAyB,CAAC1we,MAAM,EAAEgoE,QAAQ,EAAE8ta,cAAc,EAAEE,YAAY,EAAEpF,UAAU,CAAC;MACzF;IACJ;IACA5vB,KAAK,GAAG+0B,YAAY,GAAG/0B,KAAK,CAACk1B,cAAc,GAAGl1B,KAAK,CAACzkrB,IAAI;EAC5D;AACJ;AACA,SAASm1sB,SAASA,CAACzwB,KAAK,EAAE0M,KAAK,EAAE3lZ,QAAQ,EAAEhoE,MAAM,EAAE81e,cAAc,EAAElF,UAAU,EAAE;EAC3EiF,UAAU,CAAC7ta,QAAQ,EAAEhoE,MAAM,EAAEihd,KAAK,CAACptpB,UAAU,EAAE85pB,KAAK,EAAEmoB,cAAc,EAAElF,UAAU,EAAE,KAAK,CAAC;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASuF,eAAeA,CAACl1B,KAAK,EAAE0M,KAAK,EAAEyoB,eAAe,EAAE;EACpD,MAAMpua,QAAQ,GAAG2lZ,KAAK,CAAChC,QAAQ,CAAC;EAChC,MAAMmpB,WAAW,GAAGlB,iBAAiB,CAAC3yB,KAAK,EAAEm1B,eAAe,EAAEzoB,KAAK,CAAC;EACpE,MAAM6L,WAAW,GAAG4c,eAAe,CAAC16nB,MAAM,IAAIiymB,KAAK,CAACrC,MAAM,CAAC;EAC3D,IAAIslB,UAAU,GAAGyD,uBAAuB,CAAC7a,WAAW,EAAE4c,eAAe,EAAEzoB,KAAK,CAAC;EAC7EsoB,wBAAwB,CAACjua,QAAQ,EAAE,CAAC,CAAC,kCAAkC2lZ,KAAK,EAAEyoB,eAAe,EAAEtB,WAAW,EAAElE,UAAU,CAAC;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASqF,wBAAwBA,CAACjua,QAAQ,EAAEhoE,MAAM,EAAE2td,KAAK,EAAEyoB,eAAe,EAAEN,cAAc,EAAElF,UAAU,EAAE;EACpG,MAAMyF,cAAc,GAAG1oB,KAAK,CAAC5B,0BAA0B,CAAC;EACxD,MAAMuqB,aAAa,GAAGD,cAAc,CAAC/qB,MAAM,CAAC;EAC5C5qH,SAAS,IACL69G,WAAW,CAAC,OAAO63B,eAAe,CAACv5e,UAAU,EAAE,QAAQ,EAAE,4BAA4B,CAAC;EAC1F,MAAM05e,qBAAqB,GAAGD,aAAa,CAACz5e,UAAU,CAACu5e,eAAe,CAACv5e,UAAU,CAAC;EAClF,IAAIn7N,KAAK,CAACoJ,OAAO,CAACyrsB,qBAAqB,CAAC,EAAE;IACtC;IACA;IACA;IACA;IACA;IACA,KAAK,IAAIx8sB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGw8sB,qBAAqB,CAAC/7sB,MAAM,EAAET,CAAC,EAAE,EAAE;MACnD,MAAM+2sB,KAAK,GAAGyF,qBAAqB,CAACx8sB,CAAC,CAAC;MACtC22sB,yBAAyB,CAAC1we,MAAM,EAAEgoE,QAAQ,EAAE8ta,cAAc,EAAEhF,KAAK,EAAEF,UAAU,CAAC;IAClF;EACJ,CAAC,MACI;IACD,IAAI4F,aAAa,GAAGD,qBAAqB;IACzC,MAAME,uBAAuB,GAAGJ,cAAc,CAAClrB,MAAM,CAAC;IACtD;IACA;IACA,IAAI+hB,2BAA2B,CAACkJ,eAAe,CAAC,EAAE;MAC9CI,aAAa,CAACnxV,KAAK,IAAI,GAAG,CAAC;IAC/B;;IACAwwV,UAAU,CAAC7ta,QAAQ,EAAEhoE,MAAM,EAAEw2e,aAAa,EAAEC,uBAAuB,EAAEX,cAAc,EAAElF,UAAU,EAAE,IAAI,CAAC;EAC1G;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASO,cAAcA,CAACnpa,QAAQ,EAAEhoE,MAAM,EAAE6we,UAAU,EAAEiF,cAAc,EAAElF,UAAU,EAAE;EAC9ElwI,SAAS,IAAI4tH,gBAAgB,CAACuiB,UAAU,CAAC;EACzC,MAAMhplB,MAAM,GAAGgplB,UAAU,CAAClkB,MAAM,CAAC,CAAC,CAAC;EACnC,MAAMxH,MAAM,GAAGyP,WAAW,CAACic,UAAU,CAAC;EACtC;EACA;EACA;EACA;EACA;EACA;EACA,IAAIhplB,MAAM,KAAKs9jB,MAAM,EAAE;IACnB;IACA;IACA;IACA;IACAurB,yBAAyB,CAAC1we,MAAM,EAAEgoE,QAAQ,EAAE8ta,cAAc,EAAEjulB,MAAM,EAAE+olB,UAAU,CAAC;EACnF;EACA,KAAK,IAAI72sB,CAAC,GAAGgzrB,uBAAuB,EAAEhzrB,CAAC,GAAG82sB,UAAU,CAACr2sB,MAAM,EAAET,CAAC,EAAE,EAAE;IAC9D,MAAM4zrB,KAAK,GAAGkjB,UAAU,CAAC92sB,CAAC,CAAC;IAC3B23sB,SAAS,CAAC/jB,KAAK,CAACzC,KAAK,CAAC,EAAEyC,KAAK,EAAE3lZ,QAAQ,EAAEhoE,MAAM,EAAE81e,cAAc,EAAEjulB,MAAM,CAAC;EAC5E;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS6ulB,YAAYA,CAAC1ua,QAAQ,EAAE2ua,YAAY,EAAE7F,KAAK,EAAE5hrB,IAAI,EAAEh0B,KAAK,EAAE;EAC9D,IAAIy7sB,YAAY,EAAE;IACd;IACA,IAAI,CAACz7sB,KAAK,EAAE;MACRwlkB,SAAS,IAAIA,SAAS,CAACihH,mBAAmB,EAAE;MAC5C35Y,QAAQ,CAAC61S,WAAW,CAACizH,KAAK,EAAE5hrB,IAAI,CAAC;IACrC,CAAC,MACI;MACDwxiB,SAAS,IAAIA,SAAS,CAACghH,gBAAgB,EAAE;MACzC15Y,QAAQ,CAAC60S,QAAQ,CAACi0H,KAAK,EAAE5hrB,IAAI,CAAC;IAClC;EACJ,CAAC,MACI;IACD,IAAIm2V,KAAK,GAAGn2V,IAAI,CAAC70B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAGwf,SAAS,GAAG8moB,mBAAmB,CAACwa,QAAQ;IAC/E,IAAIjgqB,KAAK,IAAI,IAAI,CAAC,+BAA+B;MAC7CwlkB,SAAS,IAAIA,SAAS,CAACmhH,mBAAmB,EAAE;MAC5C75Y,QAAQ,CAACozX,WAAW,CAAC01C,KAAK,EAAE5hrB,IAAI,EAAEm2V,KAAK,CAAC;IAC5C,CAAC,MACI;MACD;MACA;MACA,MAAMuxV,WAAW,GAAG,OAAO17sB,KAAK,KAAK,QAAQ,GAAGA,KAAK,CAAC2npB,QAAQ,CAAC,YAAY,CAAC,GAAG,KAAK;MACpF,IAAI+zD,WAAW,EAAE;QACb;QACA17sB,KAAK,GAAGA,KAAK,CAAC6E,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QAC3BslX,KAAK,IAAIs7R,mBAAmB,CAACk2D,SAAS;MAC1C;MACAn2I,SAAS,IAAIA,SAAS,CAACkhH,gBAAgB,EAAE;MACzC55Y,QAAQ,CAAChnN,QAAQ,CAAC8vnB,KAAK,EAAE5hrB,IAAI,EAAEh0B,KAAK,EAAEmqX,KAAK,CAAC;IAChD;EACJ;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASyxV,gBAAgBA,CAAC9ua,QAAQ,EAAExqR,OAAO,EAAEgkL,QAAQ,EAAE;EACnDk/X,SAAS,IAAI29G,YAAY,CAAC78e,QAAQ,EAAE,iCAAiC,CAAC;EACtEwmG,QAAQ,CAACtyR,YAAY,CAAC8H,OAAO,EAAE,OAAO,EAAEgkL,QAAQ,CAAC;EACjDk/X,SAAS,IAAIA,SAAS,CAACkhH,gBAAgB,EAAE;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASm1B,gBAAgBA,CAAC/ua,QAAQ,EAAExqR,OAAO,EAAEgkL,QAAQ,EAAE;EACnDk/X,SAAS,IAAI29G,YAAY,CAAC78e,QAAQ,EAAE,iCAAiC,CAAC;EACtE,IAAIA,QAAQ,KAAK,EAAE,EAAE;IACjB;IACAwmG,QAAQ,CAACl0Q,eAAe,CAACtW,OAAO,EAAE,OAAO,CAAC;EAC9C,CAAC,MACI;IACDwqR,QAAQ,CAACtyR,YAAY,CAAC8H,OAAO,EAAE,OAAO,EAAEgkL,QAAQ,CAAC;EACrD;EACAk/X,SAAS,IAAIA,SAAS,CAAC+gH,oBAAoB,EAAE;AACjD;AACA;AACA,SAASu1B,qBAAqBA,CAAChva,QAAQ,EAAExqR,OAAO,EAAEwjqB,KAAK,EAAE;EACrD,MAAM;IAAEisB,WAAW;IAAEtkrB,OAAO;IAAE/J;EAAO,CAAC,GAAGoiqB,KAAK;EAC9C,IAAIisB,WAAW,KAAK,IAAI,EAAE;IACtB/nB,eAAe,CAACl9Y,QAAQ,EAAExqR,OAAO,EAAEyvrB,WAAW,CAAC;EACnD;EACA,IAAItkrB,OAAO,KAAK,IAAI,EAAE;IAClBourB,gBAAgB,CAAC/ua,QAAQ,EAAExqR,OAAO,EAAEmL,OAAO,CAAC;EAChD;EACA,IAAI/J,MAAM,KAAK,IAAI,EAAE;IACjBk4rB,gBAAgB,CAAC9ua,QAAQ,EAAExqR,OAAO,EAAEoB,MAAM,CAAC;EAC/C;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIq4rB,QAAQ;AACZ;AACA;AACA;AACA;AACA,SAASC,WAAWA,CAAA,EAAG;EACnB,IAAID,QAAQ,KAAKp9rB,SAAS,EAAE;IACxBo9rB,QAAQ,GAAG,IAAI;IACf,IAAIx2B,OAAO,CAAC02B,YAAY,EAAE;MACtB,IAAI;QACAF,QAAQ,GAAGx2B,OAAO,CAAC02B,YAAY,CAACC,YAAY,CAAC,SAAS,EAAE;UACpDC,UAAU,EAAGh7sB,CAAC,IAAKA,CAAC;UACpBi7sB,YAAY,EAAGj7sB,CAAC,IAAKA,CAAC;UACtBk7sB,eAAe,EAAGl7sB,CAAC,IAAKA;QAC5B,CAAC,CAAC;MACN,CAAC,CACD,MAAM;QACF;QACA;QACA;QACA;MAAA;IAER;EACJ;EACA,OAAO46sB,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASO,qBAAqBA,CAACjirB,IAAI,EAAE;EACjC,OAAO2hrB,WAAW,CAAC,CAAC,EAAEG,UAAU,CAAC9hrB,IAAI,CAAC,IAAIA,IAAI;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASkirB,uBAAuBA,CAAC1hC,MAAM,EAAE;EACrC,OAAOmhC,WAAW,CAAC,CAAC,EAAEI,YAAY,CAACvhC,MAAM,CAAC,IAAIA,MAAM;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS2hC,0BAA0BA,CAAC1lsB,GAAG,EAAE;EACrC,OAAOklsB,WAAW,CAAC,CAAC,EAAEK,eAAe,CAACvlsB,GAAG,CAAC,IAAIA,GAAG;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS2lsB,wBAAwBA,CAAC,GAAG5urB,IAAI,EAAE;EACvC,IAAI,OAAO23iB,SAAS,KAAK,WAAW,EAAE;IAClC,MAAM,IAAIngkB,KAAK,CAAC,+DAA+D,CAAC;EACpF;EACA,IAAI,CAACkgrB,OAAO,CAAC02B,YAAY,EAAE;IACvB;IACA;IACA,OAAO,IAAIlrb,QAAQ,CAAC,GAAGljQ,IAAI,CAAC;EAChC;EACA;EACA;EACA;EACA;EACA,MAAM6urB,MAAM,GAAG7urB,IAAI,CAAChpB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC6C,IAAI,CAAC,GAAG,CAAC;EAC1C,MAAMi1sB,MAAM,GAAG9urB,IAAI,CAACA,IAAI,CAACvuB,MAAM,GAAG,CAAC,CAAC;EACpC,MAAMqM,IAAI,GAAI,uBAAsB+wsB,MAAO;AAC/C,MAAMC,MAAO;AACb,GAAG;EACC;EACA;EACA;EACA,MAAM14rB,EAAE,GAAGshqB,OAAO,CAAC,MAAM,CAAC,CAACg3B,uBAAuB,CAAC5wsB,IAAI,CAAC,CAAC;EACzD,IAAIsY,EAAE,CAACjhB,IAAI,KAAK2b,SAAS,EAAE;IACvB;IACA;IACA;IACA;IACA,OAAO,IAAIoyQ,QAAQ,CAAC,GAAGljQ,IAAI,CAAC;EAChC;EACA;EACA;EACA;EACA5J,EAAE,CAACnhB,QAAQ,GAAG,MAAM6I,IAAI;EACxB;EACA,OAAOsY,EAAE,CAACjhB,IAAI,CAACuirB,OAAO,CAAC;EACvB;EACA;EACA;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASq3B,yBAAyBA,CAAC7+I,SAAS,EAAE71iB,OAAO,EAAEmzU,QAAQ,EAAE;EAC7D,MAAMo3V,KAAK,GAAGwJ,QAAQ,CAAC,CAAC;EACxB,MAAMnW,KAAK,GAAG2Z,gBAAgB,CAAC,CAAC;EAChC,MAAMn9qB,OAAO,GAAGu3qB,gBAAgB,CAAC/T,KAAK,EAAE2M,KAAK,CAAC;EAC9C;EACA;EACA,IAAI3M,KAAK,CAACrzqB,IAAI,KAAK,CAAC,CAAC,2BAA2ByV,OAAO,CAACyJ,WAAW,CAAC,CAAC,KAAK,QAAQ,EAAE;IAChF,MAAMqgX,MAAM,GAAG1vX,OAAO;IACtB;IACA;IACA0vX,MAAM,CAACjU,GAAG,GAAG,EAAE;IACfiU,MAAM,CAAC6qU,MAAM,GAAGP,qBAAqB,CAAC,EAAE,CAAC;IACzC;IACAvG,gBAAgB,CAACtjB,KAAK,CAAChC,QAAQ,CAAC,EAAEz+S,MAAM,CAAC;IACzC,MAAM65P,YAAY,GAAGrmE,SAAS,IACzB,mCAAkCnqO,QAAS,iBAAgB,GACvD,8BAA6B41W,0BAA0B,CAACxe,KAAK,CAAE,IAAG,GAClE,+BAA8Bp3V,QAAS,+BAA8B,GACrE,gCAA+B,GAC/B,6BAA4BA,QAAS,mCAAkC,GACvE,4CAA2C;IACpD,MAAM,IAAIumV,YAAY,CAAC,CAAC,GAAG,CAAC,4CAA4C/1C,YAAY,CAAC;EACzF;EACA,OAAO9tE,SAAS;AACpB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIn+iB,QAAQ,GAAGjB,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASm+rB,WAAWA,CAAC1rsB,QAAQ,EAAE;EAC3BwO,QAAQ,GAAGxO,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS2rsB,WAAWA,CAAA,EAAG;EACnB,IAAIn9rB,QAAQ,KAAKjB,SAAS,EAAE;IACxB,OAAOiB,QAAQ;EACnB,CAAC,MACI,IAAI,OAAOxO,QAAQ,KAAK,WAAW,EAAE;IACtC,OAAOA,QAAQ;EACnB;EACA,MAAM,IAAIwwqB,YAAY,CAAC,GAAG,CAAC,yCAAyC,CAAC,OAAOp8G,SAAS,KAAK,WAAW,IAAIA,SAAS,KAC7G,2GAA0G,CAAC;EAChH;EACA;EACA;EACA;EACA;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIw3I,MAAM;AACV;AACA;AACA;AACA;AACA,SAASC,SAASA,CAAA,EAAG;EACjB,IAAID,MAAM,KAAKr+rB,SAAS,EAAE;IACtBq+rB,MAAM,GAAG,IAAI;IACb,IAAIz3B,OAAO,CAAC02B,YAAY,EAAE;MACtB,IAAI;QACAe,MAAM,GAAGz3B,OAAO,CAAC02B,YAAY,CACxBC,YAAY,CAAC,uBAAuB,EAAE;UACvCC,UAAU,EAAGh7sB,CAAC,IAAKA,CAAC;UACpBi7sB,YAAY,EAAGj7sB,CAAC,IAAKA,CAAC;UACtBk7sB,eAAe,EAAGl7sB,CAAC,IAAKA;QAC5B,CAAC,CAAC;MACN,CAAC,CACD,MAAM;QACF;QACA;QACA;QACA;MAAA;IAER;EACJ;EACA,OAAO67sB,MAAM;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASE,2BAA2BA,CAAC7irB,IAAI,EAAE;EACvC,OAAO4irB,SAAS,CAAC,CAAC,EAAEd,UAAU,CAAC9hrB,IAAI,CAAC,IAAIA,IAAI;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS8irB,6BAA6BA,CAACtiC,MAAM,EAAE;EAC3C,OAAOoiC,SAAS,CAAC,CAAC,EAAEb,YAAY,CAACvhC,MAAM,CAAC,IAAIA,MAAM;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASuiC,gCAAgCA,CAACtmsB,GAAG,EAAE;EAC3C,OAAOmmsB,SAAS,CAAC,CAAC,EAAEZ,eAAe,CAACvlsB,GAAG,CAAC,IAAIA,GAAG;AACnD;AAEA,MAAMumsB,aAAa,CAAC;EAChB/3sB,WAAWA,CAACg4sB,qCAAqC,EAAE;IAC/C,IAAI,CAACA,qCAAqC,GAAGA,qCAAqC;EACtF;EACAx6sB,QAAQA,CAAA,EAAG;IACP,OAAQ,0CAAyC,IAAI,CAACw6sB,qCAAsC,EAAC,GACxF,SAAQ37B,gBAAiB,GAAE;EACpC;AACJ;AACA,MAAM47B,YAAY,SAASF,aAAa,CAAC;EACrCnhD,WAAWA,CAAA,EAAG;IACV,OAAO,MAAM,CAAC;EAClB;AACJ;;AACA,MAAMshD,aAAa,SAASH,aAAa,CAAC;EACtCnhD,WAAWA,CAAA,EAAG;IACV,OAAO,OAAO,CAAC;EACnB;AACJ;;AACA,MAAMuhD,cAAc,SAASJ,aAAa,CAAC;EACvCnhD,WAAWA,CAAA,EAAG;IACV,OAAO,QAAQ,CAAC;EACpB;AACJ;;AACA,MAAMwhD,WAAW,SAASL,aAAa,CAAC;EACpCnhD,WAAWA,CAAA,EAAG;IACV,OAAO,KAAK,CAAC;EACjB;AACJ;;AACA,MAAMyhD,mBAAmB,SAASN,aAAa,CAAC;EAC5CnhD,WAAWA,CAAA,EAAG;IACV,OAAO,aAAa,CAAC;EACzB;AACJ;;AACA,SAAS0hD,eAAeA,CAAC59sB,KAAK,EAAE;EAC5B,OAAOA,KAAK,YAAYq9sB,aAAa,GAAGr9sB,KAAK,CAACs9sB,qCAAqC,GAC/Et9sB,KAAK;AACb;AACA,SAAS69sB,+BAA+BA,CAAC79sB,KAAK,EAAEyS,IAAI,EAAE;EAClD,MAAMqrsB,UAAU,GAAGC,yBAAyB,CAAC/9sB,KAAK,CAAC;EACnD,IAAI89sB,UAAU,IAAI,IAAI,IAAIA,UAAU,KAAKrrsB,IAAI,EAAE;IAC3C;IACA,IAAIqrsB,UAAU,KAAK,aAAa,CAAC,gCAAgCrrsB,IAAI,KAAK,KAAK,CAAC,sBAC5E,OAAO,IAAI;IACf,MAAM,IAAIpN,KAAK,CAAE,mBAAkBoN,IAAK,WAAUqrsB,UAAW,SAAQn8B,gBAAiB,GAAE,CAAC;EAC7F;EACA,OAAOm8B,UAAU,KAAKrrsB,IAAI;AAC9B;AACA,SAASsrsB,yBAAyBA,CAAC/9sB,KAAK,EAAE;EACtC,OAAOA,KAAK,YAAYq9sB,aAAa,IAAIr9sB,KAAK,CAACk8pB,WAAW,CAAC,CAAC,IAAI,IAAI;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS8hD,2BAA2BA,CAACC,WAAW,EAAE;EAC9C,OAAO,IAAIV,YAAY,CAACU,WAAW,CAAC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,4BAA4BA,CAACC,YAAY,EAAE;EAChD,OAAO,IAAIX,aAAa,CAACW,YAAY,CAAC;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,6BAA6BA,CAACC,aAAa,EAAE;EAClD,OAAO,IAAIZ,cAAc,CAACY,aAAa,CAAC;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,0BAA0BA,CAACC,UAAU,EAAE;EAC5C,OAAO,IAAIb,WAAW,CAACa,UAAU,CAAC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,kCAAkCA,CAACC,kBAAkB,EAAE;EAC5D,OAAO,IAAId,mBAAmB,CAACc,kBAAkB,CAAC;AACtD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,kBAAkBA,CAACC,UAAU,EAAE;EACpC,MAAMC,mBAAmB,GAAG,IAAIC,mBAAmB,CAACF,UAAU,CAAC;EAC/D,OAAOG,oBAAoB,CAAC,CAAC,GAAG,IAAIC,eAAe,CAACH,mBAAmB,CAAC,GAAGA,mBAAmB;AAClG;AACA;AACA;AACA;AACA;AACA,MAAMG,eAAe,CAAC;EAClBz5sB,WAAWA,CAACs5sB,mBAAmB,EAAE;IAC7B,IAAI,CAACA,mBAAmB,GAAGA,mBAAmB;EAClD;EACAI,mBAAmBA,CAAC3krB,IAAI,EAAE;IACtB;IACA;IACA;IACA;IACAA,IAAI,GAAG,yBAAyB,GAAGA,IAAI;IACvC,IAAI;MACA,MAAM1uB,IAAI,GAAG,IAAIlM,MAAM,CAACu+jB,SAAS,CAAC,CAAC,CAC9BC,eAAe,CAACq+I,qBAAqB,CAACjirB,IAAI,CAAC,EAAE,WAAW,CAAC,CACzD1uB,IAAI;MACT,IAAIA,IAAI,KAAK,IAAI,EAAE;QACf;QACA;QACA;QACA,OAAO,IAAI,CAACizsB,mBAAmB,CAACI,mBAAmB,CAAC3krB,IAAI,CAAC;MAC7D;MACA1uB,IAAI,CAACiP,WAAW,CAACjP,IAAI,CAACgtB,UAAU,CAAC;MACjC,OAAOhtB,IAAI;IACf,CAAC,CACD,MAAM;MACF,OAAO,IAAI;IACf;EACJ;AACJ;AACA;AACA;AACA;AACA;AACA,MAAMkzsB,mBAAmB,CAAC;EACtBv5sB,WAAWA,CAACq5sB,UAAU,EAAE;IACpB,IAAI,CAACA,UAAU,GAAGA,UAAU;IAC5B,IAAI,CAACM,aAAa,GAAG,IAAI,CAACN,UAAU,CAAC7jC,cAAc,CAACC,kBAAkB,CAAC,oBAAoB,CAAC;EAChG;EACAikC,mBAAmBA,CAAC3krB,IAAI,EAAE;IACtB,MAAM6krB,UAAU,GAAG,IAAI,CAACD,aAAa,CAAC1ksB,aAAa,CAAC,UAAU,CAAC;IAC/D2ksB,UAAU,CAACr3rB,SAAS,GAAGy0rB,qBAAqB,CAACjirB,IAAI,CAAC;IAClD,OAAO6krB,UAAU;EACrB;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASJ,oBAAoBA,CAAA,EAAG;EAC5B,IAAI;IACA,OAAO,CAAC,CAAC,IAAIr/sB,MAAM,CAACu+jB,SAAS,CAAC,CAAC,CAACC,eAAe,CAACq+I,qBAAqB,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC;EAC3F,CAAC,CACD,MAAM;IACF,OAAO,KAAK;EAChB;AACJ;;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,MAAM6C,gBAAgB,GAAG,2DAA2D;AACpF,SAASC,YAAYA,CAACtosB,GAAG,EAAE;EACvBA,GAAG,GAAG3E,MAAM,CAAC2E,GAAG,CAAC;EACjB,IAAIA,GAAG,CAACob,KAAK,CAACitrB,gBAAgB,CAAC,EAC3B,OAAOrosB,GAAG;EACd,IAAI,OAAO0ujB,SAAS,KAAK,WAAW,IAAIA,SAAS,EAAE;IAC/C7wjB,OAAO,CAACC,IAAI,CAAE,wCAAuCkC,GAAI,SAAQ6qqB,gBAAiB,GAAE,CAAC;EACzF;EACA,OAAO,SAAS,GAAG7qqB,GAAG;AAC1B;AAEA,SAASuosB,MAAMA,CAACC,IAAI,EAAE;EAClB,MAAMn2lB,GAAG,GAAG,CAAC,CAAC;EACd,KAAK,MAAMvqH,CAAC,IAAI0gtB,IAAI,CAAC/3sB,KAAK,CAAC,GAAG,CAAC,EAC3B4hH,GAAG,CAACvqH,CAAC,CAAC,GAAG,IAAI;EACjB,OAAOuqH,GAAG;AACd;AACA,SAAS2kF,KAAKA,CAAC,GAAGyxgB,IAAI,EAAE;EACpB,MAAMp2lB,GAAG,GAAG,CAAC,CAAC;EACd,KAAK,MAAMhoH,CAAC,IAAIo+sB,IAAI,EAAE;IAClB,KAAK,MAAMn4sB,CAAC,IAAIjG,CAAC,EAAE;MACf,IAAIA,CAAC,CAAClC,cAAc,CAACmI,CAAC,CAAC,EACnB+hH,GAAG,CAAC/hH,CAAC,CAAC,GAAG,IAAI;IACrB;EACJ;EACA,OAAO+hH,GAAG;AACd;AACA;AACA;AACA;AACA;AACA;AACA,MAAMq2lB,aAAa,GAAGH,MAAM,CAAC,wBAAwB,CAAC;AACtD;AACA;AACA,MAAMI,+BAA+B,GAAGJ,MAAM,CAAC,gDAAgD,CAAC;AAChG,MAAMK,gCAAgC,GAAGL,MAAM,CAAC,OAAO,CAAC;AACxD,MAAMM,yBAAyB,GAAG7xgB,KAAK,CAAC4xgB,gCAAgC,EAAED,+BAA+B,CAAC;AAC1G;AACA,MAAMG,cAAc,GAAG9xgB,KAAK,CAAC2xgB,+BAA+B,EAAEJ,MAAM,CAAC,kBAAkB,GACnF,wGAAwG,GACxG,2EAA2E,CAAC,CAAC;AACjF;AACA,MAAMQ,eAAe,GAAG/xgB,KAAK,CAAC4xgB,gCAAgC,EAAEL,MAAM,CAAC,yBAAyB,GAC5F,+FAA+F,GAC/F,wEAAwE,CAAC,CAAC;AAC9E,MAAMS,cAAc,GAAGhygB,KAAK,CAAC0xgB,aAAa,EAAEI,cAAc,EAAEC,eAAe,EAAEF,yBAAyB,CAAC;AACvG;AACA,MAAMI,SAAS,GAAGV,MAAM,CAAC,8DAA8D,CAAC;AACxF,MAAMW,UAAU,GAAGX,MAAM,CAAC,+GAA+G,GACrI,mGAAmG,GACnG,gIAAgI,GAChI,iHAAiH,GACjH,2BAA2B,CAAC;AAChC;AACA,MAAMY,UAAU,GAAGZ,MAAM,CAAC,yGAAyG,GAC/H,sGAAsG,GACtG,kGAAkG,GAClG,8FAA8F,GAC9F,4GAA4G,GAC5G,0GAA0G,GAC1G,iFAAiF,CAAC;AACtF;AACA;AACA;AACA;AACA;AACA;AACA,MAAMa,WAAW,GAAGpygB,KAAK,CAACiygB,SAAS,EAAEC,UAAU,EAAEC,UAAU,CAAC;AAC5D;AACA;AACA;AACA;AACA;AACA,MAAME,2CAA2C,GAAGd,MAAM,CAAC,uBAAuB,CAAC;AACnF;AACA;AACA;AACA;AACA,MAAMe,wBAAwB,CAAC;EAC3B96sB,WAAWA,CAAA,EAAG;IACV;IACA;IACA,IAAI,CAAC+6sB,kBAAkB,GAAG,KAAK;IAC/B,IAAI,CAACvhT,GAAG,GAAG,EAAE;EACjB;EACAwhT,gBAAgBA,CAACzhoB,EAAE,EAAE;IACjB;IACA;IACA;IACA,IAAI2/D,OAAO,GAAG3/D,EAAE,CAAClmD,UAAU;IAC3B,IAAI4nrB,eAAe,GAAG,IAAI;IAC1B,OAAO/hkB,OAAO,EAAE;MACZ,IAAIA,OAAO,CAAC+0P,QAAQ,KAAKC,IAAI,CAACE,YAAY,EAAE;QACxC6sU,eAAe,GAAG,IAAI,CAACC,YAAY,CAAChikB,OAAO,CAAC;MAChD,CAAC,MACI,IAAIA,OAAO,CAAC+0P,QAAQ,KAAKC,IAAI,CAACC,SAAS,EAAE;QAC1C,IAAI,CAAC12B,KAAK,CAACv+N,OAAO,CAACioB,SAAS,CAAC;MACjC,CAAC,MACI;QACD;QACA,IAAI,CAAC45iB,kBAAkB,GAAG,IAAI;MAClC;MACA,IAAIE,eAAe,IAAI/hkB,OAAO,CAAC7lH,UAAU,EAAE;QACvC6lH,OAAO,GAAGA,OAAO,CAAC7lH,UAAU;QAC5B;MACJ;MACA,OAAO6lH,OAAO,EAAE;QACZ;QACA,IAAIA,OAAO,CAAC+0P,QAAQ,KAAKC,IAAI,CAACE,YAAY,EAAE;UACxC,IAAI,CAAC+sU,UAAU,CAACjikB,OAAO,CAAC;QAC5B;QACA,IAAIn9I,IAAI,GAAG,IAAI,CAACq/sB,qBAAqB,CAAClikB,OAAO,EAAEA,OAAO,CAAC+zP,WAAW,CAAC;QACnE,IAAIlxY,IAAI,EAAE;UACNm9I,OAAO,GAAGn9I,IAAI;UACd;QACJ;QACAm9I,OAAO,GAAG,IAAI,CAACkikB,qBAAqB,CAAClikB,OAAO,EAAEA,OAAO,CAAC/sH,UAAU,CAAC;MACrE;IACJ;IACA,OAAO,IAAI,CAACqtY,GAAG,CAACp3Z,IAAI,CAAC,EAAE,CAAC;EAC5B;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EACI84sB,YAAYA,CAACl+rB,OAAO,EAAE;IAClB,MAAM4F,OAAO,GAAG5F,OAAO,CAAC40R,QAAQ,CAACvlR,WAAW,CAAC,CAAC;IAC9C,IAAI,CAACmurB,cAAc,CAAC7gtB,cAAc,CAACipB,OAAO,CAAC,EAAE;MACzC,IAAI,CAACm4rB,kBAAkB,GAAG,IAAI;MAC9B,OAAO,CAACF,2CAA2C,CAAClhtB,cAAc,CAACipB,OAAO,CAAC;IAC/E;IACA,IAAI,CAAC42Y,GAAG,CAAC18Z,IAAI,CAAC,GAAG,CAAC;IAClB,IAAI,CAAC08Z,GAAG,CAAC18Z,IAAI,CAAC8lB,OAAO,CAAC;IACtB,MAAMy4rB,OAAO,GAAGr+rB,OAAO,CAAC6G,UAAU;IAClC,KAAK,IAAItqB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG8htB,OAAO,CAACrhtB,MAAM,EAAET,CAAC,EAAE,EAAE;MACrC,MAAM+htB,MAAM,GAAGD,OAAO,CAACpjnB,IAAI,CAAC1+F,CAAC,CAAC;MAC9B,MAAMw8V,QAAQ,GAAGulX,MAAM,CAACz7sB,IAAI;MAC5B,MAAM8urB,KAAK,GAAG54V,QAAQ,CAAC1pU,WAAW,CAAC,CAAC;MACpC,IAAI,CAACuurB,WAAW,CAACjhtB,cAAc,CAACg1rB,KAAK,CAAC,EAAE;QACpC,IAAI,CAACosB,kBAAkB,GAAG,IAAI;QAC9B;MACJ;MACA,IAAIrgtB,KAAK,GAAG4gtB,MAAM,CAAC5gtB,KAAK;MACxB;MACA,IAAI+/sB,SAAS,CAAC9rB,KAAK,CAAC,EAChBj0rB,KAAK,GAAGo/sB,YAAY,CAACp/sB,KAAK,CAAC;MAC/B,IAAI,CAAC8+Z,GAAG,CAAC18Z,IAAI,CAAC,GAAG,EAAEi5V,QAAQ,EAAE,IAAI,EAAEwlX,cAAc,CAAC7gtB,KAAK,CAAC,EAAE,GAAG,CAAC;IAClE;IACA,IAAI,CAAC8+Z,GAAG,CAAC18Z,IAAI,CAAC,GAAG,CAAC;IAClB,OAAO,IAAI;EACf;EACAq+sB,UAAUA,CAACjikB,OAAO,EAAE;IAChB,MAAMt2H,OAAO,GAAGs2H,OAAO,CAAC04J,QAAQ,CAACvlR,WAAW,CAAC,CAAC;IAC9C,IAAImurB,cAAc,CAAC7gtB,cAAc,CAACipB,OAAO,CAAC,IAAI,CAACs3rB,aAAa,CAACvgtB,cAAc,CAACipB,OAAO,CAAC,EAAE;MAClF,IAAI,CAAC42Y,GAAG,CAAC18Z,IAAI,CAAC,IAAI,CAAC;MACnB,IAAI,CAAC08Z,GAAG,CAAC18Z,IAAI,CAAC8lB,OAAO,CAAC;MACtB,IAAI,CAAC42Y,GAAG,CAAC18Z,IAAI,CAAC,GAAG,CAAC;IACtB;EACJ;EACA26W,KAAKA,CAACA,KAAK,EAAE;IACT,IAAI,CAAC+hD,GAAG,CAAC18Z,IAAI,CAACy+sB,cAAc,CAAC9jW,KAAK,CAAC,CAAC;EACxC;EACA2jW,qBAAqBA,CAACh4rB,IAAI,EAAE4pX,QAAQ,EAAE;IAClC,IAAIA,QAAQ,IACR,CAAC5pX,IAAI,CAACmknB,uBAAuB,CAACv6P,QAAQ,CAAC,GACnCkB,IAAI,CAACstU,8BAA8B,MAAMttU,IAAI,CAACstU,8BAA8B,EAAE;MAClF,MAAM,IAAIz7sB,KAAK,CAAE,6DAA4DqjB,IAAI,CAACgJ,SAAU,EAAC,CAAC;IAClG;IACA,OAAO4gX,QAAQ;EACnB;AACJ;AACA;AACA,MAAMyuU,qBAAqB,GAAG,iCAAiC;AAC/D;AACA,MAAMC,uBAAuB,GAAG,eAAe;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,SAASH,cAAcA,CAAC7gtB,KAAK,EAAE;EAC3B,OAAOA,KAAK,CAAC2H,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAC9BA,OAAO,CAACo5sB,qBAAqB,EAAE,UAAU7urB,KAAK,EAAE;IACjD,MAAMy8T,EAAE,GAAGz8T,KAAK,CAACzqB,UAAU,CAAC,CAAC,CAAC;IAC9B,MAAM8tG,GAAG,GAAGrjF,KAAK,CAACzqB,UAAU,CAAC,CAAC,CAAC;IAC/B,OAAO,IAAI,IAAK,CAACknV,EAAE,GAAG,MAAM,IAAI,KAAK,IAAKp5O,GAAG,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,GAAG;EAC5E,CAAC,CAAC,CACG5tG,OAAO,CAACq5sB,uBAAuB,EAAE,UAAU9urB,KAAK,EAAE;IACnD,OAAO,IAAI,GAAGA,KAAK,CAACzqB,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG;EAC3C,CAAC,CAAC,CACGE,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CACrBA,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;AAC9B;AACA,IAAIs5sB,eAAe;AACnB;AACA;AACA;AACA;AACA,SAASC,aAAaA,CAACvC,UAAU,EAAEwC,eAAe,EAAE;EAChD,IAAIC,gBAAgB,GAAG,IAAI;EAC3B,IAAI;IACAH,eAAe,GAAGA,eAAe,IAAIvC,kBAAkB,CAACC,UAAU,CAAC;IACnE;IACA,IAAI0C,UAAU,GAAGF,eAAe,GAAGhvsB,MAAM,CAACgvsB,eAAe,CAAC,GAAG,EAAE;IAC/DC,gBAAgB,GAAGH,eAAe,CAACjC,mBAAmB,CAACqC,UAAU,CAAC;IAClE;IACA;IACA,IAAIC,YAAY,GAAG,CAAC;IACpB,IAAIC,UAAU,GAAGF,UAAU;IAC3B,GAAG;MACC,IAAIC,YAAY,KAAK,CAAC,EAAE;QACpB,MAAM,IAAIj8sB,KAAK,CAAC,uDAAuD,CAAC;MAC5E;MACAi8sB,YAAY,EAAE;MACdD,UAAU,GAAGE,UAAU;MACvBA,UAAU,GAAGH,gBAAgB,CAACv5rB,SAAS;MACvCu5rB,gBAAgB,GAAGH,eAAe,CAACjC,mBAAmB,CAACqC,UAAU,CAAC;IACtE,CAAC,QAAQA,UAAU,KAAKE,UAAU;IAClC,MAAMC,SAAS,GAAG,IAAIpB,wBAAwB,CAAC,CAAC;IAChD,MAAMqB,QAAQ,GAAGD,SAAS,CAAClB,gBAAgB,CAACoB,kBAAkB,CAACN,gBAAgB,CAAC,IAAIA,gBAAgB,CAAC;IACrG,IAAI,CAAC,OAAO57I,SAAS,KAAK,WAAW,IAAIA,SAAS,KAAKg8I,SAAS,CAACnB,kBAAkB,EAAE;MACjF1rsB,OAAO,CAACC,IAAI,CAAE,uDAAsD+sqB,gBAAiB,EAAC,CAAC;IAC3F;IACA,OAAO26B,qBAAqB,CAACmF,QAAQ,CAAC;EAC1C,CAAC,SACO;IACJ;IACA,IAAIL,gBAAgB,EAAE;MAClB,MAAM5goB,MAAM,GAAGkhoB,kBAAkB,CAACN,gBAAgB,CAAC,IAAIA,gBAAgB;MACvE,OAAO5goB,MAAM,CAAC7nD,UAAU,EAAE;QACtB6nD,MAAM,CAAC5lE,WAAW,CAAC4lE,MAAM,CAAC7nD,UAAU,CAAC;MACzC;IACJ;EACJ;AACJ;AACA,SAAS+orB,kBAAkBA,CAAC7ioB,EAAE,EAAE;EAC5B,OAAO,SAAS,IAAIA,EAAE,CAAC,qCAAqC8ioB,iBAAiB,CAAC9ioB,EAAE,CAAC,GAC7EA,EAAE,CAACnxD,OAAO,GACV,IAAI;AACZ;AACA,SAASi0rB,iBAAiBA,CAAC9ioB,EAAE,EAAE;EAC3B,OAAOA,EAAE,CAAC00T,QAAQ,KAAKC,IAAI,CAACE,YAAY,IAAI70T,EAAE,CAACq4N,QAAQ,KAAK,UAAU;AAC1E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI0qa,eAAe;AACnB,CAAC,UAAUA,eAAe,EAAE;EACxBA,eAAe,CAACA,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM;EACrDA,eAAe,CAACA,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM;EACrDA,eAAe,CAACA,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO;EACvDA,eAAe,CAACA,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ;EACzDA,eAAe,CAACA,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK;EACnDA,eAAe,CAACA,eAAe,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,cAAc;AACzE,CAAC,EAAEA,eAAe,KAAKA,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,cAAcA,CAACR,UAAU,EAAE;EAChC,MAAMG,SAAS,GAAGM,YAAY,CAAC,CAAC;EAChC,IAAIN,SAAS,EAAE;IACX,OAAOtE,2BAA2B,CAACsE,SAAS,CAACO,QAAQ,CAACH,eAAe,CAACI,IAAI,EAAEX,UAAU,CAAC,IAAI,EAAE,CAAC;EAClG;EACA,IAAIxD,+BAA+B,CAACwD,UAAU,EAAE,MAAM,CAAC,qBAAqB,CAAC,EAAE;IAC3E,OAAOnE,2BAA2B,CAACU,eAAe,CAACyD,UAAU,CAAC,CAAC;EACnE;EACA,OAAOH,aAAa,CAACnE,WAAW,CAAC,CAAC,EAAE/6B,eAAe,CAACq/B,UAAU,CAAC,CAAC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASY,eAAeA,CAACC,WAAW,EAAE;EAClC,MAAMV,SAAS,GAAGM,YAAY,CAAC,CAAC;EAChC,IAAIN,SAAS,EAAE;IACX,OAAOA,SAAS,CAACO,QAAQ,CAACH,eAAe,CAACO,KAAK,EAAED,WAAW,CAAC,IAAI,EAAE;EACvE;EACA,IAAIrE,+BAA+B,CAACqE,WAAW,EAAE,OAAO,CAAC,sBAAsB,CAAC,EAAE;IAC9E,OAAOtE,eAAe,CAACsE,WAAW,CAAC;EACvC;EACA,OAAOlgC,eAAe,CAACkgC,WAAW,CAAC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASE,aAAaA,CAACC,SAAS,EAAE;EAC9B,MAAMb,SAAS,GAAGM,YAAY,CAAC,CAAC;EAChC,IAAIN,SAAS,EAAE;IACX,OAAOA,SAAS,CAACO,QAAQ,CAACH,eAAe,CAAClvsB,GAAG,EAAE2vsB,SAAS,CAAC,IAAI,EAAE;EACnE;EACA,IAAIxE,+BAA+B,CAACwE,SAAS,EAAE,KAAK,CAAC,oBAAoB,CAAC,EAAE;IACxE,OAAOzE,eAAe,CAACyE,SAAS,CAAC;EACrC;EACA,OAAOjD,YAAY,CAACp9B,eAAe,CAACqgC,SAAS,CAAC,CAAC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,qBAAqBA,CAACC,iBAAiB,EAAE;EAC9C,MAAMf,SAAS,GAAGM,YAAY,CAAC,CAAC;EAChC,IAAIN,SAAS,EAAE;IACX,OAAOpE,gCAAgC,CAACoE,SAAS,CAACO,QAAQ,CAACH,eAAe,CAACY,YAAY,EAAED,iBAAiB,CAAC,IAAI,EAAE,CAAC;EACtH;EACA,IAAI1E,+BAA+B,CAAC0E,iBAAiB,EAAE,aAAa,CAAC,4BAA4B,CAAC,EAAE;IAChG,OAAOnF,gCAAgC,CAACQ,eAAe,CAAC2E,iBAAiB,CAAC,CAAC;EAC/E;EACA,MAAM,IAAI3gC,YAAY,CAAC,GAAG,CAAC,qDAAqDp8G,SAAS,IAAK,oDAAmDm8G,gBAAiB,GAAE,CAAC;AACzK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS8gC,gBAAgBA,CAACC,YAAY,EAAE;EACpC,MAAMlB,SAAS,GAAGM,YAAY,CAAC,CAAC;EAChC,IAAIN,SAAS,EAAE;IACX,OAAOrE,6BAA6B,CAACqE,SAAS,CAACO,QAAQ,CAACH,eAAe,CAACe,MAAM,EAAED,YAAY,CAAC,IAAI,EAAE,CAAC;EACxG;EACA,IAAI7E,+BAA+B,CAAC6E,YAAY,EAAE,QAAQ,CAAC,uBAAuB,CAAC,EAAE;IACjF,OAAOvF,6BAA6B,CAACS,eAAe,CAAC8E,YAAY,CAAC,CAAC;EACvE;EACA,MAAM,IAAI9gC,YAAY,CAAC,GAAG,CAAC,+CAA+Cp8G,SAAS,IAAI,uCAAuC,CAAC;AACnI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASo9I,mBAAmBA,CAACvorB,IAAI,EAAE;EAC/B;EACA;EACA;EACA;EACA;EACA;EACA,IAAImriB,SAAS,KAAK,CAACh/jB,KAAK,CAACoJ,OAAO,CAACyqB,IAAI,CAAC,IAAI,CAAC7zB,KAAK,CAACoJ,OAAO,CAACyqB,IAAI,CAAC0mM,GAAG,CAAC,IAAI1mM,IAAI,CAAC/6B,MAAM,KAAK,CAAC,CAAC,EAAE;IACtF,MAAM,IAAI+F,KAAK,CAAE,sDAAqDg1B,IAAI,CAAC3yB,IAAI,CAAC,GAAG,CAAE,EAAC,CAAC;EAC3F;EACA,OAAO40sB,qBAAqB,CAACjirB,IAAI,CAAC,CAAC,CAAC,CAAC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASworB,0BAA0BA,CAAC/rsB,GAAG,EAAE;EACrC;EACA;EACA;EACA;EACA;EACA;EACA,IAAI0ujB,SAAS,KAAK,CAACh/jB,KAAK,CAACoJ,OAAO,CAACkH,GAAG,CAAC,IAAI,CAACtQ,KAAK,CAACoJ,OAAO,CAACkH,GAAG,CAACiqN,GAAG,CAAC,IAAIjqN,GAAG,CAACxX,MAAM,KAAK,CAAC,CAAC,EAAE;IACnF,MAAM,IAAI+F,KAAK,CAAE,qDAAoDyR,GAAG,CAACpP,IAAI,CAAC,GAAG,CAAE,EAAC,CAAC;EACzF;EACA,OAAO80sB,0BAA0B,CAAC1lsB,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASgssB,eAAeA,CAAC/3rB,GAAG,EAAEiJ,IAAI,EAAE;EAChC,IAAKA,IAAI,KAAK,KAAK,KACdjJ,GAAG,KAAK,OAAO,IAAIA,GAAG,KAAK,OAAO,IAAIA,GAAG,KAAK,QAAQ,IAAIA,GAAG,KAAK,OAAO,IACtEA,GAAG,KAAK,QAAQ,CAAC,IACpBiJ,IAAI,KAAK,MAAM,KAAKjJ,GAAG,KAAK,MAAM,IAAIA,GAAG,KAAK,MAAM,CAAE,EAAE;IACzD,OAAOu3rB,qBAAqB;EAChC;EACA,OAAOF,aAAa;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASW,0BAA0BA,CAACV,SAAS,EAAEt3rB,GAAG,EAAEiJ,IAAI,EAAE;EACtD,OAAO8urB,eAAe,CAAC/3rB,GAAG,EAAEiJ,IAAI,CAAC,CAACqurB,SAAS,CAAC;AAChD;AACA,SAASW,8BAA8BA,CAAC79sB,IAAI,EAAE;EAC1C,IAAIA,IAAI,CAACwsB,WAAW,CAAC,CAAC,CAACllB,UAAU,CAAC,IAAI,CAAC,EAAE;IACrC,MAAMo/nB,YAAY,GAAI,8BAA6B1moB,IAAK,wCAAuC,GAC1F,eAAcA,IAAI,CAACN,KAAK,CAAC,CAAC,CAAE,OAAM,GAClC,SAAQM,IAAK,oEAAmE,GAChF,kBAAiB;IACtB,MAAM,IAAIy8qB,YAAY,CAAC,GAAG,CAAC,8CAA8C/1C,YAAY,CAAC;EAC1F;AACJ;AACA,SAASo3E,8BAA8BA,CAAC99sB,IAAI,EAAE;EAC1C,IAAIA,IAAI,CAACwsB,WAAW,CAAC,CAAC,CAACllB,UAAU,CAAC,IAAI,CAAC,EAAE;IACrC,MAAMo/nB,YAAY,GAAI,+BAA8B1moB,IAAK,wCAAuC,GAC3F,eAAcA,IAAI,CAACN,KAAK,CAAC,CAAC,CAAE,OAAM;IACvC,MAAM,IAAI+8qB,YAAY,CAAC,GAAG,CAAC,8CAA8C/1C,YAAY,CAAC;EAC1F;AACJ;AACA,SAASi2E,YAAYA,CAAA,EAAG;EACpB,MAAMrvB,KAAK,GAAGwJ,QAAQ,CAAC,CAAC;EACxB,OAAOxJ,KAAK,IAAIA,KAAK,CAACjC,WAAW,CAAC,CAACgxB,SAAS;AAChD;;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,MAAMtxH,cAAc,CAAC;EACjB;AACJ;AACA;AACA;AACA;AACA;EACI5qlB,WAAWA,CAAC49sB,KAAK,EAAE1usB,OAAO,EAAE;IACxB,IAAI,CAAC0usB,KAAK,GAAGA,KAAK;IAClB;IACA,IAAI,CAACna,cAAc,GAAG,gBAAgB;IACtC,IAAI,CAAC79H,KAAK,GAAGvsjB,SAAS;IACtB,IAAI,OAAOnK,OAAO,IAAI,QAAQ,EAAE;MAC5B,CAAC,OAAOgxjB,SAAS,KAAK,WAAW,IAAIA,SAAS,KAC1Ck+G,cAAc,CAAClvqB,OAAO,EAAE,CAAC,EAAE,0CAA0C,CAAC;MAC1E;MACA;MACA,IAAI,CAACi1qB,iBAAiB,GAAGj1qB,OAAO;IACpC,CAAC,MACI,IAAIA,OAAO,KAAKmK,SAAS,EAAE;MAC5B,IAAI,CAACusjB,KAAK,GAAGC,kBAAkB,CAAC;QAC5BrhN,KAAK,EAAE,IAAI;QACX4qO,UAAU,EAAElglB,OAAO,CAACkglB,UAAU,IAAI,MAAM;QACxCl5O,OAAO,EAAEhnW,OAAO,CAACgnW;MACrB,CAAC,CAAC;IACN;EACJ;EACA;AACJ;AACA;EACI,IAAI6uN,KAAKA,CAAA,EAAG;IACR,OAAO,IAAI;EACf;EACAvnkB,QAAQA,CAAA,EAAG;IACP,OAAQ,kBAAiB,IAAI,CAACogtB,KAAM,EAAC;EACzC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,uBAAuB,GAAG,IAAIjzH,cAAc,CAAC,yBAAyB,CAAC;;AAE7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMkzH,QAAQ,GAAG,IAAIlzH,cAAc,CAAC,UAAU;AAC9C;AACA;AACA,CAAC,CAAC,CAAC,8BAA8B,CAAC;;AAElC,MAAMmzH,kBAAkB,GAAG,IAAInzH,cAAc,CAAC,oBAAoB,CAAC;AAEnE,MAAMozH,YAAY,CAAC;EACfljtB,GAAGA,CAAC0pX,KAAK,EAAEi0Q,aAAa,GAAG4pD,kBAAkB,EAAE;IAC3C,IAAI5pD,aAAa,KAAK4pD,kBAAkB,EAAE;MACtC,MAAMpirB,KAAK,GAAG,IAAIF,KAAK,CAAE,sCAAqCxB,SAAS,CAACimX,KAAK,CAAE,GAAE,CAAC;MAClFvkX,KAAK,CAACJ,IAAI,GAAG,mBAAmB;MAChC,MAAMI,KAAK;IACf;IACA,OAAOw4nB,aAAa;EACxB;AACJ;;AAEA;AACA;AACA;AACA;AACA,SAAS01C,wBAAwBA,CAACtrE,SAAS,EAAE;EACzC,OAAO;IACH+1E,UAAU,EAAE/1E;EAChB,CAAC;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASo7G,mBAAmBA,CAAC,GAAGn0T,OAAO,EAAE;EACrC,OAAO;IACH8uR,UAAU,EAAEslC,2BAA2B,CAAC,IAAI,EAAEp0T,OAAO,CAAC;IACtDozR,aAAa,EAAE;EACnB,CAAC;AACL;AACA,SAASghC,2BAA2BA,CAACC,qBAAqB,EAAE,GAAGr0T,OAAO,EAAE;EACpE,MAAMs0T,YAAY,GAAG,EAAE;EACvB,MAAMC,KAAK,GAAG,IAAIjhtB,GAAG,CAAC,CAAC,CAAC,CAAC;EACzB,IAAIkhtB,0BAA0B;EAC9Bt4C,WAAW,CAACl8Q,OAAO,EAAEv0Y,MAAM,IAAI;IAC3B,IAAI,CAAC,OAAO2qjB,SAAS,KAAK,WAAW,IAAIA,SAAS,KAAKi+I,qBAAqB,EAAE;MAC1E,MAAMI,MAAM,GAAG51B,eAAe,CAACpzqB,MAAM,CAAC;MACtC,IAAIgpsB,MAAM,EAAEzuF,UAAU,EAAE;QACpB,MAAM,IAAIwsD,YAAY,CAAC,GAAG,CAAC,yDAA0D,gGAA+FK,iBAAiB,CAACpnqB,MAAM,CAAE,GAAE,CAAC;MACrN;IACJ;IACA;IACA,MAAMskT,cAAc,GAAGtkT,MAAM;IAC7B,IAAIipsB,gBAAgB,CAAC3kZ,cAAc,EAAEukZ,YAAY,EAAE,EAAE,EAAEC,KAAK,CAAC,EAAE;MAC3DC,0BAA0B,KAAK,EAAE;MACjCA,0BAA0B,CAACxhtB,IAAI,CAAC+8T,cAAc,CAAC;IACnD;EACJ,CAAC,CAAC;EACF;EACA,IAAIykZ,0BAA0B,KAAKjlsB,SAAS,EAAE;IAC1ColsB,iCAAiC,CAACH,0BAA0B,EAAEF,YAAY,CAAC;EAC/E;EACA,OAAOA,YAAY;AACvB;AACA;AACA;AACA;AACA;AACA,SAASK,iCAAiCA,CAACC,kBAAkB,EAAEN,YAAY,EAAE;EACzE,KAAK,IAAI7ktB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGmltB,kBAAkB,CAAC1ktB,MAAM,EAAET,CAAC,EAAE,EAAE;IAChD,MAAM;MAAEk8pB,QAAQ;MAAE5yD;IAAU,CAAC,GAAG67G,kBAAkB,CAACnltB,CAAC,CAAC;IACrDoltB,mBAAmB,CAAC97G,SAAS,EAAEl9X,QAAQ,IAAI;MACvCu6V,SAAS,IAAI0+I,gBAAgB,CAACj5e,QAAQ,EAAEk9X,SAAS,IAAIuxD,WAAW,EAAEqB,QAAQ,CAAC;MAC3E2oD,YAAY,CAACthtB,IAAI,CAAC6oO,QAAQ,CAAC;IAC/B,CAAC,CAAC;EACN;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS64e,gBAAgBA,CAAC1prB,SAAS,EAAEsprB,YAAY,EAAES,OAAO,EAAER,KAAK,EAAE;EAC/DvprB,SAAS,GAAGmnpB,iBAAiB,CAACnnpB,SAAS,CAAC;EACxC,IAAI,CAACA,SAAS,EACV,OAAO,KAAK;EAChB;EACA;EACA,IAAIgqrB,OAAO,GAAG,IAAI;EAClB,IAAIC,MAAM,GAAG1/B,cAAc,CAACvqpB,SAAS,CAAC;EACtC,MAAMyprB,MAAM,GAAG,CAACQ,MAAM,IAAIp2B,eAAe,CAAC7zpB,SAAS,CAAC;EACpD,IAAI,CAACiqrB,MAAM,IAAI,CAACR,MAAM,EAAE;IACpB;IACA;IACA;IACA;IACA;IACA,MAAM9oD,QAAQ,GAAG3goB,SAAS,CAAC2goB,QAAQ;IACnCspD,MAAM,GAAG1/B,cAAc,CAAC5pB,QAAQ,CAAC;IACjC,IAAIspD,MAAM,EAAE;MACRD,OAAO,GAAGrpD,QAAQ;IACtB,CAAC,MACI;MACD;MACA,OAAO,KAAK;IAChB;EACJ,CAAC,MACI,IAAI8oD,MAAM,IAAI,CAACA,MAAM,CAACzuF,UAAU,EAAE;IACnC,OAAO,KAAK;EAChB,CAAC,MACI;IACDgvF,OAAO,GAAGhqrB,SAAS;EACvB;EACA;EACA,IAAIoriB,SAAS,IAAI2+I,OAAO,CAAChltB,OAAO,CAACiltB,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE;IAC9C,MAAME,OAAO,GAAGzgtB,SAAS,CAACugtB,OAAO,CAAC;IAClC,MAAMpzsB,IAAI,GAAGmzsB,OAAO,CAAC38sB,GAAG,CAAC3D,SAAS,CAAC;IACnCq+qB,0BAA0B,CAACoiC,OAAO,EAAEtzsB,IAAI,CAAC;EAC7C;EACA;EACA,MAAMuzsB,WAAW,GAAGZ,KAAK,CAACnjtB,GAAG,CAAC4jtB,OAAO,CAAC;EACtC,IAAIP,MAAM,EAAE;IACR,IAAIU,WAAW,EAAE;MACb;MACA,OAAO,KAAK;IAChB;IACAZ,KAAK,CAACx/sB,GAAG,CAACigtB,OAAO,CAAC;IAClB,IAAIP,MAAM,CAAC1unB,YAAY,EAAE;MACrB,MAAMojP,IAAI,GAAG,OAAOsrY,MAAM,CAAC1unB,YAAY,KAAK,UAAU,GAAG0unB,MAAM,CAAC1unB,YAAY,CAAC,CAAC,GAAG0unB,MAAM,CAAC1unB,YAAY;MACpG,KAAK,MAAM2hQ,GAAG,IAAIve,IAAI,EAAE;QACpBurY,gBAAgB,CAAChtX,GAAG,EAAE4sX,YAAY,EAAES,OAAO,EAAER,KAAK,CAAC;MACvD;IACJ;EACJ,CAAC,MACI,IAAIU,MAAM,EAAE;IACb;IACA,IAAIA,MAAM,CAACj9G,OAAO,IAAI,IAAI,IAAI,CAACm9G,WAAW,EAAE;MACxC;MACA;MACA/+I,SAAS,IAAI2+I,OAAO,CAAC/htB,IAAI,CAACgitB,OAAO,CAAC;MAClC;MACAT,KAAK,CAACx/sB,GAAG,CAACigtB,OAAO,CAAC;MAClB,IAAII,wBAAwB;MAC5B,IAAI;QACAl5C,WAAW,CAAC+4C,MAAM,CAACj9G,OAAO,EAAEq9G,QAAQ,IAAI;UACpC,IAAIX,gBAAgB,CAACW,QAAQ,EAAEf,YAAY,EAAES,OAAO,EAAER,KAAK,CAAC,EAAE;YAC1Da,wBAAwB,KAAK,EAAE;YAC/B;YACA;YACAA,wBAAwB,CAACpitB,IAAI,CAACqitB,QAAQ,CAAC;UAC3C;QACJ,CAAC,CAAC;MACN,CAAC,SACO;QACJ;QACAj/I,SAAS,IAAI2+I,OAAO,CAACvjtB,GAAG,CAAC,CAAC;MAC9B;MACA;MACA;MACA;MACA,IAAI4jtB,wBAAwB,KAAK7lsB,SAAS,EAAE;QACxColsB,iCAAiC,CAACS,wBAAwB,EAAEd,YAAY,CAAC;MAC7E;IACJ;IACA,IAAI,CAACa,WAAW,EAAE;MACd;MACA;MACA,MAAM/oW,OAAO,GAAG+4U,aAAa,CAAC6vB,OAAO,CAAC,KAAK,MAAM,IAAIA,OAAO,CAAC,CAAC,CAAC;MAC/D;MACA;MACA;MACAV,YAAY,CAACthtB,IAAI;MACjB;MACA;QAAE6lmB,OAAO,EAAEm8G,OAAO;QAAEvtG,UAAU,EAAEr7P,OAAO;QAAEjjC,IAAI,EAAEmhV;MAAY,CAAC;MAC5D;MACA;QAAEzxD,OAAO,EAAEo7G,kBAAkB;QAAEh6G,QAAQ,EAAE+6G,OAAO;QAAE/5I,KAAK,EAAE;MAAK,CAAC;MAC/D;MACA;QAAE49B,OAAO,EAAEk7G,uBAAuB;QAAE95G,QAAQ,EAAEA,CAAA,KAAM7U,QAAQ,CAAC4vH,OAAO,CAAC;QAAE/5I,KAAK,EAAE;MAAK,CAAC,CAAC;MACrF,CAAC;IACL;IACA;IACA,MAAMq6I,YAAY,GAAGL,MAAM,CAACl8G,SAAS;IACrC,IAAIu8G,YAAY,IAAI,IAAI,IAAI,CAACH,WAAW,EAAE;MACtC,MAAMI,YAAY,GAAGvqrB,SAAS;MAC9B6prB,mBAAmB,CAACS,YAAY,EAAEz5e,QAAQ,IAAI;QAC1Cu6V,SAAS,IAAI0+I,gBAAgB,CAACj5e,QAAQ,EAAEy5e,YAAY,EAAEC,YAAY,CAAC;QACnEjB,YAAY,CAACthtB,IAAI,CAAC6oO,QAAQ,CAAC;MAC/B,CAAC,CAAC;IACN;EACJ,CAAC,MACI;IACD;IACA,OAAO,KAAK;EAChB;EACA,OAAQm5e,OAAO,KAAKhqrB,SAAS,IACzBA,SAAS,CAAC+tkB,SAAS,KAAKxplB,SAAS;AACzC;AACA,SAASulsB,gBAAgBA,CAACj5e,QAAQ,EAAEk9X,SAAS,EAAE8Q,aAAa,EAAE;EAC1D,IAAI2rG,cAAc,CAAC35e,QAAQ,CAAC,IAAI45e,eAAe,CAAC55e,QAAQ,CAAC,IAAI65e,iBAAiB,CAAC75e,QAAQ,CAAC,IACpF85e,kBAAkB,CAAC95e,QAAQ,CAAC,EAAE;IAC9B;EACJ;EACA;EACA,MAAM+5e,QAAQ,GAAGzjC,iBAAiB,CAACt2c,QAAQ,KAAKA,QAAQ,CAAC09Z,QAAQ,IAAI19Z,QAAQ,CAACg9X,OAAO,CAAC,CAAC;EACvF,IAAI,CAAC+8G,QAAQ,EAAE;IACX3iC,yBAAyB,CAACppE,aAAa,EAAE9Q,SAAS,EAAEl9X,QAAQ,CAAC;EACjE;AACJ;AACA,SAASg5e,mBAAmBA,CAAC97G,SAAS,EAAElklB,EAAE,EAAE;EACxC,KAAK,IAAIgnN,QAAQ,IAAIk9X,SAAS,EAAE;IAC5B,IAAIs5E,sBAAsB,CAACx2c,QAAQ,CAAC,EAAE;MAClCA,QAAQ,GAAGA,QAAQ,CAACizc,UAAU;IAClC;IACA,IAAI13qB,KAAK,CAACoJ,OAAO,CAACq7N,QAAQ,CAAC,EAAE;MACzBg5e,mBAAmB,CAACh5e,QAAQ,EAAEhnN,EAAE,CAAC;IACrC,CAAC,MACI;MACDA,EAAE,CAACgnN,QAAQ,CAAC;IAChB;EACJ;AACJ;AACA,MAAMg6e,WAAW,GAAGlkC,sBAAsB,CAAC;EAAE94E,OAAO,EAAE91lB,MAAM;EAAEk3lB,QAAQ,EAAE03E;AAAuB,CAAC,CAAC;AACjG,SAAS8jC,eAAeA,CAAC7ktB,KAAK,EAAE;EAC5B,OAAOA,KAAK,KAAK,IAAI,IAAI,OAAOA,KAAK,IAAI,QAAQ,IAAIiltB,WAAW,IAAIjltB,KAAK;AAC7E;AACA,SAAS+ktB,kBAAkBA,CAAC/ktB,KAAK,EAAE;EAC/B,OAAO,CAAC,EAAEA,KAAK,IAAIA,KAAK,CAACkomB,WAAW,CAAC;AACzC;AACA,SAAS48G,iBAAiBA,CAAC9ktB,KAAK,EAAE;EAC9B,OAAO,CAAC,EAAEA,KAAK,IAAIA,KAAK,CAAC62mB,UAAU,CAAC;AACxC;AACA,SAAS+tG,cAAcA,CAAC5ktB,KAAK,EAAE;EAC3B,OAAO,OAAOA,KAAK,KAAK,UAAU;AACtC;AACA,SAASkltB,eAAeA,CAAClltB,KAAK,EAAE;EAC5B,OAAO,CAAC,CAACA,KAAK,CAAC2ooB,QAAQ;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAMw8E,cAAc,GAAG,IAAIj1H,cAAc,CAAC,qBAAqB,CAAC;;AAEhE;AACA;AACA;AACA,MAAMk1H,OAAO,GAAG,CAAC,CAAC;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,QAAQ,GAAG,CAAC,CAAC;AACnB;AACA;AACA;AACA,IAAIC,eAAe,GAAG3msB,SAAS;AAC/B,SAAS4msB,eAAeA,CAAA,EAAG;EACvB,IAAID,eAAe,KAAK3msB,SAAS,EAAE;IAC/B2msB,eAAe,GAAG,IAAIhC,YAAY,CAAC,CAAC;EACxC;EACA,OAAOgC,eAAe;AAC1B;AACA;AACA;AACA;AACA;AACA,MAAM1rC,mBAAmB,CAAC;AAE1B,MAAM4rC,UAAU,SAAS5rC,mBAAmB,CAAC;EACzC;AACJ;AACA;EACI,IAAIl1F,SAASA,CAAA,EAAG;IACZ,OAAO,IAAI,CAACthB,UAAU;EAC1B;EACA99jB,WAAWA,CAAC6imB,SAAS,EAAE3nhB,MAAM,EAAE3lE,MAAM,EAAE4qsB,MAAM,EAAE;IAC3C,KAAK,CAAC,CAAC;IACP,IAAI,CAACjloB,MAAM,GAAGA,MAAM;IACpB,IAAI,CAAC3lE,MAAM,GAAGA,MAAM;IACpB,IAAI,CAAC4qsB,MAAM,GAAGA,MAAM;IACpB;AACR;AACA;AACA;AACA;IACQ,IAAI,CAACj9gB,OAAO,GAAG,IAAItoM,GAAG,CAAC,CAAC;IACxB;AACR;AACA;IACQ,IAAI,CAACwltB,iBAAiB,GAAG,IAAIhjtB,GAAG,CAAC,CAAC;IAClC,IAAI,CAACijtB,eAAe,GAAG,EAAE;IACzB,IAAI,CAACviJ,UAAU,GAAG,KAAK;IACvB;IACAwiJ,qBAAqB,CAACz9G,SAAS,EAAEl9X,QAAQ,IAAI,IAAI,CAAC46e,eAAe,CAAC56e,QAAQ,CAAC,CAAC;IAC5E;IACA,IAAI,CAACziC,OAAO,CAACnoM,GAAG,CAAC+itB,QAAQ,EAAE0C,UAAU,CAACnnsB,SAAS,EAAE,IAAI,CAAC,CAAC;IACvD;IACA,IAAI8msB,MAAM,CAACjltB,GAAG,CAAC,aAAa,CAAC,EAAE;MAC3B,IAAI,CAACgoM,OAAO,CAACnoM,GAAG,CAACu5qB,mBAAmB,EAAEksC,UAAU,CAACnnsB,SAAS,EAAE,IAAI,CAAC,CAAC;IACtE;IACA;IACA;IACA,MAAM+pL,MAAM,GAAG,IAAI,CAACF,OAAO,CAACpoM,GAAG,CAAC+ktB,cAAc,CAAC;IAC/C,IAAIz8gB,MAAM,IAAI,IAAI,IAAI,OAAOA,MAAM,CAAC1oM,KAAK,KAAK,QAAQ,EAAE;MACpD,IAAI,CAACyltB,MAAM,CAACthtB,GAAG,CAACukM,MAAM,CAAC1oM,KAAK,CAAC;IACjC;IACA,IAAI,CAAC+ltB,gBAAgB,GACjB,IAAIrjtB,GAAG,CAAC,IAAI,CAACtC,GAAG,CAACijtB,kBAAkB,CAACh5I,KAAK,EAAEqvF,WAAW,EAAEsrB,WAAW,CAACqgB,IAAI,CAAC,CAAC;EAClF;EACA;AACJ;AACA;AACA;AACA;AACA;EACI/lU,OAAOA,CAAA,EAAG;IACN,IAAI,CAAC0mV,kBAAkB,CAAC,CAAC;IACzB;IACA,IAAI,CAAC5iJ,UAAU,GAAG,IAAI;IACtB,IAAI;MACA;MACA,KAAK,MAAM6iJ,OAAO,IAAI,IAAI,CAACP,iBAAiB,EAAE;QAC1CO,OAAO,CAACtyH,WAAW,CAAC,CAAC;MACzB;MACA,MAAMuyH,cAAc,GAAG,IAAI,CAACP,eAAe;MAC3C;MACA;MACA,IAAI,CAACA,eAAe,GAAG,EAAE;MACzB,KAAK,MAAMjkB,IAAI,IAAIwkB,cAAc,EAAE;QAC/BxkB,IAAI,CAAC,CAAC;MACV;IACJ,CAAC,SACO;MACJ;MACA,IAAI,CAACl5f,OAAO,CAAC16L,KAAK,CAAC,CAAC;MACpB,IAAI,CAAC43sB,iBAAiB,CAAC53sB,KAAK,CAAC,CAAC;MAC9B,IAAI,CAACi4sB,gBAAgB,CAACj4sB,KAAK,CAAC,CAAC;IACjC;EACJ;EACA41jB,SAASA,CAACx+iB,QAAQ,EAAE;IAChB,IAAI,CAAC8gsB,kBAAkB,CAAC,CAAC;IACzB,IAAI,CAACL,eAAe,CAACvjtB,IAAI,CAAC8iB,QAAQ,CAAC;IACnC,OAAO,MAAM,IAAI,CAACihsB,eAAe,CAACjhsB,QAAQ,CAAC;EAC/C;EACA4zpB,YAAYA,CAAC70pB,EAAE,EAAE;IACb,IAAI,CAAC+hsB,kBAAkB,CAAC,CAAC;IACzB,MAAMI,gBAAgB,GAAGh+B,kBAAkB,CAAC,IAAI,CAAC;IACjD,MAAMmd,4BAA4B,GAAGpgB,uBAAuB,CAACxmqB,SAAS,CAAC;IACvE,IAAI;MACA,OAAOsF,EAAE,CAAC,CAAC;IACf,CAAC,SACO;MACJmkqB,kBAAkB,CAACg+B,gBAAgB,CAAC;MACpCjhC,uBAAuB,CAACogB,4BAA4B,CAAC;IACzD;EACJ;EACAnlsB,GAAGA,CAAC0pX,KAAK,EAAEi0Q,aAAa,GAAG4pD,kBAAkB,EAAEx9T,KAAK,GAAG66T,WAAW,CAACxvE,OAAO,EAAE;IACxE,IAAI,CAACwwG,kBAAkB,CAAC,CAAC;IACzB,IAAIl8V,KAAK,CAAC7qX,cAAc,CAACyqrB,SAAS,CAAC,EAAE;MACjC,OAAO5/T,KAAK,CAAC4/T,SAAS,CAAC,CAAC,IAAI,CAAC;IACjC;IACAv/T,KAAK,GAAGq+T,iBAAiB,CAACr+T,KAAK,CAAC;IAChC;IACA,MAAMi8V,gBAAgB,GAAGh+B,kBAAkB,CAAC,IAAI,CAAC;IACjD,MAAMmd,4BAA4B,GAAGpgB,uBAAuB,CAACxmqB,SAAS,CAAC;IACvE,IAAI;MACA;MACA,IAAI,EAAEwrW,KAAK,GAAG66T,WAAW,CAAC19E,QAAQ,CAAC,EAAE;QACjC;QACA,IAAI5+Z,MAAM,GAAG,IAAI,CAACF,OAAO,CAACpoM,GAAG,CAAC0pX,KAAK,CAAC;QACpC,IAAIphL,MAAM,KAAK/pL,SAAS,EAAE;UACtB;UACA;UACA,MAAM6lb,GAAG,GAAG6hR,qBAAqB,CAACv8V,KAAK,CAAC,IAAIu6T,gBAAgB,CAACv6T,KAAK,CAAC;UACnE,IAAI06E,GAAG,IAAI,IAAI,CAAC8hR,oBAAoB,CAAC9hR,GAAG,CAAC,EAAE;YACvC;YACA;YACA97P,MAAM,GAAGo9gB,UAAU,CAACS,iCAAiC,CAACz8V,KAAK,CAAC,EAAEs7V,OAAO,CAAC;UAC1E,CAAC,MACI;YACD18gB,MAAM,GAAG,IAAI;UACjB;UACA,IAAI,CAACF,OAAO,CAACnoM,GAAG,CAACypX,KAAK,EAAEphL,MAAM,CAAC;QACnC;QACA;QACA,IAAIA,MAAM,IAAI,IAAI,CAAC,6BAA6B;UAC5C,OAAO,IAAI,CAAC89gB,OAAO,CAAC18V,KAAK,EAAEphL,MAAM,CAAC;QACtC;MACJ;MACA;MACA;MACA,MAAM+9gB,YAAY,GAAG,EAAEt8V,KAAK,GAAG66T,WAAW,CAACqgB,IAAI,CAAC,GAAG,IAAI,CAAC7knB,MAAM,GAAG+koB,eAAe,CAAC,CAAC;MAClF;MACA;MACAxnF,aAAa,GAAI5zQ,KAAK,GAAG66T,WAAW,CAAC70F,QAAQ,IAAK4tC,aAAa,KAAK4pD,kBAAkB,GAClF,IAAI,GACJ5pD,aAAa;MACjB,OAAO0oF,YAAY,CAACrmtB,GAAG,CAAC0pX,KAAK,EAAEi0Q,aAAa,CAAC;IACjD,CAAC,CACD,OAAOp/nB,CAAC,EAAE;MACN,IAAIA,CAAC,CAACwG,IAAI,KAAK,mBAAmB,EAAE;QAChC,MAAM6L,IAAI,GAAGrS,CAAC,CAACkprB,kBAAkB,CAAC,GAAGlprB,CAAC,CAACkprB,kBAAkB,CAAC,IAAI,EAAE;QAChE72qB,IAAI,CAAC1Q,OAAO,CAACuD,SAAS,CAACimX,KAAK,CAAC,CAAC;QAC9B,IAAIs8V,gBAAgB,EAAE;UAClB;UACA,MAAMzntB,CAAC;QACX,CAAC,MACI;UACD;UACA,OAAOkqrB,kBAAkB,CAAClqrB,CAAC,EAAEmrX,KAAK,EAAE,iBAAiB,EAAE,IAAI,CAACjvW,MAAM,CAAC;QACvE;MACJ,CAAC,MACI;QACD,MAAMlc,CAAC;MACX;IACJ,CAAC,SACO;MACJ;MACAwmrB,uBAAuB,CAACogB,4BAA4B,CAAC;MACrDnd,kBAAkB,CAACg+B,gBAAgB,CAAC;IACxC;EACJ;EACA;EACAM,2BAA2BA,CAAA,EAAG;IAC1B,MAAMN,gBAAgB,GAAGh+B,kBAAkB,CAAC,IAAI,CAAC;IACjD,MAAMmd,4BAA4B,GAAGpgB,uBAAuB,CAACxmqB,SAAS,CAAC;IACvE,IAAI;MACA,MAAMgosB,YAAY,GAAG,IAAI,CAACvmtB,GAAG,CAAC+itB,uBAAuB,CAAC94I,KAAK,EAAEqvF,WAAW,EAAEsrB,WAAW,CAACqgB,IAAI,CAAC;MAC3F,IAAI7/H,SAAS,IAAI,CAACh/jB,KAAK,CAACoJ,OAAO,CAAC+2sB,YAAY,CAAC,EAAE;QAC3C,MAAM,IAAI/kC,YAAY,CAAC,CAAC,GAAG,CAAC,+CAA+C,+DAA+D,GACrI,+BAA8B,OAAO+kC,YAAa,KAAI,GACvD,2EAA2E,GAC3E,yBAAyB,CAAC;MAClC;MACA,KAAK,MAAMC,WAAW,IAAID,YAAY,EAAE;QACpCC,WAAW,CAAC,CAAC;MACjB;IACJ,CAAC,SACO;MACJx+B,kBAAkB,CAACg+B,gBAAgB,CAAC;MACpCjhC,uBAAuB,CAACogB,4BAA4B,CAAC;IACzD;EACJ;EACAzisB,QAAQA,CAAA,EAAG;IACP,MAAM+mX,MAAM,GAAG,EAAE;IACjB,MAAMrhL,OAAO,GAAG,IAAI,CAACA,OAAO;IAC5B,KAAK,MAAMshL,KAAK,IAAIthL,OAAO,CAACxjM,IAAI,CAAC,CAAC,EAAE;MAChC6kX,MAAM,CAACznX,IAAI,CAACyB,SAAS,CAACimX,KAAK,CAAC,CAAC;IACjC;IACA,OAAQ,cAAaD,MAAM,CAACniX,IAAI,CAAC,IAAI,CAAE,GAAE;EAC7C;EACAs+sB,kBAAkBA,CAAA,EAAG;IACjB,IAAI,IAAI,CAAC5iJ,UAAU,EAAE;MACjB,MAAM,IAAIw+G,YAAY,CAAC,GAAG,CAAC,mDAAmDp8G,SAAS,IAAI,sCAAsC,CAAC;IACtI;EACJ;EACA;AACJ;AACA;EACIqgJ,eAAeA,CAAC56e,QAAQ,EAAE;IACtB;IACA;IACAA,QAAQ,GAAGs2c,iBAAiB,CAACt2c,QAAQ,CAAC;IACtC,IAAI6+I,KAAK,GAAG86V,cAAc,CAAC35e,QAAQ,CAAC,GAAGA,QAAQ,GAAGs2c,iBAAiB,CAACt2c,QAAQ,IAAIA,QAAQ,CAACg9X,OAAO,CAAC;IACjG;IACA,MAAMv/Z,MAAM,GAAGm+gB,gBAAgB,CAAC57e,QAAQ,CAAC;IACzC,IAAI,CAAC25e,cAAc,CAAC35e,QAAQ,CAAC,IAAIA,QAAQ,CAACo/V,KAAK,KAAK,IAAI,EAAE;MACtD;MACA;MACA,IAAIy8I,WAAW,GAAG,IAAI,CAACt+gB,OAAO,CAACpoM,GAAG,CAAC0pX,KAAK,CAAC;MACzC,IAAIg9V,WAAW,EAAE;QACb;QACA,IAAIthJ,SAAS,IAAIshJ,WAAW,CAACz8I,KAAK,KAAK1rjB,SAAS,EAAE;UAC9CyjqB,4BAA4B,CAAC,CAAC;QAClC;MACJ,CAAC,MACI;QACD0kC,WAAW,GAAGhB,UAAU,CAACnnsB,SAAS,EAAEymsB,OAAO,EAAE,IAAI,CAAC;QAClD0B,WAAW,CAACtrW,OAAO,GAAG,MAAMitU,UAAU,CAACq+B,WAAW,CAACz8I,KAAK,CAAC;QACzD,IAAI,CAAC7hY,OAAO,CAACnoM,GAAG,CAACypX,KAAK,EAAEg9V,WAAW,CAAC;MACxC;MACAh9V,KAAK,GAAG7+I,QAAQ;MAChB67e,WAAW,CAACz8I,KAAK,CAACjokB,IAAI,CAAC6oO,QAAQ,CAAC;IACpC,CAAC,MACI;MACD,MAAM3b,QAAQ,GAAG,IAAI,CAAC9mB,OAAO,CAACpoM,GAAG,CAAC0pX,KAAK,CAAC;MACxC,IAAI07M,SAAS,IAAIl2W,QAAQ,IAAIA,QAAQ,CAAC+6W,KAAK,KAAK1rjB,SAAS,EAAE;QACvDyjqB,4BAA4B,CAAC,CAAC;MAClC;IACJ;IACA,IAAI,CAAC55e,OAAO,CAACnoM,GAAG,CAACypX,KAAK,EAAEphL,MAAM,CAAC;EACnC;EACA89gB,OAAOA,CAAC18V,KAAK,EAAEphL,MAAM,EAAE;IACnB,IAAI88X,SAAS,IAAI98X,MAAM,CAAC1oM,KAAK,KAAKqltB,QAAQ,EAAE;MACxCnjC,0BAA0B,CAACr+qB,SAAS,CAACimX,KAAK,CAAC,CAAC;IAChD,CAAC,MACI,IAAIphL,MAAM,CAAC1oM,KAAK,KAAKoltB,OAAO,EAAE;MAC/B18gB,MAAM,CAAC1oM,KAAK,GAAGqltB,QAAQ;MACvB38gB,MAAM,CAAC1oM,KAAK,GAAG0oM,MAAM,CAAC8yK,OAAO,CAAC,CAAC;IACnC;IACA,IAAI,OAAO9yK,MAAM,CAAC1oM,KAAK,KAAK,QAAQ,IAAI0oM,MAAM,CAAC1oM,KAAK,IAAI+mtB,YAAY,CAACr+gB,MAAM,CAAC1oM,KAAK,CAAC,EAAE;MAChF,IAAI,CAAC0ltB,iBAAiB,CAACvhtB,GAAG,CAACukM,MAAM,CAAC1oM,KAAK,CAAC;IAC5C;IACA,OAAO0oM,MAAM,CAAC1oM,KAAK;EACvB;EACAsmtB,oBAAoBA,CAAC9hR,GAAG,EAAE;IACtB,IAAI,CAACA,GAAG,CAACkwJ,UAAU,EAAE;MACjB,OAAO,KAAK;IAChB;IACA,MAAMA,UAAU,GAAG6sF,iBAAiB,CAAC/8O,GAAG,CAACkwJ,UAAU,CAAC;IACpD,IAAI,OAAOA,UAAU,KAAK,QAAQ,EAAE;MAChC,OAAOA,UAAU,KAAK,KAAK,IAAK,IAAI,CAAC+wH,MAAM,CAACjltB,GAAG,CAACk0lB,UAAU,CAAE;IAChE,CAAC,MACI;MACD,OAAO,IAAI,CAACqxH,gBAAgB,CAACvltB,GAAG,CAACk0lB,UAAU,CAAC;IAChD;EACJ;EACAyxH,eAAeA,CAACjhsB,QAAQ,EAAE;IACtB,MAAM41qB,YAAY,GAAG,IAAI,CAAC6qB,eAAe,CAACxmtB,OAAO,CAAC+lB,QAAQ,CAAC;IAC3D,IAAI41qB,YAAY,KAAK,CAAC,CAAC,EAAE;MACrB,IAAI,CAAC6qB,eAAe,CAACnniB,MAAM,CAACs8gB,YAAY,EAAE,CAAC,CAAC;IAChD;EACJ;AACJ;AACA,SAASyrB,iCAAiCA,CAACz8V,KAAK,EAAE;EAC9C;EACA,MAAMu7T,aAAa,GAAGhB,gBAAgB,CAACv6T,KAAK,CAAC;EAC7C,MAAMtO,OAAO,GAAG6pU,aAAa,KAAK,IAAI,GAAGA,aAAa,CAAC7pU,OAAO,GAAG+4U,aAAa,CAACzqU,KAAK,CAAC;EACrF,IAAItO,OAAO,KAAK,IAAI,EAAE;IAClB,OAAOA,OAAO;EAClB;EACA;EACA;EACA,IAAIsO,KAAK,YAAYomO,cAAc,EAAE;IACjC,MAAM,IAAI0xF,YAAY,CAAC,GAAG,CAAC,gDAAgDp8G,SAAS,IAAK,SAAQ3hkB,SAAS,CAACimX,KAAK,CAAE,iCAAgC,CAAC;EACvJ;EACA;EACA,IAAIA,KAAK,YAAY/4F,QAAQ,EAAE;IAC3B,OAAOi2b,+BAA+B,CAACl9V,KAAK,CAAC;EACjD;EACA;EACA,MAAM,IAAI83T,YAAY,CAAC,GAAG,CAAC,gDAAgDp8G,SAAS,IAAI,aAAa,CAAC;AAC1G;AACA,SAASwhJ,+BAA+BA,CAACl9V,KAAK,EAAE;EAC5C;EACA,MAAMm9V,WAAW,GAAGn9V,KAAK,CAACxqX,MAAM;EAChC,IAAI2ntB,WAAW,GAAG,CAAC,EAAE;IACjB,MAAMp5rB,IAAI,GAAG85gB,QAAQ,CAACs/K,WAAW,EAAE,GAAG,CAAC;IACvC,MAAM,IAAIrlC,YAAY,CAAC,GAAG,CAAC,gDAAgDp8G,SAAS,IAAK,oCAAmC3hkB,SAAS,CAACimX,KAAK,CAAE,MAAKj8V,IAAI,CAACnmB,IAAI,CAAC,IAAI,CAAE,IAAG,CAAC;EAC1K;EACA;EACA;EACA;EACA;EACA;EACA,MAAMw/sB,sBAAsB,GAAGxiC,yBAAyB,CAAC56T,KAAK,CAAC;EAC/D,IAAIo9V,sBAAsB,KAAK,IAAI,EAAE;IACjC,OAAO,MAAMA,sBAAsB,CAAC1rW,OAAO,CAACsO,KAAK,CAAC;EACtD,CAAC,MACI;IACD,OAAO,MAAM,IAAIA,KAAK,CAAC,CAAC;EAC5B;AACJ;AACA,SAAS+8V,gBAAgBA,CAAC57e,QAAQ,EAAE;EAChC,IAAI45e,eAAe,CAAC55e,QAAQ,CAAC,EAAE;IAC3B,OAAO66e,UAAU,CAACnnsB,SAAS,EAAEssN,QAAQ,CAACo+X,QAAQ,CAAC;EACnD,CAAC,MACI;IACD,MAAM7tP,OAAO,GAAG2rW,iBAAiB,CAACl8e,QAAQ,CAAC;IAC3C,OAAO66e,UAAU,CAACtqW,OAAO,EAAE4pW,OAAO,CAAC;EACvC;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,SAAS+B,iBAAiBA,CAACl8e,QAAQ,EAAEq3c,YAAY,EAAEn6E,SAAS,EAAE;EAC1D,IAAI3sP,OAAO,GAAG78V,SAAS;EACvB,IAAI6mjB,SAAS,IAAIi8G,sBAAsB,CAACx2c,QAAQ,CAAC,EAAE;IAC/Co3c,yBAAyB,CAAC1jqB,SAAS,EAAEwplB,SAAS,EAAEl9X,QAAQ,CAAC;EAC7D;EACA,IAAI25e,cAAc,CAAC35e,QAAQ,CAAC,EAAE;IAC1B,MAAMm8e,iBAAiB,GAAG7lC,iBAAiB,CAACt2c,QAAQ,CAAC;IACrD,OAAOspd,aAAa,CAAC6yB,iBAAiB,CAAC,IAAIb,iCAAiC,CAACa,iBAAiB,CAAC;EACnG,CAAC,MACI;IACD,IAAIvC,eAAe,CAAC55e,QAAQ,CAAC,EAAE;MAC3BuwI,OAAO,GAAGA,CAAA,KAAM+lU,iBAAiB,CAACt2c,QAAQ,CAACo+X,QAAQ,CAAC;IACxD,CAAC,MACI,IAAIy7G,iBAAiB,CAAC75e,QAAQ,CAAC,EAAE;MAClCuwI,OAAO,GAAGA,CAAA,KAAMvwI,QAAQ,CAAC4rY,UAAU,CAAC,GAAG4xE,UAAU,CAACx9c,QAAQ,CAACstG,IAAI,IAAI,EAAE,CAAC,CAAC;IAC3E,CAAC,MACI,IAAIwsY,kBAAkB,CAAC95e,QAAQ,CAAC,EAAE;MACnCuwI,OAAO,GAAGA,CAAA,KAAMg5O,QAAQ,CAAC+sF,iBAAiB,CAACt2c,QAAQ,CAACi9X,WAAW,CAAC,CAAC;IACrE,CAAC,MACI;MACD,MAAM88G,QAAQ,GAAGzjC,iBAAiB,CAACt2c,QAAQ,KACtCA,QAAQ,CAAC09Z,QAAQ,IAAI19Z,QAAQ,CAACg9X,OAAO,CAAC,CAAC;MAC5C,IAAIziC,SAAS,IAAI,CAACw/I,QAAQ,EAAE;QACxB3iC,yBAAyB,CAACC,YAAY,EAAEn6E,SAAS,EAAEl9X,QAAQ,CAAC;MAChE;MACA,IAAIo8e,OAAO,CAACp8e,QAAQ,CAAC,EAAE;QACnBuwI,OAAO,GAAGA,CAAA,KAAM,IAAKwpW,QAAQ,CAAE,GAAGv8B,UAAU,CAACx9c,QAAQ,CAACstG,IAAI,CAAC,CAAC;MAChE,CAAC,MACI;QACD,OAAOg8W,aAAa,CAACywB,QAAQ,CAAC,IAAIuB,iCAAiC,CAACvB,QAAQ,CAAC;MACjF;IACJ;EACJ;EACA,OAAOxpW,OAAO;AAClB;AACA,SAASsqW,UAAUA,CAACtqW,OAAO,EAAEx7W,KAAK,EAAEqqkB,KAAK,GAAG,KAAK,EAAE;EAC/C,OAAO;IACH7uN,OAAO,EAAEA,OAAO;IAChBx7W,KAAK,EAAEA,KAAK;IACZqqkB,KAAK,EAAEA,KAAK,GAAG,EAAE,GAAG1rjB;EACxB,CAAC;AACL;AACA,SAAS0osB,OAAOA,CAACrntB,KAAK,EAAE;EACpB,OAAO,CAAC,CAACA,KAAK,CAACu4U,IAAI;AACvB;AACA,SAASwuY,YAAYA,CAAC/mtB,KAAK,EAAE;EACzB,OAAOA,KAAK,KAAK,IAAI,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAC9C,OAAOA,KAAK,CAAC2zlB,WAAW,KAAK,UAAU;AAC/C;AACA,SAAS0yH,qBAAqBA,CAACrmtB,KAAK,EAAE;EAClC,OAAQ,OAAOA,KAAK,KAAK,UAAU,IAC9B,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,YAAYkwlB,cAAe;AACtE;AACA,SAAS01H,qBAAqBA,CAACz9G,SAAS,EAAElklB,EAAE,EAAE;EAC1C,KAAK,MAAMgnN,QAAQ,IAAIk9X,SAAS,EAAE;IAC9B,IAAI3hmB,KAAK,CAACoJ,OAAO,CAACq7N,QAAQ,CAAC,EAAE;MACzB26e,qBAAqB,CAAC36e,QAAQ,EAAEhnN,EAAE,CAAC;IACvC,CAAC,MACI,IAAIgnN,QAAQ,IAAIw2c,sBAAsB,CAACx2c,QAAQ,CAAC,EAAE;MACnD26e,qBAAqB,CAAC36e,QAAQ,CAACizc,UAAU,EAAEj6pB,EAAE,CAAC;IAClD,CAAC,MACI;MACDA,EAAE,CAACgnN,QAAQ,CAAC;IAChB;EACJ;AACJ;;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,MAAM4kX,MAAM,GAAG,IAAIK,cAAc,CAAC,OAAO,EAAE;EACvCwE,UAAU,EAAE,MAAM;EAClBl5O,OAAO,EAAEA,CAAA,KAAM8rW;AACnB,CAAC,CAAC;AACF;AACA,MAAMA,cAAc,GAAG,IAAI;AAC3B;AACA;AACA;AACA;AACA,MAAMC,oBAAoB,GAAG,IAAIr3H,cAAc,CAAC,sBAAsB,CAAC;AACvE;AACA;AACA;AACA;AACA,MAAMioC,WAAW,GAAG,IAAIjoC,cAAc,CAAC,aAAa,EAAE;EAClDwE,UAAU,EAAE,UAAU;EACtBl5O,OAAO,EAAEA,CAAA,KAAM,SAAS,CAAE;AAC9B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA,MAAMgsW,gBAAgB,GAAG,IAAIt3H,cAAc,CAAC,+BAA+B,CAAC;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMuyB,qBAAqB,GAAG,IAAIvyB,cAAc,CAAC,qBAAqB,CAAC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMuuB,SAAS,GAAG,IAAIvuB,cAAc,CAAC,WAAW,EAAE;EAC9CwE,UAAU,EAAE,MAAM;EAClBl5O,OAAO,EAAEA,CAAA,KAAM;IACX;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,OAAOuhW,WAAW,CAAC,CAAC,CAACpxsB,IAAI,EAAE4W,aAAa,CAAC,cAAc,CAAC,EAAEC,YAAY,CAAC,YAAY,CAAC,IAAI,IAAI;EAChG;AACJ,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,MAAMilsB,oBAAoB,GAAG,IAAIv3H,cAAc,CAAE,OAAO1qB,SAAS,KAAK,WAAW,IAAIA,SAAS,GAAI,sBAAsB,GAAG,EAAE,EAAE;EAC3HkvB,UAAU,EAAE,MAAM;EAClBl5O,OAAO,EAAEA,CAAA,KAAM,IAAI94W,GAAG,CAAC;AAC3B,CAAC,CAAC;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASixqB,YAAYA,CAACz2pB,GAAG,EAAE;EACvB,OAAOA,GAAG;AACd;AACA,SAASwqsB,iBAAiBA,CAAA,EAAG;EACzB,MAAM1nC,aAAa,GAAG,IAAItM,aAAa,CAAC,CAAC;EACzC,IAAI9jF,MAAM,CAACuoC,WAAW,CAAC,KAAK,SAAS,EAAE;IACnC6nD,aAAa,CAAC97lB,KAAK,GAAGyjoB,wBAAwB,CAAC5K,WAAW,CAAC,CAAC,EAAEntH,MAAM,CAACC,MAAM,CAAC,CAAC;EACjF;EACA,OAAOmwF,aAAa;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMtM,aAAa,CAAC;EAChBpuqB,WAAWA,CAAA,EAAG;IACV;IACA,IAAI,CAAC4+E,KAAK,GAAG,CAAC,CAAC;IACf,IAAI,CAAC0joB,oBAAoB,GAAG,CAAC,CAAC;EAClC;EACA;EACA;IAAS,IAAI,CAAC18I,KAAK,GACnB,yBAA0BC,kBAAkB,CAAC;MACzCrhN,KAAK,EAAE4pT,aAAa;MACpBh/E,UAAU,EAAE,MAAM;MAClBl5O,OAAO,EAAEksW;IACb,CAAC,CAAC;EAAE;EACJ;AACJ;AACA;EACItntB,GAAGA,CAAC8c,GAAG,EAAEwnV,YAAY,EAAE;IACnB,OAAO,IAAI,CAACxgR,KAAK,CAAChnE,GAAG,CAAC,KAAKyB,SAAS,GAAG,IAAI,CAACulE,KAAK,CAAChnE,GAAG,CAAC,GAAGwnV,YAAY;EACzE;EACA;AACJ;AACA;EACIrkW,GAAGA,CAAC6c,GAAG,EAAEld,KAAK,EAAE;IACZ,IAAI,CAACkkF,KAAK,CAAChnE,GAAG,CAAC,GAAGld,KAAK;EAC3B;EACA;AACJ;AACA;EACIuM,MAAMA,CAAC2Q,GAAG,EAAE;IACR,OAAO,IAAI,CAACgnE,KAAK,CAAChnE,GAAG,CAAC;EAC1B;EACA;AACJ;AACA;EACIu2S,MAAMA,CAACv2S,GAAG,EAAE;IACR,OAAO,IAAI,CAACgnE,KAAK,CAACjlF,cAAc,CAACie,GAAG,CAAC;EACzC;EACA;AACJ;AACA;EACI,IAAI0sI,OAAOA,CAAA,EAAG;IACV,OAAO7qJ,MAAM,CAACiG,IAAI,CAAC,IAAI,CAACk/E,KAAK,CAAC,CAAC5kF,MAAM,KAAK,CAAC;EAC/C;EACA;AACJ;AACA;EACIuotB,WAAWA,CAAC3qsB,GAAG,EAAEgI,QAAQ,EAAE;IACvB,IAAI,CAAC0isB,oBAAoB,CAAC1qsB,GAAG,CAAC,GAAGgI,QAAQ;EAC7C;EACA;AACJ;AACA;EACI4isB,MAAMA,CAAA,EAAG;IACL;IACA,KAAK,MAAM5qsB,GAAG,IAAI,IAAI,CAAC0qsB,oBAAoB,EAAE;MACzC,IAAI,IAAI,CAACA,oBAAoB,CAAC3otB,cAAc,CAACie,GAAG,CAAC,EAAE;QAC/C,IAAI;UACA,IAAI,CAACgnE,KAAK,CAAChnE,GAAG,CAAC,GAAG,IAAI,CAAC0qsB,oBAAoB,CAAC1qsB,GAAG,CAAC,CAAC,CAAC;QACtD,CAAC,CACD,OAAOve,CAAC,EAAE;UACNgW,OAAO,CAACC,IAAI,CAAC,qCAAqC,EAAEjW,CAAC,CAAC;QAC1D;MACJ;IACJ;IACA;IACA;IACA,OAAOiF,IAAI,CAACC,SAAS,CAAC,IAAI,CAACqgF,KAAK,CAAC,CAACv8E,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC;EAC9D;AACJ;AACA,SAASggtB,wBAAwBA,CAACvyd,GAAG,EAAE2yd,KAAK,EAAE;EAC1C;EACA;EACA,MAAMltC,MAAM,GAAGzlb,GAAG,CAACwxa,cAAc,CAACmhD,KAAK,GAAG,QAAQ,CAAC;EACnD,IAAIltC,MAAM,EAAEz0jB,WAAW,EAAE;IACrB,IAAI;MACA;MACA;MACA;MACA,OAAOxiH,IAAI,CAACM,KAAK,CAAC22qB,MAAM,CAACz0jB,WAAW,CAAC;IACzC,CAAC,CACD,OAAOznH,CAAC,EAAE;MACNgW,OAAO,CAACC,IAAI,CAAC,kDAAkD,GAAGmzsB,KAAK,EAAEpptB,CAAC,CAAC;IAC/E;EACJ;EACA,OAAO,CAAC,CAAC;AACb;;AAEA;AACA,MAAMqptB,mBAAmB,GAAG,GAAG;AAC/B;AACA,MAAMC,mBAAmB,GAAG,GAAG;AAC/B;AACA;AACA;AACA;AACA,IAAIC,kBAAkB;AACtB,CAAC,UAAUA,kBAAkB,EAAE;EAC3BA,kBAAkB,CAAC,YAAY,CAAC,GAAG,GAAG;EACtCA,kBAAkB,CAAC,aAAa,CAAC,GAAG,GAAG;AAC3C,CAAC,EAAEA,kBAAkB,KAAKA,kBAAkB,GAAG,CAAC,CAAC,CAAC,CAAC;AACnD;AACA;AACA;AACA;AACA,MAAMC,kBAAkB,GAAG,GAAG;AAC9B,MAAMC,SAAS,GAAG,GAAG;AACrB,MAAMC,UAAU,GAAG,GAAG;AACtB,MAAMC,UAAU,GAAG,GAAG;AACtB,MAAMC,cAAc,GAAG,GAAG;AAC1B,MAAMC,WAAW,GAAG,GAAG,CAAC,CAAC;AACzB,MAAMC,KAAK,GAAG,GAAG;AACjB,MAAMC,kBAAkB,GAAG,GAAG;;AAE9B;AACA;AACA;AACA;AACA,MAAMC,uBAAuB,GAAG,cAAc;AAC9C;AACA;AACA;AACA,MAAMC,YAAY,GAAGj1C,YAAY,CAACg1C,uBAAuB,CAAC;AAC1D;AACA;AACA;AACA;AACA;AACA,MAAME,aAAa,GAAG,KAAK;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIC,0BAA0B,GAAGA,CAAClT,KAAK,EAAE58F,QAAQ,KAAK,IAAI;AAC1D,SAAS+vG,yBAAyBA,CAACnT,KAAK,EAAE58F,QAAQ,EAAE;EAChD,MAAMgwG,YAAY,GAAGpT,KAAK,CAACpzrB,YAAY,CAACqmsB,aAAa,CAAC;EACtD,IAAIG,YAAY,IAAI,IAAI,EACpB,OAAO,IAAI;EACf,IAAIv/sB,IAAI,GAAG,CAAC,CAAC;EACb;EACA;EACA;EACA,IAAIu/sB,YAAY,KAAK,EAAE,EAAE;IACrB,MAAMhpC,aAAa,GAAGhnE,QAAQ,CAAC54mB,GAAG,CAACszqB,aAAa,EAAE,IAAI,EAAE;MAAE5/F,QAAQ,EAAE;IAAK,CAAC,CAAC;IAC3E,IAAIksG,aAAa,KAAK,IAAI,EAAE;MACxB,MAAMipC,OAAO,GAAGjpC,aAAa,CAAC5/qB,GAAG,CAACwotB,YAAY,EAAE,EAAE,CAAC;MACnD;MACA;MACAn/sB,IAAI,GAAGw/sB,OAAO,CAACtrnB,MAAM,CAACqrnB,YAAY,CAAC,CAAC;MACpC;MACA;MACA;MACAxjJ,SAAS,IAAIq+G,aAAa,CAACp6qB,IAAI,EAAE,2DAA2D,CAAC;IACjG;EACJ;EACA,MAAMy/sB,cAAc,GAAG;IACnBz/sB,IAAI;IACJkvB,UAAU,EAAEi9qB,KAAK,CAACj9qB,UAAU,IAAI;EACpC,CAAC;EACD;EACA;EACAi9qB,KAAK,CAACh9qB,eAAe,CAACiwrB,aAAa,CAAC;EACpC;EACA;EACA;EACArjJ,SAAS,IAAI2jJ,6BAA6B,CAACvT,KAAK,EAAE,2BAA4B,KAAK,CAAC;EACpFpwI,SAAS,IAAIA,SAAS,CAAC4hH,kBAAkB,EAAE;EAC3C,OAAO8hC,cAAc;AACzB;AACA;AACA;AACA;AACA,SAASE,+BAA+BA,CAAA,EAAG;EACvCN,0BAA0B,GAAGC,yBAAyB;AAC1D;AACA;AACA;AACA;AACA;AACA,SAASM,qBAAqBA,CAACzT,KAAK,EAAE58F,QAAQ,EAAE;EAC5C,OAAO8vG,0BAA0B,CAAClT,KAAK,EAAE58F,QAAQ,CAAC;AACtD;AACA;AACA;AACA;AACA;AACA,SAASswG,6BAA6BA,CAAC/sF,OAAO,EAAE;EAC5C;EACA,IAAIk2D,KAAK,GAAGl2D,OAAO,CAACirE,MAAM;EAC1B,MAAMzhB,KAAK,GAAG0M,KAAK,CAACzC,KAAK,CAAC;EAC1B;EACA;EACA,IAAIjK,KAAK,CAACtzqB,IAAI,KAAK,CAAC,CAAC,0BAA0B;IAC3C,OAAO,IAAI;EACf;EACA;EACA;EACA,IAAI6/qB,UAAU,CAACG,KAAK,CAAC,EAAE;IACnBA,KAAK,GAAGA,KAAK,CAACnB,aAAa,CAAC;EAChC;EACA;EACA;EACA;EACA,IAAIU,YAAY,CAACS,KAAK,CAAC,EAAE;IACrBA,KAAK,GAAGA,KAAK,CAAC1C,IAAI,CAAC;EACvB;EACA,OAAO0C,KAAK;AAChB;AACA,SAAS82B,kBAAkBA,CAAC7gsB,IAAI,EAAE;EAC9B,OAAOA,IAAI,CAAC09F,WAAW,EAAEz+G,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS6htB,qCAAqCA,CAAC9gsB,IAAI,EAAE;EACjD,MAAM0sO,GAAG,GAAG2nd,WAAW,CAAC,CAAC;EACzB,MAAM0M,oBAAoB,GAAGr0d,GAAG,CAACs0d,kBAAkB,CAAChhsB,IAAI,EAAEs+oB,UAAU,CAAC2iD,YAAY,EAAE;IAC/EC,UAAUA,CAAClhsB,IAAI,EAAE;MACb,MAAMgF,OAAO,GAAG67rB,kBAAkB,CAAC7gsB,IAAI,CAAC;MACxC,MAAMmhsB,gBAAgB,GAAGn8rB,OAAO,KAAK,OAAO,CAAC,kCAAkCA,OAAO,KAAK,OAAO,CAAC;MACnG,OAAOm8rB,gBAAgB,GAAG7iD,UAAU,CAAC8iD,aAAa,GAAG9iD,UAAU,CAAC+iD,aAAa;IACjF;EACJ,CAAC,CAAC;EACF,IAAIrja,WAAW;EACf;EACA;EACA;EACA;EACA;EACA,MAAMxuL,KAAK,GAAG,EAAE;EAChB,OAAOwuL,WAAW,GAAG+ia,oBAAoB,CAACn3U,QAAQ,CAAC,CAAC,EAAE;IAClDp6Q,KAAK,CAAC91H,IAAI,CAACskT,WAAW,CAAC;EAC3B;EACA,KAAK,MAAMh+R,IAAI,IAAIwvG,KAAK,EAAE;IACtB,IAAIxvG,IAAI,CAAC09F,WAAW,KAAK,OAAO,CAAC,gCAAgC;MAC7D19F,IAAI,CAACshsB,WAAW,CAAC50d,GAAG,CAACqjJ,cAAc,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC,MACI;MACD/vX,IAAI,CAACnc,MAAM,CAAC,CAAC;IACjB;EACJ;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,SAAS48sB,6BAA6BA,CAACzgsB,IAAI,EAAEuhsB,qBAAqB,GAAG,IAAI,EAAE;EACvE,IAAI,CAACzkJ,SAAS,EAAE;IACZ,MAAM,IAAIngkB,KAAK,CAAC,uDAAuD,GACnE,wCAAwC,CAAC;EACjD;EACA,IAAI4ktB,qBAAqB,IAAIC,0BAA0B,CAACxhsB,IAAI,CAAC,EAAE;IAC3D,MAAM,IAAIrjB,KAAK,CAAC,oDAAoD,CAAC;EACzE;EACAqjB,IAAI,CAACyhsB,SAAS,GAAG,IAAI;EACrB3kJ,SAAS,CAAC2hH,aAAa,EAAE;AAC7B;AACA,SAAS+iC,0BAA0BA,CAACxhsB,IAAI,EAAE;EACtC,OAAO,CAAC,CAACA,IAAI,CAACyhsB,SAAS;AAC3B;AACA,SAASC,cAAcA,CAACC,aAAa,EAAEjjsB,KAAK,EAAEsB,IAAI,EAAE;EAChD2hsB,aAAa,CAACC,YAAY,KAAK,CAAC,CAAC;EACjCD,aAAa,CAACC,YAAY,CAACljsB,KAAK,CAAC,GAAGsB,IAAI;AAC5C;AACA,SAAS6hsB,cAAcA,CAACF,aAAa,EAAEjjsB,KAAK,EAAE;EAC1C,OAAOijsB,aAAa,CAACC,YAAY,GAAGljsB,KAAK,CAAC,IAAI,IAAI;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASojsB,kBAAkBA,CAACH,aAAa,EAAEjjsB,KAAK,EAAE;EAC9C,MAAM3d,IAAI,GAAG4gtB,aAAa,CAAC5gtB,IAAI;EAC/B,IAAI+J,IAAI,GAAG/J,IAAI,CAAC0+sB,kBAAkB,CAAC,GAAG/gsB,KAAK,CAAC,IAAI,IAAI;EACpD;EACA;EACA;EACA;EACA,IAAI5T,IAAI,KAAK,IAAI,IAAI/J,IAAI,CAAC4+sB,UAAU,CAAC,GAAGjhsB,KAAK,CAAC,EAAE;IAC5C5T,IAAI,GAAGi3sB,2BAA2B,CAACJ,aAAa,EAAEjjsB,KAAK,CAAC;EAC5D;EACA,OAAO5T,IAAI;AACf;AACA,SAASk3sB,2BAA2BA,CAACL,aAAa,EAAEjjsB,KAAK,EAAE;EACvD,OAAOijsB,aAAa,CAAC5gtB,IAAI,CAAC4+sB,UAAU,CAAC,GAAGjhsB,KAAK,CAAC,IAAI,IAAI;AAC1D;AACA;AACA;AACA;AACA;AACA,SAASqjsB,2BAA2BA,CAACJ,aAAa,EAAEjjsB,KAAK,EAAE;EACvD,MAAMujsB,KAAK,GAAGD,2BAA2B,CAACL,aAAa,EAAEjjsB,KAAK,CAAC,IAAI,EAAE;EACrE,IAAIwjsB,QAAQ,GAAG,CAAC;EAChB,KAAK,IAAInvoB,IAAI,IAAIkvoB,KAAK,EAAE;IACpBC,QAAQ,IAAInvoB,IAAI,CAAC8soB,cAAc,CAAC,IAAI9soB,IAAI,CAAC6soB,UAAU,CAAC,IAAI,CAAC,CAAC;EAC9D;EACA,OAAOsC,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,oBAAoBA,CAACR,aAAa,EAAEjjsB,KAAK,EAAE;EAChD;EACA,IAAI,OAAOijsB,aAAa,CAACS,iBAAiB,KAAK,WAAW,EAAE;IACxD,MAAMC,OAAO,GAAGV,aAAa,CAAC5gtB,IAAI,CAACi/sB,kBAAkB,CAAC;IACtD2B,aAAa,CAACS,iBAAiB,GAAGC,OAAO,GAAI,IAAIrotB,GAAG,CAACqotB,OAAO,CAAC,GAAI,IAAI;EACzE;EACA,OAAO,CAAC,CAACV,aAAa,CAACS,iBAAiB,EAAEtqtB,GAAG,CAAC4mB,KAAK,CAAC;AACxD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM4jsB,cAAc,CAAC;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,kBAAkB,CAAC;AAGzB,SAASC,uBAAuBA,CAAC77a,SAAS,EAAE;EACxC,MAAM9pS,KAAK,GAAGF,KAAK,CAAE,kCAAiCxB,SAAS,CAACwrS,SAAS,CAAE,GAAE,CAAC;EAC9E9pS,KAAK,CAAC4ltB,eAAe,CAAC,GAAG97a,SAAS;EAClC,OAAO9pS,KAAK;AAChB;AACA,MAAM4ltB,eAAe,GAAG,aAAa;AACrC,SAASC,cAAcA,CAAC7ltB,KAAK,EAAE;EAC3B,OAAOA,KAAK,CAAC4ltB,eAAe,CAAC;AACjC;AACA,MAAME,6BAA6B,CAAC;EAChCvvF,uBAAuBA,CAACzsV,SAAS,EAAE;IAC/B,MAAM67a,uBAAuB,CAAC77a,SAAS,CAAC;EAC5C;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMi8a,0BAA0B,CAAC;EAC7B;IAAS,IAAI,CAAChlW,IAAI,GAAK,eAAe,IAAI+kW,6BAA6B,CAAC,CAAE;EAAE;AAChF;;AAEA;AACA;AACA;AACA;AACA;AACA,SAASE,gBAAgBA,CAAA,EAAG;EACxB,OAAOC,gBAAgB,CAACjvB,eAAe,CAAC,CAAC,EAAEN,QAAQ,CAAC,CAAC,CAAC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASuvB,gBAAgBA,CAAC1lC,KAAK,EAAE2M,KAAK,EAAE;EACpC,OAAO,IAAIr1F,UAAU,CAACy8F,gBAAgB,CAAC/T,KAAK,EAAE2M,KAAK,CAAC,CAAC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMr1F,UAAU,CAAC;EACb93lB,WAAWA,CAACq3lB,aAAa,EAAE;IACvB,IAAI,CAACA,aAAa,GAAGA,aAAa;EACtC;EACA;AACJ;AACA;AACA;EACI;IAAS,IAAI,CAAC8sF,iBAAiB,GAAG8hC,gBAAgB;EAAE;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASE,gBAAgBA,CAACzrtB,KAAK,EAAE;EAC7B,OAAOA,KAAK,YAAYo9lB,UAAU,GAAGp9lB,KAAK,CAAC28lB,aAAa,GAAG38lB,KAAK;AACpE;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM0rtB,gBAAgB,CAAC;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM1lE,SAAS,CAAC;EACZ;AACJ;AACA;AACA;EACI;IAAS,IAAI,CAACyjC,iBAAiB,GAAG,MAAMkiC,eAAe,CAAC,CAAC;EAAE;AAC/D;AACA;AACA,SAASA,eAAeA,CAAA,EAAG;EACvB;EACA;EACA,MAAMl5B,KAAK,GAAGwJ,QAAQ,CAAC,CAAC;EACxB,MAAMnW,KAAK,GAAGyW,eAAe,CAAC,CAAC;EAC/B,MAAMqvB,WAAW,GAAG5xB,wBAAwB,CAAClU,KAAK,CAAC1+pB,KAAK,EAAEqrqB,KAAK,CAAC;EAChE,OAAO,CAACV,OAAO,CAAC65B,WAAW,CAAC,GAAGA,WAAW,GAAGn5B,KAAK,EAAEhC,QAAQ,CAAC;AACjE;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAMo7B,SAAS,CAAC;EACZ;EACA;IAAS,IAAI,CAAC3gJ,KAAK,GAAGC,kBAAkB,CAAC;MACrCrhN,KAAK,EAAE+hW,SAAS;MAChBn3H,UAAU,EAAE,MAAM;MAClBl5O,OAAO,EAAEA,CAAA,KAAM;IACnB,CAAC,CAAC;EAAE;AACR;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAMovP,OAAO,CAAC;EACVtlmB,WAAWA,CAACk+gB,IAAI,EAAE;IACd,IAAI,CAACA,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACsoM,KAAK,GAAGtoM,IAAI,CAACj8gB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC/B,IAAI,CAACwktB,KAAK,GAAGvoM,IAAI,CAACj8gB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC/B,IAAI,CAAC83iB,KAAK,GAAG77B,IAAI,CAACj8gB,KAAK,CAAC,GAAG,CAAC,CAAC1C,KAAK,CAAC,CAAC,CAAC,CAAC6C,IAAI,CAAC,GAAG,CAAC;EACnD;AACJ;AACA;AACA;AACA;AACA,MAAMmjmB,OAAO,GAAG,IAAID,OAAO,CAAC,QAAQ,CAAC;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMohH,qCAAqC,GAAG,CAAC,CAAC;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,aAAaA,CAACx5B,KAAK,EAAE;EAC1B,OAAOA,KAAK,EAAE;IACVA,KAAK,CAAC9yQ,KAAK,CAAC,IAAI,EAAE,CAAC;IACnB,MAAMn/V,MAAM,GAAGu0nB,cAAc,CAACtiB,KAAK,CAAC;IACpC;IACA,IAAIH,UAAU,CAACG,KAAK,CAAC,IAAI,CAACjymB,MAAM,EAAE;MAC9B,OAAOiymB,KAAK;IAChB;IACA;IACAA,KAAK,GAAGjymB,MAAM;EAClB;EACA,OAAO,IAAI;AACf;AAEA,MAAM0roB,oBAAoB,GAAG,iBAAiB;AAC9C,SAASC,YAAYA,CAACnxsB,OAAO,EAAEoxsB,aAAa,EAAE;EAC1C,MAAM5pX,GAAG,GAAI,GAAExnV,OAAQ,eAAcoxsB,aAAa,YAAY/mtB,KAAK,GAAG+mtB,aAAa,CAACpxsB,OAAO,GAAGoxsB,aAAc,EAAC;EAC7G,MAAM7mtB,KAAK,GAAGF,KAAK,CAACm9V,GAAG,CAAC;EACxBj9V,KAAK,CAAC2mtB,oBAAoB,CAAC,GAAGE,aAAa;EAC3C,OAAO7mtB,KAAK;AAChB;AACA,SAAS8mtB,gBAAgBA,CAAC9mtB,KAAK,EAAE;EAC7B,OAAOA,KAAK,CAAC2mtB,oBAAoB,CAAC;AACtC;;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,MAAMI,YAAY,CAAC;EACfhntB,WAAWA,CAAA,EAAG;IACV;AACR;AACA;IACQ,IAAI,CAACintB,QAAQ,GAAG53sB,OAAO;EAC3B;EACA63sB,WAAWA,CAACjntB,KAAK,EAAE;IACf,MAAM6mtB,aAAa,GAAG,IAAI,CAACK,kBAAkB,CAAClntB,KAAK,CAAC;IACpD,IAAI,CAACgntB,QAAQ,CAAChntB,KAAK,CAAC,OAAO,EAAEA,KAAK,CAAC;IACnC,IAAI6mtB,aAAa,EAAE;MACf,IAAI,CAACG,QAAQ,CAAChntB,KAAK,CAAC,gBAAgB,EAAE6mtB,aAAa,CAAC;IACxD;EACJ;EACA;EACAK,kBAAkBA,CAAClntB,KAAK,EAAE;IACtB,IAAI5G,CAAC,GAAG4G,KAAK,IAAI8mtB,gBAAgB,CAAC9mtB,KAAK,CAAC;IACxC,OAAO5G,CAAC,IAAI0ttB,gBAAgB,CAAC1ttB,CAAC,CAAC,EAAE;MAC7BA,CAAC,GAAG0ttB,gBAAgB,CAAC1ttB,CAAC,CAAC;IAC3B;IACA,OAAOA,CAAC,IAAI,IAAI;EACpB;AACJ;;AAEA;AACA;AACA;AACA;AACA,MAAM+ttB,8BAA8B,GAAG,IAAIx8H,cAAc,CAAE,OAAO1qB,SAAS,KAAK,WAAW,IAAI,CAAC,CAACA,SAAS,GAAI,gCAAgC,GAAG,EAAE,CAAC;AACpJ;AACA;AACA,MAAMmnJ,6BAA6B,GAAG,KAAK;AAC3C;AACA;AACA;AACA;AACA,MAAMC,qBAAqB,GAAG,IAAI18H,cAAc,CAAE,OAAO1qB,SAAS,KAAK,WAAW,IAAI,CAAC,CAACA,SAAS,GAAI,uBAAuB,GAAG,EAAE,EAAE;EAC/HkvB,UAAU,EAAE,MAAM;EAClBl5O,OAAO,EAAEA,CAAA,KAAMmxW;AACnB,CAAC,CAAC;AAEF,SAASE,yBAAyBA,CAAC1ntB,IAAI,EAAE;EACrC;EACAA,IAAI,GAAGuokB,mBAAmB,CAACvokB,IAAI,CAACwC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;EACtD,OAAQ,cAAaxC,IAAK,EAAC;AAC/B;AACA,MAAM2ntB,iBAAiB,GAAG,UAAU;AACpC,SAASp/I,mBAAmBA,CAACngQ,KAAK,EAAE;EAChC,OAAOA,KAAK,CAAC5lU,OAAO,CAACmltB,iBAAiB,EAAE,CAAC,GAAG/mtB,CAAC,KAAK,GAAG,GAAGA,CAAC,CAAC,CAAC,CAAC,CAAC4rB,WAAW,CAAC,CAAC,CAAC;AAC/E;AACA,SAASo7rB,0BAA0BA,CAAC/stB,KAAK,EAAE;EACvC,IAAI;IACA;IACA,OAAOA,KAAK,IAAI,IAAI,GAAGA,KAAK,CAAC8C,QAAQ,CAAC,CAAC,CAAC+B,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG7E,KAAK;EAChE,CAAC,CACD,OAAOrB,CAAC,EAAE;IACN,OAAO,uDAAuD;EAClE;AACJ;;AAEA;AACA;AACA;AACA;AACA,SAASqutB,eAAeA,CAAC1qsB,OAAO,EAAE;EAC9B,OAAOA,OAAO,CAACotX,aAAa,CAACl7I,WAAW;AAC5C;AACA;AACA;AACA;AACA;AACA,SAASy4d,iBAAiBA,CAAC3qsB,OAAO,EAAE;EAChC,OAAOA,OAAO,CAACotX,aAAa;AAChC;AACA;AACA;AACA;AACA;AACA,SAASw9U,aAAaA,CAAC5qsB,OAAO,EAAE;EAC5B,OAAOA,OAAO,CAACotX,aAAa,CAAC/jY,IAAI;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMwhtB,uBAAuB,GAAI,GAAE;AACnC;AACA;AACA;AACA,SAASC,aAAaA,CAACpttB,KAAK,EAAE;EAC1B,IAAIA,KAAK,YAAY+wR,QAAQ,EAAE;IAC3B,OAAO/wR,KAAK,CAAC,CAAC;EAClB,CAAC,MACI;IACD,OAAOA,KAAK;EAChB;AACJ;;AAEA;AACA;AACA;AACA,MAAMqttB,yBAAyB,GAAG,GAAG;AACrC;AACA,SAASC,6BAA6BA,CAAC76sB,IAAI,EAAE;EACzC86sB,kBAAkB,CAAC96sB,IAAI,CAAC;EACxB,MAAMk9qB,YAAY,GAAG1B,eAAe,CAACx7qB,IAAI,CAAC;EAC1C,IAAI,CAACk9qB,YAAY,CAACv6D,UAAU,EAAE;IAC1B,MAAM,IAAIwsD,YAAY,CAAC,GAAG,CAAC,+CAAgD,OAAMK,iBAAiB,CAACxvqB,IAAI,CAAE,0CAAyC,GAC7I,2DAA0D,GAC1D,wBAAuBwvqB,iBAAiB,CAACxvqB,IAAI,CAAE,iBAAgB,GAC/D,iDAAgD,CAAC;EAC1D;AACJ;AACA;AACA,SAAS86sB,kBAAkBA,CAAC96sB,IAAI,EAAE;EAC9B,IAAI,CAACw7qB,eAAe,CAACx7qB,IAAI,CAAC,EAAE;IACxB,MAAM,IAAImvqB,YAAY,CAAC,GAAG,CAAC,8CAA+C,OAAMK,iBAAiB,CAACxvqB,IAAI,CAAE,gCAA+B,GAClI,gDAA+C,CAAC;EACzD;AACJ;AACA;AACA,SAAS+6sB,2BAA2BA,CAAC1nC,KAAK,EAAEvxpB,KAAK,EAAEs6T,MAAM,EAAE;EACvD,MAAM,IAAI+yV,YAAY,CAAC,CAAC,GAAG,CAAC,kDAAmD,+CAA8CkE,KAAK,CAAC9lrB,KAAM,IAAG,GACvI,GAAEiirB,iBAAiB,CAAC1tpB,KAAK,CAAE,OAAM,GACjC,GAAE0tpB,iBAAiB,CAACpzV,MAAM,CAAE,EAAC,CAAC;AACvC;AACA;AACA,SAAS4+X,yBAAyBA,CAACC,YAAY,EAAE/hI,QAAQ,EAAEt6U,SAAS,EAAEvsL,QAAQ,EAAE2tmB,KAAK,EAAE;EACnF,MAAMif,gBAAgB,GAAGF,0BAA0B,CAAC/e,KAAK,CAAC;EAC1D,MAAMkf,kBAAkB,GAAGD,gBAAgB,EAAEj/rB,IAAI,EAAEtN,IAAI;EACvD,MAAMkmM,KAAK,GAAGvmH,QAAQ,GAAI,SAAQA,QAAS,GAAE,GAAG,EAAE;EAClD,IAAI09Q,GAAG,GAAI,2GAA0Gn3J,KAAM,MAAKskd,WAAW,CAAChkE,QAAQ,CAAE,sBAAqBgkE,WAAW,CAACt+Y,SAAS,CAAE,KAAIsgc,kBAAkB,GAAI,yBAAwBA,kBAAmB,YAAW,GAAG,EAAG,EAAC;EACzR,IAAI+b,YAAY,EAAE;IACdlrX,GAAG,IACE,qGAAoG,GAChG,kDAAiD;EAC9D;EACA,MAAM,IAAIo/U,YAAY,CAAC,CAAC,GAAG,CAAC,yDAAyDp/U,GAAG,CAAC;AAC7F;AACA,SAASmtT,WAAWA,CAAC3vpB,KAAK,EAAE;EACxB,IAAIo0kB,QAAQ,GAAGjikB,MAAM,CAACnS,KAAK,CAAC;EAC5B;EACA,IAAI;IACA,IAAIwG,KAAK,CAACoJ,OAAO,CAAC5P,KAAK,CAAC,IAAIo0kB,QAAQ,KAAK,iBAAiB,EAAE;MACxDA,QAAQ,GAAGxwkB,IAAI,CAACC,SAAS,CAAC7D,KAAK,CAAC;IACpC;EACJ,CAAC,CACD,OAAOuF,KAAK,EAAE,CACd;EACA,OAAO6ukB,QAAQ,CAAC90kB,MAAM,GAAG+ttB,yBAAyB,GAC7Cj5I,QAAQ,CAAC7hkB,SAAS,CAAC,CAAC,EAAE86sB,yBAAyB,CAAC,GAAG,GAAG,GACvDj5I,QAAQ;AAChB;AACA,SAASu5I,gCAAgCA,CAACl7B,KAAK,EAAEm7B,SAAS,EAAEC,eAAe,EAAEn1rB,IAAI,EAAEo1rB,YAAY,EAAE;EAC7F,MAAM,CAAChpoB,QAAQ,EAAE74E,MAAM,EAAE,GAAGk1S,MAAM,CAAC,GAAGzoR,IAAI,CAACnxB,KAAK,CAAC4ltB,uBAAuB,CAAC;EACzE,IAAIxhI,QAAQ,GAAG1/kB,MAAM;IAAEq6L,QAAQ,GAAGr6L,MAAM;EACxC,KAAK,IAAIpN,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGsiT,MAAM,CAAC7hT,MAAM,EAAET,CAAC,EAAE,EAAE;IACpC,MAAMw7sB,OAAO,GAAGuT,SAAS,GAAG/utB,CAAC;IAC7B8slB,QAAQ,IAAK,GAAE8mG,KAAK,CAAC4nB,OAAO,CAAE,GAAEl5Z,MAAM,CAACtiT,CAAC,CAAE,EAAC;IAC3CynM,QAAQ,IAAK,GAAE+zgB,OAAO,KAAKwT,eAAe,GAAGC,YAAY,GAAGr7B,KAAK,CAAC4nB,OAAO,CAAE,GAAEl5Z,MAAM,CAACtiT,CAAC,CAAE,EAAC;EAC5F;EACA,OAAO;IAAEimF,QAAQ;IAAE6mgB,QAAQ;IAAErlZ;EAAS,CAAC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASynhB,gCAAgCA,CAACt7B,KAAK,EAAE2K,YAAY,EAAEzxG,QAAQ,EAAErlZ,QAAQ,EAAE;EAC/E,MAAM03f,KAAK,GAAGvL,KAAK,CAACzC,KAAK,CAAC,CAACvmrB,IAAI;EAC/B,MAAMuzd,QAAQ,GAAGghO,KAAK,CAACZ,YAAY,CAAC;EACpC,IAAI,OAAOpgO,QAAQ,KAAK,QAAQ,EAAE;IAC9B;IACA,IAAIA,QAAQ,CAAC79d,OAAO,CAACgutB,uBAAuB,CAAC,GAAG,CAAC,CAAC,EAAE;MAChD,OAAOQ,gCAAgC,CAACl7B,KAAK,EAAE2K,YAAY,EAAEA,YAAY,EAAEpgO,QAAQ,EAAE12R,QAAQ,CAAC;IAClG;IACA;IACA,OAAO;MAAExhH,QAAQ,EAAEk4Y,QAAQ;MAAE2uH,QAAQ;MAAErlZ;IAAS,CAAC;EACrD;EACA;EACA;EACA;EACA;EACA,IAAI02R,QAAQ,KAAK,IAAI,EAAE;IACnB,IAAInxY,GAAG,GAAGuxmB,YAAY,GAAG,CAAC;IAC1B,OAAO,OAAOY,KAAK,CAACnymB,GAAG,CAAC,KAAK,QAAQ,IAAImymB,KAAK,CAACnymB,GAAG,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE;MAC9DA,GAAG,EAAE;IACT;IACA,MAAMnzD,IAAI,GAAGslqB,KAAK,CAACnymB,GAAG,CAAC;IACvB,IAAI,OAAOnzD,IAAI,KAAK,QAAQ,EAAE;MAC1B,MAAM+jZ,OAAO,GAAG/jZ,IAAI,CAACxG,KAAK,CAAC,IAAIF,MAAM,CAACm7rB,uBAAuB,EAAE,GAAG,CAAC,CAAC;MACpE;MACA;MACA,IAAI1wS,OAAO,IAAKA,OAAO,CAACn9a,MAAM,GAAG,CAAC,GAAI89rB,YAAY,GAAGvxmB,GAAG,EAAE;QACtD,OAAO8hoB,gCAAgC,CAACl7B,KAAK,EAAE5mmB,GAAG,EAAEuxmB,YAAY,EAAE1kqB,IAAI,EAAE4tK,QAAQ,CAAC;MACrF;IACJ;EACJ;EACA,OAAO;IAAExhH,QAAQ,EAAEnmE,SAAS;IAAEgtkB,QAAQ;IAAErlZ;EAAS,CAAC;AACtD;AAEA,MAAM0nhB,qBAAqB,SAASx4B,YAAY,CAAC;EAC7ClwrB,WAAWA,CAAA,EAAG;IACV,KAAK,CAAC,GAAG8C,SAAS,CAAC;IACnB,IAAI,CAACuurB,yBAAyB,GAAG,KAAK;IACtC,IAAI,CAAC6Q,MAAM,GAAG,IAAI;EACtB;EACA,IAAI/U,KAAKA,CAACA,KAAK,EAAE;IACb,CAAC,OAAOjtH,SAAS,KAAK,WAAW,IAAIA,SAAS,KAC1C69G,WAAW,CAAC,IAAI,CAACmkB,MAAM,EAAE,IAAI,EAAE,0CAA0C,CAAC;IAC9E,IAAI,CAACA,MAAM,GAAG/U,KAAK;EACvB;EACA8D,kCAAkCA,CAAA,EAAG;IACjC,CAAC,OAAO/wH,SAAS,KAAK,WAAW,IAAIA,SAAS,KAC1Cq+G,aAAa,CAAC,IAAI,CAAC2jB,MAAM,EAAE,6EAA6E,CAAC;IAC7GykB,aAAa,CAAC,IAAI,CAACzkB,MAAM,CAAC;EAC9B;EACA3Q,4BAA4BA,CAAA,EAAG;IAC3B;EAAA;EAEJ,IAAIo3B,cAAcA,CAAA,EAAG;IACjB,OAAO,IAAI,CAACx3B,YAAY;EAC5B;EACA3d,YAAYA,CAAC70pB,EAAE,EAAEumlB,EAAE,EAAEhngB,GAAG,EAAE;IACtB,MAAM8zlB,YAAY,GAAGhC,iBAAiB,CAAC,IAAI,CAAC;IAC5C,IAAI,CAACK,eAAe,EAAE;IACtB,IAAI;MACA1xqB,EAAE,CAACumlB,EAAE,EAAEhngB,GAAG,CAAC;IACf,CAAC,SACO;MACJ8xlB,iBAAiB,CAACgC,YAAY,CAAC;IACnC;EACJ;EACAh4T,OAAOA,CAAA,EAAG;IACN;IACA;IACA,IAAI,CAACq2T,eAAe,EAAE;EAC1B;AACJ;AACA,IAAIu4B,eAAe,GAAG,IAAI;AAC1B,SAASC,+BAA+BA,CAAA,EAAG;EACvCD,eAAe,KAAK,IAAIF,qBAAqB,CAAC,CAAC;EAC/C,OAAOE,eAAe;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,SAASE,wBAAwBA,CAAC37B,KAAK,EAAE47B,IAAI,EAAE;EAC3C,OAAO57B,KAAK,CAAC47B,IAAI,CAAC,IAAIF,+BAA+B,CAAC,CAAC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASG,iCAAiCA,CAAC77B,KAAK,EAAE47B,IAAI,EAAE;EACpD,MAAM94B,QAAQ,GAAG44B,+BAA+B,CAAC,CAAC;EAClD,IAAI,CAAC54B,QAAQ,CAAC04B,cAAc,EAAE;IAC1B;EACJ;EACAx7B,KAAK,CAAC47B,IAAI,CAAC,GAAGH,eAAe;EAC7B34B,QAAQ,CAAC9C,KAAK,GAAGA,KAAK;EACtBy7B,eAAe,GAAG,IAAIF,qBAAqB,CAAC,CAAC;AACjD;;AAEA;AACA,MAAMO,SAAS,GAAI,OAAO/oJ,SAAS,KAAK,WAAW,IAAIA,SAAS,GAAI;EAAEgpJ,SAAS,EAAE;AAAY,CAAC,GAAG,CAAC,CAAC;;AAEnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASloF,SAASA,CAAChqd,KAAK,EAAE;EACtBkpZ,SAAS,IAAIm+G,iBAAiB,CAACrngB,KAAK,EAAE,CAAC,EAAE,0BAA0B,CAAC;EACpEmyiB,mBAAmB,CAACvyB,QAAQ,CAAC,CAAC,EAAED,QAAQ,CAAC,CAAC,EAAEsD,gBAAgB,CAAC,CAAC,GAAGjjhB,KAAK,EAAE,CAAC,CAACkpZ,SAAS,IAAIu3H,sBAAsB,CAAC,CAAC,CAAC;AACpH;AACA,SAAS0xB,mBAAmBA,CAAC1oC,KAAK,EAAE0M,KAAK,EAAErrqB,KAAK,EAAEsnsB,kBAAkB,EAAE;EAClElpJ,SAAS,IAAIouH,sBAAsB,CAACnB,KAAK,EAAErrqB,KAAK,CAAC;EACjD;EACA;EACA,IAAI,CAACsnsB,kBAAkB,EAAE;IACrB,MAAMC,uBAAuB,GAAG,CAACl8B,KAAK,CAAC9yQ,KAAK,CAAC,GAAG,CAAC,CAAC,yCAAyC,CAAC,CAAC;IAC7F,IAAIgvS,uBAAuB,EAAE;MACzB,MAAMpuB,kBAAkB,GAAGxa,KAAK,CAACwa,kBAAkB;MACnD,IAAIA,kBAAkB,KAAK,IAAI,EAAE;QAC7BW,iBAAiB,CAACzO,KAAK,EAAE8N,kBAAkB,EAAEn5qB,KAAK,CAAC;MACvD;IACJ,CAAC,MACI;MACD,MAAMk5qB,aAAa,GAAGva,KAAK,CAACua,aAAa;MACzC,IAAIA,aAAa,KAAK,IAAI,EAAE;QACxBc,wBAAwB,CAAC3O,KAAK,EAAE6N,aAAa,EAAE,CAAC,CAAC,yCAAyCl5qB,KAAK,CAAC;MACpG;IACJ;EACJ;EACA;EACA;EACA;EACA;EACAo4qB,gBAAgB,CAACp4qB,KAAK,CAAC;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASwnsB,qBAAqBA,CAAC51G,QAAQ,EAAE/0lB,EAAE,EAAE;EACzC,IAAI+0lB,QAAQ,YAAYwsG,UAAU,EAAE;IAChCxsG,QAAQ,CAACgtG,kBAAkB,CAAC,CAAC;EACjC;EACA,MAAM6I,YAAY,GAAGzmC,kBAAkB,CAACpvE,QAAQ,CAAC;EACjD,MAAMusF,4BAA4B,GAAGpgB,uBAAuB,CAACxmqB,SAAS,CAAC;EACvE,IAAI;IACA,OAAOsF,EAAE,CAAC,CAAC;EACf,CAAC,SACO;IACJmkqB,kBAAkB,CAACymC,YAAY,CAAC;IAChC1pC,uBAAuB,CAACogB,4BAA4B,CAAC;EACzD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASupB,wBAAwBA,CAACC,OAAO,EAAE;EACvC;EACA;EACA,IAAI,CAAC7pC,uBAAuB,CAAC,CAAC,IAAI,CAACiD,kBAAkB,CAAC,CAAC,EAAE;IACrD,MAAM,IAAIvG,YAAY,CAAC,CAAC,GAAG,CAAC,kDAAkDp8G,SAAS,IAClFupJ,OAAO,CAAC5ptB,IAAI,GACT,iKAAkK,CAAC;EAC/K;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM6ptB,gBAAgB,GAAG;EACrB,oBAAoB,EAAE7jJ,kBAAkB;EACxC,kBAAkB,EAAEg8B,gBAAgB;EACpC,UAAU,EAAE3S,QAAQ;EACpB,qBAAqB,EAAE+zF,mBAAmB;EAC1C,mBAAmB,EAAEhH;AACzB,CAAC;;AAED;AACA;AACA;AACA;AACA,SAAS0tC,iBAAiBA,CAACx8sB,IAAI,EAAEimB,IAAI,EAAE;EACnC,IAAIospB,eAAe,GAAG,IAAI;EAC1B,IAAIoqC,YAAY,GAAG,IAAI;EACvB;EACA,IAAI,CAACz8sB,IAAI,CAACxT,cAAc,CAACslrB,WAAW,CAAC,EAAE;IACnCxlrB,MAAM,CAACgB,cAAc,CAAC0S,IAAI,EAAE8xqB,WAAW,EAAE;MACrCnkrB,GAAG,EAAEA,CAAA,KAAM;QACP,IAAI0krB,eAAe,KAAK,IAAI,EAAE;UAC1B,MAAMqqC,QAAQ,GAAGjlB,iBAAiB,CAAC;YAAEG,KAAK,EAAE,CAAC,CAAC;YAAkC9hT,IAAI,EAAE,YAAY;YAAE91Y;UAAK,CAAC,CAAC;UAC3GqyqB,eAAe,GAAGqqC,QAAQ,CAACF,iBAAiB,CAACD,gBAAgB,EAAG,SAAQv8sB,IAAI,CAACtN,IAAK,WAAU,EAAEiqtB,qBAAqB,CAAC38sB,IAAI,EAAEimB,IAAI,CAAC,CAAC;QACpI;QACA,OAAOospB,eAAe;MAC1B;IACJ,CAAC,CAAC;EACN;EACA;EACA,IAAI,CAACryqB,IAAI,CAACxT,cAAc,CAACsqrB,cAAc,CAAC,EAAE;IACtCxqrB,MAAM,CAACgB,cAAc,CAAC0S,IAAI,EAAE82qB,cAAc,EAAE;MACxCnprB,GAAG,EAAEA,CAAA,KAAM;QACP,IAAI8utB,YAAY,KAAK,IAAI,EAAE;UACvB,MAAMC,QAAQ,GAAGjlB,iBAAiB,CAAC;YAAEG,KAAK,EAAE,CAAC,CAAC;YAAkC9hT,IAAI,EAAE,YAAY;YAAE91Y;UAAK,CAAC,CAAC;UAC3Gy8sB,YAAY,GAAGC,QAAQ,CAACE,cAAc,CAACL,gBAAgB,EAAG,SAAQv8sB,IAAI,CAACtN,IAAK,UAAS,EAAE;YACnFA,IAAI,EAAEsN,IAAI,CAACtN,IAAI;YACfsN,IAAI;YACJ68sB,iBAAiB,EAAE,CAAC;YACpB/2Y,IAAI,EAAEs1X,mBAAmB,CAACp7rB,IAAI,CAAC;YAC/BmK,MAAM,EAAEuysB,QAAQ,CAACnlB,aAAa,CAAC3kI;UACnC,CAAC,CAAC;QACN;QACA,OAAO6pJ,YAAY;MACvB,CAAC;MACD;MACAlysB,YAAY,EAAE;IAClB,CAAC,CAAC;EACN;AACJ;AACA,MAAMuysB,SAAS,GAAGxuC,sBAAsB,CAAC;EAAE94E,OAAO,EAAE91lB,MAAM;EAAEk3lB,QAAQ,EAAE03E;AAAuB,CAAC,CAAC;AAC/F,SAASyuC,kBAAkBA,CAAC92rB,IAAI,EAAE;EAC9B,OAAOA,IAAI,CAACiwmB,QAAQ,KAAKhqnB,SAAS;AACtC;AACA,SAAS8wsB,kBAAkBA,CAAC/2rB,IAAI,EAAE;EAC9B,OAAO62rB,SAAS,IAAI72rB,IAAI;AAC5B;AACA,SAASg3rB,oBAAoBA,CAACh3rB,IAAI,EAAE;EAChC,OAAOA,IAAI,CAACm+kB,UAAU,KAAKl4lB,SAAS;AACxC;AACA,SAASgxsB,qBAAqBA,CAACj3rB,IAAI,EAAE;EACjC,OAAOA,IAAI,CAACwvkB,WAAW,KAAKvplB,SAAS;AACzC;AACA,SAASywsB,qBAAqBA,CAAC38sB,IAAI,EAAEm9sB,OAAO,EAAE;EAC1C;EACA,MAAMl3rB,IAAI,GAAGk3rB,OAAO,IAAI;IAAEl7H,UAAU,EAAE;EAAK,CAAC;EAC5C,MAAMm7H,YAAY,GAAG;IACjB1qtB,IAAI,EAAEsN,IAAI,CAACtN,IAAI;IACfsN,IAAI,EAAEA,IAAI;IACV68sB,iBAAiB,EAAE,CAAC;IACpB56H,UAAU,EAAEh8jB,IAAI,CAACg8jB;EACrB,CAAC;EACD,IAAI,CAAC86H,kBAAkB,CAAC92rB,IAAI,CAAC,IAAIg3rB,oBAAoB,CAACh3rB,IAAI,CAAC,KAAKA,IAAI,CAAC6/S,IAAI,KAAK55T,SAAS,EAAE;IACrFkxsB,YAAY,CAACt3Y,IAAI,GAAGu1X,mBAAmB,CAACp1qB,IAAI,CAAC6/S,IAAI,CAAC;EACtD;EACA;EACA,IAAIi3Y,kBAAkB,CAAC92rB,IAAI,CAAC,EAAE;IAC1Bm3rB,YAAY,CAAClnF,QAAQ,GAAGjwmB,IAAI,CAACiwmB,QAAQ;EACzC,CAAC,MACI,IAAI8mF,kBAAkB,CAAC/2rB,IAAI,CAAC,EAAE;IAC/Bm3rB,YAAY,CAACxmH,QAAQ,GAAG3wkB,IAAI,CAAC2wkB,QAAQ;EACzC,CAAC,MACI,IAAIqmH,oBAAoB,CAACh3rB,IAAI,CAAC,EAAE;IACjCm3rB,YAAY,CAACh5G,UAAU,GAAGn+kB,IAAI,CAACm+kB,UAAU;EAC7C,CAAC,MACI,IAAI84G,qBAAqB,CAACj3rB,IAAI,CAAC,EAAE;IAClCm3rB,YAAY,CAAC3nH,WAAW,GAAGxvkB,IAAI,CAACwvkB,WAAW;EAC/C;EACA,OAAO2nH,YAAY;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMxqJ,UAAU,GAAGgjI,aAAa,CAAC,YAAY,EAAE1prB,SAAS,EAAEA,SAAS,EAAEA,SAAS,EAAE,CAAClM,IAAI,EAAEimB,IAAI,KAAKu2rB,iBAAiB,CAACx8sB,IAAI,EAAEimB,IAAI,CAAC,CAAC;;AAE9H;AACA;AACA;AACA;AACA;AACA,SAASo3rB,cAAcA,CAAC1L,OAAO,EAAE5joB,MAAM,GAAG,IAAI,EAAEuvoB,mBAAmB,GAAG,IAAI,EAAE5qtB,IAAI,EAAE;EAC9E,MAAM6zmB,QAAQ,GAAGg3G,sCAAsC,CAAC5L,OAAO,EAAE5joB,MAAM,EAAEuvoB,mBAAmB,EAAE5qtB,IAAI,CAAC;EACnG6zmB,QAAQ,CAAC0tG,2BAA2B,CAAC,CAAC;EACtC,OAAO1tG,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,SAASg3G,sCAAsCA,CAAC5L,OAAO,EAAE5joB,MAAM,GAAG,IAAI,EAAEuvoB,mBAAmB,GAAG,IAAI,EAAE5qtB,IAAI,EAAEsgtB,MAAM,GAAG,IAAI/itB,GAAG,CAAC,CAAC,EAAE;EAC1H,MAAMylmB,SAAS,GAAG,CACd4nH,mBAAmB,IAAIr2D,WAAW,EAClC6pD,mBAAmB,CAACa,OAAO,CAAC,CAC/B;EACDj/sB,IAAI,GAAGA,IAAI,KAAK,OAAOi/sB,OAAO,KAAK,QAAQ,GAAGzlsB,SAAS,GAAG9a,SAAS,CAACugtB,OAAO,CAAC,CAAC;EAC7E,OAAO,IAAIoB,UAAU,CAACr9G,SAAS,EAAE3nhB,MAAM,IAAI+koB,eAAe,CAAC,CAAC,EAAEpgtB,IAAI,IAAI,IAAI,EAAEsgtB,MAAM,CAAC;AACvF;;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,MAAMh0G,QAAQ,CAAC;EACX;IAAS,IAAI,CAACk2E,kBAAkB,GAAGA,kBAAkB;EAAE;EACvD;IAAS,IAAI,CAACrhU,IAAI,GAAK,eAAe,IAAIg9V,YAAY,CAAC,CAAE;EAAE;EAC3D,OAAO30sB,MAAMA,CAAC6F,OAAO,EAAEgsE,MAAM,EAAE;IAC3B,IAAIh6E,KAAK,CAACoJ,OAAO,CAAC4E,OAAO,CAAC,EAAE;MACxB,OAAOs7sB,cAAc,CAAC;QAAE3qtB,IAAI,EAAE;MAAG,CAAC,EAAEq7E,MAAM,EAAEhsE,OAAO,EAAE,EAAE,CAAC;IAC5D,CAAC,MACI;MACD,MAAMrP,IAAI,GAAGqP,OAAO,CAACrP,IAAI,IAAI,EAAE;MAC/B,OAAO2qtB,cAAc,CAAC;QAAE3qtB;MAAK,CAAC,EAAEqP,OAAO,CAACgsE,MAAM,EAAEhsE,OAAO,CAAC2zlB,SAAS,EAAEhjmB,IAAI,CAAC;IAC5E;EACJ;EACA;EACA;IAAS,IAAI,CAAC+lkB,KAAK,GAAGC,kBAAkB,CAAC;MACrCrhN,KAAK,EAAE2nP,QAAQ;MACf/c,UAAU,EAAE,KAAK;MACjBl5O,OAAO,EAAEA,CAAA,KAAMg5O,QAAQ,CAAC4uH,QAAQ;IACpC,CAAC,CAAC;EAAE;EACJ;AACJ;AACA;AACA;EACI;IAAS,IAAI,CAAC35B,iBAAiB,GAAG,CAAC,CAAC,CAAC;EAAgC;AACzE;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAStsF,iBAAiBA,CAACrzO,KAAK,EAAEK,KAAK,GAAG66T,WAAW,CAACxvE,OAAO,EAAE;EAC3D,MAAMi9E,KAAK,GAAGwJ,QAAQ,CAAC,CAAC;EACxB;EACA;EACA,IAAIxJ,KAAK,KAAK,IAAI,EAAE;IAChB;IACAjtH,SAAS,IAAI8/G,kCAAkC,CAACnoF,iBAAiB,CAAC;IAClE,OAAO3I,QAAQ,CAAC1qO,KAAK,EAAEK,KAAK,CAAC;EACjC;EACA,MAAM27T,KAAK,GAAGyW,eAAe,CAAC,CAAC;EAC/B,OAAOiJ,qBAAqB,CAAC1f,KAAK,EAAE2M,KAAK,EAAElR,iBAAiB,CAACz3T,KAAK,CAAC,EAAEK,KAAK,CAAC;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS8lW,gBAAgBA,CAAA,EAAG;EACxB,MAAMztX,GAAG,GAAGgjO,SAAS,GAAI,gEAA+D,GAAG,SAAS;EACpG,MAAM,IAAIngkB,KAAK,CAACm9V,GAAG,CAAC;AACxB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS0tX,yBAAyBA,CAACnqC,KAAK,EAAE0M,KAAK,EAAE;EAC7C,MAAM09B,kBAAkB,GAAGpqC,KAAK,CAACoqC,kBAAkB;EACnD,IAAIA,kBAAkB,KAAK,IAAI,EAC3B;EACJ,MAAM56B,QAAQ,GAAG64B,wBAAwB,CAAC37B,KAAK,EAAEpB,8BAA8B,CAAC;EAChF,IAAI;IACA,KAAK,IAAIxyrB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGsxtB,kBAAkB,CAAC7wtB,MAAM,EAAET,CAAC,EAAE,EAAE;MAChD,MAAMuxtB,MAAM,GAAGD,kBAAkB,CAACtxtB,CAAC,CAAC;MACpC,IAAIuxtB,MAAM,GAAG,CAAC,EAAE;QACZ;QACA5wB,gBAAgB,CAAC,CAAC4wB,MAAM,CAAC;MAC7B,CAAC,MACI;QACD;QACA,MAAMC,YAAY,GAAGD,MAAM;QAC3B,MAAME,eAAe,GAAGH,kBAAkB,CAAC,EAAEtxtB,CAAC,CAAC;QAC/C,MAAM0xtB,aAAa,GAAGJ,kBAAkB,CAAC,EAAEtxtB,CAAC,CAAC;QAC7C8+rB,6BAA6B,CAAC2yB,eAAe,EAAED,YAAY,CAAC;QAC5D,MAAM5inB,OAAO,GAAGgllB,KAAK,CAAC49B,YAAY,CAAC;QACnC96B,QAAQ,CAACzc,YAAY,CAACy3C,aAAa,EAAE,CAAC,CAAC,0BAA0B9inB,OAAO,CAAC;MAC7E;IACJ;EACJ,CAAC,SACO;IACJ,IAAIgllB,KAAK,CAACpB,8BAA8B,CAAC,KAAK,IAAI,EAAE;MAChDi9B,iCAAiC,CAAC77B,KAAK,EAAEpB,8BAA8B,CAAC;IAC5E;IACAmO,gBAAgB,CAAC,CAAC,CAAC,CAAC;EACxB;AACJ;AACA,SAASgxB,WAAWA,CAACjyB,WAAW,EAAExY,KAAK,EAAEt4kB,OAAO,EAAE08Q,KAAK,EAAEt/E,IAAI,EAAE4lb,SAAS,EAAEC,WAAW,EAAE5jb,QAAQ,EAAEksU,QAAQ,EAAE+uF,oBAAoB,EAAEsiB,aAAa,EAAE;EAC5I,MAAM53B,KAAK,GAAG1M,KAAK,CAACwe,SAAS,CAAC1/rB,KAAK,CAAC,CAAC;EACrC4trB,KAAK,CAAC1C,IAAI,CAAC,GAAGllZ,IAAI;EAClB4nZ,KAAK,CAAC9yQ,KAAK,CAAC,GAAGx1D,KAAK,GAAG,CAAC,CAAC,gCAAgC,GAAG,CAAC,4BAA4B,CAAC,CAAC;EAC3F,IAAI49U,oBAAoB,KAAK,IAAI,IAC5BxJ,WAAW,IAAKA,WAAW,CAAC5+Q,KAAK,CAAC,GAAG,IAAI,CAAC,wCAA0C,EAAE;IACvF8yQ,KAAK,CAAC9yQ,KAAK,CAAC,IAAI,IAAI,CAAC;EACzB;;EACA26Q,sBAAsB,CAAC7H,KAAK,CAAC;EAC7BjtH,SAAS,IAAIugH,KAAK,CAACqY,SAAS,IAAIG,WAAW,IAAI/L,mBAAmB,CAACzM,KAAK,CAACqY,SAAS,EAAEG,WAAW,CAAC;EAChG9L,KAAK,CAACxC,MAAM,CAAC,GAAGwC,KAAK,CAAC7B,gBAAgB,CAAC,GAAG2N,WAAW;EACrD9L,KAAK,CAACnC,OAAO,CAAC,GAAG7ilB,OAAO;EACxBgllB,KAAK,CAACjC,WAAW,CAAC,GAAIkgC,WAAW,IAAInyB,WAAW,IAAIA,WAAW,CAAC/N,WAAW,CAAE;EAC7EhrH,SAAS,IAAIq+G,aAAa,CAAC4O,KAAK,CAACjC,WAAW,CAAC,EAAE,8BAA8B,CAAC;EAC9EiC,KAAK,CAAChC,QAAQ,CAAC,GAAI3jZ,QAAQ,IAAIyxZ,WAAW,IAAIA,WAAW,CAAC9N,QAAQ,CAAE;EACpEjrH,SAAS,IAAIq+G,aAAa,CAAC4O,KAAK,CAAChC,QAAQ,CAAC,EAAE,sBAAsB,CAAC;EACnEgC,KAAK,CAAClC,UAAU,CAAC,GAAGv3E,QAAQ,IAAIulF,WAAW,IAAIA,WAAW,CAAChO,UAAU,CAAC,IAAI,IAAI;EAC9EkC,KAAK,CAACrC,MAAM,CAAC,GAAGqgC,SAAS;EACzBh+B,KAAK,CAACjxU,EAAE,CAAC,GAAGgxV,gBAAgB,CAAC,CAAC;EAC9B/f,KAAK,CAACtB,SAAS,CAAC,GAAGk5B,aAAa;EAChC53B,KAAK,CAACxB,sBAAsB,CAAC,GAAG8W,oBAAoB;EACpDviI,SAAS,IACL69G,WAAW,CAAC0C,KAAK,CAACtzqB,IAAI,IAAI,CAAC,CAAC,2BAA2B8rrB,WAAW,KAAK,IAAI,GAAG,IAAI,EAAE,IAAI,EAAE,sCAAsC,CAAC;EACrI9L,KAAK,CAAC5B,0BAA0B,CAAC,GAC7B9K,KAAK,CAACtzqB,IAAI,IAAI,CAAC,CAAC,2BAA2B8rrB,WAAW,CAAC1N,0BAA0B,CAAC,GAAG4B,KAAK;EAC9F,OAAOA,KAAK;AAChB;AACA,SAASk+B,gBAAgBA,CAAC5qC,KAAK,EAAE3+pB,KAAK,EAAE3U,IAAI,EAAEtN,IAAI,EAAEwd,KAAK,EAAE;EACvD6ijB,SAAS,IAAIp+iB,KAAK,KAAK,CAAC;EAAI;EACxB;EACA87pB,wBAAwB,CAAC97pB,KAAK,EAAEkqqB,aAAa,EAAE,uCAAuC,CAAC;EAC3F;EACA9rH,SAAS,IAAIw9H,mBAAmB,CAACvwrB,IAAI,CAAC;EACtC,IAAIqzqB,KAAK,GAAGC,KAAK,CAACt8qB,IAAI,CAAC2d,KAAK,CAAC;EAC7B,IAAI0+pB,KAAK,KAAK,IAAI,EAAE;IAChBA,KAAK,GAAG8qC,kBAAkB,CAAC7qC,KAAK,EAAE3+pB,KAAK,EAAE3U,IAAI,EAAEtN,IAAI,EAAEwd,KAAK,CAAC;IAC3D,IAAI66qB,aAAa,CAAC,CAAC,EAAE;MACjB;MACA;MACA;MACA;MACA1X,KAAK,CAAC37T,KAAK,IAAI,EAAE,CAAC;IACtB;EACJ,CAAC,MACI,IAAI27T,KAAK,CAACrzqB,IAAI,GAAG,EAAE,CAAC,6BAA6B;IAClDqzqB,KAAK,CAACrzqB,IAAI,GAAGA,IAAI;IACjBqzqB,KAAK,CAAC9lrB,KAAK,GAAGmF,IAAI;IAClB2grB,KAAK,CAACnjqB,KAAK,GAAGA,KAAK;IACnB,MAAM69D,MAAM,GAAGk8mB,qBAAqB,CAAC,CAAC;IACtC5W,KAAK,CAACwO,aAAa,GAAG9zmB,MAAM,KAAK,IAAI,GAAG,CAAC,CAAC,GAAGA,MAAM,CAAC8zmB,aAAa;IACjE9uH,SAAS,IAAIktH,mBAAmB,CAAC5M,KAAK,EAAEC,KAAK,CAAC;IAC9CvgH,SAAS,IAAI69G,WAAW,CAACj8pB,KAAK,EAAE0+pB,KAAK,CAAC1+pB,KAAK,EAAE,sBAAsB,CAAC;EACxE;EACAu1qB,eAAe,CAAC7W,KAAK,EAAE,IAAI,CAAC;EAC5B,OAAOA,KAAK;AAChB;AACA,SAAS8qC,kBAAkBA,CAAC7qC,KAAK,EAAE3+pB,KAAK,EAAE3U,IAAI,EAAEtN,IAAI,EAAEwd,KAAK,EAAE;EACzD,MAAM65qB,YAAY,GAAGC,4BAA4B,CAAC,CAAC;EACnD,MAAMx2gB,QAAQ,GAAG22gB,oBAAoB,CAAC,CAAC;EACvC,MAAMp8mB,MAAM,GAAGylG,QAAQ,GAAGu2gB,YAAY,GAAGA,YAAY,IAAIA,YAAY,CAACh8mB,MAAM;EAC5E;EACA,MAAMslmB,KAAK,GAAGC,KAAK,CAACt8qB,IAAI,CAAC2d,KAAK,CAAC,GAC3BypsB,WAAW,CAAC9qC,KAAK,EAAEvlmB,MAAM,EAAE/tE,IAAI,EAAE2U,KAAK,EAAEjiB,IAAI,EAAEwd,KAAK,CAAC;EACxD;EACA;EACA;EACA,IAAIojqB,KAAK,CAACptpB,UAAU,KAAK,IAAI,EAAE;IAC3BotpB,KAAK,CAACptpB,UAAU,GAAGmtpB,KAAK;EAC5B;EACA,IAAI0W,YAAY,KAAK,IAAI,EAAE;IACvB,IAAIv2gB,QAAQ,EAAE;MACV;MACA,IAAIu2gB,YAAY,CAACv0qB,KAAK,IAAI,IAAI,IAAI69pB,KAAK,CAACtlmB,MAAM,KAAK,IAAI,EAAE;QACrD;QACAg8mB,YAAY,CAACv0qB,KAAK,GAAG69pB,KAAK;MAC9B;IACJ,CAAC,MACI;MACD,IAAI0W,YAAY,CAACn7rB,IAAI,KAAK,IAAI,EAAE;QAC5B;QACA;QACAm7rB,YAAY,CAACn7rB,IAAI,GAAGykrB,KAAK;QACzBA,KAAK,CAACxof,IAAI,GAAGk/f,YAAY;MAC7B;IACJ;EACJ;EACA,OAAO1W,KAAK;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASgrC,YAAYA,CAAC/qC,KAAK,EAAE0M,KAAK,EAAEs+B,eAAe,EAAEnisB,YAAY,EAAE;EAC/D,IAAImisB,eAAe,KAAK,CAAC,EACrB,OAAO,CAAC,CAAC;EACb,IAAIvrJ,SAAS,EAAE;IACX+tH,qBAAqB,CAACxN,KAAK,CAAC;IAC5BvC,UAAU,CAACuC,KAAK,EAAE0M,KAAK,CAACzC,KAAK,CAAC,EAAE,0CAA0C,CAAC;IAC3E3M,WAAW,CAAC0C,KAAK,CAACt8qB,IAAI,CAACnK,MAAM,EAAEmzrB,KAAK,CAACnzrB,MAAM,EAAE,0CAA0C,CAAC;IACxF+jrB,WAAW,CAAC0C,KAAK,CAACt8qB,IAAI,CAACnK,MAAM,EAAEymrB,KAAK,CAACwe,SAAS,CAACjlsB,MAAM,EAAE,8CAA8C,CAAC;IACtGm0rB,qBAAqB,CAAC1N,KAAK,CAAC;EAChC;EACA,MAAMirC,QAAQ,GAAGv+B,KAAK,CAACnzrB,MAAM;EAC7B,KAAK,IAAIT,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGkytB,eAAe,EAAElytB,CAAC,EAAE,EAAE;IACtC4zrB,KAAK,CAACrwrB,IAAI,CAACwsB,YAAY,CAAC;IACxBm3pB,KAAK,CAACwe,SAAS,CAACnisB,IAAI,CAACwsB,YAAY,CAAC;IAClCm3pB,KAAK,CAACt8qB,IAAI,CAACrH,IAAI,CAAC,IAAI,CAAC;EACzB;EACA,OAAO4utB,QAAQ;AACnB;AACA,SAASC,eAAeA,CAAClrC,KAAK,EAAE0M,KAAK,EAAEy+B,UAAU,EAAE1mH,EAAE,EAAE/8f,OAAO,EAAE;EAC5D,MAAM8nlB,QAAQ,GAAG64B,wBAAwB,CAAC37B,KAAK,EAAErB,0BAA0B,CAAC;EAC5E,MAAM+/B,iBAAiB,GAAG5xB,gBAAgB,CAAC,CAAC;EAC5C,MAAM6xB,aAAa,GAAG5mH,EAAE,GAAG,CAAC,CAAC;EAC7B,IAAI;IACAg1F,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACpB,IAAI4xB,aAAa,IAAI3+B,KAAK,CAACnzrB,MAAM,GAAGgyrB,aAAa,EAAE;MAC/C;MACA;MACAm9B,mBAAmB,CAAC1oC,KAAK,EAAE0M,KAAK,EAAEnB,aAAa,EAAE,CAAC,CAAC9rH,SAAS,IAAIu3H,sBAAsB,CAAC,CAAC,CAAC;IAC7F;IACA,MAAMs0B,WAAW,GAAGD,aAAa,GAAG,CAAC,CAAC,0CAA0C,CAAC,CAAC;IAClF93B,QAAQ,CAAC+3B,WAAW,EAAE5jnB,OAAO,CAAC;IAC9B,IAAI2jnB,aAAa,EAAE;MACf77B,QAAQ,CAACzc,YAAY,CAACo4C,UAAU,EAAE1mH,EAAE,EAAE/8f,OAAO,CAAC;IAClD,CAAC,MACI;MACD,MAAM6plB,YAAY,GAAGhC,iBAAiB,CAAC,IAAI,CAAC;MAC5C,IAAI;QACA47B,UAAU,CAAC1mH,EAAE,EAAE/8f,OAAO,CAAC;MAC3B,CAAC,SACO;QACJ6nlB,iBAAiB,CAACgC,YAAY,CAAC;MACnC;IACJ;EACJ,CAAC,SACO;IACJ,IAAI85B,aAAa,IAAI3+B,KAAK,CAACrB,0BAA0B,CAAC,KAAK,IAAI,EAAE;MAC7Dk9B,iCAAiC,CAAC77B,KAAK,EAAErB,0BAA0B,CAAC;IACxE;IACAoO,gBAAgB,CAAC2xB,iBAAiB,CAAC;IACnC,MAAMG,YAAY,GAAGF,aAAa,GAAG,CAAC,CAAC,wCAAwC,CAAC,CAAC;IACjF93B,QAAQ,CAACg4B,YAAY,EAAE7jnB,OAAO,CAAC;EACnC;AACJ;AACA;AACA;AACA;AACA,SAAS8jnB,qBAAqBA,CAACxrC,KAAK,EAAED,KAAK,EAAE2M,KAAK,EAAE;EAChD,IAAIR,kBAAkB,CAACnM,KAAK,CAAC,EAAE;IAC3B,MAAMwR,YAAY,GAAGhC,iBAAiB,CAAC,IAAI,CAAC;IAC5C,IAAI;MACA,MAAMhzmB,KAAK,GAAGwjmB,KAAK,CAAC2a,cAAc;MAClC,MAAMpyqB,GAAG,GAAGy3pB,KAAK,CAAC4a,YAAY;MAC9B,KAAK,IAAIP,cAAc,GAAG79mB,KAAK,EAAE69mB,cAAc,GAAG9xqB,GAAG,EAAE8xqB,cAAc,EAAE,EAAE;QACrE,MAAM37P,GAAG,GAAGuhP,KAAK,CAACt8qB,IAAI,CAAC02rB,cAAc,CAAC;QACtC,IAAI37P,GAAG,CAAC+mM,cAAc,EAAE;UACpB/mM,GAAG,CAAC+mM,cAAc,CAAC,CAAC,CAAC,0BAA0BknD,KAAK,CAAC0N,cAAc,CAAC,EAAEA,cAAc,CAAC;QACzF;MACJ;IACJ,CAAC,SACO;MACJ7K,iBAAiB,CAACgC,YAAY,CAAC;IACnC;EACJ;AACJ;AACA;AACA;AACA;AACA,SAASk6B,yBAAyBA,CAACzrC,KAAK,EAAE0M,KAAK,EAAE3M,KAAK,EAAE;EACpD,IAAI,CAAC4V,kBAAkB,CAAC,CAAC,EACrB;EACJ+1B,wBAAwB,CAAC1rC,KAAK,EAAE0M,KAAK,EAAE3M,KAAK,EAAE+T,gBAAgB,CAAC/T,KAAK,EAAE2M,KAAK,CAAC,CAAC;EAC7E,IAAI,CAAC3M,KAAK,CAAC37T,KAAK,GAAG,EAAE,CAAC,sCAAsC,EAAE,CAAC,kCAAkC;IAC7FunW,4BAA4B,CAAC3rC,KAAK,EAAE0M,KAAK,EAAE3M,KAAK,CAAC;EACrD;AACJ;AACA;AACA;AACA;AACA;AACA,SAAS6rC,wBAAwBA,CAACj8c,QAAQ,EAAEowa,KAAK,EAAE8rC,iBAAiB,GAAG/3B,gBAAgB,EAAE;EACrF,MAAM4a,UAAU,GAAG3uB,KAAK,CAAC2uB,UAAU;EACnC,IAAIA,UAAU,KAAK,IAAI,EAAE;IACrB,IAAIC,UAAU,GAAG5uB,KAAK,CAAC1+pB,KAAK,GAAG,CAAC;IAChC,KAAK,IAAIvoB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG41sB,UAAU,CAACn1sB,MAAM,EAAET,CAAC,IAAI,CAAC,EAAE;MAC3C,MAAMuoB,KAAK,GAAGqtrB,UAAU,CAAC51sB,CAAC,GAAG,CAAC,CAAC;MAC/B,MAAMmB,KAAK,GAAGonB,KAAK,KAAK,CAAC,CAAC,GACtBwqsB,iBAAiB,CAAC9rC,KAAK,EAAEpwa,QAAQ,CAAC,GAClCA,QAAQ,CAACtuP,KAAK,CAAC;MACnBsuP,QAAQ,CAACg/b,UAAU,EAAE,CAAC,GAAG10sB,KAAK;IAClC;EACJ;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS6xtB,yBAAyBA,CAACrtR,GAAG,EAAE;EACpC,MAAMuhP,KAAK,GAAGvhP,GAAG,CAACuhP,KAAK;EACvB;EACA;EACA,IAAIA,KAAK,KAAK,IAAI,IAAIA,KAAK,CAAC+rC,mBAAmB,EAAE;IAC7C;IACA;IACA,MAAM1zB,SAAS,GAAG,IAAI;IACtB,OAAO55P,GAAG,CAACuhP,KAAK,GAAGgsC,WAAW,CAAC,CAAC,CAAC,2BAA2B3zB,SAAS,EAAE55P,GAAG,CAAC9xF,QAAQ,EAAE8xF,GAAG,CAACywK,KAAK,EAAEzwK,GAAG,CAAC0wK,IAAI,EAAE1wK,GAAG,CAAC6oP,aAAa,EAAE7oP,GAAG,CAAC8oP,QAAQ,EAAE9oP,GAAG,CAACiwK,SAAS,EAAEjwK,GAAG,CAACipP,OAAO,EAAEjpP,GAAG,CAACtJ,MAAM,EAAEsJ,GAAG,CAAC7hc,EAAE,CAAC;EAC9L;EACA,OAAOojrB,KAAK;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASgsC,WAAWA,CAACt/sB,IAAI,EAAE2rrB,SAAS,EAAE8yB,UAAU,EAAEj8G,KAAK,EAAEC,IAAI,EAAE44E,UAAU,EAAEC,KAAK,EAAEt5E,SAAS,EAAEg5E,OAAO,EAAEukC,eAAe,EAAEC,KAAK,EAAE;EAC1HzsJ,SAAS,IAAIA,SAAS,CAACugH,KAAK,EAAE;EAC9B,MAAM+N,iBAAiB,GAAGxC,aAAa,GAAGr8E,KAAK;EAC/C;EACA;EACA;EACA,MAAMi9G,iBAAiB,GAAGp+B,iBAAiB,GAAG5+E,IAAI;EAClD,MAAMqvF,SAAS,GAAG4tB,mBAAmB,CAACr+B,iBAAiB,EAAEo+B,iBAAiB,CAAC;EAC3E,MAAMh3R,MAAM,GAAG,OAAO82R,eAAe,KAAK,UAAU,GAAGA,eAAe,CAAC,CAAC,GAAGA,eAAe;EAC1F,MAAMjsC,KAAK,GAAGwe,SAAS,CAACvU,KAAK,CAAC,GAAG;IAC7Bv9qB,IAAI,EAAEA,IAAI;IACV8xrB,SAAS,EAAEA,SAAS;IACpB7xV,QAAQ,EAAEw+W,UAAU;IACpBtxG,OAAO,EAAE,IAAI;IACbnL,SAAS,EAAEA,SAAS;IACpB2pF,SAAS,EAAEA,SAAS;IACpB30rB,IAAI,EAAE86rB,SAAS,CAAC1/rB,KAAK,CAAC,CAAC,CAACgmB,IAAI,CAAC,IAAI,EAAEipqB,iBAAiB,CAAC;IACrDA,iBAAiB,EAAEA,iBAAiB;IACpCE,iBAAiB,EAAEk+B,iBAAiB;IACpC/B,kBAAkB,EAAE,IAAI;IACxBtqC,eAAe,EAAE,IAAI;IACrB6N,eAAe,EAAE,IAAI;IACrB0+B,iBAAiB,EAAE,KAAK;IACxBC,oBAAoB,EAAE,KAAK;IAC3B/xB,aAAa,EAAE,IAAI;IACnBC,kBAAkB,EAAE,IAAI;IACxBM,YAAY,EAAE,IAAI;IAClBC,iBAAiB,EAAE,IAAI;IACvBC,SAAS,EAAE,IAAI;IACfC,cAAc,EAAE,IAAI;IACpBC,YAAY,EAAE,IAAI;IAClBxmB,OAAO,EAAE,IAAI;IACblvC,cAAc,EAAE,IAAI;IACpBluT,UAAU,EAAE,IAAI;IAChBi1Y,iBAAiB,EAAE,OAAOxkC,UAAU,KAAK,UAAU,GAAGA,UAAU,CAAC,CAAC,GAAGA,UAAU;IAC/EykC,YAAY,EAAE,OAAOxkC,KAAK,KAAK,UAAU,GAAGA,KAAK,CAAC,CAAC,GAAGA,KAAK;IAC3Dp1pB,UAAU,EAAE,IAAI;IAChB80pB,OAAO,EAAEA,OAAO;IAChBvyP,MAAM,EAAEA,MAAM;IACd42R,mBAAmB,EAAE,KAAK;IAC1BG;EACJ,CAAC;EACD,IAAIzsJ,SAAS,EAAE;IACX;IACA;IACA;IACAzmkB,MAAM,CAACyztB,IAAI,CAACzsC,KAAK,CAAC;EACtB;EACA,OAAOA,KAAK;AAChB;AACA,SAASosC,mBAAmBA,CAACr+B,iBAAiB,EAAEo+B,iBAAiB,EAAE;EAC/D,MAAM3tB,SAAS,GAAG,EAAE;EACpB,KAAK,IAAI1lsB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGqztB,iBAAiB,EAAErztB,CAAC,EAAE,EAAE;IACxC0lsB,SAAS,CAACnisB,IAAI,CAACvD,CAAC,GAAGi1rB,iBAAiB,GAAG,IAAI,GAAGy6B,SAAS,CAAC;EAC5D;EACA,OAAOhqB,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASkuB,iBAAiBA,CAAC3lb,QAAQ,EAAE4lb,iBAAiB,EAAEr9G,aAAa,EAAE2D,QAAQ,EAAE;EAC7E;EACA;EACA;EACA;EACA;EACA;EACA,MAAM25G,mBAAmB,GAAG35G,QAAQ,CAAC54mB,GAAG,CAACwstB,qBAAqB,EAAED,6BAA6B,CAAC;EAC9F;EACA;EACA,MAAMiG,eAAe,GAAGD,mBAAmB,IAAIt9G,aAAa,KAAK6zE,mBAAmB,CAAC2pC,SAAS;EAC9F,MAAMz9I,WAAW,GAAGtoS,QAAQ,CAACgmb,iBAAiB,CAACJ,iBAAiB,EAAEE,eAAe,CAAC;EAClFG,yBAAyB,CAAC39I,WAAW,CAAC;EACtC,OAAOA,WAAW;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS29I,yBAAyBA,CAAC39I,WAAW,EAAE;EAC5C49I,8BAA8B,CAAC59I,WAAW,CAAC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI49I,8BAA8B,GAAI59I,WAAW,IAAK,IAAI;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS69I,6BAA6BA,CAAC79I,WAAW,EAAE;EAChD,IAAIA,WAAW,CAACp8L,YAAY,CAAC44T,wBAAwB,CAAC,EAAE;IACpD;IACA;IACA;IACA8I,oBAAoB,CAACtlI,WAAW,CAAC;EACrC,CAAC,MACI;IACDo0I,qCAAqC,CAACp0I,WAAW,CAAC;EACtD;AACJ;AACA;AACA;AACA;AACA,SAAS89I,mCAAmCA,CAAA,EAAG;EAC3CF,8BAA8B,GAAGC,6BAA6B;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASE,uBAAuBA,CAACptC,KAAK,EAAE0M,KAAK,EAAEhllB,OAAO,EAAE8qlB,SAAS,EAAE;EAC/D,MAAM8f,QAAQ,GAAG+a,uBAAuB,CAAC3gC,KAAK,CAAC;EAC/C;EACA;EACA;EACA;EACAjtH,SAAS,IACLq+G,aAAa,CAACp2kB,OAAO,EAAE,6EAA6E,CAAC;EACzG4qmB,QAAQ,CAACj2sB,IAAI,CAACqrG,OAAO,CAAC;EACtB,IAAIs4kB,KAAK,CAACF,eAAe,EAAE;IACvBwtC,uBAAuB,CAACttC,KAAK,CAAC,CAAC3jrB,IAAI,CAACm2rB,SAAS,EAAE8f,QAAQ,CAAC/4sB,MAAM,GAAG,CAAC,CAAC;EACvE,CAAC,MACI;IACD;IACA;IACA,IAAIkmkB,SAAS,EAAE;MACXzmkB,MAAM,CAAC67M,MAAM,CAACy4gB,uBAAuB,CAACttC,KAAK,CAAC,CAAC;IACjD;EACJ;AACJ;AACA,SAAS8qC,WAAWA,CAAC9qC,KAAK,EAAEutC,OAAO,EAAE7gtB,IAAI,EAAE2U,KAAK,EAAEpnB,KAAK,EAAE2iB,KAAK,EAAE;EAC5D6ijB,SAAS,IAAIp+iB,KAAK,KAAK,CAAC;EAAI;EACxB;EACA87pB,wBAAwB,CAAC97pB,KAAK,EAAEkqqB,aAAa,EAAE,uCAAuC,CAAC;EAC3F9rH,SAAS,IAAIi+G,aAAa,CAAC9gqB,KAAK,EAAEhE,SAAS,EAAE,gDAAgD,CAAC;EAC9F6mjB,SAAS,IAAIA,SAAS,CAACsgH,KAAK,EAAE;EAC9BtgH,SAAS,IAAI8tJ,OAAO,IAAI5gC,mBAAmB,CAAC4gC,OAAO,EAAEvtC,KAAK,CAAC;EAC3D,IAAIuO,aAAa,GAAGg/B,OAAO,GAAGA,OAAO,CAACh/B,aAAa,GAAG,CAAC,CAAC;EACxD,IAAInqU,KAAK,GAAG,CAAC;EACb,IAAIwxU,wBAAwB,CAAC,CAAC,EAAE;IAC5BxxU,KAAK,IAAI,GAAG,CAAC;EACjB;;EACA,MAAM27T,KAAK,GAAG;IACVrzqB,IAAI;IACJ2U,KAAK;IACLmssB,iBAAiB,EAAE,IAAI;IACvBj/B,aAAa;IACbmM,cAAc,EAAE,CAAC,CAAC;IAClBC,YAAY,EAAE,CAAC,CAAC;IAChB8yB,oBAAoB,EAAE,CAAC,CAAC;IACxBrhC,eAAe,EAAE,CAAC,CAAC;IACnBshC,gBAAgB,EAAE,IAAI;IACtBtpW,KAAK;IACLs8U,eAAe,EAAE,CAAC;IAClBzmsB,KAAK,EAAEA,KAAK;IACZ2iB,KAAK,EAAEA,KAAK;IACZovrB,WAAW,EAAE,IAAI;IACjB0C,UAAU,EAAE,IAAI;IAChBif,aAAa,EAAE/0sB,SAAS;IACxBy6Y,MAAM,EAAE,IAAI;IACZ2sM,OAAO,EAAE,IAAI;IACbggF,KAAK,EAAE,IAAI;IACX1krB,IAAI,EAAE,IAAI;IACVi8L,IAAI,EAAE,IAAI;IACV09gB,cAAc,EAAE,IAAI;IACpB/yrB,KAAK,EAAE,IAAI;IACXu4D,MAAM,EAAE8yoB,OAAO;IACf3xf,UAAU,EAAE,IAAI;IAChBj+M,MAAM,EAAE,IAAI;IACZiwsB,iBAAiB,EAAE,IAAI;IACvBC,cAAc,EAAEj1sB,SAAS;IACzB8O,OAAO,EAAE,IAAI;IACbomsB,kBAAkB,EAAE,IAAI;IACxBC,eAAe,EAAEn1sB,SAAS;IAC1Bo1sB,aAAa,EAAE,CAAC;IAChBC,aAAa,EAAE;EACnB,CAAC;EACD,IAAIxuJ,SAAS,EAAE;IACX;IACA;IACA;IACAzmkB,MAAM,CAACyztB,IAAI,CAAC1sC,KAAK,CAAC;EACtB;EACA,OAAOA,KAAK;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASmuC,uBAAuBA,CAACC,QAAQ,EAAE/zB,cAAc,EAAEg0B,eAAe,EAAEC,qBAAqB,EAAE;EAC/F,KAAK,IAAIvlC,UAAU,IAAIqlC,QAAQ,EAAE;IAC7B,IAAIA,QAAQ,CAACj1tB,cAAc,CAAC4vrB,UAAU,CAAC,EAAE;MACrCslC,eAAe,GAAGA,eAAe,KAAK,IAAI,GAAG,CAAC,CAAC,GAAGA,eAAe;MACjE,MAAME,YAAY,GAAGH,QAAQ,CAACrlC,UAAU,CAAC;MACzC;MACA;MACA;MACA;MACA;MACA;MACA,IAAIulC,qBAAqB,KAAK,IAAI,EAAE;QAChCE,gBAAgB,CAACH,eAAe,EAAEh0B,cAAc,EAAEtR,UAAU,EAAEwlC,YAAY,CAAC;MAC/E,CAAC,MACI,IAAID,qBAAqB,CAACn1tB,cAAc,CAAC4vrB,UAAU,CAAC,EAAE;QACvDylC,gBAAgB,CAACH,eAAe,EAAEh0B,cAAc,EAAEi0B,qBAAqB,CAACvlC,UAAU,CAAC,EAAEwlC,YAAY,CAAC;MACtG;IACJ;EACJ;EACA,OAAOF,eAAe;AAC1B;AACA,SAASG,gBAAgBA,CAACH,eAAe,EAAEh0B,cAAc,EAAEtR,UAAU,EAAEwlC,YAAY,EAAE;EACjF,IAAIF,eAAe,CAACl1tB,cAAc,CAAC4vrB,UAAU,CAAC,EAAE;IAC5CslC,eAAe,CAACtlC,UAAU,CAAC,CAACzsrB,IAAI,CAAC+9rB,cAAc,EAAEk0B,YAAY,CAAC;EAClE,CAAC,MACI;IACDF,eAAe,CAACtlC,UAAU,CAAC,GAAG,CAACsR,cAAc,EAAEk0B,YAAY,CAAC;EAChE;AACJ;AACA;AACA;AACA;AACA;AACA,SAASE,+BAA+BA,CAACxuC,KAAK,EAAED,KAAK,EAAE0uC,0BAA0B,EAAE;EAC/EhvJ,SAAS,IAAI+tH,qBAAqB,CAACxN,KAAK,CAAC;EACzC,MAAMzjmB,KAAK,GAAGwjmB,KAAK,CAAC2a,cAAc;EAClC,MAAMpyqB,GAAG,GAAGy3pB,KAAK,CAAC4a,YAAY;EAC9B,MAAM+zB,SAAS,GAAG1uC,KAAK,CAACt8qB,IAAI;EAC5B,MAAMirtB,UAAU,GAAG5uC,KAAK,CAACnjqB,KAAK;EAC9B,MAAMgysB,eAAe,GAAG,EAAE;EAC1B,IAAIC,WAAW,GAAG,IAAI;EACtB,IAAIC,YAAY,GAAG,IAAI;EACvB,KAAK,IAAI10B,cAAc,GAAG79mB,KAAK,EAAE69mB,cAAc,GAAG9xqB,GAAG,EAAE8xqB,cAAc,EAAE,EAAE;IACrE,MAAMC,YAAY,GAAGq0B,SAAS,CAACt0B,cAAc,CAAC;IAC9C,MAAM20B,SAAS,GAAGN,0BAA0B,GAAGA,0BAA0B,CAACp0tB,GAAG,CAACggsB,YAAY,CAAC,GAAG,IAAI;IAClG,MAAM20B,aAAa,GAAGD,SAAS,GAAGA,SAAS,CAAC17T,MAAM,GAAG,IAAI;IACzD,MAAM47T,cAAc,GAAGF,SAAS,GAAGA,SAAS,CAAC/uH,OAAO,GAAG,IAAI;IAC3D6uH,WAAW,GACPX,uBAAuB,CAAC7zB,YAAY,CAAChnS,MAAM,EAAE+mS,cAAc,EAAEy0B,WAAW,EAAEG,aAAa,CAAC;IAC5FF,YAAY,GACRZ,uBAAuB,CAAC7zB,YAAY,CAACr6F,OAAO,EAAEo6F,cAAc,EAAE00B,YAAY,EAAEG,cAAc,CAAC;IAC/F;IACA;IACA;IACA;IACA,MAAMtB,aAAa,GAAIkB,WAAW,KAAK,IAAI,IAAIF,UAAU,KAAK,IAAI,IAAI,CAAC1pC,gBAAgB,CAAClF,KAAK,CAAC,GAC1FmvC,qBAAqB,CAACL,WAAW,EAAEz0B,cAAc,EAAEu0B,UAAU,CAAC,GAC9D,IAAI;IACRC,eAAe,CAACvytB,IAAI,CAACsxtB,aAAa,CAAC;EACvC;EACA,IAAIkB,WAAW,KAAK,IAAI,EAAE;IACtB,IAAIA,WAAW,CAAC31tB,cAAc,CAAC,OAAO,CAAC,EAAE;MACrC6mrB,KAAK,CAAC37T,KAAK,IAAI,CAAC,CAAC;IACrB;;IACA,IAAIyqW,WAAW,CAAC31tB,cAAc,CAAC,OAAO,CAAC,EAAE;MACrC6mrB,KAAK,CAAC37T,KAAK,IAAI,EAAE,CAAC;IACtB;EACJ;;EACA27T,KAAK,CAAC4tC,aAAa,GAAGiB,eAAe;EACrC7uC,KAAK,CAAC1sR,MAAM,GAAGw7T,WAAW;EAC1B9uC,KAAK,CAAC//E,OAAO,GAAG8uH,YAAY;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASK,WAAWA,CAAC/vtB,IAAI,EAAE;EACvB,IAAIA,IAAI,KAAK,OAAO,EAChB,OAAO,WAAW;EACtB,IAAIA,IAAI,KAAK,KAAK,EACd,OAAO,SAAS;EACpB,IAAIA,IAAI,KAAK,YAAY,EACrB,OAAO,YAAY;EACvB,IAAIA,IAAI,KAAK,WAAW,EACpB,OAAO,WAAW;EACtB,IAAIA,IAAI,KAAK,UAAU,EACnB,OAAO,UAAU;EACrB,IAAIA,IAAI,KAAK,UAAU,EACnB,OAAO,UAAU;EACrB,OAAOA,IAAI;AACf;AACA,SAASgwtB,uBAAuBA,CAACpvC,KAAK,EAAED,KAAK,EAAE2M,KAAK,EAAE3tmB,QAAQ,EAAE9kF,KAAK,EAAE8sS,QAAQ,EAAE00a,SAAS,EAAE4T,UAAU,EAAE;EACpG5vJ,SAAS,IAAIi+G,aAAa,CAACzjrB,KAAK,EAAEuutB,SAAS,EAAE,2CAA2C,CAAC;EACzF,MAAMjssB,OAAO,GAAGu3qB,gBAAgB,CAAC/T,KAAK,EAAE2M,KAAK,CAAC;EAC9C,IAAI4iC,SAAS,GAAGvvC,KAAK,CAAC1sR,MAAM;EAC5B,IAAIk8T,SAAS;EACb,IAAI,CAACF,UAAU,IAAIC,SAAS,IAAI,IAAI,KAAKC,SAAS,GAAGD,SAAS,CAACvwoB,QAAQ,CAAC,CAAC,EAAE;IACvEywoB,oBAAoB,CAACxvC,KAAK,EAAE0M,KAAK,EAAE6iC,SAAS,EAAExwoB,QAAQ,EAAE9kF,KAAK,CAAC;IAC9D,IAAIkyrB,eAAe,CAACpM,KAAK,CAAC,EACtB0vC,iBAAiB,CAAC/iC,KAAK,EAAE3M,KAAK,CAAC1+pB,KAAK,CAAC;IACzC,IAAIo+iB,SAAS,EAAE;MACXiwJ,sBAAsB,CAAChjC,KAAK,EAAEnwqB,OAAO,EAAEwjqB,KAAK,CAACrzqB,IAAI,EAAE6itB,SAAS,EAAEt1tB,KAAK,CAAC;IACxE;EACJ,CAAC,MACI,IAAI8lrB,KAAK,CAACrzqB,IAAI,GAAG,CAAC,CAAC,0BAA0B;IAC9CqyE,QAAQ,GAAGowoB,WAAW,CAACpwoB,QAAQ,CAAC;IAChC,IAAI0gf,SAAS,EAAE;MACXw9I,8BAA8B,CAACl+nB,QAAQ,CAAC;MACxC,IAAI,CAACosnB,eAAe,CAAC5urB,OAAO,EAAEwiE,QAAQ,EAAEghmB,KAAK,CAAC9lrB,KAAK,EAAE+lrB,KAAK,CAAC0H,OAAO,CAAC,EAAE;QACjE0jB,0BAA0B,CAACrsnB,QAAQ,EAAEghmB,KAAK,CAAC9lrB,KAAK,EAAE8lrB,KAAK,CAACrzqB,IAAI,EAAEggrB,KAAK,CAAC;MACxE;MACAjtH,SAAS,CAAC8gH,mBAAmB,EAAE;IACnC;IACA;IACA;IACAtmrB,KAAK,GAAGwhtB,SAAS,IAAI,IAAI,GAAGA,SAAS,CAACxhtB,KAAK,EAAE8lrB,KAAK,CAAC9lrB,KAAK,IAAI,EAAE,EAAE8kF,QAAQ,CAAC,GAAG9kF,KAAK;IACjF8sS,QAAQ,CAACytG,WAAW,CAACj4X,OAAO,EAAEwiE,QAAQ,EAAE9kF,KAAK,CAAC;EAClD,CAAC,MACI,IAAI8lrB,KAAK,CAACrzqB,IAAI,GAAG,EAAE,CAAC,8BAA8B;IACnD;IACA;IACA,IAAI+yjB,SAAS,IAAI,CAACqrI,eAAe,CAAC9qB,KAAK,CAAC0H,OAAO,EAAE3H,KAAK,CAAC9lrB,KAAK,CAAC,EAAE;MAC3DmxsB,0BAA0B,CAACrsnB,QAAQ,EAAEghmB,KAAK,CAAC9lrB,KAAK,EAAE8lrB,KAAK,CAACrzqB,IAAI,EAAEggrB,KAAK,CAAC;IACxE;EACJ;AACJ;AACA;AACA,SAAS+iC,iBAAiBA,CAAC/iC,KAAK,EAAEijC,SAAS,EAAE;EACzClwJ,SAAS,IAAI8tH,WAAW,CAACb,KAAK,CAAC;EAC/B,MAAMkjC,mBAAmB,GAAG37B,wBAAwB,CAAC07B,SAAS,EAAEjjC,KAAK,CAAC;EACtE,IAAI,EAAEkjC,mBAAmB,CAACh2S,KAAK,CAAC,GAAG,EAAE,CAAC,6BAA6B,EAAE;IACjEg2S,mBAAmB,CAACh2S,KAAK,CAAC,IAAI,EAAE,CAAC;EACrC;AACJ;;AACA,SAASi2S,oBAAoBA,CAACnjC,KAAK,EAAEnwqB,OAAO,EAAE7P,IAAI,EAAE4oV,QAAQ,EAAEr7V,KAAK,EAAE;EACjE,MAAM8sS,QAAQ,GAAG2lZ,KAAK,CAAChC,QAAQ,CAAC;EAChCp1V,QAAQ,GAAGwxX,yBAAyB,CAACxxX,QAAQ,CAAC;EAC9C,MAAMw6X,UAAU,GAAG9I,0BAA0B,CAAC/stB,KAAK,CAAC;EACpD,IAAIyS,IAAI,GAAG,CAAC,CAAC,0BAA0B;IACnC,IAAIzS,KAAK,IAAI,IAAI,EAAE;MACf8sS,QAAQ,CAACl0Q,eAAe,CAACtW,OAAO,EAAE+4U,QAAQ,CAAC;IAC/C,CAAC,MACI;MACDvuD,QAAQ,CAACtyR,YAAY,CAAC8H,OAAO,EAAE+4U,QAAQ,EAAEw6X,UAAU,CAAC;IACxD;EACJ,CAAC,MACI;IACD,MAAMzvmB,WAAW,GAAGislB,iBAAiB,CAAE,YAAWzusB,IAAI,CAACC,SAAS,CAAC;MAAE,CAACw3V,QAAQ,GAAGw6X;IAAW,CAAC,EAAE,IAAI,EAAE,CAAC,CAAE,EAAC,CAAC;IACxG/ob,QAAQ,CAACspa,QAAQ,CAAC9zrB,OAAO,EAAE8jG,WAAW,CAAC;EAC3C;AACJ;AACA,SAASqvmB,sBAAsBA,CAAChjC,KAAK,EAAEnwqB,OAAO,EAAE7P,IAAI,EAAE6itB,SAAS,EAAEt1tB,KAAK,EAAE;EACpE,IAAIyS,IAAI,IAAI,CAAC,CAAC,2BAA2B,CAAC,CAAC,0BAA0B,EAAE;IACnE;AACR;AACA;AACA;AACA;AACA;AACA;AACA;IACQ,KAAK,IAAI5T,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGy2tB,SAAS,CAACh2tB,MAAM,EAAET,CAAC,IAAI,CAAC,EAAE;MAC1C+2tB,oBAAoB,CAACnjC,KAAK,EAAEnwqB,OAAO,EAAE7P,IAAI,EAAE6itB,SAAS,CAACz2tB,CAAC,GAAG,CAAC,CAAC,EAAEmB,KAAK,CAAC;IACvE;EACJ;AACJ;AACA;AACA;AACA;AACA,SAAS81tB,iBAAiBA,CAAC/vC,KAAK,EAAE0M,KAAK,EAAE3M,KAAK,EAAEiwC,SAAS,EAAE;EACvD;EACA;EACAvwJ,SAAS,IAAI+tH,qBAAqB,CAACxN,KAAK,CAAC;EACzC,IAAI2V,kBAAkB,CAAC,CAAC,EAAE;IACtB,MAAMs6B,UAAU,GAAGD,SAAS,KAAK,IAAI,GAAG,IAAI,GAAG;MAAE,EAAE,EAAE,CAAC;IAAE,CAAC;IACzD,MAAME,WAAW,GAAGC,uBAAuB,CAACnwC,KAAK,EAAED,KAAK,CAAC;IACzD,IAAIuH,aAAa;IACjB,IAAI8oC,iBAAiB;IACrB,IAAIF,WAAW,KAAK,IAAI,EAAE;MACtB5oC,aAAa,GAAG8oC,iBAAiB,GAAG,IAAI;IAC5C,CAAC,MACI;MACD,CAAC9oC,aAAa,EAAE8oC,iBAAiB,CAAC,GAAGF,WAAW;IACpD;IACA,IAAI5oC,aAAa,KAAK,IAAI,EAAE;MACxB+oC,oBAAoB,CAACrwC,KAAK,EAAE0M,KAAK,EAAE3M,KAAK,EAAEuH,aAAa,EAAE2oC,UAAU,EAAEG,iBAAiB,CAAC;IAC3F;IACA,IAAIH,UAAU,EACVK,uBAAuB,CAACvwC,KAAK,EAAEiwC,SAAS,EAAEC,UAAU,CAAC;EAC7D;EACA;EACAlwC,KAAK,CAACisB,WAAW,GAAGznB,cAAc,CAACxE,KAAK,CAACisB,WAAW,EAAEjsB,KAAK,CAACnjqB,KAAK,CAAC;AACtE;AACA;AACA,SAASyzsB,oBAAoBA,CAACrwC,KAAK,EAAE0M,KAAK,EAAE3M,KAAK,EAAEgI,UAAU,EAAEkoC,UAAU,EAAEG,iBAAiB,EAAE;EAC1F3wJ,SAAS,IAAI+tH,qBAAqB,CAACxN,KAAK,CAAC;EACzC;EACA;EACA,KAAK,IAAIlnrB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGivrB,UAAU,CAACxurB,MAAM,EAAET,CAAC,EAAE,EAAE;IACxCkmsB,kBAAkB,CAACZ,8BAA8B,CAACre,KAAK,EAAE2M,KAAK,CAAC,EAAE1M,KAAK,EAAE+H,UAAU,CAACjvrB,CAAC,CAAC,CAAC4T,IAAI,CAAC;EAC/F;EACA6jtB,cAAc,CAACxwC,KAAK,EAAEC,KAAK,CAACt8qB,IAAI,CAACnK,MAAM,EAAEwurB,UAAU,CAACxurB,MAAM,CAAC;EAC3D;EACA;EACA;EACA;EACA;EACA;EACA,KAAK,IAAIT,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGivrB,UAAU,CAACxurB,MAAM,EAAET,CAAC,EAAE,EAAE;IACxC,MAAM2lc,GAAG,GAAGspP,UAAU,CAACjvrB,CAAC,CAAC;IACzB,IAAI2lc,GAAG,CAAC6qP,iBAAiB,EACrB7qP,GAAG,CAAC6qP,iBAAiB,CAAC7qP,GAAG,CAAC;EAClC;EACA,IAAI+xR,kBAAkB,GAAG,KAAK;EAC9B,IAAIC,uBAAuB,GAAG,KAAK;EACnC,IAAInG,YAAY,GAAGS,YAAY,CAAC/qC,KAAK,EAAE0M,KAAK,EAAE3E,UAAU,CAACxurB,MAAM,EAAE,IAAI,CAAC;EACtEkmkB,SAAS,IACLg+G,UAAU,CAAC6sC,YAAY,EAAEvqC,KAAK,CAAC2a,cAAc,EAAE,2DAA2D,CAAC;EAC/G,KAAK,IAAI5hsB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGivrB,UAAU,CAACxurB,MAAM,EAAET,CAAC,EAAE,EAAE;IACxC,MAAM2lc,GAAG,GAAGspP,UAAU,CAACjvrB,CAAC,CAAC;IACzB;IACA;IACAinrB,KAAK,CAACisB,WAAW,GAAGznB,cAAc,CAACxE,KAAK,CAACisB,WAAW,EAAEvtQ,GAAG,CAACswK,SAAS,CAAC;IACpE2hH,0BAA0B,CAAC1wC,KAAK,EAAED,KAAK,EAAE2M,KAAK,EAAE49B,YAAY,EAAE7rR,GAAG,CAAC;IAClEkyR,mBAAmB,CAACrG,YAAY,EAAE7rR,GAAG,EAAEwxR,UAAU,CAAC;IAClD,IAAIxxR,GAAG,CAAC+mM,cAAc,KAAK,IAAI,EAC3Bu6C,KAAK,CAAC37T,KAAK,IAAI,CAAC,CAAC;IACrB,IAAIq6E,GAAG,CAAC8lK,YAAY,KAAK,IAAI,IAAI9lK,GAAG,CAACswK,SAAS,KAAK,IAAI,IAAItwK,GAAG,CAAC6lK,QAAQ,KAAK,CAAC,EACzEy7E,KAAK,CAAC37T,KAAK,IAAI,EAAE,CAAC;IACtB,MAAMwsW,cAAc,GAAGnyR,GAAG,CAAC/xb,IAAI,CAACzT,SAAS;IACzC;IACA;IACA,IAAI,CAACu3tB,kBAAkB,KAClBI,cAAc,CAAC55H,WAAW,IAAI45H,cAAc,CAACr5F,QAAQ,IAAIq5F,cAAc,CAAC75H,SAAS,CAAC,EAAE;MACrF;MACA;MACA;MACA,CAACipF,KAAK,CAACua,aAAa,KAAK,EAAE,EAAEl+rB,IAAI,CAAC0jrB,KAAK,CAAC1+pB,KAAK,CAAC;MAC9CmvsB,kBAAkB,GAAG,IAAI;IAC7B;IACA,IAAI,CAACC,uBAAuB,KAAKG,cAAc,CAAC55H,WAAW,IAAI45H,cAAc,CAAC75H,SAAS,CAAC,EAAE;MACtF,CAACipF,KAAK,CAACwa,kBAAkB,KAAK,EAAE,EAAEn+rB,IAAI,CAAC0jrB,KAAK,CAAC1+pB,KAAK,CAAC;MACnDovsB,uBAAuB,GAAG,IAAI;IAClC;IACAnG,YAAY,EAAE;EAClB;EACAkE,+BAA+B,CAACxuC,KAAK,EAAED,KAAK,EAAEqwC,iBAAiB,CAAC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASS,0BAA0BA,CAAC7wC,KAAK,EAAED,KAAK,EAAEuqC,YAAY,EAAEwG,gBAAgB,EAAEryR,GAAG,EAAE;EACnFghI,SAAS,IAAI+tH,qBAAqB,CAACxN,KAAK,CAAC;EACzC,MAAMz7E,YAAY,GAAG9lK,GAAG,CAAC8lK,YAAY;EACrC,IAAIA,YAAY,EAAE;IACd,IAAI6lH,kBAAkB,GAAGpqC,KAAK,CAACoqC,kBAAkB;IACjD,IAAIA,kBAAkB,KAAK,IAAI,EAAE;MAC7BA,kBAAkB,GAAGpqC,KAAK,CAACoqC,kBAAkB,GAAG,EAAE;IACtD;IACA,MAAM2G,WAAW,GAAG,CAAChxC,KAAK,CAAC1+pB,KAAK;IAChC,IAAI2vsB,sBAAsB,CAAC5G,kBAAkB,CAAC,IAAI2G,WAAW,EAAE;MAC3D;MACA;MACA;MACA3G,kBAAkB,CAAC/ttB,IAAI,CAAC00tB,WAAW,CAAC;IACxC;IACA3G,kBAAkB,CAAC/ttB,IAAI,CAACiutB,YAAY,EAAEwG,gBAAgB,EAAEvsH,YAAY,CAAC;EACzE;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASysH,sBAAsBA,CAAC5G,kBAAkB,EAAE;EAChD,IAAItxtB,CAAC,GAAGsxtB,kBAAkB,CAAC7wtB,MAAM;EACjC,OAAOT,CAAC,GAAG,CAAC,EAAE;IACV,MAAMmB,KAAK,GAAGmwtB,kBAAkB,CAAC,EAAEtxtB,CAAC,CAAC;IACrC,IAAI,OAAOmB,KAAK,KAAK,QAAQ,IAAIA,KAAK,GAAG,CAAC,EAAE;MACxC,OAAOA,KAAK;IAChB;EACJ;EACA,OAAO,CAAC;AACZ;AACA;AACA;AACA;AACA,SAASyxtB,wBAAwBA,CAAC1rC,KAAK,EAAE0M,KAAK,EAAE3M,KAAK,EAAEmE,MAAM,EAAE;EAC3D,MAAM3nmB,KAAK,GAAGwjmB,KAAK,CAAC2a,cAAc;EAClC,MAAMpyqB,GAAG,GAAGy3pB,KAAK,CAAC4a,YAAY;EAC9B;EACA;EACA,IAAIxO,eAAe,CAACpM,KAAK,CAAC,EAAE;IACxBtgH,SAAS,IAAIs9H,eAAe,CAAChd,KAAK,EAAE,CAAC,CAAC,wBAAwB,CAAC;IAC/DkxC,iBAAiB,CAACvkC,KAAK,EAAE3M,KAAK,EAAEC,KAAK,CAACt8qB,IAAI,CAAC64E,KAAK,GAAGwjmB,KAAK,CAACqM,eAAe,CAAC,CAAC;EAC9E;EACA,IAAI,CAACpM,KAAK,CAACF,eAAe,EAAE;IACxBse,8BAA8B,CAACre,KAAK,EAAE2M,KAAK,CAAC;EAChD;EACAghB,eAAe,CAACxpB,MAAM,EAAEwI,KAAK,CAAC;EAC9B,MAAMihC,aAAa,GAAG5tC,KAAK,CAAC4tC,aAAa;EACzC,KAAK,IAAI70tB,CAAC,GAAGyjF,KAAK,EAAEzjF,CAAC,GAAGwvB,GAAG,EAAExvB,CAAC,EAAE,EAAE;IAC9B,MAAM2lc,GAAG,GAAGuhP,KAAK,CAACt8qB,IAAI,CAAC5K,CAAC,CAAC;IACzB,MAAMijsB,SAAS,GAAGyE,iBAAiB,CAAC9T,KAAK,EAAE1M,KAAK,EAAElnrB,CAAC,EAAEinrB,KAAK,CAAC;IAC3D2tB,eAAe,CAAC3R,SAAS,EAAErP,KAAK,CAAC;IACjC,IAAIihC,aAAa,KAAK,IAAI,EAAE;MACxBuD,kBAAkB,CAACxkC,KAAK,EAAE5zrB,CAAC,GAAGyjF,KAAK,EAAEw/mB,SAAS,EAAEt9P,GAAG,EAAEshP,KAAK,EAAE4tC,aAAa,CAAC;IAC9E;IACA,IAAIrhC,cAAc,CAAC7tP,GAAG,CAAC,EAAE;MACrB,MAAMtxJ,aAAa,GAAG8mZ,wBAAwB,CAAClU,KAAK,CAAC1+pB,KAAK,EAAEqrqB,KAAK,CAAC;MAClEv/Y,aAAa,CAACo9Y,OAAO,CAAC,GAAGiW,iBAAiB,CAAC9T,KAAK,EAAE1M,KAAK,EAAElnrB,CAAC,EAAEinrB,KAAK,CAAC;IACtE;EACJ;AACJ;AACA,SAAS4rC,4BAA4BA,CAAC3rC,KAAK,EAAE0M,KAAK,EAAE3M,KAAK,EAAE;EACvD,MAAMxjmB,KAAK,GAAGwjmB,KAAK,CAAC2a,cAAc;EAClC,MAAMpyqB,GAAG,GAAGy3pB,KAAK,CAAC4a,YAAY;EAC9B,MAAMw2B,YAAY,GAAGpxC,KAAK,CAAC1+pB,KAAK;EAChC,MAAMw2qB,qBAAqB,GAAGE,wBAAwB,CAAC,CAAC;EACxD,IAAI;IACA0B,gBAAgB,CAAC03B,YAAY,CAAC;IAC9B,KAAK,IAAIzrF,QAAQ,GAAGnpjB,KAAK,EAAEmpjB,QAAQ,GAAGp9mB,GAAG,EAAEo9mB,QAAQ,EAAE,EAAE;MACnD,MAAMjnM,GAAG,GAAGuhP,KAAK,CAACt8qB,IAAI,CAACgioB,QAAQ,CAAC;MAChC,MAAMq2D,SAAS,GAAGrP,KAAK,CAAChnD,QAAQ,CAAC;MACjCoyD,wBAAwB,CAACpyD,QAAQ,CAAC;MAClC,IAAIjnM,GAAG,CAAC8lK,YAAY,KAAK,IAAI,IAAI9lK,GAAG,CAAC6lK,QAAQ,KAAK,CAAC,IAAI7lK,GAAG,CAACswK,SAAS,KAAK,IAAI,EAAE;QAC3EqiH,gCAAgC,CAAC3yR,GAAG,EAAEs9P,SAAS,CAAC;MACpD;IACJ;EACJ,CAAC,SACO;IACJtC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACpB3B,wBAAwB,CAACD,qBAAqB,CAAC;EACnD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASu5B,gCAAgCA,CAAC3yR,GAAG,EAAEs9P,SAAS,EAAE;EACtD,IAAIt9P,GAAG,CAAC8lK,YAAY,KAAK,IAAI,EAAE;IAC3B9lK,GAAG,CAAC8lK,YAAY,CAAC,CAAC,CAAC,0BAA0Bw3F,SAAS,CAAC;EAC3D;AACJ;AACA;AACA;AACA;AACA;AACA,SAASo0B,uBAAuBA,CAACnwC,KAAK,EAAED,KAAK,EAAE;EAC3CtgH,SAAS,IAAI+tH,qBAAqB,CAACxN,KAAK,CAAC;EACzCvgH,SAAS,IAAIs9H,eAAe,CAAChd,KAAK,EAAE,CAAC,CAAC,2BAA2B,EAAE,CAAC,4BAA4B,CAAC;EACjG,MAAMsxC,QAAQ,GAAGrxC,KAAK,CAACusC,iBAAiB;EACxC,IAAI71S,OAAO,GAAG,IAAI;EAClB,IAAI05S,iBAAiB,GAAG,IAAI;EAC5B,IAAIiB,QAAQ,EAAE;IACV,KAAK,IAAIv4tB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGu4tB,QAAQ,CAAC93tB,MAAM,EAAET,CAAC,EAAE,EAAE;MACtC,MAAM2lc,GAAG,GAAG4yR,QAAQ,CAACv4tB,CAAC,CAAC;MACvB,IAAIqtrB,0BAA0B,CAACpG,KAAK,EAAEthP,GAAG,CAACxvW,SAAS,EAAE,sBAAuB,KAAK,CAAC,EAAE;QAChFynV,OAAO,KAAKA,OAAO,GAAG,EAAE,CAAC;QACzB,IAAI41Q,cAAc,CAAC7tP,GAAG,CAAC,EAAE;UACrB,IAAIghI,SAAS,EAAE;YACXs9H,eAAe,CAAChd,KAAK,EAAE,CAAC,CAAC,yBAA0B,IAAGA,KAAK,CAAC9lrB,KAAM,4CAA2C,GACxG,8CAA6C6D,SAAS,CAAC2gc,GAAG,CAAC/xb,IAAI,CAAE,aAAY,CAAC;YACnF,IAAIy/qB,eAAe,CAACpM,KAAK,CAAC,EAAE;cACxB0nC,2BAA2B,CAAC1nC,KAAK,EAAErpQ,OAAO,CAAC72Q,IAAI,CAACyshB,cAAc,CAAC,CAAC5/qB,IAAI,EAAE+xb,GAAG,CAAC/xb,IAAI,CAAC;YACnF;UACJ;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA,IAAI+xb,GAAG,CAAC+qP,qBAAqB,KAAK,IAAI,EAAE;YACpC,MAAM8nC,oBAAoB,GAAG,EAAE;YAC/BlB,iBAAiB,GAAGA,iBAAiB,IAAI,IAAIj2tB,GAAG,CAAC,CAAC;YAClDskc,GAAG,CAAC+qP,qBAAqB,CAAC/qP,GAAG,EAAE6yR,oBAAoB,EAAElB,iBAAiB,CAAC;YACvE;YACA;YACA;YACA15S,OAAO,CAACn8a,OAAO,CAAC,GAAG+2tB,oBAAoB,EAAE7yR,GAAG,CAAC;YAC7C;YACA,MAAM2tP,eAAe,GAAGklC,oBAAoB,CAAC/3tB,MAAM;YACnDg4tB,mBAAmB,CAACvxC,KAAK,EAAED,KAAK,EAAEqM,eAAe,CAAC;UACtD,CAAC,MACI;YACD;YACA;YACA11Q,OAAO,CAACn8a,OAAO,CAACkkc,GAAG,CAAC;YACpB8yR,mBAAmB,CAACvxC,KAAK,EAAED,KAAK,EAAE,CAAC,CAAC;UACxC;QACJ,CAAC,MACI;UACD;UACAqwC,iBAAiB,GAAGA,iBAAiB,IAAI,IAAIj2tB,GAAG,CAAC,CAAC;UAClDskc,GAAG,CAAC+qP,qBAAqB,GAAG/qP,GAAG,EAAE/nB,OAAO,EAAE05S,iBAAiB,CAAC;UAC5D15S,OAAO,CAACr6a,IAAI,CAACoic,GAAG,CAAC;QACrB;MACJ;IACJ;EACJ;EACA,OAAO/nB,OAAO,KAAK,IAAI,GAAG,IAAI,GAAG,CAACA,OAAO,EAAE05S,iBAAiB,CAAC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,SAASmB,mBAAmBA,CAACvxC,KAAK,EAAEwxC,SAAS,EAAEplC,eAAe,EAAE;EAC5D3sH,SAAS,IAAI+tH,qBAAqB,CAACxN,KAAK,CAAC;EACzCvgH,SAAS,IAAIm+G,iBAAiB,CAACwO,eAAe,EAAE,CAAC,CAAC,EAAE,uCAAuC,CAAC;EAC5FolC,SAAS,CAACplC,eAAe,GAAGA,eAAe;EAC3C,CAACpM,KAAK,CAAC1oW,UAAU,KAAK,EAAE,EAAEj7U,IAAI,CAACm1tB,SAAS,CAACnwsB,KAAK,CAAC;AACnD;AACA;AACA,SAASivsB,uBAAuBA,CAACvwC,KAAK,EAAEiwC,SAAS,EAAEC,UAAU,EAAE;EAC3D,IAAID,SAAS,EAAE;IACX,MAAMthB,UAAU,GAAG3uB,KAAK,CAAC2uB,UAAU,GAAG,EAAE;IACxC;IACA;IACA;IACA,KAAK,IAAI51sB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGk3tB,SAAS,CAACz2tB,MAAM,EAAET,CAAC,IAAI,CAAC,EAAE;MAC1C,MAAMuoB,KAAK,GAAG4usB,UAAU,CAACD,SAAS,CAACl3tB,CAAC,GAAG,CAAC,CAAC,CAAC;MAC1C,IAAIuoB,KAAK,IAAI,IAAI,EACb,MAAM,IAAIw6pB,YAAY,CAAC,CAAC,GAAG,CAAC,yCAAyCp8G,SAAS,IAAK,mBAAkBuwJ,SAAS,CAACl3tB,CAAC,GAAG,CAAC,CAAE,cAAa,CAAC;MACxI41sB,UAAU,CAACrysB,IAAI,CAAC2ztB,SAAS,CAACl3tB,CAAC,CAAC,EAAEuoB,KAAK,CAAC;IACxC;EACJ;AACJ;AACA;AACA;AACA;AACA;AACA,SAASsvsB,mBAAmBA,CAACrG,YAAY,EAAE7rR,GAAG,EAAEwxR,UAAU,EAAE;EACxD,IAAIA,UAAU,EAAE;IACZ,IAAIxxR,GAAG,CAAC+4J,QAAQ,EAAE;MACd,KAAK,IAAI1+lB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG2lc,GAAG,CAAC+4J,QAAQ,CAACj+lB,MAAM,EAAET,CAAC,EAAE,EAAE;QAC1Cm3tB,UAAU,CAACxxR,GAAG,CAAC+4J,QAAQ,CAAC1+lB,CAAC,CAAC,CAAC,GAAGwxtB,YAAY;MAC9C;IACJ;IACA,IAAIh+B,cAAc,CAAC7tP,GAAG,CAAC,EACnBwxR,UAAU,CAAC,EAAE,CAAC,GAAG3F,YAAY;EACrC;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,SAASiG,cAAcA,CAACxwC,KAAK,EAAE1+pB,KAAK,EAAEowsB,kBAAkB,EAAE;EACtDhyJ,SAAS,IACL+9G,cAAc,CAACi0C,kBAAkB,EAAE1xC,KAAK,CAAC4a,YAAY,GAAG5a,KAAK,CAAC2a,cAAc,EAAE,sCAAsC,CAAC;EACzH3a,KAAK,CAAC37T,KAAK,IAAI,CAAC,CAAC;EACjB;EACA27T,KAAK,CAAC2a,cAAc,GAAGr5qB,KAAK;EAC5B0+pB,KAAK,CAAC4a,YAAY,GAAGt5qB,KAAK,GAAGowsB,kBAAkB;EAC/C1xC,KAAK,CAAC2gB,eAAe,GAAGr/qB,KAAK;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASqvsB,0BAA0BA,CAAC1wC,KAAK,EAAED,KAAK,EAAE2M,KAAK,EAAE0N,cAAc,EAAE37P,GAAG,EAAE;EAC1EghI,SAAS,IACL09G,wBAAwB,CAACid,cAAc,EAAE7O,aAAa,EAAE,4BAA4B,CAAC;EACzFvL,KAAK,CAACt8qB,IAAI,CAAC02rB,cAAc,CAAC,GAAG37P,GAAG;EAChC,MAAMizR,gBAAgB,GAAGjzR,GAAG,CAAChpF,OAAO,KAAKgpF,GAAG,CAAChpF,OAAO,GAAG+4U,aAAa,CAAC/vP,GAAG,CAAC/xb,IAAI,EAAE,IAAI,CAAC,CAAC;EACrF;EACA;EACA;EACA,MAAMiltB,mBAAmB,GAAG,IAAIz1B,mBAAmB,CAACw1B,gBAAgB,EAAEplC,cAAc,CAAC7tP,GAAG,CAAC,EAAE24J,iBAAiB,CAAC;EAC7G4oF,KAAK,CAACwe,SAAS,CAACpE,cAAc,CAAC,GAAGu3B,mBAAmB;EACrDjlC,KAAK,CAAC0N,cAAc,CAAC,GAAGu3B,mBAAmB;EAC3Cd,0BAA0B,CAAC7wC,KAAK,EAAED,KAAK,EAAEqa,cAAc,EAAE2wB,YAAY,CAAC/qC,KAAK,EAAE0M,KAAK,EAAEjuP,GAAG,CAAC6lK,QAAQ,EAAEkkH,SAAS,CAAC,EAAE/pR,GAAG,CAAC;AACtH;AACA,SAASwyR,iBAAiBA,CAACvkC,KAAK,EAAE8kC,SAAS,EAAE/yR,GAAG,EAAE;EAC9C,MAAMylP,MAAM,GAAG4P,gBAAgB,CAAC09B,SAAS,EAAE9kC,KAAK,CAAC;EACjD,MAAM1M,KAAK,GAAG8rC,yBAAyB,CAACrtR,GAAG,CAAC;EAC5C;EACA;EACA,MAAMmzR,eAAe,GAAGllC,KAAK,CAACjC,WAAW,CAAC,CAACmnC,eAAe;EAC1D,MAAMzkb,aAAa,GAAG0kb,aAAa,CAACnlC,KAAK,EAAE+9B,WAAW,CAAC/9B,KAAK,EAAE1M,KAAK,EAAE,IAAI,EAAEvhP,GAAG,CAAC4oP,MAAM,GAAG,EAAE,CAAC,yBAAyB,EAAE,CAAC,8BAA8BnD,MAAM,EAAEstC,SAAS,EAAE,IAAI,EAAEI,eAAe,CAACE,cAAc,CAAC5tC,MAAM,EAAEzlP,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;EAC7O;EACA;EACAiuP,KAAK,CAAC8kC,SAAS,CAACnwsB,KAAK,CAAC,GAAG8rR,aAAa;AAC1C;AACA,SAAS4kb,wBAAwBA,CAAChyC,KAAK,EAAE2M,KAAK,EAAEttrB,IAAI,EAAEnF,KAAK,EAAEwhtB,SAAS,EAAE39rB,SAAS,EAAE;EAC/E,IAAI2hjB,SAAS,EAAE;IACXi+G,aAAa,CAACzjrB,KAAK,EAAEuutB,SAAS,EAAE,2CAA2C,CAAC;IAC5EtL,8BAA8B,CAAC99sB,IAAI,CAAC;IACpC29rB,eAAe,CAAChd,KAAK,EAAE,CAAC,CAAC,yBAA0B,gCAA+B3grB,IAAK,0BAAyB,GAC3G,6DAA4D,CAAC;EACtE;EACA,MAAMmd,OAAO,GAAGu3qB,gBAAgB,CAAC/T,KAAK,EAAE2M,KAAK,CAAC;EAC9CslC,mBAAmB,CAACtlC,KAAK,CAAChC,QAAQ,CAAC,EAAEnuqB,OAAO,EAAEuB,SAAS,EAAEiiqB,KAAK,CAAC9lrB,KAAK,EAAEmF,IAAI,EAAEnF,KAAK,EAAEwhtB,SAAS,CAAC;AACjG;AACA,SAASuW,mBAAmBA,CAACjrb,QAAQ,EAAExqR,OAAO,EAAEuB,SAAS,EAAEqE,OAAO,EAAE/iB,IAAI,EAAEnF,KAAK,EAAEwhtB,SAAS,EAAE;EACxF,IAAIxhtB,KAAK,IAAI,IAAI,EAAE;IACfwlkB,SAAS,IAAIA,SAAS,CAAC6gH,uBAAuB,EAAE;IAChDv5Y,QAAQ,CAACl0Q,eAAe,CAACtW,OAAO,EAAEnd,IAAI,EAAE0e,SAAS,CAAC;EACtD,CAAC,MACI;IACD2hjB,SAAS,IAAIA,SAAS,CAAC4gH,oBAAoB,EAAE;IAC7C,MAAMhyG,QAAQ,GAAGotI,SAAS,IAAI,IAAI,GAAGx/B,eAAe,CAAChirB,KAAK,CAAC,GAAGwhtB,SAAS,CAACxhtB,KAAK,EAAEkoB,OAAO,IAAI,EAAE,EAAE/iB,IAAI,CAAC;IACnG2nS,QAAQ,CAACtyR,YAAY,CAAC8H,OAAO,EAAEnd,IAAI,EAAEivkB,QAAQ,EAAEvwjB,SAAS,CAAC;EAC7D;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASozsB,kBAAkBA,CAACxkC,KAAK,EAAE0N,cAAc,EAAEn/rB,QAAQ,EAAEwjc,GAAG,EAAEshP,KAAK,EAAEkyC,gBAAgB,EAAE;EACvF,MAAMtE,aAAa,GAAGsE,gBAAgB,CAAC73B,cAAc,CAAC;EACtD,IAAIuzB,aAAa,KAAK,IAAI,EAAE;IACxB,KAAK,IAAI70tB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG60tB,aAAa,CAACp0tB,MAAM,GAAG;MACvC,MAAMuvrB,UAAU,GAAG6kC,aAAa,CAAC70tB,CAAC,EAAE,CAAC;MACrC,MAAMm6rB,WAAW,GAAG06B,aAAa,CAAC70tB,CAAC,EAAE,CAAC;MACtC,MAAMmB,KAAK,GAAG0ztB,aAAa,CAAC70tB,CAAC,EAAE,CAAC;MAChCo5tB,qBAAqB,CAACzzR,GAAG,EAAExjc,QAAQ,EAAE6trB,UAAU,EAAEmK,WAAW,EAAEh5rB,KAAK,CAAC;MACpE,IAAIwlkB,SAAS,EAAE;QACX,MAAMm3B,aAAa,GAAGk9F,gBAAgB,CAAC/T,KAAK,EAAE2M,KAAK,CAAC;QACpDmjC,oBAAoB,CAACnjC,KAAK,EAAE91F,aAAa,EAAEmpF,KAAK,CAACrzqB,IAAI,EAAEumrB,WAAW,EAAEh5rB,KAAK,CAAC;MAC9E;IACJ;EACJ;AACJ;AACA,SAASi4tB,qBAAqBA,CAACzzR,GAAG,EAAExjc,QAAQ,EAAE6trB,UAAU,EAAEmK,WAAW,EAAEh5rB,KAAK,EAAE;EAC1E,MAAMs3rB,YAAY,GAAGhC,iBAAiB,CAAC,IAAI,CAAC;EAC5C,IAAI;IACA,IAAI9wP,GAAG,CAAC8qP,QAAQ,KAAK,IAAI,EAAE;MACvB9qP,GAAG,CAAC8qP,QAAQ,CAACturB,QAAQ,EAAEhB,KAAK,EAAE6urB,UAAU,EAAEmK,WAAW,CAAC;IAC1D,CAAC,MACI;MACDh4rB,QAAQ,CAACg4rB,WAAW,CAAC,GAAGh5rB,KAAK;IACjC;EACJ,CAAC,SACO;IACJs1rB,iBAAiB,CAACgC,YAAY,CAAC;EACnC;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS29B,qBAAqBA,CAAC77T,MAAM,EAAE+mS,cAAc,EAAEx9qB,KAAK,EAAE;EAC1D,IAAIu1sB,aAAa,GAAG,IAAI;EACxB,IAAIr5tB,CAAC,GAAG,CAAC;EACT,OAAOA,CAAC,GAAG8jB,KAAK,CAACrjB,MAAM,EAAE;IACrB,MAAM+7V,QAAQ,GAAG14U,KAAK,CAAC9jB,CAAC,CAAC;IACzB,IAAIw8V,QAAQ,KAAK,CAAC,CAAC,oCAAoC;MACnD;MACAx8V,CAAC,IAAI,CAAC;MACN;IACJ,CAAC,MACI,IAAIw8V,QAAQ,KAAK,CAAC,CAAC,iCAAiC;MACrD;MACAx8V,CAAC,IAAI,CAAC;MACN;IACJ;IACA;IACA,IAAI,OAAOw8V,QAAQ,KAAK,QAAQ,EAC5B;IACJ,IAAI+9D,MAAM,CAACn6Z,cAAc,CAACo8V,QAAQ,CAAC,EAAE;MACjC,IAAI68X,aAAa,KAAK,IAAI,EACtBA,aAAa,GAAG,EAAE;MACtB;MACA;MACA;MACA,MAAMC,WAAW,GAAG/+T,MAAM,CAAC/9D,QAAQ,CAAC;MACpC,KAAK,IAAIxvV,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGsstB,WAAW,CAAC74tB,MAAM,EAAEuM,CAAC,IAAI,CAAC,EAAE;QAC5C,IAAIsstB,WAAW,CAACtstB,CAAC,CAAC,KAAKs0rB,cAAc,EAAE;UACnC+3B,aAAa,CAAC91tB,IAAI,CAACi5V,QAAQ,EAAE88X,WAAW,CAACtstB,CAAC,GAAG,CAAC,CAAC,EAAE8W,KAAK,CAAC9jB,CAAC,GAAG,CAAC,CAAC,CAAC;UAC9D;UACA;QACJ;MACJ;IACJ;IACAA,CAAC,IAAI,CAAC;EACV;EACA,OAAOq5tB,aAAa;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASE,gBAAgBA,CAACC,UAAU,EAAE/4B,WAAW,EAAErV,MAAM,EAAEnE,KAAK,EAAE;EAC9DtgH,SAAS,IAAI8tH,WAAW,CAACgM,WAAW,CAAC;EACrC,MAAMqW,UAAU,GAAG,CACf0iB,UAAU,EACV,IAAI,EACJ,KAAK,EACL/4B,WAAW,EACX,IAAI,EACJ,CAAC,EACDxZ,KAAK,EACLmE,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,IAAI,CAAE;EAAA,CACT;;EACDzkH,SAAS,IACL69G,WAAW,CAACsyB,UAAU,CAACr2sB,MAAM,EAAEuyrB,uBAAuB,EAAE,gEAAgE,CAAC;EAC7H,OAAO8jB,UAAU;AACrB;AACA;AACA,SAAS2iB,qBAAqBA,CAACvyC,KAAK,EAAE0M,KAAK,EAAE;EACzC,MAAMlnD,cAAc,GAAGw6C,KAAK,CAACx6C,cAAc;EAC3C,IAAIA,cAAc,KAAK,IAAI,EAAE;IACzB,KAAK,IAAI1soB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG0soB,cAAc,CAACjsoB,MAAM,EAAET,CAAC,IAAI,CAAC,EAAE;MAC/C,MAAM05tB,aAAa,GAAGhtF,cAAc,CAAC1soB,CAAC,CAAC;MACvC,MAAM25tB,eAAe,GAAGjtF,cAAc,CAAC1soB,CAAC,GAAG,CAAC,CAAC;MAC7C,IAAI25tB,eAAe,KAAK,CAAC,CAAC,EAAE;QACxB,MAAMp4B,YAAY,GAAGra,KAAK,CAACt8qB,IAAI,CAAC+utB,eAAe,CAAC;QAChDhzJ,SAAS,IAAIq+G,aAAa,CAACuc,YAAY,EAAE,yBAAyB,CAAC;QACnE56H,SAAS,IACLq+G,aAAa,CAACuc,YAAY,CAAC70D,cAAc,EAAE,2CAA2C,CAAC;QAC3F2yD,oBAAoB,CAACq6B,aAAa,CAAC;QACnCn4B,YAAY,CAAC70D,cAAc,CAAC,CAAC,CAAC,0BAA0BknD,KAAK,CAAC+lC,eAAe,CAAC,EAAEA,eAAe,CAAC;MACpG;IACJ;EACJ;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASZ,aAAaA,CAACnlC,KAAK,EAAEokB,iBAAiB,EAAE;EAC7C;EACA;EACA;EACA;EACA,IAAIpkB,KAAK,CAAC/B,UAAU,CAAC,EAAE;IACnB+B,KAAK,CAAC9B,UAAU,CAAC,CAACT,IAAI,CAAC,GAAG2mB,iBAAiB;EAC/C,CAAC,MACI;IACDpkB,KAAK,CAAC/B,UAAU,CAAC,GAAGmmB,iBAAiB;EACzC;EACApkB,KAAK,CAAC9B,UAAU,CAAC,GAAGkmB,iBAAiB;EACrC,OAAOA,iBAAiB;AAC5B;AACA;AACA;AACA;AACA,SAAS4hB,kBAAkBA,CAACtuW,KAAK,EAAEuuW,WAAW,EAAErpb,SAAS,EAAE;EACvDm2R,SAAS,IAAIq+G,aAAa,CAAC60C,WAAW,EAAE,mDAAmD,CAAC;EAC5Fx6B,oBAAoB,CAAC,CAAC,CAAC;EACvB,MAAM5G,YAAY,GAAGhC,iBAAiB,CAAC,IAAI,CAAC;EAC5C,IAAI;IACAojC,WAAW,CAACvuW,KAAK,EAAE96E,SAAS,CAAC;EACjC,CAAC,SACO;IACJimZ,iBAAiB,CAACgC,YAAY,CAAC;EACnC;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,SAASqhC,4BAA4BA,CAAC36B,KAAK,EAAElY,KAAK,EAAE/pG,YAAY,EAAEqhH,YAAY,EAAE,GAAGw7B,kBAAkB,EAAE;EACnG;EACA;EACA;EACA,IAAI56B,KAAK,CAACZ,YAAY,CAAC,KAAK,IAAI,EAAE;IAC9B,IAAItX,KAAK,CAAC1sR,MAAM,IAAI,IAAI,IAAI,CAAC0sR,KAAK,CAAC1sR,MAAM,CAAC2iL,YAAY,CAAC,EAAE;MACrD,MAAM88I,eAAe,GAAG/yC,KAAK,CAAC2tC,gBAAgB,KAAK3tC,KAAK,CAAC2tC,gBAAgB,GAAG,EAAE,CAAC;MAC/EoF,eAAe,CAACz2tB,IAAI,CAACg7rB,YAAY,CAAC;MAClC,IAAI07B,eAAe,GAAG/8I,YAAY;MAClC,IAAI68I,kBAAkB,CAACt5tB,MAAM,GAAG,CAAC,EAAE;QAC/Bw5tB,eAAe,IACX3L,uBAAuB,GAAGyL,kBAAkB,CAAClxtB,IAAI,CAACyltB,uBAAuB,CAAC;MAClF;MACAnvB,KAAK,CAACZ,YAAY,CAAC,GAAG07B,eAAe;IACzC;EACJ;AACJ;AACA,SAAS1F,uBAAuBA,CAAC33oB,IAAI,EAAE;EACnC;EACA,OAAOA,IAAI,CAAC40mB,OAAO,CAAC,KAAK50mB,IAAI,CAAC40mB,OAAO,CAAC,GAAG,EAAE,CAAC;AAChD;AACA,SAASgjC,uBAAuBA,CAACttC,KAAK,EAAE;EACpC,OAAOA,KAAK,CAACtL,OAAO,KAAKsL,KAAK,CAACtL,OAAO,GAAG,EAAE,CAAC;AAChD;AACA;AACA;AACA;AACA;AACA,SAASs+C,qBAAqBA,CAACC,UAAU,EAAElzC,KAAK,EAAE2M,KAAK,EAAE;EACrD;EACA;EACA;EACA;EACA;EACA;EACA,IAAIumC,UAAU,KAAK,IAAI,IAAI3mC,cAAc,CAAC2mC,UAAU,CAAC,EAAE;IACnDvmC,KAAK,GAAGkH,WAAW,CAAClH,KAAK,CAAC3M,KAAK,CAAC1+pB,KAAK,CAAC,CAAC;EAC3C;EACA,OAAOqrqB,KAAK,CAAChC,QAAQ,CAAC;AAC1B;AACA;AACA,SAAS+7B,WAAWA,CAAC/5B,KAAK,EAAEltrB,KAAK,EAAE;EAC/B,MAAMyzmB,QAAQ,GAAGy5E,KAAK,CAAClC,UAAU,CAAC;EAClC,MAAM0oC,YAAY,GAAGjgH,QAAQ,GAAGA,QAAQ,CAAC54mB,GAAG,CAACkstB,YAAY,EAAE,IAAI,CAAC,GAAG,IAAI;EACvE2M,YAAY,IAAIA,YAAY,CAACzM,WAAW,CAACjntB,KAAK,CAAC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASgwtB,oBAAoBA,CAACxvC,KAAK,EAAE0M,KAAK,EAAEr5R,MAAM,EAAEy1R,UAAU,EAAE7urB,KAAK,EAAE;EACnE,KAAK,IAAInB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGu6Z,MAAM,CAAC95Z,MAAM,GAAG;IAChC,MAAM8nB,KAAK,GAAGgyY,MAAM,CAACv6Z,CAAC,EAAE,CAAC;IACzB,MAAMm6rB,WAAW,GAAG5/R,MAAM,CAACv6Z,CAAC,EAAE,CAAC;IAC/B,MAAMmC,QAAQ,GAAGyxrB,KAAK,CAACrrqB,KAAK,CAAC;IAC7Bo+iB,SAAS,IAAIw+G,kBAAkB,CAACyO,KAAK,EAAErrqB,KAAK,CAAC;IAC7C,MAAMo9a,GAAG,GAAGuhP,KAAK,CAACt8qB,IAAI,CAAC2d,KAAK,CAAC;IAC7B6wsB,qBAAqB,CAACzzR,GAAG,EAAExjc,QAAQ,EAAE6trB,UAAU,EAAEmK,WAAW,EAAEh5rB,KAAK,CAAC;EACxE;AACJ;AACA;AACA;AACA;AACA,SAASk5tB,mBAAmBA,CAACzmC,KAAK,EAAErrqB,KAAK,EAAEpnB,KAAK,EAAE;EAC9CwlkB,SAAS,IAAI29G,YAAY,CAACnjrB,KAAK,EAAE,0BAA0B,CAAC;EAC5DwlkB,SAAS,IAAIi+G,aAAa,CAACzjrB,KAAK,EAAEuutB,SAAS,EAAE,+BAA+B,CAAC;EAC7E/oJ,SAAS,IAAIw+G,kBAAkB,CAACyO,KAAK,EAAErrqB,KAAK,CAAC;EAC7C,MAAM9E,OAAO,GAAGs3qB,gBAAgB,CAACxyqB,KAAK,EAAEqrqB,KAAK,CAAC;EAC9CjtH,SAAS,IAAIq+G,aAAa,CAACvhqB,OAAO,EAAE,6BAA6B,CAAC;EAClE6zrB,cAAc,CAAC1jB,KAAK,CAAChC,QAAQ,CAAC,EAAEnuqB,OAAO,EAAEtiB,KAAK,CAAC;AACnD;AAEA,SAASm5tB,eAAeA,CAACC,SAAS,EAAEC,gBAAgB,EAAE;EAClD7zJ,SAAS,IAAI69G,WAAW,CAAC6W,cAAc,CAACk/B,SAAS,CAAC,EAAE,IAAI,EAAE,gCAAgC,CAAC;EAC3F,MAAMlmb,aAAa,GAAG8mZ,wBAAwB,CAACq/B,gBAAgB,EAAED,SAAS,CAAC;EAC3E,MAAME,cAAc,GAAGpmb,aAAa,CAAC88Y,KAAK,CAAC;EAC3CupC,qBAAqB,CAACD,cAAc,EAAEpmb,aAAa,CAAC;EACpD,MAAMsmb,SAAS,GAAGtmb,aAAa,CAAC68Y,IAAI,CAAC;EACrC;EACA,IAAIypC,SAAS,KAAK,IAAI,IAAItmb,aAAa,CAACi+Y,SAAS,CAAC,KAAK,IAAI,EAAE;IACzDj+Y,aAAa,CAACi+Y,SAAS,CAAC,GAAGk4B,qBAAqB,CAACmQ,SAAS,EAAEtmb,aAAa,CAACq9Y,UAAU,CAAC,CAAC;EAC1F;EACAkpC,UAAU,CAACH,cAAc,EAAEpmb,aAAa,EAAEA,aAAa,CAACo9Y,OAAO,CAAC,CAAC;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASipC,qBAAqBA,CAACxzC,KAAK,EAAE0M,KAAK,EAAE;EACzC,KAAK,IAAI5zrB,CAAC,GAAG4zrB,KAAK,CAACnzrB,MAAM,EAAET,CAAC,GAAGknrB,KAAK,CAACwe,SAAS,CAACjlsB,MAAM,EAAET,CAAC,EAAE,EAAE;IACxD4zrB,KAAK,CAACrwrB,IAAI,CAAC2jrB,KAAK,CAACwe,SAAS,CAAC1lsB,CAAC,CAAC,CAAC;EAClC;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS46tB,UAAUA,CAAC1zC,KAAK,EAAE0M,KAAK,EAAEhllB,OAAO,EAAE;EACvC+3d,SAAS,IAAI69G,WAAW,CAAC6W,cAAc,CAACzH,KAAK,CAAC,EAAE,IAAI,EAAE,gCAAgC,CAAC;EACvFgM,SAAS,CAAChM,KAAK,CAAC;EAChB,IAAI;IACA,MAAMh+E,SAAS,GAAGsxE,KAAK,CAACtxE,SAAS;IACjC,IAAIA,SAAS,KAAK,IAAI,EAAE;MACpBgkH,kBAAkB,CAAC,CAAC,CAAC,0BAA0BhkH,SAAS,EAAEhngB,OAAO,CAAC;IACtE;IACA;IACA;IACA,MAAMyjnB,UAAU,GAAGnrC,KAAK,CAACrzU,QAAQ;IACjC,IAAIw+W,UAAU,KAAK,IAAI,EAAE;MACrBD,eAAe,CAAClrC,KAAK,EAAE0M,KAAK,EAAEy+B,UAAU,EAAE,CAAC,CAAC,0BAA0BzjnB,OAAO,CAAC;IAClF;IACA;IACA;IACA;IACA;IACA;IACA,IAAIs4kB,KAAK,CAACF,eAAe,EAAE;MACvBE,KAAK,CAACF,eAAe,GAAG,KAAK;IACjC;IACA;IACA;IACA;IACA,IAAIE,KAAK,CAACssC,oBAAoB,EAAE;MAC5BiG,qBAAqB,CAACvyC,KAAK,EAAE0M,KAAK,CAAC;IACvC;IACA;IACA;IACA;IACA,IAAI1M,KAAK,CAACqsC,iBAAiB,EAAE;MACzBqG,kBAAkB,CAAC,CAAC,CAAC,0BAA0B1yC,KAAK,CAACtxE,SAAS,EAAEhngB,OAAO,CAAC;IAC5E;IACA;IACA,MAAM4vO,UAAU,GAAG0oW,KAAK,CAAC1oW,UAAU;IACnC,IAAIA,UAAU,KAAK,IAAI,EAAE;MACrBq8Y,qBAAqB,CAACjnC,KAAK,EAAEp1W,UAAU,CAAC;IAC5C;EACJ,CAAC,CACD,OAAO93U,KAAK,EAAE;IACV;IACA;IACA,IAAIwgrB,KAAK,CAACF,eAAe,EAAE;MACvBE,KAAK,CAAC+rC,mBAAmB,GAAG,IAAI;MAChC/rC,KAAK,CAACF,eAAe,GAAG,KAAK;IACjC;IACA,MAAMtgrB,KAAK;EACf,CAAC,SACO;IACJktrB,KAAK,CAAC9yQ,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACnBu/Q,SAAS,CAAC,CAAC;EACf;AACJ;AACA;AACA,SAASw6B,qBAAqBA,CAACN,SAAS,EAAE/7Y,UAAU,EAAE;EAClD,KAAK,IAAIx+U,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGw+U,UAAU,CAAC/9U,MAAM,EAAET,CAAC,EAAE,EAAE;IACxCs6tB,eAAe,CAACC,SAAS,EAAE/7Y,UAAU,CAACx+U,CAAC,CAAC,CAAC;EAC7C;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM86tB,UAAU,CAAC;EACb;AACJ;AACA;AACA;EACI;IAAS,IAAI,CAAClwC,iBAAiB,GAAGmwC,gBAAgB;EAAE;EACpD;AACJ;AACA;AACA;EACI;IAAS,IAAI,CAACjwC,aAAa,GAAI3wE,QAAQ,IAAKA,QAAQ;EAAE;AAC1D;AACA,MAAM6gH,sBAAsB,SAASF,UAAU,CAAC;EAC5Cr0tB,WAAWA,CAACkisB,MAAM,EAAE;IAChB,KAAK,CAAC,CAAC;IACP,IAAI,CAACA,MAAM,GAAGA,MAAM;EACxB;EACA9jI,SAASA,CAACx+iB,QAAQ,EAAE;IAChBy1qB,mBAAmB,CAAC,IAAI,CAAC6M,MAAM,EAAEtirB,QAAQ,CAAC;IAC1C,OAAO,MAAM21qB,oBAAoB,CAAC,IAAI,CAAC2M,MAAM,EAAEtirB,QAAQ,CAAC;EAC5D;AACJ;AACA,SAAS00sB,gBAAgBA,CAAA,EAAG;EACxB,OAAO,IAAIC,sBAAsB,CAAC59B,QAAQ,CAAC,CAAC,CAAC;AACjD;;AAEA;AACA;AACA;AACA,MAAM69B,aAAa,CAAC;EAChBx0tB,WAAWA,CAAA,EAAG;IACV,IAAI,CAAC0hB,GAAG,GAAG,IAAItkB,GAAG,CAAC,CAAC;IACpB,IAAI,CAAC+jT,KAAK,GAAG,IAAIvmT,GAAG,CAAC,CAAC;EAC1B;EACAyO,MAAMA,CAACortB,QAAQ,EAAEC,UAAU,EAAE1hC,iBAAiB,EAAE;IAC5C,MAAMrta,IAAI,GAAI,OAAOgvc,IAAI,KAAK,WAAW,GAAI,IAAI,GAAGA,IAAI,CAACz7kB,OAAO;IAChE,MAAMtjH,KAAK,GAAG,IAAIm9pB,KAAK,CAAC0hC,QAAQ,EAAG7+rB,KAAK,IAAK;MACzC,IAAI,CAAC,IAAI,CAAClU,GAAG,CAACxmB,GAAG,CAAC06B,KAAK,CAAC,EAAE;QACtB;MACJ;MACA,IAAI,CAACurR,KAAK,CAACpmT,GAAG,CAAC66B,KAAK,EAAE+vP,IAAI,CAAC;IAC/B,CAAC,EAAEqta,iBAAiB,CAAC;IACrB,IAAI,CAACtxqB,GAAG,CAAC7iB,GAAG,CAAC+2B,KAAK,CAAC;IACnB;IACAA,KAAK,CAACytkB,MAAM,CAAC,CAAC;IACd,IAAIuxH,mBAAmB;IACvB,MAAM56V,OAAO,GAAGA,CAAA,KAAM;MAClBpkW,KAAK,CAACu/oB,OAAO,CAAC,CAAC;MACfy/C,mBAAmB,GAAG,CAAC;MACvB,IAAI,CAAClzsB,GAAG,CAAClmB,MAAM,CAACo6B,KAAK,CAAC;MACtB,IAAI,CAACurR,KAAK,CAAC3lT,MAAM,CAACo6B,KAAK,CAAC;IAC5B,CAAC;IACDg/rB,mBAAmB,GAAGF,UAAU,EAAEt2J,SAAS,CAACpkM,OAAO,CAAC;IACpD,OAAO;MACHA;IACJ,CAAC;EACL;EACAl0M,KAAKA,CAAA,EAAG;IACJ,IAAI,IAAI,CAACq7H,KAAK,CAACjzS,IAAI,KAAK,CAAC,EAAE;MACvB;IACJ;IACA,KAAK,MAAM,CAAC0nB,KAAK,EAAE+vP,IAAI,CAAC,IAAI,IAAI,CAACw7B,KAAK,EAAE;MACpC,IAAI,CAACA,KAAK,CAAC3lT,MAAM,CAACo6B,KAAK,CAAC;MACxB,IAAI+vP,IAAI,EAAE;QACNA,IAAI,CAACkmL,GAAG,CAAC,MAAMj2a,KAAK,CAACi2a,GAAG,CAAC,CAAC,CAAC;MAC/B,CAAC,MACI;QACDj2a,KAAK,CAACi2a,GAAG,CAAC,CAAC;MACf;IACJ;EACJ;EACA,IAAIgpR,YAAYA,CAAA,EAAG;IACf,OAAO,IAAI,CAAC1za,KAAK,CAACjzS,IAAI,KAAK,CAAC;EAChC;EACA;EACA;IAAS,IAAI,CAAC03jB,KAAK,GAAGC,kBAAkB,CAAC;MACrCrhN,KAAK,EAAEgwW,aAAa;MACpBplI,UAAU,EAAE,MAAM;MAClBl5O,OAAO,EAAEA,CAAA,KAAM,IAAIs+W,aAAa,CAAC;IACrC,CAAC,CAAC;EAAE;AACR;AACA;AACA;AACA;AACA;AACA;AACA,SAASrlkB,MAAMA,CAACslkB,QAAQ,EAAEvltB,OAAO,EAAE;EAC/B,CAACA,OAAO,EAAEwkmB,QAAQ,IAAI81G,wBAAwB,CAACr6jB,MAAM,CAAC;EACtD,MAAMukd,QAAQ,GAAGxkmB,OAAO,EAAEwkmB,QAAQ,IAAIppB,MAAM,CAAC6hB,QAAQ,CAAC;EACtD,MAAM2oH,aAAa,GAAGphH,QAAQ,CAAC54mB,GAAG,CAAC05tB,aAAa,CAAC;EACjD,MAAME,UAAU,GAAGxltB,OAAO,EAAE6ltB,aAAa,KAAK,IAAI,GAAGrhH,QAAQ,CAAC54mB,GAAG,CAACu5tB,UAAU,CAAC,GAAG,IAAI;EACpF,OAAOS,aAAa,CAACzrtB,MAAM,CAACortB,QAAQ,EAAEC,UAAU,EAAE,CAAC,CAACxltB,OAAO,EAAE8jrB,iBAAiB,CAAC;AACnF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASgiC,oBAAoBA,CAACx0C,KAAK,EAAEnjqB,KAAK,EAAE43sB,WAAW,EAAE;EACrD/0J,SAAS,IACL+tH,qBAAqB,CAAC2I,QAAQ,CAAC,CAAC,EAAE,oDAAoD,CAAC;EAC3F,IAAIx4qB,MAAM,GAAG62sB,WAAW,GAAGz0C,KAAK,CAACpiqB,MAAM,GAAG,IAAI;EAC9C,IAAI+J,OAAO,GAAG8ssB,WAAW,GAAGz0C,KAAK,CAACr4pB,OAAO,GAAG,IAAI;EAChD,IAAI2lP,IAAI,GAAG,CAAC;EACZ,IAAIzwP,KAAK,KAAK,IAAI,EAAE;IAChB,KAAK,IAAI9jB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG8jB,KAAK,CAACrjB,MAAM,EAAET,CAAC,EAAE,EAAE;MACnC,MAAMmB,KAAK,GAAG2iB,KAAK,CAAC9jB,CAAC,CAAC;MACtB,IAAI,OAAOmB,KAAK,KAAK,QAAQ,EAAE;QAC3BozQ,IAAI,GAAGpzQ,KAAK;MAChB,CAAC,MACI,IAAIozQ,IAAI,IAAI,CAAC,CAAC,+BAA+B;QAC9C3lP,OAAO,GAAG2zpB,sBAAsB,CAAC3zpB,OAAO,EAAEztB,KAAK,CAAC;MACpD,CAAC,MACI,IAAIozQ,IAAI,IAAI,CAAC,CAAC,8BAA8B;QAC7C,MAAM34P,KAAK,GAAGza,KAAK;QACnB,MAAMw6tB,UAAU,GAAG73sB,KAAK,CAAC,EAAE9jB,CAAC,CAAC;QAC7B6kB,MAAM,GAAG09pB,sBAAsB,CAAC19pB,MAAM,EAAEjJ,KAAK,GAAG,IAAI,GAAG+/sB,UAAU,GAAG,GAAG,CAAC;MAC5E;IACJ;EACJ;EACAD,WAAW,GAAGz0C,KAAK,CAACpiqB,MAAM,GAAGA,MAAM,GAAGoiqB,KAAK,CAAC6tC,iBAAiB,GAAGjwsB,MAAM;EACtE62sB,WAAW,GAAGz0C,KAAK,CAACr4pB,OAAO,GAAGA,OAAO,GAAGq4pB,KAAK,CAAC+tC,kBAAkB,GAAGpmsB,OAAO;AAC9E;AAEA,SAASgtsB,kBAAkBA,CAAC10C,KAAK,EAAE0M,KAAK,EAAE3M,KAAK,EAAEj3pB,MAAM,EAAEgsrB,YAAY,GAAG,KAAK,EAAE;EAC3E,OAAO/0B,KAAK,KAAK,IAAI,EAAE;IACnBtgH,SAAS,IACLs9H,eAAe,CAAChd,KAAK,EAAE,CAAC,CAAC,2BAA2B,EAAE,CAAC,+BAA+B,EAAE,CAAC,6BAA6B,EAAE,CAAC,mBAAmB,CAAC;IACjJ,MAAM40C,KAAK,GAAGjoC,KAAK,CAAC3M,KAAK,CAAC1+pB,KAAK,CAAC;IAChC,IAAIszsB,KAAK,KAAK,IAAI,EAAE;MAChB7rsB,MAAM,CAACzsB,IAAI,CAACs3rB,WAAW,CAACghC,KAAK,CAAC,CAAC;IACnC;IACA;IACA;IACA;IACA,IAAI1oC,YAAY,CAAC0oC,KAAK,CAAC,EAAE;MACrB,KAAK,IAAI77tB,CAAC,GAAGgzrB,uBAAuB,EAAEhzrB,CAAC,GAAG67tB,KAAK,CAACp7tB,MAAM,EAAET,CAAC,EAAE,EAAE;QACzD,MAAM87tB,iBAAiB,GAAGD,KAAK,CAAC77tB,CAAC,CAAC;QAClC,MAAM+7tB,oBAAoB,GAAGD,iBAAiB,CAAC3qC,KAAK,CAAC,CAACr3pB,UAAU;QAChE,IAAIiisB,oBAAoB,KAAK,IAAI,EAAE;UAC/BH,kBAAkB,CAACE,iBAAiB,CAAC3qC,KAAK,CAAC,EAAE2qC,iBAAiB,EAAEC,oBAAoB,EAAE/rsB,MAAM,CAAC;QACjG;MACJ;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA,IAAI6rsB,KAAK,CAACjpC,MAAM,CAAC,KAAKipC,KAAK,CAAC3qC,IAAI,CAAC,EAAE;QAC/BlhqB,MAAM,CAACzsB,IAAI,CAACs4tB,KAAK,CAACjpC,MAAM,CAAC,CAAC;MAC9B;IACJ;IACA,MAAMiR,SAAS,GAAG5c,KAAK,CAACrzqB,IAAI;IAC5B,IAAIiwrB,SAAS,GAAG,CAAC,CAAC,kCAAkC;MAChD+3B,kBAAkB,CAAC10C,KAAK,EAAE0M,KAAK,EAAE3M,KAAK,CAAC79pB,KAAK,EAAE4G,MAAM,CAAC;IACzD,CAAC,MACI,IAAI6zqB,SAAS,GAAG,EAAE,CAAC,qBAAqB;MACzC,MAAMuX,SAAS,GAAGrF,mBAAmB,CAAC9uB,KAAK,EAAE2M,KAAK,CAAC;MACnD,IAAImjB,KAAK;MACT,OAAOA,KAAK,GAAGqE,SAAS,CAAC,CAAC,EAAE;QACxBprrB,MAAM,CAACzsB,IAAI,CAACwzsB,KAAK,CAAC;MACtB;IACJ,CAAC,MACI,IAAIlT,SAAS,GAAG,EAAE,CAAC,4BAA4B;MAChD,MAAMm4B,WAAW,GAAG1gB,kBAAkB,CAAC1nB,KAAK,EAAE3M,KAAK,CAAC;MACpD,IAAIt/qB,KAAK,CAACoJ,OAAO,CAACirtB,WAAW,CAAC,EAAE;QAC5BhssB,MAAM,CAACzsB,IAAI,CAAC,GAAGy4tB,WAAW,CAAC;MAC/B,CAAC,MACI;QACD,MAAMp3B,UAAU,GAAGsR,cAAc,CAACtiB,KAAK,CAAC5B,0BAA0B,CAAC,CAAC;QACpErrH,SAAS,IAAI4uH,gBAAgB,CAACqP,UAAU,CAAC;QACzCg3B,kBAAkB,CAACh3B,UAAU,CAACzT,KAAK,CAAC,EAAEyT,UAAU,EAAEo3B,WAAW,EAAEhssB,MAAM,EAAE,IAAI,CAAC;MAChF;IACJ;IACAi3pB,KAAK,GAAG+0B,YAAY,GAAG/0B,KAAK,CAACk1B,cAAc,GAAGl1B,KAAK,CAACzkrB,IAAI;EAC5D;EACA,OAAOwtB,MAAM;AACjB;AAEA,SAASissB,qBAAqBA,CAAC/0C,KAAK,EAAE0M,KAAK,EAAEhllB,OAAO,EAAEstnB,kBAAkB,GAAG,IAAI,EAAE;EAC7E,MAAMpD,eAAe,GAAGllC,KAAK,CAACjC,WAAW,CAAC,CAACmnC,eAAe;EAC1D;EACA;EACA;EACA,MAAMjJ,kBAAkB,GAAG,CAAC,CAAClpJ,SAAS,IAAIu3H,sBAAsB,CAAC,CAAC;EAClE,IAAI,CAAC2xB,kBAAkB,IAAIiJ,eAAe,CAACvpsB,KAAK,EAC5CupsB,eAAe,CAACvpsB,KAAK,CAAC,CAAC;EAC3B,IAAI;IACA4ssB,WAAW,CAACj1C,KAAK,EAAE0M,KAAK,EAAE1M,KAAK,CAACrzU,QAAQ,EAAEjlQ,OAAO,CAAC;EACtD,CAAC,CACD,OAAOloG,KAAK,EAAE;IACV,IAAIw1tB,kBAAkB,EAAE;MACpBvO,WAAW,CAAC/5B,KAAK,EAAEltrB,KAAK,CAAC;IAC7B;IACA,MAAMA,KAAK;EACf,CAAC,SACO;IACJ,IAAI,CAACmptB,kBAAkB,IAAIiJ,eAAe,CAACtpsB,GAAG,EAC1CspsB,eAAe,CAACtpsB,GAAG,CAAC,CAAC;IACzB;IACA;IACA,CAACqgsB,kBAAkB,IAAIj8B,KAAK,CAACjC,WAAW,CAAC,CAAC4pC,aAAa,EAAEhviB,KAAK,CAAC,CAAC;EACpE;AACJ;AACA,SAAS6viB,sBAAsBA,CAACl1C,KAAK,EAAE0M,KAAK,EAAEhllB,OAAO,EAAEstnB,kBAAkB,GAAG,IAAI,EAAE;EAC9E/9B,yBAAyB,CAAC,IAAI,CAAC;EAC/B,IAAI;IACA89B,qBAAqB,CAAC/0C,KAAK,EAAE0M,KAAK,EAAEhllB,OAAO,EAAEstnB,kBAAkB,CAAC;EACpE,CAAC,SACO;IACJ/9B,yBAAyB,CAAC,KAAK,CAAC;EACpC;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASvgE,aAAaA,CAACptV,SAAS,EAAE;EAC9B,MAAM5zN,IAAI,GAAGk4nB,0BAA0B,CAACtka,SAAS,CAAC;EAClDyrb,qBAAqB,CAACr/oB,IAAI,CAACu0mB,KAAK,CAAC,EAAEv0mB,IAAI,EAAE4zN,SAAS,CAAC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS2rb,WAAWA,CAACj1C,KAAK,EAAE0M,KAAK,EAAEy+B,UAAU,EAAEzjnB,OAAO,EAAE;EACpD+3d,SAAS,IAAI69G,WAAW,CAAC6W,cAAc,CAACzH,KAAK,CAAC,EAAE,KAAK,EAAE,8BAA8B,CAAC;EACtF,MAAMtoU,KAAK,GAAGsoU,KAAK,CAAC9yQ,KAAK,CAAC;EAC1B,IAAI,CAACx1D,KAAK,GAAG,GAAG,CAAC,gCAAgC,GAAG,CAAC,4BACjD;EACJ;EACA;EACA,MAAM+wW,sBAAsB,GAAG11J,SAAS,IAAIu3H,sBAAsB,CAAC,CAAC;EACpE,CAACm+B,sBAAsB,IAAIzoC,KAAK,CAACjC,WAAW,CAAC,CAAC4pC,aAAa,EAAEhviB,KAAK,CAAC,CAAC;EACpEqzgB,SAAS,CAAChM,KAAK,CAAC;EAChB,IAAI;IACA6H,sBAAsB,CAAC7H,KAAK,CAAC;IAC7B4K,eAAe,CAACtX,KAAK,CAAC+N,iBAAiB,CAAC;IACxC,IAAIo9B,UAAU,KAAK,IAAI,EAAE;MACrBD,eAAe,CAAClrC,KAAK,EAAE0M,KAAK,EAAEy+B,UAAU,EAAE,CAAC,CAAC,0BAA0BzjnB,OAAO,CAAC;IAClF;IACA,MAAMkhnB,uBAAuB,GAAG,CAACxkW,KAAK,GAAG,CAAC,CAAC,yCAAyC,CAAC,CAAC;IACtF;IACA;IACA,IAAI,CAAC+wW,sBAAsB,EAAE;MACzB,IAAIvM,uBAAuB,EAAE;QACzB,MAAMpuB,kBAAkB,GAAGxa,KAAK,CAACwa,kBAAkB;QACnD,IAAIA,kBAAkB,KAAK,IAAI,EAAE;UAC7BW,iBAAiB,CAACzO,KAAK,EAAE8N,kBAAkB,EAAE,IAAI,CAAC;QACtD;MACJ,CAAC,MACI;QACD,MAAMD,aAAa,GAAGva,KAAK,CAACua,aAAa;QACzC,IAAIA,aAAa,KAAK,IAAI,EAAE;UACxBc,wBAAwB,CAAC3O,KAAK,EAAE6N,aAAa,EAAE,CAAC,CAAC,yCAAyC,IAAI,CAAC;QACnG;QACAgB,uBAAuB,CAAC7O,KAAK,EAAE,CAAC,CAAC,uCAAuC,CAAC;MAC7E;IACJ;IACA;IACA;IACA;IACA0oC,+BAA+B,CAAC1oC,KAAK,CAAC;IACtC2oC,oBAAoB,CAAC3oC,KAAK,CAAC;IAC3B;IACA,IAAI1M,KAAK,CAACx6C,cAAc,KAAK,IAAI,EAAE;MAC/B+sF,qBAAqB,CAACvyC,KAAK,EAAE0M,KAAK,CAAC;IACvC;IACA;IACA;IACA,IAAI,CAACyoC,sBAAsB,EAAE;MACzB,IAAIvM,uBAAuB,EAAE;QACzB,MAAM7tB,iBAAiB,GAAG/a,KAAK,CAAC+a,iBAAiB;QACjD,IAAIA,iBAAiB,KAAK,IAAI,EAAE;UAC5BI,iBAAiB,CAACzO,KAAK,EAAEqO,iBAAiB,CAAC;QAC/C;MACJ,CAAC,MACI;QACD,MAAMD,YAAY,GAAG9a,KAAK,CAAC8a,YAAY;QACvC,IAAIA,YAAY,KAAK,IAAI,EAAE;UACvBO,wBAAwB,CAAC3O,KAAK,EAAEoO,YAAY,EAAE,CAAC,CAAC,iDAAiD,CAAC;QACtG;;QACAS,uBAAuB,CAAC7O,KAAK,EAAE,CAAC,CAAC,iDAAiD,CAAC;MACvF;IACJ;;IACAy9B,yBAAyB,CAACnqC,KAAK,EAAE0M,KAAK,CAAC;IACvC;IACA,MAAMp1W,UAAU,GAAG0oW,KAAK,CAAC1oW,UAAU;IACnC,IAAIA,UAAU,KAAK,IAAI,EAAE;MACrBg+Y,sBAAsB,CAAC5oC,KAAK,EAAEp1W,UAAU,CAAC;IAC7C;IACA;IACA;IACA;IACA,MAAMo3R,SAAS,GAAGsxE,KAAK,CAACtxE,SAAS;IACjC,IAAIA,SAAS,KAAK,IAAI,EAAE;MACpBgkH,kBAAkB,CAAC,CAAC,CAAC,0BAA0BhkH,SAAS,EAAEhngB,OAAO,CAAC;IACtE;IACA;IACA;IACA,IAAI,CAACytnB,sBAAsB,EAAE;MACzB,IAAIvM,uBAAuB,EAAE;QACzB,MAAM3tB,cAAc,GAAGjb,KAAK,CAACib,cAAc;QAC3C,IAAIA,cAAc,KAAK,IAAI,EAAE;UACzBE,iBAAiB,CAACzO,KAAK,EAAEuO,cAAc,CAAC;QAC5C;MACJ,CAAC,MACI;QACD,MAAMD,SAAS,GAAGhb,KAAK,CAACgb,SAAS;QACjC,IAAIA,SAAS,KAAK,IAAI,EAAE;UACpBK,wBAAwB,CAAC3O,KAAK,EAAEsO,SAAS,EAAE,CAAC,CAAC,8CAA8C,CAAC;QAChG;;QACAO,uBAAuB,CAAC7O,KAAK,EAAE,CAAC,CAAC,8CAA8C,CAAC;MACpF;IACJ;;IACA,IAAI1M,KAAK,CAAC2N,eAAe,KAAK,IAAI,EAAE;MAChC;MACA;MACA;MACA;MACA;MACA;MACA3N,KAAK,CAAC2N,eAAe,GAAG,KAAK;IACjC;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,CAACwnC,sBAAsB,EAAE;MACzBzoC,KAAK,CAAC9yQ,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,yBAAyB,CAAC,CAAC,gCAAgC;IACpF;;IACA86Q,oBAAoB,CAAChI,KAAK,CAAC;EAC/B,CAAC,SACO;IACJyM,SAAS,CAAC,CAAC;EACf;AACJ;AACA;AACA;AACA;AACA;AACA,SAASk8B,oBAAoBA,CAAC3oC,KAAK,EAAE;EACjC,KAAK,IAAIkjB,UAAU,GAAGN,kBAAkB,CAAC5iB,KAAK,CAAC,EAAEkjB,UAAU,KAAK,IAAI,EAAEA,UAAU,GAAGJ,iBAAiB,CAACI,UAAU,CAAC,EAAE;IAC9G,KAAK,IAAI92sB,CAAC,GAAGgzrB,uBAAuB,EAAEhzrB,CAAC,GAAG82sB,UAAU,CAACr2sB,MAAM,EAAET,CAAC,EAAE,EAAE;MAC9D,MAAMy8tB,aAAa,GAAG3lB,UAAU,CAAC92sB,CAAC,CAAC;MACnC,MAAM08tB,aAAa,GAAGD,aAAa,CAACtrC,KAAK,CAAC;MAC1CxqH,SAAS,IAAIq+G,aAAa,CAAC03C,aAAa,EAAE,yBAAyB,CAAC;MACpE,IAAIphC,4BAA4B,CAACmhC,aAAa,CAAC,EAAE;QAC7CN,WAAW,CAACO,aAAa,EAAED,aAAa,EAAEC,aAAa,CAAC7oX,QAAQ,EAAE4oX,aAAa,CAAChrC,OAAO,CAAC,CAAC;MAC7F;IACJ;EACJ;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,SAAS6qC,+BAA+BA,CAAC1oC,KAAK,EAAE;EAC5C,KAAK,IAAIkjB,UAAU,GAAGN,kBAAkB,CAAC5iB,KAAK,CAAC,EAAEkjB,UAAU,KAAK,IAAI,EAAEA,UAAU,GAAGJ,iBAAiB,CAACI,UAAU,CAAC,EAAE;IAC9G,IAAI,CAACA,UAAU,CAACnkB,sBAAsB,CAAC,EACnC;IACJ,MAAM+lB,UAAU,GAAG5B,UAAU,CAAChkB,WAAW,CAAC;IAC1CnsH,SAAS,IAAIq+G,aAAa,CAAC0zB,UAAU,EAAE,qDAAqD,CAAC;IAC7F,KAAK,IAAI14sB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG04sB,UAAU,CAACj4sB,MAAM,EAAET,CAAC,EAAE,EAAE;MACxC,MAAM28tB,UAAU,GAAGjkB,UAAU,CAAC14sB,CAAC,CAAC;MAChC,MAAMg5sB,mBAAmB,GAAG2jB,UAAU,CAACvrC,MAAM,CAAC;MAC9CzqH,SAAS,IAAI4tH,gBAAgB,CAACykB,mBAAmB,CAAC;MAClDtd,kBAAkB,CAACihC,UAAU,CAAC;IAClC;EACJ;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,gBAAgBA,CAACrC,SAAS,EAAEC,gBAAgB,EAAE;EACnD7zJ,SAAS,IAAI69G,WAAW,CAAC6W,cAAc,CAACk/B,SAAS,CAAC,EAAE,KAAK,EAAE,8BAA8B,CAAC;EAC1F,MAAMlmb,aAAa,GAAG8mZ,wBAAwB,CAACq/B,gBAAgB,EAAED,SAAS,CAAC;EAC3E;EACA,IAAIj/B,4BAA4B,CAACjnZ,aAAa,CAAC,EAAE;IAC7C,MAAM6yY,KAAK,GAAG7yY,aAAa,CAAC88Y,KAAK,CAAC;IAClC,IAAI98Y,aAAa,CAACysI,KAAK,CAAC,IAAI,EAAE,CAAC,+BAA+B,EAAE,CAAC,uBAAuB,EAAE;MACtFq7S,WAAW,CAACj1C,KAAK,EAAE7yY,aAAa,EAAE6yY,KAAK,CAACrzU,QAAQ,EAAEx/D,aAAa,CAACo9Y,OAAO,CAAC,CAAC;IAC7E,CAAC,MACI,IAAIp9Y,aAAa,CAACi9Y,2BAA2B,CAAC,GAAG,CAAC,EAAE;MACrD;MACAurC,wBAAwB,CAACxob,aAAa,CAAC;IAC3C;EACJ;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASwob,wBAAwBA,CAACjpC,KAAK,EAAE;EACrC,KAAK,IAAIkjB,UAAU,GAAGN,kBAAkB,CAAC5iB,KAAK,CAAC,EAAEkjB,UAAU,KAAK,IAAI,EAAEA,UAAU,GAAGJ,iBAAiB,CAACI,UAAU,CAAC,EAAE;IAC9G,KAAK,IAAI92sB,CAAC,GAAGgzrB,uBAAuB,EAAEhzrB,CAAC,GAAG82sB,UAAU,CAACr2sB,MAAM,EAAET,CAAC,EAAE,EAAE;MAC9D,MAAMy8tB,aAAa,GAAG3lB,UAAU,CAAC92sB,CAAC,CAAC;MACnC,IAAIs7rB,4BAA4B,CAACmhC,aAAa,CAAC,EAAE;QAC7C,IAAIA,aAAa,CAAC37S,KAAK,CAAC,GAAG,IAAI,CAAC,8BAA8B;UAC1D,MAAM47S,aAAa,GAAGD,aAAa,CAACtrC,KAAK,CAAC;UAC1CxqH,SAAS,IAAIq+G,aAAa,CAAC03C,aAAa,EAAE,yBAAyB,CAAC;UACpEP,WAAW,CAACO,aAAa,EAAED,aAAa,EAAEC,aAAa,CAAC7oX,QAAQ,EAAE4oX,aAAa,CAAChrC,OAAO,CAAC,CAAC;QAC7F,CAAC,MACI,IAAIgrC,aAAa,CAACnrC,2BAA2B,CAAC,GAAG,CAAC,EAAE;UACrDurC,wBAAwB,CAACJ,aAAa,CAAC;QAC3C;MACJ;IACJ;EACJ;EACA,MAAMv1C,KAAK,GAAG0M,KAAK,CAACzC,KAAK,CAAC;EAC1B;EACA,MAAM3yW,UAAU,GAAG0oW,KAAK,CAAC1oW,UAAU;EACnC,IAAIA,UAAU,KAAK,IAAI,EAAE;IACrB,KAAK,IAAIx+U,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGw+U,UAAU,CAAC/9U,MAAM,EAAET,CAAC,EAAE,EAAE;MACxC,MAAMq0S,aAAa,GAAG8mZ,wBAAwB,CAAC38W,UAAU,CAACx+U,CAAC,CAAC,EAAE4zrB,KAAK,CAAC;MACpE;MACA,IAAI0H,4BAA4B,CAACjnZ,aAAa,CAAC,IAC3CA,aAAa,CAACi9Y,2BAA2B,CAAC,GAAG,CAAC,EAAE;QAChDurC,wBAAwB,CAACxob,aAAa,CAAC;MAC3C;IACJ;EACJ;AACJ;AACA;AACA,SAASmob,sBAAsBA,CAACjC,SAAS,EAAE/7Y,UAAU,EAAE;EACnD,KAAK,IAAIx+U,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGw+U,UAAU,CAAC/9U,MAAM,EAAET,CAAC,EAAE,EAAE;IACxC48tB,gBAAgB,CAACrC,SAAS,EAAE/7Y,UAAU,CAACx+U,CAAC,CAAC,CAAC;EAC9C;AACJ;AAEA,MAAM88tB,SAAS,CAAC;EACZ,IAAIn/F,SAASA,CAAA,EAAG;IACZ,MAAMi2D,KAAK,GAAG,IAAI,CAAC+U,MAAM;IACzB,MAAMzhB,KAAK,GAAG0M,KAAK,CAACzC,KAAK,CAAC;IAC1B,OAAOyqC,kBAAkB,CAAC10C,KAAK,EAAE0M,KAAK,EAAE1M,KAAK,CAACptpB,UAAU,EAAE,EAAE,CAAC;EACjE;EACArzB,WAAWA;EACX;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACIkisB,MAAM;EACN;AACJ;AACA;AACA;AACA;AACA;EACIo0B,mBAAmB,EAAE;IACjB,IAAI,CAACp0B,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACo0B,mBAAmB,GAAGA,mBAAmB;IAC9C,IAAI,CAACjnG,OAAO,GAAG,IAAI;IACnB,IAAI,CAACknG,wBAAwB,GAAG,KAAK;EACzC;EACA,IAAIpunB,OAAOA,CAAA,EAAG;IACV,OAAO,IAAI,CAAC+5lB,MAAM,CAAClX,OAAO,CAAC;EAC/B;EACA,IAAI7ilB,OAAOA,CAACztG,KAAK,EAAE;IACf,IAAI,CAACwnsB,MAAM,CAAClX,OAAO,CAAC,GAAGtwrB,KAAK;EAChC;EACA,IAAI0klB,SAASA,CAAA,EAAG;IACZ,OAAO,CAAC,IAAI,CAAC8iH,MAAM,CAAC7nR,KAAK,CAAC,GAAG,GAAG,CAAC,gCAAgC,GAAG,CAAC;EACzE;;EACArgD,OAAOA,CAAA,EAAG;IACN,IAAI,IAAI,CAACq1P,OAAO,EAAE;MACd,IAAI,CAACA,OAAO,CAACyH,UAAU,CAAC,IAAI,CAAC;IACjC,CAAC,MACI,IAAI,IAAI,CAACy/F,wBAAwB,EAAE;MACpC,MAAMr7oB,MAAM,GAAG,IAAI,CAACgnnB,MAAM,CAACvX,MAAM,CAAC;MAClC,IAAI+B,YAAY,CAACxxmB,MAAM,CAAC,EAAE;QACtB,MAAMs7oB,QAAQ,GAAGt7oB,MAAM,CAACkxmB,SAAS,CAAC;QAClC,MAAMtqqB,KAAK,GAAG00sB,QAAQ,GAAGA,QAAQ,CAAC38tB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpD,IAAIioB,KAAK,GAAG,CAAC,CAAC,EAAE;UACZo+iB,SAAS,IACL69G,WAAW,CAACj8pB,KAAK,EAAEo5D,MAAM,CAACrhF,OAAO,CAAC,IAAI,CAACqosB,MAAM,CAAC,GAAG3V,uBAAuB,EAAE,6GAA6G,CAAC;UAC5Lz1D,UAAU,CAAC57iB,MAAM,EAAEp5D,KAAK,CAAC;UACzByjrB,eAAe,CAACixB,QAAQ,EAAE10sB,KAAK,CAAC;QACpC;MACJ;MACA,IAAI,CAACy0sB,wBAAwB,GAAG,KAAK;IACzC;IACA5jB,YAAY,CAAC,IAAI,CAACzQ,MAAM,CAACxX,KAAK,CAAC,EAAE,IAAI,CAACwX,MAAM,CAAC;EACjD;EACA9jI,SAASA,CAACx+iB,QAAQ,EAAE;IAChBy1qB,mBAAmB,CAAC,IAAI,CAAC6M,MAAM,EAAEtirB,QAAQ,CAAC;EAC9C;EACA;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;EACI2jlB,YAAYA,CAAA,EAAG;IACXojH,aAAa,CAAC,IAAI,CAAC2P,mBAAmB,IAAI,IAAI,CAACp0B,MAAM,CAAC;EAC1D;EACA;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;EACIz5F,MAAMA,CAAA,EAAG;IACL,IAAI,CAACy5F,MAAM,CAAC7nR,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;EAC/B;EACA;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;EACIo8S,QAAQA,CAAA,EAAG;IACP,IAAI,CAACv0B,MAAM,CAAC7nR,KAAK,CAAC,IAAI,GAAG,CAAC;EAC9B;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI88M,aAAaA,CAAA,EAAG;IACZq+F,qB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;EAC3D,OAAQA,aAAa,GAAG,CAAC,CAAC;AAC9B;;AACA,SAASQ,oBAAoBA,CAACR,aAAa,EAAE;EACzCpnK,SAAS,IAAIo9G,YAAY,CAACgqD,aAAa,EAAE,iBAAiB,CAAC;EAC3D,MAAMvruB,IAAI,GAAG2ruB,oBAAoB,CAACJ,aAAa,CAAC;EAChD,OAAOvruB,IAAI,KAAK,CAAC,GAAGsruB,oBAAoB,CAACC,aAAa,CAAC,GAAGvruB,IAAI;AAClE;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIgsuB,mEAAmE;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,qBAAqBA,CAACtvC,KAAK,EAAElY,KAAK,EA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AAM,EAAE09U,EAAE,EAAEw7O,EAAE,EAAElnc,EAAE,EAAEsyd,EAAE,EAAEryd,EAAE,EAAE8xB,EAAE,EAAE7xB,EAAE,EAAE4ye,EAAE,EAAE4xH,EAAE,EAAEE,EAAE,EAAEC,EAAE,EAAE52tB,MAAM,CAAC;EAC3GokuB,eAAe,CAACllC,gBAAgB,EAAEulC,iBAAiB,EAAE75mB,iBAAiB,EAAE,IAAI,CAAC;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASu9mB,sBAAsBA,CAACpouB,MAAM,EAAE09U,EAAE,EAAEw7O,EAAE,EAAElnc,EAAE,EAAEsyd,EAAE,EAAEryd,EAAE,EAAE8xB,EAAE,EAAE7xB,EAAE,EAAE4ye,EAAE,EAAE4xH,EAAE,EAAEE,EAAE,EAAEC,EAAE,EAAElgH,EAAE,EAAEogH,EAAE,EAAE92tB,MAAM,EAAE;EAChG,MAAMumrB,KAAK,GAAGwJ,QAAQ,CAAC,CAAC;EACxB,MAAMnlkB,iBAAiB,GAAGismB,cAAc,CAACtwC,KAAK,EAAExmrB,MAAM,EAAE09U,EAAE,EAAEw7O,EAAE,EAAElnc,EAAE,EAAEsyd,EAAE,EAAEryd,EAAE,EAAE8xB,EAAE,EAAE7xB,EAAE,EAAE4ye,EAAE,EAAE4xH,EAAE,EAAEE,EAAE,EAAEC,EAAE,EAAElgH,EAAE,EAAEogH,EAAE,EAAE92tB,MAAM,CAAC;EACnHokuB,eAAe,CAACllC,gBAAgB,EAAEulC,iBAAiB,EAAE75mB,iBAAiB,EAAE,IAAI,CAAC;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASw9mB,sBAAsBA,CAACrouB,MAAM,EAAE09U,EAAE,EAAEw7O,EAAE,EAAElnc,EAAE,EAAEsyd,EAAE,EAAEryd,EAAE,EAAE8xB,EAAE,EAAE7xB,EAAE,EAAE4ye,EAAE,EAAE4xH,EAAE,EAAEE,EAAE,EAAEC,EAAE,EAAElgH,EAAE,EAAEogH,EAAE,EAAEzgH,EAAE,EAAE2gH,EAAE,EAAEh3tB,MAAM,EAAE;EACxG,MAAMumrB,KAAK,GAAGwJ,QAAQ,CAAC,CAAC;EACxB,MAAMnlkB,iBAAiB,GAAGmsmB,cAAc,CAACxwC,KAAK,EAAExmrB,MAAM,EAAE09U,EAAE,EAAEw7O,EAAE,EAAElnc,EAAE,EAAEsyd,EAAE,EAAEryd,EAAE,EAAE8xB,EAAE,EAAE7xB,EAAE,EAAE4ye,EAAE,EAAE4xH,EAAE,EAAEE,EAAE,EAAEC,EAAE,EAAElgH,EAAE,EAAEogH,EAAE,EAAEzgH,EAAE,EAAE2gH,EAAE,EAAEh3tB,MAAM,CAAC;EAC3HokuB,eAAe,CAACllC,gBAAgB,EAAEulC,iBAAiB,EAAE75mB,iBAAiB,EAAE,IAAI,CAAC;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASy9mB,sBAAsBA,CAAC9jtB,MAAM,EAAE;EACpC,MAAMgiqB,KAAK,GAAGwJ,QAAQ,CAAC,CAAC;EACxB,MAAMnlkB,iBAAiB,GAAGsrmB,cAAc,CAAC3vC,KAAK,EAAEhiqB,MAAM,CAAC;EACvD6/sB,eAAe,CAACllC,gBAAgB,EAAEulC,iBAAiB,EAAE75mB,iBAAiB,EAAE,IAAI,CAAC;AACjF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS09mB,sBAAsBA,CAACvouB,MAAM,EAAE09U,EAAE,EAAEz9U,MAAM,EAAE;EAChD,MAAMumrB,KAAK,GAAGwJ,QAAQ,CAAC,CAAC;EACxB,MAAMnlkB,iBAAiB,GAAGwrmB,cAAc,CAAC7vC,KAAK,EAAExmrB,MAAM,EAAE09U,EAAE,EAAEz9U,MAAM,CAAC;EACnEmkuB,UAAU,CAACv5mB,iBAAiB,CAAC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS29mB,sBAAsBA,CAACxouB,MAAM,EAAE09U,EAAE,EAAEw7O,EAAE,EAAElnc,EAAE,EAAE/xH,MAAM,EAAE;EACxD,MAAMumrB,KAAK,GAAGwJ,QAAQ,CAAC,CAAC;EACxB,MAAMnlkB,iBAAiB,GAAGyrmB,cAAc,CAAC9vC,KAAK,EAAExmrB,MAAM,EAAE09U,EAAE,EAAEw7O,EAAE,EAAElnc,EAAE,EAAE/xH,MAAM,CAAC;EAC3EmkuB,UAAU,CAACv5mB,iBAAiB,CAAC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS49mB,sBAAsBA,CAACzouB,MAAM,EAAE09U,EAAE,EAAEw7O,EAAE,EAAElnc,EAAE,EAAEsyd,EAAE,EAAEryd,EAAE,EAAEhyH,MAAM,EAAE;EAChE,MAAMumrB,KAAK,GAAGwJ,QAAQ,CAAC,CAAC;EACxB,MAAMnlkB,iBAAiB,GAAG0rmB,cAAc,CAAC/vC,KAAK,EAAExmrB,MAAM,EAAE09U,EAAE,EAAEw7O,EAAE,EAAElnc,EAAE,EAAEsyd,EAAE,EAAEryd,EAAE,EAAEhyH,MAAM,CAAC;EACnFmkuB,UAAU,CAACv5mB,iBAAiB,CAAC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS69mB,sBAAsBA,CAAC1ouB,MAAM,EAAE09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;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASolD,SAASA,CAAA,EAAG;EACjBplD,cAAc,CAAC,KAAK,CAAC;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASqlD,MAAMA,CAAC37tB,KAAK,EAAEw7tB,YAAY,EAAE7E,gBAAgB,EAAE;EACnD4E,WAAW,CAACv7tB,KAAK,EAAEw7tB,YAAY,EAAE7E,gBAAgB,CAAC;EAClD+E,SAAS,CAAC,CAAC;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASE,gBAAgBA,CAAC57tB,KAAK,EAAE+gtB,UAAU,EAAE;EACzC,MAAMpiD,KAAK,GAAGmW,QAAQ,CAAC,CAAC;EACxB12H,SAAS,IAAIq+G,aAAa,CAACkC,KAAK,EAAG,yBAAwB,CAAC;EAC5D,MAAMpjqB,KAAK,GAAG03qB,WAAW,CAACtU,KAAK,CAAC7qP,MAAM,EAAEitS,UAAU,CAAC;EACnD6W,uBAAuB,CAACj5D,KAAK,EAAE3+pB,KAAK,GAAGkqqB,aAAa,EAAE3uqB,KAAK,CAAC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASsguB,SAASA,CAACjjvB,KAAK,EAAE;EACtB,MAAMyyrB,KAAK,GAAGwJ,QAAQ,CAAC,CAAC;EACxBi9C,UAAU,CAACxX,cAAc,CAACjvC,KAAK,EAAE6K,gBAAgB,CAAC,CAAC,EAAEt9rB,KAAK,CAAC,CAAC;EAC5D,OAAOijvB,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,WAAWA,CAAC97tB,KAAK,EAAE;EACxBgytB,SAAS,CAACl9C,QAAQ,CAAC,CAAC,EAAED,QAAQ,CAAC,CAAC,EAAE70qB,KAAK,GAAGkqqB,aAAa,CAAC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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A,MAAMkrkB,MAAM,GAAGk5G,iBAAiB,CAAC,QAAQ,EAAG5rW,KAAK,KAAM;EAAEA;AAAM,CAAC,CAAC,CAAC;AAClE;AACA;AACA;AACA;AACA,MAAMu6Z,WAAW,GAAG3uD,iBAAiB,CAAC,aAAa,EAAG4uD,gBAAgB,KAAM;EAAEA;AAAiB,CAAC,CAAC,CAAC;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,YAAY,GAAG7uD,iBAAiB,CAAC,cAAc,EAAE,CAACh9e,SAAS,EAAE1+L,IAAI,MAAM;EAAE0+L,SAAS;EAAE1+L;AAAK,CAAC,CAAC,CAAC;;AAElG;AACA;AACA;AACA,MAAMyikB,QAAQ,GAAG+3G,aAAa,CAAC,UAAU,EAAGttC,QAAQ,IAAKA,QAAQ,EAAEp8oB,SAAS,EAAEA,SAAS;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAClM,IAAI,EAAEimB,IAAI,KAAKi6tB,eAAe,CAAClgvB,IAAI,EAAEimB,IAAI,CAAC,CAAC;;AAE5C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM2/tB,gBAAgB,GAAG,IAAI;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA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A;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM5xF,SAAS,GAAG,IAAIj1D,cAAc,CAAC,UAAU,EAAE;EAC7CwE,UAAU,EAAE,MAAM;EAClBl5O,OAAO,EAAEA,CAAA,KAAMo0O,MAAM,CAACu1D,SAAS,EAAE6/B,WAAW,CAAC70F,QAAQ,GAAG60F,WAAW,CAAC19E,QAAQ,CAAC,IAAI4xJ,eAAe,CAAC;AACrG,CAAC,CAAC;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMpzG,qBAAqB,GAAG,IAAI51D,cAAc,CAAC,qBAAqB,EAAE;EACpEwE,UAAU,EAAE,MAAM;EAClBl5O,OAAO,EAAEA,CAAA,KAAMw7X;AACnB,CAAC,CAAC;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,MAAMqiB,YAAY,GAAG,IAAInpK,cAAc,CAAC,cAAc,CAAC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMopK,mBAAmB,GAAG,IAAIppK,cAAc,CAAC,oBAAoB,CAAC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIqpK,0BAA0B;AAC9B,CAAC,UAAUA,0BAA0B,EAAE;EACnCA,0BAA0B,CAACA,0BAA0B,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO;EAC7EA,0BAA0B,CAACA,0BAA0B,CAAC,SAAS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IACA,OAAOkwB,MAAM;EACjB,CAAC,CACD,OAAOlwB,CAAC,EAAE;IACNghmB,MAAM,CAAC7E,iBAAiB,CAAC,MAAMm+H,YAAY,CAACzM,WAAW,CAAC7ttB,CAAC,CAAC,CAAC;IAC3D;IACA,MAAMA,CAAC;EACX;AACJ;AACA,SAASgmwB,cAAcA,CAAC7kU,GAAG,EAAEklU,IAAI,EAAE;EAC/B,IAAIx+vB,KAAK,CAACoJ,OAAO,CAACo1vB,IAAI,CAAC,EAAE;IACrB,OAAOA,IAAI,CAAC/9vB,MAAM,CAAC09vB,cAAc,EAAE7kU,GAAG,CAAC;EAC3C;EACA,OAAO;IAAE,GAAGA,GAAG;IAAE,GAAGklU;EAAK,CAAC;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMxiJ,cAAc,CAAC;EACjBl9mB,WAAWA,CAAA,EAAG;IACV;IACA,IAAI,CAAC2/vB,mBAAmB,GAAG,EAAE;IAC7B,IAAI,CAACC,YAAY,GAAG,KAAK;IACzB,IAAI,CAAC9hM,UAAU,GAAG,KAAK;IACvB,IAAI,CAAC0gM,iBAAiB,GAAG,EAAE;IAC3B;IACA,IAAI,CAAC5X,MAAM,GAAG,EAAE;IAChB,IAAI,CAACiZ,oBAAoB,GAAGv1K,MAAM,CAACw1K,kCAAkC,CAAC;IACtE,IAAI,CAACC,YAAY,GAAGz1K,MAAM,CAACyuK,yBAAyB,CAAC;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;QACZjikB,IAAI,EAAE,CAAC4rvB,uBAAuB;MAClC,CAAC;IAAE,CAAC,CAAC;EAAE,CAAC;AAAA;AAExB,SAASY,iBAAiBA,CAACr6wB,KAAK,EAAE;EAC9B;AACJ;AACA;AACA;AACA;EACI,OAAOA,KAAK,IAAI,IAAI,IACf,CAAC,OAAOA,KAAK,KAAK,QAAQ,IAAIwG,KAAK,CAACoJ,OAAO,CAAC5P,KAAK,CAAC,KAAKA,KAAK,CAACV,MAAM,KAAK,CAAE;AACnF;AACA,SAASg7wB,cAAcA,CAACt6wB,KAAK,EAAE;EAC3B;EACA,OAAOA,KAAK,IAAI,IAAI,IAAI,OAAOA,KAAK,CAACV,MAAM,KAAK,QAAQ;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMi7wB,aAAa,GAAG,IAAIrqL,yDAAc,CAAC,cAAc,CAAC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMsqL,mBAAmB,GAAG,IAAItqL,yDAAc,CAAC,mBAAmB,CAAC;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMuqL,YAAY,GAAG,oMAAoM;AACzN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,UAAU,CAAC;EACb;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI,OAAOh+rB,GAAGA,CAACA,GAAG,EAAE;IACZ,OAAOi+rB,YAAY,CAACj+rB,GAAG,CAAC;EAC5B;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI,OAAOh4E,GAAGA,CAACA,GAAG,EAAE;IACZ,OAAOk2wB,YAAY,CAACl2wB,GAAG,CAAC;EAC5B;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI,OAAOi/W,QAAQA,CAACoqR,OAAO,EAAE;IACrB,OAAO8sI,iBAAiB,CAAC9sI,OAAO,CAAC;EACrC;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI,OAAO+sI,YAAYA,CAAC/sI,OAAO,EAAE;IACzB,OAAOgtI,qBAAqB,CAAChtI,OAAO,CAAC;EACzC;EACA;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;EACI,OAAOitI,KAAKA,CAACjtI,OAAO,EAAE;IAClB,OAAOktI,cAAc,CAACltI,OAAO,CAAC;EAClC;EACA;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;EACI,OAAOmtI,SAASA,CAACA,SAAS,EAAE;IACxB,OAAOC,kBAAkB,CAACD,SAAS,CAAC;EACxC;EACA;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;EACI,OAAOv1C,SAASA,CAACA,SAAS,EAAE;IACxB,OAAOy1C,kBAAkB,CAACz1C,SAAS,CAAC;EACxC;EACA;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;EACI,OAAO3rY,OAAOA,CAACA,OAAO,EAAE;IACpB,OAAOqhb,gBAAgB,CAACrhb,OAAO,CAAC;EACpC;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;EACI,OAAOshb,aAAaA,CAACvtI,OAAO,EAAE;IAC1B,OAAOutI,aAAa,CAACvtI,OAAO,CAAC;EACjC;EACA,OAAOwtI,OAAOA,CAACC,UAAU,EAAE;IACvB,OAAOD,OAAO,CAACC,UAAU,CAAC;EAC9B;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI,OAAOC,YAAYA,CAACD,UAAU,EAAE;IAC5B,OAAOC,YAAY,CAACD,UAAU,CAAC;EACnC;AACJ;AACA;AACA;AACA;AACA;AACA,SAASb,YAAYA,CAACj+rB,GAAG,EAAE;EACvB,OAAQqxjB,OAAO,IAAK;IAChB,IAAIssI,iBAAiB,CAACtsI,OAAO,CAAC/toB,KAAK,CAAC,IAAIq6wB,iBAAiB,CAAC39rB,GAAG,CAAC,EAAE;MAC5D,OAAO,IAAI,CAAC,CAAC;IACjB;;IACA,MAAM18E,KAAK,GAAGw0B,UAAU,CAACu5mB,OAAO,CAAC/toB,KAAK,CAAC;IACvC;IACA;IACA,OAAO,CAACy0B,KAAK,CAACz0B,KAAK,CAAC,IAAIA,KAAK,GAAG08E,GAAG,GAAG;MAAE,KAAK,EAAE;QAAE,KAAK,EAAEA,GAAG;QAAE,QAAQ,EAAEqxjB,OAAO,CAAC/toB;MAAM;IAAE,CAAC,GAAG,IAAI;EACnG,CAAC;AACL;AACA;AACA;AACA;AAC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A,OAAO,CAACl0mB,KAAK,CAAC75B,KAAK,CAAC;EACjC;EACA;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;EACIgoZ,QAAQA,CAACmvB,SAAS,EAAEnma,IAAI,EAAE;IACtB,OAAO,IAAI,CAAC+8nB,OAAO,GAAG,IAAI,CAACA,OAAO,CAAC/lP,QAAQ,CAACmvB,SAAS,EAAEnma,IAAI,CAAC,GAAG,KAAK;EACxE;EACA;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;EACIitwB,QAAQA,CAAC9mW,SAAS,EAAEnma,IAAI,EAAE;IACtB,OAAO,IAAI,CAAC+8nB,OAAO,GAAG,IAAI,CAACA,OAAO,CAACkwI,QAAQ,CAAC9mW,SAAS,EAAEnma,IAAI,CAAC,GAAG,IAAI;EACvE;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMktwB,gBAAgB,SAASd,wBAAwB,CAAC;EACpD;AACJ;AACA;AACA;EACI,IAAIe,aAAaA,CAAA,EAAG;IAChB,OAAO,IAAI;EACf;EACA;AACJ;AACA;AACA;EACI,IAAIntwB,IAAIA,CAAA,EAAG;IACP,OAAO,IAAI;EACf;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMotwB,SAAS,SAAShB,wBAAwB,CAAC;EAC7C93wB,WAAWA,CAAA,EAAG;IACV,KAAK,CAAC,GAAG8C,SAAS,CAAC;IACnB;AACR;AACA;AACA;AACA;AACA;IACQ,IAAI,CAACi9uB,OAAO,GAAG,IAAI;IACnB;AACR;AACA;AACA;IACQ,IAAI,CAAClgvB,IAAI,GAAG,IAAI;IAChB;AACR;AACA;AACA;IACQ,IAAI,CAACk5wB,aAAa,GAAG,IAAI;EAC7B;AACJ;;AAEA;AACA;AACA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ACIE,aAAaA,CAAC5G,UAAU,EAAE;IACtB,IAAI,CAACsG,iBAAiB,CAACtG,UAAU,CAAC;EACtC;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI6G,kBAAkBA,CAAC7G,UAAU,EAAE;IAC3B,IAAI,CAACuG,sBAAsB,CAACvG,UAAU,CAAC;EAC3C;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACIwB,aAAaA,CAACxB,UAAU,EAAE;IACtB,IAAI,CAAC4G,aAAa,CAACpF,aAAa,CAACxB,UAAU,EAAE,IAAI,CAACmB,cAAc,CAAC,CAAC;EACtE;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI2F,kBAAkBA,CAAC9G,UAAU,EAAE;IAC3B,IAAI,CAAC6G,kBAAkB,CAACrF,aAAa,CAACxB,UAAU,EAAE,IAAI,CAACqB,mBAAmB,CAAC,CAAC;EAChF;EACA;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,gBAAgBA,CAAC3B,UAAU,EAAE;IACzB,IAAI,CAAC4G,aAAa,CAACjF,gBAAgB,CAAC3B,UAAU,EAAE,IAAI,CAACmB,cAAc,CAAC,CAAC;EACzE;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI4F,qBAAqBA,CAAC/G,UAAU,EAAE;IAC9B,IAAI,CAAC6G,kBAAkB,CAAClF,gBAAgB,CAAC3B,UAAU,EAAE,IAAI,CAACqB,mBAAmB,CAAC,CAAC;EACnF;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACIE,YAAYA,CAACf,SAAS,EAAE;IACpB,OAAOe,YAAY,CAAC,IAAI,CAACJ,cAAc,EAAEX,SAAS,CAAC;EACvD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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,MAAMmI,SAAS,SAASxD,eAAe,CAAC;EACpC;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACIl8wB,WAAWA,CAAC+7wB,QAAQ,EAAEP,eAAe,EAAEhD,cAAc,EAAE;IACnD,KAAK,CAAC+C,cAAc,CAACC,eAAe,CAAC,EAAEG,mBAAmB,CAACnD,cAAc,EAAEgD,eAAe,CAAC,CAAC;IAC5F,IAAI,CAACO,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACmD,gBAAgB,CAAC,CAAC;IACvB,IAAI,CAACM,kBAAkB,CAAChE,eAAe,CAAC;IACxC,IAAI,CAACmE,cAAc,CAAC,CAAC;IACrB,IAAI,CAACxB,sBAAsB,CAAC;MACxBb,QAAQ,EAAE,IAAI;MACd;MACA;MACA;MACAlpK,SAAS,EAAE,CAAC,CAAC,IAAI,CAACokK;IACtB,CAAC,CAAC;EACN;EACAoH,eAAeA,CAAC//wB,IAAI,EAAE4ooB,OAAO,EAAE;IAC3B,IAAI,IAAI,CAACszI,QAAQ,CAACl8wB,IAAI,CAAC,EACnB,OAAO,IAAI,CAACk8wB,QAAQ,CAACl8wB,IAAI,CAAC;IAC9B,IAAI,CAACk8wB,QAAQ,CAACl8wB,IAAI,CAAC,GAAG4ooB,OAAO;IAC7BA,OAAO,CAAC21I,SAAS,CAAC,IAAI,CAAC;IACvB31I,OAAO,CAAC82I,2BAA2B,CAAC,IAAI,CAACj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ACzB,CAAC;EAAE,CAAC;AAAA;AAEhB,MAAM89vB,oBAAoB,GAAG;EACzB1jL,OAAO,EAAEm2K,SAAS;EAClBl2K,WAAW,EAAE81B,yDAAU,CAAC,MAAM4tJ,OAAO;AACzC,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMrxG,eAAe,GAAG,CAAC,MAAM75qB,OAAO,CAACyN,OAAO,CAAC,CAAC,EAAE,CAAC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMy9wB,OAAO,SAASxN,SAAS,CAAC;EAC5B94wB,WAAWA,CAACk7E,MAAM,EAAEg7rB,UAAU,EAAE0F,eAAe,EAAEwH,cAAc,EAAE9/K,kBAAkB,EAAEy9K,oBAAoB,EAAE;IACvG,KAAK,CAAC,CAAC;IACP,IAAI,CAACz9K,kBAAkB,GAAGA,kBAAkB;IAC5C,IAAI,CAACy9K,oBAAoB,GAAGA,oBAAoB;IAChD,IAAI,CAACt4I,OAAO,GAAG,IAAIy8I,WAAW,CAAC,CAAC;IAChC;IACA,IAAI,CAACqB,WAAW,GAAG,KAAK;IACxB;AACR;AACA;AACA;AACA;IACQ,IAAI,CAAC1mxB,IAAI,GAAG,EAAE;IACd;AACR;AACA;AACA;AACA;IACQ,IAAI,CAACqrF,MAAM,GAAG,IAAI4/f,uDAAY,CAAC,CAAC;IAChC,IAAI,CAACi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AC;EACxC;EACA;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;EACIqlB,KAAKA,CAAC75B,KAAK,GAAG,EAAE,EAAEwU,OAAO,GAAG,CAAC,CAAC,EAAE;IAC5B,IAAI,CAAC+swB,aAAa,CAAC,CAACxzI,OAAO,EAAE3mnB,KAAK,KAAK;MACnC2mnB,OAAO,CAACl0mB,KAAK,CAAC75B,KAAK,CAAConB,KAAK,CAAC,EAAE;QAAEw7vB,QAAQ,EAAE,IAAI;QAAElpK,SAAS,EAAEllmB,OAAO,CAACklmB;MAAU,CAAC,CAAC;IACjF,CAAC,CAAC;IACF,IAAI,CAACwpK,eAAe,CAAC1uwB,OAAO,CAAC;IAC7B,IAAI,CAACuuwB,cAAc,CAACvuwB,OAAO,CAAC;IAC5B,IAAI,CAACivwB,sBAAsB,CAACjvwB,OAAO,CAAC;EACxC;EACA;AACJ;AACA;AACA;AACA;EACIsuF,WAAWA,CAAA,EAAG;IACV,OAAO,IAAI,CAACu+qB,QAAQ,CAAC75wB,GAAG,CAAEumoB,OAAO,IAAKA,OAAO,CAACjriB,WAAW,CAAC,CAAC,CAAC;EAChE;EACA;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;EACIh1F,KAAKA,CAAC0G,OAAO,GAAG,CAAC,CAAC,EAAE;IAChB,IAAI,IAAI,CAAC6swB,QAAQ,CAAC/hxB,MAAM,GAAG,CAAC,EACxB;IACJ,IAAI,CAACiixB,aAAa,CAAExzI,OAAO,IAAKA,OAAO,CAAC82I,2BAA2B,CAAC,MAAM,CAAE,CAAC,CAAC,CAAC;IAC/E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Q,EAAE;EAChC,KAAK,IAAI/h3B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG+h3B,QAAQ,CAACth3B,MAAM,EAAET,CAAC,EAAE,EAAE;IACtC,MAAMsuJ,GAAG,GAAGyztB,QAAQ,CAAC/h3B,CAAC,CAAC;IACvB,IAAIsuJ,GAAG,IAAI,IAAI,EAAE;MACb,MAAM,IAAIi4a,2DAAa,CAAC,IAAI,CAAC,wCAAwC,CAAC,OAAOI,SAAS,KAAK,WAAW,IAAIA,SAAS,KAC9G,+BAA8Br4a,GAAI,qBAAoBtuJ,CAAE,EAAC,CAAC;IACnE;EACJ;AACJ;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMyh4B,UAAU,CAAC;EACbh73B,WAAWA,CAAC+z3B,MAAM,EAAEpe,KAAK,EAAEslB,iBAAiB,EAAEzzlB,QAAQ,EAAEjuN,EAAE,EAAEkqkB,gBAAgB,EAAE;IAC1E,IAAI,CAACswO,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACpe,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACslB,iBAAiB,GAAGA,iBAAiB;IAC1C,IAAI,CAACzzlB,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACjuN,EAAE,GAAGA,EAAE;IACZ,IAAI,CAACkqkB,gBAAgB,GAAGA,gBAAgB;IACxC,IAAI,CAACy3O,iBAAiB,GAAG,KAAK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ACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS8/T,cAAcA,CAACzC,kBAAkB,EAAE;EACxC,MAAM16R,SAAS,GAAG,CACd;IAAEF,OAAO,EAAE+8R,gBAAgB;IAAE98R,WAAW,EAAE06R;EAAgB,CAAC,EAC3D;IAAE36R,OAAO,EAAEs6R,kBAAkB;IAAEr6R,WAAW,EAAE26R;EAAmB,CAAC,CACnE;EACD,OAAO2B,aAAa,CAAC,CAAC,CAAC,2CAA2Cr8R,SAAS,CAAC;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASo9R,gBAAgBA,CAAC/w3B,OAAO,EAAE;EAC/B,MAAM2zlB,SAAS,GAAG,CACd;IAAEF,OAAO,EAAE80R,oBAAoB;IAAE1zR,QAAQ,EAAE70lB;EAAQ,CAAC,CACvD;EACD,OAAOgw3B,aAAa,CAAC,CAAC,CAAC,oDAAoDr8R,SAAS,CAAC;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASq9R,gBAAgBA,CAAA,EAAG;EACxB,MAAMr9R,SAAS,GAAG,CACd;IAAEF,OAAO,EAAE+/C,8DAAgB;IAAErf,QAAQ,EAAEkgB,kEAAoBA;EAAC,CAAC,CAChE;EACD,OAAO27O,aAAa,CAAC,CAAC,CAAC,oDAAoDr8R,SAAS,CAAC;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASs9R,0BAA0BA,CAACxh3B,EAAE,EAAE;EACpC,MAAMkklB,SAAS,GAAG,CAAC;IACXF,OAAO,EAAEk7G,kEAAuB;IAChC94I,KAAK,EAAE,IAA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","sources":["./node_modules/@auth0/auth0-spa-js/dist/auth0-spa-js.production.esm.js","./node_modules/@fortawesome/fontawesome-svg-core/index.es.js","./node_modules/@fortawesome/free-brands-svg-icons/index.es.js","./node_modules/@fortawesome/free-solid-svg-icons/index.es.js","./node_modules/echarts/index.js","./node_modules/echarts/lib/action/roamHelper.js","./node_modules/echarts/lib/animation/basicTransition.js","./node_modules/echarts/lib/animation/customGraphicKeyframeAnimation.js","./node_modules/echarts/lib/animation/customGraphicTransition.js","./node_modules/echarts/lib/animation/morphTransitionHelper.js","./node_modules/echarts/lib/animation/universalTransition.js","./node_modules/echarts/lib/chart/bar/BarSeries.js","./node_modules/echarts/lib/chart/bar/BarView.js","./node_modules/echarts/lib/chart/bar/BaseBarSeries.js","./node_modules/echarts/lib/chart/bar/PictorialBarSeries.js","./node_modules/echarts/lib/chart/bar/PictorialBarView.js","./node_modules/echarts/lib/chart/bar/install.js","./node_modules/echarts/lib/chart/bar/installPictorialBar.js","./node_modules/echarts/lib/chart/boxplot/BoxplotSeries.js","./node_modules/echarts/lib/chart/boxplot/BoxplotView.js","./node_modules/echarts/lib/chart/boxplot/boxplotLayout.js","./node_modules/echarts/lib/chart/boxplot/boxplotTransform.js","./node_modules/echarts/lib/chart/boxplot/install.js","./node_modules/echarts/lib/chart/boxplot/prepareBoxplotData.js","./node_modules/echarts/lib/chart/candlestick/CandlestickSeries.js","./node_modules/echarts/lib/chart/candlestick/CandlestickView.js","./node_modules/echarts/lib/chart/candlestick/candlestickLayout.js","./node_modules/echarts/lib/chart/candlestick/candlestickVisual.js","./node_modules/echarts/lib/chart/candlestick/install.js","./node_modules/echarts/lib/chart/candlestick/preprocessor.js","./node_modules/echarts/lib/chart/custom/CustomSeries.js","./node_modules/echarts/lib/chart/custom/CustomView.js","./node_modules/echarts/lib/chart/custom/install.js","./node_modules/echarts/lib/chart/effectScatter/EffectScatterSeries.js","./node_modules/echarts/lib/chart/effectScatter/EffectScatterView.js","./node_modules/echarts/lib/chart/effectScatter/install.js","./node_modules/echarts/lib/chart/funnel/FunnelSeries.js","./node_modules/echarts/lib/chart/funnel/FunnelView.js","./node_modules/echarts/lib/chart/funnel/funnelLayout.js","./node_modules/echarts/lib/chart/funnel/install.js","./node_modules/echarts/lib/chart/gauge/GaugeSeries.js","./node_modules/echarts/lib/chart/gauge/GaugeView.js","./node_modules/echarts/lib/chart/gauge/PointerPath.js","./node_modules/echarts/lib/chart/gauge/install.js","./node_modules/echarts/lib/chart/graph/GraphSeries.js","./node_modules/echarts/lib/chart/graph/GraphView.js","./node_modules/echarts/lib/chart/graph/adjustEdge.js","./node_modules/echarts/lib/chart/graph/categoryFilter.js","./node_modules/echarts/lib/chart/graph/categoryVisual.js","./node_modules/echarts/lib/chart/graph/circularLayout.js","./node_modules/echarts/lib/chart/graph/circularLayoutHelper.js","./node_modules/echarts/lib/chart/graph/createView.js","./node_modules/echarts/lib/chart/graph/edgeVisual.js","./node_modules/echarts/lib/chart/graph/forceHelper.js","./node_modules/echarts/lib/chart/graph/forceLayout.js","./node_modules/echarts/lib/chart/graph/graphHelper.js","./node_modules/echarts/lib/chart/graph/install.js","./node_modules/echarts/lib/chart/graph/simpleLayout.js","./node_modules/echarts/lib/chart/graph/simpleLayoutHelper.js","./node_modules/echarts/lib/chart/heatmap/HeatmapLayer.js","./node_modules/echarts/lib/chart/heatmap/HeatmapSeries.js","./node_modules/echarts/lib/chart/heatmap/HeatmapView.js","./node_modules/echarts/lib/chart/heatmap/install.js","./node_modules/echarts/lib/chart/helper/EffectLine.js","./node_modules/echarts/lib/chart/helper/EffectPolyline.js","./node_modules/echarts/lib/chart/helper/EffectSymbol.js","./node_modules/echarts/lib/chart/helper/LargeLineDraw.js","./node_modules/echarts/lib/chart/helper/LargeSymbolDraw.js","./node_modules/echarts/lib/chart/helper/Line.js","./node_modules/echarts/lib/chart/helper/LineDraw.js","./node_modules/echarts/lib/chart/helper/LinePath.js","./node_modules/echarts/lib/chart/helper/Polyline.js","./node_modules/echarts/lib/chart/helper/Symbol.js","./node_modules/echarts/lib/chart/helper/SymbolDraw.js","./node_modules/echarts/lib/chart/helper/createClipPathFromCoordSys.js","./node_modules/echarts/lib/chart/helper/createGraphFromNodeEdge.js","./node_modules/echarts/lib/chart/helper/createRenderPlanner.js","./node_modules/echarts/lib/chart/helper/createSeriesData.js","./node_modules/echarts/lib/chart/helper/createSeriesDataSimply.js","./node_modules/echarts/lib/chart/helper/enableAriaDecalForTree.js","./node_modules/echarts/lib/chart/helper/labelHelper.js","./node_modules/echarts/lib/chart/helper/multipleGraphEdgeHelper.js","./node_modules/echarts/lib/chart/helper/sectorHelper.js","./node_modules/echarts/lib/chart/helper/treeHelper.js","./node_modules/echarts/lib/chart/helper/whiskerBoxCommon.js","./node_modules/echarts/lib/chart/line/LineSeries.js","./node_modules/echarts/lib/chart/line/LineView.js","./node_modules/echarts/lib/chart/line/helper.js","./node_modules/echarts/lib/chart/line/install.js","./node_modules/echarts/lib/chart/line/lineAnimationDiff.js","./node_modules/echarts/lib/chart/line/poly.js","./node_modules/echarts/lib/chart/lines/LinesSeries.js","./node_modules/echarts/lib/chart/lines/LinesView.js","./node_modules/echarts/lib/chart/lines/install.js","./node_modules/echarts/lib/chart/lines/linesLayout.js","./node_modules/echarts/lib/chart/lines/linesVisual.js","./node_modules/echarts/lib/chart/map/MapSeries.js","./node_modules/echarts/lib/chart/map/MapView.js","./node_modules/echarts/lib/chart/map/install.js","./node_modules/echarts/lib/chart/map/mapDataStatistic.js","./node_modules/echarts/lib/chart/map/mapSymbolLayout.js","./node_modules/echarts/lib/chart/parallel/ParallelSeries.js","./node_modules/echarts/lib/chart/parallel/ParallelView.js","./node_modules/echarts/lib/chart/parallel/install.js","./node_modules/echarts/lib/chart/parallel/parallelVisual.js","./node_modules/echarts/lib/chart/pie/PieSeries.js","./node_modules/echarts/lib/chart/pie/PieView.js","./node_modules/echarts/lib/chart/pie/install.js","./node_modules/echarts/lib/chart/pie/labelLayout.js","./node_modules/echarts/lib/chart/pie/pieLayout.js","./node_modules/echarts/lib/chart/radar/RadarSeries.js","./node_modules/echarts/lib/chart/radar/RadarView.js","./node_modules/echarts/lib/chart/radar/backwardCompat.js","./node_modules/echarts/lib/chart/radar/install.js","./node_modules/echarts/lib/chart/radar/radarLayout.js","./node_modules/echarts/lib/chart/sankey/SankeySeries.js","./node_modules/echarts/lib/chart/sankey/SankeyView.js","./node_modules/echarts/lib/chart/sankey/install.js","./node_modules/echarts/lib/chart/sankey/sankeyLayout.js","./node_modules/echarts/lib/chart/sankey/sankeyVisual.js","./node_modules/echarts/lib/chart/scatter/ScatterSeries.js","./node_modules/echarts/lib/chart/scatter/ScatterView.js","./node_modules/echarts/lib/chart/scatter/install.js","./node_modules/echarts/lib/chart/sunburst/SunburstPiece.js","./node_modules/echarts/lib/chart/sunburst/SunburstSeries.js","./node_modules/echarts/lib/chart/sunburst/SunburstView.js","./node_modules/echarts/lib/chart/sunburst/install.js","./node_modules/echarts/lib/chart/sunburst/sunburstAction.js","./node_modules/echarts/lib/chart/sunburst/sunburstLayout.js","./node_modules/echarts/lib/chart/sunburst/sunburstVisual.js","./node_modules/echarts/lib/chart/themeRiver/ThemeRiverSeries.js","./node_modules/echarts/lib/chart/themeRiver/ThemeRiverView.js","./node_modules/echarts/lib/chart/themeRiver/install.js","./node_modules/echarts/lib/chart/themeRiver/themeRiverLayout.js","./node_modules/echarts/lib/chart/tree/TreeSeries.js","./node_modules/echarts/lib/chart/tree/TreeView.js","./node_modules/echarts/lib/chart/tree/install.js","./node_modules/echarts/lib/chart/tree/layoutHelper.js","./node_modules/echarts/lib/chart/tree/traversalHelper.js","./node_modules/echarts/lib/chart/tree/treeAction.js","./node_modules/echarts/lib/chart/tree/treeLayout.js","./node_modules/echarts/lib/chart/tree/treeVisual.js","./node_modules/echarts/lib/chart/treemap/Breadcrumb.js","./node_modules/echarts/lib/chart/treemap/TreemapSeries.js","./node_modules/echarts/lib/chart/treemap/TreemapView.js","./node_modules/echarts/lib/chart/treemap/install.js","./node_modules/echarts/lib/chart/treemap/treemapAction.js","./node_modules/echarts/lib/chart/treemap/treemapLayout.js","./node_modules/echarts/lib/chart/treemap/treemapVisual.js","./node_modules/echarts/lib/component/aria/install.js","./node_modules/echarts/lib/component/aria/preprocessor.js","./node_modules/echarts/lib/component/axis/AngleAxisView.js","./node_modules/echarts/lib/component/axis/AxisBuilder.js","./node_modules/echarts/lib/component/axis/AxisView.js","./node_modules/echarts/lib/component/axis/CartesianAxisView.js","./node_modules/echarts/lib/component/axis/ParallelAxisView.js","./node_modules/echarts/lib/component/axis/RadiusAxisView.js","./node_modules/echarts/lib/component/axis/SingleAxisView.js","./node_modules/echarts/lib/component/axis/axisSplitHelper.js","./node_modules/echarts/lib/component/axis/parallelAxisAction.js","./node_modules/echarts/lib/component/axisPointer/AxisPointerModel.js","./node_modules/echarts/lib/component/axisPointer/AxisPointerView.js","./node_modules/echarts/lib/component/axisPointer/BaseAxisPointer.js","./node_modules/echarts/lib/component/axisPointer/CartesianAxisPointer.js","./node_modules/echarts/lib/component/axisPointer/PolarAxisPointer.js","./node_modules/echarts/lib/component/axisPointer/SingleAxisPointer.js","./node_modules/echarts/lib/component/axisPointer/axisTrigger.js","./node_modules/echarts/lib/component/axisPointer/findPointFromSeries.js","./node_modules/echarts/lib/component/axisPointer/globalListener.js","./node_modules/echarts/lib/component/axisPointer/install.js","./node_modules/echarts/lib/component/axisPointer/modelHelper.js","./node_modules/echarts/lib/component/axisPointer/viewHelper.js","./node_modules/echarts/lib/component/brush/BrushModel.js","./node_modules/echarts/lib/component/brush/BrushView.js","./node_modules/echarts/lib/component/brush/install.js","./node_modules/echarts/lib/component/brush/preprocessor.js","./node_modules/echarts/lib/component/brush/selector.js","./node_modules/echarts/lib/component/brush/visualEncoding.js","./node_modules/echarts/lib/component/calendar/CalendarView.js","./node_modules/echarts/lib/component/calendar/install.js","./node_modules/echarts/lib/component/dataZoom/AxisProxy.js","./node_modules/echarts/lib/component/dataZoom/DataZoomModel.js","./node_modules/echarts/lib/component/dataZoom/DataZoomView.js","./node_modules/echarts/lib/component/dataZoom/InsideZoomModel.js","./node_modules/echarts/lib/component/dataZoom/InsideZoomView.js","./node_modules/echarts/lib/component/dataZoom/SelectZoomModel.js","./node_modules/echarts/lib/component/dataZoom/SelectZoomView.js","./node_modules/echarts/lib/component/dataZoom/SliderZoomModel.js","./node_modules/echarts/lib/component/dataZoom/SliderZoomView.js","./node_modules/echarts/lib/component/dataZoom/dataZoomAction.js","./node_modules/echarts/lib/component/dataZoom/dataZoomProcessor.js","./node_modules/echarts/lib/component/dataZoom/helper.js","./node_modules/echarts/lib/component/dataZoom/history.js","./node_modules/echarts/lib/component/dataZoom/install.js","./node_modules/echarts/lib/component/dataZoom/installCommon.js","./node_modules/echarts/lib/component/dataZoom/installDataZoomInside.js","./node_modules/echarts/lib/component/dataZoom/installDataZoomSelect.js","./node_modules/echarts/lib/component/dataZoom/installDataZoomSlider.js","./node_modules/echarts/lib/component/dataZoom/roams.js","./node_modules/echarts/lib/component/dataset/install.js","./node_modules/echarts/lib/component/geo/GeoView.js","./node_modules/echarts/lib/component/geo/install.js","./node_modules/echarts/lib/component/graphic/GraphicModel.js","./node_modules/echarts/lib/component/graphic/GraphicView.js","./node_modules/echarts/lib/component/graphic/install.js","./node_modules/echarts/lib/component/grid/install.js","./node_modules/echarts/lib/component/grid/installSimple.js","./node_modules/echarts/lib/component/helper/BrushController.js","./node_modules/echarts/lib/component/helper/BrushTargetManager.js","./node_modules/echarts/lib/component/helper/MapDraw.js","./node_modules/echarts/lib/component/helper/RoamController.js","./node_modules/echarts/lib/component/helper/brushHelper.js","./node_modules/echarts/lib/component/helper/cursorHelper.js","./node_modules/echarts/lib/component/helper/interactionMutex.js","./node_modules/echarts/lib/component/helper/listComponent.js","./node_modules/echarts/lib/component/helper/roamHelper.js","./node_modules/echarts/lib/component/helper/sliderMove.js","./node_modules/echarts/lib/component/legend/LegendModel.js","./node_modules/echarts/lib/component/legend/LegendView.js","./node_modules/echarts/lib/component/legend/ScrollableLegendModel.js","./node_modules/echarts/lib/component/legend/ScrollableLegendView.js","./node_modules/echarts/lib/component/legend/install.js","./node_modules/echarts/lib/component/legend/installLegendPlain.js","./node_modules/echarts/lib/component/legend/installLegendScroll.js","./node_modules/echarts/lib/component/legend/legendAction.js","./node_modules/echarts/lib/component/legend/legendFilter.js","./node_modules/echarts/lib/component/legend/scrollableLegendAction.js","./node_modules/echarts/lib/component/marker/MarkAreaModel.js","./node_modules/echarts/lib/component/marker/MarkAreaView.js","./node_modules/echarts/lib/component/marker/MarkLineModel.js","./node_modules/echarts/lib/component/marker/MarkLineView.js","./node_modules/echarts/lib/component/marker/MarkPointModel.js","./node_modules/echarts/lib/component/marker/MarkPointView.js","./node_modules/echarts/lib/component/marker/MarkerModel.js","./node_modules/echarts/lib/component/marker/MarkerView.js","./node_modules/echarts/lib/component/marker/checkMarkerInSeries.js","./node_modules/echarts/lib/component/marker/installMarkArea.js","./node_modules/echarts/lib/component/marker/installMarkLine.js","./node_modules/echarts/lib/component/marker/installMarkPoint.js","./node_modules/echarts/lib/component/marker/markerHelper.js","./node_modules/echarts/lib/component/parallel/ParallelView.js","./node_modules/echarts/lib/component/parallel/install.js","./node_modules/echarts/lib/component/polar/install.js","./node_modules/echarts/lib/component/radar/RadarView.js","./node_modules/echarts/lib/component/radar/install.js","./node_modules/echarts/lib/component/singleAxis/install.js","./node_modules/echarts/lib/component/timeline/SliderTimelineModel.js","./node_modules/echarts/lib/component/timeline/SliderTimelineView.js","./node_modules/echarts/lib/component/timeline/TimelineAxis.js","./node_modules/echarts/lib/component/timeline/TimelineModel.js","./node_modules/echarts/lib/component/timeline/TimelineView.js","./node_modules/echarts/lib/component/timeline/install.js","./node_modules/echarts/lib/component/timeline/preprocessor.js","./node_modules/echarts/lib/component/timeline/timelineAction.js","./node_modules/echarts/lib/component/title/install.js","./node_modules/echarts/lib/component/toolbox/ToolboxModel.js","./node_modules/echarts/lib/component/toolbox/ToolboxView.js","./node_modules/echarts/lib/component/toolbox/feature/Brush.js","./node_modules/echarts/lib/component/toolbox/feature/DataView.js","./node_modules/echarts/lib/component/toolbox/feature/DataZoom.js","./node_modules/echarts/lib/component/toolbox/feature/MagicType.js","./node_modules/echarts/lib/component/toolbox/feature/Restore.js","./node_modules/echarts/lib/component/toolbox/feature/SaveAsImage.js","./node_modules/echarts/lib/component/toolbox/featureManager.js","./node_modules/echarts/lib/component/toolbox/install.js","./node_modules/echarts/lib/component/tooltip/TooltipHTMLContent.js","./node_modules/echarts/lib/component/tooltip/TooltipModel.js","./node_modules/echarts/lib/component/tooltip/TooltipRichContent.js","./node_modules/echarts/lib/component/tooltip/TooltipView.js","./node_modules/echarts/lib/component/tooltip/helper.js","./node_modules/echarts/lib/component/tooltip/install.js","./node_modules/echarts/lib/component/tooltip/seriesFormatTooltip.js","./node_modules/echarts/lib/component/tooltip/tooltipMarkup.js","./node_modules/echarts/lib/component/transform/filterTransform.js","./node_modules/echarts/lib/component/transform/install.js","./node_modules/echarts/lib/component/transform/sortTransform.js","./node_modules/echarts/lib/component/visualMap/ContinuousModel.js","./node_modules/echarts/lib/component/visualMap/ContinuousView.js","./node_modules/echarts/lib/component/visualMap/PiecewiseModel.js","./node_modules/echarts/lib/component/visualMap/PiecewiseView.js","./node_modules/echarts/lib/component/visualMap/VisualMapModel.js","./node_modules/echarts/lib/component/visualMap/VisualMapView.js","./node_modules/echarts/lib/component/visualMap/helper.js","./node_modules/echarts/lib/component/visualMap/install.js","./node_modules/echarts/lib/component/visualMap/installCommon.js","./node_modules/echarts/lib/component/visualMap/installVisualMapContinuous.js","./node_modules/echarts/lib/component/visualMap/installVisualMapPiecewise.js","./node_modules/echarts/lib/component/visualMap/preprocessor.js","./node_modules/echarts/lib/component/visualMap/visualEncoding.js","./node_modules/echarts/lib/component/visualMap/visualMapAction.js","./node_modules/echarts/lib/coord/Axis.js","./node_modules/echarts/lib/coord/CoordinateSystem.js","./node_modules/echarts/lib/coord/View.js","./node_modules/echarts/lib/coord/axisAlignTicks.js","./node_modules/echarts/lib/coord/axisCommonTypes.js","./node_modules/echarts/lib/coord/axisDefault.js","./node_modules/echarts/lib/coord/axisHelper.js","./node_modules/echarts/lib/coord/axisModelCommonMixin.js","./node_modules/echarts/lib/coord/axisModelCreator.js","./node_modules/echarts/lib/coord/axisTickLabelBuilder.js","./node_modules/echarts/lib/coord/calendar/Calendar.js","./node_modules/echarts/lib/coord/calendar/CalendarModel.js","./node_modules/echarts/lib/coord/calendar/prepareCustom.js","./node_modules/echarts/lib/coord/cartesian/Axis2D.js","./node_modules/echarts/lib/coord/cartesian/AxisModel.js","./node_modules/echarts/lib/coord/cartesian/Cartesian.js","./node_modules/echarts/lib/coord/cartesian/Cartesian2D.js","./node_modules/echarts/lib/coord/cartesian/Grid.js","./node_modules/echarts/lib/coord/cartesian/GridModel.js","./node_modules/echarts/lib/coord/cartesian/cartesianAxisHelper.js","./node_modules/echarts/lib/coord/cartesian/prepareCustom.js","./node_modules/echarts/lib/coord/geo/Geo.js","./node_modules/echarts/lib/coord/geo/GeoJSONResource.js","./node_modules/echarts/lib/coord/geo/GeoModel.js","./node_modules/echarts/lib/coord/geo/GeoSVGResource.js","./node_modules/echarts/lib/coord/geo/Region.js","./node_modules/echarts/lib/coord/geo/fix/diaoyuIsland.js","./node_modules/echarts/lib/coord/geo/fix/nanhai.js","./node_modules/echarts/lib/coord/geo/fix/textCoord.js","./node_modules/echarts/lib/coord/geo/geoCreator.js","./node_modules/echarts/lib/coord/geo/geoSourceManager.js","./node_modules/echarts/lib/coord/geo/parseGeoJson.js","./node_modules/echarts/lib/coord/geo/prepareCustom.js","./node_modules/echarts/lib/coord/parallel/AxisModel.js","./node_modules/echarts/lib/coord/parallel/Parallel.js","./node_modules/echarts/lib/coord/parallel/ParallelAxis.js","./node_modules/echarts/lib/coord/parallel/ParallelModel.js","./node_modules/echarts/lib/coord/parallel/parallelCreator.js","./node_modules/echarts/lib/coord/parallel/parallelPreprocessor.js","./node_modules/echarts/lib/coord/polar/AngleAxis.js","./node_modules/echarts/lib/coord/polar/AxisModel.js","./node_modules/echarts/lib/coord/polar/Polar.js","./node_modules/echarts/lib/coord/polar/PolarModel.js","./node_modules/echarts/lib/coord/polar/RadiusAxis.js","./node_modules/echarts/lib/coord/polar/polarCreator.js","./node_modules/echarts/lib/coord/polar/prepareCustom.js","./node_modules/echarts/lib/coord/radar/IndicatorAxis.js","./node_modules/echarts/lib/coord/radar/Radar.js","./node_modules/echarts/lib/coord/radar/RadarModel.js","./node_modules/echarts/lib/coord/scaleRawExtentInfo.js","./node_modules/echarts/lib/coord/single/AxisModel.js","./node_modules/echarts/lib/coord/single/Single.js","./node_modules/echarts/lib/coord/single/SingleAxis.js","./node_modules/echarts/lib/coord/single/prepareCustom.js","./node_modules/echarts/lib/coord/single/singleAxisHelper.js","./node_modules/echarts/lib/coord/single/singleCreator.js","./node_modules/echarts/lib/core/CoordinateSystem.js","./node_modules/echarts/lib/core/ExtensionAPI.js","./node_modules/echarts/lib/core/Scheduler.js","./node_modules/echarts/lib/core/echarts.js","./node_modules/echarts/lib/core/impl.js","./node_modules/echarts/lib/core/lifecycle.js","./node_modules/echarts/lib/core/locale.js","./node_modules/echarts/lib/core/task.js","./node_modules/echarts/lib/data/DataDiffer.js","./node_modules/echarts/lib/data/DataStore.js","./node_modules/echarts/lib/data/Graph.js","./node_modules/echarts/lib/data/OrdinalMeta.js","./node_modules/echarts/lib/data/SeriesData.js","./node_modules/echarts/lib/data/SeriesDimensionDefine.js","./node_modules/echarts/lib/data/Source.js","./node_modules/echarts/lib/data/Tree.js","./node_modules/echarts/lib/data/helper/SeriesDataSchema.js","./node_modules/echarts/lib/data/helper/createDimensions.js","./node_modules/echarts/lib/data/helper/dataProvider.js","./node_modules/echarts/lib/data/helper/dataStackHelper.js","./node_modules/echarts/lib/data/helper/dataValueHelper.js","./node_modules/echarts/lib/data/helper/dimensionHelper.js","./node_modules/echarts/lib/data/helper/linkSeriesData.js","./node_modules/echarts/lib/data/helper/sourceHelper.js","./node_modules/echarts/lib/data/helper/sourceManager.js","./node_modules/echarts/lib/data/helper/transform.js","./node_modules/echarts/lib/export/api.js","./node_modules/echarts/lib/export/api/format.js","./node_modules/echarts/lib/export/api/graphic.js","./node_modules/echarts/lib/export/api/helper.js","./node_modules/echarts/lib/export/api/number.js","./node_modules/echarts/lib/export/api/time.js","./node_modules/echarts/lib/export/api/util.js","./node_modules/echarts/lib/export/core.js","./node_modules/echarts/lib/extension.js","./node_modules/echarts/lib/i18n/langEN.js","./node_modules/echarts/lib/i18n/langZH.js","./node_modules/echarts/lib/label/LabelManager.js","./node_modules/echarts/lib/label/installLabelLayout.js","./node_modules/echarts/lib/label/labelGuideHelper.js","./node_modules/echarts/lib/label/labelLayoutHelper.js","./node_modules/echarts/lib/label/labelStyle.js","./node_modules/echarts/lib/label/sectorLabel.js","./node_modules/echarts/lib/layout/barGrid.js","./node_modules/echarts/lib/layout/barPolar.js","./node_modules/echarts/lib/layout/points.js","./node_modules/echarts/lib/legacy/dataSelectAction.js","./node_modules/echarts/lib/legacy/getTextRect.js","./node_modules/echarts/lib/loading/default.js","./node_modules/echarts/lib/model/Component.js","./node_modules/echarts/lib/model/Global.js","./node_modules/echarts/lib/model/Model.js","./node_modules/echarts/lib/model/OptionManager.js","./node_modules/echarts/lib/model/Series.js","./node_modules/echarts/lib/model/globalDefault.js","./node_modules/echarts/lib/model/internalComponentCreator.js","./node_modules/echarts/lib/model/mixin/areaStyle.js","./node_modules/echarts/lib/model/mixin/dataFormat.js","./node_modules/echarts/lib/model/mixin/itemStyle.js","./node_modules/echarts/lib/model/mixin/lineStyle.js","./node_modules/echarts/lib/model/mixin/makeStyleMapper.js","./node_modules/echarts/lib/model/mixin/palette.js","./node_modules/echarts/lib/model/mixin/textStyle.js","./node_modules/echarts/lib/model/referHelper.js","./node_modules/echarts/lib/preprocessor/backwardCompat.js","./node_modules/echarts/lib/preprocessor/helper/compatStyle.js","./node_modules/echarts/lib/processor/dataFilter.js","./node_modules/echarts/lib/processor/dataSample.js","./node_modules/echarts/lib/processor/dataStack.js","./node_modules/echarts/lib/processor/negativeDataFilter.js","./node_modules/echarts/lib/renderer/installCanvasRenderer.js","./node_modules/echarts/lib/renderer/installSVGRenderer.js","./node_modules/echarts/lib/scale/Interval.js","./node_modules/echarts/lib/scale/Log.js","./node_modules/echarts/lib/scale/Ordinal.js","./node_modules/echarts/lib/scale/Scale.js","./node_modules/echarts/lib/scale/Time.js","./node_modules/echarts/lib/scale/helper.js","./node_modules/echarts/lib/theme/dark.js","./node_modules/echarts/lib/theme/light.js","./node_modules/echarts/lib/util/ECEventProcessor.js","./node_modules/echarts/lib/util/animation.js","./node_modules/echarts/lib/util/clazz.js","./node_modules/echarts/lib/util/component.js","./node_modules/echarts/lib/util/conditionalExpression.js","./node_modules/echarts/lib/util/decal.js","./node_modules/echarts/lib/util/event.js","./node_modules/echarts/lib/util/format.js","./node_modules/echarts/lib/util/graphic.js","./node_modules/echarts/lib/util/innerStore.js","./node_modules/echarts/lib/util/layout.js","./node_modules/echarts/lib/util/log.js","./node_modules/echarts/lib/util/model.js","./node_modules/echarts/lib/util/number.js","./node_modules/echarts/lib/util/shape/sausage.js","./node_modules/echarts/lib/util/states.js","./node_modules/echarts/lib/util/styleCompat.js","./node_modules/echarts/lib/util/symbol.js","./node_modules/echarts/lib/util/throttle.js","./node_modules/echarts/lib/util/time.js","./node_modules/echarts/lib/util/types.js","./node_modules/echarts/lib/util/vendor.js","./node_modules/echarts/lib/view/Chart.js","./node_modules/echarts/lib/view/Component.js","./node_modules/echarts/lib/visual/LegendVisualProvider.js","./node_modules/echarts/lib/visual/VisualMapping.js","./node_modules/echarts/lib/visual/aria.js","./node_modules/echarts/lib/visual/decal.js","./node_modules/echarts/lib/visual/helper.js","./node_modules/echarts/lib/visual/style.js","./node_modules/echarts/lib/visual/symbol.js","./node_modules/echarts/lib/visual/visualDefault.js","./node_modules/echarts/lib/visual/visualSolution.js","./node_modules/html2canvas/dist/html2canvas.js","./node_modules/rxjs/dist/esm/internal/BehaviorSubject.js","./node_modules/rxjs/dist/esm/internal/NotificationFactories.js","./node_modules/rxjs/dist/esm/internal/Observable.js","./node_modules/rxjs/dist/esm/internal/ReplaySubject.js","./node_modules/rxjs/dist/esm/internal/Scheduler.js","./node_modules/rxjs/dist/esm/internal/Subject.js","./node_modules/rxjs/dist/esm/internal/Subscriber.js","./node_modules/rxjs/dist/esm/internal/Subscription.js","./node_modules/rxjs/dist/esm/internal/config.js","./node_modules/rxjs/dist/esm/internal/observable/ConnectableObservable.js","./node_modules/rxjs/dist/esm/internal/observable/combineLatest.js","./node_modules/rxjs/dist/esm/internal/observable/concat.js","./node_modules/rxjs/dist/esm/internal/observable/defer.js","./node_modules/rxjs/dist/esm/internal/observable/empty.js","./node_modules/rxjs/dist/esm/internal/observable/forkJoin.js","./node_modules/rxjs/dist/esm/internal/observable/from.js","./node_modules/rxjs/dist/esm/internal/observable/fromEvent.js","./node_modules/rxjs/dist/esm/internal/observable/iif.js","./node_modules/rxjs/dist/esm/internal/observable/innerFrom.js","./node_modules/rxjs/dist/esm/internal/observable/merge.js","./node_modules/rxjs/dist/esm/internal/observable/of.js","./node_modules/rxjs/dist/esm/internal/observable/throwError.js","./node_modules/rxjs/dist/esm/internal/observable/timer.js","./node_modules/rxjs/dist/esm/internal/operators/OperatorSubscriber.js","./node_modules/rxjs/dist/esm/internal/operators/audit.js","./node_modules/rxjs/dist/esm/internal/operators/auditTime.js","./node_modules/rxjs/dist/esm/internal/operators/catchError.js","./node_modules/rxjs/dist/esm/internal/operators/concatAll.js","./node_modules/rxjs/dist/esm/internal/operators/concatMap.js","./node_modules/rxjs/dist/esm/internal/operators/debounceTime.js","./node_modules/rxjs/dist/esm/internal/operators/defaultIfEmpty.js","./node_modules/rxjs/dist/esm/internal/operators/delay.js","./node_modules/rxjs/dist/esm/internal/operators/delayWhen.js","./node_modules/rxjs/dist/esm/internal/operators/distinctUntilChanged.js","./node_modules/rxjs/dist/esm/internal/operators/filter.js","./node_modules/rxjs/dist/esm/internal/operators/finalize.js","./node_modules/rxjs/dist/esm/internal/operators/first.js","./node_modules/rxjs/dist/esm/internal/operators/ignoreElements.js","./node_modules/rxjs/dist/esm/internal/operators/last.js","./node_modules/rxjs/dist/esm/internal/operators/map.js","./node_modules/rxjs/dist/esm/internal/operators/mapTo.js","./node_modules/rxjs/dist/esm/internal/operators/mergeAll.js","./node_modules/rxjs/dist/esm/internal/operators/mergeInternals.js","./node_modules/rxjs/dist/esm/internal/operators/mergeMap.js","./node_modules/rxjs/dist/esm/internal/operators/observeOn.js","./node_modules/rxjs/dist/esm/internal/operators/pairwise.js","./node_modules/rxjs/dist/esm/internal/operators/pluck.js","./node_modules/rxjs/dist/esm/internal/operators/refCount.js","./node_modules/rxjs/dist/esm/internal/operators/scan.js","./node_modules/rxjs/dist/esm/internal/operators/scanInternals.js","./node_modules/rxjs/dist/esm/internal/operators/share.js","./node_modules/rxjs/dist/esm/internal/operators/shareReplay.js","./node_modules/rxjs/dist/esm/internal/operators/skip.js","./node_modules/rxjs/dist/esm/internal/operators/startWith.js","./node_modules/rxjs/dist/esm/internal/operators/subscribeOn.js","./node_modules/rxjs/dist/esm/internal/operators/switchMap.js","./node_modules/rxjs/dist/esm/internal/operators/take.js","./node_modules/rxjs/dist/esm/internal/operators/takeLast.js","./node_modules/rxjs/dist/esm/internal/operators/takeUntil.js","./node_modules/rxjs/dist/esm/internal/operators/takeWhile.js","./node_modules/rxjs/dist/esm/internal/operators/tap.js","./node_modules/rxjs/dist/esm/internal/operators/throttle.js","./node_modules/rxjs/dist/esm/internal/operators/throttleTime.js","./node_modules/rxjs/dist/esm/internal/operators/throwIfEmpty.js","./node_modules/rxjs/dist/esm/internal/operators/withLatestFrom.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleArray.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleAsyncIterable.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleIterable.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleObservable.js","./node_modules/rxjs/dist/esm/internal/scheduled/schedulePromise.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleReadableStreamLike.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduled.js","./node_modules/rxjs/dist/esm/internal/scheduler/Action.js","./node_modules/rxjs/dist/esm/internal/scheduler/AnimationFrameAction.js","./node_modules/rxjs/dist/esm/internal/scheduler/AnimationFrameScheduler.js","./node_modules/rxjs/dist/esm/internal/scheduler/AsapAction.js","./node_modules/rxjs/dist/esm/internal/scheduler/AsapScheduler.js","./node_modules/rxjs/dist/esm/internal/scheduler/AsyncAction.js","./node_modules/rxjs/dist/esm/internal/scheduler/AsyncScheduler.js","./node_modules/rxjs/dist/esm/internal/scheduler/animationFrame.js","./node_modules/rxjs/dist/esm/internal/scheduler/animationFrameProvider.js","./node_modules/rxjs/dist/esm/internal/scheduler/asap.js","./node_modules/rxjs/dist/esm/internal/scheduler/async.js","./node_modules/rxjs/dist/esm/internal/scheduler/dateTimestampProvider.js","./node_modules/rxjs/dist/esm/internal/scheduler/immediateProvider.js","./node_modules/rxjs/dist/esm/internal/scheduler/intervalProvider.js","./node_modules/rxjs/dist/esm/internal/scheduler/timeoutProvider.js","./node_modules/rxjs/dist/esm/internal/symbol/iterator.js","./node_modules/rxjs/dist/esm/internal/symbol/observable.js","./node_modules/rxjs/dist/esm/internal/util/EmptyError.js","./node_modules/rxjs/dist/esm/internal/util/Immediate.js","./node_modules/rxjs/dist/esm/internal/util/ObjectUnsubscribedError.js","./node_modules/rxjs/dist/esm/internal/util/UnsubscriptionError.js","./node_modules/rxjs/dist/esm/internal/util/args.js","./node_modules/rxjs/dist/esm/internal/util/argsArgArrayOrObject.js","./node_modules/rxjs/dist/esm/internal/util/arrRemove.js","./node_modules/rxjs/dist/esm/internal/util/createErrorClass.js","./node_modules/rxjs/dist/esm/internal/util/createObject.js","./node_modules/rxjs/dist/esm/internal/util/errorContext.js","./node_modules/rxjs/dist/esm/internal/util/executeSchedule.js","./node_modules/rxjs/dist/esm/internal/util/identity.js","./node_modules/rxjs/dist/esm/internal/util/isArrayLike.js","./node_modules/rxjs/dist/esm/internal/util/isAsyncIterable.js","./node_modules/rxjs/dist/esm/internal/util/isDate.js","./node_modules/rxjs/dist/esm/internal/util/isFunction.js","./node_modules/rxjs/dist/esm/internal/util/isInteropObservable.js","./node_modules/rxjs/dist/esm/internal/util/isIterable.js","./node_modules/rxjs/dist/esm/internal/util/isObservable.js","./node_modules/rxjs/dist/esm/internal/util/isPromise.js","./node_modules/rxjs/dist/esm/internal/util/isReadableStreamLike.js","./node_modules/rxjs/dist/esm/internal/util/isScheduler.js","./node_modules/rxjs/dist/esm/internal/util/lift.js","./node_modules/rxjs/dist/esm/internal/util/mapOneOrManyArgs.js","./node_modules/rxjs/dist/esm/internal/util/noop.js","./node_modules/rxjs/dist/esm/internal/util/pipe.js","./node_modules/rxjs/dist/esm/internal/util/reportUnhandledError.js","./node_modules/rxjs/dist/esm/internal/util/throwUnobservableError.js","./node_modules/xlsx/dist/cpexcel.js","./node_modules/xlsx/jszip.js","./node_modules/xlsx/xlsx.js","./node_modules/zrender/lib/Element.js","./node_modules/zrender/lib/Handler.js","./node_modules/zrender/lib/Storage.js","./node_modules/zrender/lib/animation/Animation.js","./node_modules/zrender/lib/animation/Animator.js","./node_modules/zrender/lib/animation/Clip.js","./node_modules/zrender/lib/animation/cubicEasing.js","./node_modules/zrender/lib/animation/easing.js","./node_modules/zrender/lib/animation/requestAnimationFrame.js","./node_modules/zrender/lib/canvas/Layer.js","./node_modules/zrender/lib/canvas/Painter.js","./node_modules/zrender/lib/canvas/dashStyle.js","./node_modules/zrender/lib/canvas/graphic.js","./node_modules/zrender/lib/canvas/helper.js","./node_modules/zrender/lib/config.js","./node_modules/zrender/lib/contain/arc.js","./node_modules/zrender/lib/contain/cubic.js","./node_modules/zrender/lib/contain/line.js","./node_modules/zrender/lib/contain/path.js","./node_modules/zrender/lib/contain/polygon.js","./node_modules/zrender/lib/contain/quadratic.js","./node_modules/zrender/lib/contain/text.js","./node_modules/zrender/lib/contain/util.js","./node_modules/zrender/lib/contain/windingLine.js","./node_modules/zrender/lib/core/BoundingRect.js","./node_modules/zrender/lib/core/Eventful.js","./node_modules/zrender/lib/core/GestureMgr.js","./node_modules/zrender/lib/core/LRU.js","./node_modules/zrender/lib/core/OrientedBoundingRect.js","./node_modules/zrender/lib/core/PathProxy.js","./node_modules/zrender/lib/core/Point.js","./node_modules/zrender/lib/core/Transformable.js","./node_modules/zrender/lib/core/WeakMap.js","./node_modules/zrender/lib/core/bbox.js","./node_modules/zrender/lib/core/curve.js","./node_modules/zrender/lib/core/dom.js","./node_modules/zrender/lib/core/env.js","./node_modules/zrender/lib/core/event.js","./node_modules/zrender/lib/core/fourPointsTransform.js","./node_modules/zrender/lib/core/matrix.js","./node_modules/zrender/lib/core/platform.js","./node_modules/zrender/lib/core/timsort.js","./node_modules/zrender/lib/core/util.js","./node_modules/zrender/lib/core/vector.js","./node_modules/zrender/lib/dom/HandlerProxy.js","./node_modules/zrender/lib/graphic/CompoundPath.js","./node_modules/zrender/lib/graphic/Displayable.js","./node_modules/zrender/lib/graphic/Gradient.js","./node_modules/zrender/lib/graphic/Group.js","./node_modules/zrender/lib/graphic/Image.js","./node_modules/zrender/lib/graphic/IncrementalDisplayable.js","./node_modules/zrender/lib/graphic/LinearGradient.js","./node_modules/zrender/lib/graphic/Path.js","./node_modules/zrender/lib/graphic/RadialGradient.js","./node_modules/zrender/lib/graphic/TSpan.js","./node_modules/zrender/lib/graphic/Text.js","./node_modules/zrender/lib/graphic/constants.js","./node_modules/zrender/lib/graphic/helper/image.js","./node_modules/zrender/lib/graphic/helper/parseText.js","./node_modules/zrender/lib/graphic/helper/poly.js","./node_modules/zrender/lib/graphic/helper/roundRect.js","./node_modules/zrender/lib/graphic/helper/roundSector.js","./node_modules/zrender/lib/graphic/helper/smoothBezier.js","./node_modules/zrender/lib/graphic/helper/subPixelOptimize.js","./node_modules/zrender/lib/graphic/shape/Arc.js","./node_modules/zrender/lib/graphic/shape/BezierCurve.js","./node_modules/zrender/lib/graphic/shape/Circle.js","./node_modules/zrender/lib/graphic/shape/Ellipse.js","./node_modules/zrender/lib/graphic/shape/Line.js","./node_modules/zrender/lib/graphic/shape/Polygon.js","./node_modules/zrender/lib/graphic/shape/Polyline.js","./node_modules/zrender/lib/graphic/shape/Rect.js","./node_modules/zrender/lib/graphic/shape/Ring.js","./node_modules/zrender/lib/graphic/shape/Sector.js","./node_modules/zrender/lib/mixin/Draggable.js","./node_modules/zrender/lib/svg/Painter.js","./node_modules/zrender/lib/svg/SVGPathRebuilder.js","./node_modules/zrender/lib/svg/core.js","./node_modules/zrender/lib/svg/cssAnimation.js","./node_modules/zrender/lib/svg/domapi.js","./node_modules/zrender/lib/svg/graphic.js","./node_modules/zrender/lib/svg/helper.js","./node_modules/zrender/lib/svg/mapStyleToAttrs.js","./node_modules/zrender/lib/svg/patch.js","./node_modules/zrender/lib/tool/color.js","./node_modules/zrender/lib/tool/convertPath.js","./node_modules/zrender/lib/tool/dividePath.js","./node_modules/zrender/lib/tool/morphPath.js","./node_modules/zrender/lib/tool/parseSVG.js","./node_modules/zrender/lib/tool/parseXML.js","./node_modules/zrender/lib/tool/path.js","./node_modules/zrender/lib/tool/transformPath.js","./node_modules/zrender/lib/zrender.js","./node_modules/echarts/node_modules/tslib/tslib.es6.js","./node_modules/tslib/tslib.es6.js","tslib","./node_modules/@angular/animations/fesm2022/animations.mjs","./node_modules/@angular/animations/fesm2022/browser.mjs","./node_modules/@angular/cdk/fesm2022/a11y.mjs","./node_modules/@angular/cdk/fesm2022/accordion.mjs","./node_modules/@angular/cdk/fesm2022/bidi.mjs","./node_modules/@angular/cdk/fesm2022/cdk.mjs","./node_modules/@angular/cdk/fesm2022/clipboard.mjs","./node_modules/@angular/cdk/fesm2022/coercion.mjs","./node_modules/@angular/cdk/fesm2022/collections.mjs","./node_modules/@angular/cdk/fesm2022/dialog.mjs","./node_modules/@angular/cdk/fesm2022/keycodes.mjs","./node_modules/@angular/cdk/fesm2022/layout.mjs","./node_modules/@angular/cdk/fesm2022/observers.mjs","./node_modules/@angular/cdk/fesm2022/overlay.mjs","./node_modules/@angular/cdk/fesm2022/platform.mjs","./node_modules/@angular/cdk/fesm2022/portal.mjs","./node_modules/@angular/cdk/fesm2022/scrolling.mjs","./node_modules/@angular/cdk/fesm2022/stepper.mjs","./node_modules/@angular/cdk/fesm2022/table.mjs","./node_modules/@angular/cdk/fesm2022/text-field.mjs","./node_modules/@angular/common/fesm2022/common.mjs","./node_modules/@angular/common/fesm2022/http.mjs","./node_modules/@angular/core/fesm2022/core.mjs","./node_modules/@angular/forms/fesm2022/forms.mjs","./node_modules/@angular/material/fesm2022/button-toggle.mjs","./node_modules/@angular/material/fesm2022/button.mjs","./node_modules/@angular/material/fesm2022/card.mjs","./node_modules/@angular/material/fesm2022/core.mjs","./node_modules/@angular/material/fesm2022/dialog.mjs","./node_modules/@angular/material/fesm2022/divider.mjs","./node_modules/@angular/material/fesm2022/expansion.mjs","./node_modules/@angular/material/fesm2022/form-field.mjs","./node_modules/@angular/material/fesm2022/icon.mjs","./node_modules/@angular/material/fesm2022/input.mjs","./node_modules/@angular/material/fesm2022/list.mjs","./node_modules/@angular/material/fesm2022/menu.mjs","./node_modules/@angular/material/fesm2022/paginator.mjs","./node_modules/@angular/material/fesm2022/select.mjs","./node_modules/@angular/material/fesm2022/sidenav.mjs","./node_modules/@angular/material/fesm2022/slider.mjs","./node_modules/@angular/material/fesm2022/sort.mjs","./node_modules/@angular/material/fesm2022/stepper.mjs","./node_modules/@angular/material/fesm2022/table.mjs","./node_modules/@angular/material/fesm2022/tabs.mjs","./node_modules/@angular/material/fesm2022/toolbar.mjs","./node_modules/@angular/material/fesm2022/tooltip.mjs","./node_modules/@angular/platform-browser/fesm2022/animations.mjs","./node_modules/@angular/platform-browser/fesm2022/platform-browser.mjs","./node_modules/@angular/router/fesm2022/router.mjs","./node_modules/@auth0/auth0-angular/fesm2020/auth0-auth0-angular.mjs","./node_modules/@fortawesome/angular-fontawesome/fesm2022/angular-fontawesome.mjs","./node_modules/ngx-echarts/fesm2020/ngx-echarts.mjs","./node_modules/ngx-mask/fesm2020/ngx-mask.mjs","./node_modules/ngx-sharebuttons/fesm2020/ngx-sharebuttons-icons.mjs","./node_modules/ngx-sharebuttons/fesm2020/ngx-sharebuttons.mjs","./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"],"sourcesContent":["function e(e,t){var i={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(i[o]=e[o]);if(null!=e&&\"function\"==typeof Object.getOwnPropertySymbols){var n=0;for(o=Object.getOwnPropertySymbols(e);n0&&n[n.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!n||a[1]>n[0]&&a[1]0?setTimeout(i,t):i()}}window.addEventListener(\"storage\",s),e.addToWaiting(s);var r=setTimeout(s,Math.max(0,t-Date.now()))}))];case 1:return i.sent(),[2]}}))}))},e.addToWaiting=function(t){this.removeFromWaiting(t),void 0!==e.waiters&&e.waiters.push(t)},e.removeFromWaiting=function(t){void 0!==e.waiters&&(e.waiters=e.waiters.filter((function(e){return e!==t})))},e.notifyWaiters=function(){void 0!==e.waiters&&e.waiters.slice().forEach((function(e){return e()}))},e.prototype.releaseLock=function(e){return o(this,void 0,void 0,(function(){return a(this,(function(t){switch(t.label){case 0:return[4,this.releaseLock__private__(e)];case 1:return[2,t.sent()]}}))}))},e.prototype.releaseLock__private__=function(t){return o(this,void 0,void 0,(function(){var i,o,r;return a(this,(function(a){switch(a.label){case 0:return i=window.localStorage,o=s+\"-\"+t,null===(r=i.getItem(o))?[2]:(r=JSON.parse(r)).id!==this.id?[3,2]:[4,n.default().lock(r.iat)];case 1:a.sent(),this.acquiredIatSet.delete(r.iat),i.removeItem(o),n.default().unlock(r.iat),e.notifyWaiters(),a.label=2;case 2:return[2]}}))}))},e.lockCorrector=function(){for(var t=Date.now()-5e3,i=window.localStorage,o=Object.keys(i),n=!1,a=0;aDate.now();class d extends Error{constructor(e,t){super(t),this.error=e,this.error_description=t,Object.setPrototypeOf(this,d.prototype)}static fromPayload({error:e,error_description:t}){return new d(e,t)}}class u extends d{constructor(e,t,i,o=null){super(e,t),this.state=i,this.appState=o,Object.setPrototypeOf(this,u.prototype)}}class l extends d{constructor(){super(\"timeout\",\"Timeout\"),Object.setPrototypeOf(this,l.prototype)}}class h extends l{constructor(e){super(),this.popup=e,Object.setPrototypeOf(this,h.prototype)}}class p extends d{constructor(e){super(\"cancelled\",\"Popup closed\"),this.popup=e,Object.setPrototypeOf(this,p.prototype)}}class m extends d{constructor(e,t,i){super(e,t),this.mfa_token=i,Object.setPrototypeOf(this,m.prototype)}}class f extends d{constructor(e,t){super(\"missing_refresh_token\",`Missing Refresh Token (audience: '${g(e,[\"default\"])}', scope: '${g(t)}')`),this.audience=e,this.scope=t,Object.setPrototypeOf(this,f.prototype)}}function g(e,t=[]){return e&&!t.includes(e)?e:\"\"}const w=()=>window.crypto,y=()=>{const e=\"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_~.\";let t=\"\";return Array.from(w().getRandomValues(new Uint8Array(43))).forEach((i=>t+=e[i%e.length])),t},k=e=>btoa(e),b=t=>{var{clientId:i}=t,o=e(t,[\"clientId\"]);return new URLSearchParams((e=>Object.keys(e).filter((t=>void 0!==e[t])).reduce(((t,i)=>Object.assign(Object.assign({},t),{[i]:e[i]})),{}))(Object.assign({client_id:i},o))).toString()},v=e=>(e=>decodeURIComponent(atob(e).split(\"\").map((e=>\"%\"+(\"00\"+e.charCodeAt(0).toString(16)).slice(-2))).join(\"\")))(e.replace(/_/g,\"/\").replace(/-/g,\"+\")),_=async(e,t)=>{const i=await fetch(e,t);return{ok:i.ok,json:await i.json()}},I=async(e,t,i)=>{const o=new AbortController;let n;return t.signal=o.signal,Promise.race([_(e,t),new Promise(((e,t)=>{n=setTimeout((()=>{o.abort(),t(new Error(\"Timeout when executing 'fetch'\"))}),i)}))]).finally((()=>{clearTimeout(n)}))},S=async(e,t,i,o,n,a,s)=>{return r={auth:{audience:t,scope:i},timeout:n,fetchUrl:e,fetchOptions:o,useFormData:s},c=a,new Promise((function(e,t){const i=new MessageChannel;i.port1.onmessage=function(o){o.data.error?t(new Error(o.data.error)):e(o.data),i.port1.close()},c.postMessage(r,[i.port2])}));var r,c},T=async(e,t,i,o,n,a,s=1e4)=>n?S(e,t,i,o,s,n,a):I(e,o,s);async function O(t,i){var{baseUrl:o,timeout:n,audience:a,scope:s,auth0Client:c,useFormData:u}=t,l=e(t,[\"baseUrl\",\"timeout\",\"audience\",\"scope\",\"auth0Client\",\"useFormData\"]);const h=u?b(l):JSON.stringify(l);return await async function(t,i,o,n,a,s,r){let c,u=null;for(let e=0;e<3;e++)try{c=await T(t,o,n,a,s,r,i),u=null;break}catch(e){u=e}if(u)throw u;const l=c.json,{error:h,error_description:p}=l,f=e(l,[\"error\",\"error_description\"]),{ok:g}=c;if(!g){const e=p||`HTTP error. Unable to fetch ${t}`;if(\"mfa_required\"===h)throw new m(h,e,f.mfa_token);throw new d(h||\"request_error\",e)}return f}(`${o}/oauth/token`,n,a||\"default\",s,{method:\"POST\",body:h,headers:{\"Content-Type\":u?\"application/x-www-form-urlencoded\":\"application/json\",\"Auth0-Client\":btoa(JSON.stringify(c||r))}},i,u)}const j=(...e)=>{return(t=e.filter(Boolean).join(\" \").trim().split(/\\s+/),Array.from(new Set(t))).join(\" \");var t};class C{constructor(e,t=\"@@auth0spajs@@\",i){this.prefix=t,this.suffix=i,this.clientId=e.clientId,this.scope=e.scope,this.audience=e.audience}toKey(){return[this.prefix,this.clientId,this.audience,this.scope,this.suffix].filter(Boolean).join(\"::\")}static fromKey(e){const[t,i,o,n]=e.split(\"::\");return new C({clientId:i,scope:n,audience:o},t)}static fromCacheEntry(e){const{scope:t,audience:i,client_id:o}=e;return new C({scope:t,audience:i,clientId:o})}}class x{set(e,t){localStorage.setItem(e,JSON.stringify(t))}get(e){const t=window.localStorage.getItem(e);if(t)try{return JSON.parse(t)}catch(e){return}}remove(e){localStorage.removeItem(e)}allKeys(){return Object.keys(window.localStorage).filter((e=>e.startsWith(\"@@auth0spajs@@\")))}}class z{constructor(){this.enclosedCache=function(){let e={};return{set(t,i){e[t]=i},get(t){const i=e[t];if(i)return i},remove(t){delete e[t]},allKeys:()=>Object.keys(e)}}()}}class P{constructor(e,t,i){this.cache=e,this.keyManifest=t,this.nowProvider=i||c}async setIdToken(e,t,i){var o;const n=this.getIdTokenCacheKey(e);await this.cache.set(n,{id_token:t,decodedToken:i}),await(null===(o=this.keyManifest)||void 0===o?void 0:o.add(n))}async getIdToken(e){const t=await this.cache.get(this.getIdTokenCacheKey(e.clientId));if(!t&&e.scope&&e.audience){const t=await this.get(e);if(!t)return;if(!t.id_token||!t.decodedToken)return;return{id_token:t.id_token,decodedToken:t.decodedToken}}if(t)return{id_token:t.id_token,decodedToken:t.decodedToken}}async get(e,t=0){var i;let o=await this.cache.get(e.toKey());if(!o){const t=await this.getCacheKeys();if(!t)return;const i=this.matchExistingCacheKey(e,t);i&&(o=await this.cache.get(i))}if(!o)return;const n=await this.nowProvider(),a=Math.floor(n/1e3);return o.expiresAt-t!e||t.includes(e))).reduce((async(e,t)=>{await e,await this.cache.remove(t)}),Promise.resolve()),await(null===(t=this.keyManifest)||void 0===t?void 0:t.clear()))}async wrapCacheEntry(e){const t=await this.nowProvider();return{body:e,expiresAt:Math.floor(t/1e3)+e.expires_in}}async getCacheKeys(){var e;return this.keyManifest?null===(e=await this.keyManifest.get())||void 0===e?void 0:e.keys:this.cache.allKeys?this.cache.allKeys():void 0}getIdTokenCacheKey(e){return new C({clientId:e},\"@@auth0spajs@@\",\"@@user@@\").toKey()}matchExistingCacheKey(e,t){return t.filter((t=>{var i;const o=C.fromKey(t),n=new Set(o.scope&&o.scope.split(\" \")),a=(null===(i=e.scope)||void 0===i?void 0:i.split(\" \"))||[],s=o.scope&&a.reduce(((e,t)=>e&&n.has(t)),!0);return\"@@auth0spajs@@\"===o.prefix&&o.clientId===e.clientId&&o.audience===e.audience&&s}))[0]}}class Z{constructor(e,t){this.storage=e,this.clientId=t,this.storageKey=`a0.spajs.txs.${this.clientId}`,this.transaction=this.storage.get(this.storageKey)}create(e){this.transaction=e,this.storage.save(this.storageKey,e,{daysUntilExpire:1})}get(){return this.transaction}remove(){delete this.transaction,this.storage.remove(this.storageKey)}}const K=e=>\"number\"==typeof e,L=[\"iss\",\"aud\",\"exp\",\"nbf\",\"iat\",\"jti\",\"azp\",\"nonce\",\"auth_time\",\"at_hash\",\"c_hash\",\"acr\",\"amr\",\"sub_jwk\",\"cnf\",\"sip_from_tag\",\"sip_date\",\"sip_callid\",\"sip_cseq_num\",\"sip_via_branch\",\"orig\",\"dest\",\"mky\",\"events\",\"toe\",\"txn\",\"rph\",\"sid\",\"vot\",\"vtm\"],E=e=>{if(!e.id_token)throw new Error(\"ID token is required but missing\");const t=(e=>{const t=e.split(\".\"),[i,o,n]=t;if(3!==t.length||!i||!o||!n)throw new Error(\"ID token could not be decoded\");const a=JSON.parse(v(o)),s={__raw:e},r={};return Object.keys(a).forEach((e=>{s[e]=a[e],L.includes(e)||(r[e]=a[e])})),{encoded:{header:i,payload:o,signature:n},header:JSON.parse(v(i)),claims:s,user:r}})(e.id_token);if(!t.claims.iss)throw new Error(\"Issuer (iss) claim must be a string present in the ID token\");if(t.claims.iss!==e.iss)throw new Error(`Issuer (iss) claim mismatch in the ID token; expected \"${e.iss}\", found \"${t.claims.iss}\"`);if(!t.user.sub)throw new Error(\"Subject (sub) claim must be a string present in the ID token\");if(\"RS256\"!==t.header.alg)throw new Error(`Signature algorithm of \"${t.header.alg}\" is not supported. Expected the ID token to be signed with \"RS256\".`);if(!t.claims.aud||\"string\"!=typeof t.claims.aud&&!Array.isArray(t.claims.aud))throw new Error(\"Audience (aud) claim must be a string or array of strings present in the ID token\");if(Array.isArray(t.claims.aud)){if(!t.claims.aud.includes(e.aud))throw new Error(`Audience (aud) claim mismatch in the ID token; expected \"${e.aud}\" but was not one of \"${t.claims.aud.join(\", \")}\"`);if(t.claims.aud.length>1){if(!t.claims.azp)throw new Error(\"Authorized Party (azp) claim must be a string present in the ID token when Audience (aud) claim has multiple values\");if(t.claims.azp!==e.aud)throw new Error(`Authorized Party (azp) claim mismatch in the ID token; expected \"${e.aud}\", found \"${t.claims.azp}\"`)}}else if(t.claims.aud!==e.aud)throw new Error(`Audience (aud) claim mismatch in the ID token; expected \"${e.aud}\" but found \"${t.claims.aud}\"`);if(e.nonce){if(!t.claims.nonce)throw new Error(\"Nonce (nonce) claim must be a string present in the ID token\");if(t.claims.nonce!==e.nonce)throw new Error(`Nonce (nonce) claim mismatch in the ID token; expected \"${e.nonce}\", found \"${t.claims.nonce}\"`)}if(e.max_age&&!K(t.claims.auth_time))throw new Error(\"Authentication Time (auth_time) claim must be a number present in the ID token when Max Age (max_age) is specified\");if(null==t.claims.exp||!K(t.claims.exp))throw new Error(\"Expiration Time (exp) claim must be a number present in the ID token\");if(!K(t.claims.iat))throw new Error(\"Issued At (iat) claim must be a number present in the ID token\");const i=e.leeway||60,o=new Date(e.now||Date.now()),n=new Date(0);if(n.setUTCSeconds(t.claims.exp+i),o>n)throw new Error(`Expiration Time (exp) claim error in the ID token; current time (${o}) is after expiration time (${n})`);if(null!=t.claims.nbf&&K(t.claims.nbf)){const e=new Date(0);if(e.setUTCSeconds(t.claims.nbf-i),on)throw new Error(`Authentication Time (auth_time) claim in the ID token indicates that too much time has passed since the last end-user authentication. Current time (${o}) is after last auth at ${n}`)}if(e.organizationId){if(!t.claims.org_id)throw new Error(\"Organization ID (org_id) claim must be a string present in the ID token\");if(e.organizationId!==t.claims.org_id)throw new Error(`Organization ID (org_id) claim mismatch in the ID token; expected \"${e.organizationId}\", found \"${t.claims.org_id}\"`)}return t};var U=o((function(e,i){var o=t&&t.__assign||function(){return o=Object.assign||function(e){for(var t,i=1,o=arguments.length;i0?await this.cache.set(this.manifestKey,{keys:[...i]}):await this.cache.remove(this.manifestKey)}}get(){return this.cache.get(this.manifestKey)}clear(){return this.cache.remove(this.manifestKey)}createManifestKeyFrom(e){return`@@auth0spajs@@::${e}`}}const B={memory:()=>(new z).enclosedCache,localstorage:()=>new x},q=e=>B[e],Q=t=>{const{openUrl:i,onRedirect:o}=t,n=e(t,[\"openUrl\",\"onRedirect\"]);return Object.assign(Object.assign({},n),{openUrl:!1===i||i?i:o})},ee=new a;class te{constructor(e){let t,i;if(this.userCache=(new z).enclosedCache,this.defaultOptions={authorizationParams:{scope:\"openid profile email\"},useRefreshTokensFallback:!1,useFormData:!0},this._releaseLockOnPageHide=async()=>{await ee.releaseLock(\"auth0.lock.getTokenSilently\"),window.removeEventListener(\"pagehide\",this._releaseLockOnPageHide)},this.options=Object.assign(Object.assign(Object.assign({},this.defaultOptions),e),{authorizationParams:Object.assign(Object.assign({},this.defaultOptions.authorizationParams),e.authorizationParams)}),\"undefined\"!=typeof window&&(()=>{if(!w())throw new Error(\"For security reasons, `window.crypto` is required to run `auth0-spa-js`.\");if(void 0===w().subtle)throw new Error(\"\\n auth0-spa-js must run on a secure origin. See https://github.com/auth0/auth0-spa-js/blob/master/FAQ.md#why-do-i-get-auth0-spa-js-must-run-on-a-secure-origin for more information.\\n \")})(),e.cache&&e.cacheLocation&&console.warn(\"Both `cache` and `cacheLocation` options have been specified in the Auth0Client configuration; ignoring `cacheLocation` and using `cache`.\"),e.cache)i=e.cache;else{if(t=e.cacheLocation||\"memory\",!q(t))throw new Error(`Invalid cache location \"${t}\"`);i=q(t)()}this.httpTimeoutMs=e.httpTimeoutInSeconds?1e3*e.httpTimeoutInSeconds:1e4,this.cookieStorage=!1===e.legacySameSiteCookie?X:D,this.orgHintCookieName=`auth0.${this.options.clientId}.organization_hint`,this.isAuthenticatedCookieName=(e=>`auth0.${e}.is.authenticated`)(this.options.clientId),this.sessionCheckExpiryDays=e.sessionCheckExpiryDays||1;const o=e.useCookiesForTransactions?this.cookieStorage:V;var n;this.scope=j(\"openid\",this.options.authorizationParams.scope,this.options.useRefreshTokens?\"offline_access\":\"\"),this.transactionManager=new Z(o,this.options.clientId),this.nowProvider=this.options.nowProvider||c,this.cacheManager=new P(i,i.allKeys?void 0:new $(i,this.options.clientId),this.nowProvider),this.domainUrl=(n=this.options.domain,/^https?:\\/\\//.test(n)?n:`https://${n}`),this.tokenIssuer=((e,t)=>e?e.startsWith(\"https://\")?e:`https://${e}/`:`${t}/`)(this.options.issuer,this.domainUrl),\"undefined\"!=typeof window&&window.Worker&&this.options.useRefreshTokens&&\"memory\"===t&&(this.worker=new A)}_url(e){const t=encodeURIComponent(btoa(JSON.stringify(this.options.auth0Client||r)));return`${this.domainUrl}${e}&auth0Client=${t}`}_authorizeUrl(e){return this._url(`/authorize?${b(e)}`)}async _verifyIdToken(e,t,i){const o=await this.nowProvider();return E({iss:this.tokenIssuer,aud:this.options.clientId,id_token:e,nonce:t,organizationId:i,leeway:this.options.leeway,max_age:(n=this.options.authorizationParams.max_age,\"string\"!=typeof n?n:parseInt(n,10)||void 0),now:o});var n}_processOrgIdHint(e){e?this.cookieStorage.save(this.orgHintCookieName,e,{daysUntilExpire:this.sessionCheckExpiryDays,cookieDomain:this.options.cookieDomain}):this.cookieStorage.remove(this.orgHintCookieName,{cookieDomain:this.options.cookieDomain})}async _prepareAuthorizeUrl(e,t,i){const o=k(y()),n=k(y()),a=y(),s=(e=>{const t=new Uint8Array(e);return(e=>{const t={\"+\":\"-\",\"/\":\"_\",\"=\":\"\"};return e.replace(/[+/=]/g,(e=>t[e]))})(window.btoa(String.fromCharCode(...Array.from(t))))})(await(async e=>{const t=w().subtle.digest({name:\"SHA-256\"},(new TextEncoder).encode(e));return await t})(a)),r=((e,t,i,o,n,a,s,r)=>Object.assign(Object.assign(Object.assign({client_id:e.clientId},e.authorizationParams),i),{scope:j(t,i.scope),response_type:\"code\",response_mode:r||\"query\",state:o,nonce:n,redirect_uri:s||e.authorizationParams.redirect_uri,code_challenge:a,code_challenge_method:\"S256\"}))(this.options,this.scope,e,o,n,s,e.redirect_uri||this.options.authorizationParams.redirect_uri||i,null==t?void 0:t.response_mode),c=this._authorizeUrl(r);return{nonce:n,code_verifier:a,scope:r.scope,audience:r.audience||\"default\",redirect_uri:r.redirect_uri,state:o,url:c}}async loginWithPopup(e,t){var i;if(e=e||{},!(t=t||{}).popup&&(t.popup=(e=>{const t=window.screenX+(window.innerWidth-400)/2,i=window.screenY+(window.innerHeight-600)/2;return window.open(e,\"auth0:authorize:popup\",`left=${t},top=${i},width=400,height=600,resizable,scrollbars=yes,status=1`)})(\"\"),!t.popup))throw new Error(\"Unable to open a popup for loginWithPopup - window.open returned `null`\");const o=await this._prepareAuthorizeUrl(e.authorizationParams||{},{response_mode:\"web_message\"},window.location.origin);t.popup.location.href=o.url;const n=await(e=>new Promise(((t,i)=>{let o;const n=setInterval((()=>{e.popup&&e.popup.closed&&(clearInterval(n),clearTimeout(a),window.removeEventListener(\"message\",o,!1),i(new p(e.popup)))}),1e3),a=setTimeout((()=>{clearInterval(n),i(new h(e.popup)),window.removeEventListener(\"message\",o,!1)}),1e3*(e.timeoutInSeconds||60));o=function(s){if(s.data&&\"authorization_response\"===s.data.type){if(clearTimeout(a),clearInterval(n),window.removeEventListener(\"message\",o,!1),e.popup.close(),s.data.response.error)return i(d.fromPayload(s.data.response));t(s.data.response)}},window.addEventListener(\"message\",o)})))(Object.assign(Object.assign({},t),{timeoutInSeconds:t.timeoutInSeconds||this.options.authorizeTimeoutInSeconds||60}));if(o.state!==n.state)throw new Error(\"Invalid state\");const a=(null===(i=e.authorizationParams)||void 0===i?void 0:i.organization)||this.options.authorizationParams.organization;await this._requestToken({audience:o.audience,scope:o.scope,code_verifier:o.code_verifier,grant_type:\"authorization_code\",code:n.code,redirect_uri:o.redirect_uri},{nonceIn:o.nonce,organizationId:a})}async getUser(){var e;const t=await this._getIdTokenFromCache();return null===(e=null==t?void 0:t.decodedToken)||void 0===e?void 0:e.user}async getIdTokenClaims(){var e;const t=await this._getIdTokenFromCache();return null===(e=null==t?void 0:t.decodedToken)||void 0===e?void 0:e.claims}async loginWithRedirect(t={}){var i;const o=Q(t),{openUrl:n,fragment:a,appState:s}=o,r=e(o,[\"openUrl\",\"fragment\",\"appState\"]),c=(null===(i=r.authorizationParams)||void 0===i?void 0:i.organization)||this.options.authorizationParams.organization,d=await this._prepareAuthorizeUrl(r.authorizationParams||{}),{url:u}=d,l=e(d,[\"url\"]);this.transactionManager.create(Object.assign(Object.assign(Object.assign({},l),{appState:s}),c&&{organizationId:c}));const h=a?`${u}#${a}`:u;n?await n(h):window.location.assign(h)}async handleRedirectCallback(e=window.location.href){const t=e.split(\"?\").slice(1);if(0===t.length)throw new Error(\"There are no query params available for parsing.\");const{state:i,code:o,error:n,error_description:a}=(e=>{e.indexOf(\"#\")>-1&&(e=e.substring(0,e.indexOf(\"#\")));const t=new URLSearchParams(e);return{state:t.get(\"state\"),code:t.get(\"code\")||void 0,error:t.get(\"error\")||void 0,error_description:t.get(\"error_description\")||void 0}})(t.join(\"\")),s=this.transactionManager.get();if(!s)throw new Error(\"Invalid state\");if(this.transactionManager.remove(),n)throw new u(n,a||n,i,s.appState);if(!s.code_verifier||s.state&&s.state!==i)throw new Error(\"Invalid state\");const r=s.organizationId,c=s.nonce,d=s.redirect_uri;return await this._requestToken(Object.assign({audience:s.audience,scope:s.scope,code_verifier:s.code_verifier,grant_type:\"authorization_code\",code:o},d?{redirect_uri:d}:{}),{nonceIn:c,organizationId:r}),{appState:s.appState}}async checkSession(e){if(!this.cookieStorage.get(this.isAuthenticatedCookieName)){if(!this.cookieStorage.get(\"auth0.is.authenticated\"))return;this.cookieStorage.save(this.isAuthenticatedCookieName,!0,{daysUntilExpire:this.sessionCheckExpiryDays,cookieDomain:this.options.cookieDomain}),this.cookieStorage.remove(\"auth0.is.authenticated\")}try{await this.getTokenSilently(e)}catch(e){}}async getTokenSilently(e={}){var t;const i=Object.assign(Object.assign({cacheMode:\"on\"},e),{authorizationParams:Object.assign(Object.assign(Object.assign({},this.options.authorizationParams),e.authorizationParams),{scope:j(this.scope,null===(t=e.authorizationParams)||void 0===t?void 0:t.scope)})}),o=await((e,t)=>{let i=Y[t];return i||(i=e().finally((()=>{delete Y[t],i=null})),Y[t]=i),i})((()=>this._getTokenSilently(i)),`${this.options.clientId}::${i.authorizationParams.audience}::${i.authorizationParams.scope}`);return e.detailedResponse?o:null==o?void 0:o.access_token}async _getTokenSilently(t){const{cacheMode:i}=t,o=e(t,[\"cacheMode\"]);if(\"off\"!==i){const e=await this._getEntryFromCache({scope:o.authorizationParams.scope,audience:o.authorizationParams.audience||\"default\",clientId:this.options.clientId});if(e)return e}if(\"cache-only\"!==i){if(!await(async(e,t=3)=>{for(let i=0;iee.acquireLock(\"auth0.lock.getTokenSilently\",5e3)),10))throw new l;try{if(window.addEventListener(\"pagehide\",this._releaseLockOnPageHide),\"off\"!==i){const e=await this._getEntryFromCache({scope:o.authorizationParams.scope,audience:o.authorizationParams.audience||\"default\",clientId:this.options.clientId});if(e)return e}const e=this.options.useRefreshTokens?await this._getTokenUsingRefreshToken(o):await this._getTokenFromIFrame(o),{id_token:t,access_token:n,oauthTokenScope:a,expires_in:s}=e;return Object.assign(Object.assign({id_token:t,access_token:n},a?{scope:a}:null),{expires_in:s})}finally{await ee.releaseLock(\"auth0.lock.getTokenSilently\"),window.removeEventListener(\"pagehide\",this._releaseLockOnPageHide)}}}async getTokenWithPopup(e={},t={}){var i;const o=Object.assign(Object.assign({},e),{authorizationParams:Object.assign(Object.assign(Object.assign({},this.options.authorizationParams),e.authorizationParams),{scope:j(this.scope,null===(i=e.authorizationParams)||void 0===i?void 0:i.scope)})});t=Object.assign(Object.assign({},s),t),await this.loginWithPopup(o,t);return(await this.cacheManager.get(new C({scope:o.authorizationParams.scope,audience:o.authorizationParams.audience||\"default\",clientId:this.options.clientId}))).access_token}async isAuthenticated(){return!!await this.getUser()}_buildLogoutUrl(t){null!==t.clientId?t.clientId=t.clientId||this.options.clientId:delete t.clientId;const i=t.logoutParams||{},{federated:o}=i,n=e(i,[\"federated\"]),a=o?\"&federated\":\"\";return this._url(`/v2/logout?${b(Object.assign({clientId:t.clientId},n))}`)+a}async logout(t={}){const i=Q(t),{openUrl:o}=i,n=e(i,[\"openUrl\"]);null===t.clientId?await this.cacheManager.clear():await this.cacheManager.clear(t.clientId||this.options.clientId),this.cookieStorage.remove(this.orgHintCookieName,{cookieDomain:this.options.cookieDomain}),this.cookieStorage.remove(this.isAuthenticatedCookieName,{cookieDomain:this.options.cookieDomain}),this.userCache.remove(\"@@user@@\");const a=this._buildLogoutUrl(n);o?await o(a):!1!==o&&window.location.assign(a)}async _getTokenFromIFrame(e){const t=Object.assign(Object.assign({},e.authorizationParams),{prompt:\"none\"}),i=this.cookieStorage.get(this.orgHintCookieName);i&&!t.organization&&(t.organization=i);const{url:o,state:n,nonce:a,code_verifier:s,redirect_uri:r,scope:c,audience:u}=await this._prepareAuthorizeUrl(t,{response_mode:\"web_message\"},window.location.origin);try{if(window.crossOriginIsolated)throw new d(\"login_required\",\"The application is running in a Cross-Origin Isolated context, silently retrieving a token without refresh token is not possible.\");const t=e.timeoutInSeconds||this.options.authorizeTimeoutInSeconds,i=await((e,t,i=60)=>new Promise(((o,n)=>{const a=window.document.createElement(\"iframe\");a.setAttribute(\"width\",\"0\"),a.setAttribute(\"height\",\"0\"),a.style.display=\"none\";const s=()=>{window.document.body.contains(a)&&(window.document.body.removeChild(a),window.removeEventListener(\"message\",r,!1))};let r;const c=setTimeout((()=>{n(new l),s()}),1e3*i);r=function(e){if(e.origin!=t)return;if(!e.data||\"authorization_response\"!==e.data.type)return;const i=e.source;i&&i.close(),e.data.response.error?n(d.fromPayload(e.data.response)):o(e.data.response),clearTimeout(c),window.removeEventListener(\"message\",r,!1),setTimeout(s,2e3)},window.addEventListener(\"message\",r,!1),window.document.body.appendChild(a),a.setAttribute(\"src\",e)})))(o,this.domainUrl,t);if(n!==i.state)throw new Error(\"Invalid state\");const h=await this._requestToken(Object.assign(Object.assign({},e.authorizationParams),{code_verifier:s,code:i.code,grant_type:\"authorization_code\",redirect_uri:r,timeout:e.authorizationParams.timeout||this.httpTimeoutMs}),{nonceIn:a});return Object.assign(Object.assign({},h),{scope:c,oauthTokenScope:h.scope,audience:u})}catch(e){throw\"login_required\"===e.error&&this.logout({openUrl:!1}),e}}async _getTokenUsingRefreshToken(e){const t=await this.cacheManager.get(new C({scope:e.authorizationParams.scope,audience:e.authorizationParams.audience||\"default\",clientId:this.options.clientId}));if(!(t&&t.refresh_token||this.worker)){if(this.options.useRefreshTokensFallback)return await this._getTokenFromIFrame(e);throw new f(e.authorizationParams.audience||\"default\",e.authorizationParams.scope)}const i=e.authorizationParams.redirect_uri||this.options.authorizationParams.redirect_uri||window.location.origin,o=\"number\"==typeof e.timeoutInSeconds?1e3*e.timeoutInSeconds:null;try{const n=await this._requestToken(Object.assign(Object.assign(Object.assign({},e.authorizationParams),{grant_type:\"refresh_token\",refresh_token:t&&t.refresh_token,redirect_uri:i}),o&&{timeout:o}));return Object.assign(Object.assign({},n),{scope:e.authorizationParams.scope,oauthTokenScope:n.scope,audience:e.authorizationParams.audience||\"default\"})}catch(t){if((t.message.indexOf(\"Missing Refresh Token\")>-1||t.message&&t.message.indexOf(\"invalid refresh token\")>-1)&&this.options.useRefreshTokensFallback)return await this._getTokenFromIFrame(e);throw t}}async _saveEntryInCache(t){const{id_token:i,decodedToken:o}=t,n=e(t,[\"id_token\",\"decodedToken\"]);this.userCache.set(\"@@user@@\",{id_token:i,decodedToken:o}),await this.cacheManager.setIdToken(this.options.clientId,t.id_token,t.decodedToken),await this.cacheManager.set(n)}async _getIdTokenFromCache(){const e=this.options.authorizationParams.audience||\"default\",t=await this.cacheManager.getIdToken(new C({clientId:this.options.clientId,audience:e,scope:this.scope})),i=this.userCache.get(\"@@user@@\");return t&&t.id_token===(null==i?void 0:i.id_token)?i:(this.userCache.set(\"@@user@@\",t),t)}async _getEntryFromCache({scope:e,audience:t,clientId:i}){const o=await this.cacheManager.get(new C({scope:e,audience:t,clientId:i}),60);if(o&&o.access_token){const{access_token:e,oauthTokenScope:t,expires_in:i}=o,n=await this._getIdTokenFromCache();return n&&Object.assign(Object.assign({id_token:n.id_token,access_token:e},t?{scope:t}:null),{expires_in:i})}}async _requestToken(e,t){const{nonceIn:i,organizationId:o}=t||{},n=await O(Object.assign({baseUrl:this.domainUrl,client_id:this.options.clientId,auth0Client:this.options.auth0Client,useFormData:this.options.useFormData,timeout:this.httpTimeoutMs},e),this.worker),a=await this._verifyIdToken(n.id_token,i,o);return await this._saveEntryInCache(Object.assign(Object.assign(Object.assign(Object.assign({},n),{decodedToken:a,scope:e.scope,audience:e.audience||\"default\"}),n.scope?{oauthTokenScope:n.scope}:null),{client_id:this.options.clientId})),this.cookieStorage.save(this.isAuthenticatedCookieName,!0,{daysUntilExpire:this.sessionCheckExpiryDays,cookieDomain:this.options.cookieDomain}),this._processOrgIdHint(a.claims.org_id),Object.assign(Object.assign({},n),{decodedToken:a})}}class ie{}async function oe(e){const t=new te(e);return await t.checkSession(),t}export{te as Auth0Client,u as AuthenticationError,C as CacheKey,d as GenericError,z as InMemoryCache,x as LocalStorageCache,m as MfaRequiredError,f as MissingRefreshTokenError,p as PopupCancelledError,h as PopupTimeoutError,l as TimeoutError,ie as User,oe as createAuth0Client};\n","/*!\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","/*!\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 */\nvar prefix = \"fab\";\nvar fa500px = {\n prefix: 'fab',\n iconName: '500px',\n icon: [448, 512, [], \"f26e\", \"M103.3 344.3c-6.5-14.2-6.9-18.3 7.4-23.1 25.6-8 8 9.2 43.2 49.2h.3v-93.9c1.2-50.2 44-92.2 97.7-92.2 53.9 0 97.7 43.5 97.7 96.8 0 63.4-60.8 113.2-128.5 93.3-10.5-4.2-2.1-31.7 8.5-28.6 53 0 89.4-10.1 89.4-64.4 0-61-77.1-89.6-116.9-44.6-23.5 26.4-17.6 42.1-17.6 157.6 50.7 31 118.3 22 160.4-20.1 24.8-24.8 38.5-58 38.5-93 0-35.2-13.8-68.2-38.8-93.3-24.8-24.8-57.8-38.5-93.3-38.5s-68.8 13.8-93.5 38.5c-.3.3-16 16.5-21.2 23.9l-.5.6c-3.3 4.7-6.3 9.1-20.1 6.1-6.9-1.7-14.3-5.8-14.3-11.8V20c0-5 3.9-10.5 10.5-10.5h241.3c8.3 0 8.3 11.6 8.3 15.1 0 3.9 0 15.1-8.3 15.1H130.3v132.9h.3c104.2-109.8 282.8-36 282.8 108.9 0 178.1-244.8 220.3-310.1 62.8zm63.3-260.8c-.5 4.2 4.6 24.5 14.6 20.6C306 56.6 384 144.5 390.6 144.5c4.8 0 22.8-15.3 14.3-22.8-93.2-89-234.5-57-238.3-38.2zM393 414.7C283 524.6 94 475.5 61 310.5c0-12.2-30.4-7.4-28.9 3.3 24 173.4 246 256.9 381.6 121.3 6.9-7.8-12.6-28.4-20.7-20.4zM213.6 306.6c0 4 4.3 7.3 5.5 8.5 3 3 6.1 4.4 8.5 4.4 3.8 0 2.6.2 22.3-19.5 19.6 19.3 19.1 19.5 22.3 19.5 5.4 0 18.5-10.4 10.7-18.2L265.6 284l18.2-18.2c6.3-6.8-10.1-21.8-16.2-15.7L249.7 268c-18.6-18.8-18.4-19.5-21.5-19.5-5 0-18 11.7-12.4 17.3L234 284c-18.1 17.9-20.4 19.2-20.4 22.6z\"]\n};\nvar faAccessibleIcon = {\n prefix: 'fab',\n iconName: 'accessible-icon',\n icon: [448, 512, [], \"f368\", \"M423.9 255.8L411 413.1c-3.3 40.7-63.9 35.1-60.6-4.9l10-122.5-41.1 2.3c10.1 20.7 15.8 43.9 15.8 68.5 0 41.2-16.1 78.7-42.3 106.5l-39.3-39.3c57.9-63.7 13.1-167.2-74-167.2-25.9 0-49.5 9.9-67.2 26L73 243.2c22-20.7 50.1-35.1 81.4-40.2l75.3-85.7-42.6-24.8-51.6 46c-30 26.8-70.6-18.5-40.5-45.4l68-60.7c9.8-8.8 24.1-10.2 35.5-3.6 0 0 139.3 80.9 139.5 81.1 16.2 10.1 20.7 36 6.1 52.6L285.7 229l106.1-5.9c18.5-1.1 33.6 14.4 32.1 32.7zm-64.9-154c28.1 0 50.9-22.8 50.9-50.9C409.9 22.8 387.1 0 359 0c-28.1 0-50.9 22.8-50.9 50.9 0 28.1 22.8 50.9 50.9 50.9zM179.6 456.5c-80.6 0-127.4-90.6-82.7-156.1l-39.7-39.7C36.4 287 24 320.3 24 356.4c0 130.7 150.7 201.4 251.4 122.5l-39.7-39.7c-16 10.9-35.3 17.3-56.1 17.3z\"]\n};\nvar faAccusoft = {\n prefix: 'fab',\n iconName: 'accusoft',\n icon: [640, 512, [], \"f369\", \"M322.1 252v-1l-51.2-65.8s-12 1.6-25 15.1c-9 9.3-242.1 239.1-243.4 240.9-7 10 1.6 6.8 15.7 1.7.8 0 114.5-36.6 114.5-36.6.5-.6-.1-.1.6-.6-.4-5.1-.8-26.2-1-27.7-.6-5.2 2.2-6.9 7-8.9l92.6-33.8c.6-.8 88.5-81.7 90.2-83.3zm160.1 120.1c13.3 16.1 20.7 13.3 30.8 9.3 3.2-1.2 115.4-47.6 117.8-48.9 8-4.3-1.7-16.7-7.2-23.4-2.1-2.5-205.1-245.6-207.2-248.3-9.7-12.2-14.3-12.9-38.4-12.8-10.2 0-106.8.5-116.5.6-19.2.1-32.9-.3-19.2 16.9C250 75 476.5 365.2 482.2 372.1zm152.7 1.6c-2.3-.3-24.6-4.7-38-7.2 0 0-115 50.4-117.5 51.6-16 7.3-26.9-3.2-36.7-14.6l-57.1-74c-5.4-.9-60.4-9.6-65.3-9.3-3.1.2-9.6.8-14.4 2.9-4.9 2.1-145.2 52.8-150.2 54.7-5.1 2-11.4 3.6-11.1 7.6.2 2.5 2 2.6 4.6 3.5 2.7.8 300.9 67.6 308 69.1 15.6 3.3 38.5 10.5 53.6 1.7 2.1-1.2 123.8-76.4 125.8-77.8 5.4-4 4.3-6.8-1.7-8.2z\"]\n};\nvar faAcquisitionsIncorporated = {\n prefix: 'fab',\n iconName: 'acquisitions-incorporated',\n icon: [384, 512, [], \"f6af\", \"M357.45 468.2c-1.2-7.7-1.3-7.6-9.6-7.6-99.8.2-111.8-2.4-112.7-2.6-12.3-1.7-20.6-10.5-21-23.1-.1-1.6-.2-71.6-1-129.1-.1-4.7 1.6-6.4 5.9-7.5 12.5-3 24.9-6.1 37.3-9.7 4.3-1.3 6.8-.2 8.4 3.5 4.5 10.3 8.8 20.6 13.2 30.9 1.6 3.7.1 4.4-3.4 4.4-10-.2-20-.1-30.4-.1v27h116c-1.4-9.5-2.7-18.1-4-27.5-7 0-13.8.4-20.4-.1-22.6-1.6-18.3-4.4-84-158.6-8.8-20.1-27.9-62.1-36.5-89.2-4.4-14 5.5-25.4 18.9-26.6 18.6-1.7 37.5-1.6 56.2-2 20.6-.4 41.2-.4 61.8-.5 3.1 0 4-1.4 4.3-4.3 1.2-9.8 2.7-19.5 4-29.2.8-5.3 1.6-10.7 2.4-16.1L23.75 0c-3.6 0-5.3 1.1-4.6 5.3 2.2 13.2-.8.8 6.4 45.3 63.4 0 71.8.9 101.8.5 12.3-.2 37 3.5 37.7 22.1.4 11.4-1.1 11.3-32.6 87.4-53.8 129.8-50.7 120.3-67.3 161-1.7 4.1-3.6 5.2-7.6 5.2-8.5-.2-17-.3-25.4.1-1.9.1-5.2 1.8-5.5 3.2-1.5 8.1-2.2 16.3-3.2 24.9h114.3v-27.6c-6.9 0-33.5.4-35.3-2.9 5.3-12.3 10.4-24.4 15.7-36.7 16.3 4 31.9 7.8 47.6 11.7 3.4.9 4.6 3 4.6 6.8-.1 42.9.1 85.9.2 128.8 0 10.2-5.5 19.1-14.9 23.1-6.5 2.7-3.3 3.4-121.4 2.4-5.3 0-7.1 2-7.6 6.8-1.5 12.9-2.9 25.9-5 38.8-.8 5 1.3 5.7 5.3 5.7 183.2.6-30.7 0 337.1 0-2.5-15-4.4-29.4-6.6-43.7zm-174.9-205.7c-13.3-4.2-26.6-8.2-39.9-12.5a44.53 44.53 0 0 1-5.8-2.9c17.2-44.3 34.2-88.1 51.3-132.1 7.5 2.4 7.9-.8 9.4 0 9.3 22.5 18.1 60.1 27 82.8 6.6 16.7 13 33.5 19.7 50.9a35.78 35.78 0 0 1-3.9 2.1c-13.1 3.9-26.4 7.5-39.4 11.7a27.66 27.66 0 0 1-18.4 0z\"]\n};\nvar faAdn = {\n prefix: 'fab',\n iconName: 'adn',\n icon: [496, 512, [], \"f170\", \"M248 167.5l64.9 98.8H183.1l64.9-98.8zM496 256c0 136.9-111.1 248-248 248S0 392.9 0 256 111.1 8 248 8s248 111.1 248 248zm-99.8 82.7L248 115.5 99.8 338.7h30.4l33.6-51.7h168.6l33.6 51.7h30.2z\"]\n};\nvar faAdversal = {\n prefix: 'fab',\n iconName: 'adversal',\n icon: [512, 512, [], \"f36a\", \"M482.1 32H28.7C5.8 32 0 37.9 0 60.9v390.2C0 474.4 5.8 480 28.7 480h453.4c24.4 0 29.9-5.2 29.9-29.7V62.2c0-24.6-5.4-30.2-29.9-30.2zM178.4 220.3c-27.5-20.2-72.1-8.7-84.2 23.4-4.3 11.1-9.3 9.5-17.5 8.3-9.7-1.5-17.2-3.2-22.5-5.5-28.8-11.4 8.6-55.3 24.9-64.3 41.1-21.4 83.4-22.2 125.3-4.8 40.9 16.8 34.5 59.2 34.5 128.5 2.7 25.8-4.3 58.3 9.3 88.8 1.9 4.4.4 7.9-2.7 10.7-8.4 6.7-39.3 2.2-46.6-7.4-1.9-2.2-1.8-3.6-3.9-6.2-3.6-3.9-7.3-2.2-11.9 1-57.4 36.4-140.3 21.4-147-43.3-3.1-29.3 12.4-57.1 39.6-71 38.2-19.5 112.2-11.8 114-30.9 1.1-10.2-1.9-20.1-11.3-27.3zm286.7 222c0 15.1-11.1 9.9-17.8 9.9H52.4c-7.4 0-18.2 4.8-17.8-10.7.4-13.9 10.5-9.1 17.1-9.1 132.3-.4 264.5-.4 396.8 0 6.8 0 16.6-4.4 16.6 9.9zm3.8-340.5v291c0 5.7-.7 13.9-8.1 13.9-12.4-.4-27.5 7.1-36.1-5.6-5.8-8.7-7.8-4-12.4-1.2-53.4 29.7-128.1 7.1-144.4-85.2-6.1-33.4-.7-67.1 15.7-100 11.8-23.9 56.9-76.1 136.1-30.5v-71c0-26.2-.1-26.2 26-26.2 3.1 0 6.6.4 9.7 0 10.1-.8 13.6 4.4 13.6 14.3-.1.2-.1.3-.1.5zm-51.5 232.3c-19.5 47.6-72.9 43.3-90 5.2-15.1-33.3-15.5-68.2.4-101.5 16.3-34.1 59.7-35.7 81.5-4.8 20.6 28.8 14.9 84.6 8.1 101.1zm-294.8 35.3c-7.5-1.3-33-3.3-33.7-27.8-.4-13.9 7.8-23 19.8-25.8 24.4-5.9 49.3-9.9 73.7-14.7 8.9-2 7.4 4.4 7.8 9.5 1.4 33-26.1 59.2-67.6 58.8z\"]\n};\nvar faAffiliatetheme = {\n prefix: 'fab',\n iconName: 'affiliatetheme',\n icon: [512, 512, [], \"f36b\", \"M159.7 237.4C108.4 308.3 43.1 348.2 14 326.6-15.2 304.9 2.8 230 54.2 159.1c51.3-70.9 116.6-110.8 145.7-89.2 29.1 21.6 11.1 96.6-40.2 167.5zm351.2-57.3C437.1 303.5 319 367.8 246.4 323.7c-25-15.2-41.3-41.2-49-73.8-33.6 64.8-92.8 113.8-164.1 133.2 49.8 59.3 124.1 96.9 207 96.9 150 0 271.6-123.1 271.6-274.9.1-8.5-.3-16.8-1-25z\"]\n};\nvar faAirbnb = {\n prefix: 'fab',\n iconName: 'airbnb',\n icon: [448, 512, [], \"f834\", \"M224 373.12c-25.24-31.67-40.08-59.43-45-83.18-22.55-88 112.61-88 90.06 0-5.45 24.25-20.29 52-45 83.18zm138.15 73.23c-42.06 18.31-83.67-10.88-119.3-50.47 103.9-130.07 46.11-200-18.85-200-54.92 0-85.16 46.51-73.28 100.5 6.93 29.19 25.23 62.39 54.43 99.5-32.53 36.05-60.55 52.69-85.15 54.92-50 7.43-89.11-41.06-71.3-91.09 15.1-39.16 111.72-231.18 115.87-241.56 15.75-30.07 25.56-57.4 59.38-57.4 32.34 0 43.4 25.94 60.37 59.87 36 70.62 89.35 177.48 114.84 239.09 13.17 33.07-1.37 71.29-37.01 86.64zm47-136.12C280.27 35.93 273.13 32 224 32c-45.52 0-64.87 31.67-84.66 72.79C33.18 317.1 22.89 347.19 22 349.81-3.22 419.14 48.74 480 111.63 480c21.71 0 60.61-6.06 112.37-62.4 58.68 63.78 101.26 62.4 112.37 62.4 62.89.05 114.85-60.86 89.61-130.19.02-3.89-16.82-38.9-16.82-39.58z\"]\n};\nvar faAlgolia = {\n prefix: 'fab',\n iconName: 'algolia',\n icon: [448, 512, [], \"f36c\", \"M229.3 182.6c-49.3 0-89.2 39.9-89.2 89.2 0 49.3 39.9 89.2 89.2 89.2s89.2-39.9 89.2-89.2c0-49.3-40-89.2-89.2-89.2zm62.7 56.6l-58.9 30.6c-1.8.9-3.8-.4-3.8-2.3V201c0-1.5 1.3-2.7 2.7-2.6 26.2 1 48.9 15.7 61.1 37.1.7 1.3.2 3-1.1 3.7zM389.1 32H58.9C26.4 32 0 58.4 0 90.9V421c0 32.6 26.4 59 58.9 59H389c32.6 0 58.9-26.4 58.9-58.9V90.9C448 58.4 421.6 32 389.1 32zm-202.6 84.7c0-10.8 8.7-19.5 19.5-19.5h45.3c10.8 0 19.5 8.7 19.5 19.5v15.4c0 1.8-1.7 3-3.3 2.5-12.3-3.4-25.1-5.1-38.1-5.1-13.5 0-26.7 1.8-39.4 5.5-1.7.5-3.4-.8-3.4-2.5v-15.8zm-84.4 37l9.2-9.2c7.6-7.6 19.9-7.6 27.5 0l7.7 7.7c1.1 1.1 1 3-.3 4-6.2 4.5-12.1 9.4-17.6 14.9-5.4 5.4-10.4 11.3-14.8 17.4-1 1.3-2.9 1.5-4 .3l-7.7-7.7c-7.6-7.5-7.6-19.8 0-27.4zm127.2 244.8c-70 0-126.6-56.7-126.6-126.6s56.7-126.6 126.6-126.6c70 0 126.6 56.6 126.6 126.6 0 69.8-56.7 126.6-126.6 126.6z\"]\n};\nvar faAlipay = {\n prefix: 'fab',\n iconName: 'alipay',\n icon: [448, 512, [], \"f642\", \"M377.74 32H70.26C31.41 32 0 63.41 0 102.26v307.48C0 448.59 31.41 480 70.26 480h307.48c38.52 0 69.76-31.08 70.26-69.6-45.96-25.62-110.59-60.34-171.6-88.44-32.07 43.97-84.14 81-148.62 81-70.59 0-93.73-45.3-97.04-76.37-3.97-39.01 14.88-81.5 99.52-81.5 35.38 0 79.35 10.25 127.13 24.96 16.53-30.09 26.45-60.34 26.45-60.34h-178.2v-16.7h92.08v-31.24H88.28v-19.01h109.44V92.34h50.92v50.42h109.44v19.01H248.63v31.24h88.77s-15.21 46.62-38.35 90.92c48.93 16.7 100.01 36.04 148.62 52.74V102.26C447.83 63.57 416.43 32 377.74 32zM47.28 322.95c.99 20.17 10.25 53.73 69.93 53.73 52.07 0 92.58-39.68 117.87-72.9-44.63-18.68-84.48-31.41-109.44-31.41-67.45 0-79.35 33.06-78.36 50.58z\"]\n};\nvar faAmazon = {\n prefix: 'fab',\n iconName: 'amazon',\n icon: [448, 512, [], \"f270\", \"M257.2 162.7c-48.7 1.8-169.5 15.5-169.5 117.5 0 109.5 138.3 114 183.5 43.2 6.5 10.2 35.4 37.5 45.3 46.8l56.8-56S341 288.9 341 261.4V114.3C341 89 316.5 32 228.7 32 140.7 32 94 87 94 136.3l73.5 6.8c16.3-49.5 54.2-49.5 54.2-49.5 40.7-.1 35.5 29.8 35.5 69.1zm0 86.8c0 80-84.2 68-84.2 17.2 0-47.2 50.5-56.7 84.2-57.8v40.6zm136 163.5c-7.7 10-70 67-174.5 67S34.2 408.5 9.7 379c-6.8-7.7 1-11.3 5.5-8.3C88.5 415.2 203 488.5 387.7 401c7.5-3.7 13.3 2 5.5 12zm39.8 2.2c-6.5 15.8-16 26.8-21.2 31-5.5 4.5-9.5 2.7-6.5-3.8s19.3-46.5 12.7-55c-6.5-8.3-37-4.3-48-3.2-10.8 1-13 2-14-.3-2.3-5.7 21.7-15.5 37.5-17.5 15.7-1.8 41-.8 46 5.7 3.7 5.1 0 27.1-6.5 43.1z\"]\n};\nvar faAmazonPay = {\n prefix: 'fab',\n iconName: 'amazon-pay',\n icon: [640, 512, [], \"f42c\", \"M14 325.3c2.3-4.2 5.2-4.9 9.7-2.5 10.4 5.6 20.6 11.4 31.2 16.7a595.88 595.88 0 0 0 127.4 46.3 616.61 616.61 0 0 0 63.2 11.8 603.33 603.33 0 0 0 95 5.2c17.4-.4 34.8-1.8 52.1-3.8a603.66 603.66 0 0 0 163.3-42.8c2.9-1.2 5.9-2 9.1-1.2 6.7 1.8 9 9 4.1 13.9a70 70 0 0 1-9.6 7.4c-30.7 21.1-64.2 36.4-99.6 47.9a473.31 473.31 0 0 1-75.1 17.6 431 431 0 0 1-53.2 4.8 21.3 21.3 0 0 0-2.5.3H308a21.3 21.3 0 0 0-2.5-.3c-3.6-.2-7.2-.3-10.7-.4a426.3 426.3 0 0 1-50.4-5.3A448.4 448.4 0 0 1 164 420a443.33 443.33 0 0 1-145.6-87c-1.8-1.6-3-3.8-4.4-5.7zM172 65.1l-4.3.6a80.92 80.92 0 0 0-38 15.1c-2.4 1.7-4.6 3.5-7.1 5.4a4.29 4.29 0 0 1-.4-1.4c-.4-2.7-.8-5.5-1.3-8.2-.7-4.6-3-6.6-7.6-6.6h-11.5c-6.9 0-8.2 1.3-8.2 8.2v209.3c0 1 0 2 .1 3 .2 3 2 4.9 4.9 5 7 .1 14.1.1 21.1 0 2.9 0 4.7-2 5-5 .1-1 .1-2 .1-3v-72.4c1.1.9 1.7 1.4 2.2 1.9 17.9 14.9 38.5 19.8 61 15.4 20.4-4 34.6-16.5 43.8-34.9 7-13.9 9.9-28.7 10.3-44.1.5-17.1-1.2-33.9-8.1-49.8-8.5-19.6-22.6-32.5-43.9-36.9-3.2-.7-6.5-1-9.8-1.5-2.8-.1-5.5-.1-8.3-.1zM124.6 107a3.48 3.48 0 0 1 1.7-3.3c13.7-9.5 28.8-14.5 45.6-13.2 14.9 1.1 27.1 8.4 33.5 25.9 3.9 10.7 4.9 21.8 4.9 33 0 10.4-.8 20.6-4 30.6-6.8 21.3-22.4 29.4-42.6 28.5-14-.6-26.2-6-37.4-13.9a3.57 3.57 0 0 1-1.7-3.3c.1-14.1 0-28.1 0-42.2s.1-28 0-42.1zm205.7-41.9c-1 .1-2 .3-2.9.4a148 148 0 0 0-28.9 4.1c-6.1 1.6-12 3.8-17.9 5.8-3.6 1.2-5.4 3.8-5.3 7.7.1 3.3-.1 6.6 0 9.9.1 4.8 2.1 6.1 6.8 4.9 7.8-2 15.6-4.2 23.5-5.7 12.3-2.3 24.7-3.3 37.2-1.4 6.5 1 12.6 2.9 16.8 8.4 3.7 4.8 5.1 10.5 5.3 16.4.3 8.3.2 16.6.3 24.9a7.84 7.84 0 0 1-.2 1.4c-.5-.1-.9 0-1.3-.1a180.56 180.56 0 0 0-32-4.9c-11.3-.6-22.5.1-33.3 3.9-12.9 4.5-23.3 12.3-29.4 24.9-4.7 9.8-5.4 20.2-3.9 30.7 2 14 9 24.8 21.4 31.7 11.9 6.6 24.8 7.4 37.9 5.4 15.1-2.3 28.5-8.7 40.3-18.4a7.36 7.36 0 0 1 1.6-1.1c.6 3.8 1.1 7.4 1.8 11 .6 3.1 2.5 5.1 5.4 5.2 5.4.1 10.9.1 16.3 0a4.84 4.84 0 0 0 4.8-4.7 26.2 26.2 0 0 0 .1-2.8v-106a80 80 0 0 0-.9-12.9c-1.9-12.9-7.4-23.5-19-30.4-6.7-4-14.1-6-21.8-7.1-3.6-.5-7.2-.8-10.8-1.3-3.9.1-7.9.1-11.9.1zm35 127.7a3.33 3.33 0 0 1-1.5 3c-11.2 8.1-23.5 13.5-37.4 14.9-5.7.6-11.4.4-16.8-1.8a20.08 20.08 0 0 1-12.4-13.3 32.9 32.9 0 0 1-.1-19.4c2.5-8.3 8.4-13 16.4-15.6a61.33 61.33 0 0 1 24.8-2.2c8.4.7 16.6 2.3 25 3.4 1.6.2 2.1 1 2.1 2.6-.1 4.8 0 9.5 0 14.3s-.2 9.4-.1 14.1zm259.9 129.4c-1-5-4.8-6.9-9.1-8.3a88.42 88.42 0 0 0-21-3.9 147.32 147.32 0 0 0-39.2 1.9c-14.3 2.7-27.9 7.3-40 15.6a13.75 13.75 0 0 0-3.7 3.5 5.11 5.11 0 0 0-.5 4c.4 1.5 2.1 1.9 3.6 1.8a16.2 16.2 0 0 0 2.2-.1c7.8-.8 15.5-1.7 23.3-2.5 11.4-1.1 22.9-1.8 34.3-.9a71.64 71.64 0 0 1 14.4 2.7c5.1 1.4 7.4 5.2 7.6 10.4.4 8-1.4 15.7-3.5 23.3-4.1 15.4-10 30.3-15.8 45.1a17.6 17.6 0 0 0-1 3c-.5 2.9 1.2 4.8 4.1 4.1a10.56 10.56 0 0 0 4.8-2.5 145.91 145.91 0 0 0 12.7-13.4c12.8-16.4 20.3-35.3 24.7-55.6.8-3.6 1.4-7.3 2.1-10.9v-17.3zM493.1 199q-19.35-53.55-38.7-107.2c-2-5.7-4.2-11.3-6.3-16.9-1.1-2.9-3.2-4.8-6.4-4.8-7.6-.1-15.2-.2-22.9-.1-2.5 0-3.7 2-3.2 4.5a43.1 43.1 0 0 0 1.9 6.1q29.4 72.75 59.1 145.5c1.7 4.1 2.1 7.6.2 11.8-3.3 7.3-5.9 15-9.3 22.3-3 6.5-8 11.4-15.2 13.3a42.13 42.13 0 0 1-15.4 1.1c-2.5-.2-5-.8-7.5-1-3.4-.2-5.1 1.3-5.2 4.8q-.15 5 0 9.9c.1 5.5 2 8 7.4 8.9a108.18 108.18 0 0 0 16.9 2c17.1.4 30.7-6.5 39.5-21.4a131.63 131.63 0 0 0 9.2-18.4q35.55-89.7 70.6-179.6a26.62 26.62 0 0 0 1.6-5.5c.4-2.8-.9-4.4-3.7-4.4-6.6-.1-13.3 0-19.9 0a7.54 7.54 0 0 0-7.7 5.2c-.5 1.4-1.1 2.7-1.6 4.1l-34.8 100c-2.5 7.2-5.1 14.5-7.7 22.2-.4-1.1-.6-1.7-.9-2.4z\"]\n};\nvar faAmilia = {\n prefix: 'fab',\n iconName: 'amilia',\n icon: [448, 512, [], \"f36d\", \"M240.1 32c-61.9 0-131.5 16.9-184.2 55.4-5.1 3.1-9.1 9.2-7.2 19.4 1.1 5.1 5.1 27.4 10.2 39.6 4.1 10.2 14.2 10.2 20.3 6.1 32.5-22.3 96.5-47.7 152.3-47.7 57.9 0 58.9 28.4 58.9 73.1v38.5C203 227.7 78.2 251 46.7 264.2 11.2 280.5 16.3 357.7 16.3 376s15.2 104 124.9 104c47.8 0 113.7-20.7 153.3-42.1v25.4c0 3 2.1 8.2 6.1 9.1 3.1 1 50.7 2 59.9 2s62.5.3 66.5-.7c4.1-1 5.1-6.1 5.1-9.1V168c-.1-80.3-57.9-136-192-136zm50.2 348c-21.4 13.2-48.7 24.4-79.1 24.4-52.8 0-58.9-33.5-59-44.7 0-12.2-3-42.7 18.3-52.9 24.3-13.2 75.1-29.4 119.8-33.5z\"]\n};\nvar faAndroid = {\n prefix: 'fab',\n iconName: 'android',\n icon: [576, 512, [], \"f17b\", \"M420.55,301.93a24,24,0,1,1,24-24,24,24,0,0,1-24,24m-265.1,0a24,24,0,1,1,24-24,24,24,0,0,1-24,24m273.7-144.48,47.94-83a10,10,0,1,0-17.27-10h0l-48.54,84.07a301.25,301.25,0,0,0-246.56,0L116.18,64.45a10,10,0,1,0-17.27,10h0l47.94,83C64.53,202.22,8.24,285.55,0,384H576c-8.24-98.45-64.54-181.78-146.85-226.55\"]\n};\nvar faAngellist = {\n prefix: 'fab',\n iconName: 'angellist',\n icon: [448, 512, [], \"f209\", \"M347.1 215.4c11.7-32.6 45.4-126.9 45.4-157.1 0-26.6-15.7-48.9-43.7-48.9-44.6 0-84.6 131.7-97.1 163.1C242 144 196.6 0 156.6 0c-31.1 0-45.7 22.9-45.7 51.7 0 35.3 34.2 126.8 46.6 162-6.3-2.3-13.1-4.3-20-4.3-23.4 0-48.3 29.1-48.3 52.6 0 8.9 4.9 21.4 8 29.7-36.9 10-51.1 34.6-51.1 71.7C46 435.6 114.4 512 210.6 512c118 0 191.4-88.6 191.4-202.9 0-43.1-6.9-82-54.9-93.7zM311.7 108c4-12.3 21.1-64.3 37.1-64.3 8.6 0 10.9 8.9 10.9 16 0 19.1-38.6 124.6-47.1 148l-34-6 33.1-93.7zM142.3 48.3c0-11.9 14.5-45.7 46.3 47.1l34.6 100.3c-15.6-1.3-27.7-3-35.4 1.4-10.9-28.8-45.5-119.7-45.5-148.8zM140 244c29.3 0 67.1 94.6 67.1 107.4 0 5.1-4.9 11.4-10.6 11.4-20.9 0-76.9-76.9-76.9-97.7.1-7.7 12.7-21.1 20.4-21.1zm184.3 186.3c-29.1 32-66.3 48.6-109.7 48.6-59.4 0-106.3-32.6-128.9-88.3-17.1-43.4 3.8-68.3 20.6-68.3 11.4 0 54.3 60.3 54.3 73.1 0 4.9-7.7 8.3-11.7 8.3-16.1 0-22.4-15.5-51.1-51.4-29.7 29.7 20.5 86.9 58.3 86.9 26.1 0 43.1-24.2 38-42 3.7 0 8.3.3 11.7-.6 1.1 27.1 9.1 59.4 41.7 61.7 0-.9 2-7.1 2-7.4 0-17.4-10.6-32.6-10.6-50.3 0-28.3 21.7-55.7 43.7-71.7 8-6 17.7-9.7 27.1-13.1 9.7-3.7 20-8 27.4-15.4-1.1-11.2-5.7-21.1-16.9-21.1-27.7 0-120.6 4-120.6-39.7 0-6.7.1-13.1 17.4-13.1 32.3 0 114.3 8 138.3 29.1 18.1 16.1 24.3 113.2-31 174.7zm-98.6-126c9.7 3.1 19.7 4 29.7 6-7.4 5.4-14 12-20.3 19.1-2.8-8.5-6.2-16.8-9.4-25.1z\"]\n};\nvar faAngrycreative = {\n prefix: 'fab',\n iconName: 'angrycreative',\n icon: [640, 512, [], \"f36e\", \"M640 238.2l-3.2 28.2-34.5 2.3-2 18.1 34.5-2.3-3.2 28.2-34.4 2.2-2.3 20.1 34.4-2.2-3 26.1-64.7 4.1 12.7-113.2L527 365.2l-31.9 2-23.8-117.8 30.3-2 13.6 79.4 31.7-82.4 93.1-6.2zM426.8 371.5l28.3-1.8L468 249.6l-28.4 1.9-12.8 120zM162 388.1l-19.4-36-3.5 37.4-28.2 1.7 2.7-29.1c-11 18-32 34.3-56.9 35.8C23.9 399.9-3 377 .3 339.7c2.6-29.3 26.7-62.8 67.5-65.4 37.7-2.4 47.6 23.2 51.3 28.8l2.8-30.8 38.9-2.5c20.1-1.3 38.7 3.7 42.5 23.7l2.6-26.6 64.8-4.2-2.7 27.9-36.4 2.4-1.7 17.9 36.4-2.3-2.7 27.9-36.4 2.3-1.9 19.9 36.3-2.3-2.1 20.8 55-117.2 23.8-1.6L370.4 369l8.9-85.6-22.3 1.4 2.9-27.9 75-4.9-3 28-24.3 1.6-9.7 91.9-58 3.7-4.3-15.6-39.4 2.5-8 16.3-126.2 7.7zm-44.3-70.2l-26.4 1.7C84.6 307.2 76.9 303 65 303.8c-19 1.2-33.3 17.5-34.6 33.3-1.4 16 7.3 32.5 28.7 31.2 12.8-.8 21.3-8.6 28.9-18.9l27-1.7 2.7-29.8zm56.1-7.7c1.2-12.9-7.6-13.6-26.1-12.4l-2.7 28.5c14.2-.9 27.5-2.1 28.8-16.1zm21.1 70.8l5.8-60c-5 13.5-14.7 21.1-27.9 26.6l22.1 33.4zm135.4-45l-7.9-37.8-15.8 39.3 23.7-1.5zm-170.1-74.6l-4.3-17.5-39.6 2.6-8.1 18.2-31.9 2.1 57-121.9 23.9-1.6 30.7 102 9.9-104.7 27-1.8 37.8 63.6 6.5-66.6 28.5-1.9-4 41.2c7.4-13.5 22.9-44.7 63.6-47.5 40.5-2.8 52.4 29.3 53.4 30.3l3.3-32 39.3-2.7c12.7-.9 27.8.3 36.3 9.7l-4.4-11.9 32.2-2.2 12.9 43.2 23-45.7 31-2.2-43.6 78.4-4.8 44.3-28.4 1.9 4.8-44.3-15.8-43c1 22.3-9.2 40.1-32 49.6l25.2 38.8-36.4 2.4-19.2-36.8-4 38.3-28.4 1.9 3.3-31.5c-6.7 9.3-19.7 35.4-59.6 38-26.2 1.7-45.6-10.3-55.4-39.2l-4 40.3-25 1.6-37.6-63.3-6.3 66.2-56.8 3.7zm276.6-82.1c10.2-.7 17.5-2.1 21.6-4.3 4.5-2.4 7-6.4 7.6-12.1.6-5.3-.6-8.8-3.4-10.4-3.6-2.1-10.6-2.8-22.9-2l-2.9 28.8zM327.7 214c5.6 5.9 12.7 8.5 21.3 7.9 4.7-.3 9.1-1.8 13.3-4.1 5.5-3 10.6-8 15.1-14.3l-34.2 2.3 2.4-23.9 63.1-4.3 1.2-12-31.2 2.1c-4.1-3.7-7.8-6.6-11.1-8.1-4-1.7-8.1-2.8-12.2-2.5-8 .5-15.3 3.6-22 9.2-7.7 6.4-12 14.5-12.9 24.4-1.1 9.6 1.4 17.3 7.2 23.3zm-201.3 8.2l23.8-1.6-8.3-37.6-15.5 39.2z\"]\n};\nvar faAngular = {\n prefix: 'fab',\n iconName: 'angular',\n icon: [448, 512, [], \"f420\", \"M185.7 268.1h76.2l-38.1-91.6-38.1 91.6zM223.8 32L16 106.4l31.8 275.7 176 97.9 176-97.9 31.8-275.7zM354 373.8h-48.6l-26.2-65.4H168.6l-26.2 65.4H93.7L223.8 81.5z\"]\n};\nvar faAppStore = {\n prefix: 'fab',\n iconName: 'app-store',\n icon: [512, 512, [], \"f36f\", \"M255.9 120.9l9.1-15.7c5.6-9.8 18.1-13.1 27.9-7.5 9.8 5.6 13.1 18.1 7.5 27.9l-87.5 151.5h63.3c20.5 0 32 24.1 23.1 40.8H113.8c-11.3 0-20.4-9.1-20.4-20.4 0-11.3 9.1-20.4 20.4-20.4h52l66.6-115.4-20.8-36.1c-5.6-9.8-2.3-22.2 7.5-27.9 9.8-5.6 22.2-2.3 27.9 7.5l8.9 15.7zm-78.7 218l-19.6 34c-5.6 9.8-18.1 13.1-27.9 7.5-9.8-5.6-13.1-18.1-7.5-27.9l14.6-25.2c16.4-5.1 29.8-1.2 40.4 11.6zm168.9-61.7h53.1c11.3 0 20.4 9.1 20.4 20.4 0 11.3-9.1 20.4-20.4 20.4h-29.5l19.9 34.5c5.6 9.8 2.3 22.2-7.5 27.9-9.8 5.6-22.2 2.3-27.9-7.5-33.5-58.1-58.7-101.6-75.4-130.6-17.1-29.5-4.9-59.1 7.2-69.1 13.4 23 33.4 57.7 60.1 104zM256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm216 248c0 118.7-96.1 216-216 216-118.7 0-216-96.1-216-216 0-118.7 96.1-216 216-216 118.7 0 216 96.1 216 216z\"]\n};\nvar faAppStoreIos = {\n prefix: 'fab',\n iconName: 'app-store-ios',\n icon: [448, 512, [], \"f370\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM127 384.5c-5.5 9.6-17.8 12.8-27.3 7.3-9.6-5.5-12.8-17.8-7.3-27.3l14.3-24.7c16.1-4.9 29.3-1.1 39.6 11.4L127 384.5zm138.9-53.9H84c-11 0-20-9-20-20s9-20 20-20h51l65.4-113.2-20.5-35.4c-5.5-9.6-2.2-21.8 7.3-27.3 9.6-5.5 21.8-2.2 27.3 7.3l8.9 15.4 8.9-15.4c5.5-9.6 17.8-12.8 27.3-7.3 9.6 5.5 12.8 17.8 7.3 27.3l-85.8 148.6h62.1c20.2 0 31.5 23.7 22.7 40zm98.1 0h-29l19.6 33.9c5.5 9.6 2.2 21.8-7.3 27.3-9.6 5.5-21.8 2.2-27.3-7.3-32.9-56.9-57.5-99.7-74-128.1-16.7-29-4.8-58 7.1-67.8 13.1 22.7 32.7 56.7 58.9 102h52c11 0 20 9 20 20 0 11.1-9 20-20 20z\"]\n};\nvar faApper = {\n prefix: 'fab',\n iconName: 'apper',\n icon: [640, 512, [], \"f371\", \"M42.1 239.1c22.2 0 29 2.8 33.5 14.6h.8v-22.9c0-11.3-4.8-15.4-17.9-15.4-11.3 0-14.4 2.5-15.1 12.8H4.8c.3-13.9 1.5-19.1 5.8-24.4C17.9 195 29.5 192 56.7 192c33 0 47.1 5 53.9 18.9 2 4.3 4 15.6 4 23.7v76.3H76.3l1.3-19.1h-1c-5.3 15.6-13.6 20.4-35.5 20.4-30.3 0-41.1-10.1-41.1-37.3 0-25.2 12.3-35.8 42.1-35.8zm17.1 48.1c13.1 0 16.9-3 16.9-13.4 0-9.1-4.3-11.6-19.6-11.6-13.1 0-17.9 3-17.9 12.1-.1 10.4 3.7 12.9 20.6 12.9zm77.8-94.9h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.2 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3H137v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm57.9-60.7h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.3 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3h-39.5v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm53.8-3.8c0-25.4 3.3-37.8 12.3-45.8 8.8-8.1 22.2-11.3 45.1-11.3 42.8 0 55.7 12.8 55.7 55.7v11.1h-75.3c-.3 2-.3 4-.3 4.8 0 16.9 4.5 21.9 20.1 21.9 13.9 0 17.9-3 17.9-13.9h37.5v2.3c0 9.8-2.5 18.9-6.8 24.7-7.3 9.8-19.6 13.6-44.3 13.6-27.5 0-41.6-3.3-50.6-12.3-8.5-8.5-11.3-21.3-11.3-50.8zm76.4-11.6c-.3-1.8-.3-3.3-.3-3.8 0-12.3-3.3-14.6-19.6-14.6-14.4 0-17.1 3-18.1 15.1l-.3 3.3h38.3zm55.6-45.3h38.3l-1.8 19.9h.7c6.8-14.9 14.4-20.2 29.7-20.2 10.8 0 19.1 3.3 23.4 9.3 5.3 7.3 6.8 14.4 6.8 34 0 1.5 0 5 .2 9.3h-35c.3-1.8.3-3.3.3-4 0-15.4-2-19.4-10.3-19.4-6.3 0-10.8 3.3-13.1 9.3-1 3-1 4.3-1 12.3v68h-38.3V192.3z\"]\n};\nvar faApple = {\n prefix: 'fab',\n iconName: 'apple',\n icon: [384, 512, [], \"f179\", \"M318.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C63.3 141.2 4 184.8 4 273.5q0 39.3 14.4 81.2c12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z\"]\n};\nvar faApplePay = {\n prefix: 'fab',\n iconName: 'apple-pay',\n icon: [640, 512, [], \"f415\", \"M116.9 158.5c-7.5 8.9-19.5 15.9-31.5 14.9-1.5-12 4.4-24.8 11.3-32.6 7.5-9.1 20.6-15.6 31.3-16.1 1.2 12.4-3.7 24.7-11.1 33.8m10.9 17.2c-17.4-1-32.3 9.9-40.5 9.9-8.4 0-21-9.4-34.8-9.1-17.9.3-34.5 10.4-43.6 26.5-18.8 32.3-4.9 80 13.3 106.3 8.9 13 19.5 27.3 33.5 26.8 13.3-.5 18.5-8.6 34.5-8.6 16.1 0 20.8 8.6 34.8 8.4 14.5-.3 23.6-13 32.5-26 10.1-14.8 14.3-29.1 14.5-29.9-.3-.3-28-10.9-28.3-42.9-.3-26.8 21.9-39.5 22.9-40.3-12.5-18.6-32-20.6-38.8-21.1m100.4-36.2v194.9h30.3v-66.6h41.9c38.3 0 65.1-26.3 65.1-64.3s-26.4-64-64.1-64h-73.2zm30.3 25.5h34.9c26.3 0 41.3 14 41.3 38.6s-15 38.8-41.4 38.8h-34.8V165zm162.2 170.9c19 0 36.6-9.6 44.6-24.9h.6v23.4h28v-97c0-28.1-22.5-46.3-57.1-46.3-32.1 0-55.9 18.4-56.8 43.6h27.3c2.3-12 13.4-19.9 28.6-19.9 18.5 0 28.9 8.6 28.9 24.5v10.8l-37.8 2.3c-35.1 2.1-54.1 16.5-54.1 41.5.1 25.2 19.7 42 47.8 42zm8.2-23.1c-16.1 0-26.4-7.8-26.4-19.6 0-12.3 9.9-19.4 28.8-20.5l33.6-2.1v11c0 18.2-15.5 31.2-36 31.2zm102.5 74.6c29.5 0 43.4-11.3 55.5-45.4L640 193h-30.8l-35.6 115.1h-.6L537.4 193h-31.6L557 334.9l-2.8 8.6c-4.6 14.6-12.1 20.3-25.5 20.3-2.4 0-7-.3-8.9-.5v23.4c1.8.4 9.3.7 11.6.7z\"]\n};\nvar faArtstation = {\n prefix: 'fab',\n iconName: 'artstation',\n icon: [512, 512, [], \"f77a\", \"M2 377.4l43 74.3A51.35 51.35 0 0 0 90.9 480h285.4l-59.2-102.6zM501.8 350L335.6 59.3A51.38 51.38 0 0 0 290.2 32h-88.4l257.3 447.6 40.7-70.5c1.9-3.2 21-29.7 2-59.1zM275 304.5l-115.5-200L44 304.5z\"]\n};\nvar faAsymmetrik = {\n prefix: 'fab',\n iconName: 'asymmetrik',\n icon: [576, 512, [], \"f372\", \"M517.5 309.2c38.8-40 58.1-80 58.5-116.1.8-65.5-59.4-118.2-169.4-135C277.9 38.4 118.1 73.6 0 140.5 52 114 110.6 92.3 170.7 82.3c74.5-20.5 153-25.4 221.3-14.8C544.5 91.3 588.8 195 490.8 299.2c-10.2 10.8-22 21.1-35 30.6L304.9 103.4 114.7 388.9c-65.6-29.4-76.5-90.2-19.1-151.2 20.8-22.2 48.3-41.9 79.5-58.1 20-12.2 39.7-22.6 62-30.7-65.1 20.3-122.7 52.9-161.6 92.9-27.7 28.6-41.4 57.1-41.7 82.9-.5 35.1 23.4 65.1 68.4 83l-34.5 51.7h101.6l22-34.4c22.2 1 45.3 0 68.6-2.7l-22.8 37.1h135.5L340 406.3c18.6-5.3 36.9-11.5 54.5-18.7l45.9 71.8H542L468.6 349c18.5-12.1 35-25.5 48.9-39.8zm-187.6 80.5l-25-40.6-32.7 53.3c-23.4 3.5-46.7 5.1-69.2 4.4l101.9-159.3 78.7 123c-17.2 7.4-35.3 13.9-53.7 19.2z\"]\n};\nvar faAtlassian = {\n prefix: 'fab',\n iconName: 'atlassian',\n icon: [512, 512, [], \"f77b\", \"M152.2 236.4c-7.7-8.2-19.7-7.7-24.8 2.8L1.6 490.2c-5 10 2.4 21.7 13.4 21.7h175c5.8.1 11-3.2 13.4-8.4 37.9-77.8 15.1-196.3-51.2-267.1zM244.4 8.1c-122.3 193.4-8.5 348.6 65 495.5 2.5 5.1 7.7 8.4 13.4 8.4H497c11.2 0 18.4-11.8 13.4-21.7 0 0-234.5-470.6-240.4-482.3-5.3-10.6-18.8-10.8-25.6.1z\"]\n};\nvar faAudible = {\n prefix: 'fab',\n iconName: 'audible',\n icon: [640, 512, [], \"f373\", \"M640 199.9v54l-320 200L0 254v-54l320 200 320-200.1zm-194.5 72l47.1-29.4c-37.2-55.8-100.7-92.6-172.7-92.6-72 0-135.5 36.7-172.6 92.4h.3c2.5-2.3 5.1-4.5 7.7-6.7 89.7-74.4 219.4-58.1 290.2 36.3zm-220.1 18.8c16.9-11.9 36.5-18.7 57.4-18.7 34.4 0 65.2 18.4 86.4 47.6l45.4-28.4c-20.9-29.9-55.6-49.5-94.8-49.5-38.9 0-73.4 19.4-94.4 49zM103.6 161.1c131.8-104.3 318.2-76.4 417.5 62.1l.7 1 48.8-30.4C517.1 112.1 424.8 58.1 319.9 58.1c-103.5 0-196.6 53.5-250.5 135.6 9.9-10.5 22.7-23.5 34.2-32.6zm467 32.7z\"]\n};\nvar faAutoprefixer = {\n prefix: 'fab',\n iconName: 'autoprefixer',\n icon: [640, 512, [], \"f41c\", \"M318.4 16l-161 480h77.5l25.4-81.4h119.5L405 496h77.5L318.4 16zm-40.3 341.9l41.2-130.4h1.5l40.9 130.4h-83.6zM640 405l-10-31.4L462.1 358l19.4 56.5L640 405zm-462.1-47L10 373.7 0 405l158.5 9.4 19.4-56.4z\"]\n};\nvar faAvianex = {\n prefix: 'fab',\n iconName: 'avianex',\n icon: [512, 512, [], \"f374\", \"M453.1 32h-312c-38.9 0-76.2 31.2-83.3 69.7L1.2 410.3C-5.9 448.8 19.9 480 58.9 480h312c38.9 0 76.2-31.2 83.3-69.7l56.7-308.5c7-38.6-18.8-69.8-57.8-69.8zm-58.2 347.3l-32 13.5-115.4-110c-14.7 10-29.2 19.5-41.7 27.1l22.1 64.2-17.9 12.7-40.6-61-52.4-48.1 15.7-15.4 58 31.1c9.3-10.5 20.8-22.6 32.8-34.9L203 228.9l-68.8-99.8 18.8-28.9 8.9-4.8L265 207.8l4.9 4.5c19.4-18.8 33.8-32.4 33.8-32.4 7.7-6.5 21.5-2.9 30.7 7.9 9 10.5 10.6 24.7 2.7 31.3-1.8 1.3-15.5 11.4-35.3 25.6l4.5 7.3 94.9 119.4-6.3 7.9z\"]\n};\nvar faAviato = {\n prefix: 'fab',\n iconName: 'aviato',\n icon: [640, 512, [], \"f421\", \"M107.2 283.5l-19-41.8H36.1l-19 41.8H0l62.2-131.4 62.2 131.4h-17.2zm-45-98.1l-19.6 42.5h39.2l-19.6-42.5zm112.7 102.4l-62.2-131.4h17.1l45.1 96 45.1-96h17l-62.1 131.4zm80.6-4.3V156.4H271v127.1h-15.5zm209.1-115.6v115.6h-17.3V167.9h-41.2v-11.5h99.6v11.5h-41.1zM640 218.8c0 9.2-1.7 17.8-5.1 25.8-3.4 8-8.2 15.1-14.2 21.1-6 6-13.1 10.8-21.1 14.2-8 3.4-16.6 5.1-25.8 5.1s-17.8-1.7-25.8-5.1c-8-3.4-15.1-8.2-21.1-14.2-6-6-10.8-13-14.2-21.1-3.4-8-5.1-16.6-5.1-25.8s1.7-17.8 5.1-25.8c3.4-8 8.2-15.1 14.2-21.1 6-6 13-8.4 21.1-11.9 8-3.4 16.6-5.1 25.8-5.1s17.8 1.7 25.8 5.1c8 3.4 15.1 5.8 21.1 11.9 6 6 10.7 13.1 14.2 21.1 3.4 8 5.1 16.6 5.1 25.8zm-15.5 0c0-7.3-1.3-14-3.9-20.3-2.6-6.3-6.2-11.7-10.8-16.3-4.6-4.6-10-8.2-16.2-10.9-6.2-2.7-12.8-4-19.8-4s-13.6 1.3-19.8 4c-6.2 2.7-11.6 6.3-16.2 10.9-4.6 4.6-8.2 10-10.8 16.3-2.6 6.3-3.9 13.1-3.9 20.3 0 7.3 1.3 14 3.9 20.3 2.6 6.3 6.2 11.7 10.8 16.3 4.6 4.6 10 8.2 16.2 10.9 6.2 2.7 12.8 4 19.8 4s13.6-1.3 19.8-4c6.2-2.7 11.6-6.3 16.2-10.9 4.6-4.6 8.2-10 10.8-16.3 2.6-6.3 3.9-13.1 3.9-20.3zm-94.8 96.7v-6.3l88.9-10-242.9 13.4c.6-2.2 1.1-4.6 1.4-7.2.3-2 .5-4.2.6-6.5l64.8-8.1-64.9 1.9c0-.4-.1-.7-.1-1.1-2.8-17.2-25.5-23.7-25.5-23.7l-1.1-26.3h23.8l19 41.8h17.1L348.6 152l-62.2 131.4h17.1l19-41.8h23.6L345 268s-22.7 6.5-25.5 23.7c-.1.3-.1.7-.1 1.1l-64.9-1.9 64.8 8.1c.1 2.3.3 4.4.6 6.5.3 2.6.8 5 1.4 7.2L78.4 299.2l88.9 10v6.3c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4 0-6.2-4.6-11.3-10.5-12.2v-5.8l80.3 9v5.4c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-4.9l28.4 3.2v23.7h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9V323l38.3 4.3c8.1 11.4 19 13.6 19 13.6l-.1 6.7-5.1.2-.1 12.1h4.1l.1-5h5.2l.1 5h4.1l-.1-12.1-5.1-.2-.1-6.7s10.9-2.1 19-13.6l38.3-4.3v23.2h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9v-23.7l28.4-3.2v4.9c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-5.4l80.3-9v5.8c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4-.2-6.3-4.7-11.4-10.7-12.3zm-200.8-87.6l19.6-42.5 19.6 42.5h-17.9l-1.7-40.3-1.7 40.3h-17.9z\"]\n};\nvar faAws = {\n prefix: 'fab',\n iconName: 'aws',\n icon: [640, 512, [], \"f375\", \"M180.41 203.01c-.72 22.65 10.6 32.68 10.88 39.05a8.164 8.164 0 0 1-4.1 6.27l-12.8 8.96a10.66 10.66 0 0 1-5.63 1.92c-.43-.02-8.19 1.83-20.48-25.61a78.608 78.608 0 0 1-62.61 29.45c-16.28.89-60.4-9.24-58.13-56.21-1.59-38.28 34.06-62.06 70.93-60.05 7.1.02 21.6.37 46.99 6.27v-15.62c2.69-26.46-14.7-46.99-44.81-43.91-2.4.01-19.4-.5-45.84 10.11-7.36 3.38-8.3 2.82-10.75 2.82-7.41 0-4.36-21.48-2.94-24.2 5.21-6.4 35.86-18.35 65.94-18.18a76.857 76.857 0 0 1 55.69 17.28 70.285 70.285 0 0 1 17.67 52.36l-.01 69.29zM93.99 235.4c32.43-.47 46.16-19.97 49.29-30.47 2.46-10.05 2.05-16.41 2.05-27.4-9.67-2.32-23.59-4.85-39.56-4.87-15.15-1.14-42.82 5.63-41.74 32.26-1.24 16.79 11.12 31.4 29.96 30.48zm170.92 23.05c-7.86.72-11.52-4.86-12.68-10.37l-49.8-164.65c-.97-2.78-1.61-5.65-1.92-8.58a4.61 4.61 0 0 1 3.86-5.25c.24-.04-2.13 0 22.25 0 8.78-.88 11.64 6.03 12.55 10.37l35.72 140.83 33.16-140.83c.53-3.22 2.94-11.07 12.8-10.24h17.16c2.17-.18 11.11-.5 12.68 10.37l33.42 142.63L420.98 80.1c.48-2.18 2.72-11.37 12.68-10.37h19.72c.85-.13 6.15-.81 5.25 8.58-.43 1.85 3.41-10.66-52.75 169.9-1.15 5.51-4.82 11.09-12.68 10.37h-18.69c-10.94 1.15-12.51-9.66-12.68-10.75L328.67 110.7l-32.78 136.99c-.16 1.09-1.73 11.9-12.68 10.75h-18.3zm273.48 5.63c-5.88.01-33.92-.3-57.36-12.29a12.802 12.802 0 0 1-7.81-11.91v-10.75c0-8.45 6.2-6.9 8.83-5.89 10.04 4.06 16.48 7.14 28.81 9.6 36.65 7.53 52.77-2.3 56.72-4.48 13.15-7.81 14.19-25.68 5.25-34.95-10.48-8.79-15.48-9.12-53.13-21-4.64-1.29-43.7-13.61-43.79-52.36-.61-28.24 25.05-56.18 69.52-55.95 12.67-.01 46.43 4.13 55.57 15.62 1.35 2.09 2.02 4.55 1.92 7.04v10.11c0 4.44-1.62 6.66-4.87 6.66-7.71-.86-21.39-11.17-49.16-10.75-6.89-.36-39.89.91-38.41 24.97-.43 18.96 26.61 26.07 29.7 26.89 36.46 10.97 48.65 12.79 63.12 29.58 17.14 22.25 7.9 48.3 4.35 55.44-19.08 37.49-68.42 34.44-69.26 34.42zm40.2 104.86c-70.03 51.72-171.69 79.25-258.49 79.25A469.127 469.127 0 0 1 2.83 327.46c-6.53-5.89-.77-13.96 7.17-9.47a637.37 637.37 0 0 0 316.88 84.12 630.22 630.22 0 0 0 241.59-49.55c11.78-5 21.77 7.8 10.12 16.38zm29.19-33.29c-8.96-11.52-59.28-5.38-81.81-2.69-6.79.77-7.94-5.12-1.79-9.47 40.07-28.17 105.88-20.1 113.44-10.63 7.55 9.47-2.05 75.41-39.56 106.91-5.76 4.87-11.27 2.3-8.71-4.1 8.44-21.25 27.39-68.49 18.43-80.02z\"]\n};\nvar faBandcamp = {\n prefix: 'fab',\n iconName: 'bandcamp',\n icon: [512, 512, [], \"f2d5\", \"M256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8Zm48.2,326.1h-181L207.9,178h181Z\"]\n};\nvar faBattleNet = {\n prefix: 'fab',\n iconName: 'battle-net',\n icon: [512, 512, [], \"f835\", \"M448.61 225.62c26.87.18 35.57-7.43 38.92-12.37 12.47-16.32-7.06-47.6-52.85-71.33 17.76-33.58 30.11-63.68 36.34-85.3 3.38-11.83 1.09-19 .45-20.25-1.72 10.52-15.85 48.46-48.2 100.05-25-11.22-56.52-20.1-93.77-23.8-8.94-16.94-34.88-63.86-60.48-88.93C252.18 7.14 238.7 1.07 228.18.22h-.05c-13.83-1.55-22.67 5.85-27.4 11-17.2 18.53-24.33 48.87-25 84.07-7.24-12.35-17.17-24.63-28.5-25.93h-.18c-20.66-3.48-38.39 29.22-36 81.29-38.36 1.38-71 5.75-93 11.23-9.9 2.45-16.22 7.27-17.76 9.72 1-.38 22.4-9.22 111.56-9.22 5.22 53 29.75 101.82 26 93.19-9.73 15.4-38.24 62.36-47.31 97.7-5.87 22.88-4.37 37.61.15 47.14 5.57 12.75 16.41 16.72 23.2 18.26 25 5.71 55.38-3.63 86.7-21.14-7.53 12.84-13.9 28.51-9.06 39.34 7.31 19.65 44.49 18.66 88.44-9.45 20.18 32.18 40.07 57.94 55.7 74.12a39.79 39.79 0 0 0 8.75 7.09c5.14 3.21 8.58 3.37 8.58 3.37-8.24-6.75-34-38-62.54-91.78 22.22-16 45.65-38.87 67.47-69.27 122.82 4.6 143.29-24.76 148-31.64 14.67-19.88 3.43-57.44-57.32-93.69zm-77.85 106.22c23.81-37.71 30.34-67.77 29.45-92.33 27.86 17.57 47.18 37.58 49.06 58.83 1.14 12.93-8.1 29.12-78.51 33.5zM216.9 387.69c9.76-6.23 19.53-13.12 29.2-20.49 6.68 13.33 13.6 26.1 20.6 38.19-40.6 21.86-68.84 12.76-49.8-17.7zm215-171.35c-10.29-5.34-21.16-10.34-32.38-15.05a722.459 722.459 0 0 0 22.74-36.9c39.06 24.1 45.9 53.18 9.64 51.95zM279.18 398c-5.51-11.35-11-23.5-16.5-36.44 43.25 1.27 62.42-18.73 63.28-20.41 0 .07-25 15.64-62.53 12.25a718.78 718.78 0 0 0 85.06-84q13.06-15.31 24.93-31.11c-.36-.29-1.54-3-16.51-12-51.7 60.27-102.34 98-132.75 115.92-20.59-11.18-40.84-31.78-55.71-61.49-20-39.92-30-82.39-31.57-116.07 12.3.91 25.27 2.17 38.85 3.88-22.29 36.8-14.39 63-13.47 64.23 0-.07-.95-29.17 20.14-59.57a695.23 695.23 0 0 0 44.67 152.84c.93-.38 1.84.88 18.67-8.25-26.33-74.47-33.76-138.17-34-173.43 20-12.42 48.18-19.8 81.63-17.81 44.57 2.67 86.36 15.25 116.32 30.71q-10.69 15.66-23.33 32.47C365.63 152 339.1 145.84 337.5 146c.11 0 25.9 14.07 41.52 47.22a717.63 717.63 0 0 0-115.34-31.71 646.608 646.608 0 0 0-39.39-6.05c-.07.45-1.81 1.85-2.16 20.33C300 190.28 358.78 215.68 389.36 233c.74 23.55-6.95 51.61-25.41 79.57-24.6 37.31-56.39 67.23-84.77 85.43zm27.4-287c-44.56-1.66-73.58 7.43-94.69 20.67 2-52.3 21.31-76.38 38.21-75.28C267 52.15 305 108.55 306.58 111zm-130.65 3.1c.48 12.11 1.59 24.62 3.21 37.28-14.55-.85-28.74-1.25-42.4-1.26-.08 3.24-.12-51 24.67-49.59h.09c5.76 1.09 10.63 6.88 14.43 13.57zm-28.06 162c20.76 39.7 43.3 60.57 65.25 72.31-46.79 24.76-77.53 20-84.92 4.51-.2-.21-11.13-15.3 19.67-76.81zm210.06 74.8\"]\n};\nvar faBehance = {\n prefix: 'fab',\n iconName: 'behance',\n icon: [576, 512, [], \"f1b4\", \"M232 237.2c31.8-15.2 48.4-38.2 48.4-74 0-70.6-52.6-87.8-113.3-87.8H0v354.4h171.8c64.4 0 124.9-30.9 124.9-102.9 0-44.5-21.1-77.4-64.7-89.7zM77.9 135.9H151c28.1 0 53.4 7.9 53.4 40.5 0 30.1-19.7 42.2-47.5 42.2h-79v-82.7zm83.3 233.7H77.9V272h84.9c34.3 0 56 14.3 56 50.6 0 35.8-25.9 47-57.6 47zm358.5-240.7H376V94h143.7v34.9zM576 305.2c0-75.9-44.4-139.2-124.9-139.2-78.2 0-131.3 58.8-131.3 135.8 0 79.9 50.3 134.7 131.3 134.7 61.3 0 101-27.6 120.1-86.3H509c-6.7 21.9-34.3 33.5-55.7 33.5-41.3 0-63-24.2-63-65.3h185.1c.3-4.2.6-8.7.6-13.2zM390.4 274c2.3-33.7 24.7-54.8 58.5-54.8 35.4 0 53.2 20.8 56.2 54.8H390.4z\"]\n};\nvar faBehanceSquare = {\n prefix: 'fab',\n iconName: 'behance-square',\n icon: [448, 512, [], \"f1b5\", \"M186.5 293c0 19.3-14 25.4-31.2 25.4h-45.1v-52.9h46c18.6.1 30.3 7.8 30.3 27.5zm-7.7-82.3c0-17.7-13.7-21.9-28.9-21.9h-39.6v44.8H153c15.1 0 25.8-6.6 25.8-22.9zm132.3 23.2c-18.3 0-30.5 11.4-31.7 29.7h62.2c-1.7-18.5-11.3-29.7-30.5-29.7zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM271.7 185h77.8v-18.9h-77.8V185zm-43 110.3c0-24.1-11.4-44.9-35-51.6 17.2-8.2 26.2-17.7 26.2-37 0-38.2-28.5-47.5-61.4-47.5H68v192h93.1c34.9-.2 67.6-16.9 67.6-55.9zM380 280.5c0-41.1-24.1-75.4-67.6-75.4-42.4 0-71.1 31.8-71.1 73.6 0 43.3 27.3 73 71.1 73 33.2 0 54.7-14.9 65.1-46.8h-33.7c-3.7 11.9-18.6 18.1-30.2 18.1-22.4 0-34.1-13.1-34.1-35.3h100.2c.1-2.3.3-4.8.3-7.2z\"]\n};\nvar faBimobject = {\n prefix: 'fab',\n iconName: 'bimobject',\n icon: [448, 512, [], \"f378\", \"M416 32H32C14.4 32 0 46.4 0 64v384c0 17.6 14.4 32 32 32h384c17.6 0 32-14.4 32-32V64c0-17.6-14.4-32-32-32zm-64 257.4c0 49.4-11.4 82.6-103.8 82.6h-16.9c-44.1 0-62.4-14.9-70.4-38.8h-.9V368H96V136h64v74.7h1.1c4.6-30.5 39.7-38.8 69.7-38.8h17.3c92.4 0 103.8 33.1 103.8 82.5v35zm-64-28.9v22.9c0 21.7-3.4 33.8-38.4 33.8h-45.3c-28.9 0-44.1-6.5-44.1-35.7v-19c0-29.3 15.2-35.7 44.1-35.7h45.3c35-.2 38.4 12 38.4 33.7z\"]\n};\nvar faBitbucket = {\n prefix: 'fab',\n iconName: 'bitbucket',\n icon: [512, 512, [], \"f171\", \"M22.2 32A16 16 0 0 0 6 47.8a26.35 26.35 0 0 0 .2 2.8l67.9 412.1a21.77 21.77 0 0 0 21.3 18.2h325.7a16 16 0 0 0 16-13.4L505 50.7a16 16 0 0 0-13.2-18.3 24.58 24.58 0 0 0-2.8-.2L22.2 32zm285.9 297.8h-104l-28.1-147h157.3l-25.2 147z\"]\n};\nvar faBitcoin = {\n prefix: 'fab',\n iconName: 'bitcoin',\n icon: [512, 512, [], \"f379\", \"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-141.651-35.33c4.937-32.999-20.191-50.739-54.55-62.573l11.146-44.702-27.213-6.781-10.851 43.524c-7.154-1.783-14.502-3.464-21.803-5.13l10.929-43.81-27.198-6.781-11.153 44.686c-5.922-1.349-11.735-2.682-17.377-4.084l.031-.14-37.53-9.37-7.239 29.062s20.191 4.627 19.765 4.913c11.022 2.751 13.014 10.044 12.68 15.825l-12.696 50.925c.76.194 1.744.473 2.829.907-.907-.225-1.876-.473-2.876-.713l-17.796 71.338c-1.349 3.348-4.767 8.37-12.471 6.464.271.395-19.78-4.937-19.78-4.937l-13.51 31.147 35.414 8.827c6.588 1.651 13.045 3.379 19.4 5.006l-11.262 45.213 27.182 6.781 11.153-44.733a1038.209 1038.209 0 0 0 21.687 5.627l-11.115 44.523 27.213 6.781 11.262-45.128c46.404 8.781 81.299 5.239 95.986-36.727 11.836-33.79-.589-53.281-25.004-65.991 17.78-4.098 31.174-15.792 34.747-39.949zm-62.177 87.179c-8.41 33.79-65.308 15.523-83.755 10.943l14.944-59.899c18.446 4.603 77.6 13.717 68.811 48.956zm8.417-87.667c-7.673 30.736-55.031 15.12-70.393 11.292l13.548-54.327c15.363 3.828 64.836 10.973 56.845 43.035z\"]\n};\nvar faBity = {\n prefix: 'fab',\n iconName: 'bity',\n icon: [496, 512, [], \"f37a\", \"M78.4 67.2C173.8-22 324.5-24 421.5 71c14.3 14.1-6.4 37.1-22.4 21.5-84.8-82.4-215.8-80.3-298.9-3.2-16.3 15.1-36.5-8.3-21.8-22.1zm98.9 418.6c19.3 5.7 29.3-23.6 7.9-30C73 421.9 9.4 306.1 37.7 194.8c5-19.6-24.9-28.1-30.2-7.1-32.1 127.4 41.1 259.8 169.8 298.1zm148.1-2c121.9-40.2 192.9-166.9 164.4-291-4.5-19.7-34.9-13.8-30 7.9 24.2 107.7-37.1 217.9-143.2 253.4-21.2 7-10.4 36 8.8 29.7zm-62.9-79l.2-71.8c0-8.2-6.6-14.8-14.8-14.8-8.2 0-14.8 6.7-14.8 14.8l-.2 71.8c0 8.2 6.6 14.8 14.8 14.8s14.8-6.6 14.8-14.8zm71-269c2.1 90.9 4.7 131.9-85.5 132.5-92.5-.7-86.9-44.3-85.5-132.5 0-21.8-32.5-19.6-32.5 0v71.6c0 69.3 60.7 90.9 118 90.1 57.3.8 118-20.8 118-90.1v-71.6c0-19.6-32.5-21.8-32.5 0z\"]\n};\nvar faBlackTie = {\n prefix: 'fab',\n iconName: 'black-tie',\n icon: [448, 512, [], \"f27e\", \"M0 32v448h448V32H0zm316.5 325.2L224 445.9l-92.5-88.7 64.5-184-64.5-86.6h184.9L252 173.2l64.5 184z\"]\n};\nvar faBlackberry = {\n prefix: 'fab',\n iconName: 'blackberry',\n icon: [512, 512, [], \"f37b\", \"M166 116.9c0 23.4-16.4 49.1-72.5 49.1H23.4l21-88.8h67.8c42.1 0 53.8 23.3 53.8 39.7zm126.2-39.7h-67.8L205.7 166h70.1c53.8 0 70.1-25.7 70.1-49.1.1-16.4-11.6-39.7-53.7-39.7zM88.8 208.1H21L0 296.9h70.1c56.1 0 72.5-23.4 72.5-49.1 0-16.3-11.7-39.7-53.8-39.7zm180.1 0h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1 0-16.3-11.7-39.7-53.7-39.7zm189.3-53.8h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7zm-28 137.9h-67.8L343.7 381h70.1c56.1 0 70.1-23.4 70.1-49.1 0-16.3-11.6-39.7-53.7-39.7zM240.8 346H173l-18.7 88.8h70.1c56.1 0 70.1-25.7 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7z\"]\n};\nvar faBlogger = {\n prefix: 'fab',\n iconName: 'blogger',\n icon: [448, 512, [], \"f37c\", \"M162.4 196c4.8-4.9 6.2-5.1 36.4-5.1 27.2 0 28.1.1 32.1 2.1 5.8 2.9 8.3 7 8.3 13.6 0 5.9-2.4 10-7.6 13.4-2.8 1.8-4.5 1.9-31.1 2.1-16.4.1-29.5-.2-31.5-.8-10.3-2.9-14.1-17.7-6.6-25.3zm61.4 94.5c-53.9 0-55.8.2-60.2 4.1-3.5 3.1-5.7 9.4-5.1 13.9.7 4.7 4.8 10.1 9.2 12 2.2 1 14.1 1.7 56.3 1.2l47.9-.6 9.2-1.5c9-5.1 10.5-17.4 3.1-24.4-5.3-4.7-5-4.7-60.4-4.7zm223.4 130.1c-3.5 28.4-23 50.4-51.1 57.5-7.2 1.8-9.7 1.9-172.9 1.8-157.8 0-165.9-.1-172-1.8-8.4-2.2-15.6-5.5-22.3-10-5.6-3.8-13.9-11.8-17-16.4-3.8-5.6-8.2-15.3-10-22C.1 423 0 420.3 0 256.3 0 93.2 0 89.7 1.8 82.6 8.1 57.9 27.7 39 53 33.4c7.3-1.6 332.1-1.9 340-.3 21.2 4.3 37.9 17.1 47.6 36.4 7.7 15.3 7-1.5 7.3 180.6.2 115.8 0 164.5-.7 170.5zm-85.4-185.2c-1.1-5-4.2-9.6-7.7-11.5-1.1-.6-8-1.3-15.5-1.7-12.4-.6-13.8-.8-17.8-3.1-6.2-3.6-7.9-7.6-8-18.3 0-20.4-8.5-39.4-25.3-56.5-12-12.2-25.3-20.5-40.6-25.1-3.6-1.1-11.8-1.5-39.2-1.8-42.9-.5-52.5.4-67.1 6.2-27 10.7-46.3 33.4-53.4 62.4-1.3 5.4-1.6 14.2-1.9 64.3-.4 62.8 0 72.1 4 84.5 9.7 30.7 37.1 53.4 64.6 58.4 9.2 1.7 122.2 2.1 133.7.5 20.1-2.7 35.9-10.8 50.7-25.9 10.7-10.9 17.4-22.8 21.8-38.5 3.2-10.9 2.9-88.4 1.7-93.9z\"]\n};\nvar faBloggerB = {\n prefix: 'fab',\n iconName: 'blogger-b',\n icon: [448, 512, [], \"f37d\", \"M446.6 222.7c-1.8-8-6.8-15.4-12.5-18.5-1.8-1-13-2.2-25-2.7-20.1-.9-22.3-1.3-28.7-5-10.1-5.9-12.8-12.3-12.9-29.5-.1-33-13.8-63.7-40.9-91.3-19.3-19.7-40.9-33-65.5-40.5-5.9-1.8-19.1-2.4-63.3-2.9-69.4-.8-84.8.6-108.4 10C45.9 59.5 14.7 96.1 3.3 142.9 1.2 151.7.7 165.8.2 246.8c-.6 101.5.1 116.4 6.4 136.5 15.6 49.6 59.9 86.3 104.4 94.3 14.8 2.7 197.3 3.3 216 .8 32.5-4.4 58-17.5 81.9-41.9 17.3-17.7 28.1-36.8 35.2-62.1 4.9-17.6 4.5-142.8 2.5-151.7zm-322.1-63.6c7.8-7.9 10-8.2 58.8-8.2 43.9 0 45.4.1 51.8 3.4 9.3 4.7 13.4 11.3 13.4 21.9 0 9.5-3.8 16.2-12.3 21.6-4.6 2.9-7.3 3.1-50.3 3.3-26.5.2-47.7-.4-50.8-1.2-16.6-4.7-22.8-28.5-10.6-40.8zm191.8 199.8l-14.9 2.4-77.5.9c-68.1.8-87.3-.4-90.9-2-7.1-3.1-13.8-11.7-14.9-19.4-1.1-7.3 2.6-17.3 8.2-22.4 7.1-6.4 10.2-6.6 97.3-6.7 89.6-.1 89.1-.1 97.6 7.8 12.1 11.3 9.5 31.2-4.9 39.4z\"]\n};\nvar faBluetooth = {\n prefix: 'fab',\n iconName: 'bluetooth',\n icon: [448, 512, [], \"f293\", \"M292.6 171.1L249.7 214l-.3-86 43.2 43.1m-43.2 219.8l43.1-43.1-42.9-42.9-.2 86zM416 259.4C416 465 344.1 512 230.9 512S32 465 32 259.4 115.4 0 228.6 0 416 53.9 416 259.4zm-158.5 0l79.4-88.6L211.8 36.5v176.9L138 139.6l-27 26.9 92.7 93-92.7 93 26.9 26.9 73.8-73.8 2.3 170 127.4-127.5-83.9-88.7z\"]\n};\nvar faBluetoothB = {\n prefix: 'fab',\n iconName: 'bluetooth-b',\n icon: [320, 512, [], \"f294\", \"M196.48 260.023l92.626-103.333L143.125 0v206.33l-86.111-86.111-31.406 31.405 108.061 108.399L25.608 368.422l31.406 31.405 86.111-86.111L145.84 512l148.552-148.644-97.912-103.333zm40.86-102.996l-49.977 49.978-.338-100.295 50.315 50.317zM187.363 313.04l49.977 49.978-50.315 50.316.338-100.294z\"]\n};\nvar faBootstrap = {\n prefix: 'fab',\n iconName: 'bootstrap',\n icon: [576, 512, [], \"f836\", \"M333.5,201.4c0-22.1-15.6-34.3-43-34.3h-50.4v71.2h42.5C315.4,238.2,333.5,225,333.5,201.4z M517,188.6 c-9.5-30.9-10.9-68.8-9.8-98.1c1.1-30.5-22.7-58.5-54.7-58.5H123.7c-32.1,0-55.8,28.1-54.7,58.5c1,29.3-0.3,67.2-9.8,98.1 c-9.6,31-25.7,50.6-52.2,53.1v28.5c26.4,2.5,42.6,22.1,52.2,53.1c9.5,30.9,10.9,68.8,9.8,98.1c-1.1,30.5,22.7,58.5,54.7,58.5h328.7 c32.1,0,55.8-28.1,54.7-58.5c-1-29.3,0.3-67.2,9.8-98.1c9.6-31,25.7-50.6,52.1-53.1v-28.5C542.7,239.2,526.5,219.6,517,188.6z M300.2,375.1h-97.9V136.8h97.4c43.3,0,71.7,23.4,71.7,59.4c0,25.3-19.1,47.9-43.5,51.8v1.3c33.2,3.6,55.5,26.6,55.5,58.3 C383.4,349.7,352.1,375.1,300.2,375.1z M290.2,266.4h-50.1v78.4h52.3c34.2,0,52.3-13.7,52.3-39.5 C344.7,279.6,326.1,266.4,290.2,266.4z\"]\n};\nvar faBtc = {\n prefix: 'fab',\n iconName: 'btc',\n icon: [384, 512, [], \"f15a\", \"M310.204 242.638c27.73-14.18 45.377-39.39 41.28-81.3-5.358-57.351-52.458-76.573-114.85-81.929V0h-48.528v77.203c-12.605 0-25.525.315-38.444.63V0h-48.528v79.409c-17.842.539-38.622.276-97.37 0v51.678c38.314-.678 58.417-3.14 63.023 21.427v217.429c-2.925 19.492-18.524 16.685-53.255 16.071L3.765 443.68c88.481 0 97.37.315 97.37.315V512h48.528v-67.06c13.234.315 26.154.315 38.444.315V512h48.528v-68.005c81.299-4.412 135.647-24.894 142.895-101.467 5.671-61.446-23.32-88.862-69.326-99.89zM150.608 134.553c27.415 0 113.126-8.507 113.126 48.528 0 54.515-85.71 48.212-113.126 48.212v-96.74zm0 251.776V279.821c32.772 0 133.127-9.138 133.127 53.255-.001 60.186-100.355 53.253-133.127 53.253z\"]\n};\nvar faBuffer = {\n prefix: 'fab',\n iconName: 'buffer',\n icon: [448, 512, [], \"f837\", \"M427.84 380.67l-196.5 97.82a18.6 18.6 0 0 1-14.67 0L20.16 380.67c-4-2-4-5.28 0-7.29L67.22 350a18.65 18.65 0 0 1 14.69 0l134.76 67a18.51 18.51 0 0 0 14.67 0l134.76-67a18.62 18.62 0 0 1 14.68 0l47.06 23.43c4.05 1.96 4.05 5.24 0 7.24zm0-136.53l-47.06-23.43a18.62 18.62 0 0 0-14.68 0l-134.76 67.08a18.68 18.68 0 0 1-14.67 0L81.91 220.71a18.65 18.65 0 0 0-14.69 0l-47.06 23.43c-4 2-4 5.29 0 7.31l196.51 97.8a18.6 18.6 0 0 0 14.67 0l196.5-97.8c4.05-2.02 4.05-5.3 0-7.31zM20.16 130.42l196.5 90.29a20.08 20.08 0 0 0 14.67 0l196.51-90.29c4-1.86 4-4.89 0-6.74L231.33 33.4a19.88 19.88 0 0 0-14.67 0l-196.5 90.28c-4.05 1.85-4.05 4.88 0 6.74z\"]\n};\nvar faBuromobelexperte = {\n prefix: 'fab',\n iconName: 'buromobelexperte',\n icon: [448, 512, [], \"f37f\", \"M0 32v128h128V32H0zm120 120H8V40h112v112zm40-120v128h128V32H160zm120 120H168V40h112v112zm40-120v128h128V32H320zm120 120H328V40h112v112zM0 192v128h128V192H0zm120 120H8V200h112v112zm40-120v128h128V192H160zm120 120H168V200h112v112zm40-120v128h128V192H320zm120 120H328V200h112v112zM0 352v128h128V352H0zm120 120H8V360h112v112zm40-120v128h128V352H160zm120 120H168V360h112v112zm40-120v128h128V352H320z\"]\n};\nvar faBuyNLarge = {\n prefix: 'fab',\n iconName: 'buy-n-large',\n icon: [576, 512, [], \"f8a6\", \"M288 32C133.27 32 7.79 132.32 7.79 256S133.27 480 288 480s280.21-100.32 280.21-224S442.73 32 288 32zm-85.39 357.19L64.1 390.55l77.25-290.74h133.44c63.15 0 84.93 28.65 78 72.84a60.24 60.24 0 0 1-1.5 6.85 77.39 77.39 0 0 0-17.21-1.93c-42.35 0-76.69 33.88-76.69 75.65 0 37.14 27.14 68 62.93 74.45-18.24 37.16-56.16 60.92-117.71 61.52zM358 207.11h32l-22.16 90.31h-35.41l-11.19-35.63-7.83 35.63h-37.83l26.63-90.31h31.34l15 36.75zm145.86 182.08H306.79L322.63 328a78.8 78.8 0 0 0 11.47.83c42.34 0 76.69-33.87 76.69-75.65 0-32.65-21-60.46-50.38-71.06l21.33-82.35h92.5l-53.05 205.36h103.87zM211.7 269.39H187l-13.8 56.47h24.7c16.14 0 32.11-3.18 37.94-26.65 5.56-22.31-7.99-29.82-24.14-29.82zM233 170h-21.34L200 217.71h21.37c18 0 35.38-14.64 39.21-30.14C265.23 168.71 251.07 170 233 170z\"]\n};\nvar faBuysellads = {\n prefix: 'fab',\n iconName: 'buysellads',\n icon: [448, 512, [], \"f20d\", \"M224 150.7l42.9 160.7h-85.8L224 150.7zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-65.3 325.3l-94.5-298.7H159.8L65.3 405.3H156l111.7-91.6 24.2 91.6h90.8z\"]\n};\nvar faCanadianMapleLeaf = {\n prefix: 'fab',\n iconName: 'canadian-maple-leaf',\n icon: [512, 512, [], \"f785\", \"M383.8 351.7c2.5-2.5 105.2-92.4 105.2-92.4l-17.5-7.5c-10-4.9-7.4-11.5-5-17.4 2.4-7.6 20.1-67.3 20.1-67.3s-47.7 10-57.7 12.5c-7.5 2.4-10-2.5-12.5-7.5s-15-32.4-15-32.4-52.6 59.9-55.1 62.3c-10 7.5-20.1 0-17.6-10 0-10 27.6-129.6 27.6-129.6s-30.1 17.4-40.1 22.4c-7.5 5-12.6 5-17.6-5C293.5 72.3 255.9 0 255.9 0s-37.5 72.3-42.5 79.8c-5 10-10 10-17.6 5-10-5-40.1-22.4-40.1-22.4S183.3 182 183.3 192c2.5 10-7.5 17.5-17.6 10-2.5-2.5-55.1-62.3-55.1-62.3S98.1 167 95.6 172s-5 9.9-12.5 7.5C73 177 25.4 167 25.4 167s17.6 59.7 20.1 67.3c2.4 6 5 12.5-5 17.4L23 259.3s102.6 89.9 105.2 92.4c5.1 5 10 7.5 5.1 22.5-5.1 15-10.1 35.1-10.1 35.1s95.2-20.1 105.3-22.6c8.7-.9 18.3 2.5 18.3 12.5S241 512 241 512h30s-5.8-102.7-5.8-112.8 9.5-13.4 18.4-12.5c10 2.5 105.2 22.6 105.2 22.6s-5-20.1-10-35.1 0-17.5 5-22.5z\"]\n};\nvar faCcAmazonPay = {\n prefix: 'fab',\n iconName: 'cc-amazon-pay',\n icon: [576, 512, [], \"f42d\", \"M124.7 201.8c.1-11.8 0-23.5 0-35.3v-35.3c0-1.3.4-2 1.4-2.7 11.5-8 24.1-12.1 38.2-11.1 12.5.9 22.7 7 28.1 21.7 3.3 8.9 4.1 18.2 4.1 27.7 0 8.7-.7 17.3-3.4 25.6-5.7 17.8-18.7 24.7-35.7 23.9-11.7-.5-21.9-5-31.4-11.7-.9-.8-1.4-1.6-1.3-2.8zm154.9 14.6c4.6 1.8 9.3 2 14.1 1.5 11.6-1.2 21.9-5.7 31.3-12.5.9-.6 1.3-1.3 1.3-2.5-.1-3.9 0-7.9 0-11.8 0-4-.1-8 0-12 0-1.4-.4-2-1.8-2.2-7-.9-13.9-2.2-20.9-2.9-7-.6-14-.3-20.8 1.9-6.7 2.2-11.7 6.2-13.7 13.1-1.6 5.4-1.6 10.8.1 16.2 1.6 5.5 5.2 9.2 10.4 11.2zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zm-207.5 23.9c.4 1.7.9 3.4 1.6 5.1 16.5 40.6 32.9 81.3 49.5 121.9 1.4 3.5 1.7 6.4.2 9.9-2.8 6.2-4.9 12.6-7.8 18.7-2.6 5.5-6.7 9.5-12.7 11.2-4.2 1.1-8.5 1.3-12.9.9-2.1-.2-4.2-.7-6.3-.8-2.8-.2-4.2 1.1-4.3 4-.1 2.8-.1 5.6 0 8.3.1 4.6 1.6 6.7 6.2 7.5 4.7.8 9.4 1.6 14.2 1.7 14.3.3 25.7-5.4 33.1-17.9 2.9-4.9 5.6-10.1 7.7-15.4 19.8-50.1 39.5-100.3 59.2-150.5.6-1.5 1.1-3 1.3-4.6.4-2.4-.7-3.6-3.1-3.7-5.6-.1-11.1 0-16.7 0-3.1 0-5.3 1.4-6.4 4.3-.4 1.1-.9 2.3-1.3 3.4l-29.1 83.7c-2.1 6.1-4.2 12.1-6.5 18.6-.4-.9-.6-1.4-.8-1.9-10.8-29.9-21.6-59.9-32.4-89.8-1.7-4.7-3.5-9.5-5.3-14.2-.9-2.5-2.7-4-5.4-4-6.4-.1-12.8-.2-19.2-.1-2.2 0-3.3 1.6-2.8 3.7zM242.4 206c1.7 11.7 7.6 20.8 18 26.6 9.9 5.5 20.7 6.2 31.7 4.6 12.7-1.9 23.9-7.3 33.8-15.5.4-.3.8-.6 1.4-1 .5 3.2.9 6.2 1.5 9.2.5 2.6 2.1 4.3 4.5 4.4 4.6.1 9.1.1 13.7 0 2.3-.1 3.8-1.6 4-3.9.1-.8.1-1.6.1-2.3v-88.8c0-3.6-.2-7.2-.7-10.8-1.6-10.8-6.2-19.7-15.9-25.4-5.6-3.3-11.8-5-18.2-5.9-3-.4-6-.7-9.1-1.1h-10c-.8.1-1.6.3-2.5.3-8.2.4-16.3 1.4-24.2 3.5-5.1 1.3-10 3.2-15 4.9-3 1-4.5 3.2-4.4 6.5.1 2.8-.1 5.6 0 8.3.1 4.1 1.8 5.2 5.7 4.1 6.5-1.7 13.1-3.5 19.7-4.8 10.3-1.9 20.7-2.7 31.1-1.2 5.4.8 10.5 2.4 14.1 7 3.1 4 4.2 8.8 4.4 13.7.3 6.9.2 13.9.3 20.8 0 .4-.1.7-.2 1.2-.4 0-.8 0-1.1-.1-8.8-2.1-17.7-3.6-26.8-4.1-9.5-.5-18.9.1-27.9 3.2-10.8 3.8-19.5 10.3-24.6 20.8-4.1 8.3-4.6 17-3.4 25.8zM98.7 106.9v175.3c0 .8 0 1.7.1 2.5.2 2.5 1.7 4.1 4.1 4.2 5.9.1 11.8.1 17.7 0 2.5 0 4-1.7 4.1-4.1.1-.8.1-1.7.1-2.5v-60.7c.9.7 1.4 1.2 1.9 1.6 15 12.5 32.2 16.6 51.1 12.9 17.1-3.4 28.9-13.9 36.7-29.2 5.8-11.6 8.3-24.1 8.7-37 .5-14.3-1-28.4-6.8-41.7-7.1-16.4-18.9-27.3-36.7-30.9-2.7-.6-5.5-.8-8.2-1.2h-7c-1.2.2-2.4.3-3.6.5-11.7 1.4-22.3 5.8-31.8 12.7-2 1.4-3.9 3-5.9 4.5-.1-.5-.3-.8-.4-1.2-.4-2.3-.7-4.6-1.1-6.9-.6-3.9-2.5-5.5-6.4-5.6h-9.7c-5.9-.1-6.9 1-6.9 6.8zM493.6 339c-2.7-.7-5.1 0-7.6 1-43.9 18.4-89.5 30.2-136.8 35.8-14.5 1.7-29.1 2.8-43.7 3.2-26.6.7-53.2-.8-79.6-4.3-17.8-2.4-35.5-5.7-53-9.9-37-8.9-72.7-21.7-106.7-38.8-8.8-4.4-17.4-9.3-26.1-14-3.8-2.1-6.2-1.5-8.2 2.1v1.7c1.2 1.6 2.2 3.4 3.7 4.8 36 32.2 76.6 56.5 122 72.9 21.9 7.9 44.4 13.7 67.3 17.5 14 2.3 28 3.8 42.2 4.5 3 .1 6 .2 9 .4.7 0 1.4.2 2.1.3h17.7c.7-.1 1.4-.3 2.1-.3 14.9-.4 29.8-1.8 44.6-4 21.4-3.2 42.4-8.1 62.9-14.7 29.6-9.6 57.7-22.4 83.4-40.1 2.8-1.9 5.7-3.8 8-6.2 4.3-4.4 2.3-10.4-3.3-11.9zm50.4-27.7c-.8-4.2-4-5.8-7.6-7-5.7-1.9-11.6-2.8-17.6-3.3-11-.9-22-.4-32.8 1.6-12 2.2-23.4 6.1-33.5 13.1-1.2.8-2.4 1.8-3.1 3-.6.9-.7 2.3-.5 3.4.3 1.3 1.7 1.6 3 1.5.6 0 1.2 0 1.8-.1l19.5-2.1c9.6-.9 19.2-1.5 28.8-.8 4.1.3 8.1 1.2 12 2.2 4.3 1.1 6.2 4.4 6.4 8.7.3 6.7-1.2 13.1-2.9 19.5-3.5 12.9-8.3 25.4-13.3 37.8-.3.8-.7 1.7-.8 2.5-.4 2.5 1 4 3.4 3.5 1.4-.3 3-1.1 4-2.1 3.7-3.6 7.5-7.2 10.6-11.2 10.7-13.8 17-29.6 20.7-46.6.7-3 1.2-6.1 1.7-9.1.2-4.7.2-9.6.2-14.5z\"]\n};\nvar faCcAmex = {\n prefix: 'fab',\n iconName: 'cc-amex',\n icon: [576, 512, [], \"f1f3\", \"M325.1 167.8c0-16.4-14.1-18.4-27.4-18.4l-39.1-.3v69.3H275v-25.1h18c18.4 0 14.5 10.3 14.8 25.1h16.6v-13.5c0-9.2-1.5-15.1-11-18.4 7.4-3 11.8-10.7 11.7-18.7zm-29.4 11.3H275v-15.3h21c5.1 0 10.7 1 10.7 7.4 0 6.6-5.3 7.9-11 7.9zM279 268.6h-52.7l-21 22.8-20.5-22.8h-66.5l-.1 69.3h65.4l21.3-23 20.4 23h32.2l.1-23.3c18.9 0 49.3 4.6 49.3-23.3 0-17.3-12.3-22.7-27.9-22.7zm-103.8 54.7h-40.6v-13.8h36.3v-14.1h-36.3v-12.5h41.7l17.9 20.2zm65.8 8.2l-25.3-28.1L241 276zm37.8-31h-21.2v-17.6h21.5c5.6 0 10.2 2.3 10.2 8.4 0 6.4-4.6 9.2-10.5 9.2zm-31.6-136.7v-14.6h-55.5v69.3h55.5v-14.3h-38.9v-13.8h37.8v-14.1h-37.8v-12.5zM576 255.4h-.2zm-194.6 31.9c0-16.4-14.1-18.7-27.1-18.7h-39.4l-.1 69.3h16.6l.1-25.3h17.6c11 0 14.8 2 14.8 13.8l-.1 11.5h16.6l.1-13.8c0-8.9-1.8-15.1-11-18.4 7.7-3.1 11.8-10.8 11.9-18.4zm-29.2 11.2h-20.7v-15.6h21c5.1 0 10.7 1 10.7 7.4 0 6.9-5.4 8.2-11 8.2zm-172.8-80v-69.3h-27.6l-19.7 47-21.7-47H83.3v65.7l-28.1-65.7H30.7L1 218.5h17.9l6.4-15.3h34.5l6.4 15.3H100v-54.2l24 54.2h14.6l24-54.2v54.2zM31.2 188.8l11.2-27.6 11.5 27.6zm477.4 158.9v-4.5c-10.8 5.6-3.9 4.5-156.7 4.5 0-25.2.1-23.9 0-25.2-1.7-.1-3.2-.1-9.4-.1 0 17.9-.1 6.8-.1 25.3h-39.6c0-12.1.1-15.3.1-29.2-10 6-22.8 6.4-34.3 6.2 0 14.7-.1 8.3-.1 23h-48.9c-5.1-5.7-2.7-3.1-15.4-17.4-3.2 3.5-12.8 13.9-16.1 17.4h-82v-92.3h83.1c5 5.6 2.8 3.1 15.5 17.2 3.2-3.5 12.2-13.4 15.7-17.2h58c9.8 0 18 1.9 24.3 5.6v-5.6c54.3 0 64.3-1.4 75.7 5.1v-5.1h78.2v5.2c11.4-6.9 19.6-5.2 64.9-5.2v5c10.3-5.9 16.6-5.2 54.3-5V80c0-26.5-21.5-48-48-48h-480c-26.5 0-48 21.5-48 48v109.8c9.4-21.9 19.7-46 23.1-53.9h39.7c4.3 10.1 1.6 3.7 9 21.1v-21.1h46c2.9 6.2 11.1 24 13.9 30 5.8-13.6 10.1-23.9 12.6-30h103c0-.1 11.5 0 11.6 0 43.7.2 53.6-.8 64.4 5.3v-5.3H363v9.3c7.6-6.1 17.9-9.3 30.7-9.3h27.6c0 .5 1.9.3 2.3.3H456c4.2 9.8 2.6 6 8.8 20.6v-20.6h43.3c4.9 8-1-1.8 11.2 18.4v-18.4h39.9v92h-41.6c-5.4-9-1.4-2.2-13.2-21.9v21.9h-52.8c-6.4-14.8-.1-.3-6.6-15.3h-19c-4.2 10-2.2 5.2-6.4 15.3h-26.8c-12.3 0-22.3-3-29.7-8.9v8.9h-66.5c-.3-13.9-.1-24.8-.1-24.8-1.8-.3-3.4-.2-9.8-.2v25.1H151.2v-11.4c-2.5 5.6-2.7 5.9-5.1 11.4h-29.5c-4-8.9-2.9-6.4-5.1-11.4v11.4H58.6c-4.2-10.1-2.2-5.3-6.4-15.3H33c-4.2 10-2.2 5.2-6.4 15.3H0V432c0 26.5 21.5 48 48 48h480.1c26.5 0 48-21.5 48-48v-90.4c-12.7 8.3-32.7 6.1-67.5 6.1zm36.3-64.5H575v-14.6h-32.9c-12.8 0-23.8 6.6-23.8 20.7 0 33 42.7 12.8 42.7 27.4 0 5.1-4.3 6.4-8.4 6.4h-32l-.1 14.8h32c8.4 0 17.6-1.8 22.5-8.9v-25.8c-10.5-13.8-39.3-1.3-39.3-13.5 0-5.8 4.6-6.5 9.2-6.5zm-57 39.8h-32.2l-.1 14.8h32.2c14.8 0 26.2-5.6 26.2-22 0-33.2-42.9-11.2-42.9-26.3 0-5.6 4.9-6.4 9.2-6.4h30.4v-14.6h-33.2c-12.8 0-23.5 6.6-23.5 20.7 0 33 42.7 12.5 42.7 27.4-.1 5.4-4.7 6.4-8.8 6.4zm-42.2-40.1v-14.3h-55.2l-.1 69.3h55.2l.1-14.3-38.6-.3v-13.8H445v-14.1h-37.8v-12.5zm-56.3-108.1c-.3.2-1.4 2.2-1.4 7.6 0 6 .9 7.7 1.1 7.9.2.1 1.1.5 3.4.5l7.3-16.9c-1.1 0-2.1-.1-3.1-.1-5.6 0-7 .7-7.3 1zm20.4-10.5h-.1zm-16.2-15.2c-23.5 0-34 12-34 35.3 0 22.2 10.2 34 33 34h19.2l6.4-15.3h34.3l6.6 15.3h33.7v-51.9l31.2 51.9h23.6v-69h-16.9v48.1l-29.1-48.1h-25.3v65.4l-27.9-65.4h-24.8l-23.5 54.5h-7.4c-13.3 0-16.1-8.1-16.1-19.9 0-23.8 15.7-20 33.1-19.7v-15.2zm42.1 12.1l11.2 27.6h-22.8zm-101.1-12v69.3h16.9v-69.3z\"]\n};\nvar faCcApplePay = {\n prefix: 'fab',\n iconName: 'cc-apple-pay',\n icon: [576, 512, [], \"f416\", \"M302.2 218.4c0 17.2-10.5 27.1-29 27.1h-24.3v-54.2h24.4c18.4 0 28.9 9.8 28.9 27.1zm47.5 62.6c0 8.3 7.2 13.7 18.5 13.7 14.4 0 25.2-9.1 25.2-21.9v-7.7l-23.5 1.5c-13.3.9-20.2 5.8-20.2 14.4zM576 79v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM127.8 197.2c8.4.7 16.8-4.2 22.1-10.4 5.2-6.4 8.6-15 7.7-23.7-7.4.3-16.6 4.9-21.9 11.3-4.8 5.5-8.9 14.4-7.9 22.8zm60.6 74.5c-.2-.2-19.6-7.6-19.8-30-.2-18.7 15.3-27.7 16-28.2-8.8-13-22.4-14.4-27.1-14.7-12.2-.7-22.6 6.9-28.4 6.9-5.9 0-14.7-6.6-24.3-6.4-12.5.2-24.2 7.3-30.5 18.6-13.1 22.6-3.4 56 9.3 74.4 6.2 9.1 13.7 19.1 23.5 18.7 9.3-.4 13-6 24.2-6 11.3 0 14.5 6 24.3 5.9 10.2-.2 16.5-9.1 22.8-18.2 6.9-10.4 9.8-20.4 10-21zm135.4-53.4c0-26.6-18.5-44.8-44.9-44.8h-51.2v136.4h21.2v-46.6h29.3c26.8 0 45.6-18.4 45.6-45zm90 23.7c0-19.7-15.8-32.4-40-32.4-22.5 0-39.1 12.9-39.7 30.5h19.1c1.6-8.4 9.4-13.9 20-13.9 13 0 20.2 6 20.2 17.2v7.5l-26.4 1.6c-24.6 1.5-37.9 11.6-37.9 29.1 0 17.7 13.7 29.4 33.4 29.4 13.3 0 25.6-6.7 31.2-17.4h.4V310h19.6v-68zM516 210.9h-21.5l-24.9 80.6h-.4l-24.9-80.6H422l35.9 99.3-1.9 6c-3.2 10.2-8.5 14.2-17.9 14.2-1.7 0-4.9-.2-6.2-.3v16.4c1.2.4 6.5.5 8.1.5 20.7 0 30.4-7.9 38.9-31.8L516 210.9z\"]\n};\nvar faCcDinersClub = {\n prefix: 'fab',\n iconName: 'cc-diners-club',\n icon: [576, 512, [], \"f24c\", \"M239.7 79.9c-96.9 0-175.8 78.6-175.8 175.8 0 96.9 78.9 175.8 175.8 175.8 97.2 0 175.8-78.9 175.8-175.8 0-97.2-78.6-175.8-175.8-175.8zm-39.9 279.6c-41.7-15.9-71.4-56.4-71.4-103.8s29.7-87.9 71.4-104.1v207.9zm79.8.3V151.6c41.7 16.2 71.4 56.7 71.4 104.1s-29.7 87.9-71.4 104.1zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM329.7 448h-90.3c-106.2 0-193.8-85.5-193.8-190.2C45.6 143.2 133.2 64 239.4 64h90.3c105 0 200.7 79.2 200.7 193.8 0 104.7-95.7 190.2-200.7 190.2z\"]\n};\nvar faCcDiscover = {\n prefix: 'fab',\n iconName: 'cc-discover',\n icon: [576, 512, [], \"f1f2\", \"M520.4 196.1c0-7.9-5.5-12.1-15.6-12.1h-4.9v24.9h4.7c10.3 0 15.8-4.4 15.8-12.8zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-44.1 138.9c22.6 0 52.9-4.1 52.9 24.4 0 12.6-6.6 20.7-18.7 23.2l25.8 34.4h-19.6l-22.2-32.8h-2.2v32.8h-16zm-55.9.1h45.3v14H444v18.2h28.3V217H444v22.2h29.3V253H428zm-68.7 0l21.9 55.2 22.2-55.2h17.5l-35.5 84.2h-8.6l-35-84.2zm-55.9-3c24.7 0 44.6 20 44.6 44.6 0 24.7-20 44.6-44.6 44.6-24.7 0-44.6-20-44.6-44.6 0-24.7 20-44.6 44.6-44.6zm-49.3 6.1v19c-20.1-20.1-46.8-4.7-46.8 19 0 25 27.5 38.5 46.8 19.2v19c-29.7 14.3-63.3-5.7-63.3-38.2 0-31.2 33.1-53 63.3-38zm-97.2 66.3c11.4 0 22.4-15.3-3.3-24.4-15-5.5-20.2-11.4-20.2-22.7 0-23.2 30.6-31.4 49.7-14.3l-8.4 10.8c-10.4-11.6-24.9-6.2-24.9 2.5 0 4.4 2.7 6.9 12.3 10.3 18.2 6.6 23.6 12.5 23.6 25.6 0 29.5-38.8 37.4-56.6 11.3l10.3-9.9c3.7 7.1 9.9 10.8 17.5 10.8zM55.4 253H32v-82h23.4c26.1 0 44.1 17 44.1 41.1 0 18.5-13.2 40.9-44.1 40.9zm67.5 0h-16v-82h16zM544 433c0 8.2-6.8 15-15 15H128c189.6-35.6 382.7-139.2 416-160zM74.1 191.6c-5.2-4.9-11.6-6.6-21.9-6.6H48v54.2h4.2c10.3 0 17-2 21.9-6.4 5.7-5.2 8.9-12.8 8.9-20.7s-3.2-15.5-8.9-20.5z\"]\n};\nvar faCcJcb = {\n prefix: 'fab',\n iconName: 'cc-jcb',\n icon: [576, 512, [], \"f24b\", \"M431.5 244.3V212c41.2 0 38.5.2 38.5.2 7.3 1.3 13.3 7.3 13.3 16 0 8.8-6 14.5-13.3 15.8-1.2.4-3.3.3-38.5.3zm42.8 20.2c-2.8-.7-3.3-.5-42.8-.5v35c39.6 0 40 .2 42.8-.5 7.5-1.5 13.5-8 13.5-17 0-8.7-6-15.5-13.5-17zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM182 192.3h-57c0 67.1 10.7 109.7-35.8 109.7-19.5 0-38.8-5.7-57.2-14.8v28c30 8.3 68 8.3 68 8.3 97.9 0 82-47.7 82-131.2zm178.5 4.5c-63.4-16-165-14.9-165 59.3 0 77.1 108.2 73.6 165 59.2V287C312.9 311.7 253 309 253 256s59.8-55.6 107.5-31.2v-28zM544 286.5c0-18.5-16.5-30.5-38-32v-.8c19.5-2.7 30.3-15.5 30.3-30.2 0-19-15.7-30-37-31 0 0 6.3-.3-120.3-.3v127.5h122.7c24.3.1 42.3-12.9 42.3-33.2z\"]\n};\nvar faCcMastercard = {\n prefix: 'fab',\n iconName: 'cc-mastercard',\n icon: [576, 512, [], \"f1f1\", \"M482.9 410.3c0 6.8-4.6 11.7-11.2 11.7-6.8 0-11.2-5.2-11.2-11.7 0-6.5 4.4-11.7 11.2-11.7 6.6 0 11.2 5.2 11.2 11.7zm-310.8-11.7c-7.1 0-11.2 5.2-11.2 11.7 0 6.5 4.1 11.7 11.2 11.7 6.5 0 10.9-4.9 10.9-11.7-.1-6.5-4.4-11.7-10.9-11.7zm117.5-.3c-5.4 0-8.7 3.5-9.5 8.7h19.1c-.9-5.7-4.4-8.7-9.6-8.7zm107.8.3c-6.8 0-10.9 5.2-10.9 11.7 0 6.5 4.1 11.7 10.9 11.7 6.8 0 11.2-4.9 11.2-11.7 0-6.5-4.4-11.7-11.2-11.7zm105.9 26.1c0 .3.3.5.3 1.1 0 .3-.3.5-.3 1.1-.3.3-.3.5-.5.8-.3.3-.5.5-1.1.5-.3.3-.5.3-1.1.3-.3 0-.5 0-1.1-.3-.3 0-.5-.3-.8-.5-.3-.3-.5-.5-.5-.8-.3-.5-.3-.8-.3-1.1 0-.5 0-.8.3-1.1 0-.5.3-.8.5-1.1.3-.3.5-.3.8-.5.5-.3.8-.3 1.1-.3.5 0 .8 0 1.1.3.5.3.8.3 1.1.5s.2.6.5 1.1zm-2.2 1.4c.5 0 .5-.3.8-.3.3-.3.3-.5.3-.8 0-.3 0-.5-.3-.8-.3 0-.5-.3-1.1-.3h-1.6v3.5h.8V426h.3l1.1 1.4h.8l-1.1-1.3zM576 81v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V81c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM64 220.6c0 76.5 62.1 138.5 138.5 138.5 27.2 0 53.9-8.2 76.5-23.1-72.9-59.3-72.4-171.2 0-230.5-22.6-15-49.3-23.1-76.5-23.1-76.4-.1-138.5 62-138.5 138.2zm224 108.8c70.5-55 70.2-162.2 0-217.5-70.2 55.3-70.5 162.6 0 217.5zm-142.3 76.3c0-8.7-5.7-14.4-14.7-14.7-4.6 0-9.5 1.4-12.8 6.5-2.4-4.1-6.5-6.5-12.2-6.5-3.8 0-7.6 1.4-10.6 5.4V392h-8.2v36.7h8.2c0-18.9-2.5-30.2 9-30.2 10.2 0 8.2 10.2 8.2 30.2h7.9c0-18.3-2.5-30.2 9-30.2 10.2 0 8.2 10 8.2 30.2h8.2v-23zm44.9-13.7h-7.9v4.4c-2.7-3.3-6.5-5.4-11.7-5.4-10.3 0-18.2 8.2-18.2 19.3 0 11.2 7.9 19.3 18.2 19.3 5.2 0 9-1.9 11.7-5.4v4.6h7.9V392zm40.5 25.6c0-15-22.9-8.2-22.9-15.2 0-5.7 11.9-4.8 18.5-1.1l3.3-6.5c-9.4-6.1-30.2-6-30.2 8.2 0 14.3 22.9 8.3 22.9 15 0 6.3-13.5 5.8-20.7.8l-3.5 6.3c11.2 7.6 32.6 6 32.6-7.5zm35.4 9.3l-2.2-6.8c-3.8 2.1-12.2 4.4-12.2-4.1v-16.6h13.1V392h-13.1v-11.2h-8.2V392h-7.6v7.3h7.6V416c0 17.6 17.3 14.4 22.6 10.9zm13.3-13.4h27.5c0-16.2-7.4-22.6-17.4-22.6-10.6 0-18.2 7.9-18.2 19.3 0 20.5 22.6 23.9 33.8 14.2l-3.8-6c-7.8 6.4-19.6 5.8-21.9-4.9zm59.1-21.5c-4.6-2-11.6-1.8-15.2 4.4V392h-8.2v36.7h8.2V408c0-11.6 9.5-10.1 12.8-8.4l2.4-7.6zm10.6 18.3c0-11.4 11.6-15.1 20.7-8.4l3.8-6.5c-11.6-9.1-32.7-4.1-32.7 15 0 19.8 22.4 23.8 32.7 15l-3.8-6.5c-9.2 6.5-20.7 2.6-20.7-8.6zm66.7-18.3H408v4.4c-8.3-11-29.9-4.8-29.9 13.9 0 19.2 22.4 24.7 29.9 13.9v4.6h8.2V392zm33.7 0c-2.4-1.2-11-2.9-15.2 4.4V392h-7.9v36.7h7.9V408c0-11 9-10.3 12.8-8.4l2.4-7.6zm40.3-14.9h-7.9v19.3c-8.2-10.9-29.9-5.1-29.9 13.9 0 19.4 22.5 24.6 29.9 13.9v4.6h7.9v-51.7zm7.6-75.1v4.6h.8V302h1.9v-.8h-4.6v.8h1.9zm6.6 123.8c0-.5 0-1.1-.3-1.6-.3-.3-.5-.8-.8-1.1-.3-.3-.8-.5-1.1-.8-.5 0-1.1-.3-1.6-.3-.3 0-.8.3-1.4.3-.5.3-.8.5-1.1.8-.5.3-.8.8-.8 1.1-.3.5-.3 1.1-.3 1.6 0 .3 0 .8.3 1.4 0 .3.3.8.8 1.1.3.3.5.5 1.1.8.5.3 1.1.3 1.4.3.5 0 1.1 0 1.6-.3.3-.3.8-.5 1.1-.8.3-.3.5-.8.8-1.1.3-.6.3-1.1.3-1.4zm3.2-124.7h-1.4l-1.6 3.5-1.6-3.5h-1.4v5.4h.8v-4.1l1.6 3.5h1.1l1.4-3.5v4.1h1.1v-5.4zm4.4-80.5c0-76.2-62.1-138.3-138.5-138.3-27.2 0-53.9 8.2-76.5 23.1 72.1 59.3 73.2 171.5 0 230.5 22.6 15 49.5 23.1 76.5 23.1 76.4.1 138.5-61.9 138.5-138.4z\"]\n};\nvar faCcPaypal = {\n prefix: 'fab',\n iconName: 'cc-paypal',\n icon: [576, 512, [], \"f1f4\", \"M186.3 258.2c0 12.2-9.7 21.5-22 21.5-9.2 0-16-5.2-16-15 0-12.2 9.5-22 21.7-22 9.3 0 16.3 5.7 16.3 15.5zM80.5 209.7h-4.7c-1.5 0-3 1-3.2 2.7l-4.3 26.7 8.2-.3c11 0 19.5-1.5 21.5-14.2 2.3-13.4-6.2-14.9-17.5-14.9zm284 0H360c-1.8 0-3 1-3.2 2.7l-4.2 26.7 8-.3c13 0 22-3 22-18-.1-10.6-9.6-11.1-18.1-11.1zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM128.3 215.4c0-21-16.2-28-34.7-28h-40c-2.5 0-5 2-5.2 4.7L32 294.2c-.3 2 1.2 4 3.2 4h19c2.7 0 5.2-2.9 5.5-5.7l4.5-26.6c1-7.2 13.2-4.7 18-4.7 28.6 0 46.1-17 46.1-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.2 8.2-5.8-8.5-14.2-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9 0 20.2-4.9 26.5-11.9-.5 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H200c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm40.5 97.9l63.7-92.6c.5-.5.5-1 .5-1.7 0-1.7-1.5-3.5-3.2-3.5h-19.2c-1.7 0-3.5 1-4.5 2.5l-26.5 39-11-37.5c-.8-2.2-3-4-5.5-4h-18.7c-1.7 0-3.2 1.8-3.2 3.5 0 1.2 19.5 56.8 21.2 62.1-2.7 3.8-20.5 28.6-20.5 31.6 0 1.8 1.5 3.2 3.2 3.2h19.2c1.8-.1 3.5-1.1 4.5-2.6zm159.3-106.7c0-21-16.2-28-34.7-28h-39.7c-2.7 0-5.2 2-5.5 4.7l-16.2 102c-.2 2 1.3 4 3.2 4h20.5c2 0 3.5-1.5 4-3.2l4.5-29c1-7.2 13.2-4.7 18-4.7 28.4 0 45.9-17 45.9-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.3 8.2-5.5-8.5-14-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9.3 0 20.5-4.9 26.5-11.9-.3 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H484c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm47.5-33.3c0-2-1.5-3.5-3.2-3.5h-18.5c-1.5 0-3 1.2-3.2 2.7l-16.2 104-.3.5c0 1.8 1.5 3.5 3.5 3.5h16.5c2.5 0 5-2.9 5.2-5.7L544 191.2v-.3zm-90 51.8c-12.2 0-21.7 9.7-21.7 22 0 9.7 7 15 16.2 15 12 0 21.7-9.2 21.7-21.5.1-9.8-6.9-15.5-16.2-15.5z\"]\n};\nvar faCcStripe = {\n prefix: 'fab',\n iconName: 'cc-stripe',\n icon: [576, 512, [], \"f1f5\", \"M492.4 220.8c-8.9 0-18.7 6.7-18.7 22.7h36.7c0-16-9.3-22.7-18-22.7zM375 223.4c-8.2 0-13.3 2.9-17 7l.2 52.8c3.5 3.7 8.5 6.7 16.8 6.7 13.1 0 21.9-14.3 21.9-33.4 0-18.6-9-33.2-21.9-33.1zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM122.2 281.1c0 25.6-20.3 40.1-49.9 40.3-12.2 0-25.6-2.4-38.8-8.1v-33.9c12 6.4 27.1 11.3 38.9 11.3 7.9 0 13.6-2.1 13.6-8.7 0-17-54-10.6-54-49.9 0-25.2 19.2-40.2 48-40.2 11.8 0 23.5 1.8 35.3 6.5v33.4c-10.8-5.8-24.5-9.1-35.3-9.1-7.5 0-12.1 2.2-12.1 7.7 0 16 54.3 8.4 54.3 50.7zm68.8-56.6h-27V275c0 20.9 22.5 14.4 27 12.6v28.9c-4.7 2.6-13.3 4.7-24.9 4.7-21.1 0-36.9-15.5-36.9-36.5l.2-113.9 34.7-7.4v30.8H191zm74 2.4c-4.5-1.5-18.7-3.6-27.1 7.4v84.4h-35.5V194.2h30.7l2.2 10.5c8.3-15.3 24.9-12.2 29.6-10.5h.1zm44.1 91.8h-35.7V194.2h35.7zm0-142.9l-35.7 7.6v-28.9l35.7-7.6zm74.1 145.5c-12.4 0-20-5.3-25.1-9l-.1 40.2-35.5 7.5V194.2h31.3l1.8 8.8c4.9-4.5 13.9-11.1 27.8-11.1 24.9 0 48.4 22.5 48.4 63.8 0 45.1-23.2 65.5-48.6 65.6zm160.4-51.5h-69.5c1.6 16.6 13.8 21.5 27.6 21.5 14.1 0 25.2-3 34.9-7.9V312c-9.7 5.3-22.4 9.2-39.4 9.2-34.6 0-58.8-21.7-58.8-64.5 0-36.2 20.5-64.9 54.3-64.9 33.7 0 51.3 28.7 51.3 65.1 0 3.5-.3 10.9-.4 12.9z\"]\n};\nvar faCcVisa = {\n prefix: 'fab',\n iconName: 'cc-visa',\n icon: [576, 512, [], \"f1f0\", \"M470.1 231.3s7.6 37.2 9.3 45H446c3.3-8.9 16-43.5 16-43.5-.2.3 3.3-9.1 5.3-14.9l2.8 13.4zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM152.5 331.2L215.7 176h-42.5l-39.3 106-4.3-21.5-14-71.4c-2.3-9.9-9.4-12.7-18.2-13.1H32.7l-.7 3.1c15.8 4 29.9 9.8 42.2 17.1l35.8 135h42.5zm94.4.2L272.1 176h-40.2l-25.1 155.4h40.1zm139.9-50.8c.2-17.7-10.6-31.2-33.7-42.3-14.1-7.1-22.7-11.9-22.7-19.2.2-6.6 7.3-13.4 23.1-13.4 13.1-.3 22.7 2.8 29.9 5.9l3.6 1.7 5.5-33.6c-7.9-3.1-20.5-6.6-36-6.6-39.7 0-67.6 21.2-67.8 51.4-.3 22.3 20 34.7 35.2 42.2 15.5 7.6 20.8 12.6 20.8 19.3-.2 10.4-12.6 15.2-24.1 15.2-16 0-24.6-2.5-37.7-8.3l-5.3-2.5-5.6 34.9c9.4 4.3 26.8 8.1 44.8 8.3 42.2.1 69.7-20.8 70-53zM528 331.4L495.6 176h-31.1c-9.6 0-16.9 2.8-21 12.9l-59.7 142.5H426s6.9-19.2 8.4-23.3H486c1.2 5.5 4.8 23.3 4.8 23.3H528z\"]\n};\nvar faCentercode = {\n prefix: 'fab',\n iconName: 'centercode',\n icon: [512, 512, [], \"f380\", \"M329.2 268.6c-3.8 35.2-35.4 60.6-70.6 56.8-35.2-3.8-60.6-35.4-56.8-70.6 3.8-35.2 35.4-60.6 70.6-56.8 35.1 3.8 60.6 35.4 56.8 70.6zm-85.8 235.1C96.7 496-8.2 365.5 10.1 224.3c11.2-86.6 65.8-156.9 139.1-192 161-77.1 349.7 37.4 354.7 216.6 4.1 147-118.4 262.2-260.5 254.8zm179.9-180c27.9-118-160.5-205.9-237.2-234.2-57.5 56.3-69.1 188.6-33.8 344.4 68.8 15.8 169.1-26.4 271-110.2z\"]\n};\nvar faCentos = {\n prefix: 'fab',\n iconName: 'centos',\n icon: [448, 512, [], \"f789\", \"M289.6 97.5l31.6 31.7-76.3 76.5V97.5zm-162.4 31.7l76.3 76.5V97.5h-44.7zm41.5-41.6h44.7v127.9l10.8 10.8 10.8-10.8V87.6h44.7L224.2 32zm26.2 168.1l-10.8-10.8H55.5v-44.8L0 255.7l55.5 55.6v-44.8h128.6l10.8-10.8zm79.3-20.7h107.9v-44.8l-31.6-31.7zm173.3 20.7L392 200.1v44.8H264.3l-10.8 10.8 10.8 10.8H392v44.8l55.5-55.6zM65.4 176.2l32.5-31.7 90.3 90.5h15.3v-15.3l-90.3-90.5 31.6-31.7H65.4zm316.7-78.7h-78.5l31.6 31.7-90.3 90.5V235h15.3l90.3-90.5 31.6 31.7zM203.5 413.9V305.8l-76.3 76.5 31.6 31.7h44.7zM65.4 235h108.8l-76.3-76.5-32.5 31.7zm316.7 100.2l-31.6 31.7-90.3-90.5h-15.3v15.3l90.3 90.5-31.6 31.7h78.5zm0-58.8H274.2l76.3 76.5 31.6-31.7zm-60.9 105.8l-76.3-76.5v108.1h44.7zM97.9 352.9l76.3-76.5H65.4v44.8zm181.8 70.9H235V295.9l-10.8-10.8-10.8 10.8v127.9h-44.7l55.5 55.6zm-166.5-41.6l90.3-90.5v-15.3h-15.3l-90.3 90.5-32.5-31.7v78.7h79.4z\"]\n};\nvar faChrome = {\n prefix: 'fab',\n iconName: 'chrome',\n icon: [496, 512, [], \"f268\", \"M131.5 217.5L55.1 100.1c47.6-59.2 119-91.8 192-92.1 42.3-.3 85.5 10.5 124.8 33.2 43.4 25.2 76.4 61.4 97.4 103L264 133.4c-58.1-3.4-113.4 29.3-132.5 84.1zm32.9 38.5c0 46.2 37.4 83.6 83.6 83.6s83.6-37.4 83.6-83.6-37.4-83.6-83.6-83.6-83.6 37.3-83.6 83.6zm314.9-89.2L339.6 174c37.9 44.3 38.5 108.2 6.6 157.2L234.1 503.6c46.5 2.5 94.4-7.7 137.8-32.9 107.4-62 150.9-192 107.4-303.9zM133.7 303.6L40.4 120.1C14.9 159.1 0 205.9 0 256c0 124 90.8 226.7 209.5 244.9l63.7-124.8c-57.6 10.8-113.2-20.8-139.5-72.5z\"]\n};\nvar faChromecast = {\n prefix: 'fab',\n iconName: 'chromecast',\n icon: [512, 512, [], \"f838\", \"M447.8,64H64c-23.6,0-42.7,19.1-42.7,42.7v63.9H64v-63.9h383.8v298.6H298.6V448H448c23.6,0,42.7-19.1,42.7-42.7V106.7 C490.7,83.1,471.4,64,447.8,64z M21.3,383.6L21.3,383.6l0,63.9h63.9C85.2,412.2,56.6,383.6,21.3,383.6L21.3,383.6z M21.3,298.6V341 c58.9,0,106.6,48.1,106.6,107h42.7C170.7,365.6,103.7,298.7,21.3,298.6z M213.4,448h42.7c-0.5-129.5-105.3-234.3-234.8-234.6l0,42.4 C127.3,255.6,213.3,342,213.4,448z\"]\n};\nvar faCloudflare = {\n prefix: 'fab',\n iconName: 'cloudflare',\n icon: [640, 512, [], \"e07d\", \"M407.906,319.913l-230.8-2.928a4.58,4.58,0,0,1-3.632-1.926,4.648,4.648,0,0,1-.494-4.147,6.143,6.143,0,0,1,5.361-4.076L411.281,303.9c27.631-1.26,57.546-23.574,68.022-50.784l13.286-34.542a7.944,7.944,0,0,0,.524-2.936,7.735,7.735,0,0,0-.164-1.631A151.91,151.91,0,0,0,201.257,198.4,68.12,68.12,0,0,0,94.2,269.59C41.924,271.106,0,313.728,0,366.12a96.054,96.054,0,0,0,1.029,13.958,4.508,4.508,0,0,0,4.445,3.871l426.1.051c.043,0,.08-.019.122-.02a5.606,5.606,0,0,0,5.271-4l3.273-11.265c3.9-13.4,2.448-25.8-4.1-34.9C430.124,325.423,420.09,320.487,407.906,319.913ZM513.856,221.1c-2.141,0-4.271.062-6.391.164a3.771,3.771,0,0,0-3.324,2.653l-9.077,31.193c-3.9,13.4-2.449,25.786,4.1,34.89,6.02,8.4,16.054,13.323,28.238,13.9l49.2,2.939a4.491,4.491,0,0,1,3.51,1.894,4.64,4.64,0,0,1,.514,4.169,6.153,6.153,0,0,1-5.351,4.075l-51.125,2.939c-27.754,1.27-57.669,23.574-68.145,50.784l-3.695,9.606a2.716,2.716,0,0,0,2.427,3.68c.046,0,.088.017.136.017h175.91a4.69,4.69,0,0,0,4.539-3.37,124.807,124.807,0,0,0,4.682-34C640,277.3,583.524,221.1,513.856,221.1Z\"]\n};\nvar faCloudscale = {\n prefix: 'fab',\n iconName: 'cloudscale',\n icon: [448, 512, [], \"f383\", \"M318.1 154l-9.4 7.6c-22.5-19.3-51.5-33.6-83.3-33.6C153.8 128 96 188.8 96 260.3c0 6.6.4 13.1 1.4 19.4-2-56 41.8-97.4 92.6-97.4 24.2 0 46.2 9.4 62.6 24.7l-25.2 20.4c-8.3-.9-16.8 1.8-23.1 8.1-11.1 11-11.1 28.9 0 40 11.1 11 28.9 11 40 0 6.3-6.3 9-14.9 8.1-23.1l75.2-88.8c6.3-6.5-3.3-15.9-9.5-9.6zm-83.8 111.5c-5.6 5.5-14.6 5.5-20.2 0-5.6-5.6-5.6-14.6 0-20.2s14.6-5.6 20.2 0 5.6 14.7 0 20.2zM224 32C100.5 32 0 132.5 0 256s100.5 224 224 224 224-100.5 224-224S347.5 32 224 32zm0 384c-88.2 0-160-71.8-160-160S135.8 96 224 96s160 71.8 160 160-71.8 160-160 160z\"]\n};\nvar faCloudsmith = {\n prefix: 'fab',\n iconName: 'cloudsmith',\n icon: [332, 512, [], \"f384\", \"M332.5 419.9c0 46.4-37.6 84.1-84 84.1s-84-37.7-84-84.1 37.6-84 84-84 84 37.6 84 84zm-84-243.9c46.4 0 80-37.6 80-84s-33.6-84-80-84-88 37.6-88 84-29.6 76-76 76-84 41.6-84 88 37.6 80 84 80 84-33.6 84-80 33.6-80 80-80z\"]\n};\nvar faCloudversify = {\n prefix: 'fab',\n iconName: 'cloudversify',\n icon: [616, 512, [], \"f385\", \"M148.6 304c8.2 68.5 67.4 115.5 146 111.3 51.2 43.3 136.8 45.8 186.4-5.6 69.2 1.1 118.5-44.6 131.5-99.5 14.8-62.5-18.2-132.5-92.1-155.1-33-88.1-131.4-101.5-186.5-85-57.3 17.3-84.3 53.2-99.3 109.7-7.8 2.7-26.5 8.9-45 24.1 11.7 0 15.2 8.9 15.2 19.5v20.4c0 10.7-8.7 19.5-19.5 19.5h-20.2c-10.7 0-19.5-6-19.5-16.7V240H98.8C95 240 88 244.3 88 251.9v40.4c0 6.4 5.3 11.8 11.7 11.8h48.9zm227.4 8c-10.7 46.3 21.7 72.4 55.3 86.8C324.1 432.6 259.7 348 296 288c-33.2 21.6-33.7 71.2-29.2 92.9-17.9-12.4-53.8-32.4-57.4-79.8-3-39.9 21.5-75.7 57-93.9C297 191.4 369.9 198.7 400 248c-14.1-48-53.8-70.1-101.8-74.8 30.9-30.7 64.4-50.3 114.2-43.7 69.8 9.3 133.2 82.8 67.7 150.5 35-16.3 48.7-54.4 47.5-76.9l10.5 19.6c11.8 22 15.2 47.6 9.4 72-9.2 39-40.6 68.8-79.7 76.5-32.1 6.3-83.1-5.1-91.8-59.2zM128 208H88.2c-8.9 0-16.2-7.3-16.2-16.2v-39.6c0-8.9 7.3-16.2 16.2-16.2H128c8.9 0 16.2 7.3 16.2 16.2v39.6c0 8.9-7.3 16.2-16.2 16.2zM10.1 168C4.5 168 0 163.5 0 157.9v-27.8c0-5.6 4.5-10.1 10.1-10.1h27.7c5.5 0 10.1 4.5 10.1 10.1v27.8c0 5.6-4.5 10.1-10.1 10.1H10.1zM168 142.7v-21.4c0-5.1 4.2-9.3 9.3-9.3h21.4c5.1 0 9.3 4.2 9.3 9.3v21.4c0 5.1-4.2 9.3-9.3 9.3h-21.4c-5.1 0-9.3-4.2-9.3-9.3zM56 235.5v25c0 6.3-5.1 11.5-11.4 11.5H19.4C13.1 272 8 266.8 8 260.5v-25c0-6.3 5.1-11.5 11.4-11.5h25.1c6.4 0 11.5 5.2 11.5 11.5z\"]\n};\nvar faCodepen = {\n prefix: 'fab',\n iconName: 'codepen',\n icon: [512, 512, [], \"f1cb\", \"M502.285 159.704l-234-156c-7.987-4.915-16.511-4.96-24.571 0l-234 156C3.714 163.703 0 170.847 0 177.989v155.999c0 7.143 3.714 14.286 9.715 18.286l234 156.022c7.987 4.915 16.511 4.96 24.571 0l234-156.022c6-3.999 9.715-11.143 9.715-18.286V177.989c-.001-7.142-3.715-14.286-9.716-18.285zM278 63.131l172.286 114.858-76.857 51.429L278 165.703V63.131zm-44 0v102.572l-95.429 63.715-76.857-51.429L234 63.131zM44 219.132l55.143 36.857L44 292.846v-73.714zm190 229.715L61.714 333.989l76.857-51.429L234 346.275v102.572zm22-140.858l-77.715-52 77.715-52 77.715 52-77.715 52zm22 140.858V346.275l95.429-63.715 76.857 51.429L278 448.847zm190-156.001l-55.143-36.857L468 219.132v73.714z\"]\n};\nvar faCodiepie = {\n prefix: 'fab',\n iconName: 'codiepie',\n icon: [472, 512, [], \"f284\", \"M422.5 202.9c30.7 0 33.5 53.1-.3 53.1h-10.8v44.3h-26.6v-97.4h37.7zM472 352.6C429.9 444.5 350.4 504 248 504 111 504 0 393 0 256S111 8 248 8c97.4 0 172.8 53.7 218.2 138.4l-186 108.8L472 352.6zm-38.5 12.5l-60.3-30.7c-27.1 44.3-70.4 71.4-122.4 71.4-82.5 0-149.2-66.7-149.2-148.9 0-82.5 66.7-149.2 149.2-149.2 48.4 0 88.9 23.5 116.9 63.4l59.5-34.6c-40.7-62.6-104.7-100-179.2-100-121.2 0-219.5 98.3-219.5 219.5S126.8 475.5 248 475.5c78.6 0 146.5-42.1 185.5-110.4z\"]\n};\nvar faConfluence = {\n prefix: 'fab',\n iconName: 'confluence',\n icon: [512, 512, [], \"f78d\", \"M2.3 412.2c-4.5 7.6-2.1 17.5 5.5 22.2l105.9 65.2c7.7 4.7 17.7 2.4 22.4-5.3 0-.1.1-.2.1-.2 67.1-112.2 80.5-95.9 280.9-.7 8.1 3.9 17.8.4 21.7-7.7.1-.1.1-.3.2-.4l50.4-114.1c3.6-8.1-.1-17.6-8.1-21.3-22.2-10.4-66.2-31.2-105.9-50.3C127.5 179 44.6 345.3 2.3 412.2zm507.4-312.1c4.5-7.6 2.1-17.5-5.5-22.2L398.4 12.8c-7.5-5-17.6-3.1-22.6 4.4-.2.3-.4.6-.6 1-67.3 112.6-81.1 95.6-280.6.9-8.1-3.9-17.8-.4-21.7 7.7-.1.1-.1.3-.2.4L22.2 141.3c-3.6 8.1.1 17.6 8.1 21.3 22.2 10.4 66.3 31.2 106 50.4 248 120 330.8-45.4 373.4-112.9z\"]\n};\nvar faConnectdevelop = {\n prefix: 'fab',\n iconName: 'connectdevelop',\n icon: [576, 512, [], \"f20e\", \"M550.5 241l-50.089-86.786c1.071-2.142 1.875-4.553 1.875-7.232 0-8.036-6.696-14.733-14.732-15.001l-55.447-95.893c.536-1.607 1.071-3.214 1.071-4.821 0-8.571-6.964-15.268-15.268-15.268-4.821 0-8.839 2.143-11.786 5.625H299.518C296.839 18.143 292.821 16 288 16s-8.839 2.143-11.518 5.625H170.411C167.464 18.143 163.447 16 158.625 16c-8.303 0-15.268 6.696-15.268 15.268 0 1.607.536 3.482 1.072 4.821l-55.983 97.233c-5.356 2.41-9.107 7.5-9.107 13.661 0 .535.268 1.071.268 1.607l-53.304 92.143c-7.232 1.339-12.59 7.5-12.59 15 0 7.232 5.089 13.393 12.054 15l55.179 95.358c-.536 1.607-.804 2.946-.804 4.821 0 7.232 5.089 13.393 12.054 14.732l51.697 89.732c-.536 1.607-1.071 3.482-1.071 5.357 0 8.571 6.964 15.268 15.268 15.268 4.821 0 8.839-2.143 11.518-5.357h106.875C279.161 493.857 283.447 496 288 496s8.839-2.143 11.518-5.357h107.143c2.678 2.946 6.696 4.821 10.982 4.821 8.571 0 15.268-6.964 15.268-15.268 0-1.607-.267-2.946-.803-4.285l51.697-90.268c6.964-1.339 12.054-7.5 12.054-14.732 0-1.607-.268-3.214-.804-4.821l54.911-95.358c6.964-1.339 12.322-7.5 12.322-15-.002-7.232-5.092-13.393-11.788-14.732zM153.535 450.732l-43.66-75.803h43.66v75.803zm0-83.839h-43.66c-.268-1.071-.804-2.142-1.339-3.214l44.999-47.41v50.624zm0-62.411l-50.357 53.304c-1.339-.536-2.679-1.34-4.018-1.607L43.447 259.75c.535-1.339.535-2.679.535-4.018s0-2.41-.268-3.482l51.965-90c2.679-.268 5.357-1.072 7.768-2.679l50.089 51.965v92.946zm0-102.322l-45.803-47.41c1.339-2.143 2.143-4.821 2.143-7.767 0-.268-.268-.804-.268-1.072l43.928-15.804v72.053zm0-80.625l-43.66 15.804 43.66-75.536v59.732zm326.519 39.108l.804 1.339L445.5 329.125l-63.75-67.232 98.036-101.518.268.268zM291.75 355.107l11.518 11.786H280.5l11.25-11.786zm-.268-11.25l-83.303-85.446 79.553-84.375 83.036 87.589-79.286 82.232zm5.357 5.893l79.286-82.232 67.5 71.25-5.892 28.125H313.714l-16.875-17.143zM410.411 44.393c1.071.536 2.142 1.072 3.482 1.34l57.857 100.714v.536c0 2.946.803 5.624 2.143 7.767L376.393 256l-83.035-87.589L410.411 44.393zm-9.107-2.143L287.732 162.518l-57.054-60.268 166.339-60h4.287zm-123.483 0c2.678 2.678 6.16 4.285 10.179 4.285s7.5-1.607 10.179-4.285h75L224.786 95.821 173.893 42.25h103.928zm-116.249 5.625l1.071-2.142a33.834 33.834 0 0 0 2.679-.804l51.161 53.84-54.911 19.821V47.875zm0 79.286l60.803-21.964 59.732 63.214-79.553 84.107-40.982-42.053v-83.304zm0 92.678L198 257.607l-36.428 38.304v-76.072zm0 87.858l42.053-44.464 82.768 85.982-17.143 17.678H161.572v-59.196zm6.964 162.053c-1.607-1.607-3.482-2.678-5.893-3.482l-1.071-1.607v-89.732h99.91l-91.607 94.821h-1.339zm129.911 0c-2.679-2.41-6.428-4.285-10.447-4.285s-7.767 1.875-10.447 4.285h-96.429l91.607-94.821h38.304l91.607 94.821H298.447zm120-11.786l-4.286 7.5c-1.339.268-2.41.803-3.482 1.339l-89.196-91.875h114.376l-17.412 83.036zm12.856-22.232l12.858-60.803h21.964l-34.822 60.803zm34.822-68.839h-20.357l4.553-21.16 17.143 18.214c-.535.803-1.071 1.874-1.339 2.946zm66.161-107.411l-55.447 96.697c-1.339.535-2.679 1.071-4.018 1.874l-20.625-21.964 34.554-163.928 45.803 79.286c-.267 1.339-.803 2.678-.803 4.285 0 1.339.268 2.411.536 3.75z\"]\n};\nvar faContao = {\n prefix: 'fab',\n iconName: 'contao',\n icon: [512, 512, [], \"f26d\", \"M45.4 305c14.4 67.1 26.4 129 68.2 175H34c-18.7 0-34-15.2-34-34V66c0-18.7 15.2-34 34-34h57.7C77.9 44.6 65.6 59.2 54.8 75.6c-45.4 70-27 146.8-9.4 229.4zM478 32h-90.2c21.4 21.4 39.2 49.5 52.7 84.1l-137.1 29.3c-14.9-29-37.8-53.3-82.6-43.9-24.6 5.3-41 19.3-48.3 34.6-8.8 18.7-13.2 39.8 8.2 140.3 21.1 100.2 33.7 117.7 49.5 131.2 12.9 11.1 33.4 17 58.3 11.7 44.5-9.4 55.7-40.7 57.4-73.2l137.4-29.6c3.2 71.5-18.7 125.2-57.4 163.6H478c18.7 0 34-15.2 34-34V66c0-18.8-15.2-34-34-34z\"]\n};\nvar faCottonBureau = {\n prefix: 'fab',\n iconName: 'cotton-bureau',\n icon: [512, 512, [], \"f89e\", \"M474.31 330.41c-23.66 91.85-94.23 144.59-201.9 148.35V429.6c0-48 26.41-74.39 74.39-74.39 62 0 99.2-37.2 99.2-99.21 0-61.37-36.53-98.28-97.38-99.06-33-69.32-146.5-64.65-177.24 0C110.52 157.72 74 194.63 74 256c0 62.13 37.27 99.41 99.4 99.41 48 0 74.55 26.23 74.55 74.39V479c-134.43-5-211.1-85.07-211.1-223 0-141.82 81.35-223.2 223.2-223.2 114.77 0 189.84 53.2 214.69 148.81H500C473.88 71.51 388.22 8 259.82 8 105 8 12 101.19 12 255.82 12 411.14 105.19 504.34 259.82 504c128.27 0 213.87-63.81 239.67-173.59zM357 182.33c41.37 3.45 64.2 29 64.2 73.67 0 48-26.43 74.41-74.4 74.41-28.61 0-49.33-9.59-61.59-27.33 83.06-16.55 75.59-99.67 71.79-120.75zm-81.68 97.36c-2.46-10.34-16.33-87 56.23-97 2.27 10.09 16.52 87.11-56.26 97zM260 132c28.61 0 49 9.67 61.44 27.61-28.36 5.48-49.36 20.59-61.59 43.45-12.23-22.86-33.23-38-61.6-43.45 12.41-17.69 33.27-27.35 61.57-27.35zm-71.52 50.72c73.17 10.57 58.91 86.81 56.49 97-72.41-9.84-59-86.95-56.25-97zM173.2 330.41c-48 0-74.4-26.4-74.4-74.41 0-44.36 22.86-70 64.22-73.67-6.75 37.2-1.38 106.53 71.65 120.75-12.14 17.63-32.84 27.3-61.14 27.3zm53.21 12.39A80.8 80.8 0 0 0 260 309.25c7.77 14.49 19.33 25.54 33.82 33.55a80.28 80.28 0 0 0-33.58 33.83c-8-14.5-19.07-26.23-33.56-33.83z\"]\n};\nvar faCpanel = {\n prefix: 'fab',\n iconName: 'cpanel',\n icon: [640, 512, [], \"f388\", \"M210.3 220.2c-5.6-24.8-26.9-41.2-51-41.2h-37c-7.1 0-12.5 4.5-14.3 10.9L73.1 320l24.7-.1c6.8 0 12.3-4.5 14.2-10.7l25.8-95.7h19.8c8.4 0 16.2 5.6 18.3 14.8 2.5 10.9-5.9 22.6-18.3 22.6h-10.3c-7 0-12.5 4.6-14.3 10.8l-6.4 23.8h32c37.2 0 58.3-36.2 51.7-65.3zm-156.5 28h18.6c6.9 0 12.4-4.4 14.3-10.9l6.2-23.6h-40C30 213.7 9 227.8 1.7 254.8-7 288.6 18.5 320 52 320h12.4l7.1-26.1c1.2-4.4-2.2-8.3-6.4-8.3H53.8c-24.7 0-24.9-37.4 0-37.4zm247.5-34.8h-77.9l-3.5 13.4c-2.4 9.6 4.5 18.5 14.2 18.5h57.5c4 0 2.4 4.3 2.1 5.3l-8.6 31.8c-.4 1.4-.9 5.3-5.5 5.3h-34.9c-5.3 0-5.3-7.9 0-7.9h21.6c6.8 0 12.3-4.6 14.2-10.8l3.5-13.2h-48.4c-39.2 0-43.6 63.8-.7 63.8l57.5.2c11.2 0 20.6-7.2 23.4-17.8l14-51.8c4.8-19.2-9.7-36.8-28.5-36.8zM633.1 179h-18.9c-4.9 0-9.2 3.2-10.4 7.9L568.2 320c20.7 0 39.8-13.8 44.9-34.5l26.5-98.2c1.2-4.3-2-8.3-6.5-8.3zm-236.3 34.7v.1h-48.3l-26.2 98c-1.2 4.4 2.2 8.3 6.4 8.3h18.9c4.8 0 9.2-3 10.4-7.8l17.2-64H395c12.5 0 21.4 11.8 18.1 23.4l-10.6 40c-1.2 4.3 1.9 8.3 6.4 8.3H428c4.6 0 9.1-2.9 10.3-7.8l8.8-33.1c9-33.1-15.9-65.4-50.3-65.4zm98.3 74.6c-3.6 0-6-3.4-5.1-6.7l8-30c.9-3.9 3.7-6 7.8-6h32.9c2.6 0 4.6 2.4 3.9 5.1l-.7 2.6c-.6 2-1.9 3-3.9 3h-21.6c-7 0-12.6 4.6-14.2 10.8l-3.5 13h53.4c10.5 0 20.3-6.6 23.2-17.6l3.2-12c4.9-19.1-9.3-36.8-28.3-36.8h-47.3c-17.9 0-33.8 12-38.6 29.6l-10.8 40c-5 17.7 8.3 36.7 28.3 36.7h66.7c6.8 0 12.3-4.5 14.2-10.7l5.7-21z\"]\n};\nvar faCreativeCommons = {\n prefix: 'fab',\n iconName: 'creative-commons',\n icon: [496, 512, [], \"f25e\", \"M245.83 214.87l-33.22 17.28c-9.43-19.58-25.24-19.93-27.46-19.93-22.13 0-33.22 14.61-33.22 43.84 0 23.57 9.21 43.84 33.22 43.84 14.47 0 24.65-7.09 30.57-21.26l30.55 15.5c-6.17 11.51-25.69 38.98-65.1 38.98-22.6 0-73.96-10.32-73.96-77.05 0-58.69 43-77.06 72.63-77.06 30.72-.01 52.7 11.95 65.99 35.86zm143.05 0l-32.78 17.28c-9.5-19.77-25.72-19.93-27.9-19.93-22.14 0-33.22 14.61-33.22 43.84 0 23.55 9.23 43.84 33.22 43.84 14.45 0 24.65-7.09 30.54-21.26l31 15.5c-2.1 3.75-21.39 38.98-65.09 38.98-22.69 0-73.96-9.87-73.96-77.05 0-58.67 42.97-77.06 72.63-77.06 30.71-.01 52.58 11.95 65.56 35.86zM247.56 8.05C104.74 8.05 0 123.11 0 256.05c0 138.49 113.6 248 247.56 248 129.93 0 248.44-100.87 248.44-248 0-137.87-106.62-248-248.44-248zm.87 450.81c-112.54 0-203.7-93.04-203.7-202.81 0-105.42 85.43-203.27 203.72-203.27 112.53 0 202.82 89.46 202.82 203.26-.01 121.69-99.68 202.82-202.84 202.82z\"]\n};\nvar faCreativeCommonsBy = {\n prefix: 'fab',\n iconName: 'creative-commons-by',\n icon: [496, 512, [], \"f4e7\", \"M314.9 194.4v101.4h-28.3v120.5h-77.1V295.9h-28.3V194.4c0-4.4 1.6-8.2 4.6-11.3 3.1-3.1 6.9-4.7 11.3-4.7H299c4.1 0 7.8 1.6 11.1 4.7 3.1 3.2 4.8 6.9 4.8 11.3zm-101.5-63.7c0-23.3 11.5-35 34.5-35s34.5 11.7 34.5 35c0 23-11.5 34.5-34.5 34.5s-34.5-11.5-34.5-34.5zM247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3z\"]\n};\nvar faCreativeCommonsNc = {\n prefix: 'fab',\n iconName: 'creative-commons-nc',\n icon: [496, 512, [], \"f4e8\", \"M247.6 8C387.4 8 496 115.9 496 256c0 147.2-118.5 248-248.4 248C113.1 504 0 393.2 0 256 0 123.1 104.7 8 247.6 8zM55.8 189.1c-7.4 20.4-11.1 42.7-11.1 66.9 0 110.9 92.1 202.4 203.7 202.4 122.4 0 177.2-101.8 178.5-104.1l-93.4-41.6c-7.7 37.1-41.2 53-68.2 55.4v38.1h-28.8V368c-27.5-.3-52.6-10.2-75.3-29.7l34.1-34.5c31.7 29.4 86.4 31.8 86.4-2.2 0-6.2-2.2-11.2-6.6-15.1-14.2-6-1.8-.1-219.3-97.4zM248.4 52.3c-38.4 0-112.4 8.7-170.5 93l94.8 42.5c10-31.3 40.4-42.9 63.8-44.3v-38.1h28.8v38.1c22.7 1.2 43.4 8.9 62 23L295 199.7c-42.7-29.9-83.5-8-70 11.1 53.4 24.1 43.8 19.8 93 41.6l127.1 56.7c4.1-17.4 6.2-35.1 6.2-53.1 0-57-19.8-105-59.3-143.9-39.3-39.9-87.2-59.8-143.6-59.8z\"]\n};\nvar faCreativeCommonsNcEu = {\n prefix: 'fab',\n iconName: 'creative-commons-nc-eu',\n icon: [496, 512, [], \"f4e9\", \"M247.7 8C103.6 8 0 124.8 0 256c0 136.3 111.7 248 247.7 248C377.9 504 496 403.1 496 256 496 117 388.4 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-23.2 3.7-45.2 10.9-66l65.7 29.1h-4.7v29.5h23.3c0 6.2-.4 3.2-.4 19.5h-22.8v29.5h27c11.4 67 67.2 101.3 124.6 101.3 26.6 0 50.6-7.9 64.8-15.8l-10-46.1c-8.7 4.6-28.2 10.8-47.3 10.8-28.2 0-58.1-10.9-67.3-50.2h90.3l128.3 56.8c-1.5 2.1-56.2 104.3-178.8 104.3zm-16.7-190.6l-.5-.4.9.4h-.4zm77.2-19.5h3.7v-29.5h-70.3l-28.6-12.6c2.5-5.5 5.4-10.5 8.8-14.3 12.9-15.8 31.1-22.4 51.1-22.4 18.3 0 35.3 5.4 46.1 10l11.6-47.3c-15-6.6-37-12.4-62.3-12.4-39 0-72.2 15.8-95.9 42.3-5.3 6.1-9.8 12.9-13.9 20.1l-81.6-36.1c64.6-96.8 157.7-93.6 170.7-93.6 113 0 203 90.2 203 203.4 0 18.7-2.1 36.3-6.3 52.9l-136.1-60.5z\"]\n};\nvar faCreativeCommonsNcJp = {\n prefix: 'fab',\n iconName: 'creative-commons-nc-jp',\n icon: [496, 512, [], \"f4ea\", \"M247.7 8C103.6 8 0 124.8 0 256c0 136.4 111.8 248 247.7 248C377.9 504 496 403.2 496 256 496 117.2 388.5 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-21.1 3-41.2 9-60.3l127 56.5h-27.9v38.6h58.1l5.7 11.8v18.7h-63.8V360h63.8v56h61.7v-56h64.2v-35.7l81 36.1c-1.5 2.2-57.1 98.3-175.2 98.3zm87.6-137.3h-57.6v-18.7l2.9-5.6 54.7 24.3zm6.5-51.4v-17.8h-38.6l63-116H301l-43.4 96-23-10.2-39.6-85.7h-65.8l27.3 51-81.9-36.5c27.8-44.1 82.6-98.1 173.7-98.1 112.8 0 203 90 203 203.4 0 21-2.7 40.6-7.9 59l-101-45.1z\"]\n};\nvar faCreativeCommonsNd = {\n prefix: 'fab',\n iconName: 'creative-commons-nd',\n icon: [496, 512, [], \"f4eb\", \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm94 144.3v42.5H162.1V197h180.3zm0 79.8v42.5H162.1v-42.5h180.3z\"]\n};\nvar faCreativeCommonsPd = {\n prefix: 'fab',\n iconName: 'creative-commons-pd',\n icon: [496, 512, [], \"f4ec\", \"M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm0 449.5c-139.2 0-235.8-138-190.2-267.9l78.8 35.1c-2.1 10.5-3.3 21.5-3.3 32.9 0 99 73.9 126.9 120.4 126.9 22.9 0 53.5-6.7 79.4-29.5L297 311.1c-5.5 6.3-17.6 16.7-36.3 16.7-37.8 0-53.7-39.9-53.9-71.9 230.4 102.6 216.5 96.5 217.9 96.8-34.3 62.4-100.6 104.8-176.7 104.8zm194.2-150l-224-100c18.8-34 54.9-30.7 74.7-11l40.4-41.6c-27.1-23.3-58-27.5-78.1-27.5-47.4 0-80.9 20.5-100.7 51.6l-74.9-33.4c36.1-54.9 98.1-91.2 168.5-91.2 111.1 0 201.5 90.4 201.5 201.5 0 18-2.4 35.4-6.8 52-.3-.1-.4-.2-.6-.4z\"]\n};\nvar faCreativeCommonsPdAlt = {\n prefix: 'fab',\n iconName: 'creative-commons-pd-alt',\n icon: [496, 512, [], \"f4ed\", \"M247.6 8C104.7 8 0 123.1 0 256c0 138.5 113.6 248 247.6 248C377.5 504 496 403.1 496 256 496 118.1 389.4 8 247.6 8zm.8 450.8c-112.5 0-203.7-93-203.7-202.8 0-105.4 85.5-203.3 203.7-203.3 112.6 0 202.9 89.5 202.8 203.3 0 121.7-99.6 202.8-202.8 202.8zM316.7 186h-53.2v137.2h53.2c21.4 0 70-5.1 70-68.6 0-63.4-48.6-68.6-70-68.6zm.8 108.5h-19.9v-79.7l19.4-.1c3.8 0 35-2.1 35 39.9 0 24.6-10.5 39.9-34.5 39.9zM203.7 186h-68.2v137.3h34.6V279h27c54.1 0 57.1-37.5 57.1-46.5 0-31-16.8-46.5-50.5-46.5zm-4.9 67.3h-29.2v-41.6h28.3c30.9 0 28.8 41.6.9 41.6z\"]\n};\nvar faCreativeCommonsRemix = {\n prefix: 'fab',\n iconName: 'creative-commons-remix',\n icon: [496, 512, [], \"f4ee\", \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm161.7 207.7l4.9 2.2v70c-7.2 3.6-63.4 27.5-67.3 28.8-6.5-1.8-113.7-46.8-137.3-56.2l-64.2 26.6-63.3-27.5v-63.8l59.3-24.8c-.7-.7-.4 5-.4-70.4l67.3-29.7L361 178.5v61.6l49.1 20.3zm-70.4 81.5v-43.8h-.4v-1.8l-113.8-46.5V295l113.8 46.9v-.4l.4.4zm7.5-57.6l39.9-16.4-36.8-15.5-39 16.4 35.9 15.5zm52.3 38.1v-43L355.2 298v43.4l44.3-19z\"]\n};\nvar faCreativeCommonsSa = {\n prefix: 'fab',\n iconName: 'creative-commons-sa',\n icon: [496, 512, [], \"f4ef\", \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zM137.7 221c13-83.9 80.5-95.7 108.9-95.7 99.8 0 127.5 82.5 127.5 134.2 0 63.6-41 132.9-128.9 132.9-38.9 0-99.1-20-109.4-97h62.5c1.5 30.1 19.6 45.2 54.5 45.2 23.3 0 58-18.2 58-82.8 0-82.5-49.1-80.6-56.7-80.6-33.1 0-51.7 14.6-55.8 43.8h18.2l-49.2 49.2-49-49.2h19.4z\"]\n};\nvar faCreativeCommonsSampling = {\n prefix: 'fab',\n iconName: 'creative-commons-sampling',\n icon: [496, 512, [], \"f4f0\", \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm3.6 53.2c2.8-.3 11.5 1 11.5 11.5l6.6 107.2 4.9-59.3c0-6 4.7-10.6 10.6-10.6 5.9 0 10.6 4.7 10.6 10.6 0 2.5-.5-5.7 5.7 81.5l5.8-64.2c.3-2.9 2.9-9.3 10.2-9.3 3.8 0 9.9 2.3 10.6 8.9l11.5 96.5 5.3-12.8c1.8-4.4 5.2-6.6 10.2-6.6h58v21.3h-50.9l-18.2 44.3c-3.9 9.9-19.5 9.1-20.8-3.1l-4-31.9-7.5 92.6c-.3 3-3 9.3-10.2 9.3-3 0-9.8-2.1-10.6-9.3 0-1.9.6 5.8-6.2-77.9l-5.3 72.2c-1.1 4.8-4.8 9.3-10.6 9.3-2.9 0-9.8-2-10.6-9.3 0-1.9.5 6.7-5.8-87.7l-5.8 94.8c0 6.3-3.6 12.4-10.6 12.4-5.2 0-10.6-4.1-10.6-12l-5.8-87.7c-5.8 92.5-5.3 84-5.3 85.9-1.1 4.8-4.8 9.3-10.6 9.3-3 0-9.8-2.1-10.6-9.3 0-.7-.4-1.1-.4-2.6l-6.2-88.6L182 348c-.7 6.5-6.7 9.3-10.6 9.3-5.8 0-9.6-4.1-10.6-8.9L149.7 272c-2 4-3.5 8.4-11.1 8.4H87.2v-21.3H132l13.7-27.9c4.4-9.9 18.2-7.2 19.9 2.7l3.1 20.4 8.4-97.9c0-6 4.8-10.6 10.6-10.6.5 0 10.6-.2 10.6 12.4l4.9 69.1 6.6-92.6c0-10.1 9.5-10.6 10.2-10.6.6 0 10.6.7 10.6 10.6l5.3 80.6 6.2-97.9c.1-1.1-.6-10.3 9.9-11.5z\"]\n};\nvar faCreativeCommonsSamplingPlus = {\n prefix: 'fab',\n iconName: 'creative-commons-sampling-plus',\n icon: [496, 512, [], \"f4f1\", \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm107 205.6c-4.7 0-9 2.8-10.7 7.2l-4 9.5-11-92.8c-1.7-13.9-22-13.4-23.1.4l-4.3 51.4-5.2-68.8c-1.1-14.3-22.1-14.2-23.2 0l-3.5 44.9-5.9-94.3c-.9-14.5-22.3-14.4-23.2 0l-5.1 83.7-4.3-66.3c-.9-14.4-22.2-14.4-23.2 0l-5.3 80.2-4.1-57c-1.1-14.3-22-14.3-23.2-.2l-7.7 89.8-1.8-12.2c-1.7-11.4-17.1-13.6-22-3.3l-13.2 27.7H87.5v23.2h51.3c4.4 0 8.4-2.5 10.4-6.4l10.7 73.1c2 13.5 21.9 13 23.1-.7l3.8-43.6 5.7 78.3c1.1 14.4 22.3 14.2 23.2-.1l4.6-70.4 4.8 73.3c.9 14.4 22.3 14.4 23.2-.1l4.9-80.5 4.5 71.8c.9 14.3 22.1 14.5 23.2.2l4.6-58.6 4.9 64.4c1.1 14.3 22 14.2 23.1.1l6.8-83 2.7 22.3c1.4 11.8 17.7 14.1 22.3 3.1l18-43.4h50.5V258l-58.4.3zm-78 5.2h-21.9v21.9c0 4.1-3.3 7.5-7.5 7.5-4.1 0-7.5-3.3-7.5-7.5v-21.9h-21.9c-4.1 0-7.5-3.3-7.5-7.5 0-4.1 3.4-7.5 7.5-7.5h21.9v-21.9c0-4.1 3.4-7.5 7.5-7.5s7.5 3.3 7.5 7.5v21.9h21.9c4.1 0 7.5 3.3 7.5 7.5 0 4.1-3.4 7.5-7.5 7.5z\"]\n};\nvar faCreativeCommonsShare = {\n prefix: 'fab',\n iconName: 'creative-commons-share',\n icon: [496, 512, [], \"f4f2\", \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm101 132.4c7.8 0 13.7 6.1 13.7 13.7v182.5c0 7.7-6.1 13.7-13.7 13.7H214.3c-7.7 0-13.7-6-13.7-13.7v-54h-54c-7.8 0-13.7-6-13.7-13.7V131.1c0-8.2 6.6-12.7 12.4-13.7h136.4c7.7 0 13.7 6 13.7 13.7v54h54zM159.9 300.3h40.7V198.9c0-7.4 5.8-12.6 12-13.7h55.8v-40.3H159.9v155.4zm176.2-88.1H227.6v155.4h108.5V212.2z\"]\n};\nvar faCreativeCommonsZero = {\n prefix: 'fab',\n iconName: 'creative-commons-zero',\n icon: [496, 512, [], \"f4f3\", \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm-.4 60.5c-81.9 0-102.5 77.3-102.5 142.8 0 65.5 20.6 142.8 102.5 142.8S350.5 321.5 350.5 256c0-65.5-20.6-142.8-102.5-142.8zm0 53.9c3.3 0 6.4.5 9.2 1.2 5.9 5.1 8.8 12.1 3.1 21.9l-54.5 100.2c-1.7-12.7-1.9-25.1-1.9-34.4 0-28.8 2-88.9 44.1-88.9zm40.8 46.2c2.9 15.4 3.3 31.4 3.3 42.7 0 28.9-2 88.9-44.1 88.9-13.5 0-32.6-7.7-20.1-26.4l60.9-105.2z\"]\n};\nvar faCriticalRole = {\n prefix: 'fab',\n iconName: 'critical-role',\n icon: [448, 512, [], \"f6c9\", \"M225.82 0c.26.15 216.57 124.51 217.12 124.72 3 1.18 3.7 3.46 3.7 6.56q-.11 125.17 0 250.36a5.88 5.88 0 0 1-3.38 5.78c-21.37 12-207.86 118.29-218.93 124.58h-3C142 466.34 3.08 386.56 2.93 386.48a3.29 3.29 0 0 1-1.88-3.24c0-.87 0-225.94-.05-253.1a5 5 0 0 1 2.93-4.93C27.19 112.11 213.2 6 224.07 0zM215.4 20.42l-.22-.16Q118.06 75.55 21 130.87c0 .12.08.23.13.35l30.86 11.64c-7.71 6-8.32 6-10.65 5.13-.1 0-24.17-9.28-26.8-10v230.43c.88-1.41 64.07-110.91 64.13-111 1.62-2.82 3-1.92 9.12-1.52 1.4.09 1.48.22.78 1.42-41.19 71.33-36.4 63-67.48 116.94-.81 1.4-.61 1.13 1.25 1.13h186.5c1.44 0 1.69-.23 1.7-1.64v-8.88c0-1.34 2.36-.81-18.37-1-7.46-.07-14.14-3.22-21.38-12.7-7.38-9.66-14.62-19.43-21.85-29.21-2.28-3.08-3.45-2.38-16.76-2.38-1.75 0-1.78 0-1.76 1.82.29 26.21.15 25.27 1 32.66.52 4.37 2.16 4.2 9.69 4.81 3.14.26 3.88 4.08.52 4.92-1.57.39-31.6.51-33.67-.1a2.42 2.42 0 0 1 .3-4.73c3.29-.76 6.16.81 6.66-4.44 1.3-13.66 1.17-9 1.1-79.42 0-10.82-.35-12.58-5.36-13.55-1.22-.24-3.54-.16-4.69-.55-2.88-1-2-4.84 1.77-4.85 33.67 0 46.08-1.07 56.06 4.86 7.74 4.61 12 11.48 12.51 20.4.88 14.59-6.51 22.35-15 32.59a1.46 1.46 0 0 0 0 2.22c2.6 3.25 5 6.63 7.71 9.83 27.56 33.23 24.11 30.54 41.28 33.06.89.13 1-.42 1-1.15v-11c0-1 .32-1.43 1.41-1.26a72.37 72.37 0 0 0 23.58-.3c1.08-.15 1.5.2 1.48 1.33 0 .11.88 26.69.87 26.8-.05 1.52.67 1.62 1.89 1.62h186.71Q386.51 304.6 346 234.33c2.26-.66-.4 0 6.69-1.39 2-.39 2.05-.41 3.11 1.44 7.31 12.64 77.31 134 77.37 134.06V138c-1.72.5-103.3 38.72-105.76 39.68-1.08.42-1.55.2-1.91-.88-.63-1.9-1.34-3.76-2.09-5.62-.32-.79-.09-1.13.65-1.39.1 0 95.53-35.85 103-38.77-65.42-37.57-130.56-75-196-112.6l86.82 150.39-.28.33c-9.57-.9-10.46-1.6-11.8-3.94-1-1.69-73.5-127.71-82-142.16-9.1 14.67-83.56 146.21-85.37 146.32-2.93.17-5.88.08-9.25.08q43.25-74.74 86.18-149zm51.93 129.92a37.68 37.68 0 0 0 5.54-.85c1.69-.3 2.53.2 2.6 1.92 0 .11.07 19.06-.86 20.45s-1.88 1.22-2.6-.19c-5-9.69 6.22-9.66-39.12-12-.7 0-1 .23-1 .93 0 .13 3.72 122 3.73 122.11 0 .89.52 1.2 1.21 1.51a83.92 83.92 0 0 1 8.7 4.05c7.31 4.33 11.38 10.84 12.41 19.31 1.44 11.8-2.77 35.77-32.21 37.14-2.75.13-28.26 1.08-34.14-23.25-4.66-19.26 8.26-32.7 19.89-36.4a2.45 2.45 0 0 0 2-2.66c.1-5.63 3-107.1 3.71-121.35.05-1.08-.62-1.16-1.35-1.15-32.35.52-36.75-.34-40.22 8.52-2.42 6.18-4.14 1.32-3.95.23q1.59-9 3.31-18c.4-2.11 1.43-2.61 3.43-1.86 5.59 2.11 6.72 1.7 37.25 1.92 1.73 0 1.78-.08 1.82-1.85.68-27.49.58-22.59 1-29.55a2.69 2.69 0 0 0-1.63-2.8c-5.6-2.91-8.75-7.55-8.9-13.87-.35-14.81 17.72-21.67 27.38-11.51 6.84 7.19 5.8 18.91-2.45 24.15a4.35 4.35 0 0 0-2.22 4.34c0 .59-.11-4.31 1 30.05 0 .9.43 1.12 1.24 1.11.1 0 23-.09 34.47-.37zM68.27 141.7c19.84-4.51 32.68-.56 52.49 1.69 2.76.31 3.74 1.22 3.62 4-.21 5-1.16 22.33-1.24 23.15a2.65 2.65 0 0 1-1.63 2.34c-4.06 1.7-3.61-4.45-4-7.29-3.13-22.43-73.87-32.7-74.63 25.4-.31 23.92 17 53.63 54.08 50.88 27.24-2 19-20.19 24.84-20.47a2.72 2.72 0 0 1 3 3.36c-1.83 10.85-3.42 18.95-3.45 19.15-1.54 9.17-86.7 22.09-93.35-42.06-2.71-25.85 10.44-53.37 40.27-60.15zm80 87.67h-19.49a2.57 2.57 0 0 1-2.66-1.79c2.38-3.75 5.89.92 5.86-6.14-.08-25.75.21-38 .23-40.1 0-3.42-.53-4.65-3.32-4.94-7-.72-3.11-3.37-1.11-3.38 11.84-.1 22.62-.18 30.05.72 8.77 1.07 16.71 12.63 7.93 22.62-2 2.25-4 4.42-6.14 6.73.95 1.15 6.9 8.82 17.28 19.68 2.66 2.78 6.15 3.51 9.88 3.13a2.21 2.21 0 0 0 2.23-2.12c.3-3.42.26 4.73.45-40.58 0-5.65-.34-6.58-3.23-6.83-3.95-.35-4-2.26-.69-3.37l19.09-.09c.32 0 4.49.53 1 3.38 0 .05-.16 0-.24 0-3.61.26-3.94 1-4 4.62-.27 43.93.07 40.23.41 42.82.11.84.27 2.23 5.1 2.14 2.49 0 3.86 3.37 0 3.4-10.37.08-20.74 0-31.11.07-10.67 0-13.47-6.2-24.21-20.82-1.6-2.18-8.31-2.36-8.2-.37.88 16.47 0 17.78 4 17.67 4.75-.1 4.73 3.57.83 3.55zm275-10.15c-1.21 7.13.17 10.38-5.3 10.34-61.55-.42-47.82-.22-50.72-.31a18.4 18.4 0 0 1-3.63-.73c-2.53-.6 1.48-1.23-.38-5.6-1.43-3.37-2.78-6.78-4.11-10.19a1.94 1.94 0 0 0-2-1.44 138 138 0 0 0-14.58.07 2.23 2.23 0 0 0-1.62 1.06c-1.58 3.62-3.07 7.29-4.51 11-1.27 3.23 7.86 1.32 12.19 2.16 3 .57 4.53 3.72.66 3.73H322.9c-2.92 0-3.09-3.15-.74-3.21a6.3 6.3 0 0 0 5.92-3.47c1.5-3 2.8-6 4.11-9.09 18.18-42.14 17.06-40.17 18.42-41.61a1.83 1.83 0 0 1 3 0c2.93 3.34 18.4 44.71 23.62 51.92 2 2.7 5.74 2 6.36 2 3.61.13 4-1.11 4.13-4.29.09-1.87.08 1.17.07-41.24 0-4.46-2.36-3.74-5.55-4.27-.26 0-2.56-.63-.08-3.06.21-.2-.89-.24 21.7-.15 2.32 0 5.32 2.75-1.21 3.45a2.56 2.56 0 0 0-2.66 2.83c-.07 1.63-.19 38.89.29 41.21a3.06 3.06 0 0 0 3.23 2.43c13.25.43 14.92.44 16-3.41 1.67-5.78 4.13-2.52 3.73-.19zm-104.72 64.37c-4.24 0-4.42-3.39-.61-3.41 35.91-.16 28.11.38 37.19-.65 1.68-.19 2.38.24 2.25 1.89-.26 3.39-.64 6.78-1 10.16-.25 2.16-3.2 2.61-3.4-.15-.38-5.31-2.15-4.45-15.63-5.08-1.58-.07-1.64 0-1.64 1.52V304c0 1.65 0 1.6 1.62 1.47 3.12-.25 10.31.34 15.69-1.52.47-.16 3.3-1.79 3.07 1.76 0 .21-.76 10.35-1.18 11.39-.53 1.29-1.88 1.51-2.58.32-1.17-2 0-5.08-3.71-5.3-15.42-.9-12.91-2.55-12.91 6 0 12.25-.76 16.11 3.89 16.24 16.64.48 14.4 0 16.43-5.71.84-2.37 3.5-1.77 3.18.58-.44 3.21-.85 6.43-1.23 9.64 0 .36-.16 2.4-4.66 2.39-37.16-.08-34.54-.19-35.21-.31-2.72-.51-2.2-3 .22-3.45 1.1-.19 4 .54 4.16-2.56 2.44-56.22-.07-51.34-3.91-51.33zm-.41-109.52c2.46.61 3.13 1.76 2.95 4.65-.33 5.3-.34 9-.55 9.69-.66 2.23-3.15 2.12-3.34-.27-.38-4.81-3.05-7.82-7.57-9.15-26.28-7.73-32.81 15.46-27.17 30.22 5.88 15.41 22 15.92 28.86 13.78 5.92-1.85 5.88-6.5 6.91-7.58 1.23-1.3 2.25-1.84 3.12 1.1 0 .1.57 11.89-6 12.75-1.6.21-19.38 3.69-32.68-3.39-21-11.19-16.74-35.47-6.88-45.33 14-14.06 39.91-7.06 42.32-6.47zM289.8 280.14c3.28 0 3.66 3 .16 3.43-2.61.32-5-.42-5 5.46 0 2-.19 29.05.4 41.45.11 2.29 1.15 3.52 3.44 3.65 22 1.21 14.95-1.65 18.79-6.34 1.83-2.24 2.76.84 2.76 1.08.35 13.62-4 12.39-5.19 12.4l-38.16-.19c-1.93-.23-2.06-3-.42-3.38 2-.48 4.94.4 5.13-2.8 1-15.87.57-44.65.34-47.81-.27-3.77-2.8-3.27-5.68-3.71-2.47-.38-2-3.22.34-3.22 1.45-.02 17.97-.03 23.09-.02zm-31.63-57.79c.07 4.08 2.86 3.46 6 3.58 2.61.1 2.53 3.41-.07 3.43-6.48 0-13.7 0-21.61-.06-3.84 0-3.38-3.35 0-3.37 4.49 0 3.24 1.61 3.41-45.54 0-5.08-3.27-3.54-4.72-4.23-2.58-1.23-1.36-3.09.41-3.15 1.29 0 20.19-.41 21.17.21s1.87 1.65-.42 2.86c-1 .52-3.86-.28-4.15 2.47 0 .21-.82 1.63-.07 43.8zm-36.91 274.27a2.93 2.93 0 0 0 3.26 0c17-9.79 182-103.57 197.42-112.51-.14-.43 11.26-.18-181.52-.27-1.22 0-1.57.37-1.53 1.56 0 .1 1.25 44.51 1.22 50.38a28.33 28.33 0 0 1-1.36 7.71c-.55 1.83.38-.5-13.5 32.23-.73 1.72-1 2.21-2-.08-4.19-10.34-8.28-20.72-12.57-31a23.6 23.6 0 0 1-2-10.79c.16-2.46.8-16.12 1.51-48 0-1.95 0-2-2-2h-183c2.58 1.63 178.32 102.57 196 112.76zm-90.9-188.75c0 2.4.36 2.79 2.76 3 11.54 1.17 21 3.74 25.64-7.32 6-14.46 2.66-34.41-12.48-38.84-2-.59-16-2.76-15.94 1.51.05 8.04.01 11.61.02 41.65zm105.75-15.05c0 2.13 1.07 38.68 1.09 39.13.34 9.94-25.58 5.77-25.23-2.59.08-2 1.37-37.42 1.1-39.43-14.1 7.44-14.42 40.21 6.44 48.8a17.9 17.9 0 0 0 22.39-7.07c4.91-7.76 6.84-29.47-5.43-39a2.53 2.53 0 0 1-.36.12zm-12.28-198c-9.83 0-9.73 14.75-.07 14.87s10.1-14.88.07-14.91zm-80.15 103.83c0 1.8.41 2.4 2.17 2.58 13.62 1.39 12.51-11 12.16-13.36-1.69-11.22-14.38-10.2-14.35-7.81.05 4.5-.03 13.68.02 18.59zm212.32 6.4l-6.1-15.84c-2.16 5.48-4.16 10.57-6.23 15.84z\"]\n};\nvar faCss3 = {\n prefix: 'fab',\n iconName: 'css3',\n icon: [512, 512, [], \"f13c\", \"M480 32l-64 368-223.3 80L0 400l19.6-94.8h82l-8 40.6L210 390.2l134.1-44.4 18.8-97.1H29.5l16-82h333.7l10.5-52.7H56.3l16.3-82H480z\"]\n};\nvar faCss3Alt = {\n prefix: 'fab',\n iconName: 'css3-alt',\n icon: [384, 512, [], \"f38b\", \"M0 32l34.9 395.8L192 480l157.1-52.2L384 32H0zm313.1 80l-4.8 47.3L193 208.6l-.3.1h111.5l-12.8 146.6-98.2 28.7-98.8-29.2-6.4-73.9h48.9l3.2 38.3 52.6 13.3 54.7-15.4 3.7-61.6-166.3-.5v-.1l-.2.1-3.6-46.3L193.1 162l6.5-2.7H76.7L70.9 112h242.2z\"]\n};\nvar faCuttlefish = {\n prefix: 'fab',\n iconName: 'cuttlefish',\n icon: [440, 512, [], \"f38c\", \"M344 305.5c-17.5 31.6-57.4 54.5-96 54.5-56.6 0-104-47.4-104-104s47.4-104 104-104c38.6 0 78.5 22.9 96 54.5 13.7-50.9 41.7-93.3 87-117.8C385.7 39.1 320.5 8 248 8 111 8 0 119 0 256s111 248 248 248c72.5 0 137.7-31.1 183-80.7-45.3-24.5-73.3-66.9-87-117.8z\"]\n};\nvar faDAndD = {\n prefix: 'fab',\n iconName: 'd-and-d',\n icon: [576, 512, [], \"f38d\", \"M82.5 98.9c-.6-17.2 2-33.8 12.7-48.2.3 7.4 1.2 14.5 4.2 21.6 5.9-27.5 19.7-49.3 42.3-65.5-1.9 5.9-3.5 11.8-3 17.7 8.7-7.4 18.8-17.8 44.4-22.7 14.7-2.8 29.7-2 42.1 1 38.5 9.3 61 34.3 69.7 72.3 5.3 23.1.7 45-8.3 66.4-5.2 12.4-12 24.4-20.7 35.1-2-1.9-3.9-3.8-5.8-5.6-42.8-40.8-26.8-25.2-37.4-37.4-1.1-1.2-1-2.2-.1-3.6 8.3-13.5 11.8-28.2 10-44-1.1-9.8-4.3-18.9-11.3-26.2-14.5-15.3-39.2-15-53.5.6-11.4 12.5-14.1 27.4-10.9 43.6.2 1.3.4 2.7 0 3.9-3.4 13.7-4.6 27.6-2.5 41.6.1.5.1 1.1.1 1.6 0 .3-.1.5-.2 1.1-21.8-11-36-28.3-43.2-52.2-8.3 17.8-11.1 35.5-6.6 54.1-15.6-15.2-21.3-34.3-22-55.2zm469.6 123.2c-11.6-11.6-25-20.4-40.1-26.6-12.8-5.2-26-7.9-39.9-7.1-10 .6-19.6 3.1-29 6.4-2.5.9-5.1 1.6-7.7 2.2-4.9 1.2-7.3-3.1-4.7-6.8 3.2-4.6 3.4-4.2 15-12 .6-.4 1.2-.8 2.2-1.5h-2.5c-.6 0-1.2.2-1.9.3-19.3 3.3-30.7 15.5-48.9 29.6-10.4 8.1-13.8 3.8-12-.5 1.4-3.5 3.3-6.7 5.1-10 1-1.8 2.3-3.4 3.5-5.1-.2-.2-.5-.3-.7-.5-27 18.3-46.7 42.4-57.7 73.3.3.3.7.6 1 .9.3-.6.5-1.2.9-1.7 10.4-12.1 22.8-21.8 36.6-29.8 18.2-10.6 37.5-18.3 58.7-20.2 4.3-.4 8.7-.1 13.1-.1-1.8.7-3.5.9-5.3 1.1-18.5 2.4-35.5 9-51.5 18.5-30.2 17.9-54.5 42.2-75.1 70.4-.3.4-.4.9-.7 1.3 14.5 5.3 24 17.3 36.1 25.6.2-.1.3-.2.4-.4l1.2-2.7c12.2-26.9 27-52.3 46.7-74.5 16.7-18.8 38-25.3 62.5-20 5.9 1.3 11.4 4.4 17.2 6.8 2.3-1.4 5.1-3.2 8-4.7 8.4-4.3 17.4-7 26.7-9 14.7-3.1 29.5-4.9 44.5-1.3v-.5c-.5-.4-1.2-.8-1.7-1.4zM316.7 397.6c-39.4-33-22.8-19.5-42.7-35.6-.8.9 0-.2-1.9 3-11.2 19.1-25.5 35.3-44 47.6-10.3 6.8-21.5 11.8-34.1 11.8-21.6 0-38.2-9.5-49.4-27.8-12-19.5-13.3-40.7-8.2-62.6 7.8-33.8 30.1-55.2 38.6-64.3-18.7-6.2-33 1.7-46.4 13.9.8-13.9 4.3-26.2 11.8-37.3-24.3 10.6-45.9 25-64.8 43.9-.3-5.8 5.4-43.7 5.6-44.7.3-2.7-.6-5.3-3-7.4-24.2 24.7-44.5 51.8-56.1 84.6 7.4-5.9 14.9-11.4 23.6-16.2-8.3 22.3-19.6 52.8-7.8 101.1 4.6 19 11.9 36.8 24.1 52.3 2.9 3.7 6.3 6.9 9.5 10.3.2-.2.4-.3.6-.5-1.4-7-2.2-14.1-1.5-21.9 2.2 3.2 3.9 6 5.9 8.6 12.6 16 28.7 27.4 47.2 35.6 25 11.3 51.1 13.3 77.9 8.6 54.9-9.7 90.7-48.6 116-98.8 1-1.8.6-2.9-.9-4.2zm172-46.4c-9.5-3.1-22.2-4.2-28.7-2.9 9.9 4 14.1 6.6 18.8 12 12.6 14.4 10.4 34.7-5.4 45.6-11.7 8.1-24.9 10.5-38.9 9.1-1.2-.1-2.3-.4-3-.6 2.8-3.7 6-7 8.1-10.8 9.4-16.8 5.4-42.1-8.7-56.1-2.1-2.1-4.6-3.9-7-5.9-.3 1.3-.1 2.1.1 2.8 4.2 16.6-8.1 32.4-24.8 31.8-7.6-.3-13.9-3.8-19.6-8.5-19.5-16.1-39.1-32.1-58.5-48.3-5.9-4.9-12.5-8.1-20.1-8.7-4.6-.4-9.3-.6-13.9-.9-5.9-.4-8.8-2.8-10.4-8.4-.9-3.4-1.5-6.8-2.2-10.2-1.5-8.1-6.2-13-14.3-14.2-4.4-.7-8.9-1-13.3-1.5-13-1.4-19.8-7.4-22.6-20.3-5 11-1.6 22.4 7.3 29.9 4.5 3.8 9.3 7.3 13.8 11.2 4.6 3.8 7.4 8.7 7.9 14.8.4 4.7.8 9.5 1.8 14.1 2.2 10.6 8.9 18.4 17 25.1 16.5 13.7 33 27.3 49.5 41.1 17.9 15 13.9 32.8 13 56-.9 22.9 12.2 42.9 33.5 51.2 1 .4 2 .6 3.6 1.1-15.7-18.2-10.1-44.1.7-52.3.3 2.2.4 4.3.9 6.4 9.4 44.1 45.4 64.2 85 56.9 16-2.9 30.6-8.9 42.9-19.8 2-1.8 3.7-4.1 5.9-6.5-19.3 4.6-35.8.1-50.9-10.6.7-.3 1.3-.3 1.9-.3 21.3 1.8 40.6-3.4 57-17.4 19.5-16.6 26.6-42.9 17.4-66-8.3-20.1-23.6-32.3-43.8-38.9zM99.4 179.3c-5.3-9.2-13.2-15.6-22.1-21.3 13.7-.5 26.6.2 39.6 3.7-7-12.2-8.5-24.7-5-38.7 5.3 11.9 13.7 20.1 23.6 26.8 19.7 13.2 35.7 19.6 46.7 30.2 3.4 3.3 6.3 7.1 9.6 10.9-.8-2.1-1.4-4.1-2.2-6-5-10.6-13-18.6-22.6-25-1.8-1.2-2.8-2.5-3.4-4.5-3.3-12.5-3-25.1-.7-37.6 1-5.5 2.8-10.9 4.5-16.3.8-2.4 2.3-4.6 4-6.6.6 6.9 0 25.5 19.6 46 10.8 11.3 22.4 21.9 33.9 32.7 9 8.5 18.3 16.7 25.5 26.8 1.1 1.6 2.2 3.3 3.8 4.7-5-13-14.2-24.1-24.2-33.8-9.6-9.3-19.4-18.4-29.2-27.4-3.3-3-4.6-6.7-5.1-10.9-1.2-10.4 0-20.6 4.3-30.2.5-1 1.1-2 1.9-3.3.5 4.2.6 7.9 1.4 11.6 4.8 23.1 20.4 36.3 49.3 63.5 10 9.4 19.3 19.2 25.6 31.6 4.8 9.3 7.3 19 5.7 29.6-.1.6.5 1.7 1.1 2 6.2 2.6 10 6.9 9.7 14.3 7.7-2.6 12.5-8 16.4-14.5 4.2 20.2-9.1 50.3-27.2 58.7.4-4.5 5-23.4-16.5-27.7-6.8-1.3-12.8-1.3-22.9-2.1 4.7-9 10.4-20.6.5-22.4-24.9-4.6-52.8 1.9-57.8 4.6 8.2.4 16.3 1 23.5 3.3-2 6.5-4 12.7-5.8 18.9-1.9 6.5 2.1 14.6 9.3 9.6 1.2-.9 2.3-1.9 3.3-2.7-3.1 17.9-2.9 15.9-2.8 18.3.3 10.2 9.5 7.8 15.7 7.3-2.5 11.8-29.5 27.3-45.4 25.8 7-4.7 12.7-10.3 15.9-17.9-6.5.8-12.9 1.6-19.2 2.4l-.3-.9c4.7-3.4 8-7.8 10.2-13.1 8.7-21.1-3.6-38-25-39.9-9.1-.8-17.8.8-25.9 5.5 6.2-15.6 17.2-26.6 32.6-34.5-15.2-4.3-8.9-2.7-24.6-6.3 14.6-9.3 30.2-13.2 46.5-14.6-5.2-3.2-48.1-3.6-70.2 20.9 7.9 1.4 15.5 2.8 23.2 4.2-23.8 7-44 19.7-62.4 35.6 1.1-4.8 2.7-9.5 3.3-14.3.6-4.5.8-9.2.1-13.6-1.5-9.4-8.9-15.1-19.7-16.3-7.9-.9-15.6.1-23.3 1.3-.9.1-1.7.3-2.9 0 15.8-14.8 36-21.7 53.1-33.5 6-4.5 6.8-8.2 3-14.9zm128.4 26.8c3.3 16 12.6 25.5 23.8 24.3-4.6-11.3-12.1-19.5-23.8-24.3z\"]\n};\nvar faDAndDBeyond = {\n prefix: 'fab',\n iconName: 'd-and-d-beyond',\n icon: [640, 512, [], \"f6ca\", \"M313.8 241.5c13.8 0 21-10.1 24.8-17.9-1-1.1-5-4.2-7.4-6.6-2.4 4.3-8.2 10.7-13.9 10.7-10.2 0-15.4-14.7-3.2-26.6-.5-.2-4.3-1.8-8 2.4 0-3 1-5.1 2.1-6.6-3.5 1.3-9.8 5.6-11.4 7.9.2-5.8 1.6-7.5.6-9l-.2-.2s-8.5 5.6-9.3 14.7c0 0 1.1-1.6 2.1-1.9.6-.3 1.3 0 .6 1.9-.2.6-5.8 15.7 5.1 26-.6-1.6-1.9-7.6 2.4-1.9-.3.1 5.8 7.1 15.7 7.1zm52.4-21.1c0-4-4.9-4.4-5.6-4.5 2 3.9.9 7.5.2 9 2.5-.4 5.4-1.6 5.4-4.5zm10.3 5.2c0-6.4-6.2-11.4-13.5-10.7 8 1.3 5.6 13.8-5 11.4 3.7-2.6 3.2-9.9-1.3-12.5 1.4 4.2-3 8.2-7.4 4.6-2.4-1.9-8-6.6-10.6-8.6-2.4-2.1-5.5-1-6.6-1.8-1.3-1.1-.5-3.8-2.2-5-1.6-.8-3-.3-4.8-1-1.6-.6-2.7-1.9-2.6-3.5-2.5 4.4 3.4 6.3 4.5 8.5 1 1.9-.8 4.8 4 8.5 14.8 11.6 9.1 8 10.4 18.1.6 4.3 4.2 6.7 6.4 7.4-2.1-1.9-2.9-6.4 0-9.3 0 13.9 19.2 13.3 23.1 6.4-2.4 1.1-7-.2-9-1.9 7.7 1 14.2-4.1 14.6-10.6zm-39.4-18.4c2 .8 1.6.7 6.4 4.5 10.2-24.5 21.7-15.7 22-15.5 2.2-1.9 9.8-3.8 13.8-2.7-2.4-2.7-7.5-6.2-13.3-6.2-4.7 0-7.4 2.2-8 1.3-.8-1.4 3.2-3.4 3.2-3.4-5.4.2-9.6 6.7-11.2 5.9-1.1-.5 1.4-3.7 1.4-3.7-5.1 2.9-9.3 9.1-10.2 13 4.6-5.8 13.8-9.8 19.7-9-10.5.5-19.5 9.7-23.8 15.8zm242.5 51.9c-20.7 0-40 1.3-50.3 2.1l7.4 8.2v77.2l-7.4 8.2c10.4.8 30.9 2.1 51.6 2.1 42.1 0 59.1-20.7 59.1-48.9 0-29.3-23.2-48.9-60.4-48.9zm-15.1 75.6v-53.3c30.1-3.3 46.8 3.8 46.8 26.3 0 25.6-21.4 30.2-46.8 27zM301.6 181c-1-3.4-.2-6.9 1.1-9.4 1 3 2.6 6.4 7.5 9-.5-2.4-.2-5.6.5-8-1.4-5.4 2.1-9.9 6.4-9.9 6.9 0 8.5 8.8 4.7 14.4 2.1 3.2 5.5 5.6 7.7 7.8 3.2-3.7 5.5-9.5 5.5-13.8 0-8.2-5.5-15.9-16.7-16.5-20-.9-20.2 16.6-20 18.9.5 5.2 3.4 7.8 3.3 7.5zm-.4 6c-.5 1.8-7 3.7-10.2 6.9 4.8-1 7-.2 7.8 1.8.5 1.4-.2 3.4-.5 5.6 1.6-1.8 7-5.5 11-6.2-1-.3-3.4-.8-4.3-.8 2.9-3.4 9.3-4.5 12.8-3.7-2.2-.2-6.7 1.1-8.5 2.6 1.6.3 3 .6 4.3 1.1-2.1.8-4.8 3.4-5.8 6.1 7-5 13.1 5.2 7 8.2.8.2 2.7 0 3.5-.5-.3 1.1-1.9 3-3 3.4 2.9 0 7-1.9 8.2-4.6 0 0-1.8.6-2.6-.2s.3-4.3.3-4.3c-2.3 2.9-3.4-1.3-1.3-4.2-1-.3-3.5-.6-4.6-.5 3.2-1.1 10.4-1.8 11.2-.3.6 1.1-1 3.4-1 3.4 4-.5 8.3 1.1 6.7 5.1 2.9-1.4 5.5-5.9 4.8-10.4-.3 1-1.6 2.4-2.9 2.7.2-1.4-1-2.2-1.9-2.6 1.7-9.6-14.6-14.2-14.1-23.9-1 1.3-1.8 5-.8 7.1 2.7 3.2 8.7 6.7 10.1 12.2-2.6-6.4-15.1-11.4-14.6-20.2-1.6 1.6-2.6 7.8-1.3 11 2.4 1.4 4.5 3.8 4.8 6.1-2.2-5.1-11.4-6.1-13.9-12.2-.6 2.2-.3 5 1 6.7 0 0-2.2-.8-7-.6 1.7.6 5.1 3.5 4.8 5.2zm25.9 7.4c-2.7 0-3.5-2.1-4.2-4.3 3.3 1.3 4.2 4.3 4.2 4.3zm38.9 3.7l-1-.6c-1.1-1-2.9-1.4-4.7-1.4-2.9 0-5.8 1.3-7.5 3.4-.8.8-1.4 1.8-2.1 2.6v15.7c3.5 2.6 7.1-2.9 3-7.2 1.5.3 4.6 2.7 5.1 3.2 0 0 2.6-.5 5-.5 2.1 0 3.9.3 5.6 1.1V196c-1.1.5-2.2 1-2.7 1.4zM79.9 305.9c17.2-4.6 16.2-18 16.2-19.9 0-20.6-24.1-25-37-25H3l8.3 8.6v29.5H0l11.4 14.6V346L3 354.6c61.7 0 73.8 1.5 86.4-5.9 6.7-4 9.9-9.8 9.9-17.6 0-5.1 2.6-18.8-19.4-25.2zm-41.3-27.5c20 0 29.6-.8 29.6 9.1v3c0 12.1-19 8.8-29.6 8.8zm0 59.2V315c12.2 0 32.7-2.3 32.7 8.8v4.5h.2c0 11.2-12.5 9.3-32.9 9.3zm101.2-19.3l23.1.2v-.2l14.1-21.2h-37.2v-14.9h52.4l-14.1-21v-.2l-73.5.2 7.4 8.2v77.1l-7.4 8.2h81.2l14.1-21.2-60.1.2zm214.7-60.1c-73.9 0-77.5 99.3-.3 99.3 77.9 0 74.1-99.3.3-99.3zm-.3 77.5c-37.4 0-36.9-55.3.2-55.3 36.8.1 38.8 55.3-.2 55.3zm-91.3-8.3l44.1-66.2h-41.7l6.1 7.2-20.5 37.2h-.3l-21-37.2 6.4-7.2h-44.9l44.1 65.8.2 19.4-7.7 8.2h42.6l-7.2-8.2zm-28.4-151.3c1.6 1.3 2.9 2.4 2.9 6.6v38.8c0 4.2-.8 5.3-2.7 6.4-.1.1-7.5 4.5-7.9 4.6h35.1c10 0 17.4-1.5 26-8.6-.6-5 .2-9.5.8-12 0-.2-1.8 1.4-2.7 3.5 0-5.7 1.6-15.4 9.6-20.5-.1 0-3.7-.8-9 1.1 2-3.1 10-7.9 10.4-7.9-8.2-26-38-22.9-32.2-22.9-30.9 0-32.6.3-39.9-4 .1.8.5 8.2 9.6 14.9zm21.5 5.5c4.6 0 23.1-3.3 23.1 17.3 0 20.7-18.4 17.3-23.1 17.3zm228.9 79.6l7 8.3V312h-.3c-5.4-14.4-42.3-41.5-45.2-50.9h-31.6l7.4 8.5v76.9l-7.2 8.3h39l-7.4-8.2v-47.4h.3c3.7 10.6 44.5 42.9 48.5 55.6h21.3v-85.2l7.4-8.3zm-106.7-96.1c-32.2 0-32.8.2-39.9-4 .1.7.5 8.3 9.6 14.9 3.1 2 2.9 4.3 2.9 9.5 1.8-1.1 3.8-2.2 6.1-3-1.1 1.1-2.7 2.7-3.5 4.5 1-1.1 7.5-5.1 14.6-3.5-1.6.3-4 1.1-6.1 2.9.1 0 2.1-1.1 7.5-.3v-4.3c4.7 0 23.1-3.4 23.1 17.3 0 20.5-18.5 17.3-19.7 17.3 5.7 4.4 5.8 12 2.2 16.3h.3c33.4 0 36.7-27.3 36.7-34 0-3.8-1.1-32-33.8-33.6z\"]\n};\nvar faDailymotion = {\n prefix: 'fab',\n iconName: 'dailymotion',\n icon: [448, 512, [], \"e052\", \"M298.93,267a48.4,48.4,0,0,0-24.36-6.21q-19.83,0-33.44,13.27t-13.61,33.42q0,21.16,13.28,34.6t33.43,13.44q20.5,0,34.11-13.78T322,307.47A47.13,47.13,0,0,0,315.9,284,44.13,44.13,0,0,0,298.93,267ZM0,32V480H448V32ZM374.71,405.26h-53.1V381.37h-.67q-15.79,26.2-55.78,26.2-27.56,0-48.89-13.1a88.29,88.29,0,0,1-32.94-35.77q-11.6-22.68-11.59-50.89,0-27.56,11.76-50.22a89.9,89.9,0,0,1,32.93-35.78q21.18-13.09,47.72-13.1a80.87,80.87,0,0,1,29.74,5.21q13.28,5.21,25,17V153l55.79-12.09Z\"]\n};\nvar faDashcube = {\n prefix: 'fab',\n iconName: 'dashcube',\n icon: [448, 512, [], \"f210\", \"M326.6 104H110.4c-51.1 0-91.2 43.3-91.2 93.5V427c0 50.5 40.1 85 91.2 85h227.2c51.1 0 91.2-34.5 91.2-85V0L326.6 104zM153.9 416.5c-17.7 0-32.4-15.1-32.4-32.8V240.8c0-17.7 14.7-32.5 32.4-32.5h140.7c17.7 0 32 14.8 32 32.5v123.5l51.1 52.3H153.9z\"]\n};\nvar faDeezer = {\n prefix: 'fab',\n iconName: 'deezer',\n icon: [576, 512, [], \"e077\", \"M451.46,244.71H576V172H451.46Zm0-173.89v72.67H576V70.82Zm0,275.06H576V273.2H451.46ZM0,447.09H124.54V374.42H0Zm150.47,0H275V374.42H150.47Zm150.52,0H425.53V374.42H301Zm150.47,0H576V374.42H451.46ZM301,345.88H425.53V273.2H301Zm-150.52,0H275V273.2H150.47Zm0-101.17H275V172H150.47Z\"]\n};\nvar faDelicious = {\n prefix: 'fab',\n iconName: 'delicious',\n icon: [448, 512, [], \"f1a5\", \"M446.5 68c-.4-1.5-.9-3-1.4-4.5-.9-2.5-2-4.8-3.3-7.1-1.4-2.4-3-4.8-4.7-6.9-2.1-2.5-4.4-4.8-6.9-6.8-1.1-.9-2.2-1.7-3.3-2.5-1.3-.9-2.6-1.7-4-2.4-1.8-1-3.6-1.8-5.5-2.5-1.7-.7-3.5-1.3-5.4-1.7-3.8-1-7.9-1.5-12-1.5H48C21.5 32 0 53.5 0 80v352c0 4.1.5 8.2 1.5 12 2 7.7 5.8 14.6 11 20.3 1 1.1 2.1 2.2 3.3 3.3 5.7 5.2 12.6 9 20.3 11 3.8 1 7.9 1.5 12 1.5h352c26.5 0 48-21.5 48-48V80c-.1-4.1-.6-8.2-1.6-12zM416 432c0 8.8-7.2 16-16 16H224V256H32V80c0-8.8 7.2-16 16-16h176v192h192z\"]\n};\nvar faDeploydog = {\n prefix: 'fab',\n iconName: 'deploydog',\n icon: [512, 512, [], \"f38e\", \"M382.2 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.6 0-33.2 16.4-33.2 32.6zM188.5 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.7 0-33.2 16.4-33.2 32.6zM448 96c17.5 0 32 14.4 32 32v256c0 17.5-14.4 32-32 32H64c-17.5 0-32-14.4-32-32V128c0-17.5 14.4-32 32-32h384m0-32H64C28.8 64 0 92.8 0 128v256c0 35.2 28.8 64 64 64h384c35.2 0 64-28.8 64-64V128c0-35.2-28.8-64-64-64z\"]\n};\nvar faDeskpro = {\n prefix: 'fab',\n iconName: 'deskpro',\n icon: [480, 512, [], \"f38f\", \"M205.9 512l31.1-38.4c12.3-.2 25.6-1.4 36.5-6.6 38.9-18.6 38.4-61.9 38.3-63.8-.1-5-.8-4.4-28.9-37.4H362c-.2 50.1-7.3 68.5-10.2 75.7-9.4 23.7-43.9 62.8-95.2 69.4-8.7 1.1-32.8 1.2-50.7 1.1zm200.4-167.7c38.6 0 58.5-13.6 73.7-30.9l-175.5-.3-17.4 31.3 119.2-.1zm-43.6-223.9v168.3h-73.5l-32.7 55.5H250c-52.3 0-58.1-56.5-58.3-58.9-1.2-13.2-21.3-11.6-20.1 1.8 1.4 15.8 8.8 40 26.4 57.1h-91c-25.5 0-110.8-26.8-107-114V16.9C0 .9 9.7.3 15 .1h82c.2 0 .3.1.5.1 4.3-.4 50.1-2.1 50.1 43.7 0 13.3 20.2 13.4 20.2 0 0-18.2-5.5-32.8-15.8-43.7h84.2c108.7-.4 126.5 79.4 126.5 120.2zm-132.5 56l64 29.3c13.3-45.5-42.2-71.7-64-29.3z\"]\n};\nvar faDev = {\n prefix: 'fab',\n iconName: 'dev',\n icon: [448, 512, [], \"f6cc\", \"M120.12 208.29c-3.88-2.9-7.77-4.35-11.65-4.35H91.03v104.47h17.45c3.88 0 7.77-1.45 11.65-4.35 3.88-2.9 5.82-7.25 5.82-13.06v-69.65c-.01-5.8-1.96-10.16-5.83-13.06zM404.1 32H43.9C19.7 32 .06 51.59 0 75.8v360.4C.06 460.41 19.7 480 43.9 480h360.2c24.21 0 43.84-19.59 43.9-43.8V75.8c-.06-24.21-19.7-43.8-43.9-43.8zM154.2 291.19c0 18.81-11.61 47.31-48.36 47.25h-46.4V172.98h47.38c35.44 0 47.36 28.46 47.37 47.28l.01 70.93zm100.68-88.66H201.6v38.42h32.57v29.57H201.6v38.41h53.29v29.57h-62.18c-11.16.29-20.44-8.53-20.72-19.69V193.7c-.27-11.15 8.56-20.41 19.71-20.69h63.19l-.01 29.52zm103.64 115.29c-13.2 30.75-36.85 24.63-47.44 0l-38.53-144.8h32.57l29.71 113.72 29.57-113.72h32.58l-38.46 144.8z\"]\n};\nvar faDeviantart = {\n prefix: 'fab',\n iconName: 'deviantart',\n icon: [320, 512, [], \"f1bd\", \"M320 93.2l-98.2 179.1 7.4 9.5H320v127.7H159.1l-13.5 9.2-43.7 84c-.3 0-8.6 8.6-9.2 9.2H0v-93.2l93.2-179.4-7.4-9.2H0V102.5h156l13.5-9.2 43.7-84c.3 0 8.6-8.6 9.2-9.2H320v93.1z\"]\n};\nvar faDhl = {\n prefix: 'fab',\n iconName: 'dhl',\n icon: [640, 512, [], \"f790\", \"M238 301.2h58.7L319 271h-58.7L238 301.2zM0 282.9v6.4h81.8l4.7-6.4H0zM172.9 271c-8.7 0-6-3.6-4.6-5.5 2.8-3.8 7.6-10.4 10.4-14.1 2.8-3.7 2.8-5.9-2.8-5.9h-51l-41.1 55.8h100.1c33.1 0 51.5-22.5 57.2-30.3h-68.2zm317.5-6.9l39.3-53.4h-62.2l-39.3 53.4h62.2zM95.3 271H0v6.4h90.6l4.7-6.4zm111-26.6c-2.8 3.8-7.5 10.4-10.3 14.2-1.4 2-4.1 5.5 4.6 5.5h45.6s7.3-10 13.5-18.4c8.4-11.4.7-35-29.2-35H112.6l-20.4 27.8h111.4c5.6 0 5.5 2.2 2.7 5.9zM0 301.2h73.1l4.7-6.4H0v6.4zm323 0h58.7L404 271h-58.7c-.1 0-22.3 30.2-22.3 30.2zm222 .1h95v-6.4h-90.3l-4.7 6.4zm22.3-30.3l-4.7 6.4H640V271h-72.7zm-13.5 18.3H640v-6.4h-81.5l-4.7 6.4zm-164.2-78.6l-22.5 30.6h-26.2l22.5-30.6h-58.7l-39.3 53.4H409l39.3-53.4h-58.7zm33.5 60.3s-4.3 5.9-6.4 8.7c-7.4 10-.9 21.6 23.2 21.6h94.3l22.3-30.3H423.1z\"]\n};\nvar faDiaspora = {\n prefix: 'fab',\n iconName: 'diaspora',\n icon: [512, 512, [], \"f791\", \"M251.64 354.55c-1.4 0-88 119.9-88.7 119.9S76.34 414 76 413.25s86.6-125.7 86.6-127.4c0-2.2-129.6-44-137.6-47.1-1.3-.5 31.4-101.8 31.7-102.1.6-.7 144.4 47 145.5 47 .4 0 .9-.6 1-1.3.4-2 1-148.6 1.7-149.6.8-1.2 104.5-.7 105.1-.3 1.5 1 3.5 156.1 6.1 156.1 1.4 0 138.7-47 139.3-46.3.8.9 31.9 102.2 31.5 102.6-.9.9-140.2 47.1-140.6 48.8-.3 1.4 82.8 122.1 82.5 122.9s-85.5 63.5-86.3 63.5c-1-.2-89-125.5-90.9-125.5z\"]\n};\nvar faDigg = {\n prefix: 'fab',\n iconName: 'digg',\n icon: [512, 512, [], \"f1a6\", \"M81.7 172.3H0v174.4h132.7V96h-51v76.3zm0 133.4H50.9v-92.3h30.8v92.3zm297.2-133.4v174.4h81.8v28.5h-81.8V416H512V172.3H378.9zm81.8 133.4h-30.8v-92.3h30.8v92.3zm-235.6 41h82.1v28.5h-82.1V416h133.3V172.3H225.1v174.4zm51.2-133.3h30.8v92.3h-30.8v-92.3zM153.3 96h51.3v51h-51.3V96zm0 76.3h51.3v174.4h-51.3V172.3z\"]\n};\nvar faDigitalOcean = {\n prefix: 'fab',\n iconName: 'digital-ocean',\n icon: [512, 512, [], \"f391\", \"M87 481.8h73.7v-73.6H87zM25.4 346.6v61.6H87v-61.6zm466.2-169.7c-23-74.2-82.4-133.3-156.6-156.6C164.9-32.8 8 93.7 8 255.9h95.8c0-101.8 101-180.5 208.1-141.7 39.7 14.3 71.5 46.1 85.8 85.7 39.1 107-39.7 207.8-141.4 208v.3h-.3V504c162.6 0 288.8-156.8 235.6-327.1zm-235.3 231v-95.3h-95.6v95.6H256v-.3z\"]\n};\nvar faDiscord = {\n prefix: 'fab',\n iconName: 'discord',\n icon: [640, 512, [], \"f392\", \"M524.531,69.836a1.5,1.5,0,0,0-.764-.7A485.065,485.065,0,0,0,404.081,32.03a1.816,1.816,0,0,0-1.923.91,337.461,337.461,0,0,0-14.9,30.6,447.848,447.848,0,0,0-134.426,0,309.541,309.541,0,0,0-15.135-30.6,1.89,1.89,0,0,0-1.924-.91A483.689,483.689,0,0,0,116.085,69.137a1.712,1.712,0,0,0-.788.676C39.068,183.651,18.186,294.69,28.43,404.354a2.016,2.016,0,0,0,.765,1.375A487.666,487.666,0,0,0,176.02,479.918a1.9,1.9,0,0,0,2.063-.676A348.2,348.2,0,0,0,208.12,430.4a1.86,1.86,0,0,0-1.019-2.588,321.173,321.173,0,0,1-45.868-21.853,1.885,1.885,0,0,1-.185-3.126c3.082-2.309,6.166-4.711,9.109-7.137a1.819,1.819,0,0,1,1.9-.256c96.229,43.917,200.41,43.917,295.5,0a1.812,1.812,0,0,1,1.924.233c2.944,2.426,6.027,4.851,9.132,7.16a1.884,1.884,0,0,1-.162,3.126,301.407,301.407,0,0,1-45.89,21.83,1.875,1.875,0,0,0-1,2.611,391.055,391.055,0,0,0,30.014,48.815,1.864,1.864,0,0,0,2.063.7A486.048,486.048,0,0,0,610.7,405.729a1.882,1.882,0,0,0,.765-1.352C623.729,277.594,590.933,167.465,524.531,69.836ZM222.491,337.58c-28.972,0-52.844-26.587-52.844-59.239S193.056,219.1,222.491,219.1c29.665,0,53.306,26.82,52.843,59.239C275.334,310.993,251.924,337.58,222.491,337.58Zm195.38,0c-28.971,0-52.843-26.587-52.843-59.239S388.437,219.1,417.871,219.1c29.667,0,53.307,26.82,52.844,59.239C470.715,310.993,447.538,337.58,417.871,337.58Z\"]\n};\nvar faDiscourse = {\n prefix: 'fab',\n iconName: 'discourse',\n icon: [448, 512, [], \"f393\", \"M225.9 32C103.3 32 0 130.5 0 252.1 0 256 .1 480 .1 480l225.8-.2c122.7 0 222.1-102.3 222.1-223.9C448 134.3 348.6 32 225.9 32zM224 384c-19.4 0-37.9-4.3-54.4-12.1L88.5 392l22.9-75c-9.8-18.1-15.4-38.9-15.4-61 0-70.7 57.3-128 128-128s128 57.3 128 128-57.3 128-128 128z\"]\n};\nvar faDochub = {\n prefix: 'fab',\n iconName: 'dochub',\n icon: [416, 512, [], \"f394\", \"M397.9 160H256V19.6L397.9 160zM304 192v130c0 66.8-36.5 100.1-113.3 100.1H96V84.8h94.7c12 0 23.1.8 33.1 2.5v-84C212.9 1.1 201.4 0 189.2 0H0v512h189.2C329.7 512 400 447.4 400 318.1V192h-96z\"]\n};\nvar faDocker = {\n prefix: 'fab',\n iconName: 'docker',\n icon: [640, 512, [], \"f395\", \"M349.9 236.3h-66.1v-59.4h66.1v59.4zm0-204.3h-66.1v60.7h66.1V32zm78.2 144.8H362v59.4h66.1v-59.4zm-156.3-72.1h-66.1v60.1h66.1v-60.1zm78.1 0h-66.1v60.1h66.1v-60.1zm276.8 100c-14.4-9.7-47.6-13.2-73.1-8.4-3.3-24-16.7-44.9-41.1-63.7l-14-9.3-9.3 14c-18.4 27.8-23.4 73.6-3.7 103.8-8.7 4.7-25.8 11.1-48.4 10.7H2.4c-8.7 50.8 5.8 116.8 44 162.1 37.1 43.9 92.7 66.2 165.4 66.2 157.4 0 273.9-72.5 328.4-204.2 21.4.4 67.6.1 91.3-45.2 1.5-2.5 6.6-13.2 8.5-17.1l-13.3-8.9zm-511.1-27.9h-66v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm-78.1-72.1h-66.1v60.1h66.1v-60.1z\"]\n};\nvar faDraft2digital = {\n prefix: 'fab',\n iconName: 'draft2digital',\n icon: [480, 512, [], \"f396\", \"M480 398.1l-144-82.2v64.7h-91.3c30.8-35 81.8-95.9 111.8-149.3 35.2-62.6 16.1-123.4-12.8-153.3-4.4-4.6-62.2-62.9-166-41.2-59.1 12.4-89.4 43.4-104.3 67.3-13.1 20.9-17 39.8-18.2 47.7-5.5 33 19.4 67.1 56.7 67.1 31.7 0 57.3-25.7 57.3-57.4 0-27.1-19.7-52.1-48-56.8 1.8-7.3 17.7-21.1 26.3-24.7 41.1-17.3 78 5.2 83.3 33.5 8.3 44.3-37.1 90.4-69.7 127.6C84.5 328.1 18.3 396.8 0 415.9l336-.1V480zM369.9 371l47.1 27.2-47.1 27.2zM134.2 161.4c0 12.4-10 22.4-22.4 22.4s-22.4-10-22.4-22.4 10-22.4 22.4-22.4 22.4 10.1 22.4 22.4zM82.5 380.5c25.6-27.4 97.7-104.7 150.8-169.9 35.1-43.1 40.3-82.4 28.4-112.7-7.4-18.8-17.5-30.2-24.3-35.7 45.3 2.1 68 23.4 82.2 38.3 0 0 42.4 48.2 5.8 113.3-37 65.9-110.9 147.5-128.5 166.7z\"]\n};\nvar faDribbble = {\n prefix: 'fab',\n iconName: 'dribbble',\n icon: [512, 512, [], \"f17d\", \"M256 8C119.252 8 8 119.252 8 256s111.252 248 248 248 248-111.252 248-248S392.748 8 256 8zm163.97 114.366c29.503 36.046 47.369 81.957 47.835 131.955-6.984-1.477-77.018-15.682-147.502-6.818-5.752-14.041-11.181-26.393-18.617-41.614 78.321-31.977 113.818-77.482 118.284-83.523zM396.421 97.87c-3.81 5.427-35.697 48.286-111.021 76.519-34.712-63.776-73.185-116.168-79.04-124.008 67.176-16.193 137.966 1.27 190.061 47.489zm-230.48-33.25c5.585 7.659 43.438 60.116 78.537 122.509-99.087 26.313-186.36 25.934-195.834 25.809C62.38 147.205 106.678 92.573 165.941 64.62zM44.17 256.323c0-2.166.043-4.322.108-6.473 9.268.19 111.92 1.513 217.706-30.146 6.064 11.868 11.857 23.915 17.174 35.949-76.599 21.575-146.194 83.527-180.531 142.306C64.794 360.405 44.17 310.73 44.17 256.323zm81.807 167.113c22.127-45.233 82.178-103.622 167.579-132.756 29.74 77.283 42.039 142.053 45.189 160.638-68.112 29.013-150.015 21.053-212.768-27.882zm248.38 8.489c-2.171-12.886-13.446-74.897-41.152-151.033 66.38-10.626 124.7 6.768 131.947 9.055-9.442 58.941-43.273 109.844-90.795 141.978z\"]\n};\nvar faDribbbleSquare = {\n prefix: 'fab',\n iconName: 'dribbble-square',\n icon: [448, 512, [], \"f397\", \"M90.2 228.2c8.9-42.4 37.4-77.7 75.7-95.7 3.6 4.9 28 38.8 50.7 79-64 17-120.3 16.8-126.4 16.7zM314.6 154c-33.6-29.8-79.3-41.1-122.6-30.6 3.8 5.1 28.6 38.9 51 80 48.6-18.3 69.1-45.9 71.6-49.4zM140.1 364c40.5 31.6 93.3 36.7 137.3 18-2-12-10-53.8-29.2-103.6-55.1 18.8-93.8 56.4-108.1 85.6zm98.8-108.2c-3.4-7.8-7.2-15.5-11.1-23.2C159.6 253 93.4 252.2 87.4 252c0 1.4-.1 2.8-.1 4.2 0 35.1 13.3 67.1 35.1 91.4 22.2-37.9 67.1-77.9 116.5-91.8zm34.9 16.3c17.9 49.1 25.1 89.1 26.5 97.4 30.7-20.7 52.5-53.6 58.6-91.6-4.6-1.5-42.3-12.7-85.1-5.8zm-20.3-48.4c4.8 9.8 8.3 17.8 12 26.8 45.5-5.7 90.7 3.4 95.2 4.4-.3-32.3-11.8-61.9-30.9-85.1-2.9 3.9-25.8 33.2-76.3 53.9zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-64 176c0-88.2-71.8-160-160-160S64 167.8 64 256s71.8 160 160 160 160-71.8 160-160z\"]\n};\nvar faDropbox = {\n prefix: 'fab',\n iconName: 'dropbox',\n icon: [528, 512, [], \"f16b\", \"M264.4 116.3l-132 84.3 132 84.3-132 84.3L0 284.1l132.3-84.3L0 116.3 132.3 32l132.1 84.3zM131.6 395.7l132-84.3 132 84.3-132 84.3-132-84.3zm132.8-111.6l132-84.3-132-83.6L395.7 32 528 116.3l-132.3 84.3L528 284.8l-132.3 84.3-131.3-85z\"]\n};\nvar faDrupal = {\n prefix: 'fab',\n iconName: 'drupal',\n icon: [448, 512, [], \"f1a9\", \"M319.5 114.7c-22.2-14-43.5-19.5-64.7-33.5-13-8.8-31.3-30-46.5-48.3-2.7 29.3-11.5 41.2-22 49.5-21.3 17-34.8 22.2-53.5 32.3C117 123 32 181.5 32 290.5 32 399.7 123.8 480 225.8 480 327.5 480 416 406 416 294c0-112.3-83-171-96.5-179.3zm2.5 325.6c-20.1 20.1-90.1 28.7-116.7 4.2-4.8-4.8.3-12 6.5-12 0 0 17 13.3 51.5 13.3 27 0 46-7.7 54.5-14 6.1-4.6 8.4 4.3 4.2 8.5zm-54.5-52.6c8.7-3.6 29-3.8 36.8 1.3 4.1 2.8 16.1 18.8 6.2 23.7-8.4 4.2-1.2-15.7-26.5-15.7-14.7 0-19.5 5.2-26.7 11-7 6-9.8 8-12.2 4.7-6-8.2 15.9-22.3 22.4-25zM360 405c-15.2-1-45.5-48.8-65-49.5-30.9-.9-104.1 80.7-161.3 42-38.8-26.6-14.6-104.8 51.8-105.2 49.5-.5 83.8 49 108.5 48.5 21.3-.3 61.8-41.8 81.8-41.8 48.7 0 23.3 109.3-15.8 106z\"]\n};\nvar faDyalog = {\n prefix: 'fab',\n iconName: 'dyalog',\n icon: [416, 512, [], \"f399\", \"M0 32v119.2h64V96h107.2C284.6 96 352 176.2 352 255.9 352 332 293.4 416 171.2 416H0v64h171.2C331.9 480 416 367.3 416 255.9c0-58.7-22.1-113.4-62.3-154.3C308.9 56 245.7 32 171.2 32H0z\"]\n};\nvar faEarlybirds = {\n prefix: 'fab',\n iconName: 'earlybirds',\n icon: [480, 512, [], \"f39a\", \"M313.2 47.5c1.2-13 21.3-14 36.6-8.7.9.3 26.2 9.7 19 15.2-27.9-7.4-56.4 18.2-55.6-6.5zm-201 6.9c30.7-8.1 62 20 61.1-7.1-1.3-14.2-23.4-15.3-40.2-9.6-1 .3-28.7 10.5-20.9 16.7zM319.4 160c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-159.7 0c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm318.5 163.2c-9.9 24-40.7 11-63.9-1.2-13.5 69.1-58.1 111.4-126.3 124.2.3.9-2-.1 24 1 33.6 1.4 63.8-3.1 97.4-8-19.8-13.8-11.4-37.1-9.8-38.1 1.4-.9 14.7 1.7 21.6 11.5 8.6-12.5 28.4-14.8 30.2-13.6 1.6 1.1 6.6 20.9-6.9 34.6 4.7-.9 8.2-1.6 9.8-2.1 2.6-.8 17.7 11.3 3.1 13.3-14.3 2.3-22.6 5.1-47.1 10.8-45.9 10.7-85.9 11.8-117.7 12.8l1 11.6c3.8 18.1-23.4 24.3-27.6 6.2.8 17.9-27.1 21.8-28.4-1l-.5 5.3c-.7 18.4-28.4 17.9-28.3-.6-7.5 13.5-28.1 6.8-26.4-8.5l1.2-12.4c-36.7.9-59.7 3.1-61.8 3.1-20.9 0-20.9-31.6 0-31.6 2.4 0 27.7 1.3 63.2 2.8-61.1-15.5-103.7-55-114.9-118.2-25 12.8-57.5 26.8-68.2.8-10.5-25.4 21.5-42.6 66.8-73.4.7-6.6 1.6-13.3 2.7-19.8-14.4-19.6-11.6-36.3-16.1-60.4-16.8 2.4-23.2-9.1-23.6-23.1.3-7.3 2.1-14.9 2.4-15.4 1.1-1.8 10.1-2 12.7-2.6 6-31.7 50.6-33.2 90.9-34.5 19.7-21.8 45.2-41.5 80.9-48.3C203.3 29 215.2 8.5 216.2 8c1.7-.8 21.2 4.3 26.3 23.2 5.2-8.8 18.3-11.4 19.6-10.7 1.1.6 6.4 15-4.9 25.9 40.3 3.5 72.2 24.7 96 50.7 36.1 1.5 71.8 5.9 77.1 34 2.7.6 11.6.8 12.7 2.6.3.5 2.1 8.1 2.4 15.4-.5 13.9-6.8 25.4-23.6 23.1-3.2 17.3-2.7 32.9-8.7 47.7 2.4 11.7 4 23.8 4.8 36.4 37 25.4 70.3 42.5 60.3 66.9zM207.4 159.9c.9-44-37.9-42.2-78.6-40.3-21.7 1-38.9 1.9-45.5 13.9-11.4 20.9 5.9 92.9 23.2 101.2 9.8 4.7 73.4 7.9 86.3-7.1 8.2-9.4 15-49.4 14.6-67.7zm52 58.3c-4.3-12.4-6-30.1-15.3-32.7-2-.5-9-.5-11 0-10 2.8-10.8 22.1-17 37.2 15.4 0 19.3 9.7 23.7 9.7 4.3 0 6.3-11.3 19.6-14.2zm135.7-84.7c-6.6-12.1-24.8-12.9-46.5-13.9-40.2-1.9-78.2-3.8-77.3 40.3-.5 18.3 5 58.3 13.2 67.8 13 14.9 76.6 11.8 86.3 7.1 15.8-7.6 36.5-78.9 24.3-101.3z\"]\n};\nvar faEbay = {\n prefix: 'fab',\n iconName: 'ebay',\n icon: [640, 512, [], \"f4f4\", \"M606 189.5l-54.8 109.9-54.9-109.9h-37.5l10.9 20.6c-11.5-19-35.9-26-63.3-26-31.8 0-67.9 8.7-71.5 43.1h33.7c1.4-13.8 15.7-21.8 35-21.8 26 0 41 9.6 41 33v3.4c-12.7 0-28 .1-41.7.4-42.4.9-69.6 10-76.7 34.4 1-5.2 1.5-10.6 1.5-16.2 0-52.1-39.7-76.2-75.4-76.2-21.3 0-43 5.5-58.7 24.2v-80.6h-32.1v169.5c0 10.3-.6 22.9-1.1 33.1h31.5c.7-6.3 1.1-12.9 1.1-19.5 13.6 16.6 35.4 24.9 58.7 24.9 36.9 0 64.9-21.9 73.3-54.2-.5 2.8-.7 5.8-.7 9 0 24.1 21.1 45 60.6 45 26.6 0 45.8-5.7 61.9-25.5 0 6.6.3 13.3 1.1 20.2h29.8c-.7-8.2-1-17.5-1-26.8v-65.6c0-9.3-1.7-17.2-4.8-23.8l61.5 116.1-28.5 54.1h35.9L640 189.5zM243.7 313.8c-29.6 0-50.2-21.5-50.2-53.8 0-32.4 20.6-53.8 50.2-53.8 29.8 0 50.2 21.4 50.2 53.8 0 32.3-20.4 53.8-50.2 53.8zm200.9-47.3c0 30-17.9 48.4-51.6 48.4-25.1 0-35-13.4-35-25.8 0-19.1 18.1-24.4 47.2-25.3 13.1-.5 27.6-.6 39.4-.6zm-411.9 1.6h128.8v-8.5c0-51.7-33.1-75.4-78.4-75.4-56.8 0-83 30.8-83 77.6 0 42.5 25.3 74 82.5 74 31.4 0 68-11.7 74.4-46.1h-33.1c-12 35.8-87.7 36.7-91.2-21.6zm95-21.4H33.3c6.9-56.6 92.1-54.7 94.4 0z\"]\n};\nvar faEdge = {\n prefix: 'fab',\n iconName: 'edge',\n icon: [512, 512, [], \"f282\", \"M481.92,134.48C440.87,54.18,352.26,8,255.91,8,137.05,8,37.51,91.68,13.47,203.66c26-46.49,86.22-79.14,149.46-79.14,79.27,0,121.09,48.93,122.25,50.18,22,23.8,33,50.39,33,83.1,0,10.4-5.31,25.82-15.11,38.57-1.57,2-6.39,4.84-6.39,11,0,5.06,3.29,9.92,9.14,14,27.86,19.37,80.37,16.81,80.51,16.81A115.39,115.39,0,0,0,444.94,322a118.92,118.92,0,0,0,58.95-102.44C504.39,176.13,488.39,147.26,481.92,134.48ZM212.77,475.67a154.88,154.88,0,0,1-46.64-45c-32.94-47.42-34.24-95.6-20.1-136A155.5,155.5,0,0,1,203,215.75c59-45.2,94.84-5.65,99.06-1a80,80,0,0,0-4.89-10.14c-9.24-15.93-24-36.41-56.56-53.51-33.72-17.69-70.59-18.59-77.64-18.59-38.71,0-77.9,13-107.53,35.69C35.68,183.3,12.77,208.72,8.6,243c-1.08,12.31-2.75,62.8,23,118.27a248,248,0,0,0,248.3,141.61C241.78,496.26,214.05,476.24,212.77,475.67Zm250.72-98.33a7.76,7.76,0,0,0-7.92-.23,181.66,181.66,0,0,1-20.41,9.12,197.54,197.54,0,0,1-69.55,12.52c-91.67,0-171.52-63.06-171.52-144A61.12,61.12,0,0,1,200.61,228,168.72,168.72,0,0,0,161.85,278c-14.92,29.37-33,88.13,13.33,151.66,6.51,8.91,23,30,56,47.67,23.57,12.65,49,19.61,71.7,19.61,35.14,0,115.43-33.44,163-108.87A7.75,7.75,0,0,0,463.49,377.34Z\"]\n};\nvar faEdgeLegacy = {\n prefix: 'fab',\n iconName: 'edge-legacy',\n icon: [512, 512, [], \"e078\", \"M25.71,228.16l.35-.48c0,.16,0,.32-.07.48Zm460.58,15.51c0-44-7.76-84.46-28.81-122.4C416.5,47.88,343.91,8,258.89,8,119,7.72,40.62,113.21,26.06,227.68c42.42-61.31,117.07-121.38,220.37-125,0,0,109.67,0,99.42,105H170c6.37-37.39,18.55-59,34.34-78.93-75.05,34.9-121.85,96.1-120.75,188.32.83,71.45,50.13,144.84,120.75,172,83.35,31.84,192.77,7.2,240.13-21.33V363.31C363.6,419.8,173.6,424.23,172.21,295.74H486.29V243.67Z\"]\n};\nvar faElementor = {\n prefix: 'fab',\n iconName: 'elementor',\n icon: [448, 512, [], \"f430\", \"M425.6 32H22.4C10 32 0 42 0 54.4v403.2C0 470 10 480 22.4 480h403.2c12.4 0 22.4-10 22.4-22.4V54.4C448 42 438 32 425.6 32M164.3 355.5h-39.8v-199h39.8v199zm159.3 0H204.1v-39.8h119.5v39.8zm0-79.6H204.1v-39.8h119.5v39.8zm0-79.7H204.1v-39.8h119.5v39.8z\"]\n};\nvar faEllo = {\n prefix: 'fab',\n iconName: 'ello',\n icon: [496, 512, [], \"f5f1\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm143.84 285.2C375.31 358.51 315.79 404.8 248 404.8s-127.31-46.29-143.84-111.6c-1.65-7.44 2.48-15.71 9.92-17.36 7.44-1.65 15.71 2.48 17.36 9.92 14.05 52.91 62 90.11 116.56 90.11s102.51-37.2 116.56-90.11c1.65-7.44 9.92-12.4 17.36-9.92 7.44 1.65 12.4 9.92 9.92 17.36z\"]\n};\nvar faEmber = {\n prefix: 'fab',\n iconName: 'ember',\n icon: [640, 512, [], \"f423\", \"M639.9 254.6c-1.1-10.7-10.7-6.8-10.7-6.8s-15.6 12.1-29.3 10.7c-13.7-1.3-9.4-32-9.4-32s3-28.1-5.1-30.4c-8.1-2.4-18 7.3-18 7.3s-12.4 13.7-18.3 31.2l-1.6.5s1.9-30.6-.3-37.6c-1.6-3.5-16.4-3.2-18.8 3s-14.2 49.2-15 67.2c0 0-23.1 19.6-43.3 22.8s-25-9.4-25-9.4 54.8-15.3 52.9-59.1-44.2-27.6-49-24c-4.6 3.5-29.4 18.4-36.6 59.7-.2 1.4-.7 7.5-.7 7.5s-21.2 14.2-33 18c0 0 33-55.6-7.3-80.9-11.4-6.8-21.3-.5-27.2 5.3 13.6-17.3 46.4-64.2 36.9-105.2-5.8-24.4-18-27.1-29.2-23.1-17 6.7-23.5 16.7-23.5 16.7s-22 32-27.1 79.5-12.6 105.1-12.6 105.1-10.5 10.2-20.2 10.7-5.4-28.7-5.4-28.7 7.5-44.6 7-52.1-1.1-11.6-9.9-14.2c-8.9-2.7-18.5 8.6-18.5 8.6s-25.5 38.7-27.7 44.6l-1.3 2.4-1.3-1.6s18-52.7.8-53.5-28.5 18.8-28.5 18.8-19.6 32.8-20.4 36.5l-1.3-1.6s8.1-38.2 6.4-47.6c-1.6-9.4-10.5-7.5-10.5-7.5s-11.3-1.3-14.2 5.9-13.7 55.3-15 70.7c0 0-28.2 20.2-46.8 20.4-18.5.3-16.7-11.8-16.7-11.8s68-23.3 49.4-69.2c-8.3-11.8-18-15.5-31.7-15.3-13.7.3-30.3 8.6-41.3 33.3-5.3 11.8-6.8 23-7.8 31.5 0 0-12.3 2.4-18.8-2.9s-10 0-10 0-11.2 14-.1 18.3 28.1 6.1 28.1 6.1c1.6 7.5 6.2 19.5 19.6 29.7 20.2 15.3 58.8-1.3 58.8-1.3l15.9-8.8s.5 14.6 12.1 16.7 16.4 1 36.5-47.9c11.8-25 12.6-23.6 12.6-23.6l1.3-.3s-9.1 46.8-5.6 59.7C187.7 319.4 203 318 203 318s8.3 2.4 15-21.2 19.6-49.9 19.6-49.9h1.6s-5.6 48.1 3 63.7 30.9 5.3 30.9 5.3 15.6-7.8 18-10.2c0 0 18.5 15.8 44.6 12.9 58.3-11.5 79.1-25.9 79.1-25.9s10 24.4 41.1 26.7c35.5 2.7 54.8-18.6 54.8-18.6s-.3 13.5 12.1 18.6 20.7-22.8 20.7-22.8l20.7-57.2h1.9s1.1 37.3 21.5 43.2 47-13.7 47-13.7 6.4-3.5 5.3-14.3zm-578 5.3c.8-32 21.8-45.9 29-39 7.3 7 4.6 22-9.1 31.4-13.7 9.5-19.9 7.6-19.9 7.6zm272.8-123.8s19.1-49.7 23.6-25.5-40 96.2-40 96.2c.5-16.2 16.4-70.7 16.4-70.7zm22.8 138.4c-12.6 33-43.3 19.6-43.3 19.6s-3.5-11.8 6.4-44.9 33.3-20.2 33.3-20.2 16.2 12.4 3.6 45.5zm84.6-14.6s-3-10.5 8.1-30.6c11-20.2 19.6-9.1 19.6-9.1s9.4 10.2-1.3 25.5-26.4 14.2-26.4 14.2z\"]\n};\nvar faEmpire = {\n prefix: 'fab',\n iconName: 'empire',\n icon: [496, 512, [], \"f1d1\", \"M287.6 54.2c-10.8-2.2-22.1-3.3-33.5-3.6V32.4c78.1 2.2 146.1 44 184.6 106.6l-15.8 9.1c-6.1-9.7-12.7-18.8-20.2-27.1l-18 15.5c-26-29.6-61.4-50.7-101.9-58.4l4.8-23.9zM53.4 322.4l23-7.7c-6.4-18.3-10-38.2-10-58.7s3.3-40.4 9.7-58.7l-22.7-7.7c3.6-10.8 8.3-21.3 13.6-31l-15.8-9.1C34 181 24.1 217.5 24.1 256s10 75 27.1 106.6l15.8-9.1c-5.3-10-9.7-20.3-13.6-31.1zM213.1 434c-40.4-8-75.8-29.1-101.9-58.7l-18 15.8c-7.5-8.6-14.4-17.7-20.2-27.4l-16 9.4c38.5 62.3 106.8 104.3 184.9 106.6v-18.3c-11.3-.3-22.7-1.7-33.5-3.6l4.7-23.8zM93.3 120.9l18 15.5c26-29.6 61.4-50.7 101.9-58.4l-4.7-23.8c10.8-2.2 22.1-3.3 33.5-3.6V32.4C163.9 34.6 95.9 76.4 57.4 139l15.8 9.1c6-9.7 12.6-18.9 20.1-27.2zm309.4 270.2l-18-15.8c-26 29.6-61.4 50.7-101.9 58.7l4.7 23.8c-10.8 1.9-22.1 3.3-33.5 3.6v18.3c78.1-2.2 146.4-44.3 184.9-106.6l-16.1-9.4c-5.7 9.7-12.6 18.8-20.1 27.4zM496 256c0 137-111 248-248 248S0 393 0 256 111 8 248 8s248 111 248 248zm-12.2 0c0-130.1-105.7-235.8-235.8-235.8S12.2 125.9 12.2 256 117.9 491.8 248 491.8 483.8 386.1 483.8 256zm-39-106.6l-15.8 9.1c5.3 9.7 10 20.2 13.6 31l-22.7 7.7c6.4 18.3 9.7 38.2 9.7 58.7s-3.6 40.4-10 58.7l23 7.7c-3.9 10.8-8.3 21-13.6 31l15.8 9.1C462 331 471.9 294.5 471.9 256s-9.9-75-27.1-106.6zm-183 177.7c16.3-3.3 30.4-11.6 40.7-23.5l51.2 44.8c11.9-13.6 21.3-29.3 27.1-46.8l-64.2-22.1c2.5-7.5 3.9-15.2 3.9-23.5s-1.4-16.1-3.9-23.5l64.5-22.1c-6.1-17.4-15.5-33.2-27.4-46.8l-51.2 44.8c-10.2-11.9-24.4-20.5-40.7-23.8l13.3-66.4c-8.6-1.9-17.7-2.8-27.1-2.8-9.4 0-18.5.8-27.1 2.8l13.3 66.4c-16.3 3.3-30.4 11.9-40.7 23.8l-51.2-44.8c-11.9 13.6-21.3 29.3-27.4 46.8l64.5 22.1c-2.5 7.5-3.9 15.2-3.9 23.5s1.4 16.1 3.9 23.5l-64.2 22.1c5.8 17.4 15.2 33.2 27.1 46.8l51.2-44.8c10.2 11.9 24.4 20.2 40.7 23.5l-13.3 66.7c8.6 1.7 17.7 2.8 27.1 2.8 9.4 0 18.5-1.1 27.1-2.8l-13.3-66.7z\"]\n};\nvar faEnvira = {\n prefix: 'fab',\n iconName: 'envira',\n icon: [448, 512, [], \"f299\", \"M0 32c477.6 0 366.6 317.3 367.1 366.3L448 480h-26l-70.4-71.2c-39 4.2-124.4 34.5-214.4-37C47 300.3 52 214.7 0 32zm79.7 46c-49.7-23.5-5.2 9.2-5.2 9.2 45.2 31.2 66 73.7 90.2 119.9 31.5 60.2 79 139.7 144.2 167.7 65 28 34.2 12.5 6-8.5-28.2-21.2-68.2-87-91-130.2-31.7-60-61-118.6-144.2-158.1z\"]\n};\nvar faErlang = {\n prefix: 'fab',\n iconName: 'erlang',\n icon: [640, 512, [], \"f39d\", \"M87.2 53.5H0v405h100.4c-49.7-52.6-78.8-125.3-78.7-212.1-.1-76.7 24-142.7 65.5-192.9zm238.2 9.7c-45.9.1-85.1 33.5-89.2 83.2h169.9c-1.1-49.7-34.5-83.1-80.7-83.2zm230.7-9.6h.3l-.1-.1zm.3 0c31.4 42.7 48.7 97.5 46.2 162.7.5 6 .5 11.7 0 24.1H230.2c-.2 109.7 38.9 194.9 138.6 195.3 68.5-.3 118-51 151.9-106.1l96.4 48.2c-17.4 30.9-36.5 57.8-57.9 80.8H640v-405z\"]\n};\nvar faEthereum = {\n prefix: 'fab',\n iconName: 'ethereum',\n icon: [320, 512, [], \"f42e\", \"M311.9 260.8L160 353.6 8 260.8 160 0l151.9 260.8zM160 383.4L8 290.6 160 512l152-221.4-152 92.8z\"]\n};\nvar faEtsy = {\n prefix: 'fab',\n iconName: 'etsy',\n icon: [384, 512, [], \"f2d7\", \"M384 348c-1.75 10.75-13.75 110-15.5 132-117.879-4.299-219.895-4.743-368.5 0v-25.5c45.457-8.948 60.627-8.019 61-35.25 1.793-72.322 3.524-244.143 0-322-1.029-28.46-12.13-26.765-61-36v-25.5c73.886 2.358 255.933 8.551 362.999-3.75-3.5 38.25-7.75 126.5-7.75 126.5H332C320.947 115.665 313.241 68 277.25 68h-137c-10.25 0-10.75 3.5-10.75 9.75V241.5c58 .5 88.5-2.5 88.5-2.5 29.77-.951 27.56-8.502 40.75-65.251h25.75c-4.407 101.351-3.91 61.829-1.75 160.25H257c-9.155-40.086-9.065-61.045-39.501-61.5 0 0-21.5-2-88-2v139c0 26 14.25 38.25 44.25 38.25H263c63.636 0 66.564-24.996 98.751-99.75H384z\"]\n};\nvar faEvernote = {\n prefix: 'fab',\n iconName: 'evernote',\n icon: [384, 512, [], \"f839\", \"M120.82 132.21c1.6 22.31-17.55 21.59-21.61 21.59-68.93 0-73.64-1-83.58 3.34-.56.22-.74 0-.37-.37L123.79 46.45c.38-.37.6-.22.38.37-4.35 9.99-3.35 15.09-3.35 85.39zm79 308c-14.68-37.08 13-76.93 52.52-76.62 17.49 0 22.6 23.21 7.95 31.42-6.19 3.3-24.95 1.74-25.14 19.2-.05 17.09 19.67 25 31.2 24.89A45.64 45.64 0 0 0 312 393.45v-.08c0-11.63-7.79-47.22-47.54-55.34-7.72-1.54-65-6.35-68.35-50.52-3.74 16.93-17.4 63.49-43.11 69.09-8.74 1.94-69.68 7.64-112.92-36.77 0 0-18.57-15.23-28.23-57.95-3.38-15.75-9.28-39.7-11.14-62 0-18 11.14-30.45 25.07-32.2 81 0 90 2.32 101-7.8 9.82-9.24 7.8-15.5 7.8-102.78 1-8.3 7.79-30.81 53.41-24.14 6 .86 31.91 4.18 37.48 30.64l64.26 11.15c20.43 3.71 70.94 7 80.6 57.94 22.66 121.09 8.91 238.46 7.8 238.46C362.15 485.53 267.06 480 267.06 480c-18.95-.23-54.25-9.4-67.27-39.83zm80.94-204.84c-1 1.92-2.2 6 .85 7 14.09 4.93 39.75 6.84 45.88 5.53 3.11-.25 3.05-4.43 2.48-6.65-3.53-21.85-40.83-26.5-49.24-5.92z\"]\n};\nvar faExpeditedssl = {\n prefix: 'fab',\n iconName: 'expeditedssl',\n icon: [496, 512, [], \"f23e\", \"M248 43.4C130.6 43.4 35.4 138.6 35.4 256S130.6 468.6 248 468.6 460.6 373.4 460.6 256 365.4 43.4 248 43.4zm-97.4 132.9c0-53.7 43.7-97.4 97.4-97.4s97.4 43.7 97.4 97.4v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6c0-82.1-124-82.1-124 0v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6zM389.7 380c0 9.7-8 17.7-17.7 17.7H124c-9.7 0-17.7-8-17.7-17.7V238.3c0-9.7 8-17.7 17.7-17.7h248c9.7 0 17.7 8 17.7 17.7V380zm-248-137.3v132.9c0 2.5-1.9 4.4-4.4 4.4h-8.9c-2.5 0-4.4-1.9-4.4-4.4V242.7c0-2.5 1.9-4.4 4.4-4.4h8.9c2.5 0 4.4 1.9 4.4 4.4zm141.7 48.7c0 13-7.2 24.4-17.7 30.4v31.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-31.6c-10.5-6.1-17.7-17.4-17.7-30.4 0-19.7 15.8-35.4 35.4-35.4s35.5 15.8 35.5 35.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 478.3C121 486.3 17.7 383 17.7 256S121 25.7 248 25.7 478.3 129 478.3 256 375 486.3 248 486.3z\"]\n};\nvar faFacebook = {\n prefix: 'fab',\n iconName: 'facebook',\n icon: [512, 512, [], \"f09a\", \"M504 256C504 119 393 8 256 8S8 119 8 256c0 123.78 90.69 226.38 209.25 245V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.28c-30.8 0-40.41 19.12-40.41 38.73V256h68.78l-11 71.69h-57.78V501C413.31 482.38 504 379.78 504 256z\"]\n};\nvar faFacebookF = {\n prefix: 'fab',\n iconName: 'facebook-f',\n icon: [320, 512, [], \"f39e\", \"M279.14 288l14.22-92.66h-88.91v-60.13c0-25.35 12.42-50.06 52.24-50.06h40.42V6.26S260.43 0 225.36 0c-73.22 0-121.08 44.38-121.08 124.72v70.62H22.89V288h81.39v224h100.17V288z\"]\n};\nvar faFacebookMessenger = {\n prefix: 'fab',\n iconName: 'facebook-messenger',\n icon: [512, 512, [], \"f39f\", \"M256.55 8C116.52 8 8 110.34 8 248.57c0 72.3 29.71 134.78 78.07 177.94 8.35 7.51 6.63 11.86 8.05 58.23A19.92 19.92 0 0 0 122 502.31c52.91-23.3 53.59-25.14 62.56-22.7C337.85 521.8 504 423.7 504 248.57 504 110.34 396.59 8 256.55 8zm149.24 185.13l-73 115.57a37.37 37.37 0 0 1-53.91 9.93l-58.08-43.47a15 15 0 0 0-18 0l-78.37 59.44c-10.46 7.93-24.16-4.6-17.11-15.67l73-115.57a37.36 37.36 0 0 1 53.91-9.93l58.06 43.46a15 15 0 0 0 18 0l78.41-59.38c10.44-7.98 24.14 4.54 17.09 15.62z\"]\n};\nvar faFacebookSquare = {\n prefix: 'fab',\n iconName: 'facebook-square',\n icon: [448, 512, [], \"f082\", \"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h137.25V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.27c-30.81 0-40.42 19.12-40.42 38.73V256h68.78l-11 71.69h-57.78V480H400a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48z\"]\n};\nvar faFantasyFlightGames = {\n prefix: 'fab',\n iconName: 'fantasy-flight-games',\n icon: [512, 512, [], \"f6dc\", \"M256 32.86L32.86 256 256 479.14 479.14 256 256 32.86zM88.34 255.83c1.96-2 11.92-12.3 96.49-97.48 41.45-41.75 86.19-43.77 119.77-18.69 24.63 18.4 62.06 58.9 62.15 59 .68.74 1.07 2.86.58 3.38-11.27 11.84-22.68 23.54-33.5 34.69-34.21-32.31-40.52-38.24-48.51-43.95-17.77-12.69-41.4-10.13-56.98 5.1-2.17 2.13-1.79 3.43.12 5.35 2.94 2.95 28.1 28.33 35.09 35.78-11.95 11.6-23.66 22.97-35.69 34.66-12.02-12.54-24.48-25.53-36.54-38.11-21.39 21.09-41.69 41.11-61.85 60.99a42569.01 42569.01 0 0 1-41.13-40.72zm234.82 101.6c-35.49 35.43-78.09 38.14-106.99 20.47-22.08-13.5-39.38-32.08-72.93-66.84 12.05-12.37 23.79-24.42 35.37-36.31 33.02 31.91 37.06 36.01 44.68 42.09 18.48 14.74 42.52 13.67 59.32-1.8 3.68-3.39 3.69-3.64.14-7.24-10.59-10.73-21.19-21.44-31.77-32.18-1.32-1.34-3.03-2.48-.8-4.69 10.79-10.71 21.48-21.52 32.21-32.29.26-.26.65-.38 1.91-1.07 12.37 12.87 24.92 25.92 37.25 38.75 21.01-20.73 41.24-40.68 61.25-60.42 13.68 13.4 27.13 26.58 40.86 40.03-20.17 20.86-81.68 82.71-100.5 101.5zM256 0L0 256l256 256 256-256L256 0zM16 256L256 16l240 240-240 240L16 256z\"]\n};\nvar faFedex = {\n prefix: 'fab',\n iconName: 'fedex',\n icon: [640, 512, [], \"f797\", \"M586 284.5l53.3-59.9h-62.4l-21.7 24.8-22.5-24.8H414v-16h56.1v-48.1H318.9V236h-.5c-9.6-11-21.5-14.8-35.4-14.8-28.4 0-49.8 19.4-57.3 44.9-18-59.4-97.4-57.6-121.9-14v-24.2H49v-26.2h60v-41.1H0V345h49v-77.5h48.9c-1.5 5.7-2.3 11.8-2.3 18.2 0 73.1 102.6 91.4 130.2 23.7h-42c-14.7 20.9-45.8 8.9-45.8-14.6h85.5c3.7 30.5 27.4 56.9 60.1 56.9 14.1 0 27-6.9 34.9-18.6h.5V345h212.2l22.1-25 22.3 25H640l-54-60.5zm-446.7-16.6c6.1-26.3 41.7-25.6 46.5 0h-46.5zm153.4 48.9c-34.6 0-34-62.8 0-62.8 32.6 0 34.5 62.8 0 62.8zm167.8 19.1h-94.4V169.4h95v30.2H405v33.9h55.5v28.1h-56.1v44.7h56.1v29.6zm-45.9-39.8v-24.4h56.1v-44l50.7 57-50.7 57v-45.6h-56.1zm138.6 10.3l-26.1 29.5H489l45.6-51.2-45.6-51.2h39.7l26.6 29.3 25.6-29.3h38.5l-45.4 51 46 51.4h-40.5l-26.3-29.5z\"]\n};\nvar faFedora = {\n prefix: 'fab',\n iconName: 'fedora',\n icon: [448, 512, [], \"f798\", \"M225 32C101.3 31.7.8 131.7.4 255.4L0 425.7a53.6 53.6 0 0 0 53.6 53.9l170.2.4c123.7.3 224.3-99.7 224.6-223.4S348.7 32.3 225 32zm169.8 157.2L333 126.6c2.3-4.7 3.8-9.2 3.8-14.3v-1.6l55.2 56.1a101 101 0 0 1 2.8 22.4zM331 94.3a106.06 106.06 0 0 1 58.5 63.8l-54.3-54.6a26.48 26.48 0 0 0-4.2-9.2zM118.1 247.2a49.66 49.66 0 0 0-7.7 11.4l-8.5-8.5a85.78 85.78 0 0 1 16.2-2.9zM97 251.4l11.8 11.9-.9 8a34.74 34.74 0 0 0 2.4 12.5l-27-27.2a80.6 80.6 0 0 1 13.7-5.2zm-18.2 7.4l38.2 38.4a53.17 53.17 0 0 0-14.1 4.7L67.6 266a107 107 0 0 1 11.2-7.2zm-15.2 9.8l35.3 35.5a67.25 67.25 0 0 0-10.5 8.5L53.5 278a64.33 64.33 0 0 1 10.1-9.4zm-13.3 12.3l34.9 35a56.84 56.84 0 0 0-7.7 11.4l-35.8-35.9c2.8-3.8 5.7-7.2 8.6-10.5zm-11 14.3l36.4 36.6a48.29 48.29 0 0 0-3.6 15.2l-39.5-39.8a99.81 99.81 0 0 1 6.7-12zm-8.8 16.3l41.3 41.8a63.47 63.47 0 0 0 6.7 26.2L25.8 326c1.4-4.9 2.9-9.6 4.7-14.5zm-7.9 43l61.9 62.2a31.24 31.24 0 0 0-3.6 14.3v1.1l-55.4-55.7a88.27 88.27 0 0 1-2.9-21.9zm5.3 30.7l54.3 54.6a28.44 28.44 0 0 0 4.2 9.2 106.32 106.32 0 0 1-58.5-63.8zm-5.3-37a80.69 80.69 0 0 1 2.1-17l72.2 72.5a37.59 37.59 0 0 0-9.9 8.7zm253.3-51.8l-42.6-.1-.1 56c-.2 69.3-64.4 115.8-125.7 102.9-5.7 0-19.9-8.7-19.9-24.2a24.89 24.89 0 0 1 24.5-24.6c6.3 0 6.3 1.6 15.7 1.6a55.91 55.91 0 0 0 56.1-55.9l.1-47c0-4.5-4.5-9-8.9-9l-33.6-.1c-32.6-.1-32.5-49.4.1-49.3l42.6.1.1-56a105.18 105.18 0 0 1 105.6-105 86.35 86.35 0 0 1 20.2 2.3c11.2 1.8 19.9 11.9 19.9 24 0 15.5-14.9 27.8-30.3 23.9-27.4-5.9-65.9 14.4-66 54.9l-.1 47a8.94 8.94 0 0 0 8.9 9l33.6.1c32.5.2 32.4 49.5-.2 49.4zm23.5-.3a35.58 35.58 0 0 0 7.6-11.4l8.5 8.5a102 102 0 0 1-16.1 2.9zm21-4.2L308.6 280l.9-8.1a34.74 34.74 0 0 0-2.4-12.5l27 27.2a74.89 74.89 0 0 1-13.7 5.3zm18-7.4l-38-38.4c4.9-1.1 9.6-2.4 13.7-4.7l36.2 35.9c-3.8 2.5-7.9 5-11.9 7.2zm15.5-9.8l-35.3-35.5a61.06 61.06 0 0 0 10.5-8.5l34.9 35a124.56 124.56 0 0 1-10.1 9zm13.2-12.3l-34.9-35a63.18 63.18 0 0 0 7.7-11.4l35.8 35.9a130.28 130.28 0 0 1-8.6 10.5zm11-14.3l-36.4-36.6a48.29 48.29 0 0 0 3.6-15.2l39.5 39.8a87.72 87.72 0 0 1-6.7 12zm13.5-30.9a140.63 140.63 0 0 1-4.7 14.3L345.6 190a58.19 58.19 0 0 0-7.1-26.2zm1-5.6l-71.9-72.1a32 32 0 0 0 9.9-9.2l64.3 64.7a90.93 90.93 0 0 1-2.3 16.6z\"]\n};\nvar faFigma = {\n prefix: 'fab',\n iconName: 'figma',\n icon: [384, 512, [], \"f799\", \"M14 95.7924C14 42.8877 56.8878 0 109.793 0H274.161C327.066 0 369.954 42.8877 369.954 95.7924C369.954 129.292 352.758 158.776 326.711 175.897C352.758 193.019 369.954 222.502 369.954 256.002C369.954 308.907 327.066 351.795 274.161 351.795H272.081C247.279 351.795 224.678 342.369 207.666 326.904V415.167C207.666 468.777 163.657 512 110.309 512C57.5361 512 14 469.243 14 416.207C14 382.709 31.1945 353.227 57.2392 336.105C31.1945 318.983 14 289.5 14 256.002C14 222.502 31.196 193.019 57.2425 175.897C31.196 158.776 14 129.292 14 95.7924ZM176.288 191.587H109.793C74.2172 191.587 45.3778 220.427 45.3778 256.002C45.3778 291.44 73.9948 320.194 109.381 320.416C109.518 320.415 109.655 320.415 109.793 320.415H176.288V191.587ZM207.666 256.002C207.666 291.577 236.505 320.417 272.081 320.417H274.161C309.737 320.417 338.576 291.577 338.576 256.002C338.576 220.427 309.737 191.587 274.161 191.587H272.081C236.505 191.587 207.666 220.427 207.666 256.002ZM109.793 351.795C109.655 351.795 109.518 351.794 109.381 351.794C73.9948 352.015 45.3778 380.769 45.3778 416.207C45.3778 451.652 74.6025 480.622 110.309 480.622C146.591 480.622 176.288 451.186 176.288 415.167V351.795H109.793ZM109.793 31.3778C74.2172 31.3778 45.3778 60.2173 45.3778 95.7924C45.3778 131.368 74.2172 160.207 109.793 160.207H176.288V31.3778H109.793ZM207.666 160.207H274.161C309.737 160.207 338.576 131.368 338.576 95.7924C338.576 60.2173 309.737 31.3778 274.161 31.3778H207.666V160.207Z\"]\n};\nvar faFirefox = {\n prefix: 'fab',\n iconName: 'firefox',\n icon: [512, 512, [], \"f269\", \"M503.52,241.48c-.12-1.56-.24-3.12-.24-4.68v-.12l-.36-4.68v-.12a245.86,245.86,0,0,0-7.32-41.15c0-.12,0-.12-.12-.24l-1.08-4c-.12-.24-.12-.48-.24-.6-.36-1.2-.72-2.52-1.08-3.72-.12-.24-.12-.6-.24-.84-.36-1.2-.72-2.4-1.08-3.48-.12-.36-.24-.6-.36-1-.36-1.2-.72-2.28-1.2-3.48l-.36-1.08c-.36-1.08-.84-2.28-1.2-3.36a8.27,8.27,0,0,0-.36-1c-.48-1.08-.84-2.28-1.32-3.36-.12-.24-.24-.6-.36-.84-.48-1.2-1-2.28-1.44-3.48,0-.12-.12-.24-.12-.36-1.56-3.84-3.24-7.68-5-11.4l-.36-.72c-.48-1-.84-1.8-1.32-2.64-.24-.48-.48-1.08-.72-1.56-.36-.84-.84-1.56-1.2-2.4-.36-.6-.6-1.2-1-1.8s-.84-1.44-1.2-2.28c-.36-.6-.72-1.32-1.08-1.92s-.84-1.44-1.2-2.16a18.07,18.07,0,0,0-1.2-2c-.36-.72-.84-1.32-1.2-2s-.84-1.32-1.2-2-.84-1.32-1.2-1.92-.84-1.44-1.32-2.16a15.63,15.63,0,0,0-1.2-1.8L463.2,119a15.63,15.63,0,0,0-1.2-1.8c-.48-.72-1.08-1.56-1.56-2.28-.36-.48-.72-1.08-1.08-1.56l-1.8-2.52c-.36-.48-.6-.84-1-1.32-1-1.32-1.8-2.52-2.76-3.72a248.76,248.76,0,0,0-23.51-26.64A186.82,186.82,0,0,0,412,62.46c-4-3.48-8.16-6.72-12.48-9.84a162.49,162.49,0,0,0-24.6-15.12c-2.4-1.32-4.8-2.52-7.2-3.72a254,254,0,0,0-55.43-19.56c-1.92-.36-3.84-.84-5.64-1.2h-.12c-1-.12-1.8-.36-2.76-.48a236.35,236.35,0,0,0-38-4H255.14a234.62,234.62,0,0,0-45.48,5c-33.59,7.08-63.23,21.24-82.91,39-1.08,1-1.92,1.68-2.4,2.16l-.48.48H124l-.12.12.12-.12a.12.12,0,0,0,.12-.12l-.12.12a.42.42,0,0,1,.24-.12c14.64-8.76,34.92-16,49.44-19.56l5.88-1.44c.36-.12.84-.12,1.2-.24,1.68-.36,3.36-.72,5.16-1.08.24,0,.6-.12.84-.12C250.94,20.94,319.34,40.14,367,85.61a171.49,171.49,0,0,1,26.88,32.76c30.36,49.2,27.48,111.11,3.84,147.59-34.44,53-111.35,71.27-159,24.84a84.19,84.19,0,0,1-25.56-59,74.05,74.05,0,0,1,6.24-31c1.68-3.84,13.08-25.67,18.24-24.59-13.08-2.76-37.55,2.64-54.71,28.19-15.36,22.92-14.52,58.2-5,83.28a132.85,132.85,0,0,1-12.12-39.24c-12.24-82.55,43.31-153,94.31-170.51-27.48-24-96.47-22.31-147.71,15.36-29.88,22-51.23,53.16-62.51,90.36,1.68-20.88,9.6-52.08,25.8-83.88-17.16,8.88-39,37-49.8,62.88-15.6,37.43-21,82.19-16.08,124.79.36,3.24.72,6.36,1.08,9.6,19.92,117.11,122,206.38,244.78,206.38C392.77,503.42,504,392.19,504,255,503.88,250.48,503.76,245.92,503.52,241.48Z\"]\n};\nvar faFirefoxBrowser = {\n prefix: 'fab',\n iconName: 'firefox-browser',\n icon: [512, 512, [], \"e007\", \"M189.37,152.86Zm-58.74-29.37C130.79,123.5,130.71,123.5,130.63,123.49Zm351.42,45.35c-10.61-25.5-32.08-53-48.94-61.73,13.72,26.89,21.67,53.88,24.7,74,0,0,0,.14.05.41-27.58-68.75-74.35-96.47-112.55-156.83-1.93-3.05-3.86-6.11-5.74-9.33-1-1.65-1.86-3.34-2.69-5.05A44.88,44.88,0,0,1,333.24.69a.63.63,0,0,0-.55-.66.9.9,0,0,0-.46,0l-.12.07-.18.1.1-.14c-54.23,31.77-76.72,87.38-82.5,122.78a130,130,0,0,0-48.33,12.33,6.25,6.25,0,0,0-3.09,7.75,6.13,6.13,0,0,0,7.79,3.79l.52-.21a117.84,117.84,0,0,1,42.11-11l1.42-.1c2-.12,4-.2,6-.22A122.61,122.61,0,0,1,291,140c.67.2,1.32.42,2,.63,1.89.57,3.76,1.2,5.62,1.87,1.36.5,2.71,1,4.05,1.58,1.09.44,2.18.88,3.25,1.35q2.52,1.13,5,2.35c.75.37,1.5.74,2.25,1.13q2.4,1.26,4.74,2.63,1.51.87,3,1.8a124.89,124.89,0,0,1,42.66,44.13c-13-9.15-36.35-18.19-58.82-14.28,87.74,43.86,64.18,194.9-57.39,189.2a108.43,108.43,0,0,1-31.74-6.12c-2.42-.91-4.8-1.89-7.16-2.93-1.38-.63-2.76-1.27-4.12-2C174.5,346,149.9,316.92,146.83,281.59c0,0,11.25-41.95,80.62-41.95,7.5,0,28.93-20.92,29.33-27-.09-2-42.54-18.87-59.09-35.18-8.85-8.71-13.05-12.91-16.77-16.06a69.58,69.58,0,0,0-6.31-4.77A113.05,113.05,0,0,1,173.92,97c-25.06,11.41-44.55,29.45-58.71,45.37h-.12c-9.67-12.25-9-52.65-8.43-61.08-.12-.53-7.22,3.68-8.15,4.31a178.54,178.54,0,0,0-23.84,20.43A214,214,0,0,0,51.9,133.36l0,0a.08.08,0,0,1,0,0,205.84,205.84,0,0,0-32.73,73.9c-.06.27-2.33,10.21-4,22.48q-.42,2.87-.78,5.74c-.57,3.69-1,7.71-1.44,14,0,.24,0,.48-.05.72-.18,2.71-.34,5.41-.49,8.12,0,.41,0,.82,0,1.24,0,134.7,109.21,243.89,243.92,243.89,120.64,0,220.82-87.58,240.43-202.62.41-3.12.74-6.26,1.11-9.41,4.85-41.83-.54-85.79-15.82-122.55Z\"]\n};\nvar faFirstOrder = {\n prefix: 'fab',\n iconName: 'first-order',\n icon: [448, 512, [], \"f2b0\", \"M12.9 229.2c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4h-.2zM224 96.6c-7.1 0-14.6.6-21.4 1.7l3.7 67.4-22-64c-14.3 3.7-27.7 9.4-40 16.6l29.4 61.4-45.1-50.9c-11.4 8.9-21.7 19.1-30.6 30.9l50.6 45.4-61.1-29.7c-7.1 12.3-12.9 25.7-16.6 40l64.3 22.6-68-4c-.9 7.1-1.4 14.6-1.4 22s.6 14.6 1.4 21.7l67.7-4-64 22.6c3.7 14.3 9.4 27.7 16.6 40.3l61.1-29.7L97.7 352c8.9 11.7 19.1 22.3 30.9 30.9l44.9-50.9-29.5 61.4c12.3 7.4 25.7 13.1 40 16.9l22.3-64.6-4 68c7.1 1.1 14.6 1.7 21.7 1.7 7.4 0 14.6-.6 21.7-1.7l-4-68.6 22.6 65.1c14.3-4 27.7-9.4 40-16.9L274.9 332l44.9 50.9c11.7-8.9 22-19.1 30.6-30.9l-50.6-45.1 61.1 29.4c7.1-12.3 12.9-25.7 16.6-40.3l-64-22.3 67.4 4c1.1-7.1 1.4-14.3 1.4-21.7s-.3-14.9-1.4-22l-67.7 4 64-22.3c-3.7-14.3-9.1-28-16.6-40.3l-60.9 29.7 50.6-45.4c-8.9-11.7-19.1-22-30.6-30.9l-45.1 50.9 29.4-61.1c-12.3-7.4-25.7-13.1-40-16.9L241.7 166l4-67.7c-7.1-1.2-14.3-1.7-21.7-1.7zM443.4 128v256L224 512 4.6 384V128L224 0l219.4 128zm-17.1 10.3L224 20.9 21.7 138.3v235.1L224 491.1l202.3-117.7V138.3zM224 37.1l187.7 109.4v218.9L224 474.9 36.3 365.4V146.6L224 37.1zm0 50.9c-92.3 0-166.9 75.1-166.9 168 0 92.6 74.6 167.7 166.9 167.7 92 0 166.9-75.1 166.9-167.7 0-92.9-74.9-168-166.9-168z\"]\n};\nvar faFirstOrderAlt = {\n prefix: 'fab',\n iconName: 'first-order-alt',\n icon: [496, 512, [], \"f50a\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 488.21C115.34 496.21 7.79 388.66 7.79 256S115.34 15.79 248 15.79 488.21 123.34 488.21 256 380.66 496.21 248 496.21zm0-459.92C126.66 36.29 28.29 134.66 28.29 256S126.66 475.71 248 475.71 467.71 377.34 467.71 256 369.34 36.29 248 36.29zm0 431.22c-116.81 0-211.51-94.69-211.51-211.51S131.19 44.49 248 44.49 459.51 139.19 459.51 256 364.81 467.51 248 467.51zm186.23-162.98a191.613 191.613 0 0 1-20.13 48.69l-74.13-35.88 61.48 54.82a193.515 193.515 0 0 1-37.2 37.29l-54.8-61.57 35.88 74.27a190.944 190.944 0 0 1-48.63 20.23l-27.29-78.47 4.79 82.93c-8.61 1.18-17.4 1.8-26.33 1.8s-17.72-.62-26.33-1.8l4.76-82.46-27.15 78.03a191.365 191.365 0 0 1-48.65-20.2l35.93-74.34-54.87 61.64a193.85 193.85 0 0 1-37.22-37.28l61.59-54.9-74.26 35.93a191.638 191.638 0 0 1-20.14-48.69l77.84-27.11-82.23 4.76c-1.16-8.57-1.78-17.32-1.78-26.21 0-9 .63-17.84 1.82-26.51l82.38 4.77-77.94-27.16a191.726 191.726 0 0 1 20.23-48.67l74.22 35.92-61.52-54.86a193.85 193.85 0 0 1 37.28-37.22l54.76 61.53-35.83-74.17a191.49 191.49 0 0 1 48.65-20.13l26.87 77.25-4.71-81.61c8.61-1.18 17.39-1.8 26.32-1.8s17.71.62 26.32 1.8l-4.74 82.16 27.05-77.76c17.27 4.5 33.6 11.35 48.63 20.17l-35.82 74.12 54.72-61.47a193.13 193.13 0 0 1 37.24 37.23l-61.45 54.77 74.12-35.86a191.515 191.515 0 0 1 20.2 48.65l-77.81 27.1 82.24-4.75c1.19 8.66 1.82 17.5 1.82 26.49 0 8.88-.61 17.63-1.78 26.19l-82.12-4.75 77.72 27.09z\"]\n};\nvar faFirstdraft = {\n prefix: 'fab',\n iconName: 'firstdraft',\n icon: [384, 512, [], \"f3a1\", \"M384 192h-64v128H192v128H0v-25.6h166.4v-128h128v-128H384V192zm-25.6 38.4v128h-128v128H64V512h192V384h128V230.4h-25.6zm25.6 192h-89.6V512H320v-64h64v-25.6zM0 0v384h128V256h128V128h128V0H0z\"]\n};\nvar faFlickr = {\n prefix: 'fab',\n iconName: 'flickr',\n icon: [448, 512, [], \"f16e\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM144.5 319c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5zm159 0c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5z\"]\n};\nvar faFlipboard = {\n prefix: 'fab',\n iconName: 'flipboard',\n icon: [448, 512, [], \"f44d\", \"M0 32v448h448V32H0zm358.4 179.2h-89.6v89.6h-89.6v89.6H89.6V121.6h268.8v89.6z\"]\n};\nvar faFly = {\n prefix: 'fab',\n iconName: 'fly',\n icon: [384, 512, [], \"f417\", \"M197.8 427.8c12.9 11.7 33.7 33.3 33.2 50.7 0 .8-.1 1.6-.1 2.5-1.8 19.8-18.8 31.1-39.1 31-25-.1-39.9-16.8-38.7-35.8 1-16.2 20.5-36.7 32.4-47.6 2.3-2.1 2.7-2.7 5.6-3.6 3.4 0 3.9.3 6.7 2.8zM331.9 67.3c-16.3-25.7-38.6-40.6-63.3-52.1C243.1 4.5 214-.2 192 0c-44.1 0-71.2 13.2-81.1 17.3C57.3 45.2 26.5 87.2 28 158.6c7.1 82.2 97 176 155.8 233.8 1.7 1.6 4.5 4.5 6.2 5.1l3.3.1c2.1-.7 1.8-.5 3.5-2.1 52.3-49.2 140.7-145.8 155.9-215.7 7-39.2 3.1-72.5-20.8-112.5zM186.8 351.9c-28-51.1-65.2-130.7-69.3-189-3.4-47.5 11.4-131.2 69.3-136.7v325.7zM328.7 180c-16.4 56.8-77.3 128-118.9 170.3C237.6 298.4 275 217 277 158.4c1.6-45.9-9.8-105.8-48-131.4 88.8 18.3 115.5 98.1 99.7 153z\"]\n};\nvar faFontAwesome = {\n prefix: 'fab',\n iconName: 'font-awesome',\n icon: [448, 512, [], \"f2b4\", \"M400 32H48A48 48 0 0 0 0 80V432a48 48 0 0 0 48 48H400a48 48 0 0 0 48-48V80A48 48 0 0 0 400 32ZM336 312c-31.6 11.2-41.2 16-59.8 16-31.4 0-43.2-16-74.6-16a80 80 0 0 0-25.6 4V284a85.9 85.9 0 0 1 25.6-4c31.2 0 43.2 16 74.6 16 10.2 0 17.8-1.4 27.8-4.6v-96c-10 3.2-17.6 4.6-27.8 4.6-31.4 0-43.2-16-74.6-16-25.4 0-37.4 10.4-57.6 14.4V352a16 16 0 0 1-32 0V160a16 16 0 0 1 32 0v6.4c20.2-4 32.2-14.4 57.6-14.4 31.2 0 43.2 16 74.6 16 18.6 0 28.2-4.8 59.8-16Z\"]\n};\nvar faFontAwesomeAlt = {\n prefix: 'fab',\n iconName: 'font-awesome-alt',\n icon: [448, 512, [], \"f35c\", \"M400 32H48A48 48 0 0 0 0 80V432a48 48 0 0 0 48 48H400a48 48 0 0 0 48-48V80A48 48 0 0 0 400 32Zm16 400a16 16 0 0 1-16 16H48a16 16 0 0 1-16-16V80A16 16 0 0 1 48 64H400a16 16 0 0 1 16 16ZM201.6 152c-25.4 0-37.4 10.4-57.6 14.4V160a16 16 0 0 0-32 0V352a16 16 0 0 0 32 0V198.4c20.2-4 32.2-14.4 57.6-14.4 31.4 0 43.2 16 74.6 16 10.2 0 17.8-1.4 27.8-4.6v96c-10 3.2-17.6 4.6-27.8 4.6-31.4 0-43.4-16-74.6-16a85.9 85.9 0 0 0-25.6 4v32a80 80 0 0 1 25.6-4c31.4 0 43.2 16 74.6 16 18.6 0 28.2-4.8 59.8-16V152c-31.6 11.2-41.2 16-59.8 16C244.8 168 232.8 152 201.6 152Z\"]\n};\nvar faFontAwesomeFlag = {\n prefix: 'fab',\n iconName: 'font-awesome-flag',\n icon: [448, 512, [], \"f425\", \"M448 48V384c-63 23-82 32-119 32-63 0-87-32-150-32-20 0-36 4-51 8V328c15-4 31-8 51-8 63 0 87 32 150 32 20 0 35-3 55-9V135c-20 6-35 9-55 9-63 0-87-32-150-32-51 0-75 21-115 29V448a31.6 31.6 0 0 1-32 32A31.6 31.6 0 0 1 0 448V64A31.6 31.6 0 0 1 32 32 31.6 31.6 0 0 1 64 64V77c40-8 64-29 115-29 63 0 87 32 150 32C366 80 385 71 448 48Z\"]\n};\nvar faFontAwesomeLogoFull = {\n prefix: 'fab',\n iconName: 'font-awesome-logo-full',\n icon: [3992, 512, [\"Font Awesome\"], \"f4e6\", \"M1209.7 156.5c-57.8 0-102 43.9-102 99.1 0 56 44.6 99.1 102 99.1 57.4 0 102-43.1 102-99.1C1311.7 200.4 1267.5 156.5 1209.7 156.5Zm0 152.7c-35.1 0-51.8-27.4-51.8-53.2 0-25.8 16.7-53.2 51.8-53.2 35.1 0 51.8 27.8 51.8 53.2C1261.1 281.8 1244.8 309.2 1209.7 309.2Zm962.1-136.1c-4.4-10.9-12.3-16.5-23.5-16.5s-19.1 5.6-23.5 16.5l-59.4 145.8c-7.2 17.7 2.8 27.4 4.4 29a24.6 24.6 0 0 0 17.5 6.8c10.8 0 18.7-6 23.1-18.1l4-10.1h67.7l4 10.1c4.8 12.1 12.3 18.1 23.1 18.1a24.6 24.6 0 0 0 17.5-6.8c10-10.1 6.8-22.6 4.4-29Zm-43 113.6 19.1-56 19.1 56Zm-574.5-130.1c-14.3 0-24.7 10.9-24.7 25.4v76.5l-68.5-85.8c-4.4-5.6-11.6-16.1-25.5-16.1-19.1 0-24.3 17.7-24.3 25.4V329.7c0 14.1 10.4 25.4 24.7 25.4 14.3 0 24.7-10.9 24.7-25.4V252.8l68.9 86.2c4.8 5.6 11.6 16.1 25.5 16.1 19.1 0 23.9-17.3 23.9-25.4V181.9C1579 167.4 1568.6 156.5 1554.3 156.5Zm-554.1 1.6H916.5c-19.9 0-25.1 17.3-25.1 25.4V328.1c0 19.7 16.7 25.4 24.7 25.4 8 0 24.7-5.2 24.7-25.4V285h44.6c12.8 0 22.7-9.3 22.7-22.6 0-17.7-15.5-22.1-22.7-22.1H940.8V203.6h59.4c12.8 0 22.7-9.3 22.7-22.6C1022.9 163 1007.3 158.1 1000.2 158.1Zm815.1 0H1691.7c-7.2 0-22.7 4.4-22.7 22.2 0 13.3 10 22.6 22.7 22.6h37V327.7c0 14.1 10.4 25.4 24.7 25.4 14.3 0 24.7-10.9 24.7-25.4V202.8h37c12.7 0 22.7-9.3 22.7-22.6C1837.9 163 1822.4 158.1 1815.2 158.1Zm1789.5-1.6c-9.6 0-17.5 6-25.1 18.1l-46.6 76.1L3486.4 174.6q-10.8-18.1-25.1-18.1c-19.5 0-24.7 18.1-24.7 25.8V329.7c0 14.1 10.4 25.4 24.7 25.4s24.7-10.9 24.7-25.4V262.8L3510.7 302.7c6.4 10.1 13.9 15.3 22.3 15.3 8.8 0 15.9-5.2 22.3-15.3l24.7-39.9v66.9c0 14.1 10.3 25.4 24.7 25.4 14.3 0 24.7-10.9 24.7-25.4V182.3C3629.4 174.2 3624.6 156.5 3604.7 156.5Zm248.6 149.8h-65.7V272.9h39.4c11.9 0 21.1-8.9 21.1-20.9 0-12.1-9.2-20.9-21.1-20.9h-39.4V204.8h62.1c12.8 0 22.7-9.3 22.7-22.6 0-17.7-15.6-22.2-22.7-22.2h-86.4c-19.9 0-25.1 17.3-25.1 25.4V326.5c0 8.1 5.2 25.4 25.1 25.4h90c12.8 0 22.7-9.3 22.7-22.6C3876 311.2 3860.5 306.3 3853.3 306.3ZM3235 156.5c-57.8 0-102 43.9-102 99.1 0 56 44.6 99.1 102 99.1 57.4 0 102-43.1 102-99.1C3337 200.4 3292.8 156.5 3235 156.5Zm0 152.7c-35.1 0-51.8-27.4-51.8-53.2 0-25.8 16.7-53.2 51.8-53.2 35.1 0 51.8 27.8 51.8 53.2C3286.8 281.8 3270.1 309.2 3235 309.2ZM2550.2 156.5c-11.2 0-19.1 5.6-23.1 16.5l-34.3 94.7-31.5-92.2c-4.4-12.5-12.3-18.9-24.3-18.9-11.9 0-19.9 6.4-24.3 18.9l-31.5 92.2-34.3-95.5q-5.4-15.7-22.7-15.7c-6.8 0-12.3 2.4-17.5 7.3-5.2 5.2-10.8 14.5-4.8 28.6l55.8 145.8c4 11.3 11.6 16.9 23.1 16.9q16.7 0 22.7-16.9l33.5-91.8 33.5 91.8q6 16.9 22.7 16.9c11.2 0 19.1-5.6 23.1-16.9l55.8-145.8c3.6-9.3 4.4-19.3-4.8-28.6A23 23 0 0 0 2550.2 156.5Zm444.2 81-21.9-9.3c-11.9-4.8-16.3-8.5-16.3-15.7q0-12.1 16.7-12.1c12.7 0 19.5 7.7 24.3 10.9 7.2 5.2 18.3 6.8 27.9-2 10.8-10.5 6.8-23.8 1.2-30.6-12.3-14.9-30.3-22.2-53.8-22.2-19.1 0-35.1 5.2-47.4 15.7-12.3 10.5-18.7 24.2-18.7 41.1 0 24.2 15.9 43.5 47.8 57.6l19.5 8.9c15.9 6.8 19.1 9.7 19.1 17.7 0 9.3-6.4 14.1-19.5 14.1-19.1 0-34.7-14.9-36.3-16.1-10.8-7.3-21.5-2-26.3 2.8-6.8 6.4-12.7 20.9 3.2 36.2 6.8 6.4 15.5 11.7 26.7 15.3a94.6 94.6 0 0 0 32.7 5.6c19.9 0 36.7-5.2 49.8-16.1 13.1-10.9 19.5-25.4 19.5-43.5q0-20.5-12-33.8C3022.7 253.2 3010.7 244.3 2994.4 237.5Zm-206.4 68.9h-65.7V272.9h39.4c12 0 21.1-8.9 21.1-20.9 0-12.1-9.2-20.9-21.1-20.9h-39.4V204.8h62.1c12.8 0 22.7-9.3 22.7-22.6 0-17.7-15.5-22.2-22.7-22.2h-86.4c-19.9 0-25.1 17.3-25.1 25.4V326.5c0 8.1 5.2 25.4 25.1 25.4h90c12.7 0 22.7-9.3 22.7-22.6C2810.8 311.2 2795.2 306.3 2788 306.3ZM178.3 49.1c-50.5 0-74.4 20.7-114.6 28.7V65A31.8 31.8 0 1 0 0 65V447a31.8 31.8 0 0 0 63.7 0V141.4c40.2-8 64.1-28.7 114.6-28.7 62.5 0 86 31.8 148.4 31.8 20.3 0 35.4-2.8 55.3-9.2v191c-19.9 6.4-35 9.2-55.3 9.2-62.5 0-86.4-31.8-148.4-31.8-20.3 0-36.2 3.6-50.9 8V375.4a159.1 159.1 0 0 1 50.9-8c62.5 0 86 31.8 148.4 31.8 37 0 56.1-9.6 119-31.8V49.1C382.8 71.4 363.7 80.9 326.7 80.9 264.2 80.9 240.4 49.1 178.3 49.1Z\"]\n};\nvar faFonticons = {\n prefix: 'fab',\n iconName: 'fonticons',\n icon: [448, 512, [], \"f280\", \"M0 32v448h448V32zm187 140.9c-18.4 0-19 9.9-19 27.4v23.3c0 2.4-3.5 4.4-.6 4.4h67.4l-11.1 37.3H168v112.9c0 5.8-2 6.7 3.2 7.3l43.5 4.1v25.1H84V389l21.3-2c5.2-.6 6.7-2.3 6.7-7.9V267.7c0-2.3-2.9-2.3-5.8-2.3H84V228h28v-21c0-49.6 26.5-70 77.3-70 34.1 0 64.7 8.2 64.7 52.8l-50.7 6.1c.3-18.7-4.4-23-16.3-23zm74.3 241.8v-25.1l20.4-2.6c5.2-.6 7.6-1.7 7.6-7.3V271.8c0-4.1-2.9-6.7-6.7-7.9l-24.2-6.4 6.7-29.5h80.2v151.7c0 5.8-2.6 6.4 2.9 7.3l15.7 2.6v25.1zm80.8-255.5l9 33.2-7.3 7.3-31.2-16.6-31.2 16.6-7.3-7.3 9-33.2-21.8-24.2 3.5-9.6h27.7l15.5-28h9.3l15.5 28h27.7l3.5 9.6z\"]\n};\nvar faFonticonsFi = {\n prefix: 'fab',\n iconName: 'fonticons-fi',\n icon: [384, 512, [], \"f3a2\", \"M114.4 224h92.4l-15.2 51.2h-76.4V433c0 8-2.8 9.2 4.4 10l59.6 5.6V483H0v-35.2l29.2-2.8c7.2-.8 9.2-3.2 9.2-10.8V278.4c0-3.2-4-3.2-8-3.2H0V224h38.4v-28.8c0-68 36.4-96 106-96 46.8 0 88.8 11.2 88.8 72.4l-69.6 8.4c.4-25.6-6-31.6-22.4-31.6-25.2 0-26 13.6-26 37.6v32c0 3.2-4.8 6-.8 6zM384 483H243.2v-34.4l28-3.6c7.2-.8 10.4-2.4 10.4-10V287c0-5.6-4-9.2-9.2-10.8l-33.2-8.8 9.2-40.4h110v208c0 8-3.6 8.8 4 10l21.6 3.6V483zm-30-347.2l12.4 45.6-10 10-42.8-22.8-42.8 22.8-10-10 12.4-45.6-30-36.4 4.8-10h38L307.2 51H320l21.2 38.4h38l4.8 13.2-30 33.2z\"]\n};\nvar faFortAwesome = {\n prefix: 'fab',\n iconName: 'fort-awesome',\n icon: [512, 512, [], \"f286\", \"M489.2 287.9h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6V146.2c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-6-8-4.6-11.7-4.6v-38c8.3-2 17.1-3.4 25.7-3.4 10.9 0 20.9 4.3 31.4 4.3 4.6 0 27.7-1.1 27.7-8v-60c0-2.6-2-4.6-4.6-4.6-5.1 0-15.1 4.3-24 4.3-9.7 0-20.9-4.3-32.6-4.3-8 0-16 1.1-23.7 2.9v-4.9c5.4-2.6 9.1-8.3 9.1-14.3 0-20.7-31.4-20.8-31.4 0 0 6 3.7 11.7 9.1 14.3v111.7c-3.7 0-11.7-1.4-11.7 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32H128v-32c0-2.6-2-4.6-4.6-4.6H96c-2.6 0-4.6 2-4.6 4.6v178.3H54.8v-32c0-2.6-2-4.6-4.6-4.6H22.8c-2.6 0-4.6 2-4.6 4.6V512h182.9v-96c0-72.6 109.7-72.6 109.7 0v96h182.9V292.5c.1-2.6-1.9-4.6-4.5-4.6zm-288.1-4.5c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64zm146.4 0c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64z\"]\n};\nvar faFortAwesomeAlt = {\n prefix: 'fab',\n iconName: 'fort-awesome-alt',\n icon: [512, 512, [], \"f3a3\", \"M208 237.4h-22.2c-2.1 0-3.7 1.6-3.7 3.7v51.7c0 2.1 1.6 3.7 3.7 3.7H208c2.1 0 3.7-1.6 3.7-3.7v-51.7c0-2.1-1.6-3.7-3.7-3.7zm118.2 0H304c-2.1 0-3.7 1.6-3.7 3.7v51.7c0 2.1 1.6 3.7 3.7 3.7h22.2c2.1 0 3.7-1.6 3.7-3.7v-51.7c-.1-2.1-1.7-3.7-3.7-3.7zm132-125.1c-2.3-3.2-4.6-6.4-7.1-9.5-9.8-12.5-20.8-24-32.8-34.4-4.5-3.9-9.1-7.6-13.9-11.2-1.6-1.2-3.2-2.3-4.8-3.5C372 34.1 340.3 20 306 13c-16.2-3.3-32.9-5-50-5s-33.9 1.7-50 5c-34.3 7.1-66 21.2-93.3 40.8-1.6 1.1-3.2 2.3-4.8 3.5-4.8 3.6-9.4 7.3-13.9 11.2-3 2.6-5.9 5.3-8.8 8s-5.7 5.5-8.4 8.4c-5.5 5.7-10.7 11.8-15.6 18-2.4 3.1-4.8 6.3-7.1 9.5C25.2 153 8.3 202.5 8.3 256c0 2 .1 4 .1 6 .1.7.1 1.3.1 2 .1 1.3.1 2.7.2 4 0 .8.1 1.5.1 2.3 0 1.3.1 2.5.2 3.7.1.8.1 1.6.2 2.4.1 1.1.2 2.3.3 3.5 0 .8.1 1.6.2 2.4.1 1.2.3 2.4.4 3.6.1.8.2 1.5.3 2.3.1 1.3.3 2.6.5 3.9.1.6.2 1.3.3 1.9l.9 5.7c.1.6.2 1.1.3 1.7.3 1.3.5 2.7.8 4 .2.8.3 1.6.5 2.4.2 1 .5 2.1.7 3.2.2.9.4 1.7.6 2.6.2 1 .4 2 .7 3 .2.9.5 1.8.7 2.7.3 1 .5 1.9.8 2.9.3.9.5 1.8.8 2.7.2.9.5 1.9.8 2.8s.5 1.8.8 2.7c.3 1 .6 1.9.9 2.8.6 1.6 1.1 3.3 1.7 4.9.4 1 .7 1.9 1 2.8.3 1 .7 2 1.1 3 .3.8.6 1.5.9 2.3l1.2 3c.3.7.6 1.5.9 2.2.4 1 .9 2 1.3 3l.9 2.1c.5 1 .9 2 1.4 3 .3.7.6 1.3.9 2 .5 1 1 2.1 1.5 3.1.2.6.5 1.1.8 1.7.6 1.1 1.1 2.2 1.7 3.3.1.2.2.3.3.5 2.2 4.1 4.4 8.2 6.8 12.2.2.4.5.8.7 1.2.7 1.1 1.3 2.2 2 3.3.3.5.6.9.9 1.4.6 1.1 1.3 2.1 2 3.2.3.5.6.9.9 1.4.7 1.1 1.4 2.1 2.1 3.2.2.4.5.8.8 1.2.7 1.1 1.5 2.2 2.3 3.3.2.2.3.5.5.7 37.5 51.7 94.4 88.5 160 99.4.9.1 1.7.3 2.6.4 1 .2 2.1.4 3.1.5s1.9.3 2.8.4c1 .2 2 .3 3 .4.9.1 1.9.2 2.9.3s1.9.2 2.9.3 2.1.2 3.1.3c.9.1 1.8.1 2.7.2 1.1.1 2.3.1 3.4.2.8 0 1.7.1 2.5.1 1.3 0 2.6.1 3.9.1.7.1 1.4.1 2.1.1 2 .1 4 .1 6 .1s4-.1 6-.1c.7 0 1.4-.1 2.1-.1 1.3 0 2.6 0 3.9-.1.8 0 1.7-.1 2.5-.1 1.1-.1 2.3-.1 3.4-.2.9 0 1.8-.1 2.7-.2 1-.1 2.1-.2 3.1-.3s1.9-.2 2.9-.3c.9-.1 1.9-.2 2.9-.3s2-.3 3-.4 1.9-.3 2.8-.4c1-.2 2.1-.3 3.1-.5.9-.1 1.7-.3 2.6-.4 65.6-11 122.5-47.7 160.1-102.4.2-.2.3-.5.5-.7.8-1.1 1.5-2.2 2.3-3.3.2-.4.5-.8.8-1.2.7-1.1 1.4-2.1 2.1-3.2.3-.5.6-.9.9-1.4.6-1.1 1.3-2.1 2-3.2.3-.5.6-.9.9-1.4.7-1.1 1.3-2.2 2-3.3.2-.4.5-.8.7-1.2 2.4-4 4.6-8.1 6.8-12.2.1-.2.2-.3.3-.5.6-1.1 1.1-2.2 1.7-3.3.2-.6.5-1.1.8-1.7.5-1 1-2.1 1.5-3.1.3-.7.6-1.3.9-2 .5-1 1-2 1.4-3l.9-2.1c.5-1 .9-2 1.3-3 .3-.7.6-1.5.9-2.2l1.2-3c.3-.8.6-1.5.9-2.3.4-1 .7-2 1.1-3s.7-1.9 1-2.8c.6-1.6 1.2-3.3 1.7-4.9.3-1 .6-1.9.9-2.8s.5-1.8.8-2.7c.2-.9.5-1.9.8-2.8s.6-1.8.8-2.7c.3-1 .5-1.9.8-2.9.2-.9.5-1.8.7-2.7.2-1 .5-2 .7-3 .2-.9.4-1.7.6-2.6.2-1 .5-2.1.7-3.2.2-.8.3-1.6.5-2.4.3-1.3.6-2.7.8-4 .1-.6.2-1.1.3-1.7l.9-5.7c.1-.6.2-1.3.3-1.9.1-1.3.3-2.6.5-3.9.1-.8.2-1.5.3-2.3.1-1.2.3-2.4.4-3.6 0-.8.1-1.6.2-2.4.1-1.1.2-2.3.3-3.5.1-.8.1-1.6.2-2.4.1 1.7.1.5.2-.7 0-.8.1-1.5.1-2.3.1-1.3.2-2.7.2-4 .1-.7.1-1.3.1-2 .1-2 .1-4 .1-6 0-53.5-16.9-103-45.8-143.7zM448 371.5c-9.4 15.5-20.6 29.9-33.6 42.9-20.6 20.6-44.5 36.7-71.2 48-13.9 5.8-28.2 10.3-42.9 13.2v-75.8c0-58.6-88.6-58.6-88.6 0v75.8c-14.7-2.9-29-7.3-42.9-13.2-26.7-11.3-50.6-27.4-71.2-48-13-13-24.2-27.4-33.6-42.9v-71.3c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7V326h29.6V182c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7H208c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-4.8 6.5-3.7 9.5-3.7V88.1c-4.4-2-7.4-6.7-7.4-11.5 0-16.8 25.4-16.8 25.4 0 0 4.8-3 9.4-7.4 11.5V92c6.3-1.4 12.7-2.3 19.2-2.3 9.4 0 18.4 3.5 26.3 3.5 7.2 0 15.2-3.5 19.4-3.5 2.1 0 3.7 1.6 3.7 3.7v48.4c0 5.6-18.7 6.5-22.4 6.5-8.6 0-16.6-3.5-25.4-3.5-7 0-14.1 1.2-20.8 2.8v30.7c3 0 9.5-1.1 9.5 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7h22.2c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7v144h29.5v-25.8c0-2.1 1.6-3.7 3.7-3.7h22.2c2.1 0 3.7 1.6 3.7 3.7z\"]\n};\nvar faForumbee = {\n prefix: 'fab',\n iconName: 'forumbee',\n icon: [448, 512, [], \"f211\", \"M5.8 309.7C2 292.7 0 275.5 0 258.3 0 135 99.8 35 223.1 35c16.6 0 33.3 2 49.3 5.5C149 87.5 51.9 186 5.8 309.7zm392.9-189.2C385 103 369 87.8 350.9 75.2c-149.6 44.3-266.3 162.1-309.7 312 12.5 18.1 28 35.6 45.2 49 43.1-151.3 161.2-271.7 312.3-315.7zm15.8 252.7c15.2-25.1 25.4-53.7 29.5-82.8-79.4 42.9-145 110.6-187.6 190.3 30-4.4 58.9-15.3 84.6-31.3 35 13.1 70.9 24.3 107 33.6-9.3-36.5-20.4-74.5-33.5-109.8zm29.7-145.5c-2.6-19.5-7.9-38.7-15.8-56.8C290.5 216.7 182 327.5 137.1 466c18.1 7.6 37 12.5 56.6 15.2C240 367.1 330.5 274.4 444.2 227.7z\"]\n};\nvar faFoursquare = {\n prefix: 'fab',\n iconName: 'foursquare',\n icon: [368, 512, [], \"f180\", \"M323.1 3H49.9C12.4 3 0 31.3 0 49.1v433.8c0 20.3 12.1 27.7 18.2 30.1 6.2 2.5 22.8 4.6 32.9-7.1C180 356.5 182.2 354 182.2 354c3.1-3.4 3.4-3.1 6.8-3.1h83.4c35.1 0 40.6-25.2 44.3-39.7l48.6-243C373.8 25.8 363.1 3 323.1 3zm-16.3 73.8l-11.4 59.7c-1.2 6.5-9.5 13.2-16.9 13.2H172.1c-12 0-20.6 8.3-20.6 20.3v13c0 12 8.6 20.6 20.6 20.6h90.4c8.3 0 16.6 9.2 14.8 18.2-1.8 8.9-10.5 53.8-11.4 58.8-.9 4.9-6.8 13.5-16.9 13.5h-73.5c-13.5 0-17.2 1.8-26.5 12.6 0 0-8.9 11.4-89.5 108.3-.9.9-1.8.6-1.8-.3V75.9c0-7.7 6.8-16.6 16.6-16.6h219c8.2 0 15.6 7.7 13.5 17.5z\"]\n};\nvar faFreeCodeCamp = {\n prefix: 'fab',\n iconName: 'free-code-camp',\n icon: [576, 512, [], \"f2c5\", \"M97.22,96.21c10.36-10.65,16-17.12,16-21.9,0-2.76-1.92-5.51-3.83-7.42A14.81,14.81,0,0,0,101,64.05c-8.48,0-20.92,8.79-35.84,25.69C23.68,137,2.51,182.81,3.37,250.34s17.47,117,54.06,161.87C76.22,435.86,90.62,448,100.9,448a13.55,13.55,0,0,0,8.37-3.84c1.91-2.76,3.81-5.63,3.81-8.38,0-5.63-3.86-12.2-13.2-20.55-44.45-42.33-67.32-97-67.48-165C32.25,188.8,54,137.83,97.22,96.21ZM239.47,420.07c.58.37.91.55.91.55Zm93.79.55.17-.13C333.24,420.62,333.17,420.67,333.26,420.62Zm3.13-158.18c-16.24-4.15,50.41-82.89-68.05-177.17,0,0,15.54,49.38-62.83,159.57-74.27,104.35,23.46,168.73,34,175.23-6.73-4.35-47.4-35.7,9.55-128.64,11-18.3,25.53-34.87,43.5-72.16,0,0,15.91,22.45,7.6,71.13C287.7,364,354,342.91,355,343.94c22.75,26.78-17.72,73.51-21.58,76.55,5.49-3.65,117.71-78,33-188.1C360.43,238.4,352.62,266.59,336.39,262.44ZM510.88,89.69C496,72.79,483.52,64,475,64a14.81,14.81,0,0,0-8.39,2.84c-1.91,1.91-3.83,4.66-3.83,7.42,0,4.78,5.6,11.26,16,21.9,43.23,41.61,65,92.59,64.82,154.06-.16,68-23,122.63-67.48,165-9.34,8.35-13.18,14.92-13.2,20.55,0,2.75,1.9,5.62,3.81,8.38A13.61,13.61,0,0,0,475.1,448c10.28,0,24.68-12.13,43.47-35.79,36.59-44.85,53.14-94.38,54.06-161.87S552.32,137,510.88,89.69Z\"]\n};\nvar faFreebsd = {\n prefix: 'fab',\n iconName: 'freebsd',\n icon: [448, 512, [], \"f3a4\", \"M303.7 96.2c11.1-11.1 115.5-77 139.2-53.2 23.7 23.7-42.1 128.1-53.2 139.2-11.1 11.1-39.4.9-63.1-22.9-23.8-23.7-34.1-52-22.9-63.1zM109.9 68.1C73.6 47.5 22 24.6 5.6 41.1c-16.6 16.6 7.1 69.4 27.9 105.7 18.5-32.2 44.8-59.3 76.4-78.7zM406.7 174c3.3 11.3 2.7 20.7-2.7 26.1-20.3 20.3-87.5-27-109.3-70.1-18-32.3-11.1-53.4 14.9-48.7 5.7-3.6 12.3-7.6 19.6-11.6-29.8-15.5-63.6-24.3-99.5-24.3-119.1 0-215.6 96.5-215.6 215.6 0 119 96.5 215.6 215.6 215.6S445.3 380.1 445.3 261c0-38.4-10.1-74.5-27.7-105.8-3.9 7-7.6 13.3-10.9 18.8z\"]\n};\nvar faFulcrum = {\n prefix: 'fab',\n iconName: 'fulcrum',\n icon: [320, 512, [], \"f50b\", \"M95.75 164.14l-35.38 43.55L25 164.14l35.38-43.55zM144.23 0l-20.54 198.18L72.72 256l51 57.82L144.23 512V300.89L103.15 256l41.08-44.89zm79.67 164.14l35.38 43.55 35.38-43.55-35.38-43.55zm-48.48 47L216.5 256l-41.08 44.89V512L196 313.82 247 256l-51-57.82L175.42 0z\"]\n};\nvar faGalacticRepublic = {\n prefix: 'fab',\n iconName: 'galactic-republic',\n icon: [496, 512, [], \"f50c\", \"M248 504C111.25 504 0 392.75 0 256S111.25 8 248 8s248 111.25 248 248-111.25 248-248 248zm0-479.47C120.37 24.53 16.53 128.37 16.53 256S120.37 487.47 248 487.47 479.47 383.63 479.47 256 375.63 24.53 248 24.53zm27.62 21.81v24.62a185.933 185.933 0 0 1 83.57 34.54l17.39-17.36c-28.75-22.06-63.3-36.89-100.96-41.8zm-55.37.07c-37.64 4.94-72.16 19.8-100.88 41.85l17.28 17.36h.08c24.07-17.84 52.55-30.06 83.52-34.67V46.41zm12.25 50.17v82.87c-10.04 2.03-19.42 5.94-27.67 11.42l-58.62-58.59-21.93 21.93 58.67 58.67c-5.47 8.23-9.45 17.59-11.47 27.62h-82.9v31h82.9c2.02 10.02 6.01 19.31 11.47 27.54l-58.67 58.69 21.93 21.93 58.62-58.62a77.873 77.873 0 0 0 27.67 11.47v82.9h31v-82.9c10.05-2.03 19.37-6.06 27.62-11.55l58.67 58.69 21.93-21.93-58.67-58.69c5.46-8.23 9.47-17.52 11.5-27.54h82.87v-31h-82.87c-2.02-10.02-6.03-19.38-11.5-27.62l58.67-58.67-21.93-21.93-58.67 58.67c-8.25-5.49-17.57-9.47-27.62-11.5V96.58h-31zm183.24 30.72l-17.36 17.36a186.337 186.337 0 0 1 34.67 83.67h24.62c-4.95-37.69-19.83-72.29-41.93-101.03zm-335.55.13c-22.06 28.72-36.91 63.26-41.85 100.91h24.65c4.6-30.96 16.76-59.45 34.59-83.52l-17.39-17.39zM38.34 283.67c4.92 37.64 19.75 72.18 41.8 100.9l17.36-17.39c-17.81-24.07-29.92-52.57-34.51-83.52H38.34zm394.7 0c-4.61 30.99-16.8 59.5-34.67 83.6l17.36 17.36c22.08-28.74 36.98-63.29 41.93-100.96h-24.62zM136.66 406.38l-17.36 17.36c28.73 22.09 63.3 36.98 100.96 41.93v-24.64c-30.99-4.63-59.53-16.79-83.6-34.65zm222.53.05c-24.09 17.84-52.58 30.08-83.57 34.67v24.57c37.67-4.92 72.21-19.79 100.96-41.85l-17.31-17.39h-.08z\"]\n};\nvar faGalacticSenate = {\n prefix: 'fab',\n iconName: 'galactic-senate',\n icon: [512, 512, [], \"f50d\", \"M249.86 33.48v26.07C236.28 80.17 226 168.14 225.39 274.9c11.74-15.62 19.13-33.33 19.13-48.24v-16.88c-.03-5.32.75-10.53 2.19-15.65.65-2.14 1.39-4.08 2.62-5.82 1.23-1.75 3.43-3.79 6.68-3.79 3.24 0 5.45 2.05 6.68 3.79 1.23 1.75 1.97 3.68 2.62 5.82 1.44 5.12 2.22 10.33 2.19 15.65v16.88c0 14.91 7.39 32.62 19.13 48.24-.63-106.76-10.91-194.73-24.49-215.35V33.48h-12.28zm-26.34 147.77c-9.52 2.15-18.7 5.19-27.46 9.08 8.9 16.12 9.76 32.64 1.71 37.29-8 4.62-21.85-4.23-31.36-19.82-11.58 8.79-21.88 19.32-30.56 31.09 14.73 9.62 22.89 22.92 18.32 30.66-4.54 7.7-20.03 7.14-35.47-.96-5.78 13.25-9.75 27.51-11.65 42.42 9.68.18 18.67 2.38 26.18 6.04 17.78-.3 32.77-1.96 40.49-4.22 5.55-26.35 23.02-48.23 46.32-59.51.73-25.55 1.88-49.67 3.48-72.07zm64.96 0c1.59 22.4 2.75 46.52 3.47 72.07 23.29 11.28 40.77 33.16 46.32 59.51 7.72 2.26 22.71 3.92 40.49 4.22 7.51-3.66 16.5-5.85 26.18-6.04-1.9-14.91-5.86-29.17-11.65-42.42-15.44 8.1-30.93 8.66-35.47.96-4.57-7.74 3.6-21.05 18.32-30.66-8.68-11.77-18.98-22.3-30.56-31.09-9.51 15.59-23.36 24.44-31.36 19.82-8.05-4.65-7.19-21.16 1.71-37.29a147.49 147.49 0 0 0-27.45-9.08zm-32.48 8.6c-3.23 0-5.86 8.81-6.09 19.93h-.05v16.88c0 41.42-49.01 95.04-93.49 95.04-52 0-122.75-1.45-156.37 29.17v2.51c9.42 17.12 20.58 33.17 33.18 47.97C45.7 380.26 84.77 360.4 141.2 360c45.68 1.02 79.03 20.33 90.76 40.87.01.01-.01.04 0 .05 7.67 2.14 15.85 3.23 24.04 3.21 8.19.02 16.37-1.07 24.04-3.21.01-.01-.01-.04 0-.05 11.74-20.54 45.08-39.85 90.76-40.87 56.43.39 95.49 20.26 108.02 41.35 12.6-14.8 23.76-30.86 33.18-47.97v-2.51c-33.61-30.62-104.37-29.17-156.37-29.17-44.48 0-93.49-53.62-93.49-95.04v-16.88h-.05c-.23-11.12-2.86-19.93-6.09-19.93zm0 96.59c22.42 0 40.6 18.18 40.6 40.6s-18.18 40.65-40.6 40.65-40.6-18.23-40.6-40.65c0-22.42 18.18-40.6 40.6-40.6zm0 7.64c-18.19 0-32.96 14.77-32.96 32.96S237.81 360 256 360s32.96-14.77 32.96-32.96-14.77-32.96-32.96-32.96zm0 6.14c14.81 0 26.82 12.01 26.82 26.82s-12.01 26.82-26.82 26.82-26.82-12.01-26.82-26.82 12.01-26.82 26.82-26.82zm-114.8 66.67c-10.19.07-21.6.36-30.5 1.66.43 4.42 1.51 18.63 7.11 29.76 9.11-2.56 18.36-3.9 27.62-3.9 41.28.94 71.48 34.35 78.26 74.47l.11 4.7c10.4 1.91 21.19 2.94 32.21 2.94 11.03 0 21.81-1.02 32.21-2.94l.11-4.7c6.78-40.12 36.98-73.53 78.26-74.47 9.26 0 18.51 1.34 27.62 3.9 5.6-11.13 6.68-25.34 7.11-29.76-8.9-1.3-20.32-1.58-30.5-1.66-18.76.42-35.19 4.17-48.61 9.67-12.54 16.03-29.16 30.03-49.58 33.07-.09.02-.17.04-.27.05-.05.01-.11.04-.16.05-5.24 1.07-10.63 1.6-16.19 1.6-5.55 0-10.95-.53-16.19-1.6-.05-.01-.11-.04-.16-.05-.1-.02-.17-.04-.27-.05-20.42-3.03-37.03-17.04-49.58-33.07-13.42-5.49-29.86-9.25-48.61-9.67z\"]\n};\nvar faGetPocket = {\n prefix: 'fab',\n iconName: 'get-pocket',\n icon: [448, 512, [], \"f265\", \"M407.6 64h-367C18.5 64 0 82.5 0 104.6v135.2C0 364.5 99.7 464 224.2 464c124 0 223.8-99.5 223.8-224.2V104.6c0-22.4-17.7-40.6-40.4-40.6zm-162 268.5c-12.4 11.8-31.4 11.1-42.4 0C89.5 223.6 88.3 227.4 88.3 209.3c0-16.9 13.8-30.7 30.7-30.7 17 0 16.1 3.8 105.2 89.3 90.6-86.9 88.6-89.3 105.5-89.3 16.9 0 30.7 13.8 30.7 30.7 0 17.8-2.9 15.7-114.8 123.2z\"]\n};\nvar faGg = {\n prefix: 'fab',\n iconName: 'gg',\n icon: [512, 512, [], \"f260\", \"M179.2 230.4l102.4 102.4-102.4 102.4L0 256 179.2 76.8l44.8 44.8-25.6 25.6-19.2-19.2-128 128 128 128 51.5-51.5-77.1-76.5 25.6-25.6zM332.8 76.8L230.4 179.2l102.4 102.4 25.6-25.6-77.1-76.5 51.5-51.5 128 128-128 128-19.2-19.2-25.6 25.6 44.8 44.8L512 256 332.8 76.8z\"]\n};\nvar faGgCircle = {\n prefix: 'fab',\n iconName: 'gg-circle',\n icon: [512, 512, [], \"f261\", \"M257 8C120 8 9 119 9 256s111 248 248 248 248-111 248-248S394 8 257 8zm-49.5 374.8L81.8 257.1l125.7-125.7 35.2 35.4-24.2 24.2-11.1-11.1-77.2 77.2 77.2 77.2 26.6-26.6-53.1-52.9 24.4-24.4 77.2 77.2-75 75.2zm99-2.2l-35.2-35.2 24.1-24.4 11.1 11.1 77.2-77.2-77.2-77.2-26.5 26.5 53.1 52.9-24.4 24.4-77.2-77.2 75-75L432.2 255 306.5 380.6z\"]\n};\nvar faGit = {\n prefix: 'fab',\n iconName: 'git',\n icon: [512, 512, [], \"f1d3\", \"M216.29 158.39H137C97 147.9 6.51 150.63 6.51 233.18c0 30.09 15 51.23 35 61-25.1 23-37 33.85-37 49.21 0 11 4.47 21.14 17.89 26.81C8.13 383.61 0 393.35 0 411.65c0 32.11 28.05 50.82 101.63 50.82 70.75 0 111.79-26.42 111.79-73.18 0-58.66-45.16-56.5-151.63-63l13.43-21.55c27.27 7.58 118.7 10 118.7-67.89 0-18.7-7.73-31.71-15-41.07l37.41-2.84zm-63.42 241.9c0 32.06-104.89 32.1-104.89 2.43 0-8.14 5.27-15 10.57-21.54 77.71 5.3 94.32 3.37 94.32 19.11zm-50.81-134.58c-52.8 0-50.46-71.16 1.2-71.16 49.54 0 50.82 71.16-1.2 71.16zm133.3 100.51v-32.1c26.75-3.66 27.24-2 27.24-11V203.61c0-8.5-2.05-7.38-27.24-16.26l4.47-32.92H324v168.71c0 6.51.4 7.32 6.51 8.14l20.73 2.84v32.1zm52.45-244.31c-23.17 0-36.59-13.43-36.59-36.61s13.42-35.77 36.59-35.77c23.58 0 37 12.62 37 35.77s-13.42 36.61-37 36.61zM512 350.46c-17.49 8.53-43.1 16.26-66.28 16.26-48.38 0-66.67-19.5-66.67-65.46V194.75c0-5.42 1.05-4.06-31.71-4.06V154.5c35.78-4.07 50-22 54.47-66.27h38.63c0 65.83-1.34 61.81 3.26 61.81H501v40.65h-60.56v97.15c0 6.92-4.92 51.41 60.57 26.84z\"]\n};\nvar faGitAlt = {\n prefix: 'fab',\n iconName: 'git-alt',\n icon: [448, 512, [], \"f841\", \"M439.55 236.05L244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z\"]\n};\nvar faGitSquare = {\n prefix: 'fab',\n iconName: 'git-square',\n icon: [448, 512, [], \"f1d2\", \"M100.59 334.24c48.57 3.31 58.95 2.11 58.95 11.94 0 20-65.55 20.06-65.55 1.52.01-5.09 3.29-9.4 6.6-13.46zm27.95-116.64c-32.29 0-33.75 44.47-.75 44.47 32.51 0 31.71-44.47.75-44.47zM448 80v352a48 48 0 0 1-48 48H48a48 48 0 0 1-48-48V80a48 48 0 0 1 48-48h352a48 48 0 0 1 48 48zm-227 69.31c0 14.49 8.38 22.88 22.86 22.88 14.74 0 23.13-8.39 23.13-22.88S258.62 127 243.88 127c-14.48 0-22.88 7.84-22.88 22.31zM199.18 195h-49.55c-25-6.55-81.56-4.85-81.56 46.75 0 18.8 9.4 32 21.85 38.11C74.23 294.23 66.8 301 66.8 310.6c0 6.87 2.79 13.22 11.18 16.76-8.9 8.4-14 14.48-14 25.92C64 373.35 81.53 385 127.52 385c44.22 0 69.87-16.51 69.87-45.73 0-36.67-28.23-35.32-94.77-39.38l8.38-13.43c17 4.74 74.19 6.23 74.19-42.43 0-11.69-4.83-19.82-9.4-25.67l23.38-1.78zm84.34 109.84l-13-1.78c-3.82-.51-4.07-1-4.07-5.09V192.52h-52.6l-2.79 20.57c15.75 5.55 17 4.86 17 10.17V298c0 5.62-.31 4.58-17 6.87v20.06h72.42zM384 315l-6.87-22.37c-40.93 15.37-37.85-12.41-37.85-16.73v-60.72h37.85v-25.41h-35.82c-2.87 0-2 2.52-2-38.63h-24.18c-2.79 27.7-11.68 38.88-34 41.42v22.62c20.47 0 19.82-.85 19.82 2.54v66.57c0 28.72 11.43 40.91 41.67 40.91 14.45 0 30.45-4.83 41.38-10.2z\"]\n};\nvar faGithub = {\n prefix: 'fab',\n iconName: 'github',\n icon: [496, 512, [], \"f09b\", \"M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z\"]\n};\nvar faGithubAlt = {\n prefix: 'fab',\n iconName: 'github-alt',\n icon: [480, 512, [], \"f113\", \"M186.1 328.7c0 20.9-10.9 55.1-36.7 55.1s-36.7-34.2-36.7-55.1 10.9-55.1 36.7-55.1 36.7 34.2 36.7 55.1zM480 278.2c0 31.9-3.2 65.7-17.5 95-37.9 76.6-142.1 74.8-216.7 74.8-75.8 0-186.2 2.7-225.6-74.8-14.6-29-20.2-63.1-20.2-95 0-41.9 13.9-81.5 41.5-113.6-5.2-15.8-7.7-32.4-7.7-48.8 0-21.5 4.9-32.3 14.6-51.8 45.3 0 74.3 9 108.8 36 29-6.9 58.8-10 88.7-10 27 0 54.2 2.9 80.4 9.2 34-26.7 63-35.2 107.8-35.2 9.8 19.5 14.6 30.3 14.6 51.8 0 16.4-2.6 32.7-7.7 48.2 27.5 32.4 39 72.3 39 114.2zm-64.3 50.5c0-43.9-26.7-82.6-73.5-82.6-18.9 0-37 3.4-56 6-14.9 2.3-29.8 3.2-45.1 3.2-15.2 0-30.1-.9-45.1-3.2-18.7-2.6-37-6-56-6-46.8 0-73.5 38.7-73.5 82.6 0 87.8 80.4 101.3 150.4 101.3h48.2c70.3 0 150.6-13.4 150.6-101.3zm-82.6-55.1c-25.8 0-36.7 34.2-36.7 55.1s10.9 55.1 36.7 55.1 36.7-34.2 36.7-55.1-10.9-55.1-36.7-55.1z\"]\n};\nvar faGithubSquare = {\n prefix: 'fab',\n iconName: 'github-square',\n icon: [448, 512, [], \"f092\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM277.3 415.7c-8.4 1.5-11.5-3.7-11.5-8 0-5.4.2-33 .2-55.3 0-15.6-5.2-25.5-11.3-30.7 37-4.1 76-9.2 76-73.1 0-18.2-6.5-27.3-17.1-39 1.7-4.3 7.4-22-1.7-45-13.9-4.3-45.7 17.9-45.7 17.9-13.2-3.7-27.5-5.6-41.6-5.6-14.1 0-28.4 1.9-41.6 5.6 0 0-31.8-22.2-45.7-17.9-9.1 22.9-3.5 40.6-1.7 45-10.6 11.7-15.6 20.8-15.6 39 0 63.6 37.3 69 74.3 73.1-4.8 4.3-9.1 11.7-10.6 22.3-9.5 4.3-33.8 11.7-48.3-13.9-9.1-15.8-25.5-17.1-25.5-17.1-16.2-.2-1.1 10.2-1.1 10.2 10.8 5 18.4 24.2 18.4 24.2 9.7 29.7 56.1 19.7 56.1 19.7 0 13.9.2 36.5.2 40.6 0 4.3-3 9.5-11.5 8-66-22.1-112.2-84.9-112.2-158.3 0-91.8 70.2-161.5 162-161.5S388 165.6 388 257.4c.1 73.4-44.7 136.3-110.7 158.3zm-98.1-61.1c-1.9.4-3.7-.4-3.9-1.7-.2-1.5 1.1-2.8 3-3.2 1.9-.2 3.7.6 3.9 1.9.3 1.3-1 2.6-3 3zm-9.5-.9c0 1.3-1.5 2.4-3.5 2.4-2.2.2-3.7-.9-3.7-2.4 0-1.3 1.5-2.4 3.5-2.4 1.9-.2 3.7.9 3.7 2.4zm-13.7-1.1c-.4 1.3-2.4 1.9-4.1 1.3-1.9-.4-3.2-1.9-2.8-3.2.4-1.3 2.4-1.9 4.1-1.5 2 .6 3.3 2.1 2.8 3.4zm-12.3-5.4c-.9 1.1-2.8.9-4.3-.6-1.5-1.3-1.9-3.2-.9-4.1.9-1.1 2.8-.9 4.3.6 1.3 1.3 1.8 3.3.9 4.1zm-9.1-9.1c-.9.6-2.6 0-3.7-1.5s-1.1-3.2 0-3.9c1.1-.9 2.8-.2 3.7 1.3 1.1 1.5 1.1 3.3 0 4.1zm-6.5-9.7c-.9.9-2.4.4-3.5-.6-1.1-1.3-1.3-2.8-.4-3.5.9-.9 2.4-.4 3.5.6 1.1 1.3 1.3 2.8.4 3.5zm-6.7-7.4c-.4.9-1.7 1.1-2.8.4-1.3-.6-1.9-1.7-1.5-2.6.4-.6 1.5-.9 2.8-.4 1.3.7 1.9 1.8 1.5 2.6z\"]\n};\nvar faGitkraken = {\n prefix: 'fab',\n iconName: 'gitkraken',\n icon: [592, 512, [], \"f3a6\", \"M565.7 118.1c-2.3-6.1-9.3-9.2-15.3-6.6-5.7 2.4-8.5 8.9-6.3 14.6 10.9 29 16.9 60.5 16.9 93.3 0 134.6-100.3 245.7-230.2 262.7V358.4c7.9-1.5 15.5-3.6 23-6.2v104c106.7-25.9 185.9-122.1 185.9-236.8 0-91.8-50.8-171.8-125.8-213.3-5.7-3.2-13-.9-15.9 5-2.7 5.5-.6 12.2 4.7 15.1 67.9 37.6 113.9 110 113.9 193.2 0 93.3-57.9 173.1-139.8 205.4v-92.2c14.2-4.5 24.9-17.7 24.9-33.5 0-13.1-6.8-24.4-17.3-30.5 8.3-79.5 44.5-58.6 44.5-83.9V170c0-38-87.9-161.8-129-164.7-2.5-.2-5-.2-7.6 0C251.1 8.3 163.2 132 163.2 170v14.8c0 25.3 36.3 4.3 44.5 83.9-10.6 6.1-17.3 17.4-17.3 30.5 0 15.8 10.6 29 24.8 33.5v92.2c-81.9-32.2-139.8-112-139.8-205.4 0-83.1 46-155.5 113.9-193.2 5.4-3 7.4-9.6 4.7-15.1-2.9-5.9-10.1-8.2-15.9-5-75 41.5-125.8 121.5-125.8 213.3 0 114.7 79.2 210.8 185.9 236.8v-104c7.6 2.5 15.1 4.6 23 6.2v123.7C131.4 465.2 31 354.1 31 219.5c0-32.8 6-64.3 16.9-93.3 2.2-5.8-.6-12.2-6.3-14.6-6-2.6-13 .4-15.3 6.6C14.5 149.7 8 183.8 8 219.5c0 155.1 122.6 281.6 276.3 287.8V361.4c6.8.4 15 .5 23.4 0v145.8C461.4 501.1 584 374.6 584 219.5c0-35.7-6.5-69.8-18.3-101.4zM365.9 275.5c13 0 23.7 10.5 23.7 23.7 0 13.1-10.6 23.7-23.7 23.7-13 0-23.7-10.5-23.7-23.7 0-13.1 10.6-23.7 23.7-23.7zm-139.8 47.3c-13.2 0-23.7-10.7-23.7-23.7s10.5-23.7 23.7-23.7c13.1 0 23.7 10.6 23.7 23.7 0 13-10.5 23.7-23.7 23.7z\"]\n};\nvar faGitlab = {\n prefix: 'fab',\n iconName: 'gitlab',\n icon: [512, 512, [], \"f296\", \"M105.2 24.9c-3.1-8.9-15.7-8.9-18.9 0L29.8 199.7h132c-.1 0-56.6-174.8-56.6-174.8zM.9 287.7c-2.6 8 .3 16.9 7.1 22l247.9 184-226.2-294zm160.8-88l94.3 294 94.3-294zm349.4 88l-28.8-88-226.3 294 247.9-184c6.9-5.1 9.7-14 7.2-22zM425.7 24.9c-3.1-8.9-15.7-8.9-18.9 0l-56.6 174.8h132z\"]\n};\nvar faGitter = {\n prefix: 'fab',\n iconName: 'gitter',\n icon: [384, 512, [], \"f426\", \"M66.4 322.5H16V0h50.4v322.5zM166.9 76.1h-50.4V512h50.4V76.1zm100.6 0h-50.4V512h50.4V76.1zM368 76h-50.4v247H368V76z\"]\n};\nvar faGlide = {\n prefix: 'fab',\n iconName: 'glide',\n icon: [448, 512, [], \"f2a5\", \"M252.8 148.6c0 8.8-1.6 17.7-3.4 26.4-5.8 27.8-11.6 55.8-17.3 83.6-1.4 6.3-8.3 4.9-13.7 4.9-23.8 0-30.5-26-30.5-45.5 0-29.3 11.2-68.1 38.5-83.1 4.3-2.5 9.2-4.2 14.1-4.2 11.4 0 12.3 8.3 12.3 17.9zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-64 187c0-5.1-20.8-37.7-25.5-39.5-2.2-.9-7.2-2.3-9.6-2.3-23.1 0-38.7 10.5-58.2 21.5l-.5-.5c4.3-29.4 14.6-57.2 14.6-87.4 0-44.6-23.8-62.7-67.5-62.7-71.7 0-108 70.8-108 123.5 0 54.7 32 85 86.3 85 7.5 0 6.9-.6 6.9 2.3-10.5 80.3-56.5 82.9-56.5 58.9 0-24.4 28-36.5 28.3-38-.2-7.6-29.3-17.2-36.7-17.2-21.1 0-32.7 33-32.7 50.6 0 32.3 20.4 54.7 53.3 54.7 48.2 0 83.4-49.7 94.3-91.7 9.4-37.7 7-39.4 12.3-42.1 20-10.1 35.8-16.8 58.4-16.8 11.1 0 19 2.3 36.7 5.2 1.8.1 4.1-1.7 4.1-3.5z\"]\n};\nvar faGlideG = {\n prefix: 'fab',\n iconName: 'glide-g',\n icon: [448, 512, [], \"f2a6\", \"M407.1 211.2c-3.5-1.4-11.6-3.8-15.4-3.8-37.1 0-62.2 16.8-93.5 34.5l-.9-.9c7-47.3 23.5-91.9 23.5-140.4C320.8 29.1 282.6 0 212.4 0 97.3 0 39 113.7 39 198.4 39 286.3 90.3 335 177.6 335c12 0 11-1 11 3.8-16.9 128.9-90.8 133.1-90.8 94.6 0-39.2 45-58.6 45.5-61-.3-12.2-47-27.6-58.9-27.6-33.9.1-52.4 51.2-52.4 79.3C32 476 64.8 512 117.5 512c77.4 0 134-77.8 151.4-145.4 15.1-60.5 11.2-63.3 19.7-67.6 32.2-16.2 57.5-27 93.8-27 17.8 0 30.5 3.7 58.9 8.4 2.9 0 6.7-2.9 6.7-5.8 0-8-33.4-60.5-40.9-63.4zm-175.3-84.4c-9.3 44.7-18.6 89.6-27.8 134.3-2.3 10.2-13.3 7.8-22 7.8-38.3 0-49-41.8-49-73.1 0-47 18-109.3 61.8-133.4 7-4.1 14.8-6.7 22.6-6.7 18.6 0 20 13.3 20 28.7-.1 14.3-2.7 28.5-5.6 42.4z\"]\n};\nvar faGofore = {\n prefix: 'fab',\n iconName: 'gofore',\n icon: [400, 512, [], \"f3a7\", \"M324 319.8h-13.2v34.7c-24.5 23.1-56.3 35.8-89.9 35.8-73.2 0-132.4-60.2-132.4-134.4 0-74.1 59.2-134.4 132.4-134.4 35.3 0 68.6 14 93.6 39.4l62.3-63.3C335 55.3 279.7 32 220.7 32 98 32 0 132.6 0 256c0 122.5 97 224 220.7 224 63.2 0 124.5-26.2 171-82.5-2-27.6-13.4-77.7-67.7-77.7zm-12.1-112.5H205.6v89H324c33.5 0 60.5 15.1 76 41.8v-30.6c0-65.2-40.4-100.2-88.1-100.2z\"]\n};\nvar faGoodreads = {\n prefix: 'fab',\n iconName: 'goodreads',\n icon: [448, 512, [], \"f3a8\", \"M299.9 191.2c5.1 37.3-4.7 79-35.9 100.7-22.3 15.5-52.8 14.1-70.8 5.7-37.1-17.3-49.5-58.6-46.8-97.2 4.3-60.9 40.9-87.9 75.3-87.5 46.9-.2 71.8 31.8 78.2 78.3zM448 88v336c0 30.9-25.1 56-56 56H56c-30.9 0-56-25.1-56-56V88c0-30.9 25.1-56 56-56h336c30.9 0 56 25.1 56 56zM330 313.2s-.1-34-.1-217.3h-29v40.3c-.8.3-1.2-.5-1.6-1.2-9.6-20.7-35.9-46.3-76-46-51.9.4-87.2 31.2-100.6 77.8-4.3 14.9-5.8 30.1-5.5 45.6 1.7 77.9 45.1 117.8 112.4 115.2 28.9-1.1 54.5-17 69-45.2.5-1 1.1-1.9 1.7-2.9.2.1.4.1.6.2.3 3.8.2 30.7.1 34.5-.2 14.8-2 29.5-7.2 43.5-7.8 21-22.3 34.7-44.5 39.5-17.8 3.9-35.6 3.8-53.2-1.2-21.5-6.1-36.5-19-41.1-41.8-.3-1.6-1.3-1.3-2.3-1.3h-26.8c.8 10.6 3.2 20.3 8.5 29.2 24.2 40.5 82.7 48.5 128.2 37.4 49.9-12.3 67.3-54.9 67.4-106.3z\"]\n};\nvar faGoodreadsG = {\n prefix: 'fab',\n iconName: 'goodreads-g',\n icon: [384, 512, [], \"f3a9\", \"M42.6 403.3h2.8c12.7 0 25.5 0 38.2.1 1.6 0 3.1-.4 3.6 2.1 7.1 34.9 30 54.6 62.9 63.9 26.9 7.6 54.1 7.8 81.3 1.8 33.8-7.4 56-28.3 68-60.4 8-21.5 10.7-43.8 11-66.5.1-5.8.3-47-.2-52.8l-.9-.3c-.8 1.5-1.7 2.9-2.5 4.4-22.1 43.1-61.3 67.4-105.4 69.1-103 4-169.4-57-172-176.2-.5-23.7 1.8-46.9 8.3-69.7C58.3 47.7 112.3.6 191.6 0c61.3-.4 101.5 38.7 116.2 70.3.5 1.1 1.3 2.3 2.4 1.9V10.6h44.3c0 280.3.1 332.2.1 332.2-.1 78.5-26.7 143.7-103 162.2-69.5 16.9-159 4.8-196-57.2-8-13.5-11.8-28.3-13-44.5zM188.9 36.5c-52.5-.5-108.5 40.7-115 133.8-4.1 59 14.8 122.2 71.5 148.6 27.6 12.9 74.3 15 108.3-8.7 47.6-33.2 62.7-97 54.8-154-9.7-71.1-47.8-120-119.6-119.7z\"]\n};\nvar faGoogle = {\n prefix: 'fab',\n iconName: 'google',\n icon: [488, 512, [], \"f1a0\", \"M488 261.8C488 403.3 391.1 504 248 504 110.8 504 0 393.2 0 256S110.8 8 248 8c66.8 0 123 24.5 166.3 64.9l-67.5 64.9C258.5 52.6 94.3 116.6 94.3 256c0 86.5 69.1 156.6 153.7 156.6 98.2 0 135-70.4 140.8-106.9H248v-85.3h236.1c2.3 12.7 3.9 24.9 3.9 41.4z\"]\n};\nvar faGoogleDrive = {\n prefix: 'fab',\n iconName: 'google-drive',\n icon: [512, 512, [], \"f3aa\", \"M339 314.9L175.4 32h161.2l163.6 282.9H339zm-137.5 23.6L120.9 480h310.5L512 338.5H201.5zM154.1 67.4L0 338.5 80.6 480 237 208.8 154.1 67.4z\"]\n};\nvar faGooglePay = {\n prefix: 'fab',\n iconName: 'google-pay',\n icon: [640, 512, [], \"e079\", \"M105.72,215v41.25h57.1a49.66,49.66,0,0,1-21.14,32.6c-9.54,6.55-21.72,10.28-36,10.28-27.6,0-50.93-18.91-59.3-44.22a65.61,65.61,0,0,1,0-41l0,0c8.37-25.46,31.7-44.37,59.3-44.37a56.43,56.43,0,0,1,40.51,16.08L176.47,155a101.24,101.24,0,0,0-70.75-27.84,105.55,105.55,0,0,0-94.38,59.11,107.64,107.64,0,0,0,0,96.18v.15a105.41,105.41,0,0,0,94.38,59c28.47,0,52.55-9.53,70-25.91,20-18.61,31.41-46.15,31.41-78.91A133.76,133.76,0,0,0,205.38,215Zm389.41-4c-10.13-9.38-23.93-14.14-41.39-14.14-22.46,0-39.34,8.34-50.5,24.86l20.85,13.26q11.45-17,31.26-17a34.05,34.05,0,0,1,22.75,8.79A28.14,28.14,0,0,1,487.79,248v5.51c-9.1-5.07-20.55-7.75-34.64-7.75-16.44,0-29.65,3.88-39.49,11.77s-14.82,18.31-14.82,31.56a39.74,39.74,0,0,0,13.94,31.27c9.25,8.34,21,12.51,34.79,12.51,16.29,0,29.21-7.3,39-21.89h1v17.72h22.61V250C510.25,233.45,505.26,220.34,495.13,211ZM475.9,300.3a37.32,37.32,0,0,1-26.57,11.16A28.61,28.61,0,0,1,431,305.21a19.41,19.41,0,0,1-7.77-15.63c0-7,3.22-12.81,9.54-17.42s14.53-7,24.07-7C470,265,480.3,268,487.64,273.94,487.64,284.07,483.68,292.85,475.9,300.3Zm-93.65-142A55.71,55.71,0,0,0,341.74,142H279.07V328.74H302.7V253.1h39c16,0,29.5-5.36,40.51-15.93.88-.89,1.76-1.79,2.65-2.68A54.45,54.45,0,0,0,382.25,158.26Zm-16.58,62.23a30.65,30.65,0,0,1-23.34,9.68H302.7V165h39.63a32,32,0,0,1,22.6,9.23A33.18,33.18,0,0,1,365.67,220.49ZM614.31,201,577.77,292.7h-.45L539.9,201H514.21L566,320.55l-29.35,64.32H561L640,201Z\"]\n};\nvar faGooglePlay = {\n prefix: 'fab',\n iconName: 'google-play',\n icon: [512, 512, [], \"f3ab\", \"M325.3 234.3L104.6 13l280.8 161.2-60.1 60.1zM47 0C34 6.8 25.3 19.2 25.3 35.3v441.3c0 16.1 8.7 28.5 21.7 35.3l256.6-256L47 0zm425.2 225.6l-58.9-34.1-65.7 64.5 65.7 64.5 60.1-34.1c18-14.3 18-46.5-1.2-60.8zM104.6 499l280.8-161.2-60.1-60.1L104.6 499z\"]\n};\nvar faGooglePlus = {\n prefix: 'fab',\n iconName: 'google-plus',\n icon: [512, 512, [], \"f2b3\", \"M256,8C119.1,8,8,119.1,8,256S119.1,504,256,504,504,392.9,504,256,392.9,8,256,8ZM185.3,380a124,124,0,0,1,0-248c31.3,0,60.1,11,83,32.3l-33.6,32.6c-13.2-12.9-31.3-19.1-49.4-19.1-42.9,0-77.2,35.5-77.2,78.1S142.3,334,185.3,334c32.6,0,64.9-19.1,70.1-53.3H185.3V238.1H302.2a109.2,109.2,0,0,1,1.9,20.7c0,70.8-47.5,121.2-118.8,121.2ZM415.5,273.8v35.5H380V273.8H344.5V238.3H380V202.8h35.5v35.5h35.2v35.5Z\"]\n};\nvar faGooglePlusG = {\n prefix: 'fab',\n iconName: 'google-plus-g',\n icon: [640, 512, [], \"f0d5\", \"M386.061 228.496c1.834 9.692 3.143 19.384 3.143 31.956C389.204 370.205 315.599 448 204.8 448c-106.084 0-192-85.915-192-192s85.916-192 192-192c51.864 0 95.083 18.859 128.611 50.292l-52.126 50.03c-14.145-13.621-39.028-29.599-76.485-29.599-65.484 0-118.92 54.221-118.92 121.277 0 67.056 53.436 121.277 118.92 121.277 75.961 0 104.513-54.745 108.965-82.773H204.8v-66.009h181.261zm185.406 6.437V179.2h-56.001v55.733h-55.733v56.001h55.733v55.733h56.001v-55.733H627.2v-56.001h-55.733z\"]\n};\nvar faGooglePlusSquare = {\n prefix: 'fab',\n iconName: 'google-plus-square',\n icon: [448, 512, [], \"f0d4\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM164 356c-55.3 0-100-44.7-100-100s44.7-100 100-100c27 0 49.5 9.8 67 26.2l-27.1 26.1c-7.4-7.1-20.3-15.4-39.8-15.4-34.1 0-61.9 28.2-61.9 63.2 0 34.9 27.8 63.2 61.9 63.2 39.6 0 54.4-28.5 56.8-43.1H164v-34.4h94.4c1 5 1.6 10.1 1.6 16.6 0 57.1-38.3 97.6-96 97.6zm220-81.8h-29v29h-29.2v-29h-29V245h29v-29H355v29h29v29.2z\"]\n};\nvar faGoogleWallet = {\n prefix: 'fab',\n iconName: 'google-wallet',\n icon: [448, 512, [], \"f1ee\", \"M156.8 126.8c37.6 60.6 64.2 113.1 84.3 162.5-8.3 33.8-18.8 66.5-31.3 98.3-13.2-52.3-26.5-101.3-56-148.5 6.5-36.4 2.3-73.6 3-112.3zM109.3 200H16.1c-6.5 0-10.5 7.5-6.5 12.7C51.8 267 81.3 330.5 101.3 400h103.5c-16.2-69.7-38.7-133.7-82.5-193.5-3-4-8-6.5-13-6.5zm47.8-88c68.5 108 130 234.5 138.2 368H409c-12-138-68.4-265-143.2-368H157.1zm251.8-68.5c-1.8-6.8-8.2-11.5-15.2-11.5h-88.3c-5.3 0-9 5-7.8 10.3 13.2 46.5 22.3 95.5 26.5 146 48.2 86.2 79.7 178.3 90.6 270.8 15.8-60.5 25.3-133.5 25.3-203 0-73.6-12.1-145.1-31.1-212.6z\"]\n};\nvar faGratipay = {\n prefix: 'fab',\n iconName: 'gratipay',\n icon: [496, 512, [], \"f184\", \"M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm114.6 226.4l-113 152.7-112.7-152.7c-8.7-11.9-19.1-50.4 13.6-72 28.1-18.1 54.6-4.2 68.5 11.9 15.9 17.9 46.6 16.9 61.7 0 13.9-16.1 40.4-30 68.1-11.9 32.9 21.6 22.6 60 13.8 72z\"]\n};\nvar faGrav = {\n prefix: 'fab',\n iconName: 'grav',\n icon: [512, 512, [], \"f2d6\", \"M301.1 212c4.4 4.4 4.4 11.9 0 16.3l-9.7 9.7c-4.4 4.7-11.9 4.7-16.6 0l-10.5-10.5c-4.4-4.7-4.4-11.9 0-16.6l9.7-9.7c4.4-4.4 11.9-4.4 16.6 0l10.5 10.8zm-30.2-19.7c3-3 3-7.8 0-10.5-2.8-3-7.5-3-10.5 0-2.8 2.8-2.8 7.5 0 10.5 3.1 2.8 7.8 2.8 10.5 0zm-26 5.3c-3 2.8-3 7.5 0 10.2 2.8 3 7.5 3 10.5 0 2.8-2.8 2.8-7.5 0-10.2-3-3-7.7-3-10.5 0zm72.5-13.3c-19.9-14.4-33.8-43.2-11.9-68.1 21.6-24.9 40.7-17.2 59.8.8 11.9 11.3 29.3 24.9 17.2 48.2-12.5 23.5-45.1 33.2-65.1 19.1zm47.7-44.5c-8.9-10-23.3 6.9-15.5 16.1 7.4 9 32.1 2.4 15.5-16.1zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-66.2 42.6c2.5-16.1-20.2-16.6-25.2-25.7-13.6-24.1-27.7-36.8-54.5-30.4 11.6-8 23.5-6.1 23.5-6.1.3-6.4 0-13-9.4-24.9 3.9-12.5.3-22.4.3-22.4 15.5-8.6 26.8-24.4 29.1-43.2 3.6-31-18.8-59.2-49.8-62.8-22.1-2.5-43.7 7.7-54.3 25.7-23.2 40.1 1.4 70.9 22.4 81.4-14.4-1.4-34.3-11.9-40.1-34.3-6.6-25.7 2.8-49.8 8.9-61.4 0 0-4.4-5.8-8-8.9 0 0-13.8 0-24.6 5.3 11.9-15.2 25.2-14.4 25.2-14.4 0-6.4-.6-14.9-3.6-21.6-5.4-11-23.8-12.9-31.7 2.8.1-.2.3-.4.4-.5-5 11.9-1.1 55.9 16.9 87.2-2.5 1.4-9.1 6.1-13 10-21.6 9.7-56.2 60.3-56.2 60.3-28.2 10.8-77.2 50.9-70.6 79.7.3 3 1.4 5.5 3 7.5-2.8 2.2-5.5 5-8.3 8.3-11.9 13.8-5.3 35.2 17.7 24.4 15.8-7.2 29.6-20.2 36.3-30.4 0 0-5.5-5-16.3-4.4 27.7-6.6 34.3-9.4 46.2-9.1 8 3.9 8-34.3 8-34.3 0-14.7-2.2-31-11.1-41.5 12.5 12.2 29.1 32.7 28 60.6-.8 18.3-15.2 23-15.2 23-9.1 16.6-43.2 65.9-30.4 106 0 0-9.7-14.9-10.2-22.1-17.4 19.4-46.5 52.3-24.6 64.5 26.6 14.7 108.8-88.6 126.2-142.3 34.6-20.8 55.4-47.3 63.9-65 22 43.5 95.3 94.5 101.1 59z\"]\n};\nvar faGripfire = {\n prefix: 'fab',\n iconName: 'gripfire',\n icon: [384, 512, [], \"f3ac\", \"M112.5 301.4c0-73.8 105.1-122.5 105.1-203 0-47.1-34-88-39.1-90.4.4 3.3.6 6.7.6 10C179.1 110.1 32 171.9 32 286.6c0 49.8 32.2 79.2 66.5 108.3 65.1 46.7 78.1 71.4 78.1 86.6 0 10.1-4.8 17-4.8 22.3 13.1-16.7 17.4-31.9 17.5-46.4 0-29.6-21.7-56.3-44.2-86.5-16-22.3-32.6-42.6-32.6-69.5zm205.3-39c-12.1-66.8-78-124.4-94.7-130.9l4 7.2c2.4 5.1 3.4 10.9 3.4 17.1 0 44.7-54.2 111.2-56.6 116.7-2.2 5.1-3.2 10.5-3.2 15.8 0 20.1 15.2 42.1 17.9 42.1 2.4 0 56.6-55.4 58.1-87.7 6.4 11.7 9.1 22.6 9.1 33.4 0 41.2-41.8 96.9-41.8 96.9 0 11.6 31.9 53.2 35.5 53.2 1 0 2.2-1.4 3.2-2.4 37.9-39.3 67.3-85 67.3-136.8 0-8-.7-16.2-2.2-24.6z\"]\n};\nvar faGrunt = {\n prefix: 'fab',\n iconName: 'grunt',\n icon: [384, 512, [], \"f3ad\", \"M61.3 189.3c-1.1 10 5.2 19.1 5.2 19.1.7-7.5 2.2-12.8 4-16.6.4 10.3 3.2 23.5 12.8 34.1 6.9 7.6 35.6 23.3 54.9 6.1 1 2.4 2.1 5.3 3 8.5 2.9 10.3-2.7 25.3-2.7 25.3s15.1-17.1 13.9-32.5c10.8-.5 21.4-8.4 21.1-19.5 0 0-18.9 10.4-35.5-8.8-9.7-11.2-40.9-42-83.1-31.8 4.3 1 8.9 2.4 13.5 4.1h-.1c-4.2 2-6.5 7.1-7 12zm28.3-1.8c19.5 11 37.4 25.7 44.9 37-5.7 3.3-21.7 10.4-38-1.7-10.3-7.6-9.8-26.2-6.9-35.3zm142.1 45.8c-1.2 15.5 13.9 32.5 13.9 32.5s-5.6-15-2.7-25.3c.9-3.2 2-6 3-8.5 19.3 17.3 48 1.5 54.8-6.1 9.6-10.6 12.3-23.8 12.8-34.1 1.8 3.8 3.4 9.1 4 16.6 0 0 6.4-9.1 5.2-19.1-.6-5-2.9-10-7-11.8h-.1c4.6-1.8 9.2-3.2 13.5-4.1-42.3-10.2-73.4 20.6-83.1 31.8-16.7 19.2-35.5 8.8-35.5 8.8-.2 10.9 10.4 18.9 21.2 19.3zm62.7-45.8c3 9.1 3.4 27.7-7 35.4-16.3 12.1-32.2 5-37.9 1.6 7.5-11.4 25.4-26 44.9-37zM160 418.5h-29.4c-5.5 0-8.2 1.6-9.5 2.9-1.9 2-2.2 4.7-.9 8.1 3.5 9.1 11.4 16.5 13.7 18.6 3.1 2.7 7.5 4.3 11.8 4.3 4.4 0 8.3-1.7 11-4.6 7.5-8.2 11.9-17.1 13-19.8.6-1.5 1.3-4.5-.9-6.8-1.8-1.8-4.7-2.7-8.8-2.7zm189.2-101.2c-2.4 17.9-13 33.8-24.6 43.7-3.1-22.7-3.7-55.5-3.7-62.4 0-14.7 9.5-24.5 12.2-26.1 2.5-1.5 5.4-3 8.3-4.6 18-9.6 40.4-21.6 40.4-43.7 0-16.2-9.3-23.2-15.4-27.8-.8-.6-1.5-1.1-2.2-1.7-2.1-1.7-3.7-3-4.3-4.4-4.4-9.8-3.6-34.2-1.7-37.6.6-.6 16.7-20.9 11.8-39.2-2-7.4-6.9-13.3-14.1-17-5.3-2.7-11.9-4.2-19.5-4.5-.1-2-.5-3.9-.9-5.9-.6-2.6-1.1-5.3-.9-8.1.4-4.7.8-9 2.2-11.3 8.4-13.3 28.8-17.6 29-17.6l12.3-2.4-8.1-9.5c-.1-.2-17.3-17.5-46.3-17.5-7.9 0-16 1.3-24.1 3.9-24.2 7.8-42.9 30.5-49.4 39.3-3.1-1-6.3-1.9-9.6-2.7-4.2-15.8 9-38.5 9-38.5s-13.6-3-33.7 15.2c-2.6-6.5-8.1-20.5-1.8-37.2C184.6 10.1 177.2 26 175 40.4c-7.6-5.4-6.7-23.1-7.2-27.6-7.5.9-29.2 21.9-28.2 48.3-2 .5-3.9 1.1-5.9 1.7-6.5-8.8-25.1-31.5-49.4-39.3-7.9-2.2-16-3.5-23.9-3.5-29 0-46.1 17.3-46.3 17.5L6 46.9l12.3 2.4c.2 0 20.6 4.3 29 17.6 1.4 2.2 1.8 6.6 2.2 11.3.2 2.8-.4 5.5-.9 8.1-.4 1.9-.8 3.9-.9 5.9-7.7.3-14.2 1.8-19.5 4.5-7.2 3.7-12.1 9.6-14.1 17-5 18.2 11.2 38.5 11.8 39.2 1.9 3.4 2.7 27.8-1.7 37.6-.6 1.4-2.2 2.7-4.3 4.4-.7.5-1.4 1.1-2.2 1.7-6.1 4.6-15.4 11.7-15.4 27.8 0 22.1 22.4 34.1 40.4 43.7 3 1.6 5.8 3.1 8.3 4.6 2.7 1.6 12.2 11.4 12.2 26.1 0 6.9-.6 39.7-3.7 62.4-11.6-9.9-22.2-25.9-24.6-43.8 0 0-29.2 22.6-20.6 70.8 5.2 29.5 23.2 46.1 47 54.7 8.8 19.1 29.4 45.7 67.3 49.6C143 504.3 163 512 192.2 512h.2c29.1 0 49.1-7.7 63.6-19.5 37.9-3.9 58.5-30.5 67.3-49.6 23.8-8.7 41.7-25.2 47-54.7 8.2-48.4-21.1-70.9-21.1-70.9zM305.7 37.7c5.6-1.8 11.6-2.7 17.7-2.7 11 0 19.9 3 24.7 5-3.1 1.4-6.4 3.2-9.7 5.3-2.4-.4-5.6-.8-9.2-.8-10.5 0-20.5 3.1-28.7 8.9-12.3 8.7-18 16.9-20.7 22.4-2.2-1.3-4.5-2.5-7.1-3.7-1.6-.8-3.1-1.5-4.7-2.2 6.1-9.1 19.9-26.5 37.7-32.2zm21 18.2c-.8 1-1.6 2.1-2.3 3.2-3.3 5.2-3.9 11.6-4.4 17.8-.5 6.4-1.1 12.5-4.4 17-4.2.8-8.1 1.7-11.5 2.7-2.3-3.1-5.6-7-10.5-11.2 1.4-4.8 5.5-16.1 13.5-22.5 5.6-4.3 12.2-6.7 19.6-7zM45.6 45.3c-3.3-2.2-6.6-4-9.7-5.3 4.8-2 13.7-5 24.7-5 6.1 0 12 .9 17.7 2.7 17.8 5.8 31.6 23.2 37.7 32.1-1.6.7-3.2 1.4-4.8 2.2-2.5 1.2-4.9 2.5-7.1 3.7-2.6-5.4-8.3-13.7-20.7-22.4-8.3-5.8-18.2-8.9-28.8-8.9-3.4.1-6.6.5-9 .9zm44.7 40.1c-4.9 4.2-8.3 8-10.5 11.2-3.4-.9-7.3-1.9-11.5-2.7C65 89.5 64.5 83.4 64 77c-.5-6.2-1.1-12.6-4.4-17.8-.7-1.1-1.5-2.2-2.3-3.2 7.4.3 14 2.6 19.5 7 8 6.3 12.1 17.6 13.5 22.4zM58.1 259.9c-2.7-1.6-5.6-3.1-8.4-4.6-14.9-8-30.2-16.3-30.2-30.5 0-11.1 4.3-14.6 8.9-18.2l.5-.4c.7-.6 1.4-1.2 2.2-1.8-.9 7.2-1.9 13.3-2.7 14.9 0 0 12.1-15 15.7-44.3 1.4-11.5-1.1-34.3-5.1-43 .2 4.9 0 9.8-.3 14.4-.4-.8-.8-1.6-1.3-2.2-3.2-4-11.8-17.5-9.4-26.6.9-3.5 3.1-6 6.7-7.8 3.8-1.9 8.8-2.9 15.1-2.9 12.3 0 25.9 3.7 32.9 6 25.1 8 55.4 30.9 64.1 37.7.2.2.4.3.4.3l5.6 3.9-3.5-5.8c-.2-.3-19.1-31.4-53.2-46.5 2-2.9 7.4-8.1 21.6-15.1 21.4-10.5 46.5-15.8 74.3-15.8 27.9 0 52.9 5.3 74.3 15.8 14.2 6.9 19.6 12.2 21.6 15.1-34 15.1-52.9 46.2-53.1 46.5l-3.5 5.8 5.6-3.9s.2-.1.4-.3c8.7-6.8 39-29.8 64.1-37.7 7-2.2 20.6-6 32.9-6 6.3 0 11.3 1 15.1 2.9 3.5 1.8 5.7 4.4 6.7 7.8 2.5 9.1-6.1 22.6-9.4 26.6-.5.6-.9 1.3-1.3 2.2-.3-4.6-.5-9.5-.3-14.4-4 8.8-6.5 31.5-5.1 43 3.6 29.3 15.7 44.3 15.7 44.3-.8-1.6-1.8-7.7-2.7-14.9.7.6 1.5 1.2 2.2 1.8l.5.4c4.6 3.7 8.9 7.1 8.9 18.2 0 14.2-15.4 22.5-30.2 30.5-2.9 1.5-5.7 3.1-8.4 4.6-8.7 5-18 16.7-19.1 34.2-.9 14.6.9 49.9 3.4 75.9-12.4 4.8-26.7 6.4-39.7 6.8-2-4.1-3.9-8.5-5.5-13.1-.7-2-19.6-51.1-26.4-62.2 5.5 39 17.5 73.7 23.5 89.6-3.5-.5-7.3-.7-11.7-.7h-117c-4.4 0-8.3.3-11.7.7 6-15.9 18.1-50.6 23.5-89.6-6.8 11.2-25.7 60.3-26.4 62.2-1.6 4.6-3.5 9-5.5 13.1-13-.4-27.2-2-39.7-6.8 2.5-26 4.3-61.2 3.4-75.9-.9-17.4-10.3-29.2-19-34.2zM34.8 404.6c-12.1-20-8.7-54.1-3.7-59.1 10.9 34.4 47.2 44.3 74.4 45.4-2.7 4.2-5.2 7.6-7 10l-1.4 1.4c-7.2 7.8-8.6 18.5-4.1 31.8-22.7-.1-46.3-9.8-58.2-29.5zm45.7 43.5c6 1.1 12.2 1.9 18.6 2.4 3.5 8 7.4 15.9 12.3 23.1-14.4-5.9-24.4-16-30.9-25.5zM192 498.2c-60.6-.1-78.3-45.8-84.9-64.7-3.7-10.5-3.4-18.2.9-23.1 2.9-3.3 9.5-7.2 24.6-7.2h118.8c15.1 0 21.8 3.9 24.6 7.2 4.2 4.8 4.5 12.6.9 23.1-6.6 18.8-24.3 64.6-84.9 64.7zm80.6-24.6c4.9-7.2 8.8-15.1 12.3-23.1 6.4-.5 12.6-1.3 18.6-2.4-6.5 9.5-16.5 19.6-30.9 25.5zm76.6-69c-12 19.7-35.6 29.3-58.1 29.7 4.5-13.3 3.1-24.1-4.1-31.8-.4-.5-.9-1-1.4-1.5-1.8-2.4-4.3-5.8-7-10 27.2-1.2 63.5-11 74.4-45.4 5 5 8.4 39.1-3.8 59zM191.9 187.7h.2c12.7-.1 27.2-17.8 27.2-17.8-9.9 6-18.8 8.1-27.3 8.3-8.5-.2-17.4-2.3-27.3-8.3 0 0 14.5 17.6 27.2 17.8zm61.7 230.7h-29.4c-4.2 0-7.2.9-8.9 2.7-2.2 2.3-1.5 5.2-.9 6.7 1 2.6 5.5 11.3 13 19.3 2.7 2.9 6.6 4.5 11 4.5s8.7-1.6 11.8-4.2c2.3-2 10.2-9.2 13.7-18.1 1.3-3.3 1-6-.9-7.9-1.3-1.3-4-2.9-9.4-3z\"]\n};\nvar faGuilded = {\n prefix: 'fab',\n iconName: 'guilded',\n icon: [448, 512, [], \"e07e\", \"M443.427,64H4.571c0,103.26,22.192,180.06,43.418,222.358C112.046,414.135,224,448,225.256,448a312.824,312.824,0,0,0,140.55-103.477c25.907-33.923,53.1-87.19,65.916-145.761H171.833c4.14,36.429,22.177,67.946,45.1,86.944h88.589c-17.012,28.213-48.186,54.4-80.456,69.482-31.232-13.259-69.09-46.544-96.548-98.362-26.726-53.833-27.092-105.883-27.092-105.883H437.573A625.91,625.91,0,0,0,443.427,64Z\"]\n};\nvar faGulp = {\n prefix: 'fab',\n iconName: 'gulp',\n icon: [256, 512, [], \"f3ae\", \"M209.8 391.1l-14.1 24.6-4.6 80.2c0 8.9-28.3 16.1-63.1 16.1s-63.1-7.2-63.1-16.1l-5.8-79.4-14.9-25.4c41.2 17.3 126 16.7 165.6 0zm-196-253.3l13.6 125.5c5.9-20 20.8-47 40-55.2 6.3-2.7 12.7-2.7 18.7.9 5.2 3 9.6 9.3 10.1 11.8 1.2 6.5-2 9.1-4.5 9.1-3 0-5.3-4.6-6.8-7.3-4.1-7.3-10.3-7.6-16.9-2.8-6.9 5-12.9 13.4-17.1 20.7-5.1 8.8-9.4 18.5-12 28.2-1.5 5.6-2.9 14.6-.6 19.9 1 2.2 2.5 3.6 4.9 3.6 5 0 12.3-6.6 15.8-10.1 4.5-4.5 10.3-11.5 12.5-16l5.2-15.5c2.6-6.8 9.9-5.6 9.9 0 0 10.2-3.7 13.6-10 34.7-5.8 19.5-7.6 25.8-7.6 25.8-.7 2.8-3.4 7.5-6.3 7.5-1.2 0-2.1-.4-2.6-1.2-1-1.4-.9-5.3-.8-6.3.2-3.2 6.3-22.2 7.3-25.2-2 2.2-4.1 4.4-6.4 6.6-5.4 5.1-14.1 11.8-21.5 11.8-3.4 0-5.6-.9-7.7-2.4l7.6 79.6c2 5 39.2 17.1 88.2 17.1 49.1 0 86.3-12.2 88.2-17.1l10.9-94.6c-5.7 5.2-12.3 11.6-19.6 14.8-5.4 2.3-17.4 3.8-17.4-5.7 0-5.2 9.1-14.8 14.4-21.5 1.4-1.7 4.7-5.9 4.7-8.1 0-2.9-6-2.2-11.7 2.5-3.2 2.7-6.2 6.3-8.7 9.7-4.3 6-6.6 11.2-8.5 15.5-6.2 14.2-4.1 8.6-9.1 22-5 13.3-4.2 11.8-5.2 14-.9 1.9-2.2 3.5-4 4.5-1.9 1-4.5.9-6.1-.3-.9-.6-1.3-1.9-1.3-3.7 0-.9.1-1.8.3-2.7 1.5-6.1 7.8-18.1 15-34.3 1.6-3.7 1-2.6.8-2.3-6.2 6-10.9 8.9-14.4 10.5-5.8 2.6-13 2.6-14.5-4.1-.1-.4-.1-.8-.2-1.2-11.8 9.2-24.3 11.7-20-8.1-4.6 8.2-12.6 14.9-22.4 14.9-4.1 0-7.1-1.4-8.6-5.1-2.3-5.5 1.3-14.9 4.6-23.8 1.7-4.5 4-9.9 7.1-16.2 1.6-3.4 4.2-5.4 7.6-4.5.6.2 1.1.4 1.6.7 2.6 1.8 1.6 4.5.3 7.2-3.8 7.5-7.1 13-9.3 20.8-.9 3.3-2 9 1.5 9 2.4 0 4.7-.8 6.9-2.4 4.6-3.4 8.3-8.5 11.1-13.5 2-3.6 4.4-8.3 5.6-12.3.5-1.7 1.1-3.3 1.8-4.8 1.1-2.5 2.6-5.1 5.2-5.1 1.3 0 2.4.5 3.2 1.5 1.7 2.2 1.3 4.5.4 6.9-2 5.6-4.7 10.6-6.9 16.7-1.3 3.5-2.7 8-2.7 11.7 0 3.4 3.7 2.6 6.8 1.2 2.4-1.1 4.8-2.8 6.8-4.5 1.2-4.9.9-3.8 26.4-68.2 1.3-3.3 3.7-4.7 6.1-4.7 1.2 0 2.2.4 3.2 1.1 1.7 1.3 1.7 4.1 1 6.2-.7 1.9-.6 1.3-4.5 10.5-5.2 12.1-8.6 20.8-13.2 31.9-1.9 4.6-7.7 18.9-8.7 22.3-.6 2.2-1.3 5.8 1 5.8 5.4 0 19.3-13.1 23.1-17 .2-.3.5-.4.9-.6.6-1.9 1.2-3.7 1.7-5.5 1.4-3.8 2.7-8.2 5.3-11.3.8-1 1.7-1.6 2.7-1.6 2.8 0 4.2 1.2 4.2 4 0 1.1-.7 5.1-1.1 6.2 1.4-1.5 2.9-3 4.5-4.5 15-13.9 25.7-6.8 25.7.2 0 7.4-8.9 17.7-13.8 23.4-1.6 1.9-4.9 5.4-5 6.4 0 1.3.9 1.8 2.2 1.8 2 0 6.4-3.5 8-4.7 5-3.9 11.8-9.9 16.6-14.1l14.8-136.8c-30.5 17.1-197.6 17.2-228.3.2zm229.7-8.5c0 21-231.2 21-231.2 0 0-8.8 51.8-15.9 115.6-15.9 9 0 17.8.1 26.3.4l12.6-48.7L228.1.6c1.4-1.4 5.8-.2 9.9 3.5s6.6 7.9 5.3 9.3l-.1.1L185.9 74l-10 40.7c39.9 2.6 67.6 8.1 67.6 14.6zm-69.4 4.6c0-.8-.9-1.5-2.5-2.1l-.2.8c0 1.3-5 2.4-11.1 2.4s-11.1-1.1-11.1-2.4c0-.1 0-.2.1-.3l.2-.7c-1.8.6-3 1.4-3 2.3 0 2.1 6.2 3.7 13.7 3.7 7.7.1 13.9-1.6 13.9-3.7z\"]\n};\nvar faHackerNews = {\n prefix: 'fab',\n iconName: 'hacker-news',\n icon: [448, 512, [], \"f1d4\", \"M0 32v448h448V32H0zm21.2 197.2H21c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4zm218 53.9V384h-31.4V281.3L128 128h37.3c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6H320l-80.8 155.1z\"]\n};\nvar faHackerNewsSquare = {\n prefix: 'fab',\n iconName: 'hacker-news-square',\n icon: [448, 512, [], \"f3af\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM21.2 229.2H21c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4zm218 53.9V384h-31.4V281.3L128 128h37.3c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6H320l-80.8 155.1z\"]\n};\nvar faHackerrank = {\n prefix: 'fab',\n iconName: 'hackerrank',\n icon: [512, 512, [], \"f5f7\", \"M477.5 128C463 103.05 285.13 0 256.16 0S49.25 102.79 34.84 128s-14.49 230.8 0 256 192.38 128 221.32 128S463 409.08 477.49 384s14.51-231 .01-256zM316.13 414.22c-4 0-40.91-35.77-38-38.69.87-.87 6.26-1.48 17.55-1.83 0-26.23.59-68.59.94-86.32 0-2-.44-3.43-.44-5.85h-79.93c0 7.1-.46 36.2 1.37 72.88.23 4.54-1.58 6-5.74 5.94-10.13 0-20.27-.11-30.41-.08-4.1 0-5.87-1.53-5.74-6.11.92-33.44 3-84-.15-212.67v-3.17c-9.67-.35-16.38-1-17.26-1.84-2.92-2.92 34.54-38.69 38.49-38.69s41.17 35.78 38.27 38.69c-.87.87-7.9 1.49-16.77 1.84v3.16c-2.42 25.75-2 79.59-2.63 105.39h80.26c0-4.55.39-34.74-1.2-83.64-.1-3.39.95-5.17 4.21-5.2 11.07-.08 22.15-.13 33.23-.06 3.46 0 4.57 1.72 4.5 5.38C333 354.64 336 341.29 336 373.69c8.87.35 16.82 1 17.69 1.84 2.88 2.91-33.62 38.69-37.58 38.69z\"]\n};\nvar faHips = {\n prefix: 'fab',\n iconName: 'hips',\n icon: [640, 512, [], \"f452\", \"M251.6 157.6c0-1.9-.9-2.8-2.8-2.8h-40.9c-1.6 0-2.7 1.4-2.7 2.8v201.8c0 1.4 1.1 2.8 2.7 2.8h40.9c1.9 0 2.8-.9 2.8-2.8zM156.5 168c-16.1-11.8-36.3-17.9-60.3-18-18.1-.1-34.6 3.7-49.8 11.4V80.2c0-1.8-.9-2.7-2.8-2.7H2.7c-1.8 0-2.7.9-2.7 2.7v279.2c0 1.9.9 2.8 2.7 2.8h41c1.9 0 2.8-.9 2.8-2.8V223.3c0-.8-2.8-27 45.8-27 48.5 0 45.8 26.1 45.8 27v122.6c0 9 7.3 16.3 16.4 16.3h27.3c1.8 0 2.7-.9 2.7-2.8V223.3c0-23.4-9.3-41.8-28-55.3zm478.4 110.1c-6.8-15.7-18.4-27-34.9-34.1l-57.6-25.3c-8.6-3.6-9.2-11.2-2.6-16.1 7.4-5.5 44.3-13.9 84 6.8 1.7 1 4-.3 4-2.4v-44.7c0-1.3-.6-2.1-1.9-2.6-17.7-6.6-36.1-9.9-55.1-9.9-26.5 0-45.3 5.8-58.5 15.4-.5.4-28.4 20-22.7 53.7 3.4 19.6 15.8 34.2 37.2 43.6l53.6 23.5c11.6 5.1 15.2 13.3 12.2 21.2-3.7 9.1-13.2 13.6-36.5 13.6-24.3 0-44.7-8.9-58.4-19.1-2.1-1.4-4.4.2-4.4 2.3v34.4c0 10.4 4.9 17.3 14.6 20.7 15.6 5.5 31.6 8.2 48.2 8.2 12.7 0 25.8-1.2 36.3-4.3.7-.3 36-8.9 45.6-45.8 3.5-13.5 2.4-26.5-3.1-39.1zM376.2 149.8c-31.7 0-104.2 20.1-104.2 103.5v183.5c0 .8.6 2.7 2.7 2.7h40.9c1.9 0 2.8-.9 2.8-2.7V348c16.5 12.7 35.8 19.1 57.7 19.1 60.5 0 108.7-48.5 108.7-108.7.1-60.3-48.2-108.6-108.6-108.6zm0 170.9c-17.2 0-31.9-6.1-44-18.2-12.2-12.2-18.2-26.8-18.2-44 0-34.5 27.6-62.2 62.2-62.2 34.5 0 62.2 27.6 62.2 62.2.1 34.3-27.3 62.2-62.2 62.2zM228.3 72.5c-15.9 0-28.8 12.9-28.9 28.9 0 15.6 12.7 28.9 28.9 28.9s28.9-13.1 28.9-28.9c0-16.2-13-28.9-28.9-28.9z\"]\n};\nvar faHireAHelper = {\n prefix: 'fab',\n iconName: 'hire-a-helper',\n icon: [512, 512, [], \"f3b0\", \"M443.1 0H71.9C67.9 37.3 37.4 67.8 0 71.7v371.5c37.4 4.9 66 32.4 71.9 68.8h372.2c3-36.4 32.5-65.8 67.9-69.8V71.7c-36.4-5.9-65-35.3-68.9-71.7zm-37 404.9c-36.3 0-18.8-2-55.1-2-35.8 0-21 2-56.1 2-5.9 0-4.9-8.2 0-9.8 22.8-7.6 22.9-10.2 24.6-12.8 10.4-15.6 5.9-83 5.9-113 0-5.3-6.4-12.8-13.8-12.8H200.4c-7.4 0-13.8 7.5-13.8 12.8 0 30-4.5 97.4 5.9 113 1.7 2.5 1.8 5.2 24.6 12.8 4.9 1.6 6 9.8 0 9.8-35.1 0-20.3-2-56.1-2-36.3 0-18.8 2-55.1 2-7.9 0-5.8-10.8 0-10.8 10.2-3.4 13.5-3.5 21.7-13.8 7.7-12.9 7.9-44.4 7.9-127.8V151.3c0-22.2-12.2-28.3-28.6-32.4-8.8-2.2-4-11.8 1-11.8 36.5 0 20.6 2 57.1 2 32.7 0 16.5-2 49.2-2 3.3 0 8.5 8.3 1 10.8-4.9 1.6-27.6 3.7-27.6 39.3 0 45.6-.2 55.8 1 68.8 0 1.3 2.3 12.8 12.8 12.8h109.2c10.5 0 12.8-11.5 12.8-12.8 1.2-13 1-23.2 1-68.8 0-35.6-22.7-37.7-27.6-39.3-7.5-2.5-2.3-10.8 1-10.8 32.7 0 16.5 2 49.2 2 36.5 0 20.6-2 57.1-2 4.9 0 9.9 9.6 1 11.8-16.4 4.1-28.6 10.3-28.6 32.4v101.2c0 83.4.1 114.9 7.9 127.8 8.2 10.2 11.4 10.4 21.7 13.8 5.8 0 7.8 10.8 0 10.8z\"]\n};\nvar faHive = {\n prefix: 'fab',\n iconName: 'hive',\n icon: [512, 512, [], \"e07f\", \"M260.353,254.878,131.538,33.1a2.208,2.208,0,0,0-3.829.009L.3,254.887A2.234,2.234,0,0,0,.3,257.122L129.116,478.9a2.208,2.208,0,0,0,3.83-.009L260.358,257.113A2.239,2.239,0,0,0,260.353,254.878Zm39.078-25.713a2.19,2.19,0,0,0,1.9,1.111h66.509a2.226,2.226,0,0,0,1.9-3.341L259.115,33.111a2.187,2.187,0,0,0-1.9-1.111H190.707a2.226,2.226,0,0,0-1.9,3.341ZM511.7,254.886,384.9,33.112A2.2,2.2,0,0,0,382.99,32h-66.6a2.226,2.226,0,0,0-1.906,3.34L440.652,256,314.481,476.66a2.226,2.226,0,0,0,1.906,3.34h66.6a2.2,2.2,0,0,0,1.906-1.112L511.7,257.114A2.243,2.243,0,0,0,511.7,254.886ZM366.016,284.917H299.508a2.187,2.187,0,0,0-1.9,1.111l-108.8,190.631a2.226,2.226,0,0,0,1.9,3.341h66.509a2.187,2.187,0,0,0,1.9-1.111l108.8-190.631A2.226,2.226,0,0,0,366.016,284.917Z\"]\n};\nvar faHooli = {\n prefix: 'fab',\n iconName: 'hooli',\n icon: [640, 512, [], \"f427\", \"M144.5 352l38.3.8c-13.2-4.6-26-10.2-38.3-16.8zm57.7-5.3v5.3l-19.4.8c36.5 12.5 69.9 14.2 94.7 7.2-19.9.2-45.8-2.6-75.3-13.3zm408.9-115.2c15.9 0 28.9-12.9 28.9-28.9s-12.9-24.5-28.9-24.5c-15.9 0-28.9 8.6-28.9 24.5s12.9 28.9 28.9 28.9zm-29 120.5H640V241.5h-57.9zm-73.7 0h57.9V156.7L508.4 184zm-31-119.4c-18.2-18.2-50.4-17.1-50.4-17.1s-32.3-1.1-50.4 17.1c-18.2 18.2-16.8 33.9-16.8 52.6s-1.4 34.3 16.8 52.5 50.4 17.1 50.4 17.1 32.3 1.1 50.4-17.1c18.2-18.2 16.8-33.8 16.8-52.5-.1-18.8 1.3-34.5-16.8-52.6zm-39.8 71.9c0 3.6-1.8 12.5-10.7 12.5s-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9s10.7 2.1 10.7 10.9zm-106.2-71.9c-18.2-18.2-50.4-17.1-50.4-17.1s-32.2-1.1-50.4 17.1c-1.9 1.9-3.7 3.9-5.3 6-38.2-29.6-72.5-46.5-102.1-61.1v-20.7l-22.5 10.6c-54.4-22.1-89-18.2-97.3.1 0 0-24.9 32.8 61.8 110.8V352h57.9v-28.6c-6.5-4.2-13-8.7-19.4-13.6-14.8-11.2-27.4-21.6-38.4-31.4v-31c13.1 14.7 30.5 31.4 53.4 50.3l4.5 3.6v-29.8c0-6.9 1.7-18.2 10.8-18.2s10.6 6.9 10.6 15V317c18 12.2 37.3 22.1 57.7 29.6v-93.9c0-18.7-13.4-37.4-40.6-37.4-15.8-.1-30.5 8.2-38.5 21.9v-54.3c41.9 20.9 83.9 46.5 99.9 58.3-10.2 14.6-9.3 28.1-9.3 43.7 0 18.7-1.4 34.3 16.8 52.5s50.4 17.1 50.4 17.1 32.3 1.1 50.4-17.1c18.2-18.2 16.7-33.8 16.7-52.5 0-18.5 1.5-34.2-16.7-52.3zM65.2 184v63.3c-48.7-54.5-38.9-76-35.2-79.1 13.5-11.4 37.5-8 64.4 2.1zm226.5 120.5c0 3.6-1.8 12.5-10.7 12.5s-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9s10.7 2.1 10.7 10.9z\"]\n};\nvar faHornbill = {\n prefix: 'fab',\n iconName: 'hornbill',\n icon: [512, 512, [], \"f592\", \"M76.38 370.3a37.8 37.8 0 1 1-32.07-32.42c-78.28-111.35 52-190.53 52-190.53-5.86 43-8.24 91.16-8.24 91.16-67.31 41.49.93 64.06 39.81 72.87a140.38 140.38 0 0 0 131.66 91.94c1.92 0 3.77-.21 5.67-.28l.11 18.86c-99.22 1.39-158.7-29.14-188.94-51.6zm108-327.7A37.57 37.57 0 0 0 181 21.45a37.95 37.95 0 1 0-31.17 54.22c-22.55 29.91-53.83 89.57-52.42 190l21.84-.15c0-.9-.14-1.77-.14-2.68A140.42 140.42 0 0 1 207 132.71c8-37.71 30.7-114.3 73.8-44.29 0 0 48.14 2.38 91.18 8.24 0 0-77.84-128-187.59-54.06zm304.19 134.17a37.94 37.94 0 1 0-53.84-28.7C403 126.13 344.89 99 251.28 100.33l.14 22.5c2.7-.15 5.39-.41 8.14-.41a140.37 140.37 0 0 1 130.49 88.76c39.1 9 105.06 31.58 38.46 72.54 0 0-2.34 48.13-8.21 91.16 0 0 133.45-81.16 49-194.61a37.45 37.45 0 0 0 19.31-3.5zM374.06 436.24c21.43-32.46 46.42-89.69 45.14-179.66l-19.52.14c.08 2.06.3 4.07.3 6.15a140.34 140.34 0 0 1-91.39 131.45c-8.85 38.95-31.44 106.66-72.77 39.49 0 0-48.12-2.34-91.19-8.22 0 0 79.92 131.34 191.9 51a37.5 37.5 0 0 0 3.64 14 37.93 37.93 0 1 0 33.89-54.29z\"]\n};\nvar faHotjar = {\n prefix: 'fab',\n iconName: 'hotjar',\n icon: [448, 512, [], \"f3b1\", \"M414.9 161.5C340.2 29 121.1 0 121.1 0S222.2 110.4 93 197.7C11.3 252.8-21 324.4 14 402.6c26.8 59.9 83.5 84.3 144.6 93.4-29.2-55.1-6.6-122.4-4.1-129.6 57.1 86.4 165 0 110.8-93.9 71 15.4 81.6 138.6 27.1 215.5 80.5-25.3 134.1-88.9 148.8-145.6 15.5-59.3 3.7-127.9-26.3-180.9z\"]\n};\nvar faHouzz = {\n prefix: 'fab',\n iconName: 'houzz',\n icon: [448, 512, [], \"f27c\", \"M275.9 330.7H171.3V480H17V32h109.5v104.5l305.1 85.6V480H275.9z\"]\n};\nvar faHtml5 = {\n prefix: 'fab',\n iconName: 'html5',\n icon: [384, 512, [], \"f13b\", \"M0 32l34.9 395.8L191.5 480l157.6-52.2L384 32H0zm308.2 127.9H124.4l4.1 49.4h175.6l-13.6 148.4-97.9 27v.3h-1.1l-98.7-27.3-6-75.8h47.7L138 320l53.5 14.5 53.7-14.5 6-62.2H84.3L71.5 112.2h241.1l-4.4 47.7z\"]\n};\nvar faHubspot = {\n prefix: 'fab',\n iconName: 'hubspot',\n icon: [512, 512, [], \"f3b2\", \"M267.4 211.6c-25.1 23.7-40.8 57.3-40.8 94.6 0 29.3 9.7 56.3 26 78L203.1 434c-4.4-1.6-9.1-2.5-14-2.5-10.8 0-20.9 4.2-28.5 11.8-7.6 7.6-11.8 17.8-11.8 28.6s4.2 20.9 11.8 28.5c7.6 7.6 17.8 11.6 28.5 11.6 10.8 0 20.9-3.9 28.6-11.6 7.6-7.6 11.8-17.8 11.8-28.5 0-4.2-.6-8.2-1.9-12.1l50-50.2c22 16.9 49.4 26.9 79.3 26.9 71.9 0 130-58.3 130-130.2 0-65.2-47.7-119.2-110.2-128.7V116c17.5-7.4 28.2-23.8 28.2-42.9 0-26.1-20.9-47.9-47-47.9S311.2 47 311.2 73.1c0 19.1 10.7 35.5 28.2 42.9v61.2c-15.2 2.1-29.6 6.7-42.7 13.6-27.6-20.9-117.5-85.7-168.9-124.8 1.2-4.4 2-9 2-13.8C129.8 23.4 106.3 0 77.4 0 48.6 0 25.2 23.4 25.2 52.2c0 28.9 23.4 52.3 52.2 52.3 9.8 0 18.9-2.9 26.8-7.6l163.2 114.7zm89.5 163.6c-38.1 0-69-30.9-69-69s30.9-69 69-69 69 30.9 69 69-30.9 69-69 69z\"]\n};\nvar faIdeal = {\n prefix: 'fab',\n iconName: 'ideal',\n icon: [576, 512, [], \"e013\", \"M125.61,165.48a49.07,49.07,0,1,0,49.06,49.06A49.08,49.08,0,0,0,125.61,165.48ZM86.15,425.84h78.94V285.32H86.15Zm151.46-211.6c0-20-10-22.53-18.74-22.53H204.82V237.5h14.05C228.62,237.5,237.61,234.69,237.61,214.24Zm201.69,46V168.93h22.75V237.5h33.69C486.5,113.08,388.61,86.19,299.67,86.19H204.84V169h14c25.6,0,41.5,17.35,41.5,45.26,0,28.81-15.52,46-41.5,46h-14V425.88h94.83c144.61,0,194.94-67.16,196.72-165.64Zm-109.75,0H273.3V169h54.43v22.73H296v10.58h30V225H296V237.5h33.51Zm74.66,0-5.16-17.67H369.31l-5.18,17.67H340.47L368,168.92h32.35l27.53,91.34ZM299.65,32H32V480H299.65c161.85,0,251-79.73,251-224.52C550.62,172,518,32,299.65,32Zm0,426.92H53.07V53.07H299.65c142.1,0,229.9,64.61,229.9,202.41C529.55,389.57,448.55,458.92,299.65,458.92Zm83.86-264.85L376,219.88H392.4l-7.52-25.81Z\"]\n};\nvar faImdb = {\n prefix: 'fab',\n iconName: 'imdb',\n icon: [448, 512, [], \"f2d8\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM21.3 229.2H21c.1-.1.2-.3.3-.4zM97 319.8H64V192h33zm113.2 0h-28.7v-86.4l-11.6 86.4h-20.6l-12.2-84.5v84.5h-29V192h42.8c3.3 19.8 6 39.9 8.7 59.9l7.6-59.9h43zm11.4 0V192h24.6c17.6 0 44.7-1.6 49 20.9 1.7 7.6 1.4 16.3 1.4 24.4 0 88.5 11.1 82.6-75 82.5zm160.9-29.2c0 15.7-2.4 30.9-22.2 30.9-9 0-15.2-3-20.9-9.8l-1.9 8.1h-29.8V192h31.7v41.7c6-6.5 12-9.2 20.9-9.2 21.4 0 22.2 12.8 22.2 30.1zM265 229.9c0-9.7 1.6-16-10.3-16v83.7c12.2.3 10.3-8.7 10.3-18.4zm85.5 26.1c0-5.4 1.1-12.7-6.2-12.7-6 0-4.9 8.9-4.9 12.7 0 .6-1.1 39.6 1.1 44.7.8 1.6 2.2 2.4 3.8 2.4 7.8 0 6.2-9 6.2-14.4z\"]\n};\nvar faInnosoft = {\n prefix: 'fab',\n iconName: 'innosoft',\n icon: [448, 512, [], \"e080\", \"M422.559,159.71a27.379,27.379,0,0,0-13.866-23.337,26.42,26.42,0,0,0-26.211.133L73.943,314.647V176.261a11.955,11.955,0,0,1,6.047-10.34L218.066,86.208a12.153,12.153,0,0,1,11.922.025l32.656,18.853L112.581,191.723v56L359.642,105.086,241.129,36.679c-10.992-6.129-22.3-6.255-33.8-.27l-164.6,95.026c-10.634,6.12-16.771,16.39-17.29,29.124l0,191.5c.17,10.135,5.08,18.672,13.474,23.428a27.037,27.037,0,0,0,26.736-.045L374.057,197.376V335.657a11.976,11.976,0,0,1-5.92,10.368L230.025,425.77a12.175,12.175,0,0,1-11.937.062l-32.723-18.9,150.051-86.627v-56L88.367,406.932l118.794,68.583a33.88,33.88,0,0,0,34.25-.327l164.527-94.995c10.746-6.631,16.649-17.118,16.624-29.528Z\"]\n};\nvar faInstagram = {\n prefix: 'fab',\n iconName: 'instagram',\n icon: [448, 512, [], \"f16d\", \"M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z\"]\n};\nvar faInstagramSquare = {\n prefix: 'fab',\n iconName: 'instagram-square',\n icon: [448, 512, [], \"e055\", \"M224,202.66A53.34,53.34,0,1,0,277.36,256,53.38,53.38,0,0,0,224,202.66Zm124.71-41a54,54,0,0,0-30.41-30.41c-21-8.29-71-6.43-94.3-6.43s-73.25-1.93-94.31,6.43a54,54,0,0,0-30.41,30.41c-8.28,21-6.43,71.05-6.43,94.33S91,329.26,99.32,350.33a54,54,0,0,0,30.41,30.41c21,8.29,71,6.43,94.31,6.43s73.24,1.93,94.3-6.43a54,54,0,0,0,30.41-30.41c8.35-21,6.43-71.05,6.43-94.33S357.1,182.74,348.75,161.67ZM224,338a82,82,0,1,1,82-82A81.9,81.9,0,0,1,224,338Zm85.38-148.3a19.14,19.14,0,1,1,19.13-19.14A19.1,19.1,0,0,1,309.42,189.74ZM400,32H48A48,48,0,0,0,0,80V432a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V80A48,48,0,0,0,400,32ZM382.88,322c-1.29,25.63-7.14,48.34-25.85,67s-41.4,24.63-67,25.85c-26.41,1.49-105.59,1.49-132,0-25.63-1.29-48.26-7.15-67-25.85s-24.63-41.42-25.85-67c-1.49-26.42-1.49-105.61,0-132,1.29-25.63,7.07-48.34,25.85-67s41.47-24.56,67-25.78c26.41-1.49,105.59-1.49,132,0,25.63,1.29,48.33,7.15,67,25.85s24.63,41.42,25.85,67.05C384.37,216.44,384.37,295.56,382.88,322Z\"]\n};\nvar faInstalod = {\n prefix: 'fab',\n iconName: 'instalod',\n icon: [512, 512, [], \"e081\", \"M153.384,480H387.113L502.554,275.765,204.229,333.211ZM504.726,240.078,387.113,32H155.669L360.23,267.9ZM124.386,48.809,7.274,256,123.236,461.154,225.627,165.561Z\"]\n};\nvar faIntercom = {\n prefix: 'fab',\n iconName: 'intercom',\n icon: [448, 512, [], \"f7af\", \"M392 32H56C25.1 32 0 57.1 0 88v336c0 30.9 25.1 56 56 56h336c30.9 0 56-25.1 56-56V88c0-30.9-25.1-56-56-56zm-108.3 82.1c0-19.8 29.9-19.8 29.9 0v199.5c0 19.8-29.9 19.8-29.9 0V114.1zm-74.6-7.5c0-19.8 29.9-19.8 29.9 0v216.5c0 19.8-29.9 19.8-29.9 0V106.6zm-74.7 7.5c0-19.8 29.9-19.8 29.9 0v199.5c0 19.8-29.9 19.8-29.9 0V114.1zM59.7 144c0-19.8 29.9-19.8 29.9 0v134.3c0 19.8-29.9 19.8-29.9 0V144zm323.4 227.8c-72.8 63-241.7 65.4-318.1 0-15-12.8 4.4-35.5 19.4-22.7 65.9 55.3 216.1 53.9 279.3 0 14.9-12.9 34.3 9.8 19.4 22.7zm5.2-93.5c0 19.8-29.9 19.8-29.9 0V144c0-19.8 29.9-19.8 29.9 0v134.3z\"]\n};\nvar faInternetExplorer = {\n prefix: 'fab',\n iconName: 'internet-explorer',\n icon: [512, 512, [], \"f26b\", \"M483.049 159.706c10.855-24.575 21.424-60.438 21.424-87.871 0-72.722-79.641-98.371-209.673-38.577-107.632-7.181-211.221 73.67-237.098 186.457 30.852-34.862 78.271-82.298 121.977-101.158C125.404 166.85 79.128 228.002 43.992 291.725 23.246 329.651 0 390.94 0 436.747c0 98.575 92.854 86.5 180.251 42.006 31.423 15.43 66.559 15.573 101.695 15.573 97.124 0 184.249-54.294 216.814-146.022H377.927c-52.509 88.593-196.819 52.996-196.819-47.436H509.9c6.407-43.581-1.655-95.715-26.851-141.162zM64.559 346.877c17.711 51.15 53.703 95.871 100.266 123.304-88.741 48.94-173.267 29.096-100.266-123.304zm115.977-108.873c2-55.151 50.276-94.871 103.98-94.871 53.418 0 101.981 39.72 103.981 94.871H180.536zm184.536-187.6c21.425-10.287 48.563-22.003 72.558-22.003 31.422 0 54.274 21.717 54.274 53.722 0 20.003-7.427 49.007-14.569 67.867-26.28-42.292-65.986-81.584-112.263-99.586z\"]\n};\nvar faInvision = {\n prefix: 'fab',\n iconName: 'invision',\n icon: [448, 512, [], \"f7b0\", \"M407.4 32H40.6C18.2 32 0 50.2 0 72.6v366.8C0 461.8 18.2 480 40.6 480h366.8c22.4 0 40.6-18.2 40.6-40.6V72.6c0-22.4-18.2-40.6-40.6-40.6zM176.1 145.6c.4 23.4-22.4 27.3-26.6 27.4-14.9 0-27.1-12-27.1-27 .1-35.2 53.1-35.5 53.7-.4zM332.8 377c-65.6 0-34.1-74-25-106.6 14.1-46.4-45.2-59-59.9.7l-25.8 103.3H177l8.1-32.5c-31.5 51.8-94.6 44.4-94.6-4.3.1-14.3.9-14 23-104.1H81.7l9.7-35.6h76.4c-33.6 133.7-32.6 126.9-32.9 138.2 0 20.9 40.9 13.5 57.4-23.2l19.8-79.4h-32.3l9.7-35.6h68.8l-8.9 40.5c40.5-75.5 127.9-47.8 101.8 38-14.2 51.1-14.6 50.7-14.9 58.8 0 15.5 17.5 22.6 31.8-16.9L386 325c-10.5 36.7-29.4 52-53.2 52z\"]\n};\nvar faIoxhost = {\n prefix: 'fab',\n iconName: 'ioxhost',\n icon: [640, 512, [], \"f208\", \"M616 160h-67.3C511.2 70.7 422.9 8 320 8 183 8 72 119 72 256c0 16.4 1.6 32.5 4.7 48H24c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h67.3c37.5 89.3 125.8 152 228.7 152 137 0 248-111 248-248 0-16.4-1.6-32.5-4.7-48H616c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24zm-96 96c0 110.5-89.5 200-200 200-75.7 0-141.6-42-175.5-104H424c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24H125.8c-3.8-15.4-5.8-31.4-5.8-48 0-110.5 89.5-200 200-200 75.7 0 141.6 42 175.5 104H216c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h298.2c3.8 15.4 5.8 31.4 5.8 48zm-304-24h208c13.3 0 24 10.7 24 24 0 13.2-10.7 24-24 24H216c-13.3 0-24-10.7-24-24 0-13.2 10.7-24 24-24z\"]\n};\nvar faItchIo = {\n prefix: 'fab',\n iconName: 'itch-io',\n icon: [512, 512, [], \"f83a\", \"M71.92 34.77C50.2 47.67 7.4 96.84 7 109.73v21.34c0 27.06 25.29 50.84 48.25 50.84 27.57 0 50.54-22.85 50.54-50 0 27.12 22.18 50 49.76 50s49-22.85 49-50c0 27.12 23.59 50 51.16 50h.5c27.57 0 51.16-22.85 51.16-50 0 27.12 21.47 50 49 50s49.76-22.85 49.76-50c0 27.12 23 50 50.54 50 23 0 48.25-23.78 48.25-50.84v-21.34c-.4-12.9-43.2-62.07-64.92-75C372.56 32.4 325.76 32 256 32S91.14 33.1 71.92 34.77zm132.32 134.39c-22 38.4-77.9 38.71-99.85.25-13.17 23.14-43.17 32.07-56 27.66-3.87 40.15-13.67 237.13 17.73 269.15 80 18.67 302.08 18.12 379.76 0 31.65-32.27 21.32-232 17.75-269.15-12.92 4.44-42.88-4.6-56-27.66-22 38.52-77.85 38.1-99.85-.24-7.1 12.49-23.05 28.94-51.76 28.94a57.54 57.54 0 0 1-51.75-28.94zm-41.58 53.77c16.47 0 31.09 0 49.22 19.78a436.91 436.91 0 0 1 88.18 0C318.22 223 332.85 223 349.31 223c52.33 0 65.22 77.53 83.87 144.45 17.26 62.15-5.52 63.67-33.95 63.73-42.15-1.57-65.49-32.18-65.49-62.79-39.25 6.43-101.93 8.79-155.55 0 0 30.61-23.34 61.22-65.49 62.79-28.42-.06-51.2-1.58-33.94-63.73 18.67-67 31.56-144.45 83.88-144.45zM256 270.79s-44.38 40.77-52.35 55.21l29-1.17v25.32c0 1.55 21.34.16 23.33.16 11.65.54 23.31 1 23.31-.16v-25.28l29 1.17c-8-14.48-52.35-55.24-52.35-55.24z\"]\n};\nvar faItunes = {\n prefix: 'fab',\n iconName: 'itunes',\n icon: [448, 512, [], \"f3b4\", \"M223.6 80.3C129 80.3 52.5 157 52.5 251.5S129 422.8 223.6 422.8s171.2-76.7 171.2-171.2c0-94.6-76.7-171.3-171.2-171.3zm79.4 240c-3.2 13.6-13.5 21.2-27.3 23.8-12.1 2.2-22.2 2.8-31.9-5-11.8-10-12-26.4-1.4-36.8 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 3.2-3.6 2.2-2 2.2-80.8 0-5.6-2.7-7.1-8.4-6.1-4 .7-91.9 17.1-91.9 17.1-5 1.1-6.7 2.6-6.7 8.3 0 116.1.5 110.8-1.2 118.5-2.1 9-7.6 15.8-14.9 19.6-8.3 4.6-23.4 6.6-31.4 5.2-21.4-4-28.9-28.7-14.4-42.9 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 5-5.7.9-127 2.6-133.7.4-2.6 1.5-4.8 3.5-6.4 2.1-1.7 5.8-2.7 6.7-2.7 101-19 113.3-21.4 115.1-21.4 5.7-.4 9 3 9 8.7-.1 170.6.4 161.4-1 167.6zM345.2 32H102.8C45.9 32 0 77.9 0 134.8v242.4C0 434.1 45.9 480 102.8 480h242.4c57 0 102.8-45.9 102.8-102.8V134.8C448 77.9 402.1 32 345.2 32zM223.6 444c-106.3 0-192.5-86.2-192.5-192.5S117.3 59 223.6 59s192.5 86.2 192.5 192.5S329.9 444 223.6 444z\"]\n};\nvar faItunesNote = {\n prefix: 'fab',\n iconName: 'itunes-note',\n icon: [384, 512, [], \"f3b5\", \"M381.9 388.2c-6.4 27.4-27.2 42.8-55.1 48-24.5 4.5-44.9 5.6-64.5-10.2-23.9-20.1-24.2-53.4-2.7-74.4 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 6.4-7.2 4.4-4.1 4.4-163.2 0-11.2-5.5-14.3-17-12.3-8.2 1.4-185.7 34.6-185.7 34.6-10.2 2.2-13.4 5.2-13.4 16.7 0 234.7 1.1 223.9-2.5 239.5-4.2 18.2-15.4 31.9-30.2 39.5-16.8 9.3-47.2 13.4-63.4 10.4-43.2-8.1-58.4-58-29.1-86.6 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 10.1-11.5 1.8-256.6 5.2-270.2.8-5.2 3-9.6 7.1-12.9 4.2-3.5 11.8-5.5 13.4-5.5 204-38.2 228.9-43.1 232.4-43.1 11.5-.8 18.1 6 18.1 17.6.2 344.5 1.1 326-1.8 338.5z\"]\n};\nvar faJava = {\n prefix: 'fab',\n iconName: 'java',\n icon: [384, 512, [], \"f4e4\", \"M277.74 312.9c9.8-6.7 23.4-12.5 23.4-12.5s-38.7 7-77.2 10.2c-47.1 3.9-97.7 4.7-123.1 1.3-60.1-8 33-30.1 33-30.1s-36.1-2.4-80.6 19c-52.5 25.4 130 37 224.5 12.1zm-85.4-32.1c-19-42.7-83.1-80.2 0-145.8C296 53.2 242.84 0 242.84 0c21.5 84.5-75.6 110.1-110.7 162.6-23.9 35.9 11.7 74.4 60.2 118.2zm114.6-176.2c.1 0-175.2 43.8-91.5 140.2 24.7 28.4-6.5 54-6.5 54s62.7-32.4 33.9-72.9c-26.9-37.8-47.5-56.6 64.1-121.3zm-6.1 270.5a12.19 12.19 0 0 1-2 2.6c128.3-33.7 81.1-118.9 19.8-97.3a17.33 17.33 0 0 0-8.2 6.3 70.45 70.45 0 0 1 11-3c31-6.5 75.5 41.5-20.6 91.4zM348 437.4s14.5 11.9-15.9 21.2c-57.9 17.5-240.8 22.8-291.6.7-18.3-7.9 16-19 26.8-21.3 11.2-2.4 17.7-2 17.7-2-20.3-14.3-131.3 28.1-56.4 40.2C232.84 509.4 401 461.3 348 437.4zM124.44 396c-78.7 22 47.9 67.4 148.1 24.5a185.89 185.89 0 0 1-28.2-13.8c-44.7 8.5-65.4 9.1-106 4.5-33.5-3.8-13.9-15.2-13.9-15.2zm179.8 97.2c-78.7 14.8-175.8 13.1-233.3 3.6 0-.1 11.8 9.7 72.4 13.6 92.2 5.9 233.8-3.3 237.1-46.9 0 0-6.4 16.5-76.2 29.7zM260.64 353c-59.2 11.4-93.5 11.1-136.8 6.6-33.5-3.5-11.6-19.7-11.6-19.7-86.8 28.8 48.2 61.4 169.5 25.9a60.37 60.37 0 0 1-21.1-12.8z\"]\n};\nvar faJediOrder = {\n prefix: 'fab',\n iconName: 'jedi-order',\n icon: [448, 512, [], \"f50e\", \"M398.5 373.6c95.9-122.1 17.2-233.1 17.2-233.1 45.4 85.8-41.4 170.5-41.4 170.5 105-171.5-60.5-271.5-60.5-271.5 96.9 72.7-10.1 190.7-10.1 190.7 85.8 158.4-68.6 230.1-68.6 230.1s-.4-16.9-2.2-85.7c4.3 4.5 34.5 36.2 34.5 36.2l-24.2-47.4 62.6-9.1-62.6-9.1 20.2-55.5-31.4 45.9c-2.2-87.7-7.8-305.1-7.9-306.9v-2.4 1-1 2.4c0 1-5.6 219-7.9 306.9l-31.4-45.9 20.2 55.5-62.6 9.1 62.6 9.1-24.2 47.4 34.5-36.2c-1.8 68.8-2.2 85.7-2.2 85.7s-154.4-71.7-68.6-230.1c0 0-107-118.1-10.1-190.7 0 0-165.5 99.9-60.5 271.5 0 0-86.8-84.8-41.4-170.5 0 0-78.7 111 17.2 233.1 0 0-26.2-16.1-49.4-77.7 0 0 16.9 183.3 222 185.7h4.1c205-2.4 222-185.7 222-185.7-23.6 61.5-49.9 77.7-49.9 77.7z\"]\n};\nvar faJenkins = {\n prefix: 'fab',\n iconName: 'jenkins',\n icon: [512, 512, [], \"f3b6\", \"M487.1 425c-1.4-11.2-19-23.1-28.2-31.9-5.1-5-29-23.1-30.4-29.9-1.4-6.6 9.7-21.5 13.3-28.9 5.1-10.7 8.8-23.7 11.3-32.6 18.8-66.1 20.7-156.9-6.2-211.2-10.2-20.6-38.6-49-56.4-62.5-42-31.7-119.6-35.3-170.1-16.6-14.1 5.2-27.8 9.8-40.1 17.1-33.1 19.4-68.3 32.5-78.1 71.6-24.2 10.8-31.5 41.8-30.3 77.8.2 7 4.1 15.8 2.7 22.4-.7 3.3-5.2 7.6-6.1 9.8-11.6 27.7-2.3 64 11.1 83.7 8.1 11.9 21.5 22.4 39.2 25.2.7 10.6 3.3 19.7 8.2 30.4 3.1 6.8 14.7 19 10.4 27.7-2.2 4.4-21 13.8-27.3 17.6C89 407.2 73.7 415 54.2 429c-12.6 9-32.3 10.2-29.2 31.1 2.1 14.1 10.1 31.6 14.7 45.8.7 2 1.4 4.1 2.1 6h422c4.9-15.3 9.7-30.9 14.6-47.2 3.4-11.4 10.2-27.8 8.7-39.7zM205.9 33.7c1.8-.5 3.4.7 4.9 2.4-.2 5.2-5.4 5.1-8.9 6.8-5.4 6.7-13.4 9.8-20 17.2-6.8 7.5-14.4 27.7-23.4 30-4.5 1.1-9.7-.8-13.6-.5-10.4.7-17.7 6-28.3 7.5 13.6-29.9 56.1-54 89.3-63.4zm-104.8 93.6c13.5-14.9 32.1-24.1 54.8-25.9 11.7 29.7-8.4 65-.9 97.6 2.3 9.9 10.2 25.4-2.4 25.7.3-28.3-34.8-46.3-61.3-29.6-1.8-21.5-4.9-51.7 9.8-67.8zm36.7 200.2c-1-4.1-2.7-12.9-2.3-15.1 1.6-8.7 17.1-12.5 11-24.7-11.3-.1-13.8 10.2-24.1 11.3-26.7 2.6-45.6-35.4-44.4-58.4 1-19.5 17.6-38.2 40.1-35.8 16 1.8 21.4 19.2 24.5 34.7 9.2.5 22.5-.4 26.9-7.6-.6-17.5-8.8-31.6-8.2-47.7 1-30.3 17.5-57.6 4.8-87.4 13.6-30.9 53.5-55.3 83.1-70 36.6-18.3 94.9-3.7 129.3 15.8 19.7 11.1 34.4 32.7 48.3 50.7-19.5-5.8-36.1 4.2-33.1 20.3 16.3-14.9 44.2-.2 52.5 16.4 7.9 15.8 7.8 39.3 9 62.8 2.9 57-10.4 115.9-39.1 157.1-7.7 11-14.1 23-24.9 30.6-26 18.2-65.4 34.7-99.2 23.4-44.7-15-65-44.8-89.5-78.8.7 18.7 13.8 34.1 26.8 48.4 11.3 12.5 25 26.6 39.7 32.4-12.3-2.9-31.1-3.8-36.2 7.2-28.6-1.9-55.1-4.8-68.7-24.2-10.6-15.4-21.4-41.4-26.3-61.4zm222 124.1c4.1-3 11.1-2.9 17.4-3.6-5.4-2.7-13-3.7-19.3-2.2-.1-4.2-2-6.8-3.2-10.2 10.6-3.8 35.5-28.5 49.6-20.3 6.7 3.9 9.5 26.2 10.1 37 .4 9-.8 18-4.5 22.8-18.8-.6-35.8-2.8-50.7-7 .9-6.1-1-12.1.6-16.5zm-17.2-20c-16.8.8-26-1.2-38.3-10.8.2-.8 1.4-.5 1.5-1.4 18 8 40.8-3.3 59-4.9-7.9 5.1-14.6 11.6-22.2 17.1zm-12.1 33.2c-1.6-9.4-3.5-12-2.8-20.2 25-16.6 29.7 28.6 2.8 20.2zM226 438.6c-11.6-.7-48.1-14-38.5-23.7 9.4 6.5 27.5 4.9 41.3 7.3.8 4.4-2.8 10.2-2.8 16.4zM57.7 497.1c-4.3-12.7-9.2-25.1-14.8-36.9 30.8-23.8 65.3-48.9 102.2-63.5 2.8-1.1 23.2 25.4 26.2 27.6 16.5 11.7 37 21 56.2 30.2 1.2 8.8 3.9 20.2 8.7 35.5.7 2.3 1.4 4.7 2.2 7.2H57.7zm240.6 5.7h-.8c.3-.2.5-.4.8-.5v.5zm7.5-5.7c2.1-1.4 4.3-2.8 6.4-4.3 1.1 1.4 2.2 2.8 3.2 4.3h-9.6zm15.1-24.7c-10.8 7.3-20.6 18.3-33.3 25.2-6 3.3-27 11.7-33.4 10.2-3.6-.8-3.9-5.3-5.4-9.5-3.1-9-10.1-23.4-10.8-37-.8-17.2-2.5-46 16-42.4 14.9 2.9 32.3 9.7 43.9 16.1 7.1 3.9 11.1 8.6 21.9 9.5-.1 1.4-.1 2.8-.2 4.3-5.9 3.9-15.3 3.8-21.8 7.1 9.5.4 17 2.7 23.5 5.9-.1 3.4-.3 7-.4 10.6zm53.4 24.7h-14c-.1-3.2-2.8-5.8-6.1-5.8s-5.9 2.6-6.1 5.8h-17.4c-2.8-4.4-5.7-8.6-8.9-12.5 2.1-2.2 4-4.7 6-6.9 9 3.7 14.8-4.9 21.7-4.2 7.9.8 14.2 11.7 25.4 11l-.6 12.6zm8.7 0c.2-4 .4-7.8.6-11.5 15.6-7.3 29 1.3 35.7 11.5H383zm83.4-37c-2.3 11.2-5.8 24-9.9 37.1-.2-.1-.4-.1-.6-.1H428c.6-1.1 1.2-2.2 1.9-3.3-2.6-6.1-9-8.7-10.9-15.5 12.1-22.7 6.5-93.4-24.2-78.5 4.3-6.3 15.6-11.5 20.8-19.3 13 10.4 20.8 20.3 33.2 31.4 6.8 6 20 13.3 21.4 23.1.8 5.5-2.6 18.9-3.8 25.1zM222.2 130.5c5.4-14.9 27.2-34.7 45-32 7.7 1.2 18 8.2 12.2 17.7-30.2-7-45.2 12.6-54.4 33.1-8.1-2-4.9-13.1-2.8-18.8zm184.1 63.1c8.2-3.6 22.4-.7 29.6-5.3-4.2-11.5-10.3-21.4-9.3-37.7.5 0 1 0 1.4.1 6.8 14.2 12.7 29.2 21.4 41.7-5.7 13.5-43.6 25.4-43.1 1.2zm20.4-43zm-117.2 45.7c-6.8-10.9-19-32.5-14.5-45.3 6.5 11.9 8.6 24.4 17.8 33.3 4.1 4 12.2 9 8.2 20.2-.9 2.7-7.8 8.6-11.7 9.7-14.4 4.3-47.9.9-36.6-17.1 11.9.7 27.9 7.8 36.8-.8zm27.3 70c3.8 6.6 1.4 18.7 12.1 20.6 20.2 3.4 43.6-12.3 58.1-17.8 9-15.2-.8-20.7-8.9-30.5-16.6-20-38.8-44.8-38-74.7 6.7-4.9 7.3 7.4 8.2 9.7 8.7 20.3 30.4 46.2 46.3 63.5 3.9 4.3 10.3 8.4 11 11.2 2.1 8.2-5.4 18-4.5 23.5-21.7 13.9-45.8 29.1-81.4 25.6-7.4-6.7-10.3-21.4-2.9-31.1zm-201.3-9.2c-6.8-3.9-8.4-21-16.4-21.4-11.4-.7-9.3 22.2-9.3 35.5-7.8-7.1-9.2-29.1-3.5-40.3-6.6-3.2-9.5 3.6-13.1 5.9 4.7-34.1 49.8-15.8 42.3 20.3zm299.6 28.8c-10.1 19.2-24.4 40.4-54 41-.6-6.2-1.1-15.6 0-19.4 22.7-2.2 36.6-13.7 54-21.6zm-141.9 12.4c18.9 9.9 53.6 11 79.3 10.2 1.4 5.6 1.3 12.6 1.4 19.4-33 1.8-72-6.4-80.7-29.6zm92.2 46.7c-1.7 4.3-5.3 9.3-9.8 11.1-12.1 4.9-45.6 8.7-62.4-.3-10.7-5.7-17.5-18.5-23.4-26-2.8-3.6-16.9-12.9-.2-12.9 13.1 32.7 58 29 95.8 28.1z\"]\n};\nvar faJira = {\n prefix: 'fab',\n iconName: 'jira',\n icon: [496, 512, [], \"f7b1\", \"M490 241.7C417.1 169 320.6 71.8 248.5 0 83 164.9 6 241.7 6 241.7c-7.9 7.9-7.9 20.7 0 28.7C138.8 402.7 67.8 331.9 248.5 512c379.4-378 15.7-16.7 241.5-241.7 8-7.9 8-20.7 0-28.6zm-241.5 90l-76-75.7 76-75.7 76 75.7-76 75.7z\"]\n};\nvar faJoget = {\n prefix: 'fab',\n iconName: 'joget',\n icon: [496, 512, [], \"f3b7\", \"M378.1 45C337.6 19.9 292.6 8 248.2 8 165 8 83.8 49.9 36.9 125.9c-71.9 116.6-35.6 269.3 81 341.2s269.3 35.6 341.2-80.9c71.9-116.6 35.6-269.4-81-341.2zm51.8 323.2c-40.4 65.5-110.4 101.5-182 101.5-6.8 0-13.6-.4-20.4-1-9-13.6-19.9-33.3-23.7-42.4-5.7-13.7-27.2-45.6 31.2-67.1 51.7-19.1 176.7-16.5 208.8-17.6-4 9-8.6 17.9-13.9 26.6zm-200.8-86.3c-55.5-1.4-81.7-20.8-58.5-48.2s51.1-40.7 68.9-51.2c17.9-10.5 27.3-33.7-23.6-29.7C87.3 161.5 48.6 252.1 37.6 293c-8.8-49.7-.1-102.7 28.5-149.1C128 43.4 259.6 12.2 360.1 74.1c74.8 46.1 111.2 130.9 99.3 212.7-24.9-.5-179.3-3.6-230.3-4.9zm183.8-54.8c-22.7-6-57 11.3-86.7 27.2-29.7 15.8-31.1 8.2-31.1 8.2s40.2-28.1 50.7-34.5 31.9-14 13.4-24.6c-3.2-1.8-6.7-2.7-10.4-2.7-17.8 0-41.5 18.7-67.5 35.6-31.5 20.5-65.3 31.3-65.3 31.3l169.5-1.6 46.5-23.4s3.6-9.5-19.1-15.5z\"]\n};\nvar faJoomla = {\n prefix: 'fab',\n iconName: 'joomla',\n icon: [448, 512, [], \"f1aa\", \"M.6 92.1C.6 58.8 27.4 32 60.4 32c30 0 54.5 21.9 59.2 50.2 32.6-7.6 67.1.6 96.5 30l-44.3 44.3c-20.5-20.5-42.6-16.3-55.4-3.5-14.3 14.3-14.3 37.9 0 52.2l99.5 99.5-44 44.3c-87.7-87.2-49.7-49.7-99.8-99.7-26.8-26.5-35-64.8-24.8-98.9C20.4 144.6.6 120.7.6 92.1zm129.5 116.4l44.3 44.3c10-10 89.7-89.7 99.7-99.8 14.3-14.3 37.6-14.3 51.9 0 12.8 12.8 17 35-3.5 55.4l44 44.3c31.2-31.2 38.5-67.6 28.9-101.2 29.2-4.1 51.9-29.2 51.9-59.5 0-33.2-26.8-60.1-59.8-60.1-30.3 0-55.4 22.5-59.5 51.6-33.8-9.9-71.7-1.5-98.3 25.1-18.3 19.1-71.1 71.5-99.6 99.9zm266.3 152.2c8.2-32.7-.9-68.5-26.3-93.9-11.8-12.2 5 4.7-99.5-99.7l-44.3 44.3 99.7 99.7c14.3 14.3 14.3 37.6 0 51.9-12.8 12.8-35 17-55.4-3.5l-44 44.3c27.6 30.2 68 38.8 102.7 28 5.5 27.4 29.7 48.1 58.9 48.1 33 0 59.8-26.8 59.8-60.1 0-30.2-22.5-55-51.6-59.1zm-84.3-53.1l-44-44.3c-87 86.4-50.4 50.4-99.7 99.8-14.3 14.3-37.6 14.3-51.9 0-13.1-13.4-16.9-35.3 3.2-55.4l-44-44.3c-30.2 30.2-38 65.2-29.5 98.3-26.7 6-46.2 29.9-46.2 58.2C0 453.2 26.8 480 59.8 480c28.6 0 52.5-19.8 58.6-46.7 32.7 8.2 68.5-.6 94.2-26 32.1-32 12.2-12.4 99.5-99.7z\"]\n};\nvar faJs = {\n prefix: 'fab',\n iconName: 'js',\n icon: [448, 512, [], \"f3b8\", \"M0 32v448h448V32H0zm243.8 349.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5l34.3-20.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5V237.7h42.1v143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43l34.3-19.8c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z\"]\n};\nvar faJsSquare = {\n prefix: 'fab',\n iconName: 'js-square',\n icon: [448, 512, [], \"f3b9\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM243.8 381.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5l34.3-20.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5V237.7h42.1v143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43l34.3-19.8c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z\"]\n};\nvar faJsfiddle = {\n prefix: 'fab',\n iconName: 'jsfiddle',\n icon: [576, 512, [], \"f1cc\", \"M510.634 237.462c-4.727-2.621-5.664-5.748-6.381-10.776-2.352-16.488-3.539-33.619-9.097-49.095-35.895-99.957-153.99-143.386-246.849-91.646-27.37 15.25-48.971 36.369-65.493 63.903-3.184-1.508-5.458-2.71-7.824-3.686-30.102-12.421-59.049-10.121-85.331 9.167-25.531 18.737-36.422 44.548-32.676 76.408.355 3.025-1.967 7.621-4.514 9.545-39.712 29.992-56.031 78.065-41.902 124.615 13.831 45.569 57.514 79.796 105.608 81.433 30.291 1.031 60.637.546 90.959.539 84.041-.021 168.09.531 252.12-.48 52.664-.634 96.108-36.873 108.212-87.293 11.54-48.074-11.144-97.3-56.832-122.634zm21.107 156.88c-18.23 22.432-42.343 35.253-71.28 35.65-56.874.781-113.767.23-170.652.23 0 .7-163.028.159-163.728.154-43.861-.332-76.739-19.766-95.175-59.995-18.902-41.245-4.004-90.848 34.186-116.106 9.182-6.073 12.505-11.566 10.096-23.136-5.49-26.361 4.453-47.956 26.42-62.981 22.987-15.723 47.422-16.146 72.034-3.083 10.269 5.45 14.607 11.564 22.198-2.527 14.222-26.399 34.557-46.727 60.671-61.294 97.46-54.366 228.37 7.568 230.24 132.697.122 8.15 2.412 12.428 9.848 15.894 57.56 26.829 74.456 96.122 35.142 144.497zm-87.789-80.499c-5.848 31.157-34.622 55.096-66.666 55.095-16.953-.001-32.058-6.545-44.079-17.705-27.697-25.713-71.141-74.98-95.937-93.387-20.056-14.888-41.99-12.333-60.272 3.782-49.996 44.071 15.859 121.775 67.063 77.188 4.548-3.96 7.84-9.543 12.744-12.844 8.184-5.509 20.766-.884 13.168 10.622-17.358 26.284-49.33 38.197-78.863 29.301-28.897-8.704-48.84-35.968-48.626-70.179 1.225-22.485 12.364-43.06 35.414-55.965 22.575-12.638 46.369-13.146 66.991 2.474C295.68 280.7 320.467 323.97 352.185 343.47c24.558 15.099 54.254 7.363 68.823-17.506 28.83-49.209-34.592-105.016-78.868-63.46-3.989 3.744-6.917 8.932-11.41 11.72-10.975 6.811-17.333-4.113-12.809-10.353 20.703-28.554 50.464-40.44 83.271-28.214 31.429 11.714 49.108 44.366 42.76 78.186z\"]\n};\nvar faKaggle = {\n prefix: 'fab',\n iconName: 'kaggle',\n icon: [320, 512, [], \"f5fa\", \"M304.2 501.5L158.4 320.3 298.2 185c2.6-2.7 1.7-10.5-5.3-10.5h-69.2c-3.5 0-7 1.8-10.5 5.3L80.9 313.5V7.5q0-7.5-7.5-7.5H21.5Q14 0 14 7.5v497q0 7.5 7.5 7.5h51.9q7.5 0 7.5-7.5v-109l30.8-29.3 110.5 140.6c3 3.5 6.5 5.3 10.5 5.3h66.9q5.25 0 6-3z\"]\n};\nvar faKeybase = {\n prefix: 'fab',\n iconName: 'keybase',\n icon: [448, 512, [], \"f4f5\", \"M286.17 419a18 18 0 1 0 18 18 18 18 0 0 0-18-18zm111.92-147.6c-9.5-14.62-39.37-52.45-87.26-73.71q-9.1-4.06-18.38-7.27a78.43 78.43 0 0 0-47.88-104.13c-12.41-4.1-23.33-6-32.41-5.77-.6-2-1.89-11 9.4-35L198.66 32l-5.48 7.56c-8.69 12.06-16.92 23.55-24.34 34.89a51 51 0 0 0-8.29-1.25c-41.53-2.45-39-2.33-41.06-2.33-50.61 0-50.75 52.12-50.75 45.88l-2.36 36.68c-1.61 27 19.75 50.21 47.63 51.85l8.93.54a214 214 0 0 0-46.29 35.54C14 304.66 14 374 14 429.77v33.64l23.32-29.8a148.6 148.6 0 0 0 14.56 37.56c5.78 10.13 14.87 9.45 19.64 7.33 4.21-1.87 10-6.92 3.75-20.11a178.29 178.29 0 0 1-15.76-53.13l46.82-59.83-24.66 74.11c58.23-42.4 157.38-61.76 236.25-38.59 34.2 10.05 67.45.69 84.74-23.84.72-1 1.2-2.16 1.85-3.22a156.09 156.09 0 0 1 2.8 28.43c0 23.3-3.69 52.93-14.88 81.64-2.52 6.46 1.76 14.5 8.6 15.74 7.42 1.57 15.33-3.1 18.37-11.15C429 443 434 414 434 382.32c0-38.58-13-77.46-35.91-110.92zM142.37 128.58l-15.7-.93-1.39 21.79 13.13.78a93 93 0 0 0 .32 19.57l-22.38-1.34a12.28 12.28 0 0 1-11.76-12.79L107 119c1-12.17 13.87-11.27 13.26-11.32l29.11 1.73a144.35 144.35 0 0 0-7 19.17zm148.42 172.18a10.51 10.51 0 0 1-14.35-1.39l-9.68-11.49-34.42 27a8.09 8.09 0 0 1-11.13-1.08l-15.78-18.64a7.38 7.38 0 0 1 1.34-10.34l34.57-27.18-14.14-16.74-17.09 13.45a7.75 7.75 0 0 1-10.59-1s-3.72-4.42-3.8-4.53a7.38 7.38 0 0 1 1.37-10.34L214 225.19s-18.51-22-18.6-22.14a9.56 9.56 0 0 1 1.74-13.42 10.38 10.38 0 0 1 14.3 1.37l81.09 96.32a9.58 9.58 0 0 1-1.74 13.44zM187.44 419a18 18 0 1 0 18 18 18 18 0 0 0-18-18z\"]\n};\nvar faKeycdn = {\n prefix: 'fab',\n iconName: 'keycdn',\n icon: [512, 512, [], \"f3ba\", \"M63.8 409.3l60.5-59c32.1 42.8 71.1 66 126.6 67.4 30.5.7 60.3-7 86.4-22.4 5.1 5.3 18.5 19.5 20.9 22-32.2 20.7-69.6 31.1-108.1 30.2-43.3-1.1-84.6-16.7-117.7-44.4.3-.6-38.2 37.5-38.6 37.9 9.5 29.8-13.1 62.4-46.3 62.4C20.7 503.3 0 481.7 0 454.9c0-34.3 33.1-56.6 63.8-45.6zm354.9-252.4c19.1 31.3 29.6 67.4 28.7 104-1.1 44.8-19 87.5-48.6 121 .3.3 23.8 25.2 24.1 25.5 9.6-1.3 19.2 2 25.9 9.1 11.3 12 10.9 30.9-1.1 42.4-12 11.3-30.9 10.9-42.4-1.1-6.7-7-9.4-16.8-7.6-26.3-24.9-26.6-44.4-47.2-44.4-47.2 42.7-34.1 63.3-79.6 64.4-124.2.7-28.9-7.2-57.2-21.1-82.2l22.1-21zM104 53.1c6.7 7 9.4 16.8 7.6 26.3l45.9 48.1c-4.7 3.8-13.3 10.4-22.8 21.3-25.4 28.5-39.6 64.8-40.7 102.9-.7 28.9 6.1 57.2 20 82.4l-22 21.5C72.7 324 63.1 287.9 64.2 250.9c1-44.6 18.3-87.6 47.5-121.1l-25.3-26.4c-9.6 1.3-19.2-2-25.9-9.1-11.3-12-10.9-30.9 1.1-42.4C73.5 40.7 92.2 41 104 53.1zM464.9 8c26 0 47.1 22.4 47.1 48.3S490.9 104 464.9 104c-6.3.1-14-1.1-15.9-1.8l-62.9 59.7c-32.7-43.6-76.7-65.9-126.9-67.2-30.5-.7-60.3 6.8-86.2 22.4l-21.1-22C184.1 74.3 221.5 64 260 64.9c43.3 1.1 84.6 16.7 117.7 44.6l41.1-38.6c-1.5-4.7-2.2-9.6-2.2-14.5C416.5 29.7 438.9 8 464.9 8zM256.7 113.4c5.5 0 10.9.4 16.4 1.1 78.1 9.8 133.4 81.1 123.8 159.1-9.8 78.1-81.1 133.4-159.1 123.8-78.1-9.8-133.4-81.1-123.8-159.2 9.3-72.4 70.1-124.6 142.7-124.8zm-59 119.4c.6 22.7 12.2 41.8 32.4 52.2l-11 51.7h73.7l-11-51.7c20.1-10.9 32.1-29 32.4-52.2-.4-32.8-25.8-57.5-58.3-58.3-32.1.8-57.3 24.8-58.2 58.3zM256 160\"]\n};\nvar faKickstarter = {\n prefix: 'fab',\n iconName: 'kickstarter',\n icon: [448, 512, [], \"f3bb\", \"M400 480H48c-26.4 0-48-21.6-48-48V80c0-26.4 21.6-48 48-48h352c26.4 0 48 21.6 48 48v352c0 26.4-21.6 48-48 48zM199.6 178.5c0-30.7-17.6-45.1-39.7-45.1-25.8 0-40 19.8-40 44.5v154.8c0 25.8 13.7 45.6 40.5 45.6 21.5 0 39.2-14 39.2-45.6v-41.8l60.6 75.7c12.3 14.9 39 16.8 55.8 0 14.6-15.1 14.8-36.8 4-50.4l-49.1-62.8 40.5-58.7c9.4-13.5 9.5-34.5-5.6-49.1-16.4-15.9-44.6-17.3-61.4 7l-44.8 64.7v-38.8z\"]\n};\nvar faKickstarterK = {\n prefix: 'fab',\n iconName: 'kickstarter-k',\n icon: [384, 512, [], \"f3bc\", \"M147.3 114.4c0-56.2-32.5-82.4-73.4-82.4C26.2 32 0 68.2 0 113.4v283c0 47.3 25.3 83.4 74.9 83.4 39.8 0 72.4-25.6 72.4-83.4v-76.5l112.1 138.3c22.7 27.2 72.1 30.7 103.2 0 27-27.6 27.3-67.4 7.4-92.2l-90.8-114.8 74.9-107.4c17.4-24.7 17.5-63.1-10.4-89.8-30.3-29-82.4-31.6-113.6 12.8L147.3 185v-70.6z\"]\n};\nvar faKorvue = {\n prefix: 'fab',\n iconName: 'korvue',\n icon: [446, 512, [], \"f42f\", \"M386.5 34h-327C26.8 34 0 60.8 0 93.5v327.1C0 453.2 26.8 480 59.5 480h327.1c33 0 59.5-26.8 59.5-59.5v-327C446 60.8 419.2 34 386.5 34zM87.1 120.8h96v116l61.8-116h110.9l-81.2 132H87.1v-132zm161.8 272.1l-65.7-113.6v113.6h-96V262.1h191.5l88.6 130.8H248.9z\"]\n};\nvar faLaravel = {\n prefix: 'fab',\n iconName: 'laravel',\n icon: [512, 512, [], \"f3bd\", \"M504.4,115.83a5.72,5.72,0,0,0-.28-.68,8.52,8.52,0,0,0-.53-1.25,6,6,0,0,0-.54-.71,9.36,9.36,0,0,0-.72-.94c-.23-.22-.52-.4-.77-.6a8.84,8.84,0,0,0-.9-.68L404.4,55.55a8,8,0,0,0-8,0L300.12,111h0a8.07,8.07,0,0,0-.88.69,7.68,7.68,0,0,0-.78.6,8.23,8.23,0,0,0-.72.93c-.17.24-.39.45-.54.71a9.7,9.7,0,0,0-.52,1.25c-.08.23-.21.44-.28.68a8.08,8.08,0,0,0-.28,2.08V223.18l-80.22,46.19V63.44a7.8,7.8,0,0,0-.28-2.09c-.06-.24-.2-.45-.28-.68a8.35,8.35,0,0,0-.52-1.24c-.14-.26-.37-.47-.54-.72a9.36,9.36,0,0,0-.72-.94,9.46,9.46,0,0,0-.78-.6,9.8,9.8,0,0,0-.88-.68h0L115.61,1.07a8,8,0,0,0-8,0L11.34,56.49h0a6.52,6.52,0,0,0-.88.69,7.81,7.81,0,0,0-.79.6,8.15,8.15,0,0,0-.71.93c-.18.25-.4.46-.55.72a7.88,7.88,0,0,0-.51,1.24,6.46,6.46,0,0,0-.29.67,8.18,8.18,0,0,0-.28,2.1v329.7a8,8,0,0,0,4,6.95l192.5,110.84a8.83,8.83,0,0,0,1.33.54c.21.08.41.2.63.26a7.92,7.92,0,0,0,4.1,0c.2-.05.37-.16.55-.22a8.6,8.6,0,0,0,1.4-.58L404.4,400.09a8,8,0,0,0,4-6.95V287.88l92.24-53.11a8,8,0,0,0,4-7V117.92A8.63,8.63,0,0,0,504.4,115.83ZM111.6,17.28h0l80.19,46.15-80.2,46.18L31.41,63.44Zm88.25,60V278.6l-46.53,26.79-33.69,19.4V123.5l46.53-26.79Zm0,412.78L23.37,388.5V77.32L57.06,96.7l46.52,26.8V338.68a6.94,6.94,0,0,0,.12.9,8,8,0,0,0,.16,1.18h0a5.92,5.92,0,0,0,.38.9,6.38,6.38,0,0,0,.42,1v0a8.54,8.54,0,0,0,.6.78,7.62,7.62,0,0,0,.66.84l0,0c.23.22.52.38.77.58a8.93,8.93,0,0,0,.86.66l0,0,0,0,92.19,52.18Zm8-106.17-80.06-45.32,84.09-48.41,92.26-53.11,80.13,46.13-58.8,33.56Zm184.52,4.57L215.88,490.11V397.8L346.6,323.2l45.77-26.15Zm0-119.13L358.68,250l-46.53-26.79V131.79l33.69,19.4L392.37,178Zm8-105.28-80.2-46.17,80.2-46.16,80.18,46.15Zm8,105.28V178L455,151.19l33.68-19.4v91.39h0Z\"]\n};\nvar faLastfm = {\n prefix: 'fab',\n iconName: 'lastfm',\n icon: [512, 512, [], \"f202\", \"M225.8 367.1l-18.8-51s-30.5 34-76.2 34c-40.5 0-69.2-35.2-69.2-91.5 0-72.1 36.4-97.9 72.1-97.9 66.5 0 74.8 53.3 100.9 134.9 18.8 56.9 54 102.6 155.4 102.6 72.7 0 122-22.3 122-80.9 0-72.9-62.7-80.6-115-92.1-25.8-5.9-33.4-16.4-33.4-34 0-19.9 15.8-31.7 41.6-31.7 28.2 0 43.4 10.6 45.7 35.8l58.6-7c-4.7-52.8-41.1-74.5-100.9-74.5-52.8 0-104.4 19.9-104.4 83.9 0 39.9 19.4 65.1 68 76.8 44.9 10.6 79.8 13.8 79.8 45.7 0 21.7-21.1 30.5-61 30.5-59.2 0-83.9-31.1-97.9-73.9-32-96.8-43.6-163-161.3-163C45.7 113.8 0 168.3 0 261c0 89.1 45.7 137.2 127.9 137.2 66.2 0 97.9-31.1 97.9-31.1z\"]\n};\nvar faLastfmSquare = {\n prefix: 'fab',\n iconName: 'lastfm-square',\n icon: [448, 512, [], \"f203\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-92.2 312.9c-63.4 0-85.4-28.6-97.1-64.1-16.3-51-21.5-84.3-63-84.3-22.4 0-45.1 16.1-45.1 61.2 0 35.2 18 57.2 43.3 57.2 28.6 0 47.6-21.3 47.6-21.3l11.7 31.9s-19.8 19.4-61.2 19.4c-51.3 0-79.9-30.1-79.9-85.8 0-57.9 28.6-92 82.5-92 73.5 0 80.8 41.4 100.8 101.9 8.8 26.8 24.2 46.2 61.2 46.2 24.9 0 38.1-5.5 38.1-19.1 0-19.9-21.8-22-49.9-28.6-30.4-7.3-42.5-23.1-42.5-48 0-40 32.3-52.4 65.2-52.4 37.4 0 60.1 13.6 63 46.6l-36.7 4.4c-1.5-15.8-11-22.4-28.6-22.4-16.1 0-26 7.3-26 19.8 0 11 4.8 17.6 20.9 21.3 32.7 7.1 71.8 12 71.8 57.5.1 36.7-30.7 50.6-76.1 50.6z\"]\n};\nvar faLeanpub = {\n prefix: 'fab',\n iconName: 'leanpub',\n icon: [576, 512, [], \"f212\", \"M386.539 111.485l15.096 248.955-10.979-.275c-36.232-.824-71.64 8.783-102.657 27.997-31.016-19.214-66.424-27.997-102.657-27.997-45.564 0-82.07 10.705-123.516 27.723L93.117 129.6c28.546-11.803 61.484-18.115 92.226-18.115 41.173 0 73.836 13.175 102.657 42.544 27.723-28.271 59.013-41.721 98.539-42.544zM569.07 448c-25.526 0-47.485-5.215-70.542-15.645-34.31-15.645-69.993-24.978-107.871-24.978-38.977 0-74.934 12.901-102.657 40.623-27.723-27.723-63.68-40.623-102.657-40.623-37.878 0-73.561 9.333-107.871 24.978C55.239 442.236 32.731 448 8.303 448H6.93L49.475 98.859C88.726 76.626 136.486 64 181.775 64 218.83 64 256.984 71.685 288 93.095 319.016 71.685 357.17 64 394.225 64c45.289 0 93.049 12.626 132.3 34.859L569.07 448zm-43.368-44.741l-34.036-280.246c-30.742-13.999-67.248-21.41-101.009-21.41-38.428 0-74.385 12.077-102.657 38.702-28.272-26.625-64.228-38.702-102.657-38.702-33.761 0-70.267 7.411-101.009 21.41L50.298 403.259c47.211-19.487 82.894-33.486 135.045-33.486 37.604 0 70.817 9.606 102.657 29.644 31.84-20.038 65.052-29.644 102.657-29.644 52.151 0 87.834 13.999 135.045 33.486z\"]\n};\nvar faLess = {\n prefix: 'fab',\n iconName: 'less',\n icon: [640, 512, [], \"f41d\", \"M612.7 219c0-20.5 3.2-32.6 3.2-54.6 0-34.2-12.6-45.2-40.5-45.2h-20.5v24.2h6.3c14.2 0 17.3 4.7 17.3 22.1 0 16.3-1.6 32.6-1.6 51.5 0 24.2 7.9 33.6 23.6 37.3v1.6c-15.8 3.7-23.6 13.1-23.6 37.3 0 18.9 1.6 34.2 1.6 51.5 0 17.9-3.7 22.6-17.3 22.6v.5h-6.3V393h20.5c27.8 0 40.5-11 40.5-45.2 0-22.6-3.2-34.2-3.2-54.6 0-11 6.8-22.6 27.3-23.6v-27.3c-20.5-.7-27.3-12.3-27.3-23.3zm-105.6 32c-15.8-6.3-30.5-10-30.5-20.5 0-7.9 6.3-12.6 17.9-12.6s22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-21 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51s-22.5-41-43-47.8zm-358.9 59.4c-3.7 0-8.4-3.2-8.4-13.1V119.1H65.2c-28.4 0-41 11-41 45.2 0 22.6 3.2 35.2 3.2 54.6 0 11-6.8 22.6-27.3 23.6v27.3c20.5.5 27.3 12.1 27.3 23.1 0 19.4-3.2 31-3.2 53.6 0 34.2 12.6 45.2 40.5 45.2h20.5v-24.2h-6.3c-13.1 0-17.3-5.3-17.3-22.6s1.6-32.1 1.6-51.5c0-24.2-7.9-33.6-23.6-37.3v-1.6c15.8-3.7 23.6-13.1 23.6-37.3 0-18.9-1.6-34.2-1.6-51.5s3.7-22.1 17.3-22.1H93v150.8c0 32.1 11 53.1 43.1 53.1 10 0 17.9-1.6 23.6-3.7l-5.3-34.2c-3.1.8-4.6.8-6.2.8zM379.9 251c-16.3-6.3-31-10-31-20.5 0-7.9 6.3-12.6 17.9-12.6 11.6 0 22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-20.5 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51 .1-28.9-22.5-41-43-47.8zm-155-68.8c-38.4 0-75.1 32.1-74.1 82.5 0 52 34.2 82.5 79.3 82.5 18.9 0 39.9-6.8 56.2-17.9l-15.8-27.8c-11.6 6.8-22.6 10-34.2 10-21 0-37.3-10-41.5-34.2H290c.5-3.7 1.6-11 1.6-19.4.6-42.6-22.6-75.7-66.7-75.7zm-30 66.2c3.2-21 15.8-31 30.5-31 18.9 0 26.3 13.1 26.3 31h-56.8z\"]\n};\nvar faLine = {\n prefix: 'fab',\n iconName: 'line',\n icon: [448, 512, [], \"f3c0\", \"M272.1 204.2v71.1c0 1.8-1.4 3.2-3.2 3.2h-11.4c-1.1 0-2.1-.6-2.6-1.3l-32.6-44v42.2c0 1.8-1.4 3.2-3.2 3.2h-11.4c-1.8 0-3.2-1.4-3.2-3.2v-71.1c0-1.8 1.4-3.2 3.2-3.2H219c1 0 2.1.5 2.6 1.4l32.6 44v-42.2c0-1.8 1.4-3.2 3.2-3.2h11.4c1.8-.1 3.3 1.4 3.3 3.1zm-82-3.2h-11.4c-1.8 0-3.2 1.4-3.2 3.2v71.1c0 1.8 1.4 3.2 3.2 3.2h11.4c1.8 0 3.2-1.4 3.2-3.2v-71.1c0-1.7-1.4-3.2-3.2-3.2zm-27.5 59.6h-31.1v-56.4c0-1.8-1.4-3.2-3.2-3.2h-11.4c-1.8 0-3.2 1.4-3.2 3.2v71.1c0 .9.3 1.6.9 2.2.6.5 1.3.9 2.2.9h45.7c1.8 0 3.2-1.4 3.2-3.2v-11.4c0-1.7-1.4-3.2-3.1-3.2zM332.1 201h-45.7c-1.7 0-3.2 1.4-3.2 3.2v71.1c0 1.7 1.4 3.2 3.2 3.2h45.7c1.8 0 3.2-1.4 3.2-3.2v-11.4c0-1.8-1.4-3.2-3.2-3.2H301v-12h31.1c1.8 0 3.2-1.4 3.2-3.2V234c0-1.8-1.4-3.2-3.2-3.2H301v-12h31.1c1.8 0 3.2-1.4 3.2-3.2v-11.4c-.1-1.7-1.5-3.2-3.2-3.2zM448 113.7V399c-.1 44.8-36.8 81.1-81.7 81H81c-44.8-.1-81.1-36.9-81-81.7V113c.1-44.8 36.9-81.1 81.7-81H367c44.8.1 81.1 36.8 81 81.7zm-61.6 122.6c0-73-73.2-132.4-163.1-132.4-89.9 0-163.1 59.4-163.1 132.4 0 65.4 58 120.2 136.4 130.6 19.1 4.1 16.9 11.1 12.6 36.8-.7 4.1-3.3 16.1 14.1 8.8 17.4-7.3 93.9-55.3 128.2-94.7 23.6-26 34.9-52.3 34.9-81.5z\"]\n};\nvar faLinkedin = {\n prefix: 'fab',\n iconName: 'linkedin',\n icon: [448, 512, [], \"f08c\", \"M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z\"]\n};\nvar faLinkedinIn = {\n prefix: 'fab',\n iconName: 'linkedin-in',\n icon: [448, 512, [], \"f0e1\", \"M100.28 448H7.4V148.9h92.88zM53.79 108.1C24.09 108.1 0 83.5 0 53.8a53.79 53.79 0 0 1 107.58 0c0 29.7-24.1 54.3-53.79 54.3zM447.9 448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29 0-55.69 37.7-55.69 76.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5 42.69-48.3 87.88-48.3 94 0 111.28 61.9 111.28 142.3V448z\"]\n};\nvar faLinode = {\n prefix: 'fab',\n iconName: 'linode',\n icon: [448, 512, [], \"f2b8\", \"M437.4 226.3c-.3-.9-.9-1.4-1.4-2l-70-38.6c-.9-.6-2-.6-3.1 0l-58.9 36c-.9.6-1.4 1.7-1.4 2.6l-.9 31.4-24-16c-.9-.6-2.3-.6-3.1 0L240 260.9l-1.4-35.1c0-.9-.6-2-1.4-2.3l-36-24.3 33.7-17.4c1.1-.6 1.7-1.7 1.7-2.9l-5.7-132.3c0-.9-.9-2-1.7-2.6L138.6.3c-.9-.3-1.7-.3-2.3-.3L12.6 38.6c-1.4.6-2.3 2-2 3.7L38 175.4c.9 3.4 34 27.4 38.6 30.9l-26.9 12.9c-1.4.9-2 2.3-1.7 3.4l20.6 100.3c.6 2.9 23.7 23.1 27.1 26.3l-17.4 10.6c-.9.6-1.7 2-1.4 3.1 1.4 7.1 15.4 77.7 16.9 79.1l65.1 69.1c.6.6 1.4.6 2.3.9.6 0 1.1-.3 1.7-.6l83.7-66.9c.9-.6 1.1-1.4 1.1-2.3l-2-46 28 23.7c1.1.9 2.9.9 4 0l66.9-53.4c.9-.6 1.1-1.4 1.1-2.3l2.3-33.4 20.3 14c1.1.9 2.6.9 3.7 0l54.6-43.7c.6-.3 1.1-1.1 1.1-2 .9-6.5 10.3-70.8 9.7-72.8zm-204.8 4.8l4 92.6-90.6 61.2-14-96.6 100.6-57.2zm-7.7-180l5.4 126-106.6 55.4L104 97.7l120.9-46.6zM44 173.1L18 48l79.7 49.4 19.4 132.9L44 173.1zm30.6 147.8L55.7 230l70 58.3 13.7 93.4-64.8-60.8zm24.3 117.7l-13.7-67.1 61.7 60.9 9.7 67.4-57.7-61.2zm64.5 64.5l-10.6-70.9 85.7-61.4 3.1 70-78.2 62.3zm82-115.1c0-3.4.9-22.9-2-25.1l-24.3-20 22.3-14.9c2.3-1.7 1.1-5.7 1.1-8l29.4 22.6.6 68.3-27.1-22.9zm94.3-25.4l-60.9 48.6-.6-68.6 65.7-46.9-4.2 66.9zm27.7-25.7l-19.1-13.4 2-34c.3-.9-.3-2-1.1-2.6L308 259.7l.6-30 64.6 40.6-5.8 66.6zm54.6-39.8l-48.3 38.3 5.7-65.1 51.1-36.6-8.5 63.4z\"]\n};\nvar faLinux = {\n prefix: 'fab',\n iconName: 'linux',\n icon: [448, 512, [], \"f17c\", \"M220.8 123.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5.2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4.2-.8.7-.6 1.1.3 1.3 2.3 1.1 3.4 1.7zm-21.9 1.7c1.2 0 2-1.2 3-1.7 1.1-.6 3.1-.4 3.5-1.6.2-.4-.2-.9-.6-1.1-1.6-.9-3.8-.6-5.5.1-1.3.6-3.4 1.5-3.2 2.9.1 1 1.8 1.5 2.8 1.4zM420 403.8c-3.6-4-5.3-11.6-7.2-19.7-1.8-8.1-3.9-16.8-10.5-22.4-1.3-1.1-2.6-2.1-4-2.9-1.3-.8-2.7-1.5-4.1-2 9.2-27.3 5.6-54.5-3.7-79.1-11.4-30.1-31.3-56.4-46.5-74.4-17.1-21.5-33.7-41.9-33.4-72C311.1 85.4 315.7.1 234.8 0 132.4-.2 158 103.4 156.9 135.2c-1.7 23.4-6.4 41.8-22.5 64.7-18.9 22.5-45.5 58.8-58.1 96.7-6 17.9-8.8 36.1-6.2 53.3-6.5 5.8-11.4 14.7-16.6 20.2-4.2 4.3-10.3 5.9-17 8.3s-14 6-18.5 14.5c-2.1 3.9-2.8 8.1-2.8 12.4 0 3.9.6 7.9 1.2 11.8 1.2 8.1 2.5 15.7.8 20.8-5.2 14.4-5.9 24.4-2.2 31.7 3.8 7.3 11.4 10.5 20.1 12.3 17.3 3.6 40.8 2.7 59.3 12.5 19.8 10.4 39.9 14.1 55.9 10.4 11.6-2.6 21.1-9.6 25.9-20.2 12.5-.1 26.3-5.4 48.3-6.6 14.9-1.2 33.6 5.3 55.1 4.1.6 2.3 1.4 4.6 2.5 6.7v.1c8.3 16.7 23.8 24.3 40.3 23 16.6-1.3 34.1-11 48.3-27.9 13.6-16.4 36-23.2 50.9-32.2 7.4-4.5 13.4-10.1 13.9-18.3.4-8.2-4.4-17.3-15.5-29.7zM223.7 87.3c9.8-22.2 34.2-21.8 44-.4 6.5 14.2 3.6 30.9-4.3 40.4-1.6-.8-5.9-2.6-12.6-4.9 1.1-1.2 3.1-2.7 3.9-4.6 4.8-11.8-.2-27-9.1-27.3-7.3-.5-13.9 10.8-11.8 23-4.1-2-9.4-3.5-13-4.4-1-6.9-.3-14.6 2.9-21.8zM183 75.8c10.1 0 20.8 14.2 19.1 33.5-3.5 1-7.1 2.5-10.2 4.6 1.2-8.9-3.3-20.1-9.6-19.6-8.4.7-9.8 21.2-1.8 28.1 1 .8 1.9-.2-5.9 5.5-15.6-14.6-10.5-52.1 8.4-52.1zm-13.6 60.7c6.2-4.6 13.6-10 14.1-10.5 4.7-4.4 13.5-14.2 27.9-14.2 7.1 0 15.6 2.3 25.9 8.9 6.3 4.1 11.3 4.4 22.6 9.3 8.4 3.5 13.7 9.7 10.5 18.2-2.6 7.1-11 14.4-22.7 18.1-11.1 3.6-19.8 16-38.2 14.9-3.9-.2-7-1-9.6-2.1-8-3.5-12.2-10.4-20-15-8.6-4.8-13.2-10.4-14.7-15.3-1.4-4.9 0-9 4.2-12.3zm3.3 334c-2.7 35.1-43.9 34.4-75.3 18-29.9-15.8-68.6-6.5-76.5-21.9-2.4-4.7-2.4-12.7 2.6-26.4v-.2c2.4-7.6.6-16-.6-23.9-1.2-7.8-1.8-15 .9-20 3.5-6.7 8.5-9.1 14.8-11.3 10.3-3.7 11.8-3.4 19.6-9.9 5.5-5.7 9.5-12.9 14.3-18 5.1-5.5 10-8.1 17.7-6.9 8.1 1.2 15.1 6.8 21.9 16l19.6 35.6c9.5 19.9 43.1 48.4 41 68.9zm-1.4-25.9c-4.1-6.6-9.6-13.6-14.4-19.6 7.1 0 14.2-2.2 16.7-8.9 2.3-6.2 0-14.9-7.4-24.9-13.5-18.2-38.3-32.5-38.3-32.5-13.5-8.4-21.1-18.7-24.6-29.9s-3-23.3-.3-35.2c5.2-22.9 18.6-45.2 27.2-59.2 2.3-1.7.8 3.2-8.7 20.8-8.5 16.1-24.4 53.3-2.6 82.4.6-20.7 5.5-41.8 13.8-61.5 12-27.4 37.3-74.9 39.3-112.7 1.1.8 4.6 3.2 6.2 4.1 4.6 2.7 8.1 6.7 12.6 10.3 12.4 10 28.5 9.2 42.4 1.2 6.2-3.5 11.2-7.5 15.9-9 9.9-3.1 17.8-8.6 22.3-15 7.7 30.4 25.7 74.3 37.2 95.7 6.1 11.4 18.3 35.5 23.6 64.6 3.3-.1 7 .4 10.9 1.4 13.8-35.7-11.7-74.2-23.3-84.9-4.7-4.6-4.9-6.6-2.6-6.5 12.6 11.2 29.2 33.7 35.2 59 2.8 11.6 3.3 23.7.4 35.7 16.4 6.8 35.9 17.9 30.7 34.8-2.2-.1-3.2 0-4.2 0 3.2-10.1-3.9-17.6-22.8-26.1-19.6-8.6-36-8.6-38.3 12.5-12.1 4.2-18.3 14.7-21.4 27.3-2.8 11.2-3.6 24.7-4.4 39.9-.5 7.7-3.6 18-6.8 29-32.1 22.9-76.7 32.9-114.3 7.2zm257.4-11.5c-.9 16.8-41.2 19.9-63.2 46.5-13.2 15.7-29.4 24.4-43.6 25.5s-26.5-4.8-33.7-19.3c-4.7-11.1-2.4-23.1 1.1-36.3 3.7-14.2 9.2-28.8 9.9-40.6.8-15.2 1.7-28.5 4.2-38.7 2.6-10.3 6.6-17.2 13.7-21.1.3-.2.7-.3 1-.5.8 13.2 7.3 26.6 18.8 29.5 12.6 3.3 30.7-7.5 38.4-16.3 9-.3 15.7-.9 22.6 5.1 9.9 8.5 7.1 30.3 17.1 41.6 10.6 11.6 14 19.5 13.7 24.6zM173.3 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4s5.9-6.3 3.1-6.6-2.6 2.6-6 5.1c-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2s-18.7-4.8-24.9-9.7c-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5z\"]\n};\nvar faLyft = {\n prefix: 'fab',\n iconName: 'lyft',\n icon: [512, 512, [], \"f3c3\", \"M0 81.1h77.8v208.7c0 33.1 15 52.8 27.2 61-12.7 11.1-51.2 20.9-80.2-2.8C7.8 334 0 310.7 0 289V81.1zm485.9 173.5v-22h23.8v-76.8h-26.1c-10.1-46.3-51.2-80.7-100.3-80.7-56.6 0-102.7 46-102.7 102.7V357c16 2.3 35.4-.3 51.7-14 17.1-14 24.8-37.2 24.8-59v-6.7h38.8v-76.8h-38.8v-23.3c0-34.6 52.2-34.6 52.2 0v77.1c0 56.6 46 102.7 102.7 102.7v-76.5c-14.5 0-26.1-11.7-26.1-25.9zm-294.3-99v113c0 15.4-23.8 15.4-23.8 0v-113H91v132.7c0 23.8 8 54 45 63.9 37 9.8 58.2-10.6 58.2-10.6-2.1 13.4-14.5 23.3-34.9 25.3-15.5 1.6-35.2-3.6-45-7.8v70.3c25.1 7.5 51.5 9.8 77.6 4.7 47.1-9.1 76.8-48.4 76.8-100.8V155.1h-77.1v.5z\"]\n};\nvar faMagento = {\n prefix: 'fab',\n iconName: 'magento',\n icon: [448, 512, [], \"f3c4\", \"M445.7 127.9V384l-63.4 36.5V164.7L223.8 73.1 65.2 164.7l.4 255.9L2.3 384V128.1L224.2 0l221.5 127.9zM255.6 420.5L224 438.9l-31.8-18.2v-256l-63.3 36.6.1 255.9 94.9 54.9 95.1-54.9v-256l-63.4-36.6v255.9z\"]\n};\nvar faMailchimp = {\n prefix: 'fab',\n iconName: 'mailchimp',\n icon: [448, 512, [], \"f59e\", \"M330.61 243.52a36.15 36.15 0 0 1 9.3 0c1.66-3.83 1.95-10.43.45-17.61-2.23-10.67-5.25-17.14-11.48-16.13s-6.47 8.74-4.24 19.42c1.26 6 3.49 11.14 6 14.32zM277.05 252c4.47 2 7.2 3.26 8.28 2.13 1.89-1.94-3.48-9.39-12.12-13.09a31.44 31.44 0 0 0-30.61 3.68c-3 2.18-5.81 5.22-5.41 7.06.85 3.74 10-2.71 22.6-3.48 7-.44 12.8 1.75 17.26 3.71zm-9 5.13c-9.07 1.42-15 6.53-13.47 10.1.9.34 1.17.81 5.21-.81a37 37 0 0 1 18.72-1.95c2.92.34 4.31.52 4.94-.49 1.46-2.22-5.71-8-15.39-6.85zm54.17 17.1c3.38-6.87-10.9-13.93-14.3-7s10.92 13.88 14.32 6.97zm15.66-20.47c-7.66-.13-7.95 15.8-.26 15.93s7.98-15.81.28-15.96zm-218.79 78.9c-1.32.31-6 1.45-8.47-2.35-5.2-8 11.11-20.38 3-35.77-9.1-17.47-27.82-13.54-35.05-5.54-8.71 9.6-8.72 23.54-5 24.08 4.27.57 4.08-6.47 7.38-11.63a12.83 12.83 0 0 1 17.85-3.72c11.59 7.59 1.37 17.76 2.28 28.62 1.39 16.68 18.42 16.37 21.58 9a2.08 2.08 0 0 0-.2-2.33c.03.89.68-1.3-3.35-.39zm299.72-17.07c-3.35-11.73-2.57-9.22-6.78-20.52 2.45-3.67 15.29-24-3.07-43.25-10.4-10.92-33.9-16.54-41.1-18.54-1.5-11.39 4.65-58.7-21.52-83 20.79-21.55 33.76-45.29 33.73-65.65-.06-39.16-48.15-51-107.42-26.47l-12.55 5.33c-.06-.05-22.71-22.27-23.05-22.57C169.5-18-41.77 216.81 25.78 273.85l14.76 12.51a72.49 72.49 0 0 0-4.1 33.5c3.36 33.4 36 60.42 67.53 60.38 57.73 133.06 267.9 133.28 322.29 3 1.74-4.47 9.11-24.61 9.11-42.38s-10.09-25.27-16.53-25.27zm-316 48.16c-22.82-.61-47.46-21.15-49.91-45.51-6.17-61.31 74.26-75.27 84-12.33 4.54 29.64-4.67 58.49-34.12 57.81zM84.3 249.55C69.14 252.5 55.78 261.09 47.6 273c-4.88-4.07-14-12-15.59-15-13.01-24.85 14.24-73 33.3-100.21C112.42 90.56 186.19 39.68 220.36 48.91c5.55 1.57 23.94 22.89 23.94 22.89s-34.15 18.94-65.8 45.35c-42.66 32.85-74.89 80.59-94.2 132.4zM323.18 350.7s-35.74 5.3-69.51-7.07c6.21-20.16 27 6.1 96.4-13.81 15.29-4.38 35.37-13 51-25.35a102.85 102.85 0 0 1 7.12 24.28c3.66-.66 14.25-.52 11.44 18.1-3.29 19.87-11.73 36-25.93 50.84A106.86 106.86 0 0 1 362.55 421a132.45 132.45 0 0 1-20.34 8.58c-53.51 17.48-108.3-1.74-126-43a66.33 66.33 0 0 1-3.55-9.74c-7.53-27.2-1.14-59.83 18.84-80.37 1.23-1.31 2.48-2.85 2.48-4.79a8.45 8.45 0 0 0-1.92-4.54c-7-10.13-31.19-27.4-26.33-60.83 3.5-24 24.49-40.91 44.07-39.91l5 .29c8.48.5 15.89 1.59 22.88 1.88 11.69.5 22.2-1.19 34.64-11.56 4.2-3.5 7.57-6.54 13.26-7.51a17.45 17.45 0 0 1 13.6 2.24c10 6.64 11.4 22.73 11.92 34.49.29 6.72 1.1 23 1.38 27.63.63 10.67 3.43 12.17 9.11 14 3.19 1.05 6.15 1.83 10.51 3.06 13.21 3.71 21 7.48 26 12.31a16.38 16.38 0 0 1 4.74 9.29c1.56 11.37-8.82 25.4-36.31 38.16-46.71 21.68-93.68 14.45-100.48 13.68-20.15-2.71-31.63 23.32-19.55 41.15 22.64 33.41 122.4 20 151.37-21.35.69-1 .12-1.59-.73-1-41.77 28.58-97.06 38.21-128.46 26-4.77-1.85-14.73-6.44-15.94-16.67 43.6 13.49 71 .74 71 .74s2.03-2.79-.56-2.53zm-68.47-5.7zm-83.4-187.5c16.74-19.35 37.36-36.18 55.83-45.63a.73.73 0 0 1 1 1c-1.46 2.66-4.29 8.34-5.19 12.65a.75.75 0 0 0 1.16.79c11.49-7.83 31.48-16.22 49-17.3a.77.77 0 0 1 .52 1.38 41.86 41.86 0 0 0-7.71 7.74.75.75 0 0 0 .59 1.19c12.31.09 29.66 4.4 41 10.74.76.43.22 1.91-.64 1.72-69.55-15.94-123.08 18.53-134.5 26.83a.76.76 0 0 1-1-1.12z\"]\n};\nvar faMandalorian = {\n prefix: 'fab',\n iconName: 'mandalorian',\n icon: [448, 512, [], \"f50f\", \"M232.27 511.89c-1-3.26-1.69-15.83-1.39-24.58.55-15.89 1-24.72 1.4-28.76.64-6.2 2.87-20.72 3.28-21.38.6-1 .4-27.87-.24-33.13-.31-2.58-.63-11.9-.69-20.73-.13-16.47-.53-20.12-2.73-24.76-1.1-2.32-1.23-3.84-1-11.43a92.38 92.38 0 0 0-.34-12.71c-2-13-3.46-27.7-3.25-33.9s.43-7.15 2.06-9.67c3.05-4.71 6.51-14 8.62-23.27 2.26-9.86 3.88-17.18 4.59-20.74a109.54 109.54 0 0 1 4.42-15.05c2.27-6.25 2.49-15.39.37-15.39-.3 0-1.38 1.22-2.41 2.71s-4.76 4.8-8.29 7.36c-8.37 6.08-11.7 9.39-12.66 12.58s-1 7.23-.16 7.76c.34.21 1.29 2.4 2.11 4.88a28.83 28.83 0 0 1 .72 15.36c-.39 1.77-1 5.47-1.46 8.23s-1 6.46-1.25 8.22a9.85 9.85 0 0 1-1.55 4.26c-1 1-1.14.91-2.05-.53a14.87 14.87 0 0 1-1.44-4.75c-.25-1.74-1.63-7.11-3.08-11.93-3.28-10.9-3.52-16.15-1-21a14.24 14.24 0 0 0 1.67-4.61c0-2.39-2.2-5.32-7.41-9.89-7-6.18-8.63-7.92-10.23-11.3-1.71-3.6-3.06-4.06-4.54-1.54-1.78 3-2.6 9.11-3 22l-.34 12.19 2 2.25c3.21 3.7 12.07 16.45 13.78 19.83 3.41 6.74 4.34 11.69 4.41 23.56s.95 22.75 2 24.71c.36.66.51 1.35.34 1.52s.41 2.09 1.29 4.27a38.14 38.14 0 0 1 2.06 9 91 91 0 0 0 1.71 10.37c2.23 9.56 2.77 14.08 2.39 20.14-.2 3.27-.53 11.07-.73 17.32-1.31 41.76-1.85 58-2 61.21-.12 2-.39 11.51-.6 21.07-.36 16.3-1.3 27.37-2.42 28.65-.64.73-8.07-4.91-12.52-9.49-3.75-3.87-4-4.79-2.83-9.95.7-3 2.26-18.29 3.33-32.62.36-4.78.81-10.5 1-12.71.83-9.37 1.66-20.35 2.61-34.78.56-8.46 1.33-16.44 1.72-17.73s.89-9.89 1.13-19.11l.43-16.77-2.26-4.3c-1.72-3.28-4.87-6.94-13.22-15.34-6-6.07-11.84-12.3-12.91-13.85l-1.95-2.81.75-10.9c1.09-15.71 1.1-48.57 0-59.06l-.89-8.7-3.28-4.52c-5.86-8.08-5.8-7.75-6.22-33.27-.1-6.07-.38-11.5-.63-12.06-.83-1.87-3.05-2.66-8.54-3.05-8.86-.62-11-1.9-23.85-14.55-6.15-6-12.34-12-13.75-13.19-2.81-2.42-2.79-2-.56-9.63l1.35-4.65-1.69-3a32.22 32.22 0 0 0-2.59-4.07c-1.33-1.51-5.5-10.89-6-13.49a4.24 4.24 0 0 1 .87-3.9c2.23-2.86 3.4-5.68 4.45-10.73 2.33-11.19 7.74-26.09 10.6-29.22 3.18-3.47 7.7-1 9.41 5 1.34 4.79 1.37 9.79.1 18.55a101.2 101.2 0 0 0-1 11.11c0 4 .19 4.69 2.25 7.39 3.33 4.37 7.73 7.41 15.2 10.52a18.67 18.67 0 0 1 4.72 2.85c11.17 10.72 18.62 16.18 22.95 16.85 5.18.8 8 4.54 10 13.39 1.31 5.65 4 11.14 5.46 11.14a9.38 9.38 0 0 0 3.33-1.39c2-1.22 2.25-1.73 2.25-4.18a132.88 132.88 0 0 0-2-17.84c-.37-1.66-.78-4.06-.93-5.35s-.61-3.85-1-5.69c-2.55-11.16-3.65-15.46-4.1-16-1.55-2-4.08-10.2-4.93-15.92-1.64-11.11-4-14.23-12.91-17.39A43.15 43.15 0 0 1 165.24 78c-1.15-1-4-3.22-6.35-5.06s-4.41-3.53-4.6-3.76a22.7 22.7 0 0 0-2.69-2c-6.24-4.22-8.84-7-11.26-12l-2.44-5-.22-13-.22-13 6.91-6.55c3.95-3.75 8.48-7.35 10.59-8.43 3.31-1.69 4.45-1.89 11.37-2 8.53-.19 10.12 0 11.66 1.56s1.36 6.4-.29 8.5a6.66 6.66 0 0 0-1.34 2.32c0 .58-2.61 4.91-5.42 9a30.39 30.39 0 0 0-2.37 6.82c20.44 13.39 21.55 3.77 14.07 29L194 66.92c3.11-8.66 6.47-17.26 8.61-26.22.29-7.63-12-4.19-15.4-8.68-2.33-5.93 3.13-14.18 6.06-19.2 1.6-2.34 6.62-4.7 8.82-4.15.88.22 4.16-.35 7.37-1.28a45.3 45.3 0 0 1 7.55-1.68 29.57 29.57 0 0 0 6-1.29c3.65-1.11 4.5-1.17 6.35-.4a29.54 29.54 0 0 0 5.82 1.36 18.18 18.18 0 0 1 6 1.91 22.67 22.67 0 0 0 5 2.17c2.51.68 3 .57 7.05-1.67l4.35-2.4L268.32 5c10.44-.4 10.81-.47 15.26-2.68L288.16 0l2.46 1.43c1.76 1 3.14 2.73 4.85 6 2.36 4.51 2.38 4.58 1.37 7.37-.88 2.44-.89 3.3-.1 6.39a35.76 35.76 0 0 0 2.1 5.91 13.55 13.55 0 0 1 1.31 4c.31 4.33 0 5.3-2.41 6.92-2.17 1.47-7 7.91-7 9.34a14.77 14.77 0 0 1-1.07 3c-5 11.51-6.76 13.56-14.26 17-9.2 4.2-12.3 5.19-16.21 5.19-3.1 0-4 .25-4.54 1.26a18.33 18.33 0 0 1-4.09 3.71 13.62 13.62 0 0 0-4.38 4.78 5.89 5.89 0 0 1-2.49 2.91 6.88 6.88 0 0 0-2.45 1.71 67.62 67.62 0 0 1-7 5.38c-3.33 2.34-6.87 5-7.87 6A7.27 7.27 0 0 1 224 100a5.76 5.76 0 0 0-2.13 1.65c-1.31 1.39-1.49 2.11-1.14 4.6a36.45 36.45 0 0 0 1.42 5.88c1.32 3.8 1.31 7.86 0 10.57s-.89 6.65 1.35 9.59c2 2.63 2.16 4.56.71 8.84a33.45 33.45 0 0 0-1.06 8.91c0 4.88.22 6.28 1.46 8.38s1.82 2.48 3.24 2.32c2-.23 2.3-1.05 4.71-12.12 2.18-10 3.71-11.92 13.76-17.08 2.94-1.51 7.46-4 10-5.44s6.79-3.69 9.37-4.91a40.09 40.09 0 0 0 15.22-11.67c7.11-8.79 10-16.22 12.85-33.3a18.37 18.37 0 0 1 2.86-7.73 20.39 20.39 0 0 0 2.89-7.31c1-5.3 2.85-9.08 5.58-11.51 4.7-4.18 6-1.09 4.59 10.87-.46 3.86-1.1 10.33-1.44 14.38l-.61 7.36 4.45 4.09 4.45 4.09.11 8.42c.06 4.63.47 9.53.92 10.89l.82 2.47-6.43 6.28c-8.54 8.33-12.88 13.93-16.76 21.61-1.77 3.49-3.74 7.11-4.38 8-2.18 3.11-6.46 13-8.76 20.26l-2.29 7.22-7 6.49c-3.83 3.57-8 7.25-9.17 8.17-3.05 2.32-4.26 5.15-4.26 10a14.62 14.62 0 0 0 1.59 7.26 42 42 0 0 1 2.09 4.83 9.28 9.28 0 0 0 1.57 2.89c1.4 1.59 1.92 16.12.83 23.22-.68 4.48-3.63 12-4.7 12-1.79 0-4.06 9.27-5.07 20.74-.18 2-.62 5.94-1 8.7s-1 10-1.35 16.05c-.77 12.22-.19 18.77 2 23.15 3.41 6.69.52 12.69-11 22.84l-4 3.49.07 5.19a40.81 40.81 0 0 0 1.14 8.87c4.61 16 4.73 16.92 4.38 37.13-.46 26.4-.26 40.27.63 44.15a61.31 61.31 0 0 1 1.08 7c.17 2 .66 5.33 1.08 7.36.47 2.26.78 11 .79 22.74v19.06l-1.81 2.63c-2.71 3.91-15.11 13.54-15.49 12.29zm29.53-45.11c-.18-.3-.33-6.87-.33-14.59 0-14.06-.89-27.54-2.26-34.45-.4-2-.81-9.7-.9-17.06-.15-11.93-1.4-24.37-2.64-26.38-.66-1.07-3-17.66-3-21.3 0-4.23 1-6 5.28-9.13s4.86-3.14 5.48-.72c.28 1.1 1.45 5.62 2.6 10 3.93 15.12 4.14 16.27 4.05 21.74-.1 5.78-.13 6.13-1.74 17.73-1 7.07-1.17 12.39-1 28.43.17 19.4-.64 35.73-2 41.27-.71 2.78-2.8 5.48-3.43 4.43zm-71-37.58a101 101 0 0 1-1.73-10.79 100.5 100.5 0 0 0-1.73-10.79 37.53 37.53 0 0 1-1-6.49c-.31-3.19-.91-7.46-1.33-9.48-1-4.79-3.35-19.35-3.42-21.07 0-.74-.34-4.05-.7-7.36-.67-6.21-.84-27.67-.22-28.29 1-1 6.63 2.76 11.33 7.43l5.28 5.25-.45 6.47c-.25 3.56-.6 10.23-.78 14.83s-.49 9.87-.67 11.71-.61 9.36-.94 16.72c-.79 17.41-1.94 31.29-2.65 32a.62.62 0 0 1-1-.14zm-87.18-266.59c21.07 12.79 17.84 14.15 28.49 17.66 13 4.29 18.87 7.13 23.15 16.87C111.6 233.28 86.25 255 78.55 268c-31 52-6 101.59 62.75 87.21-14.18 29.23-78 28.63-98.68-4.9-24.68-39.95-22.09-118.3 61-187.66zm210.79 179c56.66 6.88 82.32-37.74 46.54-89.23 0 0-26.87-29.34-64.28-68 3-15.45 9.49-32.12 30.57-53.82 89.2 63.51 92 141.61 92.46 149.36 4.3 70.64-78.7 91.18-105.29 61.71z\"]\n};\nvar faMarkdown = {\n prefix: 'fab',\n iconName: 'markdown',\n icon: [640, 512, [], \"f60f\", \"M593.8 59.1H46.2C20.7 59.1 0 79.8 0 105.2v301.5c0 25.5 20.7 46.2 46.2 46.2h547.7c25.5 0 46.2-20.7 46.1-46.1V105.2c0-25.4-20.7-46.1-46.2-46.1zM338.5 360.6H277v-120l-61.5 76.9-61.5-76.9v120H92.3V151.4h61.5l61.5 76.9 61.5-76.9h61.5v209.2zm135.3 3.1L381.5 256H443V151.4h61.5V256H566z\"]\n};\nvar faMastodon = {\n prefix: 'fab',\n iconName: 'mastodon',\n icon: [448, 512, [], \"f4f6\", \"M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.54 102.54 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5zm-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z\"]\n};\nvar faMaxcdn = {\n prefix: 'fab',\n iconName: 'maxcdn',\n icon: [512, 512, [], \"f136\", \"M461.1 442.7h-97.4L415.6 200c2.3-10.2.9-19.5-4.4-25.7-5-6.1-13.7-9.6-24.2-9.6h-49.3l-59.5 278h-97.4l59.5-278h-83.4l-59.5 278H0l59.5-278-44.6-95.4H387c39.4 0 75.3 16.3 98.3 44.9 23.3 28.6 31.8 67.4 23.6 105.9l-47.8 222.6z\"]\n};\nvar faMdb = {\n prefix: 'fab',\n iconName: 'mdb',\n icon: [576, 512, [], \"f8ca\", \"M17.37 160.41L7 352h43.91l5.59-79.83L84.43 352h44.71l25.54-77.43 4.79 77.43H205l-12.79-191.59H146.7L106 277.74 63.67 160.41zm281 0h-47.9V352h47.9s95 .8 94.2-95.79c-.78-94.21-94.18-95.78-94.18-95.78zm-1.2 146.46V204.78s46 4.27 46.8 50.57-46.78 51.54-46.78 51.54zm238.29-74.24a56.16 56.16 0 0 0 8-38.31c-5.34-35.76-55.08-34.32-55.08-34.32h-51.9v191.58H482s87 4.79 87-63.85c0-43.14-33.52-55.08-33.52-55.08zm-51.9-31.94s13.57-1.59 16 9.59c1.43 6.66-4 12-4 12h-12v-21.57zm-.1 109.46l.1-24.92V267h.08s41.58-4.73 41.19 22.43c-.33 25.65-41.35 20.74-41.35 20.74z\"]\n};\nvar faMedapps = {\n prefix: 'fab',\n iconName: 'medapps',\n icon: [320, 512, [], \"f3c6\", \"M118.3 238.4c3.5-12.5 6.9-33.6 13.2-33.6 8.3 1.8 9.6 23.4 18.6 36.6 4.6-23.5 5.3-85.1 14.1-86.7 9-.7 19.7 66.5 22 77.5 9.9 4.1 48.9 6.6 48.9 6.6 1.9 7.3-24 7.6-40 7.8-4.6 14.8-5.4 27.7-11.4 28-4.7.2-8.2-28.8-17.5-49.6l-9.4 65.5c-4.4 13-15.5-22.5-21.9-39.3-3.3-.1-62.4-1.6-47.6-7.8l31-5zM228 448c21.2 0 21.2-32 0-32H92c-21.2 0-21.2 32 0 32h136zm-24 64c21.2 0 21.2-32 0-32h-88c-21.2 0-21.2 32 0 32h88zm34.2-141.5c3.2-18.9 5.2-36.4 11.9-48.8 7.9-14.7 16.1-28.1 24-41 24.6-40.4 45.9-75.2 45.9-125.5C320 69.6 248.2 0 160 0S0 69.6 0 155.2c0 50.2 21.3 85.1 45.9 125.5 7.9 12.9 16 26.3 24 41 6.7 12.5 8.7 29.8 11.9 48.9 3.5 21 36.1 15.7 32.6-5.1-3.6-21.7-5.6-40.7-15.3-58.6C66.5 246.5 33 211.3 33 155.2 33 87.3 90 32 160 32s127 55.3 127 123.2c0 56.1-33.5 91.3-66.1 151.6-9.7 18-11.7 37.4-15.3 58.6-3.4 20.6 29 26.4 32.6 5.1z\"]\n};\nvar faMedium = {\n prefix: 'fab',\n iconName: 'medium',\n icon: [448, 512, [], \"f23a\", \"M0 32v448h448V32H0zm372.2 106.1l-24 23c-2.1 1.6-3.1 4.2-2.7 6.7v169.3c-.4 2.6.6 5.2 2.7 6.7l23.5 23v5.1h-118V367l24.3-23.6c2.4-2.4 2.4-3.1 2.4-6.7V199.8l-67.6 171.6h-9.1L125 199.8v115c-.7 4.8 1 9.7 4.4 13.2l31.6 38.3v5.1H71.2v-5.1l31.6-38.3c3.4-3.5 4.9-8.4 4.1-13.2v-133c.4-3.7-1-7.3-3.8-9.8L75 138.1V133h87.3l67.4 148L289 133.1h83.2v5z\"]\n};\nvar faMediumM = {\n prefix: 'fab',\n iconName: 'medium-m',\n icon: [512, 512, [], \"f3c7\", \"M71.5 142.3c.6-5.9-1.7-11.8-6.1-15.8L20.3 72.1V64h140.2l108.4 237.7L364.2 64h133.7v8.1l-38.6 37c-3.3 2.5-5 6.7-4.3 10.8v272c-.7 4.1 1 8.3 4.3 10.8l37.7 37v8.1H307.3v-8.1l39.1-37.9c3.8-3.8 3.8-5 3.8-10.8V171.2L241.5 447.1h-14.7L100.4 171.2v184.9c-1.1 7.8 1.5 15.6 7 21.2l50.8 61.6v8.1h-144v-8L65 377.3c5.4-5.6 7.9-13.5 6.5-21.2V142.3z\"]\n};\nvar faMedrt = {\n prefix: 'fab',\n iconName: 'medrt',\n icon: [544, 512, [], \"f3c8\", \"M113.7 256c0 121.8 83.9 222.8 193.5 241.1-18.7 4.5-38.2 6.9-58.2 6.9C111.4 504 0 393 0 256S111.4 8 248.9 8c20.1 0 39.6 2.4 58.2 6.9C197.5 33.2 113.7 134.2 113.7 256m297.4 100.3c-77.7 55.4-179.6 47.5-240.4-14.6 5.5 14.1 12.7 27.7 21.7 40.5 61.6 88.2 182.4 109.3 269.7 47 87.3-62.3 108.1-184.3 46.5-272.6-9-12.9-19.3-24.3-30.5-34.2 37.4 78.8 10.7 178.5-67 233.9m-218.8-244c-1.4 1-2.7 2.1-4 3.1 64.3-17.8 135.9 4 178.9 60.5 35.7 47 42.9 106.6 24.4 158 56.7-56.2 67.6-142.1 22.3-201.8-50-65.5-149.1-74.4-221.6-19.8M296 224c-4.4 0-8-3.6-8-8v-40c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v40c0 4.4-3.6 8-8 8h-40c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h40c4.4 0 8 3.6 8 8v40c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-40c0-4.4 3.6-8 8-8h40c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-40z\"]\n};\nvar faMeetup = {\n prefix: 'fab',\n iconName: 'meetup',\n icon: [512, 512, [], \"f2e0\", \"M99 414.3c1.1 5.7-2.3 11.1-8 12.3-5.4 1.1-10.9-2.3-12-8-1.1-5.4 2.3-11.1 7.7-12.3 5.4-1.2 11.1 2.3 12.3 8zm143.1 71.4c-6.3 4.6-8 13.4-3.7 20 4.6 6.6 13.4 8.3 20 3.7 6.3-4.6 8-13.4 3.4-20-4.2-6.5-13.1-8.3-19.7-3.7zm-86-462.3c6.3-1.4 10.3-7.7 8.9-14-1.1-6.6-7.4-10.6-13.7-9.1-6.3 1.4-10.3 7.7-9.1 14 1.4 6.6 7.6 10.6 13.9 9.1zM34.4 226.3c-10-6.9-23.7-4.3-30.6 6-6.9 10-4.3 24 5.7 30.9 10 7.1 23.7 4.6 30.6-5.7 6.9-10.4 4.3-24.1-5.7-31.2zm272-170.9c10.6-6.3 13.7-20 7.7-30.3-6.3-10.6-19.7-14-30-7.7s-13.7 20-7.4 30.6c6 10.3 19.4 13.7 29.7 7.4zm-191.1 58c7.7-5.4 9.4-16 4.3-23.7s-15.7-9.4-23.1-4.3c-7.7 5.4-9.4 16-4.3 23.7 5.1 7.8 15.6 9.5 23.1 4.3zm372.3 156c-7.4 1.7-12.3 9.1-10.6 16.9 1.4 7.4 8.9 12.3 16.3 10.6 7.4-1.4 12.3-8.9 10.6-16.6-1.5-7.4-8.9-12.3-16.3-10.9zm39.7-56.8c-1.1-5.7-6.6-9.1-12-8-5.7 1.1-9.1 6.9-8 12.6 1.1 5.4 6.6 9.1 12.3 8 5.4-1.5 9.1-6.9 7.7-12.6zM447 138.9c-8.6 6-10.6 17.7-4.9 26.3 5.7 8.6 17.4 10.6 26 4.9 8.3-6 10.3-17.7 4.6-26.3-5.7-8.7-17.4-10.9-25.7-4.9zm-6.3 139.4c26.3 43.1 15.1 100-26.3 129.1-17.4 12.3-37.1 17.7-56.9 17.1-12 47.1-69.4 64.6-105.1 32.6-1.1.9-2.6 1.7-3.7 2.9-39.1 27.1-92.3 17.4-119.4-22.3-9.7-14.3-14.6-30.6-15.1-46.9-65.4-10.9-90-94-41.1-139.7-28.3-46.9.6-107.4 53.4-114.9C151.6 70 234.1 38.6 290.1 82c67.4-22.3 136.3 29.4 130.9 101.1 41.1 12.6 52.8 66.9 19.7 95.2zm-70 74.3c-3.1-20.6-40.9-4.6-43.1-27.1-3.1-32 43.7-101.1 40-128-3.4-24-19.4-29.1-33.4-29.4-13.4-.3-16.9 2-21.4 4.6-2.9 1.7-6.6 4.9-11.7-.3-6.3-6-11.1-11.7-19.4-12.9-12.3-2-17.7 2-26.6 9.7-3.4 2.9-12 12.9-20 9.1-3.4-1.7-15.4-7.7-24-11.4-16.3-7.1-40 4.6-48.6 20-12.9 22.9-38 113.1-41.7 125.1-8.6 26.6 10.9 48.6 36.9 47.1 11.1-.6 18.3-4.6 25.4-17.4 4-7.4 41.7-107.7 44.6-112.6 2-3.4 8.9-8 14.6-5.1 5.7 3.1 6.9 9.4 6 15.1-1.1 9.7-28 70.9-28.9 77.7-3.4 22.9 26.9 26.6 38.6 4 3.7-7.1 45.7-92.6 49.4-98.3 4.3-6.3 7.4-8.3 11.7-8 3.1 0 8.3.9 7.1 10.9-1.4 9.4-35.1 72.3-38.9 87.7-4.6 20.6 6.6 41.4 24.9 50.6 11.4 5.7 62.5 15.7 58.5-11.1zm5.7 92.3c-10.3 7.4-12.9 22-5.7 32.6 7.1 10.6 21.4 13.1 32 6 10.6-7.4 13.1-22 6-32.6-7.4-10.6-21.7-13.5-32.3-6z\"]\n};\nvar faMegaport = {\n prefix: 'fab',\n iconName: 'megaport',\n icon: [496, 512, [], \"f5a3\", \"M214.5 209.6v66.2l33.5 33.5 33.3-33.3v-66.4l-33.4-33.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm145.1 414.4L367 441.6l-26-19.2v-65.5l-33.4-33.4-33.4 33.4v65.5L248 441.6l-26.1-19.2v-65.5l-33.4-33.4-33.5 33.4v65.5l-26.1 19.2-26.1-19.2v-87l59.5-59.5V188l59.5-59.5V52.9l26.1-19.2L274 52.9v75.6l59.5 59.5v87.6l59.7 59.7v87.1z\"]\n};\nvar faMendeley = {\n prefix: 'fab',\n iconName: 'mendeley',\n icon: [640, 512, [], \"f7b3\", \"M624.6 325.2c-12.3-12.4-29.7-19.2-48.4-17.2-43.3-1-49.7-34.9-37.5-98.8 22.8-57.5-14.9-131.5-87.4-130.8-77.4.7-81.7 82-130.9 82-48.1 0-54-81.3-130.9-82-72.9-.8-110.1 73.3-87.4 130.8 12.2 63.9 5.8 97.8-37.5 98.8-21.2-2.3-37 6.5-53 22.5-19.9 19.7-19.3 94.8 42.6 102.6 47.1 5.9 81.6-42.9 61.2-87.8-47.3-103.7 185.9-106.1 146.5-8.2-.1.1-.2.2-.3.4-26.8 42.8 6.8 97.4 58.8 95.2 52.1 2.1 85.4-52.6 58.8-95.2-.1-.2-.2-.3-.3-.4-39.4-97.9 193.8-95.5 146.5 8.2-4.6 10-6.7 21.3-5.7 33 4.9 53.4 68.7 74.1 104.9 35.2 17.8-14.8 23.1-65.6 0-88.3zm-303.9-19.1h-.6c-43.4 0-62.8-37.5-62.8-62.8 0-34.7 28.2-62.8 62.8-62.8h.6c34.7 0 62.8 28.1 62.8 62.8 0 25-19.2 62.8-62.8 62.8z\"]\n};\nvar faMicroblog = {\n prefix: 'fab',\n iconName: 'microblog',\n icon: [448, 512, [], \"e01a\", \"M399.36,362.23c29.49-34.69,47.1-78.34,47.1-125.79C446.46,123.49,346.86,32,224,32S1.54,123.49,1.54,236.44,101.14,440.87,224,440.87a239.28,239.28,0,0,0,79.44-13.44,7.18,7.18,0,0,1,8.12,2.56c18.58,25.09,47.61,42.74,79.89,49.92a4.42,4.42,0,0,0,5.22-3.43,4.37,4.37,0,0,0-.85-3.62,87,87,0,0,1,3.69-110.69ZM329.52,212.4l-57.3,43.49L293,324.75a6.5,6.5,0,0,1-9.94,7.22L224,290.92,164.94,332a6.51,6.51,0,0,1-9.95-7.22l20.79-68.86-57.3-43.49a6.5,6.5,0,0,1,3.8-11.68l71.88-1.51,23.66-67.92a6.5,6.5,0,0,1,12.28,0l23.66,67.92,71.88,1.51a6.5,6.5,0,0,1,3.88,11.68Z\"]\n};\nvar faMicrosoft = {\n prefix: 'fab',\n iconName: 'microsoft',\n icon: [448, 512, [], \"f3ca\", \"M0 32h214.6v214.6H0V32zm233.4 0H448v214.6H233.4V32zM0 265.4h214.6V480H0V265.4zm233.4 0H448V480H233.4V265.4z\"]\n};\nvar faMix = {\n prefix: 'fab',\n iconName: 'mix',\n icon: [448, 512, [], \"f3cb\", \"M0 64v348.9c0 56.2 88 58.1 88 0V174.3c7.9-52.9 88-50.4 88 6.5v175.3c0 57.9 96 58 96 0V240c5.3-54.7 88-52.5 88 4.3v23.8c0 59.9 88 56.6 88 0V64H0z\"]\n};\nvar faMixcloud = {\n prefix: 'fab',\n iconName: 'mixcloud',\n icon: [640, 512, [], \"f289\", \"M424.43 219.729C416.124 134.727 344.135 68 256.919 68c-72.266 0-136.224 46.516-159.205 114.074-54.545 8.029-96.63 54.822-96.63 111.582 0 62.298 50.668 112.966 113.243 112.966h289.614c52.329 0 94.969-42.362 94.969-94.693 0-45.131-32.118-83.063-74.48-92.2zm-20.489 144.53H114.327c-39.04 0-70.881-31.564-70.881-70.604s31.841-70.604 70.881-70.604c18.827 0 36.548 7.475 49.838 20.766 19.963 19.963 50.133-10.227 30.18-30.18-14.675-14.398-32.672-24.365-52.053-29.349 19.935-44.3 64.79-73.926 114.628-73.926 69.496 0 125.979 56.483 125.979 125.702 0 13.568-2.215 26.857-6.369 39.594-8.943 27.517 32.133 38.939 40.147 13.29 2.769-8.306 4.984-16.889 6.369-25.472 19.381 7.476 33.502 26.303 33.502 48.453 0 28.795-23.535 52.33-52.607 52.33zm235.069-52.33c0 44.024-12.737 86.386-37.102 122.657-4.153 6.092-10.798 9.414-17.72 9.414-16.317 0-27.127-18.826-17.443-32.949 19.381-29.349 29.903-63.682 29.903-99.122s-10.521-69.773-29.903-98.845c-15.655-22.831 19.361-47.24 35.163-23.534 24.366 35.993 37.102 78.356 37.102 122.379zm-70.88 0c0 31.565-9.137 62.021-26.857 88.325-4.153 6.091-10.798 9.136-17.72 9.136-17.201 0-27.022-18.979-17.443-32.948 13.013-19.104 19.658-41.255 19.658-64.513 0-22.981-6.645-45.408-19.658-64.512-15.761-22.986 19.008-47.095 35.163-23.535 17.719 26.026 26.857 56.483 26.857 88.047z\"]\n};\nvar faMixer = {\n prefix: 'fab',\n iconName: 'mixer',\n icon: [512, 512, [], \"e056\", \"M114.57,76.07a45.71,45.71,0,0,0-67.51-6.41c-17.58,16.18-19,43.52-4.75,62.77l91.78,123L41.76,379.58c-14.23,19.25-13.11,46.59,4.74,62.77A45.71,45.71,0,0,0,114,435.94L242.89,262.7a12.14,12.14,0,0,0,0-14.23ZM470.24,379.58,377.91,255.45l91.78-123c14.22-19.25,12.83-46.59-4.75-62.77a45.71,45.71,0,0,0-67.51,6.41l-128,172.12a12.14,12.14,0,0,0,0,14.23L398,435.94a45.71,45.71,0,0,0,67.51,6.41C483.35,426.17,484.47,398.83,470.24,379.58Z\"]\n};\nvar faMizuni = {\n prefix: 'fab',\n iconName: 'mizuni',\n icon: [496, 512, [], \"f3cc\", \"M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm-80 351.9c-31.4 10.6-58.8 27.3-80 48.2V136c0-22.1 17.9-40 40-40s40 17.9 40 40v223.9zm120-9.9c-12.9-2-26.2-3.1-39.8-3.1-13.8 0-27.2 1.1-40.2 3.1V136c0-22.1 17.9-40 40-40s40 17.9 40 40v214zm120 57.7c-21.2-20.8-48.6-37.4-80-48V136c0-22.1 17.9-40 40-40s40 17.9 40 40v271.7z\"]\n};\nvar faModx = {\n prefix: 'fab',\n iconName: 'modx',\n icon: [448, 512, [], \"f285\", \"M356 241.8l36.7 23.7V480l-133-83.8L356 241.8zM440 75H226.3l-23 37.8 153.5 96.5L440 75zm-89 142.8L55.2 32v214.5l46 29L351 217.8zM97 294.2L8 437h213.7l125-200.5L97 294.2z\"]\n};\nvar faMonero = {\n prefix: 'fab',\n iconName: 'monero',\n icon: [496, 512, [], \"f3d0\", \"M352 384h108.4C417 455.9 338.1 504 248 504S79 455.9 35.6 384H144V256.2L248 361l104-105v128zM88 336V128l159.4 159.4L408 128v208h74.8c8.5-25.1 13.2-52 13.2-80C496 119 385 8 248 8S0 119 0 256c0 28 4.6 54.9 13.2 80H88z\"]\n};\nvar faNapster = {\n prefix: 'fab',\n iconName: 'napster',\n icon: [496, 512, [], \"f3d2\", \"M298.3 373.6c-14.2 13.6-31.3 24.1-50.4 30.5-19-6.4-36.2-16.9-50.3-30.5h100.7zm44-199.6c20-16.9 43.6-29.2 69.6-36.2V299c0 219.4-328 217.6-328 .3V137.7c25.9 6.9 49.6 19.6 69.5 36.4 56.8-40 132.5-39.9 188.9-.1zm-208.8-58.5c64.4-60 164.3-60.1 228.9-.2-7.1 3.5-13.9 7.3-20.6 11.5-58.7-30.5-129.2-30.4-187.9.1-6.3-4-13.9-8.2-20.4-11.4zM43.8 93.2v69.3c-58.4 36.5-58.4 121.1.1 158.3 26.4 245.1 381.7 240.3 407.6 1.5l.3-1.7c58.7-36.3 58.9-121.7.2-158.2V93.2c-17.3.5-34 3-50.1 7.4-82-91.5-225.5-91.5-307.5.1-16.3-4.4-33.1-7-50.6-7.5zM259.2 352s36-.3 61.3-1.5c10.2-.5 21.1-4 25.5-6.5 26.3-15.1 25.4-39.2 26.2-47.4-79.5-.6-99.9-3.9-113 55.4zm-135.5-55.3c.8 8.2-.1 32.3 26.2 47.4 4.4 2.5 15.2 6 25.5 6.5 25.3 1.1 61.3 1.5 61.3 1.5-13.2-59.4-33.7-56.1-113-55.4zm169.1 123.4c-3.2-5.3-6.9-7.3-6.9-7.3-24.8 7.3-52.2 6.9-75.9 0 0 0-2.9 1.5-6.4 6.6-2.8 4.1-3.7 9.6-3.7 9.6 29.1 17.6 67.1 17.6 96.2 0-.1-.1-.3-4-3.3-8.9z\"]\n};\nvar faNeos = {\n prefix: 'fab',\n iconName: 'neos',\n icon: [512, 512, [], \"f612\", \"M415.44 512h-95.11L212.12 357.46v91.1L125.69 512H28V29.82L68.47 0h108.05l123.74 176.13V63.45L386.69 0h97.69v461.5zM38.77 35.27V496l72-52.88V194l215.5 307.64h84.79l52.35-38.17h-78.27L69 13zm82.54 466.61l80-58.78v-101l-79.76-114.4v220.94L49 501.89h72.34zM80.63 10.77l310.6 442.57h82.37V10.77h-79.75v317.56L170.91 10.77zM311 191.65l72 102.81V15.93l-72 53v122.72z\"]\n};\nvar faNimblr = {\n prefix: 'fab',\n iconName: 'nimblr',\n icon: [384, 512, [], \"f5a8\", \"M246.6 299.29c15.57 0 27.15 11.46 27.15 27s-11.62 27-27.15 27c-15.7 0-27.15-11.57-27.15-27s11.55-27 27.15-27zM113 326.25c0-15.61 11.68-27 27.15-27s27.15 11.46 27.15 27-11.47 27-27.15 27c-15.44 0-27.15-11.31-27.15-27M191.76 159C157 159 89.45 178.77 59.25 227L14 0v335.48C14 433.13 93.61 512 191.76 512s177.76-78.95 177.76-176.52S290.13 159 191.76 159zm0 308.12c-73.27 0-132.51-58.9-132.51-131.59s59.24-131.59 132.51-131.59 132.51 58.86 132.51 131.54S265 467.07 191.76 467.07z\"]\n};\nvar faNode = {\n prefix: 'fab',\n iconName: 'node',\n icon: [640, 512, [], \"f419\", \"M316.3 452c-2.1 0-4.2-.6-6.1-1.6L291 439c-2.9-1.6-1.5-2.2-.5-2.5 3.8-1.3 4.6-1.6 8.7-4 .4-.2 1-.1 1.4.1l14.8 8.8c.5.3 1.3.3 1.8 0L375 408c.5-.3.9-.9.9-1.6v-66.7c0-.7-.3-1.3-.9-1.6l-57.8-33.3c-.5-.3-1.2-.3-1.8 0l-57.8 33.3c-.6.3-.9 1-.9 1.6v66.7c0 .6.4 1.2.9 1.5l15.8 9.1c8.6 4.3 13.9-.8 13.9-5.8v-65.9c0-.9.7-1.7 1.7-1.7h7.3c.9 0 1.7.7 1.7 1.7v65.9c0 11.5-6.2 18-17.1 18-3.3 0-6 0-13.3-3.6l-15.2-8.7c-3.7-2.2-6.1-6.2-6.1-10.5v-66.7c0-4.3 2.3-8.4 6.1-10.5l57.8-33.4c3.7-2.1 8.5-2.1 12.1 0l57.8 33.4c3.7 2.2 6.1 6.2 6.1 10.5v66.7c0 4.3-2.3 8.4-6.1 10.5l-57.8 33.4c-1.7 1.1-3.8 1.7-6 1.7zm46.7-65.8c0-12.5-8.4-15.8-26.2-18.2-18-2.4-19.8-3.6-19.8-7.8 0-3.5 1.5-8.1 14.8-8.1 11.9 0 16.3 2.6 18.1 10.6.2.8.8 1.3 1.6 1.3h7.5c.5 0 .9-.2 1.2-.5.3-.4.5-.8.4-1.3-1.2-13.8-10.3-20.2-28.8-20.2-16.5 0-26.3 7-26.3 18.6 0 12.7 9.8 16.1 25.6 17.7 18.9 1.9 20.4 4.6 20.4 8.3 0 6.5-5.2 9.2-17.4 9.2-15.3 0-18.7-3.8-19.8-11.4-.1-.8-.8-1.4-1.7-1.4h-7.5c-.9 0-1.7.7-1.7 1.7 0 9.7 5.3 21.3 30.6 21.3 18.5 0 29-7.2 29-19.8zm54.5-50.1c0 6.1-5 11.1-11.1 11.1s-11.1-5-11.1-11.1c0-6.3 5.2-11.1 11.1-11.1 6-.1 11.1 4.8 11.1 11.1zm-1.8 0c0-5.2-4.2-9.3-9.4-9.3-5.1 0-9.3 4.1-9.3 9.3 0 5.2 4.2 9.4 9.3 9.4 5.2-.1 9.4-4.3 9.4-9.4zm-4.5 6.2h-2.6c-.1-.6-.5-3.8-.5-3.9-.2-.7-.4-1.1-1.3-1.1h-2.2v5h-2.4v-12.5h4.3c1.5 0 4.4 0 4.4 3.3 0 2.3-1.5 2.8-2.4 3.1 1.7.1 1.8 1.2 2.1 2.8.1 1 .3 2.7.6 3.3zm-2.8-8.8c0-1.7-1.2-1.7-1.8-1.7h-2v3.5h1.9c1.6 0 1.9-1.1 1.9-1.8zM137.3 191c0-2.7-1.4-5.1-3.7-6.4l-61.3-35.3c-1-.6-2.2-.9-3.4-1h-.6c-1.2 0-2.3.4-3.4 1L3.7 184.6C1.4 185.9 0 188.4 0 191l.1 95c0 1.3.7 2.5 1.8 3.2 1.1.7 2.5.7 3.7 0L42 268.3c2.3-1.4 3.7-3.8 3.7-6.4v-44.4c0-2.6 1.4-5.1 3.7-6.4l15.5-8.9c1.2-.7 2.4-1 3.7-1 1.3 0 2.6.3 3.7 1l15.5 8.9c2.3 1.3 3.7 3.8 3.7 6.4v44.4c0 2.6 1.4 5.1 3.7 6.4l36.4 20.9c1.1.7 2.6.7 3.7 0 1.1-.6 1.8-1.9 1.8-3.2l.2-95zM472.5 87.3v176.4c0 2.6-1.4 5.1-3.7 6.4l-61.3 35.4c-2.3 1.3-5.1 1.3-7.4 0l-61.3-35.4c-2.3-1.3-3.7-3.8-3.7-6.4v-70.8c0-2.6 1.4-5.1 3.7-6.4l61.3-35.4c2.3-1.3 5.1-1.3 7.4 0l15.3 8.8c1.7 1 3.9-.3 3.9-2.2v-94c0-2.8 3-4.6 5.5-3.2l36.5 20.4c2.3 1.2 3.8 3.7 3.8 6.4zm-46 128.9c0-.7-.4-1.3-.9-1.6l-21-12.2c-.6-.3-1.3-.3-1.9 0l-21 12.2c-.6.3-.9.9-.9 1.6v24.3c0 .7.4 1.3.9 1.6l21 12.1c.6.3 1.3.3 1.8 0l21-12.1c.6-.3.9-.9.9-1.6v-24.3zm209.8-.7c2.3-1.3 3.7-3.8 3.7-6.4V192c0-2.6-1.4-5.1-3.7-6.4l-60.9-35.4c-2.3-1.3-5.1-1.3-7.4 0l-61.3 35.4c-2.3 1.3-3.7 3.8-3.7 6.4v70.8c0 2.7 1.4 5.1 3.7 6.4l60.9 34.7c2.2 1.3 5 1.3 7.3 0l36.8-20.5c2.5-1.4 2.5-5 0-6.4L550 241.6c-1.2-.7-1.9-1.9-1.9-3.2v-22.2c0-1.3.7-2.5 1.9-3.2l19.2-11.1c1.1-.7 2.6-.7 3.7 0l19.2 11.1c1.1.7 1.9 1.9 1.9 3.2v17.4c0 2.8 3.1 4.6 5.6 3.2l36.7-21.3zM559 219c-.4.3-.7.7-.7 1.2v13.6c0 .5.3 1 .7 1.2l11.8 6.8c.4.3 1 .3 1.4 0L584 235c.4-.3.7-.7.7-1.2v-13.6c0-.5-.3-1-.7-1.2l-11.8-6.8c-.4-.3-1-.3-1.4 0L559 219zm-254.2 43.5v-70.4c0-2.6-1.6-5.1-3.9-6.4l-61.1-35.2c-2.1-1.2-5-1.4-7.4 0l-61.1 35.2c-2.3 1.3-3.9 3.7-3.9 6.4v70.4c0 2.8 1.9 5.2 4 6.4l61.2 35.2c2.4 1.4 5.2 1.3 7.4 0l61-35.2c1.8-1 3.1-2.7 3.6-4.7.1-.5.2-1.1.2-1.7zm-74.3-124.9l-.8.5h1.1l-.3-.5zm76.2 130.2l-.4-.7v.9l.4-.2z\"]\n};\nvar faNodeJs = {\n prefix: 'fab',\n iconName: 'node-js',\n icon: [448, 512, [], \"f3d3\", \"M224 508c-6.7 0-13.5-1.8-19.4-5.2l-61.7-36.5c-9.2-5.2-4.7-7-1.7-8 12.3-4.3 14.8-5.2 27.9-12.7 1.4-.8 3.2-.5 4.6.4l47.4 28.1c1.7 1 4.1 1 5.7 0l184.7-106.6c1.7-1 2.8-3 2.8-5V149.3c0-2.1-1.1-4-2.9-5.1L226.8 37.7c-1.7-1-4-1-5.7 0L36.6 144.3c-1.8 1-2.9 3-2.9 5.1v213.1c0 2 1.1 4 2.9 4.9l50.6 29.2c27.5 13.7 44.3-2.4 44.3-18.7V167.5c0-3 2.4-5.3 5.4-5.3h23.4c2.9 0 5.4 2.3 5.4 5.3V378c0 36.6-20 57.6-54.7 57.6-10.7 0-19.1 0-42.5-11.6l-48.4-27.9C8.1 389.2.7 376.3.7 362.4V149.3c0-13.8 7.4-26.8 19.4-33.7L204.6 9c11.7-6.6 27.2-6.6 38.8 0l184.7 106.7c12 6.9 19.4 19.8 19.4 33.7v213.1c0 13.8-7.4 26.7-19.4 33.7L243.4 502.8c-5.9 3.4-12.6 5.2-19.4 5.2zm149.1-210.1c0-39.9-27-50.5-83.7-58-57.4-7.6-63.2-11.5-63.2-24.9 0-11.1 4.9-25.9 47.4-25.9 37.9 0 51.9 8.2 57.7 33.8.5 2.4 2.7 4.2 5.2 4.2h24c1.5 0 2.9-.6 3.9-1.7s1.5-2.6 1.4-4.1c-3.7-44.1-33-64.6-92.2-64.6-52.7 0-84.1 22.2-84.1 59.5 0 40.4 31.3 51.6 81.8 56.6 60.5 5.9 65.2 14.8 65.2 26.7 0 20.6-16.6 29.4-55.5 29.4-48.9 0-59.6-12.3-63.2-36.6-.4-2.6-2.6-4.5-5.3-4.5h-23.9c-3 0-5.3 2.4-5.3 5.3 0 31.1 16.9 68.2 97.8 68.2 58.4-.1 92-23.2 92-63.4z\"]\n};\nvar faNpm = {\n prefix: 'fab',\n iconName: 'npm',\n icon: [576, 512, [], \"f3d4\", \"M288 288h-32v-64h32v64zm288-128v192H288v32H160v-32H0V160h576zm-416 32H32v128h64v-96h32v96h32V192zm160 0H192v160h64v-32h64V192zm224 0H352v128h64v-96h32v96h32v-96h32v96h32V192z\"]\n};\nvar faNs8 = {\n prefix: 'fab',\n iconName: 'ns8',\n icon: [640, 512, [], \"f3d5\", \"M104.324,269.172h26.067V242.994H104.324Zm52.466-26.178-.055-26.178v-.941a39.325,39.325,0,0,0-78.644.941v.166h26.4v-.166a12.98,12.98,0,0,1,25.956,0v26.178Zm52.356,25.846a91.1,91.1,0,0,1-91.1,91.1h-.609a91.1,91.1,0,0,1-91.1-91.1H0v.166A117.33,117.33,0,0,0,117.44,386.28h.775A117.331,117.331,0,0,0,235.49,268.84V242.828H209.146Zm-157.233,0a65.362,65.362,0,0,0,130.723,0H156.292a39.023,39.023,0,0,1-78.035,0V242.883H51.968v-26.62A65.42,65.42,0,0,1,182.8,217.48v25.293h26.344V217.48a91.761,91.761,0,0,0-183.522,0v25.4H51.913Zm418.4-71.173c13.67,0,24.573,6.642,30.052,18.264l.719,1.549,23.245-11.511-.609-1.439c-8.025-19.26-28.5-31.27-53.407-31.27-23.134,0-43.611,11.4-50.972,28.447-.123,26.876-.158,23.9,0,24.85,4.7,11.013,14.555,19.37,28.668,24.241a102.033,102.033,0,0,0,19.813,3.984c5.479.72,10.626,1.384,15.829,3.1,6.364,2.1,10.46,5.257,12.84,9.851v9.851c-3.708,7.527-13.781,12.342-25.791,12.342-14.334,0-25.956-6.918-31.933-19.039l-.72-1.494L415.026,280.9l.553,1.439c7.915,19.426,29.609,32.044,55.289,32.044,23.632,0,44.608-11.4,52.3-28.447l.166-25.9-.166-.664c-4.87-11.014-15.219-19.647-28.944-24.241-7.693-2.712-14.335-3.6-20.7-4.427a83.777,83.777,0,0,1-14.832-2.878c-6.31-1.937-10.4-5.092-12.619-9.63v-8.412C449.45,202.427,458.969,197.667,470.315,197.667ZM287.568,311.344h26.067v-68.4H287.568Zm352.266-53.3c-2.933-6.254-8.3-12.01-15.441-16.714A37.99,37.99,0,0,0,637.4,226l.166-25.347-.166-.664C630.038,184,610.667,173.26,589.25,173.26S548.461,184,541.1,199.992l-.166,25.347.166.664a39.643,39.643,0,0,0,13.006,15.331c-7.2,4.7-12.508,10.46-15.441,16.714l-.166,28.889.166.72c7.582,15.994,27.893,26.731,50.585,26.731s43.057-10.737,50.584-26.731l.166-28.89Zm-73.22-50.806c3.6-6.31,12.563-10.516,22.58-10.516s19.038,4.206,22.636,10.516v13.725c-3.542,6.2-12.563,10.349-22.636,10.349s-19.094-4.15-22.58-10.349Zm47.319,72.169c-3.764,6.641-13.338,10.9-24.683,10.9-11.125,0-20.976-4.372-24.684-10.9V263.25c3.708-6.309,13.5-10.515,24.684-10.515,11.345,0,20.919,4.15,24.683,10.515ZM376.4,265.962l-59.827-89.713h-29v40.623h26.51v.387l62.539,94.085H402.3V176.249H376.4Z\"]\n};\nvar faNutritionix = {\n prefix: 'fab',\n iconName: 'nutritionix',\n icon: [400, 512, [], \"f3d6\", \"M88 8.1S221.4-.1 209 112.5c0 0 19.1-74.9 103-40.6 0 0-17.7 74-88 56 0 0 14.6-54.6 66.1-56.6 0 0-39.9-10.3-82.1 48.8 0 0-19.8-94.5-93.6-99.7 0 0 75.2 19.4 77.6 107.5 0 .1-106.4 7-104-119.8zm312 315.6c0 48.5-9.7 95.3-32 132.3-42.2 30.9-105 48-168 48-62.9 0-125.8-17.1-168-48C9.7 419 0 372.2 0 323.7 0 275.3 17.7 229 40 192c42.2-30.9 97.1-48.6 160-48.6 63 0 117.8 17.6 160 48.6 22.3 37 40 83.3 40 131.7zM120 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM192 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM264 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM336 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm24-39.6c-4.8-22.3-7.4-36.9-16-56-38.8-19.9-90.5-32-144-32S94.8 180.1 56 200c-8.8 19.5-11.2 33.9-16 56 42.2-7.9 98.7-14.8 160-14.8s117.8 6.9 160 14.8z\"]\n};\nvar faOctopusDeploy = {\n prefix: 'fab',\n iconName: 'octopus-deploy',\n icon: [512, 512, [], \"e082\", \"M455.6,349.2c-45.891-39.09-36.67-77.877-16.095-128.11C475.16,134.04,415.967,34.14,329.93,8.3,237.04-19.6,134.252,24.341,99.677,117.147a180.862,180.862,0,0,0-10.988,73.544c1.733,29.543,14.717,52.97,24.09,80.3,17.2,50.161-28.1,92.743-66.662,117.582-46.806,30.2-36.319,39.857-8.428,41.858,23.378,1.68,44.478-4.548,65.265-15.045,9.2-4.647,40.687-18.931,45.13-28.588C135.9,413.388,111.122,459.5,126.621,488.9c19.1,36.229,67.112-31.77,76.709-45.812,8.591-12.572,42.963-81.279,63.627-46.926,18.865,31.361,8.6,76.391,35.738,104.622,32.854,34.2,51.155-18.312,51.412-44.221.163-16.411-6.1-95.852,29.9-59.944C405.428,418,436.912,467.8,472.568,463.642c38.736-4.516-22.123-67.967-28.262-78.695,5.393,4.279,53.665,34.128,53.818,9.52C498.234,375.678,468.039,359.8,455.6,349.2Z\"]\n};\nvar faOdnoklassniki = {\n prefix: 'fab',\n iconName: 'odnoklassniki',\n icon: [320, 512, [], \"f263\", \"M275.1 334c-27.4 17.4-65.1 24.3-90 26.9l20.9 20.6 76.3 76.3c27.9 28.6-17.5 73.3-45.7 45.7-19.1-19.4-47.1-47.4-76.3-76.6L84 503.4c-28.2 27.5-73.6-17.6-45.4-45.7 19.4-19.4 47.1-47.4 76.3-76.3l20.6-20.6c-24.6-2.6-62.9-9.1-90.6-26.9-32.6-21-46.9-33.3-34.3-59 7.4-14.6 27.7-26.9 54.6-5.7 0 0 36.3 28.9 94.9 28.9s94.9-28.9 94.9-28.9c26.9-21.1 47.1-8.9 54.6 5.7 12.4 25.7-1.9 38-34.5 59.1zM30.3 129.7C30.3 58 88.6 0 160 0s129.7 58 129.7 129.7c0 71.4-58.3 129.4-129.7 129.4s-129.7-58-129.7-129.4zm66 0c0 35.1 28.6 63.7 63.7 63.7s63.7-28.6 63.7-63.7c0-35.4-28.6-64-63.7-64s-63.7 28.6-63.7 64z\"]\n};\nvar faOdnoklassnikiSquare = {\n prefix: 'fab',\n iconName: 'odnoklassniki-square',\n icon: [448, 512, [], \"f264\", \"M184.2 177.1c0-22.1 17.9-40 39.8-40s39.8 17.9 39.8 40c0 22-17.9 39.8-39.8 39.8s-39.8-17.9-39.8-39.8zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-305.1 97.1c0 44.6 36.4 80.9 81.1 80.9s81.1-36.2 81.1-80.9c0-44.8-36.4-81.1-81.1-81.1s-81.1 36.2-81.1 81.1zm174.5 90.7c-4.6-9.1-17.3-16.8-34.1-3.6 0 0-22.7 18-59.3 18s-59.3-18-59.3-18c-16.8-13.2-29.5-5.5-34.1 3.6-7.9 16.1 1.1 23.7 21.4 37 17.3 11.1 41.2 15.2 56.6 16.8l-12.9 12.9c-18.2 18-35.5 35.5-47.7 47.7-17.6 17.6 10.7 45.8 28.4 28.6l47.7-47.9c18.2 18.2 35.7 35.7 47.7 47.9 17.6 17.2 46-10.7 28.6-28.6l-47.7-47.7-13-12.9c15.5-1.6 39.1-5.9 56.2-16.8 20.4-13.3 29.3-21 21.5-37z\"]\n};\nvar faOldRepublic = {\n prefix: 'fab',\n iconName: 'old-republic',\n icon: [496, 512, [], \"f510\", \"M235.76 10.23c7.5-.31 15-.28 22.5-.09 3.61.14 7.2.4 10.79.73 4.92.27 9.79 1.03 14.67 1.62 2.93.43 5.83.98 8.75 1.46 7.9 1.33 15.67 3.28 23.39 5.4 12.24 3.47 24.19 7.92 35.76 13.21 26.56 12.24 50.94 29.21 71.63 49.88 20.03 20.09 36.72 43.55 48.89 69.19 1.13 2.59 2.44 5.1 3.47 7.74 2.81 6.43 5.39 12.97 7.58 19.63 4.14 12.33 7.34 24.99 9.42 37.83.57 3.14 1.04 6.3 1.4 9.47.55 3.83.94 7.69 1.18 11.56.83 8.34.84 16.73.77 25.1-.07 4.97-.26 9.94-.75 14.89-.24 3.38-.51 6.76-.98 10.12-.39 2.72-.63 5.46-1.11 8.17-.9 5.15-1.7 10.31-2.87 15.41-4.1 18.5-10.3 36.55-18.51 53.63-15.77 32.83-38.83 62.17-67.12 85.12a246.503 246.503 0 0 1-56.91 34.86c-6.21 2.68-12.46 5.25-18.87 7.41-3.51 1.16-7.01 2.38-10.57 3.39-6.62 1.88-13.29 3.64-20.04 5-4.66.91-9.34 1.73-14.03 2.48-5.25.66-10.5 1.44-15.79 1.74-6.69.66-13.41.84-20.12.81-6.82.03-13.65-.12-20.45-.79-3.29-.23-6.57-.5-9.83-.95-2.72-.39-5.46-.63-8.17-1.11-4.12-.72-8.25-1.37-12.35-2.22-4.25-.94-8.49-1.89-12.69-3.02-8.63-2.17-17.08-5.01-25.41-8.13-10.49-4.12-20.79-8.75-30.64-14.25-2.14-1.15-4.28-2.29-6.35-3.57-11.22-6.58-21.86-14.1-31.92-22.34-34.68-28.41-61.41-66.43-76.35-108.7-3.09-8.74-5.71-17.65-7.8-26.68-1.48-6.16-2.52-12.42-3.58-18.66-.4-2.35-.61-4.73-.95-7.09-.6-3.96-.75-7.96-1.17-11.94-.8-9.47-.71-18.99-.51-28.49.14-3.51.34-7.01.7-10.51.31-3.17.46-6.37.92-9.52.41-2.81.65-5.65 1.16-8.44.7-3.94 1.3-7.9 2.12-11.82 3.43-16.52 8.47-32.73 15.26-48.18 1.15-2.92 2.59-5.72 3.86-8.59 8.05-16.71 17.9-32.56 29.49-47.06 20-25.38 45.1-46.68 73.27-62.47 7.5-4.15 15.16-8.05 23.07-11.37 15.82-6.88 32.41-11.95 49.31-15.38 3.51-.67 7.04-1.24 10.56-1.85 2.62-.47 5.28-.7 7.91-1.08 3.53-.53 7.1-.68 10.65-1.04 2.46-.24 4.91-.36 7.36-.51m8.64 24.41c-9.23.1-18.43.99-27.57 2.23-7.3 1.08-14.53 2.6-21.71 4.3-13.91 3.5-27.48 8.34-40.46 14.42-10.46 4.99-20.59 10.7-30.18 17.22-4.18 2.92-8.4 5.8-12.34 9.03-5.08 3.97-9.98 8.17-14.68 12.59-2.51 2.24-4.81 4.7-7.22 7.06-28.22 28.79-48.44 65.39-57.5 104.69-2.04 8.44-3.54 17.02-4.44 25.65-1.1 8.89-1.44 17.85-1.41 26.8.11 7.14.38 14.28 1.22 21.37.62 7.12 1.87 14.16 3.2 21.18 1.07 4.65 2.03 9.32 3.33 13.91 6.29 23.38 16.5 45.7 30.07 65.75 8.64 12.98 18.78 24.93 29.98 35.77 16.28 15.82 35.05 29.04 55.34 39.22 7.28 3.52 14.66 6.87 22.27 9.63 5.04 1.76 10.06 3.57 15.22 4.98 11.26 3.23 22.77 5.6 34.39 7.06 2.91.29 5.81.61 8.72.9 13.82 1.08 27.74 1 41.54-.43 4.45-.6 8.92-.99 13.35-1.78 3.63-.67 7.28-1.25 10.87-2.1 4.13-.98 8.28-1.91 12.36-3.07 26.5-7.34 51.58-19.71 73.58-36.2 15.78-11.82 29.96-25.76 42.12-41.28 3.26-4.02 6.17-8.31 9.13-12.55 3.39-5.06 6.58-10.25 9.6-15.54 2.4-4.44 4.74-8.91 6.95-13.45 5.69-12.05 10.28-24.62 13.75-37.49 2.59-10.01 4.75-20.16 5.9-30.45 1.77-13.47 1.94-27.1 1.29-40.65-.29-3.89-.67-7.77-1-11.66-2.23-19.08-6.79-37.91-13.82-55.8-5.95-15.13-13.53-29.63-22.61-43.13-12.69-18.8-28.24-35.68-45.97-49.83-25.05-20-54.47-34.55-85.65-42.08-7.78-1.93-15.69-3.34-23.63-4.45-3.91-.59-7.85-.82-11.77-1.24-7.39-.57-14.81-.72-22.22-.58zM139.26 83.53c13.3-8.89 28.08-15.38 43.3-20.18-3.17 1.77-6.44 3.38-9.53 5.29-11.21 6.68-21.52 14.9-30.38 24.49-6.8 7.43-12.76 15.73-17.01 24.89-3.29 6.86-5.64 14.19-6.86 21.71-.93 4.85-1.3 9.81-1.17 14.75.13 13.66 4.44 27.08 11.29 38.82 5.92 10.22 13.63 19.33 22.36 27.26 4.85 4.36 10.24 8.09 14.95 12.6 2.26 2.19 4.49 4.42 6.43 6.91 2.62 3.31 4.89 6.99 5.99 11.1.9 3.02.66 6.2.69 9.31.02 4.1-.04 8.2.03 12.3.14 3.54-.02 7.09.11 10.63.08 2.38.02 4.76.05 7.14.16 5.77.06 11.53.15 17.3.11 2.91.02 5.82.13 8.74.03 1.63.13 3.28-.03 4.91-.91.12-1.82.18-2.73.16-10.99 0-21.88-2.63-31.95-6.93-6-2.7-11.81-5.89-17.09-9.83-5.75-4.19-11.09-8.96-15.79-14.31-6.53-7.24-11.98-15.39-16.62-23.95-1.07-2.03-2.24-4.02-3.18-6.12-1.16-2.64-2.62-5.14-3.67-7.82-4.05-9.68-6.57-19.94-8.08-30.31-.49-4.44-1.09-8.88-1.2-13.35-.7-15.73.84-31.55 4.67-46.82 2.12-8.15 4.77-16.18 8.31-23.83 6.32-14.2 15.34-27.18 26.3-38.19 6.28-6.2 13.13-11.84 20.53-16.67zm175.37-20.12c2.74.74 5.41 1.74 8.09 2.68 6.36 2.33 12.68 4.84 18.71 7.96 13.11 6.44 25.31 14.81 35.82 24.97 10.2 9.95 18.74 21.6 25.14 34.34 1.28 2.75 2.64 5.46 3.81 8.26 6.31 15.1 10 31.26 11.23 47.57.41 4.54.44 9.09.45 13.64.07 11.64-1.49 23.25-4.3 34.53-1.97 7.27-4.35 14.49-7.86 21.18-3.18 6.64-6.68 13.16-10.84 19.24-6.94 10.47-15.6 19.87-25.82 27.22-10.48 7.64-22.64 13.02-35.4 15.38-3.51.69-7.08 1.08-10.66 1.21-1.85.06-3.72.16-5.56-.1-.28-2.15 0-4.31-.01-6.46-.03-3.73.14-7.45.1-11.17.19-7.02.02-14.05.21-21.07.03-2.38-.03-4.76.03-7.14.17-5.07-.04-10.14.14-15.21.1-2.99-.24-6.04.51-8.96.66-2.5 1.78-4.86 3.09-7.08 4.46-7.31 11.06-12.96 17.68-18.26 5.38-4.18 10.47-8.77 15.02-13.84 7.68-8.37 14.17-17.88 18.78-28.27 2.5-5.93 4.52-12.1 5.55-18.46.86-4.37 1.06-8.83 1.01-13.27-.02-7.85-1.4-15.65-3.64-23.17-1.75-5.73-4.27-11.18-7.09-16.45-3.87-6.93-8.65-13.31-13.96-19.2-9.94-10.85-21.75-19.94-34.6-27.1-1.85-1.02-3.84-1.82-5.63-2.97zm-100.8 58.45c.98-1.18 1.99-2.33 3.12-3.38-.61.93-1.27 1.81-1.95 2.68-3.1 3.88-5.54 8.31-7.03 13.06-.87 3.27-1.68 6.6-1.73 10-.07 2.52-.08 5.07.32 7.57 1.13 7.63 4.33 14.85 8.77 21.12 2 2.7 4.25 5.27 6.92 7.33 1.62 1.27 3.53 2.09 5.34 3.05 3.11 1.68 6.32 3.23 9.07 5.48 2.67 2.09 4.55 5.33 4.4 8.79-.01 73.67 0 147.34-.01 221.02 0 1.35-.08 2.7.04 4.04.13 1.48.82 2.83 1.47 4.15.86 1.66 1.78 3.34 3.18 4.62.85.77 1.97 1.4 3.15 1.24 1.5-.2 2.66-1.35 3.45-2.57.96-1.51 1.68-3.16 2.28-4.85.76-2.13.44-4.42.54-6.63.14-4.03-.02-8.06.14-12.09.03-5.89.03-11.77.06-17.66.14-3.62.03-7.24.11-10.86.15-4.03-.02-8.06.14-12.09.03-5.99.03-11.98.07-17.97.14-3.62.02-7.24.11-10.86.14-3.93-.02-7.86.14-11.78.03-5.99.03-11.98.06-17.97.16-3.94-.01-7.88.19-11.82.29 1.44.13 2.92.22 4.38.19 3.61.42 7.23.76 10.84.32 3.44.44 6.89.86 10.32.37 3.1.51 6.22.95 9.31.57 4.09.87 8.21 1.54 12.29 1.46 9.04 2.83 18.11 5.09 26.99 1.13 4.82 2.4 9.61 4 14.3 2.54 7.9 5.72 15.67 10.31 22.62 1.73 2.64 3.87 4.98 6.1 7.21.27.25.55.51.88.71.6.25 1.31-.07 1.7-.57.71-.88 1.17-1.94 1.7-2.93 4.05-7.8 8.18-15.56 12.34-23.31.7-1.31 1.44-2.62 2.56-3.61 1.75-1.57 3.84-2.69 5.98-3.63 2.88-1.22 5.9-2.19 9.03-2.42 6.58-.62 13.11.75 19.56 1.85 3.69.58 7.4 1.17 11.13 1.41 3.74.1 7.48.05 11.21-.28 8.55-.92 16.99-2.96 24.94-6.25 5.3-2.24 10.46-4.83 15.31-7.93 11.46-7.21 21.46-16.57 30.04-27.01 1.17-1.42 2.25-2.9 3.46-4.28-1.2 3.24-2.67 6.37-4.16 9.48-1.25 2.9-2.84 5.61-4.27 8.42-5.16 9.63-11.02 18.91-17.75 27.52-4.03 5.21-8.53 10.05-13.33 14.57-6.64 6.05-14.07 11.37-22.43 14.76-8.21 3.37-17.31 4.63-26.09 3.29-3.56-.58-7.01-1.69-10.41-2.88-2.79-.97-5.39-2.38-8.03-3.69-3.43-1.71-6.64-3.81-9.71-6.08 2.71 3.06 5.69 5.86 8.7 8.61 4.27 3.76 8.74 7.31 13.63 10.23 3.98 2.45 8.29 4.4 12.84 5.51 1.46.37 2.96.46 4.45.6-1.25 1.1-2.63 2.04-3.99 2.98-9.61 6.54-20.01 11.86-30.69 16.43-20.86 8.7-43.17 13.97-65.74 15.34-4.66.24-9.32.36-13.98.36-4.98-.11-9.97-.13-14.92-.65-11.2-.76-22.29-2.73-33.17-5.43-10.35-2.71-20.55-6.12-30.3-10.55-8.71-3.86-17.12-8.42-24.99-13.79-1.83-1.31-3.74-2.53-5.37-4.08 6.6-1.19 13.03-3.39 18.99-6.48 5.74-2.86 10.99-6.66 15.63-11.07 2.24-2.19 4.29-4.59 6.19-7.09-3.43 2.13-6.93 4.15-10.62 5.78-4.41 2.16-9.07 3.77-13.81 5.02-5.73 1.52-11.74 1.73-17.61 1.14-8.13-.95-15.86-4.27-22.51-8.98-4.32-2.94-8.22-6.43-11.96-10.06-9.93-10.16-18.2-21.81-25.66-33.86-3.94-6.27-7.53-12.75-11.12-19.22-1.05-2.04-2.15-4.05-3.18-6.1 2.85 2.92 5.57 5.97 8.43 8.88 8.99 8.97 18.56 17.44 29.16 24.48 7.55 4.9 15.67 9.23 24.56 11.03 3.11.73 6.32.47 9.47.81 2.77.28 5.56.2 8.34.3 5.05.06 10.11.04 15.16-.16 3.65-.16 7.27-.66 10.89-1.09 2.07-.25 4.11-.71 6.14-1.2 3.88-.95 8.11-.96 11.83.61 4.76 1.85 8.44 5.64 11.38 9.71 2.16 3.02 4.06 6.22 5.66 9.58 1.16 2.43 2.46 4.79 3.55 7.26 1 2.24 2.15 4.42 3.42 6.52.67 1.02 1.4 2.15 2.62 2.55 1.06-.75 1.71-1.91 2.28-3.03 2.1-4.16 3.42-8.65 4.89-13.05 2.02-6.59 3.78-13.27 5.19-20.02 2.21-9.25 3.25-18.72 4.54-28.13.56-3.98.83-7.99 1.31-11.97.87-10.64 1.9-21.27 2.24-31.94.08-1.86.24-3.71.25-5.57.01-4.35.25-8.69.22-13.03-.01-2.38-.01-4.76 0-7.13.05-5.07-.2-10.14-.22-15.21-.2-6.61-.71-13.2-1.29-19.78-.73-5.88-1.55-11.78-3.12-17.51-2.05-7.75-5.59-15.03-9.8-21.82-3.16-5.07-6.79-9.88-11.09-14.03-3.88-3.86-8.58-7.08-13.94-8.45-1.5-.41-3.06-.45-4.59-.64.07-2.99.7-5.93 1.26-8.85 1.59-7.71 3.8-15.3 6.76-22.6 1.52-4.03 3.41-7.9 5.39-11.72 3.45-6.56 7.62-12.79 12.46-18.46zm31.27 1.7c.35-.06.71-.12 1.07-.19.19 1.79.09 3.58.1 5.37v38.13c-.01 1.74.13 3.49-.15 5.22-.36-.03-.71-.05-1.06-.05-.95-3.75-1.72-7.55-2.62-11.31-.38-1.53-.58-3.09-1.07-4.59-1.7-.24-3.43-.17-5.15-.2-5.06-.01-10.13 0-15.19-.01-1.66-.01-3.32.09-4.98-.03-.03-.39-.26-.91.16-1.18 1.28-.65 2.72-.88 4.06-1.35 3.43-1.14 6.88-2.16 10.31-3.31 1.39-.48 2.9-.72 4.16-1.54.04-.56.02-1.13-.05-1.68-1.23-.55-2.53-.87-3.81-1.28-3.13-1.03-6.29-1.96-9.41-3.02-1.79-.62-3.67-1-5.41-1.79-.03-.37-.07-.73-.11-1.09 5.09-.19 10.2.06 15.3-.12 3.36-.13 6.73.08 10.09-.07.12-.39.26-.77.37-1.16 1.08-4.94 2.33-9.83 3.39-14.75zm5.97-.2c.36.05.72.12 1.08.2.98 3.85 1.73 7.76 2.71 11.61.36 1.42.56 2.88 1.03 4.27 2.53.18 5.07-.01 7.61.05 5.16.12 10.33.12 15.49.07.76-.01 1.52.03 2.28.08-.04.36-.07.72-.1 1.08-1.82.83-3.78 1.25-5.67 1.89-3.73 1.23-7.48 2.39-11.22 3.57-.57.17-1.12.42-1.67.64-.15.55-.18 1.12-.12 1.69.87.48 1.82.81 2.77 1.09 4.88 1.52 9.73 3.14 14.63 4.6.38.13.78.27 1.13.49.4.27.23.79.15 1.18-1.66.13-3.31.03-4.97.04-5.17.01-10.33-.01-15.5.01-1.61.03-3.22-.02-4.82.21-.52 1.67-.72 3.42-1.17 5.11-.94 3.57-1.52 7.24-2.54 10.78-.36.01-.71.02-1.06.06-.29-1.73-.15-3.48-.15-5.22v-38.13c.02-1.78-.08-3.58.11-5.37zM65.05 168.33c1.12-2.15 2.08-4.4 3.37-6.46-1.82 7.56-2.91 15.27-3.62 23-.8 7.71-.85 15.49-.54 23.23 1.05 19.94 5.54 39.83 14.23 57.88 2.99 5.99 6.35 11.83 10.5 17.11 6.12 7.47 12.53 14.76 19.84 21.09 4.8 4.1 9.99 7.78 15.54 10.8 3.27 1.65 6.51 3.39 9.94 4.68 5.01 2.03 10.19 3.61 15.42 4.94 3.83.96 7.78 1.41 11.52 2.71 5 1.57 9.47 4.61 13.03 8.43 4.93 5.23 8.09 11.87 10.2 18.67.99 2.9 1.59 5.91 2.17 8.92.15.75.22 1.52.16 2.29-6.5 2.78-13.26 5.06-20.26 6.18-4.11.78-8.29.99-12.46 1.08-10.25.24-20.47-1.76-30.12-5.12-3.74-1.42-7.49-2.85-11.03-4.72-8.06-3.84-15.64-8.7-22.46-14.46-2.92-2.55-5.83-5.13-8.4-8.03-9.16-9.83-16.3-21.41-21.79-33.65-2.39-5.55-4.61-11.18-6.37-16.96-1.17-3.94-2.36-7.89-3.26-11.91-.75-2.94-1.22-5.95-1.87-8.92-.46-2.14-.69-4.32-1.03-6.48-.85-5.43-1.28-10.93-1.33-16.43.11-6.18.25-12.37 1.07-18.5.4-2.86.67-5.74 1.15-8.6.98-5.7 2.14-11.37 3.71-16.93 3.09-11.65 7.48-22.95 12.69-33.84zm363.73-6.44c1.1 1.66 1.91 3.48 2.78 5.26 2.1 4.45 4.24 8.9 6.02 13.49 7.61 18.76 12.3 38.79 13.04 59.05.02 1.76.07 3.52.11 5.29.13 9.57-1.27 19.09-3.18 28.45-.73 3.59-1.54 7.17-2.58 10.69-4.04 14.72-10 29-18.41 41.78-8.21 12.57-19.01 23.55-31.84 31.41-5.73 3.59-11.79 6.64-18.05 9.19-5.78 2.19-11.71 4.03-17.8 5.11-6.4 1.05-12.91 1.52-19.4 1.23-7.92-.48-15.78-2.07-23.21-4.85-1.94-.8-3.94-1.46-5.84-2.33-.21-1.51.25-2.99.53-4.46 1.16-5.74 3.03-11.36 5.7-16.58 2.37-4.51 5.52-8.65 9.46-11.9 2.43-2.05 5.24-3.61 8.16-4.83 3.58-1.5 7.47-1.97 11.24-2.83 7.23-1.71 14.37-3.93 21.15-7 10.35-4.65 19.71-11.38 27.65-19.46 1.59-1.61 3.23-3.18 4.74-4.87 3.37-3.76 6.71-7.57 9.85-11.53 7.48-10.07 12.82-21.59 16.71-33.48 1.58-5.3 3.21-10.6 4.21-16.05.63-2.87 1.04-5.78 1.52-8.68.87-6.09 1.59-12.22 1.68-18.38.12-6.65.14-13.32-.53-19.94-.73-7.99-1.87-15.96-3.71-23.78z\"]\n};\nvar faOpencart = {\n prefix: 'fab',\n iconName: 'opencart',\n icon: [640, 512, [], \"f23d\", \"M423.3 440.7c0 25.3-20.3 45.6-45.6 45.6s-45.8-20.3-45.8-45.6 20.6-45.8 45.8-45.8c25.4 0 45.6 20.5 45.6 45.8zm-253.9-45.8c-25.3 0-45.6 20.6-45.6 45.8s20.3 45.6 45.6 45.6 45.8-20.3 45.8-45.6-20.5-45.8-45.8-45.8zm291.7-270C158.9 124.9 81.9 112.1 0 25.7c34.4 51.7 53.3 148.9 373.1 144.2 333.3-5 130 86.1 70.8 188.9 186.7-166.7 319.4-233.9 17.2-233.9z\"]\n};\nvar faOpenid = {\n prefix: 'fab',\n iconName: 'openid',\n icon: [448, 512, [], \"f19b\", \"M271.5 432l-68 32C88.5 453.7 0 392.5 0 318.2c0-71.5 82.5-131 191.7-144.3v43c-71.5 12.5-124 53-124 101.3 0 51 58.5 93.3 135.7 103v-340l68-33.2v384zM448 291l-131.3-28.5 36.8-20.7c-19.5-11.5-43.5-20-70-24.8v-43c46.2 5.5 87.7 19.5 120.3 39.3l35-19.8L448 291z\"]\n};\nvar faOpera = {\n prefix: 'fab',\n iconName: 'opera',\n icon: [496, 512, [], \"f26a\", \"M313.9 32.7c-170.2 0-252.6 223.8-147.5 355.1 36.5 45.4 88.6 75.6 147.5 75.6 36.3 0 70.3-11.1 99.4-30.4-43.8 39.2-101.9 63-165.3 63-3.9 0-8 0-11.9-.3C104.6 489.6 0 381.1 0 248 0 111 111 0 248 0h.8c63.1.3 120.7 24.1 164.4 63.1-29-19.4-63.1-30.4-99.3-30.4zm101.8 397.7c-40.9 24.7-90.7 23.6-132-5.8 56.2-20.5 97.7-91.6 97.7-176.6 0-84.7-41.2-155.8-97.4-176.6 41.8-29.2 91.2-30.3 132.9-5 105.9 98.7 105.5 265.7-1.2 364z\"]\n};\nvar faOptinMonster = {\n prefix: 'fab',\n iconName: 'optin-monster',\n icon: [576, 512, [], \"f23c\", \"M572.6 421.4c5.6-9.5 4.7-15.2-5.4-11.6-3-4.9-7-9.5-11.1-13.8 2.9-9.7-.7-14.2-10.8-9.2-4.6-3.2-10.3-6.5-15.9-9.2 0-15.1-11.6-11.6-17.6-5.7-10.4-1.5-18.7-.3-26.8 5.7.3-6.5.3-13 .3-19.7 12.6 0 40.2-11 45.9-36.2 1.4-6.8 1.6-13.8-.3-21.9-3-13.5-14.3-21.3-25.1-25.7-.8-5.9-7.6-14.3-14.9-15.9s-12.4 4.9-14.1 10.3c-8.5 0-19.2 2.8-21.1 8.4-5.4-.5-11.1-1.4-16.8-1.9 2.7-1.9 5.4-3.5 8.4-4.6 5.4-9.2 14.6-11.4 25.7-11.6V256c19.5-.5 43-5.9 53.8-18.1 12.7-13.8 14.6-37.3 12.4-55.1-2.4-17.3-9.7-37.6-24.6-48.1-8.4-5.9-21.6-.8-22.7 9.5-2.2 19.6 1.2 30-38.6 25.1-10.3-23.8-24.6-44.6-42.7-60C341 49.6 242.9 55.5 166.4 71.7c19.7 4.6 41.1 8.6 59.7 16.5-26.2 2.4-52.7 11.3-76.2 23.2-32.8 17-44 29.9-56.7 42.4 14.9-2.2 28.9-5.1 43.8-3.8-9.7 5.4-18.4 12.2-26.5 20-25.8.9-23.8-5.3-26.2-25.9-1.1-10.5-14.3-15.4-22.7-9.7-28.1 19.9-33.5 79.9-12.2 103.5 10.8 12.2 35.1 17.3 54.9 17.8-.3 1.1-.3 1.9-.3 2.7 10.8.5 19.5 2.7 24.6 11.6 3 1.1 5.7 2.7 8.1 4.6-5.4.5-11.1 1.4-16.5 1.9-3.3-6.6-13.7-8.1-21.1-8.1-1.6-5.7-6.5-12.2-14.1-10.3-6.8 1.9-14.1 10-14.9 15.9-22.5 9.5-30.1 26.8-25.1 47.6 5.3 24.8 33 36.2 45.9 36.2v19.7c-6.6-5-14.3-7.5-26.8-5.7-5.5-5.5-17.3-10.1-17.3 5.7-5.9 2.7-11.4 5.9-15.9 9.2-9.8-4.9-13.6-1.7-11.1 9.2-4.1 4.3-7.8 8.6-11.1 13.8-10.2-3.7-11 2.2-5.4 11.6-1.1 3.5-1.6 7-1.9 10.8-.5 31.6 44.6 64 73.5 65.1 17.3.5 34.6-8.4 43-23.5 113.2 4.9 226.7 4.1 340.2 0 8.1 15.1 25.4 24.3 42.7 23.5 29.2-1.1 74.3-33.5 73.5-65.1.2-3.7-.7-7.2-1.7-10.7zm-73.8-254c1.1-3 2.4-8.4 2.4-14.6 0-5.9 6.8-8.1 14.1-.8 11.1 11.6 14.9 40.5 13.8 51.1-4.1-13.6-13-29-30.3-35.7zm-4.6 6.7c19.5 6.2 28.6 27.6 29.7 48.9-1.1 2.7-3 5.4-4.9 7.6-5.7 5.9-15.4 10-26.2 12.2 4.3-21.3.3-47.3-12.7-63 4.9-.8 10.9-2.4 14.1-5.7zm-24.1 6.8c13.8 11.9 20 39.2 14.1 63.5-4.1.5-8.1.8-11.6.8-1.9-21.9-6.8-44-14.3-64.6 3.7.3 8.1.3 11.8.3zM47.5 203c-1.1-10.5 2.4-39.5 13.8-51.1 7-7.3 14.1-5.1 14.1.8 0 6.2 1.4 11.6 2.4 14.6-17.3 6.8-26.2 22.2-30.3 35.7zm9.7 27.6c-1.9-2.2-3.5-4.9-4.9-7.6 1.4-21.3 10.3-42.7 29.7-48.9 3.2 3.2 9.2 4.9 14.1 5.7-13 15.7-17 41.6-12.7 63-10.8-2.2-20.5-6-26.2-12.2zm47.9 14.6c-4.1 0-8.1-.3-12.7-.8-4.6-18.6-1.9-38.9 5.4-53v.3l12.2-5.1c4.9-1.9 9.7-3.8 14.9-4.9-10.7 19.7-17.4 41.3-19.8 63.5zm184-162.7c41.9 0 76.2 34 76.2 75.9 0 42.2-34.3 76.2-76.2 76.2s-76.2-34-76.2-76.2c0-41.8 34.3-75.9 76.2-75.9zm115.6 174.3c-.3 17.8-7 48.9-23 57-13.2 6.6-6.5-7.5-16.5-58.1 13.3.3 26.6.3 39.5 1.1zm-54-1.6c.8 4.9 3.8 40.3-1.6 41.9-11.6 3.5-40 4.3-51.1-1.1-4.1-3-4.6-35.9-4.3-41.1v.3c18.9-.3 38.1-.3 57 0zM278.3 309c-13 3.5-41.6 4.1-54.6-1.6-6.5-2.7-3.8-42.4-1.9-51.6 19.2-.5 38.4-.5 57.8-.8v.3c1.1 8.3 3.3 51.2-1.3 53.7zm-106.5-51.1c12.2-.8 24.6-1.4 36.8-1.6-2.4 15.4-3 43.5-4.9 52.2-1.1 6.8-4.3 6.8-9.7 4.3-21.9-9.8-27.6-35.2-22.2-54.9zm-35.4 31.3c7.8-1.1 15.7-1.9 23.5-2.7 1.6 6.2 3.8 11.9 7 17.6 10 17 44 35.7 45.1 7 6.2 14.9 40.8 12.2 54.9 10.8 15.7-1.4 23.8-1.4 26.8-14.3 12.4 4.3 30.8 4.1 44 3 11.3-.8 20.8-.5 24.6-8.9 1.1 5.1 1.9 11.6 4.6 16.8 10.8 21.3 37.3 1.4 46.8-31.6 8.6.8 17.6 1.9 26.5 2.7-.4 1.3-3.8 7.3 7.3 11.6-47.6 47-95.7 87.8-163.2 107-63.2-20.8-112.1-59.5-155.9-106.5 9.6-3.4 10.4-8.8 8-12.5zm-21.6 172.5c-3.8 17.8-21.9 29.7-39.7 28.9-19.2-.8-46.5-17-59.2-36.5-2.7-31.1 43.8-61.3 66.2-54.6 14.9 4.3 27.8 30.8 33.5 54 0 3-.3 5.7-.8 8.2zm-8.7-66c-.5-13.5-.5-27-.3-40.5h.3c2.7-1.6 5.7-3.8 7.8-6.5 6.5-1.6 13-5.1 15.1-9.2 3.3-7.1-7-7.5-5.4-12.4 2.7-1.1 5.7-2.2 7.8-3.5 29.2 29.2 58.6 56.5 97.3 77-36.8 11.3-72.4 27.6-105.9 47-1.2-18.6-7.7-35.9-16.7-51.9zm337.6 64.6c-103 3.5-206.2 4.1-309.4 0 0 .3 0 .3-.3.3v-.3h.3c35.1-21.6 72.2-39.2 112.4-50.8 11.6 5.1 23 9.5 34.9 13.2 2.2.8 2.2.8 4.3 0 14.3-4.1 28.4-9.2 42.2-15.4 41.5 11.7 78.8 31.7 115.6 53zm10.5-12.4c-35.9-19.5-73-35.9-111.9-47.6 38.1-20 71.9-47.3 103.5-76.7 2.2 1.4 4.6 2.4 7.6 3.2 0 .8.3 1.9.5 2.4-4.6 2.7-7.8 6.2-5.9 10.3 2.2 3.8 8.6 7.6 15.1 8.9 2.4 2.7 5.1 5.1 8.1 6.8 0 13.8-.3 27.6-.8 41.3l.3-.3c-9.3 15.9-15.5 37-16.5 51.7zm105.9 6.2c-12.7 19.5-40 35.7-59.2 36.5-19.3.9-40.5-13.2-40.5-37 5.7-23.2 18.9-49.7 33.5-54 22.7-6.9 69.2 23.4 66.2 54.5zM372.9 75.2c-3.8-72.1-100.8-79.7-126-23.5 44.6-24.3 90.3-15.7 126 23.5zM74.8 407.1c-15.7 1.6-49.5 25.4-49.5 43.2 0 11.6 15.7 19.5 32.2 14.9 12.2-3.2 31.1-17.6 35.9-27.3 6-11.6-3.7-32.7-18.6-30.8zm215.9-176.2c28.6 0 51.9-21.6 51.9-48.4 0-36.1-40.5-58.1-72.2-44.3 9.5 3 16.5 11.6 16.5 21.6 0 23.3-33.3 32-46.5 11.3-7.3 34.1 19.4 59.8 50.3 59.8zM68 474.1c.5 6.5 12.2 12.7 21.6 9.5 6.8-2.7 14.6-10.5 17.3-16.2 3-7-1.1-20-9.7-18.4-8.9 1.6-29.7 16.7-29.2 25.1zm433.2-67c-14.9-1.9-24.6 19.2-18.9 30.8 4.9 9.7 24.1 24.1 36.2 27.3 16.5 4.6 32.2-3.2 32.2-14.9 0-17.8-33.8-41.6-49.5-43.2zM478.8 449c-8.4-1.6-12.4 11.3-9.5 18.4 2.4 5.7 10.3 13.5 17.3 16.2 9.2 3.2 21.1-3 21.3-9.5.9-8.4-20.2-23.5-29.1-25.1z\"]\n};\nvar faOrcid = {\n prefix: 'fab',\n iconName: 'orcid',\n icon: [512, 512, [], \"f8d2\", \"M294.75 188.19h-45.92V342h47.47c67.62 0 83.12-51.34 83.12-76.91 0-41.64-26.54-76.9-84.67-76.9zM256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm-80.79 360.76h-29.84v-207.5h29.84zm-14.92-231.14a19.57 19.57 0 1 1 19.57-19.57 19.64 19.64 0 0 1-19.57 19.57zM300 369h-81V161.26h80.6c76.73 0 110.44 54.83 110.44 103.85C410 318.39 368.38 369 300 369z\"]\n};\nvar faOsi = {\n prefix: 'fab',\n iconName: 'osi',\n icon: [512, 512, [], \"f41a\", \"M8 266.44C10.3 130.64 105.4 34 221.8 18.34c138.8-18.6 255.6 75.8 278 201.1 21.3 118.8-44 230-151.6 274-9.3 3.8-14.4 1.7-18-7.7q-26.7-69.45-53.4-139c-3.1-8.1-1-13.2 7-16.8 24.2-11 39.3-29.4 43.3-55.8a71.47 71.47 0 0 0-64.5-82.2c-39-3.4-71.8 23.7-77.5 59.7-5.2 33 11.1 63.7 41.9 77.7 9.6 4.4 11.5 8.6 7.8 18.4q-26.85 69.9-53.7 139.9c-2.6 6.9-8.3 9.3-15.5 6.5-52.6-20.3-101.4-61-130.8-119-24.9-49.2-25.2-87.7-26.8-108.7zm20.9-1.9c.4 6.6.6 14.3 1.3 22.1 6.3 71.9 49.6 143.5 131 183.1 3.2 1.5 4.4.8 5.6-2.3q22.35-58.65 45-117.3c1.3-3.3.6-4.8-2.4-6.7-31.6-19.9-47.3-48.5-45.6-86 1-21.6 9.3-40.5 23.8-56.3 30-32.7 77-39.8 115.5-17.6a91.64 91.64 0 0 1 45.2 90.4c-3.6 30.6-19.3 53.9-45.7 69.8-2.7 1.6-3.5 2.9-2.3 6q22.8 58.8 45.2 117.7c1.2 3.1 2.4 3.8 5.6 2.3 35.5-16.6 65.2-40.3 88.1-72 34.8-48.2 49.1-101.9 42.3-161-13.7-117.5-119.4-214.8-255.5-198-106.1 13-195.3 102.5-197.1 225.8z\"]\n};\nvar faPage4 = {\n prefix: 'fab',\n iconName: 'page4',\n icon: [496, 512, [], \"f3d7\", \"M248 504C111 504 0 393 0 256S111 8 248 8c20.9 0 41.3 2.6 60.7 7.5L42.3 392H248v112zm0-143.6V146.8L98.6 360.4H248zm96 31.6v92.7c45.7-19.2 84.5-51.7 111.4-92.7H344zm57.4-138.2l-21.2 8.4 21.2 8.3v-16.7zm-20.3 54.5c-6.7 0-8 6.3-8 12.9v7.7h16.2v-10c0-5.9-2.3-10.6-8.2-10.6zM496 256c0 37.3-8.2 72.7-23 104.4H344V27.3C433.3 64.8 496 153.1 496 256zM360.4 143.6h68.2V96h-13.9v32.6h-13.9V99h-13.9v29.6h-12.7V96h-13.9v47.6zm68.1 185.3H402v-11c0-15.4-5.6-25.2-20.9-25.2-15.4 0-20.7 10.6-20.7 25.9v25.3h68.2v-15zm0-103l-68.2 29.7V268l68.2 29.5v-16.6l-14.4-5.7v-26.5l14.4-5.9v-16.9zm-4.8-68.5h-35.6V184H402v-12.2h11c8.6 15.8 1.3 35.3-18.6 35.3-22.5 0-28.3-25.3-15.5-37.7l-11.6-10.6c-16.2 17.5-12.2 63.9 27.1 63.9 34 0 44.7-35.9 29.3-65.3z\"]\n};\nvar faPagelines = {\n prefix: 'fab',\n iconName: 'pagelines',\n icon: [384, 512, [], \"f18c\", \"M384 312.7c-55.1 136.7-187.1 54-187.1 54-40.5 81.8-107.4 134.4-184.6 134.7-16.1 0-16.6-24.4 0-24.4 64.4-.3 120.5-42.7 157.2-110.1-41.1 15.9-118.6 27.9-161.6-82.2 109-44.9 159.1 11.2 178.3 45.5 9.9-24.4 17-50.9 21.6-79.7 0 0-139.7 21.9-149.5-98.1 119.1-47.9 152.6 76.7 152.6 76.7 1.6-16.7 3.3-52.6 3.3-53.4 0 0-106.3-73.7-38.1-165.2 124.6 43 61.4 162.4 61.4 162.4.5 1.6.5 23.8 0 33.4 0 0 45.2-89 136.4-57.5-4.2 134-141.9 106.4-141.9 106.4-4.4 27.4-11.2 53.4-20 77.5 0 0 83-91.8 172-20z\"]\n};\nvar faPalfed = {\n prefix: 'fab',\n iconName: 'palfed',\n icon: [576, 512, [], \"f3d8\", \"M384.9 193.9c0-47.4-55.2-44.2-95.4-29.8-1.3 39.4-2.5 80.7-3 119.8.7 2.8 2.6 6.2 15.1 6.2 36.8 0 83.4-42.8 83.3-96.2zm-194.5 72.2c.2 0 6.5-2.7 11.2-2.7 26.6 0 20.7 44.1-14.4 44.1-21.5 0-37.1-18.1-37.1-43 0-42 42.9-95.6 100.7-126.5 1-12.4 3-22 10.5-28.2 11.2-9 26.6-3.5 29.5 11.1 72.2-22.2 135.2 1 135.2 72 0 77.9-79.3 152.6-140.1 138.2-.1 39.4.9 74.4 2.7 100v.2c.2 3.4.6 12.5-5.3 19.1-9.6 10.6-33.4 10-36.4-22.3-4.1-44.4.2-206.1 1.4-242.5-21.5 15-58.5 50.3-58.5 75.9.2 2.5.4 4 .6 4.6zM8 181.1s-.1 37.4 38.4 37.4h30l22.4 217.2s0 44.3 44.7 44.3h288.9s44.7-.4 44.7-44.3l22.4-217.2h30s38.4 1.2 38.4-37.4c0 0 .1-37.4-38.4-37.4h-30.1c-7.3-25.6-30.2-74.3-119.4-74.3h-28V50.3s-2.7-18.4-21.1-18.4h-85.8s-21.1 0-21.1 18.4v19.1h-28.1s-105 4.2-120.5 74.3h-29S8 142.5 8 181.1z\"]\n};\nvar faPatreon = {\n prefix: 'fab',\n iconName: 'patreon',\n icon: [512, 512, [], \"f3d9\", \"M512 194.8c0 101.3-82.4 183.8-183.8 183.8-101.7 0-184.4-82.4-184.4-183.8 0-101.6 82.7-184.3 184.4-184.3C429.6 10.5 512 93.2 512 194.8zM0 501.5h90v-491H0v491z\"]\n};\nvar faPaypal = {\n prefix: 'fab',\n iconName: 'paypal',\n icon: [384, 512, [], \"f1ed\", \"M111.4 295.9c-3.5 19.2-17.4 108.7-21.5 134-.3 1.8-1 2.5-3 2.5H12.3c-7.6 0-13.1-6.6-12.1-13.9L58.8 46.6c1.5-9.6 10.1-16.9 20-16.9 152.3 0 165.1-3.7 204 11.4 60.1 23.3 65.6 79.5 44 140.3-21.5 62.6-72.5 89.5-140.1 90.3-43.4.7-69.5-7-75.3 24.2zM357.1 152c-1.8-1.3-2.5-1.8-3 1.3-2 11.4-5.1 22.5-8.8 33.6-39.9 113.8-150.5 103.9-204.5 103.9-6.1 0-10.1 3.3-10.9 9.4-22.6 140.4-27.1 169.7-27.1 169.7-1 7.1 3.5 12.9 10.6 12.9h63.5c8.6 0 15.7-6.3 17.4-14.9.7-5.4-1.1 6.1 14.4-91.3 4.6-22 14.3-19.7 29.3-19.7 71 0 126.4-28.8 142.9-112.3 6.5-34.8 4.6-71.4-23.8-92.6z\"]\n};\nvar faPennyArcade = {\n prefix: 'fab',\n iconName: 'penny-arcade',\n icon: [640, 512, [], \"f704\", \"M421.91 164.27c-4.49 19.45-1.4 6.06-15.1 65.29l39.73-10.61c-22.34-49.61-17.29-38.41-24.63-54.68zm-206.09 51.11c-20.19 5.4-11.31 3.03-39.63 10.58l4.46 46.19c28.17-7.59 20.62-5.57 34.82-9.34 42.3-9.79 32.85-56.42.35-47.43zm326.16-26.19l-45.47-99.2c-5.69-12.37-19.46-18.84-32.62-15.33-70.27 18.75-38.72 10.32-135.59 36.23a27.618 27.618 0 0 0-18.89 17.41C144.26 113.27 0 153.75 0 226.67c0 33.5 30.67 67.11 80.9 95.37l1.74 17.88a27.891 27.891 0 0 0-17.77 28.67l4.3 44.48c1.39 14.31 13.43 25.21 27.8 25.2 5.18-.01-3.01 1.78 122.53-31.76 12.57-3.37 21.12-15.02 20.58-28.02 216.59 45.5 401.99-5.98 399.89-84.83.01-28.15-22.19-66.56-97.99-104.47zM255.14 298.3l-21.91 5.88-48.44 12.91 2.46 23.55 20.53-5.51 4.51 44.51-115.31 30.78-4.3-44.52 20.02-5.35-11.11-114.64-20.12 5.39-4.35-44.5c178.15-47.54 170.18-46.42 186.22-46.65 56.66-1.13 64.15 71.84 42.55 104.43a86.7 86.7 0 0 1-50.75 33.72zm199.18 16.62l-3.89-39.49 14.9-3.98-6.61-14.68-57.76 15.42-4.1 17.54 19.2-5.12 4.05 39.54-112.85 30.07-4.46-44.43 20.99-5.59 33.08-126.47-17.15 4.56-4.2-44.48c93.36-24.99 65.01-17.41 135.59-36.24l66.67 145.47 20.79-5.56 4.3 44.48-108.55 28.96z\"]\n};\nvar faPerbyte = {\n prefix: 'fab',\n iconName: 'perbyte',\n icon: [448, 512, [], \"e083\", \"M305.314,284.578H246.6V383.3h58.711q24.423,0,38.193-13.77t13.77-36.11q0-21.826-14.032-35.335T305.314,284.578ZM149.435,128.7H90.724v98.723h58.711q24.42,0,38.19-13.773t13.77-36.107q0-21.826-14.029-35.338T149.435,128.7ZM366.647,32H81.353A81.445,81.445,0,0,0,0,113.352V398.647A81.445,81.445,0,0,0,81.353,480H366.647A81.445,81.445,0,0,0,448,398.647V113.352A81.445,81.445,0,0,0,366.647,32Zm63.635,366.647a63.706,63.706,0,0,1-63.635,63.635H81.353a63.706,63.706,0,0,1-63.635-63.635V113.352A63.706,63.706,0,0,1,81.353,49.718H366.647a63.706,63.706,0,0,1,63.635,63.634ZM305.314,128.7H246.6v98.723h58.711q24.423,0,38.193-13.773t13.77-36.107q0-21.826-14.032-35.338T305.314,128.7Z\"]\n};\nvar faPeriscope = {\n prefix: 'fab',\n iconName: 'periscope',\n icon: [448, 512, [], \"f3da\", \"M370 63.6C331.4 22.6 280.5 0 226.6 0 111.9 0 18.5 96.2 18.5 214.4c0 75.1 57.8 159.8 82.7 192.7C137.8 455.5 192.6 512 226.6 512c41.6 0 112.9-94.2 120.9-105 24.6-33.1 82-118.3 82-192.6 0-56.5-21.1-110.1-59.5-150.8zM226.6 493.9c-42.5 0-190-167.3-190-279.4 0-107.4 83.9-196.3 190-196.3 100.8 0 184.7 89 184.7 196.3.1 112.1-147.4 279.4-184.7 279.4zM338 206.8c0 59.1-51.1 109.7-110.8 109.7-100.6 0-150.7-108.2-92.9-181.8v.4c0 24.5 20.1 44.4 44.8 44.4 24.7 0 44.8-19.9 44.8-44.4 0-18.2-11.1-33.8-26.9-40.7 76.6-19.2 141 39.3 141 112.4z\"]\n};\nvar faPhabricator = {\n prefix: 'fab',\n iconName: 'phabricator',\n icon: [496, 512, [], \"f3db\", \"M323 262.1l-.1-13s21.7-19.8 21.1-21.2l-9.5-20c-.6-1.4-29.5-.5-29.5-.5l-9.4-9.3s.2-28.5-1.2-29.1l-20.1-9.2c-1.4-.6-20.7 21-20.7 21l-13.1-.2s-20.5-21.4-21.9-20.8l-20 8.3c-1.4.5.2 28.9.2 28.9l-9.1 9.1s-29.2-.9-29.7.4l-8.1 19.8c-.6 1.4 21 21 21 21l.1 12.9s-21.7 19.8-21.1 21.2l9.5 20c.6 1.4 29.5.5 29.5.5l9.4 9.3s-.2 31.8 1.2 32.3l20.1 8.3c1.4.6 20.7-23.5 20.7-23.5l13.1.2s20.5 23.8 21.8 23.3l20-7.5c1.4-.6-.2-32.1-.2-32.1l9.1-9.1s29.2.9 29.7-.5l8.1-19.8c.7-1.1-20.9-20.7-20.9-20.7zm-44.9-8.7c.7 17.1-12.8 31.6-30.1 32.4-17.3.8-32.1-12.5-32.8-29.6-.7-17.1 12.8-31.6 30.1-32.3 17.3-.8 32.1 12.5 32.8 29.5zm201.2-37.9l-97-97-.1.1c-75.1-73.3-195.4-72.8-269.8 1.6-50.9 51-27.8 27.9-95.7 95.3-22.3 22.3-22.3 58.7 0 81 69.9 69.4 46.4 46 97.4 97l.1-.1c75.1 73.3 195.4 72.9 269.8-1.6 51-50.9 27.9-27.9 95.3-95.3 22.3-22.3 22.3-58.7 0-81zM140.4 363.8c-59.6-59.5-59.6-156 0-215.5 59.5-59.6 156-59.5 215.6 0 59.5 59.5 59.6 156 0 215.6-59.6 59.5-156 59.4-215.6-.1z\"]\n};\nvar faPhoenixFramework = {\n prefix: 'fab',\n iconName: 'phoenix-framework',\n icon: [640, 512, [], \"f3dc\", \"M212.9 344.3c3.8-.1 22.8-1.4 25.6-2.2-2.4-2.6-43.6-1-68-49.6-4.3-8.6-7.5-17.6-6.4-27.6 2.9-25.5 32.9-30 52-18.5 36 21.6 63.3 91.3 113.7 97.5 37 4.5 84.6-17 108.2-45.4-.6-.1-.8-.2-1-.1-.4.1-.8.2-1.1.3-33.3 12.1-94.3 9.7-134.7-14.8-37.6-22.8-53.1-58.7-51.8-74.6 1.8-21.3 22.9-23.2 35.9-19.6 14.4 3.9 24.4 17.6 38.9 27.4 15.6 10.4 32.9 13.7 51.3 10.3 14.9-2.7 34.4-12.3 36.5-14.5-1.1-.1-1.8-.1-2.5-.2-6.2-.6-12.4-.8-18.5-1.7C279.8 194.5 262.1 47.4 138.5 37.9 94.2 34.5 39.1 46 2.2 72.9c-.8.6-1.5 1.2-2.2 1.8.1.2.1.3.2.5.8 0 1.6-.1 2.4-.2 6.3-1 12.5-.8 18.7.3 23.8 4.3 47.7 23.1 55.9 76.5 5.3 34.3-.7 50.8 8 86.1 19 77.1 91 107.6 127.7 106.4zM75.3 64.9c-.9-1-.9-1.2-1.3-2 12.1-2.6 24.2-4.1 36.6-4.8-1.1 14.7-22.2 21.3-35.3 6.8zm196.9 350.5c-42.8 1.2-92-26.7-123.5-61.4-4.6-5-16.8-20.2-18.6-23.4l.4-.4c6.6 4.1 25.7 18.6 54.8 27 24.2 7 48.1 6.3 71.6-3.3 22.7-9.3 41-.5 43.1 2.9-18.5 3.8-20.1 4.4-24 7.9-5.1 4.4-4.6 11.7 7 17.2 26.2 12.4 63-2.8 97.2 25.4 2.4 2 8.1 7.8 10.1 10.7-.1.2-.3.3-.4.5-4.8-1.5-16.4-7.5-40.2-9.3-24.7-2-46.3 5.3-77.5 6.2zm174.8-252c16.4-5.2 41.3-13.4 66.5-3.3 16.1 6.5 26.2 18.7 32.1 34.6 3.5 9.4 5.1 19.7 5.1 28.7-.2 0-.4 0-.6.1-.2-.4-.4-.9-.5-1.3-5-22-29.9-43.8-67.6-29.9-50.2 18.6-130.4 9.7-176.9-48-.7-.9-2.4-1.7-1.3-3.2.1-.2 2.1.6 3 1.3 18.1 13.4 38.3 21.9 60.3 26.2 30.5 6.1 54.6 2.9 79.9-5.2zm102.7 117.5c-32.4.2-33.8 50.1-103.6 64.4-18.2 3.7-38.7 4.6-44.9 4.2v-.4c2.8-1.5 14.7-2.6 29.7-16.6 7.9-7.3 15.3-15.1 22.8-22.9 19.5-20.2 41.4-42.2 81.9-39 23.1 1.8 29.3 8.2 36.1 12.7.3.2.4.5.7.9-.5 0-.7.1-.9 0-7-2.7-14.3-3.3-21.8-3.3zm-12.3-24.1c-.1.2-.1.4-.2.6-28.9-4.4-48-7.9-68.5 4-17 9.9-31.4 20.5-62 24.4-27.1 3.4-45.1 2.4-66.1-8-.3-.2-.6-.4-1-.6 0-.2.1-.3.1-.5 24.9 3.8 36.4 5.1 55.5-5.8 22.3-12.9 40.1-26.6 71.3-31 29.6-4.1 51.3 2.5 70.9 16.9zM268.6 97.3c-.6-.6-1.1-1.2-2.1-2.3 7.6 0 29.7-1.2 53.4 8.4 19.7 8 32.2 21 50.2 32.9 11.1 7.3 23.4 9.3 36.4 8.1 4.3-.4 8.5-1.2 12.8-1.7.4-.1.9 0 1.5.3-.6.4-1.2.9-1.8 1.2-8.1 4-16.7 6.3-25.6 7.1-26.1 2.6-50.3-3.7-73.4-15.4-19.3-9.9-36.4-22.9-51.4-38.6zM640 335.7c-3.5 3.1-22.7 11.6-42.7 5.3-12.3-3.9-19.5-14.9-31.6-24.1-10-7.6-20.9-7.9-28.1-8.4.6-.8.9-1.2 1.2-1.4 14.8-9.2 30.5-12.2 47.3-6.5 12.5 4.2 19.2 13.5 30.4 24.2 10.8 10.4 21 9.9 23.1 10.5.1-.1.2 0 .4.4zm-212.5 137c2.2 1.2 1.6 1.5 1.5 2-18.5-1.4-33.9-7.6-46.8-22.2-21.8-24.7-41.7-27.9-48.6-29.7.5-.2.8-.4 1.1-.4 13.1.1 26.1.7 38.9 3.9 25.3 6.4 35 25.4 41.6 35.3 3.2 4.8 7.3 8.3 12.3 11.1z\"]\n};\nvar faPhoenixSquadron = {\n prefix: 'fab',\n iconName: 'phoenix-squadron',\n icon: [512, 512, [], \"f511\", \"M96 63.38C142.49 27.25 201.55 7.31 260.51 8.81c29.58-.38 59.11 5.37 86.91 15.33-24.13-4.63-49-6.34-73.38-2.45C231.17 27 191 48.84 162.21 80.87c5.67-1 10.78-3.67 16-5.86 18.14-7.87 37.49-13.26 57.23-14.83 19.74-2.13 39.64-.43 59.28 1.92-14.42 2.79-29.12 4.57-43 9.59-34.43 11.07-65.27 33.16-86.3 62.63-13.8 19.71-23.63 42.86-24.67 67.13-.35 16.49 5.22 34.81 19.83 44a53.27 53.27 0 0 0 37.52 6.74c15.45-2.46 30.07-8.64 43.6-16.33 11.52-6.82 22.67-14.55 32-24.25 3.79-3.22 2.53-8.45 2.62-12.79-2.12-.34-4.38-1.11-6.3.3a203 203 0 0 1-35.82 15.37c-20 6.17-42.16 8.46-62.1.78 12.79 1.73 26.06.31 37.74-5.44 20.23-9.72 36.81-25.2 54.44-38.77a526.57 526.57 0 0 1 88.9-55.31c25.71-12 52.94-22.78 81.57-24.12-15.63 13.72-32.15 26.52-46.78 41.38-14.51 14-27.46 29.5-40.11 45.18-3.52 4.6-8.95 6.94-13.58 10.16a150.7 150.7 0 0 0-51.89 60.1c-9.33 19.68-14.5 41.85-11.77 63.65 1.94 13.69 8.71 27.59 20.9 34.91 12.9 8 29.05 8.07 43.48 5.1 32.8-7.45 61.43-28.89 81-55.84 20.44-27.52 30.52-62.2 29.16-96.35-.52-7.5-1.57-15-1.66-22.49 8 19.48 14.82 39.71 16.65 60.83 2 14.28.75 28.76-1.62 42.9-1.91 11-5.67 21.51-7.78 32.43a165 165 0 0 0 39.34-81.07 183.64 183.64 0 0 0-14.21-104.64c20.78 32 32.34 69.58 35.71 107.48.49 12.73.49 25.51 0 38.23A243.21 243.21 0 0 1 482 371.34c-26.12 47.34-68 85.63-117.19 108-78.29 36.23-174.68 31.32-248-14.68A248.34 248.34 0 0 1 25.36 366 238.34 238.34 0 0 1 0 273.08v-31.34C3.93 172 40.87 105.82 96 63.38m222 80.33a79.13 79.13 0 0 0 16-4.48c5-1.77 9.24-5.94 10.32-11.22-8.96 4.99-17.98 9.92-26.32 15.7z\"]\n};\nvar faPhp = {\n prefix: 'fab',\n iconName: 'php',\n icon: [640, 512, [], \"f457\", \"M320 104.5c171.4 0 303.2 72.2 303.2 151.5S491.3 407.5 320 407.5c-171.4 0-303.2-72.2-303.2-151.5S148.7 104.5 320 104.5m0-16.8C143.3 87.7 0 163 0 256s143.3 168.3 320 168.3S640 349 640 256 496.7 87.7 320 87.7zM218.2 242.5c-7.9 40.5-35.8 36.3-70.1 36.3l13.7-70.6c38 0 63.8-4.1 56.4 34.3zM97.4 350.3h36.7l8.7-44.8c41.1 0 66.6 3 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7h-70.7L97.4 350.3zm185.7-213.6h36.5l-8.7 44.8c31.5 0 60.7-2.3 74.8 10.7 14.8 13.6 7.7 31-8.3 113.1h-37c15.4-79.4 18.3-86 12.7-92-5.4-5.8-17.7-4.6-47.4-4.6l-18.8 96.6h-36.5l32.7-168.6zM505 242.5c-8 41.1-36.7 36.3-70.1 36.3l13.7-70.6c38.2 0 63.8-4.1 56.4 34.3zM384.2 350.3H421l8.7-44.8c43.2 0 67.1 2.5 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7H417l-32.8 168.7z\"]\n};\nvar faPiedPiper = {\n prefix: 'fab',\n iconName: 'pied-piper',\n icon: [480, 512, [], \"f2ae\", \"M455.93,23.2C429.23,30,387.79,51.69,341.35,90.66A206,206,0,0,0,240,64C125.13,64,32,157.12,32,272s93.13,208,208,208,208-93.13,208-208a207.25,207.25,0,0,0-58.75-144.81,155.35,155.35,0,0,0-17,27.4A176.16,176.16,0,0,1,417.1,272c0,97.66-79.44,177.11-177.09,177.11a175.81,175.81,0,0,1-87.63-23.4c82.94-107.33,150.79-37.77,184.31-226.65,5.79-32.62,28-94.26,126.23-160.18C471,33.45,465.35,20.8,455.93,23.2ZM125,406.4A176.66,176.66,0,0,1,62.9,272C62.9,174.34,142.35,94.9,240,94.9a174,174,0,0,1,76.63,17.75C250.64,174.76,189.77,265.52,125,406.4Z\"]\n};\nvar faPiedPiperAlt = {\n prefix: 'fab',\n iconName: 'pied-piper-alt',\n icon: [576, 512, [], \"f1a8\", \"M244 246c-3.2-2-6.3-2.9-10.1-2.9-6.6 0-12.6 3.2-19.3 3.7l1.7 4.9zm135.9 197.9c-19 0-64.1 9.5-79.9 19.8l6.9 45.1c35.7 6.1 70.1 3.6 106-9.8-4.8-10-23.5-55.1-33-55.1zM340.8 177c6.6 2.8 11.5 9.2 22.7 22.1 2-1.4 7.5-5.2 7.5-8.6 0-4.9-11.8-13.2-13.2-23 11.2-5.7 25.2-6 37.6-8.9 68.1-16.4 116.3-52.9 146.8-116.7C548.3 29.3 554 16.1 554.6 2l-2 2.6c-28.4 50-33 63.2-81.3 100-31.9 24.4-69.2 40.2-106.6 54.6l-6.3-.3v-21.8c-19.6 1.6-19.7-14.6-31.6-23-18.7 20.6-31.6 40.8-58.9 51.1-12.7 4.8-19.6 10-25.9 21.8 34.9-16.4 91.2-13.5 98.8-10zM555.5 0l-.6 1.1-.3.9.6-.6zm-59.2 382.1c-33.9-56.9-75.3-118.4-150-115.5l-.3-6c-1.1-13.5 32.8 3.2 35.1-31l-14.4 7.2c-19.8-45.7-8.6-54.3-65.5-54.3-14.7 0-26.7 1.7-41.4 4.6 2.9 18.6 2.2 36.7-10.9 50.3l19.5 5.5c-1.7 3.2-2.9 6.3-2.9 9.8 0 21 42.8 2.9 42.8 33.6 0 18.4-36.8 60.1-54.9 60.1-8 0-53.7-50-53.4-60.1l.3-4.6 52.3-11.5c13-2.6 12.3-22.7-2.9-22.7-3.7 0-43.1 9.2-49.4 10.6-2-5.2-7.5-14.1-13.8-14.1-3.2 0-6.3 3.2-9.5 4-9.2 2.6-31 2.9-21.5 20.1L15.9 298.5c-5.5 1.1-8.9 6.3-8.9 11.8 0 6 5.5 10.9 11.5 10.9 8 0 131.3-28.4 147.4-32.2 2.6 3.2 4.6 6.3 7.8 8.6 20.1 14.4 59.8 85.9 76.4 85.9 24.1 0 58-22.4 71.3-41.9 3.2-4.3 6.9-7.5 12.4-6.9.6 13.8-31.6 34.2-33 43.7-1.4 10.2-1 35.2-.3 41.1 26.7 8.1 52-3.6 77.9-2.9 4.3-21 10.6-41.9 9.8-63.5l-.3-9.5c-1.4-34.2-10.9-38.5-34.8-58.6-1.1-1.1-2.6-2.6-3.7-4 2.2-1.4 1.1-1 4.6-1.7 88.5 0 56.3 183.6 111.5 229.9 33.1-15 72.5-27.9 103.5-47.2-29-25.6-52.6-45.7-72.7-79.9zm-196.2 46.1v27.2l11.8-3.4-2.9-23.8zm-68.7-150.4l24.1 61.2 21-13.8-31.3-50.9zm84.4 154.9l2 12.4c9-1.5 58.4-6.6 58.4-14.1 0-1.4-.6-3.2-.9-4.6-26.8 0-36.9 3.8-59.5 6.3z\"]\n};\nvar faPiedPiperHat = {\n prefix: 'fab',\n iconName: 'pied-piper-hat',\n icon: [640, 512, [], \"f4e5\", \"M640 24.9c-80.8 53.6-89.4 92.5-96.4 104.4-6.7 12.2-11.7 60.3-23.3 83.6-11.7 23.6-54.2 42.2-66.1 50-11.7 7.8-28.3 38.1-41.9 64.2-108.1-4.4-167.4 38.8-259.2 93.6 29.4-9.7 43.3-16.7 43.3-16.7 94.2-36 139.3-68.3 281.1-49.2 1.1 0 1.9.6 2.8.8 3.9 2.2 5.3 6.9 3.1 10.8l-53.9 95.8c-2.5 4.7-7.8 7.2-13.1 6.1-126.8-23.8-226.9 17.3-318.9 18.6C24.1 488 0 453.4 0 451.8c0-1.1.6-1.7 1.7-1.7 0 0 38.3 0 103.1-15.3C178.4 294.5 244 245.4 315.4 245.4c0 0 71.7 0 90.6 61.9 22.8-39.7 28.3-49.2 28.3-49.2 5.3-9.4 35-77.2 86.4-141.4 51.5-64 90.4-79.9 119.3-91.8z\"]\n};\nvar faPiedPiperPp = {\n prefix: 'fab',\n iconName: 'pied-piper-pp',\n icon: [448, 512, [], \"f1a7\", \"M205.3 174.6c0 21.1-14.2 38.1-31.7 38.1-7.1 0-12.8-1.2-17.2-3.7v-68c4.4-2.7 10.1-4.2 17.2-4.2 17.5 0 31.7 16.9 31.7 37.8zm52.6 67c-7.1 0-12.8 1.5-17.2 4.2v68c4.4 2.5 10.1 3.7 17.2 3.7 17.4 0 31.7-16.9 31.7-37.8 0-21.1-14.3-38.1-31.7-38.1zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM185 255.1c41 0 74.2-35.6 74.2-79.6 0-44-33.2-79.6-74.2-79.6-12 0-24.1 3.2-34.6 8.8h-45.7V311l51.8-10.1v-50.6c8.6 3.1 18.1 4.8 28.5 4.8zm158.4 25.3c0-44-33.2-79.6-73.9-79.6-3.2 0-6.4.2-9.6.7-3.7 12.5-10.1 23.8-19.2 33.4-13.8 15-32.2 23.8-51.8 24.8V416l51.8-10.1v-50.6c8.6 3.2 18.2 4.7 28.7 4.7 40.8 0 74-35.6 74-79.6z\"]\n};\nvar faPiedPiperSquare = {\n prefix: 'fab',\n iconName: 'pied-piper-square',\n icon: [448, 512, [], \"e01e\", \"M32 419L0 479.2l.8-328C.8 85.3 54 32 120 32h327.2c-93 28.9-189.9 94.2-253.9 168.6C122.7 282 82.6 338 32 419M448 32S305.2 98.8 261.6 199.1c-23.2 53.6-28.9 118.1-71 158.6-28.9 27.8-69.8 38.2-105.3 56.3-23.2 12-66.4 40.5-84.9 66h328.4c66 0 119.3-53.3 119.3-119.2-.1 0-.1-328.8-.1-328.8z\"]\n};\nvar faPinterest = {\n prefix: 'fab',\n iconName: 'pinterest',\n icon: [496, 512, [], \"f0d2\", \"M496 256c0 137-111 248-248 248-25.6 0-50.2-3.9-73.4-11.1 10.1-16.5 25.2-43.5 30.8-65 3-11.6 15.4-59 15.4-59 8.1 15.4 31.7 28.5 56.8 28.5 74.8 0 128.7-68.8 128.7-154.3 0-81.9-66.9-143.2-152.9-143.2-107 0-163.9 71.8-163.9 150.1 0 36.4 19.4 81.7 50.3 96.1 4.7 2.2 7.2 1.2 8.3-3.3.8-3.4 5-20.3 6.9-28.1.6-2.5.3-4.7-1.7-7.1-10.1-12.5-18.3-35.3-18.3-56.6 0-54.7 41.4-107.6 112-107.6 60.9 0 103.6 41.5 103.6 100.9 0 67.1-33.9 113.6-78 113.6-24.3 0-42.6-20.1-36.7-44.8 7-29.5 20.5-61.3 20.5-82.6 0-19-10.2-34.9-31.4-34.9-24.9 0-44.9 25.7-44.9 60.2 0 22 7.4 36.8 7.4 36.8s-24.5 103.8-29 123.2c-5 21.4-3 51.6-.9 71.2C65.4 450.9 0 361.1 0 256 0 119 111 8 248 8s248 111 248 248z\"]\n};\nvar faPinterestP = {\n prefix: 'fab',\n iconName: 'pinterest-p',\n icon: [384, 512, [], \"f231\", \"M204 6.5C101.4 6.5 0 74.9 0 185.6 0 256 39.6 296 63.6 296c9.9 0 15.6-27.6 15.6-35.4 0-9.3-23.7-29.1-23.7-67.8 0-80.4 61.2-137.4 140.4-137.4 68.1 0 118.5 38.7 118.5 109.8 0 53.1-21.3 152.7-90.3 152.7-24.9 0-46.2-18-46.2-43.8 0-37.8 26.4-74.4 26.4-113.4 0-66.2-93.9-54.2-93.9 25.8 0 16.8 2.1 35.4 9.6 50.7-13.8 59.4-42 147.9-42 209.1 0 18.9 2.7 37.5 4.5 56.4 3.4 3.8 1.7 3.4 6.9 1.5 50.4-69 48.6-82.5 71.4-172.8 12.3 23.4 44.1 36 69.3 36 106.2 0 153.9-103.5 153.9-196.8C384 71.3 298.2 6.5 204 6.5z\"]\n};\nvar faPinterestSquare = {\n prefix: 'fab',\n iconName: 'pinterest-square',\n icon: [448, 512, [], \"f0d3\", \"M448 80v352c0 26.5-21.5 48-48 48H154.4c9.8-16.4 22.4-40 27.4-59.3 3-11.5 15.3-58.4 15.3-58.4 8 15.3 31.4 28.2 56.3 28.2 74.1 0 127.4-68.1 127.4-152.7 0-81.1-66.2-141.8-151.4-141.8-106 0-162.2 71.1-162.2 148.6 0 36 19.2 80.8 49.8 95.1 4.7 2.2 7.1 1.2 8.2-3.3.8-3.4 5-20.1 6.8-27.8.6-2.5.3-4.6-1.7-7-10.1-12.3-18.3-34.9-18.3-56 0-54.2 41-106.6 110.9-106.6 60.3 0 102.6 41.1 102.6 99.9 0 66.4-33.5 112.4-77.2 112.4-24.1 0-42.1-19.9-36.4-44.4 6.9-29.2 20.3-60.7 20.3-81.8 0-53-75.5-45.7-75.5 25 0 21.7 7.3 36.5 7.3 36.5-31.4 132.8-36.1 134.5-29.6 192.6l2.2.8H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48z\"]\n};\nvar faPlaystation = {\n prefix: 'fab',\n iconName: 'playstation',\n icon: [576, 512, [], \"f3df\", \"M570.9 372.3c-11.3 14.2-38.8 24.3-38.8 24.3L327 470.2v-54.3l150.9-53.8c17.1-6.1 19.8-14.8 5.8-19.4-13.9-4.6-39.1-3.3-56.2 2.9L327 381.1v-56.4c23.2-7.8 47.1-13.6 75.7-16.8 40.9-4.5 90.9.6 130.2 15.5 44.2 14 49.2 34.7 38 48.9zm-224.4-92.5v-139c0-16.3-3-31.3-18.3-35.6-11.7-3.8-19 7.1-19 23.4v347.9l-93.8-29.8V32c39.9 7.4 98 24.9 129.2 35.4C424.1 94.7 451 128.7 451 205.2c0 74.5-46 102.8-104.5 74.6zM43.2 410.2c-45.4-12.8-53-39.5-32.3-54.8 19.1-14.2 51.7-24.9 51.7-24.9l134.5-47.8v54.5l-96.8 34.6c-17.1 6.1-19.7 14.8-5.8 19.4 13.9 4.6 39.1 3.3 56.2-2.9l46.4-16.9v48.8c-51.6 9.3-101.4 7.3-153.9-10z\"]\n};\nvar faProductHunt = {\n prefix: 'fab',\n iconName: 'product-hunt',\n icon: [512, 512, [], \"f288\", \"M326.3 218.8c0 20.5-16.7 37.2-37.2 37.2h-70.3v-74.4h70.3c20.5 0 37.2 16.7 37.2 37.2zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-128.1-37.2c0-47.9-38.9-86.8-86.8-86.8H169.2v248h49.6v-74.4h70.3c47.9 0 86.8-38.9 86.8-86.8z\"]\n};\nvar faPushed = {\n prefix: 'fab',\n iconName: 'pushed',\n icon: [432, 512, [], \"f3e1\", \"M407 111.9l-98.5-9 14-33.4c10.4-23.5-10.8-40.4-28.7-37L22.5 76.9c-15.1 2.7-26 18.3-21.4 36.6l105.1 348.3c6.5 21.3 36.7 24.2 47.7 7l35.3-80.8 235.2-231.3c16.4-16.8 4.3-42.9-17.4-44.8zM297.6 53.6c5.1-.7 7.5 2.5 5.2 7.4L286 100.9 108.6 84.6l189-31zM22.7 107.9c-3.1-5.1 1-10 6.1-9.1l248.7 22.7-96.9 230.7L22.7 107.9zM136 456.4c-2.6 4-7.9 3.1-9.4-1.2L43.5 179.7l127.7 197.6c-7 15-35.2 79.1-35.2 79.1zm272.8-314.5L210.1 337.3l89.7-213.7 106.4 9.7c4 1.1 5.7 5.3 2.6 8.6z\"]\n};\nvar faPython = {\n prefix: 'fab',\n iconName: 'python',\n icon: [448, 512, [], \"f3e2\", \"M439.8 200.5c-7.7-30.9-22.3-54.2-53.4-54.2h-40.1v47.4c0 36.8-31.2 67.8-66.8 67.8H172.7c-29.2 0-53.4 25-53.4 54.3v101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3v-40.7H226.2v-13.6h160.2c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6zM286.2 404c11.1 0 20.1 9.1 20.1 20.3 0 11.3-9 20.4-20.1 20.4-11 0-20.1-9.2-20.1-20.4.1-11.3 9.1-20.3 20.1-20.3zM167.8 248.1h106.8c29.7 0 53.4-24.5 53.4-54.3V91.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8.1-45.2 8-53.4 24.7-53.4 55.6v40.7h106.9v13.6h-147c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2H101v-48.8c0-35.3 30.5-66.4 66.8-66.4zm-6.7-142.6c-11.1 0-20.1-9.1-20.1-20.3.1-11.3 9-20.4 20.1-20.4 11 0 20.1 9.2 20.1 20.4s-9 20.3-20.1 20.3z\"]\n};\nvar faQq = {\n prefix: 'fab',\n iconName: 'qq',\n icon: [448, 512, [], \"f1d6\", \"M433.754 420.445c-11.526 1.393-44.86-52.741-44.86-52.741 0 31.345-16.136 72.247-51.051 101.786 16.842 5.192 54.843 19.167 45.803 34.421-7.316 12.343-125.51 7.881-159.632 4.037-34.122 3.844-152.316 8.306-159.632-4.037-9.045-15.25 28.918-29.214 45.783-34.415-34.92-29.539-51.059-70.445-51.059-101.792 0 0-33.334 54.134-44.859 52.741-5.37-.65-12.424-29.644 9.347-99.704 10.261-33.024 21.995-60.478 40.144-105.779C60.683 98.063 108.982.006 224 0c113.737.006 163.156 96.133 160.264 214.963 18.118 45.223 29.912 72.85 40.144 105.778 21.768 70.06 14.716 99.053 9.346 99.704z\"]\n};\nvar faQuinscape = {\n prefix: 'fab',\n iconName: 'quinscape',\n icon: [512, 512, [], \"f459\", \"M313.6 474.6h-1a158.1 158.1 0 0 1 0-316.2c94.9 0 168.2 83.1 157 176.6 4 5.1 8.2 9.6 11.2 15.3 13.4-30.3 20.3-62.4 20.3-97.7C501.1 117.5 391.6 8 256.5 8S12 117.5 12 252.6s109.5 244.6 244.5 244.6a237.36 237.36 0 0 0 70.4-10.1c-5.2-3.5-8.9-8.1-13.3-12.5zm-.1-.1l.4.1zm78.4-168.9a99.2 99.2 0 1 0 99.2 99.2 99.18 99.18 0 0 0-99.2-99.2z\"]\n};\nvar faQuora = {\n prefix: 'fab',\n iconName: 'quora',\n icon: [448, 512, [], \"f2c4\", \"M440.5 386.7h-29.3c-1.5 13.5-10.5 30.8-33 30.8-20.5 0-35.3-14.2-49.5-35.8 44.2-34.2 74.7-87.5 74.7-153C403.5 111.2 306.8 32 205 32 105.3 32 7.3 111.7 7.3 228.7c0 134.1 131.3 221.6 249 189C276 451.3 302 480 351.5 480c81.8 0 90.8-75.3 89-93.3zM297 329.2C277.5 300 253.3 277 205.5 277c-30.5 0-54.3 10-69 22.8l12.2 24.3c6.2-3 13-4 19.8-4 35.5 0 53.7 30.8 69.2 61.3-10 3-20.7 4.2-32.7 4.2-75 0-107.5-53-107.5-156.7C97.5 124.5 130 71 205 71c76.2 0 108.7 53.5 108.7 157.7.1 41.8-5.4 75.6-16.7 100.5z\"]\n};\nvar faRProject = {\n prefix: 'fab',\n iconName: 'r-project',\n icon: [581, 512, [], \"f4f7\", \"M581 226.6C581 119.1 450.9 32 290.5 32S0 119.1 0 226.6C0 322.4 103.3 402 239.4 418.1V480h99.1v-61.5c24.3-2.7 47.6-7.4 69.4-13.9L448 480h112l-67.4-113.7c54.5-35.4 88.4-84.9 88.4-139.7zm-466.8 14.5c0-73.5 98.9-133 220.8-133s211.9 40.7 211.9 133c0 50.1-26.5 85-70.3 106.4-2.4-1.6-4.7-2.9-6.4-3.7-10.2-5.2-27.8-10.5-27.8-10.5s86.6-6.4 86.6-92.7-90.6-87.9-90.6-87.9h-199V361c-74.1-21.5-125.2-67.1-125.2-119.9zm225.1 38.3v-55.6c57.8 0 87.8-6.8 87.8 27.3 0 36.5-38.2 28.3-87.8 28.3zm-.9 72.5H365c10.8 0 18.9 11.7 24 19.2-16.1 1.9-33 2.8-50.6 2.9v-22.1z\"]\n};\nvar faRaspberryPi = {\n prefix: 'fab',\n iconName: 'raspberry-pi',\n icon: [407, 512, [], \"f7bb\", \"M372 232.5l-3.7-6.5c.1-46.4-21.4-65.3-46.5-79.7 7.6-2 15.4-3.6 17.6-13.2 13.1-3.3 15.8-9.4 17.1-15.8 3.4-2.3 14.8-8.7 13.6-19.7 6.4-4.4 10-10.1 8.1-18.1 6.9-7.5 8.7-13.7 5.8-19.4 8.3-10.3 4.6-15.6 1.1-20.9 6.2-11.2.7-23.2-16.6-21.2-6.9-10.1-21.9-7.8-24.2-7.8-2.6-3.2-6-6-16.5-4.7-6.8-6.1-14.4-5-22.3-2.1-9.3-7.3-15.5-1.4-22.6.8C271.6.6 269 5.5 263.5 7.6c-12.3-2.6-16.1 3-22 8.9l-6.9-.1c-18.6 10.8-27.8 32.8-31.1 44.1-3.3-11.3-12.5-33.3-31.1-44.1l-6.9.1c-5.9-5.9-9.7-11.5-22-8.9-5.6-2-8.1-7-19.4-3.4-4.6-1.4-8.9-4.4-13.9-4.3-2.6.1-5.5 1-8.7 3.5-7.9-3-15.5-4-22.3 2.1-10.5-1.3-14 1.4-16.5 4.7-2.3 0-17.3-2.3-24.2 7.8C21.2 16 15.8 28 22 39.2c-3.5 5.4-7.2 10.7 1.1 20.9-2.9 5.7-1.1 11.9 5.8 19.4-1.8 8 1.8 13.7 8.1 18.1-1.2 11 10.2 17.4 13.6 19.7 1.3 6.4 4 12.4 17.1 15.8 2.2 9.5 10 11.2 17.6 13.2-25.1 14.4-46.6 33.3-46.5 79.7l-3.7 6.5c-28.8 17.2-54.7 72.7-14.2 117.7 2.6 14.1 7.1 24.2 11 35.4 5.9 45.2 44.5 66.3 54.6 68.8 14.9 11.2 30.8 21.8 52.2 29.2C159 504.2 181 512 203 512h1c22.1 0 44-7.8 64.2-28.4 21.5-7.4 37.3-18 52.2-29.2 10.2-2.5 48.7-23.6 54.6-68.8 3.9-11.2 8.4-21.3 11-35.4 40.6-45.1 14.7-100.5-14-117.7zm-22.2-8c-1.5 18.7-98.9-65.1-82.1-67.9 45.7-7.5 83.6 19.2 82.1 67.9zm-43 93.1c-24.5 15.8-59.8 5.6-78.8-22.8s-14.6-64.2 9.9-80c24.5-15.8 59.8-5.6 78.8 22.8s14.6 64.2-9.9 80zM238.9 29.3c.8 4.2 1.8 6.8 2.9 7.6 5.4-5.8 9.8-11.7 16.8-17.3 0 3.3-1.7 6.8 2.5 9.4 3.7-5 8.8-9.5 15.5-13.3-3.2 5.6-.6 7.3 1.2 9.6 5.1-4.4 10-8.8 19.4-12.3-2.6 3.1-6.2 6.2-2.4 9.8 5.3-3.3 10.6-6.6 23.1-8.9-2.8 3.1-8.7 6.3-5.1 9.4 6.6-2.5 14-4.4 22.1-5.4-3.9 3.2-7.1 6.3-3.9 8.8 7.1-2.2 16.9-5.1 26.4-2.6l-6 6.1c-.7.8 14.1.6 23.9.8-3.6 5-7.2 9.7-9.3 18.2 1 1 5.8.4 10.4 0-4.7 9.9-12.8 12.3-14.7 16.6 2.9 2.2 6.8 1.6 11.2.1-3.4 6.9-10.4 11.7-16 17.3 1.4 1 3.9 1.6 9.7.9-5.2 5.5-11.4 10.5-18.8 15 1.3 1.5 5.8 1.5 10 1.6-6.7 6.5-15.3 9.9-23.4 14.2 4 2.7 6.9 2.1 10 2.1-5.7 4.7-15.4 7.1-24.4 10 1.7 2.7 3.4 3.4 7.1 4.1-9.5 5.3-23.2 2.9-27 5.6.9 2.7 3.6 4.4 6.7 5.8-15.4.9-57.3-.6-65.4-32.3 15.7-17.3 44.4-37.5 93.7-62.6-38.4 12.8-73 30-102 53.5-34.3-15.9-10.8-55.9 5.8-71.8zm-34.4 114.6c24.2-.3 54.1 17.8 54 34.7-.1 15-21 27.1-53.8 26.9-32.1-.4-53.7-15.2-53.6-29.8 0-11.9 26.2-32.5 53.4-31.8zm-123-12.8c3.7-.7 5.4-1.5 7.1-4.1-9-2.8-18.7-5.3-24.4-10 3.1 0 6 .7 10-2.1-8.1-4.3-16.7-7.7-23.4-14.2 4.2-.1 8.7 0 10-1.6-7.4-4.5-13.6-9.5-18.8-15 5.8.7 8.3.1 9.7-.9-5.6-5.6-12.7-10.4-16-17.3 4.3 1.5 8.3 2 11.2-.1-1.9-4.2-10-6.7-14.7-16.6 4.6.4 9.4 1 10.4 0-2.1-8.5-5.8-13.3-9.3-18.2 9.8-.1 24.6 0 23.9-.8l-6-6.1c9.5-2.5 19.3.4 26.4 2.6 3.2-2.5-.1-5.6-3.9-8.8 8.1 1.1 15.4 2.9 22.1 5.4 3.5-3.1-2.3-6.3-5.1-9.4 12.5 2.3 17.8 5.6 23.1 8.9 3.8-3.6.2-6.7-2.4-9.8 9.4 3.4 14.3 7.9 19.4 12.3 1.7-2.3 4.4-4 1.2-9.6 6.7 3.8 11.8 8.3 15.5 13.3 4.1-2.6 2.5-6.2 2.5-9.4 7 5.6 11.4 11.5 16.8 17.3 1.1-.8 2-3.4 2.9-7.6 16.6 15.9 40.1 55.9 6 71.8-29-23.5-63.6-40.7-102-53.5 49.3 25 78 45.3 93.7 62.6-8 31.8-50 33.2-65.4 32.3 3.1-1.4 5.8-3.2 6.7-5.8-4-2.8-17.6-.4-27.2-5.6zm60.1 24.1c16.8 2.8-80.6 86.5-82.1 67.9-1.5-48.7 36.5-75.5 82.1-67.9zM38.2 342c-23.7-18.8-31.3-73.7 12.6-98.3 26.5-7 9 107.8-12.6 98.3zm91 98.2c-13.3 7.9-45.8 4.7-68.8-27.9-15.5-27.4-13.5-55.2-2.6-63.4 16.3-9.8 41.5 3.4 60.9 25.6 16.9 20 24.6 55.3 10.5 65.7zm-26.4-119.7c-24.5-15.8-28.9-51.6-9.9-80s54.3-38.6 78.8-22.8 28.9 51.6 9.9 80c-19.1 28.4-54.4 38.6-78.8 22.8zM205 496c-29.4 1.2-58.2-23.7-57.8-32.3-.4-12.7 35.8-22.6 59.3-22 23.7-1 55.6 7.5 55.7 18.9.5 11-28.8 35.9-57.2 35.4zm58.9-124.9c.2 29.7-26.2 53.8-58.8 54-32.6.2-59.2-23.8-59.4-53.4v-.6c-.2-29.7 26.2-53.8 58.8-54 32.6-.2 59.2 23.8 59.4 53.4v.6zm82.2 42.7c-25.3 34.6-59.6 35.9-72.3 26.3-13.3-12.4-3.2-50.9 15.1-72 20.9-23.3 43.3-38.5 58.9-26.6 10.5 10.3 16.7 49.1-1.7 72.3zm22.9-73.2c-21.5 9.4-39-105.3-12.6-98.3 43.9 24.7 36.3 79.6 12.6 98.3z\"]\n};\nvar faRavelry = {\n prefix: 'fab',\n iconName: 'ravelry',\n icon: [512, 512, [], \"f2d9\", \"M498.252,234.223c-1.208-10.34-1.7-20.826-3.746-31a310.306,310.306,0,0,0-9.622-36.6,184.068,184.068,0,0,0-30.874-57.5,251.154,251.154,0,0,0-18.818-21.689,237.362,237.362,0,0,0-47.113-36.116A240.8,240.8,0,0,0,331.356,26.65c-11.018-3.1-22.272-5.431-33.515-7.615-6.78-1.314-13.749-1.667-20.627-2.482-.316-.036-.6-.358-.9-.553q-16.143.009-32.288.006c-2.41.389-4.808.925-7.236,1.15a179.331,179.331,0,0,0-34.256,7.1,221.5,221.5,0,0,0-39.768,16.355,281.385,281.385,0,0,0-38.08,24.158c-6.167,4.61-12.268,9.36-17.974,14.518C96.539,88.494,86.34,97.72,76.785,107.555a243.878,243.878,0,0,0-33.648,43.95,206.488,206.488,0,0,0-20.494,44.6,198.2,198.2,0,0,0-7.691,34.759A201.13,201.13,0,0,0,13.4,266.385a299.716,299.716,0,0,0,4.425,40.24,226.865,226.865,0,0,0,16.73,53.3,210.543,210.543,0,0,0,24,39.528,213.589,213.589,0,0,0,26.358,28.416A251.313,251.313,0,0,0,126.7,458.455a287.831,287.831,0,0,0,55.9,25.277,269.5,269.5,0,0,0,40.641,9.835c6.071,1.01,12.275,1.253,18.412,1.873a4.149,4.149,0,0,1,1.19.56h32.289c2.507-.389,5-.937,7.527-1.143,16.336-1.332,32.107-5.335,47.489-10.717A219.992,219.992,0,0,0,379.1,460.322c9.749-6.447,19.395-13.077,28.737-20.1,5.785-4.348,10.988-9.5,16.3-14.457,3.964-3.7,7.764-7.578,11.51-11.5a232.162,232.162,0,0,0,31.427-41.639c9.542-16.045,17.355-32.905,22.3-50.926,2.859-10.413,4.947-21.045,7.017-31.652,1.032-5.279,1.251-10.723,1.87-16.087.036-.317.358-.6.552-.9V236.005A9.757,9.757,0,0,1,498.252,234.223Zm-161.117-1.15s-16.572-2.98-28.47-2.98c-27.2,0-33.57,14.9-33.57,37.04V360.8H201.582V170.062H275.1v31.931c8.924-26.822,26.771-36.189,62.04-36.189Z\"]\n};\nvar faReact = {\n prefix: 'fab',\n iconName: 'react',\n icon: [512, 512, [], \"f41b\", \"M418.2 177.2c-5.4-1.8-10.8-3.5-16.2-5.1.9-3.7 1.7-7.4 2.5-11.1 12.3-59.6 4.2-107.5-23.1-123.3-26.3-15.1-69.2.6-112.6 38.4-4.3 3.7-8.5 7.6-12.5 11.5-2.7-2.6-5.5-5.2-8.3-7.7-45.5-40.4-91.1-57.4-118.4-41.5-26.2 15.2-34 60.3-23 116.7 1.1 5.6 2.3 11.1 3.7 16.7-6.4 1.8-12.7 3.8-18.6 5.9C38.3 196.2 0 225.4 0 255.6c0 31.2 40.8 62.5 96.3 81.5 4.5 1.5 9 3 13.6 4.3-1.5 6-2.8 11.9-4 18-10.5 55.5-2.3 99.5 23.9 114.6 27 15.6 72.4-.4 116.6-39.1 3.5-3.1 7-6.3 10.5-9.7 4.4 4.3 9 8.4 13.6 12.4 42.8 36.8 85.1 51.7 111.2 36.6 27-15.6 35.8-62.9 24.4-120.5-.9-4.4-1.9-8.9-3-13.5 3.2-.9 6.3-1.9 9.4-2.9 57.7-19.1 99.5-50 99.5-81.7 0-30.3-39.4-59.7-93.8-78.4zM282.9 92.3c37.2-32.4 71.9-45.1 87.7-36 16.9 9.7 23.4 48.9 12.8 100.4-.7 3.4-1.4 6.7-2.3 10-22.2-5-44.7-8.6-67.3-10.6-13-18.6-27.2-36.4-42.6-53.1 3.9-3.7 7.7-7.2 11.7-10.7zM167.2 307.5c5.1 8.7 10.3 17.4 15.8 25.9-15.6-1.7-31.1-4.2-46.4-7.5 4.4-14.4 9.9-29.3 16.3-44.5 4.6 8.8 9.3 17.5 14.3 26.1zm-30.3-120.3c14.4-3.2 29.7-5.8 45.6-7.8-5.3 8.3-10.5 16.8-15.4 25.4-4.9 8.5-9.7 17.2-14.2 26-6.3-14.9-11.6-29.5-16-43.6zm27.4 68.9c6.6-13.8 13.8-27.3 21.4-40.6s15.8-26.2 24.4-38.9c15-1.1 30.3-1.7 45.9-1.7s31 .6 45.9 1.7c8.5 12.6 16.6 25.5 24.3 38.7s14.9 26.7 21.7 40.4c-6.7 13.8-13.9 27.4-21.6 40.8-7.6 13.3-15.7 26.2-24.2 39-14.9 1.1-30.4 1.6-46.1 1.6s-30.9-.5-45.6-1.4c-8.7-12.7-16.9-25.7-24.6-39s-14.8-26.8-21.5-40.6zm180.6 51.2c5.1-8.8 9.9-17.7 14.6-26.7 6.4 14.5 12 29.2 16.9 44.3-15.5 3.5-31.2 6.2-47 8 5.4-8.4 10.5-17 15.5-25.6zm14.4-76.5c-4.7-8.8-9.5-17.6-14.5-26.2-4.9-8.5-10-16.9-15.3-25.2 16.1 2 31.5 4.7 45.9 8-4.6 14.8-10 29.2-16.1 43.4zM256.2 118.3c10.5 11.4 20.4 23.4 29.6 35.8-19.8-.9-39.7-.9-59.5 0 9.8-12.9 19.9-24.9 29.9-35.8zM140.2 57c16.8-9.8 54.1 4.2 93.4 39 2.5 2.2 5 4.6 7.6 7-15.5 16.7-29.8 34.5-42.9 53.1-22.6 2-45 5.5-67.2 10.4-1.3-5.1-2.4-10.3-3.5-15.5-9.4-48.4-3.2-84.9 12.6-94zm-24.5 263.6c-4.2-1.2-8.3-2.5-12.4-3.9-21.3-6.7-45.5-17.3-63-31.2-10.1-7-16.9-17.8-18.8-29.9 0-18.3 31.6-41.7 77.2-57.6 5.7-2 11.5-3.8 17.3-5.5 6.8 21.7 15 43 24.5 63.6-9.6 20.9-17.9 42.5-24.8 64.5zm116.6 98c-16.5 15.1-35.6 27.1-56.4 35.3-11.1 5.3-23.9 5.8-35.3 1.3-15.9-9.2-22.5-44.5-13.5-92 1.1-5.6 2.3-11.2 3.7-16.7 22.4 4.8 45 8.1 67.9 9.8 13.2 18.7 27.7 36.6 43.2 53.4-3.2 3.1-6.4 6.1-9.6 8.9zm24.5-24.3c-10.2-11-20.4-23.2-30.3-36.3 9.6.4 19.5.6 29.5.6 10.3 0 20.4-.2 30.4-.7-9.2 12.7-19.1 24.8-29.6 36.4zm130.7 30c-.9 12.2-6.9 23.6-16.5 31.3-15.9 9.2-49.8-2.8-86.4-34.2-4.2-3.6-8.4-7.5-12.7-11.5 15.3-16.9 29.4-34.8 42.2-53.6 22.9-1.9 45.7-5.4 68.2-10.5 1 4.1 1.9 8.2 2.7 12.2 4.9 21.6 5.7 44.1 2.5 66.3zm18.2-107.5c-2.8.9-5.6 1.8-8.5 2.6-7-21.8-15.6-43.1-25.5-63.8 9.6-20.4 17.7-41.4 24.5-62.9 5.2 1.5 10.2 3.1 15 4.7 46.6 16 79.3 39.8 79.3 58 0 19.6-34.9 44.9-84.8 61.4zm-149.7-15c25.3 0 45.8-20.5 45.8-45.8s-20.5-45.8-45.8-45.8c-25.3 0-45.8 20.5-45.8 45.8s20.5 45.8 45.8 45.8z\"]\n};\nvar faReacteurope = {\n prefix: 'fab',\n iconName: 'reacteurope',\n icon: [576, 512, [], \"f75d\", \"M250.6 211.74l5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1-2.3-6.8-2.3 6.8-7.2.1 5.7 4.3zm63.7 0l5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.2-.1-2.3-6.8-2.3 6.8-7.2.1 5.7 4.3zm-91.3 50.5h-3.4c-4.8 0-3.8 4-3.8 12.1 0 4.7-2.3 6.1-5.8 6.1s-5.8-1.4-5.8-6.1v-36.6c0-4.7 2.3-6.1 5.8-6.1s5.8 1.4 5.8 6.1c0 7.2-.7 10.5 3.8 10.5h3.4c4.7-.1 3.8-3.9 3.8-12.3 0-9.9-6.7-14.1-16.8-14.1h-.2c-10.1 0-16.8 4.2-16.8 14.1V276c0 10.4 6.7 14.1 16.8 14.1h.2c10.1 0 16.8-3.8 16.8-14.1 0-9.86 1.1-13.76-3.8-13.76zm-80.7 17.4h-14.7v-19.3H139c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-11.4v-18.3H142c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-21.7c-2.4-.1-3.7 1.3-3.7 3.8v59.1c0 2.5 1.3 3.8 3.8 3.8h21.9c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8zm-42-18.5c4.6-2 7.3-6 7.3-12.4v-11.9c0-10.1-6.7-14.1-16.8-14.1H77.4c-2.5 0-3.8 1.3-3.8 3.8v59.1c0 2.5 1.3 3.8 3.8 3.8h3.4c2.5 0 3.8-1.3 3.8-3.8v-22.9h5.6l7.4 23.5a4.1 4.1 0 0 0 4.3 3.2h3.3c2.8 0 4-1.8 3.2-4.4zm-3.8-14c0 4.8-2.5 6.1-6.1 6.1h-5.8v-20.9h5.8c3.6 0 6.1 1.3 6.1 6.1zM176 226a3.82 3.82 0 0 0-4.2-3.4h-6.9a3.68 3.68 0 0 0-4 3.4l-11 59.2c-.5 2.7.9 4.1 3.4 4.1h3a3.74 3.74 0 0 0 4.1-3.5l1.8-11.3h12.2l1.8 11.3a3.74 3.74 0 0 0 4.1 3.5h3.5c2.6 0 3.9-1.4 3.4-4.1zm-12.3 39.3l4.7-29.7 4.7 29.7zm89.3 20.2v-53.2h7.5c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-25.8c-2.5 0-3.8 1.3-3.8 3.8v2.1c0 2.5 1.3 3.8 3.8 3.8h7.3v53.2c0 2.5 1.3 3.8 3.8 3.8h3.4c2.5.04 3.8-1.3 3.8-3.76zm248-.8h-19.4V258h16.1a1.89 1.89 0 0 0 2-2v-.8a1.89 1.89 0 0 0-2-2h-16.1v-25.8h19.1a1.89 1.89 0 0 0 2-2v-.8a1.77 1.77 0 0 0-2-1.9h-22.2a1.62 1.62 0 0 0-2 1.8v63a1.81 1.81 0 0 0 2 1.9H501a1.81 1.81 0 0 0 2-1.9v-.8a1.84 1.84 0 0 0-2-1.96zm-93.1-62.9h-.8c-10.1 0-15.3 4.7-15.3 14.1V276c0 9.3 5.2 14.1 15.3 14.1h.8c10.1 0 15.3-4.8 15.3-14.1v-40.1c0-9.36-5.2-14.06-15.3-14.06zm10.2 52.4c-.1 8-3 11.1-10.5 11.1s-10.5-3.1-10.5-11.1v-36.6c0-7.9 3-11.1 10.5-11.1s10.5 3.2 10.5 11.1zm-46.5-14.5c6.1-1.6 9.2-6.1 9.2-13.3v-9.7c0-9.4-5.2-14.1-15.3-14.1h-13.7a1.81 1.81 0 0 0-2 1.9v63a1.81 1.81 0 0 0 2 1.9h1.2a1.74 1.74 0 0 0 1.9-1.9v-26.9h11.6l10.4 27.2a2.32 2.32 0 0 0 2.3 1.5h1.5c1.4 0 2-1 1.5-2.3zm-6.4-3.9H355v-28.5h10.2c7.5 0 10.5 3.1 10.5 11.1v6.4c0 7.84-3 11.04-10.5 11.04zm85.9-33.1h-13.7a1.62 1.62 0 0 0-2 1.8v63a1.81 1.81 0 0 0 2 1.9h1.2a1.74 1.74 0 0 0 1.9-1.9v-26.1h10.6c10.1 0 15.3-4.8 15.3-14.1v-10.5c0-9.4-5.2-14.1-15.3-14.1zm10.2 22.8c0 7.9-3 11.1-10.5 11.1h-10.2v-29.2h10.2c7.5-.1 10.5 3.1 10.5 11zM259.5 308l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm227.6-136.1a364.42 364.42 0 0 0-35.6-11.3c19.6-78 11.6-134.7-22.3-153.9C394.7-12.66 343.3 11 291 61.94q5.1 4.95 10.2 10.2c82.5-80 119.6-53.5 120.9-52.8 22.4 12.7 36 55.8 15.5 137.8a587.83 587.83 0 0 0-84.6-13C281.1 43.64 212.4 2 170.8 2 140 2 127 23 123.2 29.74c-18.1 32-13.3 84.2.1 133.8-70.5 20.3-120.7 54.1-120.3 95 .5 59.6 103.2 87.8 122.1 92.8-20.5 81.9-10.1 135.6 22.3 153.9 28 15.8 75.1 6 138.2-55.2q-5.1-4.95-10.2-10.2c-82.5 80-119.7 53.5-120.9 52.8-22.3-12.6-36-55.6-15.5-137.9 12.4 2.9 41.8 9.5 84.6 13 71.9 100.4 140.6 142 182.1 142 30.8 0 43.8-21 47.6-27.7 18-31.9 13.3-84.1-.1-133.8 152.3-43.8 156.2-130.2 33.9-176.3zM135.9 36.84c2.9-5.1 11.9-20.3 34.9-20.3 36.8 0 98.8 39.6 163.3 126.2a714 714 0 0 0-93.9.9 547.76 547.76 0 0 1 42.2-52.4Q277.3 86 272.2 81a598.25 598.25 0 0 0-50.7 64.2 569.69 569.69 0 0 0-84.4 14.6c-.2-1.4-24.3-82.2-1.2-123zm304.8 438.3c-2.9 5.1-11.8 20.3-34.9 20.3-36.7 0-98.7-39.4-163.3-126.2a695.38 695.38 0 0 0 93.9-.9 547.76 547.76 0 0 1-42.2 52.4q5.1 5.25 10.2 10.2a588.47 588.47 0 0 0 50.7-64.2c47.3-4.7 80.3-13.5 84.4-14.6 22.7 84.4 4.5 117 1.2 123zm9.1-138.6c-3.6-11.9-7.7-24.1-12.4-36.4a12.67 12.67 0 0 1-10.7-5.7l-.1.1a19.61 19.61 0 0 1-5.4 3.6c5.7 14.3 10.6 28.4 14.7 42.2a535.3 535.3 0 0 1-72 13c3.5-5.3 17.2-26.2 32.2-54.2a24.6 24.6 0 0 1-6-3.2c-1.1 1.2-3.6 4.2-10.9 4.2-6.2 11.2-17.4 30.9-33.9 55.2a711.91 711.91 0 0 1-112.4 1c-7.9-11.2-21.5-31.1-36.8-57.8a21 21 0 0 1-3-1.5c-1.9 1.6-3.9 3.2-12.6 3.2 6.3 11.2 17.5 30.7 33.8 54.6a548.81 548.81 0 0 1-72.2-11.7q5.85-21 14.1-42.9c-3.2 0-5.4.2-8.4-1a17.58 17.58 0 0 1-6.9 1c-4.9 13.4-9.1 26.5-12.7 39.4C-31.7 297-12.1 216 126.7 175.64c3.6 11.9 7.7 24.1 12.4 36.4 10.4 0 12.9 3.4 14.4 5.3a12 12 0 0 1 2.3-2.2c-5.8-14.7-10.9-29.2-15.2-43.3 7-1.8 32.4-8.4 72-13-15.9 24.3-26.7 43.9-32.8 55.3a14.22 14.22 0 0 1 6.4 8 23.42 23.42 0 0 1 10.2-8.4c6.5-11.7 17.9-31.9 34.8-56.9a711.72 711.72 0 0 1 112.4-1c31.5 44.6 28.9 48.1 42.5 64.5a21.42 21.42 0 0 1 10.4-7.4c-6.4-11.4-17.6-31-34.3-55.5 40.4 4.1 65 10 72.2 11.7-4 14.4-8.9 29.2-14.6 44.2a20.74 20.74 0 0 1 6.8 4.3l.1.1a12.72 12.72 0 0 1 8.9-5.6c4.9-13.4 9.2-26.6 12.8-39.5a359.71 359.71 0 0 1 34.5 11c106.1 39.9 74 87.9 72.6 90.4-19.8 35.1-80.1 55.2-105.7 62.5zm-114.4-114h-1.2a1.74 1.74 0 0 0-1.9 1.9v49.8c0 7.9-2.6 11.1-10.1 11.1s-10.1-3.1-10.1-11.1v-49.8a1.69 1.69 0 0 0-1.9-1.9H309a1.81 1.81 0 0 0-2 1.9v51.5c0 9.6 5 14.1 15.1 14.1h.4c10.1 0 15.1-4.6 15.1-14.1v-51.5a2 2 0 0 0-2.2-1.9zM321.7 308l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm-31.1 7.4l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm5.1-30.8h-19.4v-26.7h16.1a1.89 1.89 0 0 0 2-2v-.8a1.89 1.89 0 0 0-2-2h-16.1v-25.8h19.1a1.89 1.89 0 0 0 2-2v-.8a1.77 1.77 0 0 0-2-1.9h-22.2a1.81 1.81 0 0 0-2 1.9v63a1.81 1.81 0 0 0 2 1.9h22.5a1.77 1.77 0 0 0 2-1.9v-.8a1.83 1.83 0 0 0-2-2.06zm-7.4-99.4L286 192l-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1z\"]\n};\nvar faReadme = {\n prefix: 'fab',\n iconName: 'readme',\n icon: [576, 512, [], \"f4d5\", \"M528.3 46.5H388.5c-48.1 0-89.9 33.3-100.4 80.3-10.6-47-52.3-80.3-100.4-80.3H48c-26.5 0-48 21.5-48 48v245.8c0 26.5 21.5 48 48 48h89.7c102.2 0 132.7 24.4 147.3 75 .7 2.8 5.2 2.8 6 0 14.7-50.6 45.2-75 147.3-75H528c26.5 0 48-21.5 48-48V94.6c0-26.4-21.3-47.9-47.7-48.1zM242 311.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5V289c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V251zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm259.3 121.7c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5V228c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.8c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V190z\"]\n};\nvar faRebel = {\n prefix: 'fab',\n iconName: 'rebel',\n icon: [512, 512, [], \"f1d0\", \"M256.5 504C117.2 504 9 387.8 13.2 249.9 16 170.7 56.4 97.7 129.7 49.5c.3 0 1.9-.6 1.1.8-5.8 5.5-111.3 129.8-14.1 226.4 49.8 49.5 90 2.5 90 2.5 38.5-50.1-.6-125.9-.6-125.9-10-24.9-45.7-40.1-45.7-40.1l28.8-31.8c24.4 10.5 43.2 38.7 43.2 38.7.8-29.6-21.9-61.4-21.9-61.4L255.1 8l44.3 50.1c-20.5 28.8-21.9 62.6-21.9 62.6 13.8-23 43.5-39.3 43.5-39.3l28.5 31.8c-27.4 8.9-45.4 39.9-45.4 39.9-15.8 28.5-27.1 89.4.6 127.3 32.4 44.6 87.7-2.8 87.7-2.8 102.7-91.9-10.5-225-10.5-225-6.1-5.5.8-2.8.8-2.8 50.1 36.5 114.6 84.4 116.2 204.8C500.9 400.2 399 504 256.5 504z\"]\n};\nvar faRedRiver = {\n prefix: 'fab',\n iconName: 'red-river',\n icon: [448, 512, [], \"f3e3\", \"M353.2 32H94.8C42.4 32 0 74.4 0 126.8v258.4C0 437.6 42.4 480 94.8 480h258.4c52.4 0 94.8-42.4 94.8-94.8V126.8c0-52.4-42.4-94.8-94.8-94.8zM144.9 200.9v56.3c0 27-21.9 48.9-48.9 48.9V151.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9h-56.3c-12.3-.6-24.6 11.6-24 24zm176.3 72h-56.3c-12.3-.6-24.6 11.6-24 24v56.3c0 27-21.9 48.9-48.9 48.9V247.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9z\"]\n};\nvar faReddit = {\n prefix: 'fab',\n iconName: 'reddit',\n icon: [512, 512, [], \"f1a1\", \"M201.5 305.5c-13.8 0-24.9-11.1-24.9-24.6 0-13.8 11.1-24.9 24.9-24.9 13.6 0 24.6 11.1 24.6 24.9 0 13.6-11.1 24.6-24.6 24.6zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-132.3-41.2c-9.4 0-17.7 3.9-23.8 10-22.4-15.5-52.6-25.5-86.1-26.6l17.4-78.3 55.4 12.5c0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.3 24.9-24.9s-11.1-24.9-24.9-24.9c-9.7 0-18 5.8-22.1 13.8l-61.2-13.6c-3-.8-6.1 1.4-6.9 4.4l-19.1 86.4c-33.2 1.4-63.1 11.3-85.5 26.8-6.1-6.4-14.7-10.2-24.1-10.2-34.9 0-46.3 46.9-14.4 62.8-1.1 5-1.7 10.2-1.7 15.5 0 52.6 59.2 95.2 132 95.2 73.1 0 132.3-42.6 132.3-95.2 0-5.3-.6-10.8-1.9-15.8 31.3-16 19.8-62.5-14.9-62.5zM302.8 331c-18.2 18.2-76.1 17.9-93.6 0-2.2-2.2-6.1-2.2-8.3 0-2.5 2.5-2.5 6.4 0 8.6 22.8 22.8 87.3 22.8 110.2 0 2.5-2.2 2.5-6.1 0-8.6-2.2-2.2-6.1-2.2-8.3 0zm7.7-75c-13.6 0-24.6 11.1-24.6 24.9 0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.1 24.9-24.6 0-13.8-11-24.9-24.9-24.9z\"]\n};\nvar faRedditAlien = {\n prefix: 'fab',\n iconName: 'reddit-alien',\n icon: [512, 512, [], \"f281\", \"M440.3 203.5c-15 0-28.2 6.2-37.9 15.9-35.7-24.7-83.8-40.6-137.1-42.3L293 52.3l88.2 19.8c0 21.6 17.6 39.2 39.2 39.2 22 0 39.7-18.1 39.7-39.7s-17.6-39.7-39.7-39.7c-15.4 0-28.7 9.3-35.3 22l-97.4-21.6c-4.9-1.3-9.7 2.2-11 7.1L246.3 177c-52.9 2.2-100.5 18.1-136.3 42.8-9.7-10.1-23.4-16.3-38.4-16.3-55.6 0-73.8 74.6-22.9 100.1-1.8 7.9-2.6 16.3-2.6 24.7 0 83.8 94.4 151.7 210.3 151.7 116.4 0 210.8-67.9 210.8-151.7 0-8.4-.9-17.2-3.1-25.1 49.9-25.6 31.5-99.7-23.8-99.7zM129.4 308.9c0-22 17.6-39.7 39.7-39.7 21.6 0 39.2 17.6 39.2 39.7 0 21.6-17.6 39.2-39.2 39.2-22 .1-39.7-17.6-39.7-39.2zm214.3 93.5c-36.4 36.4-139.1 36.4-175.5 0-4-3.5-4-9.7 0-13.7 3.5-3.5 9.7-3.5 13.2 0 27.8 28.5 120 29 149 0 3.5-3.5 9.7-3.5 13.2 0 4.1 4 4.1 10.2.1 13.7zm-.8-54.2c-21.6 0-39.2-17.6-39.2-39.2 0-22 17.6-39.7 39.2-39.7 22 0 39.7 17.6 39.7 39.7-.1 21.5-17.7 39.2-39.7 39.2z\"]\n};\nvar faRedditSquare = {\n prefix: 'fab',\n iconName: 'reddit-square',\n icon: [448, 512, [], \"f1a2\", \"M283.2 345.5c2.7 2.7 2.7 6.8 0 9.2-24.5 24.5-93.8 24.6-118.4 0-2.7-2.4-2.7-6.5 0-9.2 2.4-2.4 6.5-2.4 8.9 0 18.7 19.2 81 19.6 100.5 0 2.4-2.3 6.6-2.3 9 0zm-91.3-53.8c0-14.9-11.9-26.8-26.5-26.8-14.9 0-26.8 11.9-26.8 26.8 0 14.6 11.9 26.5 26.8 26.5 14.6 0 26.5-11.9 26.5-26.5zm90.7-26.8c-14.6 0-26.5 11.9-26.5 26.8 0 14.6 11.9 26.5 26.5 26.5 14.9 0 26.8-11.9 26.8-26.5 0-14.9-11.9-26.8-26.8-26.8zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-99.7 140.6c-10.1 0-19 4.2-25.6 10.7-24.1-16.7-56.5-27.4-92.5-28.6l18.7-84.2 59.5 13.4c0 14.6 11.9 26.5 26.5 26.5 14.9 0 26.8-12.2 26.8-26.8 0-14.6-11.9-26.8-26.8-26.8-10.4 0-19.3 6.2-23.8 14.9l-65.7-14.6c-3.3-.9-6.5 1.5-7.4 4.8l-20.5 92.8c-35.7 1.5-67.8 12.2-91.9 28.9-6.5-6.8-15.8-11-25.9-11-37.5 0-49.8 50.4-15.5 67.5-1.2 5.4-1.8 11-1.8 16.7 0 56.5 63.7 102.3 141.9 102.3 78.5 0 142.2-45.8 142.2-102.3 0-5.7-.6-11.6-2.1-17 33.6-17.2 21.2-67.2-16.1-67.2z\"]\n};\nvar faRedhat = {\n prefix: 'fab',\n iconName: 'redhat',\n icon: [512, 512, [], \"f7bc\", \"M341.52 285.56c33.65 0 82.34-6.94 82.34-47 .22-6.74.86-1.82-20.88-96.24-4.62-19.15-8.68-27.84-42.31-44.65-26.09-13.34-82.92-35.37-99.73-35.37-15.66 0-20.2 20.17-38.87 20.17-18 0-31.31-15.06-48.12-15.06-16.14 0-26.66 11-34.78 33.62-27.5 77.55-26.28 74.27-26.12 78.27 0 24.8 97.64 106.11 228.47 106.11M429 254.84c4.65 22 4.65 24.35 4.65 27.25 0 37.66-42.33 58.56-98 58.56-125.74.08-235.91-73.65-235.91-122.33a49.55 49.55 0 0 1 4.06-19.72C58.56 200.86 0 208.93 0 260.63c0 84.67 200.63 189 359.49 189 121.79 0 152.51-55.08 152.51-98.58 0-34.21-29.59-73.05-82.93-96.24\"]\n};\nvar faRenren = {\n prefix: 'fab',\n iconName: 'renren',\n icon: [512, 512, [], \"f18b\", \"M214 169.1c0 110.4-61 205.4-147.6 247.4C30 373.2 8 317.7 8 256.6 8 133.9 97.1 32.2 214 12.5v156.6zM255 504c-42.9 0-83.3-11-118.5-30.4C193.7 437.5 239.9 382.9 255 319c15.5 63.9 61.7 118.5 118.8 154.7C338.7 493 298.3 504 255 504zm190.6-87.5C359 374.5 298 279.6 298 169.1V12.5c116.9 19.7 206 121.4 206 244.1 0 61.1-22 116.6-58.4 159.9z\"]\n};\nvar faReplyd = {\n prefix: 'fab',\n iconName: 'replyd',\n icon: [448, 512, [], \"f3e6\", \"M320 480H128C57.6 480 0 422.4 0 352V160C0 89.6 57.6 32 128 32h192c70.4 0 128 57.6 128 128v192c0 70.4-57.6 128-128 128zM193.4 273.2c-6.1-2-11.6-3.1-16.4-3.1-7.2 0-13.5 1.9-18.9 5.6-5.4 3.7-9.6 9-12.8 15.8h-1.1l-4.2-18.3h-28v138.9h36.1v-89.7c1.5-5.4 4.4-9.8 8.7-13.2 4.3-3.4 9.8-5.1 16.2-5.1 4.6 0 9.8 1 15.6 3.1l4.8-34zm115.2 103.4c-3.2 2.4-7.7 4.8-13.7 7.1-6 2.3-12.8 3.5-20.4 3.5-12.2 0-21.1-3-26.5-8.9-5.5-5.9-8.5-14.7-9-26.4h83.3c.9-4.8 1.6-9.4 2.1-13.9.5-4.4.7-8.6.7-12.5 0-10.7-1.6-19.7-4.7-26.9-3.2-7.2-7.3-13-12.5-17.2-5.2-4.3-11.1-7.3-17.8-9.2-6.7-1.8-13.5-2.8-20.6-2.8-21.1 0-37.5 6.1-49.2 18.3s-17.5 30.5-17.5 55c0 22.8 5.2 40.7 15.6 53.7 10.4 13.1 26.8 19.6 49.2 19.6 10.7 0 20.9-1.5 30.4-4.6 9.5-3.1 17.1-6.8 22.6-11.2l-12-23.6zm-21.8-70.3c3.8 5.4 5.3 13.1 4.6 23.1h-51.7c.9-9.4 3.7-17 8.2-22.6 4.5-5.6 11.5-8.5 21-8.5 8.2-.1 14.1 2.6 17.9 8zm79.9 2.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4s2 11.7 6.1 15.6zm0 100.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4 0 6.6 2 11.7 6.1 15.6z\"]\n};\nvar faResearchgate = {\n prefix: 'fab',\n iconName: 'researchgate',\n icon: [448, 512, [], \"f4f8\", \"M0 32v448h448V32H0zm262.2 334.4c-6.6 3-33.2 6-50-14.2-9.2-10.6-25.3-33.3-42.2-63.6-8.9 0-14.7 0-21.4-.6v46.4c0 23.5 6 21.2 25.8 23.9v8.1c-6.9-.3-23.1-.8-35.6-.8-13.1 0-26.1.6-33.6.8v-8.1c15.5-2.9 22-1.3 22-23.9V225c0-22.6-6.4-21-22-23.9V193c25.8 1 53.1-.6 70.9-.6 31.7 0 55.9 14.4 55.9 45.6 0 21.1-16.7 42.2-39.2 47.5 13.6 24.2 30 45.6 42.2 58.9 7.2 7.8 17.2 14.7 27.2 14.7v7.3zm22.9-135c-23.3 0-32.2-15.7-32.2-32.2V167c0-12.2 8.8-30.4 34-30.4s30.4 17.9 30.4 17.9l-10.7 7.2s-5.5-12.5-19.7-12.5c-7.9 0-19.7 7.3-19.7 19.7v26.8c0 13.4 6.6 23.3 17.9 23.3 14.1 0 21.5-10.9 21.5-26.8h-17.9v-10.7h30.4c0 20.5 4.7 49.9-34 49.9zm-116.5 44.7c-9.4 0-13.6-.3-20-.8v-69.7c6.4-.6 15-.6 22.5-.6 23.3 0 37.2 12.2 37.2 34.5 0 21.9-15 36.6-39.7 36.6z\"]\n};\nvar faResolving = {\n prefix: 'fab',\n iconName: 'resolving',\n icon: [496, 512, [], \"f3e7\", \"M281.2 278.2c46-13.3 49.6-23.5 44-43.4L314 195.5c-6.1-20.9-18.4-28.1-71.1-12.8L54.7 236.8l28.6 98.6 197.9-57.2zM248.5 8C131.4 8 33.2 88.7 7.2 197.5l221.9-63.9c34.8-10.2 54.2-11.7 79.3-8.2 36.3 6.1 52.7 25 61.4 55.2l10.7 37.8c8.2 28.1 1 50.6-23.5 73.6-19.4 17.4-31.2 24.5-61.4 33.2L203 351.8l220.4 27.1 9.7 34.2-48.1 13.3-286.8-37.3 23 80.2c36.8 22 80.3 34.7 126.3 34.7 137 0 248.5-111.4 248.5-248.3C497 119.4 385.5 8 248.5 8zM38.3 388.6L0 256.8c0 48.5 14.3 93.4 38.3 131.8z\"]\n};\nvar faRev = {\n prefix: 'fab',\n iconName: 'rev',\n icon: [448, 512, [], \"f5b2\", \"M289.67 274.89a65.57 65.57 0 1 1-65.56-65.56 65.64 65.64 0 0 1 65.56 65.56zm139.55-5.05h-.13a204.69 204.69 0 0 0-74.32-153l-45.38 26.2a157.07 157.07 0 0 1 71.81 131.84C381.2 361.5 310.73 432 224.11 432S67 361.5 67 274.88c0-81.88 63-149.27 143-156.43v39.12l108.77-62.79L210 32v38.32c-106.7 7.25-191 96-191 204.57 0 111.59 89.12 202.29 200.06 205v.11h210.16V269.84z\"]\n};\nvar faRocketchat = {\n prefix: 'fab',\n iconName: 'rocketchat',\n icon: [576, 512, [], \"f3e8\", \"M284.046,224.8a34.114,34.114,0,1,0,34.317,34.113A34.217,34.217,0,0,0,284.046,224.8Zm-110.45,0a34.114,34.114,0,1,0,34.317,34.113A34.217,34.217,0,0,0,173.6,224.8Zm220.923,0a34.114,34.114,0,1,0,34.317,34.113A34.215,34.215,0,0,0,394.519,224.8Zm153.807-55.319c-15.535-24.172-37.31-45.57-64.681-63.618-52.886-34.817-122.374-54-195.666-54a405.975,405.975,0,0,0-72.032,6.357,238.524,238.524,0,0,0-49.51-36.588C99.684-11.7,40.859.711,11.135,11.421A14.291,14.291,0,0,0,5.58,34.782C26.542,56.458,61.222,99.3,52.7,138.252c-33.142,33.9-51.112,74.776-51.112,117.337,0,43.372,17.97,84.248,51.112,118.148,8.526,38.956-26.154,81.816-47.116,103.491a14.284,14.284,0,0,0,5.555,23.34c29.724,10.709,88.549,23.147,155.324-10.2a238.679,238.679,0,0,0,49.51-36.589A405.972,405.972,0,0,0,288,460.14c73.313,0,142.8-19.159,195.667-53.975,27.371-18.049,49.145-39.426,64.679-63.619,17.309-26.923,26.07-55.916,26.07-86.125C574.394,225.4,565.634,196.43,548.326,169.485ZM284.987,409.9a345.65,345.65,0,0,1-89.446-11.5l-20.129,19.393a184.366,184.366,0,0,1-37.138,27.585,145.767,145.767,0,0,1-52.522,14.87c.983-1.771,1.881-3.563,2.842-5.356q30.258-55.68,16.325-100.078c-32.992-25.962-52.778-59.2-52.778-95.4,0-83.1,104.254-150.469,232.846-150.469s232.867,67.373,232.867,150.469C517.854,342.525,413.6,409.9,284.987,409.9Z\"]\n};\nvar faRockrms = {\n prefix: 'fab',\n iconName: 'rockrms',\n icon: [496, 512, [], \"f3e9\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm157.4 419.5h-90l-112-131.3c-17.9-20.4-3.9-56.1 26.6-56.1h75.3l-84.6-99.3-84.3 98.9h-90L193.5 67.2c14.4-18.4 41.3-17.3 54.5 0l157.7 185.1c19 22.8 2 57.2-27.6 56.1-.6 0-74.2.2-74.2.2l101.5 118.9z\"]\n};\nvar faRust = {\n prefix: 'fab',\n iconName: 'rust',\n icon: [512, 512, [], \"e07a\", \"M508.52,249.75,486.7,236.24c-.17-2-.34-3.93-.55-5.88l18.72-17.5a7.35,7.35,0,0,0-2.44-12.25l-24-9c-.54-1.88-1.08-3.78-1.67-5.64l15-20.83a7.35,7.35,0,0,0-4.79-11.54l-25.42-4.15c-.9-1.73-1.79-3.45-2.73-5.15l10.68-23.42a7.35,7.35,0,0,0-6.95-10.39l-25.82.91q-1.79-2.22-3.61-4.4L439,81.84A7.36,7.36,0,0,0,430.16,73L405,78.93q-2.17-1.83-4.4-3.61l.91-25.82a7.35,7.35,0,0,0-10.39-7L367.7,53.23c-1.7-.94-3.43-1.84-5.15-2.73L358.4,25.08a7.35,7.35,0,0,0-11.54-4.79L326,35.26c-1.86-.59-3.75-1.13-5.64-1.67l-9-24a7.35,7.35,0,0,0-12.25-2.44l-17.5,18.72c-1.95-.21-3.91-.38-5.88-.55L262.25,3.48a7.35,7.35,0,0,0-12.5,0L236.24,25.3c-2,.17-3.93.34-5.88.55L212.86,7.13a7.35,7.35,0,0,0-12.25,2.44l-9,24c-1.89.55-3.79,1.08-5.66,1.68l-20.82-15a7.35,7.35,0,0,0-11.54,4.79l-4.15,25.41c-1.73.9-3.45,1.79-5.16,2.73L120.88,42.55a7.35,7.35,0,0,0-10.39,7l.92,25.81c-1.49,1.19-3,2.39-4.42,3.61L81.84,73A7.36,7.36,0,0,0,73,81.84L78.93,107c-1.23,1.45-2.43,2.93-3.62,4.41l-25.81-.91a7.42,7.42,0,0,0-6.37,3.26,7.35,7.35,0,0,0-.57,7.13l10.66,23.41c-.94,1.7-1.83,3.43-2.73,5.16L25.08,153.6a7.35,7.35,0,0,0-4.79,11.54l15,20.82c-.59,1.87-1.13,3.77-1.68,5.66l-24,9a7.35,7.35,0,0,0-2.44,12.25l18.72,17.5c-.21,1.95-.38,3.91-.55,5.88L3.48,249.75a7.35,7.35,0,0,0,0,12.5L25.3,275.76c.17,2,.34,3.92.55,5.87L7.13,299.13a7.35,7.35,0,0,0,2.44,12.25l24,9c.55,1.89,1.08,3.78,1.68,5.65l-15,20.83a7.35,7.35,0,0,0,4.79,11.54l25.42,4.15c.9,1.72,1.79,3.45,2.73,5.14L42.56,391.12a7.35,7.35,0,0,0,.57,7.13,7.13,7.13,0,0,0,6.37,3.26l25.83-.91q1.77,2.22,3.6,4.4L73,430.16A7.36,7.36,0,0,0,81.84,439L107,433.07q2.18,1.83,4.41,3.61l-.92,25.82a7.35,7.35,0,0,0,10.39,6.95l23.43-10.68c1.69.94,3.42,1.83,5.14,2.73l4.15,25.42a7.34,7.34,0,0,0,11.54,4.78l20.83-15c1.86.6,3.76,1.13,5.65,1.68l9,24a7.36,7.36,0,0,0,12.25,2.44l17.5-18.72c1.95.21,3.92.38,5.88.55l13.51,21.82a7.35,7.35,0,0,0,12.5,0l13.51-21.82c2-.17,3.93-.34,5.88-.56l17.5,18.73a7.36,7.36,0,0,0,12.25-2.44l9-24c1.89-.55,3.78-1.08,5.65-1.68l20.82,15a7.34,7.34,0,0,0,11.54-4.78l4.15-25.42c1.72-.9,3.45-1.79,5.15-2.73l23.42,10.68a7.35,7.35,0,0,0,10.39-6.95l-.91-25.82q2.22-1.79,4.4-3.61L430.16,439a7.36,7.36,0,0,0,8.84-8.84L433.07,405q1.83-2.17,3.61-4.4l25.82.91a7.23,7.23,0,0,0,6.37-3.26,7.35,7.35,0,0,0,.58-7.13L458.77,367.7c.94-1.7,1.83-3.43,2.73-5.15l25.42-4.15a7.35,7.35,0,0,0,4.79-11.54l-15-20.83c.59-1.87,1.13-3.76,1.67-5.65l24-9a7.35,7.35,0,0,0,2.44-12.25l-18.72-17.5c.21-1.95.38-3.91.55-5.87l21.82-13.51a7.35,7.35,0,0,0,0-12.5Zm-151,129.08A13.91,13.91,0,0,0,341,389.51l-7.64,35.67A187.51,187.51,0,0,1,177,424.44l-7.64-35.66a13.87,13.87,0,0,0-16.46-10.68l-31.51,6.76a187.38,187.38,0,0,1-16.26-19.21H258.3c1.72,0,2.89-.29,2.89-1.91V309.55c0-1.57-1.17-1.91-2.89-1.91H213.47l.05-34.35H262c4.41,0,23.66,1.28,29.79,25.87,1.91,7.55,6.17,32.14,9.06,40,2.89,8.82,14.6,26.46,27.1,26.46H407a187.3,187.3,0,0,1-17.34,20.09Zm25.77,34.49A15.24,15.24,0,1,1,368,398.08h.44A15.23,15.23,0,0,1,383.24,413.32Zm-225.62-.68a15.24,15.24,0,1,1-15.25-15.25h.45A15.25,15.25,0,0,1,157.62,412.64ZM69.57,234.15l32.83-14.6a13.88,13.88,0,0,0,7.06-18.33L102.69,186h26.56V305.73H75.65A187.65,187.65,0,0,1,69.57,234.15ZM58.31,198.09a15.24,15.24,0,0,1,15.23-15.25H74a15.24,15.24,0,1,1-15.67,15.24Zm155.16,24.49.05-35.32h63.26c3.28,0,23.07,3.77,23.07,18.62,0,12.29-15.19,16.7-27.68,16.7ZM399,306.71c-9.8,1.13-20.63-4.12-22-10.09-5.78-32.49-15.39-39.4-30.57-51.4,18.86-11.95,38.46-29.64,38.46-53.26,0-25.52-17.49-41.59-29.4-49.48-16.76-11-35.28-13.23-40.27-13.23H116.32A187.49,187.49,0,0,1,221.21,70.06l23.47,24.6a13.82,13.82,0,0,0,19.6.44l26.26-25a187.51,187.51,0,0,1,128.37,91.43l-18,40.57A14,14,0,0,0,408,220.43l34.59,15.33a187.12,187.12,0,0,1,.4,32.54H423.71c-1.91,0-2.69,1.27-2.69,3.13v8.82C421,301,409.31,305.58,399,306.71ZM240,60.21A15.24,15.24,0,0,1,255.21,45h.45A15.24,15.24,0,1,1,240,60.21ZM436.84,214a15.24,15.24,0,1,1,0-30.48h.44a15.24,15.24,0,0,1-.44,30.48Z\"]\n};\nvar faSafari = {\n prefix: 'fab',\n iconName: 'safari',\n icon: [512, 512, [], \"f267\", \"M274.69,274.69l-37.38-37.38L166,346ZM256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8ZM411.85,182.79l14.78-6.13A8,8,0,0,1,437.08,181h0a8,8,0,0,1-4.33,10.46L418,197.57a8,8,0,0,1-10.45-4.33h0A8,8,0,0,1,411.85,182.79ZM314.43,94l6.12-14.78A8,8,0,0,1,331,74.92h0a8,8,0,0,1,4.33,10.45l-6.13,14.78a8,8,0,0,1-10.45,4.33h0A8,8,0,0,1,314.43,94ZM256,60h0a8,8,0,0,1,8,8V84a8,8,0,0,1-8,8h0a8,8,0,0,1-8-8V68A8,8,0,0,1,256,60ZM181,74.92a8,8,0,0,1,10.46,4.33L197.57,94a8,8,0,1,1-14.78,6.12l-6.13-14.78A8,8,0,0,1,181,74.92Zm-63.58,42.49h0a8,8,0,0,1,11.31,0L140,128.72A8,8,0,0,1,140,140h0a8,8,0,0,1-11.31,0l-11.31-11.31A8,8,0,0,1,117.41,117.41ZM60,256h0a8,8,0,0,1,8-8H84a8,8,0,0,1,8,8h0a8,8,0,0,1-8,8H68A8,8,0,0,1,60,256Zm40.15,73.21-14.78,6.13A8,8,0,0,1,74.92,331h0a8,8,0,0,1,4.33-10.46L94,314.43a8,8,0,0,1,10.45,4.33h0A8,8,0,0,1,100.15,329.21Zm4.33-136h0A8,8,0,0,1,94,197.57l-14.78-6.12A8,8,0,0,1,74.92,181h0a8,8,0,0,1,10.45-4.33l14.78,6.13A8,8,0,0,1,104.48,193.24ZM197.57,418l-6.12,14.78a8,8,0,0,1-14.79-6.12l6.13-14.78A8,8,0,1,1,197.57,418ZM264,444a8,8,0,0,1-8,8h0a8,8,0,0,1-8-8V428a8,8,0,0,1,8-8h0a8,8,0,0,1,8,8Zm67-6.92h0a8,8,0,0,1-10.46-4.33L314.43,418a8,8,0,0,1,4.33-10.45h0a8,8,0,0,1,10.45,4.33l6.13,14.78A8,8,0,0,1,331,437.08Zm63.58-42.49h0a8,8,0,0,1-11.31,0L372,383.28A8,8,0,0,1,372,372h0a8,8,0,0,1,11.31,0l11.31,11.31A8,8,0,0,1,394.59,394.59ZM286.25,286.25,110.34,401.66,225.75,225.75,401.66,110.34ZM437.08,331h0a8,8,0,0,1-10.45,4.33l-14.78-6.13a8,8,0,0,1-4.33-10.45h0A8,8,0,0,1,418,314.43l14.78,6.12A8,8,0,0,1,437.08,331ZM444,264H428a8,8,0,0,1-8-8h0a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8h0A8,8,0,0,1,444,264Z\"]\n};\nvar faSalesforce = {\n prefix: 'fab',\n iconName: 'salesforce',\n icon: [640, 512, [], \"f83b\", \"M248.89 245.64h-26.35c.69-5.16 3.32-14.12 13.64-14.12 6.75 0 11.97 3.82 12.71 14.12zm136.66-13.88c-.47 0-14.11-1.77-14.11 20s13.63 20 14.11 20c13 0 14.11-13.54 14.11-20 0-21.76-13.66-20-14.11-20zm-243.22 23.76a8.63 8.63 0 0 0-3.29 7.29c0 4.78 2.08 6.05 3.29 7.05 4.7 3.7 15.07 2.12 20.93.95v-16.94c-5.32-1.07-16.73-1.96-20.93 1.65zM640 232c0 87.58-80 154.39-165.36 136.43-18.37 33-70.73 70.75-132.2 41.63-41.16 96.05-177.89 92.18-213.81-5.17C8.91 428.78-50.19 266.52 53.36 205.61 18.61 126.18 76 32 167.67 32a124.24 124.24 0 0 1 98.56 48.7c20.7-21.4 49.4-34.81 81.15-34.81 42.34 0 79 23.52 98.8 58.57C539 63.78 640 132.69 640 232zm-519.55 31.8c0-11.76-11.69-15.17-17.87-17.17-5.27-2.11-13.41-3.51-13.41-8.94 0-9.46 17-6.66 25.17-2.12 0 0 1.17.71 1.64-.47.24-.7 2.36-6.58 2.59-7.29a1.13 1.13 0 0 0-.7-1.41c-12.33-7.63-40.7-8.51-40.7 12.7 0 12.46 11.49 15.44 17.88 17.17 4.72 1.58 13.17 3 13.17 8.7 0 4-3.53 7.06-9.17 7.06a31.76 31.76 0 0 1-19-6.35c-.47-.23-1.42-.71-1.65.71l-2.4 7.47c-.47.94.23 1.18.23 1.41 1.75 1.4 10.3 6.59 22.82 6.59 13.17 0 21.4-7.06 21.4-18.11zm32-42.58c-10.13 0-18.66 3.17-21.4 5.18a1 1 0 0 0-.24 1.41l2.59 7.06a1 1 0 0 0 1.18.7c.65 0 6.8-4 16.93-4 4 0 7.06.71 9.18 2.36 3.6 2.8 3.06 8.29 3.06 10.58-4.79-.3-19.11-3.44-29.41 3.76a16.92 16.92 0 0 0-7.34 14.54c0 5.9 1.51 10.4 6.59 14.35 12.24 8.16 36.28 2 38.1 1.41 1.58-.32 3.53-.66 3.53-1.88v-33.88c.04-4.61.32-21.64-22.78-21.64zM199 200.24a1.11 1.11 0 0 0-1.18-1.18H188a1.11 1.11 0 0 0-1.17 1.18v79a1.11 1.11 0 0 0 1.17 1.18h9.88a1.11 1.11 0 0 0 1.18-1.18zm55.75 28.93c-2.1-2.31-6.79-7.53-17.65-7.53-3.51 0-14.16.23-20.7 8.94-6.35 7.63-6.58 18.11-6.58 21.41 0 3.12.15 14.26 7.06 21.17 2.64 2.91 9.06 8.23 22.81 8.23 10.82 0 16.47-2.35 18.58-3.76.47-.24.71-.71.24-1.88l-2.35-6.83a1.26 1.26 0 0 0-1.41-.7c-2.59.94-6.35 2.82-15.29 2.82-17.42 0-16.85-14.74-16.94-16.7h37.17a1.23 1.23 0 0 0 1.17-.94c-.29 0 2.07-14.7-6.09-24.23zm36.69 52.69c13.17 0 21.41-7.06 21.41-18.11 0-11.76-11.7-15.17-17.88-17.17-4.14-1.66-13.41-3.38-13.41-8.94 0-3.76 3.29-6.35 8.47-6.35a38.11 38.11 0 0 1 16.7 4.23s1.18.71 1.65-.47c.23-.7 2.35-6.58 2.58-7.29a1.13 1.13 0 0 0-.7-1.41c-7.91-4.9-16.74-4.94-20.23-4.94-12 0-20.46 7.29-20.46 17.64 0 12.46 11.48 15.44 17.87 17.17 6.11 2 13.17 3.26 13.17 8.7 0 4-3.52 7.06-9.17 7.06a31.8 31.8 0 0 1-19-6.35 1 1 0 0 0-1.65.71l-2.35 7.52c-.47.94.23 1.18.23 1.41 1.72 1.4 10.33 6.59 22.79 6.59zM357.09 224c0-.71-.24-1.18-1.18-1.18h-11.76c0-.14.94-8.94 4.47-12.47 4.16-4.15 11.76-1.64 12-1.64 1.17.47 1.41 0 1.64-.47l2.83-7.77c.7-.94 0-1.17-.24-1.41-5.09-2-17.35-2.87-24.46 4.24-5.48 5.48-7 13.92-8 19.52h-8.47a1.28 1.28 0 0 0-1.17 1.18l-1.42 7.76c0 .7.24 1.17 1.18 1.17h8.23c-8.51 47.9-8.75 50.21-10.35 55.52-1.08 3.62-3.29 6.9-5.88 7.76-.09 0-3.88 1.68-9.64-.24 0 0-.94-.47-1.41.71-.24.71-2.59 6.82-2.83 7.53s0 1.41.47 1.41c5.11 2 13 1.77 17.88 0 6.28-2.28 9.72-7.89 11.53-12.94 2.75-7.71 2.81-9.79 11.76-59.74h12.23a1.29 1.29 0 0 0 1.18-1.18zm53.39 16c-.56-1.68-5.1-18.11-25.17-18.11-15.25 0-23 10-25.16 18.11-1 3-3.18 14 0 23.52.09.3 4.41 18.12 25.16 18.12 14.95 0 22.9-9.61 25.17-18.12 3.21-9.61 1.01-20.52 0-23.52zm45.4-16.7c-5-1.65-16.62-1.9-22.11 5.41v-4.47a1.11 1.11 0 0 0-1.18-1.17h-9.4a1.11 1.11 0 0 0-1.18 1.17v55.28a1.12 1.12 0 0 0 1.18 1.18h9.64a1.12 1.12 0 0 0 1.18-1.18v-27.77c0-2.91.05-11.37 4.46-15.05 4.9-4.9 12-3.36 13.41-3.06a1.57 1.57 0 0 0 1.41-.94 74 74 0 0 0 3.06-8 1.16 1.16 0 0 0-.47-1.41zm46.81 54.1l-2.12-7.29c-.47-1.18-1.41-.71-1.41-.71-4.23 1.82-10.15 1.89-11.29 1.89-4.64 0-17.17-1.13-17.17-19.76 0-6.23 1.85-19.76 16.47-19.76a34.85 34.85 0 0 1 11.52 1.65s.94.47 1.18-.71c.94-2.59 1.64-4.47 2.59-7.53.23-.94-.47-1.17-.71-1.17-11.59-3.87-22.34-2.53-27.76 0-1.59.74-16.23 6.49-16.23 27.52 0 2.9-.58 30.11 28.94 30.11a44.45 44.45 0 0 0 15.52-2.83 1.3 1.3 0 0 0 .47-1.42zm53.87-39.52c-.8-3-5.37-16.23-22.35-16.23-16 0-23.52 10.11-25.64 18.59a38.58 38.58 0 0 0-1.65 11.76c0 25.87 18.84 29.4 29.88 29.4 10.82 0 16.46-2.35 18.58-3.76.47-.24.71-.71.24-1.88l-2.36-6.83a1.26 1.26 0 0 0-1.41-.7c-2.59.94-6.35 2.82-15.29 2.82-17.42 0-16.85-14.74-16.93-16.7h37.16a1.25 1.25 0 0 0 1.18-.94c-.24-.01.94-7.07-1.41-15.54zm-23.29-6.35c-10.33 0-13 9-13.64 14.12H546c-.88-11.92-7.62-14.13-12.73-14.13z\"]\n};\nvar faSass = {\n prefix: 'fab',\n iconName: 'sass',\n icon: [640, 512, [], \"f41e\", \"M301.84 378.92c-.3.6-.6 1.08 0 0zm249.13-87a131.16 131.16 0 0 0-58 13.5c-5.9-11.9-12-22.3-13-30.1-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2-1.4-6.6-14.3-6.7-24 2.5-25.29 5.9a122.83 122.83 0 0 0-5.3 19.1c-2.3 11.7-25.79 53.5-39.09 75.3-4.4-8.5-8.1-16-8.9-22-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2-1.4-6.6-14.29-6.7-24 2.5-25.3 5.9-2.7 11.4-5.3 19.1-33.89 77.3-42.08 95.4c-4.2 9.2-7.8 16.6-10.4 21.6-.4.8-.7 1.3-.9 1.7.3-.5.5-1 .5-.8-2.2 4.3-3.5 6.7-3.5 6.7v.1c-1.7 3.2-3.6 6.1-4.5 6.1-.6 0-1.9-8.4.3-19.9 4.7-24.2 15.8-61.8 15.7-63.1-.1-.7 2.1-7.2-7.3-10.7-9.1-3.3-12.4 2.2-13.2 2.2s-1.4 2-1.4 2 10.1-42.4-19.39-42.4c-18.4 0-44 20.2-56.58 38.5-7.9 4.3-25 13.6-43 23.5-6.9 3.8-14 7.7-20.7 11.4-.5-.5-.9-1-1.4-1.5-35.79-38.2-101.87-65.2-99.07-116.5 1-18.7 7.5-67.8 127.07-127.4 98-48.8 176.35-35.4 189.84-5.6 19.4 42.5-41.89 121.6-143.66 133-38.79 4.3-59.18-10.7-64.28-16.3-5.3-5.9-6.1-6.2-8.1-5.1-3.3 1.8-1.2 7 0 10.1 3 7.9 15.5 21.9 36.79 28.9 18.7 6.1 64.18 9.5 119.17-11.8 61.78-23.8 109.87-90.1 95.77-145.6C386.52 18.32 293-.18 204.57 31.22c-52.69 18.7-109.67 48.1-150.66 86.4-48.69 45.6-56.48 85.3-53.28 101.9 11.39 58.9 92.57 97.3 125.06 125.7-1.6.9-3.1 1.7-4.5 2.5-16.29 8.1-78.18 40.5-93.67 74.7-17.5 38.8 2.9 66.6 16.29 70.4 41.79 11.6 84.58-9.3 107.57-43.6s20.2-79.1 9.6-99.5c-.1-.3-.3-.5-.4-.8 4.2-2.5 8.5-5 12.8-7.5 8.29-4.9 16.39-9.4 23.49-13.3-4 10.8-6.9 23.8-8.4 42.6-1.8 22 7.3 50.5 19.1 61.7 5.2 4.9 11.49 5 15.39 5 13.8 0 20-11.4 26.89-25 8.5-16.6 16-35.9 16-35.9s-9.4 52.2 16.3 52.2c9.39 0 18.79-12.1 23-18.3v.1s.2-.4.7-1.2c1-1.5 1.5-2.4 1.5-2.4v-.3c3.8-6.5 12.1-21.4 24.59-46 16.2-31.8 31.69-71.5 31.69-71.5a201.24 201.24 0 0 0 6.2 25.8c2.8 9.5 8.7 19.9 13.4 30-3.8 5.2-6.1 8.2-6.1 8.2a.31.31 0 0 0 .1.2c-3 4-6.4 8.3-9.9 12.5-12.79 15.2-28 32.6-30 37.6-2.4 5.9-1.8 10.3 2.8 13.7 3.4 2.6 9.4 3 15.69 2.5 11.5-.8 19.6-3.6 23.5-5.4a82.2 82.2 0 0 0 20.19-10.6c12.5-9.2 20.1-22.4 19.4-39.8-.4-9.6-3.5-19.2-7.3-28.2 1.1-1.6 2.3-3.3 3.4-5C434.8 301.72 450.1 270 450.1 270a201.24 201.24 0 0 0 6.2 25.8c2.4 8.1 7.09 17 11.39 25.7-18.59 15.1-30.09 32.6-34.09 44.1-7.4 21.3-1.6 30.9 9.3 33.1 4.9 1 11.9-1.3 17.1-3.5a79.46 79.46 0 0 0 21.59-11.1c12.5-9.2 24.59-22.1 23.79-39.6-.3-7.9-2.5-15.8-5.4-23.4 15.7-6.6 36.09-10.2 62.09-7.2 55.68 6.5 66.58 41.3 64.48 55.8s-13.8 22.6-17.7 25-5.1 3.3-4.8 5.1c.5 2.6 2.3 2.5 5.6 1.9 4.6-.8 29.19-11.8 30.29-38.7 1.6-34-31.09-71.4-89-71.1zm-429.18 144.7c-18.39 20.1-44.19 27.7-55.28 21.3C54.61 451 59.31 421.42 82 400c13.8-13 31.59-25 43.39-32.4 2.7-1.6 6.6-4 11.4-6.9.8-.5 1.2-.7 1.2-.7.9-.6 1.9-1.1 2.9-1.7 8.29 30.4.3 57.2-19.1 78.3zm134.36-91.4c-6.4 15.7-19.89 55.7-28.09 53.6-7-1.8-11.3-32.3-1.4-62.3 5-15.1 15.6-33.1 21.9-40.1 10.09-11.3 21.19-14.9 23.79-10.4 3.5 5.9-12.2 49.4-16.2 59.2zm111 53c-2.7 1.4-5.2 2.3-6.4 1.6-.9-.5 1.1-2.4 1.1-2.4s13.9-14.9 19.4-21.7c3.2-4 6.9-8.7 10.89-13.9 0 .5.1 1 .1 1.6-.13 17.9-17.32 30-25.12 34.8zm85.58-19.5c-2-1.4-1.7-6.1 5-20.7 2.6-5.7 8.59-15.3 19-24.5a36.18 36.18 0 0 1 1.9 10.8c-.1 22.5-16.2 30.9-25.89 34.4z\"]\n};\nvar faSchlix = {\n prefix: 'fab',\n iconName: 'schlix',\n icon: [448, 512, [], \"f3ea\", \"M350.5 157.7l-54.2-46.1 73.4-39 78.3 44.2-97.5 40.9zM192 122.1l45.7-28.2 34.7 34.6-55.4 29-25-35.4zm-65.1 6.6l31.9-22.1L176 135l-36.7 22.5-12.4-28.8zm-23.3 88.2l-8.8-34.8 29.6-18.3 13.1 35.3-33.9 17.8zm-21.2-83.7l23.9-18.1 8.9 24-26.7 18.3-6.1-24.2zM59 206.5l-3.6-28.4 22.3-15.5 6.1 28.7L59 206.5zm-30.6 16.6l20.8-12.8 3.3 33.4-22.9 12-1.2-32.6zM1.4 268l19.2-10.2.4 38.2-21 8.8L1.4 268zm59.1 59.3l-28.3 8.3-1.6-46.8 25.1-10.7 4.8 49.2zM99 263.2l-31.1 13-5.2-40.8L90.1 221l8.9 42.2zM123.2 377l-41.6 5.9-8.1-63.5 35.2-10.8 14.5 68.4zm28.5-139.9l21.2 57.1-46.2 13.6-13.7-54.1 38.7-16.6zm85.7 230.5l-70.9-3.3-24.3-95.8 55.2-8.6 40 107.7zm-84.9-279.7l42.2-22.4 28 45.9-50.8 21.3-19.4-44.8zm41 94.9l61.3-18.7 52.8 86.6-79.8 11.3-34.3-79.2zm51.4-85.6l67.3-28.8 65.5 65.4-88.6 26.2-44.2-62.8z\"]\n};\nvar faScribd = {\n prefix: 'fab',\n iconName: 'scribd',\n icon: [384, 512, [], \"f28a\", \"M42.3 252.7c-16.1-19-24.7-45.9-24.8-79.9 0-100.4 75.2-153.1 167.2-153.1 98.6-1.6 156.8 49 184.3 70.6l-50.5 72.1-37.3-24.6 26.9-38.6c-36.5-24-79.4-36.5-123-35.8-50.7-.8-111.7 27.2-111.7 76.2 0 18.7 11.2 20.7 28.6 15.6 23.3-5.3 41.9.6 55.8 14 26.4 24.3 23.2 67.6-.7 91.9-29.2 29.5-85.2 27.3-114.8-8.4zm317.7 5.9c-15.5-18.8-38.9-29.4-63.2-28.6-38.1-2-71.1 28-70.5 67.2-.7 16.8 6 33 18.4 44.3 14.1 13.9 33 19.7 56.3 14.4 17.4-5.1 28.6-3.1 28.6 15.6 0 4.3-.5 8.5-1.4 12.7-16.7 40.9-59.5 64.4-121.4 64.4-51.9.2-102.4-16.4-144.1-47.3l33.7-39.4-35.6-27.4L0 406.3l15.4 13.8c52.5 46.8 120.4 72.5 190.7 72.2 51.4 0 94.4-10.5 133.6-44.1 57.1-51.4 54.2-149.2 20.3-189.6z\"]\n};\nvar faSearchengin = {\n prefix: 'fab',\n iconName: 'searchengin',\n icon: [460, 512, [], \"f3eb\", \"M220.6 130.3l-67.2 28.2V43.2L98.7 233.5l54.7-24.2v130.3l67.2-209.3zm-83.2-96.7l-1.3 4.7-15.2 52.9C80.6 106.7 52 145.8 52 191.5c0 52.3 34.3 95.9 83.4 105.5v53.6C57.5 340.1 0 272.4 0 191.6c0-80.5 59.8-147.2 137.4-158zm311.4 447.2c-11.2 11.2-23.1 12.3-28.6 10.5-5.4-1.8-27.1-19.9-60.4-44.4-33.3-24.6-33.6-35.7-43-56.7-9.4-20.9-30.4-42.6-57.5-52.4l-9.7-14.7c-24.7 16.9-53 26.9-81.3 28.7l2.1-6.6 15.9-49.5c46.5-11.9 80.9-54 80.9-104.2 0-54.5-38.4-102.1-96-107.1V32.3C254.4 37.4 320 106.8 320 191.6c0 33.6-11.2 64.7-29 90.4l14.6 9.6c9.8 27.1 31.5 48 52.4 57.4s32.2 9.7 56.8 43c24.6 33.2 42.7 54.9 44.5 60.3s.7 17.3-10.5 28.5zm-9.9-17.9c0-4.4-3.6-8-8-8s-8 3.6-8 8 3.6 8 8 8 8-3.6 8-8z\"]\n};\nvar faSellcast = {\n prefix: 'fab',\n iconName: 'sellcast',\n icon: [448, 512, [], \"f2da\", \"M353.4 32H94.7C42.6 32 0 74.6 0 126.6v258.7C0 437.4 42.6 480 94.7 480h258.7c52.1 0 94.7-42.6 94.7-94.6V126.6c0-52-42.6-94.6-94.7-94.6zm-50 316.4c-27.9 48.2-89.9 64.9-138.2 37.2-22.9 39.8-54.9 8.6-42.3-13.2l15.7-27.2c5.9-10.3 19.2-13.9 29.5-7.9 18.6 10.8-.1-.1 18.5 10.7 27.6 15.9 63.4 6.3 79.4-21.3 15.9-27.6 6.3-63.4-21.3-79.4-17.8-10.2-.6-.4-18.6-10.6-24.6-14.2-3.4-51.9 21.6-37.5 18.6 10.8-.1-.1 18.5 10.7 48.4 28 65.1 90.3 37.2 138.5zm21.8-208.8c-17 29.5-16.3 28.8-19 31.5-6.5 6.5-16.3 8.7-26.5 3.6-18.6-10.8.1.1-18.5-10.7-27.6-15.9-63.4-6.3-79.4 21.3s-6.3 63.4 21.3 79.4c0 0 18.5 10.6 18.6 10.6 24.6 14.2 3.4 51.9-21.6 37.5-18.6-10.8.1.1-18.5-10.7-48.2-27.8-64.9-90.1-37.1-138.4 27.9-48.2 89.9-64.9 138.2-37.2l4.8-8.4c14.3-24.9 52-3.3 37.7 21.5z\"]\n};\nvar faSellsy = {\n prefix: 'fab',\n iconName: 'sellsy',\n icon: [640, 512, [], \"f213\", \"M539.71 237.308c3.064-12.257 4.29-24.821 4.29-37.384C544 107.382 468.618 32 376.076 32c-77.22 0-144.634 53.012-163.02 127.781-15.322-13.176-34.934-20.53-55.157-20.53-46.271 0-83.962 37.69-83.962 83.961 0 7.354.92 15.015 3.065 22.369-42.9 20.225-70.785 63.738-70.785 111.234C6.216 424.843 61.68 480 129.401 480h381.198c67.72 0 123.184-55.157 123.184-123.184.001-56.384-38.916-106.025-94.073-119.508zM199.88 401.554c0 8.274-7.048 15.321-15.321 15.321H153.61c-8.274 0-15.321-7.048-15.321-15.321V290.626c0-8.273 7.048-15.321 15.321-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v110.928zm89.477 0c0 8.274-7.048 15.321-15.322 15.321h-30.949c-8.274 0-15.321-7.048-15.321-15.321V270.096c0-8.274 7.048-15.321 15.321-15.321h30.949c8.274 0 15.322 7.048 15.322 15.321v131.458zm89.477 0c0 8.274-7.047 15.321-15.321 15.321h-30.949c-8.274 0-15.322-7.048-15.322-15.321V238.84c0-8.274 7.048-15.321 15.322-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v162.714zm87.027 0c0 8.274-7.048 15.321-15.322 15.321h-28.497c-8.274 0-15.321-7.048-15.321-15.321V176.941c0-8.579 7.047-15.628 15.321-15.628h28.497c8.274 0 15.322 7.048 15.322 15.628v224.613z\"]\n};\nvar faServicestack = {\n prefix: 'fab',\n iconName: 'servicestack',\n icon: [496, 512, [], \"f3ec\", \"M88 216c81.7 10.2 273.7 102.3 304 232H0c99.5-8.1 184.5-137 88-232zm32-152c32.3 35.6 47.7 83.9 46.4 133.6C249.3 231.3 373.7 321.3 400 448h96C455.3 231.9 222.8 79.5 120 64z\"]\n};\nvar faShirtsinbulk = {\n prefix: 'fab',\n iconName: 'shirtsinbulk',\n icon: [448, 512, [], \"f214\", \"M100 410.3l30.6 13.4 4.4-9.9-30.6-13.4zm39.4 17.5l30.6 13.4 4.4-9.9-30.6-13.4zm172.1-14l4.4 9.9 30.6-13.4-4.4-9.9zM179.1 445l30.3 13.7 4.4-9.9-30.3-13.4zM60.4 392.8L91 406.2l4.4-9.6-30.6-13.7zm211.4 38.5l4.4 9.9 30.6-13.4-4.4-9.9zm-39.3 17.5l4.4 9.9 30.6-13.7-4.4-9.6zm118.4-52.2l4.4 9.6 30.6-13.4-4.4-9.9zM170 46.6h-33.5v10.5H170zm-47.2 0H89.2v10.5h33.5zm-47.3 0H42.3v10.5h33.3zm141.5 0h-33.2v10.5H217zm94.5 0H278v10.5h33.5zm47.3 0h-33.5v10.5h33.5zm-94.6 0H231v10.5h33.2zm141.5 0h-33.3v10.5h33.3zM52.8 351.1H42v33.5h10.8zm70-215.9H89.2v10.5h33.5zm-70 10.6h22.8v-10.5H42v33.5h10.8zm168.9 228.6c50.5 0 91.3-40.8 91.3-91.3 0-50.2-40.8-91.3-91.3-91.3-50.2 0-91.3 41.1-91.3 91.3 0 50.5 41.1 91.3 91.3 91.3zm-48.2-111.1c0-25.4 29.5-31.8 49.6-31.8 16.9 0 29.2 5.8 44.3 12l-8.8 16.9h-.9c-6.4-9.9-24.8-13.1-35.6-13.1-9 0-29.8 1.8-29.8 14.9 0 21.6 78.5-10.2 78.5 37.9 0 25.4-31.5 31.2-51 31.2-18.1 0-32.4-2.9-47.2-12.2l9-18.4h.9c6.1 12.2 23.6 14.9 35.9 14.9 8.7 0 32.7-1.2 32.7-14.3 0-26.1-77.6 6.3-77.6-38zM52.8 178.4H42V212h10.8zm342.4 206.2H406v-33.5h-10.8zM52.8 307.9H42v33.5h10.8zM0 3.7v406l221.7 98.6L448 409.7V3.7zm418.8 387.1L222 476.5 29.2 390.8V120.7h389.7v270.1zm0-299.3H29.2V32.9h389.7v58.6zm-366 130.1H42v33.5h10.8zm0 43.2H42v33.5h10.8zM170 135.2h-33.5v10.5H170zm225.2 163.1H406v-33.5h-10.8zm0-43.2H406v-33.5h-10.8zM217 135.2h-33.2v10.5H217zM395.2 212H406v-33.5h-10.8zm0 129.5H406V308h-10.8zm-131-206.3H231v10.5h33.2zm47.3 0H278v10.5h33.5zm83.7 33.6H406v-33.5h-33.5v10.5h22.8zm-36.4-33.6h-33.5v10.5h33.5z\"]\n};\nvar faShopify = {\n prefix: 'fab',\n iconName: 'shopify',\n icon: [448, 512, [], \"e057\", \"M388.32,104.1a4.66,4.66,0,0,0-4.4-4c-2,0-37.23-.8-37.23-.8s-21.61-20.82-29.62-28.83V503.2L442.76,472S388.72,106.5,388.32,104.1ZM288.65,70.47a116.67,116.67,0,0,0-7.21-17.61C271,32.85,255.42,22,237,22a15,15,0,0,0-4,.4c-.4-.8-1.2-1.2-1.6-2C223.4,11.63,213,7.63,200.58,8c-24,.8-48,18-67.25,48.83-13.61,21.62-24,48.84-26.82,70.06-27.62,8.4-46.83,14.41-47.23,14.81-14,4.4-14.41,4.8-16,18-1.2,10-38,291.82-38,291.82L307.86,504V65.67a41.66,41.66,0,0,0-4.4.4S297.86,67.67,288.65,70.47ZM233.41,87.69c-16,4.8-33.63,10.4-50.84,15.61,4.8-18.82,14.41-37.63,25.62-50,4.4-4.4,10.41-9.61,17.21-12.81C232.21,54.86,233.81,74.48,233.41,87.69ZM200.58,24.44A27.49,27.49,0,0,1,215,28c-6.4,3.2-12.81,8.41-18.81,14.41-15.21,16.42-26.82,42-31.62,66.45-14.42,4.41-28.83,8.81-42,12.81C131.33,83.28,163.75,25.24,200.58,24.44ZM154.15,244.61c1.6,25.61,69.25,31.22,73.25,91.66,2.8,47.64-25.22,80.06-65.65,82.47-48.83,3.2-75.65-25.62-75.65-25.62l10.4-44s26.82,20.42,48.44,18.82c14-.8,19.22-12.41,18.81-20.42-2-33.62-57.24-31.62-60.84-86.86-3.2-46.44,27.22-93.27,94.47-97.68,26-1.6,39.23,4.81,39.23,4.81L221.4,225.39s-17.21-8-37.63-6.4C154.15,221,153.75,239.8,154.15,244.61ZM249.42,82.88c0-12-1.6-29.22-7.21-43.63,18.42,3.6,27.22,24,31.23,36.43Q262.63,78.68,249.42,82.88Z\"]\n};\nvar faShopware = {\n prefix: 'fab',\n iconName: 'shopware',\n icon: [512, 512, [], \"f5b5\", \"M403.5 455.41A246.17 246.17 0 0 1 256 504C118.81 504 8 393 8 256 8 118.81 119 8 256 8a247.39 247.39 0 0 1 165.7 63.5 3.57 3.57 0 0 1-2.86 6.18A418.62 418.62 0 0 0 362.13 74c-129.36 0-222.4 53.47-222.4 155.35 0 109 92.13 145.88 176.83 178.73 33.64 13 65.4 25.36 87 41.59a3.58 3.58 0 0 1 0 5.72zM503 233.09a3.64 3.64 0 0 0-1.27-2.44c-51.76-43-93.62-60.48-144.48-60.48-84.13 0-80.25 52.17-80.25 53.63 0 42.6 52.06 62 112.34 84.49 31.07 11.59 63.19 23.57 92.68 39.93a3.57 3.57 0 0 0 5-1.82A249 249 0 0 0 503 233.09z\"]\n};\nvar faSimplybuilt = {\n prefix: 'fab',\n iconName: 'simplybuilt',\n icon: [512, 512, [], \"f215\", \"M481.2 64h-106c-14.5 0-26.6 11.8-26.6 26.3v39.6H163.3V90.3c0-14.5-12-26.3-26.6-26.3h-106C16.1 64 4.3 75.8 4.3 90.3v331.4c0 14.5 11.8 26.3 26.6 26.3h450.4c14.8 0 26.6-11.8 26.6-26.3V90.3c-.2-14.5-12-26.3-26.7-26.3zM149.8 355.8c-36.6 0-66.4-29.7-66.4-66.4 0-36.9 29.7-66.6 66.4-66.6 36.9 0 66.6 29.7 66.6 66.6 0 36.7-29.7 66.4-66.6 66.4zm212.4 0c-36.9 0-66.6-29.7-66.6-66.6 0-36.6 29.7-66.4 66.6-66.4 36.6 0 66.4 29.7 66.4 66.4 0 36.9-29.8 66.6-66.4 66.6z\"]\n};\nvar faSistrix = {\n prefix: 'fab',\n iconName: 'sistrix',\n icon: [448, 512, [], \"f3ee\", \"M448 449L301.2 300.2c20-27.9 31.9-62.2 31.9-99.2 0-93.1-74.7-168.9-166.5-168.9C74.7 32 0 107.8 0 200.9s74.7 168.9 166.5 168.9c39.8 0 76.3-14.2 105-37.9l146 148.1 30.5-31zM166.5 330.8c-70.6 0-128.1-58.3-128.1-129.9S95.9 71 166.5 71s128.1 58.3 128.1 129.9-57.4 129.9-128.1 129.9z\"]\n};\nvar faSith = {\n prefix: 'fab',\n iconName: 'sith',\n icon: [448, 512, [], \"f512\", \"M0 32l69.71 118.75-58.86-11.52 69.84 91.03a146.741 146.741 0 0 0 0 51.45l-69.84 91.03 58.86-11.52L0 480l118.75-69.71-11.52 58.86 91.03-69.84c17.02 3.04 34.47 3.04 51.48 0l91.03 69.84-11.52-58.86L448 480l-69.71-118.78 58.86 11.52-69.84-91.03c3.03-17.01 3.04-34.44 0-51.45l69.84-91.03-58.86 11.52L448 32l-118.75 69.71 11.52-58.9-91.06 69.87c-8.5-1.52-17.1-2.29-25.71-2.29s-17.21.78-25.71 2.29l-91.06-69.87 11.52 58.9L0 32zm224 99.78c31.8 0 63.6 12.12 87.85 36.37 48.5 48.5 48.49 127.21 0 175.7s-127.2 48.46-175.7-.03c-48.5-48.5-48.49-127.21 0-175.7 24.24-24.25 56.05-36.34 87.85-36.34zm0 36.66c-22.42 0-44.83 8.52-61.92 25.61-34.18 34.18-34.19 89.68 0 123.87s89.65 34.18 123.84 0c34.18-34.18 34.19-89.68 0-123.87-17.09-17.09-39.5-25.61-61.92-25.61z\"]\n};\nvar faSketch = {\n prefix: 'fab',\n iconName: 'sketch',\n icon: [512, 512, [], \"f7c6\", \"M27.5 162.2L9 187.1h90.5l6.9-130.7-78.9 105.8zM396.3 45.7L267.7 32l135.7 147.2-7.1-133.5zM112.2 218.3l-11.2-22H9.9L234.8 458zm2-31.2h284l-81.5-88.5L256.3 33zm297.3 9.1L277.6 458l224.8-261.7h-90.9zM415.4 69L406 56.4l.9 17.3 6.1 113.4h90.3zM113.5 93.5l-4.6 85.6L244.7 32 116.1 45.7zm287.7 102.7h-290l42.4 82.9L256.3 480l144.9-283.8z\"]\n};\nvar faSkyatlas = {\n prefix: 'fab',\n iconName: 'skyatlas',\n icon: [640, 512, [], \"f216\", \"M640 329.3c0 65.9-52.5 114.4-117.5 114.4-165.9 0-196.6-249.7-359.7-249.7-146.9 0-147.1 212.2 5.6 212.2 42.5 0 90.9-17.8 125.3-42.5 5.6-4.1 16.9-16.3 22.8-16.3s10.9 5 10.9 10.9c0 7.8-13.1 19.1-18.7 24.1-40.9 35.6-100.3 61.2-154.7 61.2-83.4.1-154-59-154-144.9s67.5-149.1 152.8-149.1c185.3 0 222.5 245.9 361.9 245.9 99.9 0 94.8-139.7 3.4-139.7-17.5 0-35 11.6-46.9 11.6-8.4 0-15.9-7.2-15.9-15.6 0-11.6 5.3-23.7 5.3-36.3 0-66.6-50.9-114.7-116.9-114.7-53.1 0-80 36.9-88.8 36.9-6.2 0-11.2-5-11.2-11.2 0-5.6 4.1-10.3 7.8-14.4 25.3-28.8 64.7-43.7 102.8-43.7 79.4 0 139.1 58.4 139.1 137.8 0 6.9-.3 13.7-1.2 20.6 11.9-3.1 24.1-4.7 35.9-4.7 60.7 0 111.9 45.3 111.9 107.2z\"]\n};\nvar faSkype = {\n prefix: 'fab',\n iconName: 'skype',\n icon: [448, 512, [], \"f17e\", \"M424.7 299.8c2.9-14 4.7-28.9 4.7-43.8 0-113.5-91.9-205.3-205.3-205.3-14.9 0-29.7 1.7-43.8 4.7C161.3 40.7 137.7 32 112 32 50.2 32 0 82.2 0 144c0 25.7 8.7 49.3 23.3 68.2-2.9 14-4.7 28.9-4.7 43.8 0 113.5 91.9 205.3 205.3 205.3 14.9 0 29.7-1.7 43.8-4.7 19 14.6 42.6 23.3 68.2 23.3 61.8 0 112-50.2 112-112 .1-25.6-8.6-49.2-23.2-68.1zm-194.6 91.5c-65.6 0-120.5-29.2-120.5-65 0-16 9-30.6 29.5-30.6 31.2 0 34.1 44.9 88.1 44.9 25.7 0 42.3-11.4 42.3-26.3 0-18.7-16-21.6-42-28-62.5-15.4-117.8-22-117.8-87.2 0-59.2 58.6-81.1 109.1-81.1 55.1 0 110.8 21.9 110.8 55.4 0 16.9-11.4 31.8-30.3 31.8-28.3 0-29.2-33.5-75-33.5-25.7 0-42 7-42 22.5 0 19.8 20.8 21.8 69.1 33 41.4 9.3 90.7 26.8 90.7 77.6 0 59.1-57.1 86.5-112 86.5z\"]\n};\nvar faSlack = {\n prefix: 'fab',\n iconName: 'slack',\n icon: [448, 512, [], \"f198\", \"M94.12 315.1c0 25.9-21.16 47.06-47.06 47.06S0 341 0 315.1c0-25.9 21.16-47.06 47.06-47.06h47.06v47.06zm23.72 0c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06v117.84c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06V315.1zm47.06-188.98c-25.9 0-47.06-21.16-47.06-47.06S139 32 164.9 32s47.06 21.16 47.06 47.06v47.06H164.9zm0 23.72c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06H47.06C21.16 243.96 0 222.8 0 196.9s21.16-47.06 47.06-47.06H164.9zm188.98 47.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06h-47.06V196.9zm-23.72 0c0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06V79.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06V196.9zM283.1 385.88c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06v-47.06h47.06zm0-23.72c-25.9 0-47.06-21.16-47.06-47.06 0-25.9 21.16-47.06 47.06-47.06h117.84c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06H283.1z\"]\n};\nvar faSlackHash = {\n prefix: 'fab',\n iconName: 'slack-hash',\n icon: [448, 512, [], \"f3ef\", \"M446.2 270.4c-6.2-19-26.9-29.1-46-22.9l-45.4 15.1-30.3-90 45.4-15.1c19.1-6.2 29.1-26.8 23-45.9-6.2-19-26.9-29.1-46-22.9l-45.4 15.1-15.7-47c-6.2-19-26.9-29.1-46-22.9-19.1 6.2-29.1 26.8-23 45.9l15.7 47-93.4 31.2-15.7-47c-6.2-19-26.9-29.1-46-22.9-19.1 6.2-29.1 26.8-23 45.9l15.7 47-45.3 15c-19.1 6.2-29.1 26.8-23 45.9 5 14.5 19.1 24 33.6 24.6 6.8 1 12-1.6 57.7-16.8l30.3 90L78 354.8c-19 6.2-29.1 26.9-23 45.9 5 14.5 19.1 24 33.6 24.6 6.8 1 12-1.6 57.7-16.8l15.7 47c5.9 16.9 24.7 29 46 22.9 19.1-6.2 29.1-26.8 23-45.9l-15.7-47 93.6-31.3 15.7 47c5.9 16.9 24.7 29 46 22.9 19.1-6.2 29.1-26.8 23-45.9l-15.7-47 45.4-15.1c19-6 29.1-26.7 22.9-45.7zm-254.1 47.2l-30.3-90.2 93.5-31.3 30.3 90.2-93.5 31.3z\"]\n};\nvar faSlideshare = {\n prefix: 'fab',\n iconName: 'slideshare',\n icon: [512, 512, [], \"f1e7\", \"M187.7 153.7c-34 0-61.7 25.7-61.7 57.7 0 31.7 27.7 57.7 61.7 57.7s61.7-26 61.7-57.7c0-32-27.7-57.7-61.7-57.7zm143.4 0c-34 0-61.7 25.7-61.7 57.7 0 31.7 27.7 57.7 61.7 57.7 34.3 0 61.7-26 61.7-57.7.1-32-27.4-57.7-61.7-57.7zm156.6 90l-6 4.3V49.7c0-27.4-20.6-49.7-46-49.7H76.6c-25.4 0-46 22.3-46 49.7V248c-2-1.4-4.3-2.9-6.3-4.3-15.1-10.6-25.1 4-16 17.7 18.3 22.6 53.1 50.3 106.3 72C58.3 525.1 252 555.7 248.9 457.5c0-.7.3-56.6.3-96.6 5.1 1.1 9.4 2.3 13.7 3.1 0 39.7.3 92.8.3 93.5-3.1 98.3 190.6 67.7 134.3-124 53.1-21.7 88-49.4 106.3-72 9.1-13.8-.9-28.3-16.1-17.8zm-30.5 19.2c-68.9 37.4-128.3 31.1-160.6 29.7-23.7-.9-32.6 9.1-33.7 24.9-10.3-7.7-18.6-15.5-20.3-17.1-5.1-5.4-13.7-8-27.1-7.7-31.7 1.1-89.7 7.4-157.4-28V72.3c0-34.9 8.9-45.7 40.6-45.7h317.7c30.3 0 40.9 12.9 40.9 45.7v190.6z\"]\n};\nvar faSnapchat = {\n prefix: 'fab',\n iconName: 'snapchat',\n icon: [496, 512, [], \"f2ab\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm169.5 338.9c-3.5 8.1-18.1 14-44.8 18.2-1.4 1.9-2.5 9.8-4.3 15.9-1.1 3.7-3.7 5.9-8.1 5.9h-.2c-6.2 0-12.8-2.9-25.8-2.9-17.6 0-23.7 4-37.4 13.7-14.5 10.3-28.4 19.1-49.2 18.2-21 1.6-38.6-11.2-48.5-18.2-13.8-9.7-19.8-13.7-37.4-13.7-12.5 0-20.4 3.1-25.8 3.1-5.4 0-7.5-3.3-8.3-6-1.8-6.1-2.9-14.1-4.3-16-13.8-2.1-44.8-7.5-45.5-21.4-.2-3.6 2.3-6.8 5.9-7.4 46.3-7.6 67.1-55.1 68-57.1 0-.1.1-.2.2-.3 2.5-5 3-9.2 1.6-12.5-3.4-7.9-17.9-10.7-24-13.2-15.8-6.2-18-13.4-17-18.3 1.6-8.5 14.4-13.8 21.9-10.3 5.9 2.8 11.2 4.2 15.7 4.2 3.3 0 5.5-.8 6.6-1.4-1.4-23.9-4.7-58 3.8-77.1C183.1 100 230.7 96 244.7 96c.6 0 6.1-.1 6.7-.1 34.7 0 68 17.8 84.3 54.3 8.5 19.1 5.2 53.1 3.8 77.1 1.1.6 2.9 1.3 5.7 1.4 4.3-.2 9.2-1.6 14.7-4.2 4-1.9 9.6-1.6 13.6 0 6.3 2.3 10.3 6.8 10.4 11.9.1 6.5-5.7 12.1-17.2 16.6-1.4.6-3.1 1.1-4.9 1.7-6.5 2.1-16.4 5.2-19 11.5-1.4 3.3-.8 7.5 1.6 12.5.1.1.1.2.2.3.9 2 21.7 49.5 68 57.1 4 1 7.1 5.5 4.9 10.8z\"]\n};\nvar faSnapchatGhost = {\n prefix: 'fab',\n iconName: 'snapchat-ghost',\n icon: [512, 512, [], \"f2ac\", \"M510.846 392.673c-5.211 12.157-27.239 21.089-67.36 27.318-2.064 2.786-3.775 14.686-6.507 23.956-1.625 5.566-5.623 8.869-12.128 8.869l-.297-.005c-9.395 0-19.203-4.323-38.852-4.323-26.521 0-35.662 6.043-56.254 20.588-21.832 15.438-42.771 28.764-74.027 27.399-31.646 2.334-58.025-16.908-72.871-27.404-20.714-14.643-29.828-20.582-56.241-20.582-18.864 0-30.736 4.72-38.852 4.72-8.073 0-11.213-4.922-12.422-9.04-2.703-9.189-4.404-21.263-6.523-24.13-20.679-3.209-67.31-11.344-68.498-32.15a10.627 10.627 0 0 1 8.877-11.069c69.583-11.455 100.924-82.901 102.227-85.934.074-.176.155-.344.237-.515 3.713-7.537 4.544-13.849 2.463-18.753-5.05-11.896-26.872-16.164-36.053-19.796-23.715-9.366-27.015-20.128-25.612-27.504 2.437-12.836 21.725-20.735 33.002-15.453 8.919 4.181 16.843 6.297 23.547 6.297 5.022 0 8.212-1.204 9.96-2.171-2.043-35.936-7.101-87.29 5.687-115.969C158.122 21.304 229.705 15.42 250.826 15.42c.944 0 9.141-.089 10.11-.089 52.148 0 102.254 26.78 126.723 81.643 12.777 28.65 7.749 79.792 5.695 116.009 1.582.872 4.357 1.942 8.599 2.139 6.397-.286 13.815-2.389 22.069-6.257 6.085-2.846 14.406-2.461 20.48.058l.029.01c9.476 3.385 15.439 10.215 15.589 17.87.184 9.747-8.522 18.165-25.878 25.018-2.118.835-4.694 1.655-7.434 2.525-9.797 3.106-24.6 7.805-28.616 17.271-2.079 4.904-1.256 11.211 2.46 18.748.087.168.166.342.239.515 1.301 3.03 32.615 74.46 102.23 85.934 6.427 1.058 11.163 7.877 7.725 15.859z\"]\n};\nvar faSnapchatSquare = {\n prefix: 'fab',\n iconName: 'snapchat-square',\n icon: [448, 512, [], \"f2ad\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-6.5 314.9c-3.5 8.1-18.1 14-44.8 18.2-1.4 1.9-2.5 9.8-4.3 15.9-1.1 3.7-3.7 5.9-8.1 5.9h-.2c-6.2 0-12.8-2.9-25.8-2.9-17.6 0-23.7 4-37.4 13.7-14.5 10.3-28.4 19.1-49.2 18.2-21 1.6-38.6-11.2-48.5-18.2-13.8-9.7-19.8-13.7-37.4-13.7-12.5 0-20.4 3.1-25.8 3.1-5.4 0-7.5-3.3-8.3-6-1.8-6.1-2.9-14.1-4.3-16-13.8-2.1-44.8-7.5-45.5-21.4-.2-3.6 2.3-6.8 5.9-7.4 46.3-7.6 67.1-55.1 68-57.1 0-.1.1-.2.2-.3 2.5-5 3-9.2 1.6-12.5-3.4-7.9-17.9-10.7-24-13.2-15.8-6.2-18-13.4-17-18.3 1.6-8.5 14.4-13.8 21.9-10.3 5.9 2.8 11.2 4.2 15.7 4.2 3.3 0 5.5-.8 6.6-1.4-1.4-23.9-4.7-58 3.8-77.1C159.1 100 206.7 96 220.7 96c.6 0 6.1-.1 6.7-.1 34.7 0 68 17.8 84.3 54.3 8.5 19.1 5.2 53.1 3.8 77.1 1.1.6 2.9 1.3 5.7 1.4 4.3-.2 9.2-1.6 14.7-4.2 4-1.9 9.6-1.6 13.6 0 6.3 2.3 10.3 6.8 10.4 11.9.1 6.5-5.7 12.1-17.2 16.6-1.4.6-3.1 1.1-4.9 1.7-6.5 2.1-16.4 5.2-19 11.5-1.4 3.3-.8 7.5 1.6 12.5.1.1.1.2.2.3.9 2 21.7 49.5 68 57.1 4 1 7.1 5.5 4.9 10.8z\"]\n};\nvar faSoundcloud = {\n prefix: 'fab',\n iconName: 'soundcloud',\n icon: [640, 512, [], \"f1be\", \"M111.4 256.3l5.8 65-5.8 68.3c-.3 2.5-2.2 4.4-4.4 4.4s-4.2-1.9-4.2-4.4l-5.6-68.3 5.6-65c0-2.2 1.9-4.2 4.2-4.2 2.2 0 4.1 2 4.4 4.2zm21.4-45.6c-2.8 0-4.7 2.2-5 5l-5 105.6 5 68.3c.3 2.8 2.2 5 5 5 2.5 0 4.7-2.2 4.7-5l5.8-68.3-5.8-105.6c0-2.8-2.2-5-4.7-5zm25.5-24.1c-3.1 0-5.3 2.2-5.6 5.3l-4.4 130 4.4 67.8c.3 3.1 2.5 5.3 5.6 5.3 2.8 0 5.3-2.2 5.3-5.3l5.3-67.8-5.3-130c0-3.1-2.5-5.3-5.3-5.3zM7.2 283.2c-1.4 0-2.2 1.1-2.5 2.5L0 321.3l4.7 35c.3 1.4 1.1 2.5 2.5 2.5s2.2-1.1 2.5-2.5l5.6-35-5.6-35.6c-.3-1.4-1.1-2.5-2.5-2.5zm23.6-21.9c-1.4 0-2.5 1.1-2.5 2.5l-6.4 57.5 6.4 56.1c0 1.7 1.1 2.8 2.5 2.8s2.5-1.1 2.8-2.5l7.2-56.4-7.2-57.5c-.3-1.4-1.4-2.5-2.8-2.5zm25.3-11.4c-1.7 0-3.1 1.4-3.3 3.3L47 321.3l5.8 65.8c.3 1.7 1.7 3.1 3.3 3.1 1.7 0 3.1-1.4 3.1-3.1l6.9-65.8-6.9-68.1c0-1.9-1.4-3.3-3.1-3.3zm25.3-2.2c-1.9 0-3.6 1.4-3.6 3.6l-5.8 70 5.8 67.8c0 2.2 1.7 3.6 3.6 3.6s3.6-1.4 3.9-3.6l6.4-67.8-6.4-70c-.3-2.2-2-3.6-3.9-3.6zm241.4-110.9c-1.1-.8-2.8-1.4-4.2-1.4-2.2 0-4.2.8-5.6 1.9-1.9 1.7-3.1 4.2-3.3 6.7v.8l-3.3 176.7 1.7 32.5 1.7 31.7c.3 4.7 4.2 8.6 8.9 8.6s8.6-3.9 8.6-8.6l3.9-64.2-3.9-177.5c-.4-3-2-5.8-4.5-7.2zm-26.7 15.3c-1.4-.8-2.8-1.4-4.4-1.4s-3.1.6-4.4 1.4c-2.2 1.4-3.6 3.9-3.6 6.7l-.3 1.7-2.8 160.8s0 .3 3.1 65.6v.3c0 1.7.6 3.3 1.7 4.7 1.7 1.9 3.9 3.1 6.4 3.1 2.2 0 4.2-1.1 5.6-2.5 1.7-1.4 2.5-3.3 2.5-5.6l.3-6.7 3.1-58.6-3.3-162.8c-.3-2.8-1.7-5.3-3.9-6.7zm-111.4 22.5c-3.1 0-5.8 2.8-5.8 6.1l-4.4 140.6 4.4 67.2c.3 3.3 2.8 5.8 5.8 5.8 3.3 0 5.8-2.5 6.1-5.8l5-67.2-5-140.6c-.2-3.3-2.7-6.1-6.1-6.1zm376.7 62.8c-10.8 0-21.1 2.2-30.6 6.1-6.4-70.8-65.8-126.4-138.3-126.4-17.8 0-35 3.3-50.3 9.4-6.1 2.2-7.8 4.4-7.8 9.2v249.7c0 5 3.9 8.6 8.6 9.2h218.3c43.3 0 78.6-35 78.6-78.3.1-43.6-35.2-78.9-78.5-78.9zm-296.7-60.3c-4.2 0-7.5 3.3-7.8 7.8l-3.3 136.7 3.3 65.6c.3 4.2 3.6 7.5 7.8 7.5 4.2 0 7.5-3.3 7.5-7.5l3.9-65.6-3.9-136.7c-.3-4.5-3.3-7.8-7.5-7.8zm-53.6-7.8c-3.3 0-6.4 3.1-6.4 6.7l-3.9 145.3 3.9 66.9c.3 3.6 3.1 6.4 6.4 6.4 3.6 0 6.4-2.8 6.7-6.4l4.4-66.9-4.4-145.3c-.3-3.6-3.1-6.7-6.7-6.7zm26.7 3.4c-3.9 0-6.9 3.1-6.9 6.9L227 321.3l3.9 66.4c.3 3.9 3.1 6.9 6.9 6.9s6.9-3.1 6.9-6.9l4.2-66.4-4.2-141.7c0-3.9-3-6.9-6.9-6.9z\"]\n};\nvar faSourcetree = {\n prefix: 'fab',\n iconName: 'sourcetree',\n icon: [448, 512, [], \"f7d3\", \"M427.2 203c0-112.1-90.9-203-203-203C112.1-.2 21.2 90.6 21 202.6A202.86 202.86 0 0 0 161.5 396v101.7a14.3 14.3 0 0 0 14.3 14.3h96.4a14.3 14.3 0 0 0 14.3-14.3V396.1A203.18 203.18 0 0 0 427.2 203zm-271.6 0c0-90.8 137.3-90.8 137.3 0-.1 89.9-137.3 91-137.3 0z\"]\n};\nvar faSpeakap = {\n prefix: 'fab',\n iconName: 'speakap',\n icon: [448, 512, [], \"f3f3\", \"M64 391.78C-15.41 303.59-8 167.42 80.64 87.64s224.8-73 304.21 15.24 72 224.36-16.64 304.14c-18.74 16.87 64 43.09 42 52.26-82.06 34.21-253.91 35-346.23-67.5zm213.31-211.6l38.5-40.86c-9.61-8.89-32-26.83-76.17-27.6-52.33-.91-95.86 28.3-96.77 80-.2 11.33.29 36.72 29.42 54.83 34.46 21.42 86.52 21.51 86 52.26-.37 21.28-26.42 25.81-38.59 25.6-3-.05-30.23-.46-47.61-24.62l-40 42.61c28.16 27 59 32.62 83.49 33.05 10.23.18 96.42.33 97.84-81 .28-15.81-2.07-39.72-28.86-56.59-34.36-21.64-85-19.45-84.43-49.75.41-23.25 31-25.37 37.53-25.26.43 0 26.62.26 39.62 17.37z\"]\n};\nvar faSpeakerDeck = {\n prefix: 'fab',\n iconName: 'speaker-deck',\n icon: [512, 512, [], \"f83c\", \"M213.86 296H100a100 100 0 0 1 0-200h132.84a40 40 0 0 1 0 80H98c-26.47 0-26.45 40 0 40h113.82a100 100 0 0 1 0 200H40a40 40 0 0 1 0-80h173.86c26.48 0 26.46-40 0-40zM298 416a120.21 120.21 0 0 0 51.11-80h64.55a19.83 19.83 0 0 0 19.66-20V196a19.83 19.83 0 0 0-19.66-20H296.42a60.77 60.77 0 0 0 0-80h136.93c43.44 0 78.65 35.82 78.65 80v160c0 44.18-35.21 80-78.65 80z\"]\n};\nvar faSpotify = {\n prefix: 'fab',\n iconName: 'spotify',\n icon: [496, 512, [], \"f1bc\", \"M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm100.7 364.9c-4.2 0-6.8-1.3-10.7-3.6-62.4-37.6-135-39.2-206.7-24.5-3.9 1-9 2.6-11.9 2.6-9.7 0-15.8-7.7-15.8-15.8 0-10.3 6.1-15.2 13.6-16.8 81.9-18.1 165.6-16.5 237 26.2 6.1 3.9 9.7 7.4 9.7 16.5s-7.1 15.4-15.2 15.4zm26.9-65.6c-5.2 0-8.7-2.3-12.3-4.2-62.5-37-155.7-51.9-238.6-29.4-4.8 1.3-7.4 2.6-11.9 2.6-10.7 0-19.4-8.7-19.4-19.4s5.2-17.8 15.5-20.7c27.8-7.8 56.2-13.6 97.8-13.6 64.9 0 127.6 16.1 177 45.5 8.1 4.8 11.3 11 11.3 19.7-.1 10.8-8.5 19.5-19.4 19.5zm31-76.2c-5.2 0-8.4-1.3-12.9-3.9-71.2-42.5-198.5-52.7-280.9-29.7-3.6 1-8.1 2.6-12.9 2.6-13.2 0-23.3-10.3-23.3-23.6 0-13.6 8.4-21.3 17.4-23.9 35.2-10.3 74.6-15.2 117.5-15.2 73 0 149.5 15.2 205.4 47.8 7.8 4.5 12.9 10.7 12.9 22.6 0 13.6-11 23.3-23.2 23.3z\"]\n};\nvar faSquarespace = {\n prefix: 'fab',\n iconName: 'squarespace',\n icon: [512, 512, [], \"f5be\", \"M186.12 343.34c-9.65 9.65-9.65 25.29 0 34.94 9.65 9.65 25.29 9.65 34.94 0L378.24 221.1c19.29-19.29 50.57-19.29 69.86 0s19.29 50.57 0 69.86L293.95 445.1c19.27 19.29 50.53 19.31 69.82.04l.04-.04 119.25-119.24c38.59-38.59 38.59-101.14 0-139.72-38.59-38.59-101.15-38.59-139.72 0l-157.22 157.2zm244.53-104.8c-9.65-9.65-25.29-9.65-34.93 0l-157.2 157.18c-19.27 19.29-50.53 19.31-69.82.05l-.05-.05c-9.64-9.64-25.27-9.65-34.92-.01l-.01.01c-9.65 9.64-9.66 25.28-.02 34.93l.02.02c38.58 38.57 101.14 38.57 139.72 0l157.2-157.2c9.65-9.65 9.65-25.29.01-34.93zm-261.99 87.33l157.18-157.18c9.64-9.65 9.64-25.29 0-34.94-9.64-9.64-25.27-9.64-34.91 0L133.72 290.93c-19.28 19.29-50.56 19.3-69.85.01l-.01-.01c-19.29-19.28-19.31-50.54-.03-69.84l.03-.03L218.03 66.89c-19.28-19.29-50.55-19.3-69.85-.02l-.02.02L28.93 186.14c-38.58 38.59-38.58 101.14 0 139.72 38.6 38.59 101.13 38.59 139.73.01zm-87.33-52.4c9.64 9.64 25.27 9.64 34.91 0l157.21-157.19c19.28-19.29 50.55-19.3 69.84-.02l.02.02c9.65 9.65 25.29 9.65 34.93 0 9.65-9.65 9.65-25.29 0-34.93-38.59-38.59-101.13-38.59-139.72 0L81.33 238.54c-9.65 9.64-9.65 25.28-.01 34.93h.01z\"]\n};\nvar faStackExchange = {\n prefix: 'fab',\n iconName: 'stack-exchange',\n icon: [448, 512, [], \"f18d\", \"M17.7 332.3h412.7v22c0 37.7-29.3 68-65.3 68h-19L259.3 512v-89.7H83c-36 0-65.3-30.3-65.3-68v-22zm0-23.6h412.7v-85H17.7v85zm0-109.4h412.7v-85H17.7v85zM365 0H83C47 0 17.7 30.3 17.7 67.7V90h412.7V67.7C430.3 30.3 401 0 365 0z\"]\n};\nvar faStackOverflow = {\n prefix: 'fab',\n iconName: 'stack-overflow',\n icon: [384, 512, [], \"f16c\", \"M290.7 311L95 269.7 86.8 309l195.7 41zm51-87L188.2 95.7l-25.5 30.8 153.5 128.3zm-31.2 39.7L129.2 179l-16.7 36.5L293.7 300zM262 32l-32 24 119.3 160.3 32-24zm20.5 328h-200v39.7h200zm39.7 80H42.7V320h-40v160h359.5V320h-40z\"]\n};\nvar faStackpath = {\n prefix: 'fab',\n iconName: 'stackpath',\n icon: [448, 512, [], \"f842\", \"M244.6 232.4c0 8.5-4.26 20.49-21.34 20.49h-19.61v-41.47h19.61c17.13 0 21.34 12.36 21.34 20.98zM448 32v448H0V32zM151.3 287.84c0-21.24-12.12-34.54-46.72-44.85-20.57-7.41-26-10.91-26-18.63s7-14.61 20.41-14.61c14.09 0 20.79 8.45 20.79 18.35h30.7l.19-.57c.5-19.57-15.06-41.65-51.12-41.65-23.37 0-52.55 10.75-52.55 38.29 0 19.4 9.25 31.29 50.74 44.37 17.26 6.15 21.91 10.4 21.91 19.48 0 15.2-19.13 14.23-19.47 14.23-20.4 0-25.65-9.1-25.65-21.9h-30.8l-.18.56c-.68 31.32 28.38 45.22 56.63 45.22 29.98 0 51.12-13.55 51.12-38.29zm125.38-55.63c0-25.3-18.43-45.46-53.42-45.46h-51.78v138.18h32.17v-47.36h19.61c30.25 0 53.42-15.95 53.42-45.36zM297.94 325L347 186.78h-31.09L268 325zm106.52-138.22h-31.09L325.46 325h29.94z\"]\n};\nvar faStaylinked = {\n prefix: 'fab',\n iconName: 'staylinked',\n icon: [440, 512, [], \"f3f5\", \"M382.7 292.5l2.7 2.7-170-167.3c-3.5-3.5-9.7-3.7-13.8-.5L144.3 171c-4.2 3.2-4.6 8.7-1.1 12.2l68.1 64.3c3.6 3.5 9.9 3.7 14 .5l.1-.1c4.1-3.2 10.4-3 14 .5l84 81.3c3.6 3.5 3.2 9-.9 12.2l-93.2 74c-4.2 3.3-10.5 3.1-14.2-.4L63.2 268c-3.5-3.5-9.7-3.7-13.9-.5L3.5 302.4c-4.2 3.2-4.7 8.7-1.2 12.2L211 510.7s7.4 6.8 17.3-.8l198-163.9c4-3.2 4.4-8.7.7-12.2zm54.5-83.4L226.7 2.5c-1.5-1.2-8-5.5-16.3 1.1L3.6 165.7c-4.2 3.2-4.8 8.7-1.2 12.2l42.3 41.7 171.7 165.1c3.7 3.5 10.1 3.7 14.3.4l50.2-38.8-.3-.3 7.7-6c4.2-3.2 4.6-8.7.9-12.2l-57.1-54.4c-3.6-3.5-10-3.7-14.2-.5l-.1.1c-4.2 3.2-10.5 3.1-14.2-.4L109 180.8c-3.6-3.5-3.1-8.9 1.1-12.2l92.2-71.5c4.1-3.2 10.3-3 13.9.5l160.4 159c3.7 3.5 10 3.7 14.1.5l45.8-35.8c4.1-3.2 4.4-8.7.7-12.2z\"]\n};\nvar faSteam = {\n prefix: 'fab',\n iconName: 'steam',\n icon: [496, 512, [], \"f1b6\", \"M496 256c0 137-111.2 248-248.4 248-113.8 0-209.6-76.3-239-180.4l95.2 39.3c6.4 32.1 34.9 56.4 68.9 56.4 39.2 0 71.9-32.4 70.2-73.5l84.5-60.2c52.1 1.3 95.8-40.9 95.8-93.5 0-51.6-42-93.5-93.7-93.5s-93.7 42-93.7 93.5v1.2L176.6 279c-15.5-.9-30.7 3.4-43.5 12.1L0 236.1C10.2 108.4 117.1 8 247.6 8 384.8 8 496 119 496 256zM155.7 384.3l-30.5-12.6a52.79 52.79 0 0 0 27.2 25.8c26.9 11.2 57.8-1.6 69-28.4 5.4-13 5.5-27.3.1-40.3-5.4-13-15.5-23.2-28.5-28.6-12.9-5.4-26.7-5.2-38.9-.6l31.5 13c19.8 8.2 29.2 30.9 20.9 50.7-8.3 19.9-31 29.2-50.8 21zm173.8-129.9c-34.4 0-62.4-28-62.4-62.3s28-62.3 62.4-62.3 62.4 28 62.4 62.3-27.9 62.3-62.4 62.3zm.1-15.6c25.9 0 46.9-21 46.9-46.8 0-25.9-21-46.8-46.9-46.8s-46.9 21-46.9 46.8c.1 25.8 21.1 46.8 46.9 46.8z\"]\n};\nvar faSteamSquare = {\n prefix: 'fab',\n iconName: 'steam-square',\n icon: [448, 512, [], \"f1b7\", \"M185.2 356.5c7.7-18.5-1-39.7-19.6-47.4l-29.5-12.2c11.4-4.3 24.3-4.5 36.4.5 12.2 5.1 21.6 14.6 26.7 26.7 5 12.2 5 25.6-.1 37.7-10.5 25.1-39.4 37-64.6 26.5-11.6-4.8-20.4-13.6-25.4-24.2l28.5 11.8c18.6 7.8 39.9-.9 47.6-19.4zM400 32H48C21.5 32 0 53.5 0 80v160.7l116.6 48.1c12-8.2 26.2-12.1 40.7-11.3l55.4-80.2v-1.1c0-48.2 39.3-87.5 87.6-87.5s87.6 39.3 87.6 87.5c0 49.2-40.9 88.7-89.6 87.5l-79 56.3c1.6 38.5-29.1 68.8-65.7 68.8-31.8 0-58.5-22.7-64.5-52.7L0 319.2V432c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-99.7 222.5c-32.2 0-58.4-26.1-58.4-58.3s26.2-58.3 58.4-58.3 58.4 26.2 58.4 58.3-26.2 58.3-58.4 58.3zm.1-14.6c24.2 0 43.9-19.6 43.9-43.8 0-24.2-19.6-43.8-43.9-43.8-24.2 0-43.9 19.6-43.9 43.8 0 24.2 19.7 43.8 43.9 43.8z\"]\n};\nvar faSteamSymbol = {\n prefix: 'fab',\n iconName: 'steam-symbol',\n icon: [448, 512, [], \"f3f6\", \"M395.5 177.5c0 33.8-27.5 61-61 61-33.8 0-61-27.3-61-61s27.3-61 61-61c33.5 0 61 27.2 61 61zm52.5.2c0 63-51 113.8-113.7 113.8L225 371.3c-4 43-40.5 76.8-84.5 76.8-40.5 0-74.7-28.8-83-67L0 358V250.7L97.2 290c15.1-9.2 32.2-13.3 52-11.5l71-101.7c.5-62.3 51.5-112.8 114-112.8C397 64 448 115 448 177.7zM203 363c0-34.7-27.8-62.5-62.5-62.5-4.5 0-9 .5-13.5 1.5l26 10.5c25.5 10.2 38 39 27.7 64.5-10.2 25.5-39.2 38-64.7 27.5-10.2-4-20.5-8.3-30.7-12.2 10.5 19.7 31.2 33.2 55.2 33.2 34.7 0 62.5-27.8 62.5-62.5zm207.5-185.3c0-42-34.3-76.2-76.2-76.2-42.3 0-76.5 34.2-76.5 76.2 0 42.2 34.3 76.2 76.5 76.2 41.9.1 76.2-33.9 76.2-76.2z\"]\n};\nvar faStickerMule = {\n prefix: 'fab',\n iconName: 'sticker-mule',\n icon: [576, 512, [], \"f3f7\", \"M561.7 199.6c-1.3.3.3 0 0 0zm-6.2-77.4c-7.7-22.3-5.1-7.2-13.4-36.9-1.6-6.5-3.6-14.5-6.2-20-4.4-8.7-4.6-7.5-4.6-9.5 0-5.3 30.7-45.3 19-46.9-5.7-.6-12.2 11.6-20.6 17-8.6 4.2-8 5-10.3 5-2.6 0-5.7-3-6.2-5-2-5.7 1.9-25.9-3.6-25.9-3.6 0-12.3 24.8-17 25.8-5.2 1.3-27.9-11.4-75.1 18-25.3 13.2-86.9 65.2-87 65.3-6.7 4.7-20 4.7-35.5 16-44.4 30.1-109.6 9.4-110.7 9-110.6-26.8-128-15.2-159 11.5-20.8 17.9-23.7 36.5-24.2 38.9-4.2 20.4 5.2 48.3 6.7 64.3 1.8 19.3-2.7 17.7 7.7 98.3.5 1 4.1 0 5.1 1.5 0 8.4-3.8 12.1-4.1 13-1.5 4.5-1.5 10.5 0 16 2.3 8.2 8.2 37.2 8.2 46.9 0 41.8.4 44 2.6 49.4 3.9 10 12.5 9.1 17 12 3.1 3.5-.5 8.5 1 12.5.5 2 3.6 4 6.2 5 9.2 3.6 27 .3 29.9-2.5 1.6-1.5.5-4.5 3.1-5 5.1 0 10.8-.5 14.4-2.5 5.1-2.5 4.1-6 1.5-10.5-.4-.8-7-13.3-9.8-16-2.1-2-5.1-3-7.2-4.5-5.8-4.9-10.3-19.4-10.3-19.5-4.6-19.4-10.3-46.3-4.1-66.8 4.6-17.2 39.5-87.7 39.6-87.8 4.1-6.5 17-11.5 27.3-7 6 1.9 19.3 22 65.4 30.9 47.9 8.7 97.4-2 112.2-2 2.8 2-1.9 13-.5 38.9 0 26.4-.4 13.7-4.1 29.9-2.2 9.7 3.4 23.2-1.5 46.9-1.4 9.8-9.9 32.7-8.2 43.4.5 1 1 2 1.5 3.5.5 4.5 1.5 8.5 4.6 10 7.3 3.6 12-3.5 9.8 11.5-.7 3.1-2.6 12 1.5 15 4.4 3.7 30.6 3.4 36.5.5 2.6-1.5 1.6-4.5 6.4-7.4 1.9-.9 11.3-.4 11.3-6.5.3-1.8-9.2-19.9-9.3-20-2.6-3.5-9.2-4.5-11.3-8-6.9-10.1-1.7-52.6.5-59.4 3-11 5.6-22.4 8.7-32.4 11-42.5 10.3-50.6 16.5-68.3.8-1.8 6.4-23.1 10.3-29.9 9.3-17 21.7-32.4 33.5-47.4 18-22.9 34-46.9 52-69.8 6.1-7 8.2-13.7 18-8 10.8 5.7 21.6 7 31.9 17 14.6 12.8 10.2 18.2 11.8 22.9 1.5 5 7.7 10.5 14.9 9.5 10.4-2 13-2.5 13.4-2.5 2.6-.5 5.7-5 7.2-8 3.1-5.5 7.2-9 7.2-16.5 0-7.7-.4-2.8-20.6-52.9z\"]\n};\nvar faStrava = {\n prefix: 'fab',\n iconName: 'strava',\n icon: [384, 512, [], \"f428\", \"M158.4 0L7 292h89.2l62.2-116.1L220.1 292h88.5zm150.2 292l-43.9 88.2-44.6-88.2h-67.6l112.2 220 111.5-220z\"]\n};\nvar faStripe = {\n prefix: 'fab',\n iconName: 'stripe',\n icon: [640, 512, [], \"f429\", \"M165 144.7l-43.3 9.2-.2 142.4c0 26.3 19.8 43.3 46.1 43.3 14.6 0 25.3-2.7 31.2-5.9v-33.8c-5.7 2.3-33.7 10.5-33.7-15.7V221h33.7v-37.8h-33.7zm89.1 51.6l-2.7-13.1H213v153.2h44.3V233.3c10.5-13.8 28.2-11.1 33.9-9.3v-40.8c-6-2.1-26.7-6-37.1 13.1zm92.3-72.3l-44.6 9.5v36.2l44.6-9.5zM44.9 228.3c0-6.9 5.8-9.6 15.1-9.7 13.5 0 30.7 4.1 44.2 11.4v-41.8c-14.7-5.8-29.4-8.1-44.1-8.1-36 0-60 18.8-60 50.2 0 49.2 67.5 41.2 67.5 62.4 0 8.2-7.1 10.9-17 10.9-14.7 0-33.7-6.1-48.6-14.2v40c16.5 7.1 33.2 10.1 48.5 10.1 36.9 0 62.3-15.8 62.3-47.8 0-52.9-67.9-43.4-67.9-63.4zM640 261.6c0-45.5-22-81.4-64.2-81.4s-67.9 35.9-67.9 81.1c0 53.5 30.3 78.2 73.5 78.2 21.2 0 37.1-4.8 49.2-11.5v-33.4c-12.1 6.1-26 9.8-43.6 9.8-17.3 0-32.5-6.1-34.5-26.9h86.9c.2-2.3.6-11.6.6-15.9zm-87.9-16.8c0-20 12.3-28.4 23.4-28.4 10.9 0 22.5 8.4 22.5 28.4zm-112.9-64.6c-17.4 0-28.6 8.2-34.8 13.9l-2.3-11H363v204.8l44.4-9.4.1-50.2c6.4 4.7 15.9 11.2 31.4 11.2 31.8 0 60.8-23.2 60.8-79.6.1-51.6-29.3-79.7-60.5-79.7zm-10.6 122.5c-10.4 0-16.6-3.8-20.9-8.4l-.3-66c4.6-5.1 11-8.8 21.2-8.8 16.2 0 27.4 18.2 27.4 41.4.1 23.9-10.9 41.8-27.4 41.8zm-126.7 33.7h44.6V183.2h-44.6z\"]\n};\nvar faStripeS = {\n prefix: 'fab',\n iconName: 'stripe-s',\n icon: [384, 512, [], \"f42a\", \"M155.3 154.6c0-22.3 18.6-30.9 48.4-30.9 43.4 0 98.5 13.3 141.9 36.7V26.1C298.3 7.2 251.1 0 203.8 0 88.1 0 11 60.4 11 161.4c0 157.9 216.8 132.3 216.8 200.4 0 26.4-22.9 34.9-54.7 34.9-47.2 0-108.2-19.5-156.1-45.5v128.5a396.09 396.09 0 0 0 156 32.4c118.6 0 200.3-51 200.3-153.6 0-170.2-218-139.7-218-203.9z\"]\n};\nvar faStudiovinari = {\n prefix: 'fab',\n iconName: 'studiovinari',\n icon: [512, 512, [], \"f3f8\", \"M480.3 187.7l4.2 28v28l-25.1 44.1-39.8 78.4-56.1 67.5-79.1 37.8-17.7 24.5-7.7 12-9.6 4s17.3-63.6 19.4-63.6c2.1 0 20.3.7 20.3.7l66.7-38.6-92.5 26.1-55.9 36.8-22.8 28-6.6 1.4 20.8-73.6 6.9-5.5 20.7 12.9 88.3-45.2 56.8-51.5 14.8-68.4-125.4 23.3 15.2-18.2-173.4-53.3 81.9-10.5-166-122.9L133.5 108 32.2 0l252.9 126.6-31.5-38L378 163 234.7 64l18.7 38.4-49.6-18.1L158.3 0l194.6 122L310 66.2l108 96.4 12-8.9-21-16.4 4.2-37.8L451 89.1l29.2 24.7 11.5 4.2-7 6.2 8.5 12-13.1 7.4-10.3 20.2 10.5 23.9z\"]\n};\nvar faStumbleupon = {\n prefix: 'fab',\n iconName: 'stumbleupon',\n icon: [512, 512, [], \"f1a4\", \"M502.9 266v69.7c0 62.1-50.3 112.4-112.4 112.4-61.8 0-112.4-49.8-112.4-111.3v-70.2l34.3 16 51.1-15.2V338c0 14.7 12 26.5 26.7 26.5S417 352.7 417 338v-72h85.9zm-224.7-58.2l34.3 16 51.1-15.2V173c0-60.5-51.1-109-112.1-109-60.8 0-112.1 48.2-112.1 108.2v162.4c0 14.9-12 26.7-26.7 26.7S86 349.5 86 334.6V266H0v69.7C0 397.7 50.3 448 112.4 448c61.6 0 112.4-49.5 112.4-110.8V176.9c0-14.7 12-26.7 26.7-26.7s26.7 12 26.7 26.7v30.9z\"]\n};\nvar faStumbleuponCircle = {\n prefix: 'fab',\n iconName: 'stumbleupon-circle',\n icon: [496, 512, [], \"f1a3\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 177.5c-9.8 0-17.8 8-17.8 17.8v106.9c0 40.9-33.9 73.9-74.9 73.9-41.4 0-74.9-33.5-74.9-74.9v-46.5h57.3v45.8c0 10 8 17.8 17.8 17.8s17.8-7.9 17.8-17.8V200.1c0-40 34.2-72.1 74.7-72.1 40.7 0 74.7 32.3 74.7 72.6v23.7l-34.1 10.1-22.9-10.7v-20.6c.1-9.6-7.9-17.6-17.7-17.6zm167.6 123.6c0 41.4-33.5 74.9-74.9 74.9-41.2 0-74.9-33.2-74.9-74.2V263l22.9 10.7 34.1-10.1v47.1c0 9.8 8 17.6 17.8 17.6s17.8-7.9 17.8-17.6v-48h57.3c-.1 45.9-.1 46.4-.1 46.4z\"]\n};\nvar faSuperpowers = {\n prefix: 'fab',\n iconName: 'superpowers',\n icon: [448, 512, [], \"f2dd\", \"M448 32c-83.3 11-166.8 22-250 33-92 12.5-163.3 86.7-169 180-3.3 55.5 18 109.5 57.8 148.2L0 480c83.3-11 166.5-22 249.8-33 91.8-12.5 163.3-86.8 168.7-179.8 3.5-55.5-18-109.5-57.7-148.2L448 32zm-79.7 232.3c-4.2 79.5-74 139.2-152.8 134.5-79.5-4.7-140.7-71-136.3-151 4.5-79.2 74.3-139.3 153-134.5 79.3 4.7 140.5 71 136.1 151z\"]\n};\nvar faSupple = {\n prefix: 'fab',\n iconName: 'supple',\n icon: [640, 512, [], \"f3f9\", \"M640 262.5c0 64.1-109 116.1-243.5 116.1-24.8 0-48.6-1.8-71.1-5 7.7.4 15.5.6 23.4.6 134.5 0 243.5-56.9 243.5-127.1 0-29.4-19.1-56.4-51.2-78 60 21.1 98.9 55.1 98.9 93.4zM47.7 227.9c-.1-70.2 108.8-127.3 243.3-127.6 7.9 0 15.6.2 23.3.5-22.5-3.2-46.3-4.9-71-4.9C108.8 96.3-.1 148.5 0 212.6c.1 38.3 39.1 72.3 99.3 93.3-32.3-21.5-51.5-48.6-51.6-78zm60.2 39.9s10.5 13.2 29.3 13.2c17.9 0 28.4-11.5 28.4-25.1 0-28-40.2-25.1-40.2-39.7 0-5.4 5.3-9.1 12.5-9.1 5.7 0 11.3 2.6 11.3 6.6v3.9h14.2v-7.9c0-12.1-15.4-16.8-25.4-16.8-16.5 0-28.5 10.2-28.5 24.1 0 26.6 40.2 25.4 40.2 39.9 0 6.6-5.8 10.1-12.3 10.1-11.9 0-20.7-10.1-20.7-10.1l-8.8 10.9zm120.8-73.6v54.4c0 11.3-7.1 17.8-17.8 17.8-10.7 0-17.8-6.5-17.8-17.7v-54.5h-15.8v55c0 18.9 13.4 31.9 33.7 31.9 20.1 0 33.4-13 33.4-31.9v-55h-15.7zm34.4 85.4h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.8-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5.1 14.7-14 14.7h-12.6zm57 43h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.7-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5 14.7-14 14.7h-12.6zm57.1 34.8c0 5.8 2.4 8.2 8.2 8.2h37.6c5.8 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-18.6c-1.7 0-2.6-1-2.6-2.6v-61.2c0-5.7-2.4-8.2-8.2-8.2H401v13.4h5.2c1.7 0 2.6 1 2.6 2.6v61.2zm63.4 0c0 5.8 2.4 8.2 8.2 8.2H519c5.7 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-19.7c-1.7 0-2.6-1-2.6-2.6v-20.3h27.7v-13.4H488v-22.4h19.2c1.7 0 2.6 1 2.6 2.6v5.2H524v-13c0-5.7-2.5-8.2-8.2-8.2h-51.6v13.4h7.8v63.9zm58.9-76v5.9h1.6v-5.9h2.7v-1.2h-7v1.2h2.7zm5.7-1.2v7.1h1.5v-5.7l2.3 5.7h1.3l2.3-5.7v5.7h1.5v-7.1h-2.3l-2.1 5.1-2.1-5.1h-2.4z\"]\n};\nvar faSuse = {\n prefix: 'fab',\n iconName: 'suse',\n icon: [640, 512, [], \"f7d6\", \"M471.08 102.66s-.3 18.3-.3 20.3c-9.1-3-74.4-24.1-135.7-26.3-51.9-1.8-122.8-4.3-223 57.3-19.4 12.4-73.9 46.1-99.6 109.7C7 277-.12 307 7 335.06a111 111 0 0 0 16.5 35.7c17.4 25 46.6 41.6 78.1 44.4 44.4 3.9 78.1-16 90-53.3 8.2-25.8 0-63.6-31.5-82.9-25.6-15.7-53.3-12.1-69.2-1.6-13.9 9.2-21.8 23.5-21.6 39.2.3 27.8 24.3 42.6 41.5 42.6a49 49 0 0 0 15.8-2.7c6.5-1.8 13.3-6.5 13.3-14.9 0-12.1-11.6-14.8-16.8-13.9-2.9.5-4.5 2-11.8 2.4-2-.2-12-3.1-12-14V316c.2-12.3 13.2-18 25.5-16.9 32.3 2.8 47.7 40.7 28.5 65.7-18.3 23.7-76.6 23.2-99.7-20.4-26-49.2 12.7-111.2 87-98.4 33.2 5.7 83.6 35.5 102.4 104.3h45.9c-5.7-17.6-8.9-68.3 42.7-68.3 56.7 0 63.9 39.9 79.8 68.3H460c-12.8-18.3-21.7-38.7-18.9-55.8 5.6-33.8 39.7-18.4 82.4-17.4 66.5.4 102.1-27 103.1-28 3.7-3.1 6.5-15.8 7-17.7 1.3-5.1-3.2-2.4-3.2-2.4-8.7 5.2-30.5 15.2-50.9 15.6-25.3.5-76.2-25.4-81.6-28.2-.3-.4.1 1.2-11-25.5 88.4 58.3 118.3 40.5 145.2 21.7.8-.6 4.3-2.9 3.6-5.7-13.8-48.1-22.4-62.7-34.5-69.6-37-21.6-125-34.7-129.2-35.3.1-.1-.9-.3-.9.7zm60.4 72.8a37.54 37.54 0 0 1 38.9-36.3c33.4 1.2 48.8 42.3 24.4 65.2-24.2 22.7-64.4 4.6-63.3-28.9zm38.6-25.3a26.27 26.27 0 1 0 25.4 27.2 26.19 26.19 0 0 0-25.4-27.2zm4.3 28.8c-15.4 0-15.4-15.6 0-15.6s15.4 15.64 0 15.64z\"]\n};\nvar faSwift = {\n prefix: 'fab',\n iconName: 'swift',\n icon: [448, 512, [], \"f8e1\", \"M448 156.09c0-4.51-.08-9-.2-13.52a196.31 196.31 0 0 0-2.58-29.42 99.62 99.62 0 0 0-9.22-28A94.08 94.08 0 0 0 394.84 44a99.17 99.17 0 0 0-28-9.22 195 195 0 0 0-29.43-2.59c-4.51-.12-9-.17-13.52-.2H124.14c-4.51 0-9 .08-13.52.2-2.45.07-4.91.15-7.37.27a171.68 171.68 0 0 0-22.06 2.32 103.06 103.06 0 0 0-21.21 6.1q-3.46 1.45-6.81 3.12a94.66 94.66 0 0 0-18.39 12.32c-1.88 1.61-3.69 3.28-5.43 5A93.86 93.86 0 0 0 12 85.17a99.45 99.45 0 0 0-9.22 28 196.31 196.31 0 0 0-2.54 29.4c-.13 4.51-.18 9-.21 13.52v199.83c0 4.51.08 9 .21 13.51a196.08 196.08 0 0 0 2.58 29.42 99.3 99.3 0 0 0 9.22 28A94.31 94.31 0 0 0 53.17 468a99.47 99.47 0 0 0 28 9.21 195 195 0 0 0 29.43 2.59c4.5.12 9 .17 13.52.2H323.91c4.51 0 9-.08 13.52-.2a196.59 196.59 0 0 0 29.44-2.59 99.57 99.57 0 0 0 28-9.21A94.22 94.22 0 0 0 436 426.84a99.3 99.3 0 0 0 9.22-28 194.79 194.79 0 0 0 2.59-29.42c.12-4.5.17-9 .2-13.51V172.14c-.01-5.35-.01-10.7-.01-16.05zm-69.88 241c-20-38.93-57.23-29.27-76.31-19.47-1.72 1-3.48 2-5.25 3l-.42.25c-39.5 21-92.53 22.54-145.85-.38A234.64 234.64 0 0 1 45 290.12a230.63 230.63 0 0 0 39.17 23.37c56.36 26.4 113 24.49 153 0-57-43.85-104.6-101-141.09-147.22a197.09 197.09 0 0 1-18.78-25.9c43.7 40 112.7 90.22 137.48 104.12-52.57-55.49-98.89-123.94-96.72-121.74 82.79 83.42 159.18 130.59 159.18 130.59 2.88 1.58 5 2.85 6.73 4a127.44 127.44 0 0 0 4.16-12.47c13.22-48.33-1.66-103.58-35.31-149.2C329.61 141.75 375 229.34 356.4 303.42c-.44 1.73-.95 3.4-1.44 5.09 38.52 47.4 28.04 98.17 23.13 88.59z\"]\n};\nvar faSymfony = {\n prefix: 'fab',\n iconName: 'symfony',\n icon: [512, 512, [], \"f83d\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm133.74 143.54c-11.47.41-19.4-6.45-19.77-16.87-.27-9.18 6.68-13.44 6.53-18.85-.23-6.55-10.16-6.82-12.87-6.67-39.78 1.29-48.59 57-58.89 113.85 21.43 3.15 36.65-.72 45.14-6.22 12-7.75-3.34-15.72-1.42-24.56 4-18.16 32.55-19 32 5.3-.36 17.86-25.92 41.81-77.6 35.7-10.76 59.52-18.35 115-58.2 161.72-29 34.46-58.4 39.82-71.58 40.26-24.65.85-41-12.31-41.58-29.84-.56-17 14.45-26.26 24.31-26.59 21.89-.75 30.12 25.67 14.88 34-12.09 9.71.11 12.61 2.05 12.55 10.42-.36 17.34-5.51 22.18-9 24-20 33.24-54.86 45.35-118.35 8.19-49.66 17-78 18.23-82-16.93-12.75-27.08-28.55-49.85-34.72-15.61-4.23-25.12-.63-31.81 7.83-7.92 10-5.29 23 2.37 30.7l12.63 14c15.51 17.93 24 31.87 20.8 50.62-5.06 29.93-40.72 52.9-82.88 39.94-36-11.11-42.7-36.56-38.38-50.62 7.51-24.15 42.36-11.72 34.62 13.6-2.79 8.6-4.92 8.68-6.28 13.07-4.56 14.77 41.85 28.4 51-1.39 4.47-14.52-5.3-21.71-22.25-39.85-28.47-31.75-16-65.49 2.95-79.67C204.23 140.13 251.94 197 262 205.29c37.17-109 100.53-105.46 102.43-105.53 25.16-.81 44.19 10.59 44.83 28.65.25 7.69-4.17 22.59-19.52 23.13z\"]\n};\nvar faTeamspeak = {\n prefix: 'fab',\n iconName: 'teamspeak',\n icon: [512, 512, [], \"f4f9\", \"M244.2 346.79c2.4-12.3-12-30-32.4-48.7-20.9-19.2-48.2-39.1-63.4-46.6-21.7-12-41.7-1.8-46.3 22.7-5 26.2 0 51.4 14.5 73.9 10.2 15.5 25.4 22.7 43.4 24 11.6.6 52.5 2.2 61.7-1 11.9-4.3 20.1-11.8 22.5-24.3zm205 20.8a5.22 5.22 0 0 0-8.3 2.4c-8 25.4-44.7 112.5-172.1 121.5-149.7 10.5 80.3 43.6 145.4-6.4 22.7-17.4 47.6-35 46.6-85.4-.4-10.1-4.9-26.69-11.6-32.1zm62-122.4c-.3-18.9-8.6-33.4-26-42.2-2.9-1.3-5-2.7-5.9-6.4A222.64 222.64 0 0 0 438.9 103c-1.1-1.5-3.5-3.2-2.2-5 8.5-11.5-.3-18-7-24.4Q321.4-31.11 177.4 13.09c-40.1 12.3-73.9 35.6-102 67.4-4 4.3-6.7 9.1-3 14.5 3 4 1.3 6.2-1 9.3C51.6 132 38.2 162.59 32.1 196c-.7 4.3-2.9 6-6.4 7.8-14.2 7-22.5 18.5-24.9 34L0 264.29v20.9c0 30.8 21 50.4 51.8 49 7.7-.3 11.7-4.3 12-11.5 2-77.5-2.4-95.4 3.7-125.8C92.1 72.39 234.3 5 345.3 65.39 411.4 102 445.7 159 447.6 234.79c.8 28.2 0 56.5 0 84.6 0 7 2.2 12.5 9.4 14.2 24.1 5 49.2-12 53.2-36.7 2.9-17.1 1-34.5 1-51.7zm-159.6 131.5c36.5 2.8 59.3-28.5 58.4-60.5-2.1-45.2-66.2-16.5-87.8-8-73.2 28.1-45 54.9-22.2 60.8z\"]\n};\nvar faTelegram = {\n prefix: 'fab',\n iconName: 'telegram',\n icon: [496, 512, [], \"f2c6\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm121.8 169.9l-40.7 191.8c-3 13.6-11.1 16.9-22.4 10.5l-62-45.7-29.9 28.8c-3.3 3.3-6.1 6.1-12.5 6.1l4.4-63.1 114.9-103.8c5-4.4-1.1-6.9-7.7-2.5l-142 89.4-61.2-19.1c-13.3-4.2-13.6-13.3 2.8-19.7l239.1-92.2c11.1-4 20.8 2.7 17.2 19.5z\"]\n};\nvar faTelegramPlane = {\n prefix: 'fab',\n iconName: 'telegram-plane',\n icon: [448, 512, [], \"f3fe\", \"M446.7 98.6l-67.6 318.8c-5.1 22.5-18.4 28.1-37.3 17.5l-103-75.9-49.7 47.8c-5.5 5.5-10.1 10.1-20.7 10.1l7.4-104.9 190.9-172.5c8.3-7.4-1.8-11.5-12.9-4.1L117.8 284 16.2 252.2c-22.1-6.9-22.5-22.1 4.6-32.7L418.2 66.4c18.4-6.9 34.5 4.1 28.5 32.2z\"]\n};\nvar faTencentWeibo = {\n prefix: 'fab',\n iconName: 'tencent-weibo',\n icon: [384, 512, [], \"f1d5\", \"M72.3 495.8c1.4 19.9-27.6 22.2-29.7 2.9C31 368.8 73.7 259.2 144 185.5c-15.6-34 9.2-77.1 50.6-77.1 30.3 0 55.1 24.6 55.1 55.1 0 44-49.5 70.8-86.9 45.1-65.7 71.3-101.4 169.8-90.5 287.2zM192 .1C66.1.1-12.3 134.3 43.7 242.4 52.4 259.8 79 246.9 70 229 23.7 136.4 91 29.8 192 29.8c75.4 0 136.9 61.4 136.9 136.9 0 90.8-86.9 153.9-167.7 133.1-19.1-4.1-25.6 24.4-6.6 29.1 110.7 23.2 204-60 204-162.3C358.6 74.7 284 .1 192 .1z\"]\n};\nvar faTheRedYeti = {\n prefix: 'fab',\n iconName: 'the-red-yeti',\n icon: [512, 512, [], \"f69d\", \"M488.23 241.7l20.7 7.1c-9.6-23.9-23.9-37-31.7-44.8l7.1-18.2c.2 0 12.3-27.8-2.5-30.7-.6-11.3-6.6-27-18.4-27-7.6-10.6-17.7-12.3-30.7-5.9a122.2 122.2 0 0 0-25.3 16.5c-5.3-6.4-3 .4-3-29.8-37.1-24.3-45.4-11.7-74.8 3l.5.5a239.36 239.36 0 0 0-68.4-13.3c-5.5-8.7-18.6-19.1-25.1-25.1l24.8 7.1c-5.5-5.5-26.8-12.9-34.2-15.2 18.2-4.1 29.8-20.8 42.5-33-34.9-10.1-67.9-5.9-97.9 11.8l12-44.2L182 0c-31.6 24.2-33 41.9-33.7 45.5-.9-2.4-6.3-19.6-15.2-27a35.12 35.12 0 0 0-.5 25.3c3 8.4 5.9 14.8 8.4 18.9-16-3.3-28.3-4.9-49.2 0h-3.7l33 14.3a194.26 194.26 0 0 0-46.7 67.4l-1.7 8.4 1.7 1.7 7.6-4.7c-3.3 11.6-5.3 19.4-6.6 25.8a200.18 200.18 0 0 0-27.8 40.3c-15 1-31.8 10.8-40.3 14.3l3 3.4 28.8 1c-.5 1-.7 2.2-1.2 3.2-7.3 6.4-39.8 37.7-33 80.7l20.2-22.4c.5 1.7.7 3.4 1.2 5.2 0 25.5.4 89.6 64.9 150.5 43.6 40 96 60.2 157.5 60.2 121.7 0 223-87.3 223-211.5 6.8-9.7-1.2 3 16.7-25.1l13 14.3 2.5-.5A181.84 181.84 0 0 0 495 255a44.74 44.74 0 0 0-6.8-13.3zM398 111.2l-.5 21.9c5.5 18.1 16.9 17.2 22.4 17.2l-3.4-4.7 22.4-5.4a242.44 242.44 0 0 1-27 0c12.8-2.1 33.3-29 43-11.3 3.4 7.6 6.4 17.2 9.3 27.8l1.7-5.9a56.38 56.38 0 0 1-1.7-15.2c5.4.5 8.8 3.4 9.3 10.1.5 6.4 1.7 14.8 3.4 25.3l4.7-11.3c4.6 0 4.5-3.6-2.5 20.7-20.9-8.7-35.1-8.4-46.5-8.4l18.2-16c-25.3 8.2-33 10.8-54.8 20.9-1.1-5.4-5-13.5-16-19.9-3.2 3.8-2.8.9-.7 14.8h-2.5a62.32 62.32 0 0 0-8.4-23.1l4.2-3.4c8.4-7.1 11.8-14.3 10.6-21.9-.5-6.4-5.4-13.5-13.5-20.7 5.6-3.4 15.2-.4 28.3 8.5zm-39.6-10.1c2.7 1.9 11.4 5.4 18.9 17.2 4.2 8.4 4 9.8 3.4 11.1-.5 2.4-.5 4.3-3 7.1-1.7 2.5-5.4 4.7-11.8 7.6-7.6-13-16.5-23.6-27.8-31.2zM91 143.1l1.2-1.7c1.2-2.9 4.2-7.6 9.3-15.2l2.5-3.4-13 12.3 5.4-4.7-10.1 9.3-4.2 1.2c12.3-24.1 23.1-41.3 32.5-50.2 9.3-9.3 16-16 20.2-19.4l-6.4 1.2c-11.3-4.2-19.4-7.1-24.8-8.4 2.5-.5 3.7-.5 3.2-.5 10.3 0 17.5.5 20.9 1.2a52.35 52.35 0 0 0 16 2.5l.5-1.7-8.4-35.8 13.5 29a42.89 42.89 0 0 0 5.9-14.3c1.7-6.4 5.4-13 10.1-19.4s7.6-10.6 9.3-11.3a234.68 234.68 0 0 0-6.4 25.3l-1.7 7.1-.5 4.7 2.5 2.5C190.4 39.9 214 34 239.8 34.5l21.1.5c-11.8 13.5-27.8 21.9-48.5 24.8a201.26 201.26 0 0 1-23.4 2.9l-.2-.5-2.5-1.2a20.75 20.75 0 0 0-14 2c-2.5-.2-4.9-.5-7.1-.7l-2.5 1.7.5 1.2c2 .2 3.9.5 6.2.7l-2 3.4 3.4-.5-10.6 11.3c-4.2 3-5.4 6.4-4.2 9.3l5.4-3.4h1.2a39.4 39.4 0 0 1 25.3-15.2v-3c6.4.5 13 1 19.4 1.2 6.4 0 8.4.5 5.4 1.2a189.6 189.6 0 0 1 20.7 13.5c13.5 10.1 23.6 21.9 30 35.4 8.8 18.2 13.5 37.1 13.5 56.6a141.13 141.13 0 0 1-3 28.3 209.91 209.91 0 0 1-16 46l2.5.5c18.2-19.7 41.9-16 49.2-16l-6.4 5.9 22.4 17.7-1.7 30.7c-5.4-12.3-16.5-21.1-33-27.8 16.5 14.8 23.6 21.1 21.9 20.2-4.8-2.8-3.5-1.9-10.8-3.7 4.1 4.1 17.5 18.8 18.2 20.7l.2.2-.2.2c0 1.8 1.6-1.2-14 22.9-75.2-15.3-106.27-42.7-141.2-63.2l11.8 1.2c-11.8-18.5-15.6-17.7-38.4-26.1L149 225c-8.8-3-18.2-3-28.3.5l7.6-10.6-1.2-1.7c-14.9 4.3-19.8 9.2-22.6 11.3-1.1-5.5-2.8-12.4-12.3-28.8l-1.2 27-13.2-5c1.5-25.2 5.4-50.5 13.2-74.6zm276.5 330c-49.9 25-56.1 22.4-59 23.9-29.8-11.8-50.9-31.7-63.5-58.8l30 16.5c-9.8-9.3-18.3-16.5-38.4-44.3l11.8 23.1-17.7-7.6c14.2 21.1 23.5 51.7 66.6 73.5-120.8 24.2-199-72.1-200.9-74.3a262.57 262.57 0 0 0 35.4 24.8c3.4 1.7 7.1 2.5 10.1 1.2l-16-20.7c9.2 4.2 9.5 4.5 69.1 29-42.5-20.7-73.8-40.8-93.2-60.2-.5 6.4-1.2 10.1-1.2 10.1a80.25 80.25 0 0 1 20.7 26.6c-39-18.9-57.6-47.6-71.3-82.6 49.9 55.1 118.9 37.5 120.5 37.1 34.8 16.4 69.9 23.6 113.9 10.6 3.3 0 20.3 17 25.3 39.1l4.2-3-2.5-23.6c9 9 24.9 22.6 34.4 13-15.6-5.3-23.5-9.5-29.5-31.7 4.6 4.2 7.6 9 27.8 15l1.2-1.2-10.5-14.2c11.7-4.8-3.5 1 32-10.8 4.3 34.3 9 49.2.7 89.5zm115.3-214.4l-2.5.5 3 9.3c-3.5 5.9-23.7 44.3-71.6 79.7-39.5 29.8-76.6 39.1-80.9 40.3l-7.6-7.1-1.2 3 14.3 16-7.1-4.7 3.4 4.2h-1.2l-21.9-13.5 9.3 26.6-19-27.9-1.2 2.5 7.6 29c-6.1-8.2-21-32.6-56.8-39.6l32.5 21.2a214.82 214.82 0 0 1-93.2-6.4c-4.2-1.2-8.9-2.5-13.5-4.2l1.2-3-44.8-22.4 26.1 22.4c-57.7 9.1-113-25.4-126.4-83.4l-2.5-16.4-22.27 22.3c19.5-57.5 25.6-57.9 51.4-70.1-9.1-5.3-1.6-3.3-38.4-9.3 15.8-5.8 33-15.4 73 5.2a18.5 18.5 0 0 1 3.7-1.7c.6-3.2.4-.8 1-11.8 3.9 10 3.6 8.7 3 9.3l1.7.5c12.7-6.5 8.9-4.5 17-8.9l-5.4 13.5 22.3-5.8-8.4 8.4 2.5 2.5c4.5-1.8 30.3 3.4 40.8 16l-23.6-2.5c39.4 23 51.5 54 55.8 69.6l1.7-1.2c-2.8-22.3-12.4-33.9-16-40.1 4.2 5 39.2 34.6 110.4 46-11.3-.5-23.1 5.4-34.9 18.9l46.7-20.2-9.3 21.9c7.6-10.1 14.8-23.6 21.2-39.6v-.5l1.2-3-1.2 16c13.5-41.8 25.3-78.5 35.4-109.7l13.5-27.8v-2l-5.4-4.2h10.1l5.9 4.2 2.5-1.2-3.4-16 12.3 18.9 41.8-20.2-14.8 13 .5 2.9 17.7-.5a184 184 0 0 1 33 4.2l-23.6 2.5-1.2 3 26.6 23.1a254.21 254.21 0 0 1 27 32c-11.2-3.3-10.3-3.4-21.2-3.4l12.3 32.5zm-6.1-71.3l-3.9 13-14.3-11.8zm-254.8 7.1c1.7 10.6 4.7 17.7 8.8 21.9-9.3 6.6-27.5 13.9-46.5 16l.5 1.2a50.22 50.22 0 0 0 24.8-2.5l-7.1 13c4.2-1.7 10.1-7.1 17.7-14.8 11.9-5.5 12.7-5.1 20.2-16-12.7-6.4-15.7-13.7-18.4-18.8zm3.7-102.3c-6.4-3.4-10.6 3-12.3 18.9s2.5 29.5 11.8 39.6 18.2 10.6 26.1 3 3.4-23.6-11.3-47.7a39.57 39.57 0 0 0-14.27-13.8zm-4.7 46.3c5.4 2.2 10.5 1.9 12.3-10.6v-4.7l-1.2.5c-4.3-3.1-2.5-4.5-1.7-6.2l.5-.5c-.9-1.2-5-8.1-12.5 4.7-.5-13.5.5-21.9 3-24.8 1.2-2.5 4.7-1.2 11.3 4.2 6.4 5.4 11.3 16 15.2 32.5 6.5 28-19.8 26.2-26.9 4.9zm-45-5.5c1.6.3 9.3-1.1 9.3-14.8h-.5c-5.4-1.1-2.2-5.5-.7-5.9-1.7-3-3.4-4.2-5.4-4.7-8.1 0-11.6 12.7-8.1 21.2a7.51 7.51 0 0 0 5.43 4.2zM216 82.9l-2.5.5.5 3a48.94 48.94 0 0 1 26.1 5.9c-2.5-5.5-10-14.3-28.3-14.3l.5 2.5zm-71.8 49.4c21.7 16.8 16.5 21.4 46.5 23.6l-2.9-4.7a42.67 42.67 0 0 0 14.8-28.3c1.7-16-1.2-29.5-8.8-41.3l13-7.6a2.26 2.26 0 0 0-.5-1.7 14.21 14.21 0 0 0-13.5 1.7c-12.7 6.7-28 20.9-29 22.4-1.7 1.7-3.4 5.9-5.4 13.5a99.61 99.61 0 0 0-2.9 23.6c-4.7-8-10.5-6.4-19.9-5.9l7.1 7.6c-16.5 0-23.3 15.4-23.6 16 6.8 0 4.6-7.6 30-12.3-4.3-6.3-3.3-5-4.9-6.6zm18.7-18.7c1.2-7.6 3.4-13 6.4-17.2 5.4-6.4 10.6-10.1 16-11.8 4.2-1.7 7.1 1.2 10.1 9.3a72.14 72.14 0 0 1 3 25.3c-.5 9.3-3.4 17.2-8.4 23.1-2.9 3.4-5.4 5.9-6.4 7.6a39.21 39.21 0 0 1-11.3-.5l-7.1-3.4-5.4-6.4c.8-10 1.3-18.8 3.1-26zm42 56.1c-34.8 14.4-34.7 14-36.1 14.3-20.8 4.7-19-24.4-18.9-24.8l5.9-1.2-.5-2.5c-20.2-2.6-31 4.2-32.5 4.9.5.5 3 3.4 5.9 9.3 4.2-6.4 8.8-10.1 15.2-10.6a83.47 83.47 0 0 0 1.7 33.7c.1.5 2.6 17.4 27.5 24.1 11.3 3 27 1.2 48.9-5.4l-9.2.5c-4.2-14.8-6.4-24.8-5.9-29.5 11.3-8.8 21.9-11.3 30.7-7.6h2.5l-11.8-7.6-7.1.5c-5.9 1.2-12.3 4.2-19.4 8.4z\"]\n};\nvar faThemeco = {\n prefix: 'fab',\n iconName: 'themeco',\n icon: [448, 512, [], \"f5c6\", \"M202.9 8.43c9.9-5.73 26-5.82 35.95-.21L430 115.85c10 5.6 18 19.44 18 30.86V364c0 11.44-8.06 25.29-18 31L238.81 503.74c-9.93 5.66-26 5.57-35.85-.21L17.86 395.12C8 389.34 0 375.38 0 364V146.71c0-11.44 8-25.36 17.91-31.08zm-77.4 199.83c-15.94 0-31.89.14-47.83.14v101.45H96.8V280h28.7c49.71 0 49.56-71.74 0-71.74zm140.14 100.29l-30.73-34.64c37-7.51 34.8-65.23-10.87-65.51-16.09 0-32.17-.14-48.26-.14v101.59h19.13v-33.91h18.41l29.56 33.91h22.76zm-41.59-82.32c23.34 0 23.26 32.46 0 32.46h-29.13v-32.46zm-95.56-1.6c21.18 0 21.11 38.85 0 38.85H96.18v-38.84zm192.65-18.25c-68.46 0-71 105.8 0 105.8 69.48-.01 69.41-105.8 0-105.8zm0 17.39c44.12 0 44.8 70.86 0 70.86s-44.43-70.86 0-70.86z\"]\n};\nvar faThemeisle = {\n prefix: 'fab',\n iconName: 'themeisle',\n icon: [512, 512, [], \"f2b2\", \"M208 88.286c0-10 6.286-21.714 17.715-21.714 11.142 0 17.714 11.714 17.714 21.714 0 10.285-6.572 21.714-17.714 21.714C214.286 110 208 98.571 208 88.286zm304 160c0 36.001-11.429 102.286-36.286 129.714-22.858 24.858-87.428 61.143-120.857 70.572l-1.143.286v32.571c0 16.286-12.572 30.571-29.143 30.571-10 0-19.429-5.714-24.572-14.286-5.427 8.572-14.856 14.286-24.856 14.286-10 0-19.429-5.714-24.858-14.286-5.142 8.572-14.571 14.286-24.57 14.286-10.286 0-19.429-5.714-24.858-14.286-5.143 8.572-14.571 14.286-24.571 14.286-18.857 0-29.429-15.714-29.429-32.857-16.286 12.285-35.715 19.428-56.571 19.428-22 0-43.429-8.285-60.286-22.857 10.285-.286 20.571-2.286 30.285-5.714-20.857-5.714-39.428-18.857-52-36.286 21.37 4.645 46.209 1.673 67.143-11.143-22-22-56.571-58.857-68.572-87.428C1.143 321.714 0 303.714 0 289.429c0-49.714 20.286-160 86.286-160 10.571 0 18.857 4.858 23.143 14.857a158.792 158.792 0 0 1 12-15.428c2-2.572 5.714-5.429 7.143-8.286 7.999-12.571 11.714-21.142 21.714-34C182.571 45.428 232 17.143 285.143 17.143c6 0 12 .285 17.714 1.143C313.714 6.571 328.857 0 344.572 0c14.571 0 29.714 6 40 16.286.857.858 1.428 2.286 1.428 3.428 0 3.714-10.285 13.429-12.857 16.286 4.286 1.429 15.714 6.858 15.714 12 0 2.857-2.857 5.143-4.571 7.143 31.429 27.714 49.429 67.143 56.286 108 4.286-5.143 10.285-8.572 17.143-8.572 10.571 0 20.857 7.144 28.571 14.001C507.143 187.143 512 221.714 512 248.286zM188 89.428c0 18.286 12.571 37.143 32.286 37.143 19.714 0 32.285-18.857 32.285-37.143 0-18-12.571-36.857-32.285-36.857-19.715 0-32.286 18.858-32.286 36.857zM237.714 194c0-19.714 3.714-39.143 8.571-58.286-52.039 79.534-13.531 184.571 68.858 184.571 21.428 0 42.571-7.714 60-20 2-7.429 3.714-14.857 3.714-22.572 0-14.286-6.286-21.428-20.572-21.428-4.571 0-9.143.857-13.429 1.714-63.343 12.668-107.142 3.669-107.142-63.999zm-41.142 254.858c0-11.143-8.858-20.857-20.286-20.857-11.429 0-20 9.715-20 20.857v32.571c0 11.143 8.571 21.142 20 21.142 11.428 0 20.286-9.715 20.286-21.142v-32.571zm49.143 0c0-11.143-8.572-20.857-20-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20-10 20-21.142v-32.571zm49.713 0c0-11.143-8.857-20.857-20.285-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20.285-9.715 20.285-21.142v-32.571zm49.715 0c0-11.143-8.857-20.857-20.286-20.857-11.428 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.858 21.142 20.286 21.142 11.429 0 20.286-10 20.286-21.142v-32.571zM421.714 286c-30.857 59.142-90.285 102.572-158.571 102.572-96.571 0-160.571-84.572-160.571-176.572 0-16.857 2-33.429 6-49.714-20 33.715-29.714 72.572-29.714 111.429 0 60.286 24.857 121.715 71.429 160.857 5.143-9.714 14.857-16.286 26-16.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.571-14.286 24.858-14.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.857-14.286 24.858-14.286 10 0 19.428 5.714 24.857 14.286 5.143-8.571 14.571-14.286 24.572-14.286 10.857 0 20.857 6.572 25.714 16 43.427-36.286 68.569-92 71.426-148.286zm10.572-99.714c0-53.714-34.571-105.714-92.572-105.714-30.285 0-58.571 15.143-78.857 36.857C240.862 183.812 233.41 254 302.286 254c28.805 0 97.357-28.538 84.286 36.857 28.857-26 45.714-65.714 45.714-104.571z\"]\n};\nvar faThinkPeaks = {\n prefix: 'fab',\n iconName: 'think-peaks',\n icon: [576, 512, [], \"f731\", \"M465.4 409.4l87.1-150.2-32-.3-55.1 95L259.2 0 23 407.4l32 .3L259.2 55.6zm-355.3-44.1h32.1l117.4-202.5L463 511.9l32.5.1-235.8-404.6z\"]\n};\nvar faTiktok = {\n prefix: 'fab',\n iconName: 'tiktok',\n icon: [448, 512, [], \"e07b\", \"M448,209.91a210.06,210.06,0,0,1-122.77-39.25V349.38A162.55,162.55,0,1,1,185,188.31V278.2a74.62,74.62,0,1,0,52.23,71.18V0l88,0a121.18,121.18,0,0,0,1.86,22.17h0A122.18,122.18,0,0,0,381,102.39a121.43,121.43,0,0,0,67,20.14Z\"]\n};\nvar faTradeFederation = {\n prefix: 'fab',\n iconName: 'trade-federation',\n icon: [496, 512, [], \"f513\", \"M248 8.8c-137 0-248 111-248 248s111 248 248 248 248-111 248-248-111-248-248-248zm0 482.8c-129.7 0-234.8-105.1-234.8-234.8S118.3 22 248 22s234.8 105.1 234.8 234.8S377.7 491.6 248 491.6zm155.1-328.5v-46.8H209.3V198H54.2l36.7 46h117.7v196.8h48.8V245h83.3v-47h-83.3v-34.8h145.7zm-73.3 45.1v23.9h-82.9v197.4h-26.8V232.1H96.3l-20.1-23.9h143.9v-80.6h171.8V152h-145v56.2zm-161.3-69l-12.4-20.7 2.1 23.8-23.5 5.4 23.3 5.4-2.1 24 12.3-20.5 22.2 9.5-15.7-18.1 15.8-18.1zm-29.6-19.7l9.3-11.5-12.7 5.9-8-12.4 1.7 13.9-14.3 3.8 13.7 2.7-.8 14.7 6.8-12.2 13.8 5.3zm165.4 145.2l-13.1 5.6-7.3-12.2 1.3 14.2-13.9 3.2 13.9 3.2-1.2 14.2 7.3-12.2 13.1 5.5-9.4-10.7zm106.9-77.2l-20.9 9.1-12-19.6 2.2 22.7-22.3 5.4 22.2 4.9-1.8 22.9 11.5-19.6 21.2 8.8-15.1-17zM248 29.9c-125.3 0-226.9 101.6-226.9 226.9S122.7 483.7 248 483.7s226.9-101.6 226.9-226.9S373.3 29.9 248 29.9zM342.6 196v51h-83.3v195.7h-52.7V245.9H89.9l-40-49.9h157.4v-81.6h197.8v50.7H259.4V196zM248 43.2c60.3 0 114.8 25 153.6 65.2H202.5V190H45.1C73.1 104.8 153.4 43.2 248 43.2zm0 427.1c-117.9 0-213.6-95.6-213.6-213.5 0-21.2 3.1-41.8 8.9-61.1L87.1 252h114.7v196.8h64.6V253h83.3v-62.7h-83.2v-19.2h145.6v-50.8c30.8 37 49.3 84.6 49.3 136.5.1 117.9-95.5 213.5-213.4 213.5zM178.8 275l-11-21.4 1.7 24.5-23.7 3.9 23.8 5.9-3.7 23.8 13-20.9 21.5 10.8-15.8-18.8 16.9-17.1z\"]\n};\nvar faTrello = {\n prefix: 'fab',\n iconName: 'trello',\n icon: [448, 512, [], \"f181\", \"M392.3 32H56.1C25.1 32 0 57.1 0 88c-.1 0 0-4 0 336 0 30.9 25.1 56 56 56h336.2c30.8-.2 55.7-25.2 55.7-56V88c.1-30.8-24.8-55.8-55.6-56zM197 371.3c-.2 14.7-12.1 26.6-26.9 26.6H87.4c-14.8.1-26.9-11.8-27-26.6V117.1c0-14.8 12-26.9 26.9-26.9h82.9c14.8 0 26.9 12 26.9 26.9v254.2zm193.1-112c0 14.8-12 26.9-26.9 26.9h-81c-14.8 0-26.9-12-26.9-26.9V117.2c0-14.8 12-26.9 26.8-26.9h81.1c14.8 0 26.9 12 26.9 26.9v142.1z\"]\n};\nvar faTumblr = {\n prefix: 'fab',\n iconName: 'tumblr',\n icon: [320, 512, [], \"f173\", \"M309.8 480.3c-13.6 14.5-50 31.7-97.4 31.7-120.8 0-147-88.8-147-140.6v-144H17.9c-5.5 0-10-4.5-10-10v-68c0-7.2 4.5-13.6 11.3-16 62-21.8 81.5-76 84.3-117.1.8-11 6.5-16.3 16.1-16.3h70.9c5.5 0 10 4.5 10 10v115.2h83c5.5 0 10 4.4 10 9.9v81.7c0 5.5-4.5 10-10 10h-83.4V360c0 34.2 23.7 53.6 68 35.8 4.8-1.9 9-3.2 12.7-2.2 3.5.9 5.8 3.4 7.4 7.9l22 64.3c1.8 5 3.3 10.6-.4 14.5z\"]\n};\nvar faTumblrSquare = {\n prefix: 'fab',\n iconName: 'tumblr-square',\n icon: [448, 512, [], \"f174\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-82.3 364.2c-8.5 9.1-31.2 19.8-60.9 19.8-75.5 0-91.9-55.5-91.9-87.9v-90h-29.7c-3.4 0-6.2-2.8-6.2-6.2v-42.5c0-4.5 2.8-8.5 7.1-10 38.8-13.7 50.9-47.5 52.7-73.2.5-6.9 4.1-10.2 10-10.2h44.3c3.4 0 6.2 2.8 6.2 6.2v72h51.9c3.4 0 6.2 2.8 6.2 6.2v51.1c0 3.4-2.8 6.2-6.2 6.2h-52.1V321c0 21.4 14.8 33.5 42.5 22.4 3-1.2 5.6-2 8-1.4 2.2.5 3.6 2.1 4.6 4.9l13.8 40.2c1 3.2 2 6.7-.3 9.1z\"]\n};\nvar faTwitch = {\n prefix: 'fab',\n iconName: 'twitch',\n icon: [512, 512, [], \"f1e8\", \"M391.17,103.47H352.54v109.7h38.63ZM285,103H246.37V212.75H285ZM120.83,0,24.31,91.42V420.58H140.14V512l96.53-91.42h77.25L487.69,256V0ZM449.07,237.75l-77.22,73.12H294.61l-67.6,64v-64H140.14V36.58H449.07Z\"]\n};\nvar faTwitter = {\n prefix: 'fab',\n iconName: 'twitter',\n icon: [512, 512, [], \"f099\", \"M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z\"]\n};\nvar faTwitterSquare = {\n prefix: 'fab',\n iconName: 'twitter-square',\n icon: [448, 512, [], \"f081\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-48.9 158.8c.2 2.8.2 5.7.2 8.5 0 86.7-66 186.6-186.6 186.6-37.2 0-71.7-10.8-100.7-29.4 5.3.6 10.4.8 15.8.8 30.7 0 58.9-10.4 81.4-28-28.8-.6-53-19.5-61.3-45.5 10.1 1.5 19.2 1.5 29.6-1.2-30-6.1-52.5-32.5-52.5-64.4v-.8c8.7 4.9 18.9 7.9 29.6 8.3a65.447 65.447 0 0 1-29.2-54.6c0-12.2 3.2-23.4 8.9-33.1 32.3 39.8 80.8 65.8 135.2 68.6-9.3-44.5 24-80.6 64-80.6 18.9 0 35.9 7.9 47.9 20.7 14.8-2.8 29-8.3 41.6-15.8-4.9 15.2-15.2 28-28.8 36.1 13.2-1.4 26-5.1 37.8-10.2-8.9 13.1-20.1 24.7-32.9 34z\"]\n};\nvar faTypo3 = {\n prefix: 'fab',\n iconName: 'typo3',\n icon: [448, 512, [], \"f42b\", \"M178.7 78.4c0-24.7 5.4-32.4 13.9-39.4-69.5 8.5-149.3 34-176.3 66.4-5.4 7.7-9.3 20.8-9.3 37.1C7 246 113.8 480 191.1 480c36.3 0 97.3-59.5 146.7-139-7 2.3-11.6 2.3-18.5 2.3-57.2 0-140.6-198.5-140.6-264.9zM301.5 32c-30.1 0-41.7 5.4-41.7 36.3 0 66.4 53.8 198.5 101.7 198.5 26.3 0 78.8-99.7 78.8-182.3 0-40.9-67-52.5-138.8-52.5z\"]\n};\nvar faUber = {\n prefix: 'fab',\n iconName: 'uber',\n icon: [448, 512, [], \"f402\", \"M414.1 32H33.9C15.2 32 0 47.2 0 65.9V446c0 18.8 15.2 34 33.9 34H414c18.7 0 33.9-15.2 33.9-33.9V65.9C448 47.2 432.8 32 414.1 32zM237.6 391.1C163 398.6 96.4 344.2 88.9 269.6h94.4V290c0 3.7 3 6.8 6.8 6.8H258c3.7 0 6.8-3 6.8-6.8v-67.9c0-3.7-3-6.8-6.8-6.8h-67.9c-3.7 0-6.8 3-6.8 6.8v20.4H88.9c7-69.4 65.4-122.2 135.1-122.2 69.7 0 128.1 52.8 135.1 122.2 7.5 74.5-46.9 141.1-121.5 148.6z\"]\n};\nvar faUbuntu = {\n prefix: 'fab',\n iconName: 'ubuntu',\n icon: [496, 512, [], \"f7df\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm52.7 93c8.8-15.2 28.3-20.5 43.5-11.7 15.3 8.8 20.5 28.3 11.7 43.6-8.8 15.2-28.3 20.5-43.5 11.7-15.3-8.9-20.5-28.4-11.7-43.6zM87.4 287.9c-17.6 0-31.9-14.3-31.9-31.9 0-17.6 14.3-31.9 31.9-31.9 17.6 0 31.9 14.3 31.9 31.9 0 17.6-14.3 31.9-31.9 31.9zm28.1 3.1c22.3-17.9 22.4-51.9 0-69.9 8.6-32.8 29.1-60.7 56.5-79.1l23.7 39.6c-51.5 36.3-51.5 112.5 0 148.8L172 370c-27.4-18.3-47.8-46.3-56.5-79zm228.7 131.7c-15.3 8.8-34.7 3.6-43.5-11.7-8.8-15.3-3.6-34.8 11.7-43.6 15.2-8.8 34.7-3.6 43.5 11.7 8.8 15.3 3.6 34.8-11.7 43.6zm.3-69.5c-26.7-10.3-56.1 6.6-60.5 35-5.2 1.4-48.9 14.3-96.7-9.4l22.5-40.3c57 26.5 123.4-11.7 128.9-74.4l46.1.7c-2.3 34.5-17.3 65.5-40.3 88.4zm-5.9-105.3c-5.4-62-71.3-101.2-128.9-74.4l-22.5-40.3c47.9-23.7 91.5-10.8 96.7-9.4 4.4 28.3 33.8 45.3 60.5 35 23.1 22.9 38 53.9 40.2 88.5l-46 .6z\"]\n};\nvar faUikit = {\n prefix: 'fab',\n iconName: 'uikit',\n icon: [448, 512, [], \"f403\", \"M443.9 128v256L218 512 0 384V169.7l87.6 45.1v117l133.5 75.5 135.8-75.5v-151l-101.1-57.6 87.6-53.1L443.9 128zM308.6 49.1L223.8 0l-88.6 54.8 86 47.3 87.4-53z\"]\n};\nvar faUmbraco = {\n prefix: 'fab',\n iconName: 'umbraco',\n icon: [510, 512, [], \"f8e8\", \"M255.35 8C118.36 7.83 7.14 118.72 7 255.68c-.07 137 111 248.2 248 248.27 136.85 0 247.82-110.7 248-247.67S392.34 8.17 255.35 8zm145 266q-1.14 40.68-14 65t-43.51 35q-30.61 10.7-85.45 10.47h-4.6q-54.78.22-85.44-10.47t-43.52-35q-12.85-24.36-14-65a224.81 224.81 0 0 1 0-30.71 418.37 418.37 0 0 1 3.6-43.88c1.88-13.39 3.57-22.58 5.4-32 1-4.88 1.28-6.42 1.82-8.45a5.09 5.09 0 0 1 4.9-3.89h.69l32 5a5.07 5.07 0 0 1 4.16 5 5 5 0 0 1 0 .77l-1.7 8.78q-2.41 13.25-4.84 33.68a380.62 380.62 0 0 0-2.64 42.15q-.28 40.43 8.13 59.83a43.87 43.87 0 0 0 31.31 25.18A243 243 0 0 0 250 340.6h10.25a242.64 242.64 0 0 0 57.27-5.16 43.86 43.86 0 0 0 31.15-25.23q8.53-19.42 8.13-59.78a388 388 0 0 0-2.6-42.15q-2.48-20.38-4.89-33.68l-1.69-8.78a5 5 0 0 1 0-.77 5 5 0 0 1 4.2-5l32-5h.82a5 5 0 0 1 4.9 3.89c.55 2.05.81 3.57 1.83 8.45 1.82 9.62 3.52 18.78 5.39 32a415.71 415.71 0 0 1 3.61 43.88 228.06 228.06 0 0 1-.04 30.73z\"]\n};\nvar faUncharted = {\n prefix: 'fab',\n iconName: 'uncharted',\n icon: [448, 512, [], \"e084\", \"M171.73,232.813A5.381,5.381,0,0,0,176.7,229.5,48.081,48.081,0,0,1,191.6,204.244c1.243-.828,1.657-2.484,1.657-4.141a4.22,4.22,0,0,0-2.071-3.312L74.429,128.473,148.958,85a9.941,9.941,0,0,0,4.968-8.281,9.108,9.108,0,0,0-4.968-8.281L126.6,55.6a9.748,9.748,0,0,0-9.523,0l-100.2,57.966a9.943,9.943,0,0,0-4.969,8.281V236.954a9.109,9.109,0,0,0,4.969,8.281L39.235,258.07a8.829,8.829,0,0,0,4.968,1.242,9.4,9.4,0,0,0,6.625-2.484,10.8,10.8,0,0,0,2.9-7.039V164.5L169.66,232.4A4.5,4.5,0,0,0,171.73,232.813ZM323.272,377.73a12.478,12.478,0,0,0-4.969,1.242l-74.528,43.062V287.882c0-2.9-2.9-5.8-6.211-4.555a53.036,53.036,0,0,1-28.984.414,4.86,4.86,0,0,0-6.21,4.555V421.619l-74.529-43.061a8.83,8.83,0,0,0-4.969-1.242,9.631,9.631,0,0,0-9.523,9.523v26.085a9.107,9.107,0,0,0,4.969,8.281l100.2,57.553A8.829,8.829,0,0,0,223.486,480a11.027,11.027,0,0,0,4.969-1.242l100.2-57.553a9.941,9.941,0,0,0,4.968-8.281V386.839C332.8,382.285,328.24,377.73,323.272,377.73ZM286.007,78a23,23,0,1,0-23-23A23,23,0,0,0,286.007,78Zm63.627-10.086a23,23,0,1,0,23,23A23,23,0,0,0,349.634,67.914ZM412.816,151.6a23,23,0,1,0-23-23A23,23,0,0,0,412.816,151.6Zm-63.182-9.2a23,23,0,1,0,23,23A23,23,0,0,0,349.634,142.4Zm-63.627,83.244a23,23,0,1,0-23-23A23,23,0,0,0,286.007,225.648Zm-62.074,36.358a23,23,0,1,0-23-23A23,23,0,0,0,223.933,262.006Zm188.883-82.358a23,23,0,1,0,23,23A23,23,0,0,0,412.816,179.648Zm0,72.272a23,23,0,1,0,23,23A23,23,0,0,0,412.816,251.92Z\"]\n};\nvar faUniregistry = {\n prefix: 'fab',\n iconName: 'uniregistry',\n icon: [384, 512, [], \"f404\", \"M192 480c39.5 0 76.2-11.8 106.8-32.2H85.3C115.8 468.2 152.5 480 192 480zm-89.1-193.1v-12.4H0v12.4c0 2.5 0 5 .1 7.4h103.1c-.2-2.4-.3-4.9-.3-7.4zm20.5 57H8.5c2.6 8.5 5.8 16.8 9.6 24.8h138.3c-12.9-5.7-24.1-14.2-33-24.8zm-17.7-34.7H1.3c.9 7.6 2.2 15 3.9 22.3h109.7c-4-6.9-7.2-14.4-9.2-22.3zm-2.8-69.3H0v17.3h102.9zm0-173.2H0v4.9h102.9zm0-34.7H0v2.5h102.9zm0 69.3H0v7.4h102.9zm0 104H0v14.8h102.9zm0-69.3H0v9.9h102.9zm0 34.6H0V183h102.9zm166.2 160.9h109.7c1.8-7.3 3.1-14.7 3.9-22.3H278.3c-2.1 7.9-5.2 15.4-9.2 22.3zm12-185.7H384V136H281.1zm0 37.2H384v-12.4H281.1zm0-74.3H384v-7.4H281.1zm0-76.7v2.5H384V32zm-203 410.9h227.7c11.8-8.7 22.7-18.6 32.2-29.7H44.9c9.6 11 21.4 21 33.2 29.7zm203-371.3H384v-4.9H281.1zm0 148.5H384v-14.8H281.1zM38.8 405.7h305.3c6.7-8.5 12.6-17.6 17.8-27.2H23c5.2 9.6 9.2 18.7 15.8 27.2zm188.8-37.1H367c3.7-8 5.8-16.2 8.5-24.8h-115c-8.8 10.7-20.1 19.2-32.9 24.8zm53.5-81.7c0 2.5-.1 5-.4 7.4h103.1c.1-2.5.2-4.9.2-7.4v-12.4H281.1zm0-29.7H384v-17.3H281.1z\"]\n};\nvar faUnity = {\n prefix: 'fab',\n iconName: 'unity',\n icon: [576, 512, [], \"e049\", \"M498.11,206.4,445.31,14.72,248.2,66.08,219,116.14l-59.2-.43L15.54,256,159.82,396.32l59.17-.43,29.24,50,197.08,51.36,52.8-191.62-30-49.63ZM223.77,124.2,374.55,86.51,288,232.33H114.87Zm0,263.63L114.87,279.71H288l86.55,145.81Zm193,14L330.17,256l86.58-145.84L458.56,256Z\"]\n};\nvar faUnsplash = {\n prefix: 'fab',\n iconName: 'unsplash',\n icon: [448, 512, [], \"e07c\", \"M448,230.17V480H0V230.17H141.13V355.09H306.87V230.17ZM306.87,32H141.13V156.91H306.87Z\"]\n};\nvar faUntappd = {\n prefix: 'fab',\n iconName: 'untappd',\n icon: [640, 512, [], \"f405\", \"M401.3 49.9c-79.8 160.1-84.6 152.5-87.9 173.2l-5.2 32.8c-1.9 12-6.6 23.5-13.7 33.4L145.6 497.1c-7.6 10.6-20.4 16.2-33.4 14.6-40.3-5-77.8-32.2-95.3-68.5-5.7-11.8-4.5-25.8 3.1-36.4l148.9-207.9c7.1-9.9 16.4-18 27.2-23.7l29.3-15.5c18.5-9.8 9.7-11.9 135.6-138.9 1-4.8 1-7.3 3.6-8 3-.7 6.6-1 6.3-4.6l-.4-4.6c-.2-1.9 1.3-3.6 3.2-3.6 4.5-.1 13.2 1.2 25.6 10 12.3 8.9 16.4 16.8 17.7 21.1.6 1.8-.6 3.7-2.4 4.2l-4.5 1.1c-3.4.9-2.5 4.4-2.3 7.4.1 2.8-2.3 3.6-6.5 6.1zM230.1 36.4c3.4.9 2.5 4.4 2.3 7.4-.2 2.7 2.1 3.5 6.4 6 7.9 15.9 15.3 30.5 22.2 44 .7 1.3 2.3 1.5 3.3.5 11.2-12 24.6-26.2 40.5-42.6 1.3-1.4 1.4-3.5.1-4.9-8-8.2-16.5-16.9-25.6-26.1-1-4.7-1-7.3-3.6-8-3-.8-6.6-1-6.3-4.6.3-3.3 1.4-8.1-2.8-8.2-4.5-.1-13.2 1.1-25.6 10-12.3 8.9-16.4 16.8-17.7 21.1-1.4 4.2 3.6 4.6 6.8 5.4zM620 406.7L471.2 198.8c-13.2-18.5-26.6-23.4-56.4-39.1-11.2-5.9-14.2-10.9-30.5-28.9-1-1.1-2.9-.9-3.6.5-46.3 88.8-47.1 82.8-49 94.8-1.7 10.7-1.3 20 .3 29.8 1.9 12 6.6 23.5 13.7 33.4l148.9 207.9c7.6 10.6 20.2 16.2 33.1 14.7 40.3-4.9 78-32 95.7-68.6 5.4-11.9 4.3-25.9-3.4-36.6z\"]\n};\nvar faUps = {\n prefix: 'fab',\n iconName: 'ups',\n icon: [384, 512, [], \"f7e0\", \"M103.2 303c-5.2 3.6-32.6 13.1-32.6-19V180H37.9v102.6c0 74.9 80.2 51.1 97.9 39V180h-32.6zM4 74.82v220.9c0 103.7 74.9 135.2 187.7 184.1 112.4-48.9 187.7-80.2 187.7-184.1V74.82c-116.3-61.6-281.8-49.6-375.4 0zm358.1 220.9c0 86.6-53.2 113.6-170.4 165.3-117.5-51.8-170.5-78.7-170.5-165.3v-126.4c102.3-93.8 231.6-100 340.9-89.8zm-209.6-107.4v212.8h32.7v-68.7c24.4 7.3 71.7-2.6 71.7-78.5 0-97.4-80.7-80.92-104.4-65.6zm32.7 117.3v-100.3c8.4-4.2 38.4-12.7 38.4 49.3 0 67.9-36.4 51.8-38.4 51zm79.1-86.4c.1 47.3 51.6 42.5 52.2 70.4.6 23.5-30.4 23-50.8 4.9v30.1c36.2 21.5 81.9 8.1 83.2-33.5 1.7-51.5-54.1-46.6-53.4-73.2.6-20.3 30.6-20.5 48.5-2.2v-28.4c-28.5-22-79.9-9.2-79.7 31.9z\"]\n};\nvar faUsb = {\n prefix: 'fab',\n iconName: 'usb',\n icon: [640, 512, [], \"f287\", \"M641.5 256c0 3.1-1.7 6.1-4.5 7.5L547.9 317c-1.4.8-2.8 1.4-4.5 1.4-1.4 0-3.1-.3-4.5-1.1-2.8-1.7-4.5-4.5-4.5-7.8v-35.6H295.7c25.3 39.6 40.5 106.9 69.6 106.9H392V354c0-5 3.9-8.9 8.9-8.9H490c5 0 8.9 3.9 8.9 8.9v89.1c0 5-3.9 8.9-8.9 8.9h-89.1c-5 0-8.9-3.9-8.9-8.9v-26.7h-26.7c-75.4 0-81.1-142.5-124.7-142.5H140.3c-8.1 30.6-35.9 53.5-69 53.5C32 327.3 0 295.3 0 256s32-71.3 71.3-71.3c33.1 0 61 22.8 69 53.5 39.1 0 43.9 9.5 74.6-60.4C255 88.7 273 95.7 323.8 95.7c7.5-20.9 27-35.6 50.4-35.6 29.5 0 53.5 23.9 53.5 53.5s-23.9 53.5-53.5 53.5c-23.4 0-42.9-14.8-50.4-35.6H294c-29.1 0-44.3 67.4-69.6 106.9h310.1v-35.6c0-3.3 1.7-6.1 4.5-7.8 2.8-1.7 6.4-1.4 8.9.3l89.1 53.5c2.8 1.1 4.5 4.1 4.5 7.2z\"]\n};\nvar faUsps = {\n prefix: 'fab',\n iconName: 'usps',\n icon: [576, 512, [], \"f7e1\", \"M460.3 241.7c25.8-41.3 15.2-48.8-11.7-48.8h-27c-.1 0-1.5-1.4-10.9 8-11.2 5.6-37.9 6.3-37.9 8.7 0 4.5 70.3-3.1 88.1 0 9.5 1.5-1.5 20.4-4.4 32-.5 4.5 2.4 2.3 3.8.1zm-112.1 22.6c64-21.3 97.3-23.9 102-26.2 4.4-2.9-4.4-6.6-26.2-5.8-51.7 2.2-137.6 37.1-172.6 53.9l-30.7-93.3h196.6c-2.7-28.2-152.9-22.6-337.9-22.6L27 415.8c196.4-97.3 258.9-130.3 321.2-151.5zM94.7 96c253.3 53.7 330 65.7 332.1 85.2 36.4 0 45.9 0 52.4 6.6 21.1 19.7-14.6 67.7-14.6 67.7-4.4 2.9-406.4 160.2-406.4 160.2h423.1L549 96z\"]\n};\nvar faUssunnah = {\n prefix: 'fab',\n iconName: 'ussunnah',\n icon: [512, 512, [], \"f407\", \"M156.8 285.1l5.7 14.4h-8.2c-1.3-3.2-3.1-7.7-3.8-9.5-2.5-6.3-1.1-8.4 0-10 1.9-2.7 3.2-4.4 3.6-5.2 0 2.2.8 5.7 2.7 10.3zm297.3 18.8c-2.1 13.8-5.7 27.1-10.5 39.7l43 23.4-44.8-18.8c-5.3 13.2-12 25.6-19.9 37.2l34.2 30.2-36.8-26.4c-8.4 11.8-18 22.6-28.7 32.3l24.9 34.7-28.1-31.8c-11 9.6-23.1 18-36.1 25.1l15.7 37.2-19.3-35.3c-13.1 6.8-27 12.1-41.6 15.9l6.7 38.4-10.5-37.4c-14.3 3.4-29.2 5.3-44.5 5.4L256 512l-1.9-38.4c-15.3-.1-30.2-2-44.5-5.3L199 505.6l6.7-38.2c-14.6-3.7-28.6-9.1-41.7-15.8l-19.2 35.1 15.6-37c-13-7-25.2-15.4-36.2-25.1l-27.9 31.6 24.7-34.4c-10.7-9.7-20.4-20.5-28.8-32.3l-36.5 26.2 33.9-29.9c-7.9-11.6-14.6-24.1-20-37.3l-44.4 18.7L67.8 344c-4.8-12.7-8.4-26.1-10.5-39.9l-51 9 50.3-14.2c-1.1-8.5-1.7-17.1-1.7-25.9 0-4.7.2-9.4.5-14.1L0 256l56-2.8c1.3-13.1 3.8-25.8 7.5-38.1L6.4 199l58.9 10.4c4-12 9.1-23.5 15.2-34.4l-55.1-30 58.3 24.6C90 159 97.2 149.2 105.3 140L55.8 96.4l53.9 38.7c8.1-8.6 17-16.5 26.6-23.6l-40-55.6 45.6 51.6c9.5-6.6 19.7-12.3 30.3-17.2l-27.3-64.9 33.8 62.1c10.5-4.4 21.4-7.9 32.7-10.4L199 6.4l19.5 69.2c11-2.1 22.3-3.2 33.8-3.4L256 0l3.6 72.2c11.5.2 22.8 1.4 33.8 3.5L313 6.4l-12.4 70.7c11.3 2.6 22.2 6.1 32.6 10.5l33.9-62.2-27.4 65.1c10.6 4.9 20.7 10.7 30.2 17.2l45.8-51.8-40.1 55.9c9.5 7.1 18.4 15 26.5 23.6l54.2-38.9-49.7 43.9c8 9.1 15.2 18.9 21.5 29.4l58.7-24.7-55.5 30.2c6.1 10.9 11.1 22.3 15.1 34.3l59.3-10.4-57.5 16.2c3.7 12.2 6.2 24.9 7.5 37.9L512 256l-56 2.8c.3 4.6.5 9.3.5 14.1 0 8.7-.6 17.3-1.6 25.8l50.7 14.3-51.5-9.1zm-21.8-31c0-97.5-79-176.5-176.5-176.5s-176.5 79-176.5 176.5 79 176.5 176.5 176.5 176.5-79 176.5-176.5zm-24 0c0 84.3-68.3 152.6-152.6 152.6s-152.6-68.3-152.6-152.6 68.3-152.6 152.6-152.6 152.6 68.3 152.6 152.6zM195 241c0 2.1 1.3 3.8 3.6 5.1 3.3 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.5 6.8-9.6 10.9-9.6 12.6zm-40.7-19c0 2.1 1.3 3.8 3.6 5.1 3.5 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.5 6.8-9.6 10.9-9.6 12.6zm-19 0c0 2.1 1.3 3.8 3.6 5.1 3.3 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.4 6.8-9.6 10.9-9.6 12.6zm204.9 87.9c-8.4-3-8.7-6.8-8.7-15.6V182c-8.2 12.5-14.2 18.6-18 18.6 6.3 14.4 9.5 23.9 9.5 28.3v64.3c0 2.2-2.2 6.5-4.7 6.5h-18c-2.8-7.5-10.2-26.9-15.3-40.3-2 2.5-7.2 9.2-10.7 13.7 2.4 1.6 4.1 3.6 5.2 6.3 2.6 6.7 6.4 16.5 7.9 20.2h-9.2c-3.9-10.4-9.6-25.4-11.8-31.1-2 2.5-7.2 9.2-10.7 13.7 2.4 1.6 4.1 3.6 5.2 6.3.8 2 2.8 7.3 4.3 10.9H256c-1.5-4.1-5.6-14.6-8.4-22-2 2.5-7.2 9.2-10.7 13.7 2.5 1.6 4.3 3.6 5.2 6.3.2.6.5 1.4.6 1.7H225c-4.6-13.9-11.4-27.7-11.4-34.1 0-2.2.3-5.1 1.1-8.2-8.8 10.8-14 15.9-14 25 0 7.5 10.4 28.3 10.4 33.3 0 1.7-.5 3.3-1.4 4.9-9.6-12.7-15.5-20.7-18.8-20.7h-12l-11.2-28c-3.8-9.6-5.7-16-5.7-18.8 0-3.8.5-7.7 1.7-12.2-1 1.3-3.7 4.7-5.5 7.1-.8-2.1-3.1-7.7-4.6-11.5-2.1 2.5-7.5 9.1-11.2 13.6.9 2.3 3.3 8.1 4.9 12.2-2.5 3.3-9.1 11.8-13.6 17.7-4 5.3-5.8 13.3-2.7 21.8 2.5 6.7 2 7.9-1.7 14.1H191c5.5 0 14.3 14 15.5 22 13.2-16 15.4-19.6 16.8-21.6h107c3.9 0 7.2-1.9 9.9-5.8zm20.1-26.6V181.7c-9 12.5-15.9 18.6-20.7 18.6 7.1 14.4 10.7 23.9 10.7 28.3v66.3c0 17.5 8.6 20.4 24 20.4 8.1 0 12.5-.8 13.7-2.7-4.3-1.6-7.6-2.5-9.9-3.3-8.1-3.2-17.8-7.4-17.8-26z\"]\n};\nvar faVaadin = {\n prefix: 'fab',\n iconName: 'vaadin',\n icon: [448, 512, [], \"f408\", \"M224.5 140.7c1.5-17.6 4.9-52.7 49.8-52.7h98.6c20.7 0 32.1-7.8 32.1-21.6V54.1c0-12.2 9.3-22.1 21.5-22.1S448 41.9 448 54.1v36.5c0 42.9-21.5 62-66.8 62H280.7c-30.1 0-33 14.7-33 27.1 0 1.3-.1 2.5-.2 3.7-.7 12.3-10.9 22.2-23.4 22.2s-22.7-9.8-23.4-22.2c-.1-1.2-.2-2.4-.2-3.7 0-12.3-3-27.1-33-27.1H66.8c-45.3 0-66.8-19.1-66.8-62V54.1C0 41.9 9.4 32 21.6 32s21.5 9.9 21.5 22.1v12.3C43.1 80.2 54.5 88 75.2 88h98.6c44.8 0 48.3 35.1 49.8 52.7h.9zM224 456c11.5 0 21.4-7 25.7-16.3 1.1-1.8 97.1-169.6 98.2-171.4 11.9-19.6-3.2-44.3-27.2-44.3-13.9 0-23.3 6.4-29.8 20.3L224 362l-66.9-117.7c-6.4-13.9-15.9-20.3-29.8-20.3-24 0-39.1 24.6-27.2 44.3 1.1 1.9 97.1 169.6 98.2 171.4 4.3 9.3 14.2 16.3 25.7 16.3z\"]\n};\nvar faViacoin = {\n prefix: 'fab',\n iconName: 'viacoin',\n icon: [384, 512, [], \"f237\", \"M384 32h-64l-80.7 192h-94.5L64 32H0l48 112H0v48h68.5l13.8 32H0v48h102.8L192 480l89.2-208H384v-48h-82.3l13.8-32H384v-48h-48l48-112zM192 336l-27-64h54l-27 64z\"]\n};\nvar faViadeo = {\n prefix: 'fab',\n iconName: 'viadeo',\n icon: [448, 512, [], \"f2a9\", \"M276.2 150.5v.7C258.3 98.6 233.6 47.8 205.4 0c43.3 29.2 67 100 70.8 150.5zm32.7 121.7c7.6 18.2 11 37.5 11 57 0 77.7-57.8 141-137.8 139.4l3.8-.3c74.2-46.7 109.3-118.6 109.3-205.1 0-38.1-6.5-75.9-18.9-112 1 11.7 1 23.7 1 35.4 0 91.8-18.1 241.6-116.6 280C95 455.2 49.4 398 49.4 329.2c0-75.6 57.4-142.3 135.4-142.3 16.8 0 33.7 3.1 49.1 9.6 1.7-15.1 6.5-29.9 13.4-43.3-19.9-7.2-41.2-10.7-62.5-10.7-161.5 0-238.7 195.9-129.9 313.7 67.9 74.6 192 73.9 259.8 0 56.6-61.3 60.9-142.4 36.4-201-12.7 8-27.1 13.9-42.2 17zM418.1 11.7c-31 66.5-81.3 47.2-115.8 80.1-12.4 12-20.6 34-20.6 50.5 0 14.1 4.5 27.1 12 38.8 47.4-11 98.3-46 118.2-90.7-.7 5.5-4.8 14.4-7.2 19.2-20.3 35.7-64.6 65.6-99.7 84.9 14.8 14.4 33.7 25.8 55 25.8 79 0 110.1-134.6 58.1-208.6z\"]\n};\nvar faViadeoSquare = {\n prefix: 'fab',\n iconName: 'viadeo-square',\n icon: [448, 512, [], \"f2aa\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM280.7 381.2c-42.4 46.2-120 46.6-162.4 0-68-73.6-19.8-196.1 81.2-196.1 13.3 0 26.6 2.1 39.1 6.7-4.3 8.4-7.3 17.6-8.4 27.1-9.7-4.1-20.2-6-30.7-6-48.8 0-84.6 41.7-84.6 88.9 0 43 28.5 78.7 69.5 85.9 61.5-24 72.9-117.6 72.9-175 0-7.3 0-14.8-.6-22.1-11.2-32.9-26.6-64.6-44.2-94.5 27.1 18.3 41.9 62.5 44.2 94.1v.4c7.7 22.5 11.8 46.2 11.8 70 0 54.1-21.9 99-68.3 128.2l-2.4.2c50 1 86.2-38.6 86.2-87.2 0-12.2-2.1-24.3-6.9-35.7 9.5-1.9 18.5-5.6 26.4-10.5 15.3 36.6 12.6 87.3-22.8 125.6zM309 233.7c-13.3 0-25.1-7.1-34.4-16.1 21.9-12 49.6-30.7 62.3-53 1.5-3 4.1-8.6 4.5-12-12.5 27.9-44.2 49.8-73.9 56.7-4.7-7.3-7.5-15.5-7.5-24.3 0-10.3 5.2-24.1 12.9-31.6 21.6-20.5 53-8.5 72.4-50 32.5 46.2 13.1 130.3-36.3 130.3z\"]\n};\nvar faViber = {\n prefix: 'fab',\n iconName: 'viber',\n icon: [512, 512, [], \"f409\", \"M444 49.9C431.3 38.2 379.9.9 265.3.4c0 0-135.1-8.1-200.9 52.3C27.8 89.3 14.9 143 13.5 209.5c-1.4 66.5-3.1 191.1 117 224.9h.1l-.1 51.6s-.8 20.9 13 25.1c16.6 5.2 26.4-10.7 42.3-27.8 8.7-9.4 20.7-23.2 29.8-33.7 82.2 6.9 145.3-8.9 152.5-11.2 16.6-5.4 110.5-17.4 125.7-142 15.8-128.6-7.6-209.8-49.8-246.5zM457.9 287c-12.9 104-89 110.6-103 115.1-6 1.9-61.5 15.7-131.2 11.2 0 0-52 62.7-68.2 79-5.3 5.3-11.1 4.8-11-5.7 0-6.9.4-85.7.4-85.7-.1 0-.1 0 0 0-101.8-28.2-95.8-134.3-94.7-189.8 1.1-55.5 11.6-101 42.6-131.6 55.7-50.5 170.4-43 170.4-43 96.9.4 143.3 29.6 154.1 39.4 35.7 30.6 53.9 103.8 40.6 211.1zm-139-80.8c.4 8.6-12.5 9.2-12.9.6-1.1-22-11.4-32.7-32.6-33.9-8.6-.5-7.8-13.4.7-12.9 27.9 1.5 43.4 17.5 44.8 46.2zm20.3 11.3c1-42.4-25.5-75.6-75.8-79.3-8.5-.6-7.6-13.5.9-12.9 58 4.2 88.9 44.1 87.8 92.5-.1 8.6-13.1 8.2-12.9-.3zm47 13.4c.1 8.6-12.9 8.7-12.9.1-.6-81.5-54.9-125.9-120.8-126.4-8.5-.1-8.5-12.9 0-12.9 73.7.5 133 51.4 133.7 139.2zM374.9 329v.2c-10.8 19-31 40-51.8 33.3l-.2-.3c-21.1-5.9-70.8-31.5-102.2-56.5-16.2-12.8-31-27.9-42.4-42.4-10.3-12.9-20.7-28.2-30.8-46.6-21.3-38.5-26-55.7-26-55.7-6.7-20.8 14.2-41 33.3-51.8h.2c9.2-4.8 18-3.2 23.9 3.9 0 0 12.4 14.8 17.7 22.1 5 6.8 11.7 17.7 15.2 23.8 6.1 10.9 2.3 22-3.7 26.6l-12 9.6c-6.1 4.9-5.3 14-5.3 14s17.8 67.3 84.3 84.3c0 0 9.1.8 14-5.3l9.6-12c4.6-6 15.7-9.8 26.6-3.7 14.7 8.3 33.4 21.2 45.8 32.9 7 5.7 8.6 14.4 3.8 23.6z\"]\n};\nvar faVimeo = {\n prefix: 'fab',\n iconName: 'vimeo',\n icon: [448, 512, [], \"f40a\", \"M403.2 32H44.8C20.1 32 0 52.1 0 76.8v358.4C0 459.9 20.1 480 44.8 480h358.4c24.7 0 44.8-20.1 44.8-44.8V76.8c0-24.7-20.1-44.8-44.8-44.8zM377 180.8c-1.4 31.5-23.4 74.7-66 129.4-44 57.2-81.3 85.8-111.7 85.8-18.9 0-34.8-17.4-47.9-52.3-25.5-93.3-36.4-148-57.4-148-2.4 0-10.9 5.1-25.4 15.2l-15.2-19.6c37.3-32.8 72.9-69.2 95.2-71.2 25.2-2.4 40.7 14.8 46.5 51.7 20.7 131.2 29.9 151 67.6 91.6 13.5-21.4 20.8-37.7 21.8-48.9 3.5-33.2-25.9-30.9-45.8-22.4 15.9-52.1 46.3-77.4 91.2-76 33.3.9 49 22.5 47.1 64.7z\"]\n};\nvar faVimeoSquare = {\n prefix: 'fab',\n iconName: 'vimeo-square',\n icon: [448, 512, [], \"f194\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16.2 149.6c-1.4 31.1-23.2 73.8-65.3 127.9-43.5 56.5-80.3 84.8-110.4 84.8-18.7 0-34.4-17.2-47.3-51.6-25.2-92.3-35.9-146.4-56.7-146.4-2.4 0-10.8 5-25.1 15.1L64 192c36.9-32.4 72.1-68.4 94.1-70.4 24.9-2.4 40.2 14.6 46 51.1 20.5 129.6 29.6 149.2 66.8 90.5 13.4-21.2 20.6-37.2 21.5-48.3 3.4-32.8-25.6-30.6-45.2-22.2 15.7-51.5 45.8-76.5 90.1-75.1 32.9 1 48.4 22.4 46.5 64z\"]\n};\nvar faVimeoV = {\n prefix: 'fab',\n iconName: 'vimeo-v',\n icon: [448, 512, [], \"f27d\", \"M447.8 153.6c-2 43.6-32.4 103.3-91.4 179.1-60.9 79.2-112.4 118.8-154.6 118.8-26.1 0-48.2-24.1-66.3-72.3C100.3 250 85.3 174.3 56.2 174.3c-3.4 0-15.1 7.1-35.2 21.1L0 168.2c51.6-45.3 100.9-95.7 131.8-98.5 34.9-3.4 56.3 20.5 64.4 71.5 28.7 181.5 41.4 208.9 93.6 126.7 18.7-29.6 28.8-52.1 30.2-67.6 4.8-45.9-35.8-42.8-63.3-31 22-72.1 64.1-107.1 126.2-105.1 45.8 1.2 67.5 31.1 64.9 89.4z\"]\n};\nvar faVine = {\n prefix: 'fab',\n iconName: 'vine',\n icon: [384, 512, [], \"f1ca\", \"M384 254.7v52.1c-18.4 4.2-36.9 6.1-52.1 6.1-36.9 77.4-103 143.8-125.1 156.2-14 7.9-27.1 8.4-42.7-.8C137 452 34.2 367.7 0 102.7h74.5C93.2 261.8 139 343.4 189.3 404.5c27.9-27.9 54.8-65.1 75.6-106.9-49.8-25.3-80.1-80.9-80.1-145.6 0-65.6 37.7-115.1 102.2-115.1 114.9 0 106.2 127.9 81.6 181.5 0 0-46.4 9.2-63.5-20.5 3.4-11.3 8.2-30.8 8.2-48.5 0-31.3-11.3-46.6-28.4-46.6-18.2 0-30.8 17.1-30.8 50 .1 79.2 59.4 118.7 129.9 101.9z\"]\n};\nvar faVk = {\n prefix: 'fab',\n iconName: 'vk',\n icon: [576, 512, [], \"f189\", \"M545 117.7c3.7-12.5 0-21.7-17.8-21.7h-58.9c-15 0-21.9 7.9-25.6 16.7 0 0-30 73.1-72.4 120.5-13.7 13.7-20 18.1-27.5 18.1-3.7 0-9.4-4.4-9.4-16.9V117.7c0-15-4.2-21.7-16.6-21.7h-92.6c-9.4 0-15 7-15 13.5 0 14.2 21.2 17.5 23.4 57.5v86.8c0 19-3.4 22.5-10.9 22.5-20 0-68.6-73.4-97.4-157.4-5.8-16.3-11.5-22.9-26.6-22.9H38.8c-16.8 0-20.2 7.9-20.2 16.7 0 15.6 20 93.1 93.1 195.5C160.4 378.1 229 416 291.4 416c37.5 0 42.1-8.4 42.1-22.9 0-66.8-3.4-73.1 15.4-73.1 8.7 0 23.7 4.4 58.7 38.1 40 40 46.6 57.9 69 57.9h58.9c16.8 0 25.3-8.4 20.4-25-11.2-34.9-86.9-106.7-90.3-111.5-8.7-11.2-6.2-16.2 0-26.2.1-.1 72-101.3 79.4-135.6z\"]\n};\nvar faVnv = {\n prefix: 'fab',\n iconName: 'vnv',\n icon: [640, 512, [], \"f40b\", \"M104.9 352c-34.1 0-46.4-30.4-46.4-30.4L2.6 210.1S-7.8 192 13 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.7-74.5c5.6-9.5 8.4-18.1 18.8-18.1h32.8c20.8 0 10.4 18.1 10.4 18.1l-55.8 111.5S174.2 352 140 352h-35.1zm395 0c-34.1 0-46.4-30.4-46.4-30.4l-55.9-111.5S387.2 192 408 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.8-74.5c5.6-9.5 8.4-18.1 18.8-18.1H627c20.8 0 10.4 18.1 10.4 18.1l-55.9 111.5S569.3 352 535.1 352h-35.2zM337.6 192c34.1 0 46.4 30.4 46.4 30.4l55.9 111.5s10.4 18.1-10.4 18.1h-32.8c-10.4 0-13.2-8.7-18.8-18.1l-36.7-74.5s-5.2-13.1-21.1-13.1c-15.9 0-21.1 13.1-21.1 13.1l-36.7 74.5c-5.6 9.4-8.4 18.1-18.8 18.1h-32.9c-20.8 0-10.4-18.1-10.4-18.1l55.9-111.5s12.2-30.4 46.4-30.4h35.1z\"]\n};\nvar faVuejs = {\n prefix: 'fab',\n iconName: 'vuejs',\n icon: [448, 512, [], \"f41f\", \"M356.9 64.3H280l-56 88.6-48-88.6H0L224 448 448 64.3h-91.1zm-301.2 32h53.8L224 294.5 338.4 96.3h53.8L224 384.5 55.7 96.3z\"]\n};\nvar faWatchmanMonitoring = {\n prefix: 'fab',\n iconName: 'watchman-monitoring',\n icon: [512, 512, [], \"e087\", \"M256,16C123.452,16,16,123.452,16,256S123.452,496,256,496,496,388.548,496,256,388.548,16,256,16ZM121.69,429.122C70.056,388.972,36.741,326.322,36.741,256a218.519,218.519,0,0,1,9.587-64.122l102.9-17.895-.121,10.967-13.943,2.013s-.144,12.5-.144,19.549a12.778,12.778,0,0,0,4.887,10.349l9.468,7.4Zm105.692-283.27,8.48-7.618s6.934-5.38-.143-9.344c-7.188-4.024-39.53-34.5-39.53-34.5-5.348-5.477-8.257-7.347-15.46,0,0,0-32.342,30.474-39.529,34.5-7.078,3.964-.144,9.344-.144,9.344l8.481,7.618-.048,4.369L75.982,131.045c39.644-56.938,105.532-94.3,180.018-94.3A218.754,218.754,0,0,1,420.934,111.77l-193.512,37.7Zm34.063,329.269-33.9-250.857,9.467-7.4a12.778,12.778,0,0,0,4.888-10.349c0-7.044-.144-19.549-.144-19.549l-13.943-2.013-.116-10.474,241.711,31.391A218.872,218.872,0,0,1,475.259,256C475.259,375.074,379.831,472.212,261.445,475.121Z\"]\n};\nvar faWaze = {\n prefix: 'fab',\n iconName: 'waze',\n icon: [512, 512, [], \"f83f\", \"M502.17 201.67C516.69 287.53 471.23 369.59 389 409.8c13 34.1-12.4 70.2-48.32 70.2a51.68 51.68 0 0 1-51.57-49c-6.44.19-64.2 0-76.33-.64A51.69 51.69 0 0 1 159 479.92c-33.86-1.36-57.95-34.84-47-67.92-37.21-13.11-72.54-34.87-99.62-70.8-13-17.28-.48-41.8 20.84-41.8 46.31 0 32.22-54.17 43.15-110.26C94.8 95.2 193.12 32 288.09 32c102.48 0 197.15 70.67 214.08 169.67zM373.51 388.28c42-19.18 81.33-56.71 96.29-102.14 40.48-123.09-64.15-228-181.71-228-83.45 0-170.32 55.42-186.07 136-9.53 48.91 5 131.35-68.75 131.35C58.21 358.6 91.6 378.11 127 389.54c24.66-21.8 63.87-15.47 79.83 14.34 14.22 1 79.19 1.18 87.9.82a51.69 51.69 0 0 1 78.78-16.42zM205.12 187.13c0-34.74 50.84-34.75 50.84 0s-50.84 34.74-50.84 0zm116.57 0c0-34.74 50.86-34.75 50.86 0s-50.86 34.75-50.86 0zm-122.61 70.69c-3.44-16.94 22.18-22.18 25.62-5.21l.06.28c4.14 21.42 29.85 44 64.12 43.07 35.68-.94 59.25-22.21 64.11-42.77 4.46-16.05 28.6-10.36 25.47 6-5.23 22.18-31.21 62-91.46 62.9-42.55 0-80.88-27.84-87.9-64.25z\"]\n};\nvar faWeebly = {\n prefix: 'fab',\n iconName: 'weebly',\n icon: [512, 512, [], \"f5cc\", \"M425.09 65.83c-39.88 0-73.28 25.73-83.66 64.33-18.16-58.06-65.5-64.33-84.95-64.33-19.78 0-66.8 6.28-85.28 64.33-10.38-38.6-43.45-64.33-83.66-64.33C38.59 65.83 0 99.72 0 143.03c0 28.96 4.18 33.27 77.17 233.48 22.37 60.57 67.77 69.35 92.74 69.35 39.23 0 70.04-19.46 85.93-53.98 15.89 34.83 46.69 54.29 85.93 54.29 24.97 0 70.36-9.1 92.74-69.67 76.55-208.65 77.5-205.58 77.5-227.2.63-48.32-36.01-83.47-86.92-83.47zm26.34 114.81l-65.57 176.44c-7.92 21.49-21.22 37.22-46.24 37.22-23.44 0-37.38-12.41-44.03-33.9l-39.28-117.42h-.95L216.08 360.4c-6.96 21.5-20.9 33.6-44.02 33.6-25.02 0-38.33-15.74-46.24-37.22L60.88 181.55c-5.38-14.83-7.92-23.91-7.92-34.5 0-16.34 15.84-29.36 38.33-29.36 18.69 0 31.99 11.8 36.11 29.05l44.03 139.82h.95l44.66-136.79c6.02-19.67 16.47-32.08 38.96-32.08s32.94 12.11 38.96 32.08l44.66 136.79h.95l44.03-139.82c4.12-17.25 17.42-29.05 36.11-29.05 22.17 0 38.33 13.32 38.33 35.71-.32 7.87-4.12 16.04-7.61 27.24z\"]\n};\nvar faWeibo = {\n prefix: 'fab',\n iconName: 'weibo',\n icon: [512, 512, [], \"f18a\", \"M407 177.6c7.6-24-13.4-46.8-37.4-41.7-22 4.8-28.8-28.1-7.1-32.8 50.1-10.9 92.3 37.1 76.5 84.8-6.8 21.2-38.8 10.8-32-10.3zM214.8 446.7C108.5 446.7 0 395.3 0 310.4c0-44.3 28-95.4 76.3-143.7C176 67 279.5 65.8 249.9 161c-4 13.1 12.3 5.7 12.3 6 79.5-33.6 140.5-16.8 114 51.4-3.7 9.4 1.1 10.9 8.3 13.1 135.7 42.3 34.8 215.2-169.7 215.2zm143.7-146.3c-5.4-55.7-78.5-94-163.4-85.7-84.8 8.6-148.8 60.3-143.4 116s78.5 94 163.4 85.7c84.8-8.6 148.8-60.3 143.4-116zM347.9 35.1c-25.9 5.6-16.8 43.7 8.3 38.3 72.3-15.2 134.8 52.8 111.7 124-7.4 24.2 29.1 37 37.4 12 31.9-99.8-55.1-195.9-157.4-174.3zm-78.5 311c-17.1 38.8-66.8 60-109.1 46.3-40.8-13.1-58-53.4-40.3-89.7 17.7-35.4 63.1-55.4 103.4-45.1 42 10.8 63.1 50.2 46 88.5zm-86.3-30c-12.9-5.4-30 .3-38 12.9-8.3 12.9-4.3 28 8.6 34 13.1 6 30.8.3 39.1-12.9 8-13.1 3.7-28.3-9.7-34zm32.6-13.4c-5.1-1.7-11.4.6-14.3 5.4-2.9 5.1-1.4 10.6 3.7 12.9 5.1 2 11.7-.3 14.6-5.4 2.8-5.2 1.1-10.9-4-12.9z\"]\n};\nvar faWeixin = {\n prefix: 'fab',\n iconName: 'weixin',\n icon: [576, 512, [], \"f1d7\", \"M385.2 167.6c6.4 0 12.6.3 18.8 1.1C387.4 90.3 303.3 32 207.7 32 100.5 32 13 104.8 13 197.4c0 53.4 29.3 97.5 77.9 131.6l-19.3 58.6 68-34.1c24.4 4.8 43.8 9.7 68.2 9.7 6.2 0 12.1-.3 18.3-.8-4-12.9-6.2-26.6-6.2-40.8-.1-84.9 72.9-154 165.3-154zm-104.5-52.9c14.5 0 24.2 9.7 24.2 24.4 0 14.5-9.7 24.2-24.2 24.2-14.8 0-29.3-9.7-29.3-24.2.1-14.7 14.6-24.4 29.3-24.4zm-136.4 48.6c-14.5 0-29.3-9.7-29.3-24.2 0-14.8 14.8-24.4 29.3-24.4 14.8 0 24.4 9.7 24.4 24.4 0 14.6-9.6 24.2-24.4 24.2zM563 319.4c0-77.9-77.9-141.3-165.4-141.3-92.7 0-165.4 63.4-165.4 141.3S305 460.7 397.6 460.7c19.3 0 38.9-5.1 58.6-9.9l53.4 29.3-14.8-48.6C534 402.1 563 363.2 563 319.4zm-219.1-24.5c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.8 0 24.4 9.7 24.4 19.3 0 10-9.7 19.6-24.4 19.6zm107.1 0c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.5 0 24.4 9.7 24.4 19.3.1 10-9.9 19.6-24.4 19.6z\"]\n};\nvar faWhatsapp = {\n prefix: 'fab',\n iconName: 'whatsapp',\n icon: [448, 512, [], \"f232\", \"M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z\"]\n};\nvar faWhatsappSquare = {\n prefix: 'fab',\n iconName: 'whatsapp-square',\n icon: [448, 512, [], \"f40c\", \"M224 122.8c-72.7 0-131.8 59.1-131.9 131.8 0 24.9 7 49.2 20.2 70.1l3.1 5-13.3 48.6 49.9-13.1 4.8 2.9c20.2 12 43.4 18.4 67.1 18.4h.1c72.6 0 133.3-59.1 133.3-131.8 0-35.2-15.2-68.3-40.1-93.2-25-25-58-38.7-93.2-38.7zm77.5 188.4c-3.3 9.3-19.1 17.7-26.7 18.8-12.6 1.9-22.4.9-47.5-9.9-39.7-17.2-65.7-57.2-67.7-59.8-2-2.6-16.2-21.5-16.2-41s10.2-29.1 13.9-33.1c3.6-4 7.9-5 10.6-5 2.6 0 5.3 0 7.6.1 2.4.1 5.7-.9 8.9 6.8 3.3 7.9 11.2 27.4 12.2 29.4s1.7 4.3.3 6.9c-7.6 15.2-15.7 14.6-11.6 21.6 15.3 26.3 30.6 35.4 53.9 47.1 4 2 6.3 1.7 8.6-1 2.3-2.6 9.9-11.6 12.5-15.5 2.6-4 5.3-3.3 8.9-2 3.6 1.3 23.1 10.9 27.1 12.9s6.6 3 7.6 4.6c.9 1.9.9 9.9-2.4 19.1zM400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM223.9 413.2c-26.6 0-52.7-6.7-75.8-19.3L64 416l22.5-82.2c-13.9-24-21.2-51.3-21.2-79.3C65.4 167.1 136.5 96 223.9 96c42.4 0 82.2 16.5 112.2 46.5 29.9 30 47.9 69.8 47.9 112.2 0 87.4-72.7 158.5-160.1 158.5z\"]\n};\nvar faWhmcs = {\n prefix: 'fab',\n iconName: 'whmcs',\n icon: [448, 512, [], \"f40d\", \"M448 161v-21.3l-28.5-8.8-2.2-10.4 20.1-20.7L427 80.4l-29 7.5-7.2-7.5 7.5-28.2-19.1-11.6-21.3 21-10.7-3.2-7-26.4h-22.6l-6.2 26.4-12.1 3.2-19.7-21-19.4 11 8.1 27.7-8.1 8.4-28.5-7.5-11 19.1 20.7 21-2.9 10.4-28.5 7.8-.3 21.7 28.8 7.5 2.4 12.1-20.1 19.9 10.4 18.5 29.6-7.5 7.2 8.6-8.1 26.9 19.9 11.6 19.4-20.4 11.6 2.9 6.7 28.5 22.6.3 6.7-28.8 11.6-3.5 20.7 21.6 20.4-12.1-8.8-28 7.8-8.1 28.8 8.8 10.3-20.1-20.9-18.8 2.2-12.1 29.1-7zm-119.2 45.2c-31.3 0-56.8-25.4-56.8-56.8s25.4-56.8 56.8-56.8 56.8 25.4 56.8 56.8c0 31.5-25.4 56.8-56.8 56.8zm72.3 16.4l46.9 14.5V277l-55.1 13.4-4.1 22.7 38.9 35.3-19.2 37.9-54-16.7-14.6 15.2 16.7 52.5-38.3 22.7-38.9-40.5-21.7 6.6-12.6 54-42.4-.5-12.6-53.6-21.7-5.6-36.4 38.4-37.4-21.7 15.2-50.5-13.7-16.1-55.5 14.1-19.7-34.8 37.9-37.4-4.8-22.8-54-14.1.5-40.9L54 219.9l5.7-19.7-38.9-39.4L41.5 125l53.6 14.1 15.2-15.7-15.2-52 36.4-20.7 36.8 39.4L191 84l11.6-52H245l11.6 45.9L234 72l-6.3-1.7-3.3 5.7-11 19.1-3.3 5.6 4.6 4.6 17.2 17.4-.3 1-23.8 6.5-6.2 1.7-.1 6.4-.2 12.9C153.8 161.6 118 204 118 254.7c0 58.3 47.3 105.7 105.7 105.7 50.5 0 92.7-35.4 103.2-82.8l13.2.2 6.9.1 1.6-6.7 5.6-24 1.9-.6 17.1 17.8 4.7 4.9 5.8-3.4 20.4-12.1 5.8-3.5-2-6.5-6.8-21.2z\"]\n};\nvar faWikipediaW = {\n prefix: 'fab',\n iconName: 'wikipedia-w',\n icon: [640, 512, [], \"f266\", \"M640 51.2l-.3 12.2c-28.1.8-45 15.8-55.8 40.3-25 57.8-103.3 240-155.3 358.6H415l-81.9-193.1c-32.5 63.6-68.3 130-99.2 193.1-.3.3-15 0-15-.3C172 352.3 122.8 243.4 75.8 133.4 64.4 106.7 26.4 63.4.2 63.7c0-3.1-.3-10-.3-14.2h161.9v13.9c-19.2 1.1-52.8 13.3-43.3 34.2 21.9 49.7 103.6 240.3 125.6 288.6 15-29.7 57.8-109.2 75.3-142.8-13.9-28.3-58.6-133.9-72.8-160-9.7-17.8-36.1-19.4-55.8-19.7V49.8l142.5.3v13.1c-19.4.6-38.1 7.8-29.4 26.1 18.9 40 30.6 68.1 48.1 104.7 5.6-10.8 34.7-69.4 48.1-100.8 8.9-20.6-3.9-28.6-38.6-29.4.3-3.6 0-10.3.3-13.6 44.4-.3 111.1-.3 123.1-.6v13.6c-22.5.8-45.8 12.8-58.1 31.7l-59.2 122.8c6.4 16.1 63.3 142.8 69.2 156.7L559.2 91.8c-8.6-23.1-36.4-28.1-47.2-28.3V49.6l127.8 1.1.2.5z\"]\n};\nvar faWindows = {\n prefix: 'fab',\n iconName: 'windows',\n icon: [448, 512, [], \"f17a\", \"M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z\"]\n};\nvar faWix = {\n prefix: 'fab',\n iconName: 'wix',\n icon: [640, 512, [], \"f5cf\", \"M393.38 131.69c0 13.03 2.08 32.69-28.68 43.83-9.52 3.45-15.95 9.66-15.95 9.66 0-31 4.72-42.22 17.4-48.86 9.75-5.11 27.23-4.63 27.23-4.63zm-115.8 35.54l-34.24 132.66-28.48-108.57c-7.69-31.99-20.81-48.53-48.43-48.53-27.37 0-40.66 16.18-48.43 48.53L89.52 299.89 55.28 167.23C49.73 140.51 23.86 128.96 0 131.96l65.57 247.93s21.63 1.56 32.46-3.96c14.22-7.25 20.98-12.84 29.59-46.57 7.67-30.07 29.11-118.41 31.12-124.7 4.76-14.94 11.09-13.81 15.4 0 1.97 6.3 23.45 94.63 31.12 124.7 8.6 33.73 15.37 39.32 29.59 46.57 10.82 5.52 32.46 3.96 32.46 3.96l65.57-247.93c-24.42-3.07-49.82 8.93-55.3 35.27zm115.78 5.21s-4.1 6.34-13.46 11.57c-6.01 3.36-11.78 5.64-17.97 8.61-15.14 7.26-13.18 13.95-13.18 35.2v152.07s16.55 2.09 27.37-3.43c13.93-7.1 17.13-13.95 17.26-44.78V181.41l-.02.01v-8.98zm163.44 84.08L640 132.78s-35.11-5.98-52.5 9.85c-13.3 12.1-24.41 29.55-54.18 72.47-.47.73-6.25 10.54-13.07 0-29.29-42.23-40.8-60.29-54.18-72.47-17.39-15.83-52.5-9.85-52.5-9.85l83.2 123.74-82.97 123.36s36.57 4.62 53.95-11.21c11.49-10.46 17.58-20.37 52.51-70.72 6.81-10.52 12.57-.77 13.07 0 29.4 42.38 39.23 58.06 53.14 70.72 17.39 15.83 53.32 11.21 53.32 11.21L556.8 256.52z\"]\n};\nvar faWizardsOfTheCoast = {\n prefix: 'fab',\n iconName: 'wizards-of-the-coast',\n icon: [640, 512, [], \"f730\", \"M219.19 345.69c-1.9 1.38-11.07 8.44-.26 23.57 4.64 6.42 14.11 12.79 21.73 6.55 6.5-4.88 7.35-12.92.26-23.04-5.47-7.76-14.28-12.88-21.73-7.08zm336.75 75.94c-.34 1.7-.55 1.67.79 0 2.09-4.19 4.19-10.21 4.98-19.9 3.14-38.49-40.33-71.49-101.34-78.03-54.73-6.02-124.38 9.17-188.8 60.49l-.26 1.57c2.62 4.98 4.98 10.74 3.4 21.21l.79.26c63.89-58.4 131.19-77.25 184.35-73.85 58.4 3.67 100.03 34.04 100.03 68.08-.01 9.96-2.63 15.72-3.94 20.17zM392.28 240.42c.79 7.07 4.19 10.21 9.17 10.47 5.5.26 9.43-2.62 10.47-6.55.79-3.4 2.09-29.85 2.09-29.85s-11.26 6.55-14.93 10.47c-3.66 3.68-7.33 8.39-6.8 15.46zm-50.02-151.1C137.75 89.32 13.1 226.8.79 241.2c-1.05.52-1.31.79.79 1.31 60.49 16.5 155.81 81.18 196.13 202.16l1.05.26c55.25-69.92 140.88-128.05 236.99-128.05 80.92 0 130.15 42.16 130.15 80.39 0 18.33-6.55 33.52-22.26 46.35 0 .96-.2.79.79.79 14.66-10.74 27.5-28.8 27.5-48.18 0-22.78-12.05-38.23-12.05-38.23 7.07 7.07 10.74 16.24 10.74 16.24 5.76-40.85 26.97-62.32 26.97-62.32-2.36-9.69-6.81-17.81-6.81-17.81 7.59 8.12 14.4 27.5 14.4 41.37 0 10.47-3.4 22.78-12.57 31.95l.26.52c8.12-4.98 16.5-16.76 16.5-37.97 0-15.71-4.71-25.92-4.71-25.92 5.76-5.24 11.26-9.17 15.97-11.78.79 3.4 2.09 9.69 2.36 14.93 0 1.05.79 1.83 1.05 0 .79-5.76-.26-16.24-.26-16.5 6.02-3.14 9.69-4.45 9.69-4.45C617.74 176 489.43 89.32 342.26 89.32zm-99.24 289.62c-11.06 8.99-24.2 4.08-30.64-4.19-7.45-9.58-6.76-24.09 4.19-32.47 14.85-11.35 27.08-.49 31.16 5.5.28.39 12.13 16.57-4.71 31.16zm2.09-136.43l9.43-17.81 11.78 70.96-12.57 6.02-24.62-28.8 14.14-26.71 3.67 4.45-1.83-8.11zm18.59 117.58l-.26-.26c2.05-4.1-2.5-6.61-17.54-31.69-1.31-2.36-3.14-2.88-4.45-2.62l-.26-.52c7.86-5.76 15.45-10.21 25.4-15.71l.52.26c1.31 1.83 2.09 2.88 3.4 4.71l-.26.52c-1.05-.26-2.36-.79-5.24.26-2.09.79-7.86 3.67-12.31 7.59v1.31c1.57 2.36 3.93 6.55 5.76 9.69h.26c10.05-6.28 7.56-4.55 11.52-7.86h.26c.52 1.83.52 1.83 1.83 5.5l-.26.26c-3.06.61-4.65.34-11.52 5.5v.26c9.46 17.02 11.01 16.75 12.57 15.97l.26.26c-2.34 1.59-6.27 4.21-9.68 6.57zm55.26-32.47c-3.14 1.57-6.02 2.88-9.95 4.98l-.26-.26c1.29-2.59 1.16-2.71-11.78-32.47l-.26-.26c-.15 0-8.9 3.65-9.95 7.33h-.52l-1.05-5.76.26-.52c7.29-4.56 25.53-11.64 27.76-12.57l.52.26 3.14 4.98-.26.52c-3.53-1.76-7.35.76-12.31 2.62v.26c12.31 32.01 12.67 30.64 14.66 30.64v.25zm44.77-16.5c-4.19 1.05-5.24 1.31-9.69 2.88l-.26-.26.52-4.45c-1.05-3.4-3.14-11.52-3.67-13.62l-.26-.26c-3.4.79-8.9 2.62-12.83 3.93l-.26.26c.79 2.62 3.14 9.95 4.19 13.88.79 2.36 1.83 2.88 2.88 3.14v.52c-3.67 1.05-7.07 2.62-10.21 3.93l-.26-.26c1.05-1.31 1.05-2.88.26-4.98-1.05-3.14-8.12-23.83-9.17-27.23-.52-1.83-1.57-3.14-2.62-3.14v-.52c3.14-1.05 6.02-2.09 10.74-3.4l.26.26-.26 4.71c1.31 3.93 2.36 7.59 3.14 9.69h.26c3.93-1.31 9.43-2.88 12.83-3.93l.26-.26-2.62-9.43c-.52-1.83-1.05-3.4-2.62-3.93v-.26c4.45-1.05 7.33-1.83 10.74-2.36l.26.26c-1.05 1.31-1.05 2.88-.52 4.45 1.57 6.28 4.71 20.43 6.28 26.45.54 2.62 1.85 3.41 2.63 3.93zm32.21-6.81l-.26.26c-4.71.52-14.14 2.36-22.52 4.19l-.26-.26.79-4.19c-1.57-7.86-3.4-18.59-4.98-26.19-.26-1.83-.79-2.88-2.62-3.67l.79-.52c9.17-1.57 20.16-2.36 24.88-2.62l.26.26c.52 2.36.79 3.14 1.57 5.5l-.26.26c-1.14-1.14-3.34-3.2-16.24-.79l-.26.26c.26 1.57 1.05 6.55 1.57 9.95l.26.26c9.52-1.68 4.76-.06 10.74-2.36h.26c0 1.57-.26 1.83-.26 5.24h-.26c-4.81-1.03-2.15-.9-10.21 0l-.26.26c.26 2.09 1.57 9.43 2.09 12.57l.26.26c1.15.38 14.21-.65 16.24-4.71h.26c-.53 2.38-1.05 4.21-1.58 6.04zm10.74-44.51c-4.45 2.36-8.12 2.88-11 2.88-.25.02-11.41 1.09-17.54-9.95-6.74-10.79-.98-25.2 5.5-31.69 8.8-8.12 23.35-10.1 28.54-17.02 8.03-10.33-13.04-22.31-29.59-5.76l-2.62-2.88 5.24-16.24c25.59-1.57 45.2-3.04 50.02 16.24.79 3.14 0 9.43-.26 12.05 0 2.62-1.83 18.85-2.09 23.04-.52 4.19-.79 18.33-.79 20.69.26 2.36.52 4.19 1.57 5.5 1.57 1.83 5.76 1.83 5.76 1.83l-.79 4.71c-11.82-1.07-10.28-.59-20.43-1.05-3.22-5.15-2.23-3.28-4.19-7.86 0 .01-4.19 3.94-7.33 5.51zm37.18 21.21c-6.35-10.58-19.82-7.16-21.73 5.5-2.63 17.08 14.3 19.79 20.69 10.21l.26.26c-.52 1.83-1.83 6.02-1.83 6.28l-.52.52c-10.3 6.87-28.5-2.5-25.66-18.59 1.94-10.87 14.44-18.93 28.8-9.95l.26.52c0 1.06-.27 3.41-.27 5.25zm5.77-87.73v-6.55c.69 0 19.65 3.28 27.76 7.33l-1.57 17.54s10.21-9.43 15.45-10.74c5.24-1.57 14.93 7.33 14.93 7.33l-11.26 11.26c-12.07-6.35-19.59-.08-20.69.79-5.29 38.72-8.6 42.17 4.45 46.09l-.52 4.71c-17.55-4.29-18.53-4.5-36.92-7.33l.79-4.71c7.25 0 7.48-5.32 7.59-6.81 0 0 4.98-53.16 4.98-55.25-.02-2.87-4.99-3.66-4.99-3.66zm10.99 114.44c-8.12-2.09-14.14-11-10.74-20.69 3.14-9.43 12.31-12.31 18.85-10.21 9.17 2.62 12.83 11.78 10.74 19.38-2.61 8.9-9.42 13.87-18.85 11.52zm42.16 9.69c-2.36-.52-7.07-2.36-8.64-2.88v-.26l1.57-1.83c.59-8.24.59-7.27.26-7.59-4.82-1.81-6.66-2.36-7.07-2.36-1.31 1.83-2.88 4.45-3.67 5.5l-.79 3.4v.26c-1.31-.26-3.93-1.31-6.02-1.57v-.26l2.62-1.83c3.4-4.71 9.95-14.14 13.88-20.16v-2.09l.52-.26c2.09.79 5.5 2.09 7.59 2.88.48.48.18-1.87-1.05 25.14-.24 1.81.02 2.6.8 3.91zm-4.71-89.82c11.25-18.27 30.76-16.19 34.04-3.4L539.7 198c2.34-6.25-2.82-9.9-4.45-11.26l1.83-3.67c12.22 10.37 16.38 13.97 22.52 20.43-25.91 73.07-30.76 80.81-24.62 84.32l-1.83 4.45c-6.37-3.35-8.9-4.42-17.81-8.64l2.09-6.81c-.26-.26-3.93 3.93-9.69 3.67-19.06-1.3-22.89-31.75-9.67-52.9zm29.33 79.34c0-5.71-6.34-7.89-7.86-5.24-1.31 2.09 1.05 4.98 2.88 8.38 1.57 2.62 2.62 6.28 1.05 9.43-2.64 6.34-12.4 5.31-15.45-.79 0-.7-.27.09 1.83-4.71l.79-.26c-.57 5.66 6.06 9.61 8.38 4.98 1.05-2.09-.52-5.5-2.09-8.38-1.57-2.62-3.67-6.28-1.83-9.69 2.72-5.06 11.25-4.47 14.66 2.36v.52l-2.36 3.4zm21.21 13.36c-1.96-3.27-.91-2.14-4.45-4.71h-.26c-2.36 4.19-5.76 10.47-8.64 16.24-1.31 2.36-1.05 3.4-.79 3.93l-.26.26-5.76-4.45.26-.26 2.09-1.31c3.14-5.76 6.55-12.05 9.17-17.02v-.26c-2.64-1.98-1.22-1.51-6.02-1.83v-.26l3.14-3.4h.26c3.67 2.36 9.95 6.81 12.31 8.9l.26.26-1.31 3.91zm27.23-44.26l-2.88-2.88c.79-2.36 1.83-4.98 2.09-7.59.75-9.74-11.52-11.84-11.52-4.98 0 4.98 7.86 19.38 7.86 27.76 0 10.21-5.76 15.71-13.88 16.5-8.38.79-20.16-10.47-20.16-10.47l4.98-14.4 2.88 2.09c-2.97 17.8 17.68 20.37 13.35 5.24-1.06-4.02-18.75-34.2 2.09-38.23 13.62-2.36 23.04 16.5 23.04 16.5l-7.85 10.46zm35.62-10.21c-11-30.38-60.49-127.53-191.95-129.62-53.42-1.05-94.27 15.45-132.76 37.97l85.63-9.17-91.39 20.69 25.14 19.64-3.93-16.5c7.5-1.71 39.15-8.45 66.77-8.9l-22.26 80.39c13.61-.7 18.97-8.98 19.64-22.78l4.98-1.05.26 26.71c-22.46 3.21-37.3 6.69-49.49 9.95l13.09-43.21-61.54-36.66 2.36 8.12 10.21 4.98c6.28 18.59 19.38 56.56 20.43 58.66 1.95 4.28 3.16 5.78 12.05 4.45l1.05 4.98c-16.08 4.86-23.66 7.61-39.02 14.4l-2.36-4.71c4.4-2.94 8.73-3.94 5.5-12.83-23.7-62.5-21.48-58.14-22.78-59.44l2.36-4.45 33.52 67.3c-3.84-11.87 1.68 1.69-32.99-78.82l-41.9 88.51 4.71-13.88-35.88-42.16 27.76 93.48-11.78 8.38C95 228.58 101.05 231.87 93.23 231.52c-5.5-.26-13.62 5.5-13.62 5.5L74.63 231c30.56-23.53 31.62-24.33 58.4-42.68l4.19 7.07s-5.76 4.19-7.86 7.07c-5.9 9.28 1.67 13.28 61.8 75.68l-18.85-58.92 39.8-10.21 25.66 30.64 4.45-12.31-4.98-24.62 13.09-3.4.52 3.14 3.67-10.47-94.27 29.33 11.26-4.98-13.62-42.42 17.28-9.17 30.11 36.14 28.54-13.09c-1.41-7.47-2.47-14.5-4.71-19.64l17.28 13.88 4.71-2.09-59.18-42.68 23.08 11.5c18.98-6.07 25.23-7.47 32.21-9.69l2.62 11c-12.55 12.55 1.43 16.82 6.55 19.38l-13.62-61.01 12.05 28.28c4.19-1.31 7.33-2.09 7.33-2.09l2.62 8.64s-3.14 1.05-6.28 2.09l8.9 20.95 33.78-65.73-20.69 61.01c42.42-24.09 81.44-36.66 131.98-35.88 67.04 1.05 167.33 40.85 199.8 139.83.78 2.1-.01 2.63-.79.27zM203.48 152.43s1.83-.52 4.19-1.31l9.43 7.59c-.4 0-3.44-.25-11.26 2.36l-2.36-8.64zm143.76 38.5c-1.57-.6-26.46-4.81-33.26 20.69l21.73 17.02 11.53-37.71zM318.43 67.07c-58.4 0-106.05 12.05-114.96 14.4v.79c8.38 2.09 14.4 4.19 21.21 11.78l1.57.26c6.55-1.83 48.97-13.88 110.24-13.88 180.16 0 301.67 116.79 301.67 223.37v9.95c0 1.31.79 2.62 1.05.52.52-2.09.79-8.64.79-19.64.26-83.79-96.63-227.55-321.57-227.55zm211.06 169.68c1.31-5.76 0-12.31-7.33-13.09-9.62-1.13-16.14 23.79-17.02 33.52-.79 5.5-1.31 14.93 6.02 14.93 4.68-.01 9.72-.91 18.33-35.36zm-61.53 42.95c-2.62-.79-9.43-.79-12.57 10.47-1.83 6.81.52 13.35 6.02 14.66 3.67 1.05 8.9.52 11.78-10.74 2.62-9.94-1.83-13.61-5.23-14.39zM491 300.65c1.83.52 3.14 1.05 5.76 1.83 0-1.83.52-8.38.79-12.05-1.05 1.31-5.5 8.12-6.55 9.95v.27z\"]\n};\nvar faWodu = {\n prefix: 'fab',\n iconName: 'wodu',\n icon: [640, 512, [], \"e088\", \"M178.414 339.706H141.1L112.166 223.475h-.478L83.228 339.706H45.2L0 168.946H37.548L64.574 285.177h.478L94.707 168.946h35.157l29.178 117.667h.479L187.5 168.946h36.831zM271.4 212.713c38.984 0 64.1 25.828 64.1 65.291 0 39.222-25.111 65.05-64.1 65.05-38.743 0-63.855-25.828-63.855-65.05C207.547 238.541 232.659 212.713 271.4 212.713zm0 104.753c23.2 0 30.133-19.852 30.133-39.462 0-19.852-6.934-39.7-30.133-39.7-27.7 0-29.894 19.85-29.894 39.7C241.508 297.614 248.443 317.466 271.4 317.466zM435.084 323.922h-.478c-7.893 13.392-21.765 19.132-37.548 19.132-37.31 0-55.485-32.045-55.485-66.246 0-33.243 18.415-64.095 54.767-64.095 14.589 0 28.938 6.218 36.831 18.416h.24V168.946h33.96v170.76H435.084zM405.428 238.3c-22.24 0-29.894 19.134-29.894 39.463 0 19.371 8.848 39.7 29.894 39.7 22.482 0 29.178-19.613 29.178-39.94C434.606 257.436 427.432 238.3 405.428 238.3zM592.96 339.706H560.673V322.487h-.718c-8.609 13.87-23.436 20.567-37.786 20.567-36.113 0-45.2-20.328-45.2-50.941V216.061h33.959V285.9c0 20.329 5.979 30.372 21.765 30.372 18.415 0 26.306-10.283 26.306-35.393V216.061H592.96zM602.453 302.876H640v36.83H602.453z\"]\n};\nvar faWolfPackBattalion = {\n prefix: 'fab',\n iconName: 'wolf-pack-battalion',\n icon: [512, 512, [], \"f514\", \"M267.73 471.53l10.56 15.84 5.28-12.32 5.28 7V512c21.06-7.92 21.11-66.86 25.51-97.21 4.62-31.89-.88-92.81 81.37-149.11-8.88-23.61-12-49.43-2.64-80.05C421 189 447 196.21 456.43 239.73l-30.35 8.36c11.15 23 17 46.76 13.2 72.14L412 313.18l-6.16 33.43-18.47-7-8.8 33.39-19.35-7 26.39 21.11 8.8-28.15L419 364.2l7-35.63 26.39 14.52c.25-20 7-58.06-8.8-84.45l26.39 5.28c4-22.07-2.38-39.21-7.92-56.74l22.43 9.68c-.44-25.07-29.94-56.79-61.58-58.5-20.22-1.09-56.74-25.17-54.1-51.9 2-19.87 17.45-42.62 43.11-49.7-44 36.51-9.68 67.3 5.28 73.46 4.4-11.44 17.54-69.08 0-130.2-40.39 22.87-89.65 65.1-93.2 147.79l-58 38.71-3.52 93.25L369.78 220l7 7-17.59 3.52-44 38.71-15.84-5.28-28.1 49.25-3.52 119.64 21.11 15.84-32.55 15.84-32.55-15.84 21.11-15.84-3.52-119.64-28.15-49.26-15.84 5.28-44-38.71-17.58-3.51 7-7 107.33 59.82-3.52-93.25-58.06-38.71C185 65.1 135.77 22.87 95.3 0c-17.54 61.12-4.4 118.76 0 130.2 15-6.16 49.26-36.95 5.28-73.46 25.66 7.08 41.15 29.83 43.11 49.7 2.63 26.74-33.88 50.81-54.1 51.9-31.65 1.72-61.15 33.44-61.59 58.51l22.43-9.68c-5.54 17.53-11.91 34.67-7.92 56.74l26.39-5.28c-15.76 26.39-9.05 64.43-8.8 84.45l26.39-14.52 7 35.63 24.63-5.28 8.8 28.15L153.35 366 134 373l-8.8-33.43-18.47 7-6.16-33.43-27.27 7c-3.82-25.38 2-49.1 13.2-72.14l-30.35-8.36c9.4-43.52 35.47-50.77 63.34-54.1 9.36 30.62 6.24 56.45-2.64 80.05 82.25 56.3 76.75 117.23 81.37 149.11 4.4 30.35 4.45 89.29 25.51 97.21v-29.83l5.28-7 5.28 12.32 10.56-15.84 11.44 21.11 11.43-21.1zm79.17-95L331.06 366c7.47-4.36 13.76-8.42 19.35-12.32-.6 7.22-.27 13.84-3.51 22.84zm28.15-49.26c-.4 10.94-.9 21.66-1.76 31.67-7.85-1.86-15.57-3.8-21.11-7 8.24-7.94 15.55-16.32 22.87-24.68zm24.63 5.28c0-13.43-2.05-24.21-5.28-33.43a235 235 0 0 1-18.47 27.27zm3.52-80.94c19.44 12.81 27.8 33.66 29.91 56.3-12.32-4.53-24.63-9.31-36.95-10.56 5.06-12 6.65-28.14 7-45.74zm-1.76-45.74c.81 14.3 1.84 28.82 1.76 42.23 19.22-8.11 29.78-9.72 44-14.08-10.61-18.96-27.2-25.53-45.76-28.16zM165.68 376.52L181.52 366c-7.47-4.36-13.76-8.42-19.35-12.32.6 7.26.27 13.88 3.51 22.88zm-28.15-49.26c.4 10.94.9 21.66 1.76 31.67 7.85-1.86 15.57-3.8 21.11-7-8.24-7.93-15.55-16.31-22.87-24.67zm-24.64 5.28c0-13.43 2-24.21 5.28-33.43a235 235 0 0 0 18.47 27.27zm-3.52-80.94c-19.44 12.81-27.8 33.66-29.91 56.3 12.32-4.53 24.63-9.31 37-10.56-5-12-6.65-28.14-7-45.74zm1.76-45.74c-.81 14.3-1.84 28.82-1.76 42.23-19.22-8.11-29.78-9.72-44-14.08 10.63-18.95 27.23-25.52 45.76-28.15z\"]\n};\nvar faWordpress = {\n prefix: 'fab',\n iconName: 'wordpress',\n icon: [512, 512, [], \"f19a\", \"M61.7 169.4l101.5 278C92.2 413 43.3 340.2 43.3 256c0-30.9 6.6-60.1 18.4-86.6zm337.9 75.9c0-26.3-9.4-44.5-17.5-58.7-10.8-17.5-20.9-32.4-20.9-49.9 0-19.6 14.8-37.8 35.7-37.8.9 0 1.8.1 2.8.2-37.9-34.7-88.3-55.9-143.7-55.9-74.3 0-139.7 38.1-177.8 95.9 5 .2 9.7.3 13.7.3 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l77.5 230.4L249.8 247l-33.1-90.8c-11.5-.7-22.3-2-22.3-2-11.5-.7-10.1-18.2 1.3-17.5 0 0 35.1 2.7 56 2.7 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l76.9 228.7 21.2-70.9c9-29.4 16-50.5 16-68.7zm-139.9 29.3l-63.8 185.5c19.1 5.6 39.2 8.7 60.1 8.7 24.8 0 48.5-4.3 70.6-12.1-.6-.9-1.1-1.9-1.5-2.9l-65.4-179.2zm183-120.7c.9 6.8 1.4 14 1.4 21.9 0 21.6-4 45.8-16.2 76.2l-65 187.9C426.2 403 468.7 334.5 468.7 256c0-37-9.4-71.8-26-102.1zM504 256c0 136.8-111.3 248-248 248C119.2 504 8 392.7 8 256 8 119.2 119.2 8 256 8c136.7 0 248 111.2 248 248zm-11.4 0c0-130.5-106.2-236.6-236.6-236.6C125.5 19.4 19.4 125.5 19.4 256S125.6 492.6 256 492.6c130.5 0 236.6-106.1 236.6-236.6z\"]\n};\nvar faWordpressSimple = {\n prefix: 'fab',\n iconName: 'wordpress-simple',\n icon: [512, 512, [], \"f411\", \"M256 8C119.3 8 8 119.2 8 256c0 136.7 111.3 248 248 248s248-111.3 248-248C504 119.2 392.7 8 256 8zM33 256c0-32.3 6.9-63 19.3-90.7l106.4 291.4C84.3 420.5 33 344.2 33 256zm223 223c-21.9 0-43-3.2-63-9.1l66.9-194.4 68.5 187.8c.5 1.1 1 2.1 1.6 3.1-23.1 8.1-48 12.6-74 12.6zm30.7-327.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-21.9 0-58.7-2.8-58.7-2.8-12-.7-13.4 17.7-1.4 18.4 0 0 11.4 1.4 23.4 2.1l34.7 95.2L200.6 393l-81.2-241.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-4.2 0-9.1-.1-14.4-.3C109.6 73 178.1 33 256 33c58 0 110.9 22.2 150.6 58.5-1-.1-1.9-.2-2.9-.2-21.9 0-37.4 19.1-37.4 39.6 0 18.4 10.6 33.9 21.9 52.3 8.5 14.8 18.4 33.9 18.4 61.5 0 19.1-7.3 41.2-17 72.1l-22.2 74.3-80.7-239.6zm81.4 297.2l68.1-196.9c12.7-31.8 17-57.2 17-79.9 0-8.2-.5-15.8-1.5-22.9 17.4 31.8 27.3 68.2 27.3 107 0 82.3-44.6 154.1-110.9 192.7z\"]\n};\nvar faWpbeginner = {\n prefix: 'fab',\n iconName: 'wpbeginner',\n icon: [512, 512, [], \"f297\", \"M462.799 322.374C519.01 386.682 466.961 480 370.944 480c-39.602 0-78.824-17.687-100.142-50.04-6.887.356-22.702.356-29.59 0C219.848 462.381 180.588 480 141.069 480c-95.49 0-148.348-92.996-91.855-157.626C-29.925 190.523 80.479 32 256.006 32c175.632 0 285.87 158.626 206.793 290.374zm-339.647-82.972h41.529v-58.075h-41.529v58.075zm217.18 86.072v-23.839c-60.506 20.915-132.355 9.198-187.589-33.971l.246 24.897c51.101 46.367 131.746 57.875 187.343 32.913zm-150.753-86.072h166.058v-58.075H189.579v58.075z\"]\n};\nvar faWpexplorer = {\n prefix: 'fab',\n iconName: 'wpexplorer',\n icon: [512, 512, [], \"f2de\", \"M512 256c0 141.2-114.7 256-256 256C114.8 512 0 397.3 0 256S114.7 0 256 0s256 114.7 256 256zm-32 0c0-123.2-100.3-224-224-224C132.5 32 32 132.5 32 256s100.5 224 224 224 224-100.5 224-224zM160.9 124.6l86.9 37.1-37.1 86.9-86.9-37.1 37.1-86.9zm110 169.1l46.6 94h-14.6l-50-100-48.9 100h-14l51.1-106.9-22.3-9.4 6-14 68.6 29.1-6 14.3-16.5-7.1zm-11.8-116.3l68.6 29.4-29.4 68.3L230 246l29.1-68.6zm80.3 42.9l54.6 23.1-23.4 54.3-54.3-23.1 23.1-54.3z\"]\n};\nvar faWpforms = {\n prefix: 'fab',\n iconName: 'wpforms',\n icon: [448, 512, [], \"f298\", \"M448 75.2v361.7c0 24.3-19 43.2-43.2 43.2H43.2C19.3 480 0 461.4 0 436.8V75.2C0 51.1 18.8 32 43.2 32h361.7c24 0 43.1 18.8 43.1 43.2zm-37.3 361.6V75.2c0-3-2.6-5.8-5.8-5.8h-9.3L285.3 144 224 94.1 162.8 144 52.5 69.3h-9.3c-3.2 0-5.8 2.8-5.8 5.8v361.7c0 3 2.6 5.8 5.8 5.8h361.7c3.2.1 5.8-2.7 5.8-5.8zM150.2 186v37H76.7v-37h73.5zm0 74.4v37.3H76.7v-37.3h73.5zm11.1-147.3l54-43.7H96.8l64.5 43.7zm210 72.9v37h-196v-37h196zm0 74.4v37.3h-196v-37.3h196zm-84.6-147.3l64.5-43.7H232.8l53.9 43.7zM371.3 335v37.3h-99.4V335h99.4z\"]\n};\nvar faWpressr = {\n prefix: 'fab',\n iconName: 'wpressr',\n icon: [496, 512, [], \"f3e4\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm171.33 158.6c-15.18 34.51-30.37 69.02-45.63 103.5-2.44 5.51-6.89 8.24-12.97 8.24-23.02-.01-46.03.06-69.05-.05-5.12-.03-8.25 1.89-10.34 6.72-10.19 23.56-20.63 47-30.95 70.5-1.54 3.51-4.06 5.29-7.92 5.29-45.94-.01-91.87-.02-137.81 0-3.13 0-5.63-1.15-7.72-3.45-11.21-12.33-22.46-24.63-33.68-36.94-2.69-2.95-2.79-6.18-1.21-9.73 8.66-19.54 17.27-39.1 25.89-58.66 12.93-29.35 25.89-58.69 38.75-88.08 1.7-3.88 4.28-5.68 8.54-5.65 14.24.1 28.48.02 42.72.05 6.24.01 9.2 4.84 6.66 10.59-13.6 30.77-27.17 61.55-40.74 92.33-5.72 12.99-11.42 25.99-17.09 39-3.91 8.95 7.08 11.97 10.95 5.6.23-.37-1.42 4.18 30.01-67.69 1.36-3.1 3.41-4.4 6.77-4.39 15.21.08 30.43.02 45.64.04 5.56.01 7.91 3.64 5.66 8.75-8.33 18.96-16.71 37.9-24.98 56.89-4.98 11.43 8.08 12.49 11.28 5.33.04-.08 27.89-63.33 32.19-73.16 2.02-4.61 5.44-6.51 10.35-6.5 26.43.05 52.86 0 79.29.05 12.44.02 13.93-13.65 3.9-13.64-25.26.03-50.52.02-75.78.02-6.27 0-7.84-2.47-5.27-8.27 5.78-13.06 11.59-26.11 17.3-39.21 1.73-3.96 4.52-5.79 8.84-5.78 23.09.06 25.98.02 130.78.03 6.08-.01 8.03 2.79 5.62 8.27z\"]\n};\nvar faXbox = {\n prefix: 'fab',\n iconName: 'xbox',\n icon: [512, 512, [], \"f412\", \"M369.9 318.2c44.3 54.3 64.7 98.8 54.4 118.7-7.9 15.1-56.7 44.6-92.6 55.9-29.6 9.3-68.4 13.3-100.4 10.2-38.2-3.7-76.9-17.4-110.1-39C93.3 445.8 87 438.3 87 423.4c0-29.9 32.9-82.3 89.2-142.1 32-33.9 76.5-73.7 81.4-72.6 9.4 2.1 84.3 75.1 112.3 109.5zM188.6 143.8c-29.7-26.9-58.1-53.9-86.4-63.4-15.2-5.1-16.3-4.8-28.7 8.1-29.2 30.4-53.5 79.7-60.3 122.4-5.4 34.2-6.1 43.8-4.2 60.5 5.6 50.5 17.3 85.4 40.5 120.9 9.5 14.6 12.1 17.3 9.3 9.9-4.2-11-.3-37.5 9.5-64 14.3-39 53.9-112.9 120.3-194.4zm311.6 63.5C483.3 127.3 432.7 77 425.6 77c-7.3 0-24.2 6.5-36 13.9-23.3 14.5-41 31.4-64.3 52.8C367.7 197 427.5 283.1 448.2 346c6.8 20.7 9.7 41.1 7.4 52.3-1.7 8.5-1.7 8.5 1.4 4.6 6.1-7.7 19.9-31.3 25.4-43.5 7.4-16.2 15-40.2 18.6-58.7 4.3-22.5 3.9-70.8-.8-93.4zM141.3 43C189 40.5 251 77.5 255.6 78.4c.7.1 10.4-4.2 21.6-9.7 63.9-31.1 94-25.8 107.4-25.2-63.9-39.3-152.7-50-233.9-11.7-23.4 11.1-24 11.9-9.4 11.2z\"]\n};\nvar faXing = {\n prefix: 'fab',\n iconName: 'xing',\n icon: [384, 512, [], \"f168\", \"M162.7 210c-1.8 3.3-25.2 44.4-70.1 123.5-4.9 8.3-10.8 12.5-17.7 12.5H9.8c-7.7 0-12.1-7.5-8.5-14.4l69-121.3c.2 0 .2-.1 0-.3l-43.9-75.6c-4.3-7.8.3-14.1 8.5-14.1H100c7.3 0 13.3 4.1 18 12.2l44.7 77.5zM382.6 46.1l-144 253v.3L330.2 466c3.9 7.1.2 14.1-8.5 14.1h-65.2c-7.6 0-13.6-4-18-12.2l-92.4-168.5c3.3-5.8 51.5-90.8 144.8-255.2 4.6-8.1 10.4-12.2 17.5-12.2h65.7c8 0 12.3 6.7 8.5 14.1z\"]\n};\nvar faXingSquare = {\n prefix: 'fab',\n iconName: 'xing-square',\n icon: [448, 512, [], \"f169\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM140.4 320.2H93.8c-5.5 0-8.7-5.3-6-10.3l49.3-86.7c.1 0 .1-.1 0-.2l-31.4-54c-3-5.6.2-10.1 6-10.1h46.6c5.2 0 9.5 2.9 12.9 8.7l31.9 55.3c-1.3 2.3-18 31.7-50.1 88.2-3.5 6.2-7.7 9.1-12.6 9.1zm219.7-214.1L257.3 286.8v.2l65.5 119c2.8 5.1.1 10.1-6 10.1h-46.6c-5.5 0-9.7-2.9-12.9-8.7l-66-120.3c2.3-4.1 36.8-64.9 103.4-182.3 3.3-5.8 7.4-8.7 12.5-8.7h46.9c5.7-.1 8.8 4.7 6 10z\"]\n};\nvar faYCombinator = {\n prefix: 'fab',\n iconName: 'y-combinator',\n icon: [448, 512, [], \"f23b\", \"M448 32v448H0V32h448zM236 287.5L313.5 142h-32.7L235 233c-4.7 9.3-9 18.3-12.8 26.8L210 233l-45.2-91h-35l76.7 143.8v94.5H236v-92.8z\"]\n};\nvar faYahoo = {\n prefix: 'fab',\n iconName: 'yahoo',\n icon: [512, 512, [], \"f19e\", \"M223.69,141.06,167,284.23,111,141.06H14.93L120.76,390.19,82.19,480h94.17L317.27,141.06Zm105.4,135.79a58.22,58.22,0,1,0,58.22,58.22A58.22,58.22,0,0,0,329.09,276.85ZM394.65,32l-93,223.47H406.44L499.07,32Z\"]\n};\nvar faYammer = {\n prefix: 'fab',\n iconName: 'yammer',\n icon: [512, 512, [], \"f840\", \"M421.78 152.17A23.06 23.06 0 0 0 400.9 112c-.83.43-1.71.9-2.63 1.4-15.25 8.4-118.33 80.62-106.69 88.77s82.04-23.61 130.2-50zm0 217.17c-48.16-26.38-118.64-58.1-130.2-50s91.42 80.35 106.69 88.74c.92.51 1.8 1 2.63 1.41a23.07 23.07 0 0 0 20.88-40.15zM464.21 237c-.95 0-1.95-.06-3-.06-17.4 0-142.52 13.76-136.24 26.51s83.3 18.74 138.21 18.76a23 23 0 0 0 1-45.21zM31 96.65a24.88 24.88 0 0 1 46.14-18.4l81 205.06h1.21l77-203.53a23.52 23.52 0 0 1 44.45 15.27L171.2 368.44C152.65 415.66 134.08 448 77.91 448a139.67 139.67 0 0 1-23.81-1.95 21.31 21.31 0 0 1 6.9-41.77c.66.06 10.91.66 13.86.66 30.47 0 43.74-18.94 58.07-59.41z\"]\n};\nvar faYandex = {\n prefix: 'fab',\n iconName: 'yandex',\n icon: [256, 512, [], \"f413\", \"M153.1 315.8L65.7 512H2l96-209.8c-45.1-22.9-75.2-64.4-75.2-141.1C22.7 53.7 90.8 0 171.7 0H254v512h-55.1V315.8h-45.8zm45.8-269.3h-29.4c-44.4 0-87.4 29.4-87.4 114.6 0 82.3 39.4 108.8 87.4 108.8h29.4V46.5z\"]\n};\nvar faYandexInternational = {\n prefix: 'fab',\n iconName: 'yandex-international',\n icon: [320, 512, [], \"f414\", \"M129.5 512V345.9L18.5 48h55.8l81.8 229.7L250.2 0h51.3L180.8 347.8V512h-51.3z\"]\n};\nvar faYarn = {\n prefix: 'fab',\n iconName: 'yarn',\n icon: [496, 512, [], \"f7e3\", \"M393.9 345.2c-39 9.3-48.4 32.1-104 47.4 0 0-2.7 4-10.4 5.8-13.4 3.3-63.9 6-68.5 6.1-12.4.1-19.9-3.2-22-8.2-6.4-15.3 9.2-22 9.2-22-8.1-5-9-9.9-9.8-8.1-2.4 5.8-3.6 20.1-10.1 26.5-8.8 8.9-25.5 5.9-35.3.8-10.8-5.7.8-19.2.8-19.2s-5.8 3.4-10.5-3.6c-6-9.3-17.1-37.3 11.5-62-1.3-10.1-4.6-53.7 40.6-85.6 0 0-20.6-22.8-12.9-43.3 5-13.4 7-13.3 8.6-13.9 5.7-2.2 11.3-4.6 15.4-9.1 20.6-22.2 46.8-18 46.8-18s12.4-37.8 23.9-30.4c3.5 2.3 16.3 30.6 16.3 30.6s13.6-7.9 15.1-5c8.2 16 9.2 46.5 5.6 65.1-6.1 30.6-21.4 47.1-27.6 57.5-1.4 2.4 16.5 10 27.8 41.3 10.4 28.6 1.1 52.7 2.8 55.3.8 1.4 13.7.8 36.4-13.2 12.8-7.9 28.1-16.9 45.4-17 16.7-.5 17.6 19.2 4.9 22.2zM496 256c0 136.9-111.1 248-248 248S0 392.9 0 256 111.1 8 248 8s248 111.1 248 248zm-79.3 75.2c-1.7-13.6-13.2-23-28-22.8-22 .3-40.5 11.7-52.8 19.2-4.8 3-8.9 5.2-12.4 6.8 3.1-44.5-22.5-73.1-28.7-79.4 7.8-11.3 18.4-27.8 23.4-53.2 4.3-21.7 3-55.5-6.9-74.5-1.6-3.1-7.4-11.2-21-7.4-9.7-20-13-22.1-15.6-23.8-1.1-.7-23.6-16.4-41.4 28-12.2.9-31.3 5.3-47.5 22.8-2 2.2-5.9 3.8-10.1 5.4h.1c-8.4 3-12.3 9.9-16.9 22.3-6.5 17.4.2 34.6 6.8 45.7-17.8 15.9-37 39.8-35.7 82.5-34 36-11.8 73-5.6 79.6-1.6 11.1 3.7 19.4 12 23.8 12.6 6.7 30.3 9.6 43.9 2.8 4.9 5.2 13.8 10.1 30 10.1 6.8 0 58-2.9 72.6-6.5 6.8-1.6 11.5-4.5 14.6-7.1 9.8-3.1 36.8-12.3 62.2-28.7 18-11.7 24.2-14.2 37.6-17.4 12.9-3.2 21-15.1 19.4-28.2z\"]\n};\nvar faYelp = {\n prefix: 'fab',\n iconName: 'yelp',\n icon: [384, 512, [], \"f1e9\", \"M42.9 240.32l99.62 48.61c19.2 9.4 16.2 37.51-4.5 42.71L30.5 358.45a22.79 22.79 0 0 1-28.21-19.6 197.16 197.16 0 0 1 9-85.32 22.8 22.8 0 0 1 31.61-13.21zm44 239.25a199.45 199.45 0 0 0 79.42 32.11A22.78 22.78 0 0 0 192.94 490l3.9-110.82c.7-21.3-25.5-31.91-39.81-16.1l-74.21 82.4a22.82 22.82 0 0 0 4.09 34.09zm145.34-109.92l58.81 94a22.93 22.93 0 0 0 34 5.5 198.36 198.36 0 0 0 52.71-67.61A23 23 0 0 0 364.17 370l-105.42-34.26c-20.31-6.5-37.81 15.8-26.51 33.91zm148.33-132.23a197.44 197.44 0 0 0-50.41-69.31 22.85 22.85 0 0 0-34 4.4l-62 91.92c-11.9 17.7 4.7 40.61 25.2 34.71L366 268.63a23 23 0 0 0 14.61-31.21zM62.11 30.18a22.86 22.86 0 0 0-9.9 32l104.12 180.44c11.7 20.2 42.61 11.9 42.61-11.4V22.88a22.67 22.67 0 0 0-24.5-22.8 320.37 320.37 0 0 0-112.33 30.1z\"]\n};\nvar faYoast = {\n prefix: 'fab',\n iconName: 'yoast',\n icon: [448, 512, [], \"f2b1\", \"M91.3 76h186l-7 18.9h-179c-39.7 0-71.9 31.6-71.9 70.3v205.4c0 35.4 24.9 70.3 84 70.3V460H91.3C41.2 460 0 419.8 0 370.5V165.2C0 115.9 40.7 76 91.3 76zm229.1-56h66.5C243.1 398.1 241.2 418.9 202.2 459.3c-20.8 21.6-49.3 31.7-78.3 32.7v-51.1c49.2-7.7 64.6-49.9 64.6-75.3 0-20.1.6-12.6-82.1-223.2h61.4L218.2 299 320.4 20zM448 161.5V460H234c6.6-9.6 10.7-16.3 12.1-19.4h182.5V161.5c0-32.5-17.1-51.9-48.2-62.9l6.7-17.6c41.7 13.6 60.9 43.1 60.9 80.5z\"]\n};\nvar faYoutube = {\n prefix: 'fab',\n iconName: 'youtube',\n icon: [576, 512, [], \"f167\", \"M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z\"]\n};\nvar faYoutubeSquare = {\n prefix: 'fab',\n iconName: 'youtube-square',\n icon: [448, 512, [], \"f431\", \"M186.8 202.1l95.2 54.1-95.2 54.1V202.1zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-42 176.3s0-59.6-7.6-88.2c-4.2-15.8-16.5-28.2-32.2-32.4C337.9 128 224 128 224 128s-113.9 0-142.2 7.7c-15.7 4.2-28 16.6-32.2 32.4-7.6 28.5-7.6 88.2-7.6 88.2s0 59.6 7.6 88.2c4.2 15.8 16.5 27.7 32.2 31.9C110.1 384 224 384 224 384s113.9 0 142.2-7.7c15.7-4.2 28-16.1 32.2-31.9 7.6-28.5 7.6-88.1 7.6-88.1z\"]\n};\nvar faZhihu = {\n prefix: 'fab',\n iconName: 'zhihu',\n icon: [640, 512, [], \"f63f\", \"M170.54 148.13v217.54l23.43.01 7.71 26.37 42.01-26.37h49.53V148.13H170.54zm97.75 193.93h-27.94l-27.9 17.51-5.08-17.47-11.9-.04V171.75h72.82v170.31zm-118.46-94.39H97.5c1.74-27.1 2.2-51.59 2.2-73.46h51.16s1.97-22.56-8.58-22.31h-88.5c3.49-13.12 7.87-26.66 13.12-40.67 0 0-24.07 0-32.27 21.57-3.39 8.9-13.21 43.14-30.7 78.12 5.89-.64 25.37-1.18 36.84-22.21 2.11-5.89 2.51-6.66 5.14-14.53h28.87c0 10.5-1.2 66.88-1.68 73.44H20.83c-11.74 0-15.56 23.62-15.56 23.62h65.58C66.45 321.1 42.83 363.12 0 396.34c20.49 5.85 40.91-.93 51-9.9 0 0 22.98-20.9 35.59-69.25l53.96 64.94s7.91-26.89-1.24-39.99c-7.58-8.92-28.06-33.06-36.79-41.81L87.9 311.95c4.36-13.98 6.99-27.55 7.87-40.67h61.65s-.09-23.62-7.59-23.62v.01zm412.02-1.6c20.83-25.64 44.98-58.57 44.98-58.57s-18.65-14.8-27.38-4.06c-6 8.15-36.83 48.2-36.83 48.2l19.23 14.43zm-150.09-59.09c-9.01-8.25-25.91 2.13-25.91 2.13s39.52 55.04 41.12 57.45l19.46-13.73s-25.67-37.61-34.66-45.86h-.01zM640 258.35c-19.78 0-130.91.93-131.06.93v-101c4.81 0 12.42-.4 22.85-1.2 40.88-2.41 70.13-4 87.77-4.81 0 0 12.22-27.19-.59-33.44-3.07-1.18-23.17 4.58-23.17 4.58s-165.22 16.49-232.36 18.05c1.6 8.82 7.62 17.08 15.78 19.55 13.31 3.48 22.69 1.7 49.15.89 24.83-1.6 43.68-2.43 56.51-2.43v99.81H351.41s2.82 22.31 25.51 22.85h107.94v70.92c0 13.97-11.19 21.99-24.48 21.12-14.08.11-26.08-1.15-41.69-1.81 1.99 3.97 6.33 14.39 19.31 21.84 9.88 4.81 16.17 6.57 26.02 6.57 29.56 0 45.67-17.28 44.89-45.31v-73.32h122.36c9.68 0 8.7-23.78 8.7-23.78l.03-.01z\"]\n};\nvar _iconsCache = {\n fa500px: fa500px,\n faAccessibleIcon: faAccessibleIcon,\n faAccusoft: faAccusoft,\n faAcquisitionsIncorporated: faAcquisitionsIncorporated,\n faAdn: faAdn,\n faAdversal: faAdversal,\n faAffiliatetheme: faAffiliatetheme,\n faAirbnb: faAirbnb,\n faAlgolia: faAlgolia,\n faAlipay: faAlipay,\n faAmazon: faAmazon,\n faAmazonPay: faAmazonPay,\n faAmilia: faAmilia,\n faAndroid: faAndroid,\n faAngellist: faAngellist,\n faAngrycreative: faAngrycreative,\n faAngular: faAngular,\n faAppStore: faAppStore,\n faAppStoreIos: faAppStoreIos,\n faApper: faApper,\n faApple: faApple,\n faApplePay: faApplePay,\n faArtstation: faArtstation,\n faAsymmetrik: faAsymmetrik,\n faAtlassian: faAtlassian,\n faAudible: faAudible,\n faAutoprefixer: faAutoprefixer,\n faAvianex: faAvianex,\n faAviato: faAviato,\n faAws: faAws,\n faBandcamp: faBandcamp,\n faBattleNet: faBattleNet,\n faBehance: faBehance,\n faBehanceSquare: faBehanceSquare,\n faBimobject: faBimobject,\n faBitbucket: faBitbucket,\n faBitcoin: faBitcoin,\n faBity: faBity,\n faBlackTie: faBlackTie,\n faBlackberry: faBlackberry,\n faBlogger: faBlogger,\n faBloggerB: faBloggerB,\n faBluetooth: faBluetooth,\n faBluetoothB: faBluetoothB,\n faBootstrap: faBootstrap,\n faBtc: faBtc,\n faBuffer: faBuffer,\n faBuromobelexperte: faBuromobelexperte,\n faBuyNLarge: faBuyNLarge,\n faBuysellads: faBuysellads,\n faCanadianMapleLeaf: faCanadianMapleLeaf,\n faCcAmazonPay: faCcAmazonPay,\n faCcAmex: faCcAmex,\n faCcApplePay: faCcApplePay,\n faCcDinersClub: faCcDinersClub,\n faCcDiscover: faCcDiscover,\n faCcJcb: faCcJcb,\n faCcMastercard: faCcMastercard,\n faCcPaypal: faCcPaypal,\n faCcStripe: faCcStripe,\n faCcVisa: faCcVisa,\n faCentercode: faCentercode,\n faCentos: faCentos,\n faChrome: faChrome,\n faChromecast: faChromecast,\n faCloudflare: faCloudflare,\n faCloudscale: faCloudscale,\n faCloudsmith: faCloudsmith,\n faCloudversify: faCloudversify,\n faCodepen: faCodepen,\n faCodiepie: faCodiepie,\n faConfluence: faConfluence,\n faConnectdevelop: faConnectdevelop,\n faContao: faContao,\n faCottonBureau: faCottonBureau,\n faCpanel: faCpanel,\n faCreativeCommons: faCreativeCommons,\n faCreativeCommonsBy: faCreativeCommonsBy,\n faCreativeCommonsNc: faCreativeCommonsNc,\n faCreativeCommonsNcEu: faCreativeCommonsNcEu,\n faCreativeCommonsNcJp: faCreativeCommonsNcJp,\n faCreativeCommonsNd: faCreativeCommonsNd,\n faCreativeCommonsPd: faCreativeCommonsPd,\n faCreativeCommonsPdAlt: faCreativeCommonsPdAlt,\n faCreativeCommonsRemix: faCreativeCommonsRemix,\n faCreativeCommonsSa: faCreativeCommonsSa,\n faCreativeCommonsSampling: faCreativeCommonsSampling,\n faCreativeCommonsSamplingPlus: faCreativeCommonsSamplingPlus,\n faCreativeCommonsShare: faCreativeCommonsShare,\n faCreativeCommonsZero: faCreativeCommonsZero,\n faCriticalRole: faCriticalRole,\n faCss3: faCss3,\n faCss3Alt: faCss3Alt,\n faCuttlefish: faCuttlefish,\n faDAndD: faDAndD,\n faDAndDBeyond: faDAndDBeyond,\n faDailymotion: faDailymotion,\n faDashcube: faDashcube,\n faDeezer: faDeezer,\n faDelicious: faDelicious,\n faDeploydog: faDeploydog,\n faDeskpro: faDeskpro,\n faDev: faDev,\n faDeviantart: faDeviantart,\n faDhl: faDhl,\n faDiaspora: faDiaspora,\n faDigg: faDigg,\n faDigitalOcean: faDigitalOcean,\n faDiscord: faDiscord,\n faDiscourse: faDiscourse,\n faDochub: faDochub,\n faDocker: faDocker,\n faDraft2digital: faDraft2digital,\n faDribbble: faDribbble,\n faDribbbleSquare: faDribbbleSquare,\n faDropbox: faDropbox,\n faDrupal: faDrupal,\n faDyalog: faDyalog,\n faEarlybirds: faEarlybirds,\n faEbay: faEbay,\n faEdge: faEdge,\n faEdgeLegacy: faEdgeLegacy,\n faElementor: faElementor,\n faEllo: faEllo,\n faEmber: faEmber,\n faEmpire: faEmpire,\n faEnvira: faEnvira,\n faErlang: faErlang,\n faEthereum: faEthereum,\n faEtsy: faEtsy,\n faEvernote: faEvernote,\n faExpeditedssl: faExpeditedssl,\n faFacebook: faFacebook,\n faFacebookF: faFacebookF,\n faFacebookMessenger: faFacebookMessenger,\n faFacebookSquare: faFacebookSquare,\n faFantasyFlightGames: faFantasyFlightGames,\n faFedex: faFedex,\n faFedora: faFedora,\n faFigma: faFigma,\n faFirefox: faFirefox,\n faFirefoxBrowser: faFirefoxBrowser,\n faFirstOrder: faFirstOrder,\n faFirstOrderAlt: faFirstOrderAlt,\n faFirstdraft: faFirstdraft,\n faFlickr: faFlickr,\n faFlipboard: faFlipboard,\n faFly: faFly,\n faFontAwesome: faFontAwesome,\n faFontAwesomeAlt: faFontAwesomeAlt,\n faFontAwesomeFlag: faFontAwesomeFlag,\n faFontAwesomeLogoFull: faFontAwesomeLogoFull,\n faFonticons: faFonticons,\n faFonticonsFi: faFonticonsFi,\n faFortAwesome: faFortAwesome,\n faFortAwesomeAlt: faFortAwesomeAlt,\n faForumbee: faForumbee,\n faFoursquare: faFoursquare,\n faFreeCodeCamp: faFreeCodeCamp,\n faFreebsd: faFreebsd,\n faFulcrum: faFulcrum,\n faGalacticRepublic: faGalacticRepublic,\n faGalacticSenate: faGalacticSenate,\n faGetPocket: faGetPocket,\n faGg: faGg,\n faGgCircle: faGgCircle,\n faGit: faGit,\n faGitAlt: faGitAlt,\n faGitSquare: faGitSquare,\n faGithub: faGithub,\n faGithubAlt: faGithubAlt,\n faGithubSquare: faGithubSquare,\n faGitkraken: faGitkraken,\n faGitlab: faGitlab,\n faGitter: faGitter,\n faGlide: faGlide,\n faGlideG: faGlideG,\n faGofore: faGofore,\n faGoodreads: faGoodreads,\n faGoodreadsG: faGoodreadsG,\n faGoogle: faGoogle,\n faGoogleDrive: faGoogleDrive,\n faGooglePay: faGooglePay,\n faGooglePlay: faGooglePlay,\n faGooglePlus: faGooglePlus,\n faGooglePlusG: faGooglePlusG,\n faGooglePlusSquare: faGooglePlusSquare,\n faGoogleWallet: faGoogleWallet,\n faGratipay: faGratipay,\n faGrav: faGrav,\n faGripfire: faGripfire,\n faGrunt: faGrunt,\n faGuilded: faGuilded,\n faGulp: faGulp,\n faHackerNews: faHackerNews,\n faHackerNewsSquare: faHackerNewsSquare,\n faHackerrank: faHackerrank,\n faHips: faHips,\n faHireAHelper: faHireAHelper,\n faHive: faHive,\n faHooli: faHooli,\n faHornbill: faHornbill,\n faHotjar: faHotjar,\n faHouzz: faHouzz,\n faHtml5: faHtml5,\n faHubspot: faHubspot,\n faIdeal: faIdeal,\n faImdb: faImdb,\n faInnosoft: faInnosoft,\n faInstagram: faInstagram,\n faInstagramSquare: faInstagramSquare,\n faInstalod: faInstalod,\n faIntercom: faIntercom,\n faInternetExplorer: faInternetExplorer,\n faInvision: faInvision,\n faIoxhost: faIoxhost,\n faItchIo: faItchIo,\n faItunes: faItunes,\n faItunesNote: faItunesNote,\n faJava: faJava,\n faJediOrder: faJediOrder,\n faJenkins: faJenkins,\n faJira: faJira,\n faJoget: faJoget,\n faJoomla: faJoomla,\n faJs: faJs,\n faJsSquare: faJsSquare,\n faJsfiddle: faJsfiddle,\n faKaggle: faKaggle,\n faKeybase: faKeybase,\n faKeycdn: faKeycdn,\n faKickstarter: faKickstarter,\n faKickstarterK: faKickstarterK,\n faKorvue: faKorvue,\n faLaravel: faLaravel,\n faLastfm: faLastfm,\n faLastfmSquare: faLastfmSquare,\n faLeanpub: faLeanpub,\n faLess: faLess,\n faLine: faLine,\n faLinkedin: faLinkedin,\n faLinkedinIn: faLinkedinIn,\n faLinode: faLinode,\n faLinux: faLinux,\n faLyft: faLyft,\n faMagento: faMagento,\n faMailchimp: faMailchimp,\n faMandalorian: faMandalorian,\n faMarkdown: faMarkdown,\n faMastodon: faMastodon,\n faMaxcdn: faMaxcdn,\n faMdb: faMdb,\n faMedapps: faMedapps,\n faMedium: faMedium,\n faMediumM: faMediumM,\n faMedrt: faMedrt,\n faMeetup: faMeetup,\n faMegaport: faMegaport,\n faMendeley: faMendeley,\n faMicroblog: faMicroblog,\n faMicrosoft: faMicrosoft,\n faMix: faMix,\n faMixcloud: faMixcloud,\n faMixer: faMixer,\n faMizuni: faMizuni,\n faModx: faModx,\n faMonero: faMonero,\n faNapster: faNapster,\n faNeos: faNeos,\n faNimblr: faNimblr,\n faNode: faNode,\n faNodeJs: faNodeJs,\n faNpm: faNpm,\n faNs8: faNs8,\n faNutritionix: faNutritionix,\n faOctopusDeploy: faOctopusDeploy,\n faOdnoklassniki: faOdnoklassniki,\n faOdnoklassnikiSquare: faOdnoklassnikiSquare,\n faOldRepublic: faOldRepublic,\n faOpencart: faOpencart,\n faOpenid: faOpenid,\n faOpera: faOpera,\n faOptinMonster: faOptinMonster,\n faOrcid: faOrcid,\n faOsi: faOsi,\n faPage4: faPage4,\n faPagelines: faPagelines,\n faPalfed: faPalfed,\n faPatreon: faPatreon,\n faPaypal: faPaypal,\n faPennyArcade: faPennyArcade,\n faPerbyte: faPerbyte,\n faPeriscope: faPeriscope,\n faPhabricator: faPhabricator,\n faPhoenixFramework: faPhoenixFramework,\n faPhoenixSquadron: faPhoenixSquadron,\n faPhp: faPhp,\n faPiedPiper: faPiedPiper,\n faPiedPiperAlt: faPiedPiperAlt,\n faPiedPiperHat: faPiedPiperHat,\n faPiedPiperPp: faPiedPiperPp,\n faPiedPiperSquare: faPiedPiperSquare,\n faPinterest: faPinterest,\n faPinterestP: faPinterestP,\n faPinterestSquare: faPinterestSquare,\n faPlaystation: faPlaystation,\n faProductHunt: faProductHunt,\n faPushed: faPushed,\n faPython: faPython,\n faQq: faQq,\n faQuinscape: faQuinscape,\n faQuora: faQuora,\n faRProject: faRProject,\n faRaspberryPi: faRaspberryPi,\n faRavelry: faRavelry,\n faReact: faReact,\n faReacteurope: faReacteurope,\n faReadme: faReadme,\n faRebel: faRebel,\n faRedRiver: faRedRiver,\n faReddit: faReddit,\n faRedditAlien: faRedditAlien,\n faRedditSquare: faRedditSquare,\n faRedhat: faRedhat,\n faRenren: faRenren,\n faReplyd: faReplyd,\n faResearchgate: faResearchgate,\n faResolving: faResolving,\n faRev: faRev,\n faRocketchat: faRocketchat,\n faRockrms: faRockrms,\n faRust: faRust,\n faSafari: faSafari,\n faSalesforce: faSalesforce,\n faSass: faSass,\n faSchlix: faSchlix,\n faScribd: faScribd,\n faSearchengin: faSearchengin,\n faSellcast: faSellcast,\n faSellsy: faSellsy,\n faServicestack: faServicestack,\n faShirtsinbulk: faShirtsinbulk,\n faShopify: faShopify,\n faShopware: faShopware,\n faSimplybuilt: faSimplybuilt,\n faSistrix: faSistrix,\n faSith: faSith,\n faSketch: faSketch,\n faSkyatlas: faSkyatlas,\n faSkype: faSkype,\n faSlack: faSlack,\n faSlackHash: faSlackHash,\n faSlideshare: faSlideshare,\n faSnapchat: faSnapchat,\n faSnapchatGhost: faSnapchatGhost,\n faSnapchatSquare: faSnapchatSquare,\n faSoundcloud: faSoundcloud,\n faSourcetree: faSourcetree,\n faSpeakap: faSpeakap,\n faSpeakerDeck: faSpeakerDeck,\n faSpotify: faSpotify,\n faSquarespace: faSquarespace,\n faStackExchange: faStackExchange,\n faStackOverflow: faStackOverflow,\n faStackpath: faStackpath,\n faStaylinked: faStaylinked,\n faSteam: faSteam,\n faSteamSquare: faSteamSquare,\n faSteamSymbol: faSteamSymbol,\n faStickerMule: faStickerMule,\n faStrava: faStrava,\n faStripe: faStripe,\n faStripeS: faStripeS,\n faStudiovinari: faStudiovinari,\n faStumbleupon: faStumbleupon,\n faStumbleuponCircle: faStumbleuponCircle,\n faSuperpowers: faSuperpowers,\n faSupple: faSupple,\n faSuse: faSuse,\n faSwift: faSwift,\n faSymfony: faSymfony,\n faTeamspeak: faTeamspeak,\n faTelegram: faTelegram,\n faTelegramPlane: faTelegramPlane,\n faTencentWeibo: faTencentWeibo,\n faTheRedYeti: faTheRedYeti,\n faThemeco: faThemeco,\n faThemeisle: faThemeisle,\n faThinkPeaks: faThinkPeaks,\n faTiktok: faTiktok,\n faTradeFederation: faTradeFederation,\n faTrello: faTrello,\n faTumblr: faTumblr,\n faTumblrSquare: faTumblrSquare,\n faTwitch: faTwitch,\n faTwitter: faTwitter,\n faTwitterSquare: faTwitterSquare,\n faTypo3: faTypo3,\n faUber: faUber,\n faUbuntu: faUbuntu,\n faUikit: faUikit,\n faUmbraco: faUmbraco,\n faUncharted: faUncharted,\n faUniregistry: faUniregistry,\n faUnity: faUnity,\n faUnsplash: faUnsplash,\n faUntappd: faUntappd,\n faUps: faUps,\n faUsb: faUsb,\n faUsps: faUsps,\n faUssunnah: faUssunnah,\n faVaadin: faVaadin,\n faViacoin: faViacoin,\n faViadeo: faViadeo,\n faViadeoSquare: faViadeoSquare,\n faViber: faViber,\n faVimeo: faVimeo,\n faVimeoSquare: faVimeoSquare,\n faVimeoV: faVimeoV,\n faVine: faVine,\n faVk: faVk,\n faVnv: faVnv,\n faVuejs: faVuejs,\n faWatchmanMonitoring: faWatchmanMonitoring,\n faWaze: faWaze,\n faWeebly: faWeebly,\n faWeibo: faWeibo,\n faWeixin: faWeixin,\n faWhatsapp: faWhatsapp,\n faWhatsappSquare: faWhatsappSquare,\n faWhmcs: faWhmcs,\n faWikipediaW: faWikipediaW,\n faWindows: faWindows,\n faWix: faWix,\n faWizardsOfTheCoast: faWizardsOfTheCoast,\n faWodu: faWodu,\n faWolfPackBattalion: faWolfPackBattalion,\n faWordpress: faWordpress,\n faWordpressSimple: faWordpressSimple,\n faWpbeginner: faWpbeginner,\n faWpexplorer: faWpexplorer,\n faWpforms: faWpforms,\n faWpressr: faWpressr,\n faXbox: faXbox,\n faXing: faXing,\n faXingSquare: faXingSquare,\n faYCombinator: faYCombinator,\n faYahoo: faYahoo,\n faYammer: faYammer,\n faYandex: faYandex,\n faYandexInternational: faYandexInternational,\n faYarn: faYarn,\n faYelp: faYelp,\n faYoast: faYoast,\n faYoutube: faYoutube,\n faYoutubeSquare: faYoutubeSquare,\n faZhihu: faZhihu\n};\n\nexport { _iconsCache as fab, prefix, fa500px, faAccessibleIcon, faAccusoft, faAcquisitionsIncorporated, faAdn, faAdversal, faAffiliatetheme, faAirbnb, faAlgolia, faAlipay, faAmazon, faAmazonPay, faAmilia, faAndroid, faAngellist, faAngrycreative, faAngular, faAppStore, faAppStoreIos, faApper, faApple, faApplePay, faArtstation, faAsymmetrik, faAtlassian, faAudible, faAutoprefixer, faAvianex, faAviato, faAws, faBandcamp, faBattleNet, faBehance, faBehanceSquare, faBimobject, faBitbucket, faBitcoin, faBity, faBlackTie, faBlackberry, faBlogger, faBloggerB, faBluetooth, faBluetoothB, faBootstrap, faBtc, faBuffer, faBuromobelexperte, faBuyNLarge, faBuysellads, faCanadianMapleLeaf, faCcAmazonPay, faCcAmex, faCcApplePay, faCcDinersClub, faCcDiscover, faCcJcb, faCcMastercard, faCcPaypal, faCcStripe, faCcVisa, faCentercode, faCentos, faChrome, faChromecast, faCloudflare, faCloudscale, faCloudsmith, faCloudversify, faCodepen, faCodiepie, faConfluence, faConnectdevelop, faContao, faCottonBureau, faCpanel, faCreativeCommons, faCreativeCommonsBy, faCreativeCommonsNc, faCreativeCommonsNcEu, faCreativeCommonsNcJp, faCreativeCommonsNd, faCreativeCommonsPd, faCreativeCommonsPdAlt, faCreativeCommonsRemix, faCreativeCommonsSa, faCreativeCommonsSampling, faCreativeCommonsSamplingPlus, faCreativeCommonsShare, faCreativeCommonsZero, faCriticalRole, faCss3, faCss3Alt, faCuttlefish, faDAndD, faDAndDBeyond, faDailymotion, faDashcube, faDeezer, faDelicious, faDeploydog, faDeskpro, faDev, faDeviantart, faDhl, faDiaspora, faDigg, faDigitalOcean, faDiscord, faDiscourse, faDochub, faDocker, faDraft2digital, faDribbble, faDribbbleSquare, faDropbox, faDrupal, faDyalog, faEarlybirds, faEbay, faEdge, faEdgeLegacy, faElementor, faEllo, faEmber, faEmpire, faEnvira, faErlang, faEthereum, faEtsy, faEvernote, faExpeditedssl, faFacebook, faFacebookF, faFacebookMessenger, faFacebookSquare, faFantasyFlightGames, faFedex, faFedora, faFigma, faFirefox, faFirefoxBrowser, faFirstOrder, faFirstOrderAlt, faFirstdraft, faFlickr, faFlipboard, faFly, faFontAwesome, faFontAwesomeAlt, faFontAwesomeFlag, faFontAwesomeLogoFull, faFonticons, faFonticonsFi, faFortAwesome, faFortAwesomeAlt, faForumbee, faFoursquare, faFreeCodeCamp, faFreebsd, faFulcrum, faGalacticRepublic, faGalacticSenate, faGetPocket, faGg, faGgCircle, faGit, faGitAlt, faGitSquare, faGithub, faGithubAlt, faGithubSquare, faGitkraken, faGitlab, faGitter, faGlide, faGlideG, faGofore, faGoodreads, faGoodreadsG, faGoogle, faGoogleDrive, faGooglePay, faGooglePlay, faGooglePlus, faGooglePlusG, faGooglePlusSquare, faGoogleWallet, faGratipay, faGrav, faGripfire, faGrunt, faGuilded, faGulp, faHackerNews, faHackerNewsSquare, faHackerrank, faHips, faHireAHelper, faHive, faHooli, faHornbill, faHotjar, faHouzz, faHtml5, faHubspot, faIdeal, faImdb, faInnosoft, faInstagram, faInstagramSquare, faInstalod, faIntercom, faInternetExplorer, faInvision, faIoxhost, faItchIo, faItunes, faItunesNote, faJava, faJediOrder, faJenkins, faJira, faJoget, faJoomla, faJs, faJsSquare, faJsfiddle, faKaggle, faKeybase, faKeycdn, faKickstarter, faKickstarterK, faKorvue, faLaravel, faLastfm, faLastfmSquare, faLeanpub, faLess, faLine, faLinkedin, faLinkedinIn, faLinode, faLinux, faLyft, faMagento, faMailchimp, faMandalorian, faMarkdown, faMastodon, faMaxcdn, faMdb, faMedapps, faMedium, faMediumM, faMedrt, faMeetup, faMegaport, faMendeley, faMicroblog, faMicrosoft, faMix, faMixcloud, faMixer, faMizuni, faModx, faMonero, faNapster, faNeos, faNimblr, faNode, faNodeJs, faNpm, faNs8, faNutritionix, faOctopusDeploy, faOdnoklassniki, faOdnoklassnikiSquare, faOldRepublic, faOpencart, faOpenid, faOpera, faOptinMonster, faOrcid, faOsi, faPage4, faPagelines, faPalfed, faPatreon, faPaypal, faPennyArcade, faPerbyte, faPeriscope, faPhabricator, faPhoenixFramework, faPhoenixSquadron, faPhp, faPiedPiper, faPiedPiperAlt, faPiedPiperHat, faPiedPiperPp, faPiedPiperSquare, faPinterest, faPinterestP, faPinterestSquare, faPlaystation, faProductHunt, faPushed, faPython, faQq, faQuinscape, faQuora, faRProject, faRaspberryPi, faRavelry, faReact, faReacteurope, faReadme, faRebel, faRedRiver, faReddit, faRedditAlien, faRedditSquare, faRedhat, faRenren, faReplyd, faResearchgate, faResolving, faRev, faRocketchat, faRockrms, faRust, faSafari, faSalesforce, faSass, faSchlix, faScribd, faSearchengin, faSellcast, faSellsy, faServicestack, faShirtsinbulk, faShopify, faShopware, faSimplybuilt, faSistrix, faSith, faSketch, faSkyatlas, faSkype, faSlack, faSlackHash, faSlideshare, faSnapchat, faSnapchatGhost, faSnapchatSquare, faSoundcloud, faSourcetree, faSpeakap, faSpeakerDeck, faSpotify, faSquarespace, faStackExchange, faStackOverflow, faStackpath, faStaylinked, faSteam, faSteamSquare, faSteamSymbol, faStickerMule, faStrava, faStripe, faStripeS, faStudiovinari, faStumbleupon, faStumbleuponCircle, faSuperpowers, faSupple, faSuse, faSwift, faSymfony, faTeamspeak, faTelegram, faTelegramPlane, faTencentWeibo, faTheRedYeti, faThemeco, faThemeisle, faThinkPeaks, faTiktok, faTradeFederation, faTrello, faTumblr, faTumblrSquare, faTwitch, faTwitter, faTwitterSquare, faTypo3, faUber, faUbuntu, faUikit, faUmbraco, faUncharted, faUniregistry, faUnity, faUnsplash, faUntappd, faUps, faUsb, faUsps, faUssunnah, faVaadin, faViacoin, faViadeo, faViadeoSquare, faViber, faVimeo, faVimeoSquare, faVimeoV, faVine, faVk, faVnv, faVuejs, faWatchmanMonitoring, faWaze, faWeebly, faWeibo, faWeixin, faWhatsapp, faWhatsappSquare, faWhmcs, faWikipediaW, faWindows, faWix, faWizardsOfTheCoast, faWodu, faWolfPackBattalion, faWordpress, faWordpressSimple, faWpbeginner, faWpexplorer, faWpforms, faWpressr, faXbox, faXing, faXingSquare, faYCombinator, faYahoo, faYammer, faYandex, faYandexInternational, faYarn, faYelp, faYoast, faYoutube, faYoutubeSquare, faZhihu };\n","/*!\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 */\nvar prefix = \"fas\";\nvar faAd = {\n prefix: 'fas',\n iconName: 'ad',\n icon: [512, 512, [], \"f641\", \"M157.52 272h36.96L176 218.78 157.52 272zM352 256c-13.23 0-24 10.77-24 24s10.77 24 24 24 24-10.77 24-24-10.77-24-24-24zM464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM250.58 352h-16.94c-6.81 0-12.88-4.32-15.12-10.75L211.15 320h-70.29l-7.38 21.25A16 16 0 0 1 118.36 352h-16.94c-11.01 0-18.73-10.85-15.12-21.25L140 176.12A23.995 23.995 0 0 1 162.67 160h26.66A23.99 23.99 0 0 1 212 176.13l53.69 154.62c3.61 10.4-4.11 21.25-15.11 21.25zM424 336c0 8.84-7.16 16-16 16h-16c-4.85 0-9.04-2.27-11.98-5.68-8.62 3.66-18.09 5.68-28.02 5.68-39.7 0-72-32.3-72-72s32.3-72 72-72c8.46 0 16.46 1.73 24 4.42V176c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v160z\"]\n};\nvar faAddressBook = {\n prefix: 'fas',\n iconName: 'address-book',\n icon: [448, 512, [], \"f2b9\", \"M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-228-32c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H118.4C106 384 96 375.4 96 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z\"]\n};\nvar faAddressCard = {\n prefix: 'fas',\n iconName: 'address-card',\n icon: [576, 512, [], \"f2bb\", \"M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-352 96c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H86.4C74 384 64 375.4 64 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2zM512 312c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z\"]\n};\nvar faAdjust = {\n prefix: 'fas',\n iconName: 'adjust',\n icon: [512, 512, [], \"f042\", \"M8 256c0 136.966 111.033 248 248 248s248-111.034 248-248S392.966 8 256 8 8 119.033 8 256zm248 184V72c101.705 0 184 82.311 184 184 0 101.705-82.311 184-184 184z\"]\n};\nvar faAirFreshener = {\n prefix: 'fas',\n iconName: 'air-freshener',\n icon: [512, 512, [], \"f5d0\", \"M224 160H96C43 160 0 203 0 256V480C0 497.625 14.375 512 32 512H288C305.625 512 320 497.625 320 480V256C320 203 277 160 224 160ZM160 416C115.875 416 80 380.125 80 336S115.875 256 160 256S240 291.875 240 336S204.125 416 160 416ZM224 32C224 14.375 209.625 0 192 0H128C110.375 0 96 14.375 96 32V128H224V32ZM381.781 51.578C383 50.969 384 49.359 384 48C384 46.625 383 45.031 381.781 44.422L352 32L339.562 2.219C338.969 1 337.375 0 336 0S333.031 1 332.406 2.219L320 32L290.219 44.422C289 45.031 288 46.625 288 48C288 49.359 289 50.969 290.219 51.578L320 64L332.406 93.781C333.031 95 334.625 96 336 96S338.969 95 339.562 93.781L352 64L381.781 51.578ZM448 64L460.406 93.781C461.031 95 462.625 96 464 96S466.969 95 467.562 93.781L480 64L509.781 51.578C511 50.969 512 49.359 512 48C512 46.625 511 45.031 509.781 44.422L480 32L467.562 2.219C466.969 1 465.375 0 464 0S461.031 1 460.406 2.219L448 32L418.219 44.422C417 45.031 416 46.625 416 48C416 49.359 417 50.969 418.219 51.578L448 64ZM480 224L467.562 194.219C466.969 193 465.375 192 464 192S461.031 193 460.406 194.219L448 224L418.219 236.422C417 237.031 416 238.625 416 240C416 241.359 417 242.969 418.219 243.578L448 256L460.406 285.781C461.031 287 462.625 288 464 288S466.969 287 467.562 285.781L480 256L509.781 243.578C511 242.969 512 241.359 512 240C512 238.625 511 237.031 509.781 236.422L480 224ZM445.781 147.578C447 146.969 448 145.359 448 144C448 142.625 447 141.031 445.781 140.422L416 128L403.562 98.219C402.969 97 401.375 96 400 96S397.031 97 396.406 98.219L384 128L354.219 140.422C353 141.031 352 142.625 352 144C352 145.359 353 146.969 354.219 147.578L384 160L396.406 189.781C397.031 191 398.625 192 400 192S402.969 191 403.562 189.781L416 160L445.781 147.578Z\"]\n};\nvar faAlignCenter = {\n prefix: 'fas',\n iconName: 'align-center',\n icon: [448, 512, [], \"f037\", \"M432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM108.1 96h231.81A12.09 12.09 0 0 0 352 83.9V44.09A12.09 12.09 0 0 0 339.91 32H108.1A12.09 12.09 0 0 0 96 44.09V83.9A12.1 12.1 0 0 0 108.1 96zm231.81 256A12.09 12.09 0 0 0 352 339.9v-39.81A12.09 12.09 0 0 0 339.91 288H108.1A12.09 12.09 0 0 0 96 300.09v39.81a12.1 12.1 0 0 0 12.1 12.1z\"]\n};\nvar faAlignJustify = {\n prefix: 'fas',\n iconName: 'align-justify',\n icon: [448, 512, [], \"f039\", \"M432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faAlignLeft = {\n prefix: 'fas',\n iconName: 'align-left',\n icon: [448, 512, [], \"f036\", \"M12.83 352h262.34A12.82 12.82 0 0 0 288 339.17v-38.34A12.82 12.82 0 0 0 275.17 288H12.83A12.82 12.82 0 0 0 0 300.83v38.34A12.82 12.82 0 0 0 12.83 352zm0-256h262.34A12.82 12.82 0 0 0 288 83.17V44.83A12.82 12.82 0 0 0 275.17 32H12.83A12.82 12.82 0 0 0 0 44.83v38.34A12.82 12.82 0 0 0 12.83 96zM432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faAlignRight = {\n prefix: 'fas',\n iconName: 'align-right',\n icon: [448, 512, [], \"f038\", \"M16 224h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm416 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-384H172.83A12.82 12.82 0 0 0 160 44.83v38.34A12.82 12.82 0 0 0 172.83 96h262.34A12.82 12.82 0 0 0 448 83.17V44.83A12.82 12.82 0 0 0 435.17 32zm0 256H172.83A12.82 12.82 0 0 0 160 300.83v38.34A12.82 12.82 0 0 0 172.83 352h262.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288z\"]\n};\nvar faAllergies = {\n prefix: 'fas',\n iconName: 'allergies',\n icon: [448, 512, [], \"f461\", \"M416 112c-17.6 0-32 14.4-32 32v72c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32s-32 14.4-32 32v152c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V32c0-17.6-14.4-32-32-32s-32 14.4-32 32v184c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32S96 46.4 96 64v241l-23.6-32.5c-13-17.9-38-21.8-55.9-8.8s-21.8 38-8.8 55.9l125.6 172.7c9 12.4 23.5 19.8 38.8 19.8h197.6c22.3 0 41.6-15.3 46.7-37l26.5-112.7c3.2-13.7 4.9-28.3 5.1-42.3V144c0-17.6-14.4-32-32-32zM176 416c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 32c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32-128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"]\n};\nvar faAmbulance = {\n prefix: 'fas',\n iconName: 'ambulance',\n icon: [640, 512, [], \"f0f9\", \"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm144-248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm176 248c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z\"]\n};\nvar faAmericanSignLanguageInterpreting = {\n prefix: 'fas',\n iconName: 'american-sign-language-interpreting',\n icon: [640, 512, [], \"f2a3\", \"M290.547 189.039c-20.295-10.149-44.147-11.199-64.739-3.89 42.606 0 71.208 20.475 85.578 50.576 8.576 17.899-5.148 38.071-23.617 38.071 18.429 0 32.211 20.136 23.617 38.071-14.725 30.846-46.123 50.854-80.298 50.854-.557 0-94.471-8.615-94.471-8.615l-66.406 33.347c-9.384 4.693-19.815.379-23.895-7.781L1.86 290.747c-4.167-8.615-1.111-18.897 6.946-23.621l58.072-33.069L108 159.861c6.39-57.245 34.731-109.767 79.743-146.726 11.391-9.448 28.341-7.781 37.51 3.613 9.446 11.394 7.78 28.067-3.612 37.516-12.503 10.559-23.618 22.509-32.509 35.57 21.672-14.729 46.679-24.732 74.186-28.067 14.725-1.945 28.063 8.336 29.73 23.065 1.945 14.728-8.336 28.067-23.062 29.734-16.116 1.945-31.12 7.503-44.178 15.284 26.114-5.713 58.712-3.138 88.079 11.115 13.336 6.669 18.893 22.509 12.224 35.848-6.389 13.06-22.504 18.617-35.564 12.226zm-27.229 69.472c-6.112-12.505-18.338-20.286-32.231-20.286a35.46 35.46 0 0 0-35.565 35.57c0 21.428 17.808 35.57 35.565 35.57 13.893 0 26.119-7.781 32.231-20.286 4.446-9.449 13.614-15.006 23.339-15.284-9.725-.277-18.893-5.835-23.339-15.284zm374.821-37.237c4.168 8.615 1.111 18.897-6.946 23.621l-58.071 33.069L532 352.16c-6.39 57.245-34.731 109.767-79.743 146.726-10.932 9.112-27.799 8.144-37.51-3.613-9.446-11.394-7.78-28.067 3.613-37.516 12.503-10.559 23.617-22.509 32.508-35.57-21.672 14.729-46.679 24.732-74.186 28.067-10.021 2.506-27.552-5.643-29.73-23.065-1.945-14.728 8.336-28.067 23.062-29.734 16.116-1.946 31.12-7.503 44.178-15.284-26.114 5.713-58.712 3.138-88.079-11.115-13.336-6.669-18.893-22.509-12.224-35.848 6.389-13.061 22.505-18.619 35.565-12.227 20.295 10.149 44.147 11.199 64.739 3.89-42.606 0-71.208-20.475-85.578-50.576-8.576-17.899 5.148-38.071 23.617-38.071-18.429 0-32.211-20.136-23.617-38.071 14.033-29.396 44.039-50.887 81.966-50.854l92.803 8.615 66.406-33.347c9.408-4.704 19.828-.354 23.894 7.781l44.455 88.926zm-229.227-18.618c-13.893 0-26.119 7.781-32.231 20.286-4.446 9.449-13.614 15.006-23.339 15.284 9.725.278 18.893 5.836 23.339 15.284 6.112 12.505 18.338 20.286 32.231 20.286a35.46 35.46 0 0 0 35.565-35.57c0-21.429-17.808-35.57-35.565-35.57z\"]\n};\nvar faAnchor = {\n prefix: 'fas',\n iconName: 'anchor',\n icon: [576, 512, [], \"f13d\", \"M12.971 352h32.394C67.172 454.735 181.944 512 288 512c106.229 0 220.853-57.38 242.635-160h32.394c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0l-67.029 67.029c-7.56 7.56-2.206 20.485 8.485 20.485h35.146c-20.29 54.317-84.963 86.588-144.117 94.015V256h52c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-52v-5.47c37.281-13.178 63.995-48.725 64-90.518C384.005 43.772 341.605.738 289.37.01 235.723-.739 192 42.525 192 96c0 41.798 26.716 77.35 64 90.53V192h-52c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v190.015c-58.936-7.399-123.82-39.679-144.117-94.015h35.146c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0L4.485 331.515C-3.074 339.074 2.28 352 12.971 352zM288 64c17.645 0 32 14.355 32 32s-14.355 32-32 32-32-14.355-32-32 14.355-32 32-32z\"]\n};\nvar faAngleDoubleDown = {\n prefix: 'fas',\n iconName: 'angle-double-down',\n icon: [320, 512, [], \"f103\", \"M143 256.3L7 120.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0L313 86.3c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.4 9.5-24.6 9.5-34 .1zm34 192l136-136c9.4-9.4 9.4-24.6 0-33.9l-22.6-22.6c-9.4-9.4-24.6-9.4-33.9 0L160 352.1l-96.4-96.4c-9.4-9.4-24.6-9.4-33.9 0L7 278.3c-9.4 9.4-9.4 24.6 0 33.9l136 136c9.4 9.5 24.6 9.5 34 .1z\"]\n};\nvar faAngleDoubleLeft = {\n prefix: 'fas',\n iconName: 'angle-double-left',\n icon: [448, 512, [], \"f100\", \"M223.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L319.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L393.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34zm-192 34l136 136c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9L127.9 256l96.4-96.4c9.4-9.4 9.4-24.6 0-33.9L201.7 103c-9.4-9.4-24.6-9.4-33.9 0l-136 136c-9.5 9.4-9.5 24.6-.1 34z\"]\n};\nvar faAngleDoubleRight = {\n prefix: 'fas',\n iconName: 'angle-double-right',\n icon: [448, 512, [], \"f101\", \"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34zm192-34l-136-136c-9.4-9.4-24.6-9.4-33.9 0l-22.6 22.6c-9.4 9.4-9.4 24.6 0 33.9l96.4 96.4-96.4 96.4c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l136-136c9.4-9.2 9.4-24.4 0-33.8z\"]\n};\nvar faAngleDoubleUp = {\n prefix: 'fas',\n iconName: 'angle-double-up',\n icon: [320, 512, [], \"f102\", \"M177 255.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 351.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 425.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1zm-34-192L7 199.7c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l96.4-96.4 96.4 96.4c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9l-136-136c-9.2-9.4-24.4-9.4-33.8 0z\"]\n};\nvar faAngleDown = {\n prefix: 'fas',\n iconName: 'angle-down',\n icon: [320, 512, [], \"f107\", \"M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z\"]\n};\nvar faAngleLeft = {\n prefix: 'fas',\n iconName: 'angle-left',\n icon: [256, 512, [], \"f104\", \"M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z\"]\n};\nvar faAngleRight = {\n prefix: 'fas',\n iconName: 'angle-right',\n icon: [256, 512, [], \"f105\", \"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"]\n};\nvar faAngleUp = {\n prefix: 'fas',\n iconName: 'angle-up',\n icon: [320, 512, [], \"f106\", \"M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z\"]\n};\nvar faAngry = {\n prefix: 'fas',\n iconName: 'angry',\n icon: [496, 512, [], \"f556\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 240c0-9.3 4.1-17.5 10.5-23.4l-31-9.3c-8.5-2.5-13.3-11.5-10.7-19.9 2.5-8.5 11.4-13.2 19.9-10.7l80 24c8.5 2.5 13.3 11.5 10.7 19.9-2.1 6.9-8.4 11.4-15.3 11.4-.5 0-1.1-.2-1.7-.2.7 2.7 1.7 5.3 1.7 8.2 0 17.7-14.3 32-32 32S136 257.7 136 240zm168 154.2c-27.8-33.4-84.2-33.4-112.1 0-13.5 16.3-38.2-4.2-24.6-20.5 20-24 49.4-37.8 80.6-37.8s60.6 13.8 80.6 37.8c13.8 16.5-11.1 36.6-24.5 20.5zm76.6-186.9l-31 9.3c6.3 5.8 10.5 14.1 10.5 23.4 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-2.9.9-5.6 1.7-8.2-.6.1-1.1.2-1.7.2-6.9 0-13.2-4.5-15.3-11.4-2.5-8.5 2.3-17.4 10.7-19.9l80-24c8.4-2.5 17.4 2.3 19.9 10.7 2.5 8.5-2.3 17.4-10.8 19.9z\"]\n};\nvar faAnkh = {\n prefix: 'fas',\n iconName: 'ankh',\n icon: [320, 512, [], \"f644\", \"M296 256h-44.62C272.46 222.01 288 181.65 288 144 288 55.63 230.69 0 160 0S32 55.63 32 144c0 37.65 15.54 78.01 36.62 112H24c-13.25 0-24 10.74-24 24v32c0 13.25 10.75 24 24 24h96v152c0 13.25 10.75 24 24 24h32c13.25 0 24-10.75 24-24V336h96c13.25 0 24-10.75 24-24v-32c0-13.26-10.75-24-24-24zM160 80c29.61 0 48 24.52 48 64 0 34.66-27.14 78.14-48 100.87-20.86-22.72-48-66.21-48-100.87 0-39.48 18.39-64 48-64z\"]\n};\nvar faAppleAlt = {\n prefix: 'fas',\n iconName: 'apple-alt',\n icon: [448, 512, [], \"f5d1\", \"M350.85 129c25.97 4.67 47.27 18.67 63.92 42 14.65 20.67 24.64 46.67 29.96 78 4.67 28.67 4.32 57.33-1 86-7.99 47.33-23.97 87-47.94 119-28.64 38.67-64.59 58-107.87 58-10.66 0-22.3-3.33-34.96-10-8.66-5.33-18.31-8-28.97-8s-20.3 2.67-28.97 8c-12.66 6.67-24.3 10-34.96 10-43.28 0-79.23-19.33-107.87-58-23.97-32-39.95-71.67-47.94-119-5.32-28.67-5.67-57.33-1-86 5.32-31.33 15.31-57.33 29.96-78 16.65-23.33 37.95-37.33 63.92-42 15.98-2.67 37.95-.33 65.92 7 23.97 6.67 44.28 14.67 60.93 24 16.65-9.33 36.96-17.33 60.93-24 27.98-7.33 49.96-9.67 65.94-7zm-54.94-41c-9.32 8.67-21.65 15-36.96 19-10.66 3.33-22.3 5-34.96 5l-14.98-1c-1.33-9.33-1.33-20 0-32 2.67-24 10.32-42.33 22.97-55 9.32-8.67 21.65-15 36.96-19 10.66-3.33 22.3-5 34.96-5l14.98 1 1 15c0 12.67-1.67 24.33-4.99 35-3.99 15.33-10.31 27.67-18.98 37z\"]\n};\nvar faArchive = {\n prefix: 'fas',\n iconName: 'archive',\n icon: [512, 512, [], \"f187\", \"M32 448c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V160H32v288zm160-212c0-6.6 5.4-12 12-12h104c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-8zM480 32H32C14.3 32 0 46.3 0 64v48c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16V64c0-17.7-14.3-32-32-32z\"]\n};\nvar faArchway = {\n prefix: 'fas',\n iconName: 'archway',\n icon: [576, 512, [], \"f557\", \"M560 448h-16V96H32v352H16.02c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16H176c8.84 0 16-7.16 16-16V320c0-53.02 42.98-96 96-96s96 42.98 96 96l.02 160v16c0 8.84 7.16 16 16 16H560c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm0-448H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h544c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z\"]\n};\nvar faArrowAltCircleDown = {\n prefix: 'fas',\n iconName: 'arrow-alt-circle-down',\n icon: [512, 512, [], \"f358\", \"M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM212 140v116h-70.9c-10.7 0-16.1 13-8.5 20.5l114.9 114.3c4.7 4.7 12.2 4.7 16.9 0l114.9-114.3c7.6-7.6 2.2-20.5-8.5-20.5H300V140c0-6.6-5.4-12-12-12h-64c-6.6 0-12 5.4-12 12z\"]\n};\nvar faArrowAltCircleLeft = {\n prefix: 'fas',\n iconName: 'arrow-alt-circle-left',\n icon: [512, 512, [], \"f359\", \"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm116-292H256v-70.9c0-10.7-13-16.1-20.5-8.5L121.2 247.5c-4.7 4.7-4.7 12.2 0 16.9l114.3 114.9c7.6 7.6 20.5 2.2 20.5-8.5V300h116c6.6 0 12-5.4 12-12v-64c0-6.6-5.4-12-12-12z\"]\n};\nvar faArrowAltCircleRight = {\n prefix: 'fas',\n iconName: 'arrow-alt-circle-right',\n icon: [512, 512, [], \"f35a\", \"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zM140 300h116v70.9c0 10.7 13 16.1 20.5 8.5l114.3-114.9c4.7-4.7 4.7-12.2 0-16.9l-114.3-115c-7.6-7.6-20.5-2.2-20.5 8.5V212H140c-6.6 0-12 5.4-12 12v64c0 6.6 5.4 12 12 12z\"]\n};\nvar faArrowAltCircleUp = {\n prefix: 'fas',\n iconName: 'arrow-alt-circle-up',\n icon: [512, 512, [], \"f35b\", \"M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm292 116V256h70.9c10.7 0 16.1-13 8.5-20.5L264.5 121.2c-4.7-4.7-12.2-4.7-16.9 0l-115 114.3c-7.6 7.6-2.2 20.5 8.5 20.5H212v116c0 6.6 5.4 12 12 12h64c6.6 0 12-5.4 12-12z\"]\n};\nvar faArrowCircleDown = {\n prefix: 'fas',\n iconName: 'arrow-circle-down',\n icon: [512, 512, [], \"f0ab\", \"M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-143.6-28.9L288 302.6V120c0-13.3-10.7-24-24-24h-16c-13.3 0-24 10.7-24 24v182.6l-72.4-75.5c-9.3-9.7-24.8-9.9-34.3-.4l-10.9 11c-9.4 9.4-9.4 24.6 0 33.9L239 404.3c9.4 9.4 24.6 9.4 33.9 0l132.7-132.7c9.4-9.4 9.4-24.6 0-33.9l-10.9-11c-9.5-9.5-25-9.3-34.3.4z\"]\n};\nvar faArrowCircleLeft = {\n prefix: 'fas',\n iconName: 'arrow-circle-left',\n icon: [512, 512, [], \"f0a8\", \"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm28.9-143.6L209.4 288H392c13.3 0 24-10.7 24-24v-16c0-13.3-10.7-24-24-24H209.4l75.5-72.4c9.7-9.3 9.9-24.8.4-34.3l-11-10.9c-9.4-9.4-24.6-9.4-33.9 0L107.7 239c-9.4 9.4-9.4 24.6 0 33.9l132.7 132.7c9.4 9.4 24.6 9.4 33.9 0l11-10.9c9.5-9.5 9.3-25-.4-34.3z\"]\n};\nvar faArrowCircleRight = {\n prefix: 'fas',\n iconName: 'arrow-circle-right',\n icon: [512, 512, [], \"f0a9\", \"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm-28.9 143.6l75.5 72.4H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h182.6l-75.5 72.4c-9.7 9.3-9.9 24.8-.4 34.3l11 10.9c9.4 9.4 24.6 9.4 33.9 0L404.3 273c9.4-9.4 9.4-24.6 0-33.9L271.6 106.3c-9.4-9.4-24.6-9.4-33.9 0l-11 10.9c-9.5 9.6-9.3 25.1.4 34.4z\"]\n};\nvar faArrowCircleUp = {\n prefix: 'fas',\n iconName: 'arrow-circle-up',\n icon: [512, 512, [], \"f0aa\", \"M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm143.6 28.9l72.4-75.5V392c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V209.4l72.4 75.5c9.3 9.7 24.8 9.9 34.3.4l10.9-11c9.4-9.4 9.4-24.6 0-33.9L273 107.7c-9.4-9.4-24.6-9.4-33.9 0L106.3 240.4c-9.4 9.4-9.4 24.6 0 33.9l10.9 11c9.6 9.5 25.1 9.3 34.4-.4z\"]\n};\nvar faArrowDown = {\n prefix: 'fas',\n iconName: 'arrow-down',\n icon: [448, 512, [], \"f063\", \"M413.1 222.5l22.2 22.2c9.4 9.4 9.4 24.6 0 33.9L241 473c-9.4 9.4-24.6 9.4-33.9 0L12.7 278.6c-9.4-9.4-9.4-24.6 0-33.9l22.2-22.2c9.5-9.5 25-9.3 34.3.4L184 343.4V56c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24v287.4l114.8-120.5c9.3-9.8 24.8-10 34.3-.4z\"]\n};\nvar faArrowLeft = {\n prefix: 'fas',\n iconName: 'arrow-left',\n icon: [448, 512, [], \"f060\", \"M257.5 445.1l-22.2 22.2c-9.4 9.4-24.6 9.4-33.9 0L7 273c-9.4-9.4-9.4-24.6 0-33.9L201.4 44.7c9.4-9.4 24.6-9.4 33.9 0l22.2 22.2c9.5 9.5 9.3 25-.4 34.3L136.6 216H424c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24H136.6l120.5 114.8c9.8 9.3 10 24.8.4 34.3z\"]\n};\nvar faArrowRight = {\n prefix: 'fas',\n iconName: 'arrow-right',\n icon: [448, 512, [], \"f061\", \"M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z\"]\n};\nvar faArrowUp = {\n prefix: 'fas',\n iconName: 'arrow-up',\n icon: [448, 512, [], \"f062\", \"M34.9 289.5l-22.2-22.2c-9.4-9.4-9.4-24.6 0-33.9L207 39c9.4-9.4 24.6-9.4 33.9 0l194.3 194.3c9.4 9.4 9.4 24.6 0 33.9L413 289.4c-9.5 9.5-25 9.3-34.3-.4L264 168.6V456c0 13.3-10.7 24-24 24h-32c-13.3 0-24-10.7-24-24V168.6L69.2 289.1c-9.3 9.8-24.8 10-34.3.4z\"]\n};\nvar faArrowsAlt = {\n prefix: 'fas',\n iconName: 'arrows-alt',\n icon: [512, 512, [], \"f0b2\", \"M352.201 425.775l-79.196 79.196c-9.373 9.373-24.568 9.373-33.941 0l-79.196-79.196c-15.119-15.119-4.411-40.971 16.971-40.97h51.162L228 284H127.196v51.162c0 21.382-25.851 32.09-40.971 16.971L7.029 272.937c-9.373-9.373-9.373-24.569 0-33.941L86.225 159.8c15.119-15.119 40.971-4.411 40.971 16.971V228H228V127.196h-51.23c-21.382 0-32.09-25.851-16.971-40.971l79.196-79.196c9.373-9.373 24.568-9.373 33.941 0l79.196 79.196c15.119 15.119 4.411 40.971-16.971 40.971h-51.162V228h100.804v-51.162c0-21.382 25.851-32.09 40.97-16.971l79.196 79.196c9.373 9.373 9.373 24.569 0 33.941L425.773 352.2c-15.119 15.119-40.971 4.411-40.97-16.971V284H284v100.804h51.23c21.382 0 32.09 25.851 16.971 40.971z\"]\n};\nvar faArrowsAltH = {\n prefix: 'fas',\n iconName: 'arrows-alt-h',\n icon: [512, 512, [], \"f337\", \"M377.941 169.941V216H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.568 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296h243.882v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.568 0-33.941l-86.059-86.059c-15.119-15.12-40.971-4.412-40.971 16.97z\"]\n};\nvar faArrowsAltV = {\n prefix: 'fas',\n iconName: 'arrows-alt-v',\n icon: [256, 512, [], \"f338\", \"M214.059 377.941H168V134.059h46.059c21.382 0 32.09-25.851 16.971-40.971L144.971 7.029c-9.373-9.373-24.568-9.373-33.941 0L24.971 93.088c-15.119 15.119-4.411 40.971 16.971 40.971H88v243.882H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.568 9.373 33.941 0l86.059-86.059c15.12-15.119 4.412-40.971-16.97-40.971z\"]\n};\nvar faAssistiveListeningSystems = {\n prefix: 'fas',\n iconName: 'assistive-listening-systems',\n icon: [512, 512, [], \"f2a2\", \"M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm-80 236c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zM32 448c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm480-187.993c0-1.518-.012-3.025-.045-4.531C510.076 140.525 436.157 38.47 327.994 1.511c-14.633-4.998-30.549 2.809-35.55 17.442-5 14.633 2.81 30.549 17.442 35.55 85.906 29.354 144.61 110.513 146.077 201.953l.003.188c.026 1.118.033 2.236.033 3.363 0 15.464 12.536 28 28 28s28.001-12.536 28.001-28zM152.971 439.029l-80-80L39.03 392.97l80 80 33.941-33.941z\"]\n};\nvar faAsterisk = {\n prefix: 'fas',\n iconName: 'asterisk',\n icon: [512, 512, [], \"f069\", \"M478.21 334.093L336 256l142.21-78.093c11.795-6.477 15.961-21.384 9.232-33.037l-19.48-33.741c-6.728-11.653-21.72-15.499-33.227-8.523L296 186.718l3.475-162.204C299.763 11.061 288.937 0 275.48 0h-38.96c-13.456 0-24.283 11.061-23.994 24.514L216 186.718 77.265 102.607c-11.506-6.976-26.499-3.13-33.227 8.523l-19.48 33.741c-6.728 11.653-2.562 26.56 9.233 33.037L176 256 33.79 334.093c-11.795 6.477-15.961 21.384-9.232 33.037l19.48 33.741c6.728 11.653 21.721 15.499 33.227 8.523L216 325.282l-3.475 162.204C212.237 500.939 223.064 512 236.52 512h38.961c13.456 0 24.283-11.061 23.995-24.514L296 325.282l138.735 84.111c11.506 6.976 26.499 3.13 33.227-8.523l19.48-33.741c6.728-11.653 2.563-26.559-9.232-33.036z\"]\n};\nvar faAt = {\n prefix: 'fas',\n iconName: 'at',\n icon: [512, 512, [], \"f1fa\", \"M256 8C118.941 8 8 118.919 8 256c0 137.059 110.919 248 248 248 48.154 0 95.342-14.14 135.408-40.223 12.005-7.815 14.625-24.288 5.552-35.372l-10.177-12.433c-7.671-9.371-21.179-11.667-31.373-5.129C325.92 429.757 291.314 440 256 440c-101.458 0-184-82.542-184-184S154.542 72 256 72c100.139 0 184 57.619 184 160 0 38.786-21.093 79.742-58.17 83.693-17.349-.454-16.91-12.857-13.476-30.024l23.433-121.11C394.653 149.75 383.308 136 368.225 136h-44.981a13.518 13.518 0 0 0-13.432 11.993l-.01.092c-14.697-17.901-40.448-21.775-59.971-21.775-74.58 0-137.831 62.234-137.831 151.46 0 65.303 36.785 105.87 96 105.87 26.984 0 57.369-15.637 74.991-38.333 9.522 34.104 40.613 34.103 70.71 34.103C462.609 379.41 504 307.798 504 232 504 95.653 394.023 8 256 8zm-21.68 304.43c-22.249 0-36.07-15.623-36.07-40.771 0-44.993 30.779-72.729 58.63-72.729 22.292 0 35.601 15.241 35.601 40.77 0 45.061-33.875 72.73-58.161 72.73z\"]\n};\nvar faAtlas = {\n prefix: 'fas',\n iconName: 'atlas',\n icon: [448, 512, [], \"f558\", \"M318.38 208h-39.09c-1.49 27.03-6.54 51.35-14.21 70.41 27.71-13.24 48.02-39.19 53.3-70.41zm0-32c-5.29-31.22-25.59-57.17-53.3-70.41 7.68 19.06 12.72 43.38 14.21 70.41h39.09zM224 97.31c-7.69 7.45-20.77 34.42-23.43 78.69h46.87c-2.67-44.26-15.75-71.24-23.44-78.69zm-41.08 8.28c-27.71 13.24-48.02 39.19-53.3 70.41h39.09c1.49-27.03 6.53-51.35 14.21-70.41zm0 172.82c-7.68-19.06-12.72-43.38-14.21-70.41h-39.09c5.28 31.22 25.59 57.17 53.3 70.41zM247.43 208h-46.87c2.66 44.26 15.74 71.24 23.43 78.69 7.7-7.45 20.78-34.43 23.44-78.69zM448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM224 64c70.69 0 128 57.31 128 128s-57.31 128-128 128S96 262.69 96 192 153.31 64 224 64zm160 384H96c-19.2 0-32-12.8-32-32s16-32 32-32h288v64z\"]\n};\nvar faAtom = {\n prefix: 'fas',\n iconName: 'atom',\n icon: [448, 512, [], \"f5d2\", \"M223.99908,224a32,32,0,1,0,32.00782,32A32.06431,32.06431,0,0,0,223.99908,224Zm214.172-96c-10.877-19.5-40.50979-50.75-116.27544-41.875C300.39168,34.875,267.63386,0,223.99908,0s-76.39066,34.875-97.89653,86.125C50.3369,77.375,20.706,108.5,9.82907,128-6.54984,157.375-5.17484,201.125,34.958,256-5.17484,310.875-6.54984,354.625,9.82907,384c29.13087,52.375,101.64652,43.625,116.27348,41.875C147.60842,477.125,180.36429,512,223.99908,512s76.3926-34.875,97.89652-86.125c14.62891,1.75,87.14456,10.5,116.27544-41.875C454.55,354.625,453.175,310.875,413.04017,256,453.175,201.125,454.55,157.375,438.171,128ZM63.33886,352c-4-7.25-.125-24.75,15.00391-48.25,6.87695,6.5,14.12891,12.875,21.88087,19.125,1.625,13.75,4,27.125,6.75,40.125C82.34472,363.875,67.09081,358.625,63.33886,352Zm36.88478-162.875c-7.752,6.25-15.00392,12.625-21.88087,19.125-15.12891-23.5-19.00392-41-15.00391-48.25,3.377-6.125,16.37891-11.5,37.88478-11.5,1.75,0,3.875.375,5.75.375C104.09864,162.25,101.84864,175.625,100.22364,189.125ZM223.99908,64c9.50195,0,22.25586,13.5,33.88282,37.25-11.252,3.75-22.50391,8-33.88282,12.875-11.377-4.875-22.62892-9.125-33.88283-12.875C201.74516,77.5,214.49712,64,223.99908,64Zm0,384c-9.502,0-22.25392-13.5-33.88283-37.25,11.25391-3.75,22.50587-8,33.88283-12.875C235.378,402.75,246.62994,407,257.8819,410.75,246.25494,434.5,233.501,448,223.99908,448Zm0-112a80,80,0,1,1,80-80A80.00023,80.00023,0,0,1,223.99908,336ZM384.6593,352c-3.625,6.625-19.00392,11.875-43.63479,11,2.752-13,5.127-26.375,6.752-40.125,7.75195-6.25,15.00391-12.625,21.87891-19.125C384.7843,327.25,388.6593,344.75,384.6593,352ZM369.65538,208.25c-6.875-6.5-14.127-12.875-21.87891-19.125-1.625-13.5-3.875-26.875-6.752-40.25,1.875,0,4.002-.375,5.752-.375,21.50391,0,34.50782,5.375,37.88283,11.5C388.6593,167.25,384.7843,184.75,369.65538,208.25Z\"]\n};\nvar faAudioDescription = {\n prefix: 'fas',\n iconName: 'audio-description',\n icon: [512, 512, [], \"f29e\", \"M162.925 238.709l8.822 30.655h-25.606l9.041-30.652c1.277-4.421 2.651-9.994 3.872-15.245 1.22 5.251 2.594 10.823 3.871 15.242zm166.474-32.099h-14.523v98.781h14.523c29.776 0 46.175-17.678 46.175-49.776 0-32.239-17.49-49.005-46.175-49.005zM512 112v288c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48zM245.459 336.139l-57.097-168A12.001 12.001 0 0 0 177 160h-35.894a12.001 12.001 0 0 0-11.362 8.139l-57.097 168C70.003 343.922 75.789 352 84.009 352h29.133a12 12 0 0 0 11.535-8.693l8.574-29.906h51.367l8.793 29.977A12 12 0 0 0 204.926 352h29.172c8.22 0 14.006-8.078 11.361-15.861zm184.701-80.525c0-58.977-37.919-95.614-98.96-95.614h-57.366c-6.627 0-12 5.373-12 12v168c0 6.627 5.373 12 12 12H331.2c61.041 0 98.96-36.933 98.96-96.386z\"]\n};\nvar faAward = {\n prefix: 'fas',\n iconName: 'award',\n icon: [384, 512, [], \"f559\", \"M97.12 362.63c-8.69-8.69-4.16-6.24-25.12-11.85-9.51-2.55-17.87-7.45-25.43-13.32L1.2 448.7c-4.39 10.77 3.81 22.47 15.43 22.03l52.69-2.01L105.56 507c8 8.44 22.04 5.81 26.43-4.96l52.05-127.62c-10.84 6.04-22.87 9.58-35.31 9.58-19.5 0-37.82-7.59-51.61-21.37zM382.8 448.7l-45.37-111.24c-7.56 5.88-15.92 10.77-25.43 13.32-21.07 5.64-16.45 3.18-25.12 11.85-13.79 13.78-32.12 21.37-51.62 21.37-12.44 0-24.47-3.55-35.31-9.58L252 502.04c4.39 10.77 18.44 13.4 26.43 4.96l36.25-38.28 52.69 2.01c11.62.44 19.82-11.27 15.43-22.03zM263 340c15.28-15.55 17.03-14.21 38.79-20.14 13.89-3.79 24.75-14.84 28.47-28.98 7.48-28.4 5.54-24.97 25.95-45.75 10.17-10.35 14.14-25.44 10.42-39.58-7.47-28.38-7.48-24.42 0-52.83 3.72-14.14-.25-29.23-10.42-39.58-20.41-20.78-18.47-17.36-25.95-45.75-3.72-14.14-14.58-25.19-28.47-28.98-27.88-7.61-24.52-5.62-44.95-26.41-10.17-10.35-25-14.4-38.89-10.61-27.87 7.6-23.98 7.61-51.9 0-13.89-3.79-28.72.25-38.89 10.61-20.41 20.78-17.05 18.8-44.94 26.41-13.89 3.79-24.75 14.84-28.47 28.98-7.47 28.39-5.54 24.97-25.95 45.75-10.17 10.35-14.15 25.44-10.42 39.58 7.47 28.36 7.48 24.4 0 52.82-3.72 14.14.25 29.23 10.42 39.59 20.41 20.78 18.47 17.35 25.95 45.75 3.72 14.14 14.58 25.19 28.47 28.98C104.6 325.96 106.27 325 121 340c13.23 13.47 33.84 15.88 49.74 5.82a39.676 39.676 0 0 1 42.53 0c15.89 10.06 36.5 7.65 49.73-5.82zM97.66 175.96c0-53.03 42.24-96.02 94.34-96.02s94.34 42.99 94.34 96.02-42.24 96.02-94.34 96.02-94.34-42.99-94.34-96.02z\"]\n};\nvar faBaby = {\n prefix: 'fas',\n iconName: 'baby',\n icon: [384, 512, [], \"f77c\", \"M192 160c44.2 0 80-35.8 80-80S236.2 0 192 0s-80 35.8-80 80 35.8 80 80 80zm-53.4 248.8l25.6-32-61.5-51.2L56.8 383c-11.4 14.2-11.7 34.4-.8 49l48 64c7.9 10.5 19.9 16 32 16 8.3 0 16.8-2.6 24-8 17.7-13.2 21.2-38.3 8-56l-29.4-39.2zm142.7-83.2l-61.5 51.2 25.6 32L216 448c-13.2 17.7-9.7 42.8 8 56 7.2 5.4 15.6 8 24 8 12.2 0 24.2-5.5 32-16l48-64c10.9-14.6 10.6-34.8-.8-49l-45.9-57.4zM376.7 145c-12.7-18.1-37.6-22.4-55.7-9.8l-40.6 28.5c-52.7 37-124.2 37-176.8 0L63 135.3C44.9 122.6 20 127 7.3 145-5.4 163.1-1 188 17 200.7l40.6 28.5c17 11.9 35.4 20.9 54.4 27.9V288h160v-30.8c19-7 37.4-16 54.4-27.9l40.6-28.5c18.1-12.8 22.4-37.7 9.7-55.8z\"]\n};\nvar faBabyCarriage = {\n prefix: 'fas',\n iconName: 'baby-carriage',\n icon: [512, 512, [], \"f77d\", \"M144.8 17c-11.3-17.8-37.2-22.8-54-9.4C35.3 51.9 0 118 0 192h256L144.8 17zM496 96h-48c-35.3 0-64 28.7-64 64v64H0c0 50.6 23 96.4 60.3 130.7C25.7 363.6 0 394.7 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-8.9-1.8-17.2-4.4-25.2 21.6 5.9 44.6 9.2 68.4 9.2s46.9-3.3 68.4-9.2c-2.7 8-4.4 16.3-4.4 25.2 0 44.2 35.8 80 80 80s80-35.8 80-80c0-37.3-25.7-68.4-60.3-77.3C425 320.4 448 274.6 448 224v-64h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM80 464c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm320-32c0 17.6-14.4 32-32 32s-32-14.4-32-32 14.4-32 32-32 32 14.4 32 32z\"]\n};\nvar faBackspace = {\n prefix: 'fas',\n iconName: 'backspace',\n icon: [640, 512, [], \"f55a\", \"M576 64H205.26A63.97 63.97 0 0 0 160 82.75L9.37 233.37c-12.5 12.5-12.5 32.76 0 45.25L160 429.25c12 12 28.28 18.75 45.25 18.75H576c35.35 0 64-28.65 64-64V128c0-35.35-28.65-64-64-64zm-84.69 254.06c6.25 6.25 6.25 16.38 0 22.63l-22.62 22.62c-6.25 6.25-16.38 6.25-22.63 0L384 301.25l-62.06 62.06c-6.25 6.25-16.38 6.25-22.63 0l-22.62-22.62c-6.25-6.25-6.25-16.38 0-22.63L338.75 256l-62.06-62.06c-6.25-6.25-6.25-16.38 0-22.63l22.62-22.62c6.25-6.25 16.38-6.25 22.63 0L384 210.75l62.06-62.06c6.25-6.25 16.38-6.25 22.63 0l22.62 22.62c6.25 6.25 6.25 16.38 0 22.63L429.25 256l62.06 62.06z\"]\n};\nvar faBackward = {\n prefix: 'fas',\n iconName: 'backward',\n icon: [512, 512, [], \"f04a\", \"M11.5 280.6l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2zm256 0l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2z\"]\n};\nvar faBacon = {\n prefix: 'fas',\n iconName: 'bacon',\n icon: [576, 512, [], \"f7e5\", \"M218.92 336.39c34.89-34.89 44.2-59.7 54.05-86 10.61-28.29 21.59-57.54 61.37-97.34s69.05-50.77 97.35-61.38c23.88-9 46.64-17.68 76.79-45.37L470.81 8.91a31 31 0 0 0-40.18-2.83c-13.64 10.1-25.15 14.39-41 20.3C247 79.52 209.26 191.29 200.65 214.1c-29.75 78.83-89.55 94.68-98.72 98.09-24.86 9.26-54.73 20.38-91.07 50.36C-3 374-3.63 395 9.07 407.61l35.76 35.51C80 410.52 107 400.15 133 390.39c26.27-9.84 51.06-19.12 85.92-54zm348-232l-35.75-35.51c-35.19 32.63-62.18 43-88.25 52.79-26.26 9.85-51.06 19.16-85.95 54s-44.19 59.69-54 86C292.33 290 281.34 319.22 241.55 359s-69 50.73-97.3 61.32c-23.86 9-46.61 17.66-76.72 45.33l37.68 37.43a31 31 0 0 0 40.18 2.82c13.6-10.06 25.09-14.34 40.94-20.24 142.2-53 180-164.1 188.94-187.69C405 219.18 464.8 203.3 474 199.86c24.87-9.27 54.74-20.4 91.11-50.41 13.89-11.4 14.52-32.45 1.82-45.05z\"]\n};\nvar faBacteria = {\n prefix: 'fas',\n iconName: 'bacteria',\n icon: [640, 512, [], \"e059\", \"M272.35,226.4A17.71,17.71,0,0,0,281.46,203l-4-9.08a121.29,121.29,0,0,1,12.36-3.08A83.34,83.34,0,0,0,323.57,177l10,9a17.76,17.76,0,1,0,23.92-26.27l-9.72-8.76a83.12,83.12,0,0,0,11.65-48.18l11.85-3.51a17.73,17.73,0,1,0-10.15-34l-11.34,3.36a84,84,0,0,0-36.38-35.57l2.84-10.85a17.8,17.8,0,0,0-34.47-8.93l-2.82,10.78a83.25,83.25,0,0,0-16.74,1.1C250.83,27,240,30.22,229.1,33.39l-3.38-9.46a17.8,17.8,0,0,0-33.56,11.89l3.49,9.8a286.74,286.74,0,0,0-43.94,23.57l-6.32-8.43a17.9,17.9,0,0,0-24.94-3.6A17.69,17.69,0,0,0,116.84,82l6.45,8.61a286.59,286.59,0,0,0-34.95,35.33l-8.82-6.42a17.84,17.84,0,0,0-24.89,3.86,17.66,17.66,0,0,0,3.88,24.77l8.88,6.47a286.6,286.6,0,0,0-23,43.91l-10.48-3.59a17.73,17.73,0,1,0-11.59,33.52L32.67,232c-2.79,10-5.79,19.84-7.52,30.22a83.16,83.16,0,0,0-.82,19l-11.58,3.43a17.73,17.73,0,1,0,10.13,34l11.27-3.33a83.51,83.51,0,0,0,36.39,35.43l-2.88,11.06a17.81,17.81,0,0,0,34.48,8.92l2.87-11c1,0,2.07.26,3.1.26a83.39,83.39,0,0,0,45.65-13.88l8.59,8.8a17.77,17.77,0,0,0,25.56-24.7l-9.14-9.37a83.41,83.41,0,0,0,12.08-31.05,119.08,119.08,0,0,1,3.87-15.53l9,4.22a17.74,17.74,0,1,0,15.15-32.09l-8.8-4.11c.67-1,1.2-2.08,1.9-3.05a119.89,119.89,0,0,1,7.87-9.41,121.73,121.73,0,0,1,11.65-11.4,119.49,119.49,0,0,1,9.94-7.82c1.12-.77,2.32-1.42,3.47-2.15l3.92,8.85a17.86,17.86,0,0,0,16.32,10.58A18.14,18.14,0,0,0,272.35,226.4ZM128,256a32,32,0,1,1,32-32A32,32,0,0,1,128,256Zm80-96a16,16,0,1,1,16-16A16,16,0,0,1,208,160Zm431.26,45.3a17.79,17.79,0,0,0-17.06-12.69,17.55,17.55,0,0,0-5.08.74l-11.27,3.33a83.61,83.61,0,0,0-36.39-35.43l2.88-11.06a17.81,17.81,0,0,0-34.48-8.91l-2.87,11c-1,0-2.07-.26-3.1-.26a83.32,83.32,0,0,0-45.65,13.89l-8.59-8.81a17.77,17.77,0,0,0-25.56,24.7l9.14,9.37a83.28,83.28,0,0,0-12.08,31.06,119.34,119.34,0,0,1-3.87,15.52l-9-4.22a17.74,17.74,0,1,0-15.15,32.09l8.8,4.11c-.67,1-1.2,2.08-1.89,3.05a117.71,117.71,0,0,1-7.94,9.47,119,119,0,0,1-11.57,11.33,121.59,121.59,0,0,1-10,7.83c-1.12.77-2.32,1.42-3.47,2.15l-3.92-8.85a17.86,17.86,0,0,0-16.32-10.58,18.14,18.14,0,0,0-7.18,1.5A17.71,17.71,0,0,0,358.54,309l4,9.08a118.71,118.71,0,0,1-12.36,3.08,83.34,83.34,0,0,0-33.77,13.9l-10-9a17.77,17.77,0,1,0-23.92,26.28l9.72,8.75a83.12,83.12,0,0,0-11.65,48.18l-11.86,3.51a17.73,17.73,0,1,0,10.16,34l11.34-3.36A84,84,0,0,0,326.61,479l-2.84,10.85a17.8,17.8,0,0,0,34.47,8.93L361.06,488a83.3,83.3,0,0,0,16.74-1.1c11.37-1.89,22.24-5.07,33.1-8.24l3.38,9.46a17.8,17.8,0,0,0,33.56-11.89l-3.49-9.79a287.66,287.66,0,0,0,43.94-23.58l6.32,8.43a17.88,17.88,0,0,0,24.93,3.6A17.67,17.67,0,0,0,523.16,430l-6.45-8.61a287.37,287.37,0,0,0,34.95-35.34l8.82,6.42a17.76,17.76,0,1,0,21-28.63l-8.88-6.46a287.17,287.17,0,0,0,23-43.92l10.48,3.59a17.73,17.73,0,1,0,11.59-33.52L607.33,280c2.79-10,5.79-19.84,7.52-30.21a83.27,83.27,0,0,0,.82-19.05l11.58-3.43A17.7,17.7,0,0,0,639.26,205.3ZM416,416a32,32,0,1,1,32-32A32,32,0,0,1,416,416Z\"]\n};\nvar faBacterium = {\n prefix: 'fas',\n iconName: 'bacterium',\n icon: [512, 512, [], \"e05a\", \"M511,102.93A23.76,23.76,0,0,0,481.47,87l-15.12,4.48a111.85,111.85,0,0,0-48.5-47.42l3.79-14.47a23.74,23.74,0,0,0-46-11.91l-3.76,14.37a111.94,111.94,0,0,0-22.33,1.47,386.74,386.74,0,0,0-44.33,10.41l-4.3-12a23.74,23.74,0,0,0-44.75,15.85l4.3,12.05a383.4,383.4,0,0,0-58.69,31.83l-8-10.63a23.85,23.85,0,0,0-33.24-4.8,23.57,23.57,0,0,0-4.83,33.09l8,10.63a386.14,386.14,0,0,0-46.7,47.44l-11-8a23.68,23.68,0,1,0-28,38.17l11.09,8.06a383.45,383.45,0,0,0-30.92,58.75l-12.93-4.43a23.65,23.65,0,1,0-15.47,44.69l13,4.48a385.81,385.81,0,0,0-9.3,40.53A111.58,111.58,0,0,0,32.44,375L17,379.56a23.64,23.64,0,0,0,13.51,45.31l15-4.44a111.49,111.49,0,0,0,48.53,47.24l-3.85,14.75a23.66,23.66,0,0,0,17,28.83,24.7,24.7,0,0,0,6,.75,23.73,23.73,0,0,0,23-17.7L140,479.67c1.37.05,2.77.35,4.13.35A111.22,111.22,0,0,0,205,461.5l11.45,11.74a23.7,23.7,0,0,0,34.08-32.93l-12.19-12.5a111,111,0,0,0,16.11-41.4,158.69,158.69,0,0,1,5.16-20.71l12,5.64a23.66,23.66,0,1,0,20.19-42.79l-11.72-5.49c.89-1.32,1.59-2.77,2.52-4.06a157.86,157.86,0,0,1,10.46-12.49,159.5,159.5,0,0,1,15.59-15.28,162.18,162.18,0,0,1,13.23-10.4c1.5-1,3.1-1.89,4.63-2.87l5.23,11.8a23.74,23.74,0,0,0,43.48-19.08l-5.36-12.11a158.87,158.87,0,0,1,16.49-4.1,111,111,0,0,0,45-18.54l13.33,12a23.69,23.69,0,1,0,31.88-35l-12.94-11.67A110.83,110.83,0,0,0,479.21,137L495,132.32A23.61,23.61,0,0,0,511,102.93ZM160,368a48,48,0,1,1,48-48A48,48,0,0,1,160,368Zm80-136a24,24,0,1,1,24-24A24,24,0,0,1,240,232Z\"]\n};\nvar faBahai = {\n prefix: 'fas',\n iconName: 'bahai',\n icon: [512, 512, [], \"f666\", \"M496.25 202.52l-110-15.44 41.82-104.34c6.67-16.64-11.6-32.18-26.59-22.63L307.44 120 273.35 12.82C270.64 4.27 263.32 0 256 0c-7.32 0-14.64 4.27-17.35 12.82l-34.09 107.19-94.04-59.89c-14.99-9.55-33.25 5.99-26.59 22.63l41.82 104.34-110 15.43c-17.54 2.46-21.68 26.27-6.03 34.67l98.16 52.66-74.48 83.54c-10.92 12.25-1.72 30.93 13.29 30.93 1.31 0 2.67-.14 4.07-.45l108.57-23.65-4.11 112.55c-.43 11.65 8.87 19.22 18.41 19.22 5.15 0 10.39-2.21 14.2-7.18l68.18-88.9 68.18 88.9c3.81 4.97 9.04 7.18 14.2 7.18 9.54 0 18.84-7.57 18.41-19.22l-4.11-112.55 108.57 23.65c17.36 3.76 29.21-17.2 17.35-30.49l-74.48-83.54 98.16-52.66c15.64-8.39 11.5-32.2-6.04-34.66zM338.51 311.68l-51.89-11.3 1.97 53.79L256 311.68l-32.59 42.49 1.96-53.79-51.89 11.3 35.6-39.93-46.92-25.17 52.57-7.38-19.99-49.87 44.95 28.62L256 166.72l16.29 51.23 44.95-28.62-19.99 49.87 52.57 7.38-46.92 25.17 35.61 39.93z\"]\n};\nvar faBalanceScale = {\n prefix: 'fas',\n iconName: 'balance-scale',\n icon: [640, 512, [], \"f24e\", \"M256 336h-.02c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0C-2.06 328.75.02 320.33.02 336H0c0 44.18 57.31 80 128 80s128-35.82 128-80zM128 176l72 144H56l72-144zm511.98 160c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 320l72-144 72 144H440zm88 128H352V153.25c23.51-10.29 41.16-31.48 46.39-57.25H528c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H383.64C369.04 12.68 346.09 0 320 0s-49.04 12.68-63.64 32H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h129.61c5.23 25.76 22.87 46.96 46.39 57.25V448H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"]\n};\nvar faBalanceScaleLeft = {\n prefix: 'fas',\n iconName: 'balance-scale-left',\n icon: [640, 512, [], \"f515\", \"M528 448H352V153.25c20.42-8.94 36.1-26.22 43.38-47.47l132-44.26c8.38-2.81 12.89-11.88 10.08-20.26l-10.17-30.34C524.48 2.54 515.41-1.97 507.03.84L389.11 40.37C375.3 16.36 349.69 0 320 0c-44.18 0-80 35.82-80 80 0 3.43.59 6.71 1.01 10.03l-128.39 43.05c-8.38 2.81-12.89 11.88-10.08 20.26l10.17 30.34c2.81 8.38 11.88 12.89 20.26 10.08l142.05-47.63c4.07 2.77 8.43 5.12 12.99 7.12V496c0 8.84 7.16 16 16 16h224c8.84 0 16-7.16 16-16v-32c-.01-8.84-7.17-16-16.01-16zm111.98-144c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 288l72-144 72 144H440zm-269.07-37.51c-17.65-35.29-68.19-35.36-85.87 0C-2.06 424.75.02 416.33.02 432H0c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-16.18 1.34-8.73-85.05-181.51zM56 416l72-144 72 144H56z\"]\n};\nvar faBalanceScaleRight = {\n prefix: 'fas',\n iconName: 'balance-scale-right',\n icon: [640, 512, [], \"f516\", \"M96 464v32c0 8.84 7.16 16 16 16h224c8.84 0 16-7.16 16-16V153.25c4.56-2 8.92-4.35 12.99-7.12l142.05 47.63c8.38 2.81 17.45-1.71 20.26-10.08l10.17-30.34c2.81-8.38-1.71-17.45-10.08-20.26l-128.4-43.05c.42-3.32 1.01-6.6 1.01-10.03 0-44.18-35.82-80-80-80-29.69 0-55.3 16.36-69.11 40.37L132.96.83c-8.38-2.81-17.45 1.71-20.26 10.08l-10.17 30.34c-2.81 8.38 1.71 17.45 10.08 20.26l132 44.26c7.28 21.25 22.96 38.54 43.38 47.47V448H112c-8.84 0-16 7.16-16 16zM0 304c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-15.67 2.08-7.25-85.05-181.51-17.68-35.36-68.22-35.29-85.87 0C-1.32 295.27.02 287.82.02 304H0zm56-16l72-144 72 144H56zm328.02 144H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-15.67 2.08-7.25-85.05-181.51-17.68-35.36-68.22-35.29-85.87 0-86.38 172.78-85.04 165.33-85.04 181.51zM440 416l72-144 72 144H440z\"]\n};\nvar faBan = {\n prefix: 'fas',\n iconName: 'ban',\n icon: [512, 512, [], \"f05e\", \"M256 8C119.034 8 8 119.033 8 256s111.034 248 248 248 248-111.034 248-248S392.967 8 256 8zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676zM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676z\"]\n};\nvar faBandAid = {\n prefix: 'fas',\n iconName: 'band-aid',\n icon: [640, 512, [], \"f462\", \"M0 160v192c0 35.3 28.7 64 64 64h96V96H64c-35.3 0-64 28.7-64 64zm576-64h-96v320h96c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64zM192 416h256V96H192v320zm176-232c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24z\"]\n};\nvar faBarcode = {\n prefix: 'fas',\n iconName: 'barcode',\n icon: [512, 512, [], \"f02a\", \"M0 448V64h18v384H0zm26.857-.273V64H36v383.727h-9.143zm27.143 0V64h8.857v383.727H54zm44.857 0V64h8.857v383.727h-8.857zm36 0V64h17.714v383.727h-17.714zm44.857 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm35.715 0V64h18v383.727h-18zm44.857 0V64h18v383.727h-18zm35.999 0V64h18.001v383.727h-18.001zm36.001 0V64h18.001v383.727h-18.001zm26.857 0V64h18v383.727h-18zm45.143 0V64h26.857v383.727h-26.857zm35.714 0V64h9.143v383.727H476zm18 .273V64h18v384h-18z\"]\n};\nvar faBars = {\n prefix: 'fas',\n iconName: 'bars',\n icon: [448, 512, [], \"f0c9\", \"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"]\n};\nvar faBaseballBall = {\n prefix: 'fas',\n iconName: 'baseball-ball',\n icon: [496, 512, [], \"f433\", \"M368.5 363.9l28.8-13.9c11.1 22.9 26 43.2 44.1 60.9 34-42.5 54.5-96.3 54.5-154.9 0-58.5-20.4-112.2-54.2-154.6-17.8 17.3-32.6 37.1-43.6 59.5l-28.7-14.1c12.8-26 30-49 50.8-69C375.6 34.7 315 8 248 8 181.1 8 120.5 34.6 75.9 77.7c20.7 19.9 37.9 42.9 50.7 68.8l-28.7 14.1c-11-22.3-25.7-42.1-43.5-59.4C20.4 143.7 0 197.4 0 256c0 58.6 20.4 112.3 54.4 154.7 18.2-17.7 33.2-38 44.3-61l28.8 13.9c-12.9 26.7-30.3 50.3-51.5 70.7 44.5 43.1 105.1 69.7 172 69.7 66.8 0 127.3-26.5 171.9-69.5-21.1-20.4-38.5-43.9-51.4-70.6zm-228.3-32l-30.5-9.8c14.9-46.4 12.7-93.8-.6-134l30.4-10c15 45.6 18 99.9.7 153.8zm216.3-153.4l30.4 10c-13.2 40.1-15.5 87.5-.6 134l-30.5 9.8c-17.3-54-14.3-108.3.7-153.8z\"]\n};\nvar faBasketballBall = {\n prefix: 'fas',\n iconName: 'basketball-ball',\n icon: [496, 512, [], \"f434\", \"M212.3 10.3c-43.8 6.3-86.2 24.1-122.2 53.8l77.4 77.4c27.8-35.8 43.3-81.2 44.8-131.2zM248 222L405.9 64.1c-42.4-35-93.6-53.5-145.5-56.1-1.2 63.9-21.5 122.3-58.7 167.7L248 222zM56.1 98.1c-29.7 36-47.5 78.4-53.8 122.2 50-1.5 95.5-17 131.2-44.8L56.1 98.1zm272.2 204.2c45.3-37.1 103.7-57.4 167.7-58.7-2.6-51.9-21.1-103.1-56.1-145.5L282 256l46.3 46.3zM248 290L90.1 447.9c42.4 34.9 93.6 53.5 145.5 56.1 1.3-64 21.6-122.4 58.7-167.7L248 290zm191.9 123.9c29.7-36 47.5-78.4 53.8-122.2-50.1 1.6-95.5 17.1-131.2 44.8l77.4 77.4zM167.7 209.7C122.3 246.9 63.9 267.3 0 268.4c2.6 51.9 21.1 103.1 56.1 145.5L214 256l-46.3-46.3zm116 292c43.8-6.3 86.2-24.1 122.2-53.8l-77.4-77.4c-27.7 35.7-43.2 81.2-44.8 131.2z\"]\n};\nvar faBath = {\n prefix: 'fas',\n iconName: 'bath',\n icon: [512, 512, [], \"f2cd\", \"M32,384a95.4,95.4,0,0,0,32,71.09V496a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V480H384v16a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V455.09A95.4,95.4,0,0,0,480,384V336H32ZM496,256H80V69.25a21.26,21.26,0,0,1,36.28-15l19.27,19.26c-13.13,29.88-7.61,59.11,8.62,79.73l-.17.17A16,16,0,0,0,144,176l11.31,11.31a16,16,0,0,0,22.63,0L283.31,81.94a16,16,0,0,0,0-22.63L272,48a16,16,0,0,0-22.62,0l-.17.17c-20.62-16.23-49.83-21.75-79.73-8.62L150.22,20.28A69.25,69.25,0,0,0,32,69.25V256H16A16,16,0,0,0,0,272v16a16,16,0,0,0,16,16H496a16,16,0,0,0,16-16V272A16,16,0,0,0,496,256Z\"]\n};\nvar faBatteryEmpty = {\n prefix: 'fas',\n iconName: 'battery-empty',\n icon: [640, 512, [], \"f244\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48z\"]\n};\nvar faBatteryFull = {\n prefix: 'fas',\n iconName: 'battery-full',\n icon: [640, 512, [], \"f240\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-48 96H96v128h416V192z\"]\n};\nvar faBatteryHalf = {\n prefix: 'fas',\n iconName: 'battery-half',\n icon: [640, 512, [], \"f242\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-240 96H96v128h224V192z\"]\n};\nvar faBatteryQuarter = {\n prefix: 'fas',\n iconName: 'battery-quarter',\n icon: [640, 512, [], \"f243\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-336 96H96v128h128V192z\"]\n};\nvar faBatteryThreeQuarters = {\n prefix: 'fas',\n iconName: 'battery-three-quarters',\n icon: [640, 512, [], \"f241\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-144 96H96v128h320V192z\"]\n};\nvar faBed = {\n prefix: 'fas',\n iconName: 'bed',\n icon: [640, 512, [], \"f236\", \"M176 256c44.11 0 80-35.89 80-80s-35.89-80-80-80-80 35.89-80 80 35.89 80 80 80zm352-128H304c-8.84 0-16 7.16-16 16v144H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v352c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h512v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V240c0-61.86-50.14-112-112-112z\"]\n};\nvar faBeer = {\n prefix: 'fas',\n iconName: 'beer',\n icon: [448, 512, [], \"f0fc\", \"M368 96h-48V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24v-42.11l80.606-35.977C429.396 365.063 448 336.388 448 304.86V176c0-44.112-35.888-80-80-80zm16 208.86a16.018 16.018 0 0 1-9.479 14.611L320 343.805V160h48c8.822 0 16 7.178 16 16v128.86zM208 384c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16zm-96 0c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16z\"]\n};\nvar faBell = {\n prefix: 'fas',\n iconName: 'bell',\n icon: [448, 512, [], \"f0f3\", \"M224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64zm215.39-149.71c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71z\"]\n};\nvar faBellSlash = {\n prefix: 'fas',\n iconName: 'bell-slash',\n icon: [640, 512, [], \"f1f6\", \"M633.82 458.1l-90.62-70.05c.19-1.38.8-2.66.8-4.06.05-7.55-2.61-15.27-8.61-21.71-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-40.33 8.38-74.66 31.07-97.59 62.57L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.35 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.42-6.97 4.17-17.02-2.81-22.45zM157.23 251.54c-8.61 67.96-36.41 93.33-52.62 110.75-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h241.92L157.23 251.54zM320 512c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z\"]\n};\nvar faBezierCurve = {\n prefix: 'fas',\n iconName: 'bezier-curve',\n icon: [640, 512, [], \"f55b\", \"M368 32h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM208 88h-84.75C113.75 64.56 90.84 48 64 48 28.66 48 0 76.65 0 112s28.66 64 64 64c26.84 0 49.75-16.56 59.25-40h79.73c-55.37 32.52-95.86 87.32-109.54 152h49.4c11.3-41.61 36.77-77.21 71.04-101.56-3.7-8.08-5.88-16.99-5.88-26.44V88zm-48 232H64c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zM576 48c-26.84 0-49.75 16.56-59.25 40H432v72c0 9.45-2.19 18.36-5.88 26.44 34.27 24.35 59.74 59.95 71.04 101.56h49.4c-13.68-64.68-54.17-119.48-109.54-152h79.73c9.5 23.44 32.41 40 59.25 40 35.34 0 64-28.65 64-64s-28.66-64-64-64zm0 272h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z\"]\n};\nvar faBible = {\n prefix: 'fas',\n iconName: 'bible',\n icon: [448, 512, [], \"f647\", \"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM144 144c0-8.84 7.16-16 16-16h48V80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v48h48c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-48v112c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V192h-48c-8.84 0-16-7.16-16-16v-32zm236.8 304H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z\"]\n};\nvar faBicycle = {\n prefix: 'fas',\n iconName: 'bicycle',\n icon: [640, 512, [], \"f206\", \"M512.509 192.001c-16.373-.064-32.03 2.955-46.436 8.495l-77.68-125.153A24 24 0 0 0 368.001 64h-64c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h50.649l14.896 24H256.002v-16c0-8.837-7.163-16-16-16h-87.459c-13.441 0-24.777 10.999-24.536 24.437.232 13.044 10.876 23.563 23.995 23.563h48.726l-29.417 47.52c-13.433-4.83-27.904-7.483-42.992-7.52C58.094 191.83.412 249.012.002 319.236-.413 390.279 57.055 448 128.002 448c59.642 0 109.758-40.793 123.967-96h52.033a24 24 0 0 0 20.406-11.367L410.37 201.77l14.938 24.067c-25.455 23.448-41.385 57.081-41.307 94.437.145 68.833 57.899 127.051 126.729 127.719 70.606.685 128.181-55.803 129.255-125.996 1.086-70.941-56.526-129.72-127.476-129.996zM186.75 265.772c9.727 10.529 16.673 23.661 19.642 38.228h-43.306l23.664-38.228zM128.002 400c-44.112 0-80-35.888-80-80s35.888-80 80-80c5.869 0 11.586.653 17.099 1.859l-45.505 73.509C89.715 331.327 101.213 352 120.002 352h81.3c-12.37 28.225-40.562 48-73.3 48zm162.63-96h-35.624c-3.96-31.756-19.556-59.894-42.383-80.026L237.371 184h127.547l-74.286 120zm217.057 95.886c-41.036-2.165-74.049-35.692-75.627-76.755-.812-21.121 6.633-40.518 19.335-55.263l44.433 71.586c4.66 7.508 14.524 9.816 22.032 5.156l13.594-8.437c7.508-4.66 9.817-14.524 5.156-22.032l-44.468-71.643a79.901 79.901 0 0 1 19.858-2.497c44.112 0 80 35.888 80 80-.001 45.54-38.252 82.316-84.313 79.885z\"]\n};\nvar faBiking = {\n prefix: 'fas',\n iconName: 'biking',\n icon: [640, 512, [], \"f84a\", \"M400 96a48 48 0 1 0-48-48 48 48 0 0 0 48 48zm-4 121a31.9 31.9 0 0 0 20 7h64a32 32 0 0 0 0-64h-52.78L356 103a31.94 31.94 0 0 0-40.81.68l-112 96a32 32 0 0 0 3.08 50.92L288 305.12V416a32 32 0 0 0 64 0V288a32 32 0 0 0-14.25-26.62l-41.36-27.57 58.25-49.92zm116 39a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm0 192a64 64 0 1 1 64-64 64 64 0 0 1-64 64zM128 256a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm0 192a64 64 0 1 1 64-64 64 64 0 0 1-64 64z\"]\n};\nvar faBinoculars = {\n prefix: 'fas',\n iconName: 'binoculars',\n icon: [512, 512, [], \"f1e5\", \"M416 48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v48h96V48zM63.91 159.99C61.4 253.84 3.46 274.22 0 404v44c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V288h32V128H95.84c-17.63 0-31.45 14.37-31.93 31.99zm384.18 0c-.48-17.62-14.3-31.99-31.93-31.99H320v160h32v160c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-44c-3.46-129.78-61.4-150.16-63.91-244.01zM176 32h-64c-8.84 0-16 7.16-16 16v48h96V48c0-8.84-7.16-16-16-16zm48 256h64V128h-64v160z\"]\n};\nvar faBiohazard = {\n prefix: 'fas',\n iconName: 'biohazard',\n icon: [576, 512, [], \"f780\", \"M287.9 112c18.6 0 36.2 3.8 52.8 9.6 13.3-10.3 23.6-24.3 29.5-40.7-25.2-10.9-53-17-82.2-17-29.1 0-56.9 6-82.1 16.9 5.9 16.4 16.2 30.4 29.5 40.7 16.5-5.7 34-9.5 52.5-9.5zM163.6 438.7c12-11.8 20.4-26.4 24.5-42.4-32.9-26.4-54.8-65.3-58.9-109.6-8.5-2.8-17.2-4.6-26.4-4.6-7.6 0-15.2 1-22.5 3.1 4.1 62.8 35.8 118 83.3 153.5zm224.2-42.6c4.1 16 12.5 30.7 24.5 42.5 47.4-35.5 79.1-90.7 83-153.5-7.2-2-14.7-3-22.2-3-9.2 0-18 1.9-26.6 4.7-4.1 44.2-26 82.9-58.7 109.3zm113.5-205c-17.6-10.4-36.3-16.6-55.3-19.9 6-17.7 10-36.4 10-56.2 0-41-14.5-80.8-41-112.2-2.5-3-6.6-3.7-10-1.8-3.3 1.9-4.8 6-3.6 9.7 4.5 13.8 6.6 26.3 6.6 38.5 0 67.8-53.8 122.9-120 122.9S168 117 168 49.2c0-12.1 2.2-24.7 6.6-38.5 1.2-3.7-.3-7.8-3.6-9.7-3.4-1.9-7.5-1.2-10 1.8C134.6 34.2 120 74 120 115c0 19.8 3.9 38.5 10 56.2-18.9 3.3-37.7 9.5-55.3 19.9-34.6 20.5-61 53.3-74.3 92.4-1.3 3.7.2 7.7 3.5 9.8 3.3 2 7.5 1.3 10-1.6 9.4-10.8 19-19.1 29.2-25.1 57.3-33.9 130.8-13.7 163.9 45 33.1 58.7 13.4 134-43.9 167.9-10.2 6.1-22 10.4-35.8 13.4-3.7.8-6.4 4.2-6.4 8.1.1 4 2.7 7.3 6.5 8 39.7 7.8 80.6.8 115.2-19.7 18-10.6 32.9-24.5 45.3-40.1 12.4 15.6 27.3 29.5 45.3 40.1 34.6 20.5 75.5 27.5 115.2 19.7 3.8-.7 6.4-4 6.5-8 0-3.9-2.6-7.3-6.4-8.1-13.9-2.9-25.6-7.3-35.8-13.4-57.3-33.9-77-109.2-43.9-167.9s106.6-78.9 163.9-45c10.2 6.1 19.8 14.3 29.2 25.1 2.5 2.9 6.7 3.6 10 1.6s4.8-6.1 3.5-9.8c-13.1-39.1-39.5-72-74.1-92.4zm-213.4 129c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"]\n};\nvar faBirthdayCake = {\n prefix: 'fas',\n iconName: 'birthday-cake',\n icon: [448, 512, [], \"f1fd\", \"M448 384c-28.02 0-31.26-32-74.5-32-43.43 0-46.825 32-74.75 32-27.695 0-31.454-32-74.75-32-42.842 0-47.218 32-74.5 32-28.148 0-31.202-32-74.75-32-43.547 0-46.653 32-74.75 32v-80c0-26.5 21.5-48 48-48h16V112h64v144h64V112h64v144h64V112h64v144h16c26.5 0 48 21.5 48 48v80zm0 128H0v-96c43.356 0 46.767-32 74.75-32 27.951 0 31.253 32 74.75 32 42.843 0 47.217-32 74.5-32 28.148 0 31.201 32 74.75 32 43.357 0 46.767-32 74.75-32 27.488 0 31.252 32 74.5 32v96zM96 96c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40z\"]\n};\nvar faBlender = {\n prefix: 'fas',\n iconName: 'blender',\n icon: [512, 512, [], \"f517\", \"M416 384H160c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-128 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm40-416h166.54L512 0H48C21.49 0 0 21.49 0 48v160c0 26.51 21.49 48 48 48h103.27l8.73 96h256l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H328c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM64 192V64h69.82l11.64 128H64z\"]\n};\nvar faBlenderPhone = {\n prefix: 'fas',\n iconName: 'blender-phone',\n icon: [576, 512, [], \"f6b6\", \"M392 64h166.54L576 0H192v352h288l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H392c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM158.8 335.01l-25.78-63.26c-2.78-6.81-9.8-10.99-17.24-10.26l-45.03 4.42c-17.28-46.94-17.65-99.78 0-147.72l45.03 4.42c7.43.73 14.46-3.46 17.24-10.26l25.78-63.26c3.02-7.39.2-15.85-6.68-20.07l-39.28-24.1C98.51-3.87 80.09-.5 68.95 11.97c-92.57 103.6-92 259.55 2.1 362.49 9.87 10.8 29.12 12.48 41.65 4.8l39.41-24.18c6.89-4.22 9.7-12.67 6.69-20.07zM480 384H192c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-144 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faBlind = {\n prefix: 'fas',\n iconName: 'blind',\n icon: [384, 512, [], \"f29d\", \"M380.15 510.837a8 8 0 0 1-10.989-2.687l-125.33-206.427a31.923 31.923 0 0 0 12.958-9.485l126.048 207.608a8 8 0 0 1-2.687 10.991zM142.803 314.338l-32.54 89.485 36.12 88.285c6.693 16.36 25.377 24.192 41.733 17.501 16.357-6.692 24.193-25.376 17.501-41.734l-62.814-153.537zM96 88c24.301 0 44-19.699 44-44S120.301 0 96 0 52 19.699 52 44s19.699 44 44 44zm154.837 169.128l-120-152c-4.733-5.995-11.75-9.108-18.837-9.112V96H80v.026c-7.146.003-14.217 3.161-18.944 9.24L0 183.766v95.694c0 13.455 11.011 24.791 24.464 24.536C37.505 303.748 48 293.1 48 280v-79.766l16-20.571v140.698L9.927 469.055c-6.04 16.609 2.528 34.969 19.138 41.009 16.602 6.039 34.968-2.524 41.009-19.138L136 309.638V202.441l-31.406-39.816a4 4 0 1 1 6.269-4.971l102.3 129.217c9.145 11.584 24.368 11.339 33.708 3.965 10.41-8.216 12.159-23.334 3.966-33.708z\"]\n};\nvar faBlog = {\n prefix: 'fas',\n iconName: 'blog',\n icon: [512, 512, [], \"f781\", \"M172.2 226.8c-14.6-2.9-28.2 8.9-28.2 23.8V301c0 10.2 7.1 18.4 16.7 22 18.2 6.8 31.3 24.4 31.3 45 0 26.5-21.5 48-48 48s-48-21.5-48-48V120c0-13.3-10.7-24-24-24H24c-13.3 0-24 10.7-24 24v248c0 89.5 82.1 160.2 175 140.7 54.4-11.4 98.3-55.4 109.7-109.7 17.4-82.9-37-157.2-112.5-172.2zM209 0c-9.2-.5-17 6.8-17 16v31.6c0 8.5 6.6 15.5 15 15.9 129.4 7 233.4 112 240.9 241.5.5 8.4 7.5 15 15.9 15h32.1c9.2 0 16.5-7.8 16-17C503.4 139.8 372.2 8.6 209 0zm.3 96c-9.3-.7-17.3 6.7-17.3 16.1v32.1c0 8.4 6.5 15.3 14.8 15.9 76.8 6.3 138 68.2 144.9 145.2.8 8.3 7.6 14.7 15.9 14.7h32.2c9.3 0 16.8-8 16.1-17.3-8.4-110.1-96.5-198.2-206.6-206.7z\"]\n};\nvar faBold = {\n prefix: 'fas',\n iconName: 'bold',\n icon: [384, 512, [], \"f032\", \"M333.49 238a122 122 0 0 0 27-65.21C367.87 96.49 308 32 233.42 32H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h31.87v288H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h209.32c70.8 0 134.14-51.75 141-122.4 4.74-48.45-16.39-92.06-50.83-119.6zM145.66 112h87.76a48 48 0 0 1 0 96h-87.76zm87.76 288h-87.76V288h87.76a56 56 0 0 1 0 112z\"]\n};\nvar faBolt = {\n prefix: 'fas',\n iconName: 'bolt',\n icon: [320, 512, [], \"f0e7\", \"M296 160H180.6l42.6-129.8C227.2 15 215.7 0 200 0H56C44 0 33.8 8.9 32.2 20.8l-32 240C-1.7 275.2 9.5 288 24 288h118.7L96.6 482.5c-3.6 15.2 8 29.5 23.3 29.5 8.4 0 16.4-4.4 20.8-12l176-304c9.3-15.9-2.2-36-20.7-36z\"]\n};\nvar faBomb = {\n prefix: 'fas',\n iconName: 'bomb',\n icon: [512, 512, [], \"f1e2\", \"M440.5 88.5l-52 52L415 167c9.4 9.4 9.4 24.6 0 33.9l-17.4 17.4c11.8 26.1 18.4 55.1 18.4 85.6 0 114.9-93.1 208-208 208S0 418.9 0 304 93.1 96 208 96c30.5 0 59.5 6.6 85.6 18.4L311 97c9.4-9.4 24.6-9.4 33.9 0l26.5 26.5 52-52 17.1 17zM500 60h-24c-6.6 0-12 5.4-12 12s5.4 12 12 12h24c6.6 0 12-5.4 12-12s-5.4-12-12-12zM440 0c-6.6 0-12 5.4-12 12v24c0 6.6 5.4 12 12 12s12-5.4 12-12V12c0-6.6-5.4-12-12-12zm33.9 55l17-17c4.7-4.7 4.7-12.3 0-17-4.7-4.7-12.3-4.7-17 0l-17 17c-4.7 4.7-4.7 12.3 0 17 4.8 4.7 12.4 4.7 17 0zm-67.8 0c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17zm67.8 34c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17zM112 272c0-35.3 28.7-64 64-64 8.8 0 16-7.2 16-16s-7.2-16-16-16c-52.9 0-96 43.1-96 96 0 8.8 7.2 16 16 16s16-7.2 16-16z\"]\n};\nvar faBone = {\n prefix: 'fas',\n iconName: 'bone',\n icon: [640, 512, [], \"f5d7\", \"M598.88 244.56c25.2-12.6 41.12-38.36 41.12-66.53v-7.64C640 129.3 606.7 96 565.61 96c-32.02 0-60.44 20.49-70.57 50.86-7.68 23.03-11.6 45.14-38.11 45.14H183.06c-27.38 0-31.58-25.54-38.11-45.14C134.83 116.49 106.4 96 74.39 96 33.3 96 0 129.3 0 170.39v7.64c0 28.17 15.92 53.93 41.12 66.53 9.43 4.71 9.43 18.17 0 22.88C15.92 280.04 0 305.8 0 333.97v7.64C0 382.7 33.3 416 74.38 416c32.02 0 60.44-20.49 70.57-50.86 7.68-23.03 11.6-45.14 38.11-45.14h273.87c27.38 0 31.58 25.54 38.11 45.14C505.17 395.51 533.6 416 565.61 416c41.08 0 74.38-33.3 74.38-74.39v-7.64c0-28.18-15.92-53.93-41.12-66.53-9.42-4.71-9.42-18.17.01-22.88z\"]\n};\nvar faBong = {\n prefix: 'fas',\n iconName: 'bong',\n icon: [448, 512, [], \"f55c\", \"M302.5 512c23.18 0 44.43-12.58 56-32.66C374.69 451.26 384 418.75 384 384c0-36.12-10.08-69.81-27.44-98.62L400 241.94l9.38 9.38c6.25 6.25 16.38 6.25 22.63 0l11.3-11.32c6.25-6.25 6.25-16.38 0-22.63l-52.69-52.69c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l9.38 9.38-39.41 39.41c-11.56-11.37-24.53-21.33-38.65-29.51V63.74l15.97-.02c8.82-.01 15.97-7.16 15.98-15.98l.04-31.72C320 7.17 312.82-.01 303.97 0L80.03.26c-8.82.01-15.97 7.16-15.98 15.98l-.04 31.73c-.01 8.85 7.17 16.02 16.02 16.01L96 63.96v153.93C38.67 251.1 0 312.97 0 384c0 34.75 9.31 67.27 25.5 95.34C37.08 499.42 58.33 512 81.5 512h221zM120.06 259.43L144 245.56V63.91l96-.11v181.76l23.94 13.87c24.81 14.37 44.12 35.73 56.56 60.57h-257c12.45-24.84 31.75-46.2 56.56-60.57z\"]\n};\nvar faBook = {\n prefix: 'fas',\n iconName: 'book',\n icon: [448, 512, [], \"f02d\", \"M448 360V24c0-13.3-10.7-24-24-24H96C43 0 0 43 0 96v320c0 53 43 96 96 96h328c13.3 0 24-10.7 24-24v-16c0-7.5-3.5-14.3-8.9-18.7-4.2-15.4-4.2-59.3 0-74.7 5.4-4.3 8.9-11.1 8.9-18.6zM128 134c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm0 64c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm253.4 250H96c-17.7 0-32-14.3-32-32 0-17.6 14.4-32 32-32h285.4c-1.9 17.1-1.9 46.9 0 64z\"]\n};\nvar faBookDead = {\n prefix: 'fas',\n iconName: 'book-dead',\n icon: [448, 512, [], \"f6b7\", \"M272 136c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm176 222.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM240 56c44.2 0 80 28.7 80 64 0 20.9-12.7 39.2-32 50.9V184c0 8.8-7.2 16-16 16h-64c-8.8 0-16-7.2-16-16v-13.1c-19.3-11.7-32-30-32-50.9 0-35.3 35.8-64 80-64zM124.8 223.3l6.3-14.7c1.7-4.1 6.4-5.9 10.5-4.2l98.3 42.1 98.4-42.1c4.1-1.7 8.8.1 10.5 4.2l6.3 14.7c1.7 4.1-.1 8.8-4.2 10.5L280.6 264l70.3 30.1c4.1 1.7 5.9 6.4 4.2 10.5l-6.3 14.7c-1.7 4.1-6.4 5.9-10.5 4.2L240 281.4l-98.3 42.2c-4.1 1.7-8.8-.1-10.5-4.2l-6.3-14.7c-1.7-4.1.1-8.8 4.2-10.5l70.4-30.1-70.5-30.3c-4.1-1.7-5.9-6.4-4.2-10.5zm256 224.7H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8zM208 136c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16z\"]\n};\nvar faBookMedical = {\n prefix: 'fas',\n iconName: 'book-medical',\n icon: [448, 512, [], \"f7e6\", \"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16q0-9.6-9.6-19.2c-3.2-16-3.2-60.8 0-73.6q9.6-4.8 9.6-19.2zM144 168a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8v48a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8zm236.8 280H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8z\"]\n};\nvar faBookOpen = {\n prefix: 'fas',\n iconName: 'book-open',\n icon: [576, 512, [], \"f518\", \"M542.22 32.05c-54.8 3.11-163.72 14.43-230.96 55.59-4.64 2.84-7.27 7.89-7.27 13.17v363.87c0 11.55 12.63 18.85 23.28 13.49 69.18-34.82 169.23-44.32 218.7-46.92 16.89-.89 30.02-14.43 30.02-30.66V62.75c.01-17.71-15.35-31.74-33.77-30.7zM264.73 87.64C197.5 46.48 88.58 35.17 33.78 32.05 15.36 31.01 0 45.04 0 62.75V400.6c0 16.24 13.13 29.78 30.02 30.66 49.49 2.6 149.59 12.11 218.77 46.95 10.62 5.35 23.21-1.94 23.21-13.46V100.63c0-5.29-2.62-10.14-7.27-12.99z\"]\n};\nvar faBookReader = {\n prefix: 'fas',\n iconName: 'book-reader',\n icon: [512, 512, [], \"f5da\", \"M352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96 42.98 96 96 96 96-42.98 96-96zM233.59 241.1c-59.33-36.32-155.43-46.3-203.79-49.05C13.55 191.13 0 203.51 0 219.14v222.8c0 14.33 11.59 26.28 26.49 27.05 43.66 2.29 131.99 10.68 193.04 41.43 9.37 4.72 20.48-1.71 20.48-11.87V252.56c-.01-4.67-2.32-8.95-6.42-11.46zm248.61-49.05c-48.35 2.74-144.46 12.73-203.78 49.05-4.1 2.51-6.41 6.96-6.41 11.63v245.79c0 10.19 11.14 16.63 20.54 11.9 61.04-30.72 149.32-39.11 192.97-41.4 14.9-.78 26.49-12.73 26.49-27.06V219.14c-.01-15.63-13.56-28.01-29.81-27.09z\"]\n};\nvar faBookmark = {\n prefix: 'fas',\n iconName: 'bookmark',\n icon: [384, 512, [], \"f02e\", \"M0 512V48C0 21.49 21.49 0 48 0h288c26.51 0 48 21.49 48 48v464L192 400 0 512z\"]\n};\nvar faBorderAll = {\n prefix: 'fas',\n iconName: 'border-all',\n icon: [448, 512, [], \"f84c\", \"M416 32H32A32 32 0 0 0 0 64v384a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V64a32 32 0 0 0-32-32zm-32 64v128H256V96zm-192 0v128H64V96zM64 416V288h128v128zm192 0V288h128v128z\"]\n};\nvar faBorderNone = {\n prefix: 'fas',\n iconName: 'border-none',\n icon: [448, 512, [], \"f850\", \"M240 224h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-288 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM240 320h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-96 288h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96-384h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM48 224H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faBorderStyle = {\n prefix: 'fas',\n iconName: 'border-style',\n icon: [448, 512, [], \"f853\", \"M240 416h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm192 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-288h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H32A32 32 0 0 0 0 64v400a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V96h368a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faBowlingBall = {\n prefix: 'fas',\n iconName: 'bowling-ball',\n icon: [496, 512, [], \"f436\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM120 192c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64-96c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm48 144c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faBox = {\n prefix: 'fas',\n iconName: 'box',\n icon: [512, 512, [], \"f466\", \"M509.5 184.6L458.9 32.8C452.4 13.2 434.1 0 413.4 0H272v192h238.7c-.4-2.5-.4-5-1.2-7.4zM240 0H98.6c-20.7 0-39 13.2-45.5 32.8L2.5 184.6c-.8 2.4-.8 4.9-1.2 7.4H240V0zM0 224v240c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V224H0z\"]\n};\nvar faBoxOpen = {\n prefix: 'fas',\n iconName: 'box-open',\n icon: [640, 512, [], \"f49e\", \"M425.7 256c-16.9 0-32.8-9-41.4-23.4L320 126l-64.2 106.6c-8.7 14.5-24.6 23.5-41.5 23.5-4.5 0-9-.6-13.3-1.9L64 215v178c0 14.7 10 27.5 24.2 31l216.2 54.1c10.2 2.5 20.9 2.5 31 0L551.8 424c14.2-3.6 24.2-16.4 24.2-31V215l-137 39.1c-4.3 1.3-8.8 1.9-13.3 1.9zm212.6-112.2L586.8 41c-3.1-6.2-9.8-9.8-16.7-8.9L320 64l91.7 152.1c3.8 6.3 11.4 9.3 18.5 7.3l197.9-56.5c9.9-2.9 14.7-13.9 10.2-23.1zM53.2 41L1.7 143.8c-4.6 9.2.3 20.2 10.1 23l197.9 56.5c7.1 2 14.7-1 18.5-7.3L320 64 69.8 32.1c-6.9-.8-13.5 2.7-16.6 8.9z\"]\n};\nvar faBoxTissue = {\n prefix: 'fas',\n iconName: 'box-tissue',\n icon: [512, 512, [], \"e05b\", \"M383.88,287.82l64-192H338.47a70.2,70.2,0,0,1-66.59-48,70.21,70.21,0,0,0-66.6-48H63.88l64,288Zm-384,192a32,32,0,0,0,32,32h448a32,32,0,0,0,32-32v-64H-.12Zm480-256H438.94l-21.33,64h14.27a16,16,0,0,1,0,32h-352a16,16,0,1,1,0-32H95.09l-14.22-64h-49a32,32,0,0,0-32,32v128h512v-128A32,32,0,0,0,479.88,223.82Z\"]\n};\nvar faBoxes = {\n prefix: 'fas',\n iconName: 'boxes',\n icon: [576, 512, [], \"f468\", \"M560 288h-80v96l-32-21.3-32 21.3v-96h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16zm-384-64h224c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16h-80v96l-32-21.3L256 96V0h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16zm64 64h-80v96l-32-21.3L96 384v-96H16c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16z\"]\n};\nvar faBraille = {\n prefix: 'fas',\n iconName: 'braille',\n icon: [640, 512, [], \"f2a1\", \"M128 256c0 35.346-28.654 64-64 64S0 291.346 0 256s28.654-64 64-64 64 28.654 64 64zM64 384c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352C28.654 32 0 60.654 0 96s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm224 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-320c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z\"]\n};\nvar faBrain = {\n prefix: 'fas',\n iconName: 'brain',\n icon: [576, 512, [], \"f5dc\", \"M208 0c-29.9 0-54.7 20.5-61.8 48.2-.8 0-1.4-.2-2.2-.2-35.3 0-64 28.7-64 64 0 4.8.6 9.5 1.7 14C52.5 138 32 166.6 32 200c0 12.6 3.2 24.3 8.3 34.9C16.3 248.7 0 274.3 0 304c0 33.3 20.4 61.9 49.4 73.9-.9 4.6-1.4 9.3-1.4 14.1 0 39.8 32.2 72 72 72 4.1 0 8.1-.5 12-1.2 9.6 28.5 36.2 49.2 68 49.2 39.8 0 72-32.2 72-72V64c0-35.3-28.7-64-64-64zm368 304c0-29.7-16.3-55.3-40.3-69.1 5.2-10.6 8.3-22.3 8.3-34.9 0-33.4-20.5-62-49.7-74 1-4.5 1.7-9.2 1.7-14 0-35.3-28.7-64-64-64-.8 0-1.5.2-2.2.2C422.7 20.5 397.9 0 368 0c-35.3 0-64 28.6-64 64v376c0 39.8 32.2 72 72 72 31.8 0 58.4-20.7 68-49.2 3.9.7 7.9 1.2 12 1.2 39.8 0 72-32.2 72-72 0-4.8-.5-9.5-1.4-14.1 29-12 49.4-40.6 49.4-73.9z\"]\n};\nvar faBreadSlice = {\n prefix: 'fas',\n iconName: 'bread-slice',\n icon: [576, 512, [], \"f7ec\", \"M288 0C108 0 0 93.4 0 169.14 0 199.44 24.24 224 64 224v256c0 17.67 16.12 32 36 32h376c19.88 0 36-14.33 36-32V224c39.76 0 64-24.56 64-54.86C576 93.4 468 0 288 0z\"]\n};\nvar faBriefcase = {\n prefix: 'fas',\n iconName: 'briefcase',\n icon: [512, 512, [], \"f0b1\", \"M320 336c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h416c25.6 0 48-22.4 48-48V288H320v48zm144-208h-80V80c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h512v-80c0-25.6-22.4-48-48-48zm-144 0H192V96h128v32z\"]\n};\nvar faBriefcaseMedical = {\n prefix: 'fas',\n iconName: 'briefcase-medical',\n icon: [512, 512, [], \"f469\", \"M464 128h-80V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48zM192 96h128v32H192V96zm160 248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48z\"]\n};\nvar faBroadcastTower = {\n prefix: 'fas',\n iconName: 'broadcast-tower',\n icon: [640, 512, [], \"f519\", \"M150.94 192h33.73c11.01 0 18.61-10.83 14.86-21.18-4.93-13.58-7.55-27.98-7.55-42.82s2.62-29.24 7.55-42.82C203.29 74.83 195.68 64 184.67 64h-33.73c-7.01 0-13.46 4.49-15.41 11.23C130.64 92.21 128 109.88 128 128c0 18.12 2.64 35.79 7.54 52.76 1.94 6.74 8.39 11.24 15.4 11.24zM89.92 23.34C95.56 12.72 87.97 0 75.96 0H40.63c-6.27 0-12.14 3.59-14.74 9.31C9.4 45.54 0 85.65 0 128c0 24.75 3.12 68.33 26.69 118.86 2.62 5.63 8.42 9.14 14.61 9.14h34.84c12.02 0 19.61-12.74 13.95-23.37-49.78-93.32-16.71-178.15-.17-209.29zM614.06 9.29C611.46 3.58 605.6 0 599.33 0h-35.42c-11.98 0-19.66 12.66-14.02 23.25 18.27 34.29 48.42 119.42.28 209.23-5.72 10.68 1.8 23.52 13.91 23.52h35.23c6.27 0 12.13-3.58 14.73-9.29C630.57 210.48 640 170.36 640 128s-9.42-82.48-25.94-118.71zM489.06 64h-33.73c-11.01 0-18.61 10.83-14.86 21.18 4.93 13.58 7.55 27.98 7.55 42.82s-2.62 29.24-7.55 42.82c-3.76 10.35 3.85 21.18 14.86 21.18h33.73c7.02 0 13.46-4.49 15.41-11.24 4.9-16.97 7.53-34.64 7.53-52.76 0-18.12-2.64-35.79-7.54-52.76-1.94-6.75-8.39-11.24-15.4-11.24zm-116.3 100.12c7.05-10.29 11.2-22.71 11.2-36.12 0-35.35-28.63-64-63.96-64-35.32 0-63.96 28.65-63.96 64 0 13.41 4.15 25.83 11.2 36.12l-130.5 313.41c-3.4 8.15.46 17.52 8.61 20.92l29.51 12.31c8.15 3.4 17.52-.46 20.91-8.61L244.96 384h150.07l49.2 118.15c3.4 8.16 12.76 12.01 20.91 8.61l29.51-12.31c8.15-3.4 12-12.77 8.61-20.92l-130.5-313.41zM271.62 320L320 203.81 368.38 320h-96.76z\"]\n};\nvar faBroom = {\n prefix: 'fas',\n iconName: 'broom',\n icon: [640, 512, [], \"f51a\", \"M256.47 216.77l86.73 109.18s-16.6 102.36-76.57 150.12C206.66 523.85 0 510.19 0 510.19s3.8-23.14 11-55.43l94.62-112.17c3.97-4.7-.87-11.62-6.65-9.5l-60.4 22.09c14.44-41.66 32.72-80.04 54.6-97.47 59.97-47.76 163.3-40.94 163.3-40.94zM636.53 31.03l-19.86-25c-5.49-6.9-15.52-8.05-22.41-2.56l-232.48 177.8-34.14-42.97c-5.09-6.41-15.14-5.21-18.59 2.21l-25.33 54.55 86.73 109.18 58.8-12.45c8-1.69 11.42-11.2 6.34-17.6l-34.09-42.92 232.48-177.8c6.89-5.48 8.04-15.53 2.55-22.44z\"]\n};\nvar faBrush = {\n prefix: 'fas',\n iconName: 'brush',\n icon: [384, 512, [], \"f55d\", \"M352 0H32C14.33 0 0 14.33 0 32v224h384V32c0-17.67-14.33-32-32-32zM0 320c0 35.35 28.66 64 64 64h64v64c0 35.35 28.66 64 64 64s64-28.65 64-64v-64h64c35.34 0 64-28.65 64-64v-32H0v32zm192 104c13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24s-24-10.75-24-24c0-13.26 10.75-24 24-24z\"]\n};\nvar faBug = {\n prefix: 'fas',\n iconName: 'bug',\n icon: [512, 512, [], \"f188\", \"M511.988 288.9c-.478 17.43-15.217 31.1-32.653 31.1H424v16c0 21.864-4.882 42.584-13.6 61.145l60.228 60.228c12.496 12.497 12.496 32.758 0 45.255-12.498 12.497-32.759 12.496-45.256 0l-54.736-54.736C345.886 467.965 314.351 480 280 480V236c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v244c-34.351 0-65.886-12.035-90.636-32.108l-54.736 54.736c-12.498 12.497-32.759 12.496-45.256 0-12.496-12.497-12.496-32.758 0-45.255l60.228-60.228C92.882 378.584 88 357.864 88 336v-16H32.666C15.23 320 .491 306.33.013 288.9-.484 270.816 14.028 256 32 256h56v-58.745l-46.628-46.628c-12.496-12.497-12.496-32.758 0-45.255 12.498-12.497 32.758-12.497 45.256 0L141.255 160h229.489l54.627-54.627c12.498-12.497 32.758-12.497 45.256 0 12.496 12.497 12.496 32.758 0 45.255L424 197.255V256h56c17.972 0 32.484 14.816 31.988 32.9zM257 0c-61.856 0-112 50.144-112 112h224C369 50.144 318.856 0 257 0z\"]\n};\nvar faBuilding = {\n prefix: 'fas',\n iconName: 'building',\n icon: [448, 512, [], \"f1ad\", \"M436 480h-20V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v456H12c-6.627 0-12 5.373-12 12v20h448v-20c0-6.627-5.373-12-12-12zM128 76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76zm0 96c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40zm52 148h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12zm76 160h-64v-84c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v84zm64-172c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40z\"]\n};\nvar faBullhorn = {\n prefix: 'fas',\n iconName: 'bullhorn',\n icon: [576, 512, [], \"f0a1\", \"M576 240c0-23.63-12.95-44.04-32-55.12V32.01C544 23.26 537.02 0 512 0c-7.12 0-14.19 2.38-19.98 7.02l-85.03 68.03C364.28 109.19 310.66 128 256 128H64c-35.35 0-64 28.65-64 64v96c0 35.35 28.65 64 64 64h33.7c-1.39 10.48-2.18 21.14-2.18 32 0 39.77 9.26 77.35 25.56 110.94 5.19 10.69 16.52 17.06 28.4 17.06h74.28c26.05 0 41.69-29.84 25.9-50.56-16.4-21.52-26.15-48.36-26.15-77.44 0-11.11 1.62-21.79 4.41-32H256c54.66 0 108.28 18.81 150.98 52.95l85.03 68.03a32.023 32.023 0 0 0 19.98 7.02c24.92 0 32-22.78 32-32V295.13C563.05 284.04 576 263.63 576 240zm-96 141.42l-33.05-26.44C392.95 311.78 325.12 288 256 288v-96c69.12 0 136.95-23.78 190.95-66.98L480 98.58v282.84z\"]\n};\nvar faBullseye = {\n prefix: 'fas',\n iconName: 'bullseye',\n icon: [496, 512, [], \"f140\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 432c-101.69 0-184-82.29-184-184 0-101.69 82.29-184 184-184 101.69 0 184 82.29 184 184 0 101.69-82.29 184-184 184zm0-312c-70.69 0-128 57.31-128 128s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm0 192c-35.29 0-64-28.71-64-64s28.71-64 64-64 64 28.71 64 64-28.71 64-64 64z\"]\n};\nvar faBurn = {\n prefix: 'fas',\n iconName: 'burn',\n icon: [384, 512, [], \"f46a\", \"M192 0C79.7 101.3 0 220.9 0 300.5 0 425 79 512 192 512s192-87 192-211.5c0-79.9-80.2-199.6-192-300.5zm0 448c-56.5 0-96-39-96-94.8 0-13.5 4.6-61.5 96-161.2 91.4 99.7 96 147.7 96 161.2 0 55.8-39.5 94.8-96 94.8z\"]\n};\nvar faBus = {\n prefix: 'fas',\n iconName: 'bus',\n icon: [512, 512, [], \"f207\", \"M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM112 400c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm16-112c-17.67 0-32-14.33-32-32V128c0-17.67 14.33-32 32-32h256c17.67 0 32 14.33 32 32v128c0 17.67-14.33 32-32 32H128zm272 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faBusAlt = {\n prefix: 'fas',\n iconName: 'bus-alt',\n icon: [512, 512, [], \"f55e\", \"M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM160 72c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H168c-4.42 0-8-3.58-8-8V72zm-48 328c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128-112H128c-17.67 0-32-14.33-32-32v-96c0-17.67 14.33-32 32-32h112v160zm32 0V128h112c17.67 0 32 14.33 32 32v96c0 17.67-14.33 32-32 32H272zm128 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faBusinessTime = {\n prefix: 'fas',\n iconName: 'business-time',\n icon: [640, 512, [], \"f64a\", \"M496 224c-79.59 0-144 64.41-144 144s64.41 144 144 144 144-64.41 144-144-64.41-144-144-144zm64 150.29c0 5.34-4.37 9.71-9.71 9.71h-60.57c-5.34 0-9.71-4.37-9.71-9.71v-76.57c0-5.34 4.37-9.71 9.71-9.71h12.57c5.34 0 9.71 4.37 9.71 9.71V352h38.29c5.34 0 9.71 4.37 9.71 9.71v12.58zM496 192c5.4 0 10.72.33 16 .81V144c0-25.6-22.4-48-48-48h-80V48c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h395.12c28.6-20.09 63.35-32 100.88-32zM320 96H192V64h128v32zm6.82 224H208c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h291.43C327.1 423.96 320 396.82 320 368c0-16.66 2.48-32.72 6.82-48z\"]\n};\nvar faCalculator = {\n prefix: 'fas',\n iconName: 'calculator',\n icon: [448, 512, [], \"f1ec\", \"M400 0H48C22.4 0 0 22.4 0 48v416c0 25.6 22.4 48 48 48h352c25.6 0 48-22.4 48-48V48c0-25.6-22.4-48-48-48zM128 435.2c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8V268.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v166.4zm0-256c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8V76.8C64 70.4 70.4 64 76.8 64h294.4c6.4 0 12.8 6.4 12.8 12.8v102.4z\"]\n};\nvar faCalendar = {\n prefix: 'fas',\n iconName: 'calendar',\n icon: [448, 512, [], \"f133\", \"M12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm436-44v-36c0-26.5-21.5-48-48-48h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v36c0 6.6 5.4 12 12 12h424c6.6 0 12-5.4 12-12z\"]\n};\nvar faCalendarAlt = {\n prefix: 'fas',\n iconName: 'calendar-alt',\n icon: [448, 512, [], \"f073\", \"M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm320-196c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM192 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM64 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z\"]\n};\nvar faCalendarCheck = {\n prefix: 'fas',\n iconName: 'calendar-check',\n icon: [448, 512, [], \"f274\", \"M436 160H12c-6.627 0-12-5.373-12-12v-36c0-26.51 21.49-48 48-48h48V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h128V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h48c26.51 0 48 21.49 48 48v36c0 6.627-5.373 12-12 12zM12 192h424c6.627 0 12 5.373 12 12v260c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V204c0-6.627 5.373-12 12-12zm333.296 95.947l-28.169-28.398c-4.667-4.705-12.265-4.736-16.97-.068L194.12 364.665l-45.98-46.352c-4.667-4.705-12.266-4.736-16.971-.068l-28.397 28.17c-4.705 4.667-4.736 12.265-.068 16.97l82.601 83.269c4.667 4.705 12.265 4.736 16.97.068l142.953-141.805c4.705-4.667 4.736-12.265.068-16.97z\"]\n};\nvar faCalendarDay = {\n prefix: 'fas',\n iconName: 'calendar-day',\n icon: [448, 512, [], \"f783\", \"M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm64-192c0-8.8 7.2-16 16-16h96c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16v-96zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z\"]\n};\nvar faCalendarMinus = {\n prefix: 'fas',\n iconName: 'calendar-minus',\n icon: [448, 512, [], \"f272\", \"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm304 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H132c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h184z\"]\n};\nvar faCalendarPlus = {\n prefix: 'fas',\n iconName: 'calendar-plus',\n icon: [448, 512, [], \"f271\", \"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm316 140c0-6.6-5.4-12-12-12h-60v-60c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v60h-60c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h60v60c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-60h60c6.6 0 12-5.4 12-12v-40z\"]\n};\nvar faCalendarTimes = {\n prefix: 'fas',\n iconName: 'calendar-times',\n icon: [448, 512, [], \"f273\", \"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm257.3 160l48.1-48.1c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0L224 306.7l-48.1-48.1c-4.7-4.7-12.3-4.7-17 0l-28.3 28.3c-4.7 4.7-4.7 12.3 0 17l48.1 48.1-48.1 48.1c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l48.1-48.1 48.1 48.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L269.3 352z\"]\n};\nvar faCalendarWeek = {\n prefix: 'fas',\n iconName: 'calendar-week',\n icon: [448, 512, [], \"f784\", \"M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm64-192c0-8.8 7.2-16 16-16h288c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16v-64zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z\"]\n};\nvar faCamera = {\n prefix: 'fas',\n iconName: 'camera',\n icon: [512, 512, [], \"f030\", \"M512 144v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48h88l12.3-32.9c7-18.7 24.9-31.1 44.9-31.1h125.5c20 0 37.9 12.4 44.9 31.1L376 96h88c26.5 0 48 21.5 48 48zM376 288c0-66.2-53.8-120-120-120s-120 53.8-120 120 53.8 120 120 120 120-53.8 120-120zm-32 0c0 48.5-39.5 88-88 88s-88-39.5-88-88 39.5-88 88-88 88 39.5 88 88z\"]\n};\nvar faCameraRetro = {\n prefix: 'fas',\n iconName: 'camera-retro',\n icon: [512, 512, [], \"f083\", \"M48 32C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H48zm0 32h106c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H38c-3.3 0-6-2.7-6-6V80c0-8.8 7.2-16 16-16zm426 96H38c-3.3 0-6-2.7-6-6v-36c0-3.3 2.7-6 6-6h138l30.2-45.3c1.1-1.7 3-2.7 5-2.7H464c8.8 0 16 7.2 16 16v74c0 3.3-2.7 6-6 6zM256 424c-66.2 0-120-53.8-120-120s53.8-120 120-120 120 53.8 120 120-53.8 120-120 120zm0-208c-48.5 0-88 39.5-88 88s39.5 88 88 88 88-39.5 88-88-39.5-88-88-88zm-48 104c-8.8 0-16-7.2-16-16 0-35.3 28.7-64 64-64 8.8 0 16 7.2 16 16s-7.2 16-16 16c-17.6 0-32 14.4-32 32 0 8.8-7.2 16-16 16z\"]\n};\nvar faCampground = {\n prefix: 'fas',\n iconName: 'campground',\n icon: [640, 512, [], \"f6bb\", \"M624 448h-24.68L359.54 117.75l53.41-73.55c5.19-7.15 3.61-17.16-3.54-22.35l-25.9-18.79c-7.15-5.19-17.15-3.61-22.35 3.55L320 63.3 278.83 6.6c-5.19-7.15-15.2-8.74-22.35-3.55l-25.88 18.8c-7.15 5.19-8.74 15.2-3.54 22.35l53.41 73.55L40.68 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM320 288l116.36 160H203.64L320 288z\"]\n};\nvar faCandyCane = {\n prefix: 'fas',\n iconName: 'candy-cane',\n icon: [512, 512, [], \"f786\", \"M497.5 92C469.6 33.1 411.8 0 352.4 0c-27.9 0-56.2 7.3-81.8 22.6L243.1 39c-15.2 9.1-20.1 28.7-11 43.9l32.8 54.9c6 10 16.6 15.6 27.5 15.6 5.6 0 11.2-1.5 16.4-4.5l27.5-16.4c5.1-3.1 10.8-4.5 16.4-4.5 10.9 0 21.5 5.6 27.5 15.6 9.1 15.1 4.1 34.8-11 43.9L15.6 397.6c-15.2 9.1-20.1 28.7-11 43.9l32.8 54.9c6 10 16.6 15.6 27.5 15.6 5.6 0 11.2-1.5 16.4-4.5L428.6 301c71.7-42.9 104.6-133.5 68.9-209zm-177.7 13l-2.5 1.5L296.8 45c9.7-4.7 19.8-8.1 30.3-10.2l20.6 61.8c-9.8.8-19.4 3.3-27.9 8.4zM145.9 431.8l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zm107.5-63.9l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zM364.3 302l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zm20.4-197.3l46-46c8.4 6.5 16 14.1 22.6 22.6L407.6 127c-5.7-9.3-13.7-16.9-22.9-22.3zm82.1 107.8l-59.5-19.8c3.2-5.3 5.8-10.9 7.4-17.1 1.1-4.5 1.7-9.1 1.8-13.6l60.4 20.1c-2.1 10.4-5.5 20.6-10.1 30.4z\"]\n};\nvar faCannabis = {\n prefix: 'fas',\n iconName: 'cannabis',\n icon: [512, 512, [], \"f55f\", \"M503.47 360.25c-1.56-.82-32.39-16.89-76.78-25.81 64.25-75.12 84.05-161.67 84.93-165.64 1.18-5.33-.44-10.9-4.3-14.77-3.03-3.04-7.12-4.7-11.32-4.7-1.14 0-2.29.12-3.44.38-3.88.85-86.54 19.59-160.58 79.76.01-1.46.01-2.93.01-4.4 0-118.79-59.98-213.72-62.53-217.7A15.973 15.973 0 0 0 256 0c-5.45 0-10.53 2.78-13.47 7.37-2.55 3.98-62.53 98.91-62.53 217.7 0 1.47.01 2.94.01 4.4-74.03-60.16-156.69-78.9-160.58-79.76-1.14-.25-2.29-.38-3.44-.38-4.2 0-8.29 1.66-11.32 4.7A15.986 15.986 0 0 0 .38 168.8c.88 3.97 20.68 90.52 84.93 165.64-44.39 8.92-75.21 24.99-76.78 25.81a16.003 16.003 0 0 0-.02 28.29c2.45 1.29 60.76 31.72 133.49 31.72 6.14 0 11.96-.1 17.5-.31-11.37 22.23-16.52 38.31-16.81 39.22-1.8 5.68-.29 11.89 3.91 16.11a16.019 16.019 0 0 0 16.1 3.99c1.83-.57 37.72-11.99 77.3-39.29V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-64.01c39.58 27.3 75.47 38.71 77.3 39.29a16.019 16.019 0 0 0 16.1-3.99c4.2-4.22 5.71-10.43 3.91-16.11-.29-.91-5.45-16.99-16.81-39.22 5.54.21 11.37.31 17.5.31 72.72 0 131.04-30.43 133.49-31.72 5.24-2.78 8.52-8.22 8.51-14.15-.01-5.94-3.29-11.39-8.53-14.15z\"]\n};\nvar faCapsules = {\n prefix: 'fas',\n iconName: 'capsules',\n icon: [576, 512, [], \"f46b\", \"M555.3 300.1L424.2 112.8C401.9 81 366.4 64 330.4 64c-22.6 0-45.5 6.7-65.5 20.7-19.7 13.8-33.7 32.8-41.5 53.8C220.5 79.2 172 32 112 32 50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V218.9c3.3 8.6 7.3 17.1 12.8 25L368 431.2c22.2 31.8 57.7 48.8 93.8 48.8 22.7 0 45.5-6.7 65.5-20.7 51.7-36.2 64.2-107.5 28-159.2zM160 256H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm194.8 44.9l-65.6-93.7c-7.7-11-10.7-24.4-8.3-37.6 2.3-13.2 9.7-24.8 20.7-32.5 8.5-6 18.5-9.1 28.8-9.1 16.5 0 31.9 8 41.3 21.5l65.6 93.7-82.5 57.7z\"]\n};\nvar faCar = {\n prefix: 'fas',\n iconName: 'car',\n icon: [512, 512, [], \"f1b9\", \"M499.99 176h-59.87l-16.64-41.6C406.38 91.63 365.57 64 319.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4L71.87 176H12.01C4.2 176-1.53 183.34.37 190.91l6 24C7.7 220.25 12.5 224 18.01 224h20.07C24.65 235.73 16 252.78 16 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-19.22-8.65-36.27-22.07-48H494c5.51 0 10.31-3.75 11.64-9.09l6-24c1.89-7.57-3.84-14.91-11.65-14.91zm-352.06-17.83c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L384 208H128l19.93-49.83zM96 319.8c-19.2 0-32-12.76-32-31.9S76.8 256 96 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S396.8 256 416 256s32 12.76 32 31.9-12.8 31.9-32 31.9z\"]\n};\nvar faCarAlt = {\n prefix: 'fas',\n iconName: 'car-alt',\n icon: [480, 512, [], \"f5de\", \"M438.66 212.33l-11.24-28.1-19.93-49.83C390.38 91.63 349.57 64 303.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4l-19.93 49.83-11.24 28.1C17.22 221.5 0 244.66 0 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-27.34-17.22-50.5-41.34-59.67zm-306.73-54.16c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L368 208H112l19.93-49.83zM80 319.8c-19.2 0-32-12.76-32-31.9S60.8 256 80 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S380.8 256 400 256s32 12.76 32 31.9-12.8 31.9-32 31.9z\"]\n};\nvar faCarBattery = {\n prefix: 'fas',\n iconName: 'car-battery',\n icon: [512, 512, [], \"f5df\", \"M480 128h-32V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v48H192V80c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v48H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zM192 264c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm256 0c0 4.42-3.58 8-8 8h-40v40c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-40h-40c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h40v-40c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v40h40c4.42 0 8 3.58 8 8v16z\"]\n};\nvar faCarCrash = {\n prefix: 'fas',\n iconName: 'car-crash',\n icon: [640, 512, [], \"f5e1\", \"M143.25 220.81l-12.42 46.37c-3.01 11.25-3.63 22.89-2.41 34.39l-35.2 28.98c-6.57 5.41-16.31-.43-14.62-8.77l15.44-76.68c1.06-5.26-2.66-10.28-8-10.79l-77.86-7.55c-8.47-.82-11.23-11.83-4.14-16.54l65.15-43.3c4.46-2.97 5.38-9.15 1.98-13.29L21.46 93.22c-5.41-6.57.43-16.3 8.78-14.62l76.68 15.44c5.26 1.06 10.28-2.66 10.8-8l7.55-77.86c.82-8.48 11.83-11.23 16.55-4.14l43.3 65.14c2.97 4.46 9.15 5.38 13.29 1.98l60.4-49.71c6.57-5.41 16.3.43 14.62 8.77L262.1 86.38c-2.71 3.05-5.43 6.09-7.91 9.4l-32.15 42.97-10.71 14.32c-32.73 8.76-59.18 34.53-68.08 67.74zm494.57 132.51l-12.42 46.36c-3.13 11.68-9.38 21.61-17.55 29.36a66.876 66.876 0 0 1-8.76 7l-13.99 52.23c-1.14 4.27-3.1 8.1-5.65 11.38-7.67 9.84-20.74 14.68-33.54 11.25L515 502.62c-17.07-4.57-27.2-22.12-22.63-39.19l8.28-30.91-247.28-66.26-8.28 30.91c-4.57 17.07-22.12 27.2-39.19 22.63l-30.91-8.28c-12.8-3.43-21.7-14.16-23.42-26.51-.57-4.12-.35-8.42.79-12.68l13.99-52.23a66.62 66.62 0 0 1-4.09-10.45c-3.2-10.79-3.65-22.52-.52-34.2l12.42-46.37c5.31-19.8 19.36-34.83 36.89-42.21a64.336 64.336 0 0 1 18.49-4.72l18.13-24.23 32.15-42.97c3.45-4.61 7.19-8.9 11.2-12.84 8-7.89 17.03-14.44 26.74-19.51 4.86-2.54 9.89-4.71 15.05-6.49 10.33-3.58 21.19-5.63 32.24-6.04 11.05-.41 22.31.82 33.43 3.8l122.68 32.87c11.12 2.98 21.48 7.54 30.85 13.43a111.11 111.11 0 0 1 34.69 34.5c8.82 13.88 14.64 29.84 16.68 46.99l6.36 53.29 3.59 30.05a64.49 64.49 0 0 1 22.74 29.93c4.39 11.88 5.29 25.19 1.75 38.39zM255.58 234.34c-18.55-4.97-34.21 4.04-39.17 22.53-4.96 18.49 4.11 34.12 22.65 39.09 18.55 4.97 45.54 15.51 50.49-2.98 4.96-18.49-15.43-53.67-33.97-58.64zm290.61 28.17l-6.36-53.29c-.58-4.87-1.89-9.53-3.82-13.86-5.8-12.99-17.2-23.01-31.42-26.82l-122.68-32.87a48.008 48.008 0 0 0-50.86 17.61l-32.15 42.97 172 46.08 75.29 20.18zm18.49 54.65c-18.55-4.97-53.8 15.31-58.75 33.79-4.95 18.49 23.69 22.86 42.24 27.83 18.55 4.97 34.21-4.04 39.17-22.53 4.95-18.48-4.11-34.12-22.66-39.09z\"]\n};\nvar faCarSide = {\n prefix: 'fas',\n iconName: 'car-side',\n icon: [640, 512, [], \"f5e4\", \"M544 192h-16L419.22 56.02A64.025 64.025 0 0 0 369.24 32H155.33c-26.17 0-49.7 15.93-59.42 40.23L48 194.26C20.44 201.4 0 226.21 0 256v112c0 8.84 7.16 16 16 16h48c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h48c8.84 0 16-7.16 16-16v-80c0-53.02-42.98-96-96-96zM160 432c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm72-240H116.93l38.4-96H232v96zm48 0V96h89.24l76.8 96H280zm200 240c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z\"]\n};\nvar faCaravan = {\n prefix: 'fas',\n iconName: 'caravan',\n icon: [640, 512, [], \"f8ff\", \"M416,208a16,16,0,1,0,16,16A16,16,0,0,0,416,208ZM624,320H576V160A160,160,0,0,0,416,0H64A64,64,0,0,0,0,64V320a64,64,0,0,0,64,64H96a96,96,0,0,0,192,0H624a16,16,0,0,0,16-16V336A16,16,0,0,0,624,320ZM192,432a48,48,0,1,1,48-48A48.05,48.05,0,0,1,192,432Zm64-240a32,32,0,0,1-32,32H96a32,32,0,0,1-32-32V128A32,32,0,0,1,96,96H224a32,32,0,0,1,32,32ZM448,320H320V128a32,32,0,0,1,32-32h64a32,32,0,0,1,32,32Z\"]\n};\nvar faCaretDown = {\n prefix: 'fas',\n iconName: 'caret-down',\n icon: [320, 512, [], \"f0d7\", \"M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z\"]\n};\nvar faCaretLeft = {\n prefix: 'fas',\n iconName: 'caret-left',\n icon: [192, 512, [], \"f0d9\", \"M192 127.338v257.324c0 17.818-21.543 26.741-34.142 14.142L29.196 270.142c-7.81-7.81-7.81-20.474 0-28.284l128.662-128.662c12.599-12.6 34.142-3.676 34.142 14.142z\"]\n};\nvar faCaretRight = {\n prefix: 'fas',\n iconName: 'caret-right',\n icon: [192, 512, [], \"f0da\", \"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"]\n};\nvar faCaretSquareDown = {\n prefix: 'fas',\n iconName: 'caret-square-down',\n icon: [448, 512, [], \"f150\", \"M448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM92.5 220.5l123 123c4.7 4.7 12.3 4.7 17 0l123-123c7.6-7.6 2.2-20.5-8.5-20.5H101c-10.7 0-16.1 12.9-8.5 20.5z\"]\n};\nvar faCaretSquareLeft = {\n prefix: 'fas',\n iconName: 'caret-square-left',\n icon: [448, 512, [], \"f191\", \"M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM259.515 124.485l-123.03 123.03c-4.686 4.686-4.686 12.284 0 16.971l123.029 123.029c7.56 7.56 20.485 2.206 20.485-8.485V132.971c.001-10.691-12.925-16.045-20.484-8.486z\"]\n};\nvar faCaretSquareRight = {\n prefix: 'fas',\n iconName: 'caret-square-right',\n icon: [448, 512, [], \"f152\", \"M48 32h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48zm140.485 355.515l123.029-123.029c4.686-4.686 4.686-12.284 0-16.971l-123.029-123.03c-7.56-7.56-20.485-2.206-20.485 8.485v246.059c0 10.691 12.926 16.045 20.485 8.486z\"]\n};\nvar faCaretSquareUp = {\n prefix: 'fas',\n iconName: 'caret-square-up',\n icon: [448, 512, [], \"f151\", \"M0 432V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48zm355.515-140.485l-123.03-123.03c-4.686-4.686-12.284-4.686-16.971 0L92.485 291.515c-7.56 7.56-2.206 20.485 8.485 20.485h246.059c10.691 0 16.045-12.926 8.486-20.485z\"]\n};\nvar faCaretUp = {\n prefix: 'fas',\n iconName: 'caret-up',\n icon: [320, 512, [], \"f0d8\", \"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"]\n};\nvar faCarrot = {\n prefix: 'fas',\n iconName: 'carrot',\n icon: [512, 512, [], \"f787\", \"M298.2 156.6c-52.7-25.7-114.5-10.5-150.2 32.8l55.2 55.2c6.3 6.3 6.3 16.4 0 22.6-3.1 3.1-7.2 4.7-11.3 4.7s-8.2-1.6-11.3-4.7L130.4 217 2.3 479.7c-2.9 6-3.1 13.3 0 19.7 5.4 11.1 18.9 15.7 30 10.3l133.6-65.2-49.2-49.2c-6.3-6.2-6.3-16.4 0-22.6 6.3-6.2 16.4-6.2 22.6 0l57 57 102-49.8c24-11.7 44.5-31.3 57.1-57.1 30.1-61.7 4.5-136.1-57.2-166.2zm92.1-34.9C409.8 81 399.7 32.9 360 0c-50.3 41.7-52.5 107.5-7.9 151.9l8 8c44.4 44.6 110.3 42.4 151.9-7.9-32.9-39.7-81-49.8-121.7-30.3z\"]\n};\nvar faCartArrowDown = {\n prefix: 'fas',\n iconName: 'cart-arrow-down',\n icon: [576, 512, [], \"f218\", \"M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM403.029 192H360v-60c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v60h-43.029c-10.691 0-16.045 12.926-8.485 20.485l67.029 67.029c4.686 4.686 12.284 4.686 16.971 0l67.029-67.029c7.559-7.559 2.205-20.485-8.486-20.485z\"]\n};\nvar faCartPlus = {\n prefix: 'fas',\n iconName: 'cart-plus',\n icon: [576, 512, [], \"f217\", \"M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM408 168h-48v-40c0-8.837-7.163-16-16-16h-16c-8.837 0-16 7.163-16 16v40h-48c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h48v40c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-40h48c8.837 0 16-7.163 16-16v-16c0-8.837-7.163-16-16-16z\"]\n};\nvar faCashRegister = {\n prefix: 'fas',\n iconName: 'cash-register',\n icon: [512, 512, [], \"f788\", \"M511.1 378.8l-26.7-160c-2.6-15.4-15.9-26.7-31.6-26.7H208v-64h96c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h96v64H59.1c-15.6 0-29 11.3-31.6 26.7L.8 378.7c-.6 3.5-.9 7-.9 10.5V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-90.7c.1-3.5-.2-7-.8-10.5zM280 248c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16zm-32 64h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16zm-32-80c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16zM80 80V48h192v32H80zm40 200h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16zm16 64v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16zm216 112c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16zm24-112c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16zm48-80c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16z\"]\n};\nvar faCat = {\n prefix: 'fas',\n iconName: 'cat',\n icon: [512, 512, [], \"f6be\", \"M290.59 192c-20.18 0-106.82 1.98-162.59 85.95V192c0-52.94-43.06-96-96-96-17.67 0-32 14.33-32 32s14.33 32 32 32c17.64 0 32 14.36 32 32v256c0 35.3 28.7 64 64 64h176c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-32l128-96v144c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V289.86c-10.29 2.67-20.89 4.54-32 4.54-61.81 0-113.52-44.05-125.41-102.4zM448 96h-64l-64-64v134.4c0 53.02 42.98 96 96 96s96-42.98 96-96V32l-64 64zm-72 80c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm80 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z\"]\n};\nvar faCertificate = {\n prefix: 'fas',\n iconName: 'certificate',\n icon: [512, 512, [], \"f0a3\", \"M458.622 255.92l45.985-45.005c13.708-12.977 7.316-36.039-10.664-40.339l-62.65-15.99 17.661-62.015c4.991-17.838-11.829-34.663-29.661-29.671l-61.994 17.667-15.984-62.671C337.085.197 313.765-6.276 300.99 7.228L256 53.57 211.011 7.229c-12.63-13.351-36.047-7.234-40.325 10.668l-15.984 62.671-61.995-17.667C74.87 57.907 58.056 74.738 63.046 92.572l17.661 62.015-62.65 15.99C.069 174.878-6.31 197.944 7.392 210.915l45.985 45.005-45.985 45.004c-13.708 12.977-7.316 36.039 10.664 40.339l62.65 15.99-17.661 62.015c-4.991 17.838 11.829 34.663 29.661 29.671l61.994-17.667 15.984 62.671c4.439 18.575 27.696 24.018 40.325 10.668L256 458.61l44.989 46.001c12.5 13.488 35.987 7.486 40.325-10.668l15.984-62.671 61.994 17.667c17.836 4.994 34.651-11.837 29.661-29.671l-17.661-62.015 62.65-15.99c17.987-4.302 24.366-27.367 10.664-40.339l-45.984-45.004z\"]\n};\nvar faChair = {\n prefix: 'fas',\n iconName: 'chair',\n icon: [448, 512, [], \"f6c0\", \"M112 128c0-29.5 16.2-55 40-68.9V256h48V48h48v208h48V59.1c23.8 13.9 40 39.4 40 68.9v128h48V128C384 57.3 326.7 0 256 0h-64C121.3 0 64 57.3 64 128v128h48zm334.3 213.9l-10.7-32c-4.4-13.1-16.6-21.9-30.4-21.9H42.7c-13.8 0-26 8.8-30.4 21.9l-10.7 32C-5.2 362.6 10.2 384 32 384v112c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V384h256v112c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V384c21.8 0 37.2-21.4 30.3-42.1z\"]\n};\nvar faChalkboard = {\n prefix: 'fas',\n iconName: 'chalkboard',\n icon: [640, 512, [], \"f51b\", \"M96 64h448v352h64V40c0-22.06-17.94-40-40-40H72C49.94 0 32 17.94 32 40v376h64V64zm528 384H480v-64H288v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"]\n};\nvar faChalkboardTeacher = {\n prefix: 'fas',\n iconName: 'chalkboard-teacher',\n icon: [640, 512, [], \"f51c\", \"M208 352c-2.39 0-4.78.35-7.06 1.09C187.98 357.3 174.35 360 160 360c-14.35 0-27.98-2.7-40.95-6.91-2.28-.74-4.66-1.09-7.05-1.09C49.94 352-.33 402.48 0 464.62.14 490.88 21.73 512 48 512h224c26.27 0 47.86-21.12 48-47.38.33-62.14-49.94-112.62-112-112.62zm-48-32c53.02 0 96-42.98 96-96s-42.98-96-96-96-96 42.98-96 96 42.98 96 96 96zM592 0H208c-26.47 0-48 22.25-48 49.59V96c23.42 0 45.1 6.78 64 17.8V64h352v288h-64v-64H384v64h-76.24c19.1 16.69 33.12 38.73 39.69 64H592c26.47 0 48-22.25 48-49.59V49.59C640 22.25 618.47 0 592 0z\"]\n};\nvar faChargingStation = {\n prefix: 'fas',\n iconName: 'charging-station',\n icon: [576, 512, [], \"f5e7\", \"M336 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h320c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm208-320V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-32V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-16c-8.84 0-16 7.16-16 16v32c0 35.76 23.62 65.69 56 75.93v118.49c0 13.95-9.5 26.92-23.26 29.19C431.22 402.5 416 388.99 416 372v-28c0-48.6-39.4-88-88-88h-8V64c0-35.35-28.65-64-64-64H96C60.65 0 32 28.65 32 64v352h288V304h8c22.09 0 40 17.91 40 40v24.61c0 39.67 28.92 75.16 68.41 79.01C481.71 452.05 520 416.41 520 372V251.93c32.38-10.24 56-40.17 56-75.93v-32c0-8.84-7.16-16-16-16h-16zm-283.91 47.76l-93.7 139c-2.2 3.33-6.21 5.24-10.39 5.24-7.67 0-13.47-6.28-11.67-12.92L167.35 224H108c-7.25 0-12.85-5.59-11.89-11.89l16-107C112.9 99.9 117.98 96 124 96h68c7.88 0 13.62 6.54 11.6 13.21L192 160h57.7c9.24 0 15.01 8.78 10.39 15.76z\"]\n};\nvar faChartArea = {\n prefix: 'fas',\n iconName: 'chart-area',\n icon: [512, 512, [], \"f1fe\", \"M500 384c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v308h436zM372.7 159.5L288 216l-85.3-113.7c-5.1-6.8-15.5-6.3-19.9 1L96 248v104h384l-89.9-187.8c-3.2-6.5-11.4-8.7-17.4-4.7z\"]\n};\nvar faChartBar = {\n prefix: 'fas',\n iconName: 'chart-bar',\n icon: [512, 512, [], \"f080\", \"M332.8 320h38.4c6.4 0 12.8-6.4 12.8-12.8V172.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V76.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-288 0h38.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zM496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"]\n};\nvar faChartLine = {\n prefix: 'fas',\n iconName: 'chart-line',\n icon: [512, 512, [], \"f201\", \"M496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM464 96H345.94c-21.38 0-32.09 25.85-16.97 40.97l32.4 32.4L288 242.75l-73.37-73.37c-12.5-12.5-32.76-12.5-45.25 0l-68.69 68.69c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L192 237.25l73.37 73.37c12.5 12.5 32.76 12.5 45.25 0l96-96 32.4 32.4c15.12 15.12 40.97 4.41 40.97-16.97V112c.01-8.84-7.15-16-15.99-16z\"]\n};\nvar faChartPie = {\n prefix: 'fas',\n iconName: 'chart-pie',\n icon: [544, 512, [], \"f200\", \"M527.79 288H290.5l158.03 158.03c6.04 6.04 15.98 6.53 22.19.68 38.7-36.46 65.32-85.61 73.13-140.86 1.34-9.46-6.51-17.85-16.06-17.85zm-15.83-64.8C503.72 103.74 408.26 8.28 288.8.04 279.68-.59 272 7.1 272 16.24V240h223.77c9.14 0 16.82-7.68 16.19-16.8zM224 288V50.71c0-9.55-8.39-17.4-17.84-16.06C86.99 51.49-4.1 155.6.14 280.37 4.5 408.51 114.83 513.59 243.03 511.98c50.4-.63 96.97-16.87 135.26-44.03 7.9-5.6 8.42-17.23 1.57-24.08L224 288z\"]\n};\nvar faCheck = {\n prefix: 'fas',\n iconName: 'check',\n icon: [512, 512, [], \"f00c\", \"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"]\n};\nvar faCheckCircle = {\n prefix: 'fas',\n iconName: 'check-circle',\n icon: [512, 512, [], \"f058\", \"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z\"]\n};\nvar faCheckDouble = {\n prefix: 'fas',\n iconName: 'check-double',\n icon: [512, 512, [], \"f560\", \"M505 174.8l-39.6-39.6c-9.4-9.4-24.6-9.4-33.9 0L192 374.7 80.6 263.2c-9.4-9.4-24.6-9.4-33.9 0L7 302.9c-9.4 9.4-9.4 24.6 0 34L175 505c9.4 9.4 24.6 9.4 33.9 0l296-296.2c9.4-9.5 9.4-24.7.1-34zm-324.3 106c6.2 6.3 16.4 6.3 22.6 0l208-208.2c6.2-6.3 6.2-16.4 0-22.6L366.1 4.7c-6.2-6.3-16.4-6.3-22.6 0L192 156.2l-55.4-55.5c-6.2-6.3-16.4-6.3-22.6 0L68.7 146c-6.2 6.3-6.2 16.4 0 22.6l112 112.2z\"]\n};\nvar faCheckSquare = {\n prefix: 'fas',\n iconName: 'check-square',\n icon: [448, 512, [], \"f14a\", \"M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zm-204.686-98.059l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.248-16.379-6.249-22.628 0L184 302.745l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.25 16.379 6.25 22.628.001z\"]\n};\nvar faCheese = {\n prefix: 'fas',\n iconName: 'cheese',\n icon: [512, 512, [], \"f7ef\", \"M0 288v160a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32V288zM299.83 32a32 32 0 0 0-21.13 7L0 256h512c0-119.89-94-217.8-212.17-224z\"]\n};\nvar faChess = {\n prefix: 'fas',\n iconName: 'chess',\n icon: [512, 512, [], \"f439\", \"M74 208H64a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h15.94A535.78 535.78 0 0 1 64 384h128a535.78 535.78 0 0 1-15.94-128H192a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-10l33.89-90.38a16 16 0 0 0-15-21.62H144V64h24a8 8 0 0 0 8-8V40a8 8 0 0 0-8-8h-24V8a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v24H88a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h24v32H55.09a16 16 0 0 0-15 21.62zm173.16 251.58L224 448v-16a16 16 0 0 0-16-16H48a16 16 0 0 0-16 16v16L8.85 459.58A16 16 0 0 0 0 473.89V496a16 16 0 0 0 16 16h224a16 16 0 0 0 16-16v-22.11a16 16 0 0 0-8.84-14.31zm92.77-157.78l-3.29 82.2h126.72l-3.29-82.21 24.6-20.79A32 32 0 0 0 496 256.54V198a6 6 0 0 0-6-6h-26.38a6 6 0 0 0-6 6v26h-24.71v-26a6 6 0 0 0-6-6H373.1a6 6 0 0 0-6 6v26h-24.71v-26a6 6 0 0 0-6-6H310a6 6 0 0 0-6 6v58.6a32 32 0 0 0 11.36 24.4zM384 304a16 16 0 0 1 32 0v32h-32zm119.16 155.58L480 448v-16a16 16 0 0 0-16-16H336a16 16 0 0 0-16 16v16l-23.15 11.58a16 16 0 0 0-8.85 14.31V496a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-22.11a16 16 0 0 0-8.84-14.31z\"]\n};\nvar faChessBishop = {\n prefix: 'fas',\n iconName: 'chess-bishop',\n icon: [320, 512, [], \"f43a\", \"M8 287.88c0 51.64 22.14 73.83 56 84.6V416h192v-43.52c33.86-10.77 56-33 56-84.6 0-30.61-10.73-67.1-26.69-102.56L185 285.65a8 8 0 0 1-11.31 0l-11.31-11.31a8 8 0 0 1 0-11.31L270.27 155.1c-20.8-37.91-46.47-72.1-70.87-92.59C213.4 59.09 224 47.05 224 32a32 32 0 0 0-32-32h-64a32 32 0 0 0-32 32c0 15 10.6 27.09 24.6 30.51C67.81 106.8 8 214.5 8 287.88zM304 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faChessBoard = {\n prefix: 'fas',\n iconName: 'chess-board',\n icon: [512, 512, [], \"f43c\", \"M255.9.2h-64v64h64zM0 64.17v64h64v-64zM128 .2H64v64h64zm64 255.9v64h64v-64zM0 192.12v64h64v-64zM383.85.2h-64v64h64zm128 0h-64v64h64zM128 256.1H64v64h64zM511.8 448v-64h-64v64zm0-128v-64h-64v64zM383.85 512h64v-64h-64zm128-319.88v-64h-64v64zM128 512h64v-64h-64zM0 512h64v-64H0zm255.9 0h64v-64h-64zM0 320.07v64h64v-64zm319.88-191.92v-64h-64v64zm-64 128h64v-64h-64zm-64 128v64h64v-64zm128-64h64v-64h-64zm0-127.95h64v-64h-64zm0 191.93v64h64v-64zM64 384.05v64h64v-64zm128-255.9v-64h-64v64zm191.92 255.9h64v-64h-64zm-128-191.93v-64h-64v64zm128-127.95v64h64v-64zm-128 255.9v64h64v-64zm-64-127.95H128v64h64zm191.92 64h64v-64h-64zM128 128.15H64v64h64zm0 191.92v64h64v-64z\"]\n};\nvar faChessKing = {\n prefix: 'fas',\n iconName: 'chess-king',\n icon: [448, 512, [], \"f43f\", \"M400 448H48a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm16-288H256v-48h40a8 8 0 0 0 8-8V56a8 8 0 0 0-8-8h-40V8a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v40h-40a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h40v48H32a32 32 0 0 0-30.52 41.54L74.56 416h298.88l73.08-214.46A32 32 0 0 0 416 160z\"]\n};\nvar faChessKnight = {\n prefix: 'fas',\n iconName: 'chess-knight',\n icon: [384, 512, [], \"f441\", \"M19 272.47l40.63 18.06a32 32 0 0 0 24.88.47l12.78-5.12a32 32 0 0 0 18.76-20.5l9.22-30.65a24 24 0 0 1 12.55-15.65L159.94 208v50.33a48 48 0 0 1-26.53 42.94l-57.22 28.65A80 80 0 0 0 32 401.48V416h319.86V224c0-106-85.92-192-191.92-192H12A12 12 0 0 0 0 44a16.9 16.9 0 0 0 1.79 7.58L16 80l-9 9a24 24 0 0 0-7 17v137.21a32 32 0 0 0 19 29.26zM52 128a20 20 0 1 1-20 20 20 20 0 0 1 20-20zm316 320H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faChessPawn = {\n prefix: 'fas',\n iconName: 'chess-pawn',\n icon: [320, 512, [], \"f443\", \"M105.1 224H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h16v5.49c0 44-4.14 86.6-24 122.51h176c-19.89-35.91-24-78.51-24-122.51V288h16a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-25.1c29.39-18.38 49.1-50.78 49.1-88a104 104 0 0 0-208 0c0 37.22 19.71 69.62 49.1 88zM304 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faChessQueen = {\n prefix: 'fas',\n iconName: 'chess-queen',\n icon: [512, 512, [], \"f445\", \"M256 112a56 56 0 1 0-56-56 56 56 0 0 0 56 56zm176 336H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm72.87-263.84l-28.51-15.92c-7.44-5-16.91-2.46-22.29 4.68a47.59 47.59 0 0 1-47.23 18.23C383.7 186.86 368 164.93 368 141.4a13.4 13.4 0 0 0-13.4-13.4h-38.77c-6 0-11.61 4-12.86 9.91a48 48 0 0 1-93.94 0c-1.25-5.92-6.82-9.91-12.86-9.91H157.4a13.4 13.4 0 0 0-13.4 13.4c0 25.69-19 48.75-44.67 50.49a47.5 47.5 0 0 1-41.54-19.15c-5.28-7.09-14.73-9.45-22.09-4.54l-28.57 16a16 16 0 0 0-5.44 20.47L104.24 416h303.52l102.55-211.37a16 16 0 0 0-5.44-20.47z\"]\n};\nvar faChessRook = {\n prefix: 'fas',\n iconName: 'chess-rook',\n icon: [384, 512, [], \"f447\", \"M368 32h-56a16 16 0 0 0-16 16v48h-48V48a16 16 0 0 0-16-16h-80a16 16 0 0 0-16 16v48H88.1V48a16 16 0 0 0-16-16H16A16 16 0 0 0 0 48v176l64 32c0 48.33-1.54 95-13.21 160h282.42C321.54 351 320 303.72 320 256l64-32V48a16 16 0 0 0-16-16zM224 320h-64v-64a32 32 0 0 1 64 0zm144 128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faChevronCircleDown = {\n prefix: 'fas',\n iconName: 'chevron-circle-down',\n icon: [512, 512, [], \"f13a\", \"M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM273 369.9l135.5-135.5c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L256 285.1 154.4 183.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L239 369.9c9.4 9.4 24.6 9.4 34 0z\"]\n};\nvar faChevronCircleLeft = {\n prefix: 'fas',\n iconName: 'chevron-circle-left',\n icon: [512, 512, [], \"f137\", \"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zM142.1 273l135.5 135.5c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L226.9 256l101.6-101.6c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L142.1 239c-9.4 9.4-9.4 24.6 0 34z\"]\n};\nvar faChevronCircleRight = {\n prefix: 'fas',\n iconName: 'chevron-circle-right',\n icon: [512, 512, [], \"f138\", \"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm113.9 231L234.4 103.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L285.1 256 183.5 357.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L369.9 273c9.4-9.4 9.4-24.6 0-34z\"]\n};\nvar faChevronCircleUp = {\n prefix: 'fas',\n iconName: 'chevron-circle-up',\n icon: [512, 512, [], \"f139\", \"M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm231-113.9L103.5 277.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L256 226.9l101.6 101.6c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L273 142.1c-9.4-9.4-24.6-9.4-34 0z\"]\n};\nvar faChevronDown = {\n prefix: 'fas',\n iconName: 'chevron-down',\n icon: [448, 512, [], \"f078\", \"M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z\"]\n};\nvar faChevronLeft = {\n prefix: 'fas',\n iconName: 'chevron-left',\n icon: [320, 512, [], \"f053\", \"M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z\"]\n};\nvar faChevronRight = {\n prefix: 'fas',\n iconName: 'chevron-right',\n icon: [320, 512, [], \"f054\", \"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"]\n};\nvar faChevronUp = {\n prefix: 'fas',\n iconName: 'chevron-up',\n icon: [448, 512, [], \"f077\", \"M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z\"]\n};\nvar faChild = {\n prefix: 'fas',\n iconName: 'child',\n icon: [384, 512, [], \"f1ae\", \"M120 72c0-39.765 32.235-72 72-72s72 32.235 72 72c0 39.764-32.235 72-72 72s-72-32.236-72-72zm254.627 1.373c-12.496-12.497-32.758-12.497-45.254 0L242.745 160H141.254L54.627 73.373c-12.496-12.497-32.758-12.497-45.254 0-12.497 12.497-12.497 32.758 0 45.255L104 213.254V480c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V368h16v112c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V213.254l94.627-94.627c12.497-12.497 12.497-32.757 0-45.254z\"]\n};\nvar faChurch = {\n prefix: 'fas',\n iconName: 'church',\n icon: [640, 512, [], \"f51d\", \"M464.46 246.68L352 179.2V128h48c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-48V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v48h-48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v51.2l-112.46 67.48A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.65-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.54A32.024 32.024 0 0 0 0 395.96zm620.61-29.42L512 320v192h112c8.84 0 16-7.16 16-16V395.96c0-12.8-7.63-24.37-19.39-29.42z\"]\n};\nvar faCircle = {\n prefix: 'fas',\n iconName: 'circle',\n icon: [512, 512, [], \"f111\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z\"]\n};\nvar faCircleNotch = {\n prefix: 'fas',\n iconName: 'circle-notch',\n icon: [512, 512, [], \"f1ce\", \"M288 39.056v16.659c0 10.804 7.281 20.159 17.686 23.066C383.204 100.434 440 171.518 440 256c0 101.689-82.295 184-184 184-101.689 0-184-82.295-184-184 0-84.47 56.786-155.564 134.312-177.219C216.719 75.874 224 66.517 224 55.712V39.064c0-15.709-14.834-27.153-30.046-23.234C86.603 43.482 7.394 141.206 8.003 257.332c.72 137.052 111.477 246.956 248.531 246.667C393.255 503.711 504 392.788 504 256c0-115.633-79.14-212.779-186.211-240.236C302.678 11.889 288 23.456 288 39.056z\"]\n};\nvar faCity = {\n prefix: 'fas',\n iconName: 'city',\n icon: [640, 512, [], \"f64f\", \"M616 192H480V24c0-13.26-10.74-24-24-24H312c-13.26 0-24 10.74-24 24v72h-64V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v80h-64V16c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v80H24c-13.26 0-24 10.74-24 24v360c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V216c0-13.26-10.75-24-24-24zM128 404c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm128 192c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12V76c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 288c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40z\"]\n};\nvar faClinicMedical = {\n prefix: 'fas',\n iconName: 'clinic-medical',\n icon: [576, 512, [], \"f7f2\", \"M288 115L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2zm96 261a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8zm186.69-139.72l-255.94-226a39.85 39.85 0 0 0-53.45 0l-256 226a16 16 0 0 0-1.21 22.6L25.5 282.7a16 16 0 0 0 22.6 1.21L277.42 81.63a16 16 0 0 1 21.17 0L527.91 283.9a16 16 0 0 0 22.6-1.21l21.4-23.82a16 16 0 0 0-1.22-22.59z\"]\n};\nvar faClipboard = {\n prefix: 'fas',\n iconName: 'clipboard',\n icon: [384, 512, [], \"f328\", \"M384 112v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h80c0-35.29 28.71-64 64-64s64 28.71 64 64h80c26.51 0 48 21.49 48 48zM192 40c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24m96 114v-20a6 6 0 0 0-6-6H102a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h180a6 6 0 0 0 6-6z\"]\n};\nvar faClipboardCheck = {\n prefix: 'fas',\n iconName: 'clipboard-check',\n icon: [384, 512, [], \"f46c\", \"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm121.2 231.8l-143 141.8c-4.7 4.7-12.3 4.6-17-.1l-82.6-83.3c-4.7-4.7-4.6-12.3.1-17L99.1 285c4.7-4.7 12.3-4.6 17 .1l46 46.4 106-105.2c4.7-4.7 12.3-4.6 17 .1l28.2 28.4c4.7 4.8 4.6 12.3-.1 17z\"]\n};\nvar faClipboardList = {\n prefix: 'fas',\n iconName: 'clipboard-list',\n icon: [384, 512, [], \"f46d\", \"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM96 424c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm96-192c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm128 368c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z\"]\n};\nvar faClock = {\n prefix: 'fas',\n iconName: 'clock',\n icon: [512, 512, [], \"f017\", \"M256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8Zm92.49,313h0l-20,25a16,16,0,0,1-22.49,2.5h0l-67-49.72a40,40,0,0,1-15-31.23V112a16,16,0,0,1,16-16h32a16,16,0,0,1,16,16V256l58,42.5A16,16,0,0,1,348.49,321Z\"]\n};\nvar faClone = {\n prefix: 'fas',\n iconName: 'clone',\n icon: [512, 512, [], \"f24d\", \"M464 0c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48H176c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h288M176 416c-44.112 0-80-35.888-80-80V128H48c-26.51 0-48 21.49-48 48v288c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48v-48H176z\"]\n};\nvar faClosedCaptioning = {\n prefix: 'fas',\n iconName: 'closed-captioning',\n icon: [512, 512, [], \"f20a\", \"M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM218.1 287.7c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2.1 48 51.1 70.5 92.3 32.6zm190.4 0c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.5 56.9-172.7 32.1-172.7-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 222.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6z\"]\n};\nvar faCloud = {\n prefix: 'fas',\n iconName: 'cloud',\n icon: [640, 512, [], \"f0c2\", \"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4z\"]\n};\nvar faCloudDownloadAlt = {\n prefix: 'fas',\n iconName: 'cloud-download-alt',\n icon: [640, 512, [], \"f381\", \"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zm-132.9 88.7L299.3 420.7c-6.2 6.2-16.4 6.2-22.6 0L171.3 315.3c-10.1-10.1-2.9-27.3 11.3-27.3H248V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v112h65.4c14.2 0 21.4 17.2 11.3 27.3z\"]\n};\nvar faCloudMeatball = {\n prefix: 'fas',\n iconName: 'cloud-meatball',\n icon: [512, 512, [], \"f73b\", \"M48 352c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm416 0c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm-119 11.1c4.6-14.5 1.6-30.8-9.8-42.3-11.5-11.5-27.8-14.4-42.3-9.9-7-13.5-20.7-23-36.9-23s-29.9 9.5-36.9 23c-14.5-4.6-30.8-1.6-42.3 9.9-11.5 11.5-14.4 27.8-9.9 42.3-13.5 7-23 20.7-23 36.9s9.5 29.9 23 36.9c-4.6 14.5-1.6 30.8 9.9 42.3 8.2 8.2 18.9 12.3 29.7 12.3 4.3 0 8.5-1.1 12.6-2.5 7 13.5 20.7 23 36.9 23s29.9-9.5 36.9-23c4.1 1.3 8.3 2.5 12.6 2.5 10.8 0 21.5-4.1 29.7-12.3 11.5-11.5 14.4-27.8 9.8-42.3 13.5-7 23-20.7 23-36.9s-9.5-29.9-23-36.9zM512 224c0-53-43-96-96-96-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.1 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h43.4c3.6-8 8.4-15.4 14.8-21.8 13.5-13.5 31.5-21.1 50.8-21.3 13.5-13.2 31.7-20.9 51-20.9s37.5 7.7 51 20.9c19.3.2 37.3 7.8 50.8 21.3 6.4 6.4 11.3 13.8 14.8 21.8H416c53 0 96-43 96-96z\"]\n};\nvar faCloudMoon = {\n prefix: 'fas',\n iconName: 'cloud-moon',\n icon: [576, 512, [], \"f6c3\", \"M342.8 352.7c5.7-9.6 9.2-20.7 9.2-32.7 0-35.3-28.7-64-64-64-17.2 0-32.8 6.9-44.3 17.9-16.3-29.6-47.5-49.9-83.7-49.9-53 0-96 43-96 96 0 2 .5 3.8.6 5.7C27.1 338.8 0 374.1 0 416c0 53 43 96 96 96h240c44.2 0 80-35.8 80-80 0-41.9-32.3-75.8-73.2-79.3zm222.5-54.3c-93.1 17.7-178.5-53.7-178.5-147.7 0-54.2 29-104 76.1-130.8 7.3-4.1 5.4-15.1-2.8-16.7C448.4 1.1 436.7 0 425 0 319.1 0 233.1 85.9 233.1 192c0 8.5.7 16.8 1.8 25 5.9 4.3 11.6 8.9 16.7 14.2 11.4-4.7 23.7-7.2 36.4-7.2 52.9 0 96 43.1 96 96 0 3.6-.2 7.2-.6 10.7 23.6 10.8 42.4 29.5 53.5 52.6 54.4-3.4 103.7-29.3 137.1-70.4 5.3-6.5-.5-16.1-8.7-14.5z\"]\n};\nvar faCloudMoonRain = {\n prefix: 'fas',\n iconName: 'cloud-moon-rain',\n icon: [576, 512, [], \"f73c\", \"M350.5 225.5c-6.9-37.2-39.3-65.5-78.5-65.5-12.3 0-23.9 3-34.3 8-17.4-24.1-45.6-40-77.7-40-53 0-96 43-96 96 0 .5.2 1.1.2 1.6C27.6 232.9 0 265.2 0 304c0 44.2 35.8 80 80 80h256c44.2 0 80-35.8 80-80 0-39.2-28.2-71.7-65.5-78.5zm217.4-1.7c-70.4 13.3-135-40.3-135-110.8 0-40.6 21.9-78 57.5-98.1 5.5-3.1 4.1-11.4-2.1-12.5C479.6.8 470.7 0 461.8 0c-77.9 0-141.1 61.2-144.4 137.9 26.7 11.9 48.2 33.8 58.9 61.7 37.1 14.3 64 47.4 70.2 86.8 5.1.5 10 1.5 15.2 1.5 44.7 0 85.6-20.2 112.6-53.3 4.2-4.8-.2-12-6.4-10.8zM364.5 418.1c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8z\"]\n};\nvar faCloudRain = {\n prefix: 'fas',\n iconName: 'cloud-rain',\n icon: [512, 512, [], \"f73d\", \"M416 128c-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.1 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h320c53 0 96-43 96-96s-43-96-96-96zM88 374.2c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0zm160 0c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0zm160 0c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0z\"]\n};\nvar faCloudShowersHeavy = {\n prefix: 'fas',\n iconName: 'cloud-showers-heavy',\n icon: [512, 512, [], \"f740\", \"M183.9 370.1c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm96 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm-192 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm384 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm-96 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zM416 128c-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.2 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h320c53 0 96-43 96-96s-43-96-96-96z\"]\n};\nvar faCloudSun = {\n prefix: 'fas',\n iconName: 'cloud-sun',\n icon: [640, 512, [], \"f6c4\", \"M575.2 325.7c.2-1.9.8-3.7.8-5.6 0-35.3-28.7-64-64-64-12.6 0-24.2 3.8-34.1 10-17.6-38.8-56.5-66-101.9-66-61.8 0-112 50.1-112 112 0 3 .7 5.8.9 8.7-49.6 3.7-88.9 44.7-88.9 95.3 0 53 43 96 96 96h272c53 0 96-43 96-96 0-42.1-27.2-77.4-64.8-90.4zm-430.4-22.6c-43.7-43.7-43.7-114.7 0-158.3 43.7-43.7 114.7-43.7 158.4 0 9.7 9.7 16.9 20.9 22.3 32.7 9.8-3.7 20.1-6 30.7-7.5L386 81.1c4-11.9-7.3-23.1-19.2-19.2L279 91.2 237.5 8.4C232-2.8 216-2.8 210.4 8.4L169 91.2 81.1 61.9C69.3 58 58 69.3 61.9 81.1l29.3 87.8-82.8 41.5c-11.2 5.6-11.2 21.5 0 27.1l82.8 41.4-29.3 87.8c-4 11.9 7.3 23.1 19.2 19.2l76.1-25.3c6.1-12.4 14-23.7 23.6-33.5-13.1-5.4-25.4-13.4-36-24zm-4.8-79.2c0 40.8 29.3 74.8 67.9 82.3 8-4.7 16.3-8.8 25.2-11.7 5.4-44.3 31-82.5 67.4-105C287.3 160.4 258 140 224 140c-46.3 0-84 37.6-84 83.9z\"]\n};\nvar faCloudSunRain = {\n prefix: 'fas',\n iconName: 'cloud-sun-rain',\n icon: [576, 512, [], \"f743\", \"M510.5 225.5c-6.9-37.2-39.3-65.5-78.5-65.5-12.3 0-23.9 3-34.3 8-17.4-24.1-45.6-40-77.7-40-53 0-96 43-96 96 0 .5.2 1.1.2 1.6C187.6 233 160 265.2 160 304c0 44.2 35.8 80 80 80h256c44.2 0 80-35.8 80-80 0-39.2-28.2-71.7-65.5-78.5zm-386.4 34.4c-37.4-37.4-37.4-98.3 0-135.8 34.6-34.6 89.1-36.8 126.7-7.4 20-12.9 43.6-20.7 69.2-20.7.7 0 1.3.2 2 .2l8.9-26.7c3.4-10.2-6.3-19.8-16.5-16.4l-75.3 25.1-35.5-71c-4.8-9.6-18.5-9.6-23.3 0l-35.5 71-75.3-25.1c-10.2-3.4-19.8 6.3-16.4 16.5l25.1 75.3-71 35.5c-9.6 4.8-9.6 18.5 0 23.3l71 35.5-25.1 75.3c-3.4 10.2 6.3 19.8 16.5 16.5l59.2-19.7c-.2-2.4-.7-4.7-.7-7.2 0-12.5 2.3-24.5 6.2-35.9-3.6-2.7-7.1-5.2-10.2-8.3zm69.8-58c4.3-24.5 15.8-46.4 31.9-64-9.8-6.2-21.4-9.9-33.8-9.9-35.3 0-64 28.7-64 64 0 18.7 8.2 35.4 21.1 47.1 11.3-15.9 26.6-28.9 44.8-37.2zm330.6 216.2c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8z\"]\n};\nvar faCloudUploadAlt = {\n prefix: 'fas',\n iconName: 'cloud-upload-alt',\n icon: [640, 512, [], \"f382\", \"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zM393.4 288H328v112c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V288h-65.4c-14.3 0-21.4-17.2-11.3-27.3l105.4-105.4c6.2-6.2 16.4-6.2 22.6 0l105.4 105.4c10.1 10.1 2.9 27.3-11.3 27.3z\"]\n};\nvar faCocktail = {\n prefix: 'fas',\n iconName: 'cocktail',\n icon: [576, 512, [], \"f561\", \"M296 464h-56V338.78l168.74-168.73c15.52-15.52 4.53-42.05-17.42-42.05H24.68c-21.95 0-32.94 26.53-17.42 42.05L176 338.78V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM432 0c-62.61 0-115.35 40.2-135.18 96h52.54c16.65-28.55 47.27-48 82.64-48 52.93 0 96 43.06 96 96s-43.07 96-96 96c-14.04 0-27.29-3.2-39.32-8.64l-35.26 35.26C379.23 279.92 404.59 288 432 288c79.53 0 144-64.47 144-144S511.53 0 432 0z\"]\n};\nvar faCode = {\n prefix: 'fas',\n iconName: 'code',\n icon: [640, 512, [], \"f121\", \"M278.9 511.5l-61-17.7c-6.4-1.8-10-8.5-8.2-14.9L346.2 8.7c1.8-6.4 8.5-10 14.9-8.2l61 17.7c6.4 1.8 10 8.5 8.2 14.9L293.8 503.3c-1.9 6.4-8.5 10.1-14.9 8.2zm-114-112.2l43.5-46.4c4.6-4.9 4.3-12.7-.8-17.2L117 256l90.6-79.7c5.1-4.5 5.5-12.3.8-17.2l-43.5-46.4c-4.5-4.8-12.1-5.1-17-.5L3.8 247.2c-5.1 4.7-5.1 12.8 0 17.5l144.1 135.1c4.9 4.6 12.5 4.4 17-.5zm327.2.6l144.1-135.1c5.1-4.7 5.1-12.8 0-17.5L492.1 112.1c-4.8-4.5-12.4-4.3-17 .5L431.6 159c-4.6 4.9-4.3 12.7.8 17.2L523 256l-90.6 79.7c-5.1 4.5-5.5 12.3-.8 17.2l43.5 46.4c4.5 4.9 12.1 5.1 17 .6z\"]\n};\nvar faCodeBranch = {\n prefix: 'fas',\n iconName: 'code-branch',\n icon: [384, 512, [], \"f126\", \"M384 144c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.4 24.3 67.1 57.5 76.8-.6 16.1-4.2 28.5-11 36.9-15.4 19.2-49.3 22.4-85.2 25.7-28.2 2.6-57.4 5.4-81.3 16.9v-144c32.5-10.2 56-40.5 56-76.3 0-44.2-35.8-80-80-80S0 35.8 0 80c0 35.8 23.5 66.1 56 76.3v199.3C23.5 365.9 0 396.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-34-21.2-63.1-51.2-74.6 3.1-5.2 7.8-9.8 14.9-13.4 16.2-8.2 40.4-10.4 66.1-12.8 42.2-3.9 90-8.4 118.2-43.4 14-17.4 21.1-39.8 21.6-67.9 31.6-10.8 54.4-40.7 54.4-75.9zM80 64c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16zm0 384c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm224-320c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16z\"]\n};\nvar faCoffee = {\n prefix: 'fas',\n iconName: 'coffee',\n icon: [640, 512, [], \"f0f4\", \"M192 384h192c53 0 96-43 96-96h32c70.6 0 128-57.4 128-128S582.6 32 512 32H120c-13.3 0-24 10.7-24 24v232c0 53 43 96 96 96zM512 96c35.3 0 64 28.7 64 64s-28.7 64-64 64h-32V96h32zm47.7 384H48.3c-47.6 0-61-64-36-64h583.3c25 0 11.8 64-35.9 64z\"]\n};\nvar faCog = {\n prefix: 'fas',\n iconName: 'cog',\n icon: [512, 512, [], \"f013\", \"M487.4 315.7l-42.6-24.6c4.3-23.2 4.3-47 0-70.2l42.6-24.6c4.9-2.8 7.1-8.6 5.5-14-11.1-35.6-30-67.8-54.7-94.6-3.8-4.1-10-5.1-14.8-2.3L380.8 110c-17.9-15.4-38.5-27.3-60.8-35.1V25.8c0-5.6-3.9-10.5-9.4-11.7-36.7-8.2-74.3-7.8-109.2 0-5.5 1.2-9.4 6.1-9.4 11.7V75c-22.2 7.9-42.8 19.8-60.8 35.1L88.7 85.5c-4.9-2.8-11-1.9-14.8 2.3-24.7 26.7-43.6 58.9-54.7 94.6-1.7 5.4.6 11.2 5.5 14L67.3 221c-4.3 23.2-4.3 47 0 70.2l-42.6 24.6c-4.9 2.8-7.1 8.6-5.5 14 11.1 35.6 30 67.8 54.7 94.6 3.8 4.1 10 5.1 14.8 2.3l42.6-24.6c17.9 15.4 38.5 27.3 60.8 35.1v49.2c0 5.6 3.9 10.5 9.4 11.7 36.7 8.2 74.3 7.8 109.2 0 5.5-1.2 9.4-6.1 9.4-11.7v-49.2c22.2-7.9 42.8-19.8 60.8-35.1l42.6 24.6c4.9 2.8 11 1.9 14.8-2.3 24.7-26.7 43.6-58.9 54.7-94.6 1.5-5.5-.7-11.3-5.6-14.1zM256 336c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faCogs = {\n prefix: 'fas',\n iconName: 'cogs',\n icon: [640, 512, [], \"f085\", \"M512.1 191l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0L552 6.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zm-10.5-58.8c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.7-82.4 14.3-52.8 52.8zM386.3 286.1l33.7 16.8c10.1 5.8 14.5 18.1 10.5 29.1-8.9 24.2-26.4 46.4-42.6 65.8-7.4 8.9-20.2 11.1-30.3 5.3l-29.1-16.8c-16 13.7-34.6 24.6-54.9 31.7v33.6c0 11.6-8.3 21.6-19.7 23.6-24.6 4.2-50.4 4.4-75.9 0-11.5-2-20-11.9-20-23.6V418c-20.3-7.2-38.9-18-54.9-31.7L74 403c-10 5.8-22.9 3.6-30.3-5.3-16.2-19.4-33.3-41.6-42.2-65.7-4-10.9.4-23.2 10.5-29.1l33.3-16.8c-3.9-20.9-3.9-42.4 0-63.4L12 205.8c-10.1-5.8-14.6-18.1-10.5-29 8.9-24.2 26-46.4 42.2-65.8 7.4-8.9 20.2-11.1 30.3-5.3l29.1 16.8c16-13.7 34.6-24.6 54.9-31.7V57.1c0-11.5 8.2-21.5 19.6-23.5 24.6-4.2 50.5-4.4 76-.1 11.5 2 20 11.9 20 23.6v33.6c20.3 7.2 38.9 18 54.9 31.7l29.1-16.8c10-5.8 22.9-3.6 30.3 5.3 16.2 19.4 33.2 41.6 42.1 65.8 4 10.9.1 23.2-10 29.1l-33.7 16.8c3.9 21 3.9 42.5 0 63.5zm-117.6 21.1c59.2-77-28.7-164.9-105.7-105.7-59.2 77 28.7 164.9 105.7 105.7zm243.4 182.7l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0l8.2-14.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zM501.6 431c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.6-82.4 14.3-52.8 52.8z\"]\n};\nvar faCoins = {\n prefix: 'fas',\n iconName: 'coins',\n icon: [512, 512, [], \"f51e\", \"M0 405.3V448c0 35.3 86 64 192 64s192-28.7 192-64v-42.7C342.7 434.4 267.2 448 192 448S41.3 434.4 0 405.3zM320 128c106 0 192-28.7 192-64S426 0 320 0 128 28.7 128 64s86 64 192 64zM0 300.4V352c0 35.3 86 64 192 64s192-28.7 192-64v-51.6c-41.3 34-116.9 51.6-192 51.6S41.3 334.4 0 300.4zm416 11c57.3-11.1 96-31.7 96-55.4v-42.7c-23.2 16.4-57.3 27.6-96 34.5v63.6zM192 160C86 160 0 195.8 0 240s86 80 192 80 192-35.8 192-80-86-80-192-80zm219.3 56.3c60-10.8 100.7-32 100.7-56.3v-42.7c-35.5 25.1-96.5 38.6-160.7 41.8 29.5 14.3 51.2 33.5 60 57.2z\"]\n};\nvar faColumns = {\n prefix: 'fas',\n iconName: 'columns',\n icon: [512, 512, [], \"f0db\", \"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64V160h160v256zm224 0H288V160h160v256z\"]\n};\nvar faComment = {\n prefix: 'fas',\n iconName: 'comment',\n icon: [512, 512, [], \"f075\", \"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32z\"]\n};\nvar faCommentAlt = {\n prefix: 'fas',\n iconName: 'comment-alt',\n icon: [512, 512, [], \"f27a\", \"M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 9.8 11.2 15.5 19.1 9.7L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64z\"]\n};\nvar faCommentDollar = {\n prefix: 'fas',\n iconName: 'comment-dollar',\n icon: [512, 512, [], \"f651\", \"M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95.01 57.02 130.74C44.46 421.05 2.7 465.97 2.2 466.5A7.995 7.995 0 0 0 8 480c66.26 0 115.99-31.75 140.6-51.38C181.29 440.93 217.59 448 256 448c141.38 0 256-93.12 256-208S397.38 32 256 32zm24 302.44V352c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16v-17.73c-11.42-1.35-22.28-5.19-31.78-11.46-6.22-4.11-6.82-13.11-1.55-18.38l17.52-17.52c3.74-3.74 9.31-4.24 14.11-2.03 3.18 1.46 6.66 2.22 10.26 2.22h32.78c4.66 0 8.44-3.78 8.44-8.42 0-3.75-2.52-7.08-6.12-8.11l-50.07-14.3c-22.25-6.35-40.01-24.71-42.91-47.67-4.05-32.07 19.03-59.43 49.32-63.05V128c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v17.73c11.42 1.35 22.28 5.19 31.78 11.46 6.22 4.11 6.82 13.11 1.55 18.38l-17.52 17.52c-3.74 3.74-9.31 4.24-14.11 2.03a24.516 24.516 0 0 0-10.26-2.22h-32.78c-4.66 0-8.44 3.78-8.44 8.42 0 3.75 2.52 7.08 6.12 8.11l50.07 14.3c22.25 6.36 40.01 24.71 42.91 47.67 4.05 32.06-19.03 59.42-49.32 63.04z\"]\n};\nvar faCommentDots = {\n prefix: 'fas',\n iconName: 'comment-dots',\n icon: [512, 512, [], \"f4ad\", \"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128 272c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faCommentMedical = {\n prefix: 'fas',\n iconName: 'comment-medical',\n icon: [512, 512, [], \"f7f5\", \"M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95 57 130.74C44.46 421.05 2.7 466 2.2 466.5A8 8 0 0 0 8 480c66.26 0 116-31.75 140.6-51.38A304.66 304.66 0 0 0 256 448c141.39 0 256-93.12 256-208S397.39 32 256 32zm96 232a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8z\"]\n};\nvar faCommentSlash = {\n prefix: 'fas',\n iconName: 'comment-slash',\n icon: [640, 512, [], \"f4b3\", \"M64 240c0 49.6 21.4 95 57 130.7-12.6 50.3-54.3 95.2-54.8 95.8-2.2 2.3-2.8 5.7-1.5 8.7 1.3 2.9 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 27.4 0 53.7-3.6 78.4-10L72.9 186.4c-5.6 17.1-8.9 35-8.9 53.6zm569.8 218.1l-114.4-88.4C554.6 334.1 576 289.2 576 240c0-114.9-114.6-208-256-208-65.1 0-124.2 20.1-169.4 52.7L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z\"]\n};\nvar faComments = {\n prefix: 'fas',\n iconName: 'comments',\n icon: [576, 512, [], \"f086\", \"M416 192c0-88.4-93.1-160-208-160S0 103.6 0 192c0 34.3 14.1 65.9 38 92-13.4 30.2-35.5 54.2-35.8 54.5-2.2 2.3-2.8 5.7-1.5 8.7S4.8 352 8 352c36.6 0 66.9-12.3 88.7-25 32.2 15.7 70.3 25 111.3 25 114.9 0 208-71.6 208-160zm122 220c23.9-26 38-57.7 38-92 0-66.9-53.5-124.2-129.3-148.1.9 6.6 1.3 13.3 1.3 20.1 0 105.9-107.7 192-240 192-10.8 0-21.3-.8-31.7-1.9C207.8 439.6 281.8 480 368 480c41 0 79.1-9.2 111.3-25 21.8 12.7 52.1 25 88.7 25 3.2 0 6.1-1.9 7.3-4.8 1.3-2.9.7-6.3-1.5-8.7-.3-.3-22.4-24.2-35.8-54.5z\"]\n};\nvar faCommentsDollar = {\n prefix: 'fas',\n iconName: 'comments-dollar',\n icon: [576, 512, [], \"f653\", \"M416 192c0-88.37-93.12-160-208-160S0 103.63 0 192c0 34.27 14.13 65.95 37.97 91.98C24.61 314.22 2.52 338.16 2.2 338.5A7.995 7.995 0 0 0 8 352c36.58 0 66.93-12.25 88.73-24.98C128.93 342.76 167.02 352 208 352c114.88 0 208-71.63 208-160zm-224 96v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V96c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07V288c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm346.01 123.99C561.87 385.96 576 354.27 576 320c0-66.94-53.49-124.2-129.33-148.07.86 6.6 1.33 13.29 1.33 20.07 0 105.87-107.66 192-240 192-10.78 0-21.32-.77-31.73-1.88C207.8 439.63 281.77 480 368 480c40.98 0 79.07-9.24 111.27-24.98C501.07 467.75 531.42 480 568 480c3.2 0 6.09-1.91 7.34-4.84 1.27-2.94.66-6.34-1.55-8.67-.31-.33-22.42-24.24-35.78-54.5z\"]\n};\nvar faCompactDisc = {\n prefix: 'fas',\n iconName: 'compact-disc',\n icon: [496, 512, [], \"f51f\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 256H56c0-105.9 86.1-192 192-192v32c-88.2 0-160 71.8-160 160zm160 96c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"]\n};\nvar faCompass = {\n prefix: 'fas',\n iconName: 'compass',\n icon: [496, 512, [], \"f14e\", \"M225.38 233.37c-12.5 12.5-12.5 32.76 0 45.25 12.49 12.5 32.76 12.5 45.25 0 12.5-12.5 12.5-32.76 0-45.25-12.5-12.49-32.76-12.49-45.25 0zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm126.14 148.05L308.17 300.4a31.938 31.938 0 0 1-15.77 15.77l-144.34 65.97c-16.65 7.61-33.81-9.55-26.2-26.2l65.98-144.35a31.938 31.938 0 0 1 15.77-15.77l144.34-65.97c16.65-7.6 33.8 9.55 26.19 26.2z\"]\n};\nvar faCompress = {\n prefix: 'fas',\n iconName: 'compress',\n icon: [448, 512, [], \"f066\", \"M436 192H312c-13.3 0-24-10.7-24-24V44c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v84h84c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm-276-24V44c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v84H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24zm0 300V344c0-13.3-10.7-24-24-24H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-84h84c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H312c-13.3 0-24 10.7-24 24v124c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z\"]\n};\nvar faCompressAlt = {\n prefix: 'fas',\n iconName: 'compress-alt',\n icon: [448, 512, [], \"f422\", \"M4.686 427.314L104 328l-32.922-31.029C55.958 281.851 66.666 256 88.048 256h112C213.303 256 224 266.745 224 280v112c0 21.382-25.803 32.09-40.922 16.971L152 376l-99.314 99.314c-6.248 6.248-16.379 6.248-22.627 0L4.686 449.941c-6.248-6.248-6.248-16.379 0-22.627zM443.314 84.686L344 184l32.922 31.029c15.12 15.12 4.412 40.971-16.97 40.971h-112C234.697 256 224 245.255 224 232V120c0-21.382 25.803-32.09 40.922-16.971L296 136l99.314-99.314c6.248-6.248 16.379-6.248 22.627 0l25.373 25.373c6.248 6.248 6.248 16.379 0 22.627z\"]\n};\nvar faCompressArrowsAlt = {\n prefix: 'fas',\n iconName: 'compress-arrows-alt',\n icon: [512, 512, [], \"f78c\", \"M200 288H88c-21.4 0-32.1 25.8-17 41l32.9 31-99.2 99.3c-6.2 6.2-6.2 16.4 0 22.6l25.4 25.4c6.2 6.2 16.4 6.2 22.6 0L152 408l31.1 33c15.1 15.1 40.9 4.4 40.9-17V312c0-13.3-10.7-24-24-24zm112-64h112c21.4 0 32.1-25.9 17-41l-33-31 99.3-99.3c6.2-6.2 6.2-16.4 0-22.6L481.9 4.7c-6.2-6.2-16.4-6.2-22.6 0L360 104l-31.1-33C313.8 55.9 288 66.6 288 88v112c0 13.3 10.7 24 24 24zm96 136l33-31.1c15.1-15.1 4.4-40.9-17-40.9H312c-13.3 0-24 10.7-24 24v112c0 21.4 25.9 32.1 41 17l31-32.9 99.3 99.3c6.2 6.2 16.4 6.2 22.6 0l25.4-25.4c6.2-6.2 6.2-16.4 0-22.6L408 360zM183 71.1L152 104 52.7 4.7c-6.2-6.2-16.4-6.2-22.6 0L4.7 30.1c-6.2 6.2-6.2 16.4 0 22.6L104 152l-33 31.1C55.9 198.2 66.6 224 88 224h112c13.3 0 24-10.7 24-24V88c0-21.3-25.9-32-41-16.9z\"]\n};\nvar faConciergeBell = {\n prefix: 'fas',\n iconName: 'concierge-bell',\n icon: [512, 512, [], \"f562\", \"M288 130.54V112h16c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h16v18.54C115.49 146.11 32 239.18 32 352h448c0-112.82-83.49-205.89-192-221.46zM496 384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"]\n};\nvar faCookie = {\n prefix: 'fas',\n iconName: 'cookie',\n icon: [512, 512, [], \"f563\", \"M510.37 254.79l-12.08-76.26a132.493 132.493 0 0 0-37.16-72.95l-54.76-54.75c-19.73-19.72-45.18-32.7-72.71-37.05l-76.7-12.15c-27.51-4.36-55.69.11-80.52 12.76L107.32 49.6a132.25 132.25 0 0 0-57.79 57.8l-35.1 68.88a132.602 132.602 0 0 0-12.82 80.94l12.08 76.27a132.493 132.493 0 0 0 37.16 72.95l54.76 54.75a132.087 132.087 0 0 0 72.71 37.05l76.7 12.14c27.51 4.36 55.69-.11 80.52-12.75l69.12-35.21a132.302 132.302 0 0 0 57.79-57.8l35.1-68.87c12.71-24.96 17.2-53.3 12.82-80.96zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faCookieBite = {\n prefix: 'fas',\n iconName: 'cookie-bite',\n icon: [512, 512, [], \"f564\", \"M510.52 255.82c-69.97-.85-126.47-57.69-126.47-127.86-70.17 0-127-56.49-127.86-126.45-27.26-4.14-55.13.3-79.72 12.82l-69.13 35.22a132.221 132.221 0 0 0-57.79 57.81l-35.1 68.88a132.645 132.645 0 0 0-12.82 80.95l12.08 76.27a132.521 132.521 0 0 0 37.16 72.96l54.77 54.76a132.036 132.036 0 0 0 72.71 37.06l76.71 12.15c27.51 4.36 55.7-.11 80.53-12.76l69.13-35.21a132.273 132.273 0 0 0 57.79-57.81l35.1-68.88c12.56-24.64 17.01-52.58 12.91-79.91zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faCopy = {\n prefix: 'fas',\n iconName: 'copy',\n icon: [448, 512, [], \"f0c5\", \"M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 0 0 358.059 0H352v96h96v-6.059a24 24 0 0 0-7.029-16.97z\"]\n};\nvar faCopyright = {\n prefix: 'fas',\n iconName: 'copyright',\n icon: [512, 512, [], \"f1f9\", \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm117.134 346.753c-1.592 1.867-39.776 45.731-109.851 45.731-84.692 0-144.484-63.26-144.484-145.567 0-81.303 62.004-143.401 143.762-143.401 66.957 0 101.965 37.315 103.422 38.904a12 12 0 0 1 1.238 14.623l-22.38 34.655c-4.049 6.267-12.774 7.351-18.234 2.295-.233-.214-26.529-23.88-61.88-23.88-46.116 0-73.916 33.575-73.916 76.082 0 39.602 25.514 79.692 74.277 79.692 38.697 0 65.28-28.338 65.544-28.625 5.132-5.565 14.059-5.033 18.508 1.053l24.547 33.572a12.001 12.001 0 0 1-.553 14.866z\"]\n};\nvar faCouch = {\n prefix: 'fas',\n iconName: 'couch',\n icon: [640, 512, [], \"f4b8\", \"M160 224v64h320v-64c0-35.3 28.7-64 64-64h32c0-53-43-96-96-96H160c-53 0-96 43-96 96h32c35.3 0 64 28.7 64 64zm416-32h-32c-17.7 0-32 14.3-32 32v96H128v-96c0-17.7-14.3-32-32-32H64c-35.3 0-64 28.7-64 64 0 23.6 13 44 32 55.1V432c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-16h384v16c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V311.1c19-11.1 32-31.5 32-55.1 0-35.3-28.7-64-64-64z\"]\n};\nvar faCreditCard = {\n prefix: 'fas',\n iconName: 'credit-card',\n icon: [576, 512, [], \"f09d\", \"M0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V256H0v176zm192-68c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-40zm-128 0c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM576 80v48H0V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48z\"]\n};\nvar faCrop = {\n prefix: 'fas',\n iconName: 'crop',\n icon: [512, 512, [], \"f125\", \"M488 352h-40V109.25l59.31-59.31c6.25-6.25 6.25-16.38 0-22.63L484.69 4.69c-6.25-6.25-16.38-6.25-22.63 0L402.75 64H192v96h114.75L160 306.75V24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v264c0 13.25 10.75 24 24 24h232v-96H205.25L352 205.25V488c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z\"]\n};\nvar faCropAlt = {\n prefix: 'fas',\n iconName: 'crop-alt',\n icon: [512, 512, [], \"f565\", \"M488 352h-40V96c0-17.67-14.33-32-32-32H192v96h160v328c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24zM160 24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v256c0 17.67 14.33 32 32 32h224v-96H160V24z\"]\n};\nvar faCross = {\n prefix: 'fas',\n iconName: 'cross',\n icon: [384, 512, [], \"f654\", \"M352 128h-96V32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h96v224c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V256h96c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\"]\n};\nvar faCrosshairs = {\n prefix: 'fas',\n iconName: 'crosshairs',\n icon: [512, 512, [], \"f05b\", \"M500 224h-30.364C455.724 130.325 381.675 56.276 288 42.364V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v30.364C130.325 56.276 56.276 130.325 42.364 224H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h30.364C56.276 381.675 130.325 455.724 224 469.636V500c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-30.364C381.675 455.724 455.724 381.675 469.636 288H500c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zM288 404.634V364c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40.634C165.826 392.232 119.783 346.243 107.366 288H148c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40.634C119.768 165.826 165.757 119.783 224 107.366V148c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40.634C346.174 119.768 392.217 165.757 404.634 224H364c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40.634C392.232 346.174 346.243 392.217 288 404.634zM288 256c0 17.673-14.327 32-32 32s-32-14.327-32-32c0-17.673 14.327-32 32-32s32 14.327 32 32z\"]\n};\nvar faCrow = {\n prefix: 'fas',\n iconName: 'crow',\n icon: [640, 512, [], \"f520\", \"M544 32h-16.36C513.04 12.68 490.09 0 464 0c-44.18 0-80 35.82-80 80v20.98L12.09 393.57A30.216 30.216 0 0 0 0 417.74c0 22.46 23.64 37.07 43.73 27.03L165.27 384h96.49l44.41 120.1c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38L312.94 384H352c1.91 0 3.76-.23 5.66-.29l44.51 120.38c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38l-41.24-111.53C485.74 352.8 544 279.26 544 192v-80l96-16c0-35.35-42.98-64-96-64zm-80 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"]\n};\nvar faCrown = {\n prefix: 'fas',\n iconName: 'crown',\n icon: [640, 512, [], \"f521\", \"M528 448H112c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h416c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm64-320c-26.5 0-48 21.5-48 48 0 7.1 1.6 13.7 4.4 19.8L476 239.2c-15.4 9.2-35.3 4-44.2-11.6L350.3 85C361 76.2 368 63 368 48c0-26.5-21.5-48-48-48s-48 21.5-48 48c0 15 7 28.2 17.7 37l-81.5 142.6c-8.9 15.6-28.9 20.8-44.2 11.6l-72.3-43.4c2.7-6 4.4-12.7 4.4-19.8 0-26.5-21.5-48-48-48S0 149.5 0 176s21.5 48 48 48c2.6 0 5.2-.4 7.7-.8L128 416h384l72.3-192.8c2.5.4 5.1.8 7.7.8 26.5 0 48-21.5 48-48s-21.5-48-48-48z\"]\n};\nvar faCrutch = {\n prefix: 'fas',\n iconName: 'crutch',\n icon: [512, 512, [], \"f7f7\", \"M507.31 185.71l-181-181a16 16 0 0 0-22.62 0L281 27.31a16 16 0 0 0 0 22.63l181 181a16 16 0 0 0 22.63 0l22.62-22.63a16 16 0 0 0 .06-22.6zm-179.54 66.41l-67.89-67.89 55.1-55.1-45.25-45.25-109.67 109.67a96.08 96.08 0 0 0-25.67 46.29L106.65 360.1l-102 102a16 16 0 0 0 0 22.63l22.62 22.62a16 16 0 0 0 22.63 0l102-102 120.25-27.75a95.88 95.88 0 0 0 46.29-25.65l109.68-109.68L382.87 197zm-54.57 54.57a32 32 0 0 1-15.45 8.54l-79.3 18.32 18.3-79.3a32.22 32.22 0 0 1 8.56-15.45l9.31-9.31 67.89 67.89z\"]\n};\nvar faCube = {\n prefix: 'fas',\n iconName: 'cube',\n icon: [512, 512, [], \"f1b2\", \"M239.1 6.3l-208 78c-18.7 7-31.1 25-31.1 45v225.1c0 18.2 10.3 34.8 26.5 42.9l208 104c13.5 6.8 29.4 6.8 42.9 0l208-104c16.3-8.1 26.5-24.8 26.5-42.9V129.3c0-20-12.4-37.9-31.1-44.9l-208-78C262 2.2 250 2.2 239.1 6.3zM256 68.4l192 72v1.1l-192 78-192-78v-1.1l192-72zm32 356V275.5l160-65v133.9l-160 80z\"]\n};\nvar faCubes = {\n prefix: 'fas',\n iconName: 'cubes',\n icon: [512, 512, [], \"f1b3\", \"M488.6 250.2L392 214V105.5c0-15-9.3-28.4-23.4-33.7l-100-37.5c-8.1-3.1-17.1-3.1-25.3 0l-100 37.5c-14.1 5.3-23.4 18.7-23.4 33.7V214l-96.6 36.2C9.3 255.5 0 268.9 0 283.9V394c0 13.6 7.7 26.1 19.9 32.2l100 50c10.1 5.1 22.1 5.1 32.2 0l103.9-52 103.9 52c10.1 5.1 22.1 5.1 32.2 0l100-50c12.2-6.1 19.9-18.6 19.9-32.2V283.9c0-15-9.3-28.4-23.4-33.7zM358 214.8l-85 31.9v-68.2l85-37v73.3zM154 104.1l102-38.2 102 38.2v.6l-102 41.4-102-41.4v-.6zm84 291.1l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6zm240 112l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6z\"]\n};\nvar faCut = {\n prefix: 'fas',\n iconName: 'cut',\n icon: [448, 512, [], \"f0c4\", \"M278.06 256L444.48 89.57c4.69-4.69 4.69-12.29 0-16.97-32.8-32.8-85.99-32.8-118.79 0L210.18 188.12l-24.86-24.86c4.31-10.92 6.68-22.81 6.68-35.26 0-53.02-42.98-96-96-96S0 74.98 0 128s42.98 96 96 96c4.54 0 8.99-.32 13.36-.93L142.29 256l-32.93 32.93c-4.37-.61-8.83-.93-13.36-.93-53.02 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96c0-12.45-2.37-24.34-6.68-35.26l24.86-24.86L325.69 439.4c32.8 32.8 85.99 32.8 118.79 0 4.69-4.68 4.69-12.28 0-16.97L278.06 256zM96 160c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32zm0 256c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z\"]\n};\nvar faDatabase = {\n prefix: 'fas',\n iconName: 'database',\n icon: [448, 512, [], \"f1c0\", \"M448 73.143v45.714C448 159.143 347.667 192 224 192S0 159.143 0 118.857V73.143C0 32.857 100.333 0 224 0s224 32.857 224 73.143zM448 176v102.857C448 319.143 347.667 352 224 352S0 319.143 0 278.857V176c48.125 33.143 136.208 48.572 224 48.572S399.874 209.143 448 176zm0 160v102.857C448 479.143 347.667 512 224 512S0 479.143 0 438.857V336c48.125 33.143 136.208 48.572 224 48.572S399.874 369.143 448 336z\"]\n};\nvar faDeaf = {\n prefix: 'fas',\n iconName: 'deaf',\n icon: [512, 512, [], \"f2a4\", \"M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm268.485-52.201L480.2 3.515c-4.687-4.686-12.284-4.686-16.971 0L376.2 90.544c-4.686 4.686-4.686 12.284 0 16.971l28.285 28.285c4.686 4.686 12.284 4.686 16.97 0l87.03-87.029c4.687-4.688 4.687-12.286 0-16.972zM168.97 314.745c-4.686-4.686-12.284-4.686-16.97 0L3.515 463.23c-4.686 4.686-4.686 12.284 0 16.971L31.8 508.485c4.687 4.686 12.284 4.686 16.971 0L197.256 360c4.686-4.686 4.686-12.284 0-16.971l-28.286-28.284z\"]\n};\nvar faDemocrat = {\n prefix: 'fas',\n iconName: 'democrat',\n icon: [640, 512, [], \"f747\", \"M637.3 256.9l-19.6-29.4c-28.2-42.3-75.3-67.5-126.1-67.5H256l-81.2-81.2c20.1-20.1 22.6-51.1 7.5-73.9-3.4-5.2-10.8-5.9-15.2-1.5l-41.8 41.8L82.4 2.4c-3.6-3.6-9.6-3-12.4 1.2-12.3 18.6-10.3 44 6.1 60.4 3.3 3.3 7.3 5.3 11.3 7.5-2.2 1.7-4.7 3.1-6.4 5.4L6.4 176.2c-7.3 9.7-8.4 22.7-3 33.5l14.3 28.6c5.4 10.8 16.5 17.7 28.6 17.7h31c8.5 0 16.6-3.4 22.6-9.4L138 212l54 108h352v-77.8c16.2 12.2 18.3 17.6 40.1 50.3 4.9 7.4 14.8 9.3 22.2 4.4l26.6-17.7c7.3-5 9.3-14.9 4.4-22.3zm-341.1-13.6l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L256 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zm112 0l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L368 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zm112 0l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L480 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zM192 496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80h160v80c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V352H192v144z\"]\n};\nvar faDesktop = {\n prefix: 'fas',\n iconName: 'desktop',\n icon: [576, 512, [], \"f108\", \"M528 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h192l-16 48h-72c-13.3 0-24 10.7-24 24s10.7 24 24 24h272c13.3 0 24-10.7 24-24s-10.7-24-24-24h-72l-16-48h192c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h448v288z\"]\n};\nvar faDharmachakra = {\n prefix: 'fas',\n iconName: 'dharmachakra',\n icon: [512, 512, [], \"f655\", \"M495 225.06l-17.22 1.08c-5.27-39.49-20.79-75.64-43.86-105.84l12.95-11.43c6.92-6.11 7.25-16.79.73-23.31L426.44 64.4c-6.53-6.53-17.21-6.19-23.31.73L391.7 78.07c-30.2-23.06-66.35-38.58-105.83-43.86L286.94 17c.58-9.21-6.74-17-15.97-17h-29.94c-9.23 0-16.54 7.79-15.97 17l1.08 17.22c-39.49 5.27-75.64 20.79-105.83 43.86l-11.43-12.95c-6.11-6.92-16.79-7.25-23.31-.73L64.4 85.56c-6.53 6.53-6.19 17.21.73 23.31l12.95 11.43c-23.06 30.2-38.58 66.35-43.86 105.84L17 225.06c-9.21-.58-17 6.74-17 15.97v29.94c0 9.23 7.79 16.54 17 15.97l17.22-1.08c5.27 39.49 20.79 75.64 43.86 105.83l-12.95 11.43c-6.92 6.11-7.25 16.79-.73 23.31l21.17 21.17c6.53 6.53 17.21 6.19 23.31-.73l11.43-12.95c30.2 23.06 66.35 38.58 105.84 43.86L225.06 495c-.58 9.21 6.74 17 15.97 17h29.94c9.23 0 16.54-7.79 15.97-17l-1.08-17.22c39.49-5.27 75.64-20.79 105.84-43.86l11.43 12.95c6.11 6.92 16.79 7.25 23.31.73l21.17-21.17c6.53-6.53 6.19-17.21-.73-23.31l-12.95-11.43c23.06-30.2 38.58-66.35 43.86-105.83l17.22 1.08c9.21.58 17-6.74 17-15.97v-29.94c-.01-9.23-7.8-16.54-17.01-15.97zM281.84 98.61c24.81 4.07 47.63 13.66 67.23 27.78l-42.62 48.29c-8.73-5.44-18.32-9.54-28.62-11.95l4.01-64.12zm-51.68 0l4.01 64.12c-10.29 2.41-19.89 6.52-28.62 11.95l-42.62-48.29c19.6-14.12 42.42-23.71 67.23-27.78zm-103.77 64.33l48.3 42.61c-5.44 8.73-9.54 18.33-11.96 28.62l-64.12-4.01c4.07-24.81 13.66-47.62 27.78-67.22zm-27.78 118.9l64.12-4.01c2.41 10.29 6.52 19.89 11.95 28.62l-48.29 42.62c-14.12-19.6-23.71-42.42-27.78-67.23zm131.55 131.55c-24.81-4.07-47.63-13.66-67.23-27.78l42.61-48.3c8.73 5.44 18.33 9.54 28.62 11.96l-4 64.12zM256 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm25.84 125.39l-4.01-64.12c10.29-2.41 19.89-6.52 28.62-11.96l42.61 48.3c-19.6 14.12-42.41 23.71-67.22 27.78zm103.77-64.33l-48.29-42.62c5.44-8.73 9.54-18.32 11.95-28.62l64.12 4.01c-4.07 24.82-13.66 47.64-27.78 67.23zm-36.34-114.89c-2.41-10.29-6.52-19.89-11.96-28.62l48.3-42.61c14.12 19.6 23.71 42.42 27.78 67.23l-64.12 4z\"]\n};\nvar faDiagnoses = {\n prefix: 'fas',\n iconName: 'diagnoses',\n icon: [640, 512, [], \"f470\", \"M496 256c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm-176-80c48.5 0 88-39.5 88-88S368.5 0 320 0s-88 39.5-88 88 39.5 88 88 88zM59.8 364c10.2 15.3 29.3 17.8 42.9 9.8 16.2-9.6 56.2-31.7 105.3-48.6V416h224v-90.7c49.1 16.8 89.1 39 105.3 48.6 13.6 8 32.7 5.3 42.9-9.8l17.8-26.7c8.8-13.2 7.6-34.6-10-45.1-11.9-7.1-29.7-17-51.1-27.4-28.1 46.1-99.4 17.8-87.7-35.1C409.3 217.2 365.1 208 320 208c-57 0-112.9 14.5-160 32.2-.2 40.2-47.6 63.3-79.2 36-11.2 6-21.3 11.6-28.7 16-17.6 10.5-18.8 31.8-10 45.1L59.8 364zM368 344c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-160 8c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm512 192H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"]\n};\nvar faDice = {\n prefix: 'fas',\n iconName: 'dice',\n icon: [640, 512, [], \"f522\", \"M592 192H473.26c12.69 29.59 7.12 65.2-17 89.32L320 417.58V464c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48V240c0-26.51-21.49-48-48-48zM480 376c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm-46.37-186.7L258.7 14.37c-19.16-19.16-50.23-19.16-69.39 0L14.37 189.3c-19.16 19.16-19.16 50.23 0 69.39L189.3 433.63c19.16 19.16 50.23 19.16 69.39 0L433.63 258.7c19.16-19.17 19.16-50.24 0-69.4zM96 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"]\n};\nvar faDiceD20 = {\n prefix: 'fas',\n iconName: 'dice-d20',\n icon: [480, 512, [], \"f6cf\", \"M106.75 215.06L1.2 370.95c-3.08 5 .1 11.5 5.93 12.14l208.26 22.07-108.64-190.1zM7.41 315.43L82.7 193.08 6.06 147.1c-2.67-1.6-6.06.32-6.06 3.43v162.81c0 4.03 5.29 5.53 7.41 2.09zM18.25 423.6l194.4 87.66c5.3 2.45 11.35-1.43 11.35-7.26v-65.67l-203.55-22.3c-4.45-.5-6.23 5.59-2.2 7.57zm81.22-257.78L179.4 22.88c4.34-7.06-3.59-15.25-10.78-11.14L17.81 110.35c-2.47 1.62-2.39 5.26.13 6.78l81.53 48.69zM240 176h109.21L253.63 7.62C250.5 2.54 245.25 0 240 0s-10.5 2.54-13.63 7.62L130.79 176H240zm233.94-28.9l-76.64 45.99 75.29 122.35c2.11 3.44 7.41 1.94 7.41-2.1V150.53c0-3.11-3.39-5.03-6.06-3.43zm-93.41 18.72l81.53-48.7c2.53-1.52 2.6-5.16.13-6.78l-150.81-98.6c-7.19-4.11-15.12 4.08-10.78 11.14l79.93 142.94zm79.02 250.21L256 438.32v65.67c0 5.84 6.05 9.71 11.35 7.26l194.4-87.66c4.03-1.97 2.25-8.06-2.2-7.56zm-86.3-200.97l-108.63 190.1 208.26-22.07c5.83-.65 9.01-7.14 5.93-12.14L373.25 215.06zM240 208H139.57L240 383.75 340.43 208H240z\"]\n};\nvar faDiceD6 = {\n prefix: 'fas',\n iconName: 'dice-d6',\n icon: [448, 512, [], \"f6d1\", \"M422.19 109.95L256.21 9.07c-19.91-12.1-44.52-12.1-64.43 0L25.81 109.95c-5.32 3.23-5.29 11.27.06 14.46L224 242.55l198.14-118.14c5.35-3.19 5.38-11.22.05-14.46zm13.84 44.63L240 271.46v223.82c0 12.88 13.39 20.91 24.05 14.43l152.16-92.48c19.68-11.96 31.79-33.94 31.79-57.7v-197.7c0-6.41-6.64-10.43-11.97-7.25zM0 161.83v197.7c0 23.77 12.11 45.74 31.79 57.7l152.16 92.47c10.67 6.48 24.05-1.54 24.05-14.43V271.46L11.97 154.58C6.64 151.4 0 155.42 0 161.83z\"]\n};\nvar faDiceFive = {\n prefix: 'fas',\n iconName: 'dice-five',\n icon: [448, 512, [], \"f523\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faDiceFour = {\n prefix: 'fas',\n iconName: 'dice-four',\n icon: [448, 512, [], \"f524\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faDiceOne = {\n prefix: 'fas',\n iconName: 'dice-one',\n icon: [448, 512, [], \"f525\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM224 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faDiceSix = {\n prefix: 'fas',\n iconName: 'dice-six',\n icon: [448, 512, [], \"f526\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faDiceThree = {\n prefix: 'fas',\n iconName: 'dice-three',\n icon: [448, 512, [], \"f527\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faDiceTwo = {\n prefix: 'fas',\n iconName: 'dice-two',\n icon: [448, 512, [], \"f528\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faDigitalTachograph = {\n prefix: 'fas',\n iconName: 'digital-tachograph',\n icon: [640, 512, [], \"f566\", \"M608 96H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128c0-17.67-14.33-32-32-32zM304 352c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8zM72 288v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H80c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm40-64c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-48c0-8.84 7.16-16 16-16h208c8.84 0 16 7.16 16 16v48zm272 128c0 4.42-3.58 8-8 8H344c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8z\"]\n};\nvar faDirections = {\n prefix: 'fas',\n iconName: 'directions',\n icon: [512, 512, [], \"f5eb\", \"M502.61 233.32L278.68 9.39c-12.52-12.52-32.83-12.52-45.36 0L9.39 233.32c-12.52 12.53-12.52 32.83 0 45.36l223.93 223.93c12.52 12.53 32.83 12.53 45.36 0l223.93-223.93c12.52-12.53 12.52-32.83 0-45.36zm-100.98 12.56l-84.21 77.73c-5.12 4.73-13.43 1.1-13.43-5.88V264h-96v64c0 4.42-3.58 8-8 8h-32c-4.42 0-8-3.58-8-8v-80c0-17.67 14.33-32 32-32h112v-53.73c0-6.97 8.3-10.61 13.43-5.88l84.21 77.73c3.43 3.17 3.43 8.59 0 11.76z\"]\n};\nvar faDisease = {\n prefix: 'fas',\n iconName: 'disease',\n icon: [512, 512, [], \"f7fa\", \"M472.29 195.9l-67.06-23c-19.28-6.6-33.54-20.92-38.14-38.31l-16-60.45c-11.58-43.77-76.57-57.13-110-22.62L195 99.24c-13.26 13.71-33.54 20.93-54.2 19.31l-71.9-5.62c-52-4.07-86.93 44.89-59 82.84l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24l-28.43 57C4 396.67 47.46 440.29 98.11 429.23l70-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101 7.57 104.45-37.22l4.7-61.86c1.35-17.8 12.8-33.87 30.63-43l62-31.74c44.84-22.96 39.55-80.17-8.99-96.79zM160 256a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm128 96a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm16-128a16 16 0 1 1 16-16 16 16 0 0 1-16 16z\"]\n};\nvar faDivide = {\n prefix: 'fas',\n iconName: 'divide',\n icon: [448, 512, [], \"f529\", \"M224 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm0-192c35.35 0 64-28.65 64-64s-28.65-64-64-64-64 28.65-64 64 28.65 64 64 64zm192 48H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"]\n};\nvar faDizzy = {\n prefix: 'fas',\n iconName: 'dizzy',\n icon: [496, 512, [], \"f567\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-96 206.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L174.6 192l28.7 28.7c15.2 15.2-7.9 37.4-22.6 22.6L152 214.6zM248 416c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm147.3-195.3c15.2 15.2-7.9 37.4-22.6 22.6L344 214.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L366.6 192l28.7 28.7z\"]\n};\nvar faDna = {\n prefix: 'fas',\n iconName: 'dna',\n icon: [448, 512, [], \"f471\", \"M.1 494.1c-1.1 9.5 6.3 17.8 15.9 17.8l32.3.1c8.1 0 14.9-5.9 16-13.9.7-4.9 1.8-11.1 3.4-18.1H380c1.6 6.9 2.9 13.2 3.5 18.1 1.1 8 7.9 14 16 13.9l32.3-.1c9.6 0 17.1-8.3 15.9-17.8-4.6-37.9-25.6-129-118.9-207.7-17.6 12.4-37.1 24.2-58.5 35.4 6.2 4.6 11.4 9.4 17 14.2H159.7c21.3-18.1 47-35.6 78.7-51.4C410.5 199.1 442.1 65.8 447.9 17.9 449 8.4 441.6.1 432 .1L399.6 0c-8.1 0-14.9 5.9-16 13.9-.7 4.9-1.8 11.1-3.4 18.1H67.8c-1.6-7-2.7-13.1-3.4-18.1-1.1-8-7.9-14-16-13.9L16.1.1C6.5.1-1 8.4.1 17.9 5.3 60.8 31.4 171.8 160 256 31.5 340.2 5.3 451.2.1 494.1zM224 219.6c-25.1-13.7-46.4-28.4-64.3-43.6h128.5c-17.8 15.2-39.1 30-64.2 43.6zM355.1 96c-5.8 10.4-12.8 21.1-21 32H114c-8.3-10.9-15.3-21.6-21-32h262.1zM92.9 416c5.8-10.4 12.8-21.1 21-32h219.4c8.3 10.9 15.4 21.6 21.2 32H92.9z\"]\n};\nvar faDog = {\n prefix: 'fas',\n iconName: 'dog',\n icon: [576, 512, [], \"f6d3\", \"M298.06,224,448,277.55V496a16,16,0,0,1-16,16H368a16,16,0,0,1-16-16V384H192V496a16,16,0,0,1-16,16H112a16,16,0,0,1-16-16V282.09C58.84,268.84,32,233.66,32,192a32,32,0,0,1,64,0,32.06,32.06,0,0,0,32,32ZM544,112v32a64,64,0,0,1-64,64H448v35.58L320,197.87V48c0-14.25,17.22-21.39,27.31-11.31L374.59,64h53.63c10.91,0,23.75,7.92,28.62,17.69L464,96h64A16,16,0,0,1,544,112Zm-112,0a16,16,0,1,0-16,16A16,16,0,0,0,432,112Z\"]\n};\nvar faDollarSign = {\n prefix: 'fas',\n iconName: 'dollar-sign',\n icon: [288, 512, [], \"f155\", \"M209.2 233.4l-108-31.6C88.7 198.2 80 186.5 80 173.5c0-16.3 13.2-29.5 29.5-29.5h66.3c12.2 0 24.2 3.7 34.2 10.5 6.1 4.1 14.3 3.1 19.5-2l34.8-34c7.1-6.9 6.1-18.4-1.8-24.5C238 74.8 207.4 64.1 176 64V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48h-2.5C45.8 64-5.4 118.7.5 183.6c4.2 46.1 39.4 83.6 83.8 96.6l102.5 30c12.5 3.7 21.2 15.3 21.2 28.3 0 16.3-13.2 29.5-29.5 29.5h-66.3C100 368 88 364.3 78 357.5c-6.1-4.1-14.3-3.1-19.5 2l-34.8 34c-7.1 6.9-6.1 18.4 1.8 24.5 24.5 19.2 55.1 29.9 86.5 30v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48.2c46.6-.9 90.3-28.6 105.7-72.7 21.5-61.6-14.6-124.8-72.5-141.7z\"]\n};\nvar faDolly = {\n prefix: 'fas',\n iconName: 'dolly',\n icon: [576, 512, [], \"f472\", \"M294.2 277.7c18 5 34.7 13.4 49.5 24.7l161.5-53.8c8.4-2.8 12.9-11.9 10.1-20.2L454.9 47.2c-2.8-8.4-11.9-12.9-20.2-10.1l-61.1 20.4 33.1 99.4L346 177l-33.1-99.4-61.6 20.5c-8.4 2.8-12.9 11.9-10.1 20.2l53 159.4zm281 48.7L565 296c-2.8-8.4-11.9-12.9-20.2-10.1l-213.5 71.2c-17.2-22-43.6-36.4-73.5-37L158.4 21.9C154 8.8 141.8 0 128 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h88.9l92.2 276.7c-26.1 20.4-41.7 53.6-36 90.5 6.1 39.4 37.9 72.3 77.3 79.2 60.2 10.7 112.3-34.8 113.4-92.6l213.3-71.2c8.3-2.8 12.9-11.8 10.1-20.2zM256 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"]\n};\nvar faDollyFlatbed = {\n prefix: 'fas',\n iconName: 'dolly-flatbed',\n icon: [640, 512, [], \"f474\", \"M208 320h384c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H448v128l-48-32-48 32V32H208c-8.8 0-16 7.2-16 16v256c0 8.8 7.2 16 16 16zm416 64H128V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h82.9c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H451c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H624c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"]\n};\nvar faDonate = {\n prefix: 'fas',\n iconName: 'donate',\n icon: [512, 512, [], \"f4b9\", \"M256 416c114.9 0 208-93.1 208-208S370.9 0 256 0 48 93.1 48 208s93.1 208 208 208zM233.8 97.4V80.6c0-9.2 7.4-16.6 16.6-16.6h11.1c9.2 0 16.6 7.4 16.6 16.6v17c15.5.8 30.5 6.1 43 15.4 5.6 4.1 6.2 12.3 1.2 17.1L306 145.6c-3.8 3.7-9.5 3.8-14 1-5.4-3.4-11.4-5.1-17.8-5.1h-38.9c-9 0-16.3 8.2-16.3 18.3 0 8.2 5 15.5 12.1 17.6l62.3 18.7c25.7 7.7 43.7 32.4 43.7 60.1 0 34-26.4 61.5-59.1 62.4v16.8c0 9.2-7.4 16.6-16.6 16.6h-11.1c-9.2 0-16.6-7.4-16.6-16.6v-17c-15.5-.8-30.5-6.1-43-15.4-5.6-4.1-6.2-12.3-1.2-17.1l16.3-15.5c3.8-3.7 9.5-3.8 14-1 5.4 3.4 11.4 5.1 17.8 5.1h38.9c9 0 16.3-8.2 16.3-18.3 0-8.2-5-15.5-12.1-17.6l-62.3-18.7c-25.7-7.7-43.7-32.4-43.7-60.1.1-34 26.4-61.5 59.1-62.4zM480 352h-32.5c-19.6 26-44.6 47.7-73 64h63.8c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8h63.8c-28.4-16.3-53.3-38-73-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32z\"]\n};\nvar faDoorClosed = {\n prefix: 'fas',\n iconName: 'door-closed',\n icon: [640, 512, [], \"f52a\", \"M624 448H512V50.8C512 22.78 490.47 0 464 0H175.99c-26.47 0-48 22.78-48 50.8V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM415.99 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32c.01 17.67-14.32 32-32 32z\"]\n};\nvar faDoorOpen = {\n prefix: 'fas',\n iconName: 'door-open',\n icon: [640, 512, [], \"f52b\", \"M624 448h-80V113.45C544 86.19 522.47 64 496 64H384v64h96v384h144c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM312.24 1.01l-192 49.74C105.99 54.44 96 67.7 96 82.92V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h336V33.18c0-21.58-19.56-37.41-39.76-32.17zM264 288c-13.25 0-24-14.33-24-32s10.75-32 24-32 24 14.33 24 32-10.75 32-24 32z\"]\n};\nvar faDotCircle = {\n prefix: 'fas',\n iconName: 'dot-circle',\n icon: [512, 512, [], \"f192\", \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm80 248c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80z\"]\n};\nvar faDove = {\n prefix: 'fas',\n iconName: 'dove',\n icon: [512, 512, [], \"f4ba\", \"M288 167.2v-28.1c-28.2-36.3-47.1-79.3-54.1-125.2-2.1-13.5-19-18.8-27.8-8.3-21.1 24.9-37.7 54.1-48.9 86.5 34.2 38.3 80 64.6 130.8 75.1zM400 64c-44.2 0-80 35.9-80 80.1v59.4C215.6 197.3 127 133 87 41.8c-5.5-12.5-23.2-13.2-29-.9C41.4 76 32 115.2 32 156.6c0 70.8 34.1 136.9 85.1 185.9 13.2 12.7 26.1 23.2 38.9 32.8l-143.9 36C1.4 414-3.4 426.4 2.6 435.7 20 462.6 63 508.2 155.8 512c8 .3 16-2.6 22.1-7.9l65.2-56.1H320c88.4 0 160-71.5 160-159.9V128l32-64H400zm0 96.1c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"]\n};\nvar faDownload = {\n prefix: 'fas',\n iconName: 'download',\n icon: [512, 512, [], \"f019\", \"M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z\"]\n};\nvar faDraftingCompass = {\n prefix: 'fas',\n iconName: 'drafting-compass',\n icon: [512, 512, [], \"f568\", \"M457.01 344.42c-25.05 20.33-52.63 37.18-82.54 49.05l54.38 94.19 53.95 23.04c9.81 4.19 20.89-2.21 22.17-12.8l7.02-58.25-54.98-95.23zm42.49-94.56c4.86-7.67 1.89-17.99-6.05-22.39l-28.07-15.57c-7.48-4.15-16.61-1.46-21.26 5.72C403.01 281.15 332.25 320 256 320c-23.93 0-47.23-4.25-69.41-11.53l67.36-116.68c.7.02 1.34.21 2.04.21s1.35-.19 2.04-.21l51.09 88.5c31.23-8.96 59.56-25.75 82.61-48.92l-51.79-89.71C347.39 128.03 352 112.63 352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96c0 16.63 4.61 32.03 12.05 45.66l-68.3 118.31c-12.55-11.61-23.96-24.59-33.68-39-4.79-7.1-13.97-9.62-21.38-5.33l-27.75 16.07c-7.85 4.54-10.63 14.9-5.64 22.47 15.57 23.64 34.69 44.21 55.98 62.02L0 439.66l7.02 58.25c1.28 10.59 12.36 16.99 22.17 12.8l53.95-23.04 70.8-122.63C186.13 377.28 220.62 384 256 384c99.05 0 190.88-51.01 243.5-134.14zM256 64c17.67 0 32 14.33 32 32s-14.33 32-32 32-32-14.33-32-32 14.33-32 32-32z\"]\n};\nvar faDragon = {\n prefix: 'fas',\n iconName: 'dragon',\n icon: [640, 512, [], \"f6d5\", \"M18.32 255.78L192 223.96l-91.28 68.69c-10.08 10.08-2.94 27.31 11.31 27.31h222.7c-9.44-26.4-14.73-54.47-14.73-83.38v-42.27l-119.73-87.6c-23.82-15.88-55.29-14.01-77.06 4.59L5.81 227.64c-12.38 10.33-3.45 30.42 12.51 28.14zm556.87 34.1l-100.66-50.31A47.992 47.992 0 0 1 448 196.65v-36.69h64l28.09 22.63c6 6 14.14 9.37 22.63 9.37h30.97a32 32 0 0 0 28.62-17.69l14.31-28.62a32.005 32.005 0 0 0-3.02-33.51l-74.53-99.38C553.02 4.7 543.54 0 533.47 0H296.02c-7.13 0-10.7 8.57-5.66 13.61L352 63.96 292.42 88.8c-5.9 2.95-5.9 11.36 0 14.31L352 127.96v108.62c0 72.08 36.03 139.39 96 179.38-195.59 6.81-344.56 41.01-434.1 60.91C5.78 478.67 0 485.88 0 494.2 0 504 7.95 512 17.76 512h499.08c63.29.01 119.61-47.56 122.99-110.76 2.52-47.28-22.73-90.4-64.64-111.36zM489.18 66.25l45.65 11.41c-2.75 10.91-12.47 18.89-24.13 18.26-12.96-.71-25.85-12.53-21.52-29.67z\"]\n};\nvar faDrawPolygon = {\n prefix: 'fas',\n iconName: 'draw-polygon',\n icon: [448, 512, [], \"f5ee\", \"M384 352c-.35 0-.67.1-1.02.1l-39.2-65.32c5.07-9.17 8.22-19.56 8.22-30.78s-3.14-21.61-8.22-30.78l39.2-65.32c.35.01.67.1 1.02.1 35.35 0 64-28.65 64-64s-28.65-64-64-64c-23.63 0-44.04 12.95-55.12 32H119.12C108.04 44.95 87.63 32 64 32 28.65 32 0 60.65 0 96c0 23.63 12.95 44.04 32 55.12v209.75C12.95 371.96 0 392.37 0 416c0 35.35 28.65 64 64 64 23.63 0 44.04-12.95 55.12-32h209.75c11.09 19.05 31.49 32 55.12 32 35.35 0 64-28.65 64-64 .01-35.35-28.64-64-63.99-64zm-288 8.88V151.12A63.825 63.825 0 0 0 119.12 128h208.36l-38.46 64.1c-.35-.01-.67-.1-1.02-.1-35.35 0-64 28.65-64 64s28.65 64 64 64c.35 0 .67-.1 1.02-.1l38.46 64.1H119.12A63.748 63.748 0 0 0 96 360.88zM272 256c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zM400 96c0 8.82-7.18 16-16 16s-16-7.18-16-16 7.18-16 16-16 16 7.18 16 16zM64 80c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zM48 416c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zm336 16c-8.82 0-16-7.18-16-16s7.18-16 16-16 16 7.18 16 16-7.18 16-16 16z\"]\n};\nvar faDrum = {\n prefix: 'fas',\n iconName: 'drum',\n icon: [512, 512, [], \"f569\", \"M431.34 122.05l73.53-47.42a16 16 0 0 0 4.44-22.19l-8.87-13.31a16 16 0 0 0-22.19-4.44l-110.06 71C318.43 96.91 271.22 96 256 96 219.55 96 0 100.55 0 208.15v160.23c0 30.27 27.5 57.68 72 77.86v-101.9a24 24 0 1 1 48 0v118.93c33.05 9.11 71.07 15.06 112 16.73V376.39a24 24 0 1 1 48 0V480c40.93-1.67 78.95-7.62 112-16.73V344.34a24 24 0 1 1 48 0v101.9c44.5-20.18 72-47.59 72-77.86V208.15c0-43.32-35.76-69.76-80.66-86.1zM256 272.24c-114.88 0-208-28.69-208-64.09s93.12-64.08 208-64.08c17.15 0 33.73.71 49.68 1.91l-72.81 47a16 16 0 0 0-4.43 22.19l8.87 13.31a16 16 0 0 0 22.19 4.44l118.64-76.52C430.09 168 464 186.84 464 208.15c0 35.4-93.13 64.09-208 64.09z\"]\n};\nvar faDrumSteelpan = {\n prefix: 'fas',\n iconName: 'drum-steelpan',\n icon: [576, 512, [], \"f56a\", \"M288 32C128.94 32 0 89.31 0 160v192c0 70.69 128.94 128 288 128s288-57.31 288-128V160c0-70.69-128.94-128-288-128zm-82.99 158.36c-4.45 16.61-14.54 30.57-28.31 40.48C100.23 217.46 48 190.78 48 160c0-30.16 50.11-56.39 124.04-70.03l25.6 44.34c9.86 17.09 12.48 36.99 7.37 56.05zM288 240c-21.08 0-41.41-1-60.89-2.7 8.06-26.13 32.15-45.3 60.89-45.3s52.83 19.17 60.89 45.3C329.41 239 309.08 240 288 240zm64-144c0 35.29-28.71 64-64 64s-64-28.71-64-64V82.96c20.4-1.88 41.8-2.96 64-2.96s43.6 1.08 64 2.96V96zm46.93 134.9c-13.81-9.91-23.94-23.9-28.4-40.54-5.11-19.06-2.49-38.96 7.38-56.04l25.65-44.42C477.72 103.5 528 129.79 528 160c0 30.83-52.4 57.54-129.07 70.9z\"]\n};\nvar faDrumstickBite = {\n prefix: 'fas',\n iconName: 'drumstick-bite',\n icon: [512, 512, [], \"f6d7\", \"M462.8 49.57a169.44 169.44 0 0 0-239.5 0C187.82 85 160.13 128 160.13 192v85.83l-40.62 40.59c-9.7 9.69-24 11.07-36.78 6a60.33 60.33 0 0 0-65 98.72C33 438.39 54.24 442.7 73.85 438.21c-4.5 19.6-.18 40.83 15.1 56.1a60.35 60.35 0 0 0 98.8-65c-5.09-12.73-3.72-27 6-36.75L234.36 352h85.89a187.87 187.87 0 0 0 61.89-10c-39.64-43.89-39.83-110.23 1.05-151.07 34.38-34.36 86.76-39.46 128.74-16.8 1.3-44.96-14.81-90.28-49.13-124.56z\"]\n};\nvar faDumbbell = {\n prefix: 'fas',\n iconName: 'dumbbell',\n icon: [640, 512, [], \"f44b\", \"M104 96H56c-13.3 0-24 10.7-24 24v104H8c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h24v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm528 128h-24V120c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v272c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h24c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM456 32h-48c-13.3 0-24 10.7-24 24v168H256V56c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v400c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h128v168c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24z\"]\n};\nvar faDumpster = {\n prefix: 'fas',\n iconName: 'dumpster',\n icon: [576, 512, [], \"f793\", \"M560 160c10.4 0 18-9.8 15.5-19.9l-24-96C549.7 37 543.3 32 536 32h-98.9l25.6 128H560zM272 32H171.5l-25.6 128H272V32zm132.5 0H304v128h126.1L404.5 32zM16 160h97.3l25.6-128H40c-7.3 0-13.7 5-15.5 12.1l-24 96C-2 150.2 5.6 160 16 160zm544 64h-20l4-32H32l4 32H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h28l20 160v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h320v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16l20-160h28c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"]\n};\nvar faDumpsterFire = {\n prefix: 'fas',\n iconName: 'dumpster-fire',\n icon: [640, 512, [], \"f794\", \"M418.7 104.1l.2-.2-14.4-72H304v128h60.8c16.2-19.3 34.2-38.2 53.9-55.8zM272 32H171.5l-25.6 128H272V32zm189.3 72.1c18.2 16.3 35.5 33.7 51.1 51.5 5.7-5.6 11.4-11.1 17.3-16.3l21.3-19 21.3 19c1.1.9 2.1 2.1 3.1 3.1-.1-.8.2-1.5 0-2.3l-24-96C549.7 37 543.3 32 536 32h-98.9l12.3 61.5 11.9 10.6zM16 160h97.3l25.6-128H40c-7.3 0-13.7 5-15.5 12.1l-24 96C-2 150.2 5.6 160 16 160zm324.6 32H32l4 32H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h28l20 160v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208.8c-30.2-33.7-48.8-77.9-48.8-126.4 0-35.9 19.9-82.9 52.6-129.6zm210.5-28.8c-14.9 13.3-28.3 27.2-40.2 41.2-19.5-25.8-43.6-52-71-76.4-70.2 62.7-120 144.3-120 193.6 0 87.5 71.6 158.4 160 158.4s160-70.9 160-158.4c.1-36.6-37-112.2-88.8-158.4zm-18.6 229.4c-14.7 10.7-32.9 17-52.5 17-49 0-88.9-33.5-88.9-88 0-27.1 16.5-51 49.4-91.9 4.7 5.6 67.1 88.1 67.1 88.1l39.8-47c2.8 4.8 5.4 9.5 7.7 14 18.6 36.7 10.8 83.6-22.6 107.8z\"]\n};\nvar faDungeon = {\n prefix: 'fas',\n iconName: 'dungeon',\n icon: [512, 512, [], \"f6d9\", \"M128.73 195.32l-82.81-51.76c-8.04-5.02-18.99-2.17-22.93 6.45A254.19 254.19 0 0 0 .54 239.28C-.05 248.37 7.59 256 16.69 256h97.13c7.96 0 14.08-6.25 15.01-14.16 1.09-9.33 3.24-18.33 6.24-26.94 2.56-7.34.25-15.46-6.34-19.58zM319.03 8C298.86 2.82 277.77 0 256 0s-42.86 2.82-63.03 8c-9.17 2.35-13.91 12.6-10.39 21.39l37.47 104.03A16.003 16.003 0 0 0 235.1 144h41.8c6.75 0 12.77-4.23 15.05-10.58l37.47-104.03c3.52-8.79-1.22-19.03-10.39-21.39zM112 288H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm77.31-283.67l-36.32-90.8c-3.53-8.83-14.13-12.99-22.42-8.31a257.308 257.308 0 0 0-71.61 59.89c-6.06 7.32-3.85 18.48 4.22 23.52l82.93 51.83c6.51 4.07 14.66 2.62 20.11-2.79 5.18-5.15 10.79-9.85 16.79-14.05 6.28-4.41 9.15-12.17 6.3-19.29zM398.18 256h97.13c9.1 0 16.74-7.63 16.15-16.72a254.135 254.135 0 0 0-22.45-89.27c-3.94-8.62-14.89-11.47-22.93-6.45l-82.81 51.76c-6.59 4.12-8.9 12.24-6.34 19.58 3.01 8.61 5.15 17.62 6.24 26.94.93 7.91 7.05 14.16 15.01 14.16zm54.85-162.89a257.308 257.308 0 0 0-71.61-59.89c-8.28-4.68-18.88-.52-22.42 8.31l-36.32 90.8c-2.85 7.12.02 14.88 6.3 19.28 6 4.2 11.61 8.9 16.79 14.05 5.44 5.41 13.6 6.86 20.11 2.79l82.93-51.83c8.07-5.03 10.29-16.19 4.22-23.51zM496 288h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zM240 177.62V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V177.62c-5.23-.89-10.52-1.62-16-1.62s-10.77.73-16 1.62zm-64 41.51V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V189.36c-12.78 7.45-23.84 17.47-32 29.77zm128-29.77V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V219.13c-8.16-12.3-19.22-22.32-32-29.77z\"]\n};\nvar faEdit = {\n prefix: 'fas',\n iconName: 'edit',\n icon: [576, 512, [], \"f044\", \"M402.6 83.2l90.2 90.2c3.8 3.8 3.8 10 0 13.8L274.4 405.6l-92.8 10.3c-12.4 1.4-22.9-9.1-21.5-21.5l10.3-92.8L388.8 83.2c3.8-3.8 10-3.8 13.8 0zm162-22.9l-48.8-48.8c-15.2-15.2-39.9-15.2-55.2 0l-35.4 35.4c-3.8 3.8-3.8 10 0 13.8l90.2 90.2c3.8 3.8 10 3.8 13.8 0l35.4-35.4c15.2-15.3 15.2-40 0-55.2zM384 346.2V448H64V128h229.8c3.2 0 6.2-1.3 8.5-3.5l40-40c7.6-7.6 2.2-20.5-8.5-20.5H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V306.2c0-10.7-12.9-16-20.5-8.5l-40 40c-2.2 2.3-3.5 5.3-3.5 8.5z\"]\n};\nvar faEgg = {\n prefix: 'fas',\n iconName: 'egg',\n icon: [384, 512, [], \"f7fb\", \"M192 0C86 0 0 214 0 320s86 192 192 192 192-86 192-192S298 0 192 0z\"]\n};\nvar faEject = {\n prefix: 'fas',\n iconName: 'eject',\n icon: [448, 512, [], \"f052\", \"M448 384v64c0 17.673-14.327 32-32 32H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h384c17.673 0 32 14.327 32 32zM48.053 320h351.886c41.651 0 63.581-49.674 35.383-80.435L259.383 47.558c-19.014-20.743-51.751-20.744-70.767 0L12.67 239.565C-15.475 270.268 6.324 320 48.053 320z\"]\n};\nvar faEllipsisH = {\n prefix: 'fas',\n iconName: 'ellipsis-h',\n icon: [512, 512, [], \"f141\", \"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"]\n};\nvar faEllipsisV = {\n prefix: 'fas',\n iconName: 'ellipsis-v',\n icon: [192, 512, [], \"f142\", \"M96 184c39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72 32.2-72 72-72zM24 80c0 39.8 32.2 72 72 72s72-32.2 72-72S135.8 8 96 8 24 40.2 24 80zm0 352c0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72-72 32.2-72 72z\"]\n};\nvar faEnvelope = {\n prefix: 'fas',\n iconName: 'envelope',\n icon: [512, 512, [], \"f0e0\", \"M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z\"]\n};\nvar faEnvelopeOpen = {\n prefix: 'fas',\n iconName: 'envelope-open',\n icon: [512, 512, [], \"f2b6\", \"M512 464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V200.724a48 48 0 0 1 18.387-37.776c24.913-19.529 45.501-35.365 164.2-121.511C199.412 29.17 232.797-.347 256 .003c23.198-.354 56.596 29.172 73.413 41.433 118.687 86.137 139.303 101.995 164.2 121.512A48 48 0 0 1 512 200.724V464zm-65.666-196.605c-2.563-3.728-7.7-4.595-11.339-1.907-22.845 16.873-55.462 40.705-105.582 77.079-16.825 12.266-50.21 41.781-73.413 41.43-23.211.344-56.559-29.143-73.413-41.43-50.114-36.37-82.734-60.204-105.582-77.079-3.639-2.688-8.776-1.821-11.339 1.907l-9.072 13.196a7.998 7.998 0 0 0 1.839 10.967c22.887 16.899 55.454 40.69 105.303 76.868 20.274 14.781 56.524 47.813 92.264 47.573 35.724.242 71.961-32.771 92.263-47.573 49.85-36.179 82.418-59.97 105.303-76.868a7.998 7.998 0 0 0 1.839-10.967l-9.071-13.196z\"]\n};\nvar faEnvelopeOpenText = {\n prefix: 'fas',\n iconName: 'envelope-open-text',\n icon: [512, 512, [], \"f658\", \"M176 216h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16zm-16 80c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16zm96 121.13c-16.42 0-32.84-5.06-46.86-15.19L0 250.86V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V250.86L302.86 401.94c-14.02 10.12-30.44 15.19-46.86 15.19zm237.61-254.18c-8.85-6.94-17.24-13.47-29.61-22.81V96c0-26.51-21.49-48-48-48h-77.55c-3.04-2.2-5.87-4.26-9.04-6.56C312.6 29.17 279.2-.35 256 0c-23.2-.35-56.59 29.17-73.41 41.44-3.17 2.3-6 4.36-9.04 6.56H96c-26.51 0-48 21.49-48 48v44.14c-12.37 9.33-20.76 15.87-29.61 22.81A47.995 47.995 0 0 0 0 200.72v10.65l96 69.35V96h320v184.72l96-69.35v-10.65c0-14.74-6.78-28.67-18.39-37.77z\"]\n};\nvar faEnvelopeSquare = {\n prefix: 'fas',\n iconName: 'envelope-square',\n icon: [448, 512, [], \"f199\", \"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM178.117 262.104C87.429 196.287 88.353 196.121 64 177.167V152c0-13.255 10.745-24 24-24h272c13.255 0 24 10.745 24 24v25.167c-24.371 18.969-23.434 19.124-114.117 84.938-10.5 7.655-31.392 26.12-45.883 25.894-14.503.218-35.367-18.227-45.883-25.895zM384 217.775V360c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V217.775c13.958 10.794 33.329 25.236 95.303 70.214 14.162 10.341 37.975 32.145 64.694 32.01 26.887.134 51.037-22.041 64.72-32.025 61.958-44.965 81.325-59.406 95.283-70.199z\"]\n};\nvar faEquals = {\n prefix: 'fas',\n iconName: 'equals',\n icon: [448, 512, [], \"f52c\", \"M416 304H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32zm0-192H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"]\n};\nvar faEraser = {\n prefix: 'fas',\n iconName: 'eraser',\n icon: [512, 512, [], \"f12d\", \"M497.941 273.941c18.745-18.745 18.745-49.137 0-67.882l-160-160c-18.745-18.745-49.136-18.746-67.883 0l-256 256c-18.745 18.745-18.745 49.137 0 67.882l96 96A48.004 48.004 0 0 0 144 480h356c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H355.883l142.058-142.059zm-302.627-62.627l137.373 137.373L265.373 416H150.628l-80-80 124.686-124.686z\"]\n};\nvar faEthernet = {\n prefix: 'fas',\n iconName: 'ethernet',\n icon: [512, 512, [], \"f796\", \"M496 192h-48v-48c0-8.8-7.2-16-16-16h-48V80c0-8.8-7.2-16-16-16H144c-8.8 0-16 7.2-16 16v48H80c-8.8 0-16 7.2-16 16v48H16c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16h80V320h32v128h64V320h32v128h64V320h32v128h64V320h32v128h80c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16z\"]\n};\nvar faEuroSign = {\n prefix: 'fas',\n iconName: 'euro-sign',\n icon: [320, 512, [], \"f153\", \"M310.706 413.765c-1.314-6.63-7.835-10.872-14.424-9.369-10.692 2.439-27.422 5.413-45.426 5.413-56.763 0-101.929-34.79-121.461-85.449h113.689a12 12 0 0 0 11.708-9.369l6.373-28.36c1.686-7.502-4.019-14.631-11.708-14.631H115.22c-1.21-14.328-1.414-28.287.137-42.245H261.95a12 12 0 0 0 11.723-9.434l6.512-29.755c1.638-7.484-4.061-14.566-11.723-14.566H130.184c20.633-44.991 62.69-75.03 117.619-75.03 14.486 0 28.564 2.25 37.851 4.145 6.216 1.268 12.347-2.498 14.002-8.623l11.991-44.368c1.822-6.741-2.465-13.616-9.326-14.917C290.217 34.912 270.71 32 249.635 32 152.451 32 74.03 92.252 45.075 176H12c-6.627 0-12 5.373-12 12v29.755c0 6.627 5.373 12 12 12h21.569c-1.009 13.607-1.181 29.287-.181 42.245H12c-6.627 0-12 5.373-12 12v28.36c0 6.627 5.373 12 12 12h30.114C67.139 414.692 145.264 480 249.635 480c26.301 0 48.562-4.544 61.101-7.788 6.167-1.595 10.027-7.708 8.788-13.957l-8.818-44.49z\"]\n};\nvar faExchangeAlt = {\n prefix: 'fas',\n iconName: 'exchange-alt',\n icon: [512, 512, [], \"f362\", \"M0 168v-16c0-13.255 10.745-24 24-24h360V80c0-21.367 25.899-32.042 40.971-16.971l80 80c9.372 9.373 9.372 24.569 0 33.941l-80 80C409.956 271.982 384 261.456 384 240v-48H24c-13.255 0-24-10.745-24-24zm488 152H128v-48c0-21.314-25.862-32.08-40.971-16.971l-80 80c-9.372 9.373-9.372 24.569 0 33.941l80 80C102.057 463.997 128 453.437 128 432v-48h360c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z\"]\n};\nvar faExclamation = {\n prefix: 'fas',\n iconName: 'exclamation',\n icon: [192, 512, [], \"f12a\", \"M176 432c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zM25.26 25.199l13.6 272C39.499 309.972 50.041 320 62.83 320h66.34c12.789 0 23.331-10.028 23.97-22.801l13.6-272C167.425 11.49 156.496 0 142.77 0H49.23C35.504 0 24.575 11.49 25.26 25.199z\"]\n};\nvar faExclamationCircle = {\n prefix: 'fas',\n iconName: 'exclamation-circle',\n icon: [512, 512, [], \"f06a\", \"M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z\"]\n};\nvar faExclamationTriangle = {\n prefix: 'fas',\n iconName: 'exclamation-triangle',\n icon: [576, 512, [], \"f071\", \"M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z\"]\n};\nvar faExpand = {\n prefix: 'fas',\n iconName: 'expand',\n icon: [448, 512, [], \"f065\", \"M0 180V56c0-13.3 10.7-24 24-24h124c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H64v84c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12zM288 44v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V56c0-13.3-10.7-24-24-24H300c-6.6 0-12 5.4-12 12zm148 276h-40c-6.6 0-12 5.4-12 12v84h-84c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24V332c0-6.6-5.4-12-12-12zM160 468v-40c0-6.6-5.4-12-12-12H64v-84c0-6.6-5.4-12-12-12H12c-6.6 0-12 5.4-12 12v124c0 13.3 10.7 24 24 24h124c6.6 0 12-5.4 12-12z\"]\n};\nvar faExpandAlt = {\n prefix: 'fas',\n iconName: 'expand-alt',\n icon: [448, 512, [], \"f424\", \"M212.686 315.314L120 408l32.922 31.029c15.12 15.12 4.412 40.971-16.97 40.971h-112C10.697 480 0 469.255 0 456V344c0-21.382 25.803-32.09 40.922-16.971L72 360l92.686-92.686c6.248-6.248 16.379-6.248 22.627 0l25.373 25.373c6.249 6.248 6.249 16.378 0 22.627zm22.628-118.628L328 104l-32.922-31.029C279.958 57.851 290.666 32 312.048 32h112C437.303 32 448 42.745 448 56v112c0 21.382-25.803 32.09-40.922 16.971L376 152l-92.686 92.686c-6.248 6.248-16.379 6.248-22.627 0l-25.373-25.373c-6.249-6.248-6.249-16.378 0-22.627z\"]\n};\nvar faExpandArrowsAlt = {\n prefix: 'fas',\n iconName: 'expand-arrows-alt',\n icon: [448, 512, [], \"f31e\", \"M448 344v112a23.94 23.94 0 0 1-24 24H312c-21.39 0-32.09-25.9-17-41l36.2-36.2L224 295.6 116.77 402.9 153 439c15.09 15.1 4.39 41-17 41H24a23.94 23.94 0 0 1-24-24V344c0-21.4 25.89-32.1 41-17l36.19 36.2L184.46 256 77.18 148.7 41 185c-15.1 15.1-41 4.4-41-17V56a23.94 23.94 0 0 1 24-24h112c21.39 0 32.09 25.9 17 41l-36.2 36.2L224 216.4l107.23-107.3L295 73c-15.09-15.1-4.39-41 17-41h112a23.94 23.94 0 0 1 24 24v112c0 21.4-25.89 32.1-41 17l-36.19-36.2L263.54 256l107.28 107.3L407 327.1c15.1-15.2 41-4.5 41 16.9z\"]\n};\nvar faExternalLinkAlt = {\n prefix: 'fas',\n iconName: 'external-link-alt',\n icon: [512, 512, [], \"f35d\", \"M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z\"]\n};\nvar faExternalLinkSquareAlt = {\n prefix: 'fas',\n iconName: 'external-link-square-alt',\n icon: [448, 512, [], \"f360\", \"M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-88 16H248.029c-21.313 0-32.08 25.861-16.971 40.971l31.984 31.987L67.515 364.485c-4.686 4.686-4.686 12.284 0 16.971l31.029 31.029c4.687 4.686 12.285 4.686 16.971 0l195.526-195.526 31.988 31.991C358.058 263.977 384 253.425 384 231.979V120c0-13.255-10.745-24-24-24z\"]\n};\nvar faEye = {\n prefix: 'fas',\n iconName: 'eye',\n icon: [576, 512, [], \"f06e\", \"M572.52 241.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400a144 144 0 1 1 144-144 143.93 143.93 0 0 1-144 144zm0-240a95.31 95.31 0 0 0-25.31 3.79 47.85 47.85 0 0 1-66.9 66.9A95.78 95.78 0 1 0 288 160z\"]\n};\nvar faEyeDropper = {\n prefix: 'fas',\n iconName: 'eye-dropper',\n icon: [512, 512, [], \"f1fb\", \"M50.75 333.25c-12 12-18.75 28.28-18.75 45.26V424L0 480l32 32 56-32h45.49c16.97 0 33.25-6.74 45.25-18.74l126.64-126.62-128-128L50.75 333.25zM483.88 28.12c-37.47-37.5-98.28-37.5-135.75 0l-77.09 77.09-13.1-13.1c-9.44-9.44-24.65-9.31-33.94 0l-40.97 40.97c-9.37 9.37-9.37 24.57 0 33.94l161.94 161.94c9.44 9.44 24.65 9.31 33.94 0L419.88 288c9.37-9.37 9.37-24.57 0-33.94l-13.1-13.1 77.09-77.09c37.51-37.48 37.51-98.26.01-135.75z\"]\n};\nvar faEyeSlash = {\n prefix: 'fas',\n iconName: 'eye-slash',\n icon: [640, 512, [], \"f070\", \"M320 400c-75.85 0-137.25-58.71-142.9-133.11L72.2 185.82c-13.79 17.3-26.48 35.59-36.72 55.59a32.35 32.35 0 0 0 0 29.19C89.71 376.41 197.07 448 320 448c26.91 0 52.87-4 77.89-10.46L346 397.39a144.13 144.13 0 0 1-26 2.61zm313.82 58.1l-110.55-85.44a331.25 331.25 0 0 0 81.25-102.07 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64a308.15 308.15 0 0 0-147.32 37.7L45.46 3.37A16 16 0 0 0 23 6.18L3.37 31.45A16 16 0 0 0 6.18 53.9l588.36 454.73a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zm-183.72-142l-39.3-30.38A94.75 94.75 0 0 0 416 256a94.76 94.76 0 0 0-121.31-92.21A47.65 47.65 0 0 1 304 192a46.64 46.64 0 0 1-1.54 10l-73.61-56.89A142.31 142.31 0 0 1 320 112a143.92 143.92 0 0 1 144 144c0 21.63-5.29 41.79-13.9 60.11z\"]\n};\nvar faFan = {\n prefix: 'fas',\n iconName: 'fan',\n icon: [512, 512, [], \"f863\", \"M352.57 128c-28.09 0-54.09 4.52-77.06 12.86l12.41-123.11C289 7.31 279.81-1.18 269.33.13 189.63 10.13 128 77.64 128 159.43c0 28.09 4.52 54.09 12.86 77.06L17.75 224.08C7.31 223-1.18 232.19.13 242.67c10 79.7 77.51 141.33 159.3 141.33 28.09 0 54.09-4.52 77.06-12.86l-12.41 123.11c-1.05 10.43 8.11 18.93 18.59 17.62 79.7-10 141.33-77.51 141.33-159.3 0-28.09-4.52-54.09-12.86-77.06l123.11 12.41c10.44 1.05 18.93-8.11 17.62-18.59-10-79.7-77.51-141.33-159.3-141.33zM256 288a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"]\n};\nvar faFastBackward = {\n prefix: 'fas',\n iconName: 'fast-backward',\n icon: [512, 512, [], \"f049\", \"M0 436V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v151.9L235.5 71.4C256.1 54.3 288 68.6 288 96v131.9L459.5 71.4C480.1 54.3 512 68.6 512 96v320c0 27.4-31.9 41.7-52.5 24.6L288 285.3V416c0 27.4-31.9 41.7-52.5 24.6L64 285.3V436c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12z\"]\n};\nvar faFastForward = {\n prefix: 'fas',\n iconName: 'fast-forward',\n icon: [512, 512, [], \"f050\", \"M512 76v360c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V284.1L276.5 440.6c-20.6 17.2-52.5 2.8-52.5-24.6V284.1L52.5 440.6C31.9 457.8 0 443.4 0 416V96c0-27.4 31.9-41.7 52.5-24.6L224 226.8V96c0-27.4 31.9-41.7 52.5-24.6L448 226.8V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12z\"]\n};\nvar faFaucet = {\n prefix: 'fas',\n iconName: 'faucet',\n icon: [512, 512, [], \"e005\", \"M352,256H313.39c-15.71-13.44-35.46-23.07-57.39-28V180.44l-32-3.38-32,3.38V228c-21.93,5-41.68,14.6-57.39,28H16A16,16,0,0,0,0,272v96a16,16,0,0,0,16,16h92.79C129.38,421.73,173,448,224,448s94.62-26.27,115.21-64H352a32,32,0,0,1,32,32,32,32,0,0,0,32,32h64a32,32,0,0,0,32-32A160,160,0,0,0,352,256ZM81.59,159.91l142.41-15,142.41,15c9.42,1,17.59-6.81,17.59-16.8V112.89c0-10-8.17-17.8-17.59-16.81L256,107.74V80a16,16,0,0,0-16-16H208a16,16,0,0,0-16,16v27.74L81.59,96.08C72.17,95.09,64,102.9,64,112.89v30.22C64,153.1,72.17,160.91,81.59,159.91Z\"]\n};\nvar faFax = {\n prefix: 'fas',\n iconName: 'fax',\n icon: [512, 512, [], \"f1ac\", \"M480 160V77.25a32 32 0 0 0-9.38-22.63L425.37 9.37A32 32 0 0 0 402.75 0H160a32 32 0 0 0-32 32v448a32 32 0 0 0 32 32h320a32 32 0 0 0 32-32V192a32 32 0 0 0-32-32zM288 432a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm128 128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-112H192V64h160v48a16 16 0 0 0 16 16h48zM64 128H32a32 32 0 0 0-32 32v320a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32V160a32 32 0 0 0-32-32z\"]\n};\nvar faFeather = {\n prefix: 'fas',\n iconName: 'feather',\n icon: [512, 512, [], \"f52d\", \"M467.14 44.84c-62.55-62.48-161.67-64.78-252.28 25.73-78.61 78.52-60.98 60.92-85.75 85.66-60.46 60.39-70.39 150.83-63.64 211.17l178.44-178.25c6.26-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.6 9.37 33.98 0l66.1-66.03C159.42 454.65 279 457.11 353.95 384h-98.19l147.57-49.14c49.99-49.93 36.38-36.18 46.31-46.86h-97.78l131.54-43.8c45.44-74.46 34.31-148.84-16.26-199.36z\"]\n};\nvar faFeatherAlt = {\n prefix: 'fas',\n iconName: 'feather-alt',\n icon: [512, 512, [], \"f56b\", \"M512 0C460.22 3.56 96.44 38.2 71.01 287.61c-3.09 26.66-4.84 53.44-5.99 80.24l178.87-178.69c6.25-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.59 9.37 33.98 0l57.13-57.07c42.09-.14 84.15-2.53 125.96-7.36 53.48-5.44 97.02-26.47 132.58-56.54H255.74l146.79-48.88c11.25-14.89 21.37-30.71 30.45-47.12h-81.14l106.54-53.21C500.29 132.86 510.19 26.26 512 0z\"]\n};\nvar faFemale = {\n prefix: 'fas',\n iconName: 'female',\n icon: [256, 512, [], \"f182\", \"M128 0c35.346 0 64 28.654 64 64s-28.654 64-64 64c-35.346 0-64-28.654-64-64S92.654 0 128 0m119.283 354.179l-48-192A24 24 0 0 0 176 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H80a24 24 0 0 0-23.283 18.179l-48 192C4.935 369.305 16.383 384 32 384h56v104c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V384h56c15.591 0 27.071-14.671 23.283-29.821z\"]\n};\nvar faFighterJet = {\n prefix: 'fas',\n iconName: 'fighter-jet',\n icon: [640, 512, [], \"f0fb\", \"M544 224l-128-16-48-16h-24L227.158 44h39.509C278.333 44 288 41.375 288 38s-9.667-6-21.333-6H152v12h16v164h-48l-66.667-80H18.667L8 138.667V208h8v16h48v2.666l-64 8v42.667l64 8V288H16v16H8v69.333L18.667 384h34.667L120 304h48v164h-16v12h114.667c11.667 0 21.333-2.625 21.333-6s-9.667-6-21.333-6h-39.509L344 320h24l48-16 128-16c96-21.333 96-26.583 96-32 0-5.417 0-10.667-96-32z\"]\n};\nvar faFile = {\n prefix: 'fas',\n iconName: 'file',\n icon: [384, 512, [], \"f15b\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm160-14.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"]\n};\nvar faFileAlt = {\n prefix: 'fas',\n iconName: 'file-alt',\n icon: [384, 512, [], \"f15c\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 236c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-64c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-72v8c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm96-114.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"]\n};\nvar faFileArchive = {\n prefix: 'fas',\n iconName: 'file-archive',\n icon: [384, 512, [], \"f1c6\", \"M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zM128.4 336c-17.9 0-32.4 12.1-32.4 27 0 15 14.6 27 32.5 27s32.4-12.1 32.4-27-14.6-27-32.5-27zM224 136V0h-63.6v32h-32V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM95.9 32h32v32h-32zm32.3 384c-33.2 0-58-30.4-51.4-62.9L96.4 256v-32h32v-32h-32v-32h32v-32h-32V96h32V64h32v32h-32v32h32v32h-32v32h32v32h-32v32h22.1c5.7 0 10.7 4.1 11.8 9.7l17.3 87.7c6.4 32.4-18.4 62.6-51.4 62.6z\"]\n};\nvar faFileAudio = {\n prefix: 'fas',\n iconName: 'file-audio',\n icon: [384, 512, [], \"f1c7\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-64 268c0 10.7-12.9 16-20.5 8.5L104 376H76c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h28l35.5-36.5c7.6-7.6 20.5-2.2 20.5 8.5v136zm33.2-47.6c9.1-9.3 9.1-24.1 0-33.4-22.1-22.8 12.2-56.2 34.4-33.5 27.2 27.9 27.2 72.4 0 100.4-21.8 22.3-56.9-10.4-34.4-33.5zm86-117.1c54.4 55.9 54.4 144.8 0 200.8-21.8 22.4-57-10.3-34.4-33.5 36.2-37.2 36.3-96.5 0-133.8-22.1-22.8 12.3-56.3 34.4-33.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"]\n};\nvar faFileCode = {\n prefix: 'fas',\n iconName: 'file-code',\n icon: [384, 512, [], \"f1c9\", \"M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zM123.206 400.505a5.4 5.4 0 0 1-7.633.246l-64.866-60.812a5.4 5.4 0 0 1 0-7.879l64.866-60.812a5.4 5.4 0 0 1 7.633.246l19.579 20.885a5.4 5.4 0 0 1-.372 7.747L101.65 336l40.763 35.874a5.4 5.4 0 0 1 .372 7.747l-19.579 20.884zm51.295 50.479l-27.453-7.97a5.402 5.402 0 0 1-3.681-6.692l61.44-211.626a5.402 5.402 0 0 1 6.692-3.681l27.452 7.97a5.4 5.4 0 0 1 3.68 6.692l-61.44 211.626a5.397 5.397 0 0 1-6.69 3.681zm160.792-111.045l-64.866 60.812a5.4 5.4 0 0 1-7.633-.246l-19.58-20.885a5.4 5.4 0 0 1 .372-7.747L284.35 336l-40.763-35.874a5.4 5.4 0 0 1-.372-7.747l19.58-20.885a5.4 5.4 0 0 1 7.633-.246l64.866 60.812a5.4 5.4 0 0 1-.001 7.879z\"]\n};\nvar faFileContract = {\n prefix: 'fas',\n iconName: 'file-contract',\n icon: [384, 512, [], \"f56c\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm192.81 248H304c8.84 0 16 7.16 16 16s-7.16 16-16 16h-47.19c-16.45 0-31.27-9.14-38.64-23.86-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34a15.986 15.986 0 0 1-14.31 8.84c-.38 0-.75-.02-1.14-.05-6.45-.45-12-4.75-14.03-10.89L144 354.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.77-16.19 54.05-9.7 66 14.16 2.02 4.06 5.96 6.5 10.16 6.5zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"]\n};\nvar faFileCsv = {\n prefix: 'fas',\n iconName: 'file-csv',\n icon: [384, 512, [], \"f6dd\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-96 144c0 4.42-3.58 8-8 8h-8c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h8c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-8c-26.51 0-48-21.49-48-48v-32c0-26.51 21.49-48 48-48h8c4.42 0 8 3.58 8 8v16zm44.27 104H160c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h12.27c5.95 0 10.41-3.5 10.41-6.62 0-1.3-.75-2.66-2.12-3.84l-21.89-18.77c-8.47-7.22-13.33-17.48-13.33-28.14 0-21.3 19.02-38.62 42.41-38.62H200c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-12.27c-5.95 0-10.41 3.5-10.41 6.62 0 1.3.75 2.66 2.12 3.84l21.89 18.77c8.47 7.22 13.33 17.48 13.33 28.14.01 21.29-19 38.62-42.39 38.62zM256 264v20.8c0 20.27 5.7 40.17 16 56.88 10.3-16.7 16-36.61 16-56.88V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v20.8c0 35.48-12.88 68.89-36.28 94.09-3.02 3.25-7.27 5.11-11.72 5.11s-8.7-1.86-11.72-5.11c-23.4-25.2-36.28-58.61-36.28-94.09V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8zm121-159L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"]\n};\nvar faFileDownload = {\n prefix: 'fas',\n iconName: 'file-download',\n icon: [384, 512, [], \"f56d\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm76.45 211.36l-96.42 95.7c-6.65 6.61-17.39 6.61-24.04 0l-96.42-95.7C73.42 337.29 80.54 320 94.82 320H160v-80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v80h65.18c14.28 0 21.4 17.29 11.27 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"]\n};\nvar faFileExcel = {\n prefix: 'fas',\n iconName: 'file-excel',\n icon: [384, 512, [], \"f1c3\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm60.1 106.5L224 336l60.1 93.5c5.1 8-.6 18.5-10.1 18.5h-34.9c-4.4 0-8.5-2.4-10.6-6.3C208.9 405.5 192 373 192 373c-6.4 14.8-10 20-36.6 68.8-2.1 3.9-6.1 6.3-10.5 6.3H110c-9.5 0-15.2-10.5-10.1-18.5l60.3-93.5-60.3-93.5c-5.2-8 .6-18.5 10.1-18.5h34.8c4.4 0 8.5 2.4 10.6 6.3 26.1 48.8 20 33.6 36.6 68.5 0 0 6.1-11.7 36.6-68.5 2.1-3.9 6.2-6.3 10.6-6.3H274c9.5-.1 15.2 10.4 10.1 18.4zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"]\n};\nvar faFileExport = {\n prefix: 'fas',\n iconName: 'file-export',\n icon: [576, 512, [], \"f56e\", \"M384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128zM571 308l-95.7-96.4c-10.1-10.1-27.4-3-27.4 11.3V288h-64v64h64v65.2c0 14.3 17.3 21.4 27.4 11.3L571 332c6.6-6.6 6.6-17.4 0-24zm-379 28v-32c0-8.8 7.2-16 16-16h176V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V352H208c-8.8 0-16-7.2-16-16z\"]\n};\nvar faFileImage = {\n prefix: 'fas',\n iconName: 'file-image',\n icon: [384, 512, [], \"f1c5\", \"M384 121.941V128H256V0h6.059a24 24 0 0 1 16.97 7.029l97.941 97.941a24.002 24.002 0 0 1 7.03 16.971zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zm-135.455 16c26.51 0 48 21.49 48 48s-21.49 48-48 48-48-21.49-48-48 21.491-48 48-48zm208 240h-256l.485-48.485L104.545 328c4.686-4.686 11.799-4.201 16.485.485L160.545 368 264.06 264.485c4.686-4.686 12.284-4.686 16.971 0L320.545 304v112z\"]\n};\nvar faFileImport = {\n prefix: 'fas',\n iconName: 'file-import',\n icon: [512, 512, [], \"f56f\", \"M16 288c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h112v-64zm489-183L407.1 7c-4.5-4.5-10.6-7-17-7H384v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H152c-13.3 0-24 10.7-24 24v264h128v-65.2c0-14.3 17.3-21.4 27.4-11.3L379 308c6.6 6.7 6.6 17.4 0 24l-95.7 96.4c-10.1 10.1-27.4 3-27.4-11.3V352H128v136c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H376c-13.2 0-24-10.8-24-24z\"]\n};\nvar faFileInvoice = {\n prefix: 'fas',\n iconName: 'file-invoice',\n icon: [384, 512, [], \"f570\", \"M288 256H96v64h192v-64zm89-151L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm256 304c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-200v96c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-96c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16z\"]\n};\nvar faFileInvoiceDollar = {\n prefix: 'fas',\n iconName: 'file-invoice-dollar',\n icon: [384, 512, [], \"f571\", \"M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 80v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8zm144 263.88V440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-24.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V232c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v24.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07z\"]\n};\nvar faFileMedical = {\n prefix: 'fas',\n iconName: 'file-medical',\n icon: [384, 512, [], \"f477\", \"M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 160v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8z\"]\n};\nvar faFileMedicalAlt = {\n prefix: 'fas',\n iconName: 'file-medical-alt',\n icon: [448, 512, [], \"f478\", \"M288 136V0H88C74.7 0 64 10.7 64 24v232H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h140.9c3 0 5.8 1.7 7.2 4.4l19.9 39.8 56.8-113.7c2.9-5.9 11.4-5.9 14.3 0l34.7 69.5H352c8.8 0 16 7.2 16 16s-7.2 16-16 16h-89.9L240 275.8l-56.8 113.7c-2.9 5.9-11.4 5.9-14.3 0L134.1 320H64v168c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H312c-13.2 0-24-10.8-24-24zm153-31L343.1 7c-4.5-4.5-10.6-7-17-7H320v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"]\n};\nvar faFilePdf = {\n prefix: 'fas',\n iconName: 'file-pdf',\n icon: [384, 512, [], \"f1c1\", \"M181.9 256.1c-5-16-4.9-46.9-2-46.9 8.4 0 7.6 36.9 2 46.9zm-1.7 47.2c-7.7 20.2-17.3 43.3-28.4 62.7 18.3-7 39-17.2 62.9-21.9-12.7-9.6-24.9-23.4-34.5-40.8zM86.1 428.1c0 .8 13.2-5.4 34.9-40.2-6.7 6.3-29.1 24.5-34.9 40.2zM248 160h136v328c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V24C0 10.7 10.7 0 24 0h200v136c0 13.2 10.8 24 24 24zm-8 171.8c-20-12.2-33.3-29-42.7-53.8 4.5-18.5 11.6-46.6 6.2-64.2-4.7-29.4-42.4-26.5-47.8-6.8-5 18.3-.4 44.1 8.1 77-11.6 27.6-28.7 64.6-40.8 85.8-.1 0-.1.1-.2.1-27.1 13.9-73.6 44.5-54.5 68 5.6 6.9 16 10 21.5 10 17.9 0 35.7-18 61.1-61.8 25.8-8.5 54.1-19.1 79-23.2 21.7 11.8 47.1 19.5 64 19.5 29.2 0 31.2-32 19.7-43.4-13.9-13.6-54.3-9.7-73.6-7.2zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-74.1 255.3c4.1-2.7-2.5-11.9-42.8-9 37.1 15.8 42.8 9 42.8 9z\"]\n};\nvar faFilePowerpoint = {\n prefix: 'fas',\n iconName: 'file-powerpoint',\n icon: [384, 512, [], \"f1c4\", \"M193.7 271.2c8.8 0 15.5 2.7 20.3 8.1 9.6 10.9 9.8 32.7-.2 44.1-4.9 5.6-11.9 8.5-21.1 8.5h-26.9v-60.7h27.9zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm53 165.2c0 90.3-88.8 77.6-111.1 77.6V436c0 6.6-5.4 12-12 12h-30.8c-6.6 0-12-5.4-12-12V236.2c0-6.6 5.4-12 12-12h81c44.5 0 72.9 32.8 72.9 77z\"]\n};\nvar faFilePrescription = {\n prefix: 'fas',\n iconName: 'file-prescription',\n icon: [384, 512, [], \"f572\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm68.53 179.48l11.31 11.31c6.25 6.25 6.25 16.38 0 22.63l-29.9 29.9L304 409.38c6.25 6.25 6.25 16.38 0 22.63l-11.31 11.31c-6.25 6.25-16.38 6.25-22.63 0L240 413.25l-30.06 30.06c-6.25 6.25-16.38 6.25-22.63 0L176 432c-6.25-6.25-6.25-16.38 0-22.63l30.06-30.06L146.74 320H128v48c0 8.84-7.16 16-16 16H96c-8.84 0-16-7.16-16-16V208c0-8.84 7.16-16 16-16h80c35.35 0 64 28.65 64 64 0 24.22-13.62 45.05-33.46 55.92L240 345.38l29.9-29.9c6.25-6.25 16.38-6.25 22.63 0zM176 272h-48v-32h48c8.82 0 16 7.18 16 16s-7.18 16-16 16zm208-150.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"]\n};\nvar faFileSignature = {\n prefix: 'fas',\n iconName: 'file-signature',\n icon: [576, 512, [], \"f573\", \"M218.17 424.14c-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34c-6.37 12.78-25.03 11.37-29.48-2.09L144 386.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.75-16.19 54.06-9.7 66 14.16 1.89 3.78 5.49 5.95 9.36 6.26v-82.12l128-127.09V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24v-40l-128-.11c-16.12-.31-30.58-9.28-37.83-23.75zM384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1zm-96 225.06V416h68.99l161.68-162.78-67.88-67.88L288 346.96zm280.54-179.63l-31.87-31.87c-9.94-9.94-26.07-9.94-36.01 0l-27.25 27.25 67.88 67.88 27.25-27.25c9.95-9.94 9.95-26.07 0-36.01z\"]\n};\nvar faFileUpload = {\n prefix: 'fas',\n iconName: 'file-upload',\n icon: [384, 512, [], \"f574\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm65.18 216.01H224v80c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-80H94.82c-14.28 0-21.41-17.29-11.27-27.36l96.42-95.7c6.65-6.61 17.39-6.61 24.04 0l96.42 95.7c10.15 10.07 3.03 27.36-11.25 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"]\n};\nvar faFileVideo = {\n prefix: 'fas',\n iconName: 'file-video',\n icon: [384, 512, [], \"f1c8\", \"M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM224 136V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248c-13.2 0-24-10.8-24-24zm96 144.016v111.963c0 21.445-25.943 31.998-40.971 16.971L224 353.941V392c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V280c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v38.059l55.029-55.013c15.011-15.01 40.971-4.491 40.971 16.97z\"]\n};\nvar faFileWord = {\n prefix: 'fas',\n iconName: 'file-word',\n icon: [384, 512, [], \"f1c2\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm57.1 120H305c7.7 0 13.4 7.1 11.7 14.7l-38 168c-1.2 5.5-6.1 9.3-11.7 9.3h-38c-5.5 0-10.3-3.8-11.6-9.1-25.8-103.5-20.8-81.2-25.6-110.5h-.5c-1.1 14.3-2.4 17.4-25.6 110.5-1.3 5.3-6.1 9.1-11.6 9.1H117c-5.6 0-10.5-3.9-11.7-9.4l-37.8-168c-1.7-7.5 4-14.6 11.7-14.6h24.5c5.7 0 10.7 4 11.8 9.7 15.6 78 20.1 109.5 21 122.2 1.6-10.2 7.3-32.7 29.4-122.7 1.3-5.4 6.1-9.1 11.7-9.1h29.1c5.6 0 10.4 3.8 11.7 9.2 24 100.4 28.8 124 29.6 129.4-.2-11.2-2.6-17.8 21.6-129.2 1-5.6 5.9-9.5 11.5-9.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"]\n};\nvar faFill = {\n prefix: 'fas',\n iconName: 'fill',\n icon: [512, 512, [], \"f575\", \"M502.63 217.06L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.77c-6.24-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.63l86.19 86.18-94.76 94.76c-37.49 37.49-37.49 98.26 0 135.75l117.19 117.19c18.75 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.88-28.12l221.57-221.57c12.49-12.5 12.49-32.76 0-45.26zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.61 58.6c12.49 12.49 32.75 12.49 45.24 0 12.49-12.49 12.49-32.75 0-45.24l-58.61-58.6 58.95-58.95 162.45 162.44-48.35 48.34z\"]\n};\nvar faFillDrip = {\n prefix: 'fas',\n iconName: 'fill-drip',\n icon: [576, 512, [], \"f576\", \"M512 320s-64 92.65-64 128c0 35.35 28.66 64 64 64s64-28.65 64-64-64-128-64-128zm-9.37-102.94L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.76c-6.25-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.62l86.19 86.18-94.76 94.76c-37.49 37.48-37.49 98.26 0 135.75l117.19 117.19c18.74 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.87-28.12l221.57-221.57c12.5-12.5 12.5-32.75.01-45.25zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.6 58.6c12.49 12.49 32.75 12.49 45.24 0s12.49-32.75 0-45.24l-58.6-58.6 58.95-58.95 162.44 162.44-48.34 48.34z\"]\n};\nvar faFilm = {\n prefix: 'fas',\n iconName: 'film',\n icon: [512, 512, [], \"f008\", \"M488 64h-8v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V64H96v20c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12V64h-8C10.7 64 0 74.7 0 88v336c0 13.3 10.7 24 24 24h8v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h320v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h8c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24zM96 372c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm272 208c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm0-168c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm112 152c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z\"]\n};\nvar faFilter = {\n prefix: 'fas',\n iconName: 'filter',\n icon: [512, 512, [], \"f0b0\", \"M487.976 0H24.028C2.71 0-8.047 25.866 7.058 40.971L192 225.941V432c0 7.831 3.821 15.17 10.237 19.662l80 55.98C298.02 518.69 320 507.493 320 487.98V225.941l184.947-184.97C520.021 25.896 509.338 0 487.976 0z\"]\n};\nvar faFingerprint = {\n prefix: 'fas',\n iconName: 'fingerprint',\n icon: [512, 512, [], \"f577\", \"M256.12 245.96c-13.25 0-24 10.74-24 24 1.14 72.25-8.14 141.9-27.7 211.55-2.73 9.72 2.15 30.49 23.12 30.49 10.48 0 20.11-6.92 23.09-17.52 13.53-47.91 31.04-125.41 29.48-224.52.01-13.25-10.73-24-23.99-24zm-.86-81.73C194 164.16 151.25 211.3 152.1 265.32c.75 47.94-3.75 95.91-13.37 142.55-2.69 12.98 5.67 25.69 18.64 28.36 13.05 2.67 25.67-5.66 28.36-18.64 10.34-50.09 15.17-101.58 14.37-153.02-.41-25.95 19.92-52.49 54.45-52.34 31.31.47 57.15 25.34 57.62 55.47.77 48.05-2.81 96.33-10.61 143.55-2.17 13.06 6.69 25.42 19.76 27.58 19.97 3.33 26.81-15.1 27.58-19.77 8.28-50.03 12.06-101.21 11.27-152.11-.88-55.8-47.94-101.88-104.91-102.72zm-110.69-19.78c-10.3-8.34-25.37-6.8-33.76 3.48-25.62 31.5-39.39 71.28-38.75 112 .59 37.58-2.47 75.27-9.11 112.05-2.34 13.05 6.31 25.53 19.36 27.89 20.11 3.5 27.07-14.81 27.89-19.36 7.19-39.84 10.5-80.66 9.86-121.33-.47-29.88 9.2-57.88 28-80.97 8.35-10.28 6.79-25.39-3.49-33.76zm109.47-62.33c-15.41-.41-30.87 1.44-45.78 4.97-12.89 3.06-20.87 15.98-17.83 28.89 3.06 12.89 16 20.83 28.89 17.83 11.05-2.61 22.47-3.77 34-3.69 75.43 1.13 137.73 61.5 138.88 134.58.59 37.88-1.28 76.11-5.58 113.63-1.5 13.17 7.95 25.08 21.11 26.58 16.72 1.95 25.51-11.88 26.58-21.11a929.06 929.06 0 0 0 5.89-119.85c-1.56-98.75-85.07-180.33-186.16-181.83zm252.07 121.45c-2.86-12.92-15.51-21.2-28.61-18.27-12.94 2.86-21.12 15.66-18.26 28.61 4.71 21.41 4.91 37.41 4.7 61.6-.11 13.27 10.55 24.09 23.8 24.2h.2c13.17 0 23.89-10.61 24-23.8.18-22.18.4-44.11-5.83-72.34zm-40.12-90.72C417.29 43.46 337.6 1.29 252.81.02 183.02-.82 118.47 24.91 70.46 72.94 24.09 119.37-.9 181.04.14 246.65l-.12 21.47c-.39 13.25 10.03 24.31 23.28 24.69.23.02.48.02.72.02 12.92 0 23.59-10.3 23.97-23.3l.16-23.64c-.83-52.5 19.16-101.86 56.28-139 38.76-38.8 91.34-59.67 147.68-58.86 69.45 1.03 134.73 35.56 174.62 92.39 7.61 10.86 22.56 13.45 33.42 5.86 10.84-7.62 13.46-22.59 5.84-33.43z\"]\n};\nvar faFire = {\n prefix: 'fas',\n iconName: 'fire',\n icon: [384, 512, [], \"f06d\", \"M216 23.86c0-23.8-30.65-32.77-44.15-13.04C48 191.85 224 200 224 288c0 35.63-29.11 64.46-64.85 63.99-35.17-.45-63.15-29.77-63.15-64.94v-85.51c0-21.7-26.47-32.23-41.43-16.5C27.8 213.16 0 261.33 0 320c0 105.87 86.13 192 192 192s192-86.13 192-192c0-170.29-168-193-168-296.14z\"]\n};\nvar faFireAlt = {\n prefix: 'fas',\n iconName: 'fire-alt',\n icon: [448, 512, [], \"f7e4\", \"M323.56 51.2c-20.8 19.3-39.58 39.59-56.22 59.97C240.08 73.62 206.28 35.53 168 0 69.74 91.17 0 209.96 0 281.6 0 408.85 100.29 512 224 512s224-103.15 224-230.4c0-53.27-51.98-163.14-124.44-230.4zm-19.47 340.65C282.43 407.01 255.72 416 226.86 416 154.71 416 96 368.26 96 290.75c0-38.61 24.31-72.63 72.79-130.75 6.93 7.98 98.83 125.34 98.83 125.34l58.63-66.88c4.14 6.85 7.91 13.55 11.27 19.97 27.35 52.19 15.81 118.97-33.43 153.42z\"]\n};\nvar faFireExtinguisher = {\n prefix: 'fas',\n iconName: 'fire-extinguisher',\n icon: [448, 512, [], \"f134\", \"M434.027 26.329l-168 28C254.693 56.218 256 67.8 256 72h-58.332C208.353 36.108 181.446 0 144 0c-39.435 0-66.368 39.676-52.228 76.203-52.039 13.051-75.381 54.213-90.049 90.884-4.923 12.307 1.063 26.274 13.37 31.197 12.317 4.926 26.279-1.075 31.196-13.37C75.058 112.99 106.964 120 168 120v27.076c-41.543 10.862-72 49.235-72 94.129V488c0 13.255 10.745 24 24 24h144c13.255 0 24-10.745 24-24V240c0-44.731-30.596-82.312-72-92.97V120h40c0 2.974-1.703 15.716 10.027 17.671l168 28C441.342 166.89 448 161.25 448 153.834V38.166c0-7.416-6.658-13.056-13.973-11.837zM144 72c-8.822 0-16-7.178-16-16s7.178-16 16-16 16 7.178 16 16-7.178 16-16 16z\"]\n};\nvar faFirstAid = {\n prefix: 'fas',\n iconName: 'first-aid',\n icon: [576, 512, [], \"f479\", \"M0 80v352c0 26.5 21.5 48 48 48h48V32H48C21.5 32 0 53.5 0 80zm128 400h320V32H128v448zm64-248c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48zM528 32h-48v448h48c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z\"]\n};\nvar faFish = {\n prefix: 'fas',\n iconName: 'fish',\n icon: [576, 512, [], \"f578\", \"M327.1 96c-89.97 0-168.54 54.77-212.27 101.63L27.5 131.58c-12.13-9.18-30.24.6-27.14 14.66L24.54 256 .35 365.77c-3.1 14.06 15.01 23.83 27.14 14.66l87.33-66.05C158.55 361.23 237.13 416 327.1 416 464.56 416 576 288 576 256S464.56 96 327.1 96zm87.43 184c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24 13.26 0 24 10.74 24 24 0 13.25-10.75 24-24 24z\"]\n};\nvar faFistRaised = {\n prefix: 'fas',\n iconName: 'fist-raised',\n icon: [384, 512, [], \"f6de\", \"M255.98 160V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v146.93c5.02-1.78 10.34-2.93 15.97-2.93h48.03zm128 95.99c-.01-35.34-28.66-63.99-63.99-63.99H207.85c-8.78 0-15.9 7.07-15.9 15.85v.56c0 26.27 21.3 47.59 47.57 47.59h35.26c9.68 0 13.2 3.58 13.2 8v16.2c0 4.29-3.59 7.78-7.88 8-44.52 2.28-64.16 24.71-96.05 72.55l-6.31 9.47a7.994 7.994 0 0 1-11.09 2.22l-13.31-8.88a7.994 7.994 0 0 1-2.22-11.09l6.31-9.47c15.73-23.6 30.2-43.26 47.31-58.08-17.27-5.51-31.4-18.12-38.87-34.45-6.59 3.41-13.96 5.52-21.87 5.52h-32c-12.34 0-23.49-4.81-32-12.48C71.48 251.19 60.33 256 48 256H16c-5.64 0-10.97-1.15-16-2.95v77.93c0 33.95 13.48 66.5 37.49 90.51L63.99 448v64h255.98v-63.96l35.91-35.92A96.035 96.035 0 0 0 384 344.21l-.02-88.22zm-32.01-90.09V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v112h32c11.28 0 21.94 2.31 32 5.9zM16 224h32c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v128c0 8.84 7.16 16 16 16zm95.99 0h32c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v160c0 8.84 7.16 16 16 16z\"]\n};\nvar faFlag = {\n prefix: 'fas',\n iconName: 'flag',\n icon: [512, 512, [], \"f024\", \"M349.565 98.783C295.978 98.783 251.721 64 184.348 64c-24.955 0-47.309 4.384-68.045 12.013a55.947 55.947 0 0 0 3.586-23.562C118.117 24.015 94.806 1.206 66.338.048 34.345-1.254 8 24.296 8 56c0 19.026 9.497 35.825 24 45.945V488c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-94.4c28.311-12.064 63.582-22.122 114.435-22.122 53.588 0 97.844 34.783 165.217 34.783 48.169 0 86.667-16.294 122.505-40.858C506.84 359.452 512 349.571 512 339.045v-243.1c0-23.393-24.269-38.87-45.485-29.016-34.338 15.948-76.454 31.854-116.95 31.854z\"]\n};\nvar faFlagCheckered = {\n prefix: 'fas',\n iconName: 'flag-checkered',\n icon: [512, 512, [], \"f11e\", \"M243.2 189.9V258c26.1 5.9 49.3 15.6 73.6 22.3v-68.2c-26-5.8-49.4-15.5-73.6-22.2zm223.3-123c-34.3 15.9-76.5 31.9-117 31.9C296 98.8 251.7 64 184.3 64c-25 0-47.3 4.4-68 12 2.8-7.3 4.1-15.2 3.6-23.6C118.1 24 94.8 1.2 66.3 0 34.3-1.3 8 24.3 8 56c0 19 9.5 35.8 24 45.9V488c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24v-94.4c28.3-12.1 63.6-22.1 114.4-22.1 53.6 0 97.8 34.8 165.2 34.8 48.2 0 86.7-16.3 122.5-40.9 8.7-6 13.8-15.8 13.8-26.4V95.9c.1-23.3-24.2-38.8-45.4-29zM169.6 325.5c-25.8 2.7-50 8.2-73.6 16.6v-70.5c26.2-9.3 47.5-15 73.6-17.4zM464 191c-23.6 9.8-46.3 19.5-73.6 23.9V286c24.8-3.4 51.4-11.8 73.6-26v70.5c-25.1 16.1-48.5 24.7-73.6 27.1V286c-27 3.7-47.9 1.5-73.6-5.6v67.4c-23.9-7.4-47.3-16.7-73.6-21.3V258c-19.7-4.4-40.8-6.8-73.6-3.8v-70c-22.4 3.1-44.6 10.2-73.6 20.9v-70.5c33.2-12.2 50.1-19.8 73.6-22v71.6c27-3.7 48.4-1.3 73.6 5.7v-67.4c23.7 7.4 47.2 16.7 73.6 21.3v68.4c23.7 5.3 47.6 6.9 73.6 2.7V143c27-4.8 52.3-13.6 73.6-22.5z\"]\n};\nvar faFlagUsa = {\n prefix: 'fas',\n iconName: 'flag-usa',\n icon: [512, 512, [], \"f74d\", \"M32 0C14.3 0 0 14.3 0 32v464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V32C64 14.3 49.7 0 32 0zm267.9 303.6c-57.2-15.1-111.7-28.8-203.9 11.1V384c185.7-92.2 221.7 53.3 397.5-23.1 11.4-5 18.5-16.5 18.5-28.8v-36c-43.6 17.3-80.2 24.1-112.1 24.1-37.4-.1-68.9-8.4-100-16.6zm0-96c-57.2-15.1-111.7-28.8-203.9 11.1v61.5c94.8-37.6 154.6-22.7 212.1-7.6 57.2 15.1 111.7 28.8 203.9-11.1V200c-43.6 17.3-80.2 24.1-112.1 24.1-37.4 0-68.9-8.3-100-16.5zm9.5-125.9c51.8 15.6 97.4 29 202.6-20.1V30.8c0-25.1-26.8-38.1-49.4-26.6C291.3 91.5 305.4-62.2 96 32.4v151.9c94.8-37.5 154.6-22.7 212.1-7.6 57.2 15 111.7 28.7 203.9-11.1V96.7c-53.6 23.5-93.3 31.4-126.1 31.4s-59-7.8-85.7-15.9c-4-1.2-8.1-2.4-12.1-3.5V75.5c7.2 2 14.3 4.1 21.3 6.2zM160 128.1c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16-7.2 16-16 16zm0-55.8c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16zm64 47.9c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16zm0-55.9c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16z\"]\n};\nvar faFlask = {\n prefix: 'fas',\n iconName: 'flask',\n icon: [448, 512, [], \"f0c3\", \"M437.2 403.5L320 215V64h8c13.3 0 24-10.7 24-24V24c0-13.3-10.7-24-24-24H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h8v151L10.8 403.5C-18.5 450.6 15.3 512 70.9 512h306.2c55.7 0 89.4-61.5 60.1-108.5zM137.9 320l48.2-77.6c3.7-5.2 5.8-11.6 5.8-18.4V64h64v160c0 6.9 2.2 13.2 5.8 18.4l48.2 77.6h-172z\"]\n};\nvar faFlushed = {\n prefix: 'fas',\n iconName: 'flushed',\n icon: [496, 512, [], \"f579\", \"M344 200c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-192 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM80 224c0-39.8 32.2-72 72-72s72 32.2 72 72-32.2 72-72 72-72-32.2-72-72zm232 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-104c-39.8 0-72-32.2-72-72s32.2-72 72-72 72 32.2 72 72-32.2 72-72 72z\"]\n};\nvar faFolder = {\n prefix: 'fas',\n iconName: 'folder',\n icon: [512, 512, [], \"f07b\", \"M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48z\"]\n};\nvar faFolderMinus = {\n prefix: 'fas',\n iconName: 'folder-minus',\n icon: [512, 512, [], \"f65d\", \"M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16H160c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h192c8.84 0 16 7.16 16 16v16z\"]\n};\nvar faFolderOpen = {\n prefix: 'fas',\n iconName: 'folder-open',\n icon: [576, 512, [], \"f07c\", \"M572.694 292.093L500.27 416.248A63.997 63.997 0 0 1 444.989 448H45.025c-18.523 0-30.064-20.093-20.731-36.093l72.424-124.155A64 64 0 0 1 152 256h399.964c18.523 0 30.064 20.093 20.73 36.093zM152 224h328v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v278.046l69.077-118.418C86.214 242.25 117.989 224 152 224z\"]\n};\nvar faFolderPlus = {\n prefix: 'fas',\n iconName: 'folder-plus',\n icon: [512, 512, [], \"f65e\", \"M464,128H272L208,64H48A48,48,0,0,0,0,112V400a48,48,0,0,0,48,48H464a48,48,0,0,0,48-48V176A48,48,0,0,0,464,128ZM359.5,296a16,16,0,0,1-16,16h-64v64a16,16,0,0,1-16,16h-16a16,16,0,0,1-16-16V312h-64a16,16,0,0,1-16-16V280a16,16,0,0,1,16-16h64V200a16,16,0,0,1,16-16h16a16,16,0,0,1,16,16v64h64a16,16,0,0,1,16,16Z\"]\n};\nvar faFont = {\n prefix: 'fas',\n iconName: 'font',\n icon: [448, 512, [], \"f031\", \"M432 416h-23.41L277.88 53.69A32 32 0 0 0 247.58 32h-47.16a32 32 0 0 0-30.3 21.69L39.41 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-19.58l23.3-64h152.56l23.3 64H304a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM176.85 272L224 142.51 271.15 272z\"]\n};\nvar faFontAwesomeLogoFull = {\n prefix: 'fas',\n iconName: 'font-awesome-logo-full',\n icon: [3992, 512, [\"Font Awesome\"], \"f4e6\", \"M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z\"]\n};\nvar faFootballBall = {\n prefix: 'fas',\n iconName: 'football-ball',\n icon: [496, 512, [], \"f44e\", \"M481.5 60.3c-4.8-18.2-19.1-32.5-37.3-37.4C420.3 16.5 383 8.9 339.4 8L496 164.8c-.8-43.5-8.2-80.6-14.5-104.5zm-467 391.4c4.8 18.2 19.1 32.5 37.3 37.4 23.9 6.4 61.2 14 104.8 14.9L0 347.2c.8 43.5 8.2 80.6 14.5 104.5zM4.2 283.4L220.4 500c132.5-19.4 248.8-118.7 271.5-271.4L275.6 12C143.1 31.4 26.8 130.7 4.2 283.4zm317.3-123.6c3.1-3.1 8.2-3.1 11.3 0l11.3 11.3c3.1 3.1 3.1 8.2 0 11.3l-28.3 28.3 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-22.6 22.7 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L248 278.6l-22.6 22.6 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-28.3 28.3c-3.1 3.1-8.2 3.1-11.3 0l-11.3-11.3c-3.1-3.1-3.1-8.2 0-11.3l28.3-28.3-28.3-28.2c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 28.3-28.5z\"]\n};\nvar faForward = {\n prefix: 'fas',\n iconName: 'forward',\n icon: [512, 512, [], \"f04e\", \"M500.5 231.4l-192-160C287.9 54.3 256 68.6 256 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2zm-256 0l-192-160C31.9 54.3 0 68.6 0 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2z\"]\n};\nvar faFrog = {\n prefix: 'fas',\n iconName: 'frog',\n icon: [576, 512, [], \"f52e\", \"M446.53 97.43C439.67 60.23 407.19 32 368 32c-39.23 0-71.72 28.29-78.54 65.54C126.75 112.96-.5 250.12 0 416.98.11 451.9 29.08 480 64 480h304c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-79.49l35.8-48.33c24.14-36.23 10.35-88.28-33.71-106.6-23.89-9.93-51.55-4.65-72.24 10.88l-32.76 24.59c-7.06 5.31-17.09 3.91-22.41-3.19-5.3-7.08-3.88-17.11 3.19-22.41l34.78-26.09c36.84-27.66 88.28-27.62 125.13 0 10.87 8.15 45.87 39.06 40.8 93.21L469.62 480H560c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-53.63l-98.52-104.68 154.44-86.65A58.16 58.16 0 0 0 576 189.94c0-21.4-11.72-40.95-30.48-51.23-40.56-22.22-98.99-41.28-98.99-41.28zM368 136c-13.26 0-24-10.75-24-24 0-13.26 10.74-24 24-24 13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24z\"]\n};\nvar faFrown = {\n prefix: 'fas',\n iconName: 'frown',\n icon: [496, 512, [], \"f119\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm170.2 218.2C315.8 367.4 282.9 352 248 352s-67.8 15.4-90.2 42.2c-13.5 16.3-38.1-4.2-24.6-20.5C161.7 339.6 203.6 320 248 320s86.3 19.6 114.7 53.8c13.6 16.2-11 36.7-24.5 20.4z\"]\n};\nvar faFrownOpen = {\n prefix: 'fas',\n iconName: 'frown-open',\n icon: [496, 512, [], \"f57a\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm187.3 183.3c-31.2-9.6-59.4-15.3-75.3-15.3s-44.1 5.7-75.3 15.3c-11.5 3.5-22.5-6.3-20.5-18.1 7-40 60.1-61.2 95.8-61.2s88.8 21.3 95.8 61.2c2 11.9-9.1 21.6-20.5 18.1zM328 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faFunnelDollar = {\n prefix: 'fas',\n iconName: 'funnel-dollar',\n icon: [640, 512, [], \"f662\", \"M433.46 165.94l101.2-111.87C554.61 34.12 540.48 0 512.26 0H31.74C3.52 0-10.61 34.12 9.34 54.07L192 256v155.92c0 12.59 5.93 24.44 16 32l79.99 60c20.86 15.64 48.47 6.97 59.22-13.57C310.8 455.38 288 406.35 288 352c0-89.79 62.05-165.17 145.46-186.06zM480 192c-88.37 0-160 71.63-160 160s71.63 160 160 160 160-71.63 160-160-71.63-160-160-160zm16 239.88V448c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V256c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.04 44.44-42.67 45.07z\"]\n};\nvar faFutbol = {\n prefix: 'fas',\n iconName: 'futbol',\n icon: [512, 512, [], \"f1e3\", \"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-48 0l-.003-.282-26.064 22.741-62.679-58.5 16.454-84.355 34.303 3.072c-24.889-34.216-60.004-60.089-100.709-73.141l13.651 31.939L256 139l-74.953-41.525 13.651-31.939c-40.631 13.028-75.78 38.87-100.709 73.141l34.565-3.073 16.192 84.355-62.678 58.5-26.064-22.741-.003.282c0 43.015 13.497 83.952 38.472 117.991l7.704-33.897 85.138 10.447 36.301 77.826-29.902 17.786c40.202 13.122 84.29 13.148 124.572 0l-29.902-17.786 36.301-77.826 85.138-10.447 7.704 33.897C442.503 339.952 456 299.015 456 256zm-248.102 69.571l-29.894-91.312L256 177.732l77.996 56.527-29.622 91.312h-96.476z\"]\n};\nvar faGamepad = {\n prefix: 'fas',\n iconName: 'gamepad',\n icon: [640, 512, [], \"f11b\", \"M480.07 96H160a160 160 0 1 0 114.24 272h91.52A160 160 0 1 0 480.07 96zM248 268a12 12 0 0 1-12 12h-52v52a12 12 0 0 1-12 12h-24a12 12 0 0 1-12-12v-52H84a12 12 0 0 1-12-12v-24a12 12 0 0 1 12-12h52v-52a12 12 0 0 1 12-12h24a12 12 0 0 1 12 12v52h52a12 12 0 0 1 12 12zm216 76a40 40 0 1 1 40-40 40 40 0 0 1-40 40zm64-96a40 40 0 1 1 40-40 40 40 0 0 1-40 40z\"]\n};\nvar faGasPump = {\n prefix: 'fas',\n iconName: 'gas-pump',\n icon: [512, 512, [], \"f52f\", \"M336 448H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm157.2-340.7l-81-81c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-6.2 6.2-6.2 16.4 0 22.6L416 97.9V160c0 28.1 20.9 51.3 48 55.2V376c0 13.2-10.8 24-24 24s-24-10.8-24-24v-32c0-48.6-39.4-88-88-88h-8V64c0-35.3-28.7-64-64-64H96C60.7 0 32 28.7 32 64v352h288V304h8c22.1 0 40 17.9 40 40v27.8c0 37.7 27 72 64.5 75.9 43 4.3 79.5-29.5 79.5-71.7V152.6c0-17-6.8-33.3-18.8-45.3zM256 192H96V64h160v128z\"]\n};\nvar faGavel = {\n prefix: 'fas',\n iconName: 'gavel',\n icon: [512, 512, [], \"f0e3\", \"M504.971 199.362l-22.627-22.627c-9.373-9.373-24.569-9.373-33.941 0l-5.657 5.657L329.608 69.255l5.657-5.657c9.373-9.373 9.373-24.569 0-33.941L312.638 7.029c-9.373-9.373-24.569-9.373-33.941 0L154.246 131.48c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l5.657-5.657 39.598 39.598-81.04 81.04-5.657-5.657c-12.497-12.497-32.758-12.497-45.255 0L9.373 412.118c-12.497 12.497-12.497 32.758 0 45.255l45.255 45.255c12.497 12.497 32.758 12.497 45.255 0l114.745-114.745c12.497-12.497 12.497-32.758 0-45.255l-5.657-5.657 81.04-81.04 39.598 39.598-5.657 5.657c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l124.451-124.451c9.372-9.372 9.372-24.568 0-33.941z\"]\n};\nvar faGem = {\n prefix: 'fas',\n iconName: 'gem',\n icon: [576, 512, [], \"f3a5\", \"M485.5 0L576 160H474.9L405.7 0h79.8zm-128 0l69.2 160H149.3L218.5 0h139zm-267 0h79.8l-69.2 160H0L90.5 0zM0 192h100.7l123 251.7c1.5 3.1-2.7 5.9-5 3.3L0 192zm148.2 0h279.6l-137 318.2c-1 2.4-4.5 2.4-5.5 0L148.2 192zm204.1 251.7l123-251.7H576L357.3 446.9c-2.3 2.7-6.5-.1-5-3.2z\"]\n};\nvar faGenderless = {\n prefix: 'fas',\n iconName: 'genderless',\n icon: [288, 512, [], \"f22d\", \"M144 176c44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80 35.9-80 80-80m0-64C64.5 112 0 176.5 0 256s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144z\"]\n};\nvar faGhost = {\n prefix: 'fas',\n iconName: 'ghost',\n icon: [384, 512, [], \"f6e2\", \"M186.1.09C81.01 3.24 0 94.92 0 200.05v263.92c0 14.26 17.23 21.39 27.31 11.31l24.92-18.53c6.66-4.95 16-3.99 21.51 2.21l42.95 48.35c6.25 6.25 16.38 6.25 22.63 0l40.72-45.85c6.37-7.17 17.56-7.17 23.92 0l40.72 45.85c6.25 6.25 16.38 6.25 22.63 0l42.95-48.35c5.51-6.2 14.85-7.17 21.51-2.21l24.92 18.53c10.08 10.08 27.31 2.94 27.31-11.31V192C384 84 294.83-3.17 186.1.09zM128 224c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128 0c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faGift = {\n prefix: 'fas',\n iconName: 'gift',\n icon: [512, 512, [], \"f06b\", \"M32 448c0 17.7 14.3 32 32 32h160V320H32v128zm256 32h160c17.7 0 32-14.3 32-32V320H288v160zm192-320h-42.1c6.2-12.1 10.1-25.5 10.1-40 0-48.5-39.5-88-88-88-41.6 0-68.5 21.3-103 68.3-34.5-47-61.4-68.3-103-68.3-48.5 0-88 39.5-88 88 0 14.5 3.8 27.9 10.1 40H32c-17.7 0-32 14.3-32 32v80c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-80c0-17.7-14.3-32-32-32zm-326.1 0c-22.1 0-40-17.9-40-40s17.9-40 40-40c19.9 0 34.6 3.3 86.1 80h-86.1zm206.1 0h-86.1c51.4-76.5 65.7-80 86.1-80 22.1 0 40 17.9 40 40s-17.9 40-40 40z\"]\n};\nvar faGifts = {\n prefix: 'fas',\n iconName: 'gifts',\n icon: [640, 512, [], \"f79c\", \"M240.6 194.1c1.9-30.8 17.3-61.2 44-79.8C279.4 103.5 268.7 96 256 96h-29.4l30.7-22c7.2-5.1 8.9-15.1 3.7-22.3l-9.3-13c-5.1-7.2-15.1-8.9-22.3-3.7l-32 22.9 11.5-30.6c3.1-8.3-1.1-17.5-9.4-20.6l-15-5.6c-8.3-3.1-17.5 1.1-20.6 9.4l-19.9 53-19.9-53.1C121 2.1 111.8-2.1 103.5 1l-15 5.6C80.2 9.7 76 19 79.2 27.2l11.5 30.6L58.6 35c-7.2-5.1-17.2-3.5-22.3 3.7l-9.3 13c-5.1 7.2-3.5 17.2 3.7 22.3l30.7 22H32c-17.7 0-32 14.3-32 32v352c0 17.7 14.3 32 32 32h168.9c-5.5-9.5-8.9-20.3-8.9-32V256c0-29.9 20.8-55 48.6-61.9zM224 480c0 17.7 14.3 32 32 32h160V384H224v96zm224 32h160c17.7 0 32-14.3 32-32v-96H448v128zm160-288h-20.4c2.6-7.6 4.4-15.5 4.4-23.8 0-35.5-27-72.2-72.1-72.2-48.1 0-75.9 47.7-87.9 75.3-12.1-27.6-39.9-75.3-87.9-75.3-45.1 0-72.1 36.7-72.1 72.2 0 8.3 1.7 16.2 4.4 23.8H256c-17.7 0-32 14.3-32 32v96h192V224h15.3l.7-.2.7.2H448v128h192v-96c0-17.7-14.3-32-32-32zm-272 0c-2.7-1.4-5.1-3-7.2-4.8-7.3-6.4-8.8-13.8-8.8-19 0-9.7 6.4-24.2 24.1-24.2 18.7 0 35.6 27.4 44.5 48H336zm199.2-4.8c-2.1 1.8-4.5 3.4-7.2 4.8h-52.6c8.8-20.3 25.8-48 44.5-48 17.7 0 24.1 14.5 24.1 24.2 0 5.2-1.5 12.6-8.8 19z\"]\n};\nvar faGlassCheers = {\n prefix: 'fas',\n iconName: 'glass-cheers',\n icon: [640, 512, [], \"f79f\", \"M639.4 433.6c-8.4-20.4-31.8-30.1-52.2-21.6l-22.1 9.2-38.7-101.9c47.9-35 64.8-100.3 34.5-152.8L474.3 16c-8-13.9-25.1-19.7-40-13.6L320 49.8 205.7 2.4c-14.9-6.2-32-.3-40 13.6L79.1 166.5C48.9 219 65.7 284.3 113.6 319.2L74.9 421.1l-22.1-9.2c-20.4-8.5-43.7 1.2-52.2 21.6-1.7 4.1.2 8.8 4.3 10.5l162.3 67.4c4.1 1.7 8.7-.2 10.4-4.3 8.4-20.4-1.2-43.8-21.6-52.3l-22.1-9.2L173.3 342c4.4.5 8.8 1.3 13.1 1.3 51.7 0 99.4-33.1 113.4-85.3l20.2-75.4 20.2 75.4c14 52.2 61.7 85.3 113.4 85.3 4.3 0 8.7-.8 13.1-1.3L506 445.6l-22.1 9.2c-20.4 8.5-30.1 31.9-21.6 52.3 1.7 4.1 6.4 6 10.4 4.3L635.1 444c4-1.7 6-6.3 4.3-10.4zM275.9 162.1l-112.1-46.5 36.5-63.4 94.5 39.2-18.9 70.7zm88.2 0l-18.9-70.7 94.5-39.2 36.5 63.4-112.1 46.5z\"]\n};\nvar faGlassMartini = {\n prefix: 'fas',\n iconName: 'glass-martini',\n icon: [512, 512, [], \"f000\", \"M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6z\"]\n};\nvar faGlassMartiniAlt = {\n prefix: 'fas',\n iconName: 'glass-martini-alt',\n icon: [512, 512, [], \"f57b\", \"M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6zM443.77 48l-48 48H116.24l-48-48h375.53z\"]\n};\nvar faGlassWhiskey = {\n prefix: 'fas',\n iconName: 'glass-whiskey',\n icon: [512, 512, [], \"f7a0\", \"M480 32H32C12.5 32-2.4 49.2.3 68.5l56 356.5c4.5 31.5 31.5 54.9 63.4 54.9h273c31.8 0 58.9-23.4 63.4-54.9l55.6-356.5C514.4 49.2 499.5 32 480 32zm-37.4 64l-30 192h-313L69.4 96h373.2z\"]\n};\nvar faGlasses = {\n prefix: 'fas',\n iconName: 'glasses',\n icon: [576, 512, [], \"f530\", \"M574.1 280.37L528.75 98.66c-5.91-23.7-21.59-44.05-43-55.81-21.44-11.73-46.97-14.11-70.19-6.33l-15.25 5.08c-8.39 2.79-12.92 11.86-10.12 20.24l5.06 15.18c2.79 8.38 11.85 12.91 20.23 10.12l13.18-4.39c10.87-3.62 23-3.57 33.16 1.73 10.29 5.37 17.57 14.56 20.37 25.82l38.46 153.82c-22.19-6.81-49.79-12.46-81.2-12.46-34.77 0-73.98 7.02-114.85 26.74h-73.18c-40.87-19.74-80.08-26.75-114.86-26.75-31.42 0-59.02 5.65-81.21 12.46l38.46-153.83c2.79-11.25 10.09-20.45 20.38-25.81 10.16-5.3 22.28-5.35 33.15-1.73l13.17 4.39c8.38 2.79 17.44-1.74 20.23-10.12l5.06-15.18c2.8-8.38-1.73-17.45-10.12-20.24l-15.25-5.08c-23.22-7.78-48.75-5.41-70.19 6.33-21.41 11.77-37.09 32.11-43 55.8L1.9 280.37A64.218 64.218 0 0 0 0 295.86v70.25C0 429.01 51.58 480 115.2 480h37.12c60.28 0 110.37-45.94 114.88-105.37l2.93-38.63h35.75l2.93 38.63C313.31 434.06 363.4 480 423.68 480h37.12c63.62 0 115.2-50.99 115.2-113.88v-70.25c0-5.23-.64-10.43-1.9-15.5zm-370.72 89.42c-1.97 25.91-24.4 46.21-51.06 46.21H115.2C86.97 416 64 393.62 64 366.11v-37.54c18.12-6.49 43.42-12.92 72.58-12.92 23.86 0 47.26 4.33 69.93 12.92l-3.13 41.22zM512 366.12c0 27.51-22.97 49.88-51.2 49.88h-37.12c-26.67 0-49.1-20.3-51.06-46.21l-3.13-41.22c22.67-8.59 46.08-12.92 69.95-12.92 29.12 0 54.43 6.44 72.55 12.93v37.54z\"]\n};\nvar faGlobe = {\n prefix: 'fas',\n iconName: 'globe',\n icon: [496, 512, [], \"f0ac\", \"M336.5 160C322 70.7 287.8 8 248 8s-74 62.7-88.5 152h177zM152 256c0 22.2 1.2 43.5 3.3 64h185.3c2.1-20.5 3.3-41.8 3.3-64s-1.2-43.5-3.3-64H155.3c-2.1 20.5-3.3 41.8-3.3 64zm324.7-96c-28.6-67.9-86.5-120.4-158-141.6 24.4 33.8 41.2 84.7 50 141.6h108zM177.2 18.4C105.8 39.6 47.8 92.1 19.3 160h108c8.7-56.9 25.5-107.8 49.9-141.6zM487.4 192H372.7c2.1 21 3.3 42.5 3.3 64s-1.2 43-3.3 64h114.6c5.5-20.5 8.6-41.8 8.6-64s-3.1-43.5-8.5-64zM120 256c0-21.5 1.2-43 3.3-64H8.6C3.2 212.5 0 233.8 0 256s3.2 43.5 8.6 64h114.6c-2-21-3.2-42.5-3.2-64zm39.5 96c14.5 89.3 48.7 152 88.5 152s74-62.7 88.5-152h-177zm159.3 141.6c71.4-21.2 129.4-73.7 158-141.6h-108c-8.8 56.9-25.6 107.8-50 141.6zM19.3 352c28.6 67.9 86.5 120.4 158 141.6-24.4-33.8-41.2-84.7-50-141.6h-108z\"]\n};\nvar faGlobeAfrica = {\n prefix: 'fas',\n iconName: 'globe-africa',\n icon: [496, 512, [], \"f57c\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm160 215.5v6.93c0 5.87-3.32 11.24-8.57 13.86l-15.39 7.7a15.485 15.485 0 0 1-15.53-.97l-18.21-12.14a15.52 15.52 0 0 0-13.5-1.81l-2.65.88c-9.7 3.23-13.66 14.79-7.99 23.3l13.24 19.86c2.87 4.31 7.71 6.9 12.89 6.9h8.21c8.56 0 15.5 6.94 15.5 15.5v11.34c0 3.35-1.09 6.62-3.1 9.3l-18.74 24.98c-1.42 1.9-2.39 4.1-2.83 6.43l-4.3 22.83c-.62 3.29-2.29 6.29-4.76 8.56a159.608 159.608 0 0 0-25 29.16l-13.03 19.55a27.756 27.756 0 0 1-23.09 12.36c-10.51 0-20.12-5.94-24.82-15.34a78.902 78.902 0 0 1-8.33-35.29V367.5c0-8.56-6.94-15.5-15.5-15.5h-25.88c-14.49 0-28.38-5.76-38.63-16a54.659 54.659 0 0 1-16-38.63v-14.06c0-17.19 8.1-33.38 21.85-43.7l27.58-20.69a54.663 54.663 0 0 1 32.78-10.93h.89c8.48 0 16.85 1.97 24.43 5.77l14.72 7.36c3.68 1.84 7.93 2.14 11.83.84l47.31-15.77c6.33-2.11 10.6-8.03 10.6-14.7 0-8.56-6.94-15.5-15.5-15.5h-10.09c-4.11 0-8.05-1.63-10.96-4.54l-6.92-6.92a15.493 15.493 0 0 0-10.96-4.54H199.5c-8.56 0-15.5-6.94-15.5-15.5v-4.4c0-7.11 4.84-13.31 11.74-15.04l14.45-3.61c3.74-.94 7-3.23 9.14-6.44l8.08-12.11c2.87-4.31 7.71-6.9 12.89-6.9h24.21c8.56 0 15.5-6.94 15.5-15.5v-21.7C359.23 71.63 422.86 131.02 441.93 208H423.5c-8.56 0-15.5 6.94-15.5 15.5z\"]\n};\nvar faGlobeAmericas = {\n prefix: 'fas',\n iconName: 'globe-americas',\n icon: [496, 512, [], \"f57d\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm82.29 357.6c-3.9 3.88-7.99 7.95-11.31 11.28-2.99 3-5.1 6.7-6.17 10.71-1.51 5.66-2.73 11.38-4.77 16.87l-17.39 46.85c-13.76 3-28 4.69-42.65 4.69v-27.38c1.69-12.62-7.64-36.26-22.63-51.25-6-6-9.37-14.14-9.37-22.63v-32.01c0-11.64-6.27-22.34-16.46-27.97-14.37-7.95-34.81-19.06-48.81-26.11-11.48-5.78-22.1-13.14-31.65-21.75l-.8-.72a114.792 114.792 0 0 1-18.06-20.74c-9.38-13.77-24.66-36.42-34.59-51.14 20.47-45.5 57.36-82.04 103.2-101.89l24.01 12.01C203.48 89.74 216 82.01 216 70.11v-11.3c7.99-1.29 16.12-2.11 24.39-2.42l28.3 28.3c6.25 6.25 6.25 16.38 0 22.63L264 112l-10.34 10.34c-3.12 3.12-3.12 8.19 0 11.31l4.69 4.69c3.12 3.12 3.12 8.19 0 11.31l-8 8a8.008 8.008 0 0 1-5.66 2.34h-8.99c-2.08 0-4.08.81-5.58 2.27l-9.92 9.65a8.008 8.008 0 0 0-1.58 9.31l15.59 31.19c2.66 5.32-1.21 11.58-7.15 11.58h-5.64c-1.93 0-3.79-.7-5.24-1.96l-9.28-8.06a16.017 16.017 0 0 0-15.55-3.1l-31.17 10.39a11.95 11.95 0 0 0-8.17 11.34c0 4.53 2.56 8.66 6.61 10.69l11.08 5.54c9.41 4.71 19.79 7.16 30.31 7.16s22.59 27.29 32 32h66.75c8.49 0 16.62 3.37 22.63 9.37l13.69 13.69a30.503 30.503 0 0 1 8.93 21.57 46.536 46.536 0 0 1-13.72 32.98zM417 274.25c-5.79-1.45-10.84-5-14.15-9.97l-17.98-26.97a23.97 23.97 0 0 1 0-26.62l19.59-29.38c2.32-3.47 5.5-6.29 9.24-8.15l12.98-6.49C440.2 193.59 448 223.87 448 256c0 8.67-.74 17.16-1.82 25.54L417 274.25z\"]\n};\nvar faGlobeAsia = {\n prefix: 'fas',\n iconName: 'globe-asia',\n icon: [496, 512, [], \"f57e\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm-11.34 240.23c-2.89 4.82-8.1 7.77-13.72 7.77h-.31c-4.24 0-8.31 1.69-11.31 4.69l-5.66 5.66c-3.12 3.12-3.12 8.19 0 11.31l5.66 5.66c3 3 4.69 7.07 4.69 11.31V304c0 8.84-7.16 16-16 16h-6.11c-6.06 0-11.6-3.42-14.31-8.85l-22.62-45.23c-2.44-4.88-8.95-5.94-12.81-2.08l-19.47 19.46c-3 3-7.07 4.69-11.31 4.69H50.81C49.12 277.55 48 266.92 48 256c0-110.28 89.72-200 200-200 21.51 0 42.2 3.51 61.63 9.82l-50.16 38.53c-5.11 3.41-4.63 11.06.86 13.81l10.83 5.41c5.42 2.71 8.84 8.25 8.84 14.31V216c0 4.42-3.58 8-8 8h-3.06c-3.03 0-5.8-1.71-7.15-4.42-1.56-3.12-5.96-3.29-7.76-.3l-17.37 28.95zM408 358.43c0 4.24-1.69 8.31-4.69 11.31l-9.57 9.57c-3 3-7.07 4.69-11.31 4.69h-15.16c-4.24 0-8.31-1.69-11.31-4.69l-13.01-13.01a26.767 26.767 0 0 0-25.42-7.04l-21.27 5.32c-1.27.32-2.57.48-3.88.48h-10.34c-4.24 0-8.31-1.69-11.31-4.69l-11.91-11.91a8.008 8.008 0 0 1-2.34-5.66v-10.2c0-3.27 1.99-6.21 5.03-7.43l39.34-15.74c1.98-.79 3.86-1.82 5.59-3.05l23.71-16.89a7.978 7.978 0 0 1 4.64-1.48h12.09c3.23 0 6.15 1.94 7.39 4.93l5.35 12.85a4 4 0 0 0 3.69 2.46h3.8c1.78 0 3.35-1.18 3.84-2.88l4.2-14.47c.5-1.71 2.06-2.88 3.84-2.88h6.06c2.21 0 4 1.79 4 4v12.93c0 2.12.84 4.16 2.34 5.66l11.91 11.91c3 3 4.69 7.07 4.69 11.31v24.6z\"]\n};\nvar faGlobeEurope = {\n prefix: 'fas',\n iconName: 'globe-europe',\n icon: [496, 512, [], \"f7a2\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm200 248c0 22.5-3.9 44.2-10.8 64.4h-20.3c-4.3 0-8.4-1.7-11.4-4.8l-32-32.6c-4.5-4.6-4.5-12.1.1-16.7l12.5-12.5v-8.7c0-3-1.2-5.9-3.3-8l-9.4-9.4c-2.1-2.1-5-3.3-8-3.3h-16c-6.2 0-11.3-5.1-11.3-11.3 0-3 1.2-5.9 3.3-8l9.4-9.4c2.1-2.1 5-3.3 8-3.3h32c6.2 0 11.3-5.1 11.3-11.3v-9.4c0-6.2-5.1-11.3-11.3-11.3h-36.7c-8.8 0-16 7.2-16 16v4.5c0 6.9-4.4 13-10.9 15.2l-31.6 10.5c-3.3 1.1-5.5 4.1-5.5 7.6v2.2c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8s-3.6-8-8-8H247c-3 0-5.8 1.7-7.2 4.4l-9.4 18.7c-2.7 5.4-8.2 8.8-14.3 8.8H194c-8.8 0-16-7.2-16-16V199c0-4.2 1.7-8.3 4.7-11.3l20.1-20.1c4.6-4.6 7.2-10.9 7.2-17.5 0-3.4 2.2-6.5 5.5-7.6l40-13.3c1.7-.6 3.2-1.5 4.4-2.7l26.8-26.8c2.1-2.1 3.3-5 3.3-8 0-6.2-5.1-11.3-11.3-11.3H258l-16 16v8c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-20c0-2.5 1.2-4.9 3.2-6.4l28.9-21.7c1.9-.1 3.8-.3 5.7-.3C358.3 56 448 145.7 448 256zM130.1 149.1c0-3 1.2-5.9 3.3-8l25.4-25.4c2.1-2.1 5-3.3 8-3.3 6.2 0 11.3 5.1 11.3 11.3v16c0 3-1.2 5.9-3.3 8l-9.4 9.4c-2.1 2.1-5 3.3-8 3.3h-16c-6.2 0-11.3-5.1-11.3-11.3zm128 306.4v-7.1c0-8.8-7.2-16-16-16h-20.2c-10.8 0-26.7-5.3-35.4-11.8l-22.2-16.7c-11.5-8.6-18.2-22.1-18.2-36.4v-23.9c0-16 8.4-30.8 22.1-39l42.9-25.7c7.1-4.2 15.2-6.5 23.4-6.5h31.2c10.9 0 21.4 3.9 29.6 10.9l43.2 37.1h18.3c8.5 0 16.6 3.4 22.6 9.4l17.3 17.3c3.4 3.4 8.1 5.3 12.9 5.3H423c-32.4 58.9-93.8 99.5-164.9 103.1z\"]\n};\nvar faGolfBall = {\n prefix: 'fas',\n iconName: 'golf-ball',\n icon: [416, 512, [], \"f450\", \"M96 416h224c0 17.7-14.3 32-32 32h-16c-17.7 0-32 14.3-32 32v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-20c0-17.7-14.3-32-32-32h-16c-17.7 0-32-14.3-32-32zm320-208c0 74.2-39 139.2-97.5 176h-221C39 347.2 0 282.2 0 208 0 93.1 93.1 0 208 0s208 93.1 208 208zm-180.1 43.9c18.3 0 33.1-14.8 33.1-33.1 0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1zm49.1 46.9c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1zm64-64c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1z\"]\n};\nvar faGopuram = {\n prefix: 'fas',\n iconName: 'gopuram',\n icon: [512, 512, [], \"f664\", \"M496 352h-16V240c0-8.8-7.2-16-16-16h-16v-80c0-8.8-7.2-16-16-16h-16V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16S96 7.2 96 16v112H80c-8.8 0-16 7.2-16 16v80H48c-8.8 0-16 7.2-16 16v112H16c-8.8 0-16 7.2-16 16v128c0 8.8 7.2 16 16 16h80V352h32V224h32v-96h32v96h-32v128h-32v160h80v-80c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16v80h80V352h-32V224h-32v-96h32v96h32v128h32v160h80c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zM232 176c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v48h-48zm56 176h-64v-64c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16z\"]\n};\nvar faGraduationCap = {\n prefix: 'fas',\n iconName: 'graduation-cap',\n icon: [640, 512, [], \"f19d\", \"M622.34 153.2L343.4 67.5c-15.2-4.67-31.6-4.67-46.79 0L17.66 153.2c-23.54 7.23-23.54 38.36 0 45.59l48.63 14.94c-10.67 13.19-17.23 29.28-17.88 46.9C38.78 266.15 32 276.11 32 288c0 10.78 5.68 19.85 13.86 25.65L20.33 428.53C18.11 438.52 25.71 448 35.94 448h56.11c10.24 0 17.84-9.48 15.62-19.47L82.14 313.65C90.32 307.85 96 298.78 96 288c0-11.57-6.47-21.25-15.66-26.87.76-15.02 8.44-28.3 20.69-36.72L296.6 284.5c9.06 2.78 26.44 6.25 46.79 0l278.95-85.7c23.55-7.24 23.55-38.36 0-45.6zM352.79 315.09c-28.53 8.76-52.84 3.92-65.59 0l-145.02-44.55L128 384c0 35.35 85.96 64 192 64s192-28.65 192-64l-14.18-113.47-145.03 44.56z\"]\n};\nvar faGreaterThan = {\n prefix: 'fas',\n iconName: 'greater-than',\n icon: [384, 512, [], \"f531\", \"M365.52 209.85L59.22 67.01c-16.06-7.49-35.15-.54-42.64 15.52L3.01 111.61c-7.49 16.06-.54 35.15 15.52 42.64L236.96 256.1 18.49 357.99C2.47 365.46-4.46 384.5 3.01 400.52l13.52 29C24 445.54 43.04 452.47 59.06 445l306.47-142.91a32.003 32.003 0 0 0 18.48-29v-34.23c-.01-12.45-7.21-23.76-18.49-29.01z\"]\n};\nvar faGreaterThanEqual = {\n prefix: 'fas',\n iconName: 'greater-than-equal',\n icon: [448, 512, [], \"f532\", \"M55.22 107.69l175.56 68.09-175.44 68.05c-18.39 6.03-27.88 24.39-21.2 41l12.09 30.08c6.68 16.61 26.99 25.19 45.38 19.15L393.02 214.2c13.77-4.52 22.98-16.61 22.98-30.17v-15.96c0-13.56-9.21-25.65-22.98-30.17L91.3 17.92c-18.29-6-38.51 2.53-45.15 19.06L34.12 66.9c-6.64 16.53 2.81 34.79 21.1 40.79zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z\"]\n};\nvar faGrimace = {\n prefix: 'fas',\n iconName: 'grimace',\n icon: [496, 512, [], \"f57f\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM144 400h-8c-17.7 0-32-14.3-32-32v-8h40v40zm0-56h-40v-8c0-17.7 14.3-32 32-32h8v40zm-8-136c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm72 192h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm-8-104c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64 128c0 17.7-14.3 32-32 32h-8v-40h40v8zm0-24h-40v-40h8c17.7 0 32 14.3 32 32v8z\"]\n};\nvar faGrin = {\n prefix: 'fas',\n iconName: 'grin',\n icon: [496, 512, [], \"f580\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm80 256c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"]\n};\nvar faGrinAlt = {\n prefix: 'fas',\n iconName: 'grin-alt',\n icon: [496, 512, [], \"f581\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm63.7 128.7c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zm-160 0c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"]\n};\nvar faGrinBeam = {\n prefix: 'fas',\n iconName: 'grin-beam',\n icon: [496, 512, [], \"f582\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 144c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"]\n};\nvar faGrinBeamSweat = {\n prefix: 'fas',\n iconName: 'grin-beam-sweat',\n icon: [504, 512, [], \"f583\", \"M456 128c26.5 0 48-21 48-47 0-20-28.5-60.4-41.6-77.8-3.2-4.3-9.6-4.3-12.8 0C436.5 20.6 408 61 408 81c0 26 21.5 47 48 47zm0 32c-44.1 0-80-35.4-80-79 0-4.4.3-14.2 8.1-32.2C345 23.1 298.3 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-35.1-7.4-68.4-20.5-98.6-6.3 1.5-12.7 2.6-19.5 2.6zm-128-8c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"]\n};\nvar faGrinHearts = {\n prefix: 'fas',\n iconName: 'grin-hearts',\n icon: [496, 512, [], \"f584\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM90.4 183.6c6.7-17.6 26.7-26.7 44.9-21.9l7.1 1.9 2-7.1c5-18.1 22.8-30.9 41.5-27.9 21.4 3.4 34.4 24.2 28.8 44.5L195.3 243c-1.2 4.5-5.9 7.2-10.5 6l-70.2-18.2c-20.4-5.4-31.9-27-24.2-47.2zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm133.4-201.3l-70.2 18.2c-4.5 1.2-9.2-1.5-10.5-6L281.3 173c-5.6-20.3 7.4-41.1 28.8-44.5 18.6-3 36.4 9.8 41.5 27.9l2 7.1 7.1-1.9c18.2-4.7 38.2 4.3 44.9 21.9 7.7 20.3-3.8 41.9-24.2 47.2z\"]\n};\nvar faGrinSquint = {\n prefix: 'fas',\n iconName: 'grin-squint',\n icon: [496, 512, [], \"f585\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"]\n};\nvar faGrinSquintTears = {\n prefix: 'fas',\n iconName: 'grin-squint-tears',\n icon: [512, 512, [], \"f586\", \"M409.6 111.9c22.6-3.2 73.5-12 88.3-26.8 19.2-19.2 18.9-50.6-.7-70.2S446-5 426.9 14.2c-14.8 14.8-23.5 65.7-26.8 88.3-.8 5.5 3.9 10.2 9.5 9.4zM102.4 400.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm311.7-256.5c-33 3.9-48.6-25.1-45.7-45.7 3.4-24 7.4-42.1 11.5-56.5C285.1-13.4 161.8-.5 80.6 80.6-.5 161.7-13.4 285 41.4 379.9c14.4-4.1 32.4-8 56.5-11.5 33.2-3.9 48.6 25.2 45.7 45.7-3.4 24-7.4 42.1-11.5 56.5 94.8 54.8 218.1 41.9 299.3-39.2s94-204.4 39.2-299.3c-14.4 4.1-32.5 8-56.5 11.5zM255.7 106c3.3-13.2 22.4-11.5 23.6 1.8l4.8 52.3 52.3 4.8c13.4 1.2 14.9 20.3 1.8 23.6l-90.5 22.6c-8.9 2.2-16.7-5.9-14.5-14.5l22.5-90.6zm-90.9 230.3L160 284l-52.3-4.8c-13.4-1.2-14.9-20.3-1.8-23.6l90.5-22.6c8.8-2.2 16.7 5.8 14.5 14.5L188.3 338c-3.1 13.2-22.2 11.7-23.5-1.7zm215.7 44.2c-29.3 29.3-75.7 50.4-116.7 50.4-18.9 0-36.6-4.5-51-14.7-9.8-6.9-8.7-21.8 2-27.2 28.3-14.6 63.9-42.4 97.8-76.3s61.7-69.6 76.3-97.8c5.4-10.5 20.2-11.9 27.3-2 32.3 45.3 7.1 124.7-35.7 167.6z\"]\n};\nvar faGrinStars = {\n prefix: 'fas',\n iconName: 'grin-stars',\n icon: [496, 512, [], \"f587\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM94.6 168.9l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.2 1 8.9 8.6 4.3 13.2l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L152 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.6-4.7-1.9-12.3 4.3-13.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm157.7-249.9l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L344 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.5-4.6-1.9-12.2 4.3-13.2l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.3.9 9 8.5 4.4 13.1z\"]\n};\nvar faGrinTears = {\n prefix: 'fas',\n iconName: 'grin-tears',\n icon: [640, 512, [], \"f588\", \"M102.4 256.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm523.4 26.8c-14.8-14.8-65.7-23.5-88.3-26.8-5.5-.8-10.3 3.9-9.5 9.5 3.2 22.6 12 73.5 26.8 88.3 19.2 19.2 50.6 18.9 70.2-.7s20-51.2.8-70.3zm-129.4-12.8c-3.8-26.6 19.1-49.5 45.7-45.7 8.9 1.3 16.8 2.7 24.3 4.1C552.7 104.5 447.7 8 320 8S87.3 104.5 73.6 228.5c7.5-1.4 15.4-2.8 24.3-4.1 33.2-3.9 48.6 25.3 45.7 45.7-11.8 82.3-29.9 100.4-35.8 106.4-.9.9-2 1.6-3 2.5 42.7 74.6 123 125 215.2 125s172.5-50.4 215.2-125.1c-1-.9-2.1-1.5-3-2.5-5.9-5.9-24-24-35.8-106.3zM400 152c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.7 9.2-21.6 20.7-17.9C227.1 330.5 272 336 320 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"]\n};\nvar faGrinTongue = {\n prefix: 'fas',\n iconName: 'grin-tongue',\n icon: [496, 512, [], \"f589\", \"M248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-34.9 134.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z\"]\n};\nvar faGrinTongueSquint = {\n prefix: 'fas',\n iconName: 'grin-tongue-squint',\n icon: [496, 512, [], \"f58a\", \"M293.1 374.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-33.8 210.3l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.7 4.7 7.7 15.9 0 20.6zm163 30c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.8-4.7-7.8-15.9 0-20.6l80-48c11.7-6.9 23.9 7.7 15.4 18L343.6 208l33.6 40.3z\"]\n};\nvar faGrinTongueWink = {\n prefix: 'fas',\n iconName: 'grin-tongue-wink',\n icon: [496, 512, [], \"f58b\", \"M344 184c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-56 225l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L112 233c-8.5 7.4-21.6.3-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c1.6 11.1-11.6 18.2-20 10.8zm152 39c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm-50.9 102.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z\"]\n};\nvar faGrinWink = {\n prefix: 'fas',\n iconName: 'grin-wink',\n icon: [496, 512, [], \"f58c\", \"M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm168 25l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.6 11-11.5 18.2-20 10.8zm-243.1 87.8C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6 20.7 17.9-9.2 55-83.2 93.3-143.8 93.3s-134.5-38.3-143.8-93.3c-2-11.9 9.3-21.6 20.7-17.9z\"]\n};\nvar faGripHorizontal = {\n prefix: 'fas',\n iconName: 'grip-horizontal',\n icon: [448, 512, [], \"f58d\", \"M96 288H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM96 96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\"]\n};\nvar faGripLines = {\n prefix: 'fas',\n iconName: 'grip-lines',\n icon: [512, 512, [], \"f7a4\", \"M496 288H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-128H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"]\n};\nvar faGripLinesVertical = {\n prefix: 'fas',\n iconName: 'grip-lines-vertical',\n icon: [256, 512, [], \"f7a5\", \"M96 496V16c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zm128 0V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16z\"]\n};\nvar faGripVertical = {\n prefix: 'fas',\n iconName: 'grip-vertical',\n icon: [320, 512, [], \"f58e\", \"M96 32H32C14.33 32 0 46.33 0 64v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM288 32h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\"]\n};\nvar faGuitar = {\n prefix: 'fas',\n iconName: 'guitar',\n icon: [512, 512, [], \"f7a6\", \"M502.63 39L473 9.37a32 32 0 0 0-45.26 0L381.46 55.7a35.14 35.14 0 0 0-8.53 13.79L360.77 106l-76.26 76.26c-12.16-8.76-25.5-15.74-40.1-19.14-33.45-7.78-67-.88-89.88 22a82.45 82.45 0 0 0-20.24 33.47c-6 18.56-23.21 32.69-42.15 34.46-23.7 2.27-45.73 11.45-62.61 28.44C-16.11 327-7.9 409 47.58 464.45S185 528 230.56 482.52c17-16.88 26.16-38.9 28.45-62.71 1.76-18.85 15.89-36.13 34.43-42.14a82.6 82.6 0 0 0 33.48-20.25c22.87-22.88 29.74-56.36 22-89.75-3.39-14.64-10.37-28-19.16-40.2L406 151.23l36.48-12.16a35.14 35.14 0 0 0 13.79-8.53l46.33-46.32a32 32 0 0 0 .03-45.22zM208 352a48 48 0 1 1 48-48 48 48 0 0 1-48 48z\"]\n};\nvar faHSquare = {\n prefix: 'fas',\n iconName: 'h-square',\n icon: [448, 512, [], \"f0fd\", \"M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-112 48h-32c-8.837 0-16 7.163-16 16v80H160v-80c0-8.837-7.163-16-16-16h-32c-8.837 0-16 7.163-16 16v224c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16v-80h128v80c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16V144c0-8.837-7.163-16-16-16z\"]\n};\nvar faHamburger = {\n prefix: 'fas',\n iconName: 'hamburger',\n icon: [512, 512, [], \"f805\", \"M464 256H48a48 48 0 0 0 0 96h416a48 48 0 0 0 0-96zm16 128H32a16 16 0 0 0-16 16v16a64 64 0 0 0 64 64h352a64 64 0 0 0 64-64v-16a16 16 0 0 0-16-16zM58.64 224h394.72c34.57 0 54.62-43.9 34.82-75.88C448 83.2 359.55 32.1 256 32c-103.54.1-192 51.2-232.18 116.11C4 180.09 24.07 224 58.64 224zM384 112a16 16 0 1 1-16 16 16 16 0 0 1 16-16zM256 80a16 16 0 1 1-16 16 16 16 0 0 1 16-16zm-128 32a16 16 0 1 1-16 16 16 16 0 0 1 16-16z\"]\n};\nvar faHammer = {\n prefix: 'fas',\n iconName: 'hammer',\n icon: [576, 512, [], \"f6e3\", \"M571.31 193.94l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31-28.9-28.9c5.63-21.31.36-44.9-16.35-61.61l-45.25-45.25c-62.48-62.48-163.79-62.48-226.28 0l90.51 45.25v18.75c0 16.97 6.74 33.25 18.75 45.25l49.14 49.14c16.71 16.71 40.3 21.98 61.61 16.35l28.9 28.9-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l90.51-90.51c6.23-6.24 6.23-16.37-.02-22.62zm-286.72-15.2c-3.7-3.7-6.84-7.79-9.85-11.95L19.64 404.96c-25.57 23.88-26.26 64.19-1.53 88.93s65.05 24.05 88.93-1.53l238.13-255.07c-3.96-2.91-7.9-5.87-11.44-9.41l-49.14-49.14z\"]\n};\nvar faHamsa = {\n prefix: 'fas',\n iconName: 'hamsa',\n icon: [512, 512, [], \"f665\", \"M509.34 307.25C504.28 295.56 492.75 288 480 288h-64V80c0-22-18-40-40-40s-40 18-40 40v134c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V40c0-22-18-40-40-40s-40 18-40 40v174c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V80c0-22-18-40-40-40S96 58 96 80v208H32c-12.75 0-24.28 7.56-29.34 19.25a31.966 31.966 0 0 0 5.94 34.58l102.69 110.03C146.97 490.08 199.69 512 256 512s109.03-21.92 144.72-60.14L503.4 341.83a31.966 31.966 0 0 0 5.94-34.58zM256 416c-53.02 0-96-64-96-64s42.98-64 96-64 96 64 96 64-42.98 64-96 64zm0-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\"]\n};\nvar faHandHolding = {\n prefix: 'fas',\n iconName: 'hand-holding',\n icon: [576, 512, [], \"f4bd\", \"M565.3 328.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z\"]\n};\nvar faHandHoldingHeart = {\n prefix: 'fas',\n iconName: 'hand-holding-heart',\n icon: [576, 512, [], \"f4be\", \"M275.3 250.5c7 7.4 18.4 7.4 25.5 0l108.9-114.2c31.6-33.2 29.8-88.2-5.6-118.8-30.8-26.7-76.7-21.9-104.9 7.7L288 36.9l-11.1-11.6C248.7-4.4 202.8-9.2 172 17.5c-35.3 30.6-37.2 85.6-5.6 118.8l108.9 114.2zm290 77.6c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z\"]\n};\nvar faHandHoldingMedical = {\n prefix: 'fas',\n iconName: 'hand-holding-medical',\n icon: [576, 512, [], \"e05c\", \"M159.88,175.82h64v64a16,16,0,0,0,16,16h64a16,16,0,0,0,16-16v-64h64a16,16,0,0,0,16-16v-64a16,16,0,0,0-16-16h-64v-64a16,16,0,0,0-16-16h-64a16,16,0,0,0-16,16v64h-64a16,16,0,0,0-16,16v64A16,16,0,0,0,159.88,175.82ZM568.07,336.13a39.91,39.91,0,0,0-55.93-8.47L392.47,415.84H271.86a16,16,0,0,1,0-32H350.1c16,0,30.75-10.87,33.37-26.61a32.06,32.06,0,0,0-31.62-37.38h-160a117.7,117.7,0,0,0-74.12,26.25l-46.5,37.74H15.87a16.11,16.11,0,0,0-16,16v96a16.11,16.11,0,0,0,16,16h347a104.8,104.8,0,0,0,61.7-20.27L559.6,392A40,40,0,0,0,568.07,336.13Z\"]\n};\nvar faHandHoldingUsd = {\n prefix: 'fas',\n iconName: 'hand-holding-usd',\n icon: [576, 512, [], \"f4c0\", \"M271.06,144.3l54.27,14.3a8.59,8.59,0,0,1,6.63,8.1c0,4.6-4.09,8.4-9.12,8.4h-35.6a30,30,0,0,1-11.19-2.2c-5.24-2.2-11.28-1.7-15.3,2l-19,17.5a11.68,11.68,0,0,0-2.25,2.66,11.42,11.42,0,0,0,3.88,15.74,83.77,83.77,0,0,0,34.51,11.5V240c0,8.8,7.83,16,17.37,16h17.37c9.55,0,17.38-7.2,17.38-16V222.4c32.93-3.6,57.84-31,53.5-63-3.15-23-22.46-41.3-46.56-47.7L282.68,97.4a8.59,8.59,0,0,1-6.63-8.1c0-4.6,4.09-8.4,9.12-8.4h35.6A30,30,0,0,1,332,83.1c5.23,2.2,11.28,1.7,15.3-2l19-17.5A11.31,11.31,0,0,0,368.47,61a11.43,11.43,0,0,0-3.84-15.78,83.82,83.82,0,0,0-34.52-11.5V16c0-8.8-7.82-16-17.37-16H295.37C285.82,0,278,7.2,278,16V33.6c-32.89,3.6-57.85,31-53.51,63C227.63,119.6,247,137.9,271.06,144.3ZM565.27,328.1c-11.8-10.7-30.2-10-42.6,0L430.27,402a63.64,63.64,0,0,1-40,14H272a16,16,0,0,1,0-32h78.29c15.9,0,30.71-10.9,33.25-26.6a31.2,31.2,0,0,0,.46-5.46A32,32,0,0,0,352,320H192a117.66,117.66,0,0,0-74.1,26.29L71.4,384H16A16,16,0,0,0,0,400v96a16,16,0,0,0,16,16H372.77a64,64,0,0,0,40-14L564,377a32,32,0,0,0,1.28-48.9Z\"]\n};\nvar faHandHoldingWater = {\n prefix: 'fas',\n iconName: 'hand-holding-water',\n icon: [576, 512, [], \"f4c1\", \"M288 256c53 0 96-42.1 96-94 0-40-57.1-120.7-83.2-155.6-6.4-8.5-19.2-8.5-25.6 0C249.1 41.3 192 122 192 162c0 51.9 43 94 96 94zm277.3 72.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z\"]\n};\nvar faHandLizard = {\n prefix: 'fas',\n iconName: 'hand-lizard',\n icon: [576, 512, [], \"f258\", \"M384 480h192V363.778a95.998 95.998 0 0 0-14.833-51.263L398.127 54.368A48 48 0 0 0 357.544 32H24C10.745 32 0 42.745 0 56v16c0 30.928 25.072 56 56 56h229.981c12.844 0 21.556 13.067 16.615 24.923l-21.41 51.385A32 32 0 0 1 251.648 224H128c-35.346 0-64 28.654-64 64v8c0 13.255 10.745 24 24 24h147.406a47.995 47.995 0 0 1 25.692 7.455l111.748 70.811A24.001 24.001 0 0 1 384 418.539V480z\"]\n};\nvar faHandMiddleFinger = {\n prefix: 'fas',\n iconName: 'hand-middle-finger',\n icon: [512, 512, [], \"f806\", \"M479.93 317.12a37.33 37.33 0 0 0-28.28-36.19L416 272v-49.59c0-11.44-9.69-21.29-23.15-23.54l-38.4-6.4C336.63 189.5 320 200.86 320 216v32a8 8 0 0 1-16 0V50c0-26.28-20.25-49.2-46.52-50A48 48 0 0 0 208 48v200a8 8 0 0 1-16 0v-32c0-15.15-16.63-26.51-34.45-23.54l-30.68 5.12c-18 3-30.87 16.12-30.87 31.38V376a8 8 0 0 1-16 0v-76l-27.36 15A37.34 37.34 0 0 0 32 348.4v73.47a37.31 37.31 0 0 0 10.93 26.39l30.93 30.93A112 112 0 0 0 153.05 512h215A112 112 0 0 0 480 400z\"]\n};\nvar faHandPaper = {\n prefix: 'fas',\n iconName: 'hand-paper',\n icon: [448, 512, [], \"f256\", \"M408.781 128.007C386.356 127.578 368 146.36 368 168.79V256h-8V79.79c0-22.43-18.356-41.212-40.781-40.783C297.488 39.423 280 57.169 280 79v177h-8V40.79C272 18.36 253.644-.422 231.219.007 209.488.423 192 18.169 192 40v216h-8V80.79c0-22.43-18.356-41.212-40.781-40.783C121.488 40.423 104 58.169 104 80v235.992l-31.648-43.519c-12.993-17.866-38.009-21.817-55.877-8.823-17.865 12.994-21.815 38.01-8.822 55.877l125.601 172.705A48 48 0 0 0 172.073 512h197.59c22.274 0 41.622-15.324 46.724-37.006l26.508-112.66a192.011 192.011 0 0 0 5.104-43.975V168c.001-21.831-17.487-39.577-39.218-39.993z\"]\n};\nvar faHandPeace = {\n prefix: 'fas',\n iconName: 'hand-peace',\n icon: [448, 512, [], \"f25b\", \"M408 216c-22.092 0-40 17.909-40 40h-8v-32c0-22.091-17.908-40-40-40s-40 17.909-40 40v32h-8V48c0-26.51-21.49-48-48-48s-48 21.49-48 48v208h-13.572L92.688 78.449C82.994 53.774 55.134 41.63 30.461 51.324 5.787 61.017-6.356 88.877 3.337 113.551l74.765 190.342-31.09 24.872c-15.381 12.306-19.515 33.978-9.741 51.081l64 112A39.998 39.998 0 0 0 136 512h240c18.562 0 34.686-12.77 38.937-30.838l32-136A39.97 39.97 0 0 0 448 336v-80c0-22.091-17.908-40-40-40z\"]\n};\nvar faHandPointDown = {\n prefix: 'fas',\n iconName: 'hand-point-down',\n icon: [384, 512, [], \"f0a7\", \"M91.826 467.2V317.966c-8.248 5.841-16.558 10.57-24.918 14.153C35.098 345.752-.014 322.222 0 288c.008-18.616 10.897-32.203 29.092-40 28.286-12.122 64.329-78.648 77.323-107.534 7.956-17.857 25.479-28.453 43.845-28.464l.001-.002h171.526c11.812 0 21.897 8.596 23.703 20.269 7.25 46.837 38.483 61.76 38.315 123.731-.007 2.724.195 13.254.195 16 0 50.654-22.122 81.574-71.263 72.6-9.297 18.597-39.486 30.738-62.315 16.45-21.177 24.645-53.896 22.639-70.944 6.299V467.2c0 24.15-20.201 44.8-43.826 44.8-23.283 0-43.826-21.35-43.826-44.8zM112 72V24c0-13.255 10.745-24 24-24h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24zm212-24c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z\"]\n};\nvar faHandPointLeft = {\n prefix: 'fas',\n iconName: 'hand-point-left',\n icon: [512, 512, [], \"f0a5\", \"M44.8 155.826h149.234c-5.841-8.248-10.57-16.558-14.153-24.918C166.248 99.098 189.778 63.986 224 64c18.616.008 32.203 10.897 40 29.092 12.122 28.286 78.648 64.329 107.534 77.323 17.857 7.956 28.453 25.479 28.464 43.845l.002.001v171.526c0 11.812-8.596 21.897-20.269 23.703-46.837 7.25-61.76 38.483-123.731 38.315-2.724-.007-13.254.195-16 .195-50.654 0-81.574-22.122-72.6-71.263-18.597-9.297-30.738-39.486-16.45-62.315-24.645-21.177-22.639-53.896-6.299-70.944H44.8c-24.15 0-44.8-20.201-44.8-43.826 0-23.283 21.35-43.826 44.8-43.826zM440 176h48c13.255 0 24 10.745 24 24v192c0 13.255-10.745 24-24 24h-48c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24zm24 212c11.046 0 20-8.954 20-20s-8.954-20-20-20-20 8.954-20 20 8.954 20 20 20z\"]\n};\nvar faHandPointRight = {\n prefix: 'fas',\n iconName: 'hand-point-right',\n icon: [512, 512, [], \"f0a4\", \"M512 199.652c0 23.625-20.65 43.826-44.8 43.826h-99.851c16.34 17.048 18.346 49.766-6.299 70.944 14.288 22.829 2.147 53.017-16.45 62.315C353.574 425.878 322.654 448 272 448c-2.746 0-13.276-.203-16-.195-61.971.168-76.894-31.065-123.731-38.315C120.596 407.683 112 397.599 112 385.786V214.261l.002-.001c.011-18.366 10.607-35.889 28.464-43.845 28.886-12.994 95.413-49.038 107.534-77.323 7.797-18.194 21.384-29.084 40-29.092 34.222-.014 57.752 35.098 44.119 66.908-3.583 8.359-8.312 16.67-14.153 24.918H467.2c23.45 0 44.8 20.543 44.8 43.826zM96 200v192c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24h48c13.255 0 24 10.745 24 24zM68 368c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z\"]\n};\nvar faHandPointUp = {\n prefix: 'fas',\n iconName: 'hand-point-up',\n icon: [384, 512, [], \"f0a6\", \"M135.652 0c23.625 0 43.826 20.65 43.826 44.8v99.851c17.048-16.34 49.766-18.346 70.944 6.299 22.829-14.288 53.017-2.147 62.315 16.45C361.878 158.426 384 189.346 384 240c0 2.746-.203 13.276-.195 16 .168 61.971-31.065 76.894-38.315 123.731C343.683 391.404 333.599 400 321.786 400H150.261l-.001-.002c-18.366-.011-35.889-10.607-43.845-28.464C93.421 342.648 57.377 276.122 29.092 264 10.897 256.203.008 242.616 0 224c-.014-34.222 35.098-57.752 66.908-44.119 8.359 3.583 16.67 8.312 24.918 14.153V44.8c0-23.45 20.543-44.8 43.826-44.8zM136 416h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24v-48c0-13.255 10.745-24 24-24zm168 28c-11.046 0-20 8.954-20 20s8.954 20 20 20 20-8.954 20-20-8.954-20-20-20z\"]\n};\nvar faHandPointer = {\n prefix: 'fas',\n iconName: 'hand-pointer',\n icon: [448, 512, [], \"f25a\", \"M448 240v96c0 3.084-.356 6.159-1.063 9.162l-32 136C410.686 499.23 394.562 512 376 512H168a40.004 40.004 0 0 1-32.35-16.473l-127.997-176c-12.993-17.866-9.043-42.883 8.822-55.876 17.867-12.994 42.884-9.043 55.877 8.823L104 315.992V40c0-22.091 17.908-40 40-40s40 17.909 40 40v200h8v-40c0-22.091 17.908-40 40-40s40 17.909 40 40v40h8v-24c0-22.091 17.908-40 40-40s40 17.909 40 40v24h8c0-22.091 17.908-40 40-40s40 17.909 40 40zm-256 80h-8v96h8v-96zm88 0h-8v96h8v-96zm88 0h-8v96h8v-96z\"]\n};\nvar faHandRock = {\n prefix: 'fas',\n iconName: 'hand-rock',\n icon: [512, 512, [], \"f255\", \"M464.8 80c-26.9-.4-48.8 21.2-48.8 48h-8V96.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v32h-8V80.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v48h-8V96.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v136l-8-7.1v-48.1c0-26.3-20.9-48.3-47.2-48.8C21.9 127.6 0 149.2 0 176v66.4c0 27.4 11.7 53.5 32.2 71.8l111.7 99.3c10.2 9.1 16.1 22.2 16.1 35.9v6.7c0 13.3 10.7 24 24 24h240c13.3 0 24-10.7 24-24v-2.9c0-12.8 2.6-25.5 7.5-37.3l49-116.3c5-11.8 7.5-24.5 7.5-37.3V128.8c0-26.3-20.9-48.4-47.2-48.8z\"]\n};\nvar faHandScissors = {\n prefix: 'fas',\n iconName: 'hand-scissors',\n icon: [512, 512, [], \"f257\", \"M216 440c0-22.092 17.909-40 40-40v-8h-32c-22.091 0-40-17.908-40-40s17.909-40 40-40h32v-8H48c-26.51 0-48-21.49-48-48s21.49-48 48-48h208v-13.572l-177.551-69.74c-24.674-9.694-36.818-37.555-27.125-62.228 9.693-24.674 37.554-36.817 62.228-27.124l190.342 74.765 24.872-31.09c12.306-15.381 33.978-19.515 51.081-9.741l112 64A40.002 40.002 0 0 1 512 168v240c0 18.562-12.77 34.686-30.838 38.937l-136 32A39.982 39.982 0 0 1 336 480h-80c-22.091 0-40-17.908-40-40z\"]\n};\nvar faHandSparkles = {\n prefix: 'fas',\n iconName: 'hand-sparkles',\n icon: [640, 512, [], \"e05d\", \"M106.66,170.64l.09,0,49.55-20.65a7.32,7.32,0,0,0,3.68-6h0a7.29,7.29,0,0,0-3.68-6l-49.57-20.67-.07,0L86,67.68a6.66,6.66,0,0,0-11.92,0l-20.7,49.63-.05,0L3.7,138A7.29,7.29,0,0,0,0,144H0a7.32,7.32,0,0,0,3.68,6L53.27,170.6l.07,0L74,220.26a6.65,6.65,0,0,0,11.92,0l20.69-49.62ZM471.38,467.41l-1-.42-1-.5a38.67,38.67,0,0,1,0-69.14l1-.49,1-.43,37.49-15.63,15.63-37.48.41-1,.47-.95c3.85-7.74,10.58-13.63,18.35-17.34,0-1.33.25-2.69.27-4V144a32,32,0,0,0-64,0v72a8,8,0,0,1-8,8H456a8,8,0,0,1-8-8V64a32,32,0,0,0-64,0V216a8,8,0,0,1-8,8H360a8,8,0,0,1-8-8V32a32,32,0,0,0-64,0V216a8,8,0,0,1-8,8H264a8,8,0,0,1-8-8V64a32,32,0,0,0-64,0v241l-23.59-32.49a40,40,0,0,0-64.71,47.09L229.3,492.21A48.07,48.07,0,0,0,268.09,512H465.7c19.24,0,35.65-11.73,43.24-28.79l-.07-.17ZM349.79,339.52,320,351.93l-12.42,29.78a4,4,0,0,1-7.15,0L288,351.93l-29.79-12.41a4,4,0,0,1,0-7.16L288,319.94l12.42-29.78a4,4,0,0,1,7.15,0L320,319.94l29.79,12.42a4,4,0,0,1,0,7.16ZM640,431.91a7.28,7.28,0,0,0-3.68-6l-49.57-20.67-.07,0L566,355.63a6.66,6.66,0,0,0-11.92,0l-20.7,49.63-.05,0L483.7,426a7.28,7.28,0,0,0-3.68,6h0a7.29,7.29,0,0,0,3.68,5.95l49.57,20.67.07,0L554,508.21a6.65,6.65,0,0,0,11.92,0l20.69-49.62h0l.09,0,49.55-20.66a7.29,7.29,0,0,0,3.68-5.95h0Z\"]\n};\nvar faHandSpock = {\n prefix: 'fas',\n iconName: 'hand-spock',\n icon: [512, 512, [], \"f259\", \"M510.9005,145.27027,442.604,432.09391A103.99507,103.99507,0,0,1,341.43745,512H214.074a135.96968,135.96968,0,0,1-93.18489-36.95291L12.59072,373.12723a39.992,39.992,0,0,1,54.8122-58.24988l60.59342,57.02528v0a283.24849,283.24849,0,0,0-11.6703-80.46734L73.63726,147.36011a40.00575,40.00575,0,1,1,76.71833-22.7187l37.15458,125.39477a8.33113,8.33113,0,0,0,16.05656-4.4414L153.26183,49.95406A39.99638,39.99638,0,1,1,230.73015,30.0166l56.09491,218.15825a10.42047,10.42047,0,0,0,20.30018-.501L344.80766,63.96966a40.052,40.052,0,0,1,51.30245-30.0893c19.86073,6.2998,30.86262,27.67378,26.67564,48.08487l-33.83869,164.966a7.55172,7.55172,0,0,0,14.74406,3.2666l29.3973-123.45874a39.99414,39.99414,0,1,1,77.81208,18.53121Z\"]\n};\nvar faHands = {\n prefix: 'fas',\n iconName: 'hands',\n icon: [640, 512, [], \"f4c2\", \"M204.8 230.4c-10.6-14.1-30.7-17-44.8-6.4-14.1 10.6-17 30.7-6.4 44.8l38.1 50.8c4.8 6.4 4.1 15.3-1.5 20.9l-12.8 12.8c-6.7 6.7-17.6 6.2-23.6-1.1L64 244.4V96c0-17.7-14.3-32-32-32S0 78.3 0 96v218.4c0 10.9 3.7 21.5 10.5 30l104.1 134.3c5 6.5 8.4 13.9 10.4 21.7 1.8 6.9 8.1 11.6 15.3 11.6H272c8.8 0 16-7.2 16-16V384c0-27.7-9-54.6-25.6-76.8l-57.6-76.8zM608 64c-17.7 0-32 14.3-32 32v148.4l-89.8 107.8c-6 7.2-17 7.7-23.6 1.1l-12.8-12.8c-5.6-5.6-6.3-14.5-1.5-20.9l38.1-50.8c10.6-14.1 7.7-34.2-6.4-44.8-14.1-10.6-34.2-7.7-44.8 6.4l-57.6 76.8C361 329.4 352 356.3 352 384v112c0 8.8 7.2 16 16 16h131.7c7.1 0 13.5-4.7 15.3-11.6 2-7.8 5.4-15.2 10.4-21.7l104.1-134.3c6.8-8.5 10.5-19.1 10.5-30V96c0-17.7-14.3-32-32-32z\"]\n};\nvar faHandsHelping = {\n prefix: 'fas',\n iconName: 'hands-helping',\n icon: [640, 512, [], \"f4c4\", \"M488 192H336v56c0 39.7-32.3 72-72 72s-72-32.3-72-72V126.4l-64.9 39C107.8 176.9 96 197.8 96 220.2v47.3l-80 46.2C.7 322.5-4.6 342.1 4.3 357.4l80 138.6c8.8 15.3 28.4 20.5 43.7 11.7L231.4 448H368c35.3 0 64-28.7 64-64h16c17.7 0 32-14.3 32-32v-64h8c13.3 0 24-10.7 24-24v-48c0-13.3-10.7-24-24-24zm147.7-37.4L555.7 16C546.9.7 527.3-4.5 512 4.3L408.6 64H306.4c-12 0-23.7 3.4-33.9 9.7L239 94.6c-9.4 5.8-15 16.1-15 27.1V248c0 22.1 17.9 40 40 40s40-17.9 40-40v-88h184c30.9 0 56 25.1 56 56v28.5l80-46.2c15.3-8.9 20.5-28.4 11.7-43.7z\"]\n};\nvar faHandsWash = {\n prefix: 'fas',\n iconName: 'hands-wash',\n icon: [576, 512, [], \"e05e\", \"M496,224a48,48,0,1,0-48-48A48,48,0,0,0,496,224ZM311.47,178.45A56.77,56.77,0,0,1,328,176a56,56,0,0,1,19,3.49l15.35-48.61A24,24,0,0,0,342,99.74c-11.53-1.35-22.21,6.44-25.71,17.51l-20.9,66.17ZM93.65,386.33c.8-.19,1.54-.54,2.35-.71V359.93a156,156,0,0,1,107.06-148l73.7-22.76L310.92,81.05a24,24,0,0,0-20.33-31.11c-11.53-1.34-22.22,6.45-25.72,17.52L231.42,173.88a8,8,0,0,1-15.26-4.83L259.53,31.26A24,24,0,0,0,239.2.15C227.67-1.19,217,6.6,213.49,17.66L165.56,169.37a8,8,0,1,1-15.26-4.82l38.56-122a24,24,0,0,0-20.33-31.11C157,10,146.32,17.83,142.82,28.9l-60,189.85L80.76,168.7A24,24,0,0,0,56.9,144.55c-13.23-.05-24.72,10.54-24.9,23.86V281.14A123.69,123.69,0,0,0,93.65,386.33ZM519.1,336H360a8,8,0,0,1,0-16H488a24,24,0,0,0,23.54-28.76C509.35,279.84,498.71,272,487.1,272H288l47.09-17.06a24,24,0,0,0-14.18-45.88L213.19,242.31A123.88,123.88,0,0,0,128,360v25.65a79.78,79.78,0,0,1,58,108.63A118.9,118.9,0,0,0,248,512H456a24,24,0,0,0,23.54-28.76C477.35,471.84,466.71,464,455.1,464H360a8,8,0,0,1,0-16H488a24,24,0,0,0,23.54-28.76C509.35,407.84,498.71,400,487.1,400H360a8,8,0,0,1,0-16H520a24,24,0,0,0,23.54-28.76C541.35,343.84,530.71,336,519.1,336ZM416,64a32,32,0,1,0-32-32A32,32,0,0,0,416,64ZM112,416a48,48,0,1,0,48,48A48,48,0,0,0,112,416Z\"]\n};\nvar faHandshake = {\n prefix: 'fas',\n iconName: 'handshake',\n icon: [640, 512, [], \"f2b5\", \"M434.7 64h-85.9c-8 0-15.7 3-21.6 8.4l-98.3 90c-.1.1-.2.3-.3.4-16.6 15.6-16.3 40.5-2.1 56 12.7 13.9 39.4 17.6 56.1 2.7.1-.1.3-.1.4-.2l79.9-73.2c6.5-5.9 16.7-5.5 22.6 1 6 6.5 5.5 16.6-1 22.6l-26.1 23.9L504 313.8c2.9 2.4 5.5 5 7.9 7.7V128l-54.6-54.6c-5.9-6-14.1-9.4-22.6-9.4zM544 128.2v223.9c0 17.7 14.3 32 32 32h64V128.2h-96zm48 223.9c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM0 384h64c17.7 0 32-14.3 32-32V128.2H0V384zm48-63.9c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16c0-8.9 7.2-16 16-16zm435.9 18.6L334.6 217.5l-30 27.5c-29.7 27.1-75.2 24.5-101.7-4.4-26.9-29.4-24.8-74.9 4.4-101.7L289.1 64h-83.8c-8.5 0-16.6 3.4-22.6 9.4L128 128v223.9h18.3l90.5 81.9c27.4 22.3 67.7 18.1 90-9.3l.2-.2 17.9 15.5c15.9 13 39.4 10.5 52.3-5.4l31.4-38.6 5.4 4.4c13.7 11.1 33.9 9.1 45-4.7l9.5-11.7c11.2-13.8 9.1-33.9-4.6-45.1z\"]\n};\nvar faHandshakeAltSlash = {\n prefix: 'fas',\n iconName: 'handshake-alt-slash',\n icon: [640, 512, [], \"e05f\", \"M358.59,195.6,504.2,313.8a63.4,63.4,0,0,1,22.21,37.91H624a16.05,16.05,0,0,0,16-16V143.91A16,16,0,0,0,624,128H512L457.41,73.41A32,32,0,0,0,434.8,64H348.91a32,32,0,0,0-21.61,8.41l-88.12,80.68-25.69-19.85L289.09,64H205.3a32,32,0,0,0-22.6,9.41l-20.34,20.3L45.47,3.38A16,16,0,0,0,23,6.19L3.38,31.46A16,16,0,0,0,6.19,53.91L594.54,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45L303.4,202.72l32.69-29.92,27-24.7a16,16,0,0,1,21.61,23.61ZM16,128A16.05,16.05,0,0,0,0,144V335.91a16,16,0,0,0,16,16H146.3l90.5,81.89a64,64,0,0,0,90-9.3l.2-.2,17.91,15.5a37.16,37.16,0,0,0,52.29-5.39l8.8-10.82L23.56,128Z\"]\n};\nvar faHandshakeSlash = {\n prefix: 'fas',\n iconName: 'handshake-slash',\n icon: [640, 512, [], \"e060\", \"M0,128.21V384H64a32,32,0,0,0,32-32V184L23.83,128.21ZM48,320.1a16,16,0,1,1-16,16A16,16,0,0,1,48,320.1Zm80,31.81h18.3l90.5,81.89a64,64,0,0,0,90-9.3l.2-.2,17.91,15.5a37.16,37.16,0,0,0,52.29-5.39l8.8-10.82L128,208.72Zm416-223.7V352.1a32,32,0,0,0,32,32h64V128.21ZM592,352.1a16,16,0,1,1,16-16A16,16,0,0,1,592,352.1ZM303.33,202.67l59.58-54.57a16,16,0,0,1,21.59,23.61L358.41,195.6,504,313.8a73.08,73.08,0,0,1,7.91,7.7V128L457.3,73.41A31.76,31.76,0,0,0,434.7,64H348.8a31.93,31.93,0,0,0-21.6,8.41l-88.07,80.64-25.64-19.81L289.09,64H205.3a32,32,0,0,0-22.6,9.41L162.36,93.72,45.47,3.38A16,16,0,0,0,23,6.19L3.38,31.46A16,16,0,0,0,6.19,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.65-25.27a16,16,0,0,0-2.82-22.45Z\"]\n};\nvar faHanukiah = {\n prefix: 'fas',\n iconName: 'hanukiah',\n icon: [640, 512, [], \"f6e6\", \"M232 160c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm-64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm224 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm88 8c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v120h32V168zm-440-8c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm520 0h-32c-8.84 0-16 7.16-16 16v112c0 17.67-14.33 32-32 32H352V128c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v192H96c-17.67 0-32-14.33-32-32V176c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v112c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V176c0-8.84-7.16-16-16-16zm-16-32c13.25 0 24-11.94 24-26.67S608 48 608 48s-24 38.61-24 53.33S594.75 128 608 128zm-576 0c13.25 0 24-11.94 24-26.67S32 48 32 48 8 86.61 8 101.33 18.75 128 32 128zm288-48c13.25 0 24-11.94 24-26.67S320 0 320 0s-24 38.61-24 53.33S306.75 80 320 80zm-208 48c13.25 0 24-11.94 24-26.67S112 48 112 48s-24 38.61-24 53.33S98.75 128 112 128zm64 0c13.25 0 24-11.94 24-26.67S176 48 176 48s-24 38.61-24 53.33S162.75 128 176 128zm64 0c13.25 0 24-11.94 24-26.67S240 48 240 48s-24 38.61-24 53.33S226.75 128 240 128zm160 0c13.25 0 24-11.94 24-26.67S400 48 400 48s-24 38.61-24 53.33S386.75 128 400 128zm64 0c13.25 0 24-11.94 24-26.67S464 48 464 48s-24 38.61-24 53.33S450.75 128 464 128zm64 0c13.25 0 24-11.94 24-26.67S528 48 528 48s-24 38.61-24 53.33S514.75 128 528 128z\"]\n};\nvar faHardHat = {\n prefix: 'fas',\n iconName: 'hard-hat',\n icon: [512, 512, [], \"f807\", \"M480 288c0-80.25-49.28-148.92-119.19-177.62L320 192V80a16 16 0 0 0-16-16h-96a16 16 0 0 0-16 16v112l-40.81-81.62C81.28 139.08 32 207.75 32 288v64h448zm16 96H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faHashtag = {\n prefix: 'fas',\n iconName: 'hashtag',\n icon: [448, 512, [], \"f292\", \"M440.667 182.109l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l14.623-81.891C377.123 38.754 371.468 32 363.997 32h-40.632a12 12 0 0 0-11.813 9.891L296.175 128H197.54l14.623-81.891C213.477 38.754 207.822 32 200.35 32h-40.632a12 12 0 0 0-11.813 9.891L132.528 128H53.432a12 12 0 0 0-11.813 9.891l-7.143 40C33.163 185.246 38.818 192 46.289 192h74.81L98.242 320H19.146a12 12 0 0 0-11.813 9.891l-7.143 40C-1.123 377.246 4.532 384 12.003 384h74.81L72.19 465.891C70.877 473.246 76.532 480 84.003 480h40.632a12 12 0 0 0 11.813-9.891L151.826 384h98.634l-14.623 81.891C234.523 473.246 240.178 480 247.65 480h40.632a12 12 0 0 0 11.813-9.891L315.472 384h79.096a12 12 0 0 0 11.813-9.891l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l22.857-128h79.096a12 12 0 0 0 11.813-9.891zM261.889 320h-98.634l22.857-128h98.634l-22.857 128z\"]\n};\nvar faHatCowboy = {\n prefix: 'fas',\n iconName: 'hat-cowboy',\n icon: [640, 512, [], \"f8c0\", \"M490 296.9C480.51 239.51 450.51 64 392.3 64c-14 0-26.49 5.93-37 14a58.21 58.21 0 0 1-70.58 0c-10.51-8-23-14-37-14-58.2 0-88.2 175.47-97.71 232.88C188.81 309.47 243.73 320 320 320s131.23-10.51 170-23.1zm142.9-37.18a16 16 0 0 0-19.75 1.5c-1 .9-101.27 90.78-293.16 90.78-190.82 0-292.22-89.94-293.24-90.84A16 16 0 0 0 1 278.53C1.73 280.55 78.32 480 320 480s318.27-199.45 319-201.47a16 16 0 0 0-6.09-18.81z\"]\n};\nvar faHatCowboySide = {\n prefix: 'fas',\n iconName: 'hat-cowboy-side',\n icon: [640, 512, [], \"f8c1\", \"M260.8 291.06c-28.63-22.94-62-35.06-96.4-35.06C87 256 21.47 318.72 1.43 412.06c-3.55 16.6-.43 33.83 8.57 47.3C18.75 472.47 31.83 480 45.88 480H592c-103.21 0-155-37.07-233.19-104.46zm234.65-18.29L468.4 116.2A64 64 0 0 0 392 64.41L200.85 105a64 64 0 0 0-50.35 55.79L143.61 226c6.9-.83 13.7-2 20.79-2 41.79 0 82 14.55 117.29 42.82l98 84.48C450.76 412.54 494.9 448 592 448a48 48 0 0 0 48-48c0-25.39-29.6-119.33-144.55-127.23z\"]\n};\nvar faHatWizard = {\n prefix: 'fas',\n iconName: 'hat-wizard',\n icon: [512, 512, [], \"f6e8\", \"M496 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-304-64l-64-32 64-32 32-64 32 64 64 32-64 32-16 32h208l-86.41-201.63a63.955 63.955 0 0 1-1.89-45.45L416 0 228.42 107.19a127.989 127.989 0 0 0-53.46 59.15L64 416h144l-16-32zm64-224l16-32 16 32 32 16-32 16-16 32-16-32-32-16 32-16z\"]\n};\nvar faHdd = {\n prefix: 'fas',\n iconName: 'hdd',\n icon: [576, 512, [], \"f0a0\", \"M576 304v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48zm-48-80a79.557 79.557 0 0 1 30.777 6.165L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L17.223 230.165A79.557 79.557 0 0 1 48 224h480zm-48 96c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm-96 0c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z\"]\n};\nvar faHeadSideCough = {\n prefix: 'fas',\n iconName: 'head-side-cough',\n icon: [640, 512, [], \"e061\", \"M616,304a24,24,0,1,0-24-24A24,24,0,0,0,616,304ZM552,416a24,24,0,1,0,24,24A24,24,0,0,0,552,416Zm-64-56a24,24,0,1,0,24,24A24,24,0,0,0,488,360ZM616,464a24,24,0,1,0,24,24A24,24,0,0,0,616,464Zm0-104a24,24,0,1,0,24,24A24,24,0,0,0,616,360Zm-64-40a24,24,0,1,0,24,24A24,24,0,0,0,552,320Zm-74.78-45c-21-47.12-48.5-151.75-73.12-186.75A208.13,208.13,0,0,0,234.1,0H192C86,0,0,86,0,192c0,56.75,24.75,107.62,64,142.88V512H288V480h64a64,64,0,0,0,64-64H320a32,32,0,0,1,0-64h96V320h32A32,32,0,0,0,477.22,275ZM288,224a32,32,0,1,1,32-32A32.07,32.07,0,0,1,288,224Z\"]\n};\nvar faHeadSideCoughSlash = {\n prefix: 'fas',\n iconName: 'head-side-cough-slash',\n icon: [640, 512, [], \"e062\", \"M454.11,319.21c19.56-3.81,31.62-25,23.11-44.21-21-47.12-48.5-151.75-73.12-186.75A208.13,208.13,0,0,0,234.1,0H192A190.64,190.64,0,0,0,84.18,33.3L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45ZM313.39,210.45,263.61,172c5.88-7.14,14.43-12,24.36-12a32.06,32.06,0,0,1,32,32C320,199,317.24,205.17,313.39,210.45ZM616,304a24,24,0,1,0-24-24A24,24,0,0,0,616,304Zm-64,64a24,24,0,1,0-24-24A24,24,0,0,0,552,368ZM288,384a32,32,0,0,1,32-32h19.54L20.73,105.59A190.86,190.86,0,0,0,0,192c0,56.75,24.75,107.62,64,142.88V512H288V480h64a64,64,0,0,0,64-64H320A32,32,0,0,1,288,384Zm328-24a24,24,0,1,0,24,24A24,24,0,0,0,616,360Z\"]\n};\nvar faHeadSideMask = {\n prefix: 'fas',\n iconName: 'head-side-mask',\n icon: [512, 512, [], \"e063\", \"M.15,184.42C-2.17,244.21,23,298.06,64,334.88V512H224V316.51L3.67,156.25A182.28,182.28,0,0,0,.15,184.42ZM509.22,275c-21-47.12-48.5-151.75-73.12-186.75A208.11,208.11,0,0,0,266.11,0H200C117,0,42.48,50.57,13.25,123.65L239.21,288H511.76A31.35,31.35,0,0,0,509.22,275ZM320,224a32,32,0,1,1,32-32A32.07,32.07,0,0,1,320,224Zm16,144H496l16-48H256V512H401.88a64,64,0,0,0,60.71-43.76L464,464H336a16,16,0,0,1,0-32H474.67l10.67-32H336a16,16,0,0,1,0-32Z\"]\n};\nvar faHeadSideVirus = {\n prefix: 'fas',\n iconName: 'head-side-virus',\n icon: [512, 512, [], \"e064\", \"M272,240a16,16,0,1,0,16,16A16,16,0,0,0,272,240Zm-64-64a16,16,0,1,0,16,16A16,16,0,0,0,208,176Zm301.2,99c-20.93-47.12-48.43-151.73-73.07-186.75A207.9,207.9,0,0,0,266.09,0H192C86,0,0,86,0,192A191.23,191.23,0,0,0,64,334.81V512H320V448h64a64,64,0,0,0,64-64V320H480A32,32,0,0,0,509.2,275ZM368,240H355.88c-28.51,0-42.79,34.47-22.63,54.63l8.58,8.57a16,16,0,1,1-22.63,22.63l-8.57-8.58C290.47,297.09,256,311.37,256,339.88V352a16,16,0,0,1-32,0V339.88c0-28.51-34.47-42.79-54.63-22.63l-8.57,8.58a16,16,0,0,1-22.63-22.63l8.58-8.57c20.16-20.16,5.88-54.63-22.63-54.63H112a16,16,0,0,1,0-32h12.12c28.51,0,42.79-34.47,22.63-54.63l-8.58-8.57a16,16,0,0,1,22.63-22.63l8.57,8.58c20.16,20.16,54.63,5.88,54.63-22.63V96a16,16,0,0,1,32,0v12.12c0,28.51,34.47,42.79,54.63,22.63l8.57-8.58a16,16,0,0,1,22.63,22.63l-8.58,8.57C313.09,173.53,327.37,208,355.88,208H368a16,16,0,0,1,0,32Z\"]\n};\nvar faHeading = {\n prefix: 'fas',\n iconName: 'heading',\n icon: [512, 512, [], \"f1dc\", \"M448 96v320h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H320a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V288H160v128h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V96H32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16h-32v128h192V96h-32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16z\"]\n};\nvar faHeadphones = {\n prefix: 'fas',\n iconName: 'headphones',\n icon: [512, 512, [], \"f025\", \"M256 32C114.52 32 0 146.496 0 288v48a32 32 0 0 0 17.689 28.622l14.383 7.191C34.083 431.903 83.421 480 144 480h24c13.255 0 24-10.745 24-24V280c0-13.255-10.745-24-24-24h-24c-31.342 0-59.671 12.879-80 33.627V288c0-105.869 86.131-192 192-192s192 86.131 192 192v1.627C427.671 268.879 399.342 256 368 256h-24c-13.255 0-24 10.745-24 24v176c0 13.255 10.745 24 24 24h24c60.579 0 109.917-48.098 111.928-108.187l14.382-7.191A32 32 0 0 0 512 336v-48c0-141.479-114.496-256-256-256z\"]\n};\nvar faHeadphonesAlt = {\n prefix: 'fas',\n iconName: 'headphones-alt',\n icon: [512, 512, [], \"f58f\", \"M160 288h-16c-35.35 0-64 28.7-64 64.12v63.76c0 35.41 28.65 64.12 64 64.12h16c17.67 0 32-14.36 32-32.06V320.06c0-17.71-14.33-32.06-32-32.06zm208 0h-16c-17.67 0-32 14.35-32 32.06v127.88c0 17.7 14.33 32.06 32 32.06h16c35.35 0 64-28.71 64-64.12v-63.76c0-35.41-28.65-64.12-64-64.12zM256 32C112.91 32 4.57 151.13 0 288v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288c0-114.67 93.33-207.8 208-207.82 114.67.02 208 93.15 208 207.82v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288C507.43 151.13 399.09 32 256 32z\"]\n};\nvar faHeadset = {\n prefix: 'fas',\n iconName: 'headset',\n icon: [512, 512, [], \"f590\", \"M192 208c0-17.67-14.33-32-32-32h-16c-35.35 0-64 28.65-64 64v48c0 35.35 28.65 64 64 64h16c17.67 0 32-14.33 32-32V208zm176 144c35.35 0 64-28.65 64-64v-48c0-35.35-28.65-64-64-64h-16c-17.67 0-32 14.33-32 32v112c0 17.67 14.33 32 32 32h16zM256 0C113.18 0 4.58 118.83 0 256v16c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-16c0-114.69 93.31-208 208-208s208 93.31 208 208h-.12c.08 2.43.12 165.72.12 165.72 0 23.35-18.93 42.28-42.28 42.28H320c0-26.51-21.49-48-48-48h-32c-26.51 0-48 21.49-48 48s21.49 48 48 48h181.72c49.86 0 90.28-40.42 90.28-90.28V256C507.42 118.83 398.82 0 256 0z\"]\n};\nvar faHeart = {\n prefix: 'fas',\n iconName: 'heart',\n icon: [512, 512, [], \"f004\", \"M462.3 62.6C407.5 15.9 326 24.3 275.7 76.2L256 96.5l-19.7-20.3C186.1 24.3 104.5 15.9 49.7 62.6c-62.8 53.6-66.1 149.8-9.9 207.9l193.5 199.8c12.5 12.9 32.8 12.9 45.3 0l193.5-199.8c56.3-58.1 53-154.3-9.8-207.9z\"]\n};\nvar faHeartBroken = {\n prefix: 'fas',\n iconName: 'heart-broken',\n icon: [512, 512, [], \"f7a9\", \"M473.7 73.8l-2.4-2.5c-46-47-118-51.7-169.6-14.8L336 159.9l-96 64 48 128-144-144 96-64-28.6-86.5C159.7 19.6 87 24 40.7 71.4l-2.4 2.4C-10.4 123.6-12.5 202.9 31 256l212.1 218.6c7.1 7.3 18.6 7.3 25.7 0L481 255.9c43.5-53 41.4-132.3-7.3-182.1z\"]\n};\nvar faHeartbeat = {\n prefix: 'fas',\n iconName: 'heartbeat',\n icon: [512, 512, [], \"f21e\", \"M320.2 243.8l-49.7 99.4c-6 12.1-23.4 11.7-28.9-.6l-56.9-126.3-30 71.7H60.6l182.5 186.5c7.1 7.3 18.6 7.3 25.7 0L451.4 288H342.3l-22.1-44.2zM473.7 73.9l-2.4-2.5c-51.5-52.6-135.8-52.6-187.4 0L256 100l-27.9-28.5c-51.5-52.7-135.9-52.7-187.4 0l-2.4 2.4C-10.4 123.7-12.5 203 31 256h102.4l35.9-86.2c5.4-12.9 23.6-13.2 29.4-.4l58.2 129.3 49-97.9c5.9-11.8 22.7-11.8 28.6 0l27.6 55.2H481c43.5-53 41.4-132.3-7.3-182.1z\"]\n};\nvar faHelicopter = {\n prefix: 'fas',\n iconName: 'helicopter',\n icon: [640, 512, [], \"f533\", \"M304 384h272c17.67 0 32-14.33 32-32 0-123.71-100.29-224-224-224V64h176c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H144c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h176v64H112L68.8 70.4C65.78 66.37 61.03 64 56 64H16.01C5.6 64-2.04 73.78.49 83.88L32 192l160 64 86.4 115.2A31.992 31.992 0 0 0 304 384zm112-188.49C478.55 208.3 528.03 257.44 540.79 320H416V195.51zm219.37 263.3l-22.15-22.2c-6.25-6.26-16.24-6.1-22.64.01-7.09 6.77-13.84 11.25-24.64 11.25H240c-8.84 0-16 7.18-16 16.03v32.06c0 8.85 7.16 16.03 16 16.03h325.94c14.88 0 35.3-.47 68.45-29.52 7.02-6.14 7.57-17.05.98-23.66z\"]\n};\nvar faHighlighter = {\n prefix: 'fas',\n iconName: 'highlighter',\n icon: [544, 512, [], \"f591\", \"M0 479.98L99.92 512l35.45-35.45-67.04-67.04L0 479.98zm124.61-240.01a36.592 36.592 0 0 0-10.79 38.1l13.05 42.83-50.93 50.94 96.23 96.23 50.86-50.86 42.74 13.08c13.73 4.2 28.65-.01 38.15-10.78l35.55-41.64-173.34-173.34-41.52 35.44zm403.31-160.7l-63.2-63.2c-20.49-20.49-53.38-21.52-75.12-2.35L190.55 183.68l169.77 169.78L530.27 154.4c19.18-21.74 18.15-54.63-2.35-75.13z\"]\n};\nvar faHiking = {\n prefix: 'fas',\n iconName: 'hiking',\n icon: [384, 512, [], \"f6ec\", \"M80.95 472.23c-4.28 17.16 6.14 34.53 23.28 38.81 2.61.66 5.22.95 7.8.95 14.33 0 27.37-9.7 31.02-24.23l25.24-100.97-52.78-52.78-34.56 138.22zm14.89-196.12L137 117c2.19-8.42-3.14-16.95-11.92-19.06-43.88-10.52-88.35 15.07-99.32 57.17L.49 253.24c-2.19 8.42 3.14 16.95 11.92 19.06l63.56 15.25c8.79 2.1 17.68-3.02 19.87-11.44zM368 160h-16c-8.84 0-16 7.16-16 16v16h-34.75l-46.78-46.78C243.38 134.11 228.61 128 212.91 128c-27.02 0-50.47 18.3-57.03 44.52l-26.92 107.72a32.012 32.012 0 0 0 8.42 30.39L224 397.25V480c0 17.67 14.33 32 32 32s32-14.33 32-32v-82.75c0-17.09-6.66-33.16-18.75-45.25l-46.82-46.82c.15-.5.49-.89.62-1.41l19.89-79.57 22.43 22.43c6 6 14.14 9.38 22.62 9.38h48v240c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V176c.01-8.84-7.15-16-15.99-16zM240 96c26.51 0 48-21.49 48-48S266.51 0 240 0s-48 21.49-48 48 21.49 48 48 48z\"]\n};\nvar faHippo = {\n prefix: 'fas',\n iconName: 'hippo',\n icon: [640, 512, [], \"f6ed\", \"M581.12 96.2c-27.67-.15-52.5 17.58-76.6 26.62C489.98 88.27 455.83 64 416 64c-11.28 0-21.95 2.3-32 5.88V56c0-13.26-10.75-24-24-24h-16c-13.25 0-24 10.74-24 24v48.98C286.01 79.58 241.24 64 192 64 85.96 64 0 135.64 0 224v240c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16v-70.79C128.35 407.57 166.72 416 208 416s79.65-8.43 112-22.79V464c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V288h128v32c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-32c17.67 0 32-14.33 32-32v-92.02c0-34.09-24.79-67.59-58.88-67.78zM448 176c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z\"]\n};\nvar faHistory = {\n prefix: 'fas',\n iconName: 'history',\n icon: [512, 512, [], \"f1da\", \"M504 255.531c.253 136.64-111.18 248.372-247.82 248.468-59.015.042-113.223-20.53-155.822-54.911-11.077-8.94-11.905-25.541-1.839-35.607l11.267-11.267c8.609-8.609 22.353-9.551 31.891-1.984C173.062 425.135 212.781 440 256 440c101.705 0 184-82.311 184-184 0-101.705-82.311-184-184-184-48.814 0-93.149 18.969-126.068 49.932l50.754 50.754c10.08 10.08 2.941 27.314-11.313 27.314H24c-8.837 0-16-7.163-16-16V38.627c0-14.254 17.234-21.393 27.314-11.314l49.372 49.372C129.209 34.136 189.552 8 256 8c136.81 0 247.747 110.78 248 247.531zm-180.912 78.784l9.823-12.63c8.138-10.463 6.253-25.542-4.21-33.679L288 256.349V152c0-13.255-10.745-24-24-24h-16c-13.255 0-24 10.745-24 24v135.651l65.409 50.874c10.463 8.137 25.541 6.253 33.679-4.21z\"]\n};\nvar faHockeyPuck = {\n prefix: 'fas',\n iconName: 'hockey-puck',\n icon: [512, 512, [], \"f453\", \"M0 160c0-53 114.6-96 256-96s256 43 256 96-114.6 96-256 96S0 213 0 160zm0 82.2V352c0 53 114.6 96 256 96s256-43 256-96V242.2c-113.4 82.3-398.5 82.4-512 0z\"]\n};\nvar faHollyBerry = {\n prefix: 'fas',\n iconName: 'holly-berry',\n icon: [448, 512, [], \"f7aa\", \"M144 192c26.5 0 48-21.5 48-48s-21.5-48-48-48-48 21.5-48 48 21.5 48 48 48zm112-48c0 26.5 21.5 48 48 48s48-21.5 48-48-21.5-48-48-48-48 21.5-48 48zm-32-48c26.5 0 48-21.5 48-48S250.5 0 224 0s-48 21.5-48 48 21.5 48 48 48zm-16.2 139.1c.1-12.4-13.1-20.1-23.8-13.7-34.3 20.3-71.4 32.7-108.7 36.2-9.7.9-15.6 11.3-11.6 20.2 6.2 13.9 11.1 28.6 14.7 43.8 3.6 15.2-5.3 30.6-20.2 35.1-14.9 4.5-30.1 7.6-45.3 9.1-9.7 1-15.7 11.3-11.7 20.2 15 32.8 22.9 69.5 23 107.7.1 14.4 15.2 23.1 27.6 16 33.2-19 68.9-30.5 104.8-33.9 9.7-.9 15.6-11.3 11.6-20.2-6.2-13.9-11.1-28.6-14.7-43.8-3.6-15.2 5.3-30.6 20.2-35.1 14.9-4.5 30.1-7.6 45.3-9.1 9.7-1 15.7-11.3 11.7-20.2-15.5-34.2-23.3-72.5-22.9-112.3zM435 365.6c-15.2-1.6-30.3-4.7-45.3-9.1-14.9-4.5-23.8-19.9-20.2-35.1 3.6-15.2 8.5-29.8 14.7-43.8 4-8.9-1.9-19.3-11.6-20.2-37.3-3.5-74.4-15.9-108.7-36.2-10.7-6.3-23.9 1.4-23.8 13.7 0 1.6-.2 3.2-.2 4.9.2 33.3 7 65.7 19.9 94 5.7 12.4 5.2 26.6-.6 38.9 4.9 1.2 9.9 2.2 14.8 3.7 14.9 4.5 23.8 19.9 20.2 35.1-3.6 15.2-8.5 29.8-14.7 43.8-4 8.9 1.9 19.3 11.6 20.2 35.9 3.4 71.6 14.9 104.8 33.9 12.5 7.1 27.6-1.6 27.6-16 .2-38.2 8-75 23-107.7 4.3-8.7-1.8-19.1-11.5-20.1z\"]\n};\nvar faHome = {\n prefix: 'fas',\n iconName: 'home',\n icon: [576, 512, [], \"f015\", \"M280.37 148.26L96 300.11V464a16 16 0 0 0 16 16l112.06-.29a16 16 0 0 0 15.92-16V368a16 16 0 0 1 16-16h64a16 16 0 0 1 16 16v95.64a16 16 0 0 0 16 16.05L464 480a16 16 0 0 0 16-16V300L295.67 148.26a12.19 12.19 0 0 0-15.3 0zM571.6 251.47L488 182.56V44.05a12 12 0 0 0-12-12h-56a12 12 0 0 0-12 12v72.61L318.47 43a48 48 0 0 0-61 0L4.34 251.47a12 12 0 0 0-1.6 16.9l25.5 31A12 12 0 0 0 45.15 301l235.22-193.74a12.19 12.19 0 0 1 15.3 0L530.9 301a12 12 0 0 0 16.9-1.6l25.5-31a12 12 0 0 0-1.7-16.93z\"]\n};\nvar faHorse = {\n prefix: 'fas',\n iconName: 'horse',\n icon: [576, 512, [], \"f6f0\", \"M575.92 76.6c-.01-8.13-3.02-15.87-8.58-21.8-3.78-4.03-8.58-9.12-13.69-14.5 11.06-6.84 19.5-17.49 22.18-30.66C576.85 4.68 572.96 0 567.9 0H447.92c-70.69 0-128 57.31-128 128H160c-28.84 0-54.4 12.98-72 33.11V160c-48.53 0-88 39.47-88 88v56c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-56c0-13.22 6.87-24.39 16.78-31.68-.21 2.58-.78 5.05-.78 7.68 0 27.64 11.84 52.36 30.54 69.88l-25.72 68.6a63.945 63.945 0 0 0-2.16 37.99l24.85 99.41A15.982 15.982 0 0 0 107.02 512h65.96c10.41 0 18.05-9.78 15.52-19.88l-26.31-105.26 23.84-63.59L320 345.6V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V318.22c19.74-20.19 32-47.75 32-78.22 0-.22-.07-.42-.08-.64V136.89l16 7.11 18.9 37.7c7.45 14.87 25.05 21.55 40.49 15.37l32.55-13.02a31.997 31.997 0 0 0 20.12-29.74l-.06-77.71zm-64 19.4c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z\"]\n};\nvar faHorseHead = {\n prefix: 'fas',\n iconName: 'horse-head',\n icon: [512, 512, [], \"f7ab\", \"M509.8 332.5l-69.9-164.3c-14.9-41.2-50.4-71-93-79.2 18-10.6 46.3-35.9 34.2-82.3-1.3-5-7.1-7.9-12-6.1L166.9 76.3C35.9 123.4 0 238.9 0 398.8V480c0 17.7 14.3 32 32 32h236.2c23.8 0 39.3-25 28.6-46.3L256 384v-.7c-45.6-3.5-84.6-30.7-104.3-69.6-1.6-3.1-.9-6.9 1.6-9.3l12.1-12.1c3.9-3.9 10.6-2.7 12.9 2.4 14.8 33.7 48.2 57.4 87.4 57.4 17.2 0 33-5.1 46.8-13.2l46 63.9c6 8.4 15.7 13.3 26 13.3h50.3c8.5 0 16.6-3.4 22.6-9.4l45.3-39.8c8.9-9.1 11.7-22.6 7.1-34.4zM328 224c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24z\"]\n};\nvar faHospital = {\n prefix: 'fas',\n iconName: 'hospital',\n icon: [448, 512, [], \"f0f8\", \"M448 492v20H0v-20c0-6.627 5.373-12 12-12h20V120c0-13.255 10.745-24 24-24h88V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v72h88c13.255 0 24 10.745 24 24v360h20c6.627 0 12 5.373 12 12zM308 192h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-168 64h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm104 128h-40c-6.627 0-12 5.373-12 12v84h64v-84c0-6.627-5.373-12-12-12zm64-96h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-116 12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40zM182 96h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6z\"]\n};\nvar faHospitalAlt = {\n prefix: 'fas',\n iconName: 'hospital-alt',\n icon: [576, 512, [], \"f47d\", \"M544 96H416V32c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32v64H32c-17.7 0-32 14.3-32 32v368c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16V128c0-17.7-14.3-32-32-32zM160 436c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm160 128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm16-170c0 3.3-2.7 6-6 6h-26v26c0 3.3-2.7 6-6 6h-20c-3.3 0-6-2.7-6-6v-26h-26c-3.3 0-6-2.7-6-6v-20c0-3.3 2.7-6 6-6h26V86c0-3.3 2.7-6 6-6h20c3.3 0 6 2.7 6 6v26h26c3.3 0 6 2.7 6 6v20zm144 298c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z\"]\n};\nvar faHospitalSymbol = {\n prefix: 'fas',\n iconName: 'hospital-symbol',\n icon: [512, 512, [], \"f47e\", \"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm112 376c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-88h-96v88c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V136c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v88h96v-88c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v240z\"]\n};\nvar faHospitalUser = {\n prefix: 'fas',\n iconName: 'hospital-user',\n icon: [640, 512, [], \"f80d\", \"M480 320a96 96 0 1 0-96-96 96 96 0 0 0 96 96zm48 32a22.88 22.88 0 0 0-7.06 1.09 124.76 124.76 0 0 1-81.89 0A22.82 22.82 0 0 0 432 352a112 112 0 0 0-112 112.62c.14 26.26 21.73 47.38 48 47.38h224c26.27 0 47.86-21.12 48-47.38A112 112 0 0 0 528 352zm-198.09 10.45A145.19 145.19 0 0 1 352 344.62V128a32 32 0 0 0-32-32h-32V32a32 32 0 0 0-32-32H96a32 32 0 0 0-32 32v64H32a32 32 0 0 0-32 32v368a16 16 0 0 0 16 16h288.31A78.62 78.62 0 0 1 288 464.79a143.06 143.06 0 0 1 41.91-102.34zM144 404a12 12 0 0 1-12 12H92a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12H92a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm48-122a6 6 0 0 1-6 6h-20a6 6 0 0 1-6-6v-26h-26a6 6 0 0 1-6-6v-20a6 6 0 0 1 6-6h26V70a6 6 0 0 1 6-6h20a6 6 0 0 1 6 6v26h26a6 6 0 0 1 6 6v20a6 6 0 0 1-6 6h-26zm80 250a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12z\"]\n};\nvar faHotTub = {\n prefix: 'fas',\n iconName: 'hot-tub',\n icon: [512, 512, [], \"f593\", \"M414.21 177.65c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C378.96 6.14 372.22 0 364.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zm-108 0c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C270.96 6.14 264.22 0 256.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zM480 256H256l-110.93-83.2a63.99 63.99 0 0 0-38.4-12.8H64c-35.35 0-64 28.65-64 64v224c0 35.35 28.65 64 64 64h384c35.35 0 64-28.65 64-64V288c0-17.67-14.33-32-32-32zM128 440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zM64 128c35.35 0 64-28.65 64-64S99.35 0 64 0 0 28.65 0 64s28.65 64 64 64z\"]\n};\nvar faHotdog = {\n prefix: 'fas',\n iconName: 'hotdog',\n icon: [512, 512, [], \"f80f\", \"M488.56 23.44a80 80 0 0 0-113.12 0l-352 352a80 80 0 1 0 113.12 113.12l352-352a80 80 0 0 0 0-113.12zm-49.93 95.19c-19.6 19.59-37.52 22.67-51.93 25.14C373.76 146 364.4 147.6 352 160s-14 21.76-16.23 34.71c-2.48 14.4-5.55 32.33-25.15 51.92s-37.52 22.67-51.92 25.15C245.75 274 236.4 275.6 224 288s-14 21.75-16.23 34.7c-2.47 14.4-5.54 32.33-25.14 51.92s-37.53 22.68-51.93 25.15C117.76 402 108.4 403.6 96 416a16 16 0 0 1-22.63-22.63c19.6-19.59 37.52-22.67 51.92-25.14 13-2.22 22.3-3.82 34.71-16.23s14-21.75 16.22-34.7c2.48-14.4 5.55-32.33 25.15-51.92s37.52-22.67 51.92-25.14c13-2.22 22.3-3.83 34.7-16.23s14-21.76 16.24-34.71c2.47-14.4 5.54-32.33 25.14-51.92s37.52-22.68 51.92-25.15C394.24 110 403.59 108.41 416 96a16 16 0 0 1 22.63 22.63zM31.44 322.18L322.18 31.44l-11.54-11.55c-25-25-63.85-26.66-86.79-3.72L16.17 223.85c-22.94 22.94-21.27 61.79 3.72 86.78zm449.12-132.36L189.82 480.56l11.54 11.55c25 25 63.85 26.66 86.79 3.72l207.68-207.68c22.94-22.94 21.27-61.79-3.72-86.79z\"]\n};\nvar faHotel = {\n prefix: 'fas',\n iconName: 'hotel',\n icon: [576, 512, [], \"f594\", \"M560 64c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h15.98v384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h240v-80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v80h240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-16V64h16zm-304 44.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm0 96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm-128-96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zM179.2 256h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8zM192 384c0-53.02 42.98-96 96-96s96 42.98 96 96H192zm256-140.8c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-96c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4z\"]\n};\nvar faHourglass = {\n prefix: 'fas',\n iconName: 'hourglass',\n icon: [384, 512, [], \"f254\", \"M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64z\"]\n};\nvar faHourglassEnd = {\n prefix: 'fas',\n iconName: 'hourglass-end',\n icon: [384, 512, [], \"f253\", \"M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64zM192 208c-57.787 0-104-66.518-104-144h208c0 77.945-46.51 144-104 144z\"]\n};\nvar faHourglassHalf = {\n prefix: 'fas',\n iconName: 'hourglass-half',\n icon: [384, 512, [], \"f252\", \"M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-75.078 384H99.08c17.059-46.797 52.096-80 92.92-80 40.821 0 75.862 33.196 92.922 80zm.019-256H99.078C91.988 108.548 88 86.748 88 64h208c0 22.805-3.987 44.587-11.059 64z\"]\n};\nvar faHourglassStart = {\n prefix: 'fas',\n iconName: 'hourglass-start',\n icon: [384, 512, [], \"f251\", \"M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-64 448H88c0-77.458 46.204-144 104-144 57.786 0 104 66.517 104 144z\"]\n};\nvar faHouseDamage = {\n prefix: 'fas',\n iconName: 'house-damage',\n icon: [576, 512, [], \"f6f1\", \"M288 114.96L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496c0 8.84 7.16 16 16 16h149.23L192 439.19l104.11-64-60.16-119.22L384 392.75l-104.11 64L319.81 512H496c8.84 0 16-7.16 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2L288 114.96zm282.69 121.32L512 184.45V48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v51.69L314.75 10.31C307.12 3.45 297.56.01 288 0s-19.1 3.41-26.7 10.27L5.31 236.28c-6.57 5.91-7.12 16.02-1.21 22.6l21.4 23.82c5.9 6.57 16.02 7.12 22.6 1.21L277.42 81.63c6.05-5.33 15.12-5.33 21.17 0L527.91 283.9c6.57 5.9 16.69 5.36 22.6-1.21l21.4-23.82c5.9-6.57 5.36-16.69-1.22-22.59z\"]\n};\nvar faHouseUser = {\n prefix: 'fas',\n iconName: 'house-user',\n icon: [576, 512, [], \"e065\", \"M570.69,236.27,512,184.44V48a16,16,0,0,0-16-16H432a16,16,0,0,0-16,16V99.67L314.78,10.3C308.5,4.61,296.53,0,288,0s-20.46,4.61-26.74,10.3l-256,226A18.27,18.27,0,0,0,0,248.2a18.64,18.64,0,0,0,4.09,10.71L25.5,282.7a21.14,21.14,0,0,0,12,5.3,21.67,21.67,0,0,0,10.69-4.11l15.9-14V480a32,32,0,0,0,32,32H480a32,32,0,0,0,32-32V269.88l15.91,14A21.94,21.94,0,0,0,538.63,288a20.89,20.89,0,0,0,11.87-5.31l21.41-23.81A21.64,21.64,0,0,0,576,248.19,21,21,0,0,0,570.69,236.27ZM288,176a64,64,0,1,1-64,64A64,64,0,0,1,288,176ZM400,448H176a16,16,0,0,1-16-16,96,96,0,0,1,96-96h64a96,96,0,0,1,96,96A16,16,0,0,1,400,448Z\"]\n};\nvar faHryvnia = {\n prefix: 'fas',\n iconName: 'hryvnia',\n icon: [384, 512, [], \"f6f2\", \"M368 240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-41.86c13.41-28.63 13.74-63.33-4.13-94.05C303.34 49.84 267.1 32 229.96 32h-78.82c-24.32 0-47.86 8.53-66.54 24.09L72.83 65.9c-10.18 8.49-11.56 23.62-3.07 33.8l20.49 24.59c8.49 10.19 23.62 11.56 33.81 3.07l11.73-9.78c4.32-3.6 9.77-5.57 15.39-5.57h83.62c11.69 0 21.2 9.52 21.2 21.2 0 5.91-2.48 11.58-6.81 15.58L219.7 176H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h134.37l-34.67 32H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h41.86c-13.41 28.63-13.74 63.33 4.13 94.05C80.66 462.15 116.9 480 154.04 480h78.82c24.32 0 47.86-8.53 66.54-24.09l11.77-9.81c10.18-8.49 11.56-23.62 3.07-33.8l-20.49-24.59c-8.49-10.19-23.62-11.56-33.81-3.07l-11.75 9.8a23.992 23.992 0 0 1-15.36 5.56H149.2c-11.69 0-21.2-9.52-21.2-21.2 0-5.91 2.48-11.58 6.81-15.58L164.3 336H368c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H233.63l34.67-32H368z\"]\n};\nvar faICursor = {\n prefix: 'fas',\n iconName: 'i-cursor',\n icon: [256, 512, [], \"f246\", \"M256 52.048V12.065C256 5.496 250.726.148 244.158.066 211.621-.344 166.469.011 128 37.959 90.266.736 46.979-.114 11.913.114 5.318.157 0 5.519 0 12.114v39.645c0 6.687 5.458 12.078 12.145 11.998C38.111 63.447 96 67.243 96 112.182V224H60c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h36v112c0 44.932-56.075 48.031-83.95 47.959C5.404 447.942 0 453.306 0 459.952v39.983c0 6.569 5.274 11.917 11.842 11.999 32.537.409 77.689.054 116.158-37.894 37.734 37.223 81.021 38.073 116.087 37.845 6.595-.043 11.913-5.405 11.913-12V460.24c0-6.687-5.458-12.078-12.145-11.998C217.889 448.553 160 444.939 160 400V288h36c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-36V112.182c0-44.932 56.075-48.213 83.95-48.142 6.646.018 12.05-5.346 12.05-11.992z\"]\n};\nvar faIceCream = {\n prefix: 'fas',\n iconName: 'ice-cream',\n icon: [448, 512, [], \"f810\", \"M368 160h-.94a144 144 0 1 0-286.12 0H80a48 48 0 0 0 0 96h288a48 48 0 0 0 0-96zM195.38 493.69a31.52 31.52 0 0 0 57.24 0L352 288H96z\"]\n};\nvar faIcicles = {\n prefix: 'fas',\n iconName: 'icicles',\n icon: [512, 512, [], \"f7ad\", \"M511.4 37.9C515.1 18.2 500 0 480 0H32C10.6 0-4.8 20.7 1.4 41.2l87.1 273.4c2.5 7.2 12.7 7.2 15.1 0L140 190.5l44.2 187.3c1.9 8.3 13.7 8.3 15.6 0l46.5-196.9 34.1 133.4c2.3 7.6 13 7.6 15.3 0l45.8-172.5 66.7 363.8c1.7 8.6 14 8.6 15.7 0l87.5-467.7z\"]\n};\nvar faIcons = {\n prefix: 'fas',\n iconName: 'icons',\n icon: [512, 512, [], \"f86d\", \"M116.65 219.35a15.68 15.68 0 0 0 22.65 0l96.75-99.83c28.15-29 26.5-77.1-4.91-103.88C203.75-7.7 163-3.5 137.86 22.44L128 32.58l-9.85-10.14C93.05-3.5 52.25-7.7 24.86 15.64c-31.41 26.78-33 74.85-5 103.88zm143.92 100.49h-48l-7.08-14.24a27.39 27.39 0 0 0-25.66-17.78h-71.71a27.39 27.39 0 0 0-25.66 17.78l-7 14.24h-48A27.45 27.45 0 0 0 0 347.3v137.25A27.44 27.44 0 0 0 27.43 512h233.14A27.45 27.45 0 0 0 288 484.55V347.3a27.45 27.45 0 0 0-27.43-27.46zM144 468a52 52 0 1 1 52-52 52 52 0 0 1-52 52zm355.4-115.9h-60.58l22.36-50.75c2.1-6.65-3.93-13.21-12.18-13.21h-75.59c-6.3 0-11.66 3.9-12.5 9.1l-16.8 106.93c-1 6.3 4.88 11.89 12.5 11.89h62.31l-24.2 83c-1.89 6.65 4.2 12.9 12.23 12.9a13.26 13.26 0 0 0 10.92-5.25l92.4-138.91c4.88-6.91-1.16-15.7-10.87-15.7zM478.08.33L329.51 23.17C314.87 25.42 304 38.92 304 54.83V161.6a83.25 83.25 0 0 0-16-1.7c-35.35 0-64 21.48-64 48s28.65 48 64 48c35.2 0 63.73-21.32 64-47.66V99.66l112-17.22v47.18a83.25 83.25 0 0 0-16-1.7c-35.35 0-64 21.48-64 48s28.65 48 64 48c35.2 0 63.73-21.32 64-47.66V32c0-19.48-16-34.42-33.92-31.67z\"]\n};\nvar faIdBadge = {\n prefix: 'fas',\n iconName: 'id-badge',\n icon: [384, 512, [], \"f2c1\", \"M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM144 32h96c8.8 0 16 7.2 16 16s-7.2 16-16 16h-96c-8.8 0-16-7.2-16-16s7.2-16 16-16zm48 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 416 80 407.4 80 396.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z\"]\n};\nvar faIdCard = {\n prefix: 'fas',\n iconName: 'id-card',\n icon: [576, 512, [], \"f2c2\", \"M528 32H48C21.5 32 0 53.5 0 80v16h576V80c0-26.5-21.5-48-48-48zM0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V128H0v304zm352-232c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zM176 192c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zM67.1 396.2C75.5 370.5 99.6 352 128 352h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.9-5.2 19.8-15.6 19.8H82.7c-10.4 0-18.8-10-15.6-19.8z\"]\n};\nvar faIdCardAlt = {\n prefix: 'fas',\n iconName: 'id-card-alt',\n icon: [576, 512, [], \"f47f\", \"M528 64H384v96H192V64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM288 224c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm93.3 224H194.7c-10.4 0-18.8-10-15.6-19.8 8.3-25.6 32.4-44.2 60.9-44.2h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.8-5.2 19.8-15.6 19.8zM352 32c0-17.7-14.3-32-32-32h-64c-17.7 0-32 14.3-32 32v96h128V32z\"]\n};\nvar faIgloo = {\n prefix: 'fas',\n iconName: 'igloo',\n icon: [576, 512, [], \"f7ae\", \"M320 33.9c-10.5-1.2-21.2-1.9-32-1.9-99.8 0-187.8 50.8-239.4 128H320V33.9zM96 192H30.3C11.1 230.6 0 274 0 320h96V192zM352 39.4V160h175.4C487.2 99.9 424.8 55.9 352 39.4zM480 320h96c0-46-11.1-89.4-30.3-128H480v128zm-64 64v96h128c17.7 0 32-14.3 32-32v-96H411.5c2.6 10.3 4.5 20.9 4.5 32zm32-192H128v128h49.8c22.2-38.1 63-64 110.2-64s88 25.9 110.2 64H448V192zM0 448c0 17.7 14.3 32 32 32h128v-96c0-11.1 1.9-21.7 4.5-32H0v96zm288-160c-53 0-96 43-96 96v96h192v-96c0-53-43-96-96-96z\"]\n};\nvar faImage = {\n prefix: 'fas',\n iconName: 'image',\n icon: [512, 512, [], \"f03e\", \"M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z\"]\n};\nvar faImages = {\n prefix: 'fas',\n iconName: 'images',\n icon: [576, 512, [], \"f302\", \"M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v208c0 44.112 35.888 80 80 80h336zm96-80V80c0-26.51-21.49-48-48-48H144c-26.51 0-48 21.49-48 48v256c0 26.51 21.49 48 48 48h384c26.51 0 48-21.49 48-48zM256 128c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-96 144l55.515-55.515c4.686-4.686 12.284-4.686 16.971 0L272 256l135.515-135.515c4.686-4.686 12.284-4.686 16.971 0L512 208v112H160v-48z\"]\n};\nvar faInbox = {\n prefix: 'fas',\n iconName: 'inbox',\n icon: [576, 512, [], \"f01c\", \"M567.938 243.908L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L8.062 243.908A47.994 47.994 0 0 0 0 270.533V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V270.533a47.994 47.994 0 0 0-8.062-26.625zM162.252 128h251.497l85.333 128H376l-32 64H232l-32-64H76.918l85.334-128z\"]\n};\nvar faIndent = {\n prefix: 'fas',\n iconName: 'indent',\n icon: [448, 512, [], \"f03c\", \"M27.31 363.3l96-96a16 16 0 0 0 0-22.62l-96-96C17.27 138.66 0 145.78 0 160v192c0 14.31 17.33 21.3 27.31 11.3zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faIndustry = {\n prefix: 'fas',\n iconName: 'industry',\n icon: [512, 512, [], \"f275\", \"M475.115 163.781L336 252.309v-68.28c0-18.916-20.931-30.399-36.885-20.248L160 252.309V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h464c13.255 0 24-10.745 24-24V184.029c0-18.917-20.931-30.399-36.885-20.248z\"]\n};\nvar faInfinity = {\n prefix: 'fas',\n iconName: 'infinity',\n icon: [640, 512, [], \"f534\", \"M471.1 96C405 96 353.3 137.3 320 174.6 286.7 137.3 235 96 168.9 96 75.8 96 0 167.8 0 256s75.8 160 168.9 160c66.1 0 117.8-41.3 151.1-78.6 33.3 37.3 85 78.6 151.1 78.6 93.1 0 168.9-71.8 168.9-160S564.2 96 471.1 96zM168.9 320c-40.2 0-72.9-28.7-72.9-64s32.7-64 72.9-64c38.2 0 73.4 36.1 94 64-20.4 27.6-55.9 64-94 64zm302.2 0c-38.2 0-73.4-36.1-94-64 20.4-27.6 55.9-64 94-64 40.2 0 72.9 28.7 72.9 64s-32.7 64-72.9 64z\"]\n};\nvar faInfo = {\n prefix: 'fas',\n iconName: 'info',\n icon: [192, 512, [], \"f129\", \"M20 424.229h20V279.771H20c-11.046 0-20-8.954-20-20V212c0-11.046 8.954-20 20-20h112c11.046 0 20 8.954 20 20v212.229h20c11.046 0 20 8.954 20 20V492c0 11.046-8.954 20-20 20H20c-11.046 0-20-8.954-20-20v-47.771c0-11.046 8.954-20 20-20zM96 0C56.235 0 24 32.235 24 72s32.235 72 72 72 72-32.235 72-72S135.764 0 96 0z\"]\n};\nvar faInfoCircle = {\n prefix: 'fas',\n iconName: 'info-circle',\n icon: [512, 512, [], \"f05a\", \"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z\"]\n};\nvar faItalic = {\n prefix: 'fas',\n iconName: 'italic',\n icon: [320, 512, [], \"f033\", \"M320 48v32a16 16 0 0 1-16 16h-62.76l-80 320H208a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h62.76l80-320H112a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h192a16 16 0 0 1 16 16z\"]\n};\nvar faJedi = {\n prefix: 'fas',\n iconName: 'jedi',\n icon: [576, 512, [], \"f669\", \"M535.95308,352c-42.64069,94.17188-137.64086,160-247.9848,160q-6.39844,0-12.84377-.29688C171.15558,506.9375,81.26481,442.23438,40.01474,352H79.93668L21.3272,293.40625a264.82522,264.82522,0,0,1-5.10938-39.42187,273.6653,273.6653,0,0,1,.5-29.98438H63.93665L22.546,182.625A269.79782,269.79782,0,0,1,130.51489,20.54688a16.06393,16.06393,0,0,1,9.28127-3,16.36332,16.36332,0,0,1,13.5,7.25,16.02739,16.02739,0,0,1,1.625,15.09374,138.387,138.387,0,0,0-9.84376,51.26563c0,45.10937,21.04691,86.57813,57.71884,113.73437a16.29989,16.29989,0,0,1,1.20313,25.39063c-26.54692,23.98437-41.17194,56.5-41.17194,91.57813,0,60.03124,42.95319,110.28124,99.89079,121.92187l2.5-65.26563L238.062,397a8.33911,8.33911,0,0,1-10-.75,8.025,8.025,0,0,1-1.39063-9.9375l20.125-33.76562-42.06257-8.73438a7.9898,7.9898,0,0,1,0-15.65625l42.06257-8.71875-20.10941-33.73438a7.99122,7.99122,0,0,1,11.35939-10.71874L268.437,295.64062,279.95265,7.67188a7.97138,7.97138,0,0,1,8-7.67188h.04687a8.02064,8.02064,0,0,1,7.95314,7.70312L307.48394,295.625l30.39068-20.67188a8.08327,8.08327,0,0,1,10,.8125,7.99866,7.99866,0,0,1,1.39062,9.90626L329.12461,319.4375l42.07819,8.73438a7.99373,7.99373,0,0,1,0,15.65624l-42.07819,8.71876,20.1094,33.73437a7.97791,7.97791,0,0,1-1.32812,9.92187A8.25739,8.25739,0,0,1,337.87462,397L310.7027,378.53125l2.5,65.34375c48.48446-9.40625,87.57828-48.15625,97.31267-96.5A123.52652,123.52652,0,0,0,371.9528,230.29688a16.30634,16.30634,0,0,1,1.20313-25.42188c36.65631-27.17188,57.6876-68.60938,57.6876-113.73438a138.01689,138.01689,0,0,0-9.85939-51.3125,15.98132,15.98132,0,0,1,1.60937-15.09374,16.36914,16.36914,0,0,1,13.5-7.23438,16.02453,16.02453,0,0,1,9.25,2.98438A271.26947,271.26947,0,0,1,553.25,182.76562L511.99992,224h46.9532C559.3125,229.76562,560,235.45312,560,241.26562a270.092,270.092,0,0,1-5.125,51.85938L495.98427,352Z\"]\n};\nvar faJoint = {\n prefix: 'fas',\n iconName: 'joint',\n icon: [640, 512, [], \"f595\", \"M444.34 181.1c22.38 15.68 35.66 41.16 35.66 68.59V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-43.24-21.01-83.41-56.34-108.06C463.85 125.02 448 99.34 448 70.31V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v66.4c0 43.69 24.56 81.63 60.34 106.7zM194.97 358.98C126.03 370.07 59.69 394.69 0 432c83.65 52.28 180.3 80 278.94 80h88.57L254.79 380.49c-14.74-17.2-37.45-25.11-59.82-21.51zM553.28 87.09c-5.67-3.8-9.28-9.96-9.28-16.78V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v62.31c0 22.02 10.17 43.41 28.64 55.39C550.79 153.04 576 199.54 576 249.69V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-65.44-32.41-126.19-86.72-162.6zM360.89 352.05c-34.4.06-86.81.15-88.21.17l117.8 137.43A63.987 63.987 0 0 0 439.07 512h88.45L409.57 374.4a63.955 63.955 0 0 0-48.68-22.35zM616 352H432l117.99 137.65A63.987 63.987 0 0 0 598.58 512H616c13.25 0 24-10.75 24-24V376c0-13.26-10.75-24-24-24z\"]\n};\nvar faJournalWhills = {\n prefix: 'fas',\n iconName: 'journal-whills',\n icon: [448, 512, [], \"f66a\", \"M438.40625,377.59375c-3.20313,12.8125-3.20313,57.60937,0,73.60937Q447.9922,460.78907,448,470.40625v16c0,16-12.79688,25.59375-25.59375,25.59375H96c-54.40625,0-96-41.59375-96-96V96C0,41.59375,41.59375,0,96,0H422.40625C438.40625,0,448,9.59375,448,25.59375v332.8125Q448,372.79688,438.40625,377.59375ZM380.79688,384H96c-16,0-32,12.79688-32,32s12.79688,32,32,32H380.79688ZM128.01562,176.01562c0,.51563.14063.98438.14063,1.5l37.10937,32.46876A7.99954,7.99954,0,0,1,160,224h-.01562a9.17678,9.17678,0,0,1-5.25-1.98438L131.14062,201.375C142.6875,250.95312,186.90625,288,240,288s97.3125-37.04688,108.875-86.625l-23.59375,20.64062a8.02516,8.02516,0,0,1-5.26563,1.96876H320a9.14641,9.14641,0,0,1-6.01562-2.71876A9.26508,9.26508,0,0,1,312,216a9.097,9.097,0,0,1,2.73438-6.01562l37.10937-32.46876c.01563-.53124.15625-1,.15625-1.51562,0-11.04688-2.09375-21.51562-5.06251-31.59375l-21.26562,21.25a8.00467,8.00467,0,0,1-11.32812-11.3125l26.42187-26.40625a111.81517,111.81517,0,0,0-46.35937-49.26562,63.02336,63.02336,0,0,1-14.0625,82.64062A55.83846,55.83846,0,0,1,251.625,254.73438l-1.42188-34.28126,12.67188,8.625a3.967,3.967,0,0,0,2.25.6875,3.98059,3.98059,0,0,0,3.43749-6.03124l-8.53124-14.3125,17.90625-3.71876a4.00647,4.00647,0,0,0,0-7.84374l-17.90625-3.71876,8.53124-14.3125a3.98059,3.98059,0,0,0-3.43749-6.03124,4.726,4.726,0,0,0-2.25.67187L248.6875,184.125,244,71.82812a4.00386,4.00386,0,0,0-8,0l-4.625,110.8125-12-8.15624a4.003,4.003,0,0,0-5.68751,5.35937l8.53126,14.3125L204.3125,197.875a3.99686,3.99686,0,0,0,0,7.82812l17.90625,3.73438-8.53126,14.29688a4.72469,4.72469,0,0,0-.56249,2.04687,4.59547,4.59547,0,0,0,1.25,2.90625,4.01059,4.01059,0,0,0,2.75,1.09375,4.09016,4.09016,0,0,0,2.25-.6875l10.35937-7.04687L228.375,254.76562a55.86414,55.86414,0,0,1-28.71875-93.45312,63.01119,63.01119,0,0,1-14.04688-82.65625,111.93158,111.93158,0,0,0-46.375,49.26563l26.42187,26.42187a7.99917,7.99917,0,0,1-11.3125,11.3125l-21.26563-21.26563C130.09375,154.48438,128,164.95312,128.01562,176.01562Z\"]\n};\nvar faKaaba = {\n prefix: 'fas',\n iconName: 'kaaba',\n icon: [576, 512, [], \"f66b\", \"M554.12 83.51L318.36 4.93a95.962 95.962 0 0 0-60.71 0L21.88 83.51A32.006 32.006 0 0 0 0 113.87v49.01l265.02-79.51c15.03-4.5 30.92-4.5 45.98 0l265 79.51v-49.01c0-13.77-8.81-26-21.88-30.36zm-279.9 30.52L0 196.3v228.38c0 15 10.42 27.98 25.06 31.24l242.12 53.8a95.937 95.937 0 0 0 41.65 0l242.12-53.8c14.64-3.25 25.06-16.24 25.06-31.24V196.29l-274.2-82.26c-9.04-2.72-18.59-2.72-27.59 0zM128 230.11c0 3.61-2.41 6.77-5.89 7.72l-80 21.82C37.02 261.03 32 257.2 32 251.93v-16.58c0-3.61 2.41-6.77 5.89-7.72l80-21.82c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm144-39.28c0 3.61-2.41 6.77-5.89 7.72l-96 26.18c-5.09 1.39-10.11-2.44-10.11-7.72v-16.58c0-3.61 2.41-6.77 5.89-7.72l96-26.18c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm176 22.7c0-5.28 5.02-9.11 10.11-7.72l80 21.82c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-80-21.82a7.997 7.997 0 0 1-5.89-7.72v-16.58zm-144-39.27c0-5.28 5.02-9.11 10.11-7.72l96 26.18c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-96-26.18a7.997 7.997 0 0 1-5.89-7.72v-16.58z\"]\n};\nvar faKey = {\n prefix: 'fas',\n iconName: 'key',\n icon: [512, 512, [], \"f084\", \"M512 176.001C512 273.203 433.202 352 336 352c-11.22 0-22.19-1.062-32.827-3.069l-24.012 27.014A23.999 23.999 0 0 1 261.223 384H224v40c0 13.255-10.745 24-24 24h-40v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-78.059c0-6.365 2.529-12.47 7.029-16.971l161.802-161.802C163.108 213.814 160 195.271 160 176 160 78.798 238.797.001 335.999 0 433.488-.001 512 78.511 512 176.001zM336 128c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48z\"]\n};\nvar faKeyboard = {\n prefix: 'fas',\n iconName: 'keyboard',\n icon: [576, 512, [], \"f11c\", \"M528 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM128 180v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z\"]\n};\nvar faKhanda = {\n prefix: 'fas',\n iconName: 'khanda',\n icon: [512, 512, [], \"f66d\", \"M415.81 66c-6.37-3.5-14.37-2.33-19.36 3.02a15.974 15.974 0 0 0-1.91 19.52c16.49 26.16 25.2 56.39 25.2 87.41-.19 53.25-26.77 102.69-71.27 132.41l-76.63 53.35v-20.1l44.05-36.09c3.92-4.2 5-10.09 2.81-15.28L310.85 273c33.84-19.26 56.94-55.25 56.94-96.99 0-40.79-22.02-76.13-54.59-95.71l5.22-11.44c2.34-5.53.93-11.83-3.57-16.04L255.86 0l-58.99 52.81c-4.5 4.21-5.9 10.51-3.57 16.04l5.22 11.44c-32.57 19.58-54.59 54.93-54.59 95.72 0 41.75 23.09 77.73 56.94 96.99l-7.85 17.24c-2.19 5.18-1.1 11.07 2.81 15.28l44.05 36.09v19.9l-76.59-53.33C119.02 278.62 92.44 229.19 92.26 176c0-31.08 8.71-61.31 25.2-87.47 3.87-6.16 2.4-13.77-2.59-19.08-5-5.34-13.68-6.2-20.02-2.7C16.32 109.6-22.3 205.3 13.36 295.99c7.07 17.99 17.89 34.38 30.46 49.06l55.97 65.36c4.87 5.69 13.04 7.24 19.65 3.72l79.35-42.23L228 392.23l-47.08 32.78c-1.67-.37-3.23-1.01-5.01-1.01-13.25 0-23.99 10.74-23.99 24 0 13.25 10.74 24 23.99 24 12.1 0 21.69-9.11 23.33-20.76l40.63-28.28v29.95c-9.39 5.57-15.99 15.38-15.99 27.1 0 17.67 14.32 32 31.98 32s31.98-14.33 31.98-32c0-11.71-6.61-21.52-15.99-27.1v-30.15l40.91 28.48C314.41 462.89 324 472 336.09 472c13.25 0 23.99-10.75 23.99-24 0-13.26-10.74-24-23.99-24-1.78 0-3.34.64-5.01 1.01L284 392.23l29.21-20.34 79.35 42.23c6.61 3.52 14.78 1.97 19.65-3.71l52.51-61.31c18.87-22.02 34-47.5 41.25-75.59 21.62-83.66-16.45-167.27-90.16-207.51zm-95.99 110c0 22.3-11.49 41.92-28.83 53.38l-5.65-12.41c-8.75-24.52-8.75-51.04 0-75.56l7.83-17.18c16.07 11.65 26.65 30.45 26.65 51.77zm-127.93 0c0-21.32 10.58-40.12 26.66-51.76l7.83 17.18c8.75 24.52 8.75 51.03 0 75.56l-5.65 12.41c-17.34-11.46-28.84-31.09-28.84-53.39z\"]\n};\nvar faKiss = {\n prefix: 'fas',\n iconName: 'kiss',\n icon: [496, 512, [], \"f596\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm136 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm24-156c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faKissBeam = {\n prefix: 'fas',\n iconName: 'kiss-beam',\n icon: [496, 512, [], \"f597\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-39 219.9l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5zM304 396c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm65-168.1l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5z\"]\n};\nvar faKissWinkHeart = {\n prefix: 'fas',\n iconName: 'kiss-wink-heart',\n icon: [504, 512, [], \"f598\", \"M501.1 402.5c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zm-177.6-4c-5.6-20.3-2.3-42 9-59.7 29.7-46.3 98.7-45.5 127.8 4.3 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-.3-.7-23.9-84.6-23.9-84.6zM168 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm120 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-5.7-12.3 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.8-3.7-4.6-16.6 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C274.6 368.7 288 383 288 396zm16-179c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S400 181 404 206.2c1.7 11.1-11.3 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 217z\"]\n};\nvar faKiwiBird = {\n prefix: 'fas',\n iconName: 'kiwi-bird',\n icon: [576, 512, [], \"f535\", \"M575.81 217.98C572.64 157.41 518.28 112 457.63 112h-9.37c-52.82 0-104.25-16.25-147.74-46.24-41.99-28.96-96.04-41.62-153.21-28.7C129.3 41.12-.08 78.24 0 224c.04 70.95 38.68 132.8 95.99 166.01V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-54.26c15.36 3.96 31.4 6.26 48 6.26 5.44 0 10.68-.73 16-1.18V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-59.43c14.24-5.06 27.88-11.39 40.34-19.51C342.07 355.25 393.86 336 448.46 336c25.48 0 16.01-.31 23.05-.78l74.41 136.44c2.86 5.23 8.3 8.34 14.05 8.34 1.31 0 2.64-.16 3.95-.5 7.09-1.8 12.05-8.19 12.05-15.5 0 0 .14-240.24-.16-246.02zM463.97 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm80 153.25l-39.86-73.08c15.12-5.83 28.73-14.6 39.86-25.98v99.06z\"]\n};\nvar faLandmark = {\n prefix: 'fas',\n iconName: 'landmark',\n icon: [512, 512, [], \"f66f\", \"M501.62 92.11L267.24 2.04a31.958 31.958 0 0 0-22.47 0L10.38 92.11A16.001 16.001 0 0 0 0 107.09V144c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-36.91c0-6.67-4.14-12.64-10.38-14.98zM64 192v160H48c-8.84 0-16 7.16-16 16v48h448v-48c0-8.84-7.16-16-16-16h-16V192h-64v160h-96V192h-64v160h-96V192H64zm432 256H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"]\n};\nvar faLanguage = {\n prefix: 'fas',\n iconName: 'language',\n icon: [640, 512, [], \"f1ab\", \"M152.1 236.2c-3.5-12.1-7.8-33.2-7.8-33.2h-.5s-4.3 21.1-7.8 33.2l-11.1 37.5H163zM616 96H336v320h280c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm-24 120c0 6.6-5.4 12-12 12h-11.4c-6.9 23.6-21.7 47.4-42.7 69.9 8.4 6.4 17.1 12.5 26.1 18 5.5 3.4 7.3 10.5 4.1 16.2l-7.9 13.9c-3.4 5.9-10.9 7.8-16.7 4.3-12.6-7.8-24.5-16.1-35.4-24.9-10.9 8.7-22.7 17.1-35.4 24.9-5.8 3.5-13.3 1.6-16.7-4.3l-7.9-13.9c-3.2-5.6-1.4-12.8 4.2-16.2 9.3-5.7 18-11.7 26.1-18-7.9-8.4-14.9-17-21-25.7-4-5.7-2.2-13.6 3.7-17.1l6.5-3.9 7.3-4.3c5.4-3.2 12.4-1.7 16 3.4 5 7 10.8 14 17.4 20.9 13.5-14.2 23.8-28.9 30-43.2H412c-6.6 0-12-5.4-12-12v-16c0-6.6 5.4-12 12-12h64v-16c0-6.6 5.4-12 12-12h16c6.6 0 12 5.4 12 12v16h64c6.6 0 12 5.4 12 12zM0 120v272c0 13.3 10.7 24 24 24h280V96H24c-13.3 0-24 10.7-24 24zm58.9 216.1L116.4 167c1.7-4.9 6.2-8.1 11.4-8.1h32.5c5.1 0 9.7 3.3 11.4 8.1l57.5 169.1c2.6 7.8-3.1 15.9-11.4 15.9h-22.9a12 12 0 0 1-11.5-8.6l-9.4-31.9h-60.2l-9.1 31.8c-1.5 5.1-6.2 8.7-11.5 8.7H70.3c-8.2 0-14-8.1-11.4-15.9z\"]\n};\nvar faLaptop = {\n prefix: 'fas',\n iconName: 'laptop',\n icon: [640, 512, [], \"f109\", \"M624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z\"]\n};\nvar faLaptopCode = {\n prefix: 'fas',\n iconName: 'laptop-code',\n icon: [640, 512, [], \"f5fc\", \"M255.03 261.65c6.25 6.25 16.38 6.25 22.63 0l11.31-11.31c6.25-6.25 6.25-16.38 0-22.63L253.25 192l35.71-35.72c6.25-6.25 6.25-16.38 0-22.63l-11.31-11.31c-6.25-6.25-16.38-6.25-22.63 0l-58.34 58.34c-6.25 6.25-6.25 16.38 0 22.63l58.35 58.34zm96.01-11.3l11.31 11.31c6.25 6.25 16.38 6.25 22.63 0l58.34-58.34c6.25-6.25 6.25-16.38 0-22.63l-58.34-58.34c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63L386.75 192l-35.71 35.72c-6.25 6.25-6.25 16.38 0 22.63zM624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z\"]\n};\nvar faLaptopHouse = {\n prefix: 'fas',\n iconName: 'laptop-house',\n icon: [640, 512, [], \"e066\", \"M272,288H208a16,16,0,0,1-16-16V208a16,16,0,0,1,16-16h64a16,16,0,0,1,16,16v37.12C299.11,232.24,315,224,332.8,224H469.74l6.65-7.53A16.51,16.51,0,0,0,480,207a16.31,16.31,0,0,0-4.75-10.61L416,144V48a16,16,0,0,0-16-16H368a16,16,0,0,0-16,16V87.3L263.5,8.92C258,4,247.45,0,240.05,0s-17.93,4-23.47,8.92L4.78,196.42A16.15,16.15,0,0,0,0,207a16.4,16.4,0,0,0,3.55,9.39L22.34,237.7A16.22,16.22,0,0,0,33,242.48,16.51,16.51,0,0,0,42.34,239L64,219.88V384a32,32,0,0,0,32,32H272ZM629.33,448H592V288c0-17.67-12.89-32-28.8-32H332.8c-15.91,0-28.8,14.33-28.8,32V448H266.67A10.67,10.67,0,0,0,256,458.67v10.66A42.82,42.82,0,0,0,298.6,512H597.4A42.82,42.82,0,0,0,640,469.33V458.67A10.67,10.67,0,0,0,629.33,448ZM544,448H352V304H544Z\"]\n};\nvar faLaptopMedical = {\n prefix: 'fas',\n iconName: 'laptop-medical',\n icon: [640, 512, [], \"f812\", \"M232 224h56v56a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8v-56h56a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8h-56v-56a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v56h-56a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8zM576 48a48.14 48.14 0 0 0-48-48H112a48.14 48.14 0 0 0-48 48v336h512zm-64 272H128V64h384zm112 96H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33-17.47-32.77-32H16a16 16 0 0 0-16 16v16a64.19 64.19 0 0 0 64 64h512a64.19 64.19 0 0 0 64-64v-16a16 16 0 0 0-16-16z\"]\n};\nvar faLaugh = {\n prefix: 'fas',\n iconName: 'laugh',\n icon: [496, 512, [], \"f599\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 152c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm88 272h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18-8.9 71-69.5 126-142.9 126z\"]\n};\nvar faLaughBeam = {\n prefix: 'fas',\n iconName: 'laugh-beam',\n icon: [496, 512, [], \"f59a\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm24 199.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.8 4.1-15.1-4.5zm-160 0c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z\"]\n};\nvar faLaughSquint = {\n prefix: 'fas',\n iconName: 'laugh-squint',\n icon: [496, 512, [], \"f59b\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 161.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 180l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z\"]\n};\nvar faLaughWink = {\n prefix: 'fas',\n iconName: 'laugh-wink',\n icon: [496, 512, [], \"f59c\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm20.1 198.1c4-25.2 34.2-42.1 59.9-42.1s55.9 16.9 59.9 42.1c1.7 11.1-11.4 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 217c-8.4 7.4-21.6.3-19.9-10.9zM168 160c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm230.9 146C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z\"]\n};\nvar faLayerGroup = {\n prefix: 'fas',\n iconName: 'layer-group',\n icon: [512, 512, [], \"f5fd\", \"M12.41 148.02l232.94 105.67c6.8 3.09 14.49 3.09 21.29 0l232.94-105.67c16.55-7.51 16.55-32.52 0-40.03L266.65 2.31a25.607 25.607 0 0 0-21.29 0L12.41 107.98c-16.55 7.51-16.55 32.53 0 40.04zm487.18 88.28l-58.09-26.33-161.64 73.27c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.51 209.97l-58.1 26.33c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 276.3c16.55-7.5 16.55-32.5 0-40zm0 127.8l-57.87-26.23-161.86 73.37c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.29 337.87 12.41 364.1c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 404.1c16.55-7.5 16.55-32.5 0-40z\"]\n};\nvar faLeaf = {\n prefix: 'fas',\n iconName: 'leaf',\n icon: [576, 512, [], \"f06c\", \"M546.2 9.7c-5.6-12.5-21.6-13-28.3-1.2C486.9 62.4 431.4 96 368 96h-80C182 96 96 182 96 288c0 7 .8 13.7 1.5 20.5C161.3 262.8 253.4 224 384 224c8.8 0 16 7.2 16 16s-7.2 16-16 16C132.6 256 26 410.1 2.4 468c-6.6 16.3 1.2 34.9 17.5 41.6 16.4 6.8 35-1.1 41.8-17.3 1.5-3.6 20.9-47.9 71.9-90.6 32.4 43.9 94 85.8 174.9 77.2C465.5 467.5 576 326.7 576 154.3c0-50.2-10.8-102.2-29.8-144.6z\"]\n};\nvar faLemon = {\n prefix: 'fas',\n iconName: 'lemon',\n icon: [512, 512, [], \"f094\", \"M489.038 22.963C465.944-.13 434.648-5.93 413.947 6.129c-58.906 34.312-181.25-53.077-321.073 86.746S40.441 355.041 6.129 413.945c-12.059 20.702-6.26 51.999 16.833 75.093 23.095 23.095 54.392 28.891 75.095 16.832 58.901-34.31 181.246 53.079 321.068-86.743S471.56 156.96 505.871 98.056c12.059-20.702 6.261-51.999-16.833-75.093zM243.881 95.522c-58.189 14.547-133.808 90.155-148.358 148.358-1.817 7.27-8.342 12.124-15.511 12.124-1.284 0-2.59-.156-3.893-.481-8.572-2.144-13.784-10.83-11.642-19.403C81.901 166.427 166.316 81.93 236.119 64.478c8.575-2.143 17.261 3.069 19.403 11.642s-3.069 17.259-11.641 19.402z\"]\n};\nvar faLessThan = {\n prefix: 'fas',\n iconName: 'less-than',\n icon: [384, 512, [], \"f536\", \"M365.46 357.74L147.04 255.89l218.47-101.88c16.02-7.47 22.95-26.51 15.48-42.53l-13.52-29C360 66.46 340.96 59.53 324.94 67L18.48 209.91a32.014 32.014 0 0 0-18.48 29v34.24c0 12.44 7.21 23.75 18.48 29l306.31 142.83c16.06 7.49 35.15.54 42.64-15.52l13.56-29.08c7.49-16.06.54-35.15-15.53-42.64z\"]\n};\nvar faLessThanEqual = {\n prefix: 'fas',\n iconName: 'less-than-equal',\n icon: [448, 512, [], \"f537\", \"M54.98 214.2l301.41 119.87c18.39 6.03 38.71-2.54 45.38-19.15l12.09-30.08c6.68-16.61-2.82-34.97-21.21-41l-175.44-68.05 175.56-68.09c18.29-6 27.74-24.27 21.1-40.79l-12.03-29.92c-6.64-16.53-26.86-25.06-45.15-19.06L54.98 137.89C41.21 142.41 32 154.5 32 168.07v15.96c0 13.56 9.21 25.65 22.98 30.17zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z\"]\n};\nvar faLevelDownAlt = {\n prefix: 'fas',\n iconName: 'level-down-alt',\n icon: [320, 512, [], \"f3be\", \"M313.553 392.331L209.587 504.334c-9.485 10.214-25.676 10.229-35.174 0L70.438 392.331C56.232 377.031 67.062 352 88.025 352H152V80H68.024a11.996 11.996 0 0 1-8.485-3.515l-56-56C-4.021 12.926 1.333 0 12.024 0H208c13.255 0 24 10.745 24 24v328h63.966c20.878 0 31.851 24.969 17.587 40.331z\"]\n};\nvar faLevelUpAlt = {\n prefix: 'fas',\n iconName: 'level-up-alt',\n icon: [320, 512, [], \"f3bf\", \"M313.553 119.669L209.587 7.666c-9.485-10.214-25.676-10.229-35.174 0L70.438 119.669C56.232 134.969 67.062 160 88.025 160H152v272H68.024a11.996 11.996 0 0 0-8.485 3.515l-56 56C-4.021 499.074 1.333 512 12.024 512H208c13.255 0 24-10.745 24-24V160h63.966c20.878 0 31.851-24.969 17.587-40.331z\"]\n};\nvar faLifeRing = {\n prefix: 'fas',\n iconName: 'life-ring',\n icon: [512, 512, [], \"f1cd\", \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm173.696 119.559l-63.399 63.399c-10.987-18.559-26.67-34.252-45.255-45.255l63.399-63.399a218.396 218.396 0 0 1 45.255 45.255zM256 352c-53.019 0-96-42.981-96-96s42.981-96 96-96 96 42.981 96 96-42.981 96-96 96zM127.559 82.304l63.399 63.399c-18.559 10.987-34.252 26.67-45.255 45.255l-63.399-63.399a218.372 218.372 0 0 1 45.255-45.255zM82.304 384.441l63.399-63.399c10.987 18.559 26.67 34.252 45.255 45.255l-63.399 63.399a218.396 218.396 0 0 1-45.255-45.255zm302.137 45.255l-63.399-63.399c18.559-10.987 34.252-26.67 45.255-45.255l63.399 63.399a218.403 218.403 0 0 1-45.255 45.255z\"]\n};\nvar faLightbulb = {\n prefix: 'fas',\n iconName: 'lightbulb',\n icon: [352, 512, [], \"f0eb\", \"M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z\"]\n};\nvar faLink = {\n prefix: 'fas',\n iconName: 'link',\n icon: [512, 512, [], \"f0c1\", \"M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z\"]\n};\nvar faLiraSign = {\n prefix: 'fas',\n iconName: 'lira-sign',\n icon: [384, 512, [], \"f195\", \"M371.994 256h-48.019C317.64 256 312 260.912 312 267.246 312 368 230.179 416 144 416V256.781l134.603-29.912A12 12 0 0 0 288 215.155v-40.976c0-7.677-7.109-13.38-14.603-11.714L144 191.219V160.78l134.603-29.912A12 12 0 0 0 288 119.154V78.179c0-7.677-7.109-13.38-14.603-11.714L144 95.219V44c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v68.997L9.397 125.131A12 12 0 0 0 0 136.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 178.558v30.439L9.397 221.131A12 12 0 0 0 0 232.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 274.558V468c0 6.627 5.373 12 12 12h79.583c134.091 0 223.255-77.834 228.408-211.592.261-6.782-5.211-12.408-11.997-12.408z\"]\n};\nvar faList = {\n prefix: 'fas',\n iconName: 'list',\n icon: [512, 512, [], \"f03a\", \"M80 368H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm0-320H16A16 16 0 0 0 0 64v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16V64a16 16 0 0 0-16-16zm0 160H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm416 176H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faListAlt = {\n prefix: 'fas',\n iconName: 'list-alt',\n icon: [512, 512, [], \"f022\", \"M464 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM128 120c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm288-136v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12z\"]\n};\nvar faListOl = {\n prefix: 'fas',\n iconName: 'list-ol',\n icon: [512, 512, [], \"f0cb\", \"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"]\n};\nvar faListUl = {\n prefix: 'fas',\n iconName: 'list-ul',\n icon: [512, 512, [], \"f0ca\", \"M48 48a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm448 16H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faLocationArrow = {\n prefix: 'fas',\n iconName: 'location-arrow',\n icon: [512, 512, [], \"f124\", \"M444.52 3.52L28.74 195.42c-47.97 22.39-31.98 92.75 19.19 92.75h175.91v175.91c0 51.17 70.36 67.17 92.75 19.19l191.9-415.78c15.99-38.39-25.59-79.97-63.97-63.97z\"]\n};\nvar faLock = {\n prefix: 'fas',\n iconName: 'lock',\n icon: [448, 512, [], \"f023\", \"M400 224h-24v-72C376 68.2 307.8 0 224 0S72 68.2 72 152v72H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48zm-104 0H152v-72c0-39.7 32.3-72 72-72s72 32.3 72 72v72z\"]\n};\nvar faLockOpen = {\n prefix: 'fas',\n iconName: 'lock-open',\n icon: [576, 512, [], \"f3c1\", \"M423.5 0C339.5.3 272 69.5 272 153.5V224H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48h-48v-71.1c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v80c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-80C576 68 507.5-.3 423.5 0z\"]\n};\nvar faLongArrowAltDown = {\n prefix: 'fas',\n iconName: 'long-arrow-alt-down',\n icon: [256, 512, [], \"f309\", \"M168 345.941V44c0-6.627-5.373-12-12-12h-56c-6.627 0-12 5.373-12 12v301.941H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.569 9.373 33.941 0l86.059-86.059c15.119-15.119 4.411-40.971-16.971-40.971H168z\"]\n};\nvar faLongArrowAltLeft = {\n prefix: 'fas',\n iconName: 'long-arrow-alt-left',\n icon: [448, 512, [], \"f30a\", \"M134.059 296H436c6.627 0 12-5.373 12-12v-56c0-6.627-5.373-12-12-12H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.569 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296z\"]\n};\nvar faLongArrowAltRight = {\n prefix: 'fas',\n iconName: 'long-arrow-alt-right',\n icon: [448, 512, [], \"f30b\", \"M313.941 216H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h301.941v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.569 0-33.941l-86.059-86.059c-15.119-15.119-40.971-4.411-40.971 16.971V216z\"]\n};\nvar faLongArrowAltUp = {\n prefix: 'fas',\n iconName: 'long-arrow-alt-up',\n icon: [256, 512, [], \"f30c\", \"M88 166.059V468c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12V166.059h46.059c21.382 0 32.09-25.851 16.971-40.971l-86.059-86.059c-9.373-9.373-24.569-9.373-33.941 0l-86.059 86.059c-15.119 15.119-4.411 40.971 16.971 40.971H88z\"]\n};\nvar faLowVision = {\n prefix: 'fas',\n iconName: 'low-vision',\n icon: [576, 512, [], \"f2a8\", \"M569.344 231.631C512.96 135.949 407.81 72 288 72c-28.468 0-56.102 3.619-82.451 10.409L152.778 10.24c-7.601-10.858-22.564-13.5-33.423-5.9l-13.114 9.178c-10.86 7.601-13.502 22.566-5.9 33.426l43.131 58.395C89.449 131.73 40.228 174.683 6.682 231.581c-.01.017-.023.033-.034.05-8.765 14.875-8.964 33.528 0 48.739 38.5 65.332 99.742 115.862 172.859 141.349L55.316 244.302A272.194 272.194 0 0 1 83.61 208.39l119.4 170.58h.01l40.63 58.04a330.055 330.055 0 0 0 78.94 1.17l-189.98-271.4a277.628 277.628 0 0 1 38.777-21.563l251.836 356.544c7.601 10.858 22.564 13.499 33.423 5.9l13.114-9.178c10.86-7.601 13.502-22.567 5.9-33.426l-43.12-58.377-.007-.009c57.161-27.978 104.835-72.04 136.81-126.301a47.938 47.938 0 0 0 .001-48.739zM390.026 345.94l-19.066-27.23c24.682-32.567 27.711-76.353 8.8-111.68v.03c0 23.65-19.17 42.82-42.82 42.82-23.828 0-42.82-19.349-42.82-42.82 0-23.65 19.17-42.82 42.82-42.82h.03c-24.75-13.249-53.522-15.643-79.51-7.68l-19.068-27.237C253.758 123.306 270.488 120 288 120c75.162 0 136 60.826 136 136 0 34.504-12.833 65.975-33.974 89.94z\"]\n};\nvar faLuggageCart = {\n prefix: 'fas',\n iconName: 'luggage-cart',\n icon: [640, 512, [], \"f59d\", \"M224 320h32V96h-32c-17.67 0-32 14.33-32 32v160c0 17.67 14.33 32 32 32zm352-32V128c0-17.67-14.33-32-32-32h-32v224h32c17.67 0 32-14.33 32-32zm48 96H128V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h48v368c0 8.84 7.16 16 16 16h82.94c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16h197.88c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM480 96V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v272h192V96zm-48 0h-96V48h96v48z\"]\n};\nvar faLungs = {\n prefix: 'fas',\n iconName: 'lungs',\n icon: [640, 512, [], \"f604\", \"M636.11 390.15C614.44 308.85 580.07 231 534.1 159.13 511.98 124.56 498.03 96 454.05 96 415.36 96 384 125.42 384 161.71v60.11l-32.88-21.92a15.996 15.996 0 0 1-7.12-13.31V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v170.59c0 5.35-2.67 10.34-7.12 13.31L256 221.82v-60.11C256 125.42 224.64 96 185.95 96c-43.98 0-57.93 28.56-80.05 63.13C59.93 231 25.56 308.85 3.89 390.15 1.3 399.84 0 409.79 0 419.78c0 61.23 62.48 105.44 125.24 88.62l59.5-15.95c42.18-11.3 71.26-47.47 71.26-88.62v-87.49l-85.84 57.23a7.992 7.992 0 0 1-11.09-2.22l-8.88-13.31a7.992 7.992 0 0 1 2.22-11.09L320 235.23l167.59 111.72a7.994 7.994 0 0 1 2.22 11.09l-8.88 13.31a7.994 7.994 0 0 1-11.09 2.22L384 316.34v87.49c0 41.15 29.08 77.31 71.26 88.62l59.5 15.95C577.52 525.22 640 481.01 640 419.78c0-9.99-1.3-19.94-3.89-29.63z\"]\n};\nvar faLungsVirus = {\n prefix: 'fas',\n iconName: 'lungs-virus',\n icon: [640, 512, [], \"e067\", \"M344,150.68V16A16,16,0,0,0,328,0H312a16,16,0,0,0-16,16V150.68a46.45,46.45,0,0,1,48,0ZM195.54,444.46a48.06,48.06,0,0,1,0-67.88l8.58-8.58H192a48,48,0,0,1,0-96h12.12l-8.58-8.57a48,48,0,0,1,60.46-74V161.75C256,125.38,224.62,96,186,96c-44,0-58,28.5-80.12,63.13a819.52,819.52,0,0,0-102,231A113.16,113.16,0,0,0,0,419.75C0,481,62.5,525.26,125.25,508.38l59.5-15.87a98.51,98.51,0,0,0,52.5-34.75,46.49,46.49,0,0,1-41.71-13.3Zm226.29-22.63a16,16,0,0,0,0-22.62l-8.58-8.58C393.09,370.47,407.37,336,435.88,336H448a16,16,0,0,0,0-32H435.88c-28.51,0-42.79-34.47-22.63-54.62l8.58-8.58a16,16,0,0,0-22.63-22.63l-8.57,8.58C370.47,246.91,336,232.63,336,204.12V192a16,16,0,0,0-32,0v12.12c0,28.51-34.47,42.79-54.63,22.63l-8.57-8.58a16,16,0,0,0-22.63,22.63l8.58,8.58c20.16,20.15,5.88,54.62-22.63,54.62H192a16,16,0,0,0,0,32h12.12c28.51,0,42.79,34.47,22.63,54.63l-8.58,8.58a16,16,0,1,0,22.63,22.62l8.57-8.57C269.53,393.1,304,407.38,304,435.88V448a16,16,0,0,0,32,0V435.88c0-28.5,34.47-42.78,54.63-22.62l8.57,8.57a16,16,0,0,0,22.63,0ZM288,304a16,16,0,1,1,16-16A16,16,0,0,1,288,304Zm64,64a16,16,0,1,1,16-16A16,16,0,0,1,352,368Zm284.12,22.13a819.52,819.52,0,0,0-102-231C512,124.5,498,96,454,96c-38.62,0-70,29.38-70,65.75v27.72a48,48,0,0,1,60.46,74L435.88,272H448a48,48,0,0,1,0,96H435.88l8.58,8.58a47.7,47.7,0,0,1-41.71,81.18,98.51,98.51,0,0,0,52.5,34.75l59.5,15.87C577.5,525.26,640,481,640,419.75A113.16,113.16,0,0,0,636.12,390.13Z\"]\n};\nvar faMagic = {\n prefix: 'fas',\n iconName: 'magic',\n icon: [512, 512, [], \"f0d0\", \"M224 96l16-32 32-16-32-16-16-32-16 32-32 16 32 16 16 32zM80 160l26.66-53.33L160 80l-53.34-26.67L80 0 53.34 53.33 0 80l53.34 26.67L80 160zm352 128l-26.66 53.33L352 368l53.34 26.67L432 448l26.66-53.33L512 368l-53.34-26.67L432 288zm70.62-193.77L417.77 9.38C411.53 3.12 403.34 0 395.15 0c-8.19 0-16.38 3.12-22.63 9.38L9.38 372.52c-12.5 12.5-12.5 32.76 0 45.25l84.85 84.85c6.25 6.25 14.44 9.37 22.62 9.37 8.19 0 16.38-3.12 22.63-9.37l363.14-363.15c12.5-12.48 12.5-32.75 0-45.24zM359.45 203.46l-50.91-50.91 86.6-86.6 50.91 50.91-86.6 86.6z\"]\n};\nvar faMagnet = {\n prefix: 'fas',\n iconName: 'magnet',\n icon: [512, 512, [], \"f076\", \"M164.07 148.1H12a12 12 0 0 1-12-12v-80a36 36 0 0 1 36-36h104a36 36 0 0 1 36 36v80a11.89 11.89 0 0 1-11.93 12zm347.93-12V56a36 36 0 0 0-36-36H372a36 36 0 0 0-36 36v80a12 12 0 0 0 12 12h152a11.89 11.89 0 0 0 12-11.9zm-164 44a12 12 0 0 0-12 12v52c0 128.1-160 127.9-160 0v-52a12 12 0 0 0-12-12H12.1a12 12 0 0 0-12 12.1c.1 21.4.6 40.3 0 53.3 0 150.6 136.17 246.6 256.75 246.6s255-96 255-246.7c-.6-12.8-.2-33 0-53.2a12 12 0 0 0-12-12.1z\"]\n};\nvar faMailBulk = {\n prefix: 'fas',\n iconName: 'mail-bulk',\n icon: [576, 512, [], \"f674\", \"M160 448c-25.6 0-51.2-22.4-64-32-64-44.8-83.2-60.8-96-70.4V480c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V345.6c-12.8 9.6-32 25.6-96 70.4-12.8 9.6-38.4 32-64 32zm128-192H32c-17.67 0-32 14.33-32 32v16c25.6 19.2 22.4 19.2 115.2 86.4 9.6 6.4 28.8 25.6 44.8 25.6s35.2-19.2 44.8-22.4c92.8-67.2 89.6-67.2 115.2-86.4V288c0-17.67-14.33-32-32-32zm256-96H224c-17.67 0-32 14.33-32 32v32h96c33.21 0 60.59 25.42 63.71 57.82l.29-.22V416h192c17.67 0 32-14.33 32-32V192c0-17.67-14.33-32-32-32zm-32 128h-64v-64h64v64zm-352-96c0-35.29 28.71-64 64-64h224V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v192h96v-32z\"]\n};\nvar faMale = {\n prefix: 'fas',\n iconName: 'male',\n icon: [192, 512, [], \"f183\", \"M96 0c35.346 0 64 28.654 64 64s-28.654 64-64 64-64-28.654-64-64S60.654 0 96 0m48 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H48c-26.51 0-48 21.49-48 48v136c0 13.255 10.745 24 24 24h16v136c0 13.255 10.745 24 24 24h64c13.255 0 24-10.745 24-24V352h16c13.255 0 24-10.745 24-24V192c0-26.51-21.49-48-48-48z\"]\n};\nvar faMap = {\n prefix: 'fas',\n iconName: 'map',\n icon: [576, 512, [], \"f279\", \"M0 117.66v346.32c0 11.32 11.43 19.06 21.94 14.86L160 416V32L20.12 87.95A32.006 32.006 0 0 0 0 117.66zM192 416l192 64V96L192 32v384zM554.06 33.16L416 96v384l139.88-55.95A31.996 31.996 0 0 0 576 394.34V48.02c0-11.32-11.43-19.06-21.94-14.86z\"]\n};\nvar faMapMarked = {\n prefix: 'fas',\n iconName: 'map-marked',\n icon: [576, 512, [], \"f59f\", \"M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z\"]\n};\nvar faMapMarkedAlt = {\n prefix: 'fas',\n iconName: 'map-marked-alt',\n icon: [576, 512, [], \"f5a0\", \"M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zm0 168c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z\"]\n};\nvar faMapMarker = {\n prefix: 'fas',\n iconName: 'map-marker',\n icon: [384, 512, [], \"f041\", \"M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0z\"]\n};\nvar faMapMarkerAlt = {\n prefix: 'fas',\n iconName: 'map-marker-alt',\n icon: [384, 512, [], \"f3c5\", \"M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0zM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80z\"]\n};\nvar faMapPin = {\n prefix: 'fas',\n iconName: 'map-pin',\n icon: [288, 512, [], \"f276\", \"M112 316.94v156.69l22.02 33.02c4.75 7.12 15.22 7.12 19.97 0L176 473.63V316.94c-10.39 1.92-21.06 3.06-32 3.06s-21.61-1.14-32-3.06zM144 0C64.47 0 0 64.47 0 144s64.47 144 144 144 144-64.47 144-144S223.53 0 144 0zm0 76c-37.5 0-68 30.5-68 68 0 6.62-5.38 12-12 12s-12-5.38-12-12c0-50.73 41.28-92 92-92 6.62 0 12 5.38 12 12s-5.38 12-12 12z\"]\n};\nvar faMapSigns = {\n prefix: 'fas',\n iconName: 'map-signs',\n icon: [512, 512, [], \"f277\", \"M507.31 84.69L464 41.37c-6-6-14.14-9.37-22.63-9.37H288V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v16H56c-13.25 0-24 10.75-24 24v80c0 13.25 10.75 24 24 24h385.37c8.49 0 16.62-3.37 22.63-9.37l43.31-43.31c6.25-6.26 6.25-16.38 0-22.63zM224 496c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h-64v112zm232-272H288v-32h-64v32H70.63c-8.49 0-16.62 3.37-22.63 9.37L4.69 276.69c-6.25 6.25-6.25 16.38 0 22.63L48 342.63c6 6 14.14 9.37 22.63 9.37H456c13.25 0 24-10.75 24-24v-80c0-13.25-10.75-24-24-24z\"]\n};\nvar faMarker = {\n prefix: 'fas',\n iconName: 'marker',\n icon: [512, 512, [], \"f5a1\", \"M93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l75.4-75.4-128.02-128.02-75.4 75.4zM485.49 26.51c-35.35-35.35-92.67-35.35-128.02 0l-21.76 21.76-36.56-36.55c-15.62-15.62-40.95-15.62-56.56 0L138.47 115.84c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0l87.15-87.15 19.59 19.59L191.98 192 320 320.02l165.49-165.49c35.35-35.35 35.35-92.66 0-128.02z\"]\n};\nvar faMars = {\n prefix: 'fas',\n iconName: 'mars',\n icon: [384, 512, [], \"f222\", \"M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c0-6.6-5.4-12-12-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faMarsDouble = {\n prefix: 'fas',\n iconName: 'mars-double',\n icon: [512, 512, [], \"f227\", \"M340 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C198.5 72.1 172.2 64 144 64 64.5 64 0 128.5 0 208s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.5 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 288c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80zm356-128.1h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7c-18.2-11.4-39-18.9-61.5-21.3-2.1 21.8-8.2 43.3-18.4 63.3 1.1 0 2.2-.1 3.2-.1 44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80c0-1.1 0-2.2.1-3.2-20 10.2-41.5 16.4-63.3 18.4C168.4 455.6 229.6 512 304 512c79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12v-79c0-6.7-5.4-12.1-12-12.1z\"]\n};\nvar faMarsStroke = {\n prefix: 'fas',\n iconName: 'mars-stroke',\n icon: [384, 512, [], \"f229\", \"M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-17.5 17.5-14.1-14.1c-4.7-4.7-12.3-4.7-17 0L224.5 133c-4.7 4.7-4.7 12.3 0 17l14.1 14.1-18 18c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l18-18 14.1 14.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L329.2 164l17.5-17.5 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c-.1-6.6-5.5-12-12.1-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faMarsStrokeH = {\n prefix: 'fas',\n iconName: 'mars-stroke-h',\n icon: [480, 512, [], \"f22b\", \"M476.2 247.5l-55.9-55.9c-7.6-7.6-20.5-2.2-20.5 8.5V224H376v-20c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v20h-27.6c-5.8-25.6-18.7-49.9-38.6-69.8C189.6 98 98.4 98 42.2 154.2c-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 19.9-19.9 32.8-44.2 38.6-69.8H312v20c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-20h23.9v23.9c0 10.7 12.9 16 20.5 8.5l55.9-55.9c4.6-4.7 4.6-12.3-.1-17zm-275.6 65.1c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z\"]\n};\nvar faMarsStrokeV = {\n prefix: 'fas',\n iconName: 'mars-stroke-v',\n icon: [288, 512, [], \"f22a\", \"M245.8 234.2c-19.9-19.9-44.2-32.8-69.8-38.6v-25.4h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V81.4h23.9c10.7 0 16-12.9 8.5-20.5L152.5 5.1c-4.7-4.7-12.3-4.7-17 0L79.6 61c-7.6 7.6-2.2 20.5 8.5 20.5H112v24.7H92c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h20v25.4c-25.6 5.8-49.9 18.7-69.8 38.6-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 56.3-56.2 56.3-147.4 0-203.6zm-45.2 158.4c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z\"]\n};\nvar faMask = {\n prefix: 'fas',\n iconName: 'mask',\n icon: [640, 512, [], \"f6fa\", \"M320.67 64c-442.6 0-357.57 384-158.46 384 39.9 0 77.47-20.69 101.42-55.86l25.73-37.79c15.66-22.99 46.97-22.99 62.63 0l25.73 37.79C401.66 427.31 439.23 448 479.13 448c189.86 0 290.63-384-158.46-384zM184 308.36c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05zm272 0c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05z\"]\n};\nvar faMedal = {\n prefix: 'fas',\n iconName: 'medal',\n icon: [512, 512, [], \"f5a2\", \"M223.75 130.75L154.62 15.54A31.997 31.997 0 0 0 127.18 0H16.03C3.08 0-4.5 14.57 2.92 25.18l111.27 158.96c29.72-27.77 67.52-46.83 109.56-53.39zM495.97 0H384.82c-11.24 0-21.66 5.9-27.44 15.54l-69.13 115.21c42.04 6.56 79.84 25.62 109.56 53.38L509.08 25.18C516.5 14.57 508.92 0 495.97 0zM256 160c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm92.52 157.26l-37.93 36.96 8.97 52.22c1.6 9.36-8.26 16.51-16.65 12.09L256 393.88l-46.9 24.65c-8.4 4.45-18.25-2.74-16.65-12.09l8.97-52.22-37.93-36.96c-6.82-6.64-3.05-18.23 6.35-19.59l52.43-7.64 23.43-47.52c2.11-4.28 6.19-6.39 10.28-6.39 4.11 0 8.22 2.14 10.33 6.39l23.43 47.52 52.43 7.64c9.4 1.36 13.17 12.95 6.35 19.59z\"]\n};\nvar faMedkit = {\n prefix: 'fas',\n iconName: 'medkit',\n icon: [512, 512, [], \"f0fa\", \"M96 480h320V128h-32V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v48H96v352zm96-384h128v32H192V96zm320 80v256c0 26.51-21.49 48-48 48h-16V128h16c26.51 0 48 21.49 48 48zM64 480H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v352zm288-208v32c0 8.837-7.163 16-16 16h-48v48c0 8.837-7.163 16-16 16h-32c-8.837 0-16-7.163-16-16v-48h-48c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h48v-48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v48h48c8.837 0 16 7.163 16 16z\"]\n};\nvar faMeh = {\n prefix: 'fas',\n iconName: 'meh',\n icon: [496, 512, [], \"f11a\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm176 192H152c-21.2 0-21.2-32 0-32h192c21.2 0 21.2 32 0 32zm-16-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faMehBlank = {\n prefix: 'fas',\n iconName: 'meh-blank',\n icon: [496, 512, [], \"f5a4\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faMehRollingEyes = {\n prefix: 'fas',\n iconName: 'meh-rolling-eyes',\n icon: [496, 512, [], \"f5a5\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 224c0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64s-64-28.7-64-64zm224 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-112c-35.3 0-64-28.7-64-64 0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64z\"]\n};\nvar faMemory = {\n prefix: 'fas',\n iconName: 'memory',\n icon: [640, 512, [], \"f538\", \"M640 130.94V96c0-17.67-14.33-32-32-32H32C14.33 64 0 78.33 0 96v34.94c18.6 6.61 32 24.19 32 45.06s-13.4 38.45-32 45.06V320h640v-98.94c-18.6-6.61-32-24.19-32-45.06s13.4-38.45 32-45.06zM224 256h-64V128h64v128zm128 0h-64V128h64v128zm128 0h-64V128h64v128zM0 448h64v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h64v-96H0v96z\"]\n};\nvar faMenorah = {\n prefix: 'fas',\n iconName: 'menorah',\n icon: [640, 512, [], \"f676\", \"M144 128h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm192 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm80-32c17.67 0 32-14.33 32-32S608 0 608 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S512 0 512 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S416 0 416 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S320 0 320 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S224 0 224 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S128 0 128 0 96 46.33 96 64s14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S32 0 32 0 0 46.33 0 64s14.33 32 32 32zm544 192c0 17.67-14.33 32-32 32H352V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v176H96c-17.67 0-32-14.33-32-32V144c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v144c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v144z\"]\n};\nvar faMercury = {\n prefix: 'fas',\n iconName: 'mercury',\n icon: [288, 512, [], \"f223\", \"M288 208c0-44.2-19.9-83.7-51.2-110.1 2.5-1.8 4.9-3.8 7.2-5.8 24.7-21.2 39.8-48.8 43.2-78.8.9-7.1-4.7-13.3-11.9-13.3h-40.5C229 0 224.1 4.1 223 9.8c-2.4 12.5-9.6 24.3-20.7 33.8C187 56.8 166.3 64 144 64s-43-7.2-58.4-20.4C74.5 34.1 67.4 22.3 64.9 9.8 63.8 4.1 58.9 0 53.2 0H12.7C5.5 0-.1 6.2.8 13.3 4.2 43.4 19.2 71 44 92.2c2.3 2 4.7 3.9 7.2 5.8C19.9 124.3 0 163.8 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z\"]\n};\nvar faMeteor = {\n prefix: 'fas',\n iconName: 'meteor',\n icon: [512, 512, [], \"f753\", \"M511.328,20.8027c-11.60759,38.70264-34.30724,111.70173-61.30311,187.70077,6.99893,2.09372,13.4042,4,18.60653,5.59368a16.06158,16.06158,0,0,1,9.49854,22.906c-22.106,42.29635-82.69047,152.795-142.47819,214.40356-.99984,1.09373-1.99969,2.5-2.99954,3.49995A194.83046,194.83046,0,1,1,57.085,179.41009c.99985-1,2.40588-2,3.49947-3,61.59994-59.90549,171.97367-120.40473,214.37343-142.4982a16.058,16.058,0,0,1,22.90274,9.49988c1.59351,5.09368,3.49947,11.5936,5.5929,18.59351C379.34818,35.00565,452.43074,12.30281,491.12794.70921A16.18325,16.18325,0,0,1,511.328,20.8027ZM319.951,320.00207A127.98041,127.98041,0,1,0,191.97061,448.00046,127.97573,127.97573,0,0,0,319.951,320.00207Zm-127.98041-31.9996a31.9951,31.9951,0,1,1-31.9951-31.9996A31.959,31.959,0,0,1,191.97061,288.00247Zm31.9951,79.999a15.99755,15.99755,0,1,1-15.99755-15.9998A16.04975,16.04975,0,0,1,223.96571,368.00147Z\"]\n};\nvar faMicrochip = {\n prefix: 'fas',\n iconName: 'microchip',\n icon: [512, 512, [], \"f2db\", \"M416 48v416c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h224c26.51 0 48 21.49 48 48zm96 58v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42V88h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zM30 376h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6z\"]\n};\nvar faMicrophone = {\n prefix: 'fas',\n iconName: 'microphone',\n icon: [352, 512, [], \"f130\", \"M176 352c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96zm160-160h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16z\"]\n};\nvar faMicrophoneAlt = {\n prefix: 'fas',\n iconName: 'microphone-alt',\n icon: [352, 512, [], \"f3c9\", \"M336 192h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16zM176 352c53.02 0 96-42.98 96-96h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96z\"]\n};\nvar faMicrophoneAltSlash = {\n prefix: 'fas',\n iconName: 'microphone-alt-slash',\n icon: [640, 512, [], \"f539\", \"M633.82 458.1L476.26 336.33C488.74 312.21 496 284.98 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67h-43.67l-41.4-32H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.78c11.71-1.62 23.1-4.28 33.96-8.08l-50.4-38.96c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z\"]\n};\nvar faMicrophoneSlash = {\n prefix: 'fas',\n iconName: 'microphone-slash',\n icon: [640, 512, [], \"f131\", \"M633.82 458.1l-157.8-121.96C488.61 312.13 496 285.01 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67V96c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.77c11.66-1.6 22.85-4.54 33.67-8.31l-50.11-38.73c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z\"]\n};\nvar faMicroscope = {\n prefix: 'fas',\n iconName: 'microscope',\n icon: [512, 512, [], \"f610\", \"M160 320h12v16c0 8.84 7.16 16 16 16h40c8.84 0 16-7.16 16-16v-16h12c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32V16c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v16c-17.67 0-32 14.33-32 32v224c0 17.67 14.33 32 32 32zm304 128h-1.29C493.24 413.99 512 369.2 512 320c0-105.88-86.12-192-192-192v64c70.58 0 128 57.42 128 128s-57.42 128-128 128H48c-26.51 0-48 21.49-48 48 0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48zm-360-32h208c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H104c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8z\"]\n};\nvar faMinus = {\n prefix: 'fas',\n iconName: 'minus',\n icon: [448, 512, [], \"f068\", \"M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"]\n};\nvar faMinusCircle = {\n prefix: 'fas',\n iconName: 'minus-circle',\n icon: [512, 512, [], \"f056\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zM124 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H124z\"]\n};\nvar faMinusSquare = {\n prefix: 'fas',\n iconName: 'minus-square',\n icon: [448, 512, [], \"f146\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM92 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H92z\"]\n};\nvar faMitten = {\n prefix: 'fas',\n iconName: 'mitten',\n icon: [448, 512, [], \"f7b5\", \"M368 416H48c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16zm57-209.1c-27.2-22.6-67.5-19-90.1 8.2l-20.9 25-29.6-128.4c-18-77.5-95.4-125.9-172.8-108C34.2 21.6-14.2 98.9 3.7 176.4L51.6 384h309l72.5-87c22.7-27.2 19-67.5-8.1-90.1z\"]\n};\nvar faMobile = {\n prefix: 'fas',\n iconName: 'mobile',\n icon: [320, 512, [], \"f10b\", \"M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faMobileAlt = {\n prefix: 'fas',\n iconName: 'mobile-alt',\n icon: [320, 512, [], \"f3cd\", \"M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm112-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v312z\"]\n};\nvar faMoneyBill = {\n prefix: 'fas',\n iconName: 'money-bill',\n icon: [640, 512, [], \"f0d6\", \"M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 176c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 48h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z\"]\n};\nvar faMoneyBillAlt = {\n prefix: 'fas',\n iconName: 'money-bill-alt',\n icon: [640, 512, [], \"f3d1\", \"M352 288h-16v-88c0-4.42-3.58-8-8-8h-13.58c-4.74 0-9.37 1.4-13.31 4.03l-15.33 10.22a7.994 7.994 0 0 0-2.22 11.09l8.88 13.31a7.994 7.994 0 0 0 11.09 2.22l.47-.31V288h-16c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h64c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 192c-53.02 0-96-50.15-96-112 0-61.86 42.98-112 96-112s96 50.14 96 112c0 61.87-43 112-96 112zm272 32h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z\"]\n};\nvar faMoneyBillWave = {\n prefix: 'fas',\n iconName: 'money-bill-wave',\n icon: [640, 512, [], \"f53a\", \"M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM48 132.22c20.12 5.04 41.12 7.57 62.72 8.93C104.84 170.54 79 192.69 48 192.69v-60.47zm0 285v-47.78c34.37 0 62.18 27.27 63.71 61.4-22.53-1.81-43.59-6.31-63.71-13.62zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 27.78c-17.52-4.39-35.71-6.85-54.32-8.44 5.87-26.08 27.5-45.88 54.32-49.28v57.72zm0-236.11c-30.89-3.91-54.86-29.7-55.81-61.55 19.54 2.17 38.09 6.23 55.81 12.66v48.89z\"]\n};\nvar faMoneyBillWaveAlt = {\n prefix: 'fas',\n iconName: 'money-bill-wave-alt',\n icon: [640, 512, [], \"f53b\", \"M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96z\"]\n};\nvar faMoneyCheck = {\n prefix: 'fas',\n iconName: 'money-check',\n icon: [640, 512, [], \"f53c\", \"M0 448c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128H0v320zm448-208c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-32zm0 120c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H456c-4.42 0-8-3.58-8-8v-16zM64 264c0-4.42 3.58-8 8-8h304c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm0 96c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zM624 32H16C7.16 32 0 39.16 0 48v48h640V48c0-8.84-7.16-16-16-16z\"]\n};\nvar faMoneyCheckAlt = {\n prefix: 'fas',\n iconName: 'money-check-alt',\n icon: [640, 512, [], \"f53d\", \"M608 32H32C14.33 32 0 46.33 0 64v384c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM176 327.88V344c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V152c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07zM416 312c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm160 0c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h272c4.42 0 8 3.58 8 8v16z\"]\n};\nvar faMonument = {\n prefix: 'fas',\n iconName: 'monument',\n icon: [384, 512, [], \"f5a6\", \"M368 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h352c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-78.86-347.26a31.97 31.97 0 0 0-9.21-19.44L203.31 4.69c-6.25-6.25-16.38-6.25-22.63 0l-76.6 76.61a31.97 31.97 0 0 0-9.21 19.44L64 416h256l-30.86-315.26zM240 307.2c0 6.4-6.4 12.8-12.8 12.8h-70.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h70.4c6.4 0 12.8 6.4 12.8 12.8v38.4z\"]\n};\nvar faMoon = {\n prefix: 'fas',\n iconName: 'moon',\n icon: [512, 512, [], \"f186\", \"M283.211 512c78.962 0 151.079-35.925 198.857-94.792 7.068-8.708-.639-21.43-11.562-19.35-124.203 23.654-238.262-71.576-238.262-196.954 0-72.222 38.662-138.635 101.498-174.394 9.686-5.512 7.25-20.197-3.756-22.23A258.156 258.156 0 0 0 283.211 0c-141.309 0-256 114.511-256 256 0 141.309 114.511 256 256 256z\"]\n};\nvar faMortarPestle = {\n prefix: 'fas',\n iconName: 'mortar-pestle',\n icon: [512, 512, [], \"f5a7\", \"M501.54 60.91c17.22-17.22 12.51-46.25-9.27-57.14a35.696 35.696 0 0 0-37.37 3.37L251.09 160h151.37l99.08-99.09zM496 192H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c0 80.98 50.2 150.11 121.13 178.32-12.76 16.87-21.72 36.8-24.95 58.69-1.46 9.92 6.04 18.98 16.07 18.98h223.5c10.03 0 17.53-9.06 16.07-18.98-3.22-21.89-12.18-41.82-24.95-58.69C429.8 406.11 480 336.98 480 256h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"]\n};\nvar faMosque = {\n prefix: 'fas',\n iconName: 'mosque',\n icon: [640, 512, [], \"f678\", \"M0 480c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V160H0v320zm579.16-192c17.86-17.39 28.84-37.34 28.84-58.91 0-52.86-41.79-93.79-87.92-122.9-41.94-26.47-80.63-57.77-111.96-96.22L400 0l-8.12 9.97c-31.33 38.45-70.01 69.76-111.96 96.22C233.79 135.3 192 176.23 192 229.09c0 21.57 10.98 41.52 28.84 58.91h358.32zM608 320H192c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h32v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h64v-72c0-48 48-72 48-72s48 24 48 72v72h64v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h32c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM64 0S0 32 0 96v32h128V96c0-64-64-96-64-96z\"]\n};\nvar faMotorcycle = {\n prefix: 'fas',\n iconName: 'motorcycle',\n icon: [640, 512, [], \"f21c\", \"M512.9 192c-14.9-.1-29.1 2.3-42.4 6.9L437.6 144H520c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24h-45.3c-6.8 0-13.3 2.9-17.8 7.9l-37.5 41.7-22.8-38C392.2 68.4 384.4 64 376 64h-80c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h66.4l19.2 32H227.9c-17.7-23.1-44.9-40-99.9-40H72.5C59 104 47.7 115 48 128.5c.2 13 10.9 23.5 24 23.5h56c24.5 0 38.7 10.9 47.8 24.8l-11.3 20.5c-13-3.9-26.9-5.7-41.3-5.2C55.9 194.5 1.6 249.6 0 317c-1.6 72.1 56.3 131 128 131 59.6 0 109.7-40.8 124-96h84.2c13.7 0 24.6-11.4 24-25.1-2.1-47.1 17.5-93.7 56.2-125l12.5 20.8c-27.6 23.7-45.1 58.9-44.8 98.2.5 69.6 57.2 126.5 126.8 127.1 71.6.7 129.8-57.5 129.2-129.1-.7-69.6-57.6-126.4-127.2-126.9zM128 400c-44.1 0-80-35.9-80-80s35.9-80 80-80c4.2 0 8.4.3 12.5 1L99 316.4c-8.8 16 2.8 35.6 21 35.6h81.3c-12.4 28.2-40.6 48-73.3 48zm463.9-75.6c-2.2 40.6-35 73.4-75.5 75.5-46.1 2.5-84.4-34.3-84.4-79.9 0-21.4 8.4-40.8 22.1-55.1l49.4 82.4c4.5 7.6 14.4 10 22 5.5l13.7-8.2c7.6-4.5 10-14.4 5.5-22l-48.6-80.9c5.2-1.1 10.5-1.6 15.9-1.6 45.6-.1 82.3 38.2 79.9 84.3z\"]\n};\nvar faMountain = {\n prefix: 'fas',\n iconName: 'mountain',\n icon: [640, 512, [], \"f6fc\", \"M634.92 462.7l-288-448C341.03 5.54 330.89 0 320 0s-21.03 5.54-26.92 14.7l-288 448a32.001 32.001 0 0 0-1.17 32.64A32.004 32.004 0 0 0 32 512h576c11.71 0 22.48-6.39 28.09-16.67a31.983 31.983 0 0 0-1.17-32.63zM320 91.18L405.39 224H320l-64 64-38.06-38.06L320 91.18z\"]\n};\nvar faMouse = {\n prefix: 'fas',\n iconName: 'mouse',\n icon: [384, 512, [], \"f8cc\", \"M0 352a160 160 0 0 0 160 160h64a160 160 0 0 0 160-160V224H0zM176 0h-16A160 160 0 0 0 0 160v32h176zm48 0h-16v192h176v-32A160 160 0 0 0 224 0z\"]\n};\nvar faMousePointer = {\n prefix: 'fas',\n iconName: 'mouse-pointer',\n icon: [320, 512, [], \"f245\", \"M302.189 329.126H196.105l55.831 135.993c3.889 9.428-.555 19.999-9.444 23.999l-49.165 21.427c-9.165 4-19.443-.571-23.332-9.714l-53.053-129.136-86.664 89.138C18.729 472.71 0 463.554 0 447.977V18.299C0 1.899 19.921-6.096 30.277 5.443l284.412 292.542c11.472 11.179 3.007 31.141-12.5 31.141z\"]\n};\nvar faMugHot = {\n prefix: 'fas',\n iconName: 'mug-hot',\n icon: [512, 512, [], \"f7b6\", \"M127.1 146.5c1.3 7.7 8 13.5 16 13.5h16.5c9.8 0 17.6-8.5 16.3-18-3.8-28.2-16.4-54.2-36.6-74.7-14.4-14.7-23.6-33.3-26.4-53.5C111.8 5.9 105 0 96.8 0H80.4C70.6 0 63 8.5 64.1 18c3.9 31.9 18 61.3 40.6 84.4 12 12.2 19.7 27.5 22.4 44.1zm112 0c1.3 7.7 8 13.5 16 13.5h16.5c9.8 0 17.6-8.5 16.3-18-3.8-28.2-16.4-54.2-36.6-74.7-14.4-14.7-23.6-33.3-26.4-53.5C223.8 5.9 217 0 208.8 0h-16.4c-9.8 0-17.5 8.5-16.3 18 3.9 31.9 18 61.3 40.6 84.4 12 12.2 19.7 27.5 22.4 44.1zM400 192H32c-17.7 0-32 14.3-32 32v192c0 53 43 96 96 96h192c53 0 96-43 96-96h16c61.8 0 112-50.2 112-112s-50.2-112-112-112zm0 160h-16v-96h16c26.5 0 48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faMusic = {\n prefix: 'fas',\n iconName: 'music',\n icon: [512, 512, [], \"f001\", \"M470.38 1.51L150.41 96A32 32 0 0 0 128 126.51v261.41A139 139 0 0 0 96 384c-53 0-96 28.66-96 64s43 64 96 64 96-28.66 96-64V214.32l256-75v184.61a138.4 138.4 0 0 0-32-3.93c-53 0-96 28.66-96 64s43 64 96 64 96-28.65 96-64V32a32 32 0 0 0-41.62-30.49z\"]\n};\nvar faNetworkWired = {\n prefix: 'fas',\n iconName: 'network-wired',\n icon: [640, 512, [], \"f6ff\", \"M640 264v-16c0-8.84-7.16-16-16-16H344v-40h72c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H224c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h72v40H16c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h104v40H64c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h304v40h-56c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h104c8.84 0 16-7.16 16-16zM256 128V64h128v64H256zm-64 320H96v-64h96v64zm352 0h-96v-64h96v64z\"]\n};\nvar faNeuter = {\n prefix: 'fas',\n iconName: 'neuter',\n icon: [288, 512, [], \"f22c\", \"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V468c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V316.4c64.1-14.5 112-71.9 112-140.4zm-144 80c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faNewspaper = {\n prefix: 'fas',\n iconName: 'newspaper',\n icon: [576, 512, [], \"f1ea\", \"M552 64H88c-13.255 0-24 10.745-24 24v8H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h472c26.51 0 48-21.49 48-48V88c0-13.255-10.745-24-24-24zM56 400a8 8 0 0 1-8-8V144h16v248a8 8 0 0 1-8 8zm236-16H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm-208-96H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm0-96H140c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12z\"]\n};\nvar faNotEqual = {\n prefix: 'fas',\n iconName: 'not-equal',\n icon: [448, 512, [], \"f53e\", \"M416 208c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32h-23.88l51.87-66.81c5.37-7.02 4.04-17.06-2.97-22.43L415.61 3.3c-7.02-5.38-17.06-4.04-22.44 2.97L311.09 112H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h204.56l-74.53 96H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h55.49l-51.87 66.81c-5.37 7.01-4.04 17.05 2.97 22.43L64 508.7c7.02 5.38 17.06 4.04 22.43-2.97L168.52 400H416c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32H243.05l74.53-96H416z\"]\n};\nvar faNotesMedical = {\n prefix: 'fas',\n iconName: 'notes-medical',\n icon: [384, 512, [], \"f481\", \"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm96 304c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm0-192c0 4.4-3.6 8-8 8H104c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16z\"]\n};\nvar faObjectGroup = {\n prefix: 'fas',\n iconName: 'object-group',\n icon: [512, 512, [], \"f247\", \"M480 128V96h20c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v20H64V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v40c0 6.627 5.373 12 12 12h20v320H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-20h384v20c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-20V128zM96 276V140c0-6.627 5.373-12 12-12h168c6.627 0 12 5.373 12 12v136c0 6.627-5.373 12-12 12H108c-6.627 0-12-5.373-12-12zm320 96c0 6.627-5.373 12-12 12H236c-6.627 0-12-5.373-12-12v-52h72c13.255 0 24-10.745 24-24v-72h84c6.627 0 12 5.373 12 12v136z\"]\n};\nvar faObjectUngroup = {\n prefix: 'fas',\n iconName: 'object-ungroup',\n icon: [576, 512, [], \"f248\", \"M64 320v26a6 6 0 0 1-6 6H6a6 6 0 0 1-6-6v-52a6 6 0 0 1 6-6h26V96H6a6 6 0 0 1-6-6V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v26h288V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-26v192h26a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-52a6 6 0 0 1-6-6v-26H64zm480-64v-32h26a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-52a6 6 0 0 0-6 6v26H408v72h8c13.255 0 24 10.745 24 24v64c0 13.255-10.745 24-24 24h-64c-13.255 0-24-10.745-24-24v-8H192v72h-26a6 6 0 0 0-6 6v52a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-26h288v26a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-26V256z\"]\n};\nvar faOilCan = {\n prefix: 'fas',\n iconName: 'oil-can',\n icon: [640, 512, [], \"f613\", \"M629.8 160.31L416 224l-50.49-25.24a64.07 64.07 0 0 0-28.62-6.76H280v-48h56c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h56v48h-56L37.72 166.86a31.9 31.9 0 0 0-5.79-.53C14.67 166.33 0 180.36 0 198.34v94.95c0 15.46 11.06 28.72 26.28 31.48L96 337.46V384c0 17.67 14.33 32 32 32h274.63c8.55 0 16.75-3.42 22.76-9.51l212.26-214.75c1.5-1.5 2.34-3.54 2.34-5.66V168c.01-5.31-5.08-9.15-10.19-7.69zM96 288.67l-48-8.73v-62.43l48 8.73v62.43zm453.33 84.66c0 23.56 19.1 42.67 42.67 42.67s42.67-19.1 42.67-42.67S592 288 592 288s-42.67 61.77-42.67 85.33z\"]\n};\nvar faOm = {\n prefix: 'fas',\n iconName: 'om',\n icon: [512, 512, [], \"f679\", \"M360.6 60.94a10.43 10.43 0 0 0 14.76 0l21.57-21.56a10.43 10.43 0 0 0 0-14.76L375.35 3.06c-4.08-4.07-10.68-4.07-14.76 0l-21.57 21.56a10.43 10.43 0 0 0 0 14.76l21.58 21.56zM412.11 192c-26.69 0-51.77 10.39-70.64 29.25l-24.25 24.25c-6.78 6.77-15.78 10.5-25.38 10.5H245c10.54-22.1 14.17-48.11 7.73-75.23-10.1-42.55-46.36-76.11-89.52-83.19-36.15-5.93-70.9 5.04-96.01 28.78-7.36 6.96-6.97 18.85 1.12 24.93l26.15 19.63c5.72 4.3 13.66 4.32 19.2-.21 8.45-6.9 19.02-10.71 30.27-10.71 26.47 0 48.01 21.53 48.01 48s-21.54 48-48.01 48h-31.9c-11.96 0-19.74 12.58-14.39 23.28l16.09 32.17c2.53 5.06 7.6 8.1 13.17 8.55h33.03c35.3 0 64.01 28.7 64.01 64s-28.71 64-64.01 64c-96.02 0-122.35-54.02-145.15-92.03-4.53-7.55-14.77-3.58-14.79 5.22C-.09 416 41.13 512 159.94 512c70.59 0 128.02-57.42 128.02-128 0-23.42-6.78-45.1-17.81-64h21.69c26.69 0 51.77-10.39 70.64-29.25l24.25-24.25c6.78-6.77 15.78-10.5 25.38-10.5 19.78 0 35.88 16.09 35.88 35.88V392c0 13.23-18.77 24-32.01 24-39.4 0-66.67-24.24-81.82-42.89-4.77-5.87-14.2-2.54-14.2 5.02V416s0 64 96.02 64c48.54 0 96.02-39.47 96.02-88V291.88c0-55.08-44.8-99.88-99.89-99.88zm42.18-124.73c-85.55 65.12-169.05 2.75-172.58.05-6.02-4.62-14.44-4.38-20.14.55-5.74 4.92-7.27 13.17-3.66 19.8 1.61 2.95 40.37 72.34 118.8 72.34 79.92 0 98.78-31.36 101.75-37.66 1.02-2.12 1.53-4.47 1.53-6.83V80c0-13.22-15.14-20.69-25.7-12.73z\"]\n};\nvar faOtter = {\n prefix: 'fas',\n iconName: 'otter',\n icon: [640, 512, [], \"f700\", \"M608 32h-32l-13.25-13.25A63.97 63.97 0 0 0 517.49 0H497c-11.14 0-22.08 2.91-31.75 8.43L312 96h-56C149.96 96 64 181.96 64 288v1.61c0 32.75-16 62.14-39.56 84.89-18.19 17.58-28.1 43.68-23.19 71.8 6.76 38.8 42.9 65.7 82.28 65.7H192c17.67 0 32-14.33 32-32s-14.33-32-32-32H80c-8.83 0-16-7.17-16-16s7.17-16 16-16h224c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-64l149.49-80.5L448 416h80c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-28.22l-55.11-110.21L521.14 192H544c53.02 0 96-42.98 96-96V64c0-17.67-14.33-32-32-32zm-96 16c8.84 0 16 7.16 16 16s-7.16 16-16 16-16-7.16-16-16 7.16-16 16-16zm32 96h-34.96L407.2 198.84l-13.77-27.55L512 112h77.05c-6.62 18.58-24.22 32-45.05 32z\"]\n};\nvar faOutdent = {\n prefix: 'fas',\n iconName: 'outdent',\n icon: [448, 512, [], \"f03b\", \"M100.69 363.29c10 10 27.31 2.93 27.31-11.31V160c0-14.32-17.33-21.31-27.31-11.31l-96 96a16 16 0 0 0 0 22.62zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faPager = {\n prefix: 'fas',\n iconName: 'pager',\n icon: [512, 512, [], \"f815\", \"M448 64H64a64 64 0 0 0-64 64v256a64 64 0 0 0 64 64h384a64 64 0 0 0 64-64V128a64 64 0 0 0-64-64zM160 368H80a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h80zm128-16a16 16 0 0 1-16 16h-80v-48h80a16 16 0 0 1 16 16zm160-128a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32v-64a32 32 0 0 1 32-32h320a32 32 0 0 1 32 32z\"]\n};\nvar faPaintBrush = {\n prefix: 'fas',\n iconName: 'paint-brush',\n icon: [512, 512, [], \"f1fc\", \"M167.02 309.34c-40.12 2.58-76.53 17.86-97.19 72.3-2.35 6.21-8 9.98-14.59 9.98-11.11 0-45.46-27.67-55.25-34.35C0 439.62 37.93 512 128 512c75.86 0 128-43.77 128-120.19 0-3.11-.65-6.08-.97-9.13l-88.01-73.34zM457.89 0c-15.16 0-29.37 6.71-40.21 16.45C213.27 199.05 192 203.34 192 257.09c0 13.7 3.25 26.76 8.73 38.7l63.82 53.18c7.21 1.8 14.64 3.03 22.39 3.03 62.11 0 98.11-45.47 211.16-256.46 7.38-14.35 13.9-29.85 13.9-45.99C512 20.64 486 0 457.89 0z\"]\n};\nvar faPaintRoller = {\n prefix: 'fas',\n iconName: 'paint-roller',\n icon: [512, 512, [], \"f5aa\", \"M416 128V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32zm32-64v128c0 17.67-14.33 32-32 32H256c-35.35 0-64 28.65-64 64v32c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32v-32h160c53.02 0 96-42.98 96-96v-64c0-35.35-28.65-64-64-64z\"]\n};\nvar faPalette = {\n prefix: 'fas',\n iconName: 'palette',\n icon: [512, 512, [], \"f53f\", \"M204.3 5C104.9 24.4 24.8 104.3 5.2 203.4c-37 187 131.7 326.4 258.8 306.7 41.2-6.4 61.4-54.6 42.5-91.7-23.1-45.4 9.9-98.4 60.9-98.4h79.7c35.8 0 64.8-29.6 64.9-65.3C511.5 97.1 368.1-26.9 204.3 5zM96 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm32-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128-64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faPallet = {\n prefix: 'fas',\n iconName: 'pallet',\n icon: [640, 512, [], \"f482\", \"M144 256h352c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H384v128l-64-32-64 32V0H144c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16zm480 128c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v64H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16h-48v-64h48zm-336 64H128v-64h160v64zm224 0H352v-64h160v64z\"]\n};\nvar faPaperPlane = {\n prefix: 'fas',\n iconName: 'paper-plane',\n icon: [512, 512, [], \"f1d8\", \"M476 3.2L12.5 270.6c-18.1 10.4-15.8 35.6 2.2 43.2L121 358.4l287.3-253.2c5.5-4.9 13.3 2.6 8.6 8.3L176 407v80.5c0 23.6 28.5 32.9 42.5 15.8L282 426l124.6 52.2c14.2 6 30.4-2.9 33-18.2l72-432C515 7.8 493.3-6.8 476 3.2z\"]\n};\nvar faPaperclip = {\n prefix: 'fas',\n iconName: 'paperclip',\n icon: [448, 512, [], \"f0c6\", \"M43.246 466.142c-58.43-60.289-57.341-157.511 1.386-217.581L254.392 34c44.316-45.332 116.351-45.336 160.671 0 43.89 44.894 43.943 117.329 0 162.276L232.214 383.128c-29.855 30.537-78.633 30.111-107.982-.998-28.275-29.97-27.368-77.473 1.452-106.953l143.743-146.835c6.182-6.314 16.312-6.422 22.626-.241l22.861 22.379c6.315 6.182 6.422 16.312.241 22.626L171.427 319.927c-4.932 5.045-5.236 13.428-.648 18.292 4.372 4.634 11.245 4.711 15.688.165l182.849-186.851c19.613-20.062 19.613-52.725-.011-72.798-19.189-19.627-49.957-19.637-69.154 0L90.39 293.295c-34.763 35.56-35.299 93.12-1.191 128.313 34.01 35.093 88.985 35.137 123.058.286l172.06-175.999c6.177-6.319 16.307-6.433 22.626-.256l22.877 22.364c6.319 6.177 6.434 16.307.256 22.626l-172.06 175.998c-59.576 60.938-155.943 60.216-214.77-.485z\"]\n};\nvar faParachuteBox = {\n prefix: 'fas',\n iconName: 'parachute-box',\n icon: [512, 512, [], \"f4cd\", \"M511.9 175c-9.1-75.6-78.4-132.4-158.3-158.7C390 55.7 416 116.9 416 192h28.1L327.5 321.5c-2.5-.6-4.8-1.5-7.5-1.5h-48V192h112C384 76.8 315.1 0 256 0S128 76.8 128 192h112v128h-48c-2.7 0-5 .9-7.5 1.5L67.9 192H96c0-75.1 26-136.3 62.4-175.7C78.5 42.7 9.2 99.5.1 175c-1.1 9.1 6.8 17 16 17h8.7l136.7 151.9c-.7 2.6-1.6 5.2-1.6 8.1v128c0 17.7 14.3 32 32 32h128c17.7 0 32-14.3 32-32V352c0-2.9-.9-5.4-1.6-8.1L487.1 192h8.7c9.3 0 17.2-7.8 16.1-17z\"]\n};\nvar faParagraph = {\n prefix: 'fas',\n iconName: 'paragraph',\n icon: [448, 512, [], \"f1dd\", \"M448 48v32a16 16 0 0 1-16 16h-48v368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V96h-32v368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V352h-32a160 160 0 0 1 0-320h240a16 16 0 0 1 16 16z\"]\n};\nvar faParking = {\n prefix: 'fas',\n iconName: 'parking',\n icon: [448, 512, [], \"f540\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM240 320h-48v48c0 8.8-7.2 16-16 16h-32c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h96c52.9 0 96 43.1 96 96s-43.1 96-96 96zm0-128h-48v64h48c17.6 0 32-14.4 32-32s-14.4-32-32-32z\"]\n};\nvar faPassport = {\n prefix: 'fas',\n iconName: 'passport',\n icon: [448, 512, [], \"f5ab\", \"M129.62 176h39.09c1.49-27.03 6.54-51.35 14.21-70.41-27.71 13.24-48.02 39.19-53.3 70.41zm0 32c5.29 31.22 25.59 57.17 53.3 70.41-7.68-19.06-12.72-43.38-14.21-70.41h-39.09zM224 286.69c7.69-7.45 20.77-34.42 23.43-78.69h-46.87c2.67 44.26 15.75 71.24 23.44 78.69zM200.57 176h46.87c-2.66-44.26-15.74-71.24-23.43-78.69-7.7 7.45-20.78 34.43-23.44 78.69zm64.51 102.41c27.71-13.24 48.02-39.19 53.3-70.41h-39.09c-1.49 27.03-6.53 51.35-14.21 70.41zM416 0H64C28.65 0 0 28.65 0 64v384c0 35.35 28.65 64 64 64h352c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32zm-80 416H112c-8.8 0-16-7.2-16-16s7.2-16 16-16h224c8.8 0 16 7.2 16 16s-7.2 16-16 16zm-112-96c-70.69 0-128-57.31-128-128S153.31 64 224 64s128 57.31 128 128-57.31 128-128 128zm41.08-214.41c7.68 19.06 12.72 43.38 14.21 70.41h39.09c-5.28-31.22-25.59-57.17-53.3-70.41z\"]\n};\nvar faPastafarianism = {\n prefix: 'fas',\n iconName: 'pastafarianism',\n icon: [640, 512, [], \"f67b\", \"M624.54 347.67c-32.7-12.52-57.36 4.25-75.37 16.45-17.06 11.53-23.25 14.42-31.41 11.36-8.12-3.09-10.83-9.38-15.89-29.38-3.33-13.15-7.44-29.32-17.95-42.65 2.24-2.91 4.43-5.79 6.38-8.57C500.47 304.45 513.71 312 532 312c33.95 0 50.87-25.78 62.06-42.83 10.59-16.14 15-21.17 21.94-21.17 13.25 0 24-10.75 24-24s-10.75-24-24-24c-33.95 0-50.87 25.78-62.06 42.83-10.6 16.14-15 21.17-21.94 21.17-17.31 0-37.48-61.43-97.26-101.91l17.25-34.5C485.43 125.5 512 97.98 512 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 13.02 3.94 25.1 10.62 35.21l-18.15 36.3c-16.98-4.6-35.6-7.51-56.46-7.51s-39.49 2.91-56.46 7.51l-18.15-36.3C252.06 89.1 256 77.02 256 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 33.98 26.56 61.5 60.02 63.6l17.25 34.5C145.68 202.44 125.15 264 108 264c-6.94 0-11.34-5.03-21.94-21.17C74.88 225.78 57.96 200 24 200c-13.25 0-24 10.75-24 24s10.75 24 24 24c6.94 0 11.34 5.03 21.94 21.17C57.13 286.22 74.05 312 108 312c18.29 0 31.53-7.55 41.7-17.11 1.95 2.79 4.14 5.66 6.38 8.57-10.51 13.33-14.62 29.5-17.95 42.65-5.06 20-7.77 26.28-15.89 29.38-8.11 3.06-14.33.17-31.41-11.36-18.03-12.2-42.72-28.92-75.37-16.45-12.39 4.72-18.59 18.58-13.87 30.97 4.72 12.41 18.61 18.61 30.97 13.88 8.16-3.09 14.34-.19 31.39 11.36 13.55 9.16 30.83 20.86 52.42 20.84 7.17 0 14.83-1.28 22.97-4.39 32.66-12.44 39.98-41.33 45.33-62.44 2.21-8.72 3.99-14.49 5.95-18.87 16.62 13.61 36.95 25.88 61.64 34.17-9.96 37-32.18 90.8-60.26 90.8-13.25 0-24 10.75-24 24s10.75 24 24 24c66.74 0 97.05-88.63 107.42-129.14 6.69.6 13.42 1.14 20.58 1.14s13.89-.54 20.58-1.14C350.95 423.37 381.26 512 448 512c13.25 0 24-10.75 24-24s-10.75-24-24-24c-27.94 0-50.21-53.81-60.22-90.81 24.69-8.29 45-20.56 61.62-34.16 1.96 4.38 3.74 10.15 5.95 18.87 5.34 21.11 12.67 50 45.33 62.44 8.14 3.11 15.8 4.39 22.97 4.39 21.59 0 38.87-11.69 52.42-20.84 17.05-11.55 23.28-14.45 31.39-11.36 12.39 4.75 26.27-1.47 30.97-13.88 4.71-12.4-1.49-26.26-13.89-30.98zM448 48c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zm-256 0c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16z\"]\n};\nvar faPaste = {\n prefix: 'fas',\n iconName: 'paste',\n icon: [448, 512, [], \"f0ea\", \"M128 184c0-30.879 25.122-56 56-56h136V56c0-13.255-10.745-24-24-24h-80.61C204.306 12.89 183.637 0 160 0s-44.306 12.89-55.39 32H24C10.745 32 0 42.745 0 56v336c0 13.255 10.745 24 24 24h104V184zm32-144c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24zm184 248h104v200c0 13.255-10.745 24-24 24H184c-13.255 0-24-10.745-24-24V184c0-13.255 10.745-24 24-24h136v104c0 13.2 10.8 24 24 24zm104-38.059V256h-96v-96h6.059a24 24 0 0 1 16.97 7.029l65.941 65.941a24.002 24.002 0 0 1 7.03 16.971z\"]\n};\nvar faPause = {\n prefix: 'fas',\n iconName: 'pause',\n icon: [448, 512, [], \"f04c\", \"M144 479H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zm304-48V79c0-26.5-21.5-48-48-48h-96c-26.5 0-48 21.5-48 48v352c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48z\"]\n};\nvar faPauseCircle = {\n prefix: 'fas',\n iconName: 'pause-circle',\n icon: [512, 512, [], \"f28b\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm-16 328c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160zm112 0c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160z\"]\n};\nvar faPaw = {\n prefix: 'fas',\n iconName: 'paw',\n icon: [512, 512, [], \"f1b0\", \"M256 224c-79.41 0-192 122.76-192 200.25 0 34.9 26.81 55.75 71.74 55.75 48.84 0 81.09-25.08 120.26-25.08 39.51 0 71.85 25.08 120.26 25.08 44.93 0 71.74-20.85 71.74-55.75C448 346.76 335.41 224 256 224zm-147.28-12.61c-10.4-34.65-42.44-57.09-71.56-50.13-29.12 6.96-44.29 40.69-33.89 75.34 10.4 34.65 42.44 57.09 71.56 50.13 29.12-6.96 44.29-40.69 33.89-75.34zm84.72-20.78c30.94-8.14 46.42-49.94 34.58-93.36s-46.52-72.01-77.46-63.87-46.42 49.94-34.58 93.36c11.84 43.42 46.53 72.02 77.46 63.87zm281.39-29.34c-29.12-6.96-61.15 15.48-71.56 50.13-10.4 34.65 4.77 68.38 33.89 75.34 29.12 6.96 61.15-15.48 71.56-50.13 10.4-34.65-4.77-68.38-33.89-75.34zm-156.27 29.34c30.94 8.14 65.62-20.45 77.46-63.87 11.84-43.42-3.64-85.21-34.58-93.36s-65.62 20.45-77.46 63.87c-11.84 43.42 3.64 85.22 34.58 93.36z\"]\n};\nvar faPeace = {\n prefix: 'fas',\n iconName: 'peace',\n icon: [496, 512, [], \"f67c\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm184 248c0 31.93-8.2 61.97-22.57 88.17L280 240.63V74.97c86.23 15.21 152 90.5 152 181.03zM216 437.03c-33.86-5.97-64.49-21.2-89.29-43.02L216 322.57v114.46zm64-114.46L369.29 394c-24.8 21.82-55.43 37.05-89.29 43.02V322.57zm-64-247.6v165.66L86.57 344.17C72.2 317.97 64 287.93 64 256c0-90.53 65.77-165.82 152-181.03z\"]\n};\nvar faPen = {\n prefix: 'fas',\n iconName: 'pen',\n icon: [512, 512, [], \"f304\", \"M290.74 93.24l128.02 128.02-277.99 277.99-114.14 12.6C11.35 513.54-1.56 500.62.14 485.34l12.7-114.22 277.9-277.88zm207.2-19.06l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.76 18.75-49.16 0-67.91z\"]\n};\nvar faPenAlt = {\n prefix: 'fas',\n iconName: 'pen-alt',\n icon: [512, 512, [], \"f305\", \"M497.94 74.17l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91zm-246.8-20.53c-15.62-15.62-40.94-15.62-56.56 0L75.8 172.43c-6.25 6.25-6.25 16.38 0 22.62l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l101.82-101.82 22.63 22.62L93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l196.79-196.79-82.77-82.77-84.85-84.85z\"]\n};\nvar faPenFancy = {\n prefix: 'fas',\n iconName: 'pen-fancy',\n icon: [512, 512, [], \"f5ac\", \"M79.18 282.94a32.005 32.005 0 0 0-20.24 20.24L0 480l4.69 4.69 92.89-92.89c-.66-2.56-1.57-5.03-1.57-7.8 0-17.67 14.33-32 32-32s32 14.33 32 32-14.33 32-32 32c-2.77 0-5.24-.91-7.8-1.57l-92.89 92.89L32 512l176.82-58.94a31.983 31.983 0 0 0 20.24-20.24l33.07-84.07-98.88-98.88-84.07 33.07zM369.25 28.32L186.14 227.81l97.85 97.85 199.49-183.11C568.4 67.48 443.73-55.94 369.25 28.32z\"]\n};\nvar faPenNib = {\n prefix: 'fas',\n iconName: 'pen-nib',\n icon: [512, 512, [], \"f5ad\", \"M136.6 138.79a64.003 64.003 0 0 0-43.31 41.35L0 460l14.69 14.69L164.8 324.58c-2.99-6.26-4.8-13.18-4.8-20.58 0-26.51 21.49-48 48-48s48 21.49 48 48-21.49 48-48 48c-7.4 0-14.32-1.81-20.58-4.8L37.31 497.31 52 512l279.86-93.29a64.003 64.003 0 0 0 41.35-43.31L416 224 288 96l-151.4 42.79zm361.34-64.62l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91z\"]\n};\nvar faPenSquare = {\n prefix: 'fas',\n iconName: 'pen-square',\n icon: [448, 512, [], \"f14b\", \"M400 480H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zM238.1 177.9L102.4 313.6l-6.3 57.1c-.8 7.6 5.6 14.1 13.3 13.3l57.1-6.3L302.2 242c2.3-2.3 2.3-6.1 0-8.5L246.7 178c-2.5-2.4-6.3-2.4-8.6-.1zM345 165.1L314.9 135c-9.4-9.4-24.6-9.4-33.9 0l-23.1 23.1c-2.3 2.3-2.3 6.1 0 8.5l55.5 55.5c2.3 2.3 6.1 2.3 8.5 0L345 199c9.3-9.3 9.3-24.5 0-33.9z\"]\n};\nvar faPencilAlt = {\n prefix: 'fas',\n iconName: 'pencil-alt',\n icon: [512, 512, [], \"f303\", \"M497.9 142.1l-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8L21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z\"]\n};\nvar faPencilRuler = {\n prefix: 'fas',\n iconName: 'pencil-ruler',\n icon: [512, 512, [], \"f5ae\", \"M109.46 244.04l134.58-134.56-44.12-44.12-61.68 61.68a7.919 7.919 0 0 1-11.21 0l-11.21-11.21c-3.1-3.1-3.1-8.12 0-11.21l61.68-61.68-33.64-33.65C131.47-3.1 111.39-3.1 99 9.29L9.29 99c-12.38 12.39-12.39 32.47 0 44.86l100.17 100.18zm388.47-116.8c18.76-18.76 18.75-49.17 0-67.93l-45.25-45.25c-18.76-18.76-49.18-18.76-67.95 0l-46.02 46.01 113.2 113.2 46.02-46.03zM316.08 82.71l-297 296.96L.32 487.11c-2.53 14.49 10.09 27.11 24.59 24.56l107.45-18.84L429.28 195.9 316.08 82.71zm186.63 285.43l-33.64-33.64-61.68 61.68c-3.1 3.1-8.12 3.1-11.21 0l-11.21-11.21c-3.09-3.1-3.09-8.12 0-11.21l61.68-61.68-44.14-44.14L267.93 402.5l100.21 100.2c12.39 12.39 32.47 12.39 44.86 0l89.71-89.7c12.39-12.39 12.39-32.47 0-44.86z\"]\n};\nvar faPeopleArrows = {\n prefix: 'fas',\n iconName: 'people-arrows',\n icon: [576, 512, [], \"e068\", \"M96,128A64,64,0,1,0,32,64,64,64,0,0,0,96,128Zm0,176.08a44.11,44.11,0,0,1,13.64-32L181.77,204c1.65-1.55,3.77-2.31,5.61-3.57A63.91,63.91,0,0,0,128,160H64A64,64,0,0,0,0,224v96a32,32,0,0,0,32,32V480a32,32,0,0,0,32,32h64a32,32,0,0,0,32-32V383.61l-50.36-47.53A44.08,44.08,0,0,1,96,304.08ZM480,128a64,64,0,1,0-64-64A64,64,0,0,0,480,128Zm32,32H448a63.91,63.91,0,0,0-59.38,40.42c1.84,1.27,4,2,5.62,3.59l72.12,68.06a44.37,44.37,0,0,1,0,64L416,383.62V480a32,32,0,0,0,32,32h64a32,32,0,0,0,32-32V352a32,32,0,0,0,32-32V224A64,64,0,0,0,512,160ZM444.4,295.34l-72.12-68.06A12,12,0,0,0,352,236v36H224V236a12,12,0,0,0-20.28-8.73L131.6,295.34a12.4,12.4,0,0,0,0,17.47l72.12,68.07A12,12,0,0,0,224,372.14V336H352v36.14a12,12,0,0,0,20.28,8.74l72.12-68.07A12.4,12.4,0,0,0,444.4,295.34Z\"]\n};\nvar faPeopleCarry = {\n prefix: 'fas',\n iconName: 'people-carry',\n icon: [640, 512, [], \"f4ce\", \"M128 96c26.5 0 48-21.5 48-48S154.5 0 128 0 80 21.5 80 48s21.5 48 48 48zm384 0c26.5 0 48-21.5 48-48S538.5 0 512 0s-48 21.5-48 48 21.5 48 48 48zm125.7 372.1l-44-110-41.1 46.4-2 18.2 27.7 69.2c5 12.5 17 20.1 29.7 20.1 4 0 8-.7 11.9-2.3 16.4-6.6 24.4-25.2 17.8-41.6zm-34.2-209.8L585 178.1c-4.6-20-18.6-36.8-37.5-44.9-18.5-8-39-6.7-56.1 3.3-22.7 13.4-39.7 34.5-48.1 59.4L432 229.8 416 240v-96c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16v96l-16.1-10.2-11.3-33.9c-8.3-25-25.4-46-48.1-59.4-17.2-10-37.6-11.3-56.1-3.3-18.9 8.1-32.9 24.9-37.5 44.9l-18.4 80.2c-4.6 20 .7 41.2 14.4 56.7l67.2 75.9 10.1 92.6C130 499.8 143.8 512 160 512c1.2 0 2.3-.1 3.5-.2 17.6-1.9 30.2-17.7 28.3-35.3l-10.1-92.8c-1.5-13-6.9-25.1-15.6-35l-43.3-49 17.6-70.3 6.8 20.4c4.1 12.5 11.9 23.4 24.5 32.6l51.1 32.5c4.6 2.9 12.1 4.6 17.2 5h160c5.1-.4 12.6-2.1 17.2-5l51.1-32.5c12.6-9.2 20.4-20 24.5-32.6l6.8-20.4 17.6 70.3-43.3 49c-8.7 9.9-14.1 22-15.6 35l-10.1 92.8c-1.9 17.6 10.8 33.4 28.3 35.3 1.2.1 2.3.2 3.5.2 16.1 0 30-12.1 31.8-28.5l10.1-92.6 67.2-75.9c13.6-15.5 19-36.7 14.4-56.7zM46.3 358.1l-44 110c-6.6 16.4 1.4 35 17.8 41.6 16.8 6.6 35.1-1.7 41.6-17.8l27.7-69.2-2-18.2-41.1-46.4z\"]\n};\nvar faPepperHot = {\n prefix: 'fas',\n iconName: 'pepper-hot',\n icon: [512, 512, [], \"f816\", \"M330.67 263.12V173.4l-52.75-24.22C219.44 218.76 197.58 400 56 400a56 56 0 0 0 0 112c212.64 0 370.65-122.87 419.18-210.34l-37.05-38.54zm131.09-128.37C493.92 74.91 477.18 26.48 458.62 3a8 8 0 0 0-11.93-.59l-22.9 23a8.06 8.06 0 0 0-.89 10.23c6.86 10.36 17.05 35.1-1.4 72.32A142.85 142.85 0 0 0 364.34 96c-28 0-54 8.54-76.34 22.59l74.67 34.29v78.24h89.09L506.44 288c3.26-12.62 5.56-25.63 5.56-39.31a154 154 0 0 0-50.24-113.94z\"]\n};\nvar faPercent = {\n prefix: 'fas',\n iconName: 'percent',\n icon: [448, 512, [], \"f295\", \"M112 224c61.9 0 112-50.1 112-112S173.9 0 112 0 0 50.1 0 112s50.1 112 112 112zm0-160c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zm224 224c-61.9 0-112 50.1-112 112s50.1 112 112 112 112-50.1 112-112-50.1-112-112-112zm0 160c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zM392.3.2l31.6-.1c19.4-.1 30.9 21.8 19.7 37.8L77.4 501.6a23.95 23.95 0 0 1-19.6 10.2l-33.4.1c-19.5 0-30.9-21.9-19.7-37.8l368-463.7C377.2 4 384.5.2 392.3.2z\"]\n};\nvar faPercentage = {\n prefix: 'fas',\n iconName: 'percentage',\n icon: [384, 512, [], \"f541\", \"M109.25 173.25c24.99-24.99 24.99-65.52 0-90.51-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 25 25 65.52 25 90.51 0zm256 165.49c-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 24.99 24.99 65.52 24.99 90.51 0 25-24.99 25-65.51 0-90.51zm-1.94-231.43l-22.62-22.62c-12.5-12.5-32.76-12.5-45.25 0L20.69 359.44c-12.5 12.5-12.5 32.76 0 45.25l22.62 22.62c12.5 12.5 32.76 12.5 45.25 0l274.75-274.75c12.5-12.49 12.5-32.75 0-45.25z\"]\n};\nvar faPersonBooth = {\n prefix: 'fas',\n iconName: 'person-booth',\n icon: [576, 512, [], \"f756\", \"M192 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320h-64v176zm32-272h-50.9l-45.2-45.3C115.8 166.6 99.7 160 82.7 160H64c-17.1 0-33.2 6.7-45.3 18.8C6.7 190.9 0 207 0 224.1L.2 320 0 480c0 17.7 14.3 32 31.9 32 17.6 0 32-14.3 32-32l.1-100.7c.9.5 1.6 1.3 2.5 1.7l29.1 43v56c0 17.7 14.3 32 32 32s32-14.3 32-32v-56.5c0-9.9-2.3-19.8-6.7-28.6l-41.2-61.3V253l20.9 20.9c9.1 9.1 21.1 14.1 33.9 14.1H224c17.7 0 32-14.3 32-32s-14.3-32-32-32zM64 128c26.5 0 48-21.5 48-48S90.5 32 64 32 16 53.5 16 80s21.5 48 48 48zm224-96l31.5 223.1-30.9 154.6c-4.3 21.6 13 38.3 31.4 38.3 15.2 0 28-9.1 32.3-30.4.9 16.9 14.6 30.4 31.7 30.4 17.7 0 32-14.3 32-32 0 17.7 14.3 32 32 32s32-14.3 32-32V0H288v32zm-96 0v160h64V0h-32c-17.7 0-32 14.3-32 32zM544 0h-32v496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V32c0-17.7-14.3-32-32-32z\"]\n};\nvar faPhone = {\n prefix: 'fas',\n iconName: 'phone',\n icon: [512, 512, [], \"f095\", \"M493.4 24.6l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-36 76.7-98.9 140.5-177.2 177.2l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48C3.9 366.5-2 378.1.6 389.4l24 104C27.1 504.2 36.7 512 48 512c256.1 0 464-207.5 464-464 0-11.2-7.7-20.9-18.6-23.4z\"]\n};\nvar faPhoneAlt = {\n prefix: 'fas',\n iconName: 'phone-alt',\n icon: [512, 512, [], \"f879\", \"M497.39 361.8l-112-48a24 24 0 0 0-28 6.9l-49.6 60.6A370.66 370.66 0 0 1 130.6 204.11l60.6-49.6a23.94 23.94 0 0 0 6.9-28l-48-112A24.16 24.16 0 0 0 122.6.61l-104 24A24 24 0 0 0 0 48c0 256.5 207.9 464 464 464a24 24 0 0 0 23.4-18.6l24-104a24.29 24.29 0 0 0-14.01-27.6z\"]\n};\nvar faPhoneSlash = {\n prefix: 'fas',\n iconName: 'phone-slash',\n icon: [640, 512, [], \"f3dd\", \"M268.2 381.4l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48c-10.7 4.6-16.5 16.1-13.9 27.5l24 104c2.5 10.8 12.1 18.6 23.4 18.6 100.7 0 193.7-32.4 269.7-86.9l-80-61.8c-10.9 6.5-22.1 12.7-33.6 18.1zm365.6 76.7L475.1 335.5C537.9 256.4 576 156.9 576 48c0-11.2-7.7-20.9-18.6-23.4l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-12.2 26.1-27.9 50.3-46 72.8L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z\"]\n};\nvar faPhoneSquare = {\n prefix: 'fas',\n iconName: 'phone-square',\n icon: [448, 512, [], \"f098\", \"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM94 416c-7.033 0-13.057-4.873-14.616-11.627l-14.998-65a15 15 0 0 1 8.707-17.16l69.998-29.999a15 15 0 0 1 17.518 4.289l30.997 37.885c48.944-22.963 88.297-62.858 110.781-110.78l-37.886-30.997a15.001 15.001 0 0 1-4.289-17.518l30-69.998a15 15 0 0 1 17.16-8.707l65 14.998A14.997 14.997 0 0 1 384 126c0 160.292-129.945 290-290 290z\"]\n};\nvar faPhoneSquareAlt = {\n prefix: 'fas',\n iconName: 'phone-square-alt',\n icon: [448, 512, [], \"f87b\", \"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-16.39 307.37l-15 65A15 15 0 0 1 354 416C194 416 64 286.29 64 126a15.7 15.7 0 0 1 11.63-14.61l65-15A18.23 18.23 0 0 1 144 96a16.27 16.27 0 0 1 13.79 9.09l30 70A17.9 17.9 0 0 1 189 181a17 17 0 0 1-5.5 11.61l-37.89 31a231.91 231.91 0 0 0 110.78 110.78l31-37.89A17 17 0 0 1 299 291a17.85 17.85 0 0 1 5.91 1.21l70 30A16.25 16.25 0 0 1 384 336a17.41 17.41 0 0 1-.39 3.37z\"]\n};\nvar faPhoneVolume = {\n prefix: 'fas',\n iconName: 'phone-volume',\n icon: [384, 512, [], \"f2a0\", \"M97.333 506.966c-129.874-129.874-129.681-340.252 0-469.933 5.698-5.698 14.527-6.632 21.263-2.422l64.817 40.513a17.187 17.187 0 0 1 6.849 20.958l-32.408 81.021a17.188 17.188 0 0 1-17.669 10.719l-55.81-5.58c-21.051 58.261-20.612 122.471 0 179.515l55.811-5.581a17.188 17.188 0 0 1 17.669 10.719l32.408 81.022a17.188 17.188 0 0 1-6.849 20.958l-64.817 40.513a17.19 17.19 0 0 1-21.264-2.422zM247.126 95.473c11.832 20.047 11.832 45.008 0 65.055-3.95 6.693-13.108 7.959-18.718 2.581l-5.975-5.726c-3.911-3.748-4.793-9.622-2.261-14.41a32.063 32.063 0 0 0 0-29.945c-2.533-4.788-1.65-10.662 2.261-14.41l5.975-5.726c5.61-5.378 14.768-4.112 18.718 2.581zm91.787-91.187c60.14 71.604 60.092 175.882 0 247.428-4.474 5.327-12.53 5.746-17.552.933l-5.798-5.557c-4.56-4.371-4.977-11.529-.93-16.379 49.687-59.538 49.646-145.933 0-205.422-4.047-4.85-3.631-12.008.93-16.379l5.798-5.557c5.022-4.813 13.078-4.394 17.552.933zm-45.972 44.941c36.05 46.322 36.108 111.149 0 157.546-4.39 5.641-12.697 6.251-17.856 1.304l-5.818-5.579c-4.4-4.219-4.998-11.095-1.285-15.931 26.536-34.564 26.534-82.572 0-117.134-3.713-4.836-3.115-11.711 1.285-15.931l5.818-5.579c5.159-4.947 13.466-4.337 17.856 1.304z\"]\n};\nvar faPhotoVideo = {\n prefix: 'fas',\n iconName: 'photo-video',\n icon: [640, 512, [], \"f87c\", \"M608 0H160a32 32 0 0 0-32 32v96h160V64h192v320h128a32 32 0 0 0 32-32V32a32 32 0 0 0-32-32zM232 103a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9V73a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm352 208a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9v-30a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm0-104a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9v-30a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm0-104a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9V73a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm-168 57H32a32 32 0 0 0-32 32v288a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V192a32 32 0 0 0-32-32zM96 224a32 32 0 1 1-32 32 32 32 0 0 1 32-32zm288 224H64v-32l64-64 32 32 128-128 96 96z\"]\n};\nvar faPiggyBank = {\n prefix: 'fas',\n iconName: 'piggy-bank',\n icon: [576, 512, [], \"f4d3\", \"M560 224h-29.5c-8.8-20-21.6-37.7-37.4-52.5L512 96h-32c-29.4 0-55.4 13.5-73 34.3-7.6-1.1-15.1-2.3-23-2.3H256c-77.4 0-141.9 55-156.8 128H56c-14.8 0-26.5-13.5-23.5-28.8C34.7 215.8 45.4 208 57 208h1c3.3 0 6-2.7 6-6v-20c0-3.3-2.7-6-6-6-28.5 0-53.9 20.4-57.5 48.6C-3.9 258.8 22.7 288 56 288h40c0 52.2 25.4 98.1 64 127.3V496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-48h128v48c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80.7c11.8-8.9 22.3-19.4 31.3-31.3H560c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16zm-128 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM256 96h128c5.4 0 10.7.4 15.9.8 0-.3.1-.5.1-.8 0-53-43-96-96-96s-96 43-96 96c0 2.1.5 4.1.6 6.2 15.2-3.9 31-6.2 47.4-6.2z\"]\n};\nvar faPills = {\n prefix: 'fas',\n iconName: 'pills',\n icon: [576, 512, [], \"f484\", \"M112 32C50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V144c0-61.9-50.1-112-112-112zm48 224H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm139.7-29.7c-3.5-3.5-9.4-3.1-12.3.8-45.3 62.5-40.4 150.1 15.9 206.4 56.3 56.3 143.9 61.2 206.4 15.9 4-2.9 4.3-8.8.8-12.3L299.7 226.3zm229.8-19c-56.3-56.3-143.9-61.2-206.4-15.9-4 2.9-4.3 8.8-.8 12.3l210.8 210.8c3.5 3.5 9.4 3.1 12.3-.8 45.3-62.6 40.5-150.1-15.9-206.4z\"]\n};\nvar faPizzaSlice = {\n prefix: 'fas',\n iconName: 'pizza-slice',\n icon: [512, 512, [], \"f818\", \"M158.87.15c-16.16-1.52-31.2 8.42-35.33 24.12l-14.81 56.27c187.62 5.49 314.54 130.61 322.48 317l56.94-15.78c15.72-4.36 25.49-19.68 23.62-35.9C490.89 165.08 340.78 17.32 158.87.15zm-58.47 112L.55 491.64a16.21 16.21 0 0 0 20 19.75l379-105.1c-4.27-174.89-123.08-292.14-299.15-294.1zM128 416a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm48-152a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm104 104a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"]\n};\nvar faPlaceOfWorship = {\n prefix: 'fas',\n iconName: 'place-of-worship',\n icon: [640, 512, [], \"f67f\", \"M620.61 366.55L512 320v192h112c8.84 0 16-7.16 16-16V395.96a32 32 0 0 0-19.39-29.41zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.55A32 32 0 0 0 0 395.96zm464.46-149.28L416 217.6V102.63c0-8.49-3.37-16.62-9.38-22.63L331.31 4.69c-6.25-6.25-16.38-6.25-22.62 0L233.38 80c-6 6-9.38 14.14-9.38 22.63V217.6l-48.46 29.08A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.66-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44z\"]\n};\nvar faPlane = {\n prefix: 'fas',\n iconName: 'plane',\n icon: [576, 512, [], \"f072\", \"M480 192H365.71L260.61 8.06A16.014 16.014 0 0 0 246.71 0h-65.5c-10.63 0-18.3 10.17-15.38 20.39L214.86 192H112l-43.2-57.6c-3.02-4.03-7.77-6.4-12.8-6.4H16.01C5.6 128-2.04 137.78.49 147.88L32 256 .49 364.12C-2.04 374.22 5.6 384 16.01 384H56c5.04 0 9.78-2.37 12.8-6.4L112 320h102.86l-49.03 171.6c-2.92 10.22 4.75 20.4 15.38 20.4h65.5c5.74 0 11.04-3.08 13.89-8.06L365.71 320H480c35.35 0 96-28.65 96-64s-60.65-64-96-64z\"]\n};\nvar faPlaneArrival = {\n prefix: 'fas',\n iconName: 'plane-arrival',\n icon: [640, 512, [], \"f5af\", \"M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM44.81 205.66l88.74 80a62.607 62.607 0 0 0 25.47 13.93l287.6 78.35c26.48 7.21 54.56 8.72 81 1.36 29.67-8.27 43.44-21.21 47.25-35.71 3.83-14.5-1.73-32.71-23.37-54.96-19.28-19.82-44.35-32.79-70.83-40l-97.51-26.56L282.8 30.22c-1.51-5.81-5.95-10.35-11.66-11.91L206.05.58c-10.56-2.88-20.9 5.32-20.71 16.44l47.92 164.21-102.2-27.84-27.59-67.88c-1.93-4.89-6.01-8.57-11.02-9.93L52.72 64.75c-10.34-2.82-20.53 5-20.72 15.88l.23 101.78c.19 8.91 6.03 17.34 12.58 23.25z\"]\n};\nvar faPlaneDeparture = {\n prefix: 'fas',\n iconName: 'plane-departure',\n icon: [640, 512, [], \"f5b0\", \"M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM80.55 341.27c6.28 6.84 15.1 10.72 24.33 10.71l130.54-.18a65.62 65.62 0 0 0 29.64-7.12l290.96-147.65c26.74-13.57 50.71-32.94 67.02-58.31 18.31-28.48 20.3-49.09 13.07-63.65-7.21-14.57-24.74-25.27-58.25-27.45-29.85-1.94-59.54 5.92-86.28 19.48l-98.51 49.99-218.7-82.06a17.799 17.799 0 0 0-18-1.11L90.62 67.29c-10.67 5.41-13.25 19.65-5.17 28.53l156.22 98.1-103.21 52.38-72.35-36.47a17.804 17.804 0 0 0-16.07.02L9.91 230.22c-10.44 5.3-13.19 19.12-5.57 28.08l76.21 82.97z\"]\n};\nvar faPlaneSlash = {\n prefix: 'fas',\n iconName: 'plane-slash',\n icon: [640, 512, [], \"e069\", \"M32.48,147.88,64,256,32.48,364.13A16,16,0,0,0,48,384H88a16,16,0,0,0,12.8-6.41L144,320H246.85l-49,171.59A16,16,0,0,0,213.2,512h65.5a16,16,0,0,0,13.89-8.06l66.6-116.54L34.35,136.34A15.47,15.47,0,0,0,32.48,147.88ZM633.82,458.09,455.14,320H512c35.34,0,96-28.66,96-64s-60.66-64-96-64H397.7L292.61,8.06C290.06,3.61,283.84,0,278.71,0H213.2a16,16,0,0,0-15.38,20.39l36.94,129.29L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.45A16,16,0,0,0,6.18,53.91L594.54,508.63A16,16,0,0,0,617,505.81l19.64-25.26A16,16,0,0,0,633.82,458.09Z\"]\n};\nvar faPlay = {\n prefix: 'fas',\n iconName: 'play',\n icon: [448, 512, [], \"f04b\", \"M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z\"]\n};\nvar faPlayCircle = {\n prefix: 'fas',\n iconName: 'play-circle',\n icon: [512, 512, [], \"f144\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm115.7 272l-176 101c-15.8 8.8-35.7-2.5-35.7-21V152c0-18.4 19.8-29.8 35.7-21l176 107c16.4 9.2 16.4 32.9 0 42z\"]\n};\nvar faPlug = {\n prefix: 'fas',\n iconName: 'plug',\n icon: [384, 512, [], \"f1e6\", \"M320,32a32,32,0,0,0-64,0v96h64Zm48,128H16A16,16,0,0,0,0,176v32a16,16,0,0,0,16,16H32v32A160.07,160.07,0,0,0,160,412.8V512h64V412.8A160.07,160.07,0,0,0,352,256V224h16a16,16,0,0,0,16-16V176A16,16,0,0,0,368,160ZM128,32a32,32,0,0,0-64,0v96h64Z\"]\n};\nvar faPlus = {\n prefix: 'fas',\n iconName: 'plus',\n icon: [448, 512, [], \"f067\", \"M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"]\n};\nvar faPlusCircle = {\n prefix: 'fas',\n iconName: 'plus-circle',\n icon: [512, 512, [], \"f055\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm144 276c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92h-92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z\"]\n};\nvar faPlusSquare = {\n prefix: 'fas',\n iconName: 'plus-square',\n icon: [448, 512, [], \"f0fe\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-32 252c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92H92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z\"]\n};\nvar faPodcast = {\n prefix: 'fas',\n iconName: 'podcast',\n icon: [448, 512, [], \"f2ce\", \"M267.429 488.563C262.286 507.573 242.858 512 224 512c-18.857 0-38.286-4.427-43.428-23.437C172.927 460.134 160 388.898 160 355.75c0-35.156 31.142-43.75 64-43.75s64 8.594 64 43.75c0 32.949-12.871 104.179-20.571 132.813zM156.867 288.554c-18.693-18.308-29.958-44.173-28.784-72.599 2.054-49.724 42.395-89.956 92.124-91.881C274.862 121.958 320 165.807 320 220c0 26.827-11.064 51.116-28.866 68.552-2.675 2.62-2.401 6.986.628 9.187 9.312 6.765 16.46 15.343 21.234 25.363 1.741 3.654 6.497 4.66 9.449 1.891 28.826-27.043 46.553-65.783 45.511-108.565-1.855-76.206-63.595-138.208-139.793-140.369C146.869 73.753 80 139.215 80 220c0 41.361 17.532 78.7 45.55 104.989 2.953 2.771 7.711 1.77 9.453-1.887 4.774-10.021 11.923-18.598 21.235-25.363 3.029-2.2 3.304-6.566.629-9.185zM224 0C100.204 0 0 100.185 0 224c0 89.992 52.602 165.647 125.739 201.408 4.333 2.118 9.267-1.544 8.535-6.31-2.382-15.512-4.342-30.946-5.406-44.339-.146-1.836-1.149-3.486-2.678-4.512-47.4-31.806-78.564-86.016-78.187-147.347.592-96.237 79.29-174.648 175.529-174.899C320.793 47.747 400 126.797 400 224c0 61.932-32.158 116.49-80.65 147.867-.999 14.037-3.069 30.588-5.624 47.23-.732 4.767 4.203 8.429 8.535 6.31C395.227 389.727 448 314.187 448 224 448 100.205 347.815 0 224 0zm0 160c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64z\"]\n};\nvar faPoll = {\n prefix: 'fas',\n iconName: 'poll',\n icon: [448, 512, [], \"f681\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM160 368c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V240c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v128zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V144c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v224zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-64c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v64z\"]\n};\nvar faPollH = {\n prefix: 'fas',\n iconName: 'poll-h',\n icon: [448, 512, [], \"f682\", \"M448 432V80c0-26.5-21.5-48-48-48H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48zM112 192c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h128c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-64z\"]\n};\nvar faPoo = {\n prefix: 'fas',\n iconName: 'poo',\n icon: [512, 512, [], \"f2fe\", \"M451.4 369.1C468.7 356 480 335.4 480 312c0-39.8-32.2-72-72-72h-14.1c13.4-11.7 22.1-28.8 22.1-48 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C250.3 14.6 256 30.6 256 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 19.2 8.7 36.3 22.1 48H104c-39.8 0-72 32.2-72 72 0 23.4 11.3 44 28.6 57.1C26.3 374.6 0 404.1 0 440c0 39.8 32.2 72 72 72h368c39.8 0 72-32.2 72-72 0-35.9-26.3-65.4-60.6-70.9zM192 256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm159.5 139C341 422.9 293 448 256 448s-85-25.1-95.5-53c-2-5.3 2-11 7.8-11h175.4c5.8 0 9.8 5.7 7.8 11zM320 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faPooStorm = {\n prefix: 'fas',\n iconName: 'poo-storm',\n icon: [448, 512, [], \"f75a\", \"M308 336h-57.7l17.3-64.9c2-7.6-3.7-15.1-11.6-15.1h-68c-6 0-11.1 4.5-11.9 10.4l-16 120c-1 7.2 4.6 13.6 11.9 13.6h59.3l-23 97.2c-1.8 7.6 4 14.8 11.7 14.8 4.2 0 8.2-2.2 10.4-6l88-152c4.6-8-1.2-18-10.4-18zm66.4-111.3c5.9-9.6 9.6-20.6 9.6-32.7 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C218.3 14.6 224 30.6 224 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 12.1 3.7 23.1 9.6 32.7C32.6 228 0 262.2 0 304c0 44 36 80 80 80h48.3c.1-.6 0-1.2 0-1.8l16-120c3-21.8 21.7-38.2 43.7-38.2h68c13.8 0 26.5 6.3 34.9 17.2s11.2 24.8 7.6 38.1l-6.6 24.7h16c15.7 0 30.3 8.4 38.1 22 7.8 13.6 7.8 30.5 0 44l-8.1 14h30c44 0 80-36 80-80 .1-41.8-32.5-76-73.5-79.3z\"]\n};\nvar faPoop = {\n prefix: 'fas',\n iconName: 'poop',\n icon: [512, 512, [], \"f619\", \"M451.36 369.14C468.66 355.99 480 335.41 480 312c0-39.77-32.24-72-72-72h-14.07c13.42-11.73 22.07-28.78 22.07-48 0-35.35-28.65-64-64-64h-5.88c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96-5.17 0-10.15.74-15.11 1.52C250.31 14.64 256 30.62 256 48c0 44.18-35.82 80-80 80h-16c-35.35 0-64 28.65-64 64 0 19.22 8.65 36.27 22.07 48H104c-39.76 0-72 32.23-72 72 0 23.41 11.34 43.99 28.64 57.14C26.31 374.62 0 404.12 0 440c0 39.76 32.24 72 72 72h368c39.76 0 72-32.24 72-72 0-35.88-26.31-65.38-60.64-70.86z\"]\n};\nvar faPortrait = {\n prefix: 'fas',\n iconName: 'portrait',\n icon: [384, 512, [], \"f3e0\", \"M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM192 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 384 80 375.4 80 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z\"]\n};\nvar faPoundSign = {\n prefix: 'fas',\n iconName: 'pound-sign',\n icon: [320, 512, [], \"f154\", \"M308 352h-45.495c-6.627 0-12 5.373-12 12v50.848H128V288h84c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-84v-63.556c0-32.266 24.562-57.086 61.792-57.086 23.658 0 45.878 11.505 57.652 18.849 5.151 3.213 11.888 2.051 15.688-2.685l28.493-35.513c4.233-5.276 3.279-13.005-2.119-17.081C273.124 54.56 236.576 32 187.931 32 106.026 32 48 84.742 48 157.961V224H20c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h28v128H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h296c6.627 0 12-5.373 12-12V364c0-6.627-5.373-12-12-12z\"]\n};\nvar faPowerOff = {\n prefix: 'fas',\n iconName: 'power-off',\n icon: [512, 512, [], \"f011\", \"M400 54.1c63 45 104 118.6 104 201.9 0 136.8-110.8 247.7-247.5 248C120 504.3 8.2 393 8 256.4 7.9 173.1 48.9 99.3 111.8 54.2c11.7-8.3 28-4.8 35 7.7L162.6 90c5.9 10.5 3.1 23.8-6.6 31-41.5 30.8-68 79.6-68 134.9-.1 92.3 74.5 168.1 168 168.1 91.6 0 168.6-74.2 168-169.1-.3-51.8-24.7-101.8-68.1-134-9.7-7.2-12.4-20.5-6.5-30.9l15.8-28.1c7-12.4 23.2-16.1 34.8-7.8zM296 264V24c0-13.3-10.7-24-24-24h-32c-13.3 0-24 10.7-24 24v240c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24z\"]\n};\nvar faPray = {\n prefix: 'fas',\n iconName: 'pray',\n icon: [384, 512, [], \"f683\", \"M256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-30.63 169.75c14.06 16.72 39 19.09 55.97 5.22l88-72.02c17.09-13.98 19.59-39.19 5.62-56.28-13.97-17.11-39.19-19.59-56.31-5.62l-57.44 47-38.91-46.31c-15.44-18.39-39.22-27.92-64-25.33-24.19 2.48-45.25 16.27-56.37 36.92l-49.37 92.03c-23.4 43.64-8.69 96.37 34.19 123.75L131.56 432H40c-22.09 0-40 17.91-40 40s17.91 40 40 40h208c34.08 0 53.77-42.79 28.28-68.28L166.42 333.86l34.8-64.87 24.15 28.76z\"]\n};\nvar faPrayingHands = {\n prefix: 'fas',\n iconName: 'praying-hands',\n icon: [640, 512, [], \"f684\", \"M272 191.91c-17.6 0-32 14.4-32 32v80c0 8.84-7.16 16-16 16s-16-7.16-16-16v-76.55c0-17.39 4.72-34.47 13.69-49.39l77.75-129.59c9.09-15.16 4.19-34.81-10.97-43.91-14.45-8.67-32.72-4.3-42.3 9.21-.2.23-.62.21-.79.48l-117.26 175.9C117.56 205.9 112 224.31 112 243.29v80.23l-90.12 30.04A31.974 31.974 0 0 0 0 383.91v96c0 10.82 8.52 32 32 32 2.69 0 5.41-.34 8.06-1.03l179.19-46.62C269.16 449.99 304 403.8 304 351.91v-128c0-17.6-14.4-32-32-32zm346.12 161.73L528 323.6v-80.23c0-18.98-5.56-37.39-16.12-53.23L394.62 14.25c-.18-.27-.59-.24-.79-.48-9.58-13.51-27.85-17.88-42.3-9.21-15.16 9.09-20.06 28.75-10.97 43.91l77.75 129.59c8.97 14.92 13.69 32 13.69 49.39V304c0 8.84-7.16 16-16 16s-16-7.16-16-16v-80c0-17.6-14.4-32-32-32s-32 14.4-32 32v128c0 51.89 34.84 98.08 84.75 112.34l179.19 46.62c2.66.69 5.38 1.03 8.06 1.03 23.48 0 32-21.18 32-32v-96c0-13.77-8.81-25.99-21.88-30.35z\"]\n};\nvar faPrescription = {\n prefix: 'fas',\n iconName: 'prescription',\n icon: [384, 512, [], \"f5b1\", \"M301.26 352l78.06-78.06c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0L256 306.74l-83.96-83.96C219.31 216.8 256 176.89 256 128c0-53.02-42.98-96-96-96H16C7.16 32 0 39.16 0 48v256c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-80h18.75l128 128-78.06 78.06c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0L256 397.25l78.06 78.06c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63L301.26 352zM64 96h96c17.64 0 32 14.36 32 32s-14.36 32-32 32H64V96z\"]\n};\nvar faPrescriptionBottle = {\n prefix: 'fas',\n iconName: 'prescription-bottle',\n icon: [384, 512, [], \"f485\", \"M32 192h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v64zM360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24z\"]\n};\nvar faPrescriptionBottleAlt = {\n prefix: 'fas',\n iconName: 'prescription-bottle-alt',\n icon: [384, 512, [], \"f486\", \"M360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24zM32 480c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v352zm64-184c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48z\"]\n};\nvar faPrint = {\n prefix: 'fas',\n iconName: 'print',\n icon: [512, 512, [], \"f02f\", \"M448 192V77.25c0-8.49-3.37-16.62-9.37-22.63L393.37 9.37c-6-6-14.14-9.37-22.63-9.37H96C78.33 0 64 14.33 64 32v160c-35.35 0-64 28.65-64 64v112c0 8.84 7.16 16 16 16h48v96c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-96h48c8.84 0 16-7.16 16-16V256c0-35.35-28.65-64-64-64zm-64 256H128v-96h256v96zm0-224H128V64h192v48c0 8.84 7.16 16 16 16h48v96zm48 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"]\n};\nvar faProcedures = {\n prefix: 'fas',\n iconName: 'procedures',\n icon: [640, 512, [], \"f487\", \"M528 224H272c-8.8 0-16 7.2-16 16v144H64V144c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v352c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48h512v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V336c0-61.9-50.1-112-112-112zM136 96h126.1l27.6 55.2c5.9 11.8 22.7 11.8 28.6 0L368 51.8 390.1 96H512c8.8 0 16-7.2 16-16s-7.2-16-16-16H409.9L382.3 8.8C376.4-3 359.6-3 353.7 8.8L304 108.2l-19.9-39.8c-1.4-2.7-4.1-4.4-7.2-4.4H136c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm24 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z\"]\n};\nvar faProjectDiagram = {\n prefix: 'fas',\n iconName: 'project-diagram',\n icon: [640, 512, [], \"f542\", \"M384 320H256c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM192 32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v128c0 17.67 14.33 32 32 32h95.72l73.16 128.04C211.98 300.98 232.4 288 256 288h.28L192 175.51V128h224V64H192V32zM608 0H480c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32z\"]\n};\nvar faPumpMedical = {\n prefix: 'fas',\n iconName: 'pump-medical',\n icon: [384, 512, [], \"e06a\", \"M235.51,159.82H84.24A64,64,0,0,0,20.51,218L.14,442a64,64,0,0,0,63.74,69.8h192A64,64,0,0,0,319.61,442L299.24,218A64,64,0,0,0,235.51,159.82Zm4.37,173.33a13.35,13.35,0,0,1-13.34,13.34h-40v40a13.33,13.33,0,0,1-13.33,13.33H146.54a13.33,13.33,0,0,1-13.33-13.33v-40h-40a13.34,13.34,0,0,1-13.33-13.34V306.49a13.33,13.33,0,0,1,13.33-13.34h40v-40a13.33,13.33,0,0,1,13.33-13.33h26.67a13.33,13.33,0,0,1,13.33,13.33v40h40a13.34,13.34,0,0,1,13.34,13.34ZM379.19,93.88,335.87,50.56a64,64,0,0,0-45.24-18.74H223.88a32,32,0,0,0-32-32h-64a32,32,0,0,0-32,32v96h128v-32h66.75l43.31,43.31a16,16,0,0,0,22.63,0l22.62-22.62A16,16,0,0,0,379.19,93.88Z\"]\n};\nvar faPumpSoap = {\n prefix: 'fas',\n iconName: 'pump-soap',\n icon: [384, 512, [], \"e06b\", \"M235.63,160H84.37a64,64,0,0,0-63.74,58.21L.27,442.21A64,64,0,0,0,64,512H256a64,64,0,0,0,63.74-69.79l-20.36-224A64,64,0,0,0,235.63,160ZM160,416c-33.12,0-60-26.33-60-58.75,0-25,35.7-75.47,52-97.27A10,10,0,0,1,168,260c16.33,21.8,52,72.27,52,97.27C220,389.67,193.12,416,160,416ZM379.31,94.06,336,50.74A64,64,0,0,0,290.75,32H224A32,32,0,0,0,192,0H128A32,32,0,0,0,96,32v96H224V96h66.75l43.31,43.31a16,16,0,0,0,22.63,0l22.62-22.62A16,16,0,0,0,379.31,94.06Z\"]\n};\nvar faPuzzlePiece = {\n prefix: 'fas',\n iconName: 'puzzle-piece',\n icon: [576, 512, [], \"f12e\", \"M519.442 288.651c-41.519 0-59.5 31.593-82.058 31.593C377.409 320.244 432 144 432 144s-196.288 80-196.288-3.297c0-35.827 36.288-46.25 36.288-85.985C272 19.216 243.885 0 210.539 0c-34.654 0-66.366 18.891-66.366 56.346 0 41.364 31.711 59.277 31.711 81.75C175.885 207.719 0 166.758 0 166.758v333.237s178.635 41.047 178.635-28.662c0-22.473-40-40.107-40-81.471 0-37.456 29.25-56.346 63.577-56.346 33.673 0 61.788 19.216 61.788 54.717 0 39.735-36.288 50.158-36.288 85.985 0 60.803 129.675 25.73 181.23 25.73 0 0-34.725-120.101 25.827-120.101 35.962 0 46.423 36.152 86.308 36.152C556.712 416 576 387.99 576 354.443c0-34.199-18.962-65.792-56.558-65.792z\"]\n};\nvar faQrcode = {\n prefix: 'fas',\n iconName: 'qrcode',\n icon: [448, 512, [], \"f029\", \"M0 224h192V32H0v192zM64 96h64v64H64V96zm192-64v192h192V32H256zm128 128h-64V96h64v64zM0 480h192V288H0v192zm64-128h64v64H64v-64zm352-64h32v128h-96v-32h-32v96h-64V288h96v32h64v-32zm0 160h32v32h-32v-32zm-64 0h32v32h-32v-32z\"]\n};\nvar faQuestion = {\n prefix: 'fas',\n iconName: 'question',\n icon: [384, 512, [], \"f128\", \"M202.021 0C122.202 0 70.503 32.703 29.914 91.026c-7.363 10.58-5.093 25.086 5.178 32.874l43.138 32.709c10.373 7.865 25.132 6.026 33.253-4.148 25.049-31.381 43.63-49.449 82.757-49.449 30.764 0 68.816 19.799 68.816 49.631 0 22.552-18.617 34.134-48.993 51.164-35.423 19.86-82.299 44.576-82.299 106.405V320c0 13.255 10.745 24 24 24h72.471c13.255 0 24-10.745 24-24v-5.773c0-42.86 125.268-44.645 125.268-160.627C377.504 66.256 286.902 0 202.021 0zM192 373.459c-38.196 0-69.271 31.075-69.271 69.271 0 38.195 31.075 69.27 69.271 69.27s69.271-31.075 69.271-69.271-31.075-69.27-69.271-69.27z\"]\n};\nvar faQuestionCircle = {\n prefix: 'fas',\n iconName: 'question-circle',\n icon: [512, 512, [], \"f059\", \"M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z\"]\n};\nvar faQuidditch = {\n prefix: 'fas',\n iconName: 'quidditch',\n icon: [640, 512, [], \"f458\", \"M256.5 216.8L343.2 326s-16.6 102.4-76.6 150.1C206.7 523.8 0 510.2 0 510.2s3.8-23.1 11-55.4l94.6-112.2c4-4.7-.9-11.6-6.6-9.5l-60.4 22.1c14.4-41.7 32.7-80 54.6-97.5 59.9-47.8 163.3-40.9 163.3-40.9zm238 135c-44 0-79.8 35.8-79.8 79.9 0 44.1 35.7 79.9 79.8 79.9 44.1 0 79.8-35.8 79.8-79.9 0-44.2-35.8-79.9-79.8-79.9zM636.5 31L616.7 6c-5.5-6.9-15.5-8-22.4-2.6L361.8 181.3l-34.1-43c-5.1-6.4-15.1-5.2-18.6 2.2l-25.3 54.6 86.7 109.2 58.8-12.4c8-1.7 11.4-11.2 6.3-17.6l-34.1-42.9L634 53.5c6.9-5.5 8-15.6 2.5-22.5z\"]\n};\nvar faQuoteLeft = {\n prefix: 'fas',\n iconName: 'quote-left',\n icon: [512, 512, [], \"f10d\", \"M464 256h-80v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8c-88.4 0-160 71.6-160 160v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zm-288 0H96v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8C71.6 32 0 103.6 0 192v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z\"]\n};\nvar faQuoteRight = {\n prefix: 'fas',\n iconName: 'quote-right',\n icon: [512, 512, [], \"f10e\", \"M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z\"]\n};\nvar faQuran = {\n prefix: 'fas',\n iconName: 'quran',\n icon: [448, 512, [], \"f687\", \"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM301.08 145.82c.6-1.21 1.76-1.82 2.92-1.82s2.32.61 2.92 1.82l11.18 22.65 25 3.63c2.67.39 3.74 3.67 1.81 5.56l-18.09 17.63 4.27 24.89c.36 2.11-1.31 3.82-3.21 3.82-.5 0-1.02-.12-1.52-.38L304 211.87l-22.36 11.75c-.5.26-1.02.38-1.52.38-1.9 0-3.57-1.71-3.21-3.82l4.27-24.89-18.09-17.63c-1.94-1.89-.87-5.17 1.81-5.56l24.99-3.63 11.19-22.65zm-57.89-69.01c13.67 0 27.26 2.49 40.38 7.41a6.775 6.775 0 1 1-2.38 13.12c-.67 0-3.09-.21-4.13-.21-52.31 0-94.86 42.55-94.86 94.86 0 52.3 42.55 94.86 94.86 94.86 1.03 0 3.48-.21 4.13-.21 3.93 0 6.8 3.14 6.8 6.78 0 2.98-1.94 5.51-4.62 6.42-13.07 4.87-26.59 7.34-40.19 7.34C179.67 307.19 128 255.51 128 192c0-63.52 51.67-115.19 115.19-115.19zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z\"]\n};\nvar faRadiation = {\n prefix: 'fas',\n iconName: 'radiation',\n icon: [496, 512, [], \"f7b9\", \"M328.2 255.8h151.6c9.1 0 16.8-7.7 16.2-16.8-5.1-75.8-44.4-142.2-102.5-184.2-7.4-5.3-17.9-2.9-22.7 4.8L290.4 188c22.6 14.3 37.8 39.2 37.8 67.8zm-37.8 67.7c-12.3 7.7-26.8 12.4-42.4 12.4-15.6 0-30-4.7-42.4-12.4L125.2 452c-4.8 7.7-2.4 18.1 5.6 22.4C165.7 493.2 205.6 504 248 504s82.3-10.8 117.2-29.6c8-4.3 10.4-14.8 5.6-22.4l-80.4-128.5zM248 303.8c26.5 0 48-21.5 48-48s-21.5-48-48-48-48 21.5-48 48 21.5 48 48 48zm-231.8-48h151.6c0-28.6 15.2-53.5 37.8-67.7L125.2 59.7c-4.8-7.7-15.3-10.2-22.7-4.8C44.4 96.9 5.1 163.3 0 239.1c-.6 9 7.1 16.7 16.2 16.7z\"]\n};\nvar faRadiationAlt = {\n prefix: 'fas',\n iconName: 'radiation-alt',\n icon: [496, 512, [], \"f7ba\", \"M312 256h79.1c9.2 0 16.9-7.7 16-16.8-4.6-43.6-27-81.8-59.5-107.8-7.6-6.1-18.8-4.5-24 3.8L281.9 202c18 11.2 30.1 31.2 30.1 54zm-97.8 54.1L172.4 377c-4.9 7.8-2.4 18.4 5.8 22.5 21.1 10.4 44.7 16.5 69.8 16.5s48.7-6.1 69.9-16.5c8.2-4.1 10.6-14.7 5.8-22.5l-41.8-66.9c-9.8 6.2-21.4 9.9-33.8 9.9s-24.1-3.7-33.9-9.9zM104.9 256H184c0-22.8 12.1-42.8 30.2-54.1l-41.7-66.8c-5.2-8.3-16.4-9.9-24-3.8-32.6 26-54.9 64.2-59.5 107.8-1.1 9.2 6.7 16.9 15.9 16.9zM248 504c137 0 248-111 248-248S385 8 248 8 0 119 0 256s111 248 248 248zm0-432c101.5 0 184 82.5 184 184s-82.5 184-184 184S64 357.5 64 256 146.5 72 248 72zm0 216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z\"]\n};\nvar faRainbow = {\n prefix: 'fas',\n iconName: 'rainbow',\n icon: [576, 512, [], \"f75b\", \"M268.3 32.7C115.4 42.9 0 176.9 0 330.2V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C64 186.8 180.9 80.3 317.5 97.9 430.4 112.4 512 214 512 327.8V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-165.3-140-298.6-307.7-287.3zm-5.6 96.9C166 142 96 229.1 96 326.7V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-74.8 64.5-134.8 140.8-127.4 66.5 6.5 115.2 66.2 115.2 133.1V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-114.2-100.2-205.4-217.3-190.4zm6.2 96.3c-45.6 8.9-76.9 51.5-76.9 97.9V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-17.6 14.3-32 32-32s32 14.4 32 32v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-59.2-53.8-106-115.1-94.1z\"]\n};\nvar faRandom = {\n prefix: 'fas',\n iconName: 'random',\n icon: [512, 512, [], \"f074\", \"M504.971 359.029c9.373 9.373 9.373 24.569 0 33.941l-80 79.984c-15.01 15.01-40.971 4.49-40.971-16.971V416h-58.785a12.004 12.004 0 0 1-8.773-3.812l-70.556-75.596 53.333-57.143L352 336h32v-39.981c0-21.438 25.943-31.998 40.971-16.971l80 79.981zM12 176h84l52.781 56.551 53.333-57.143-70.556-75.596A11.999 11.999 0 0 0 122.785 96H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12zm372 0v39.984c0 21.46 25.961 31.98 40.971 16.971l80-79.984c9.373-9.373 9.373-24.569 0-33.941l-80-79.981C409.943 24.021 384 34.582 384 56.019V96h-58.785a12.004 12.004 0 0 0-8.773 3.812L96 336H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h110.785c3.326 0 6.503-1.381 8.773-3.812L352 176h32z\"]\n};\nvar faReceipt = {\n prefix: 'fas',\n iconName: 'receipt',\n icon: [384, 512, [], \"f543\", \"M358.4 3.2L320 48 265.6 3.2a15.9 15.9 0 0 0-19.2 0L192 48 137.6 3.2a15.9 15.9 0 0 0-19.2 0L64 48 25.6 3.2C15-4.7 0 2.8 0 16v480c0 13.2 15 20.7 25.6 12.8L64 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L192 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L320 464l38.4 44.8c10.5 7.9 25.6.4 25.6-12.8V16c0-13.2-15-20.7-25.6-12.8zM320 360c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16z\"]\n};\nvar faRecordVinyl = {\n prefix: 'fas',\n iconName: 'record-vinyl',\n icon: [512, 512, [], \"f8d9\", \"M256 152a104 104 0 1 0 104 104 104 104 0 0 0-104-104zm0 128a24 24 0 1 1 24-24 24 24 0 0 1-24 24zm0-272C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 376a128 128 0 1 1 128-128 128 128 0 0 1-128 128z\"]\n};\nvar faRecycle = {\n prefix: 'fas',\n iconName: 'recycle',\n icon: [512, 512, [], \"f1b8\", \"M184.561 261.903c3.232 13.997-12.123 24.635-24.068 17.168l-40.736-25.455-50.867 81.402C55.606 356.273 70.96 384 96.012 384H148c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12H96.115c-75.334 0-121.302-83.048-81.408-146.88l50.822-81.388-40.725-25.448c-12.081-7.547-8.966-25.961 4.879-29.158l110.237-25.45c8.611-1.988 17.201 3.381 19.189 11.99l25.452 110.237zm98.561-182.915l41.289 66.076-40.74 25.457c-12.051 7.528-9 25.953 4.879 29.158l110.237 25.45c8.672 1.999 17.215-3.438 19.189-11.99l25.45-110.237c3.197-13.844-11.99-24.719-24.068-17.168l-40.687 25.424-41.263-66.082c-37.521-60.033-125.209-60.171-162.816 0l-17.963 28.766c-3.51 5.62-1.8 13.021 3.82 16.533l33.919 21.195c5.62 3.512 13.024 1.803 16.536-3.817l17.961-28.743c12.712-20.341 41.973-19.676 54.257-.022zM497.288 301.12l-27.515-44.065c-3.511-5.623-10.916-7.334-16.538-3.821l-33.861 21.159c-5.62 3.512-7.33 10.915-3.818 16.536l27.564 44.112c13.257 21.211-2.057 48.96-27.136 48.96H320V336.02c0-14.213-17.242-21.383-27.313-11.313l-80 79.981c-6.249 6.248-6.249 16.379 0 22.627l80 79.989C302.689 517.308 320 510.3 320 495.989V448h95.88c75.274 0 121.335-82.997 81.408-146.88z\"]\n};\nvar faRedo = {\n prefix: 'fas',\n iconName: 'redo',\n icon: [512, 512, [], \"f01e\", \"M500.33 0h-47.41a12 12 0 0 0-12 12.57l4 82.76A247.42 247.42 0 0 0 256 8C119.34 8 7.9 119.53 8 256.19 8.1 393.07 119.1 504 256 504a247.1 247.1 0 0 0 166.18-63.91 12 12 0 0 0 .48-17.43l-34-34a12 12 0 0 0-16.38-.55A176 176 0 1 1 402.1 157.8l-101.53-4.87a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12h200.33a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12z\"]\n};\nvar faRedoAlt = {\n prefix: 'fas',\n iconName: 'redo-alt',\n icon: [512, 512, [], \"f2f9\", \"M256.455 8c66.269.119 126.437 26.233 170.859 68.685l35.715-35.715C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.75c-30.864-28.899-70.801-44.907-113.23-45.273-92.398-.798-170.283 73.977-169.484 169.442C88.764 348.009 162.184 424 256 424c41.127 0 79.997-14.678 110.629-41.556 4.743-4.161 11.906-3.908 16.368.553l39.662 39.662c4.872 4.872 4.631 12.815-.482 17.433C378.202 479.813 319.926 504 256 504 119.034 504 8.001 392.967 8 256.002 7.999 119.193 119.646 7.755 256.455 8z\"]\n};\nvar faRegistered = {\n prefix: 'fas',\n iconName: 'registered',\n icon: [512, 512, [], \"f25d\", \"M285.363 207.475c0 18.6-9.831 28.431-28.431 28.431h-29.876v-56.14h23.378c28.668 0 34.929 8.773 34.929 27.709zM504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM363.411 360.414c-46.729-84.825-43.299-78.636-44.702-80.98 23.432-15.172 37.945-42.979 37.945-74.486 0-54.244-31.5-89.252-105.498-89.252h-70.667c-13.255 0-24 10.745-24 24V372c0 13.255 10.745 24 24 24h22.567c13.255 0 24-10.745 24-24v-71.663h25.556l44.129 82.937a24.001 24.001 0 0 0 21.188 12.727h24.464c18.261-.001 29.829-19.591 21.018-35.587z\"]\n};\nvar faRemoveFormat = {\n prefix: 'fas',\n iconName: 'remove-format',\n icon: [640, 512, [], \"f87d\", \"M336 416h-11.17l9.26-27.77L267 336.4 240.49 416H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm297.82 42.1L377 259.59 426.17 112H544v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16H176a16 16 0 0 0-16 16v43.9L45.46 3.38A16 16 0 0 0 23 6.19L3.37 31.46a16 16 0 0 0 2.81 22.45l588.36 454.72a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zM309.91 207.76L224 141.36V112h117.83z\"]\n};\nvar faReply = {\n prefix: 'fas',\n iconName: 'reply',\n icon: [512, 512, [], \"f3e5\", \"M8.309 189.836L184.313 37.851C199.719 24.546 224 35.347 224 56.015v80.053c160.629 1.839 288 34.032 288 186.258 0 61.441-39.581 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 45.344-145.012-21.507-183.51-176.59-185.742V360c0 20.7-24.3 31.453-39.687 18.164l-176.004-152c-11.071-9.562-11.086-26.753 0-36.328z\"]\n};\nvar faReplyAll = {\n prefix: 'fas',\n iconName: 'reply-all',\n icon: [576, 512, [], \"f122\", \"M136.309 189.836L312.313 37.851C327.72 24.546 352 35.348 352 56.015v82.763c129.182 10.231 224 52.212 224 183.548 0 61.441-39.582 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 38.512-123.162-3.922-169.482-112.59-182.015v84.175c0 20.701-24.3 31.453-39.687 18.164L136.309 226.164c-11.071-9.561-11.086-26.753 0-36.328zm-128 36.328L184.313 378.15C199.7 391.439 224 380.687 224 359.986v-15.818l-108.606-93.785A55.96 55.96 0 0 1 96 207.998a55.953 55.953 0 0 1 19.393-42.38L224 71.832V56.015c0-20.667-24.28-31.469-39.687-18.164L8.309 189.836c-11.086 9.575-11.071 26.767 0 36.328z\"]\n};\nvar faRepublican = {\n prefix: 'fas',\n iconName: 'republican',\n icon: [640, 512, [], \"f75e\", \"M544 192c0-88.4-71.6-160-160-160H160C71.6 32 0 103.6 0 192v64h544v-64zm-367.7-21.6l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L128 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zm144 0l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L272 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zm144 0l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L416 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zM624 320h-32c-8.8 0-16 7.2-16 16v64c0 8.8-7.2 16-16 16s-16-7.2-16-16V288H0v176c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16v-80h192v80c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16V352h32v43.3c0 41.8 30 80.1 71.6 84.3 47.8 4.9 88.4-32.7 88.4-79.6v-64c0-8.8-7.2-16-16-16z\"]\n};\nvar faRestroom = {\n prefix: 'fas',\n iconName: 'restroom',\n icon: [640, 512, [], \"f7bd\", \"M128 128c35.3 0 64-28.7 64-64S163.3 0 128 0 64 28.7 64 64s28.7 64 64 64zm384 0c35.3 0 64-28.7 64-64S547.3 0 512 0s-64 28.7-64 64 28.7 64 64 64zm127.3 226.5l-45.6-185.8c-3.3-13.5-15.5-23-29.8-24.2-15 9.7-32.8 15.5-52 15.5-19.2 0-37-5.8-52-15.5-14.3 1.2-26.5 10.7-29.8 24.2l-45.6 185.8C381 369.6 393 384 409.2 384H464v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V384h54.8c16.2 0 28.2-14.4 24.5-29.5zM336 0h-32c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zM180.1 144.4c-15 9.8-32.9 15.6-52.1 15.6-19.2 0-37.1-5.8-52.1-15.6C51.3 146.5 32 166.9 32 192v136c0 13.3 10.7 24 24 24h8v136c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V352h8c13.3 0 24-10.7 24-24V192c0-25.1-19.3-45.5-43.9-47.6z\"]\n};\nvar faRetweet = {\n prefix: 'fas',\n iconName: 'retweet',\n icon: [640, 512, [], \"f079\", \"M629.657 343.598L528.971 444.284c-9.373 9.372-24.568 9.372-33.941 0L394.343 343.598c-9.373-9.373-9.373-24.569 0-33.941l10.823-10.823c9.562-9.562 25.133-9.34 34.419.492L480 342.118V160H292.451a24.005 24.005 0 0 1-16.971-7.029l-16-16C244.361 121.851 255.069 96 276.451 96H520c13.255 0 24 10.745 24 24v222.118l40.416-42.792c9.285-9.831 24.856-10.054 34.419-.492l10.823 10.823c9.372 9.372 9.372 24.569-.001 33.941zm-265.138 15.431A23.999 23.999 0 0 0 347.548 352H160V169.881l40.416 42.792c9.286 9.831 24.856 10.054 34.419.491l10.822-10.822c9.373-9.373 9.373-24.569 0-33.941L144.971 67.716c-9.373-9.373-24.569-9.373-33.941 0L10.343 168.402c-9.373 9.373-9.373 24.569 0 33.941l10.822 10.822c9.562 9.562 25.133 9.34 34.419-.491L96 169.881V392c0 13.255 10.745 24 24 24h243.549c21.382 0 32.09-25.851 16.971-40.971l-16.001-16z\"]\n};\nvar faRibbon = {\n prefix: 'fas',\n iconName: 'ribbon',\n icon: [448, 512, [], \"f4d6\", \"M6.1 444.3c-9.6 10.8-7.5 27.6 4.5 35.7l68.8 27.9c9.9 6.7 23.3 5 31.3-3.8l91.8-101.9-79.2-87.9-117.2 130zm435.8 0s-292-324.6-295.4-330.1c15.4-8.4 40.2-17.9 77.5-17.9s62.1 9.5 77.5 17.9c-3.3 5.6-56 64.6-56 64.6l79.1 87.7 34.2-38c28.7-31.9 33.3-78.6 11.4-115.5l-43.7-73.5c-4.3-7.2-9.9-13.3-16.8-18-40.7-27.6-127.4-29.7-171.4 0-6.9 4.7-12.5 10.8-16.8 18l-43.6 73.2c-1.5 2.5-37.1 62.2 11.5 116L337.5 504c8 8.9 21.4 10.5 31.3 3.8l68.8-27.9c11.9-8 14-24.8 4.3-35.6z\"]\n};\nvar faRing = {\n prefix: 'fas',\n iconName: 'ring',\n icon: [512, 512, [], \"f70b\", \"M256 64C110.06 64 0 125.91 0 208v98.13C0 384.48 114.62 448 256 448s256-63.52 256-141.87V208c0-82.09-110.06-144-256-144zm0 64c106.04 0 192 35.82 192 80 0 9.26-3.97 18.12-10.91 26.39C392.15 208.21 328.23 192 256 192s-136.15 16.21-181.09 42.39C67.97 226.12 64 217.26 64 208c0-44.18 85.96-80 192-80zM120.43 264.64C155.04 249.93 201.64 240 256 240s100.96 9.93 135.57 24.64C356.84 279.07 308.93 288 256 288s-100.84-8.93-135.57-23.36z\"]\n};\nvar faRoad = {\n prefix: 'fas',\n iconName: 'road',\n icon: [576, 512, [], \"f018\", \"M573.19 402.67l-139.79-320C428.43 71.29 417.6 64 405.68 64h-97.59l2.45 23.16c.5 4.72-3.21 8.84-7.96 8.84h-29.16c-4.75 0-8.46-4.12-7.96-8.84L267.91 64h-97.59c-11.93 0-22.76 7.29-27.73 18.67L2.8 402.67C-6.45 423.86 8.31 448 30.54 448h196.84l10.31-97.68c.86-8.14 7.72-14.32 15.91-14.32h68.8c8.19 0 15.05 6.18 15.91 14.32L348.62 448h196.84c22.23 0 36.99-24.14 27.73-45.33zM260.4 135.16a8 8 0 0 1 7.96-7.16h39.29c4.09 0 7.53 3.09 7.96 7.16l4.6 43.58c.75 7.09-4.81 13.26-11.93 13.26h-40.54c-7.13 0-12.68-6.17-11.93-13.26l4.59-43.58zM315.64 304h-55.29c-9.5 0-16.91-8.23-15.91-17.68l5.07-48c.86-8.14 7.72-14.32 15.91-14.32h45.15c8.19 0 15.05 6.18 15.91 14.32l5.07 48c1 9.45-6.41 17.68-15.91 17.68z\"]\n};\nvar faRobot = {\n prefix: 'fas',\n iconName: 'robot',\n icon: [640, 512, [], \"f544\", \"M32,224H64V416H32A31.96166,31.96166,0,0,1,0,384V256A31.96166,31.96166,0,0,1,32,224Zm512-48V448a64.06328,64.06328,0,0,1-64,64H160a64.06328,64.06328,0,0,1-64-64V176a79.974,79.974,0,0,1,80-80H288V32a32,32,0,0,1,64,0V96H464A79.974,79.974,0,0,1,544,176ZM264,256a40,40,0,1,0-40,40A39.997,39.997,0,0,0,264,256Zm-8,128H192v32h64Zm96,0H288v32h64ZM456,256a40,40,0,1,0-40,40A39.997,39.997,0,0,0,456,256Zm-8,128H384v32h64ZM640,256V384a31.96166,31.96166,0,0,1-32,32H576V224h32A31.96166,31.96166,0,0,1,640,256Z\"]\n};\nvar faRocket = {\n prefix: 'fas',\n iconName: 'rocket',\n icon: [512, 512, [], \"f135\", \"M505.12019,19.09375c-1.18945-5.53125-6.65819-11-12.207-12.1875C460.716,0,435.507,0,410.40747,0,307.17523,0,245.26909,55.20312,199.05238,128H94.83772c-16.34763.01562-35.55658,11.875-42.88664,26.48438L2.51562,253.29688A28.4,28.4,0,0,0,0,264a24.00867,24.00867,0,0,0,24.00582,24H127.81618l-22.47457,22.46875c-11.36521,11.36133-12.99607,32.25781,0,45.25L156.24582,406.625c11.15623,11.1875,32.15619,13.15625,45.27726,0l22.47457-22.46875V488a24.00867,24.00867,0,0,0,24.00581,24,28.55934,28.55934,0,0,0,10.707-2.51562l98.72834-49.39063c14.62888-7.29687,26.50776-26.5,26.50776-42.85937V312.79688c72.59753-46.3125,128.03493-108.40626,128.03493-211.09376C512.07526,76.5,512.07526,51.29688,505.12019,19.09375ZM384.04033,168A40,40,0,1,1,424.05,128,40.02322,40.02322,0,0,1,384.04033,168Z\"]\n};\nvar faRoute = {\n prefix: 'fas',\n iconName: 'route',\n icon: [512, 512, [], \"f4d7\", \"M416 320h-96c-17.6 0-32-14.4-32-32s14.4-32 32-32h96s96-107 96-160-43-96-96-96-96 43-96 96c0 25.5 22.2 63.4 45.3 96H320c-52.9 0-96 43.1-96 96s43.1 96 96 96h96c17.6 0 32 14.4 32 32s-14.4 32-32 32H185.5c-16 24.8-33.8 47.7-47.3 64H416c52.9 0 96-43.1 96-96s-43.1-96-96-96zm0-256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM96 256c-53 0-96 43-96 96s96 160 96 160 96-107 96-160-43-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faRss = {\n prefix: 'fas',\n iconName: 'rss',\n icon: [448, 512, [], \"f09e\", \"M128.081 415.959c0 35.369-28.672 64.041-64.041 64.041S0 451.328 0 415.959s28.672-64.041 64.041-64.041 64.04 28.673 64.04 64.041zm175.66 47.25c-8.354-154.6-132.185-278.587-286.95-286.95C7.656 175.765 0 183.105 0 192.253v48.069c0 8.415 6.49 15.472 14.887 16.018 111.832 7.284 201.473 96.702 208.772 208.772.547 8.397 7.604 14.887 16.018 14.887h48.069c9.149.001 16.489-7.655 15.995-16.79zm144.249.288C439.596 229.677 251.465 40.445 16.503 32.01 7.473 31.686 0 38.981 0 48.016v48.068c0 8.625 6.835 15.645 15.453 15.999 191.179 7.839 344.627 161.316 352.465 352.465.353 8.618 7.373 15.453 15.999 15.453h48.068c9.034-.001 16.329-7.474 16.005-16.504z\"]\n};\nvar faRssSquare = {\n prefix: 'fas',\n iconName: 'rss-square',\n icon: [448, 512, [], \"f143\", \"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM112 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm157.533 0h-34.335c-6.011 0-11.051-4.636-11.442-10.634-5.214-80.05-69.243-143.92-149.123-149.123-5.997-.39-10.633-5.431-10.633-11.441v-34.335c0-6.535 5.468-11.777 11.994-11.425 110.546 5.974 198.997 94.536 204.964 204.964.352 6.526-4.89 11.994-11.425 11.994zm103.027 0h-34.334c-6.161 0-11.175-4.882-11.427-11.038-5.598-136.535-115.204-246.161-251.76-251.76C68.882 152.949 64 147.935 64 141.774V107.44c0-6.454 5.338-11.664 11.787-11.432 167.83 6.025 302.21 141.191 308.205 308.205.232 6.449-4.978 11.787-11.432 11.787z\"]\n};\nvar faRubleSign = {\n prefix: 'fas',\n iconName: 'ruble-sign',\n icon: [384, 512, [], \"f158\", \"M239.36 320C324.48 320 384 260.542 384 175.071S324.48 32 239.36 32H76c-6.627 0-12 5.373-12 12v206.632H12c-6.627 0-12 5.373-12 12V308c0 6.627 5.373 12 12 12h52v32H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v52c0 6.627 5.373 12 12 12h58.56c6.627 0 12-5.373 12-12v-52H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H146.56v-32h92.8zm-92.8-219.252h78.72c46.72 0 74.88 29.11 74.88 74.323 0 45.832-28.16 75.561-76.16 75.561h-77.44V100.748z\"]\n};\nvar faRuler = {\n prefix: 'fas',\n iconName: 'ruler',\n icon: [640, 512, [], \"f545\", \"M635.7 167.2L556.1 31.7c-8.8-15-28.3-20.1-43.5-11.5l-69 39.1L503.3 161c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L416 75l-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L333.2 122 278 153.3 337.8 255c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-59.7-101.7-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-27.9-47.5-55.2 31.3 59.7 101.7c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L84.9 262.9l-69 39.1C.7 310.7-4.6 329.8 4.2 344.8l79.6 135.6c8.8 15 28.3 20.1 43.5 11.5L624.1 210c15.2-8.6 20.4-27.8 11.6-42.8z\"]\n};\nvar faRulerCombined = {\n prefix: 'fas',\n iconName: 'ruler-combined',\n icon: [512, 512, [], \"f546\", \"M160 288h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56v-64h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56V96h-56c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8h56V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 2.77.91 5.24 1.57 7.8L160 329.38V288zm320 64h-32v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-41.37L24.2 510.43c2.56.66 5.04 1.57 7.8 1.57h448c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z\"]\n};\nvar faRulerHorizontal = {\n prefix: 'fas',\n iconName: 'ruler-horizontal',\n icon: [576, 512, [], \"f547\", \"M544 128h-48v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8H88c-4.42 0-8-3.58-8-8v-88H32c-17.67 0-32 14.33-32 32v192c0 17.67 14.33 32 32 32h512c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32z\"]\n};\nvar faRulerVertical = {\n prefix: 'fas',\n iconName: 'ruler-vertical',\n icon: [256, 512, [], \"f548\", \"M168 416c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 17.67 14.33 32 32 32h192c17.67 0 32-14.33 32-32v-64h-88z\"]\n};\nvar faRunning = {\n prefix: 'fas',\n iconName: 'running',\n icon: [416, 512, [], \"f70c\", \"M272 96c26.51 0 48-21.49 48-48S298.51 0 272 0s-48 21.49-48 48 21.49 48 48 48zM113.69 317.47l-14.8 34.52H32c-17.67 0-32 14.33-32 32s14.33 32 32 32h77.45c19.25 0 36.58-11.44 44.11-29.09l8.79-20.52-10.67-6.3c-17.32-10.23-30.06-25.37-37.99-42.61zM384 223.99h-44.03l-26.06-53.25c-12.5-25.55-35.45-44.23-61.78-50.94l-71.08-21.14c-28.3-6.8-57.77-.55-80.84 17.14l-39.67 30.41c-14.03 10.75-16.69 30.83-5.92 44.86s30.84 16.66 44.86 5.92l39.69-30.41c7.67-5.89 17.44-8 25.27-6.14l14.7 4.37-37.46 87.39c-12.62 29.48-1.31 64.01 26.3 80.31l84.98 50.17-27.47 87.73c-5.28 16.86 4.11 34.81 20.97 40.09 3.19 1 6.41 1.48 9.58 1.48 13.61 0 26.23-8.77 30.52-22.45l31.64-101.06c5.91-20.77-2.89-43.08-21.64-54.39l-61.24-36.14 31.31-78.28 20.27 41.43c8 16.34 24.92 26.89 43.11 26.89H384c17.67 0 32-14.33 32-32s-14.33-31.99-32-31.99z\"]\n};\nvar faRupeeSign = {\n prefix: 'fas',\n iconName: 'rupee-sign',\n icon: [320, 512, [], \"f156\", \"M308 96c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v44.748c0 6.627 5.373 12 12 12h85.28c27.308 0 48.261 9.958 60.97 27.252H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h158.757c-6.217 36.086-32.961 58.632-74.757 58.632H12c-6.627 0-12 5.373-12 12v53.012c0 3.349 1.4 6.546 3.861 8.818l165.052 152.356a12.001 12.001 0 0 0 8.139 3.182h82.562c10.924 0 16.166-13.408 8.139-20.818L116.871 319.906c76.499-2.34 131.144-53.395 138.318-127.906H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-58.69c-3.486-11.541-8.28-22.246-14.252-32H308z\"]\n};\nvar faSadCry = {\n prefix: 'fas',\n iconName: 'sad-cry',\n icon: [496, 512, [], \"f5b3\", \"M248 8C111 8 0 119 0 256c0 90.1 48.2 168.7 120 212.1V288c0-8.8 7.2-16 16-16s16 7.2 16 16v196.7c29.5 12.4 62 19.3 96 19.3s66.5-6.9 96-19.3V288c0-8.8 7.2-16 16-16s16 7.2 16 16v180.1C447.8 424.7 496 346 496 256 496 119 385 8 248 8zm-65.5 216.5c-14.8-13.2-46.2-13.2-61 0L112 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c.8 5-1.7 10-6.1 12.4-5.8 3.1-11.2.7-13.7-1.6l-9.7-8.5zM248 416c-26.5 0-48-28.7-48-64s21.5-64 48-64 48 28.7 48 64-21.5 64-48 64zm149.8-181.5c-5.8 3.1-11.2.7-13.7-1.6l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S400 197 404 222.2c.6 4.9-1.8 9.9-6.2 12.3z\"]\n};\nvar faSadTear = {\n prefix: 'fas',\n iconName: 'sad-tear',\n icon: [496, 512, [], \"f5b4\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM152 416c-26.5 0-48-21-48-47 0-20 28.5-60.4 41.6-77.8 3.2-4.3 9.6-4.3 12.8 0C171.5 308.6 200 349 200 369c0 26-21.5 47-48 47zm16-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm170.2 154.2C315.8 367.4 282.9 352 248 352c-21.2 0-21.2-32 0-32 44.4 0 86.3 19.6 114.7 53.8 13.8 16.4-11.2 36.5-24.5 20.4z\"]\n};\nvar faSatellite = {\n prefix: 'fas',\n iconName: 'satellite',\n icon: [512, 512, [], \"f7bf\", \"M502.60969,310.04206l-96.70393,96.71625a31.88151,31.88151,0,0,1-45.00765,0L280.572,326.34115l-9.89231,9.90759a190.56343,190.56343,0,0,1-5.40716,168.52287c-4.50077,8.50115-16.39342,9.59505-23.20707,2.79725L134.54715,400.05428l-17.7999,17.79929c.70324,2.60972,1.60965,5.00067,1.60965,7.79793a32.00544,32.00544,0,1,1-32.00544-32.00434c2.79735,0,5.18838.90637,7.7982,1.60959l17.7999-17.79929L4.43129,269.94287c-6.798-6.81342-5.70409-18.6119,2.79735-23.20627a190.58161,190.58161,0,0,1,168.52864-5.407l9.79854-9.79821-80.31053-80.41716a32.002,32.002,0,0,1,0-45.09987L201.96474,9.29814A31.62639,31.62639,0,0,1,224.46868,0a31.99951,31.99951,0,0,1,22.59759,9.29814l80.32615,80.30777,47.805-47.89713a33.6075,33.6075,0,0,1,47.50808,0l47.50807,47.50645a33.63308,33.63308,0,0,1,0,47.50644l-47.805,47.89713L502.71908,265.036A31.78938,31.78938,0,0,1,502.60969,310.04206ZM219.56159,197.433l73.82505-73.82252-68.918-68.9-73.80942,73.80689Zm237.74352,90.106-68.90233-68.9156-73.825,73.82252,68.918,68.9Z\"]\n};\nvar faSatelliteDish = {\n prefix: 'fas',\n iconName: 'satellite-dish',\n icon: [512, 512, [], \"f7c0\", \"M305.44954,462.59c7.39157,7.29792,6.18829,20.09661-3.00038,25.00356-77.713,41.80281-176.72559,29.9105-242.34331-35.7082C-5.49624,386.28227-17.404,287.362,24.41381,209.554c4.89125-9.095,17.68975-10.29834,25.00318-3.00043L166.22872,323.36708l27.39411-27.39452c-.68759-2.60974-1.594-5.00071-1.594-7.81361a32.00407,32.00407,0,1,1,32.00407,32.00455c-2.79723,0-5.20378-.89075-7.79786-1.594l-27.40974,27.41015ZM511.9758,303.06732a16.10336,16.10336,0,0,1-16.002,17.00242H463.86031a15.96956,15.96956,0,0,1-15.89265-15.00213C440.46671,175.5492,336.45348,70.53427,207.03078,63.53328a15.84486,15.84486,0,0,1-15.00191-15.90852V16.02652A16.09389,16.09389,0,0,1,209.031.02425C372.25491,8.61922,503.47472,139.841,511.9758,303.06732Zm-96.01221-.29692a16.21093,16.21093,0,0,1-16.11142,17.29934H367.645a16.06862,16.06862,0,0,1-15.89265-14.70522c-6.90712-77.01094-68.118-138.91037-144.92467-145.22376a15.94,15.94,0,0,1-14.79876-15.89289V112.13393a16.134,16.134,0,0,1,17.29908-16.096C319.45132,104.5391,407.55627,192.64538,415.96359,302.7704Z\"]\n};\nvar faSave = {\n prefix: 'fas',\n iconName: 'save',\n icon: [448, 512, [], \"f0c7\", \"M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM224 416c-35.346 0-64-28.654-64-64 0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64zm96-304.52V212c0 6.627-5.373 12-12 12H76c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h228.52c3.183 0 6.235 1.264 8.485 3.515l3.48 3.48A11.996 11.996 0 0 1 320 111.48z\"]\n};\nvar faSchool = {\n prefix: 'fas',\n iconName: 'school',\n icon: [640, 512, [], \"f549\", \"M0 224v272c0 8.84 7.16 16 16 16h80V192H32c-17.67 0-32 14.33-32 32zm360-48h-24v-40c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v64c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm137.75-63.96l-160-106.67a32.02 32.02 0 0 0-35.5 0l-160 106.67A32.002 32.002 0 0 0 128 138.66V512h128V368c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v144h128V138.67c0-10.7-5.35-20.7-14.25-26.63zM320 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm288-64h-64v320h80c8.84 0 16-7.16 16-16V224c0-17.67-14.33-32-32-32z\"]\n};\nvar faScrewdriver = {\n prefix: 'fas',\n iconName: 'screwdriver',\n icon: [512, 512, [], \"f54a\", \"M448 0L320 96v62.06l-83.03 83.03c6.79 4.25 13.27 9.06 19.07 14.87 5.8 5.8 10.62 12.28 14.87 19.07L353.94 192H416l96-128-64-64zM128 278.59L10.92 395.67c-14.55 14.55-14.55 38.15 0 52.71l52.7 52.7c14.56 14.56 38.15 14.56 52.71 0L233.41 384c29.11-29.11 29.11-76.3 0-105.41s-76.3-29.11-105.41 0z\"]\n};\nvar faScroll = {\n prefix: 'fas',\n iconName: 'scroll',\n icon: [640, 512, [], \"f70e\", \"M48 0C21.53 0 0 21.53 0 48v64c0 8.84 7.16 16 16 16h80V48C96 21.53 74.47 0 48 0zm208 412.57V352h288V96c0-52.94-43.06-96-96-96H111.59C121.74 13.41 128 29.92 128 48v368c0 38.87 34.65 69.65 74.75 63.12C234.22 474 256 444.46 256 412.57zM288 384v32c0 52.93-43.06 96-96 96h336c61.86 0 112-50.14 112-112 0-8.84-7.16-16-16-16H288z\"]\n};\nvar faSdCard = {\n prefix: 'fas',\n iconName: 'sd-card',\n icon: [384, 512, [], \"f7c2\", \"M320 0H128L0 128v320c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zM160 160h-48V64h48v96zm80 0h-48V64h48v96zm80 0h-48V64h48v96z\"]\n};\nvar faSearch = {\n prefix: 'fas',\n iconName: 'search',\n icon: [512, 512, [], \"f002\", \"M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z\"]\n};\nvar faSearchDollar = {\n prefix: 'fas',\n iconName: 'search-dollar',\n icon: [512, 512, [], \"f688\", \"M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm27.11-152.54l-45.01-13.5c-5.16-1.55-8.77-6.78-8.77-12.73 0-7.27 5.3-13.19 11.8-13.19h28.11c4.56 0 8.96 1.29 12.82 3.72 3.24 2.03 7.36 1.91 10.13-.73l11.75-11.21c3.53-3.37 3.33-9.21-.57-12.14-9.1-6.83-20.08-10.77-31.37-11.35V112c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v16.12c-23.63.63-42.68 20.55-42.68 45.07 0 19.97 12.99 37.81 31.58 43.39l45.01 13.5c5.16 1.55 8.77 6.78 8.77 12.73 0 7.27-5.3 13.19-11.8 13.19h-28.1c-4.56 0-8.96-1.29-12.82-3.72-3.24-2.03-7.36-1.91-10.13.73l-11.75 11.21c-3.53 3.37-3.33 9.21.57 12.14 9.1 6.83 20.08 10.77 31.37 11.35V304c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-16.12c23.63-.63 42.68-20.54 42.68-45.07 0-19.97-12.99-37.81-31.59-43.39z\"]\n};\nvar faSearchLocation = {\n prefix: 'fas',\n iconName: 'search-location',\n icon: [512, 512, [], \"f689\", \"M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm.02-239.96c-40.78 0-73.84 33.05-73.84 73.83 0 32.96 48.26 93.05 66.75 114.86a9.24 9.24 0 0 0 14.18 0c18.49-21.81 66.75-81.89 66.75-114.86 0-40.78-33.06-73.83-73.84-73.83zm0 96c-13.26 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"]\n};\nvar faSearchMinus = {\n prefix: 'fas',\n iconName: 'search-minus',\n icon: [512, 512, [], \"f010\", \"M304 192v32c0 6.6-5.4 12-12 12H124c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z\"]\n};\nvar faSearchPlus = {\n prefix: 'fas',\n iconName: 'search-plus',\n icon: [512, 512, [], \"f00e\", \"M304 192v32c0 6.6-5.4 12-12 12h-56v56c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-56h-56c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h56v-56c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v56h56c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z\"]\n};\nvar faSeedling = {\n prefix: 'fas',\n iconName: 'seedling',\n icon: [512, 512, [], \"f4d8\", \"M64 96H0c0 123.7 100.3 224 224 224v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C288 196.3 187.7 96 64 96zm384-64c-84.2 0-157.4 46.5-195.7 115.2 27.7 30.2 48.2 66.9 59 107.6C424 243.1 512 147.9 512 32h-64z\"]\n};\nvar faServer = {\n prefix: 'fas',\n iconName: 'server',\n icon: [512, 512, [], \"f233\", \"M480 160H32c-17.673 0-32-14.327-32-32V64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24z\"]\n};\nvar faShapes = {\n prefix: 'fas',\n iconName: 'shapes',\n icon: [512, 512, [], \"f61f\", \"M128,256A128,128,0,1,0,256,384,128,128,0,0,0,128,256Zm379-54.86L400.07,18.29a37.26,37.26,0,0,0-64.14,0L229,201.14C214.76,225.52,232.58,256,261.09,256H474.91C503.42,256,521.24,225.52,507,201.14ZM480,288H320a32,32,0,0,0-32,32V480a32,32,0,0,0,32,32H480a32,32,0,0,0,32-32V320A32,32,0,0,0,480,288Z\"]\n};\nvar faShare = {\n prefix: 'fas',\n iconName: 'share',\n icon: [512, 512, [], \"f064\", \"M503.691 189.836L327.687 37.851C312.281 24.546 288 35.347 288 56.015v80.053C127.371 137.907 0 170.1 0 322.326c0 61.441 39.581 122.309 83.333 154.132 13.653 9.931 33.111-2.533 28.077-18.631C66.066 312.814 132.917 274.316 288 272.085V360c0 20.7 24.3 31.453 39.687 18.164l176.004-152c11.071-9.562 11.086-26.753 0-36.328z\"]\n};\nvar faShareAlt = {\n prefix: 'fas',\n iconName: 'share-alt',\n icon: [448, 512, [], \"f1e0\", \"M352 320c-22.608 0-43.387 7.819-59.79 20.895l-102.486-64.054a96.551 96.551 0 0 0 0-41.683l102.486-64.054C308.613 184.181 329.392 192 352 192c53.019 0 96-42.981 96-96S405.019 0 352 0s-96 42.981-96 96c0 7.158.79 14.13 2.276 20.841L155.79 180.895C139.387 167.819 118.608 160 96 160c-53.019 0-96 42.981-96 96s42.981 96 96 96c22.608 0 43.387-7.819 59.79-20.895l102.486 64.054A96.301 96.301 0 0 0 256 416c0 53.019 42.981 96 96 96s96-42.981 96-96-42.981-96-96-96z\"]\n};\nvar faShareAltSquare = {\n prefix: 'fas',\n iconName: 'share-alt-square',\n icon: [448, 512, [], \"f1e1\", \"M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zM304 296c-14.562 0-27.823 5.561-37.783 14.671l-67.958-40.775a56.339 56.339 0 0 0 0-27.793l67.958-40.775C276.177 210.439 289.438 216 304 216c30.928 0 56-25.072 56-56s-25.072-56-56-56-56 25.072-56 56c0 4.797.605 9.453 1.74 13.897l-67.958 40.775C171.823 205.561 158.562 200 144 200c-30.928 0-56 25.072-56 56s25.072 56 56 56c14.562 0 27.823-5.561 37.783-14.671l67.958 40.775a56.088 56.088 0 0 0-1.74 13.897c0 30.928 25.072 56 56 56s56-25.072 56-56C360 321.072 334.928 296 304 296z\"]\n};\nvar faShareSquare = {\n prefix: 'fas',\n iconName: 'share-square',\n icon: [576, 512, [], \"f14d\", \"M568.482 177.448L424.479 313.433C409.3 327.768 384 317.14 384 295.985v-71.963c-144.575.97-205.566 35.113-164.775 171.353 4.483 14.973-12.846 26.567-25.006 17.33C155.252 383.105 120 326.488 120 269.339c0-143.937 117.599-172.5 264-173.312V24.012c0-21.174 25.317-31.768 40.479-17.448l144.003 135.988c10.02 9.463 10.028 25.425 0 34.896zM384 379.128V448H64V128h50.916a11.99 11.99 0 0 0 8.648-3.693c14.953-15.568 32.237-27.89 51.014-37.676C185.708 80.83 181.584 64 169.033 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48v-88.806c0-8.288-8.197-14.066-16.011-11.302a71.83 71.83 0 0 1-34.189 3.377c-7.27-1.046-13.8 4.514-13.8 11.859z\"]\n};\nvar faShekelSign = {\n prefix: 'fas',\n iconName: 'shekel-sign',\n icon: [448, 512, [], \"f20b\", \"M248 168v168c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V168c0-75.11-60.89-136-136-136H24C10.75 32 0 42.74 0 56v408c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112h112c30.93 0 56 25.07 56 56zM432 32h-48c-8.84 0-16 7.16-16 16v296c0 30.93-25.07 56-56 56H200V176c0-8.84-7.16-16-16-16h-48c-8.84 0-16 7.16-16 16v280c0 13.25 10.75 24 24 24h168c75.11 0 136-60.89 136-136V48c0-8.84-7.16-16-16-16z\"]\n};\nvar faShieldAlt = {\n prefix: 'fas',\n iconName: 'shield-alt',\n icon: [512, 512, [], \"f3ed\", \"M466.5 83.7l-192-80a48.15 48.15 0 0 0-36.9 0l-192 80C27.7 91.1 16 108.6 16 128c0 198.5 114.5 335.7 221.5 380.3 11.8 4.9 25.1 4.9 36.9 0C360.1 472.6 496 349.3 496 128c0-19.4-11.7-36.9-29.5-44.3zM256.1 446.3l-.1-381 175.9 73.3c-3.3 151.4-82.1 261.1-175.8 307.7z\"]\n};\nvar faShieldVirus = {\n prefix: 'fas',\n iconName: 'shield-virus',\n icon: [512, 512, [], \"e06c\", \"M224,192a16,16,0,1,0,16,16A16,16,0,0,0,224,192ZM466.5,83.68l-192-80A57.4,57.4,0,0,0,256.05,0a57.4,57.4,0,0,0-18.46,3.67l-192,80A47.93,47.93,0,0,0,16,128C16,326.5,130.5,463.72,237.5,508.32a48.09,48.09,0,0,0,36.91,0C360.09,472.61,496,349.3,496,128A48,48,0,0,0,466.5,83.68ZM384,256H371.88c-28.51,0-42.79,34.47-22.63,54.63l8.58,8.57a16,16,0,1,1-22.63,22.63l-8.57-8.58C306.47,313.09,272,327.37,272,355.88V368a16,16,0,0,1-32,0V355.88c0-28.51-34.47-42.79-54.63-22.63l-8.57,8.58a16,16,0,0,1-22.63-22.63l8.58-8.57c20.16-20.16,5.88-54.63-22.63-54.63H128a16,16,0,0,1,0-32h12.12c28.51,0,42.79-34.47,22.63-54.63l-8.58-8.57a16,16,0,0,1,22.63-22.63l8.57,8.58c20.16,20.16,54.63,5.88,54.63-22.63V112a16,16,0,0,1,32,0v12.12c0,28.51,34.47,42.79,54.63,22.63l8.57-8.58a16,16,0,0,1,22.63,22.63l-8.58,8.57C329.09,189.53,343.37,224,371.88,224H384a16,16,0,0,1,0,32Zm-96,0a16,16,0,1,0,16,16A16,16,0,0,0,288,256Z\"]\n};\nvar faShip = {\n prefix: 'fas',\n iconName: 'ship',\n icon: [640, 512, [], \"f21a\", \"M496.616 372.639l70.012-70.012c16.899-16.9 9.942-45.771-12.836-53.092L512 236.102V96c0-17.673-14.327-32-32-32h-64V24c0-13.255-10.745-24-24-24H248c-13.255 0-24 10.745-24 24v40h-64c-17.673 0-32 14.327-32 32v140.102l-41.792 13.433c-22.753 7.313-29.754 36.173-12.836 53.092l70.012 70.012C125.828 416.287 85.587 448 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24 61.023 0 107.499-20.61 143.258-59.396C181.677 487.432 216.021 512 256 512h128c39.979 0 74.323-24.568 88.742-59.396C508.495 491.384 554.968 512 616 512c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24-60.817 0-101.542-31.001-119.384-75.361zM192 128h256v87.531l-118.208-37.995a31.995 31.995 0 0 0-19.584 0L192 215.531V128z\"]\n};\nvar faShippingFast = {\n prefix: 'fas',\n iconName: 'shipping-fast',\n icon: [640, 512, [], \"f48b\", \"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H112C85.5 0 64 21.5 64 48v48H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h272c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H40c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H64v128c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z\"]\n};\nvar faShoePrints = {\n prefix: 'fas',\n iconName: 'shoe-prints',\n icon: [640, 512, [], \"f54b\", \"M192 160h32V32h-32c-35.35 0-64 28.65-64 64s28.65 64 64 64zM0 416c0 35.35 28.65 64 64 64h32V352H64c-35.35 0-64 28.65-64 64zm337.46-128c-34.91 0-76.16 13.12-104.73 32-24.79 16.38-44.52 32-104.73 32v128l57.53 15.97c26.21 7.28 53.01 13.12 80.31 15.05 32.69 2.31 65.6.67 97.58-6.2C472.9 481.3 512 429.22 512 384c0-64-84.18-96-174.54-96zM491.42 7.19C459.44.32 426.53-1.33 393.84.99c-27.3 1.93-54.1 7.77-80.31 15.04L256 32v128c60.2 0 79.94 15.62 104.73 32 28.57 18.88 69.82 32 104.73 32C555.82 224 640 192 640 128c0-45.22-39.1-97.3-148.58-120.81z\"]\n};\nvar faShoppingBag = {\n prefix: 'fas',\n iconName: 'shopping-bag',\n icon: [448, 512, [], \"f290\", \"M352 160v-32C352 57.42 294.579 0 224 0 153.42 0 96 57.42 96 128v32H0v272c0 44.183 35.817 80 80 80h288c44.183 0 80-35.817 80-80V160h-96zm-192-32c0-35.29 28.71-64 64-64s64 28.71 64 64v32H160v-32zm160 120c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm-192 0c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24z\"]\n};\nvar faShoppingBasket = {\n prefix: 'fas',\n iconName: 'shopping-basket',\n icon: [576, 512, [], \"f291\", \"M576 216v16c0 13.255-10.745 24-24 24h-8l-26.113 182.788C514.509 462.435 494.257 480 470.37 480H105.63c-23.887 0-44.139-17.565-47.518-41.212L32 256h-8c-13.255 0-24-10.745-24-24v-16c0-13.255 10.745-24 24-24h67.341l106.78-146.821c10.395-14.292 30.407-17.453 44.701-7.058 14.293 10.395 17.453 30.408 7.058 44.701L170.477 192h235.046L326.12 82.821c-10.395-14.292-7.234-34.306 7.059-44.701 14.291-10.395 34.306-7.235 44.701 7.058L484.659 192H552c13.255 0 24 10.745 24 24zM312 392V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm112 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm-224 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24z\"]\n};\nvar faShoppingCart = {\n prefix: 'fas',\n iconName: 'shopping-cart',\n icon: [576, 512, [], \"f07a\", \"M528.12 301.319l47.273-208C578.806 78.301 567.391 64 551.99 64H159.208l-9.166-44.81C147.758 8.021 137.93 0 126.529 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24h69.883l70.248 343.435C147.325 417.1 136 435.222 136 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-15.674-6.447-29.835-16.824-40h209.647C430.447 426.165 424 440.326 424 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-22.172-12.888-41.332-31.579-50.405l5.517-24.276c3.413-15.018-8.002-29.319-23.403-29.319H218.117l-6.545-32h293.145c11.206 0 20.92-7.754 23.403-18.681z\"]\n};\nvar faShower = {\n prefix: 'fas',\n iconName: 'shower',\n icon: [512, 512, [], \"f2cc\", \"M304,320a16,16,0,1,0,16,16A16,16,0,0,0,304,320Zm32-96a16,16,0,1,0,16,16A16,16,0,0,0,336,224Zm32,64a16,16,0,1,0-16-16A16,16,0,0,0,368,288Zm-32,32a16,16,0,1,0-16-16A16,16,0,0,0,336,320Zm-32-64a16,16,0,1,0,16,16A16,16,0,0,0,304,256Zm128-32a16,16,0,1,0-16-16A16,16,0,0,0,432,224Zm-48,16a16,16,0,1,0,16-16A16,16,0,0,0,384,240Zm-16-48a16,16,0,1,0,16,16A16,16,0,0,0,368,192Zm96,32a16,16,0,1,0,16,16A16,16,0,0,0,464,224Zm32-32a16,16,0,1,0,16,16A16,16,0,0,0,496,192Zm-64,64a16,16,0,1,0,16,16A16,16,0,0,0,432,256Zm-32,32a16,16,0,1,0,16,16A16,16,0,0,0,400,288Zm-64,64a16,16,0,1,0,16,16A16,16,0,0,0,336,352Zm-32,32a16,16,0,1,0,16,16A16,16,0,0,0,304,384Zm64-64a16,16,0,1,0,16,16A16,16,0,0,0,368,320Zm21.65-218.35-11.3-11.31a16,16,0,0,0-22.63,0L350.05,96A111.19,111.19,0,0,0,272,64c-19.24,0-37.08,5.3-52.9,13.85l-10-10A121.72,121.72,0,0,0,123.44,32C55.49,31.5,0,92.91,0,160.85V464a16,16,0,0,0,16,16H48a16,16,0,0,0,16-16V158.4c0-30.15,21-58.2,51-61.93a58.38,58.38,0,0,1,48.93,16.67l10,10C165.3,138.92,160,156.76,160,176a111.23,111.23,0,0,0,32,78.05l-5.66,5.67a16,16,0,0,0,0,22.62l11.3,11.31a16,16,0,0,0,22.63,0L389.65,124.28A16,16,0,0,0,389.65,101.65Z\"]\n};\nvar faShuttleVan = {\n prefix: 'fas',\n iconName: 'shuttle-van',\n icon: [640, 512, [], \"f5b6\", \"M628.88 210.65L494.39 49.27A48.01 48.01 0 0 0 457.52 32H32C14.33 32 0 46.33 0 64v288c0 17.67 14.33 32 32 32h32c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h32c17.67 0 32-14.33 32-32V241.38c0-11.23-3.94-22.1-11.12-30.73zM64 192V96h96v96H64zm96 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm160-240h-96V96h96v96zm160 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-96-240V96h66.02l80 96H384z\"]\n};\nvar faSign = {\n prefix: 'fas',\n iconName: 'sign',\n icon: [512, 512, [], \"f4d9\", \"M496 64H128V16c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16v48H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V128h368c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16zM160 384h320V160H160v224z\"]\n};\nvar faSignInAlt = {\n prefix: 'fas',\n iconName: 'sign-in-alt',\n icon: [512, 512, [], \"f2f6\", \"M416 448h-84c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h84c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32h-84c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h84c53 0 96 43 96 96v192c0 53-43 96-96 96zm-47-201L201 79c-15-15-41-4.5-41 17v96H24c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24h136v96c0 21.5 26 32 41 17l168-168c9.3-9.4 9.3-24.6 0-34z\"]\n};\nvar faSignLanguage = {\n prefix: 'fas',\n iconName: 'sign-language',\n icon: [448, 512, [], \"f2a7\", \"M91.434 483.987c-.307-16.018 13.109-29.129 29.13-29.129h62.293v-5.714H56.993c-16.021 0-29.437-13.111-29.13-29.129C28.16 404.491 40.835 392 56.428 392h126.429v-5.714H29.136c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h154.286v-5.714H57.707c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h168.566l-31.085-22.606c-12.762-9.281-15.583-27.149-6.302-39.912 9.281-12.761 27.15-15.582 39.912-6.302l123.361 89.715a34.287 34.287 0 0 1 14.12 27.728v141.136c0 15.91-10.946 29.73-26.433 33.374l-80.471 18.934a137.16 137.16 0 0 1-31.411 3.646H120c-15.593-.001-28.269-12.492-28.566-28.014zm73.249-225.701h36.423l-11.187-8.136c-18.579-13.511-20.313-40.887-3.17-56.536l-13.004-16.7c-9.843-12.641-28.43-15.171-40.88-5.088-12.065 9.771-14.133 27.447-4.553 39.75l36.371 46.71zm283.298-2.103l-5.003-152.452c-.518-15.771-13.722-28.136-29.493-27.619-15.773.518-28.137 13.722-27.619 29.493l1.262 38.415L283.565 11.019c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l76.889 98.745-4.509 3.511-94.79-121.734c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l94.443 121.288-4.509 3.511-77.675-99.754c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l52.053 66.849c12.497-8.257 29.055-8.285 41.69.904l123.36 89.714c10.904 7.93 17.415 20.715 17.415 34.198v16.999l61.064-47.549a34.285 34.285 0 0 0 13.202-28.177z\"]\n};\nvar faSignOutAlt = {\n prefix: 'fas',\n iconName: 'sign-out-alt',\n icon: [512, 512, [], \"f2f5\", \"M497 273L329 441c-15 15-41 4.5-41-17v-96H152c-13.3 0-24-10.7-24-24v-96c0-13.3 10.7-24 24-24h136V88c0-21.4 25.9-32 41-17l168 168c9.3 9.4 9.3 24.6 0 34zM192 436v-40c0-6.6-5.4-12-12-12H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h84c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12H96c-53 0-96 43-96 96v192c0 53 43 96 96 96h84c6.6 0 12-5.4 12-12z\"]\n};\nvar faSignal = {\n prefix: 'fas',\n iconName: 'signal',\n icon: [640, 512, [], \"f012\", \"M216 288h-48c-8.84 0-16 7.16-16 16v192c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V304c0-8.84-7.16-16-16-16zM88 384H40c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16zm256-192h-48c-8.84 0-16 7.16-16 16v288c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V208c0-8.84-7.16-16-16-16zm128-96h-48c-8.84 0-16 7.16-16 16v384c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112c0-8.84-7.16-16-16-16zM600 0h-48c-8.84 0-16 7.16-16 16v480c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z\"]\n};\nvar faSignature = {\n prefix: 'fas',\n iconName: 'signature',\n icon: [640, 512, [], \"f5b7\", \"M623.2 192c-51.8 3.5-125.7 54.7-163.1 71.5-29.1 13.1-54.2 24.4-76.1 24.4-22.6 0-26-16.2-21.3-51.9 1.1-8 11.7-79.2-42.7-76.1-25.1 1.5-64.3 24.8-169.5 126L192 182.2c30.4-75.9-53.2-151.5-129.7-102.8L7.4 116.3C0 121-2.2 130.9 2.5 138.4l17.2 27c4.7 7.5 14.6 9.7 22.1 4.9l58-38.9c18.4-11.7 40.7 7.2 32.7 27.1L34.3 404.1C27.5 421 37 448 64 448c8.3 0 16.5-3.2 22.6-9.4 42.2-42.2 154.7-150.7 211.2-195.8-2.2 28.5-2.1 58.9 20.6 83.8 15.3 16.8 37.3 25.3 65.5 25.3 35.6 0 68-14.6 102.3-30 33-14.8 99-62.6 138.4-65.8 8.5-.7 15.2-7.3 15.2-15.8v-32.1c.2-9.1-7.5-16.8-16.6-16.2z\"]\n};\nvar faSimCard = {\n prefix: 'fas',\n iconName: 'sim-card',\n icon: [384, 512, [], \"f7c4\", \"M0 64v384c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V128L256 0H64C28.7 0 0 28.7 0 64zm224 192h-64v-64h64v64zm96 0h-64v-64h32c17.7 0 32 14.3 32 32v32zm-64 128h64v32c0 17.7-14.3 32-32 32h-32v-64zm-96 0h64v64h-64v-64zm-96 0h64v64H96c-17.7 0-32-14.3-32-32v-32zm0-96h256v64H64v-64zm0-64c0-17.7 14.3-32 32-32h32v64H64v-32z\"]\n};\nvar faSink = {\n prefix: 'fas',\n iconName: 'sink',\n icon: [512, 512, [], \"e06d\", \"M32,416a96,96,0,0,0,96,96H384a96,96,0,0,0,96-96V384H32ZM496,288H400V256h64a16,16,0,0,0,16-16V224a16,16,0,0,0-16-16H384a32,32,0,0,0-32,32v48H288V96a32,32,0,0,1,64,0v16a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V96A96.16,96.16,0,0,0,300.87,1.86C255.29,10.71,224,53.36,224,99.79V288H160V240a32,32,0,0,0-32-32H48a16,16,0,0,0-16,16v16a16,16,0,0,0,16,16h64v32H16A16,16,0,0,0,0,304v32a16,16,0,0,0,16,16H496a16,16,0,0,0,16-16V304A16,16,0,0,0,496,288Z\"]\n};\nvar faSitemap = {\n prefix: 'fas',\n iconName: 'sitemap',\n icon: [640, 512, [], \"f0e8\", \"M128 352H32c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm-24-80h192v48h48v-48h192v48h48v-57.59c0-21.17-17.23-38.41-38.41-38.41H344v-64h40c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H256c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h40v64H94.41C73.23 224 56 241.23 56 262.41V320h48v-48zm264 80h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm240 0h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z\"]\n};\nvar faSkating = {\n prefix: 'fas',\n iconName: 'skating',\n icon: [448, 512, [], \"f7c5\", \"M400 0c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm0 448c-8.8 0-16 7.2-16 16s-7.2 16-16 16h-96c-8.8 0-16 7.2-16 16s7.2 16 16 16h96c26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16zm-282.2 8.6c-6.2 6.2-16.4 6.3-22.6 0l-67.9-67.9c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l67.9 67.9c9.4 9.4 21.7 14 34 14s24.6-4.7 33.9-14c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.3-22.7 0zm56.1-179.8l-93.7 93.7c-12.5 12.5-12.5 32.8 0 45.2 6.2 6.2 14.4 9.4 22.6 9.4s16.4-3.1 22.6-9.4l91.9-91.9-30.2-30.2c-5-5-9.4-10.7-13.2-16.8zM128 160h105.5l-20.1 17.2c-13.5 11.5-21.6 28.4-22.3 46.1-.7 17.8 6.1 35.2 18.7 47.7l78.2 78.2V432c0 17.7 14.3 32 32 32s32-14.3 32-32v-89.4c0-12.6-5.1-25-14.1-33.9l-61-61c.5-.4 1.2-.6 1.7-1.1l82.3-82.3c11.5-11.5 14.9-28.6 8.7-43.6-6.2-15-20.7-24.7-37-24.7H128c-17.7 0-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faSkiing = {\n prefix: 'fas',\n iconName: 'skiing',\n icon: [512, 512, [], \"f7c9\", \"M432 96c26.5 0 48-21.5 48-48S458.5 0 432 0s-48 21.5-48 48 21.5 48 48 48zm73 356.1c-9.4-9.4-24.6-9.4-33.9 0-12.1 12.1-30.5 15.4-45.1 8.7l-135.8-70.2 49.2-73.8c12.7-19 10.2-44.5-6-60.6L293 215.7l-107-53.1c-2.9 19.9 3.4 40 17.7 54.4l75.1 75.2-45.9 68.8L35 258.7c-11.7-6-26.2-1.5-32.3 10.3-6.1 11.8-1.5 26.3 10.3 32.3l391.9 202.5c11.9 5.5 24.5 8.1 37.1 8.1 23.2 0 46-9 63-26 9.3-9.3 9.3-24.5 0-33.8zM120 91.6l-11.5 22.5c14.4 7.3 31.2 4.9 42.8-4.8l47.2 23.4c-.1.1-.1.2-.2.3l114.5 56.8 32.4-13 6.4 19.1c4 12.1 12.6 22 24 27.7l58.1 29c15.9 7.9 35 1.5 42.9-14.3 7.9-15.8 1.5-35-14.3-42.9l-52.1-26.1-17.1-51.2c-8.1-24.2-40.9-56.6-84.5-39.2l-81.2 32.5-62.5-31c.3-14.5-7.2-28.6-20.9-35.6l-11.1 21.7h-.2l-34.4-7c-1.8-.4-3.7.2-5 1.7-1.9 2.2-1.7 5.5.5 7.4l26.2 23z\"]\n};\nvar faSkiingNordic = {\n prefix: 'fas',\n iconName: 'skiing-nordic',\n icon: [576, 512, [], \"f7ca\", \"M336 96c26.5 0 48-21.5 48-48S362.5 0 336 0s-48 21.5-48 48 21.5 48 48 48zm216 320c-13.2 0-24 10.7-24 24 0 13.2-10.8 24-24 24h-69.5L460 285.6c11.7-4.7 20.1-16.2 20.1-29.6 0-17.7-14.3-32-32-32h-44L378 170.8c-12.5-25.5-35.5-44.2-61.8-50.9L245 98.7c-28.3-6.8-57.8-.5-80.8 17.1l-39.7 30.4c-14 10.7-16.7 30.8-5.9 44.9.7.9 1.7 1.3 2.4 2.1L66.9 464H24c-13.2 0-24 10.7-24 24s10.8 24 24 24h480c39.7 0 72-32.3 72-72 0-13.2-10.8-24-24-24zm-260.5 48h-96.9l43.1-91-22-13c-12.1-7.2-21.9-16.9-29.5-27.8L123.7 464H99.5l52.3-261.4c4.1-1 8.1-2.9 11.7-5.6l39.7-30.4c7.7-5.9 17.4-8 25.3-6.1l14.7 4.4-37.5 87.4c-12.6 29.5-1.3 64 26.3 80.3l85 50.2-25.5 81.2zm110.6 0h-43.6l23.6-75.5c5.9-20.8-2.9-43.1-21.6-54.4L299.3 298l31.3-78.3 20.3 41.4c8 16.3 24.9 26.9 43.1 26.9h33.3l-25.2 176z\"]\n};\nvar faSkull = {\n prefix: 'fas',\n iconName: 'skull',\n icon: [512, 512, [], \"f54c\", \"M256 0C114.6 0 0 100.3 0 224c0 70.1 36.9 132.6 94.5 173.7 9.6 6.9 15.2 18.1 13.5 29.9l-9.4 66.2c-1.4 9.6 6 18.2 15.7 18.2H192v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h64v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h77.7c9.7 0 17.1-8.6 15.7-18.2l-9.4-66.2c-1.7-11.7 3.8-23 13.5-29.9C475.1 356.6 512 294.1 512 224 512 100.3 397.4 0 256 0zm-96 320c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm192 0c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z\"]\n};\nvar faSkullCrossbones = {\n prefix: 'fas',\n iconName: 'skull-crossbones',\n icon: [448, 512, [], \"f714\", \"M439.15 453.06L297.17 384l141.99-69.06c7.9-3.95 11.11-13.56 7.15-21.46L432 264.85c-3.95-7.9-13.56-11.11-21.47-7.16L224 348.41 37.47 257.69c-7.9-3.95-17.51-.75-21.47 7.16L1.69 293.48c-3.95 7.9-.75 17.51 7.15 21.46L150.83 384 8.85 453.06c-7.9 3.95-11.11 13.56-7.15 21.47l14.31 28.63c3.95 7.9 13.56 11.11 21.47 7.15L224 419.59l186.53 90.72c7.9 3.95 17.51.75 21.47-7.15l14.31-28.63c3.95-7.91.74-17.52-7.16-21.47zM150 237.28l-5.48 25.87c-2.67 12.62 5.42 24.85 16.45 24.85h126.08c11.03 0 19.12-12.23 16.45-24.85l-5.5-25.87c41.78-22.41 70-62.75 70-109.28C368 57.31 303.53 0 224 0S80 57.31 80 128c0 46.53 28.22 86.87 70 109.28zM280 112c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32zm-112 0c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32z\"]\n};\nvar faSlash = {\n prefix: 'fas',\n iconName: 'slash',\n icon: [640, 512, [], \"f715\", \"M594.53 508.63L6.18 53.9c-6.97-5.42-8.23-15.47-2.81-22.45L23.01 6.18C28.43-.8 38.49-2.06 45.47 3.37L633.82 458.1c6.97 5.42 8.23 15.47 2.81 22.45l-19.64 25.27c-5.42 6.98-15.48 8.23-22.46 2.81z\"]\n};\nvar faSleigh = {\n prefix: 'fas',\n iconName: 'sleigh',\n icon: [640, 512, [], \"f7cc\", \"M612.7 350.7l-9.3-7.4c-6.9-5.5-17-4.4-22.5 2.5l-10 12.5c-5.5 6.9-4.4 17 2.5 22.5l9.3 7.4c5.9 4.7 9.2 11.7 9.2 19.2 0 13.6-11 24.6-24.6 24.6H48c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h516c39 0 73.7-29.3 75.9-68.3 1.4-23.8-8.7-46.3-27.2-61zM32 224c0 59.6 40.9 109.2 96 123.5V400h64v-48h192v48h64v-48c53 0 96-43 96-96v-96c17.7 0 32-14.3 32-32s-14.3-32-32-32h-96v64c0 35.3-28.7 64-64 64h-20.7c-65.8 0-125.9-37.2-155.3-96-29.4-58.8-89.6-96-155.3-96H32C14.3 32 0 46.3 0 64s14.3 32 32 32v128z\"]\n};\nvar faSlidersH = {\n prefix: 'fas',\n iconName: 'sliders-h',\n icon: [512, 512, [], \"f1de\", \"M496 384H160v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h80v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h336c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160h-80v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h336v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h80c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160H288V48c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h208v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16z\"]\n};\nvar faSmile = {\n prefix: 'fas',\n iconName: 'smile',\n icon: [496, 512, [], \"f118\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm194.8 170.2C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.6-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.4-16.2 38.1 4.2 24.6 20.5z\"]\n};\nvar faSmileBeam = {\n prefix: 'fas',\n iconName: 'smile-beam',\n icon: [496, 512, [], \"f5b8\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM112 223.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zm250.8 122.8C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.3 24.6 20.5zm6.2-118.3l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.6 8.6-11 11.9-15.1 4.5z\"]\n};\nvar faSmileWink = {\n prefix: 'fas',\n iconName: 'smile-wink',\n icon: [496, 512, [], \"f4da\", \"M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm158.5 16.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.7 11.1-11.4 18.3-19.8 10.8l-9.7-8.5zM157.8 325.8C180.2 352.7 213 368 248 368s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.2 24.6 20.5C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11.2-36.7 24.6-20.4z\"]\n};\nvar faSmog = {\n prefix: 'fas',\n iconName: 'smog',\n icon: [640, 512, [], \"f75f\", \"M624 368H80c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zm-480 96H16c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h128c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zm416 0H224c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h336c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zM144 288h156.1c22.5 19.7 51.6 32 83.9 32s61.3-12.3 83.9-32H528c61.9 0 112-50.1 112-112S589.9 64 528 64c-18 0-34.7 4.6-49.7 12.1C454 31 406.8 0 352 0c-41 0-77.8 17.3-104 44.8C221.8 17.3 185 0 144 0 64.5 0 0 64.5 0 144s64.5 144 144 144z\"]\n};\nvar faSmoking = {\n prefix: 'fas',\n iconName: 'smoking',\n icon: [640, 512, [], \"f48d\", \"M632 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zM553.3 87.1c-5.7-3.8-9.3-10-9.3-16.8V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v62.3c0 22 10.2 43.4 28.6 55.4 42.2 27.3 67.4 73.8 67.4 124V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-65.5-32.4-126.2-86.7-162.6zM432 352H48c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h384c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zm-32 112H224v-64h176v64zm87.7-322.4C463.8 125 448 99.3 448 70.3V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v66.4c0 43.7 24.6 81.6 60.3 106.7 22.4 15.7 35.7 41.2 35.7 68.6V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-43.3-21-83.4-56.3-108.1zM536 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8z\"]\n};\nvar faSmokingBan = {\n prefix: 'fas',\n iconName: 'smoking-ban',\n icon: [512, 512, [], \"f54d\", \"M96 304c0 8.8 7.2 16 16 16h117.5l-96-96H112c-8.8 0-16 7.2-16 16v64zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 448c-105.9 0-192-86.1-192-192 0-41.4 13.3-79.7 35.7-111.1l267.4 267.4C335.7 434.7 297.4 448 256 448zm45.2-192H384v32h-50.8l-32-32zm111.1 111.1L365.2 320H400c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16H269.2L144.9 99.7C176.3 77.3 214.6 64 256 64c105.9 0 192 86.1 192 192 0 41.4-13.3 79.7-35.7 111.1zM320.6 128c-15.6 0-28.6-11.2-31.4-25.9-.7-3.6-4-6.1-7.7-6.1h-16.2c-5 0-8.7 4.5-8 9.4 4.6 30.9 31.2 54.6 63.3 54.6 15.6 0 28.6 11.2 31.4 25.9.7 3.6 4 6.1 7.7 6.1h16.2c5 0 8.7-4.5 8-9.4-4.6-30.9-31.2-54.6-63.3-54.6z\"]\n};\nvar faSms = {\n prefix: 'fas',\n iconName: 'sms',\n icon: [512, 512, [], \"f7cd\", \"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7 1.3 3 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128.2 304H116c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h12.3c6 0 10.4-3.5 10.4-6.6 0-1.3-.8-2.7-2.1-3.8l-21.9-18.8c-8.5-7.2-13.3-17.5-13.3-28.1 0-21.3 19-38.6 42.4-38.6H156c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8h-12.3c-6 0-10.4 3.5-10.4 6.6 0 1.3.8 2.7 2.1 3.8l21.9 18.8c8.5 7.2 13.3 17.5 13.3 28.1.1 21.3-19 38.6-42.4 38.6zm191.8-8c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-68.2l-24.8 55.8c-2.9 5.9-11.4 5.9-14.3 0L224 227.8V296c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V192c0-8.8 7.2-16 16-16h16c6.1 0 11.6 3.4 14.3 8.8l17.7 35.4 17.7-35.4c2.7-5.4 8.3-8.8 14.3-8.8h16c8.8 0 16 7.2 16 16v104zm48.3 8H356c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h12.3c6 0 10.4-3.5 10.4-6.6 0-1.3-.8-2.7-2.1-3.8l-21.9-18.8c-8.5-7.2-13.3-17.5-13.3-28.1 0-21.3 19-38.6 42.4-38.6H396c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8h-12.3c-6 0-10.4 3.5-10.4 6.6 0 1.3.8 2.7 2.1 3.8l21.9 18.8c8.5 7.2 13.3 17.5 13.3 28.1.1 21.3-18.9 38.6-42.3 38.6z\"]\n};\nvar faSnowboarding = {\n prefix: 'fas',\n iconName: 'snowboarding',\n icon: [512, 512, [], \"f7ce\", \"M432 96c26.5 0 48-21.5 48-48S458.5 0 432 0s-48 21.5-48 48 21.5 48 48 48zm28.8 153.6c5.8 4.3 12.5 6.4 19.2 6.4 9.7 0 19.3-4.4 25.6-12.8 10.6-14.1 7.8-34.2-6.4-44.8l-111.4-83.5c-13.8-10.3-29.1-18.4-45.4-23.8l-63.7-21.2-26.1-52.1C244.7 2 225.5-4.4 209.7 3.5c-15.8 7.9-22.2 27.1-14.3 42.9l29.1 58.1c5.7 11.4 15.6 19.9 27.7 24l16.4 5.5-41.2 20.6c-21.8 10.9-35.4 32.8-35.4 57.2v53.1l-74.1 24.7c-16.8 5.6-25.8 23.7-20.2 40.5 1.7 5.2 4.9 9.4 8.7 12.9l-38.7-14.1c-9.7-3.5-17.4-10.6-21.8-20-5.6-12-19.9-17.2-31.9-11.6s-17.2 19.9-11.6 31.9c9.8 21 27.1 36.9 48.9 44.8l364.8 132.7c9.7 3.5 19.7 5.3 29.7 5.3 12.5 0 24.9-2.7 36.5-8.2 12-5.6 17.2-19.9 11.6-31.9S474 454.7 462 460.3c-9.3 4.4-19.8 4.8-29.5 1.3l-90.8-33.1c8.7-4.1 15.6-11.8 17.8-21.9l21.9-102c3.9-18.2-3.2-37.2-18.1-48.4l-52-39 66-30.5 83.5 62.9zm-144.4 51.7l-19.7 92c-1.5 7.1-.1 13.9 2.8 20l-169.4-61.6c2.7-.2 5.4-.4 8-1.3l85-28.4c19.6-6.5 32.8-24.8 32.8-45.5V256l60.5 45.3z\"]\n};\nvar faSnowflake = {\n prefix: 'fas',\n iconName: 'snowflake',\n icon: [448, 512, [], \"f2dc\", \"M440.3 345.2l-33.8-19.5 26-7c8.2-2.2 13.1-10.7 10.9-18.9l-4-14.9c-2.2-8.2-10.7-13.1-18.9-10.9l-70.8 19-63.9-37 63.8-36.9 70.8 19c8.2 2.2 16.7-2.7 18.9-10.9l4-14.9c2.2-8.2-2.7-16.7-10.9-18.9l-26-7 33.8-19.5c7.4-4.3 9.9-13.7 5.7-21.1L430.4 119c-4.3-7.4-13.7-9.9-21.1-5.7l-33.8 19.5 7-26c2.2-8.2-2.7-16.7-10.9-18.9l-14.9-4c-8.2-2.2-16.7 2.7-18.9 10.9l-19 70.8-62.8 36.2v-77.5l53.7-53.7c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0L256 56.4V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v40.4l-19.7-19.7c-6.2-6.2-16.4-6.2-22.6 0L138.3 48c-6.3 6.2-6.3 16.4 0 22.6l53.7 53.7v77.5l-62.8-36.2-19-70.8c-2.2-8.2-10.7-13.1-18.9-10.9l-14.9 4c-8.2 2.2-13.1 10.7-10.9 18.9l7 26-33.8-19.5c-7.4-4.3-16.8-1.7-21.1 5.7L2.1 145.7c-4.3 7.4-1.7 16.8 5.7 21.1l33.8 19.5-26 7c-8.3 2.2-13.2 10.7-11 19l4 14.9c2.2 8.2 10.7 13.1 18.9 10.9l70.8-19 63.8 36.9-63.8 36.9-70.8-19c-8.2-2.2-16.7 2.7-18.9 10.9l-4 14.9c-2.2 8.2 2.7 16.7 10.9 18.9l26 7-33.8 19.6c-7.4 4.3-9.9 13.7-5.7 21.1l15.5 26.8c4.3 7.4 13.7 9.9 21.1 5.7l33.8-19.5-7 26c-2.2 8.2 2.7 16.7 10.9 18.9l14.9 4c8.2 2.2 16.7-2.7 18.9-10.9l19-70.8 62.8-36.2v77.5l-53.7 53.7c-6.3 6.2-6.3 16.4 0 22.6l11.3 11.3c6.2 6.2 16.4 6.2 22.6 0l19.7-19.7V496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-40.4l19.7 19.7c6.2 6.2 16.4 6.2 22.6 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6L256 387.7v-77.5l62.8 36.2 19 70.8c2.2 8.2 10.7 13.1 18.9 10.9l14.9-4c8.2-2.2 13.1-10.7 10.9-18.9l-7-26 33.8 19.5c7.4 4.3 16.8 1.7 21.1-5.7l15.5-26.8c4.3-7.3 1.8-16.8-5.6-21z\"]\n};\nvar faSnowman = {\n prefix: 'fas',\n iconName: 'snowman',\n icon: [512, 512, [], \"f7d0\", \"M510.9 152.3l-5.9-14.5c-3.3-8-12.6-11.9-20.8-8.7L456 140.6v-29c0-8.6-7.2-15.6-16-15.6h-16c-8.8 0-16 7-16 15.6v46.9c0 .5.3 1 .3 1.5l-56.4 23c-5.9-10-13.3-18.9-22-26.6 13.6-16.6 22-37.4 22-60.5 0-53-43-96-96-96s-96 43-96 96c0 23.1 8.5 43.9 22 60.5-8.7 7.7-16 16.6-22 26.6l-56.4-23c.1-.5.3-1 .3-1.5v-46.9C104 103 96.8 96 88 96H72c-8.8 0-16 7-16 15.6v29l-28.1-11.5c-8.2-3.2-17.5.7-20.8 8.7l-5.9 14.5c-3.3 8 .7 17.1 8.9 20.3l135.2 55.2c-.4 4-1.2 8-1.2 12.2 0 10.1 1.7 19.6 4.2 28.9C120.9 296.4 104 334.2 104 376c0 54 28.4 100.9 70.8 127.8 9.3 5.9 20.3 8.2 31.3 8.2h99.2c13.3 0 26.3-4.1 37.2-11.7 46.5-32.3 74.4-89.4 62.9-152.6-5.5-30.2-20.5-57.6-41.6-79 2.5-9.2 4.2-18.7 4.2-28.7 0-4.2-.8-8.1-1.2-12.2L502 172.6c8.1-3.1 12.1-12.2 8.9-20.3zM224 96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 272c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-88s-16-23.2-16-32 7.2-16 16-16 16 7.2 16 16-16 32-16 32zm32-56c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"]\n};\nvar faSnowplow = {\n prefix: 'fas',\n iconName: 'snowplow',\n icon: [640, 512, [], \"f7d2\", \"M120 376c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm238.6 49.4c-14.5-14.5-22.6-34.1-22.6-54.6V269.2c0-20.5 8.1-40.1 22.6-54.6l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6l-22.6-22.6c-6.2-6.2-16.4-6.2-22.6 0l-36.7 36.7c-26.5 26.5-41.4 62.4-41.4 99.9V288h-64v-50.9c0-8.7-1.8-17.2-5.2-25.2L364.5 29.1C356.9 11.4 339.6 0 320.3 0H176c-26.5 0-48 21.5-48 48v112h-16c-26.5 0-48 21.5-48 48v91.2C26.3 317.2 0 355.4 0 400c0 61.9 50.1 112 112 112h256c61.9 0 112-50.1 112-112 0-17.3-4.2-33.4-11.2-48H512v18.7c0 37.5 14.9 73.4 41.4 99.9l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0l22.6-22.6c6.2-6.2 6.2-16.4 0-22.6l-36.7-36.7zM192 64h117.8l68.6 160H256l-64-64V64zm176 384H112c-26.5 0-48-21.5-48-48s21.5-48 48-48h256c26.5 0 48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faSoap = {\n prefix: 'fas',\n iconName: 'soap',\n icon: [512, 512, [], \"e06e\", \"M416,192a95.42,95.42,0,0,1-30.94,70.21A95.8,95.8,0,0,1,352,448H160a96,96,0,0,1,0-192h88.91A95.3,95.3,0,0,1,224,192H96A96,96,0,0,0,0,288V416a96,96,0,0,0,96,96H416a96,96,0,0,0,96-96V288A96,96,0,0,0,416,192Zm-96,64a64,64,0,1,0-64-64A64,64,0,0,0,320,256ZM208,96a48,48,0,1,0-48-48A48,48,0,0,0,208,96ZM384,64a32,32,0,1,0-32-32A32,32,0,0,0,384,64ZM160,288a64,64,0,0,0,0,128H352a64,64,0,0,0,0-128Z\"]\n};\nvar faSocks = {\n prefix: 'fas',\n iconName: 'socks',\n icon: [512, 512, [], \"f696\", \"M214.66 311.01L288 256V96H128v176l-86.65 64.61c-39.4 29.56-53.86 84.42-29.21 127.06C30.39 495.25 63.27 512 96.08 512c20.03 0 40.25-6.25 57.52-19.2l21.86-16.39c-29.85-55.38-13.54-125.84 39.2-165.4zM288 32c0-11.05 3.07-21.3 8.02-30.38C293.4.92 290.85 0 288 0H160c-17.67 0-32 14.33-32 32v32h160V32zM480 0H352c-17.67 0-32 14.33-32 32v32h192V32c0-17.67-14.33-32-32-32zM320 272l-86.13 64.61c-39.4 29.56-53.86 84.42-29.21 127.06 18.25 31.58 50.61 48.33 83.42 48.33 20.03 0 40.25-6.25 57.52-19.2l115.2-86.4A127.997 127.997 0 0 0 512 304V96H320v176z\"]\n};\nvar faSolarPanel = {\n prefix: 'fas',\n iconName: 'solar-panel',\n icon: [640, 512, [], \"f5ba\", \"M431.98 448.01l-47.97.05V416h-128v32.21l-47.98.05c-8.82.01-15.97 7.16-15.98 15.99l-.05 31.73c-.01 8.85 7.17 16.03 16.02 16.02l223.96-.26c8.82-.01 15.97-7.16 15.98-15.98l.04-31.73c.01-8.85-7.17-16.03-16.02-16.02zM585.2 26.74C582.58 11.31 568.99 0 553.06 0H86.93C71 0 57.41 11.31 54.79 26.74-3.32 369.16.04 348.08.03 352c-.03 17.32 14.29 32 32.6 32h574.74c18.23 0 32.51-14.56 32.59-31.79.02-4.08 3.35 16.95-54.76-325.47zM259.83 64h120.33l9.77 96H250.06l9.77-96zm-75.17 256H71.09L90.1 208h105.97l-11.41 112zm16.29-160H98.24l16.29-96h96.19l-9.77 96zm32.82 160l11.4-112h149.65l11.4 112H233.77zm195.5-256h96.19l16.29 96H439.04l-9.77-96zm26.06 256l-11.4-112H549.9l19.01 112H455.33z\"]\n};\nvar faSort = {\n prefix: 'fas',\n iconName: 'sort',\n icon: [320, 512, [], \"f0dc\", \"M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41zm255-105L177 64c-9.4-9.4-24.6-9.4-33.9 0L24 183c-15.1 15.1-4.4 41 17 41h238c21.4 0 32.1-25.9 17-41z\"]\n};\nvar faSortAlphaDown = {\n prefix: 'fas',\n iconName: 'sort-alpha-down',\n icon: [448, 512, [], \"f15d\", \"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm240-64H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 446.37V464a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 321.63V304a16 16 0 0 0-16-16zm31.06-85.38l-59.27-160A16 16 0 0 0 372.72 32h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 224h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 224H432a16 16 0 0 0 15.06-21.38zM335.61 144L352 96l16.39 48z\"]\n};\nvar faSortAlphaDownAlt = {\n prefix: 'fas',\n iconName: 'sort-alpha-down-alt',\n icon: [448, 512, [], \"f881\", \"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm112-128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 65.63V48a16 16 0 0 0-16-16H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 190.37V208a16 16 0 0 0 16 16zm159.06 234.62l-59.27-160A16 16 0 0 0 372.72 288h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 480h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 480H432a16 16 0 0 0 15.06-21.38zM335.61 400L352 352l16.39 48z\"]\n};\nvar faSortAlphaUp = {\n prefix: 'fas',\n iconName: 'sort-alpha-up',\n icon: [448, 512, [], \"f15e\", \"M16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160zm400 128H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 446.37V464a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 321.63V304a16 16 0 0 0-16-16zm31.06-85.38l-59.27-160A16 16 0 0 0 372.72 32h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 224h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 224H432a16 16 0 0 0 15.06-21.38zM335.61 144L352 96l16.39 48z\"]\n};\nvar faSortAlphaUpAlt = {\n prefix: 'fas',\n iconName: 'sort-alpha-up-alt',\n icon: [448, 512, [], \"f882\", \"M16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160zm272 64h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 65.63V48a16 16 0 0 0-16-16H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 190.37V208a16 16 0 0 0 16 16zm159.06 234.62l-59.27-160A16 16 0 0 0 372.72 288h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 480h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 480H432a16 16 0 0 0 15.06-21.38zM335.61 400L352 352l16.39 48z\"]\n};\nvar faSortAmountDown = {\n prefix: 'fas',\n iconName: 'sort-amount-down',\n icon: [512, 512, [], \"f160\", \"M304 416h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-128-64h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.37 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm256-192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-64 128H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM496 32H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faSortAmountDownAlt = {\n prefix: 'fas',\n iconName: 'sort-amount-down-alt',\n icon: [512, 512, [], \"f884\", \"M240 96h64a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0 128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm256 192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-256-64h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm-64 0h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.37 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z\"]\n};\nvar faSortAmountUp = {\n prefix: 'fas',\n iconName: 'sort-amount-up',\n icon: [512, 512, [], \"f161\", \"M304 416h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.77 160 16 160zm416 0H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-64 128H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM496 32H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faSortAmountUpAlt = {\n prefix: 'fas',\n iconName: 'sort-amount-up-alt',\n icon: [512, 512, [], \"f885\", \"M240 96h64a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0 128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm256 192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-256-64h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zM16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.39-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160z\"]\n};\nvar faSortDown = {\n prefix: 'fas',\n iconName: 'sort-down',\n icon: [320, 512, [], \"f0dd\", \"M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41z\"]\n};\nvar faSortNumericDown = {\n prefix: 'fas',\n iconName: 'sort-numeric-down',\n icon: [448, 512, [], \"f162\", \"M304 96h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-16V48a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 96zm26.15 162.91a79 79 0 0 0-55 54.17c-14.25 51.05 21.21 97.77 68.85 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.76 86.25-61.61 86.25-132V336c-.02-51.21-48.4-91.34-101.85-77.09zM352 356a20 20 0 1 1 20-20 20 20 0 0 1-20 20zm-176-4h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z\"]\n};\nvar faSortNumericDownAlt = {\n prefix: 'fas',\n iconName: 'sort-numeric-down-alt',\n icon: [448, 512, [], \"f886\", \"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm224 64h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 352h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM330.17 34.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.77 86.25-61.61 86.25-132V112c-.02-51.21-48.4-91.34-101.85-77.09zM352 132a20 20 0 1 1 20-20 20 20 0 0 1-20 20z\"]\n};\nvar faSortNumericUp = {\n prefix: 'fas',\n iconName: 'sort-numeric-up',\n icon: [448, 512, [], \"f163\", \"M330.17 258.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.76 86.25-61.61 86.25-132V336c-.02-51.21-48.4-91.34-101.85-77.09zM352 356a20 20 0 1 1 20-20 20 20 0 0 1-20 20zM304 96h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-16V48a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 96zM107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31z\"]\n};\nvar faSortNumericUpAlt = {\n prefix: 'fas',\n iconName: 'sort-numeric-up-alt',\n icon: [448, 512, [], \"f887\", \"M107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31zM400 416h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 352h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM330.17 34.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.77 86.25-61.61 86.25-132V112c-.02-51.21-48.4-91.34-101.85-77.09zM352 132a20 20 0 1 1 20-20 20 20 0 0 1-20 20z\"]\n};\nvar faSortUp = {\n prefix: 'fas',\n iconName: 'sort-up',\n icon: [320, 512, [], \"f0de\", \"M279 224H41c-21.4 0-32.1-25.9-17-41L143 64c9.4-9.4 24.6-9.4 33.9 0l119 119c15.2 15.1 4.5 41-16.9 41z\"]\n};\nvar faSpa = {\n prefix: 'fas',\n iconName: 'spa',\n icon: [576, 512, [], \"f5bb\", \"M568.25 192c-29.04.13-135.01 6.16-213.84 83-33.12 29.63-53.36 63.3-66.41 94.86-13.05-31.56-33.29-65.23-66.41-94.86-78.83-76.84-184.8-82.87-213.84-83-4.41-.02-7.79 3.4-7.75 7.82.23 27.92 7.14 126.14 88.77 199.3C172.79 480.94 256 480 288 480s115.19.95 199.23-80.88c81.64-73.17 88.54-171.38 88.77-199.3.04-4.42-3.34-7.84-7.75-7.82zM287.98 302.6c12.82-18.85 27.6-35.78 44.09-50.52 19.09-18.61 39.58-33.3 60.26-45.18-16.44-70.5-51.72-133.05-96.73-172.22-4.11-3.58-11.02-3.58-15.14 0-44.99 39.14-80.27 101.63-96.74 172.07 20.37 11.7 40.5 26.14 59.22 44.39a282.768 282.768 0 0 1 45.04 51.46z\"]\n};\nvar faSpaceShuttle = {\n prefix: 'fas',\n iconName: 'space-shuttle',\n icon: [640, 512, [], \"f197\", \"M592.604 208.244C559.735 192.836 515.777 184 472 184H186.327c-4.952-6.555-10.585-11.978-16.72-16H376C229.157 137.747 219.403 32 96.003 32H96v128H80V32c-26.51 0-48 28.654-48 64v64c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v16c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v64c0 35.346 21.49 64 48 64V352h16v128h.003c123.4 0 133.154-105.747 279.997-136H169.606c6.135-4.022 11.768-9.445 16.72-16H472c43.777 0 87.735-8.836 120.604-24.244C622.282 289.845 640 271.992 640 256s-17.718-33.845-47.396-47.756zM488 296a8 8 0 0 1-8-8v-64a8 8 0 0 1 8-8c31.909 0 31.942 80 0 80z\"]\n};\nvar faSpellCheck = {\n prefix: 'fas',\n iconName: 'spell-check',\n icon: [576, 512, [], \"f891\", \"M272 256h91.36c43.2 0 82-32.2 84.51-75.34a79.82 79.82 0 0 0-25.26-63.07 79.81 79.81 0 0 0 9.06-44.91C427.9 30.57 389.3 0 347 0h-75a16 16 0 0 0-16 16v224a16 16 0 0 0 16 16zm40-200h40a24 24 0 0 1 0 48h-40zm0 96h56a24 24 0 0 1 0 48h-56zM155.12 22.25A32 32 0 0 0 124.64 0H99.36a32 32 0 0 0-30.48 22.25L.59 235.73A16 16 0 0 0 16 256h24.93a16 16 0 0 0 15.42-11.73L68.29 208h87.42l11.94 36.27A16 16 0 0 0 183.07 256H208a16 16 0 0 0 15.42-20.27zM89.37 144L112 75.3l22.63 68.7zm482 132.48l-45.21-45.3a15.88 15.88 0 0 0-22.59 0l-151.5 151.5-55.41-55.5a15.88 15.88 0 0 0-22.59 0l-45.3 45.3a16 16 0 0 0 0 22.59l112 112.21a15.89 15.89 0 0 0 22.6 0l208-208.21a16 16 0 0 0-.02-22.59z\"]\n};\nvar faSpider = {\n prefix: 'fas',\n iconName: 'spider',\n icon: [576, 512, [], \"f717\", \"M151.17 167.35L177.1 176h4.67l5.22-26.12c.72-3.58 1.8-7.58 3.21-11.79l-20.29-40.58 23.8-71.39c2.79-8.38-1.73-17.44-10.12-20.24L168.42.82c-8.38-2.8-17.45 1.73-20.24 10.12l-25.89 77.68a32.04 32.04 0 0 0 1.73 24.43l27.15 54.3zm422.14 182.03l-52.75-79.12a32.002 32.002 0 0 0-26.62-14.25H416l68.99-24.36a32.03 32.03 0 0 0 16.51-12.61l53.6-80.41c4.9-7.35 2.91-17.29-4.44-22.19l-13.31-8.88c-7.35-4.9-17.29-2.91-22.19 4.44l-50.56 75.83L404.1 208H368l-10.37-51.85C355.44 145.18 340.26 96 288 96c-52.26 0-67.44 49.18-69.63 60.15L208 208h-36.1l-60.49-20.17L60.84 112c-4.9-7.35-14.83-9.34-22.19-4.44l-13.31 8.88c-7.35 4.9-9.34 14.83-4.44 22.19l53.6 80.41a32.03 32.03 0 0 0 16.51 12.61L160 256H82.06a32.02 32.02 0 0 0-26.63 14.25L2.69 349.38c-4.9 7.35-2.92 17.29 4.44 22.19l13.31 8.88c7.35 4.9 17.29 2.91 22.19-4.44l48-72h47.06l-60.83 97.33A31.988 31.988 0 0 0 72 418.3V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-73.11l74.08-118.53c-1.01 14.05-2.08 28.11-2.08 42.21C192 399.64 232.76 448 288 448s96-48.36 96-101.43c0-14.1-1.08-28.16-2.08-42.21L456 422.89V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-77.71c0-6-1.69-11.88-4.86-16.96L438.31 304h47.06l48 72c4.9 7.35 14.84 9.34 22.19 4.44l13.31-8.88c7.36-4.9 9.34-14.83 4.44-22.18zM406.09 97.51l-20.29 40.58c1.41 4.21 2.49 8.21 3.21 11.79l5.22 26.12h4.67l25.93-8.65 27.15-54.3a31.995 31.995 0 0 0 1.73-24.43l-25.89-77.68C425.03 2.56 415.96-1.98 407.58.82l-15.17 5.06c-8.38 2.8-12.91 11.86-10.12 20.24l23.8 71.39z\"]\n};\nvar faSpinner = {\n prefix: 'fas',\n iconName: 'spinner',\n icon: [512, 512, [], \"f110\", \"M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z\"]\n};\nvar faSplotch = {\n prefix: 'fas',\n iconName: 'splotch',\n icon: [512, 512, [], \"f5bc\", \"M472.29 195.89l-67.06-22.95c-19.28-6.6-33.54-20.92-38.14-38.3L351.1 74.19c-11.58-43.77-76.57-57.13-109.98-22.62l-46.14 47.67c-13.26 13.71-33.54 20.93-54.2 19.31l-71.88-5.62c-52.05-4.07-86.93 44.88-59.03 82.83l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24L24.62 355.4c-20.59 41.25 22.84 84.87 73.49 73.81l69.96-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101.04 7.57 104.45-37.22l4.7-61.86c1.35-17.79 12.8-33.86 30.63-42.99l62-31.74c44.88-22.96 39.59-80.17-8.95-96.79z\"]\n};\nvar faSprayCan = {\n prefix: 'fas',\n iconName: 'spray-can',\n icon: [512, 512, [], \"f5bd\", \"M224 32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96h128V32zm256 96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-256 32H96c-53.02 0-96 42.98-96 96v224c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V256c0-53.02-42.98-96-96-96zm-64 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zM480 96c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm-96 32c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-96-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 0c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 192c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\"]\n};\nvar faSquare = {\n prefix: 'fas',\n iconName: 'square',\n icon: [448, 512, [], \"f0c8\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z\"]\n};\nvar faSquareFull = {\n prefix: 'fas',\n iconName: 'square-full',\n icon: [512, 512, [], \"f45c\", \"M512 512H0V0h512v512z\"]\n};\nvar faSquareRootAlt = {\n prefix: 'fas',\n iconName: 'square-root-alt',\n icon: [576, 512, [], \"f698\", \"M571.31 251.31l-22.62-22.62c-6.25-6.25-16.38-6.25-22.63 0L480 274.75l-46.06-46.06c-6.25-6.25-16.38-6.25-22.63 0l-22.62 22.62c-6.25 6.25-6.25 16.38 0 22.63L434.75 320l-46.06 46.06c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L480 365.25l46.06 46.06c6.25 6.25 16.38 6.25 22.63 0l22.62-22.62c6.25-6.25 6.25-16.38 0-22.63L525.25 320l46.06-46.06c6.25-6.25 6.25-16.38 0-22.63zM552 0H307.65c-14.54 0-27.26 9.8-30.95 23.87l-84.79 322.8-58.41-106.1A32.008 32.008 0 0 0 105.47 224H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h43.62l88.88 163.73C168.99 503.5 186.3 512 204.94 512c17.27 0 44.44-9 54.28-41.48L357.03 96H552c13.25 0 24-10.75 24-24V24c0-13.26-10.75-24-24-24z\"]\n};\nvar faStamp = {\n prefix: 'fas',\n iconName: 'stamp',\n icon: [512, 512, [], \"f5bf\", \"M32 512h448v-64H32v64zm384-256h-66.56c-16.26 0-29.44-13.18-29.44-29.44v-9.46c0-27.37 8.88-53.41 21.46-77.72 9.11-17.61 12.9-38.39 9.05-60.42-6.77-38.78-38.47-70.7-77.26-77.45C212.62-9.04 160 37.33 160 96c0 14.16 3.12 27.54 8.69 39.58C182.02 164.43 192 194.7 192 226.49v.07c0 16.26-13.18 29.44-29.44 29.44H96c-53.02 0-96 42.98-96 96v32c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-32c0-53.02-42.98-96-96-96z\"]\n};\nvar faStar = {\n prefix: 'fas',\n iconName: 'star',\n icon: [576, 512, [], \"f005\", \"M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z\"]\n};\nvar faStarAndCrescent = {\n prefix: 'fas',\n iconName: 'star-and-crescent',\n icon: [512, 512, [], \"f699\", \"M340.47 466.36c-1.45 0-6.89.46-9.18.46-116.25 0-210.82-94.57-210.82-210.82S215.04 45.18 331.29 45.18c2.32 0 7.7.46 9.18.46 7.13 0 13.33-5.03 14.75-12.07 1.46-7.25-2.55-14.49-9.47-17.09C316.58 5.54 286.39 0 256 0 114.84 0 0 114.84 0 256s114.84 256 256 256c30.23 0 60.28-5.49 89.32-16.32 5.96-2.02 10.28-7.64 10.28-14.26 0-8.09-6.39-15.06-15.13-15.06zm162.99-252.5l-76.38-11.1-34.16-69.21c-1.83-3.7-5.38-5.55-8.93-5.55s-7.1 1.85-8.93 5.55l-34.16 69.21-76.38 11.1c-8.17 1.18-11.43 11.22-5.52 16.99l55.27 53.87-13.05 76.07c-1.11 6.44 4.01 11.66 9.81 11.66 1.53 0 3.11-.36 4.64-1.17L384 335.37l68.31 35.91c1.53.8 3.11 1.17 4.64 1.17 5.8 0 10.92-5.23 9.81-11.66l-13.05-76.07 55.27-53.87c5.91-5.77 2.65-15.81-5.52-16.99z\"]\n};\nvar faStarHalf = {\n prefix: 'fas',\n iconName: 'star-half',\n icon: [576, 512, [], \"f089\", \"M288 0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6V0z\"]\n};\nvar faStarHalfAlt = {\n prefix: 'fas',\n iconName: 'star-half-alt',\n icon: [536, 512, [], \"f5c0\", \"M508.55 171.51L362.18 150.2 296.77 17.81C290.89 5.98 279.42 0 267.95 0c-11.4 0-22.79 5.9-28.69 17.81l-65.43 132.38-146.38 21.29c-26.25 3.8-36.77 36.09-17.74 54.59l105.89 103-25.06 145.48C86.98 495.33 103.57 512 122.15 512c4.93 0 10-1.17 14.87-3.75l130.95-68.68 130.94 68.7c4.86 2.55 9.92 3.71 14.83 3.71 18.6 0 35.22-16.61 31.66-37.4l-25.03-145.49 105.91-102.98c19.04-18.5 8.52-50.8-17.73-54.6zm-121.74 123.2l-18.12 17.62 4.28 24.88 19.52 113.45-102.13-53.59-22.38-11.74.03-317.19 51.03 103.29 11.18 22.63 25.01 3.64 114.23 16.63-82.65 80.38z\"]\n};\nvar faStarOfDavid = {\n prefix: 'fas',\n iconName: 'star-of-david',\n icon: [464, 512, [], \"f69a\", \"M405.68 256l53.21-89.39C473.3 142.4 455.48 112 426.88 112H319.96l-55.95-93.98C256.86 6.01 244.43 0 232 0s-24.86 6.01-32.01 18.02L144.04 112H37.11c-28.6 0-46.42 30.4-32.01 54.61L58.32 256 5.1 345.39C-9.31 369.6 8.51 400 37.11 400h106.93l55.95 93.98C207.14 505.99 219.57 512 232 512s24.86-6.01 32.01-18.02L319.96 400h106.93c28.6 0 46.42-30.4 32.01-54.61L405.68 256zm-12.78-88l-19.8 33.26L353.3 168h39.6zm-52.39 88l-52.39 88H175.88l-52.39-88 52.38-88h112.25l52.39 88zM232 73.72L254.79 112h-45.57L232 73.72zM71.1 168h39.6l-19.8 33.26L71.1 168zm0 176l19.8-33.26L110.7 344H71.1zM232 438.28L209.21 400h45.57L232 438.28zM353.29 344l19.8-33.26L392.9 344h-39.61z\"]\n};\nvar faStarOfLife = {\n prefix: 'fas',\n iconName: 'star-of-life',\n icon: [480, 512, [], \"f621\", \"M471.99 334.43L336.06 256l135.93-78.43c7.66-4.42 10.28-14.2 5.86-21.86l-32.02-55.43c-4.42-7.65-14.21-10.28-21.87-5.86l-135.93 78.43V16c0-8.84-7.17-16-16.01-16h-64.04c-8.84 0-16.01 7.16-16.01 16v156.86L56.04 94.43c-7.66-4.42-17.45-1.79-21.87 5.86L2.15 155.71c-4.42 7.65-1.8 17.44 5.86 21.86L143.94 256 8.01 334.43c-7.66 4.42-10.28 14.21-5.86 21.86l32.02 55.43c4.42 7.65 14.21 10.27 21.87 5.86l135.93-78.43V496c0 8.84 7.17 16 16.01 16h64.04c8.84 0 16.01-7.16 16.01-16V339.14l135.93 78.43c7.66 4.42 17.45 1.8 21.87-5.86l32.02-55.43c4.42-7.65 1.8-17.43-5.86-21.85z\"]\n};\nvar faStepBackward = {\n prefix: 'fas',\n iconName: 'step-backward',\n icon: [448, 512, [], \"f048\", \"M64 468V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v176.4l195.5-181C352.1 22.3 384 36.6 384 64v384c0 27.4-31.9 41.7-52.5 24.6L136 292.7V468c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12z\"]\n};\nvar faStepForward = {\n prefix: 'fas',\n iconName: 'step-forward',\n icon: [448, 512, [], \"f051\", \"M384 44v424c0 6.6-5.4 12-12 12h-48c-6.6 0-12-5.4-12-12V291.6l-195.5 181C95.9 489.7 64 475.4 64 448V64c0-27.4 31.9-41.7 52.5-24.6L312 219.3V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12z\"]\n};\nvar faStethoscope = {\n prefix: 'fas',\n iconName: 'stethoscope',\n icon: [512, 512, [], \"f0f1\", \"M447.1 112c-34.2.5-62.3 28.4-63 62.6-.5 24.3 12.5 45.6 32 56.8V344c0 57.3-50.2 104-112 104-60 0-109.2-44.1-111.9-99.2C265 333.8 320 269.2 320 192V36.6c0-11.4-8.1-21.3-19.3-23.5L237.8.5c-13-2.6-25.6 5.8-28.2 18.8L206.4 35c-2.6 13 5.8 25.6 18.8 28.2l30.7 6.1v121.4c0 52.9-42.2 96.7-95.1 97.2-53.4.5-96.9-42.7-96.9-96V69.4l30.7-6.1c13-2.6 21.4-15.2 18.8-28.2l-3.1-15.7C107.7 6.4 95.1-2 82.1.6L19.3 13C8.1 15.3 0 25.1 0 36.6V192c0 77.3 55.1 142 128.1 156.8C130.7 439.2 208.6 512 304 512c97 0 176-75.4 176-168V231.4c19.1-11.1 32-31.7 32-55.4 0-35.7-29.2-64.5-64.9-64zm.9 80c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"]\n};\nvar faStickyNote = {\n prefix: 'fas',\n iconName: 'sticky-note',\n icon: [448, 512, [], \"f249\", \"M312 320h136V56c0-13.3-10.7-24-24-24H24C10.7 32 0 42.7 0 56v400c0 13.3 10.7 24 24 24h264V344c0-13.2 10.8-24 24-24zm129 55l-98 98c-4.5 4.5-10.6 7-17 7h-6V352h128v6.1c0 6.3-2.5 12.4-7 16.9z\"]\n};\nvar faStop = {\n prefix: 'fas',\n iconName: 'stop',\n icon: [448, 512, [], \"f04d\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z\"]\n};\nvar faStopCircle = {\n prefix: 'fas',\n iconName: 'stop-circle',\n icon: [512, 512, [], \"f28d\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm96 328c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16v160z\"]\n};\nvar faStopwatch = {\n prefix: 'fas',\n iconName: 'stopwatch',\n icon: [448, 512, [], \"f2f2\", \"M432 304c0 114.9-93.1 208-208 208S16 418.9 16 304c0-104 76.3-190.2 176-205.5V64h-28c-6.6 0-12-5.4-12-12V12c0-6.6 5.4-12 12-12h120c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-28v34.5c37.5 5.8 71.7 21.6 99.7 44.6l27.5-27.5c4.7-4.7 12.3-4.7 17 0l28.3 28.3c4.7 4.7 4.7 12.3 0 17l-29.4 29.4-.6.6C419.7 223.3 432 262.2 432 304zm-176 36V188.5c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12V340c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z\"]\n};\nvar faStopwatch20 = {\n prefix: 'fas',\n iconName: 'stopwatch-20',\n icon: [448, 512, [], \"e06f\", \"M398.5,190.91l.59-.61,26.59-26.58a16,16,0,0,0,0-22.63L403,118.41a16,16,0,0,0-22.63,0l-24.68,24.68A206.68,206.68,0,0,0,256,98.5V64h32a16,16,0,0,0,16-16V16A16,16,0,0,0,288,0H160a16.05,16.05,0,0,0-16,16V48a16.05,16.05,0,0,0,16,16h32V98.5A207.92,207.92,0,0,0,16.09,297.57C12.64,411.5,106.76,510.22,220.72,512,337.13,513.77,432,420,432,304A206,206,0,0,0,398.5,190.91ZM204.37,377.55a8.2,8.2,0,0,1,8.32,8.07v22.31a8.2,8.2,0,0,1-8.32,8.07H121.52a16.46,16.46,0,0,1-16.61-17.62c2.78-35.22,14.67-57.41,38.45-91.37,20.42-29.19,27.1-37.32,27.1-62.34,0-16.92-1.79-24.27-12.21-24.27-9.39,0-12.69,7.4-12.69,22.68v5.23a8.2,8.2,0,0,1-8.33,8.07h-24.9a8.2,8.2,0,0,1-8.33-8.07v-4.07c0-27.3,8.48-60.24,56.43-60.24,43,0,55.57,25.85,55.57,61,0,35.58-12.44,51.21-34.35,81.31-11.56,15-24.61,35.57-26.41,51.2ZM344,352.32c0,35.16-12.3,63.68-57.23,63.68C243.19,416,232,386.48,232,352.55V247.22c0-40.73,19.58-63.22,56.2-63.22C325,184,344,206.64,344,245.3ZM287.87,221.73c-9.41,0-13.23,7.5-13.23,20V357.68c0,13.11,3.59,20.59,13.23,20.59s13-8,13-21.27V241.06C300.89,229.79,297.88,221.73,287.87,221.73Z\"]\n};\nvar faStore = {\n prefix: 'fas',\n iconName: 'store',\n icon: [616, 512, [], \"f54e\", \"M602 118.6L537.1 15C531.3 5.7 521 0 510 0H106C95 0 84.7 5.7 78.9 15L14 118.6c-33.5 53.5-3.8 127.9 58.8 136.4 4.5.6 9.1.9 13.7.9 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18.1 20.1 44.3 33.1 73.8 33.1 4.7 0 9.2-.3 13.7-.9 62.8-8.4 92.6-82.8 59-136.4zM529.5 288c-10 0-19.9-1.5-29.5-3.8V384H116v-99.8c-9.6 2.2-19.5 3.8-29.5 3.8-6 0-12.1-.4-18-1.2-5.6-.8-11.1-2.1-16.4-3.6V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32V283.2c-5.4 1.6-10.8 2.9-16.4 3.6-6.1.8-12.1 1.2-18.2 1.2z\"]\n};\nvar faStoreAlt = {\n prefix: 'fas',\n iconName: 'store-alt',\n icon: [640, 512, [], \"f54f\", \"M320 384H128V224H64v256c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V224h-64v160zm314.6-241.8l-85.3-128c-6-8.9-16-14.2-26.7-14.2H117.4c-10.7 0-20.7 5.3-26.6 14.2l-85.3 128c-14.2 21.3 1 49.8 26.6 49.8H608c25.5 0 40.7-28.5 26.6-49.8zM512 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V224h-64v272z\"]\n};\nvar faStoreAltSlash = {\n prefix: 'fas',\n iconName: 'store-alt-slash',\n icon: [640, 512, [], \"e070\", \"M17.89,123.62,5.51,142.2c-14.2,21.3,1,49.8,26.59,49.8h74.26ZM576,413.42V224H512V364L384,265V224H330.92l-41.4-32H608c25.5,0,40.7-28.5,26.59-49.8l-85.29-128A32.18,32.18,0,0,0,522.6,0H117.42A31.87,31.87,0,0,0,90.81,14.2l-10.66,16L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.81l19.64-25.26a16,16,0,0,0-2.81-22.45ZM320,384H128V224H64V480a32,32,0,0,0,32,32H352a32,32,0,0,0,32-32V406.59l-64-49.47Z\"]\n};\nvar faStoreSlash = {\n prefix: 'fas',\n iconName: 'store-slash',\n icon: [640, 512, [], \"e071\", \"M121.51,384V284.2a119.43,119.43,0,0,1-28,3.8,123.46,123.46,0,0,1-17.1-1.2,114.88,114.88,0,0,1-15.58-3.6V480c0,17.7,13.59,32,30.4,32H505.75L348.42,384Zm-28-128.09c25.1,0,47.29-10.72,64-27.24L24,120.05c-30.52,53.39-2.45,126.53,56.49,135A95.68,95.68,0,0,0,93.48,255.91ZM602.13,458.09,547.2,413.41V283.2a93.5,93.5,0,0,1-15.57,3.6,127.31,127.31,0,0,1-17.29,1.2,114.89,114.89,0,0,1-28-3.8v79.68L348.52,251.77a88.06,88.06,0,0,0,25.41,4.14c28.11,0,53-13,70.11-33.11,17.19,20.11,42.08,33.11,70.11,33.11a94.31,94.31,0,0,0,13-.91c59.66-8.41,88-82.8,56.06-136.4L521.55,15A30.1,30.1,0,0,0,495.81,0H112A30.11,30.11,0,0,0,86.27,15L76.88,30.78,43.19,3.38A14.68,14.68,0,0,0,21.86,6.19L3.2,31.45A16.58,16.58,0,0,0,5.87,53.91L564.81,508.63a14.69,14.69,0,0,0,21.33-2.82l18.66-25.26A16.58,16.58,0,0,0,602.13,458.09Z\"]\n};\nvar faStream = {\n prefix: 'fas',\n iconName: 'stream',\n icon: [512, 512, [], \"f550\", \"M16 128h416c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H16C7.16 32 0 39.16 0 48v64c0 8.84 7.16 16 16 16zm480 80H80c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm-64 176H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16z\"]\n};\nvar faStreetView = {\n prefix: 'fas',\n iconName: 'street-view',\n icon: [512, 512, [], \"f21d\", \"M367.9 329.76c-4.62 5.3-9.78 10.1-15.9 13.65v22.94c66.52 9.34 112 28.05 112 49.65 0 30.93-93.12 56-208 56S48 446.93 48 416c0-21.6 45.48-40.3 112-49.65v-22.94c-6.12-3.55-11.28-8.35-15.9-13.65C58.87 345.34 0 378.05 0 416c0 53.02 114.62 96 256 96s256-42.98 256-96c0-37.95-58.87-70.66-144.1-86.24zM256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-64 192v96c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-96c17.67 0 32-14.33 32-32v-96c0-26.51-21.49-48-48-48h-11.8c-11.07 5.03-23.26 8-36.2 8s-25.13-2.97-36.2-8H208c-26.51 0-48 21.49-48 48v96c0 17.67 14.33 32 32 32z\"]\n};\nvar faStrikethrough = {\n prefix: 'fas',\n iconName: 'strikethrough',\n icon: [512, 512, [], \"f0cc\", \"M496 224H293.9l-87.17-26.83A43.55 43.55 0 0 1 219.55 112h66.79A49.89 49.89 0 0 1 331 139.58a16 16 0 0 0 21.46 7.15l42.94-21.47a16 16 0 0 0 7.16-21.46l-.53-1A128 128 0 0 0 287.51 32h-68a123.68 123.68 0 0 0-123 135.64c2 20.89 10.1 39.83 21.78 56.36H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-180.24 96A43 43 0 0 1 336 356.45 43.59 43.59 0 0 1 292.45 400h-66.79A49.89 49.89 0 0 1 181 372.42a16 16 0 0 0-21.46-7.15l-42.94 21.47a16 16 0 0 0-7.16 21.46l.53 1A128 128 0 0 0 224.49 480h68a123.68 123.68 0 0 0 123-135.64 114.25 114.25 0 0 0-5.34-24.36z\"]\n};\nvar faStroopwafel = {\n prefix: 'fas',\n iconName: 'stroopwafel',\n icon: [512, 512, [], \"f551\", \"M188.12 210.74L142.86 256l45.25 45.25L233.37 256l-45.25-45.26zm113.13-22.62L256 142.86l-45.25 45.25L256 233.37l45.25-45.25zm-90.5 135.76L256 369.14l45.26-45.26L256 278.63l-45.25 45.25zM256 0C114.62 0 0 114.62 0 256s114.62 256 256 256 256-114.62 256-256S397.38 0 256 0zm186.68 295.6l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-28.29-28.29-45.25 45.25 33.94 33.94 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-33.94-33.94-45.26 45.26 28.29 28.29c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0L256 414.39l-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l28.29-28.29-45.25-45.26-33.94 33.94 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 33.94-33.94-45.25-45.25-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0L69.32 295.6c-3.12-3.12-3.12-8.19 0-11.31L97.61 256l-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l28.29 28.29 45.25-45.26-33.94-33.94-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 33.94 33.94 45.26-45.25-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0L256 97.61l28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-28.29 28.29 45.26 45.25 33.94-33.94-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-33.94 33.94 45.25 45.26 28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31L414.39 256l28.29 28.28a8.015 8.015 0 0 1 0 11.32zM278.63 256l45.26 45.25L369.14 256l-45.25-45.26L278.63 256z\"]\n};\nvar faSubscript = {\n prefix: 'fas',\n iconName: 'subscript',\n icon: [512, 512, [], \"f12c\", \"M496 448h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 400 352h16v96h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM336 64h-67a16 16 0 0 0-13.14 6.87l-79.9 115-79.9-115A16 16 0 0 0 83 64H16A16 16 0 0 0 0 80v48a16 16 0 0 0 16 16h33.48l77.81 112-77.81 112H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h67a16 16 0 0 0 13.14-6.87l79.9-115 79.9 115A16 16 0 0 0 269 448h67a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16h-33.48l-77.81-112 77.81-112H336a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16z\"]\n};\nvar faSubway = {\n prefix: 'fas',\n iconName: 'subway',\n icon: [448, 512, [], \"f239\", \"M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zM200 232V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm200 0V120c0-13.255-10.745-24-24-24H272c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm-48 56c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm-256 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z\"]\n};\nvar faSuitcase = {\n prefix: 'fas',\n iconName: 'suitcase',\n icon: [512, 512, [], \"f0f2\", \"M128 480h256V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v400zm64-384h128v32H192V96zm320 80v256c0 26.5-21.5 48-48 48h-48V128h48c26.5 0 48 21.5 48 48zM96 480H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h48v352z\"]\n};\nvar faSuitcaseRolling = {\n prefix: 'fas',\n iconName: 'suitcase-rolling',\n icon: [384, 512, [], \"f5c1\", \"M336 160H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h16v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h128v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h16c26.51 0 48-21.49 48-48V208c0-26.51-21.49-48-48-48zm-16 216c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zM144 48h96v80h48V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v80h48V48z\"]\n};\nvar faSun = {\n prefix: 'fas',\n iconName: 'sun',\n icon: [512, 512, [], \"f185\", \"M256 160c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm246.4 80.5l-94.7-47.3 33.5-100.4c4.5-13.6-8.4-26.5-21.9-21.9l-100.4 33.5-47.4-94.8c-6.4-12.8-24.6-12.8-31 0l-47.3 94.7L92.7 70.8c-13.6-4.5-26.5 8.4-21.9 21.9l33.5 100.4-94.7 47.4c-12.8 6.4-12.8 24.6 0 31l94.7 47.3-33.5 100.5c-4.5 13.6 8.4 26.5 21.9 21.9l100.4-33.5 47.3 94.7c6.4 12.8 24.6 12.8 31 0l47.3-94.7 100.4 33.5c13.6 4.5 26.5-8.4 21.9-21.9l-33.5-100.4 94.7-47.3c13-6.5 13-24.7.2-31.1zm-155.9 106c-49.9 49.9-131.1 49.9-181 0-49.9-49.9-49.9-131.1 0-181 49.9-49.9 131.1-49.9 181 0 49.9 49.9 49.9 131.1 0 181z\"]\n};\nvar faSuperscript = {\n prefix: 'fas',\n iconName: 'superscript',\n icon: [512, 512, [], \"f12b\", \"M496 160h-16V16a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 400 64h16v96h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM336 64h-67a16 16 0 0 0-13.14 6.87l-79.9 115-79.9-115A16 16 0 0 0 83 64H16A16 16 0 0 0 0 80v48a16 16 0 0 0 16 16h33.48l77.81 112-77.81 112H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h67a16 16 0 0 0 13.14-6.87l79.9-115 79.9 115A16 16 0 0 0 269 448h67a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16h-33.48l-77.81-112 77.81-112H336a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16z\"]\n};\nvar faSurprise = {\n prefix: 'fas',\n iconName: 'surprise',\n icon: [496, 512, [], \"f5c2\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm112 208c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm80-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faSwatchbook = {\n prefix: 'fas',\n iconName: 'swatchbook',\n icon: [512, 512, [], \"f5c3\", \"M434.66,167.71h0L344.5,77.36a31.83,31.83,0,0,0-45-.07h0l-.07.07L224,152.88V424L434.66,212.9A32,32,0,0,0,434.66,167.71ZM480,320H373.09L186.68,506.51c-2.06,2.07-4.5,3.58-6.68,5.49H480a32,32,0,0,0,32-32V352A32,32,0,0,0,480,320ZM192,32A32,32,0,0,0,160,0H32A32,32,0,0,0,0,32V416a96,96,0,0,0,192,0ZM96,440a24,24,0,1,1,24-24A24,24,0,0,1,96,440Zm32-184H64V192h64Zm0-128H64V64h64Z\"]\n};\nvar faSwimmer = {\n prefix: 'fas',\n iconName: 'swimmer',\n icon: [640, 512, [], \"f5c4\", \"M189.61 310.58c3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c16.02-14.77 34.5-22.58 53.46-22.58h16.3c18.96 0 37.45 7.81 53.46 22.58 3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c14.86-13.71 31.88-21.12 49.39-22.16l-112.84-80.6 18-12.86c3.64-2.58 8.28-3.52 12.62-2.61l100.35 21.53c25.91 5.53 51.44-10.97 57-36.88 5.55-25.92-10.95-51.44-36.88-57L437.68 98.47c-30.73-6.58-63.02.12-88.56 18.38l-80.02 57.17c-10.38 7.39-19.36 16.44-26.72 26.94L173.75 299c5.47 3.23 10.82 6.93 15.86 11.58zM624 352h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 343.58 442.04 352 416 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 343.58 250.04 352 224 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 343.58 58.04 352 32 352H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-512-96c44.18 0 80-35.82 80-80s-35.82-80-80-80-80 35.82-80 80 35.82 80 80 80z\"]\n};\nvar faSwimmingPool = {\n prefix: 'fas',\n iconName: 'swimming-pool',\n icon: [640, 512, [], \"f5c5\", \"M624 416h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 407.58 442.04 416 416 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 407.58 250.04 416 224 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 407.58 58.04 416 32 416H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-400-32v-96h192v96c19.12 0 30.86-6.16 34.39-9.42 9.17-8.46 19.2-14.34 29.61-18.07V128c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v96H224v-96c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v228.5c10.41 3.73 20.44 9.62 29.61 18.07 3.53 3.27 15.27 9.43 34.39 9.43z\"]\n};\nvar faSynagogue = {\n prefix: 'fas',\n iconName: 'synagogue',\n icon: [640, 512, [], \"f69b\", \"M70 196.51L6.67 268.29A26.643 26.643 0 0 0 0 285.93V512h128V239.58l-38-43.07c-5.31-6.01-14.69-6.01-20 0zm563.33 71.78L570 196.51c-5.31-6.02-14.69-6.02-20 0l-38 43.07V512h128V285.93c0-6.5-2.37-12.77-6.67-17.64zM339.99 7.01c-11.69-9.35-28.29-9.35-39.98 0l-128 102.4A32.005 32.005 0 0 0 160 134.4V512h96v-92.57c0-31.88 21.78-61.43 53.25-66.55C349.34 346.35 384 377.13 384 416v96h96V134.4c0-9.72-4.42-18.92-12.01-24.99l-128-102.4zm52.07 215.55c1.98 3.15-.29 7.24-4 7.24h-38.94L324 269.79c-1.85 2.95-6.15 2.95-8 0l-25.12-39.98h-38.94c-3.72 0-5.98-4.09-4-7.24l19.2-30.56-19.2-30.56c-1.98-3.15.29-7.24 4-7.24h38.94l25.12-40c1.85-2.95 6.15-2.95 8 0l25.12 39.98h38.95c3.71 0 5.98 4.09 4 7.24L372.87 192l19.19 30.56z\"]\n};\nvar faSync = {\n prefix: 'fas',\n iconName: 'sync',\n icon: [512, 512, [], \"f021\", \"M440.65 12.57l4 82.77A247.16 247.16 0 0 0 255.83 8C134.73 8 33.91 94.92 12.29 209.82A12 12 0 0 0 24.09 224h49.05a12 12 0 0 0 11.67-9.26 175.91 175.91 0 0 1 317-56.94l-101.46-4.86a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12H500a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12h-47.37a12 12 0 0 0-11.98 12.57zM255.83 432a175.61 175.61 0 0 1-146-77.8l101.8 4.87a12 12 0 0 0 12.57-12v-47.4a12 12 0 0 0-12-12H12a12 12 0 0 0-12 12V500a12 12 0 0 0 12 12h47.35a12 12 0 0 0 12-12.6l-4.15-82.57A247.17 247.17 0 0 0 255.83 504c121.11 0 221.93-86.92 243.55-201.82a12 12 0 0 0-11.8-14.18h-49.05a12 12 0 0 0-11.67 9.26A175.86 175.86 0 0 1 255.83 432z\"]\n};\nvar faSyncAlt = {\n prefix: 'fas',\n iconName: 'sync-alt',\n icon: [512, 512, [], \"f2f1\", \"M370.72 133.28C339.458 104.008 298.888 87.962 255.848 88c-77.458.068-144.328 53.178-162.791 126.85-1.344 5.363-6.122 9.15-11.651 9.15H24.103c-7.498 0-13.194-6.807-11.807-14.176C33.933 94.924 134.813 8 256 8c66.448 0 126.791 26.136 171.315 68.685L463.03 40.97C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.749zM32 296h134.059c21.382 0 32.09 25.851 16.971 40.971l-41.75 41.75c31.262 29.273 71.835 45.319 114.876 45.28 77.418-.07 144.315-53.144 162.787-126.849 1.344-5.363 6.122-9.15 11.651-9.15h57.304c7.498 0 13.194 6.807 11.807 14.176C478.067 417.076 377.187 504 256 504c-66.448 0-126.791-26.136-171.315-68.685L48.97 471.03C33.851 486.149 8 475.441 8 454.059V320c0-13.255 10.745-24 24-24z\"]\n};\nvar faSyringe = {\n prefix: 'fas',\n iconName: 'syringe',\n icon: [512, 512, [], \"f48e\", \"M201.5 174.8l55.7 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-55.7-55.8-45.3 45.3 55.8 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L111 265.2l-26.4 26.4c-17.3 17.3-25.6 41.1-23 65.4l7.1 63.6L2.3 487c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.3c3.1 3.1 8.2 3.1 11.3 0l66.3-66.3 63.6 7.1c23.9 2.6 47.9-5.4 65.4-23l181.9-181.9-135.7-135.7-64.9 65zm308.2-93.3L430.5 2.3c-3.1-3.1-8.2-3.1-11.3 0l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l28.3 28.3-45.3 45.3-56.6-56.6-17-17c-3.1-3.1-8.2-3.1-11.3 0l-33.9 33.9c-3.1 3.1-3.1 8.2 0 11.3l17 17L424.8 223l17 17c3.1 3.1 8.2 3.1 11.3 0l33.9-34c3.1-3.1 3.1-8.2 0-11.3l-73.5-73.5 45.3-45.3 28.3 28.3c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.2 3.1-8.2 0-11.4z\"]\n};\nvar faTable = {\n prefix: 'fas',\n iconName: 'table',\n icon: [512, 512, [], \"f0ce\", \"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64v-96h160v96zm0-160H64v-96h160v96zm224 160H288v-96h160v96zm0-160H288v-96h160v96z\"]\n};\nvar faTableTennis = {\n prefix: 'fas',\n iconName: 'table-tennis',\n icon: [512, 512, [], \"f45d\", \"M496.2 296.5C527.7 218.7 512 126.2 449 63.1 365.1-21 229-21 145.1 63.1l-56 56.1 211.5 211.5c46.1-62.1 131.5-77.4 195.6-34.2zm-217.9 79.7L57.9 155.9c-27.3 45.3-21.7 105 17.3 144.1l34.5 34.6L6.7 424c-8.6 7.5-9.1 20.7-1 28.8l53.4 53.5c8 8.1 21.2 7.6 28.7-1L177.1 402l35.7 35.7c19.7 19.7 44.6 30.5 70.3 33.3-7.1-17-11-35.6-11-55.1-.1-13.8 2.5-27 6.2-39.7zM416 320c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96z\"]\n};\nvar faTablet = {\n prefix: 'fas',\n iconName: 'tablet',\n icon: [448, 512, [], \"f10a\", \"M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faTabletAlt = {\n prefix: 'fas',\n iconName: 'tablet-alt',\n icon: [448, 512, [], \"f3fa\", \"M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm176-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h328c6.6 0 12 5.4 12 12v312z\"]\n};\nvar faTablets = {\n prefix: 'fas',\n iconName: 'tablets',\n icon: [640, 512, [], \"f490\", \"M160 192C78.9 192 12.5 250.5.1 326.7c-.8 4.8 3.3 9.3 8.3 9.3h303.3c5 0 9.1-4.5 8.3-9.3C307.5 250.5 241.1 192 160 192zm151.6 176H8.4c-5 0-9.1 4.5-8.3 9.3C12.5 453.5 78.9 512 160 512s147.5-58.5 159.9-134.7c.8-4.8-3.3-9.3-8.3-9.3zM593.4 46.6c-56.5-56.5-144.2-61.4-206.9-16-4 2.9-4.3 8.9-.8 12.3L597 254.3c3.5 3.5 9.5 3.2 12.3-.8 45.5-62.7 40.6-150.4-15.9-206.9zM363 65.7c-3.5-3.5-9.5-3.2-12.3.8-45.4 62.7-40.5 150.4 15.9 206.9 56.5 56.5 144.2 61.4 206.9 15.9 4-2.9 4.3-8.9.8-12.3L363 65.7z\"]\n};\nvar faTachometerAlt = {\n prefix: 'fas',\n iconName: 'tachometer-alt',\n icon: [576, 512, [], \"f3fd\", \"M288 32C128.94 32 0 160.94 0 320c0 52.8 14.25 102.26 39.06 144.8 5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2C561.75 422.26 576 372.8 576 320c0-159.06-128.94-288-288-288zm0 64c14.71 0 26.58 10.13 30.32 23.65-1.11 2.26-2.64 4.23-3.45 6.67l-9.22 27.67c-5.13 3.49-10.97 6.01-17.64 6.01-17.67 0-32-14.33-32-32S270.33 96 288 96zM96 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm48-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm246.77-72.41l-61.33 184C343.13 347.33 352 364.54 352 384c0 11.72-3.38 22.55-8.88 32H232.88c-5.5-9.45-8.88-20.28-8.88-32 0-33.94 26.5-61.43 59.9-63.59l61.34-184.01c4.17-12.56 17.73-19.45 30.36-15.17 12.57 4.19 19.35 17.79 15.17 30.36zm14.66 57.2l15.52-46.55c3.47-1.29 7.13-2.23 11.05-2.23 17.67 0 32 14.33 32 32s-14.33 32-32 32c-11.38-.01-20.89-6.28-26.57-15.22zM480 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faTag = {\n prefix: 'fas',\n iconName: 'tag',\n icon: [512, 512, [], \"f02b\", \"M0 252.118V48C0 21.49 21.49 0 48 0h204.118a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882L293.823 497.941c-18.745 18.745-49.137 18.745-67.882 0L14.059 286.059A48 48 0 0 1 0 252.118zM112 64c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z\"]\n};\nvar faTags = {\n prefix: 'fas',\n iconName: 'tags',\n icon: [640, 512, [], \"f02c\", \"M497.941 225.941L286.059 14.059A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v204.118a48 48 0 0 0 14.059 33.941l211.882 211.882c18.744 18.745 49.136 18.746 67.882 0l204.118-204.118c18.745-18.745 18.745-49.137 0-67.882zM112 160c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm513.941 133.823L421.823 497.941c-18.745 18.745-49.137 18.745-67.882 0l-.36-.36L527.64 323.522c16.999-16.999 26.36-39.6 26.36-63.64s-9.362-46.641-26.36-63.64L331.397 0h48.721a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882z\"]\n};\nvar faTape = {\n prefix: 'fas',\n iconName: 'tape',\n icon: [640, 512, [], \"f4db\", \"M224 192c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm400 224H380.6c41.5-40.7 67.4-97.3 67.4-160 0-123.7-100.3-224-224-224S0 132.3 0 256s100.3 224 224 224h400c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400-64c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96z\"]\n};\nvar faTasks = {\n prefix: 'fas',\n iconName: 'tasks',\n icon: [512, 512, [], \"f0ae\", \"M139.61 35.5a12 12 0 0 0-17 0L58.93 98.81l-22.7-22.12a12 12 0 0 0-17 0L3.53 92.41a12 12 0 0 0 0 17l47.59 47.4a12.78 12.78 0 0 0 17.61 0l15.59-15.62L156.52 69a12.09 12.09 0 0 0 .09-17zm0 159.19a12 12 0 0 0-17 0l-63.68 63.72-22.7-22.1a12 12 0 0 0-17 0L3.53 252a12 12 0 0 0 0 17L51 316.5a12.77 12.77 0 0 0 17.6 0l15.7-15.69 72.2-72.22a12 12 0 0 0 .09-16.9zM64 368c-26.49 0-48.59 21.5-48.59 48S37.53 464 64 464a48 48 0 0 0 0-96zm432 16H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faTaxi = {\n prefix: 'fas',\n iconName: 'taxi',\n icon: [512, 512, [], \"f1ba\", \"M462 241.64l-22-84.84c-9.6-35.2-41.6-60.8-76.8-60.8H352V64c0-17.67-14.33-32-32-32H192c-17.67 0-32 14.33-32 32v32h-11.2c-35.2 0-67.2 25.6-76.8 60.8l-22 84.84C21.41 248.04 0 273.47 0 304v48c0 23.63 12.95 44.04 32 55.12V448c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-40.88c19.05-11.09 32-31.5 32-55.12v-48c0-30.53-21.41-55.96-50-62.36zM96 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm20.55-112l17.2-66.36c2.23-8.16 9.59-13.64 15.06-13.64h214.4c5.47 0 12.83 5.48 14.85 12.86L395.45 240h-278.9zM416 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faTeeth = {\n prefix: 'fas',\n iconName: 'teeth',\n icon: [640, 512, [], \"f62e\", \"M544 0H96C42.98 0 0 42.98 0 96v320c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96zM160 368c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm128 128c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64z\"]\n};\nvar faTeethOpen = {\n prefix: 'fas',\n iconName: 'teeth-open',\n icon: [640, 512, [], \"f62f\", \"M544 0H96C42.98 0 0 42.98 0 96v64c0 35.35 28.66 64 64 64h512c35.34 0 64-28.65 64-64V96c0-53.02-42.98-96-96-96zM160 176c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm128 0c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm0 144H64c-35.34 0-64 28.65-64 64v32c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96v-32c0-35.35-28.66-64-64-64zm-416 80c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32zm144-8c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm144 0c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm128 8c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32z\"]\n};\nvar faTemperatureHigh = {\n prefix: 'fas',\n iconName: 'temperature-high',\n icon: [512, 512, [], \"f769\", \"M416 0c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-160-16C256 50.1 205.9 0 144 0S32 50.1 32 112v166.5C12.3 303.2 0 334 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-34-12.3-64.9-32-89.5V112zM144 448c-44.1 0-80-35.9-80-80 0-25.5 12.2-48.9 32-63.8V112c0-26.5 21.5-48 48-48s48 21.5 48 48v192.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80zm16-125.1V112c0-8.8-7.2-16-16-16s-16 7.2-16 16v210.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1z\"]\n};\nvar faTemperatureLow = {\n prefix: 'fas',\n iconName: 'temperature-low',\n icon: [512, 512, [], \"f76b\", \"M416 0c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-160-16C256 50.1 205.9 0 144 0S32 50.1 32 112v166.5C12.3 303.2 0 334 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-34-12.3-64.9-32-89.5V112zM144 448c-44.1 0-80-35.9-80-80 0-25.5 12.2-48.9 32-63.8V112c0-26.5 21.5-48 48-48s48 21.5 48 48v192.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80zm16-125.1V304c0-8.8-7.2-16-16-16s-16 7.2-16 16v18.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1z\"]\n};\nvar faTenge = {\n prefix: 'fas',\n iconName: 'tenge',\n icon: [384, 512, [], \"f7d7\", \"M372 160H12c-6.6 0-12 5.4-12 12v56c0 6.6 5.4 12 12 12h140v228c0 6.6 5.4 12 12 12h56c6.6 0 12-5.4 12-12V240h140c6.6 0 12-5.4 12-12v-56c0-6.6-5.4-12-12-12zm0-128H12C5.4 32 0 37.4 0 44v56c0 6.6 5.4 12 12 12h360c6.6 0 12-5.4 12-12V44c0-6.6-5.4-12-12-12z\"]\n};\nvar faTerminal = {\n prefix: 'fas',\n iconName: 'terminal',\n icon: [640, 512, [], \"f120\", \"M257.981 272.971L63.638 467.314c-9.373 9.373-24.569 9.373-33.941 0L7.029 444.647c-9.357-9.357-9.375-24.522-.04-33.901L161.011 256 6.99 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L257.981 239.03c9.373 9.372 9.373 24.568 0 33.941zM640 456v-32c0-13.255-10.745-24-24-24H312c-13.255 0-24 10.745-24 24v32c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24z\"]\n};\nvar faTextHeight = {\n prefix: 'fas',\n iconName: 'text-height',\n icon: [576, 512, [], \"f034\", \"M304 32H16A16 16 0 0 0 0 48v96a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32h56v304H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h160a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-40V112h56v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm256 336h-48V144h48c14.31 0 21.33-17.31 11.31-27.31l-80-80a16 16 0 0 0-22.62 0l-80 80C379.36 126 384.36 144 400 144h48v224h-48c-14.31 0-21.32 17.31-11.31 27.31l80 80a16 16 0 0 0 22.62 0l80-80C580.64 386 575.64 368 560 368z\"]\n};\nvar faTextWidth = {\n prefix: 'fas',\n iconName: 'text-width',\n icon: [448, 512, [], \"f035\", \"M432 32H16A16 16 0 0 0 0 48v80a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-16h120v112h-24a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-24V112h120v16a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm-68.69 260.69C354 283.36 336 288.36 336 304v48H112v-48c0-14.31-17.31-21.32-27.31-11.31l-80 80a16 16 0 0 0 0 22.62l80 80C94 484.64 112 479.64 112 464v-48h224v48c0 14.31 17.31 21.33 27.31 11.31l80-80a16 16 0 0 0 0-22.62z\"]\n};\nvar faTh = {\n prefix: 'fas',\n iconName: 'th',\n icon: [512, 512, [], \"f00a\", \"M149.333 56v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zm181.334 240v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm32-240v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24zm-32 80V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm-205.334 56H24c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm386.667-56H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm0 160H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zM181.333 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24z\"]\n};\nvar faThLarge = {\n prefix: 'fas',\n iconName: 'th-large',\n icon: [512, 512, [], \"f009\", \"M296 32h192c13.255 0 24 10.745 24 24v160c0 13.255-10.745 24-24 24H296c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24zm-80 0H24C10.745 32 0 42.745 0 56v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zM0 296v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm296 184h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H296c-13.255 0-24 10.745-24 24v160c0 13.255 10.745 24 24 24z\"]\n};\nvar faThList = {\n prefix: 'fas',\n iconName: 'th-list',\n icon: [512, 512, [], \"f00b\", \"M149.333 216v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-80c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zM125.333 32H24C10.745 32 0 42.745 0 56v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zm80 448H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm-24-424v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24zm24 264H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24z\"]\n};\nvar faTheaterMasks = {\n prefix: 'fas',\n iconName: 'theater-masks',\n icon: [640, 512, [], \"f630\", \"M206.86 245.15c-35.88 10.45-59.95 41.2-57.53 74.1 11.4-12.72 28.81-23.7 49.9-30.92l7.63-43.18zM95.81 295L64.08 115.49c-.29-1.62.28-2.62.24-2.65 57.76-32.06 123.12-49.01 189.01-49.01 1.61 0 3.23.17 4.85.19 13.95-13.47 31.73-22.83 51.59-26 18.89-3.02 38.05-4.55 57.18-5.32-9.99-13.95-24.48-24.23-41.77-27C301.27 1.89 277.24 0 253.32 0 176.66 0 101.02 19.42 33.2 57.06 9.03 70.48-3.92 98.48 1.05 126.58l31.73 179.51c14.23 80.52 136.33 142.08 204.45 142.08 3.59 0 6.75-.46 10.01-.8-13.52-17.08-28.94-40.48-39.5-67.58-47.61-12.98-106.06-51.62-111.93-84.79zm97.55-137.46c-.73-4.12-2.23-7.87-4.07-11.4-8.25 8.91-20.67 15.75-35.32 18.32-14.65 2.58-28.67.4-39.48-5.17-.52 3.94-.64 7.98.09 12.1 3.84 21.7 24.58 36.19 46.34 32.37 21.75-3.82 36.28-24.52 32.44-46.22zM606.8 120.9c-88.98-49.38-191.43-67.41-291.98-51.35-27.31 4.36-49.08 26.26-54.04 54.36l-31.73 179.51c-15.39 87.05 95.28 196.27 158.31 207.35 63.03 11.09 204.47-53.79 219.86-140.84l31.73-179.51c4.97-28.11-7.98-56.11-32.15-69.52zm-273.24 96.8c3.84-21.7 24.58-36.19 46.34-32.36 21.76 3.83 36.28 24.52 32.45 46.22-.73 4.12-2.23 7.87-4.07 11.4-8.25-8.91-20.67-15.75-35.32-18.32-14.65-2.58-28.67-.4-39.48 5.17-.53-3.95-.65-7.99.08-12.11zm70.47 198.76c-55.68-9.79-93.52-59.27-89.04-112.9 20.6 25.54 56.21 46.17 99.49 53.78 43.28 7.61 83.82.37 111.93-16.6-14.18 51.94-66.71 85.51-122.38 75.72zm130.3-151.34c-8.25-8.91-20.68-15.75-35.33-18.32-14.65-2.58-28.67-.4-39.48 5.17-.52-3.94-.64-7.98.09-12.1 3.84-21.7 24.58-36.19 46.34-32.37 21.75 3.83 36.28 24.52 32.45 46.22-.73 4.13-2.23 7.88-4.07 11.4z\"]\n};\nvar faThermometer = {\n prefix: 'fas',\n iconName: 'thermometer',\n icon: [512, 512, [], \"f491\", \"M476.8 20.4c-37.5-30.7-95.5-26.3-131.9 10.2l-45.7 46 50.5 50.5c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.4-50.5-45.1 45.4 50.3 50.4c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L209 167.4l-45.1 45.4L214 263c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.1-50.2L96 281.1V382L7 471c-9.4 9.4-9.4 24.6 0 33.9 9.4 9.4 24.6 9.4 33.9 0l89-89h99.9L484 162.6c34.9-34.9 42.2-101.5-7.2-142.2z\"]\n};\nvar faThermometerEmpty = {\n prefix: 'fas',\n iconName: 'thermometer-empty',\n icon: [256, 512, [], \"f2cb\", \"M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-35.346 28.654-64 64-64s64 28.654 64 64zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"]\n};\nvar faThermometerFull = {\n prefix: 'fas',\n iconName: 'thermometer-full',\n icon: [256, 512, [], \"f2c7\", \"M224 96c0-53.019-42.981-96-96-96S32 42.981 32 96v203.347C12.225 321.756.166 351.136.002 383.333c-.359 70.303 56.787 128.176 127.089 128.664.299.002.61.003.909.003 70.698 0 128-57.304 128-128 0-32.459-12.088-62.09-32-84.653V96zm-96 368l-.576-.002c-43.86-.304-79.647-36.544-79.423-80.42.173-33.98 19.266-51.652 31.999-66.08V96c0-26.467 21.533-48 48-48s48 21.533 48 48v221.498c12.63 14.312 32 32.164 32 66.502 0 44.112-35.888 80-80 80zm64-80c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V96c0-17.673 14.327-32 32-32s32 14.327 32 32v232.583c19.124 11.068 32 31.732 32 55.417z\"]\n};\nvar faThermometerHalf = {\n prefix: 'fas',\n iconName: 'thermometer-half',\n icon: [256, 512, [], \"f2c9\", \"M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V224c0-17.673 14.327-32 32-32s32 14.327 32 32v104.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"]\n};\nvar faThermometerQuarter = {\n prefix: 'fas',\n iconName: 'thermometer-quarter',\n icon: [256, 512, [], \"f2ca\", \"M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V288c0-17.673 14.327-32 32-32s32 14.327 32 32v40.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"]\n};\nvar faThermometerThreeQuarters = {\n prefix: 'fas',\n iconName: 'thermometer-three-quarters',\n icon: [256, 512, [], \"f2c8\", \"M192 384c0 35.346-28.654 64-64 64-35.346 0-64-28.654-64-64 0-23.685 12.876-44.349 32-55.417V160c0-17.673 14.327-32 32-32s32 14.327 32 32v168.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"]\n};\nvar faThumbsDown = {\n prefix: 'fas',\n iconName: 'thumbs-down',\n icon: [512, 512, [], \"f165\", \"M0 56v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56zm40 200c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24zm272 256c-20.183 0-29.485-39.293-33.931-57.795-5.206-21.666-10.589-44.07-25.393-58.902-32.469-32.524-49.503-73.967-89.117-113.111a11.98 11.98 0 0 1-3.558-8.521V59.901c0-6.541 5.243-11.878 11.783-11.998 15.831-.29 36.694-9.079 52.651-16.178C256.189 17.598 295.709.017 343.995 0h2.844c42.777 0 93.363.413 113.774 29.737 8.392 12.057 10.446 27.034 6.148 44.632 16.312 17.053 25.063 48.863 16.382 74.757 17.544 23.432 19.143 56.132 9.308 79.469l.11.11c11.893 11.949 19.523 31.259 19.439 49.197-.156 30.352-26.157 58.098-59.553 58.098H350.723C358.03 364.34 384 388.132 384 430.548 384 504 336 512 312 512z\"]\n};\nvar faThumbsUp = {\n prefix: 'fas',\n iconName: 'thumbs-up',\n icon: [512, 512, [], \"f164\", \"M104 224H24c-13.255 0-24 10.745-24 24v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V248c0-13.255-10.745-24-24-24zM64 472c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zM384 81.452c0 42.416-25.97 66.208-33.277 94.548h101.723c33.397 0 59.397 27.746 59.553 58.098.084 17.938-7.546 37.249-19.439 49.197l-.11.11c9.836 23.337 8.237 56.037-9.308 79.469 8.681 25.895-.069 57.704-16.382 74.757 4.298 17.598 2.244 32.575-6.148 44.632C440.202 511.587 389.616 512 346.839 512l-2.845-.001c-48.287-.017-87.806-17.598-119.56-31.725-15.957-7.099-36.821-15.887-52.651-16.178-6.54-.12-11.783-5.457-11.783-11.998v-213.77c0-3.2 1.282-6.271 3.558-8.521 39.614-39.144 56.648-80.587 89.117-113.111 14.804-14.832 20.188-37.236 25.393-58.902C282.515 39.293 291.817 0 312 0c24 0 72 8 72 81.452z\"]\n};\nvar faThumbtack = {\n prefix: 'fas',\n iconName: 'thumbtack',\n icon: [384, 512, [], \"f08d\", \"M298.028 214.267L285.793 96H328c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v48c0 13.255 10.745 24 24 24h42.207L85.972 214.267C37.465 236.82 0 277.261 0 328c0 13.255 10.745 24 24 24h136v104.007c0 1.242.289 2.467.845 3.578l24 48c2.941 5.882 11.364 5.893 14.311 0l24-48a8.008 8.008 0 0 0 .845-3.578V352h136c13.255 0 24-10.745 24-24-.001-51.183-37.983-91.42-85.973-113.733z\"]\n};\nvar faTicketAlt = {\n prefix: 'fas',\n iconName: 'ticket-alt',\n icon: [576, 512, [], \"f3ff\", \"M128 160h320v192H128V160zm400 96c0 26.51 21.49 48 48 48v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c26.51 0 48-21.49 48-48s-21.49-48-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v96c-26.51 0-48 21.49-48 48zm-48-104c0-13.255-10.745-24-24-24H120c-13.255 0-24 10.745-24 24v208c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V152z\"]\n};\nvar faTimes = {\n prefix: 'fas',\n iconName: 'times',\n icon: [352, 512, [], \"f00d\", \"M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z\"]\n};\nvar faTimesCircle = {\n prefix: 'fas',\n iconName: 'times-circle',\n icon: [512, 512, [], \"f057\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z\"]\n};\nvar faTint = {\n prefix: 'fas',\n iconName: 'tint',\n icon: [352, 512, [], \"f043\", \"M205.22 22.09c-7.94-28.78-49.44-30.12-58.44 0C100.01 179.85 0 222.72 0 333.91 0 432.35 78.72 512 176 512s176-79.65 176-178.09c0-111.75-99.79-153.34-146.78-311.82zM176 448c-61.75 0-112-50.25-112-112 0-8.84 7.16-16 16-16s16 7.16 16 16c0 44.11 35.89 80 80 80 8.84 0 16 7.16 16 16s-7.16 16-16 16z\"]\n};\nvar faTintSlash = {\n prefix: 'fas',\n iconName: 'tint-slash',\n icon: [640, 512, [], \"f5c7\", \"M633.82 458.1L494.97 350.78c.52-5.57 1.03-11.16 1.03-16.87 0-111.76-99.79-153.34-146.78-311.82-7.94-28.78-49.44-30.12-58.44 0-15.52 52.34-36.87 91.96-58.49 125.68L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM144 333.91C144 432.35 222.72 512 320 512c44.71 0 85.37-16.96 116.4-44.7L162.72 255.78c-11.41 23.5-18.72 48.35-18.72 78.13z\"]\n};\nvar faTired = {\n prefix: 'fas',\n iconName: 'tired',\n icon: [496, 512, [], \"f5c8\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 288c51.9 0 115.3 43.8 123.2 106.7 1.7 13.6-8 24.6-17.7 20.4-25.9-11.1-64.4-17.4-105.5-17.4s-79.6 6.3-105.5 17.4c-9.8 4.2-19.4-7-17.7-20.4C132.7 331.8 196.1 288 248 288z\"]\n};\nvar faToggleOff = {\n prefix: 'fas',\n iconName: 'toggle-off',\n icon: [576, 512, [], \"f204\", \"M384 64H192C85.961 64 0 149.961 0 256s85.961 192 192 192h192c106.039 0 192-85.961 192-192S490.039 64 384 64zM64 256c0-70.741 57.249-128 128-128 70.741 0 128 57.249 128 128 0 70.741-57.249 128-128 128-70.741 0-128-57.249-128-128zm320 128h-48.905c65.217-72.858 65.236-183.12 0-256H384c70.741 0 128 57.249 128 128 0 70.74-57.249 128-128 128z\"]\n};\nvar faToggleOn = {\n prefix: 'fas',\n iconName: 'toggle-on',\n icon: [576, 512, [], \"f205\", \"M384 64H192C86 64 0 150 0 256s86 192 192 192h192c106 0 192-86 192-192S490 64 384 64zm0 320c-70.8 0-128-57.3-128-128 0-70.8 57.3-128 128-128 70.8 0 128 57.3 128 128 0 70.8-57.3 128-128 128z\"]\n};\nvar faToilet = {\n prefix: 'fas',\n iconName: 'toilet',\n icon: [384, 512, [], \"f7d8\", \"M368 48c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v16c0 8.8 7.2 16 16 16h16v156.7C11.8 214.8 0 226.9 0 240c0 67.2 34.6 126.2 86.8 160.5l-21.4 70.2C59.1 491.2 74.5 512 96 512h192c21.5 0 36.9-20.8 30.6-41.3l-21.4-70.2C349.4 366.2 384 307.2 384 240c0-13.1-11.8-25.2-32-35.3V48h16zM80 72c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H88c-4.4 0-8-3.6-8-8V72zm112 200c-77.1 0-139.6-14.3-139.6-32s62.5-32 139.6-32 139.6 14.3 139.6 32-62.5 32-139.6 32z\"]\n};\nvar faToiletPaper = {\n prefix: 'fas',\n iconName: 'toilet-paper',\n icon: [576, 512, [], \"f71e\", \"M128 0C74.98 0 32 85.96 32 192v172.07c0 41.12-9.8 62.77-31.17 126.87C-2.62 501.3 5.09 512 16.01 512h280.92c13.77 0 26-8.81 30.36-21.88 12.83-38.48 24.71-72.4 24.71-126.05V192c0-83.6 23.67-153.52 60.44-192H128zM96 224c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM480 0c-53.02 0-96 85.96-96 192s42.98 192 96 192 96-85.96 96-192S533.02 0 480 0zm0 256c-17.67 0-32-28.65-32-64s14.33-64 32-64 32 28.65 32 64-14.33 64-32 64z\"]\n};\nvar faToiletPaperSlash = {\n prefix: 'fas',\n iconName: 'toilet-paper-slash',\n icon: [640, 512, [], \"e072\", \"M64,192V364.13c0,41.12-9.75,62.75-31.12,126.87A16,16,0,0,0,48,512H328.86a31.87,31.87,0,0,0,30.38-21.87c9.31-27.83,18-53.35,22.18-85.55l-316-244.25C64.53,170.66,64,181.19,64,192ZM633.82,458.09l-102-78.81C575.28,360.91,608,284.32,608,192,608,86,565,0,512,0s-96,86-96,192c0,42,7,80.4,18.43,112L384,265V192c0-83.62,23.63-153.5,60.5-192H160c-23.33,0-44.63,16.83-61.26,44.53L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.45A16,16,0,0,0,6.18,53.91L594.54,508.63A16,16,0,0,0,617,505.81l19.64-25.26A16,16,0,0,0,633.82,458.09ZM512,256c-17.63,0-32-28.62-32-64s14.37-64,32-64,32,28.63,32,64S529.62,256,512,256Z\"]\n};\nvar faToolbox = {\n prefix: 'fas',\n iconName: 'toolbox',\n icon: [512, 512, [], \"f552\", \"M502.63 214.63l-45.25-45.25c-6-6-14.14-9.37-22.63-9.37H384V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v80H77.25c-8.49 0-16.62 3.37-22.63 9.37L9.37 214.63c-6 6-9.37 14.14-9.37 22.63V320h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-82.75c0-8.48-3.37-16.62-9.37-22.62zM320 160H192V96h128v64zm64 208c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H192v16c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H0v96c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-96H384v16z\"]\n};\nvar faTools = {\n prefix: 'fas',\n iconName: 'tools',\n icon: [512, 512, [], \"f7d9\", \"M501.1 395.7L384 278.6c-23.1-23.1-57.6-27.6-85.4-13.9L192 158.1V96L64 0 0 64l96 128h62.1l106.6 106.6c-13.6 27.8-9.2 62.3 13.9 85.4l117.1 117.1c14.6 14.6 38.2 14.6 52.7 0l52.7-52.7c14.5-14.6 14.5-38.2 0-52.7zM331.7 225c28.3 0 54.9 11 74.9 31l19.4 19.4c15.8-6.9 30.8-16.5 43.8-29.5 37.1-37.1 49.7-89.3 37.9-136.7-2.2-9-13.5-12.1-20.1-5.5l-74.4 74.4-67.9-11.3L334 98.9l74.4-74.4c6.6-6.6 3.4-17.9-5.7-20.2-47.4-11.7-99.6.9-136.6 37.9-28.5 28.5-41.9 66.1-41.2 103.6l82.1 82.1c8.1-1.9 16.5-2.9 24.7-2.9zm-103.9 82l-56.7-56.7L18.7 402.8c-25 25-25 65.5 0 90.5s65.5 25 90.5 0l123.6-123.6c-7.6-19.9-9.9-41.6-5-62.7zM64 472c-13.2 0-24-10.8-24-24 0-13.3 10.7-24 24-24s24 10.7 24 24c0 13.2-10.7 24-24 24z\"]\n};\nvar faTooth = {\n prefix: 'fas',\n iconName: 'tooth',\n icon: [448, 512, [], \"f5c9\", \"M443.98 96.25c-11.01-45.22-47.11-82.06-92.01-93.72-32.19-8.36-63 5.1-89.14 24.33-3.25 2.39-6.96 3.73-10.5 5.48l28.32 18.21c7.42 4.77 9.58 14.67 4.8 22.11-4.46 6.95-14.27 9.86-22.11 4.8L162.83 12.84c-20.7-10.85-43.38-16.4-66.81-10.31-44.9 11.67-81 48.5-92.01 93.72-10.13 41.62-.42 80.81 21.5 110.43 23.36 31.57 32.68 68.66 36.29 107.35 4.4 47.16 10.33 94.16 20.94 140.32l7.8 33.95c3.19 13.87 15.49 23.7 29.67 23.7 13.97 0 26.15-9.55 29.54-23.16l34.47-138.42c4.56-18.32 20.96-31.16 39.76-31.16s35.2 12.85 39.76 31.16l34.47 138.42c3.39 13.61 15.57 23.16 29.54 23.16 14.18 0 26.48-9.83 29.67-23.7l7.8-33.95c10.61-46.15 16.53-93.16 20.94-140.32 3.61-38.7 12.93-75.78 36.29-107.35 21.95-29.61 31.66-68.8 21.53-110.43z\"]\n};\nvar faTorah = {\n prefix: 'fas',\n iconName: 'torah',\n icon: [640, 512, [], \"f6a0\", \"M320.05 366.48l17.72-29.64h-35.46zm99.21-166H382.4l18.46 30.82zM48 0C21.49 0 0 14.33 0 32v448c0 17.67 21.49 32 48 32s48-14.33 48-32V32C96 14.33 74.51 0 48 0zm172.74 311.5h36.85l-18.46-30.82zm161.71 0h36.86l-18.45-30.8zM128 464h384V48H128zm66.77-278.13a21.22 21.22 0 0 1 18.48-10.71h59.45l29.13-48.71a21.13 21.13 0 0 1 18.22-10.37A20.76 20.76 0 0 1 338 126.29l29.25 48.86h59.52a21.12 21.12 0 0 1 18.1 32L415.63 256 445 305a20.69 20.69 0 0 1 .24 21.12 21.25 21.25 0 0 1-18.48 10.72h-59.47l-29.13 48.7a21.13 21.13 0 0 1-18.16 10.4 20.79 20.79 0 0 1-18-10.22l-29.25-48.88h-59.5a21.11 21.11 0 0 1-18.1-32L224.36 256 195 207a20.7 20.7 0 0 1-.23-21.13zM592 0c-26.51 0-48 14.33-48 32v448c0 17.67 21.49 32 48 32s48-14.33 48-32V32c0-17.67-21.49-32-48-32zM320 145.53l-17.78 29.62h35.46zm-62.45 55h-36.81l18.44 30.8zm29.58 111h65.79L386.09 256l-33.23-55.52h-65.79L253.9 256z\"]\n};\nvar faToriiGate = {\n prefix: 'fas',\n iconName: 'torii-gate',\n icon: [512, 512, [], \"f6a1\", \"M376.45 32h-240.9A303.17 303.17 0 0 1 0 0v96c0 17.67 14.33 32 32 32h32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h256v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h48c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-48v-64h32c17.67 0 32-14.33 32-32V0a303.17 303.17 0 0 1-135.55 32zM128 128h96v64h-96v-64zm256 64h-96v-64h96v64z\"]\n};\nvar faTractor = {\n prefix: 'fas',\n iconName: 'tractor',\n icon: [640, 512, [], \"f722\", \"M528 336c-48.6 0-88 39.4-88 88s39.4 88 88 88 88-39.4 88-88-39.4-88-88-88zm0 112c-13.23 0-24-10.77-24-24s10.77-24 24-24 24 10.77 24 24-10.77 24-24 24zm80-288h-64v-40.2c0-14.12 4.7-27.76 13.15-38.84 4.42-5.8 3.55-14.06-1.32-19.49L534.2 37.3c-6.66-7.45-18.32-6.92-24.7.78C490.58 60.9 480 89.81 480 119.8V160H377.67L321.58 29.14A47.914 47.914 0 0 0 277.45 0H144c-26.47 0-48 21.53-48 48v146.52c-8.63-6.73-20.96-6.46-28.89 1.47L36 227.1c-8.59 8.59-8.59 22.52 0 31.11l5.06 5.06c-4.99 9.26-8.96 18.82-11.91 28.72H22c-12.15 0-22 9.85-22 22v44c0 12.15 9.85 22 22 22h7.14c2.96 9.91 6.92 19.46 11.91 28.73l-5.06 5.06c-8.59 8.59-8.59 22.52 0 31.11L67.1 476c8.59 8.59 22.52 8.59 31.11 0l5.06-5.06c9.26 4.99 18.82 8.96 28.72 11.91V490c0 12.15 9.85 22 22 22h44c12.15 0 22-9.85 22-22v-7.14c9.9-2.95 19.46-6.92 28.72-11.91l5.06 5.06c8.59 8.59 22.52 8.59 31.11 0l31.11-31.11c8.59-8.59 8.59-22.52 0-31.11l-5.06-5.06c4.99-9.26 8.96-18.82 11.91-28.72H330c12.15 0 22-9.85 22-22v-6h80.54c21.91-28.99 56.32-48 95.46-48 18.64 0 36.07 4.61 51.8 12.2l50.82-50.82c6-6 9.37-14.14 9.37-22.63V192c.01-17.67-14.32-32-31.99-32zM176 416c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm22-256h-38V64h106.89l41.15 96H198z\"]\n};\nvar faTrademark = {\n prefix: 'fas',\n iconName: 'trademark',\n icon: [640, 512, [], \"f25c\", \"M260.6 96H12c-6.6 0-12 5.4-12 12v43.1c0 6.6 5.4 12 12 12h85.1V404c0 6.6 5.4 12 12 12h54.3c6.6 0 12-5.4 12-12V163.1h85.1c6.6 0 12-5.4 12-12V108c.1-6.6-5.3-12-11.9-12zM640 403l-24-296c-.5-6.2-5.7-11-12-11h-65.4c-5.1 0-9.7 3.3-11.3 8.1l-43.8 127.1c-7.2 20.6-16.1 52.8-16.1 52.8h-.9s-8.9-32.2-16.1-52.8l-43.8-127.1c-1.7-4.8-6.2-8.1-11.3-8.1h-65.4c-6.2 0-11.4 4.8-12 11l-24.4 296c-.6 7 4.9 13 12 13H360c6.3 0 11.5-4.9 12-11.2l9.1-132.9c1.8-24.2 0-53.7 0-53.7h.9s10.7 33.6 17.9 53.7l30.7 84.7c1.7 4.7 6.2 7.9 11.3 7.9h50.3c5.1 0 9.6-3.2 11.3-7.9l30.7-84.7c7.2-20.1 17.9-53.7 17.9-53.7h.9s-1.8 29.5 0 53.7l9.1 132.9c.4 6.3 5.7 11.2 12 11.2H628c7 0 12.5-6 12-13z\"]\n};\nvar faTrafficLight = {\n prefix: 'fas',\n iconName: 'traffic-light',\n icon: [384, 512, [], \"f637\", \"M384 192h-64v-37.88c37.2-13.22 64-48.38 64-90.12h-64V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v32H0c0 41.74 26.8 76.9 64 90.12V192H0c0 41.74 26.8 76.9 64 90.12V320H0c0 42.84 28.25 78.69 66.99 91.05C79.42 468.72 130.6 512 192 512s112.58-43.28 125.01-100.95C355.75 398.69 384 362.84 384 320h-64v-37.88c37.2-13.22 64-48.38 64-90.12zM192 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z\"]\n};\nvar faTrailer = {\n prefix: 'fas',\n iconName: 'trailer',\n icon: [640, 512, [], \"e041\", \"M624,320H544V80a16,16,0,0,0-16-16H16A16,16,0,0,0,0,80V368a16,16,0,0,0,16,16H65.61c7.83-54.21,54-96,110.39-96s102.56,41.79,110.39,96H624a16,16,0,0,0,16-16V336A16,16,0,0,0,624,320ZM96,243.68a176.29,176.29,0,0,0-32,20.71V136a8,8,0,0,1,8-8H88a8,8,0,0,1,8,8Zm96-18.54c-5.31-.49-10.57-1.14-16-1.14s-10.69.65-16,1.14V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm96,39.25a176.29,176.29,0,0,0-32-20.71V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8ZM384,320H352V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm96,0H448V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm-304,0a80,80,0,1,0,80,80A80,80,0,0,0,176,320Zm0,112a32,32,0,1,1,32-32A32,32,0,0,1,176,432Z\"]\n};\nvar faTrain = {\n prefix: 'fas',\n iconName: 'train',\n icon: [448, 512, [], \"f238\", \"M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zm-48 136V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24zm-176 64c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56z\"]\n};\nvar faTram = {\n prefix: 'fas',\n iconName: 'tram',\n icon: [512, 512, [], \"f7da\", \"M288 64c17.7 0 32-14.3 32-32S305.7 0 288 0s-32 14.3-32 32 14.3 32 32 32zm223.5-12.1c-2.3-8.6-11-13.6-19.6-11.3l-480 128c-8.5 2.3-13.6 11-11.3 19.6C2.5 195.3 8.9 200 16 200c1.4 0 2.8-.2 4.1-.5L240 140.8V224H64c-17.7 0-32 14.3-32 32v224c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32H272v-91.7l228.1-60.8c8.6-2.3 13.6-11.1 11.4-19.6zM176 384H80v-96h96v96zm160-96h96v96h-96v-96zm-32 0v96h-96v-96h96zM192 96c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z\"]\n};\nvar faTransgender = {\n prefix: 'fas',\n iconName: 'transgender',\n icon: [384, 512, [], \"f224\", \"M372 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C198.5 104.1 172.2 96 144 96 64.5 96 0 160.5 0 240c0 68.5 47.9 125.9 112 140.4V408H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM144 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faTransgenderAlt = {\n prefix: 'fas',\n iconName: 'transgender-alt',\n icon: [480, 512, [], \"f225\", \"M468 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C294.5 104.1 268.2 96 240 96c-28.2 0-54.5 8.1-76.7 22.1l-16.5-16.5 19.8-19.8c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0l-19.8 19.8-19-19 16.9-16.9C107.1 12.9 101.7 0 91 0H12C5.4 0 0 5.4 0 12v79c0 10.7 12.9 16 20.5 8.5l16.9-16.9 19 19-19.8 19.8c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l19.8-19.8 16.5 16.5C104.1 185.5 96 211.8 96 240c0 68.5 47.9 125.9 112 140.4V408h-36c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM240 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faTrash = {\n prefix: 'fas',\n iconName: 'trash',\n icon: [448, 512, [], \"f1f8\", \"M432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32z\"]\n};\nvar faTrashAlt = {\n prefix: 'fas',\n iconName: 'trash-alt',\n icon: [448, 512, [], \"f2ed\", \"M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128H32zm272-256a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faTrashRestore = {\n prefix: 'fas',\n iconName: 'trash-restore',\n icon: [448, 512, [], \"f829\", \"M53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32zm70.11-175.8l89.38-94.26a15.41 15.41 0 0 1 22.62 0l89.38 94.26c10.08 10.62 2.94 28.8-11.32 28.8H256v112a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V320h-57.37c-14.26 0-21.4-18.18-11.32-28.8zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faTrashRestoreAlt = {\n prefix: 'fas',\n iconName: 'trash-restore-alt',\n icon: [448, 512, [], \"f82a\", \"M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128H32zm91.31-172.8l89.38-94.26a15.41 15.41 0 0 1 22.62 0l89.38 94.26c10.08 10.62 2.94 28.8-11.32 28.8H256v112a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V320h-57.37c-14.26 0-21.4-18.18-11.32-28.8zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faTree = {\n prefix: 'fas',\n iconName: 'tree',\n icon: [384, 512, [], \"f1bb\", \"M378.31 378.49L298.42 288h30.63c9.01 0 16.98-5 20.78-13.06 3.8-8.04 2.55-17.26-3.28-24.05L268.42 160h28.89c9.1 0 17.3-5.35 20.86-13.61 3.52-8.13 1.86-17.59-4.24-24.08L203.66 4.83c-6.03-6.45-17.28-6.45-23.32 0L70.06 122.31c-6.1 6.49-7.75 15.95-4.24 24.08C69.38 154.65 77.59 160 86.69 160h28.89l-78.14 90.91c-5.81 6.78-7.06 15.99-3.27 24.04C37.97 283 45.93 288 54.95 288h30.63L5.69 378.49c-6 6.79-7.36 16.09-3.56 24.26 3.75 8.05 12 13.25 21.01 13.25H160v24.45l-30.29 48.4c-5.32 10.64 2.42 23.16 14.31 23.16h95.96c11.89 0 19.63-12.52 14.31-23.16L224 440.45V416h136.86c9.01 0 17.26-5.2 21.01-13.25 3.8-8.17 2.44-17.47-3.56-24.26z\"]\n};\nvar faTrophy = {\n prefix: 'fas',\n iconName: 'trophy',\n icon: [576, 512, [], \"f091\", \"M552 64H448V24c0-13.3-10.7-24-24-24H152c-13.3 0-24 10.7-24 24v40H24C10.7 64 0 74.7 0 88v56c0 35.7 22.5 72.4 61.9 100.7 31.5 22.7 69.8 37.1 110 41.7C203.3 338.5 240 360 240 360v72h-48c-35.3 0-64 20.7-64 56v12c0 6.6 5.4 12 12 12h296c6.6 0 12-5.4 12-12v-12c0-35.3-28.7-56-64-56h-48v-72s36.7-21.5 68.1-73.6c40.3-4.6 78.6-19 110-41.7 39.3-28.3 61.9-65 61.9-100.7V88c0-13.3-10.7-24-24-24zM99.3 192.8C74.9 175.2 64 155.6 64 144v-16h64.2c1 32.6 5.8 61.2 12.8 86.2-15.1-5.2-29.2-12.4-41.7-21.4zM512 144c0 16.1-17.7 36.1-35.3 48.8-12.5 9-26.7 16.2-41.8 21.4 7-25 11.8-53.6 12.8-86.2H512v16z\"]\n};\nvar faTruck = {\n prefix: 'fas',\n iconName: 'truck',\n icon: [640, 512, [], \"f0d1\", \"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z\"]\n};\nvar faTruckLoading = {\n prefix: 'fas',\n iconName: 'truck-loading',\n icon: [640, 512, [], \"f4de\", \"M50.2 375.6c2.3 8.5 11.1 13.6 19.6 11.3l216.4-58c8.5-2.3 13.6-11.1 11.3-19.6l-49.7-185.5c-2.3-8.5-11.1-13.6-19.6-11.3L151 133.3l24.8 92.7-61.8 16.5-24.8-92.7-77.3 20.7C3.4 172.8-1.7 181.6.6 190.1l49.6 185.5zM384 0c-17.7 0-32 14.3-32 32v323.6L5.9 450c-4.3 1.2-6.8 5.6-5.6 9.8l12.6 46.3c1.2 4.3 5.6 6.8 9.8 5.6l393.7-107.4C418.8 464.1 467.6 512 528 512c61.9 0 112-50.1 112-112V0H384zm144 448c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"]\n};\nvar faTruckMonster = {\n prefix: 'fas',\n iconName: 'truck-monster',\n icon: [640, 512, [], \"f63b\", \"M624 224h-16v-64c0-17.67-14.33-32-32-32h-73.6L419.22 24.02A64.025 64.025 0 0 0 369.24 0H256c-17.67 0-32 14.33-32 32v96H48c-8.84 0-16 7.16-16 16v80H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16.72c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64h65.45c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-336-96V64h81.24l51.2 64H288zm304 224h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 512 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67A110.85 110.85 0 0 0 373.2 352H368c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32c-.02-8.84-7.18-16-16.02-16zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-208-80h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 192 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0L58.18 304.8c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67a110.85 110.85 0 0 0-8.65 20.89H48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32C288 359.16 280.84 352 272 352zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z\"]\n};\nvar faTruckMoving = {\n prefix: 'fas',\n iconName: 'truck-moving',\n icon: [640, 512, [], \"f4df\", \"M621.3 237.3l-58.5-58.5c-12-12-28.3-18.7-45.3-18.7H480V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v336c0 44.2 35.8 80 80 80 26.3 0 49.4-12.9 64-32.4 14.6 19.6 37.7 32.4 64 32.4 44.2 0 80-35.8 80-80 0-5.5-.6-10.8-1.6-16h163.2c-1.1 5.2-1.6 10.5-1.6 16 0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H624c8.8 0 16-7.2 16-16v-85.5c0-17-6.7-33.2-18.7-45.2zM80 432c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm128 0c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm272-224h37.5c4.3 0 8.3 1.7 11.3 4.7l43.3 43.3H480v-48zm48 224c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32z\"]\n};\nvar faTruckPickup = {\n prefix: 'fas',\n iconName: 'truck-pickup',\n icon: [640, 512, [], \"f63c\", \"M624 288h-16v-64c0-17.67-14.33-32-32-32h-48L419.22 56.02A64.025 64.025 0 0 0 369.24 32H256c-17.67 0-32 14.33-32 32v128H64c-17.67 0-32 14.33-32 32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h49.61c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16h67.23c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM288 96h81.24l76.8 96H288V96zM176 416c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm288 0c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z\"]\n};\nvar faTshirt = {\n prefix: 'fas',\n iconName: 'tshirt',\n icon: [640, 512, [], \"f553\", \"M631.2 96.5L436.5 0C416.4 27.8 371.9 47.2 320 47.2S223.6 27.8 203.5 0L8.8 96.5c-7.9 4-11.1 13.6-7.2 21.5l57.2 114.5c4 7.9 13.6 11.1 21.5 7.2l56.6-27.7c10.6-5.2 23 2.5 23 14.4V480c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V226.3c0-11.8 12.4-19.6 23-14.4l56.6 27.7c7.9 4 17.5.8 21.5-7.2L638.3 118c4-7.9.8-17.6-7.1-21.5z\"]\n};\nvar faTty = {\n prefix: 'fas',\n iconName: 'tty',\n icon: [512, 512, [], \"f1e4\", \"M5.37 103.822c138.532-138.532 362.936-138.326 501.262 0 6.078 6.078 7.074 15.496 2.583 22.681l-43.214 69.138a18.332 18.332 0 0 1-22.356 7.305l-86.422-34.569a18.335 18.335 0 0 1-11.434-18.846L351.741 90c-62.145-22.454-130.636-21.986-191.483 0l5.953 59.532a18.331 18.331 0 0 1-11.434 18.846l-86.423 34.568a18.334 18.334 0 0 1-22.356-7.305L2.787 126.502a18.333 18.333 0 0 1 2.583-22.68zM96 308v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H92c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zM96 500v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H140c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z\"]\n};\nvar faTv = {\n prefix: 'fas',\n iconName: 'tv',\n icon: [640, 512, [], \"f26c\", \"M592 0H48A48 48 0 0 0 0 48v320a48 48 0 0 0 48 48h240v32H112a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H352v-32h240a48 48 0 0 0 48-48V48a48 48 0 0 0-48-48zm-16 352H64V64h512z\"]\n};\nvar faUmbrella = {\n prefix: 'fas',\n iconName: 'umbrella',\n icon: [576, 512, [], \"f0e9\", \"M575.7 280.8C547.1 144.5 437.3 62.6 320 49.9V32c0-17.7-14.3-32-32-32s-32 14.3-32 32v17.9C138.3 62.6 29.5 144.5.3 280.8c-2.2 10.1 8.5 21.3 18.7 11.4 52-55 107.7-52.4 158.6 37 5.3 9.5 14.9 8.6 19.7 0 20.2-35.4 44.9-73.2 90.7-73.2 58.5 0 88.2 68.8 90.7 73.2 4.8 8.6 14.4 9.5 19.7 0 51-89.5 107.1-91.4 158.6-37 10.3 10 20.9-1.3 18.7-11.4zM256 301.7V432c0 8.8-7.2 16-16 16-7.8 0-13.2-5.3-15.1-10.7-5.9-16.7-24.1-25.4-40.8-19.5-16.7 5.9-25.4 24.2-19.5 40.8 11.2 31.9 41.6 53.3 75.4 53.3 44.1 0 80-35.9 80-80V301.6c-9.1-7.9-19.8-13.6-32-13.6-12.3.1-22.4 4.8-32 13.7z\"]\n};\nvar faUmbrellaBeach = {\n prefix: 'fas',\n iconName: 'umbrella-beach',\n icon: [640, 512, [], \"f5ca\", \"M115.38 136.9l102.11 37.18c35.19-81.54 86.21-144.29 139-173.7-95.88-4.89-188.78 36.96-248.53 111.8-6.69 8.4-2.66 21.05 7.42 24.72zm132.25 48.16l238.48 86.83c35.76-121.38 18.7-231.66-42.63-253.98-7.4-2.7-15.13-4-23.09-4-58.02.01-128.27 69.17-172.76 171.15zM521.48 60.5c6.22 16.3 10.83 34.6 13.2 55.19 5.74 49.89-1.42 108.23-18.95 166.98l102.62 37.36c10.09 3.67 21.31-3.43 21.57-14.17 2.32-95.69-41.91-187.44-118.44-245.36zM560 447.98H321.06L386 269.5l-60.14-21.9-72.9 200.37H16c-8.84 0-16 7.16-16 16.01v32.01C0 504.83 7.16 512 16 512h544c8.84 0 16-7.17 16-16.01v-32.01c0-8.84-7.16-16-16-16z\"]\n};\nvar faUnderline = {\n prefix: 'fas',\n iconName: 'underline',\n icon: [448, 512, [], \"f0cd\", \"M32 64h32v160c0 88.22 71.78 160 160 160s160-71.78 160-160V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H272a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32v160a80 80 0 0 1-160 0V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm400 384H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faUndo = {\n prefix: 'fas',\n iconName: 'undo',\n icon: [512, 512, [], \"f0e2\", \"M212.333 224.333H12c-6.627 0-12-5.373-12-12V12C0 5.373 5.373 0 12 0h48c6.627 0 12 5.373 12 12v78.112C117.773 39.279 184.26 7.47 258.175 8.007c136.906.994 246.448 111.623 246.157 248.532C504.041 393.258 393.12 504 256.333 504c-64.089 0-122.496-24.313-166.51-64.215-5.099-4.622-5.334-12.554-.467-17.42l33.967-33.967c4.474-4.474 11.662-4.717 16.401-.525C170.76 415.336 211.58 432 256.333 432c97.268 0 176-78.716 176-176 0-97.267-78.716-176-176-176-58.496 0-110.28 28.476-142.274 72.333h98.274c6.627 0 12 5.373 12 12v48c0 6.627-5.373 12-12 12z\"]\n};\nvar faUndoAlt = {\n prefix: 'fas',\n iconName: 'undo-alt',\n icon: [512, 512, [], \"f2ea\", \"M255.545 8c-66.269.119-126.438 26.233-170.86 68.685L48.971 40.971C33.851 25.851 8 36.559 8 57.941V192c0 13.255 10.745 24 24 24h134.059c21.382 0 32.09-25.851 16.971-40.971l-41.75-41.75c30.864-28.899 70.801-44.907 113.23-45.273 92.398-.798 170.283 73.977 169.484 169.442C423.236 348.009 349.816 424 256 424c-41.127 0-79.997-14.678-110.63-41.556-4.743-4.161-11.906-3.908-16.368.553L89.34 422.659c-4.872 4.872-4.631 12.815.482 17.433C133.798 479.813 192.074 504 256 504c136.966 0 247.999-111.033 248-247.998C504.001 119.193 392.354 7.755 255.545 8z\"]\n};\nvar faUniversalAccess = {\n prefix: 'fas',\n iconName: 'universal-access',\n icon: [512, 512, [], \"f29a\", \"M256 48c114.953 0 208 93.029 208 208 0 114.953-93.029 208-208 208-114.953 0-208-93.029-208-208 0-114.953 93.029-208 208-208m0-40C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 56C149.961 64 64 149.961 64 256s85.961 192 192 192 192-85.961 192-192S362.039 64 256 64zm0 44c19.882 0 36 16.118 36 36s-16.118 36-36 36-36-16.118-36-36 16.118-36 36-36zm117.741 98.023c-28.712 6.779-55.511 12.748-82.14 15.807.851 101.023 12.306 123.052 25.037 155.621 3.617 9.26-.957 19.698-10.217 23.315-9.261 3.617-19.699-.957-23.316-10.217-8.705-22.308-17.086-40.636-22.261-78.549h-9.686c-5.167 37.851-13.534 56.208-22.262 78.549-3.615 9.255-14.05 13.836-23.315 10.217-9.26-3.617-13.834-14.056-10.217-23.315 12.713-32.541 24.185-54.541 25.037-155.621-26.629-3.058-53.428-9.027-82.141-15.807-8.6-2.031-13.926-10.648-11.895-19.249s10.647-13.926 19.249-11.895c96.686 22.829 124.283 22.783 220.775 0 8.599-2.03 17.218 3.294 19.249 11.895 2.029 8.601-3.297 17.219-11.897 19.249z\"]\n};\nvar faUniversity = {\n prefix: 'fas',\n iconName: 'university',\n icon: [512, 512, [], \"f19c\", \"M496 128v16a8 8 0 0 1-8 8h-24v12c0 6.627-5.373 12-12 12H60c-6.627 0-12-5.373-12-12v-12H24a8 8 0 0 1-8-8v-16a8 8 0 0 1 4.941-7.392l232-88a7.996 7.996 0 0 1 6.118 0l232 88A8 8 0 0 1 496 128zm-24 304H40c-13.255 0-24 10.745-24 24v16a8 8 0 0 0 8 8h464a8 8 0 0 0 8-8v-16c0-13.255-10.745-24-24-24zM96 192v192H60c-6.627 0-12 5.373-12 12v20h416v-20c0-6.627-5.373-12-12-12h-36V192h-64v192h-64V192h-64v192h-64V192H96z\"]\n};\nvar faUnlink = {\n prefix: 'fas',\n iconName: 'unlink',\n icon: [512, 512, [], \"f127\", \"M304.083 405.907c4.686 4.686 4.686 12.284 0 16.971l-44.674 44.674c-59.263 59.262-155.693 59.266-214.961 0-59.264-59.265-59.264-155.696 0-214.96l44.675-44.675c4.686-4.686 12.284-4.686 16.971 0l39.598 39.598c4.686 4.686 4.686 12.284 0 16.971l-44.675 44.674c-28.072 28.073-28.072 73.75 0 101.823 28.072 28.072 73.75 28.073 101.824 0l44.674-44.674c4.686-4.686 12.284-4.686 16.971 0l39.597 39.598zm-56.568-260.216c4.686 4.686 12.284 4.686 16.971 0l44.674-44.674c28.072-28.075 73.75-28.073 101.824 0 28.072 28.073 28.072 73.75 0 101.823l-44.675 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.598 39.598c4.686 4.686 12.284 4.686 16.971 0l44.675-44.675c59.265-59.265 59.265-155.695 0-214.96-59.266-59.264-155.695-59.264-214.961 0l-44.674 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.597 39.598zm234.828 359.28l22.627-22.627c9.373-9.373 9.373-24.569 0-33.941L63.598 7.029c-9.373-9.373-24.569-9.373-33.941 0L7.029 29.657c-9.373 9.373-9.373 24.569 0 33.941l441.373 441.373c9.373 9.372 24.569 9.372 33.941 0z\"]\n};\nvar faUnlock = {\n prefix: 'fas',\n iconName: 'unlock',\n icon: [448, 512, [], \"f09c\", \"M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z\"]\n};\nvar faUnlockAlt = {\n prefix: 'fas',\n iconName: 'unlock-alt',\n icon: [448, 512, [], \"f13e\", \"M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zM264 408c0 22.1-17.9 40-40 40s-40-17.9-40-40v-48c0-22.1 17.9-40 40-40s40 17.9 40 40v48z\"]\n};\nvar faUpload = {\n prefix: 'fas',\n iconName: 'upload',\n icon: [512, 512, [], \"f093\", \"M296 384h-80c-13.3 0-24-10.7-24-24V192h-87.7c-17.8 0-26.7-21.5-14.1-34.1L242.3 5.7c7.5-7.5 19.8-7.5 27.3 0l152.2 152.2c12.6 12.6 3.7 34.1-14.1 34.1H320v168c0 13.3-10.7 24-24 24zm216-8v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h136v8c0 30.9 25.1 56 56 56h80c30.9 0 56-25.1 56-56v-8h136c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z\"]\n};\nvar faUser = {\n prefix: 'fas',\n iconName: 'user',\n icon: [448, 512, [], \"f007\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"]\n};\nvar faUserAlt = {\n prefix: 'fas',\n iconName: 'user-alt',\n icon: [512, 512, [], \"f406\", \"M256 288c79.5 0 144-64.5 144-144S335.5 0 256 0 112 64.5 112 144s64.5 144 144 144zm128 32h-55.1c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16H128C57.3 320 0 377.3 0 448v16c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-16c0-70.7-57.3-128-128-128z\"]\n};\nvar faUserAltSlash = {\n prefix: 'fas',\n iconName: 'user-alt-slash',\n icon: [640, 512, [], \"f4fa\", \"M633.8 458.1L389.6 269.3C433.8 244.7 464 198.1 464 144 464 64.5 399.5 0 320 0c-67.1 0-123 46.1-139 108.2L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM198.4 320C124.2 320 64 380.2 64 454.4v9.6c0 26.5 21.5 48 48 48h382.2L245.8 320h-47.4z\"]\n};\nvar faUserAstronaut = {\n prefix: 'fas',\n iconName: 'user-astronaut',\n icon: [448, 512, [], \"f4fb\", \"M64 224h13.5c24.7 56.5 80.9 96 146.5 96s121.8-39.5 146.5-96H384c8.8 0 16-7.2 16-16v-96c0-8.8-7.2-16-16-16h-13.5C345.8 39.5 289.6 0 224 0S102.2 39.5 77.5 96H64c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16zm40-88c0-22.1 21.5-40 48-40h144c26.5 0 48 17.9 48 40v24c0 53-43 96-96 96h-48c-53 0-96-43-96-96v-24zm72 72l12-36 36-12-36-12-12-36-12 36-36 12 36 12 12 36zm151.6 113.4C297.7 340.7 262.2 352 224 352s-73.7-11.3-103.6-30.6C52.9 328.5 0 385 0 454.4v9.6c0 26.5 21.5 48 48 48h80v-64c0-17.7 14.3-32 32-32h128c17.7 0 32 14.3 32 32v64h80c26.5 0 48-21.5 48-48v-9.6c0-69.4-52.9-125.9-120.4-133zM272 448c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-96 0c-8.8 0-16 7.2-16 16v48h32v-48c0-8.8-7.2-16-16-16z\"]\n};\nvar faUserCheck = {\n prefix: 'fas',\n iconName: 'user-check',\n icon: [640, 512, [], \"f4fc\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4zm323-128.4l-27.8-28.1c-4.6-4.7-12.1-4.7-16.8-.1l-104.8 104-45.5-45.8c-4.6-4.7-12.1-4.7-16.8-.1l-28.1 27.9c-4.7 4.6-4.7 12.1-.1 16.8l81.7 82.3c4.6 4.7 12.1 4.7 16.8.1l141.3-140.2c4.6-4.7 4.7-12.2.1-16.8z\"]\n};\nvar faUserCircle = {\n prefix: 'fas',\n iconName: 'user-circle',\n icon: [496, 512, [], \"f2bd\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 96c48.6 0 88 39.4 88 88s-39.4 88-88 88-88-39.4-88-88 39.4-88 88-88zm0 344c-58.7 0-111.3-26.6-146.5-68.2 18.8-35.4 55.6-59.8 98.5-59.8 2.4 0 4.8.4 7.1 1.1 13 4.2 26.6 6.9 40.9 6.9 14.3 0 28-2.7 40.9-6.9 2.3-.7 4.7-1.1 7.1-1.1 42.9 0 79.7 24.4 98.5 59.8C359.3 421.4 306.7 448 248 448z\"]\n};\nvar faUserClock = {\n prefix: 'fas',\n iconName: 'user-clock',\n icon: [640, 512, [], \"f4fd\", \"M496 224c-79.6 0-144 64.4-144 144s64.4 144 144 144 144-64.4 144-144-64.4-144-144-144zm64 150.3c0 5.3-4.4 9.7-9.7 9.7h-60.6c-5.3 0-9.7-4.4-9.7-9.7v-76.6c0-5.3 4.4-9.7 9.7-9.7h12.6c5.3 0 9.7 4.4 9.7 9.7V352h38.3c5.3 0 9.7 4.4 9.7 9.7v12.6zM320 368c0-27.8 6.7-54.1 18.2-77.5-8-1.5-16.2-2.5-24.6-2.5h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h347.1c-45.3-31.9-75.1-84.5-75.1-144zm-96-112c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128z\"]\n};\nvar faUserCog = {\n prefix: 'fas',\n iconName: 'user-cog',\n icon: [640, 512, [], \"f4fe\", \"M610.5 373.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 400.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm201.2 226.5c-2.3-1.2-4.6-2.6-6.8-3.9l-7.9 4.6c-6 3.4-12.8 5.3-19.6 5.3-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-5.5-17.7 1.9-36.4 17.9-45.7l7.9-4.6c-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-16-9.2-23.4-28-17.9-45.7.9-2.9 2.2-5.8 3.2-8.7-3.8-.3-7.5-1.2-11.4-1.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c10.1 0 19.5-3.2 27.2-8.5-1.2-3.8-2-7.7-2-11.8v-9.2z\"]\n};\nvar faUserEdit = {\n prefix: 'fas',\n iconName: 'user-edit',\n icon: [640, 512, [], \"f4ff\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h274.9c-2.4-6.8-3.4-14-2.6-21.3l6.8-60.9 1.2-11.1 7.9-7.9 77.3-77.3c-24.5-27.7-60-45.5-99.9-45.5zm45.3 145.3l-6.8 61c-1.1 10.2 7.5 18.8 17.6 17.6l60.9-6.8 137.9-137.9-71.7-71.7-137.9 137.8zM633 268.9L595.1 231c-9.3-9.3-24.5-9.3-33.8 0l-37.8 37.8-4.1 4.1 71.8 71.7 41.8-41.8c9.3-9.4 9.3-24.5 0-33.9z\"]\n};\nvar faUserFriends = {\n prefix: 'fas',\n iconName: 'user-friends',\n icon: [640, 512, [], \"f500\", \"M192 256c61.9 0 112-50.1 112-112S253.9 32 192 32 80 82.1 80 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C51.6 288 0 339.6 0 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zM480 256c53 0 96-43 96-96s-43-96-96-96-96 43-96 96 43 96 96 96zm48 32h-3.8c-13.9 4.8-28.6 8-44.2 8s-30.3-3.2-44.2-8H432c-20.4 0-39.2 5.9-55.7 15.4 24.4 26.3 39.7 61.2 39.7 99.8v38.4c0 2.2-.5 4.3-.6 6.4H592c26.5 0 48-21.5 48-48 0-61.9-50.1-112-112-112z\"]\n};\nvar faUserGraduate = {\n prefix: 'fas',\n iconName: 'user-graduate',\n icon: [448, 512, [], \"f501\", \"M319.4 320.6L224 416l-95.4-95.4C57.1 323.7 0 382.2 0 454.4v9.6c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-9.6c0-72.2-57.1-130.7-128.6-133.8zM13.6 79.8l6.4 1.5v58.4c-7 4.2-12 11.5-12 20.3 0 8.4 4.6 15.4 11.1 19.7L3.5 242c-1.7 6.9 2.1 14 7.6 14h41.8c5.5 0 9.3-7.1 7.6-14l-15.6-62.3C51.4 175.4 56 168.4 56 160c0-8.8-5-16.1-12-20.3V87.1l66 15.9c-8.6 17.2-14 36.4-14 57 0 70.7 57.3 128 128 128s128-57.3 128-128c0-20.6-5.3-39.8-14-57l96.3-23.2c18.2-4.4 18.2-27.1 0-31.5l-190.4-46c-13-3.1-26.7-3.1-39.7 0L13.6 48.2c-18.1 4.4-18.1 27.2 0 31.6z\"]\n};\nvar faUserInjured = {\n prefix: 'fas',\n iconName: 'user-injured',\n icon: [448, 512, [], \"f728\", \"M277.37 11.98C261.08 4.47 243.11 0 224 0c-53.69 0-99.5 33.13-118.51 80h81.19l90.69-68.02zM342.51 80c-7.9-19.47-20.67-36.2-36.49-49.52L239.99 80h102.52zM224 256c70.69 0 128-57.31 128-128 0-5.48-.95-10.7-1.61-16H97.61c-.67 5.3-1.61 10.52-1.61 16 0 70.69 57.31 128 128 128zM80 299.7V512h128.26l-98.45-221.52A132.835 132.835 0 0 0 80 299.7zM0 464c0 26.51 21.49 48 48 48V320.24C18.88 344.89 0 381.26 0 422.4V464zm256-48h-55.38l42.67 96H256c26.47 0 48-21.53 48-48s-21.53-48-48-48zm57.6-128h-16.71c-22.24 10.18-46.88 16-72.89 16s-50.65-5.82-72.89-16h-7.37l42.67 96H256c44.11 0 80 35.89 80 80 0 18.08-6.26 34.59-16.41 48H400c26.51 0 48-21.49 48-48v-41.6c0-74.23-60.17-134.4-134.4-134.4z\"]\n};\nvar faUserLock = {\n prefix: 'fas',\n iconName: 'user-lock',\n icon: [640, 512, [], \"f502\", \"M224 256A128 128 0 1 0 96 128a128 128 0 0 0 128 128zm96 64a63.08 63.08 0 0 1 8.1-30.5c-4.8-.5-9.5-1.5-14.5-1.5h-16.7a174.08 174.08 0 0 1-145.8 0h-16.7A134.43 134.43 0 0 0 0 422.4V464a48 48 0 0 0 48 48h280.9a63.54 63.54 0 0 1-8.9-32zm288-32h-32v-80a80 80 0 0 0-160 0v80h-32a32 32 0 0 0-32 32v160a32 32 0 0 0 32 32h224a32 32 0 0 0 32-32V320a32 32 0 0 0-32-32zM496 432a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm32-144h-64v-80a32 32 0 0 1 64 0z\"]\n};\nvar faUserMd = {\n prefix: 'fas',\n iconName: 'user-md',\n icon: [448, 512, [], \"f0f0\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zM104 424c0 13.3 10.7 24 24 24s24-10.7 24-24-10.7-24-24-24-24 10.7-24 24zm216-135.4v49c36.5 7.4 64 39.8 64 78.4v41.7c0 7.6-5.4 14.2-12.9 15.7l-32.2 6.4c-4.3.9-8.5-1.9-9.4-6.3l-3.1-15.7c-.9-4.3 1.9-8.6 6.3-9.4l19.3-3.9V416c0-62.8-96-65.1-96 1.9v26.7l19.3 3.9c4.3.9 7.1 5.1 6.3 9.4l-3.1 15.7c-.9 4.3-5.1 7.1-9.4 6.3l-31.2-4.2c-7.9-1.1-13.8-7.8-13.8-15.9V416c0-38.6 27.5-70.9 64-78.4v-45.2c-2.2.7-4.4 1.1-6.6 1.9-18 6.3-37.3 9.8-57.4 9.8s-39.4-3.5-57.4-9.8c-7.4-2.6-14.9-4.2-22.6-5.2v81.6c23.1 6.9 40 28.1 40 53.4 0 30.9-25.1 56-56 56s-56-25.1-56-56c0-25.3 16.9-46.5 40-53.4v-80.4C48.5 301 0 355.8 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-72-56.8-130.3-128-133.8z\"]\n};\nvar faUserMinus = {\n prefix: 'fas',\n iconName: 'user-minus',\n icon: [640, 512, [], \"f503\", \"M624 208H432c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h192c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"]\n};\nvar faUserNinja = {\n prefix: 'fas',\n iconName: 'user-ninja',\n icon: [448, 512, [], \"f504\", \"M325.4 289.2L224 390.6 122.6 289.2C54 295.3 0 352.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-70.2-54-127.1-122.6-133.2zM32 192c27.3 0 51.8-11.5 69.2-29.7 15.1 53.9 64 93.7 122.8 93.7 70.7 0 128-57.3 128-128S294.7 0 224 0c-50.4 0-93.6 29.4-114.5 71.8C92.1 47.8 64 32 32 32c0 33.4 17.1 62.8 43.1 80-26 17.2-43.1 46.6-43.1 80zm144-96h96c17.7 0 32 14.3 32 32H144c0-17.7 14.3-32 32-32z\"]\n};\nvar faUserNurse = {\n prefix: 'fas',\n iconName: 'user-nurse',\n icon: [448, 512, [], \"f82f\", \"M319.41,320,224,415.39,128.59,320C57.1,323.1,0,381.6,0,453.79A58.21,58.21,0,0,0,58.21,512H389.79A58.21,58.21,0,0,0,448,453.79C448,381.6,390.9,323.1,319.41,320ZM224,304A128,128,0,0,0,352,176V65.82a32,32,0,0,0-20.76-30L246.47,4.07a64,64,0,0,0-44.94,0L116.76,35.86A32,32,0,0,0,96,65.82V176A128,128,0,0,0,224,304ZM184,71.67a5,5,0,0,1,5-5h21.67V45a5,5,0,0,1,5-5h16.66a5,5,0,0,1,5,5V66.67H259a5,5,0,0,1,5,5V88.33a5,5,0,0,1-5,5H237.33V115a5,5,0,0,1-5,5H215.67a5,5,0,0,1-5-5V93.33H189a5,5,0,0,1-5-5ZM144,160H304v16a80,80,0,0,1-160,0Z\"]\n};\nvar faUserPlus = {\n prefix: 'fas',\n iconName: 'user-plus',\n icon: [640, 512, [], \"f234\", \"M624 208h-64v-64c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v64h-64c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h64v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-64h64c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"]\n};\nvar faUserSecret = {\n prefix: 'fas',\n iconName: 'user-secret',\n icon: [448, 512, [], \"f21b\", \"M383.9 308.3l23.9-62.6c4-10.5-3.7-21.7-15-21.7h-58.5c11-18.9 17.8-40.6 17.8-64v-.3c39.2-7.8 64-19.1 64-31.7 0-13.3-27.3-25.1-70.1-33-9.2-32.8-27-65.8-40.6-82.8-9.5-11.9-25.9-15.6-39.5-8.8l-27.6 13.8c-9 4.5-19.6 4.5-28.6 0L182.1 3.4c-13.6-6.8-30-3.1-39.5 8.8-13.5 17-31.4 50-40.6 82.8-42.7 7.9-70 19.7-70 33 0 12.6 24.8 23.9 64 31.7v.3c0 23.4 6.8 45.1 17.8 64H56.3c-11.5 0-19.2 11.7-14.7 22.3l25.8 60.2C27.3 329.8 0 372.7 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-48.4-25.8-90.4-64.1-114.1zM176 480l-41.6-192 49.6 32 24 40-32 120zm96 0l-32-120 24-40 49.6-32L272 480zm41.7-298.5c-3.9 11.9-7 24.6-16.5 33.4-10.1 9.3-48 22.4-64-25-2.8-8.4-15.4-8.4-18.3 0-17 50.2-56 32.4-64 25-9.5-8.8-12.7-21.5-16.5-33.4-.8-2.5-6.3-5.7-6.3-5.8v-10.8c28.3 3.6 61 5.8 96 5.8s67.7-2.1 96-5.8v10.8c-.1.1-5.6 3.2-6.4 5.8z\"]\n};\nvar faUserShield = {\n prefix: 'fas',\n iconName: 'user-shield',\n icon: [640, 512, [], \"f505\", \"M622.3 271.1l-115.2-45c-4.1-1.6-12.6-3.7-22.2 0l-115.2 45c-10.7 4.2-17.7 14-17.7 24.9 0 111.6 68.7 188.8 132.9 213.9 9.6 3.7 18 1.6 22.2 0C558.4 489.9 640 420.5 640 296c0-10.9-7-20.7-17.7-24.9zM496 462.4V273.3l95.5 37.3c-5.6 87.1-60.9 135.4-95.5 151.8zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm96 40c0-2.5.8-4.8 1.1-7.2-2.5-.1-4.9-.8-7.5-.8h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c6.8 0 13.3-1.5 19.2-4-54-42.9-99.2-116.7-99.2-212z\"]\n};\nvar faUserSlash = {\n prefix: 'fas',\n iconName: 'user-slash',\n icon: [640, 512, [], \"f506\", \"M633.8 458.1L362.3 248.3C412.1 230.7 448 183.8 448 128 448 57.3 390.7 0 320 0c-67.1 0-121.5 51.8-126.9 117.4L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM96 422.4V464c0 26.5 21.5 48 48 48h350.2L207.4 290.3C144.2 301.3 96 356 96 422.4z\"]\n};\nvar faUserTag = {\n prefix: 'fas',\n iconName: 'user-tag',\n icon: [640, 512, [], \"f507\", \"M630.6 364.9l-90.3-90.2c-12-12-28.3-18.7-45.3-18.7h-79.3c-17.7 0-32 14.3-32 32v79.2c0 17 6.7 33.2 18.7 45.2l90.3 90.2c12.5 12.5 32.8 12.5 45.3 0l92.5-92.5c12.6-12.5 12.6-32.7.1-45.2zm-182.8-21c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24c0 13.2-10.7 24-24 24zm-223.8-88c70.7 0 128-57.3 128-128C352 57.3 294.7 0 224 0S96 57.3 96 128c0 70.6 57.3 127.9 128 127.9zm127.8 111.2V294c-12.2-3.6-24.9-6.2-38.2-6.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 287.9 0 348.1 0 422.3v41.6c0 26.5 21.5 48 48 48h352c15.5 0 29.1-7.5 37.9-18.9l-58-58c-18.1-18.1-28.1-42.2-28.1-67.9z\"]\n};\nvar faUserTie = {\n prefix: 'fas',\n iconName: 'user-tie',\n icon: [448, 512, [], \"f508\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm95.8 32.6L272 480l-32-136 32-56h-96l32 56-32 136-47.8-191.4C56.9 292 0 350.3 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-72.1-56.9-130.4-128.2-133.8z\"]\n};\nvar faUserTimes = {\n prefix: 'fas',\n iconName: 'user-times',\n icon: [640, 512, [], \"f235\", \"M589.6 240l45.6-45.6c6.3-6.3 6.3-16.5 0-22.8l-22.8-22.8c-6.3-6.3-16.5-6.3-22.8 0L544 194.4l-45.6-45.6c-6.3-6.3-16.5-6.3-22.8 0l-22.8 22.8c-6.3 6.3-6.3 16.5 0 22.8l45.6 45.6-45.6 45.6c-6.3 6.3-6.3 16.5 0 22.8l22.8 22.8c6.3 6.3 16.5 6.3 22.8 0l45.6-45.6 45.6 45.6c6.3 6.3 16.5 6.3 22.8 0l22.8-22.8c6.3-6.3 6.3-16.5 0-22.8L589.6 240zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"]\n};\nvar faUsers = {\n prefix: 'fas',\n iconName: 'users',\n icon: [640, 512, [], \"f0c0\", \"M96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm448 0c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm32 32h-64c-17.6 0-33.5 7.1-45.1 18.6 40.3 22.1 68.9 62 75.1 109.4h66c17.7 0 32-14.3 32-32v-32c0-35.3-28.7-64-64-64zm-256 0c61.9 0 112-50.1 112-112S381.9 32 320 32 208 82.1 208 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zm-223.7-13.4C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z\"]\n};\nvar faUsersCog = {\n prefix: 'fas',\n iconName: 'users-cog',\n icon: [640, 512, [], \"f509\", \"M610.5 341.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 368.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm224 32c1.9 0 3.7-.5 5.6-.6 8.3-21.7 20.5-42.1 36.3-59.2 7.4-8 17.9-12.6 28.9-12.6 6.9 0 13.7 1.8 19.6 5.3l7.9 4.6c.8-.5 1.6-.9 2.4-1.4 7-14.6 11.2-30.8 11.2-48 0-61.9-50.1-112-112-112S208 82.1 208 144c0 61.9 50.1 112 112 112zm105.2 194.5c-2.3-1.2-4.6-2.6-6.8-3.9-8.2 4.8-15.3 9.8-27.5 9.8-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-10.7-34.5 24.9-49.7 25.8-50.3-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-3.8-2.2-7-5-9.8-8.1-3.3.2-6.5.6-9.8.6-24.6 0-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h255.4c-3.7-6-6.2-12.8-6.2-20.3v-9.2zM173.1 274.6C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z\"]\n};\nvar faUsersSlash = {\n prefix: 'fas',\n iconName: 'users-slash',\n icon: [640, 512, [], \"e073\", \"M132.65,212.32,36.21,137.78A63.4,63.4,0,0,0,32,160a63.84,63.84,0,0,0,100.65,52.32Zm40.44,62.28A63.79,63.79,0,0,0,128,256H64A64.06,64.06,0,0,0,0,320v32a32,32,0,0,0,32,32H97.91A146.62,146.62,0,0,1,173.09,274.6ZM544,224a64,64,0,1,0-64-64A64.06,64.06,0,0,0,544,224ZM500.56,355.11a114.24,114.24,0,0,0-84.47-65.28L361,247.23c41.46-16.3,71-55.92,71-103.23A111.93,111.93,0,0,0,320,32c-57.14,0-103.69,42.83-110.6,98.08L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45ZM128,403.21V432a48,48,0,0,0,48,48H464a47.45,47.45,0,0,0,12.57-1.87L232,289.13C173.74,294.83,128,343.42,128,403.21ZM576,256H512a63.79,63.79,0,0,0-45.09,18.6A146.29,146.29,0,0,1,542,384h66a32,32,0,0,0,32-32V320A64.06,64.06,0,0,0,576,256Z\"]\n};\nvar faUtensilSpoon = {\n prefix: 'fas',\n iconName: 'utensil-spoon',\n icon: [512, 512, [], \"f2e5\", \"M480.1 31.9c-55-55.1-164.9-34.5-227.8 28.5-49.3 49.3-55.1 110-28.8 160.4L9 413.2c-11.6 10.5-12.1 28.5-1 39.5L59.3 504c11 11 29.1 10.5 39.5-1.1l192.4-214.4c50.4 26.3 111.1 20.5 160.4-28.8 63-62.9 83.6-172.8 28.5-227.8z\"]\n};\nvar faUtensils = {\n prefix: 'fas',\n iconName: 'utensils',\n icon: [416, 512, [], \"f2e7\", \"M207.9 15.2c.8 4.7 16.1 94.5 16.1 128.8 0 52.3-27.8 89.6-68.9 104.6L168 486.7c.7 13.7-10.2 25.3-24 25.3H80c-13.7 0-24.7-11.5-24-25.3l12.9-238.1C27.7 233.6 0 196.2 0 144 0 109.6 15.3 19.9 16.1 15.2 19.3-5.1 61.4-5.4 64 16.3v141.2c1.3 3.4 15.1 3.2 16 0 1.4-25.3 7.9-139.2 8-141.8 3.3-20.8 44.7-20.8 47.9 0 .2 2.7 6.6 116.5 8 141.8.9 3.2 14.8 3.4 16 0V16.3c2.6-21.6 44.8-21.4 48-1.1zm119.2 285.7l-15 185.1c-1.2 14 9.9 26 23.9 26h56c13.3 0 24-10.7 24-24V24c0-13.2-10.7-24-24-24-82.5 0-221.4 178.5-64.9 300.9z\"]\n};\nvar faVectorSquare = {\n prefix: 'fas',\n iconName: 'vector-square',\n icon: [512, 512, [], \"f5cb\", \"M512 128V32c0-17.67-14.33-32-32-32h-96c-17.67 0-32 14.33-32 32H160c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32v192c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32h192c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32V160c17.67 0 32-14.33 32-32zm-96-64h32v32h-32V64zM64 64h32v32H64V64zm32 384H64v-32h32v32zm352 0h-32v-32h32v32zm-32-96h-32c-17.67 0-32 14.33-32 32v32H160v-32c0-17.67-14.33-32-32-32H96V160h32c17.67 0 32-14.33 32-32V96h192v32c0 17.67 14.33 32 32 32h32v192z\"]\n};\nvar faVenus = {\n prefix: 'fas',\n iconName: 'venus',\n icon: [288, 512, [], \"f221\", \"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z\"]\n};\nvar faVenusDouble = {\n prefix: 'fas',\n iconName: 'venus-double',\n icon: [512, 512, [], \"f226\", \"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80zm336 140.4V368h36c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-36v36c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-36h-36c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h36v-51.6c-21.2-4.8-40.6-14.3-57.2-27.3 14-16.7 25-36 32.1-57.1 14.5 14.8 34.7 24 57.1 24 44.1 0 80-35.9 80-80s-35.9-80-80-80c-22.3 0-42.6 9.2-57.1 24-7.1-21.1-18-40.4-32.1-57.1C303.4 43.6 334.3 32 368 32c79.5 0 144 64.5 144 144 0 68.5-47.9 125.9-112 140.4z\"]\n};\nvar faVenusMars = {\n prefix: 'fas',\n iconName: 'venus-mars',\n icon: [576, 512, [], \"f228\", \"M564 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C422.5 72.1 396.2 64 368 64c-33.7 0-64.6 11.6-89.2 30.9 14 16.7 25 36 32.1 57.1 14.5-14.8 34.7-24 57.1-24 44.1 0 80 35.9 80 80s-35.9 80-80 80c-22.3 0-42.6-9.2-57.1-24-7.1 21.1-18 40.4-32.1 57.1 24.5 19.4 55.5 30.9 89.2 30.9 79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 64C64.5 64 0 128.5 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.6 112-71.9 112-140.4 0-79.5-64.5-144-144-144zm0 224c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faVest = {\n prefix: 'fas',\n iconName: 'vest',\n icon: [448, 512, [], \"e085\", \"M437.252,239.877,384,160V32A32,32,0,0,0,352,0H320a24.021,24.021,0,0,0-13.312,4.031l-25,16.672a103.794,103.794,0,0,1-115.376,0l-25-16.672A24.021,24.021,0,0,0,128,0H96A32,32,0,0,0,64,32V160L10.748,239.877A64,64,0,0,0,0,275.377V480a32,32,0,0,0,32,32H192V288a31.987,31.987,0,0,1,1.643-10.119L207.135,237.4,150.188,66.564A151.518,151.518,0,0,0,224,86.234a151.55,151.55,0,0,0,73.812-19.672L224,288V512H416a32,32,0,0,0,32-32V275.377A64,64,0,0,0,437.252,239.877ZM131.312,371.312l-48,48a16,16,0,0,1-22.624-22.624l48-48a16,16,0,0,1,22.624,22.624Zm256,48a15.992,15.992,0,0,1-22.624,0l-48-48a16,16,0,0,1,22.624-22.624l48,48A15.993,15.993,0,0,1,387.312,419.312Z\"]\n};\nvar faVestPatches = {\n prefix: 'fas',\n iconName: 'vest-patches',\n icon: [448, 512, [], \"e086\", \"M437.252,239.877,384,160V32A32,32,0,0,0,352,0H320a23.982,23.982,0,0,0-13.312,4.031l-25,16.672a103.794,103.794,0,0,1-115.376,0l-25-16.672A23.982,23.982,0,0,0,128,0H96A32,32,0,0,0,64,32V160L10.748,239.877A64,64,0,0,0,0,275.377V480a32,32,0,0,0,32,32H192V288a31.987,31.987,0,0,1,1.643-10.119L207.135,237.4,150.188,66.561A151.579,151.579,0,0,0,224,86.234a151.565,151.565,0,0,0,73.811-19.668L224,288V512H416a32,32,0,0,0,32-32V275.377A64,64,0,0,0,437.252,239.877ZM63.5,272.484a12.01,12.01,0,0,1,17-16.968l15.5,15.5,15.5-15.5a12.01,12.01,0,0,1,17,16.968L112.984,288,128.5,303.516a12.01,12.01,0,0,1-17,16.968L96,304.984l-15.5,15.5a12.01,12.01,0,0,1-17-16.968L79.016,288ZM96,456a40,40,0,1,1,40-40A40,40,0,0,1,96,456ZM359.227,335.785,310.7,336a6.671,6.671,0,0,1-6.7-6.7l.215-48.574A24.987,24.987,0,0,1,331.43,256.1c12.789,1.162,22.129,12.619,22.056,25.419l-.037,5.057,5.051-.037c12.826-.035,24.236,9.275,25.4,22.076A24.948,24.948,0,0,1,359.227,335.785Z\"]\n};\nvar faVial = {\n prefix: 'fas',\n iconName: 'vial',\n icon: [480, 512, [], \"f492\", \"M477.7 186.1L309.5 18.3c-3.1-3.1-8.2-3.1-11.3 0l-34 33.9c-3.1 3.1-3.1 8.2 0 11.3l11.2 11.1L33 316.5c-38.8 38.7-45.1 102-9.4 143.5 20.6 24 49.5 36 78.4 35.9 26.4 0 52.8-10 72.9-30.1l246.3-245.7 11.2 11.1c3.1 3.1 8.2 3.1 11.3 0l34-33.9c3.1-3 3.1-8.1 0-11.2zM318 256H161l148-147.7 78.5 78.3L318 256z\"]\n};\nvar faVials = {\n prefix: 'fas',\n iconName: 'vials',\n icon: [640, 512, [], \"f493\", \"M72 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64zm480 384H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM360 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64z\"]\n};\nvar faVideo = {\n prefix: 'fas',\n iconName: 'video',\n icon: [576, 512, [], \"f03d\", \"M336.2 64H47.8C21.4 64 0 85.4 0 111.8v288.4C0 426.6 21.4 448 47.8 448h288.4c26.4 0 47.8-21.4 47.8-47.8V111.8c0-26.4-21.4-47.8-47.8-47.8zm189.4 37.7L416 177.3v157.4l109.6 75.5c21.2 14.6 50.4-.3 50.4-25.8V127.5c0-25.4-29.1-40.4-50.4-25.8z\"]\n};\nvar faVideoSlash = {\n prefix: 'fas',\n iconName: 'video-slash',\n icon: [640, 512, [], \"f4e2\", \"M633.8 458.1l-55-42.5c15.4-1.4 29.2-13.7 29.2-31.1v-257c0-25.5-29.1-40.4-50.4-25.8L448 177.3v137.2l-32-24.7v-178c0-26.4-21.4-47.8-47.8-47.8H123.9L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4L42.7 82 416 370.6l178.5 138c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.5-6.9 4.2-17-2.8-22.4zM32 400.2c0 26.4 21.4 47.8 47.8 47.8h288.4c11.2 0 21.4-4 29.6-10.5L32 154.7v245.5z\"]\n};\nvar faVihara = {\n prefix: 'fas',\n iconName: 'vihara',\n icon: [640, 512, [], \"f6a7\", \"M632.88 400.71L544 352v-64l55.16-17.69c11.79-5.9 11.79-22.72 0-28.62L480 192v-64l27.31-16.3c7.72-7.72 5.61-20.74-4.16-25.62L320 0 136.85 86.07c-9.77 4.88-11.88 17.9-4.16 25.62L160 128v64L40.84 241.69c-11.79 5.9-11.79 22.72 0 28.62L96 288v64L7.12 400.71c-5.42 3.62-7.7 9.63-7 15.29.62 5.01 3.57 9.75 8.72 12.33L64 448v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48l55.15-19.67c5.16-2.58 8.1-7.32 8.72-12.33.71-5.67-1.57-11.68-6.99-15.29zM224 128h192v64H224v-64zm-64 224v-64h320v64H160z\"]\n};\nvar faVirus = {\n prefix: 'fas',\n iconName: 'virus',\n icon: [512, 512, [], \"e074\", \"M483.55,227.55H462c-50.68,0-76.07-61.27-40.23-97.11L437,115.19A28.44,28.44,0,0,0,396.8,75L381.56,90.22c-35.84,35.83-97.11,10.45-97.11-40.23V28.44a28.45,28.45,0,0,0-56.9,0V50c0,50.68-61.27,76.06-97.11,40.23L115.2,75A28.44,28.44,0,0,0,75,115.19l15.25,15.25c35.84,35.84,10.45,97.11-40.23,97.11H28.45a28.45,28.45,0,1,0,0,56.89H50c50.68,0,76.07,61.28,40.23,97.12L75,396.8A28.45,28.45,0,0,0,115.2,437l15.24-15.25c35.84-35.84,97.11-10.45,97.11,40.23v21.54a28.45,28.45,0,0,0,56.9,0V462c0-50.68,61.27-76.07,97.11-40.23L396.8,437A28.45,28.45,0,0,0,437,396.8l-15.25-15.24c-35.84-35.84-10.45-97.12,40.23-97.12h21.54a28.45,28.45,0,1,0,0-56.89ZM224,272a48,48,0,1,1,48-48A48,48,0,0,1,224,272Zm80,56a24,24,0,1,1,24-24A24,24,0,0,1,304,328Z\"]\n};\nvar faVirusSlash = {\n prefix: 'fas',\n iconName: 'virus-slash',\n icon: [640, 512, [], \"e075\", \"M114,227.6H92.4C76.7,227.6,64,240.3,64,256s12.7,28.4,28.4,28.4H114c50.7,0,76.1,61.3,40.2,97.1L139,396.8 c-11.5,10.7-12.2,28.7-1.6,40.2s28.7,12.2,40.2,1.6c0.5-0.5,1.1-1,1.6-1.6l15.2-15.2c35.8-35.8,97.1-10.5,97.1,40.2v21.5 c0,15.7,12.8,28.4,28.5,28.4c15.7,0,28.4-12.7,28.4-28.4V462c0-26.6,17-45.9,38.2-53.4l-244.5-189 C133.7,224.7,123.9,227.5,114,227.6z M617,505.8l19.6-25.3c5.4-7,4.2-17-2.8-22.5L470.6,332c4.2-25.4,24.9-47.5,55.4-47.5h21.5 c15.7,0,28.4-12.7,28.4-28.4s-12.7-28.4-28.4-28.4H526c-50.7,0-76.1-61.3-40.2-97.1l15.2-15.3c10.7-11.5,10-29.5-1.6-40.2 c-10.9-10.1-27.7-10.1-38.6,0l-15.2,15.2c-35.8,35.8-97.1,10.5-97.1-40.2V28.5C348.4,12.7,335.7,0,320,0 c-15.7,0-28.4,12.7-28.4,28.4V50c0,50.7-61.3,76.1-97.1,40.2L179.2,75c-11.1-11.1-29.4-10.6-40.5,0.5L45.5,3.4 c-7-5.4-17-4.2-22.5,2.8L3.4,31.5c-5.4,7-4.2,17,2.8,22.5l588.4,454.7C601.5,514.1,611.6,512.8,617,505.8z M335.4,227.5l-62.9-48.6 c4.9-1.8,10.2-2.8,15.4-2.9c26.5,0,48,21.5,48,48C336,225.2,335.5,226.3,335.4,227.5z\"]\n};\nvar faViruses = {\n prefix: 'fas',\n iconName: 'viruses',\n icon: [640, 512, [], \"e076\", \"M624,352H611.88c-28.51,0-42.79-34.47-22.63-54.63l8.58-8.57a16,16,0,1,0-22.63-22.63l-8.57,8.58C546.47,294.91,512,280.63,512,252.12V240a16,16,0,0,0-32,0v12.12c0,28.51-34.47,42.79-54.63,22.63l-8.57-8.58a16,16,0,0,0-22.63,22.63l8.58,8.57c20.16,20.16,5.88,54.63-22.63,54.63H368a16,16,0,0,0,0,32h12.12c28.51,0,42.79,34.47,22.63,54.63l-8.58,8.57a16,16,0,1,0,22.63,22.63l8.57-8.58c20.16-20.16,54.63-5.88,54.63,22.63V496a16,16,0,0,0,32,0V483.88c0-28.51,34.47-42.79,54.63-22.63l8.57,8.58a16,16,0,1,0,22.63-22.63l-8.58-8.57C569.09,418.47,583.37,384,611.88,384H624a16,16,0,0,0,0-32ZM480,384a32,32,0,1,1,32-32A32,32,0,0,1,480,384ZM346.51,213.33h16.16a21.33,21.33,0,0,0,0-42.66H346.51c-38,0-57.05-46-30.17-72.84l11.43-11.44A21.33,21.33,0,0,0,297.6,56.23L286.17,67.66c-26.88,26.88-72.84,7.85-72.84-30.17V21.33a21.33,21.33,0,0,0-42.66,0V37.49c0,38-46,57.05-72.84,30.17L86.4,56.23A21.33,21.33,0,0,0,56.23,86.39L67.66,97.83c26.88,26.88,7.85,72.84-30.17,72.84H21.33a21.33,21.33,0,0,0,0,42.66H37.49c38,0,57.05,46,30.17,72.84L56.23,297.6A21.33,21.33,0,1,0,86.4,327.77l11.43-11.43c26.88-26.88,72.84-7.85,72.84,30.17v16.16a21.33,21.33,0,0,0,42.66,0V346.51c0-38,46-57.05,72.84-30.17l11.43,11.43a21.33,21.33,0,0,0,30.17-30.17l-11.43-11.43C289.46,259.29,308.49,213.33,346.51,213.33ZM160,192a32,32,0,1,1,32-32A32,32,0,0,1,160,192Zm80,32a16,16,0,1,1,16-16A16,16,0,0,1,240,224Z\"]\n};\nvar faVoicemail = {\n prefix: 'fas',\n iconName: 'voicemail',\n icon: [640, 512, [], \"f897\", \"M496 128a144 144 0 0 0-119.74 224H263.74A144 144 0 1 0 144 416h352a144 144 0 0 0 0-288zM64 272a80 80 0 1 1 80 80 80 80 0 0 1-80-80zm432 80a80 80 0 1 1 80-80 80 80 0 0 1-80 80z\"]\n};\nvar faVolleyballBall = {\n prefix: 'fas',\n iconName: 'volleyball-ball',\n icon: [512, 512, [], \"f45f\", \"M231.39 243.48a285.56 285.56 0 0 0-22.7-105.7c-90.8 42.4-157.5 122.4-180.3 216.8a249 249 0 0 0 56.9 81.1 333.87 333.87 0 0 1 146.1-192.2zm-36.9-134.4a284.23 284.23 0 0 0-57.4-70.7c-91 49.8-144.8 152.9-125 262.2 33.4-83.1 98.4-152 182.4-191.5zm187.6 165.1c8.6-99.8-27.3-197.5-97.5-264.4-14.7-1.7-51.6-5.5-98.9 8.5A333.87 333.87 0 0 1 279.19 241a285 285 0 0 0 102.9 33.18zm-124.7 9.5a286.33 286.33 0 0 0-80.2 72.6c82 57.3 184.5 75.1 277.5 47.8a247.15 247.15 0 0 0 42.2-89.9 336.1 336.1 0 0 1-80.9 10.4c-54.6-.1-108.9-14.1-158.6-40.9zm-98.3 99.7c-15.2 26-25.7 54.4-32.1 84.2a247.07 247.07 0 0 0 289-22.1c-112.9 16.1-203.3-24.8-256.9-62.1zm180.3-360.6c55.3 70.4 82.5 161.2 74.6 253.6a286.59 286.59 0 0 0 89.7-14.2c0-2 .3-4 .3-6 0-107.8-68.7-199.1-164.6-233.4z\"]\n};\nvar faVolumeDown = {\n prefix: 'fas',\n iconName: 'volume-down',\n icon: [384, 512, [], \"f027\", \"M215.03 72.04L126.06 161H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V89.02c0-21.47-25.96-31.98-40.97-16.98zm123.2 108.08c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 229.28 336 242.62 336 257c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.87z\"]\n};\nvar faVolumeMute = {\n prefix: 'fas',\n iconName: 'volume-mute',\n icon: [512, 512, [], \"f6a9\", \"M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zM461.64 256l45.64-45.64c6.3-6.3 6.3-16.52 0-22.82l-22.82-22.82c-6.3-6.3-16.52-6.3-22.82 0L416 210.36l-45.64-45.64c-6.3-6.3-16.52-6.3-22.82 0l-22.82 22.82c-6.3 6.3-6.3 16.52 0 22.82L370.36 256l-45.63 45.63c-6.3 6.3-6.3 16.52 0 22.82l22.82 22.82c6.3 6.3 16.52 6.3 22.82 0L416 301.64l45.64 45.64c6.3 6.3 16.52 6.3 22.82 0l22.82-22.82c6.3-6.3 6.3-16.52 0-22.82L461.64 256z\"]\n};\nvar faVolumeOff = {\n prefix: 'fas',\n iconName: 'volume-off',\n icon: [256, 512, [], \"f026\", \"M215 71l-89 89H24a24 24 0 0 0-24 24v144a24 24 0 0 0 24 24h102.06L215 441c15 15 41 4.47 41-17V88c0-21.47-26-32-41-17z\"]\n};\nvar faVolumeUp = {\n prefix: 'fas',\n iconName: 'volume-up',\n icon: [576, 512, [], \"f028\", \"M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zm233.32-51.08c-11.17-7.33-26.18-4.24-33.51 6.95-7.34 11.17-4.22 26.18 6.95 33.51 66.27 43.49 105.82 116.6 105.82 195.58 0 78.98-39.55 152.09-105.82 195.58-11.17 7.32-14.29 22.34-6.95 33.5 7.04 10.71 21.93 14.56 33.51 6.95C528.27 439.58 576 351.33 576 256S528.27 72.43 448.35 19.97zM480 256c0-63.53-32.06-121.94-85.77-156.24-11.19-7.14-26.03-3.82-33.12 7.46s-3.78 26.21 7.41 33.36C408.27 165.97 432 209.11 432 256s-23.73 90.03-63.48 115.42c-11.19 7.14-14.5 22.07-7.41 33.36 6.51 10.36 21.12 15.14 33.12 7.46C447.94 377.94 480 319.54 480 256zm-141.77-76.87c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 228.28 336 241.63 336 256c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.86z\"]\n};\nvar faVoteYea = {\n prefix: 'fas',\n iconName: 'vote-yea',\n icon: [640, 512, [], \"f772\", \"M608 320h-64v64h22.4c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8H96v-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h576c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32zm-96 64V64.3c0-17.9-14.5-32.3-32.3-32.3H160.4C142.5 32 128 46.5 128 64.3V384h384zM211.2 202l25.5-25.3c4.2-4.2 11-4.2 15.2.1l41.3 41.6 95.2-94.4c4.2-4.2 11-4.2 15.2.1l25.3 25.5c4.2 4.2 4.2 11-.1 15.2L300.5 292c-4.2 4.2-11 4.2-15.2-.1l-74.1-74.7c-4.3-4.2-4.2-11 0-15.2z\"]\n};\nvar faVrCardboard = {\n prefix: 'fas',\n iconName: 'vr-cardboard',\n icon: [640, 512, [], \"f729\", \"M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h160.22c25.19 0 48.03-14.77 58.36-37.74l27.74-61.64C286.21 331.08 302.35 320 320 320s33.79 11.08 41.68 28.62l27.74 61.64C399.75 433.23 422.6 448 447.78 448H608c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM160 304c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64zm320 0c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64z\"]\n};\nvar faWalking = {\n prefix: 'fas',\n iconName: 'walking',\n icon: [320, 512, [], \"f554\", \"M208 96c26.5 0 48-21.5 48-48S234.5 0 208 0s-48 21.5-48 48 21.5 48 48 48zm94.5 149.1l-23.3-11.8-9.7-29.4c-14.7-44.6-55.7-75.8-102.2-75.9-36-.1-55.9 10.1-93.3 25.2-21.6 8.7-39.3 25.2-49.7 46.2L17.6 213c-7.8 15.8-1.5 35 14.2 42.9 15.6 7.9 34.6 1.5 42.5-14.3L81 228c3.5-7 9.3-12.5 16.5-15.4l26.8-10.8-15.2 60.7c-5.2 20.8.4 42.9 14.9 58.8l59.9 65.4c7.2 7.9 12.3 17.4 14.9 27.7l18.3 73.3c4.3 17.1 21.7 27.6 38.8 23.3 17.1-4.3 27.6-21.7 23.3-38.8l-22.2-89c-2.6-10.3-7.7-19.9-14.9-27.7l-45.5-49.7 17.2-68.7 5.5 16.5c5.3 16.1 16.7 29.4 31.7 37l23.3 11.8c15.6 7.9 34.6 1.5 42.5-14.3 7.7-15.7 1.4-35.1-14.3-43zM73.6 385.8c-3.2 8.1-8 15.4-14.2 21.5l-50 50.1c-12.5 12.5-12.5 32.8 0 45.3s32.7 12.5 45.2 0l59.4-59.4c6.1-6.1 10.9-13.4 14.2-21.5l13.5-33.8c-55.3-60.3-38.7-41.8-47.4-53.7l-20.7 51.5z\"]\n};\nvar faWallet = {\n prefix: 'fas',\n iconName: 'wallet',\n icon: [512, 512, [], \"f555\", \"M461.2 128H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h384c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h397.2c28.02 0 50.8-21.53 50.8-48V176c0-26.47-22.78-48-50.8-48zM416 336c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faWarehouse = {\n prefix: 'fas',\n iconName: 'warehouse',\n icon: [640, 512, [], \"f494\", \"M504 352H136.4c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0 96H136.1c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0-192H136.6c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm106.5-139L338.4 3.7a48.15 48.15 0 0 0-36.9 0L29.5 117C11.7 124.5 0 141.9 0 161.3V504c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V256c0-17.6 14.6-32 32.6-32h382.8c18 0 32.6 14.4 32.6 32v248c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V161.3c0-19.4-11.7-36.8-29.5-44.3z\"]\n};\nvar faWater = {\n prefix: 'fas',\n iconName: 'water',\n icon: [576, 512, [], \"f773\", \"M562.1 383.9c-21.5-2.4-42.1-10.5-57.9-22.9-14.1-11.1-34.2-11.3-48.2 0-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3zm0-144c-21.5-2.4-42.1-10.5-57.9-22.9-14.1-11.1-34.2-11.3-48.2 0-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3zm0-144C540.6 93.4 520 85.4 504.2 73 490.1 61.9 470 61.7 456 73c-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3z\"]\n};\nvar faWaveSquare = {\n prefix: 'fas',\n iconName: 'wave-square',\n icon: [640, 512, [], \"f83e\", \"M476 480H324a36 36 0 0 1-36-36V96h-96v156a36 36 0 0 1-36 36H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h112V68a36 36 0 0 1 36-36h152a36 36 0 0 1 36 36v348h96V260a36 36 0 0 1 36-36h140a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H512v156a36 36 0 0 1-36 36z\"]\n};\nvar faWeight = {\n prefix: 'fas',\n iconName: 'weight',\n icon: [512, 512, [], \"f496\", \"M448 64h-25.98C438.44 92.28 448 125.01 448 160c0 105.87-86.13 192-192 192S64 265.87 64 160c0-34.99 9.56-67.72 25.98-96H64C28.71 64 0 92.71 0 128v320c0 35.29 28.71 64 64 64h384c35.29 0 64-28.71 64-64V128c0-35.29-28.71-64-64-64zM256 320c88.37 0 160-71.63 160-160S344.37 0 256 0 96 71.63 96 160s71.63 160 160 160zm-.3-151.94l33.58-78.36c3.5-8.17 12.94-11.92 21.03-8.41 8.12 3.48 11.88 12.89 8.41 21l-33.67 78.55C291.73 188 296 197.45 296 208c0 22.09-17.91 40-40 40s-40-17.91-40-40c0-21.98 17.76-39.77 39.7-39.94z\"]\n};\nvar faWeightHanging = {\n prefix: 'fas',\n iconName: 'weight-hanging',\n icon: [512, 512, [], \"f5cd\", \"M510.28 445.86l-73.03-292.13c-3.8-15.19-16.44-25.72-30.87-25.72h-60.25c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96s-96 42.98-96 96c0 11.28 2.3 21.95 5.88 32h-60.25c-14.43 0-27.08 10.54-30.87 25.72L1.72 445.86C-6.61 479.17 16.38 512 48.03 512h415.95c31.64 0 54.63-32.83 46.3-66.14zM256 128c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z\"]\n};\nvar faWheelchair = {\n prefix: 'fas',\n iconName: 'wheelchair',\n icon: [512, 512, [], \"f193\", \"M496.101 385.669l14.227 28.663c3.929 7.915.697 17.516-7.218 21.445l-65.465 32.886c-16.049 7.967-35.556 1.194-43.189-15.055L331.679 320H192c-15.925 0-29.426-11.71-31.679-27.475C126.433 55.308 128.38 70.044 128 64c0-36.358 30.318-65.635 67.052-63.929 33.271 1.545 60.048 28.905 60.925 62.201.868 32.933-23.152 60.423-54.608 65.039l4.67 32.69H336c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H215.182l4.572 32H352a32 32 0 0 1 28.962 18.392L438.477 396.8l36.178-18.349c7.915-3.929 17.517-.697 21.446 7.218zM311.358 352h-24.506c-7.788 54.204-54.528 96-110.852 96-61.757 0-112-50.243-112-112 0-41.505 22.694-77.809 56.324-97.156-3.712-25.965-6.844-47.86-9.488-66.333C45.956 198.464 0 261.963 0 336c0 97.047 78.953 176 176 176 71.87 0 133.806-43.308 161.11-105.192L311.358 352z\"]\n};\nvar faWifi = {\n prefix: 'fas',\n iconName: 'wifi',\n icon: [640, 512, [], \"f1eb\", \"M634.91 154.88C457.74-8.99 182.19-8.93 5.09 154.88c-6.66 6.16-6.79 16.59-.35 22.98l34.24 33.97c6.14 6.1 16.02 6.23 22.4.38 145.92-133.68 371.3-133.71 517.25 0 6.38 5.85 16.26 5.71 22.4-.38l34.24-33.97c6.43-6.39 6.3-16.82-.36-22.98zM320 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm202.67-83.59c-115.26-101.93-290.21-101.82-405.34 0-6.9 6.1-7.12 16.69-.57 23.15l34.44 33.99c6 5.92 15.66 6.32 22.05.8 83.95-72.57 209.74-72.41 293.49 0 6.39 5.52 16.05 5.13 22.05-.8l34.44-33.99c6.56-6.46 6.33-17.06-.56-23.15z\"]\n};\nvar faWind = {\n prefix: 'fas',\n iconName: 'wind',\n icon: [512, 512, [], \"f72e\", \"M156.7 256H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h142.2c15.9 0 30.8 10.9 33.4 26.6 3.3 20-12.1 37.4-31.6 37.4-14.1 0-26.1-9.2-30.4-21.9-2.1-6.3-8.6-10.1-15.2-10.1H81.6c-9.8 0-17.7 8.8-15.9 18.4 8.6 44.1 47.6 77.6 94.2 77.6 57.1 0 102.7-50.1 95.2-108.6C249 291 205.4 256 156.7 256zM16 224h336c59.7 0 106.8-54.8 93.8-116.7-7.6-36.2-36.9-65.5-73.1-73.1-55.4-11.6-105.1 24.9-114.9 75.5-1.9 9.6 6.1 18.3 15.8 18.3h32.8c6.7 0 13.1-3.8 15.2-10.1C325.9 105.2 337.9 96 352 96c19.4 0 34.9 17.4 31.6 37.4-2.6 15.7-17.4 26.6-33.4 26.6H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16zm384 32H243.7c19.3 16.6 33.2 38.8 39.8 64H400c26.5 0 48 21.5 48 48s-21.5 48-48 48c-17.9 0-33.3-9.9-41.6-24.4-2.9-5-8.7-7.6-14.5-7.6h-33.8c-10.9 0-19 10.8-15.3 21.1 17.8 50.6 70.5 84.8 129.4 72.3 41.2-8.7 75.1-41.6 84.7-82.7C526 321.5 470.5 256 400 256z\"]\n};\nvar faWindowClose = {\n prefix: 'fas',\n iconName: 'window-close',\n icon: [512, 512, [], \"f410\", \"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-83.6 290.5c4.8 4.8 4.8 12.6 0 17.4l-40.5 40.5c-4.8 4.8-12.6 4.8-17.4 0L256 313.3l-66.5 67.1c-4.8 4.8-12.6 4.8-17.4 0l-40.5-40.5c-4.8-4.8-4.8-12.6 0-17.4l67.1-66.5-67.1-66.5c-4.8-4.8-4.8-12.6 0-17.4l40.5-40.5c4.8-4.8 12.6-4.8 17.4 0l66.5 67.1 66.5-67.1c4.8-4.8 12.6-4.8 17.4 0l40.5 40.5c4.8 4.8 4.8 12.6 0 17.4L313.3 256l67.1 66.5z\"]\n};\nvar faWindowMaximize = {\n prefix: 'fas',\n iconName: 'window-maximize',\n icon: [512, 512, [], \"f2d0\", \"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16 160H64v-84c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12v84z\"]\n};\nvar faWindowMinimize = {\n prefix: 'fas',\n iconName: 'window-minimize',\n icon: [512, 512, [], \"f2d1\", \"M464 352H48c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48z\"]\n};\nvar faWindowRestore = {\n prefix: 'fas',\n iconName: 'window-restore',\n icon: [512, 512, [], \"f2d2\", \"M512 48v288c0 26.5-21.5 48-48 48h-48V176c0-44.1-35.9-80-80-80H128V48c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zM384 176v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zm-68 28c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v52h252v-52z\"]\n};\nvar faWineBottle = {\n prefix: 'fas',\n iconName: 'wine-bottle',\n icon: [512, 512, [], \"f72f\", \"M507.31 72.57L439.43 4.69c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l-76.67 76.67c-46.58-19.7-102.4-10.73-140.37 27.23L18.75 312.23c-24.99 24.99-24.99 65.52 0 90.51l90.51 90.51c24.99 24.99 65.52 24.99 90.51 0l158.39-158.39c37.96-37.96 46.93-93.79 27.23-140.37l76.67-76.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.24-6.24 6.24-16.37-.01-22.62zM179.22 423.29l-90.51-90.51 122.04-122.04 90.51 90.51-122.04 122.04z\"]\n};\nvar faWineGlass = {\n prefix: 'fas',\n iconName: 'wine-glass',\n icon: [288, 512, [], \"f4e3\", \"M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40z\"]\n};\nvar faWineGlassAlt = {\n prefix: 'fas',\n iconName: 'wine-glass-alt',\n icon: [288, 512, [], \"f5ce\", \"M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM61.75 48h164.5l7.17 80H54.58l7.17-80z\"]\n};\nvar faWonSign = {\n prefix: 'fas',\n iconName: 'won-sign',\n icon: [576, 512, [], \"f159\", \"M564 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-48l18.6-80.6c1.7-7.5-4-14.7-11.7-14.7h-46.1c-5.7 0-10.6 4-11.7 9.5L450.7 128H340.8l-19.7-86c-1.3-5.5-6.1-9.3-11.7-9.3h-44c-5.6 0-10.4 3.8-11.7 9.3l-20 86H125l-17.5-85.7c-1.1-5.6-6.1-9.6-11.8-9.6H53.6c-7.7 0-13.4 7.1-11.7 14.6L60 128H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h62.3l7.2 32H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h83.9l40.9 182.6c1.2 5.5 6.1 9.4 11.7 9.4h56.8c5.6 0 10.4-3.9 11.7-9.3L259.3 288h55.1l42.4 182.7c1.3 5.4 6.1 9.3 11.7 9.3h56.8c5.6 0 10.4-3.9 11.7-9.3L479.1 288H564c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-70.1l7.4-32zM183.8 342c-6.2 25.8-6.8 47.2-7.3 47.2h-1.1s-1.7-22-6.8-47.2l-11-54h38.8zm27.5-118h-66.8l-6.5-32h80.8zm62.9 0l2-8.6c1.9-8 3.5-16 4.8-23.4h11.8c1.3 7.4 2.9 15.4 4.8 23.4l2 8.6zm130.9 118c-5.1 25.2-6.8 47.2-6.8 47.2h-1.1c-.6 0-1.1-21.4-7.3-47.2l-12.4-54h39.1zm25.2-118h-67.4l-7.3-32h81.6z\"]\n};\nvar faWrench = {\n prefix: 'fas',\n iconName: 'wrench',\n icon: [512, 512, [], \"f0ad\", \"M507.73 109.1c-2.24-9.03-13.54-12.09-20.12-5.51l-74.36 74.36-67.88-11.31-11.31-67.88 74.36-74.36c6.62-6.62 3.43-17.9-5.66-20.16-47.38-11.74-99.55.91-136.58 37.93-39.64 39.64-50.55 97.1-34.05 147.2L18.74 402.76c-24.99 24.99-24.99 65.51 0 90.5 24.99 24.99 65.51 24.99 90.5 0l213.21-213.21c50.12 16.71 107.47 5.68 147.37-34.22 37.07-37.07 49.7-89.32 37.91-136.73zM64 472c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"]\n};\nvar faXRay = {\n prefix: 'fas',\n iconName: 'x-ray',\n icon: [640, 512, [], \"f497\", \"M240 384c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm160 32c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zM624 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zm0 448h-48V96H64v352H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM480 248c0 4.4-3.6 8-8 8H336v32h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h64c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48v-16h-64v16c0 26.5-21.5 48-48 48s-48-21.5-48-48 21.5-48 48-48h64v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-32H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h136v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-24c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v24h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h136c4.4 0 8 3.6 8 8v16z\"]\n};\nvar faYenSign = {\n prefix: 'fas',\n iconName: 'yen-sign',\n icon: [384, 512, [], \"f157\", \"M351.2 32h-65.3c-4.6 0-8.8 2.6-10.8 6.7l-55.4 113.2c-14.5 34.7-27.1 71.9-27.1 71.9h-1.3s-12.6-37.2-27.1-71.9L108.8 38.7c-2-4.1-6.2-6.7-10.8-6.7H32.8c-9.1 0-14.8 9.7-10.6 17.6L102.3 200H44c-6.6 0-12 5.4-12 12v32c0 6.6 5.4 12 12 12h88.2l19.8 37.2V320H44c-6.6 0-12 5.4-12 12v32c0 6.6 5.4 12 12 12h108v92c0 6.6 5.4 12 12 12h56c6.6 0 12-5.4 12-12v-92h108c6.6 0 12-5.4 12-12v-32c0-6.6-5.4-12-12-12H232v-26.8l19.8-37.2H340c6.6 0 12-5.4 12-12v-32c0-6.6-5.4-12-12-12h-58.3l80.1-150.4c4.3-7.9-1.5-17.6-10.6-17.6z\"]\n};\nvar faYinYang = {\n prefix: 'fas',\n iconName: 'yin-yang',\n icon: [496, 512, [], \"f6ad\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 376c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-128c-53.02 0-96 42.98-96 96s42.98 96 96 96c-106.04 0-192-85.96-192-192S141.96 64 248 64c53.02 0 96 42.98 96 96s-42.98 96-96 96zm0-128c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\"]\n};\nvar _iconsCache = {\n faAd: faAd,\n faAddressBook: faAddressBook,\n faAddressCard: faAddressCard,\n faAdjust: faAdjust,\n faAirFreshener: faAirFreshener,\n faAlignCenter: faAlignCenter,\n faAlignJustify: faAlignJustify,\n faAlignLeft: faAlignLeft,\n faAlignRight: faAlignRight,\n faAllergies: faAllergies,\n faAmbulance: faAmbulance,\n faAmericanSignLanguageInterpreting: faAmericanSignLanguageInterpreting,\n faAnchor: faAnchor,\n faAngleDoubleDown: faAngleDoubleDown,\n faAngleDoubleLeft: faAngleDoubleLeft,\n faAngleDoubleRight: faAngleDoubleRight,\n faAngleDoubleUp: faAngleDoubleUp,\n faAngleDown: faAngleDown,\n faAngleLeft: faAngleLeft,\n faAngleRight: faAngleRight,\n faAngleUp: faAngleUp,\n faAngry: faAngry,\n faAnkh: faAnkh,\n faAppleAlt: faAppleAlt,\n faArchive: faArchive,\n faArchway: faArchway,\n faArrowAltCircleDown: faArrowAltCircleDown,\n faArrowAltCircleLeft: faArrowAltCircleLeft,\n faArrowAltCircleRight: faArrowAltCircleRight,\n faArrowAltCircleUp: faArrowAltCircleUp,\n faArrowCircleDown: faArrowCircleDown,\n faArrowCircleLeft: faArrowCircleLeft,\n faArrowCircleRight: faArrowCircleRight,\n faArrowCircleUp: faArrowCircleUp,\n faArrowDown: faArrowDown,\n faArrowLeft: faArrowLeft,\n faArrowRight: faArrowRight,\n faArrowUp: faArrowUp,\n faArrowsAlt: faArrowsAlt,\n faArrowsAltH: faArrowsAltH,\n faArrowsAltV: faArrowsAltV,\n faAssistiveListeningSystems: faAssistiveListeningSystems,\n faAsterisk: faAsterisk,\n faAt: faAt,\n faAtlas: faAtlas,\n faAtom: faAtom,\n faAudioDescription: faAudioDescription,\n faAward: faAward,\n faBaby: faBaby,\n faBabyCarriage: faBabyCarriage,\n faBackspace: faBackspace,\n faBackward: faBackward,\n faBacon: faBacon,\n faBacteria: faBacteria,\n faBacterium: faBacterium,\n faBahai: faBahai,\n faBalanceScale: faBalanceScale,\n faBalanceScaleLeft: faBalanceScaleLeft,\n faBalanceScaleRight: faBalanceScaleRight,\n faBan: faBan,\n faBandAid: faBandAid,\n faBarcode: faBarcode,\n faBars: faBars,\n faBaseballBall: faBaseballBall,\n faBasketballBall: faBasketballBall,\n faBath: faBath,\n faBatteryEmpty: faBatteryEmpty,\n faBatteryFull: faBatteryFull,\n faBatteryHalf: faBatteryHalf,\n faBatteryQuarter: faBatteryQuarter,\n faBatteryThreeQuarters: faBatteryThreeQuarters,\n faBed: faBed,\n faBeer: faBeer,\n faBell: faBell,\n faBellSlash: faBellSlash,\n faBezierCurve: faBezierCurve,\n faBible: faBible,\n faBicycle: faBicycle,\n faBiking: faBiking,\n faBinoculars: faBinoculars,\n faBiohazard: faBiohazard,\n faBirthdayCake: faBirthdayCake,\n faBlender: faBlender,\n faBlenderPhone: faBlenderPhone,\n faBlind: faBlind,\n faBlog: faBlog,\n faBold: faBold,\n faBolt: faBolt,\n faBomb: faBomb,\n faBone: faBone,\n faBong: faBong,\n faBook: faBook,\n faBookDead: faBookDead,\n faBookMedical: faBookMedical,\n faBookOpen: faBookOpen,\n faBookReader: faBookReader,\n faBookmark: faBookmark,\n faBorderAll: faBorderAll,\n faBorderNone: faBorderNone,\n faBorderStyle: faBorderStyle,\n faBowlingBall: faBowlingBall,\n faBox: faBox,\n faBoxOpen: faBoxOpen,\n faBoxTissue: faBoxTissue,\n faBoxes: faBoxes,\n faBraille: faBraille,\n faBrain: faBrain,\n faBreadSlice: faBreadSlice,\n faBriefcase: faBriefcase,\n faBriefcaseMedical: faBriefcaseMedical,\n faBroadcastTower: faBroadcastTower,\n faBroom: faBroom,\n faBrush: faBrush,\n faBug: faBug,\n faBuilding: faBuilding,\n faBullhorn: faBullhorn,\n faBullseye: faBullseye,\n faBurn: faBurn,\n faBus: faBus,\n faBusAlt: faBusAlt,\n faBusinessTime: faBusinessTime,\n faCalculator: faCalculator,\n faCalendar: faCalendar,\n faCalendarAlt: faCalendarAlt,\n faCalendarCheck: faCalendarCheck,\n faCalendarDay: faCalendarDay,\n faCalendarMinus: faCalendarMinus,\n faCalendarPlus: faCalendarPlus,\n faCalendarTimes: faCalendarTimes,\n faCalendarWeek: faCalendarWeek,\n faCamera: faCamera,\n faCameraRetro: faCameraRetro,\n faCampground: faCampground,\n faCandyCane: faCandyCane,\n faCannabis: faCannabis,\n faCapsules: faCapsules,\n faCar: faCar,\n faCarAlt: faCarAlt,\n faCarBattery: faCarBattery,\n faCarCrash: faCarCrash,\n faCarSide: faCarSide,\n faCaravan: faCaravan,\n faCaretDown: faCaretDown,\n faCaretLeft: faCaretLeft,\n faCaretRight: faCaretRight,\n faCaretSquareDown: faCaretSquareDown,\n faCaretSquareLeft: faCaretSquareLeft,\n faCaretSquareRight: faCaretSquareRight,\n faCaretSquareUp: faCaretSquareUp,\n faCaretUp: faCaretUp,\n faCarrot: faCarrot,\n faCartArrowDown: faCartArrowDown,\n faCartPlus: faCartPlus,\n faCashRegister: faCashRegister,\n faCat: faCat,\n faCertificate: faCertificate,\n faChair: faChair,\n faChalkboard: faChalkboard,\n faChalkboardTeacher: faChalkboardTeacher,\n faChargingStation: faChargingStation,\n faChartArea: faChartArea,\n faChartBar: faChartBar,\n faChartLine: faChartLine,\n faChartPie: faChartPie,\n faCheck: faCheck,\n faCheckCircle: faCheckCircle,\n faCheckDouble: faCheckDouble,\n faCheckSquare: faCheckSquare,\n faCheese: faCheese,\n faChess: faChess,\n faChessBishop: faChessBishop,\n faChessBoard: faChessBoard,\n faChessKing: faChessKing,\n faChessKnight: faChessKnight,\n faChessPawn: faChessPawn,\n faChessQueen: faChessQueen,\n faChessRook: faChessRook,\n faChevronCircleDown: faChevronCircleDown,\n faChevronCircleLeft: faChevronCircleLeft,\n faChevronCircleRight: faChevronCircleRight,\n faChevronCircleUp: faChevronCircleUp,\n faChevronDown: faChevronDown,\n faChevronLeft: faChevronLeft,\n faChevronRight: faChevronRight,\n faChevronUp: faChevronUp,\n faChild: faChild,\n faChurch: faChurch,\n faCircle: faCircle,\n faCircleNotch: faCircleNotch,\n faCity: faCity,\n faClinicMedical: faClinicMedical,\n faClipboard: faClipboard,\n faClipboardCheck: faClipboardCheck,\n faClipboardList: faClipboardList,\n faClock: faClock,\n faClone: faClone,\n faClosedCaptioning: faClosedCaptioning,\n faCloud: faCloud,\n faCloudDownloadAlt: faCloudDownloadAlt,\n faCloudMeatball: faCloudMeatball,\n faCloudMoon: faCloudMoon,\n faCloudMoonRain: faCloudMoonRain,\n faCloudRain: faCloudRain,\n faCloudShowersHeavy: faCloudShowersHeavy,\n faCloudSun: faCloudSun,\n faCloudSunRain: faCloudSunRain,\n faCloudUploadAlt: faCloudUploadAlt,\n faCocktail: faCocktail,\n faCode: faCode,\n faCodeBranch: faCodeBranch,\n faCoffee: faCoffee,\n faCog: faCog,\n faCogs: faCogs,\n faCoins: faCoins,\n faColumns: faColumns,\n faComment: faComment,\n faCommentAlt: faCommentAlt,\n faCommentDollar: faCommentDollar,\n faCommentDots: faCommentDots,\n faCommentMedical: faCommentMedical,\n faCommentSlash: faCommentSlash,\n faComments: faComments,\n faCommentsDollar: faCommentsDollar,\n faCompactDisc: faCompactDisc,\n faCompass: faCompass,\n faCompress: faCompress,\n faCompressAlt: faCompressAlt,\n faCompressArrowsAlt: faCompressArrowsAlt,\n faConciergeBell: faConciergeBell,\n faCookie: faCookie,\n faCookieBite: faCookieBite,\n faCopy: faCopy,\n faCopyright: faCopyright,\n faCouch: faCouch,\n faCreditCard: faCreditCard,\n faCrop: faCrop,\n faCropAlt: faCropAlt,\n faCross: faCross,\n faCrosshairs: faCrosshairs,\n faCrow: faCrow,\n faCrown: faCrown,\n faCrutch: faCrutch,\n faCube: faCube,\n faCubes: faCubes,\n faCut: faCut,\n faDatabase: faDatabase,\n faDeaf: faDeaf,\n faDemocrat: faDemocrat,\n faDesktop: faDesktop,\n faDharmachakra: faDharmachakra,\n faDiagnoses: faDiagnoses,\n faDice: faDice,\n faDiceD20: faDiceD20,\n faDiceD6: faDiceD6,\n faDiceFive: faDiceFive,\n faDiceFour: faDiceFour,\n faDiceOne: faDiceOne,\n faDiceSix: faDiceSix,\n faDiceThree: faDiceThree,\n faDiceTwo: faDiceTwo,\n faDigitalTachograph: faDigitalTachograph,\n faDirections: faDirections,\n faDisease: faDisease,\n faDivide: faDivide,\n faDizzy: faDizzy,\n faDna: faDna,\n faDog: faDog,\n faDollarSign: faDollarSign,\n faDolly: faDolly,\n faDollyFlatbed: faDollyFlatbed,\n faDonate: faDonate,\n faDoorClosed: faDoorClosed,\n faDoorOpen: faDoorOpen,\n faDotCircle: faDotCircle,\n faDove: faDove,\n faDownload: faDownload,\n faDraftingCompass: faDraftingCompass,\n faDragon: faDragon,\n faDrawPolygon: faDrawPolygon,\n faDrum: faDrum,\n faDrumSteelpan: faDrumSteelpan,\n faDrumstickBite: faDrumstickBite,\n faDumbbell: faDumbbell,\n faDumpster: faDumpster,\n faDumpsterFire: faDumpsterFire,\n faDungeon: faDungeon,\n faEdit: faEdit,\n faEgg: faEgg,\n faEject: faEject,\n faEllipsisH: faEllipsisH,\n faEllipsisV: faEllipsisV,\n faEnvelope: faEnvelope,\n faEnvelopeOpen: faEnvelopeOpen,\n faEnvelopeOpenText: faEnvelopeOpenText,\n faEnvelopeSquare: faEnvelopeSquare,\n faEquals: faEquals,\n faEraser: faEraser,\n faEthernet: faEthernet,\n faEuroSign: faEuroSign,\n faExchangeAlt: faExchangeAlt,\n faExclamation: faExclamation,\n faExclamationCircle: faExclamationCircle,\n faExclamationTriangle: faExclamationTriangle,\n faExpand: faExpand,\n faExpandAlt: faExpandAlt,\n faExpandArrowsAlt: faExpandArrowsAlt,\n faExternalLinkAlt: faExternalLinkAlt,\n faExternalLinkSquareAlt: faExternalLinkSquareAlt,\n faEye: faEye,\n faEyeDropper: faEyeDropper,\n faEyeSlash: faEyeSlash,\n faFan: faFan,\n faFastBackward: faFastBackward,\n faFastForward: faFastForward,\n faFaucet: faFaucet,\n faFax: faFax,\n faFeather: faFeather,\n faFeatherAlt: faFeatherAlt,\n faFemale: faFemale,\n faFighterJet: faFighterJet,\n faFile: faFile,\n faFileAlt: faFileAlt,\n faFileArchive: faFileArchive,\n faFileAudio: faFileAudio,\n faFileCode: faFileCode,\n faFileContract: faFileContract,\n faFileCsv: faFileCsv,\n faFileDownload: faFileDownload,\n faFileExcel: faFileExcel,\n faFileExport: faFileExport,\n faFileImage: faFileImage,\n faFileImport: faFileImport,\n faFileInvoice: faFileInvoice,\n faFileInvoiceDollar: faFileInvoiceDollar,\n faFileMedical: faFileMedical,\n faFileMedicalAlt: faFileMedicalAlt,\n faFilePdf: faFilePdf,\n faFilePowerpoint: faFilePowerpoint,\n faFilePrescription: faFilePrescription,\n faFileSignature: faFileSignature,\n faFileUpload: faFileUpload,\n faFileVideo: faFileVideo,\n faFileWord: faFileWord,\n faFill: faFill,\n faFillDrip: faFillDrip,\n faFilm: faFilm,\n faFilter: faFilter,\n faFingerprint: faFingerprint,\n faFire: faFire,\n faFireAlt: faFireAlt,\n faFireExtinguisher: faFireExtinguisher,\n faFirstAid: faFirstAid,\n faFish: faFish,\n faFistRaised: faFistRaised,\n faFlag: faFlag,\n faFlagCheckered: faFlagCheckered,\n faFlagUsa: faFlagUsa,\n faFlask: faFlask,\n faFlushed: faFlushed,\n faFolder: faFolder,\n faFolderMinus: faFolderMinus,\n faFolderOpen: faFolderOpen,\n faFolderPlus: faFolderPlus,\n faFont: faFont,\n faFontAwesomeLogoFull: faFontAwesomeLogoFull,\n faFootballBall: faFootballBall,\n faForward: faForward,\n faFrog: faFrog,\n faFrown: faFrown,\n faFrownOpen: faFrownOpen,\n faFunnelDollar: faFunnelDollar,\n faFutbol: faFutbol,\n faGamepad: faGamepad,\n faGasPump: faGasPump,\n faGavel: faGavel,\n faGem: faGem,\n faGenderless: faGenderless,\n faGhost: faGhost,\n faGift: faGift,\n faGifts: faGifts,\n faGlassCheers: faGlassCheers,\n faGlassMartini: faGlassMartini,\n faGlassMartiniAlt: faGlassMartiniAlt,\n faGlassWhiskey: faGlassWhiskey,\n faGlasses: faGlasses,\n faGlobe: faGlobe,\n faGlobeAfrica: faGlobeAfrica,\n faGlobeAmericas: faGlobeAmericas,\n faGlobeAsia: faGlobeAsia,\n faGlobeEurope: faGlobeEurope,\n faGolfBall: faGolfBall,\n faGopuram: faGopuram,\n faGraduationCap: faGraduationCap,\n faGreaterThan: faGreaterThan,\n faGreaterThanEqual: faGreaterThanEqual,\n faGrimace: faGrimace,\n faGrin: faGrin,\n faGrinAlt: faGrinAlt,\n faGrinBeam: faGrinBeam,\n faGrinBeamSweat: faGrinBeamSweat,\n faGrinHearts: faGrinHearts,\n faGrinSquint: faGrinSquint,\n faGrinSquintTears: faGrinSquintTears,\n faGrinStars: faGrinStars,\n faGrinTears: faGrinTears,\n faGrinTongue: faGrinTongue,\n faGrinTongueSquint: faGrinTongueSquint,\n faGrinTongueWink: faGrinTongueWink,\n faGrinWink: faGrinWink,\n faGripHorizontal: faGripHorizontal,\n faGripLines: faGripLines,\n faGripLinesVertical: faGripLinesVertical,\n faGripVertical: faGripVertical,\n faGuitar: faGuitar,\n faHSquare: faHSquare,\n faHamburger: faHamburger,\n faHammer: faHammer,\n faHamsa: faHamsa,\n faHandHolding: faHandHolding,\n faHandHoldingHeart: faHandHoldingHeart,\n faHandHoldingMedical: faHandHoldingMedical,\n faHandHoldingUsd: faHandHoldingUsd,\n faHandHoldingWater: faHandHoldingWater,\n faHandLizard: faHandLizard,\n faHandMiddleFinger: faHandMiddleFinger,\n faHandPaper: faHandPaper,\n faHandPeace: faHandPeace,\n faHandPointDown: faHandPointDown,\n faHandPointLeft: faHandPointLeft,\n faHandPointRight: faHandPointRight,\n faHandPointUp: faHandPointUp,\n faHandPointer: faHandPointer,\n faHandRock: faHandRock,\n faHandScissors: faHandScissors,\n faHandSparkles: faHandSparkles,\n faHandSpock: faHandSpock,\n faHands: faHands,\n faHandsHelping: faHandsHelping,\n faHandsWash: faHandsWash,\n faHandshake: faHandshake,\n faHandshakeAltSlash: faHandshakeAltSlash,\n faHandshakeSlash: faHandshakeSlash,\n faHanukiah: faHanukiah,\n faHardHat: faHardHat,\n faHashtag: faHashtag,\n faHatCowboy: faHatCowboy,\n faHatCowboySide: faHatCowboySide,\n faHatWizard: faHatWizard,\n faHdd: faHdd,\n faHeadSideCough: faHeadSideCough,\n faHeadSideCoughSlash: faHeadSideCoughSlash,\n faHeadSideMask: faHeadSideMask,\n faHeadSideVirus: faHeadSideVirus,\n faHeading: faHeading,\n faHeadphones: faHeadphones,\n faHeadphonesAlt: faHeadphonesAlt,\n faHeadset: faHeadset,\n faHeart: faHeart,\n faHeartBroken: faHeartBroken,\n faHeartbeat: faHeartbeat,\n faHelicopter: faHelicopter,\n faHighlighter: faHighlighter,\n faHiking: faHiking,\n faHippo: faHippo,\n faHistory: faHistory,\n faHockeyPuck: faHockeyPuck,\n faHollyBerry: faHollyBerry,\n faHome: faHome,\n faHorse: faHorse,\n faHorseHead: faHorseHead,\n faHospital: faHospital,\n faHospitalAlt: faHospitalAlt,\n faHospitalSymbol: faHospitalSymbol,\n faHospitalUser: faHospitalUser,\n faHotTub: faHotTub,\n faHotdog: faHotdog,\n faHotel: faHotel,\n faHourglass: faHourglass,\n faHourglassEnd: faHourglassEnd,\n faHourglassHalf: faHourglassHalf,\n faHourglassStart: faHourglassStart,\n faHouseDamage: faHouseDamage,\n faHouseUser: faHouseUser,\n faHryvnia: faHryvnia,\n faICursor: faICursor,\n faIceCream: faIceCream,\n faIcicles: faIcicles,\n faIcons: faIcons,\n faIdBadge: faIdBadge,\n faIdCard: faIdCard,\n faIdCardAlt: faIdCardAlt,\n faIgloo: faIgloo,\n faImage: faImage,\n faImages: faImages,\n faInbox: faInbox,\n faIndent: faIndent,\n faIndustry: faIndustry,\n faInfinity: faInfinity,\n faInfo: faInfo,\n faInfoCircle: faInfoCircle,\n faItalic: faItalic,\n faJedi: faJedi,\n faJoint: faJoint,\n faJournalWhills: faJournalWhills,\n faKaaba: faKaaba,\n faKey: faKey,\n faKeyboard: faKeyboard,\n faKhanda: faKhanda,\n faKiss: faKiss,\n faKissBeam: faKissBeam,\n faKissWinkHeart: faKissWinkHeart,\n faKiwiBird: faKiwiBird,\n faLandmark: faLandmark,\n faLanguage: faLanguage,\n faLaptop: faLaptop,\n faLaptopCode: faLaptopCode,\n faLaptopHouse: faLaptopHouse,\n faLaptopMedical: faLaptopMedical,\n faLaugh: faLaugh,\n faLaughBeam: faLaughBeam,\n faLaughSquint: faLaughSquint,\n faLaughWink: faLaughWink,\n faLayerGroup: faLayerGroup,\n faLeaf: faLeaf,\n faLemon: faLemon,\n faLessThan: faLessThan,\n faLessThanEqual: faLessThanEqual,\n faLevelDownAlt: faLevelDownAlt,\n faLevelUpAlt: faLevelUpAlt,\n faLifeRing: faLifeRing,\n faLightbulb: faLightbulb,\n faLink: faLink,\n faLiraSign: faLiraSign,\n faList: faList,\n faListAlt: faListAlt,\n faListOl: faListOl,\n faListUl: faListUl,\n faLocationArrow: faLocationArrow,\n faLock: faLock,\n faLockOpen: faLockOpen,\n faLongArrowAltDown: faLongArrowAltDown,\n faLongArrowAltLeft: faLongArrowAltLeft,\n faLongArrowAltRight: faLongArrowAltRight,\n faLongArrowAltUp: faLongArrowAltUp,\n faLowVision: faLowVision,\n faLuggageCart: faLuggageCart,\n faLungs: faLungs,\n faLungsVirus: faLungsVirus,\n faMagic: faMagic,\n faMagnet: faMagnet,\n faMailBulk: faMailBulk,\n faMale: faMale,\n faMap: faMap,\n faMapMarked: faMapMarked,\n faMapMarkedAlt: faMapMarkedAlt,\n faMapMarker: faMapMarker,\n faMapMarkerAlt: faMapMarkerAlt,\n faMapPin: faMapPin,\n faMapSigns: faMapSigns,\n faMarker: faMarker,\n faMars: faMars,\n faMarsDouble: faMarsDouble,\n faMarsStroke: faMarsStroke,\n faMarsStrokeH: faMarsStrokeH,\n faMarsStrokeV: faMarsStrokeV,\n faMask: faMask,\n faMedal: faMedal,\n faMedkit: faMedkit,\n faMeh: faMeh,\n faMehBlank: faMehBlank,\n faMehRollingEyes: faMehRollingEyes,\n faMemory: faMemory,\n faMenorah: faMenorah,\n faMercury: faMercury,\n faMeteor: faMeteor,\n faMicrochip: faMicrochip,\n faMicrophone: faMicrophone,\n faMicrophoneAlt: faMicrophoneAlt,\n faMicrophoneAltSlash: faMicrophoneAltSlash,\n faMicrophoneSlash: faMicrophoneSlash,\n faMicroscope: faMicroscope,\n faMinus: faMinus,\n faMinusCircle: faMinusCircle,\n faMinusSquare: faMinusSquare,\n faMitten: faMitten,\n faMobile: faMobile,\n faMobileAlt: faMobileAlt,\n faMoneyBill: faMoneyBill,\n faMoneyBillAlt: faMoneyBillAlt,\n faMoneyBillWave: faMoneyBillWave,\n faMoneyBillWaveAlt: faMoneyBillWaveAlt,\n faMoneyCheck: faMoneyCheck,\n faMoneyCheckAlt: faMoneyCheckAlt,\n faMonument: faMonument,\n faMoon: faMoon,\n faMortarPestle: faMortarPestle,\n faMosque: faMosque,\n faMotorcycle: faMotorcycle,\n faMountain: faMountain,\n faMouse: faMouse,\n faMousePointer: faMousePointer,\n faMugHot: faMugHot,\n faMusic: faMusic,\n faNetworkWired: faNetworkWired,\n faNeuter: faNeuter,\n faNewspaper: faNewspaper,\n faNotEqual: faNotEqual,\n faNotesMedical: faNotesMedical,\n faObjectGroup: faObjectGroup,\n faObjectUngroup: faObjectUngroup,\n faOilCan: faOilCan,\n faOm: faOm,\n faOtter: faOtter,\n faOutdent: faOutdent,\n faPager: faPager,\n faPaintBrush: faPaintBrush,\n faPaintRoller: faPaintRoller,\n faPalette: faPalette,\n faPallet: faPallet,\n faPaperPlane: faPaperPlane,\n faPaperclip: faPaperclip,\n faParachuteBox: faParachuteBox,\n faParagraph: faParagraph,\n faParking: faParking,\n faPassport: faPassport,\n faPastafarianism: faPastafarianism,\n faPaste: faPaste,\n faPause: faPause,\n faPauseCircle: faPauseCircle,\n faPaw: faPaw,\n faPeace: faPeace,\n faPen: faPen,\n faPenAlt: faPenAlt,\n faPenFancy: faPenFancy,\n faPenNib: faPenNib,\n faPenSquare: faPenSquare,\n faPencilAlt: faPencilAlt,\n faPencilRuler: faPencilRuler,\n faPeopleArrows: faPeopleArrows,\n faPeopleCarry: faPeopleCarry,\n faPepperHot: faPepperHot,\n faPercent: faPercent,\n faPercentage: faPercentage,\n faPersonBooth: faPersonBooth,\n faPhone: faPhone,\n faPhoneAlt: faPhoneAlt,\n faPhoneSlash: faPhoneSlash,\n faPhoneSquare: faPhoneSquare,\n faPhoneSquareAlt: faPhoneSquareAlt,\n faPhoneVolume: faPhoneVolume,\n faPhotoVideo: faPhotoVideo,\n faPiggyBank: faPiggyBank,\n faPills: faPills,\n faPizzaSlice: faPizzaSlice,\n faPlaceOfWorship: faPlaceOfWorship,\n faPlane: faPlane,\n faPlaneArrival: faPlaneArrival,\n faPlaneDeparture: faPlaneDeparture,\n faPlaneSlash: faPlaneSlash,\n faPlay: faPlay,\n faPlayCircle: faPlayCircle,\n faPlug: faPlug,\n faPlus: faPlus,\n faPlusCircle: faPlusCircle,\n faPlusSquare: faPlusSquare,\n faPodcast: faPodcast,\n faPoll: faPoll,\n faPollH: faPollH,\n faPoo: faPoo,\n faPooStorm: faPooStorm,\n faPoop: faPoop,\n faPortrait: faPortrait,\n faPoundSign: faPoundSign,\n faPowerOff: faPowerOff,\n faPray: faPray,\n faPrayingHands: faPrayingHands,\n faPrescription: faPrescription,\n faPrescriptionBottle: faPrescriptionBottle,\n faPrescriptionBottleAlt: faPrescriptionBottleAlt,\n faPrint: faPrint,\n faProcedures: faProcedures,\n faProjectDiagram: faProjectDiagram,\n faPumpMedical: faPumpMedical,\n faPumpSoap: faPumpSoap,\n faPuzzlePiece: faPuzzlePiece,\n faQrcode: faQrcode,\n faQuestion: faQuestion,\n faQuestionCircle: faQuestionCircle,\n faQuidditch: faQuidditch,\n faQuoteLeft: faQuoteLeft,\n faQuoteRight: faQuoteRight,\n faQuran: faQuran,\n faRadiation: faRadiation,\n faRadiationAlt: faRadiationAlt,\n faRainbow: faRainbow,\n faRandom: faRandom,\n faReceipt: faReceipt,\n faRecordVinyl: faRecordVinyl,\n faRecycle: faRecycle,\n faRedo: faRedo,\n faRedoAlt: faRedoAlt,\n faRegistered: faRegistered,\n faRemoveFormat: faRemoveFormat,\n faReply: faReply,\n faReplyAll: faReplyAll,\n faRepublican: faRepublican,\n faRestroom: faRestroom,\n faRetweet: faRetweet,\n faRibbon: faRibbon,\n faRing: faRing,\n faRoad: faRoad,\n faRobot: faRobot,\n faRocket: faRocket,\n faRoute: faRoute,\n faRss: faRss,\n faRssSquare: faRssSquare,\n faRubleSign: faRubleSign,\n faRuler: faRuler,\n faRulerCombined: faRulerCombined,\n faRulerHorizontal: faRulerHorizontal,\n faRulerVertical: faRulerVertical,\n faRunning: faRunning,\n faRupeeSign: faRupeeSign,\n faSadCry: faSadCry,\n faSadTear: faSadTear,\n faSatellite: faSatellite,\n faSatelliteDish: faSatelliteDish,\n faSave: faSave,\n faSchool: faSchool,\n faScrewdriver: faScrewdriver,\n faScroll: faScroll,\n faSdCard: faSdCard,\n faSearch: faSearch,\n faSearchDollar: faSearchDollar,\n faSearchLocation: faSearchLocation,\n faSearchMinus: faSearchMinus,\n faSearchPlus: faSearchPlus,\n faSeedling: faSeedling,\n faServer: faServer,\n faShapes: faShapes,\n faShare: faShare,\n faShareAlt: faShareAlt,\n faShareAltSquare: faShareAltSquare,\n faShareSquare: faShareSquare,\n faShekelSign: faShekelSign,\n faShieldAlt: faShieldAlt,\n faShieldVirus: faShieldVirus,\n faShip: faShip,\n faShippingFast: faShippingFast,\n faShoePrints: faShoePrints,\n faShoppingBag: faShoppingBag,\n faShoppingBasket: faShoppingBasket,\n faShoppingCart: faShoppingCart,\n faShower: faShower,\n faShuttleVan: faShuttleVan,\n faSign: faSign,\n faSignInAlt: faSignInAlt,\n faSignLanguage: faSignLanguage,\n faSignOutAlt: faSignOutAlt,\n faSignal: faSignal,\n faSignature: faSignature,\n faSimCard: faSimCard,\n faSink: faSink,\n faSitemap: faSitemap,\n faSkating: faSkating,\n faSkiing: faSkiing,\n faSkiingNordic: faSkiingNordic,\n faSkull: faSkull,\n faSkullCrossbones: faSkullCrossbones,\n faSlash: faSlash,\n faSleigh: faSleigh,\n faSlidersH: faSlidersH,\n faSmile: faSmile,\n faSmileBeam: faSmileBeam,\n faSmileWink: faSmileWink,\n faSmog: faSmog,\n faSmoking: faSmoking,\n faSmokingBan: faSmokingBan,\n faSms: faSms,\n faSnowboarding: faSnowboarding,\n faSnowflake: faSnowflake,\n faSnowman: faSnowman,\n faSnowplow: faSnowplow,\n faSoap: faSoap,\n faSocks: faSocks,\n faSolarPanel: faSolarPanel,\n faSort: faSort,\n faSortAlphaDown: faSortAlphaDown,\n faSortAlphaDownAlt: faSortAlphaDownAlt,\n faSortAlphaUp: faSortAlphaUp,\n faSortAlphaUpAlt: faSortAlphaUpAlt,\n faSortAmountDown: faSortAmountDown,\n faSortAmountDownAlt: faSortAmountDownAlt,\n faSortAmountUp: faSortAmountUp,\n faSortAmountUpAlt: faSortAmountUpAlt,\n faSortDown: faSortDown,\n faSortNumericDown: faSortNumericDown,\n faSortNumericDownAlt: faSortNumericDownAlt,\n faSortNumericUp: faSortNumericUp,\n faSortNumericUpAlt: faSortNumericUpAlt,\n faSortUp: faSortUp,\n faSpa: faSpa,\n faSpaceShuttle: faSpaceShuttle,\n faSpellCheck: faSpellCheck,\n faSpider: faSpider,\n faSpinner: faSpinner,\n faSplotch: faSplotch,\n faSprayCan: faSprayCan,\n faSquare: faSquare,\n faSquareFull: faSquareFull,\n faSquareRootAlt: faSquareRootAlt,\n faStamp: faStamp,\n faStar: faStar,\n faStarAndCrescent: faStarAndCrescent,\n faStarHalf: faStarHalf,\n faStarHalfAlt: faStarHalfAlt,\n faStarOfDavid: faStarOfDavid,\n faStarOfLife: faStarOfLife,\n faStepBackward: faStepBackward,\n faStepForward: faStepForward,\n faStethoscope: faStethoscope,\n faStickyNote: faStickyNote,\n faStop: faStop,\n faStopCircle: faStopCircle,\n faStopwatch: faStopwatch,\n faStopwatch20: faStopwatch20,\n faStore: faStore,\n faStoreAlt: faStoreAlt,\n faStoreAltSlash: faStoreAltSlash,\n faStoreSlash: faStoreSlash,\n faStream: faStream,\n faStreetView: faStreetView,\n faStrikethrough: faStrikethrough,\n faStroopwafel: faStroopwafel,\n faSubscript: faSubscript,\n faSubway: faSubway,\n faSuitcase: faSuitcase,\n faSuitcaseRolling: faSuitcaseRolling,\n faSun: faSun,\n faSuperscript: faSuperscript,\n faSurprise: faSurprise,\n faSwatchbook: faSwatchbook,\n faSwimmer: faSwimmer,\n faSwimmingPool: faSwimmingPool,\n faSynagogue: faSynagogue,\n faSync: faSync,\n faSyncAlt: faSyncAlt,\n faSyringe: faSyringe,\n faTable: faTable,\n faTableTennis: faTableTennis,\n faTablet: faTablet,\n faTabletAlt: faTabletAlt,\n faTablets: faTablets,\n faTachometerAlt: faTachometerAlt,\n faTag: faTag,\n faTags: faTags,\n faTape: faTape,\n faTasks: faTasks,\n faTaxi: faTaxi,\n faTeeth: faTeeth,\n faTeethOpen: faTeethOpen,\n faTemperatureHigh: faTemperatureHigh,\n faTemperatureLow: faTemperatureLow,\n faTenge: faTenge,\n faTerminal: faTerminal,\n faTextHeight: faTextHeight,\n faTextWidth: faTextWidth,\n faTh: faTh,\n faThLarge: faThLarge,\n faThList: faThList,\n faTheaterMasks: faTheaterMasks,\n faThermometer: faThermometer,\n faThermometerEmpty: faThermometerEmpty,\n faThermometerFull: faThermometerFull,\n faThermometerHalf: faThermometerHalf,\n faThermometerQuarter: faThermometerQuarter,\n faThermometerThreeQuarters: faThermometerThreeQuarters,\n faThumbsDown: faThumbsDown,\n faThumbsUp: faThumbsUp,\n faThumbtack: faThumbtack,\n faTicketAlt: faTicketAlt,\n faTimes: faTimes,\n faTimesCircle: faTimesCircle,\n faTint: faTint,\n faTintSlash: faTintSlash,\n faTired: faTired,\n faToggleOff: faToggleOff,\n faToggleOn: faToggleOn,\n faToilet: faToilet,\n faToiletPaper: faToiletPaper,\n faToiletPaperSlash: faToiletPaperSlash,\n faToolbox: faToolbox,\n faTools: faTools,\n faTooth: faTooth,\n faTorah: faTorah,\n faToriiGate: faToriiGate,\n faTractor: faTractor,\n faTrademark: faTrademark,\n faTrafficLight: faTrafficLight,\n faTrailer: faTrailer,\n faTrain: faTrain,\n faTram: faTram,\n faTransgender: faTransgender,\n faTransgenderAlt: faTransgenderAlt,\n faTrash: faTrash,\n faTrashAlt: faTrashAlt,\n faTrashRestore: faTrashRestore,\n faTrashRestoreAlt: faTrashRestoreAlt,\n faTree: faTree,\n faTrophy: faTrophy,\n faTruck: faTruck,\n faTruckLoading: faTruckLoading,\n faTruckMonster: faTruckMonster,\n faTruckMoving: faTruckMoving,\n faTruckPickup: faTruckPickup,\n faTshirt: faTshirt,\n faTty: faTty,\n faTv: faTv,\n faUmbrella: faUmbrella,\n faUmbrellaBeach: faUmbrellaBeach,\n faUnderline: faUnderline,\n faUndo: faUndo,\n faUndoAlt: faUndoAlt,\n faUniversalAccess: faUniversalAccess,\n faUniversity: faUniversity,\n faUnlink: faUnlink,\n faUnlock: faUnlock,\n faUnlockAlt: faUnlockAlt,\n faUpload: faUpload,\n faUser: faUser,\n faUserAlt: faUserAlt,\n faUserAltSlash: faUserAltSlash,\n faUserAstronaut: faUserAstronaut,\n faUserCheck: faUserCheck,\n faUserCircle: faUserCircle,\n faUserClock: faUserClock,\n faUserCog: faUserCog,\n faUserEdit: faUserEdit,\n faUserFriends: faUserFriends,\n faUserGraduate: faUserGraduate,\n faUserInjured: faUserInjured,\n faUserLock: faUserLock,\n faUserMd: faUserMd,\n faUserMinus: faUserMinus,\n faUserNinja: faUserNinja,\n faUserNurse: faUserNurse,\n faUserPlus: faUserPlus,\n faUserSecret: faUserSecret,\n faUserShield: faUserShield,\n faUserSlash: faUserSlash,\n faUserTag: faUserTag,\n faUserTie: faUserTie,\n faUserTimes: faUserTimes,\n faUsers: faUsers,\n faUsersCog: faUsersCog,\n faUsersSlash: faUsersSlash,\n faUtensilSpoon: faUtensilSpoon,\n faUtensils: faUtensils,\n faVectorSquare: faVectorSquare,\n faVenus: faVenus,\n faVenusDouble: faVenusDouble,\n faVenusMars: faVenusMars,\n faVest: faVest,\n faVestPatches: faVestPatches,\n faVial: faVial,\n faVials: faVials,\n faVideo: faVideo,\n faVideoSlash: faVideoSlash,\n faVihara: faVihara,\n faVirus: faVirus,\n faVirusSlash: faVirusSlash,\n faViruses: faViruses,\n faVoicemail: faVoicemail,\n faVolleyballBall: faVolleyballBall,\n faVolumeDown: faVolumeDown,\n faVolumeMute: faVolumeMute,\n faVolumeOff: faVolumeOff,\n faVolumeUp: faVolumeUp,\n faVoteYea: faVoteYea,\n faVrCardboard: faVrCardboard,\n faWalking: faWalking,\n faWallet: faWallet,\n faWarehouse: faWarehouse,\n faWater: faWater,\n faWaveSquare: faWaveSquare,\n faWeight: faWeight,\n faWeightHanging: faWeightHanging,\n faWheelchair: faWheelchair,\n faWifi: faWifi,\n faWind: faWind,\n faWindowClose: faWindowClose,\n faWindowMaximize: faWindowMaximize,\n faWindowMinimize: faWindowMinimize,\n faWindowRestore: faWindowRestore,\n faWineBottle: faWineBottle,\n faWineGlass: faWineGlass,\n faWineGlassAlt: faWineGlassAlt,\n faWonSign: faWonSign,\n faWrench: faWrench,\n faXRay: faXRay,\n faYenSign: faYenSign,\n faYinYang: faYinYang\n};\n\nexport { _iconsCache as fas, prefix, faAd, faAddressBook, faAddressCard, faAdjust, faAirFreshener, faAlignCenter, faAlignJustify, faAlignLeft, faAlignRight, faAllergies, faAmbulance, faAmericanSignLanguageInterpreting, faAnchor, faAngleDoubleDown, faAngleDoubleLeft, faAngleDoubleRight, faAngleDoubleUp, faAngleDown, faAngleLeft, faAngleRight, faAngleUp, faAngry, faAnkh, faAppleAlt, faArchive, faArchway, faArrowAltCircleDown, faArrowAltCircleLeft, faArrowAltCircleRight, faArrowAltCircleUp, faArrowCircleDown, faArrowCircleLeft, faArrowCircleRight, faArrowCircleUp, faArrowDown, faArrowLeft, faArrowRight, faArrowUp, faArrowsAlt, faArrowsAltH, faArrowsAltV, faAssistiveListeningSystems, faAsterisk, faAt, faAtlas, faAtom, faAudioDescription, faAward, faBaby, faBabyCarriage, faBackspace, faBackward, faBacon, faBacteria, faBacterium, faBahai, faBalanceScale, faBalanceScaleLeft, faBalanceScaleRight, faBan, faBandAid, faBarcode, faBars, faBaseballBall, faBasketballBall, faBath, faBatteryEmpty, faBatteryFull, faBatteryHalf, faBatteryQuarter, faBatteryThreeQuarters, faBed, faBeer, faBell, faBellSlash, faBezierCurve, faBible, faBicycle, faBiking, faBinoculars, faBiohazard, faBirthdayCake, faBlender, faBlenderPhone, faBlind, faBlog, faBold, faBolt, faBomb, faBone, faBong, faBook, faBookDead, faBookMedical, faBookOpen, faBookReader, faBookmark, faBorderAll, faBorderNone, faBorderStyle, faBowlingBall, faBox, faBoxOpen, faBoxTissue, faBoxes, faBraille, faBrain, faBreadSlice, faBriefcase, faBriefcaseMedical, faBroadcastTower, faBroom, faBrush, faBug, faBuilding, faBullhorn, faBullseye, faBurn, faBus, faBusAlt, faBusinessTime, faCalculator, faCalendar, faCalendarAlt, faCalendarCheck, faCalendarDay, faCalendarMinus, faCalendarPlus, faCalendarTimes, faCalendarWeek, faCamera, faCameraRetro, faCampground, faCandyCane, faCannabis, faCapsules, faCar, faCarAlt, faCarBattery, faCarCrash, faCarSide, faCaravan, faCaretDown, faCaretLeft, faCaretRight, faCaretSquareDown, faCaretSquareLeft, faCaretSquareRight, faCaretSquareUp, faCaretUp, faCarrot, faCartArrowDown, faCartPlus, faCashRegister, faCat, faCertificate, faChair, faChalkboard, faChalkboardTeacher, faChargingStation, faChartArea, faChartBar, faChartLine, faChartPie, faCheck, faCheckCircle, faCheckDouble, faCheckSquare, faCheese, faChess, faChessBishop, faChessBoard, faChessKing, faChessKnight, faChessPawn, faChessQueen, faChessRook, faChevronCircleDown, faChevronCircleLeft, faChevronCircleRight, faChevronCircleUp, faChevronDown, faChevronLeft, faChevronRight, faChevronUp, faChild, faChurch, faCircle, faCircleNotch, faCity, faClinicMedical, faClipboard, faClipboardCheck, faClipboardList, faClock, faClone, faClosedCaptioning, faCloud, faCloudDownloadAlt, faCloudMeatball, faCloudMoon, faCloudMoonRain, faCloudRain, faCloudShowersHeavy, faCloudSun, faCloudSunRain, faCloudUploadAlt, faCocktail, faCode, faCodeBranch, faCoffee, faCog, faCogs, faCoins, faColumns, faComment, faCommentAlt, faCommentDollar, faCommentDots, faCommentMedical, faCommentSlash, faComments, faCommentsDollar, faCompactDisc, faCompass, faCompress, faCompressAlt, faCompressArrowsAlt, faConciergeBell, faCookie, faCookieBite, faCopy, faCopyright, faCouch, faCreditCard, faCrop, faCropAlt, faCross, faCrosshairs, faCrow, faCrown, faCrutch, faCube, faCubes, faCut, faDatabase, faDeaf, faDemocrat, faDesktop, faDharmachakra, faDiagnoses, faDice, faDiceD20, faDiceD6, faDiceFive, faDiceFour, faDiceOne, faDiceSix, faDiceThree, faDiceTwo, faDigitalTachograph, faDirections, faDisease, faDivide, faDizzy, faDna, faDog, faDollarSign, faDolly, faDollyFlatbed, faDonate, faDoorClosed, faDoorOpen, faDotCircle, faDove, faDownload, faDraftingCompass, faDragon, faDrawPolygon, faDrum, faDrumSteelpan, faDrumstickBite, faDumbbell, faDumpster, faDumpsterFire, faDungeon, faEdit, faEgg, faEject, faEllipsisH, faEllipsisV, faEnvelope, faEnvelopeOpen, faEnvelopeOpenText, faEnvelopeSquare, faEquals, faEraser, faEthernet, faEuroSign, faExchangeAlt, faExclamation, faExclamationCircle, faExclamationTriangle, faExpand, faExpandAlt, faExpandArrowsAlt, faExternalLinkAlt, faExternalLinkSquareAlt, faEye, faEyeDropper, faEyeSlash, faFan, faFastBackward, faFastForward, faFaucet, faFax, faFeather, faFeatherAlt, faFemale, faFighterJet, faFile, faFileAlt, faFileArchive, faFileAudio, faFileCode, faFileContract, faFileCsv, faFileDownload, faFileExcel, faFileExport, faFileImage, faFileImport, faFileInvoice, faFileInvoiceDollar, faFileMedical, faFileMedicalAlt, faFilePdf, faFilePowerpoint, faFilePrescription, faFileSignature, faFileUpload, faFileVideo, faFileWord, faFill, faFillDrip, faFilm, faFilter, faFingerprint, faFire, faFireAlt, faFireExtinguisher, faFirstAid, faFish, faFistRaised, faFlag, faFlagCheckered, faFlagUsa, faFlask, faFlushed, faFolder, faFolderMinus, faFolderOpen, faFolderPlus, faFont, faFontAwesomeLogoFull, faFootballBall, faForward, faFrog, faFrown, faFrownOpen, faFunnelDollar, faFutbol, faGamepad, faGasPump, faGavel, faGem, faGenderless, faGhost, faGift, faGifts, faGlassCheers, faGlassMartini, faGlassMartiniAlt, faGlassWhiskey, faGlasses, faGlobe, faGlobeAfrica, faGlobeAmericas, faGlobeAsia, faGlobeEurope, faGolfBall, faGopuram, faGraduationCap, faGreaterThan, faGreaterThanEqual, faGrimace, faGrin, faGrinAlt, faGrinBeam, faGrinBeamSweat, faGrinHearts, faGrinSquint, faGrinSquintTears, faGrinStars, faGrinTears, faGrinTongue, faGrinTongueSquint, faGrinTongueWink, faGrinWink, faGripHorizontal, faGripLines, faGripLinesVertical, faGripVertical, faGuitar, faHSquare, faHamburger, faHammer, faHamsa, faHandHolding, faHandHoldingHeart, faHandHoldingMedical, faHandHoldingUsd, faHandHoldingWater, faHandLizard, faHandMiddleFinger, faHandPaper, faHandPeace, faHandPointDown, faHandPointLeft, faHandPointRight, faHandPointUp, faHandPointer, faHandRock, faHandScissors, faHandSparkles, faHandSpock, faHands, faHandsHelping, faHandsWash, faHandshake, faHandshakeAltSlash, faHandshakeSlash, faHanukiah, faHardHat, faHashtag, faHatCowboy, faHatCowboySide, faHatWizard, faHdd, faHeadSideCough, faHeadSideCoughSlash, faHeadSideMask, faHeadSideVirus, faHeading, faHeadphones, faHeadphonesAlt, faHeadset, faHeart, faHeartBroken, faHeartbeat, faHelicopter, faHighlighter, faHiking, faHippo, faHistory, faHockeyPuck, faHollyBerry, faHome, faHorse, faHorseHead, faHospital, faHospitalAlt, faHospitalSymbol, faHospitalUser, faHotTub, faHotdog, faHotel, faHourglass, faHourglassEnd, faHourglassHalf, faHourglassStart, faHouseDamage, faHouseUser, faHryvnia, faICursor, faIceCream, faIcicles, faIcons, faIdBadge, faIdCard, faIdCardAlt, faIgloo, faImage, faImages, faInbox, faIndent, faIndustry, faInfinity, faInfo, faInfoCircle, faItalic, faJedi, faJoint, faJournalWhills, faKaaba, faKey, faKeyboard, faKhanda, faKiss, faKissBeam, faKissWinkHeart, faKiwiBird, faLandmark, faLanguage, faLaptop, faLaptopCode, faLaptopHouse, faLaptopMedical, faLaugh, faLaughBeam, faLaughSquint, faLaughWink, faLayerGroup, faLeaf, faLemon, faLessThan, faLessThanEqual, faLevelDownAlt, faLevelUpAlt, faLifeRing, faLightbulb, faLink, faLiraSign, faList, faListAlt, faListOl, faListUl, faLocationArrow, faLock, faLockOpen, faLongArrowAltDown, faLongArrowAltLeft, faLongArrowAltRight, faLongArrowAltUp, faLowVision, faLuggageCart, faLungs, faLungsVirus, faMagic, faMagnet, faMailBulk, faMale, faMap, faMapMarked, faMapMarkedAlt, faMapMarker, faMapMarkerAlt, faMapPin, faMapSigns, faMarker, faMars, faMarsDouble, faMarsStroke, faMarsStrokeH, faMarsStrokeV, faMask, faMedal, faMedkit, faMeh, faMehBlank, faMehRollingEyes, faMemory, faMenorah, faMercury, faMeteor, faMicrochip, faMicrophone, faMicrophoneAlt, faMicrophoneAltSlash, faMicrophoneSlash, faMicroscope, faMinus, faMinusCircle, faMinusSquare, faMitten, faMobile, faMobileAlt, faMoneyBill, faMoneyBillAlt, faMoneyBillWave, faMoneyBillWaveAlt, faMoneyCheck, faMoneyCheckAlt, faMonument, faMoon, faMortarPestle, faMosque, faMotorcycle, faMountain, faMouse, faMousePointer, faMugHot, faMusic, faNetworkWired, faNeuter, faNewspaper, faNotEqual, faNotesMedical, faObjectGroup, faObjectUngroup, faOilCan, faOm, faOtter, faOutdent, faPager, faPaintBrush, faPaintRoller, faPalette, faPallet, faPaperPlane, faPaperclip, faParachuteBox, faParagraph, faParking, faPassport, faPastafarianism, faPaste, faPause, faPauseCircle, faPaw, faPeace, faPen, faPenAlt, faPenFancy, faPenNib, faPenSquare, faPencilAlt, faPencilRuler, faPeopleArrows, faPeopleCarry, faPepperHot, faPercent, faPercentage, faPersonBooth, faPhone, faPhoneAlt, faPhoneSlash, faPhoneSquare, faPhoneSquareAlt, faPhoneVolume, faPhotoVideo, faPiggyBank, faPills, faPizzaSlice, faPlaceOfWorship, faPlane, faPlaneArrival, faPlaneDeparture, faPlaneSlash, faPlay, faPlayCircle, faPlug, faPlus, faPlusCircle, faPlusSquare, faPodcast, faPoll, faPollH, faPoo, faPooStorm, faPoop, faPortrait, faPoundSign, faPowerOff, faPray, faPrayingHands, faPrescription, faPrescriptionBottle, faPrescriptionBottleAlt, faPrint, faProcedures, faProjectDiagram, faPumpMedical, faPumpSoap, faPuzzlePiece, faQrcode, faQuestion, faQuestionCircle, faQuidditch, faQuoteLeft, faQuoteRight, faQuran, faRadiation, faRadiationAlt, faRainbow, faRandom, faReceipt, faRecordVinyl, faRecycle, faRedo, faRedoAlt, faRegistered, faRemoveFormat, faReply, faReplyAll, faRepublican, faRestroom, faRetweet, faRibbon, faRing, faRoad, faRobot, faRocket, faRoute, faRss, faRssSquare, faRubleSign, faRuler, faRulerCombined, faRulerHorizontal, faRulerVertical, faRunning, faRupeeSign, faSadCry, faSadTear, faSatellite, faSatelliteDish, faSave, faSchool, faScrewdriver, faScroll, faSdCard, faSearch, faSearchDollar, faSearchLocation, faSearchMinus, faSearchPlus, faSeedling, faServer, faShapes, faShare, faShareAlt, faShareAltSquare, faShareSquare, faShekelSign, faShieldAlt, faShieldVirus, faShip, faShippingFast, faShoePrints, faShoppingBag, faShoppingBasket, faShoppingCart, faShower, faShuttleVan, faSign, faSignInAlt, faSignLanguage, faSignOutAlt, faSignal, faSignature, faSimCard, faSink, faSitemap, faSkating, faSkiing, faSkiingNordic, faSkull, faSkullCrossbones, faSlash, faSleigh, faSlidersH, faSmile, faSmileBeam, faSmileWink, faSmog, faSmoking, faSmokingBan, faSms, faSnowboarding, faSnowflake, faSnowman, faSnowplow, faSoap, faSocks, faSolarPanel, faSort, faSortAlphaDown, faSortAlphaDownAlt, faSortAlphaUp, faSortAlphaUpAlt, faSortAmountDown, faSortAmountDownAlt, faSortAmountUp, faSortAmountUpAlt, faSortDown, faSortNumericDown, faSortNumericDownAlt, faSortNumericUp, faSortNumericUpAlt, faSortUp, faSpa, faSpaceShuttle, faSpellCheck, faSpider, faSpinner, faSplotch, faSprayCan, faSquare, faSquareFull, faSquareRootAlt, faStamp, faStar, faStarAndCrescent, faStarHalf, faStarHalfAlt, faStarOfDavid, faStarOfLife, faStepBackward, faStepForward, faStethoscope, faStickyNote, faStop, faStopCircle, faStopwatch, faStopwatch20, faStore, faStoreAlt, faStoreAltSlash, faStoreSlash, faStream, faStreetView, faStrikethrough, faStroopwafel, faSubscript, faSubway, faSuitcase, faSuitcaseRolling, faSun, faSuperscript, faSurprise, faSwatchbook, faSwimmer, faSwimmingPool, faSynagogue, faSync, faSyncAlt, faSyringe, faTable, faTableTennis, faTablet, faTabletAlt, faTablets, faTachometerAlt, faTag, faTags, faTape, faTasks, faTaxi, faTeeth, faTeethOpen, faTemperatureHigh, faTemperatureLow, faTenge, faTerminal, faTextHeight, faTextWidth, faTh, faThLarge, faThList, faTheaterMasks, faThermometer, faThermometerEmpty, faThermometerFull, faThermometerHalf, faThermometerQuarter, faThermometerThreeQuarters, faThumbsDown, faThumbsUp, faThumbtack, faTicketAlt, faTimes, faTimesCircle, faTint, faTintSlash, faTired, faToggleOff, faToggleOn, faToilet, faToiletPaper, faToiletPaperSlash, faToolbox, faTools, faTooth, faTorah, faToriiGate, faTractor, faTrademark, faTrafficLight, faTrailer, faTrain, faTram, faTransgender, faTransgenderAlt, faTrash, faTrashAlt, faTrashRestore, faTrashRestoreAlt, faTree, faTrophy, faTruck, faTruckLoading, faTruckMonster, faTruckMoving, faTruckPickup, faTshirt, faTty, faTv, faUmbrella, faUmbrellaBeach, faUnderline, faUndo, faUndoAlt, faUniversalAccess, faUniversity, faUnlink, faUnlock, faUnlockAlt, faUpload, faUser, faUserAlt, faUserAltSlash, faUserAstronaut, faUserCheck, faUserCircle, faUserClock, faUserCog, faUserEdit, faUserFriends, faUserGraduate, faUserInjured, faUserLock, faUserMd, faUserMinus, faUserNinja, faUserNurse, faUserPlus, faUserSecret, faUserShield, faUserSlash, faUserTag, faUserTie, faUserTimes, faUsers, faUsersCog, faUsersSlash, faUtensilSpoon, faUtensils, faVectorSquare, faVenus, faVenusDouble, faVenusMars, faVest, faVestPatches, faVial, faVials, faVideo, faVideoSlash, faVihara, faVirus, faVirusSlash, faViruses, faVoicemail, faVolleyballBall, faVolumeDown, faVolumeMute, faVolumeOff, faVolumeUp, faVoteYea, faVrCardboard, faWalking, faWallet, faWarehouse, faWater, faWaveSquare, faWeight, faWeightHanging, faWheelchair, faWifi, faWind, faWindowClose, faWindowMaximize, faWindowMinimize, faWindowRestore, faWineBottle, faWineGlass, faWineGlassAlt, faWonSign, faWrench, faXRay, faYenSign, faYinYang };\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { use } from './lib/extension.js';\nexport * from './lib/export/core.js'; // ----------------------------------------------\n// All of the modules that are allowed to be\n// imported are listed below.\n//\n// Users MUST NOT import other modules that are\n// not included in this list.\n// ----------------------------------------------\n\nimport { SVGRenderer, CanvasRenderer } from './lib/export/renderers.js';\nimport { LineChart, BarChart, PieChart, ScatterChart, RadarChart, MapChart, TreeChart, TreemapChart, GraphChart, GaugeChart, FunnelChart, ParallelChart, SankeyChart, BoxplotChart, CandlestickChart, EffectScatterChart, LinesChart, HeatmapChart, PictorialBarChart, ThemeRiverChart, SunburstChart, CustomChart } from './lib/export/charts.js';\nimport { GridComponent, PolarComponent, GeoComponent, SingleAxisComponent, ParallelComponent, CalendarComponent, GraphicComponent, ToolboxComponent, TooltipComponent, AxisPointerComponent, BrushComponent, TitleComponent, TimelineComponent, MarkPointComponent, MarkLineComponent, MarkAreaComponent, LegendComponent, DataZoomComponent, DataZoomInsideComponent, DataZoomSliderComponent, VisualMapComponent, VisualMapContinuousComponent, VisualMapPiecewiseComponent, AriaComponent, DatasetComponent, TransformComponent } from './lib/export/components.js';\nimport { UniversalTransition, LabelLayout } from './lib/export/features.js'; // -----------------\n// Render engines\n// -----------------\n// Render via Canvas.\n// echarts.init(dom, null, { renderer: 'canvas' })\n\nuse([CanvasRenderer]); // Render via SVG.\n// echarts.init(dom, null, { renderer: 'svg' })\n\nuse([SVGRenderer]); // ----------------\n// Charts (series)\n// ----------------\n// All of the series types, for example:\n// chart.setOption({\n// series: [{\n// type: 'line' // or 'bar', 'pie', ...\n// }]\n// });\n\nuse([LineChart, BarChart, PieChart, ScatterChart, RadarChart, MapChart, TreeChart, TreemapChart, GraphChart, GaugeChart, FunnelChart, ParallelChart, SankeyChart, BoxplotChart, CandlestickChart, EffectScatterChart, LinesChart, HeatmapChart, PictorialBarChart, ThemeRiverChart, SunburstChart, CustomChart]); // -------------------\n// Coordinate systems\n// -------------------\n// All of the axis modules have been included in the\n// coordinate system module below, do not need to\n// make extra import.\n// `cartesian` coordinate system. For some historical\n// reasons, it is named as grid, for example:\n// chart.setOption({\n// grid: {...},\n// xAxis: {...},\n// yAxis: {...},\n// series: [{...}]\n// });\n\nuse(GridComponent); // `polar` coordinate system, for example:\n// chart.setOption({\n// polar: {...},\n// radiusAxis: {...},\n// angleAxis: {...},\n// series: [{\n// coordinateSystem: 'polar'\n// }]\n// });\n\nuse(PolarComponent); // `geo` coordinate system, for example:\n// chart.setOption({\n// geo: {...},\n// series: [{\n// coordinateSystem: 'geo'\n// }]\n// });\n\nuse(GeoComponent); // `singleAxis` coordinate system (notice, it is a coordinate system\n// with only one axis, work for chart like theme river), for example:\n// chart.setOption({\n// singleAxis: {...}\n// series: [{type: 'themeRiver', ...}]\n// });\n\nuse(SingleAxisComponent); // `parallel` coordinate system, only work for parallel series, for example:\n// chart.setOption({\n// parallel: {...},\n// parallelAxis: [{...}, ...],\n// series: [{\n// type: 'parallel'\n// }]\n// });\n\nuse(ParallelComponent); // `calendar` coordinate system. for example,\n// chart.setOptionp({\n// calendar: {...},\n// series: [{\n// coordinateSystem: 'calendar'\n// }]\n// );\n\nuse(CalendarComponent); // ------------------\n// Other components\n// ------------------\n// `graphic` component, for example:\n// chart.setOption({\n// graphic: {...}\n// });\n\nuse(GraphicComponent); // `toolbox` component, for example:\n// chart.setOption({\n// toolbox: {...}\n// });\n\nuse(ToolboxComponent); // `tooltip` component, for example:\n// chart.setOption({\n// tooltip: {...}\n// });\n\nuse(TooltipComponent); // `axisPointer` component, for example:\n// chart.setOption({\n// tooltip: {axisPointer: {...}, ...}\n// });\n// Or\n// chart.setOption({\n// axisPointer: {...}\n// });\n\nuse(AxisPointerComponent); // `brush` component, for example:\n// chart.setOption({\n// brush: {...}\n// });\n// Or\n// chart.setOption({\n// tooltip: {feature: {brush: {...}}\n// })\n\nuse(BrushComponent); // `title` component, for example:\n// chart.setOption({\n// title: {...}\n// });\n\nuse(TitleComponent); // `timeline` component, for example:\n// chart.setOption({\n// timeline: {...}\n// });\n\nuse(TimelineComponent); // `markPoint` component, for example:\n// chart.setOption({\n// series: [{markPoint: {...}}]\n// });\n\nuse(MarkPointComponent); // `markLine` component, for example:\n// chart.setOption({\n// series: [{markLine: {...}}]\n// });\n\nuse(MarkLineComponent); // `markArea` component, for example:\n// chart.setOption({\n// series: [{markArea: {...}}]\n// });\n\nuse(MarkAreaComponent); // `legend` component not scrollable. for example:\n// chart.setOption({\n// legend: {...}\n// });\n\nuse(LegendComponent); // `dataZoom` component including both `dataZoomInside` and `dataZoomSlider`.\n\nuse(DataZoomComponent); // `dataZoom` component providing drag, pinch, wheel behaviors\n// inside coodinate system, for example:\n// chart.setOption({\n// dataZoom: {type: 'inside'}\n// });\n\nuse(DataZoomInsideComponent); // `dataZoom` component providing a slider bar, for example:\n// chart.setOption({\n// dataZoom: {type: 'slider'}\n// });\n\nuse(DataZoomSliderComponent); // `visualMap` component including both `visualMapContinuous` and `visualMapPiecewise`.\n\nuse(VisualMapComponent); // `visualMap` component providing continuous bar, for example:\n// chart.setOption({\n// visualMap: {type: 'continuous'}\n// });\n\nuse(VisualMapContinuousComponent); // `visualMap` component providing pieces bar, for example:\n// chart.setOption({\n// visualMap: {type: 'piecewise'}\n// });\n\nuse(VisualMapPiecewiseComponent); // `aria` component providing aria, for example:\n// chart.setOption({\n// aria: {...}\n// });\n\nuse(AriaComponent); // dataset transform\n// chart.setOption({\n// dataset: {\n// transform: []\n// }\n// });\n\nuse(TransformComponent);\nuse(DatasetComponent); // universal transition\n// chart.setOption({\n// series: {\n// universalTransition: { enabled: true }\n// }\n// })\n\nuse(UniversalTransition); // label layout\n// chart.setOption({\n// series: {\n// labelLayout: { hideOverlap: true }\n// }\n// })\n\nuse(LabelLayout);","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction getCenterCoord(view, point) {\n // Use projected coord as center because it's linear.\n return view.pointToProjected ? view.pointToProjected(point) : view.pointToData(point);\n}\n\nexport function updateCenterAndZoom(view, payload, zoomLimit, api) {\n var previousZoom = view.getZoom();\n var center = view.getCenter();\n var zoom = payload.zoom;\n var point = view.projectedToPoint ? view.projectedToPoint(center) : view.dataToPoint(center);\n\n if (payload.dx != null && payload.dy != null) {\n point[0] -= payload.dx;\n point[1] -= payload.dy;\n view.setCenter(getCenterCoord(view, point), api);\n }\n\n if (zoom != null) {\n if (zoomLimit) {\n var zoomMin = zoomLimit.min || 0;\n var zoomMax = zoomLimit.max || Infinity;\n zoom = Math.max(Math.min(previousZoom * zoom, zoomMax), zoomMin) / previousZoom;\n } // Zoom on given point(originX, originY)\n\n\n view.scaleX *= zoom;\n view.scaleY *= zoom;\n var fixX = (payload.originX - view.x) * (zoom - 1);\n var fixY = (payload.originY - view.y) * (zoom - 1);\n view.x -= fixX;\n view.y -= fixY;\n view.updateTransform(); // Get the new center\n\n view.setCenter(getCenterCoord(view, point), api);\n view.setZoom(zoom * previousZoom);\n }\n\n return {\n center: view.getCenter(),\n zoom: view.getZoom()\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { isFunction, isObject, retrieve2 } from 'zrender/lib/core/util.js';\nimport { makeInner } from '../util/model.js'; // Stored properties for further transition.\n\nexport var transitionStore = makeInner();\n/**\n * Return null if animation is disabled.\n */\n\nexport function getAnimationConfig(animationType, animatableModel, dataIndex, // Extra opts can override the option in animatable model.\nextraOpts, // TODO It's only for pictorial bar now.\nextraDelayParams) {\n var animationPayload; // Check if there is global animation configuration from dataZoom/resize can override the config in option.\n // If animation is enabled. Will use this animation config in payload.\n // If animation is disabled. Just ignore it.\n\n if (animatableModel && animatableModel.ecModel) {\n var updatePayload = animatableModel.ecModel.getUpdatePayload();\n animationPayload = updatePayload && updatePayload.animation;\n }\n\n var animationEnabled = animatableModel && animatableModel.isAnimationEnabled();\n var isUpdate = animationType === 'update';\n\n if (animationEnabled) {\n var duration = void 0;\n var easing = void 0;\n var delay = void 0;\n\n if (extraOpts) {\n duration = retrieve2(extraOpts.duration, 200);\n easing = retrieve2(extraOpts.easing, 'cubicOut');\n delay = 0;\n } else {\n duration = animatableModel.getShallow(isUpdate ? 'animationDurationUpdate' : 'animationDuration');\n easing = animatableModel.getShallow(isUpdate ? 'animationEasingUpdate' : 'animationEasing');\n delay = animatableModel.getShallow(isUpdate ? 'animationDelayUpdate' : 'animationDelay');\n } // animation from payload has highest priority.\n\n\n if (animationPayload) {\n animationPayload.duration != null && (duration = animationPayload.duration);\n animationPayload.easing != null && (easing = animationPayload.easing);\n animationPayload.delay != null && (delay = animationPayload.delay);\n }\n\n if (isFunction(delay)) {\n delay = delay(dataIndex, extraDelayParams);\n }\n\n if (isFunction(duration)) {\n duration = duration(dataIndex);\n }\n\n var config = {\n duration: duration || 0,\n delay: delay,\n easing: easing\n };\n return config;\n } else {\n return null;\n }\n}\n\nfunction animateOrSetProps(animationType, el, props, animatableModel, dataIndex, cb, during) {\n var isFrom = false;\n var removeOpt;\n\n if (isFunction(dataIndex)) {\n during = cb;\n cb = dataIndex;\n dataIndex = null;\n } else if (isObject(dataIndex)) {\n cb = dataIndex.cb;\n during = dataIndex.during;\n isFrom = dataIndex.isFrom;\n removeOpt = dataIndex.removeOpt;\n dataIndex = dataIndex.dataIndex;\n }\n\n var isRemove = animationType === 'leave';\n\n if (!isRemove) {\n // Must stop the remove animation.\n el.stopAnimation('leave');\n }\n\n var animationConfig = getAnimationConfig(animationType, animatableModel, dataIndex, isRemove ? removeOpt || {} : null, animatableModel && animatableModel.getAnimationDelayParams ? animatableModel.getAnimationDelayParams(el, dataIndex) : null);\n\n if (animationConfig && animationConfig.duration > 0) {\n var duration = animationConfig.duration;\n var animationDelay = animationConfig.delay;\n var animationEasing = animationConfig.easing;\n var animateConfig = {\n duration: duration,\n delay: animationDelay || 0,\n easing: animationEasing,\n done: cb,\n force: !!cb || !!during,\n // Set to final state in update/init animation.\n // So the post processing based on the path shape can be done correctly.\n setToFinal: !isRemove,\n scope: animationType,\n during: during\n };\n isFrom ? el.animateFrom(props, animateConfig) : el.animateTo(props, animateConfig);\n } else {\n el.stopAnimation(); // If `isFrom`, the props is the \"from\" props.\n\n !isFrom && el.attr(props); // Call during at least once.\n\n during && during(1);\n cb && cb();\n }\n}\n/**\n * Update graphic element properties with or without animation according to the\n * configuration in series.\n *\n * Caution: this method will stop previous animation.\n * So do not use this method to one element twice before\n * animation starts, unless you know what you are doing.\n * @example\n * graphic.updateProps(el, {\n * position: [100, 100]\n * }, seriesModel, dataIndex, function () { console.log('Animation done!'); });\n * // Or\n * graphic.updateProps(el, {\n * position: [100, 100]\n * }, seriesModel, function () { console.log('Animation done!'); });\n */\n\n\nfunction updateProps(el, props, // TODO: TYPE AnimatableModel\nanimatableModel, dataIndex, cb, during) {\n animateOrSetProps('update', el, props, animatableModel, dataIndex, cb, during);\n}\n\nexport { updateProps };\n/**\n * Init graphic element properties with or without animation according to the\n * configuration in series.\n *\n * Caution: this method will stop previous animation.\n * So do not use this method to one element twice before\n * animation starts, unless you know what you are doing.\n */\n\nexport function initProps(el, props, animatableModel, dataIndex, cb, during) {\n animateOrSetProps('enter', el, props, animatableModel, dataIndex, cb, during);\n}\n/**\n * If element is removed.\n * It can determine if element is having remove animation.\n */\n\nexport function isElementRemoved(el) {\n if (!el.__zr) {\n return true;\n }\n\n for (var i = 0; i < el.animators.length; i++) {\n var animator = el.animators[i];\n\n if (animator.scope === 'leave') {\n return true;\n }\n }\n\n return false;\n}\n/**\n * Remove graphic element\n */\n\nexport function removeElement(el, props, animatableModel, dataIndex, cb, during) {\n // Don't do remove animation twice.\n if (isElementRemoved(el)) {\n return;\n }\n\n animateOrSetProps('leave', el, props, animatableModel, dataIndex, cb, during);\n}\n\nfunction fadeOutDisplayable(el, animatableModel, dataIndex, done) {\n el.removeTextContent();\n el.removeTextGuideLine();\n removeElement(el, {\n style: {\n opacity: 0\n }\n }, animatableModel, dataIndex, done);\n}\n\nexport function removeElementWithFadeOut(el, animatableModel, dataIndex) {\n function doRemove() {\n el.parent && el.parent.remove(el);\n } // Hide label and labelLine first\n // TODO Also use fade out animation?\n\n\n if (!el.isGroup) {\n fadeOutDisplayable(el, animatableModel, dataIndex, doRemove);\n } else {\n el.traverse(function (disp) {\n if (!disp.isGroup) {\n // Can invoke doRemove multiple times.\n fadeOutDisplayable(disp, animatableModel, dataIndex, doRemove);\n }\n });\n }\n}\n/**\n * Save old style for style transition in universalTransition module.\n * It's used when element will be reused in each render.\n * For chart like map, heatmap, which will always create new element.\n * We don't need to save this because universalTransition can get old style from the old element\n */\n\nexport function saveOldStyle(el) {\n transitionStore(el).oldStyle = el.style;\n}\nexport function getOldStyle(el) {\n return transitionStore(el).oldStyle;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { keys, filter, each, isArray, indexOf } from 'zrender/lib/core/util.js';\nimport { ELEMENT_ANIMATABLE_PROPS } from './customGraphicTransition.js';\nimport { getAnimationConfig } from './basicTransition.js';\nimport { warn } from '../util/log.js';\nimport { makeInner } from '../util/model.js';\nvar getStateToRestore = makeInner();\nvar KEYFRAME_EXCLUDE_KEYS = ['percent', 'easing', 'shape', 'style', 'extra'];\n/**\n * Stop previous keyframe animation and restore the attributes.\n * Avoid new keyframe animation starts with wrong internal state when the percent: 0 is not set.\n */\n\nexport function stopPreviousKeyframeAnimationAndRestore(el) {\n // Stop previous keyframe animation.\n el.stopAnimation('keyframe'); // Restore\n\n el.attr(getStateToRestore(el));\n}\nexport function applyKeyframeAnimation(el, animationOpts, animatableModel) {\n if (!animatableModel.isAnimationEnabled() || !animationOpts) {\n return;\n }\n\n if (isArray(animationOpts)) {\n each(animationOpts, function (singleAnimationOpts) {\n applyKeyframeAnimation(el, singleAnimationOpts, animatableModel);\n });\n return;\n }\n\n var keyframes = animationOpts.keyframes;\n var duration = animationOpts.duration;\n\n if (animatableModel && duration == null) {\n // Default to use duration of config.\n // NOTE: animation config from payload will be ignored because they are mainly for transitions.\n var config = getAnimationConfig('enter', animatableModel, 0);\n duration = config && config.duration;\n }\n\n if (!keyframes || !duration) {\n return;\n }\n\n var stateToRestore = getStateToRestore(el);\n each(ELEMENT_ANIMATABLE_PROPS, function (targetPropName) {\n if (targetPropName && !el[targetPropName]) {\n return;\n }\n\n var animator;\n var endFrameIsSet = false; // Sort keyframes by percent.\n\n keyframes.sort(function (a, b) {\n return a.percent - b.percent;\n });\n each(keyframes, function (kf) {\n // Stop current animation.\n var animators = el.animators;\n var kfValues = targetPropName ? kf[targetPropName] : kf;\n\n if (process.env.NODE_ENV !== 'production') {\n if (kf.percent >= 1) {\n endFrameIsSet = true;\n }\n }\n\n if (!kfValues) {\n return;\n }\n\n var propKeys = keys(kfValues);\n\n if (!targetPropName) {\n // PENDING performance?\n propKeys = filter(propKeys, function (key) {\n return indexOf(KEYFRAME_EXCLUDE_KEYS, key) < 0;\n });\n }\n\n if (!propKeys.length) {\n return;\n }\n\n if (!animator) {\n animator = el.animate(targetPropName, animationOpts.loop, true);\n animator.scope = 'keyframe';\n }\n\n for (var i = 0; i < animators.length; i++) {\n // Stop all other animation that is not keyframe.\n if (animators[i] !== animator && animators[i].targetName === animator.targetName) {\n animators[i].stopTracks(propKeys);\n }\n }\n\n targetPropName && (stateToRestore[targetPropName] = stateToRestore[targetPropName] || {});\n var savedTarget = targetPropName ? stateToRestore[targetPropName] : stateToRestore;\n each(propKeys, function (key) {\n // Save original value.\n savedTarget[key] = ((targetPropName ? el[targetPropName] : el) || {})[key];\n });\n animator.whenWithKeys(duration * kf.percent, kfValues, propKeys, kf.easing);\n });\n\n if (!animator) {\n return;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!endFrameIsSet) {\n warn('End frame with percent: 1 is missing in the keyframeAnimation.', true);\n }\n }\n\n animator.delay(animationOpts.delay || 0).duration(duration).start(animationOpts.easing);\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { makeInner, normalizeToArray } from '../util/model.js';\nimport { assert, bind, each, eqNaN, extend, hasOwn, indexOf, isArrayLike, keys, reduce } from 'zrender/lib/core/util.js';\nimport { cloneValue } from 'zrender/lib/animation/Animator.js';\nimport Displayable from 'zrender/lib/graphic/Displayable.js';\nimport { getAnimationConfig } from './basicTransition.js';\nimport { Path } from '../util/graphic.js';\nimport { warn } from '../util/log.js';\nimport { TRANSFORMABLE_PROPS } from 'zrender/lib/core/Transformable.js';\nvar LEGACY_TRANSFORM_PROPS_MAP = {\n position: ['x', 'y'],\n scale: ['scaleX', 'scaleY'],\n origin: ['originX', 'originY']\n};\nvar LEGACY_TRANSFORM_PROPS = keys(LEGACY_TRANSFORM_PROPS_MAP);\nvar TRANSFORM_PROPS_MAP = reduce(TRANSFORMABLE_PROPS, function (obj, key) {\n obj[key] = 1;\n return obj;\n}, {});\nvar transformPropNamesStr = TRANSFORMABLE_PROPS.join(', '); // '' means root\n\nexport var ELEMENT_ANIMATABLE_PROPS = ['', 'style', 'shape', 'extra'];\n;\nvar transitionInnerStore = makeInner();\n;\n\nfunction getElementAnimationConfig(animationType, el, elOption, parentModel, dataIndex) {\n var animationProp = animationType + \"Animation\";\n var config = getAnimationConfig(animationType, parentModel, dataIndex) || {};\n var userDuring = transitionInnerStore(el).userDuring; // Only set when duration is > 0 and it's need to be animated.\n\n if (config.duration > 0) {\n // For simplicity, if during not specified, the previous during will not work any more.\n config.during = userDuring ? bind(duringCall, {\n el: el,\n userDuring: userDuring\n }) : null;\n config.setToFinal = true;\n config.scope = animationType;\n }\n\n extend(config, elOption[animationProp]);\n return config;\n}\n\nexport function applyUpdateTransition(el, elOption, animatableModel, opts) {\n opts = opts || {};\n var dataIndex = opts.dataIndex,\n isInit = opts.isInit,\n clearStyle = opts.clearStyle;\n var hasAnimation = animatableModel.isAnimationEnabled(); // Save the meta info for further morphing. Like apply on the sub morphing elements.\n\n var store = transitionInnerStore(el);\n var styleOpt = elOption.style;\n store.userDuring = elOption.during;\n var transFromProps = {};\n var propsToSet = {};\n prepareTransformAllPropsFinal(el, elOption, propsToSet);\n prepareShapeOrExtraAllPropsFinal('shape', elOption, propsToSet);\n prepareShapeOrExtraAllPropsFinal('extra', elOption, propsToSet);\n\n if (!isInit && hasAnimation) {\n prepareTransformTransitionFrom(el, elOption, transFromProps);\n prepareShapeOrExtraTransitionFrom('shape', el, elOption, transFromProps);\n prepareShapeOrExtraTransitionFrom('extra', el, elOption, transFromProps);\n prepareStyleTransitionFrom(el, elOption, styleOpt, transFromProps);\n }\n\n propsToSet.style = styleOpt;\n applyPropsDirectly(el, propsToSet, clearStyle);\n applyMiscProps(el, elOption);\n\n if (hasAnimation) {\n if (isInit) {\n var enterFromProps_1 = {};\n each(ELEMENT_ANIMATABLE_PROPS, function (propName) {\n var prop = propName ? elOption[propName] : elOption;\n\n if (prop && prop.enterFrom) {\n if (propName) {\n enterFromProps_1[propName] = enterFromProps_1[propName] || {};\n }\n\n extend(propName ? enterFromProps_1[propName] : enterFromProps_1, prop.enterFrom);\n }\n });\n var config = getElementAnimationConfig('enter', el, elOption, animatableModel, dataIndex);\n\n if (config.duration > 0) {\n el.animateFrom(enterFromProps_1, config);\n }\n } else {\n applyPropsTransition(el, elOption, dataIndex || 0, animatableModel, transFromProps);\n }\n } // Store leave to be used in leave transition.\n\n\n updateLeaveTo(el, elOption);\n styleOpt ? el.dirty() : el.markRedraw();\n}\nexport function updateLeaveTo(el, elOption) {\n // Try merge to previous set leaveTo\n var leaveToProps = transitionInnerStore(el).leaveToProps;\n\n for (var i = 0; i < ELEMENT_ANIMATABLE_PROPS.length; i++) {\n var propName = ELEMENT_ANIMATABLE_PROPS[i];\n var prop = propName ? elOption[propName] : elOption;\n\n if (prop && prop.leaveTo) {\n if (!leaveToProps) {\n leaveToProps = transitionInnerStore(el).leaveToProps = {};\n }\n\n if (propName) {\n leaveToProps[propName] = leaveToProps[propName] || {};\n }\n\n extend(propName ? leaveToProps[propName] : leaveToProps, prop.leaveTo);\n }\n }\n}\nexport function applyLeaveTransition(el, elOption, animatableModel, onRemove) {\n if (el) {\n var parent_1 = el.parent;\n var leaveToProps = transitionInnerStore(el).leaveToProps;\n\n if (leaveToProps) {\n // TODO TODO use leave after leaveAnimation in series is introduced\n // TODO Data index?\n var config = getElementAnimationConfig('update', el, elOption, animatableModel, 0);\n\n config.done = function () {\n parent_1.remove(el);\n onRemove && onRemove();\n };\n\n el.animateTo(leaveToProps, config);\n } else {\n parent_1.remove(el);\n onRemove && onRemove();\n }\n }\n}\nexport function isTransitionAll(transition) {\n return transition === 'all';\n}\n\nfunction applyPropsDirectly(el, // Can be null/undefined\nallPropsFinal, clearStyle) {\n var styleOpt = allPropsFinal.style;\n\n if (!el.isGroup && styleOpt) {\n if (clearStyle) {\n el.useStyle({}); // When style object changed, how to trade the existing animation?\n // It is probably complicated and not needed to cover all the cases.\n // But still need consider the case:\n // (1) When using init animation on `style.opacity`, and before the animation\n // ended users triggers an update by mousewhel. At that time the init\n // animation should better be continued rather than terminated.\n // So after `useStyle` called, we should change the animation target manually\n // to continue the effect of the init animation.\n // (2) PENDING: If the previous animation targeted at a `val1`, and currently we need\n // to update the value to `val2` and no animation declared, should be terminate\n // the previous animation or just modify the target of the animation?\n // Therotically That will happen not only on `style` but also on `shape` and\n // `transfrom` props. But we haven't handle this case at present yet.\n // (3) PENDING: Is it proper to visit `animators` and `targetName`?\n\n var animators = el.animators;\n\n for (var i = 0; i < animators.length; i++) {\n var animator = animators[i]; // targetName is the \"topKey\".\n\n if (animator.targetName === 'style') {\n animator.changeTarget(el.style);\n }\n }\n }\n\n el.setStyle(styleOpt);\n }\n\n if (allPropsFinal) {\n // Not set style here.\n allPropsFinal.style = null; // Set el to the final state firstly.\n\n allPropsFinal && el.attr(allPropsFinal);\n allPropsFinal.style = styleOpt;\n }\n}\n\nfunction applyPropsTransition(el, elOption, dataIndex, model, // Can be null/undefined\ntransFromProps) {\n if (transFromProps) {\n var config = getElementAnimationConfig('update', el, elOption, model, dataIndex);\n\n if (config.duration > 0) {\n el.animateFrom(transFromProps, config);\n }\n }\n}\n\nfunction applyMiscProps(el, elOption) {\n // Merge by default.\n hasOwn(elOption, 'silent') && (el.silent = elOption.silent);\n hasOwn(elOption, 'ignore') && (el.ignore = elOption.ignore);\n\n if (el instanceof Displayable) {\n hasOwn(elOption, 'invisible') && (el.invisible = elOption.invisible);\n }\n\n if (el instanceof Path) {\n hasOwn(elOption, 'autoBatch') && (el.autoBatch = elOption.autoBatch);\n }\n} // Use it to avoid it be exposed to user.\n\n\nvar tmpDuringScope = {};\nvar transitionDuringAPI = {\n // Usually other props do not need to be changed in animation during.\n setTransform: function (key, val) {\n if (process.env.NODE_ENV !== 'production') {\n assert(hasOwn(TRANSFORM_PROPS_MAP, key), 'Only ' + transformPropNamesStr + ' available in `setTransform`.');\n }\n\n tmpDuringScope.el[key] = val;\n return this;\n },\n getTransform: function (key) {\n if (process.env.NODE_ENV !== 'production') {\n assert(hasOwn(TRANSFORM_PROPS_MAP, key), 'Only ' + transformPropNamesStr + ' available in `getTransform`.');\n }\n\n return tmpDuringScope.el[key];\n },\n setShape: function (key, val) {\n if (process.env.NODE_ENV !== 'production') {\n assertNotReserved(key);\n }\n\n var el = tmpDuringScope.el;\n var shape = el.shape || (el.shape = {});\n shape[key] = val;\n el.dirtyShape && el.dirtyShape();\n return this;\n },\n getShape: function (key) {\n if (process.env.NODE_ENV !== 'production') {\n assertNotReserved(key);\n }\n\n var shape = tmpDuringScope.el.shape;\n\n if (shape) {\n return shape[key];\n }\n },\n setStyle: function (key, val) {\n if (process.env.NODE_ENV !== 'production') {\n assertNotReserved(key);\n }\n\n var el = tmpDuringScope.el;\n var style = el.style;\n\n if (style) {\n if (process.env.NODE_ENV !== 'production') {\n if (eqNaN(val)) {\n warn('style.' + key + ' must not be assigned with NaN.');\n }\n }\n\n style[key] = val;\n el.dirtyStyle && el.dirtyStyle();\n }\n\n return this;\n },\n getStyle: function (key) {\n if (process.env.NODE_ENV !== 'production') {\n assertNotReserved(key);\n }\n\n var style = tmpDuringScope.el.style;\n\n if (style) {\n return style[key];\n }\n },\n setExtra: function (key, val) {\n if (process.env.NODE_ENV !== 'production') {\n assertNotReserved(key);\n }\n\n var extra = tmpDuringScope.el.extra || (tmpDuringScope.el.extra = {});\n extra[key] = val;\n return this;\n },\n getExtra: function (key) {\n if (process.env.NODE_ENV !== 'production') {\n assertNotReserved(key);\n }\n\n var extra = tmpDuringScope.el.extra;\n\n if (extra) {\n return extra[key];\n }\n }\n};\n\nfunction assertNotReserved(key) {\n if (process.env.NODE_ENV !== 'production') {\n if (key === 'transition' || key === 'enterFrom' || key === 'leaveTo') {\n throw new Error('key must not be \"' + key + '\"');\n }\n }\n}\n\nfunction duringCall() {\n // Do not provide \"percent\" until some requirements come.\n // Because consider thies case:\n // enterFrom: {x: 100, y: 30}, transition: 'x'.\n // And enter duration is different from update duration.\n // Thus it might be confused about the meaning of \"percent\" in during callback.\n var scope = this;\n var el = scope.el;\n\n if (!el) {\n return;\n } // If el is remove from zr by reason like legend, during still need to called,\n // because el will be added back to zr and the prop value should not be incorrect.\n\n\n var latestUserDuring = transitionInnerStore(el).userDuring;\n var scopeUserDuring = scope.userDuring; // Ensured a during is only called once in each animation frame.\n // If a during is called multiple times in one frame, maybe some users' calculation logic\n // might be wrong (not sure whether this usage exists).\n // The case of a during might be called twice can be: by default there is a animator for\n // 'x', 'y' when init. Before the init animation finished, call `setOption` to start\n // another animators for 'style'/'shape'/'extra'.\n\n if (latestUserDuring !== scopeUserDuring) {\n // release\n scope.el = scope.userDuring = null;\n return;\n }\n\n tmpDuringScope.el = el; // Give no `this` to user in \"during\" calling.\n\n scopeUserDuring(transitionDuringAPI); // FIXME: if in future meet the case that some prop will be both modified in `during` and `state`,\n // consider the issue that the prop might be incorrect when return to \"normal\" state.\n}\n\nfunction prepareShapeOrExtraTransitionFrom(mainAttr, fromEl, elOption, transFromProps) {\n var attrOpt = elOption[mainAttr];\n\n if (!attrOpt) {\n return;\n }\n\n var elPropsInAttr = fromEl[mainAttr];\n var transFromPropsInAttr;\n\n if (elPropsInAttr) {\n var transition = elOption.transition;\n var attrTransition = attrOpt.transition;\n\n if (attrTransition) {\n !transFromPropsInAttr && (transFromPropsInAttr = transFromProps[mainAttr] = {});\n\n if (isTransitionAll(attrTransition)) {\n extend(transFromPropsInAttr, elPropsInAttr);\n } else {\n var transitionKeys = normalizeToArray(attrTransition);\n\n for (var i = 0; i < transitionKeys.length; i++) {\n var key = transitionKeys[i];\n var elVal = elPropsInAttr[key];\n transFromPropsInAttr[key] = elVal;\n }\n }\n } else if (isTransitionAll(transition) || indexOf(transition, mainAttr) >= 0) {\n !transFromPropsInAttr && (transFromPropsInAttr = transFromProps[mainAttr] = {});\n var elPropsInAttrKeys = keys(elPropsInAttr);\n\n for (var i = 0; i < elPropsInAttrKeys.length; i++) {\n var key = elPropsInAttrKeys[i];\n var elVal = elPropsInAttr[key];\n\n if (isNonStyleTransitionEnabled(attrOpt[key], elVal)) {\n transFromPropsInAttr[key] = elVal;\n }\n }\n }\n }\n}\n\nfunction prepareShapeOrExtraAllPropsFinal(mainAttr, elOption, allProps) {\n var attrOpt = elOption[mainAttr];\n\n if (!attrOpt) {\n return;\n }\n\n var allPropsInAttr = allProps[mainAttr] = {};\n var keysInAttr = keys(attrOpt);\n\n for (var i = 0; i < keysInAttr.length; i++) {\n var key = keysInAttr[i]; // To avoid share one object with different element, and\n // to avoid user modify the object inexpectedly, have to clone.\n\n allPropsInAttr[key] = cloneValue(attrOpt[key]);\n }\n}\n\nfunction prepareTransformTransitionFrom(el, elOption, transFromProps) {\n var transition = elOption.transition;\n var transitionKeys = isTransitionAll(transition) ? TRANSFORMABLE_PROPS : normalizeToArray(transition || []);\n\n for (var i = 0; i < transitionKeys.length; i++) {\n var key = transitionKeys[i];\n\n if (key === 'style' || key === 'shape' || key === 'extra') {\n continue;\n }\n\n var elVal = el[key];\n\n if (process.env.NODE_ENV !== 'production') {\n checkTransformPropRefer(key, 'el.transition');\n } // Do not clone, animator will perform that clone.\n\n\n transFromProps[key] = elVal;\n }\n}\n\nfunction prepareTransformAllPropsFinal(el, elOption, allProps) {\n for (var i = 0; i < LEGACY_TRANSFORM_PROPS.length; i++) {\n var legacyName = LEGACY_TRANSFORM_PROPS[i];\n var xyName = LEGACY_TRANSFORM_PROPS_MAP[legacyName];\n var legacyArr = elOption[legacyName];\n\n if (legacyArr) {\n allProps[xyName[0]] = legacyArr[0];\n allProps[xyName[1]] = legacyArr[1];\n }\n }\n\n for (var i = 0; i < TRANSFORMABLE_PROPS.length; i++) {\n var key = TRANSFORMABLE_PROPS[i];\n\n if (elOption[key] != null) {\n allProps[key] = elOption[key];\n }\n }\n}\n\nfunction prepareStyleTransitionFrom(fromEl, elOption, styleOpt, transFromProps) {\n if (!styleOpt) {\n return;\n }\n\n var fromElStyle = fromEl.style;\n var transFromStyleProps;\n\n if (fromElStyle) {\n var styleTransition = styleOpt.transition;\n var elTransition = elOption.transition;\n\n if (styleTransition && !isTransitionAll(styleTransition)) {\n var transitionKeys = normalizeToArray(styleTransition);\n !transFromStyleProps && (transFromStyleProps = transFromProps.style = {});\n\n for (var i = 0; i < transitionKeys.length; i++) {\n var key = transitionKeys[i];\n var elVal = fromElStyle[key]; // Do not clone, see `checkNonStyleTansitionRefer`.\n\n transFromStyleProps[key] = elVal;\n }\n } else if (fromEl.getAnimationStyleProps && (isTransitionAll(elTransition) || isTransitionAll(styleTransition) || indexOf(elTransition, 'style') >= 0)) {\n var animationProps = fromEl.getAnimationStyleProps();\n var animationStyleProps = animationProps ? animationProps.style : null;\n\n if (animationStyleProps) {\n !transFromStyleProps && (transFromStyleProps = transFromProps.style = {});\n var styleKeys = keys(styleOpt);\n\n for (var i = 0; i < styleKeys.length; i++) {\n var key = styleKeys[i];\n\n if (animationStyleProps[key]) {\n var elVal = fromElStyle[key];\n transFromStyleProps[key] = elVal;\n }\n }\n }\n }\n }\n}\n\nfunction isNonStyleTransitionEnabled(optVal, elVal) {\n // The same as `checkNonStyleTansitionRefer`.\n return !isArrayLike(optVal) ? optVal != null && isFinite(optVal) : optVal !== elVal;\n}\n\nvar checkTransformPropRefer;\n\nif (process.env.NODE_ENV !== 'production') {\n checkTransformPropRefer = function (key, usedIn) {\n if (!hasOwn(TRANSFORM_PROPS_MAP, key)) {\n warn('Prop `' + key + '` is not a permitted in `' + usedIn + '`. ' + 'Only `' + keys(TRANSFORM_PROPS_MAP).join('`, `') + '` are permitted.');\n }\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { separateMorph, combineMorph, morphPath, isCombineMorphing } from 'zrender/lib/tool/morphPath.js';\nimport { Path } from '../util/graphic.js';\nimport { defaults, isArray } from 'zrender/lib/core/util.js';\nimport { getAnimationConfig } from './basicTransition.js';\nimport { clonePath } from 'zrender/lib/tool/path.js';\n\nfunction isMultiple(elements) {\n return isArray(elements[0]);\n}\n\nfunction prepareMorphBatches(one, many) {\n var batches = [];\n var batchCount = one.length;\n\n for (var i = 0; i < batchCount; i++) {\n batches.push({\n one: one[i],\n many: []\n });\n }\n\n for (var i = 0; i < many.length; i++) {\n var len = many[i].length;\n var k = void 0;\n\n for (k = 0; k < len; k++) {\n batches[k % batchCount].many.push(many[i][k]);\n }\n }\n\n var off = 0; // If one has more paths than each one of many. average them.\n\n for (var i = batchCount - 1; i >= 0; i--) {\n if (!batches[i].many.length) {\n var moveFrom = batches[off].many;\n\n if (moveFrom.length <= 1) {\n // Not enough\n // Start from the first one.\n if (off) {\n off = 0;\n } else {\n return batches;\n }\n }\n\n var len = moveFrom.length;\n var mid = Math.ceil(len / 2);\n batches[i].many = moveFrom.slice(mid, len);\n batches[off].many = moveFrom.slice(0, mid);\n off++;\n }\n }\n\n return batches;\n}\n\nvar pathDividers = {\n clone: function (params) {\n var ret = []; // Fitting the alpha\n\n var approxOpacity = 1 - Math.pow(1 - params.path.style.opacity, 1 / params.count);\n\n for (var i = 0; i < params.count; i++) {\n var cloned = clonePath(params.path);\n cloned.setStyle('opacity', approxOpacity);\n ret.push(cloned);\n }\n\n return ret;\n },\n // Use the default divider\n split: null\n};\nexport function applyMorphAnimation(from, to, divideShape, seriesModel, dataIndex, animateOtherProps) {\n if (!from.length || !to.length) {\n return;\n }\n\n var updateAnimationCfg = getAnimationConfig('update', seriesModel, dataIndex);\n\n if (!(updateAnimationCfg && updateAnimationCfg.duration > 0)) {\n return;\n }\n\n var animationDelay = seriesModel.getModel('universalTransition').get('delay');\n var animationCfg = Object.assign({\n // Need to setToFinal so the further calculation based on the style can be correct.\n // Like emphasis color.\n setToFinal: true\n }, updateAnimationCfg);\n var many;\n var one;\n\n if (isMultiple(from)) {\n // manyToOne\n many = from;\n one = to;\n }\n\n if (isMultiple(to)) {\n // oneToMany\n many = to;\n one = from;\n }\n\n function morphOneBatch(batch, fromIsMany, animateIndex, animateCount, forceManyOne) {\n var batchMany = batch.many;\n var batchOne = batch.one;\n\n if (batchMany.length === 1 && !forceManyOne) {\n // Is one to one\n var batchFrom = fromIsMany ? batchMany[0] : batchOne;\n var batchTo = fromIsMany ? batchOne : batchMany[0];\n\n if (isCombineMorphing(batchFrom)) {\n // Keep doing combine animation.\n morphOneBatch({\n many: [batchFrom],\n one: batchTo\n }, true, animateIndex, animateCount, true);\n } else {\n var individualAnimationCfg = animationDelay ? defaults({\n delay: animationDelay(animateIndex, animateCount)\n }, animationCfg) : animationCfg;\n morphPath(batchFrom, batchTo, individualAnimationCfg);\n animateOtherProps(batchFrom, batchTo, batchFrom, batchTo, individualAnimationCfg);\n }\n } else {\n var separateAnimationCfg = defaults({\n dividePath: pathDividers[divideShape],\n individualDelay: animationDelay && function (idx, count, fromPath, toPath) {\n return animationDelay(idx + animateIndex, animateCount);\n }\n }, animationCfg);\n\n var _a = fromIsMany ? combineMorph(batchMany, batchOne, separateAnimationCfg) : separateMorph(batchOne, batchMany, separateAnimationCfg),\n fromIndividuals = _a.fromIndividuals,\n toIndividuals = _a.toIndividuals;\n\n var count = fromIndividuals.length;\n\n for (var k = 0; k < count; k++) {\n var individualAnimationCfg = animationDelay ? defaults({\n delay: animationDelay(k, count)\n }, animationCfg) : animationCfg;\n animateOtherProps(fromIndividuals[k], toIndividuals[k], fromIsMany ? batchMany[k] : batch.one, fromIsMany ? batch.one : batchMany[k], individualAnimationCfg);\n }\n }\n }\n\n var fromIsMany = many ? many === from // Is one to one. If the path number not match. also needs do merge and separate morphing.\n : from.length > to.length;\n var morphBatches = many ? prepareMorphBatches(one, many) : prepareMorphBatches(fromIsMany ? to : from, [fromIsMany ? from : to]);\n var animateCount = 0;\n\n for (var i = 0; i < morphBatches.length; i++) {\n animateCount += morphBatches[i].many.length;\n }\n\n var animateIndex = 0;\n\n for (var i = 0; i < morphBatches.length; i++) {\n morphOneBatch(morphBatches[i], fromIsMany, animateIndex, animateCount);\n animateIndex += morphBatches[i].many.length;\n }\n}\nexport function getPathList(elements) {\n if (!elements) {\n return [];\n }\n\n if (isArray(elements)) {\n var pathList_1 = [];\n\n for (var i = 0; i < elements.length; i++) {\n pathList_1.push(getPathList(elements[i]));\n }\n\n return pathList_1;\n }\n\n var pathList = [];\n elements.traverse(function (el) {\n if (el instanceof Path && !el.disableMorphing && !el.invisible && !el.ignore) {\n pathList.push(el);\n }\n });\n return pathList;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Universal transitions that can animate between any shapes(series) and any properties in any amounts.\nimport { SERIES_UNIVERSAL_TRANSITION_PROP } from '../model/Series.js';\nimport { createHashMap, each, map, filter, isArray, extend } from 'zrender/lib/core/util.js';\nimport { applyMorphAnimation, getPathList } from './morphTransitionHelper.js';\nimport Path from 'zrender/lib/graphic/Path.js';\nimport { initProps } from '../util/graphic.js';\nimport DataDiffer from '../data/DataDiffer.js';\nimport { makeInner, normalizeToArray } from '../util/model.js';\nimport { warn } from '../util/log.js';\nimport { getAnimationConfig, getOldStyle } from './basicTransition.js';\nimport Displayable from 'zrender/lib/graphic/Displayable.js';\nvar DATA_COUNT_THRESHOLD = 1e4;\n;\nvar getUniversalTransitionGlobalStore = makeInner();\n\nfunction getGroupIdDimension(data) {\n var dimensions = data.dimensions;\n\n for (var i = 0; i < dimensions.length; i++) {\n var dimInfo = data.getDimensionInfo(dimensions[i]);\n\n if (dimInfo && dimInfo.otherDims.itemGroupId === 0) {\n return dimensions[i];\n }\n }\n}\n\nfunction flattenDataDiffItems(list) {\n var items = [];\n each(list, function (seriesInfo) {\n var data = seriesInfo.data;\n\n if (data.count() > DATA_COUNT_THRESHOLD) {\n if (process.env.NODE_ENV !== 'production') {\n warn('Universal transition is disabled on large data > 10k.');\n }\n\n return;\n }\n\n var indices = data.getIndices();\n var groupDim = getGroupIdDimension(data);\n\n for (var dataIndex = 0; dataIndex < indices.length; dataIndex++) {\n items.push({\n dataGroupId: seriesInfo.dataGroupId,\n data: data,\n dim: seriesInfo.dim || groupDim,\n divide: seriesInfo.divide,\n dataIndex: dataIndex\n });\n }\n });\n return items;\n}\n\nfunction fadeInElement(newEl, newSeries, newIndex) {\n newEl.traverse(function (el) {\n if (el instanceof Path) {\n // TODO use fade in animation for target element.\n initProps(el, {\n style: {\n opacity: 0\n }\n }, newSeries, {\n dataIndex: newIndex,\n isFrom: true\n });\n }\n });\n}\n\nfunction removeEl(el) {\n if (el.parent) {\n // Bake parent transform to element.\n // So it can still have proper transform to transition after it's removed.\n var computedTransform = el.getComputedTransform();\n el.setLocalTransform(computedTransform);\n el.parent.remove(el);\n }\n}\n\nfunction stopAnimation(el) {\n el.stopAnimation();\n\n if (el.isGroup) {\n el.traverse(function (child) {\n child.stopAnimation();\n });\n }\n}\n\nfunction animateElementStyles(el, dataIndex, seriesModel) {\n var animationConfig = getAnimationConfig('update', seriesModel, dataIndex);\n animationConfig && el.traverse(function (child) {\n if (child instanceof Displayable) {\n var oldStyle = getOldStyle(child);\n\n if (oldStyle) {\n child.animateFrom({\n style: oldStyle\n }, animationConfig);\n }\n }\n });\n}\n\nfunction isAllIdSame(oldDiffItems, newDiffItems) {\n var len = oldDiffItems.length;\n\n if (len !== newDiffItems.length) {\n return false;\n }\n\n for (var i = 0; i < len; i++) {\n var oldItem = oldDiffItems[i];\n var newItem = newDiffItems[i];\n\n if (oldItem.data.getId(oldItem.dataIndex) !== newItem.data.getId(newItem.dataIndex)) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction transitionBetween(oldList, newList, api) {\n var oldDiffItems = flattenDataDiffItems(oldList);\n var newDiffItems = flattenDataDiffItems(newList);\n\n function updateMorphingPathProps(from, to, rawFrom, rawTo, animationCfg) {\n if (rawFrom || from) {\n to.animateFrom({\n style: rawFrom && rawFrom !== from ? // dividingMethod like clone may override the style(opacity)\n // So extend it to raw style.\n extend(extend({}, rawFrom.style), from.style) : from.style\n }, animationCfg);\n }\n }\n\n function findKeyDim(items) {\n for (var i = 0; i < items.length; i++) {\n if (items[i].dim) {\n return items[i].dim;\n }\n }\n }\n\n var oldKeyDim = findKeyDim(oldDiffItems);\n var newKeyDim = findKeyDim(newDiffItems);\n var hasMorphAnimation = false;\n\n function createKeyGetter(isOld, onlyGetId) {\n return function (diffItem) {\n var data = diffItem.data;\n var dataIndex = diffItem.dataIndex; // TODO if specified dim\n\n if (onlyGetId) {\n return data.getId(dataIndex);\n } // Use group id as transition key by default.\n // So we can achieve multiple to multiple animation like drilldown / up naturally.\n // If group id not exits. Use id instead. If so, only one to one transition will be applied.\n\n\n var dataGroupId = diffItem.dataGroupId; // If specified key dimension(itemGroupId by default). Use this same dimension from other data.\n // PENDING: If only use key dimension of newData.\n\n var keyDim = isOld ? oldKeyDim || newKeyDim : newKeyDim || oldKeyDim;\n var dimInfo = keyDim && data.getDimensionInfo(keyDim);\n var dimOrdinalMeta = dimInfo && dimInfo.ordinalMeta;\n\n if (dimInfo) {\n // Get from encode.itemGroupId.\n var key = data.get(dimInfo.name, dataIndex);\n\n if (dimOrdinalMeta) {\n return dimOrdinalMeta.categories[key] || key + '';\n }\n\n return key + '';\n } // Get groupId from raw item. { groupId: '' }\n\n\n var itemVal = data.getRawDataItem(dataIndex);\n\n if (itemVal && itemVal.groupId) {\n return itemVal.groupId + '';\n }\n\n return dataGroupId || data.getId(dataIndex);\n };\n } // Use id if it's very likely to be an one to one animation\n // It's more robust than groupId\n // TODO Check if key dimension is specified.\n\n\n var useId = isAllIdSame(oldDiffItems, newDiffItems);\n var isElementStillInChart = {};\n\n if (!useId) {\n // We may have different diff strategy with basicTransition if we use other dimension as key.\n // If so, we can't simply check if oldEl is same with newEl. We need a map to check if oldEl is still being used in the new chart.\n // We can't use the elements that already being morphed. Let it keep it's original basic transition.\n for (var i = 0; i < newDiffItems.length; i++) {\n var newItem = newDiffItems[i];\n var el = newItem.data.getItemGraphicEl(newItem.dataIndex);\n\n if (el) {\n isElementStillInChart[el.id] = true;\n }\n }\n }\n\n function updateOneToOne(newIndex, oldIndex) {\n var oldItem = oldDiffItems[oldIndex];\n var newItem = newDiffItems[newIndex];\n var newSeries = newItem.data.hostModel; // TODO Mark this elements is morphed and don't morph them anymore\n\n var oldEl = oldItem.data.getItemGraphicEl(oldItem.dataIndex);\n var newEl = newItem.data.getItemGraphicEl(newItem.dataIndex); // Can't handle same elements.\n\n if (oldEl === newEl) {\n newEl && animateElementStyles(newEl, newItem.dataIndex, newSeries);\n return;\n }\n\n if ( // We can't use the elements that already being morphed\n oldEl && isElementStillInChart[oldEl.id]) {\n return;\n }\n\n if (newEl) {\n // TODO: If keep animating the group in case\n // some of the elements don't want to be morphed.\n // TODO Label?\n stopAnimation(newEl);\n\n if (oldEl) {\n stopAnimation(oldEl); // If old element is doing leaving animation. stop it and remove it immediately.\n\n removeEl(oldEl);\n hasMorphAnimation = true;\n applyMorphAnimation(getPathList(oldEl), getPathList(newEl), newItem.divide, newSeries, newIndex, updateMorphingPathProps);\n } else {\n fadeInElement(newEl, newSeries, newIndex);\n }\n } // else keep oldEl leaving animation.\n\n }\n\n new DataDiffer(oldDiffItems, newDiffItems, createKeyGetter(true, useId), createKeyGetter(false, useId), null, 'multiple').update(updateOneToOne).updateManyToOne(function (newIndex, oldIndices) {\n var newItem = newDiffItems[newIndex];\n var newData = newItem.data;\n var newSeries = newData.hostModel;\n var newEl = newData.getItemGraphicEl(newItem.dataIndex);\n var oldElsList = filter(map(oldIndices, function (idx) {\n return oldDiffItems[idx].data.getItemGraphicEl(oldDiffItems[idx].dataIndex);\n }), function (oldEl) {\n return oldEl && oldEl !== newEl && !isElementStillInChart[oldEl.id];\n });\n\n if (newEl) {\n stopAnimation(newEl);\n\n if (oldElsList.length) {\n // If old element is doing leaving animation. stop it and remove it immediately.\n each(oldElsList, function (oldEl) {\n stopAnimation(oldEl);\n removeEl(oldEl);\n });\n hasMorphAnimation = true;\n applyMorphAnimation(getPathList(oldElsList), getPathList(newEl), newItem.divide, newSeries, newIndex, updateMorphingPathProps);\n } else {\n fadeInElement(newEl, newSeries, newItem.dataIndex);\n }\n } // else keep oldEl leaving animation.\n\n }).updateOneToMany(function (newIndices, oldIndex) {\n var oldItem = oldDiffItems[oldIndex];\n var oldEl = oldItem.data.getItemGraphicEl(oldItem.dataIndex); // We can't use the elements that already being morphed\n\n if (oldEl && isElementStillInChart[oldEl.id]) {\n return;\n }\n\n var newElsList = filter(map(newIndices, function (idx) {\n return newDiffItems[idx].data.getItemGraphicEl(newDiffItems[idx].dataIndex);\n }), function (el) {\n return el && el !== oldEl;\n });\n var newSeris = newDiffItems[newIndices[0]].data.hostModel;\n\n if (newElsList.length) {\n each(newElsList, function (newEl) {\n return stopAnimation(newEl);\n });\n\n if (oldEl) {\n stopAnimation(oldEl); // If old element is doing leaving animation. stop it and remove it immediately.\n\n removeEl(oldEl);\n hasMorphAnimation = true;\n applyMorphAnimation(getPathList(oldEl), getPathList(newElsList), oldItem.divide, // Use divide on old.\n newSeris, newIndices[0], updateMorphingPathProps);\n } else {\n each(newElsList, function (newEl) {\n return fadeInElement(newEl, newSeris, newIndices[0]);\n });\n }\n } // else keep oldEl leaving animation.\n\n }).updateManyToMany(function (newIndices, oldIndices) {\n // If two data are same and both have groupId.\n // Normally they should be diff by id.\n new DataDiffer(oldIndices, newIndices, function (rawIdx) {\n return oldDiffItems[rawIdx].data.getId(oldDiffItems[rawIdx].dataIndex);\n }, function (rawIdx) {\n return newDiffItems[rawIdx].data.getId(newDiffItems[rawIdx].dataIndex);\n }).update(function (newIndex, oldIndex) {\n // Use the original index\n updateOneToOne(newIndices[newIndex], oldIndices[oldIndex]);\n }).execute();\n }).execute();\n\n if (hasMorphAnimation) {\n each(newList, function (_a) {\n var data = _a.data;\n var seriesModel = data.hostModel;\n var view = seriesModel && api.getViewOfSeriesModel(seriesModel);\n var animationCfg = getAnimationConfig('update', seriesModel, 0); // use 0 index.\n\n if (view && seriesModel.isAnimationEnabled() && animationCfg && animationCfg.duration > 0) {\n view.group.traverse(function (el) {\n if (el instanceof Path && !el.animators.length) {\n // We can't accept there still exists element that has no animation\n // if universalTransition is enabled\n el.animateFrom({\n style: {\n opacity: 0\n }\n }, animationCfg);\n }\n });\n }\n });\n }\n}\n\nfunction getSeriesTransitionKey(series) {\n var seriesKey = series.getModel('universalTransition').get('seriesKey');\n\n if (!seriesKey) {\n // Use series id by default.\n return series.id;\n }\n\n return seriesKey;\n}\n\nfunction convertArraySeriesKeyToString(seriesKey) {\n if (isArray(seriesKey)) {\n // Order independent.\n return seriesKey.sort().join(',');\n }\n\n return seriesKey;\n}\n\nfunction getDivideShapeFromData(data) {\n if (data.hostModel) {\n return data.hostModel.getModel('universalTransition').get('divideShape');\n }\n}\n\nfunction findTransitionSeriesBatches(globalStore, params) {\n var updateBatches = createHashMap();\n var oldDataMap = createHashMap(); // Map that only store key in array seriesKey.\n // Which is used to query the old data when transition from one to multiple series.\n\n var oldDataMapForSplit = createHashMap();\n each(globalStore.oldSeries, function (series, idx) {\n var oldDataGroupId = globalStore.oldDataGroupIds[idx];\n var oldData = globalStore.oldData[idx];\n var transitionKey = getSeriesTransitionKey(series);\n var transitionKeyStr = convertArraySeriesKeyToString(transitionKey);\n oldDataMap.set(transitionKeyStr, {\n dataGroupId: oldDataGroupId,\n data: oldData\n });\n\n if (isArray(transitionKey)) {\n // Same key can't in different array seriesKey.\n each(transitionKey, function (key) {\n oldDataMapForSplit.set(key, {\n key: transitionKeyStr,\n dataGroupId: oldDataGroupId,\n data: oldData\n });\n });\n }\n });\n\n function checkTransitionSeriesKeyDuplicated(transitionKeyStr) {\n if (updateBatches.get(transitionKeyStr)) {\n warn(\"Duplicated seriesKey in universalTransition \" + transitionKeyStr);\n }\n }\n\n each(params.updatedSeries, function (series) {\n if (series.isUniversalTransitionEnabled() && series.isAnimationEnabled()) {\n var newDataGroupId = series.get('dataGroupId');\n var newData = series.getData();\n var transitionKey = getSeriesTransitionKey(series);\n var transitionKeyStr = convertArraySeriesKeyToString(transitionKey); // Only transition between series with same id.\n\n var oldData = oldDataMap.get(transitionKeyStr); // string transition key is the best match.\n\n if (oldData) {\n if (process.env.NODE_ENV !== 'production') {\n checkTransitionSeriesKeyDuplicated(transitionKeyStr);\n } // TODO check if data is same?\n\n\n updateBatches.set(transitionKeyStr, {\n oldSeries: [{\n dataGroupId: oldData.dataGroupId,\n divide: getDivideShapeFromData(oldData.data),\n data: oldData.data\n }],\n newSeries: [{\n dataGroupId: newDataGroupId,\n divide: getDivideShapeFromData(newData),\n data: newData\n }]\n });\n } else {\n // Transition from multiple series.\n if (isArray(transitionKey)) {\n if (process.env.NODE_ENV !== 'production') {\n checkTransitionSeriesKeyDuplicated(transitionKeyStr);\n }\n\n var oldSeries_1 = [];\n each(transitionKey, function (key) {\n var oldData = oldDataMap.get(key);\n\n if (oldData.data) {\n oldSeries_1.push({\n dataGroupId: oldData.dataGroupId,\n divide: getDivideShapeFromData(oldData.data),\n data: oldData.data\n });\n }\n });\n\n if (oldSeries_1.length) {\n updateBatches.set(transitionKeyStr, {\n oldSeries: oldSeries_1,\n newSeries: [{\n dataGroupId: newDataGroupId,\n data: newData,\n divide: getDivideShapeFromData(newData)\n }]\n });\n }\n } else {\n // Try transition to multiple series.\n var oldData_1 = oldDataMapForSplit.get(transitionKey);\n\n if (oldData_1) {\n var batch = updateBatches.get(oldData_1.key);\n\n if (!batch) {\n batch = {\n oldSeries: [{\n dataGroupId: oldData_1.dataGroupId,\n data: oldData_1.data,\n divide: getDivideShapeFromData(oldData_1.data)\n }],\n newSeries: []\n };\n updateBatches.set(oldData_1.key, batch);\n }\n\n batch.newSeries.push({\n dataGroupId: newDataGroupId,\n data: newData,\n divide: getDivideShapeFromData(newData)\n });\n }\n }\n }\n }\n });\n return updateBatches;\n}\n\nfunction querySeries(series, finder) {\n for (var i = 0; i < series.length; i++) {\n var found = finder.seriesIndex != null && finder.seriesIndex === series[i].seriesIndex || finder.seriesId != null && finder.seriesId === series[i].id;\n\n if (found) {\n return i;\n }\n }\n}\n\nfunction transitionSeriesFromOpt(transitionOpt, globalStore, params, api) {\n var from = [];\n var to = [];\n each(normalizeToArray(transitionOpt.from), function (finder) {\n var idx = querySeries(globalStore.oldSeries, finder);\n\n if (idx >= 0) {\n from.push({\n dataGroupId: globalStore.oldDataGroupIds[idx],\n data: globalStore.oldData[idx],\n // TODO can specify divideShape in transition.\n divide: getDivideShapeFromData(globalStore.oldData[idx]),\n dim: finder.dimension\n });\n }\n });\n each(normalizeToArray(transitionOpt.to), function (finder) {\n var idx = querySeries(params.updatedSeries, finder);\n\n if (idx >= 0) {\n var data = params.updatedSeries[idx].getData();\n to.push({\n dataGroupId: globalStore.oldDataGroupIds[idx],\n data: data,\n divide: getDivideShapeFromData(data),\n dim: finder.dimension\n });\n }\n });\n\n if (from.length > 0 && to.length > 0) {\n transitionBetween(from, to, api);\n }\n}\n\nexport function installUniversalTransition(registers) {\n registers.registerUpdateLifecycle('series:beforeupdate', function (ecMOdel, api, params) {\n each(normalizeToArray(params.seriesTransition), function (transOpt) {\n each(normalizeToArray(transOpt.to), function (finder) {\n var series = params.updatedSeries;\n\n for (var i = 0; i < series.length; i++) {\n if (finder.seriesIndex != null && finder.seriesIndex === series[i].seriesIndex || finder.seriesId != null && finder.seriesId === series[i].id) {\n series[i][SERIES_UNIVERSAL_TRANSITION_PROP] = true;\n }\n }\n });\n });\n });\n registers.registerUpdateLifecycle('series:transition', function (ecModel, api, params) {\n // TODO api provide an namespace that can save stuff per instance\n var globalStore = getUniversalTransitionGlobalStore(api); // TODO multiple to multiple series.\n\n if (globalStore.oldSeries && params.updatedSeries && params.optionChanged) {\n // Use give transition config if its' give;\n var transitionOpt = params.seriesTransition;\n\n if (transitionOpt) {\n each(normalizeToArray(transitionOpt), function (opt) {\n transitionSeriesFromOpt(opt, globalStore, params, api);\n });\n } else {\n // Else guess from series based on transition series key.\n var updateBatches_1 = findTransitionSeriesBatches(globalStore, params);\n each(updateBatches_1.keys(), function (key) {\n var batch = updateBatches_1.get(key);\n transitionBetween(batch.oldSeries, batch.newSeries, api);\n });\n } // Reset\n\n\n each(params.updatedSeries, function (series) {\n // Reset;\n if (series[SERIES_UNIVERSAL_TRANSITION_PROP]) {\n series[SERIES_UNIVERSAL_TRANSITION_PROP] = false;\n }\n });\n } // Save all series of current update. Not only the updated one.\n\n\n var allSeries = ecModel.getSeries();\n var savedSeries = globalStore.oldSeries = [];\n var savedDataGroupIds = globalStore.oldDataGroupIds = [];\n var savedData = globalStore.oldData = [];\n\n for (var i = 0; i < allSeries.length; i++) {\n var data = allSeries[i].getData(); // Only save the data that can have transition.\n // Avoid large data costing too much extra memory\n\n if (data.count() < DATA_COUNT_THRESHOLD) {\n savedSeries.push(allSeries[i]);\n savedDataGroupIds.push(allSeries[i].get('dataGroupId'));\n savedData.push(data);\n }\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport BaseBarSeriesModel from './BaseBarSeries.js';\nimport createSeriesData from '../helper/createSeriesData.js';\nimport { inheritDefaultOption } from '../../util/component.js';\n\nvar BarSeriesModel =\n/** @class */\nfunction (_super) {\n __extends(BarSeriesModel, _super);\n\n function BarSeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = BarSeriesModel.type;\n return _this;\n }\n\n BarSeriesModel.prototype.getInitialData = function () {\n return createSeriesData(null, this, {\n useEncodeDefaulter: true,\n createInvertedIndices: !!this.get('realtimeSort', true) || null\n });\n };\n /**\n * @override\n */\n\n\n BarSeriesModel.prototype.getProgressive = function () {\n // Do not support progressive in normal mode.\n return this.get('large') ? this.get('progressive') : false;\n };\n /**\n * @override\n */\n\n\n BarSeriesModel.prototype.getProgressiveThreshold = function () {\n // Do not support progressive in normal mode.\n var progressiveThreshold = this.get('progressiveThreshold');\n var largeThreshold = this.get('largeThreshold');\n\n if (largeThreshold > progressiveThreshold) {\n progressiveThreshold = largeThreshold;\n }\n\n return progressiveThreshold;\n };\n\n BarSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\n return selectors.rect(data.getItemLayout(dataIndex));\n };\n\n BarSeriesModel.type = 'series.bar';\n BarSeriesModel.dependencies = ['grid', 'polar'];\n BarSeriesModel.defaultOption = inheritDefaultOption(BaseBarSeriesModel.defaultOption, {\n // If clipped\n // Only available on cartesian2d\n clip: true,\n roundCap: false,\n showBackground: false,\n backgroundStyle: {\n color: 'rgba(180, 180, 180, 0.2)',\n borderColor: null,\n borderWidth: 0,\n borderType: 'solid',\n borderRadius: 0,\n shadowBlur: 0,\n shadowColor: null,\n shadowOffsetX: 0,\n shadowOffsetY: 0,\n opacity: 1\n },\n select: {\n itemStyle: {\n borderColor: '#212121'\n }\n },\n realtimeSort: false\n });\n return BarSeriesModel;\n}(BaseBarSeriesModel);\n\nexport default BarSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport Path from 'zrender/lib/graphic/Path.js';\nimport Group from 'zrender/lib/graphic/Group.js';\nimport { extend, each, map } from 'zrender/lib/core/util.js';\nimport { Rect, Sector, updateProps, initProps, removeElementWithFadeOut, traverseElements } from '../../util/graphic.js';\nimport { getECData } from '../../util/innerStore.js';\nimport { setStatesStylesFromModel, toggleHoverEmphasis } from '../../util/states.js';\nimport { setLabelStyle, getLabelStatesModels, setLabelValueAnimation, labelInner } from '../../label/labelStyle.js';\nimport { throttle } from '../../util/throttle.js';\nimport { createClipPath } from '../helper/createClipPathFromCoordSys.js';\nimport Sausage from '../../util/shape/sausage.js';\nimport ChartView from '../../view/Chart.js';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem.js';\nimport { getDefaultLabel, getDefaultInterpolatedLabel } from '../helper/labelHelper.js';\nimport { warn } from '../../util/log.js';\nimport { createSectorCalculateTextPosition, setSectorTextRotation } from '../../label/sectorLabel.js';\nimport { saveOldStyle } from '../../animation/basicTransition.js';\nimport { getSectorCornerRadius } from '../helper/sectorHelper.js';\nvar mathMax = Math.max;\nvar mathMin = Math.min;\n\nfunction getClipArea(coord, data) {\n var coordSysClipArea = coord.getArea && coord.getArea();\n\n if (isCoordinateSystemType(coord, 'cartesian2d')) {\n var baseAxis = coord.getBaseAxis(); // When boundaryGap is false or using time axis. bar may exceed the grid.\n // We should not clip this part.\n // See test/bar2.html\n\n if (baseAxis.type !== 'category' || !baseAxis.onBand) {\n var expandWidth = data.getLayout('bandWidth');\n\n if (baseAxis.isHorizontal()) {\n coordSysClipArea.x -= expandWidth;\n coordSysClipArea.width += expandWidth * 2;\n } else {\n coordSysClipArea.y -= expandWidth;\n coordSysClipArea.height += expandWidth * 2;\n }\n }\n }\n\n return coordSysClipArea;\n}\n\nvar BarView =\n/** @class */\nfunction (_super) {\n __extends(BarView, _super);\n\n function BarView() {\n var _this = _super.call(this) || this;\n\n _this.type = BarView.type;\n _this._isFirstFrame = true;\n return _this;\n }\n\n BarView.prototype.render = function (seriesModel, ecModel, api, payload) {\n this._model = seriesModel;\n\n this._removeOnRenderedListener(api);\n\n this._updateDrawMode(seriesModel);\n\n var coordinateSystemType = seriesModel.get('coordinateSystem');\n\n if (coordinateSystemType === 'cartesian2d' || coordinateSystemType === 'polar') {\n // Clear previously rendered progressive elements.\n this._progressiveEls = null;\n this._isLargeDraw ? this._renderLarge(seriesModel, ecModel, api) : this._renderNormal(seriesModel, ecModel, api, payload);\n } else if (process.env.NODE_ENV !== 'production') {\n warn('Only cartesian2d and polar supported for bar.');\n }\n };\n\n BarView.prototype.incrementalPrepareRender = function (seriesModel) {\n this._clear();\n\n this._updateDrawMode(seriesModel); // incremental also need to clip, otherwise might be overlow.\n // But must not set clip in each frame, otherwise all of the children will be marked redraw.\n\n\n this._updateLargeClip(seriesModel);\n };\n\n BarView.prototype.incrementalRender = function (params, seriesModel) {\n // Reset\n this._progressiveEls = []; // Do not support progressive in normal mode.\n\n this._incrementalRenderLarge(params, seriesModel);\n };\n\n BarView.prototype.eachRendered = function (cb) {\n traverseElements(this._progressiveEls || this.group, cb);\n };\n\n BarView.prototype._updateDrawMode = function (seriesModel) {\n var isLargeDraw = seriesModel.pipelineContext.large;\n\n if (this._isLargeDraw == null || isLargeDraw !== this._isLargeDraw) {\n this._isLargeDraw = isLargeDraw;\n\n this._clear();\n }\n };\n\n BarView.prototype._renderNormal = function (seriesModel, ecModel, api, payload) {\n var group = this.group;\n var data = seriesModel.getData();\n var oldData = this._data;\n var coord = seriesModel.coordinateSystem;\n var baseAxis = coord.getBaseAxis();\n var isHorizontalOrRadial;\n\n if (coord.type === 'cartesian2d') {\n isHorizontalOrRadial = baseAxis.isHorizontal();\n } else if (coord.type === 'polar') {\n isHorizontalOrRadial = baseAxis.dim === 'angle';\n }\n\n var animationModel = seriesModel.isAnimationEnabled() ? seriesModel : null;\n var realtimeSortCfg = shouldRealtimeSort(seriesModel, coord);\n\n if (realtimeSortCfg) {\n this._enableRealtimeSort(realtimeSortCfg, data, api);\n }\n\n var needsClip = seriesModel.get('clip', true) || realtimeSortCfg;\n var coordSysClipArea = getClipArea(coord, data); // If there is clipPath created in large mode. Remove it.\n\n group.removeClipPath(); // We don't use clipPath in normal mode because we needs a perfect animation\n // And don't want the label are clipped.\n\n var roundCap = seriesModel.get('roundCap', true);\n var drawBackground = seriesModel.get('showBackground', true);\n var backgroundModel = seriesModel.getModel('backgroundStyle');\n var barBorderRadius = backgroundModel.get('borderRadius') || 0;\n var bgEls = [];\n var oldBgEls = this._backgroundEls;\n var isInitSort = payload && payload.isInitSort;\n var isChangeOrder = payload && payload.type === 'changeAxisOrder';\n\n function createBackground(dataIndex) {\n var bgLayout = getLayout[coord.type](data, dataIndex);\n var bgEl = createBackgroundEl(coord, isHorizontalOrRadial, bgLayout);\n bgEl.useStyle(backgroundModel.getItemStyle()); // Only cartesian2d support borderRadius.\n\n if (coord.type === 'cartesian2d') {\n bgEl.setShape('r', barBorderRadius);\n } else {\n bgEl.setShape('cornerRadius', barBorderRadius);\n }\n\n bgEls[dataIndex] = bgEl;\n return bgEl;\n }\n\n ;\n data.diff(oldData).add(function (dataIndex) {\n var itemModel = data.getItemModel(dataIndex);\n var layout = getLayout[coord.type](data, dataIndex, itemModel);\n\n if (drawBackground) {\n createBackground(dataIndex);\n } // If dataZoom in filteMode: 'empty', the baseValue can be set as NaN in \"axisProxy\".\n\n\n if (!data.hasValue(dataIndex) || !isValidLayout[coord.type](layout)) {\n return;\n }\n\n var isClipped = false;\n\n if (needsClip) {\n // Clip will modify the layout params.\n // And return a boolean to determine if the shape are fully clipped.\n isClipped = clip[coord.type](coordSysClipArea, layout);\n }\n\n var el = elementCreator[coord.type](seriesModel, data, dataIndex, layout, isHorizontalOrRadial, animationModel, baseAxis.model, false, roundCap);\n\n if (realtimeSortCfg) {\n /**\n * Force label animation because even if the element is\n * ignored because it's clipped, it may not be clipped after\n * changing order. Then, if not using forceLabelAnimation,\n * the label animation was never started, in which case,\n * the label will be the final value and doesn't have label\n * animation.\n */\n el.forceLabelAnimation = true;\n }\n\n updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\n\n if (isInitSort) {\n el.attr({\n shape: layout\n });\n } else if (realtimeSortCfg) {\n updateRealtimeAnimation(realtimeSortCfg, animationModel, el, layout, dataIndex, isHorizontalOrRadial, false, false);\n } else {\n initProps(el, {\n shape: layout\n }, seriesModel, dataIndex);\n }\n\n data.setItemGraphicEl(dataIndex, el);\n group.add(el);\n el.ignore = isClipped;\n }).update(function (newIndex, oldIndex) {\n var itemModel = data.getItemModel(newIndex);\n var layout = getLayout[coord.type](data, newIndex, itemModel);\n\n if (drawBackground) {\n var bgEl = void 0;\n\n if (oldBgEls.length === 0) {\n bgEl = createBackground(oldIndex);\n } else {\n bgEl = oldBgEls[oldIndex];\n bgEl.useStyle(backgroundModel.getItemStyle()); // Only cartesian2d support borderRadius.\n\n if (coord.type === 'cartesian2d') {\n bgEl.setShape('r', barBorderRadius);\n } else {\n bgEl.setShape('cornerRadius', barBorderRadius);\n }\n\n bgEls[newIndex] = bgEl;\n }\n\n var bgLayout = getLayout[coord.type](data, newIndex);\n var shape = createBackgroundShape(isHorizontalOrRadial, bgLayout, coord);\n updateProps(bgEl, {\n shape: shape\n }, animationModel, newIndex);\n }\n\n var el = oldData.getItemGraphicEl(oldIndex);\n\n if (!data.hasValue(newIndex) || !isValidLayout[coord.type](layout)) {\n group.remove(el);\n return;\n }\n\n var isClipped = false;\n\n if (needsClip) {\n isClipped = clip[coord.type](coordSysClipArea, layout);\n\n if (isClipped) {\n group.remove(el);\n }\n }\n\n if (!el) {\n el = elementCreator[coord.type](seriesModel, data, newIndex, layout, isHorizontalOrRadial, animationModel, baseAxis.model, !!el, roundCap);\n } else {\n saveOldStyle(el);\n }\n\n if (realtimeSortCfg) {\n el.forceLabelAnimation = true;\n }\n\n if (isChangeOrder) {\n var textEl = el.getTextContent();\n\n if (textEl) {\n var labelInnerStore = labelInner(textEl);\n\n if (labelInnerStore.prevValue != null) {\n /**\n * Set preValue to be value so that no new label\n * should be started, otherwise, it will take a full\n * `animationDurationUpdate` time to finish the\n * animation, which is not expected.\n */\n labelInnerStore.prevValue = labelInnerStore.value;\n }\n }\n } // Not change anything if only order changed.\n // Especially not change label.\n else {\n updateStyle(el, data, newIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\n }\n\n if (isInitSort) {\n el.attr({\n shape: layout\n });\n } else if (realtimeSortCfg) {\n updateRealtimeAnimation(realtimeSortCfg, animationModel, el, layout, newIndex, isHorizontalOrRadial, true, isChangeOrder);\n } else {\n updateProps(el, {\n shape: layout\n }, seriesModel, newIndex, null);\n }\n\n data.setItemGraphicEl(newIndex, el);\n el.ignore = isClipped;\n group.add(el);\n }).remove(function (dataIndex) {\n var el = oldData.getItemGraphicEl(dataIndex);\n el && removeElementWithFadeOut(el, seriesModel, dataIndex);\n }).execute();\n var bgGroup = this._backgroundGroup || (this._backgroundGroup = new Group());\n bgGroup.removeAll();\n\n for (var i = 0; i < bgEls.length; ++i) {\n bgGroup.add(bgEls[i]);\n }\n\n group.add(bgGroup);\n this._backgroundEls = bgEls;\n this._data = data;\n };\n\n BarView.prototype._renderLarge = function (seriesModel, ecModel, api) {\n this._clear();\n\n createLarge(seriesModel, this.group);\n\n this._updateLargeClip(seriesModel);\n };\n\n BarView.prototype._incrementalRenderLarge = function (params, seriesModel) {\n this._removeBackground();\n\n createLarge(seriesModel, this.group, this._progressiveEls, true);\n };\n\n BarView.prototype._updateLargeClip = function (seriesModel) {\n // Use clipPath in large mode.\n var clipPath = seriesModel.get('clip', true) && createClipPath(seriesModel.coordinateSystem, false, seriesModel);\n var group = this.group;\n\n if (clipPath) {\n group.setClipPath(clipPath);\n } else {\n group.removeClipPath();\n }\n };\n\n BarView.prototype._enableRealtimeSort = function (realtimeSortCfg, data, api) {\n var _this = this; // If no data in the first frame, wait for data to initSort\n\n\n if (!data.count()) {\n return;\n }\n\n var baseAxis = realtimeSortCfg.baseAxis;\n\n if (this._isFirstFrame) {\n this._dispatchInitSort(data, realtimeSortCfg, api);\n\n this._isFirstFrame = false;\n } else {\n var orderMapping_1 = function (idx) {\n var el = data.getItemGraphicEl(idx);\n var shape = el && el.shape;\n return shape && // The result should be consistent with the initial sort by data value.\n // Do not support the case that both positive and negative exist.\n Math.abs(baseAxis.isHorizontal() ? shape.height : shape.width) // If data is NaN, shape.xxx may be NaN, so use || 0 here in case\n || 0;\n };\n\n this._onRendered = function () {\n _this._updateSortWithinSameData(data, orderMapping_1, baseAxis, api);\n };\n\n api.getZr().on('rendered', this._onRendered);\n }\n };\n\n BarView.prototype._dataSort = function (data, baseAxis, orderMapping) {\n var info = [];\n data.each(data.mapDimension(baseAxis.dim), function (ordinalNumber, dataIdx) {\n var mappedValue = orderMapping(dataIdx);\n mappedValue = mappedValue == null ? NaN : mappedValue;\n info.push({\n dataIndex: dataIdx,\n mappedValue: mappedValue,\n ordinalNumber: ordinalNumber\n });\n });\n info.sort(function (a, b) {\n // If NaN, it will be treated as min val.\n return b.mappedValue - a.mappedValue;\n });\n return {\n ordinalNumbers: map(info, function (item) {\n return item.ordinalNumber;\n })\n };\n };\n\n BarView.prototype._isOrderChangedWithinSameData = function (data, orderMapping, baseAxis) {\n var scale = baseAxis.scale;\n var ordinalDataDim = data.mapDimension(baseAxis.dim);\n var lastValue = Number.MAX_VALUE;\n\n for (var tickNum = 0, len = scale.getOrdinalMeta().categories.length; tickNum < len; ++tickNum) {\n var rawIdx = data.rawIndexOf(ordinalDataDim, scale.getRawOrdinalNumber(tickNum));\n var value = rawIdx < 0 // If some tick have no bar, the tick will be treated as min.\n ? Number.MIN_VALUE // PENDING: if dataZoom on baseAxis exits, is it a performance issue?\n : orderMapping(data.indexOfRawIndex(rawIdx));\n\n if (value > lastValue) {\n return true;\n }\n\n lastValue = value;\n }\n\n return false;\n };\n /*\n * Consider the case when A and B changed order, whose representing\n * bars are both out of sight, we don't wish to trigger reorder action\n * as long as the order in the view doesn't change.\n */\n\n\n BarView.prototype._isOrderDifferentInView = function (orderInfo, baseAxis) {\n var scale = baseAxis.scale;\n var extent = scale.getExtent();\n var tickNum = Math.max(0, extent[0]);\n var tickMax = Math.min(extent[1], scale.getOrdinalMeta().categories.length - 1);\n\n for (; tickNum <= tickMax; ++tickNum) {\n if (orderInfo.ordinalNumbers[tickNum] !== scale.getRawOrdinalNumber(tickNum)) {\n return true;\n }\n }\n };\n\n BarView.prototype._updateSortWithinSameData = function (data, orderMapping, baseAxis, api) {\n if (!this._isOrderChangedWithinSameData(data, orderMapping, baseAxis)) {\n return;\n }\n\n var sortInfo = this._dataSort(data, baseAxis, orderMapping);\n\n if (this._isOrderDifferentInView(sortInfo, baseAxis)) {\n this._removeOnRenderedListener(api);\n\n api.dispatchAction({\n type: 'changeAxisOrder',\n componentType: baseAxis.dim + 'Axis',\n axisId: baseAxis.index,\n sortInfo: sortInfo\n });\n }\n };\n\n BarView.prototype._dispatchInitSort = function (data, realtimeSortCfg, api) {\n var baseAxis = realtimeSortCfg.baseAxis;\n\n var sortResult = this._dataSort(data, baseAxis, function (dataIdx) {\n return data.get(data.mapDimension(realtimeSortCfg.otherAxis.dim), dataIdx);\n });\n\n api.dispatchAction({\n type: 'changeAxisOrder',\n componentType: baseAxis.dim + 'Axis',\n isInitSort: true,\n axisId: baseAxis.index,\n sortInfo: sortResult\n });\n };\n\n BarView.prototype.remove = function (ecModel, api) {\n this._clear(this._model);\n\n this._removeOnRenderedListener(api);\n };\n\n BarView.prototype.dispose = function (ecModel, api) {\n this._removeOnRenderedListener(api);\n };\n\n BarView.prototype._removeOnRenderedListener = function (api) {\n if (this._onRendered) {\n api.getZr().off('rendered', this._onRendered);\n this._onRendered = null;\n }\n };\n\n BarView.prototype._clear = function (model) {\n var group = this.group;\n var data = this._data;\n\n if (model && model.isAnimationEnabled() && data && !this._isLargeDraw) {\n this._removeBackground();\n\n this._backgroundEls = [];\n data.eachItemGraphicEl(function (el) {\n removeElementWithFadeOut(el, model, getECData(el).dataIndex);\n });\n } else {\n group.removeAll();\n }\n\n this._data = null;\n this._isFirstFrame = true;\n };\n\n BarView.prototype._removeBackground = function () {\n this.group.remove(this._backgroundGroup);\n this._backgroundGroup = null;\n };\n\n BarView.type = 'bar';\n return BarView;\n}(ChartView);\n\nvar clip = {\n cartesian2d: function (coordSysBoundingRect, layout) {\n var signWidth = layout.width < 0 ? -1 : 1;\n var signHeight = layout.height < 0 ? -1 : 1; // Needs positive width and height\n\n if (signWidth < 0) {\n layout.x += layout.width;\n layout.width = -layout.width;\n }\n\n if (signHeight < 0) {\n layout.y += layout.height;\n layout.height = -layout.height;\n }\n\n var coordSysX2 = coordSysBoundingRect.x + coordSysBoundingRect.width;\n var coordSysY2 = coordSysBoundingRect.y + coordSysBoundingRect.height;\n var x = mathMax(layout.x, coordSysBoundingRect.x);\n var x2 = mathMin(layout.x + layout.width, coordSysX2);\n var y = mathMax(layout.y, coordSysBoundingRect.y);\n var y2 = mathMin(layout.y + layout.height, coordSysY2);\n var xClipped = x2 < x;\n var yClipped = y2 < y; // When xClipped or yClipped, the element will be marked as `ignore`.\n // But we should also place the element at the edge of the coord sys bounding rect.\n // Because if data changed and the bar shows again, its transition animation\n // will begin at this place.\n\n layout.x = xClipped && x > coordSysX2 ? x2 : x;\n layout.y = yClipped && y > coordSysY2 ? y2 : y;\n layout.width = xClipped ? 0 : x2 - x;\n layout.height = yClipped ? 0 : y2 - y; // Reverse back\n\n if (signWidth < 0) {\n layout.x += layout.width;\n layout.width = -layout.width;\n }\n\n if (signHeight < 0) {\n layout.y += layout.height;\n layout.height = -layout.height;\n }\n\n return xClipped || yClipped;\n },\n polar: function (coordSysClipArea, layout) {\n var signR = layout.r0 <= layout.r ? 1 : -1; // Make sure r is larger than r0\n\n if (signR < 0) {\n var tmp = layout.r;\n layout.r = layout.r0;\n layout.r0 = tmp;\n }\n\n var r = mathMin(layout.r, coordSysClipArea.r);\n var r0 = mathMax(layout.r0, coordSysClipArea.r0);\n layout.r = r;\n layout.r0 = r0;\n var clipped = r - r0 < 0; // Reverse back\n\n if (signR < 0) {\n var tmp = layout.r;\n layout.r = layout.r0;\n layout.r0 = tmp;\n }\n\n return clipped;\n }\n};\nvar elementCreator = {\n cartesian2d: function (seriesModel, data, newIndex, layout, isHorizontal, animationModel, axisModel, isUpdate, roundCap) {\n var rect = new Rect({\n shape: extend({}, layout),\n z2: 1\n });\n rect.__dataIndex = newIndex;\n rect.name = 'item';\n\n if (animationModel) {\n var rectShape = rect.shape;\n var animateProperty = isHorizontal ? 'height' : 'width';\n rectShape[animateProperty] = 0;\n }\n\n return rect;\n },\n polar: function (seriesModel, data, newIndex, layout, isRadial, animationModel, axisModel, isUpdate, roundCap) {\n var ShapeClass = !isRadial && roundCap ? Sausage : Sector;\n var sector = new ShapeClass({\n shape: layout,\n z2: 1\n });\n sector.name = 'item';\n var positionMap = createPolarPositionMapping(isRadial);\n sector.calculateTextPosition = createSectorCalculateTextPosition(positionMap, {\n isRoundCap: ShapeClass === Sausage\n }); // Animation\n\n if (animationModel) {\n var sectorShape = sector.shape;\n var animateProperty = isRadial ? 'r' : 'endAngle';\n var animateTarget = {};\n sectorShape[animateProperty] = isRadial ? layout.r0 : layout.startAngle;\n animateTarget[animateProperty] = layout[animateProperty];\n (isUpdate ? updateProps : initProps)(sector, {\n shape: animateTarget // __value: typeof dataValue === 'string' ? parseInt(dataValue, 10) : dataValue\n\n }, animationModel);\n }\n\n return sector;\n }\n};\n\nfunction shouldRealtimeSort(seriesModel, coordSys) {\n var realtimeSortOption = seriesModel.get('realtimeSort', true);\n var baseAxis = coordSys.getBaseAxis();\n\n if (process.env.NODE_ENV !== 'production') {\n if (realtimeSortOption) {\n if (baseAxis.type !== 'category') {\n warn('`realtimeSort` will not work because this bar series is not based on a category axis.');\n }\n\n if (coordSys.type !== 'cartesian2d') {\n warn('`realtimeSort` will not work because this bar series is not on cartesian2d.');\n }\n }\n }\n\n if (realtimeSortOption && baseAxis.type === 'category' && coordSys.type === 'cartesian2d') {\n return {\n baseAxis: baseAxis,\n otherAxis: coordSys.getOtherAxis(baseAxis)\n };\n }\n}\n\nfunction updateRealtimeAnimation(realtimeSortCfg, seriesAnimationModel, el, layout, newIndex, isHorizontal, isUpdate, isChangeOrder) {\n var seriesTarget;\n var axisTarget;\n\n if (isHorizontal) {\n axisTarget = {\n x: layout.x,\n width: layout.width\n };\n seriesTarget = {\n y: layout.y,\n height: layout.height\n };\n } else {\n axisTarget = {\n y: layout.y,\n height: layout.height\n };\n seriesTarget = {\n x: layout.x,\n width: layout.width\n };\n }\n\n if (!isChangeOrder) {\n // Keep the original growth animation if only axis order changed.\n // Not start a new animation.\n (isUpdate ? updateProps : initProps)(el, {\n shape: seriesTarget\n }, seriesAnimationModel, newIndex, null);\n }\n\n var axisAnimationModel = seriesAnimationModel ? realtimeSortCfg.baseAxis.model : null;\n (isUpdate ? updateProps : initProps)(el, {\n shape: axisTarget\n }, axisAnimationModel, newIndex);\n}\n\nfunction checkPropertiesNotValid(obj, props) {\n for (var i = 0; i < props.length; i++) {\n if (!isFinite(obj[props[i]])) {\n return true;\n }\n }\n\n return false;\n}\n\nvar rectPropties = ['x', 'y', 'width', 'height'];\nvar polarPropties = ['cx', 'cy', 'r', 'startAngle', 'endAngle'];\nvar isValidLayout = {\n cartesian2d: function (layout) {\n return !checkPropertiesNotValid(layout, rectPropties);\n },\n polar: function (layout) {\n return !checkPropertiesNotValid(layout, polarPropties);\n }\n};\nvar getLayout = {\n // itemModel is only used to get borderWidth, which is not needed\n // when calculating bar background layout.\n cartesian2d: function (data, dataIndex, itemModel) {\n var layout = data.getItemLayout(dataIndex);\n var fixedLineWidth = itemModel ? getLineWidth(itemModel, layout) : 0; // fix layout with lineWidth\n\n var signX = layout.width > 0 ? 1 : -1;\n var signY = layout.height > 0 ? 1 : -1;\n return {\n x: layout.x + signX * fixedLineWidth / 2,\n y: layout.y + signY * fixedLineWidth / 2,\n width: layout.width - signX * fixedLineWidth,\n height: layout.height - signY * fixedLineWidth\n };\n },\n polar: function (data, dataIndex, itemModel) {\n var layout = data.getItemLayout(dataIndex);\n return {\n cx: layout.cx,\n cy: layout.cy,\n r0: layout.r0,\n r: layout.r,\n startAngle: layout.startAngle,\n endAngle: layout.endAngle,\n clockwise: layout.clockwise\n };\n }\n};\n\nfunction isZeroOnPolar(layout) {\n return layout.startAngle != null && layout.endAngle != null && layout.startAngle === layout.endAngle;\n}\n\nfunction createPolarPositionMapping(isRadial) {\n return function (isRadial) {\n var arcOrAngle = isRadial ? 'Arc' : 'Angle';\n return function (position) {\n switch (position) {\n case 'start':\n case 'insideStart':\n case 'end':\n case 'insideEnd':\n return position + arcOrAngle;\n\n default:\n return position;\n }\n };\n }(isRadial);\n}\n\nfunction updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, isPolar) {\n var style = data.getItemVisual(dataIndex, 'style');\n\n if (!isPolar) {\n var borderRadius = itemModel.get(['itemStyle', 'borderRadius']) || 0;\n el.setShape('r', borderRadius);\n } else if (!seriesModel.get('roundCap')) {\n var sectorShape = el.shape;\n var cornerRadius = getSectorCornerRadius(itemModel.getModel('itemStyle'), sectorShape, true);\n extend(sectorShape, cornerRadius);\n el.setShape(sectorShape);\n }\n\n el.useStyle(style);\n var cursorStyle = itemModel.getShallow('cursor');\n cursorStyle && el.attr('cursor', cursorStyle);\n var labelPositionOutside = isPolar ? isHorizontalOrRadial ? layout.r >= layout.r0 ? 'endArc' : 'startArc' : layout.endAngle >= layout.startAngle ? 'endAngle' : 'startAngle' : isHorizontalOrRadial ? layout.height >= 0 ? 'bottom' : 'top' : layout.width >= 0 ? 'right' : 'left';\n var labelStatesModels = getLabelStatesModels(itemModel);\n setLabelStyle(el, labelStatesModels, {\n labelFetcher: seriesModel,\n labelDataIndex: dataIndex,\n defaultText: getDefaultLabel(seriesModel.getData(), dataIndex),\n inheritColor: style.fill,\n defaultOpacity: style.opacity,\n defaultOutsidePosition: labelPositionOutside\n });\n var label = el.getTextContent();\n\n if (isPolar && label) {\n var position = itemModel.get(['label', 'position']);\n el.textConfig.inside = position === 'middle' ? true : null;\n setSectorTextRotation(el, position === 'outside' ? labelPositionOutside : position, createPolarPositionMapping(isHorizontalOrRadial), itemModel.get(['label', 'rotate']));\n }\n\n setLabelValueAnimation(label, labelStatesModels, seriesModel.getRawValue(dataIndex), function (value) {\n return getDefaultInterpolatedLabel(data, value);\n });\n var emphasisModel = itemModel.getModel(['emphasis']);\n toggleHoverEmphasis(el, emphasisModel.get('focus'), emphasisModel.get('blurScope'), emphasisModel.get('disabled'));\n setStatesStylesFromModel(el, itemModel);\n\n if (isZeroOnPolar(layout)) {\n el.style.fill = 'none';\n el.style.stroke = 'none';\n each(el.states, function (state) {\n if (state.style) {\n state.style.fill = state.style.stroke = 'none';\n }\n });\n }\n} // In case width or height are too small.\n\n\nfunction getLineWidth(itemModel, rawLayout) {\n // Has no border.\n var borderColor = itemModel.get(['itemStyle', 'borderColor']);\n\n if (!borderColor || borderColor === 'none') {\n return 0;\n }\n\n var lineWidth = itemModel.get(['itemStyle', 'borderWidth']) || 0; // width or height may be NaN for empty data\n\n var width = isNaN(rawLayout.width) ? Number.MAX_VALUE : Math.abs(rawLayout.width);\n var height = isNaN(rawLayout.height) ? Number.MAX_VALUE : Math.abs(rawLayout.height);\n return Math.min(lineWidth, width, height);\n}\n\nvar LagePathShape =\n/** @class */\nfunction () {\n function LagePathShape() {}\n\n return LagePathShape;\n}();\n\nvar LargePath =\n/** @class */\nfunction (_super) {\n __extends(LargePath, _super);\n\n function LargePath(opts) {\n var _this = _super.call(this, opts) || this;\n\n _this.type = 'largeBar';\n return _this;\n }\n\n LargePath.prototype.getDefaultShape = function () {\n return new LagePathShape();\n };\n\n LargePath.prototype.buildPath = function (ctx, shape) {\n // Drawing lines is more efficient than drawing\n // a whole line or drawing rects.\n var points = shape.points;\n var baseDimIdx = this.baseDimIdx;\n var valueDimIdx = 1 - this.baseDimIdx;\n var startPoint = [];\n var size = [];\n var barWidth = this.barWidth;\n\n for (var i = 0; i < points.length; i += 3) {\n size[baseDimIdx] = barWidth;\n size[valueDimIdx] = points[i + 2];\n startPoint[baseDimIdx] = points[i + baseDimIdx];\n startPoint[valueDimIdx] = points[i + valueDimIdx];\n ctx.rect(startPoint[0], startPoint[1], size[0], size[1]);\n }\n };\n\n return LargePath;\n}(Path);\n\nfunction createLarge(seriesModel, group, progressiveEls, incremental) {\n // TODO support polar\n var data = seriesModel.getData();\n var baseDimIdx = data.getLayout('valueAxisHorizontal') ? 1 : 0;\n var largeDataIndices = data.getLayout('largeDataIndices');\n var barWidth = data.getLayout('size');\n var backgroundModel = seriesModel.getModel('backgroundStyle');\n var bgPoints = data.getLayout('largeBackgroundPoints');\n\n if (bgPoints) {\n var bgEl = new LargePath({\n shape: {\n points: bgPoints\n },\n incremental: !!incremental,\n silent: true,\n z2: 0\n });\n bgEl.baseDimIdx = baseDimIdx;\n bgEl.largeDataIndices = largeDataIndices;\n bgEl.barWidth = barWidth;\n bgEl.useStyle(backgroundModel.getItemStyle());\n group.add(bgEl);\n progressiveEls && progressiveEls.push(bgEl);\n }\n\n var el = new LargePath({\n shape: {\n points: data.getLayout('largePoints')\n },\n incremental: !!incremental,\n ignoreCoarsePointer: true,\n z2: 1\n });\n el.baseDimIdx = baseDimIdx;\n el.largeDataIndices = largeDataIndices;\n el.barWidth = barWidth;\n group.add(el);\n el.useStyle(data.getVisual('style')); // Enable tooltip and user mouse/touch event handlers.\n\n getECData(el).seriesIndex = seriesModel.seriesIndex;\n\n if (!seriesModel.get('silent')) {\n el.on('mousedown', largePathUpdateDataIndex);\n el.on('mousemove', largePathUpdateDataIndex);\n }\n\n progressiveEls && progressiveEls.push(el);\n} // Use throttle to avoid frequently traverse to find dataIndex.\n\n\nvar largePathUpdateDataIndex = throttle(function (event) {\n var largePath = this;\n var dataIndex = largePathFindDataIndex(largePath, event.offsetX, event.offsetY);\n getECData(largePath).dataIndex = dataIndex >= 0 ? dataIndex : null;\n}, 30, false);\n\nfunction largePathFindDataIndex(largePath, x, y) {\n var baseDimIdx = largePath.baseDimIdx;\n var valueDimIdx = 1 - baseDimIdx;\n var points = largePath.shape.points;\n var largeDataIndices = largePath.largeDataIndices;\n var startPoint = [];\n var size = [];\n var barWidth = largePath.barWidth;\n\n for (var i = 0, len = points.length / 3; i < len; i++) {\n var ii = i * 3;\n size[baseDimIdx] = barWidth;\n size[valueDimIdx] = points[ii + 2];\n startPoint[baseDimIdx] = points[ii + baseDimIdx];\n startPoint[valueDimIdx] = points[ii + valueDimIdx];\n\n if (size[valueDimIdx] < 0) {\n startPoint[valueDimIdx] += size[valueDimIdx];\n size[valueDimIdx] = -size[valueDimIdx];\n }\n\n if (x >= startPoint[0] && x <= startPoint[0] + size[0] && y >= startPoint[1] && y <= startPoint[1] + size[1]) {\n return largeDataIndices[i];\n }\n }\n\n return -1;\n}\n\nfunction createBackgroundShape(isHorizontalOrRadial, layout, coord) {\n if (isCoordinateSystemType(coord, 'cartesian2d')) {\n var rectShape = layout;\n var coordLayout = coord.getArea();\n return {\n x: isHorizontalOrRadial ? rectShape.x : coordLayout.x,\n y: isHorizontalOrRadial ? coordLayout.y : rectShape.y,\n width: isHorizontalOrRadial ? rectShape.width : coordLayout.width,\n height: isHorizontalOrRadial ? coordLayout.height : rectShape.height\n };\n } else {\n var coordLayout = coord.getArea();\n var sectorShape = layout;\n return {\n cx: coordLayout.cx,\n cy: coordLayout.cy,\n r0: isHorizontalOrRadial ? coordLayout.r0 : sectorShape.r0,\n r: isHorizontalOrRadial ? coordLayout.r : sectorShape.r,\n startAngle: isHorizontalOrRadial ? sectorShape.startAngle : 0,\n endAngle: isHorizontalOrRadial ? sectorShape.endAngle : Math.PI * 2\n };\n }\n}\n\nfunction createBackgroundEl(coord, isHorizontalOrRadial, layout) {\n var ElementClz = coord.type === 'polar' ? Sector : Rect;\n return new ElementClz({\n shape: createBackgroundShape(isHorizontalOrRadial, layout, coord),\n silent: true,\n z2: 0\n });\n}\n\nexport default BarView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series.js';\nimport createSeriesData from '../helper/createSeriesData.js';\nimport { each } from 'zrender/lib/core/util.js';\n\nvar BaseBarSeriesModel =\n/** @class */\nfunction (_super) {\n __extends(BaseBarSeriesModel, _super);\n\n function BaseBarSeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = BaseBarSeriesModel.type;\n return _this;\n }\n\n BaseBarSeriesModel.prototype.getInitialData = function (option, ecModel) {\n return createSeriesData(null, this, {\n useEncodeDefaulter: true\n });\n };\n\n BaseBarSeriesModel.prototype.getMarkerPosition = function (value, dims, startingAtTick) {\n var coordSys = this.coordinateSystem;\n\n if (coordSys && coordSys.clampData) {\n // PENDING if clamp ?\n var clampData_1 = coordSys.clampData(value);\n var pt_1 = coordSys.dataToPoint(clampData_1);\n\n if (startingAtTick) {\n each(coordSys.getAxes(), function (axis, idx) {\n // If axis type is category, use tick coords instead\n if (axis.type === 'category' && dims != null) {\n var tickCoords = axis.getTicksCoords();\n var targetTickId = clampData_1[idx]; // The index of rightmost tick of markArea is 1 larger than x1/y1 index\n\n var isEnd = dims[idx] === 'x1' || dims[idx] === 'y1';\n\n if (isEnd) {\n targetTickId += 1;\n } // The only contains one tick, tickCoords is\n // like [{coord: 0, tickValue: 0}, {coord: 0}]\n // to the length should always be larger than 1\n\n\n if (tickCoords.length < 2) {\n return;\n } else if (tickCoords.length === 2) {\n // The left value and right value of the axis are\n // the same. coord is 0 in both items. Use the max\n // value of the axis as the coord\n pt_1[idx] = axis.toGlobalCoord(axis.getExtent()[isEnd ? 1 : 0]);\n return;\n }\n\n var leftCoord = void 0;\n var coord = void 0;\n var stepTickValue = 1;\n\n for (var i = 0; i < tickCoords.length; i++) {\n var tickCoord = tickCoords[i].coord; // The last item of tickCoords doesn't contain\n // tickValue\n\n var tickValue = i === tickCoords.length - 1 ? tickCoords[i - 1].tickValue + stepTickValue : tickCoords[i].tickValue;\n\n if (tickValue === targetTickId) {\n coord = tickCoord;\n break;\n } else if (tickValue < targetTickId) {\n leftCoord = tickCoord;\n } else if (leftCoord != null && tickValue > targetTickId) {\n coord = (tickCoord + leftCoord) / 2;\n break;\n }\n\n if (i === 1) {\n // Here we assume the step of category axes is\n // the same\n stepTickValue = tickValue - tickCoords[0].tickValue;\n }\n }\n\n if (coord == null) {\n if (!leftCoord) {\n // targetTickId is smaller than all tick ids in the\n // visible area, use the leftmost tick coord\n coord = tickCoords[0].coord;\n } else if (leftCoord) {\n // targetTickId is larger than all tick ids in the\n // visible area, use the rightmost tick coord\n coord = tickCoords[tickCoords.length - 1].coord;\n }\n }\n\n pt_1[idx] = axis.toGlobalCoord(coord);\n }\n });\n } else {\n var data = this.getData();\n var offset = data.getLayout('offset');\n var size = data.getLayout('size');\n var offsetIndex = coordSys.getBaseAxis().isHorizontal() ? 0 : 1;\n pt_1[offsetIndex] += offset + size / 2;\n }\n\n return pt_1;\n }\n\n return [NaN, NaN];\n };\n\n BaseBarSeriesModel.type = 'series.__base_bar__';\n BaseBarSeriesModel.defaultOption = {\n // zlevel: 0,\n z: 2,\n coordinateSystem: 'cartesian2d',\n legendHoverLink: true,\n // stack: null\n // Cartesian coordinate system\n // xAxisIndex: 0,\n // yAxisIndex: 0,\n barMinHeight: 0,\n barMinAngle: 0,\n // cursor: null,\n large: false,\n largeThreshold: 400,\n progressive: 3e3,\n progressiveChunkMode: 'mod'\n };\n return BaseBarSeriesModel;\n}(SeriesModel);\n\nSeriesModel.registerClass(BaseBarSeriesModel);\nexport default BaseBarSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport BaseBarSeriesModel from './BaseBarSeries.js';\nimport { inheritDefaultOption } from '../../util/component.js';\n\nvar PictorialBarSeriesModel =\n/** @class */\nfunction (_super) {\n __extends(PictorialBarSeriesModel, _super);\n\n function PictorialBarSeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = PictorialBarSeriesModel.type;\n _this.hasSymbolVisual = true;\n _this.defaultSymbol = 'roundRect';\n return _this;\n }\n\n PictorialBarSeriesModel.prototype.getInitialData = function (option) {\n // Disable stack.\n option.stack = null;\n return _super.prototype.getInitialData.apply(this, arguments);\n };\n\n PictorialBarSeriesModel.type = 'series.pictorialBar';\n PictorialBarSeriesModel.dependencies = ['grid'];\n PictorialBarSeriesModel.defaultOption = inheritDefaultOption(BaseBarSeriesModel.defaultOption, {\n symbol: 'circle',\n symbolSize: null,\n symbolRotate: null,\n symbolPosition: null,\n symbolOffset: null,\n symbolMargin: null,\n symbolRepeat: false,\n symbolRepeatDirection: 'end',\n symbolClip: false,\n symbolBoundingData: null,\n symbolPatternSize: 400,\n barGap: '-100%',\n // z can be set in data item, which is z2 actually.\n // Disable progressive\n progressive: 0,\n emphasis: {\n // By default pictorialBar do not hover scale. Hover scale is not suitable\n // for the case that both has foreground and background.\n scale: false\n },\n select: {\n itemStyle: {\n borderColor: '#212121'\n }\n }\n });\n return PictorialBarSeriesModel;\n}(BaseBarSeriesModel);\n\nexport default PictorialBarSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as graphic from '../../util/graphic.js';\nimport { toggleHoverEmphasis } from '../../util/states.js';\nimport { createSymbol, normalizeSymbolOffset } from '../../util/symbol.js';\nimport { parsePercent, isNumeric } from '../../util/number.js';\nimport ChartView from '../../view/Chart.js';\nimport { getDefaultLabel } from '../helper/labelHelper.js';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle.js';\nimport ZRImage from 'zrender/lib/graphic/Image.js';\nimport { getECData } from '../../util/innerStore.js';\nvar BAR_BORDER_WIDTH_QUERY = ['itemStyle', 'borderWidth']; // index: +isHorizontal\n\nvar LAYOUT_ATTRS = [{\n xy: 'x',\n wh: 'width',\n index: 0,\n posDesc: ['left', 'right']\n}, {\n xy: 'y',\n wh: 'height',\n index: 1,\n posDesc: ['top', 'bottom']\n}];\nvar pathForLineWidth = new graphic.Circle();\n\nvar PictorialBarView =\n/** @class */\nfunction (_super) {\n __extends(PictorialBarView, _super);\n\n function PictorialBarView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = PictorialBarView.type;\n return _this;\n }\n\n PictorialBarView.prototype.render = function (seriesModel, ecModel, api) {\n var group = this.group;\n var data = seriesModel.getData();\n var oldData = this._data;\n var cartesian = seriesModel.coordinateSystem;\n var baseAxis = cartesian.getBaseAxis();\n var isHorizontal = baseAxis.isHorizontal();\n var coordSysRect = cartesian.master.getRect();\n var opt = {\n ecSize: {\n width: api.getWidth(),\n height: api.getHeight()\n },\n seriesModel: seriesModel,\n coordSys: cartesian,\n coordSysExtent: [[coordSysRect.x, coordSysRect.x + coordSysRect.width], [coordSysRect.y, coordSysRect.y + coordSysRect.height]],\n isHorizontal: isHorizontal,\n valueDim: LAYOUT_ATTRS[+isHorizontal],\n categoryDim: LAYOUT_ATTRS[1 - +isHorizontal]\n };\n data.diff(oldData).add(function (dataIndex) {\n if (!data.hasValue(dataIndex)) {\n return;\n }\n\n var itemModel = getItemModel(data, dataIndex);\n var symbolMeta = getSymbolMeta(data, dataIndex, itemModel, opt);\n var bar = createBar(data, opt, symbolMeta);\n data.setItemGraphicEl(dataIndex, bar);\n group.add(bar);\n updateCommon(bar, opt, symbolMeta);\n }).update(function (newIndex, oldIndex) {\n var bar = oldData.getItemGraphicEl(oldIndex);\n\n if (!data.hasValue(newIndex)) {\n group.remove(bar);\n return;\n }\n\n var itemModel = getItemModel(data, newIndex);\n var symbolMeta = getSymbolMeta(data, newIndex, itemModel, opt);\n var pictorialShapeStr = getShapeStr(data, symbolMeta);\n\n if (bar && pictorialShapeStr !== bar.__pictorialShapeStr) {\n group.remove(bar);\n data.setItemGraphicEl(newIndex, null);\n bar = null;\n }\n\n if (bar) {\n updateBar(bar, opt, symbolMeta);\n } else {\n bar = createBar(data, opt, symbolMeta, true);\n }\n\n data.setItemGraphicEl(newIndex, bar);\n bar.__pictorialSymbolMeta = symbolMeta; // Add back\n\n group.add(bar);\n updateCommon(bar, opt, symbolMeta);\n }).remove(function (dataIndex) {\n var bar = oldData.getItemGraphicEl(dataIndex);\n bar && removeBar(oldData, dataIndex, bar.__pictorialSymbolMeta.animationModel, bar);\n }).execute();\n this._data = data;\n return this.group;\n };\n\n PictorialBarView.prototype.remove = function (ecModel, api) {\n var group = this.group;\n var data = this._data;\n\n if (ecModel.get('animation')) {\n if (data) {\n data.eachItemGraphicEl(function (bar) {\n removeBar(data, getECData(bar).dataIndex, ecModel, bar);\n });\n }\n } else {\n group.removeAll();\n }\n };\n\n PictorialBarView.type = 'pictorialBar';\n return PictorialBarView;\n}(ChartView); // Set or calculate default value about symbol, and calculate layout info.\n\n\nfunction getSymbolMeta(data, dataIndex, itemModel, opt) {\n var layout = data.getItemLayout(dataIndex);\n var symbolRepeat = itemModel.get('symbolRepeat');\n var symbolClip = itemModel.get('symbolClip');\n var symbolPosition = itemModel.get('symbolPosition') || 'start';\n var symbolRotate = itemModel.get('symbolRotate');\n var rotation = (symbolRotate || 0) * Math.PI / 180 || 0;\n var symbolPatternSize = itemModel.get('symbolPatternSize') || 2;\n var isAnimationEnabled = itemModel.isAnimationEnabled();\n var symbolMeta = {\n dataIndex: dataIndex,\n layout: layout,\n itemModel: itemModel,\n symbolType: data.getItemVisual(dataIndex, 'symbol') || 'circle',\n style: data.getItemVisual(dataIndex, 'style'),\n symbolClip: symbolClip,\n symbolRepeat: symbolRepeat,\n symbolRepeatDirection: itemModel.get('symbolRepeatDirection'),\n symbolPatternSize: symbolPatternSize,\n rotation: rotation,\n animationModel: isAnimationEnabled ? itemModel : null,\n hoverScale: isAnimationEnabled && itemModel.get(['emphasis', 'scale']),\n z2: itemModel.getShallow('z', true) || 0\n };\n prepareBarLength(itemModel, symbolRepeat, layout, opt, symbolMeta);\n prepareSymbolSize(data, dataIndex, layout, symbolRepeat, symbolClip, symbolMeta.boundingLength, symbolMeta.pxSign, symbolPatternSize, opt, symbolMeta);\n prepareLineWidth(itemModel, symbolMeta.symbolScale, rotation, opt, symbolMeta);\n var symbolSize = symbolMeta.symbolSize;\n var symbolOffset = normalizeSymbolOffset(itemModel.get('symbolOffset'), symbolSize);\n prepareLayoutInfo(itemModel, symbolSize, layout, symbolRepeat, symbolClip, symbolOffset, symbolPosition, symbolMeta.valueLineWidth, symbolMeta.boundingLength, symbolMeta.repeatCutLength, opt, symbolMeta);\n return symbolMeta;\n} // bar length can be negative.\n\n\nfunction prepareBarLength(itemModel, symbolRepeat, layout, opt, outputSymbolMeta) {\n var valueDim = opt.valueDim;\n var symbolBoundingData = itemModel.get('symbolBoundingData');\n var valueAxis = opt.coordSys.getOtherAxis(opt.coordSys.getBaseAxis());\n var zeroPx = valueAxis.toGlobalCoord(valueAxis.dataToCoord(0));\n var pxSignIdx = 1 - +(layout[valueDim.wh] <= 0);\n var boundingLength;\n\n if (zrUtil.isArray(symbolBoundingData)) {\n var symbolBoundingExtent = [convertToCoordOnAxis(valueAxis, symbolBoundingData[0]) - zeroPx, convertToCoordOnAxis(valueAxis, symbolBoundingData[1]) - zeroPx];\n symbolBoundingExtent[1] < symbolBoundingExtent[0] && symbolBoundingExtent.reverse();\n boundingLength = symbolBoundingExtent[pxSignIdx];\n } else if (symbolBoundingData != null) {\n boundingLength = convertToCoordOnAxis(valueAxis, symbolBoundingData) - zeroPx;\n } else if (symbolRepeat) {\n boundingLength = opt.coordSysExtent[valueDim.index][pxSignIdx] - zeroPx;\n } else {\n boundingLength = layout[valueDim.wh];\n }\n\n outputSymbolMeta.boundingLength = boundingLength;\n\n if (symbolRepeat) {\n outputSymbolMeta.repeatCutLength = layout[valueDim.wh];\n } // if 'pxSign' means sign of pixel, it can't be zero, or symbolScale will be zero\n // and when borderWidth be settled, the actual linewidth will be NaN\n\n\n outputSymbolMeta.pxSign = boundingLength > 0 ? 1 : -1;\n}\n\nfunction convertToCoordOnAxis(axis, value) {\n return axis.toGlobalCoord(axis.dataToCoord(axis.scale.parse(value)));\n} // Support ['100%', '100%']\n\n\nfunction prepareSymbolSize(data, dataIndex, layout, symbolRepeat, symbolClip, boundingLength, pxSign, symbolPatternSize, opt, outputSymbolMeta) {\n var valueDim = opt.valueDim;\n var categoryDim = opt.categoryDim;\n var categorySize = Math.abs(layout[categoryDim.wh]);\n var symbolSize = data.getItemVisual(dataIndex, 'symbolSize');\n var parsedSymbolSize;\n\n if (zrUtil.isArray(symbolSize)) {\n parsedSymbolSize = symbolSize.slice();\n } else {\n if (symbolSize == null) {\n // will parse to number below\n parsedSymbolSize = ['100%', '100%'];\n } else {\n parsedSymbolSize = [symbolSize, symbolSize];\n }\n } // Note: percentage symbolSize (like '100%') do not consider lineWidth, because it is\n // to complicated to calculate real percent value if considering scaled lineWidth.\n // So the actual size will bigger than layout size if lineWidth is bigger than zero,\n // which can be tolerated in pictorial chart.\n\n\n parsedSymbolSize[categoryDim.index] = parsePercent(parsedSymbolSize[categoryDim.index], categorySize);\n parsedSymbolSize[valueDim.index] = parsePercent(parsedSymbolSize[valueDim.index], symbolRepeat ? categorySize : Math.abs(boundingLength));\n outputSymbolMeta.symbolSize = parsedSymbolSize; // If x or y is less than zero, show reversed shape.\n\n var symbolScale = outputSymbolMeta.symbolScale = [parsedSymbolSize[0] / symbolPatternSize, parsedSymbolSize[1] / symbolPatternSize]; // Follow convention, 'right' and 'top' is the normal scale.\n\n symbolScale[valueDim.index] *= (opt.isHorizontal ? -1 : 1) * pxSign;\n}\n\nfunction prepareLineWidth(itemModel, symbolScale, rotation, opt, outputSymbolMeta) {\n // In symbols are drawn with scale, so do not need to care about the case that width\n // or height are too small. But symbol use strokeNoScale, where acture lineWidth should\n // be calculated.\n var valueLineWidth = itemModel.get(BAR_BORDER_WIDTH_QUERY) || 0;\n\n if (valueLineWidth) {\n pathForLineWidth.attr({\n scaleX: symbolScale[0],\n scaleY: symbolScale[1],\n rotation: rotation\n });\n pathForLineWidth.updateTransform();\n valueLineWidth /= pathForLineWidth.getLineScale();\n valueLineWidth *= symbolScale[opt.valueDim.index];\n }\n\n outputSymbolMeta.valueLineWidth = valueLineWidth || 0;\n}\n\nfunction prepareLayoutInfo(itemModel, symbolSize, layout, symbolRepeat, symbolClip, symbolOffset, symbolPosition, valueLineWidth, boundingLength, repeatCutLength, opt, outputSymbolMeta) {\n var categoryDim = opt.categoryDim;\n var valueDim = opt.valueDim;\n var pxSign = outputSymbolMeta.pxSign;\n var unitLength = Math.max(symbolSize[valueDim.index] + valueLineWidth, 0);\n var pathLen = unitLength; // Note: rotation will not effect the layout of symbols, because user may\n // want symbols to rotate on its center, which should not be translated\n // when rotating.\n\n if (symbolRepeat) {\n var absBoundingLength = Math.abs(boundingLength);\n var symbolMargin = zrUtil.retrieve(itemModel.get('symbolMargin'), '15%') + '';\n var hasEndGap = false;\n\n if (symbolMargin.lastIndexOf('!') === symbolMargin.length - 1) {\n hasEndGap = true;\n symbolMargin = symbolMargin.slice(0, symbolMargin.length - 1);\n }\n\n var symbolMarginNumeric = parsePercent(symbolMargin, symbolSize[valueDim.index]);\n var uLenWithMargin = Math.max(unitLength + symbolMarginNumeric * 2, 0); // When symbol margin is less than 0, margin at both ends will be subtracted\n // to ensure that all of the symbols will not be overflow the given area.\n\n var endFix = hasEndGap ? 0 : symbolMarginNumeric * 2; // Both final repeatTimes and final symbolMarginNumeric area calculated based on\n // boundingLength.\n\n var repeatSpecified = isNumeric(symbolRepeat);\n var repeatTimes = repeatSpecified ? symbolRepeat : toIntTimes((absBoundingLength + endFix) / uLenWithMargin); // Adjust calculate margin, to ensure each symbol is displayed\n // entirely in the given layout area.\n\n var mDiff = absBoundingLength - repeatTimes * unitLength;\n symbolMarginNumeric = mDiff / 2 / (hasEndGap ? repeatTimes : Math.max(repeatTimes - 1, 1));\n uLenWithMargin = unitLength + symbolMarginNumeric * 2;\n endFix = hasEndGap ? 0 : symbolMarginNumeric * 2; // Update repeatTimes when not all symbol will be shown.\n\n if (!repeatSpecified && symbolRepeat !== 'fixed') {\n repeatTimes = repeatCutLength ? toIntTimes((Math.abs(repeatCutLength) + endFix) / uLenWithMargin) : 0;\n }\n\n pathLen = repeatTimes * uLenWithMargin - endFix;\n outputSymbolMeta.repeatTimes = repeatTimes;\n outputSymbolMeta.symbolMargin = symbolMarginNumeric;\n }\n\n var sizeFix = pxSign * (pathLen / 2);\n var pathPosition = outputSymbolMeta.pathPosition = [];\n pathPosition[categoryDim.index] = layout[categoryDim.wh] / 2;\n pathPosition[valueDim.index] = symbolPosition === 'start' ? sizeFix : symbolPosition === 'end' ? boundingLength - sizeFix : boundingLength / 2; // 'center'\n\n if (symbolOffset) {\n pathPosition[0] += symbolOffset[0];\n pathPosition[1] += symbolOffset[1];\n }\n\n var bundlePosition = outputSymbolMeta.bundlePosition = [];\n bundlePosition[categoryDim.index] = layout[categoryDim.xy];\n bundlePosition[valueDim.index] = layout[valueDim.xy];\n var barRectShape = outputSymbolMeta.barRectShape = zrUtil.extend({}, layout);\n barRectShape[valueDim.wh] = pxSign * Math.max(Math.abs(layout[valueDim.wh]), Math.abs(pathPosition[valueDim.index] + sizeFix));\n barRectShape[categoryDim.wh] = layout[categoryDim.wh];\n var clipShape = outputSymbolMeta.clipShape = {}; // Consider that symbol may be overflow layout rect.\n\n clipShape[categoryDim.xy] = -layout[categoryDim.xy];\n clipShape[categoryDim.wh] = opt.ecSize[categoryDim.wh];\n clipShape[valueDim.xy] = 0;\n clipShape[valueDim.wh] = layout[valueDim.wh];\n}\n\nfunction createPath(symbolMeta) {\n var symbolPatternSize = symbolMeta.symbolPatternSize;\n var path = createSymbol( // Consider texture img, make a big size.\n symbolMeta.symbolType, -symbolPatternSize / 2, -symbolPatternSize / 2, symbolPatternSize, symbolPatternSize);\n path.attr({\n culling: true\n });\n path.type !== 'image' && path.setStyle({\n strokeNoScale: true\n });\n return path;\n}\n\nfunction createOrUpdateRepeatSymbols(bar, opt, symbolMeta, isUpdate) {\n var bundle = bar.__pictorialBundle;\n var symbolSize = symbolMeta.symbolSize;\n var valueLineWidth = symbolMeta.valueLineWidth;\n var pathPosition = symbolMeta.pathPosition;\n var valueDim = opt.valueDim;\n var repeatTimes = symbolMeta.repeatTimes || 0;\n var index = 0;\n var unit = symbolSize[opt.valueDim.index] + valueLineWidth + symbolMeta.symbolMargin * 2;\n eachPath(bar, function (path) {\n path.__pictorialAnimationIndex = index;\n path.__pictorialRepeatTimes = repeatTimes;\n\n if (index < repeatTimes) {\n updateAttr(path, null, makeTarget(index), symbolMeta, isUpdate);\n } else {\n updateAttr(path, null, {\n scaleX: 0,\n scaleY: 0\n }, symbolMeta, isUpdate, function () {\n bundle.remove(path);\n });\n } // updateHoverAnimation(path, symbolMeta);\n\n\n index++;\n });\n\n for (; index < repeatTimes; index++) {\n var path = createPath(symbolMeta);\n path.__pictorialAnimationIndex = index;\n path.__pictorialRepeatTimes = repeatTimes;\n bundle.add(path);\n var target = makeTarget(index);\n updateAttr(path, {\n x: target.x,\n y: target.y,\n scaleX: 0,\n scaleY: 0\n }, {\n scaleX: target.scaleX,\n scaleY: target.scaleY,\n rotation: target.rotation\n }, symbolMeta, isUpdate);\n }\n\n function makeTarget(index) {\n var position = pathPosition.slice(); // (start && pxSign > 0) || (end && pxSign < 0): i = repeatTimes - index\n // Otherwise: i = index;\n\n var pxSign = symbolMeta.pxSign;\n var i = index;\n\n if (symbolMeta.symbolRepeatDirection === 'start' ? pxSign > 0 : pxSign < 0) {\n i = repeatTimes - 1 - index;\n }\n\n position[valueDim.index] = unit * (i - repeatTimes / 2 + 0.5) + pathPosition[valueDim.index];\n return {\n x: position[0],\n y: position[1],\n scaleX: symbolMeta.symbolScale[0],\n scaleY: symbolMeta.symbolScale[1],\n rotation: symbolMeta.rotation\n };\n }\n}\n\nfunction createOrUpdateSingleSymbol(bar, opt, symbolMeta, isUpdate) {\n var bundle = bar.__pictorialBundle;\n var mainPath = bar.__pictorialMainPath;\n\n if (!mainPath) {\n mainPath = bar.__pictorialMainPath = createPath(symbolMeta);\n bundle.add(mainPath);\n updateAttr(mainPath, {\n x: symbolMeta.pathPosition[0],\n y: symbolMeta.pathPosition[1],\n scaleX: 0,\n scaleY: 0,\n rotation: symbolMeta.rotation\n }, {\n scaleX: symbolMeta.symbolScale[0],\n scaleY: symbolMeta.symbolScale[1]\n }, symbolMeta, isUpdate);\n } else {\n updateAttr(mainPath, null, {\n x: symbolMeta.pathPosition[0],\n y: symbolMeta.pathPosition[1],\n scaleX: symbolMeta.symbolScale[0],\n scaleY: symbolMeta.symbolScale[1],\n rotation: symbolMeta.rotation\n }, symbolMeta, isUpdate);\n }\n} // bar rect is used for label.\n\n\nfunction createOrUpdateBarRect(bar, symbolMeta, isUpdate) {\n var rectShape = zrUtil.extend({}, symbolMeta.barRectShape);\n var barRect = bar.__pictorialBarRect;\n\n if (!barRect) {\n barRect = bar.__pictorialBarRect = new graphic.Rect({\n z2: 2,\n shape: rectShape,\n silent: true,\n style: {\n stroke: 'transparent',\n fill: 'transparent',\n lineWidth: 0\n }\n });\n barRect.disableMorphing = true;\n bar.add(barRect);\n } else {\n updateAttr(barRect, null, {\n shape: rectShape\n }, symbolMeta, isUpdate);\n }\n}\n\nfunction createOrUpdateClip(bar, opt, symbolMeta, isUpdate) {\n // If not clip, symbol will be remove and rebuilt.\n if (symbolMeta.symbolClip) {\n var clipPath = bar.__pictorialClipPath;\n var clipShape = zrUtil.extend({}, symbolMeta.clipShape);\n var valueDim = opt.valueDim;\n var animationModel = symbolMeta.animationModel;\n var dataIndex = symbolMeta.dataIndex;\n\n if (clipPath) {\n graphic.updateProps(clipPath, {\n shape: clipShape\n }, animationModel, dataIndex);\n } else {\n clipShape[valueDim.wh] = 0;\n clipPath = new graphic.Rect({\n shape: clipShape\n });\n\n bar.__pictorialBundle.setClipPath(clipPath);\n\n bar.__pictorialClipPath = clipPath;\n var target = {};\n target[valueDim.wh] = symbolMeta.clipShape[valueDim.wh];\n graphic[isUpdate ? 'updateProps' : 'initProps'](clipPath, {\n shape: target\n }, animationModel, dataIndex);\n }\n }\n}\n\nfunction getItemModel(data, dataIndex) {\n var itemModel = data.getItemModel(dataIndex);\n itemModel.getAnimationDelayParams = getAnimationDelayParams;\n itemModel.isAnimationEnabled = isAnimationEnabled;\n return itemModel;\n}\n\nfunction getAnimationDelayParams(path) {\n // The order is the same as the z-order, see `symbolRepeatDiretion`.\n return {\n index: path.__pictorialAnimationIndex,\n count: path.__pictorialRepeatTimes\n };\n}\n\nfunction isAnimationEnabled() {\n // `animation` prop can be set on itemModel in pictorial bar chart.\n return this.parentModel.isAnimationEnabled() && !!this.getShallow('animation');\n}\n\nfunction createBar(data, opt, symbolMeta, isUpdate) {\n // bar is the main element for each data.\n var bar = new graphic.Group(); // bundle is used for location and clip.\n\n var bundle = new graphic.Group();\n bar.add(bundle);\n bar.__pictorialBundle = bundle;\n bundle.x = symbolMeta.bundlePosition[0];\n bundle.y = symbolMeta.bundlePosition[1];\n\n if (symbolMeta.symbolRepeat) {\n createOrUpdateRepeatSymbols(bar, opt, symbolMeta);\n } else {\n createOrUpdateSingleSymbol(bar, opt, symbolMeta);\n }\n\n createOrUpdateBarRect(bar, symbolMeta, isUpdate);\n createOrUpdateClip(bar, opt, symbolMeta, isUpdate);\n bar.__pictorialShapeStr = getShapeStr(data, symbolMeta);\n bar.__pictorialSymbolMeta = symbolMeta;\n return bar;\n}\n\nfunction updateBar(bar, opt, symbolMeta) {\n var animationModel = symbolMeta.animationModel;\n var dataIndex = symbolMeta.dataIndex;\n var bundle = bar.__pictorialBundle;\n graphic.updateProps(bundle, {\n x: symbolMeta.bundlePosition[0],\n y: symbolMeta.bundlePosition[1]\n }, animationModel, dataIndex);\n\n if (symbolMeta.symbolRepeat) {\n createOrUpdateRepeatSymbols(bar, opt, symbolMeta, true);\n } else {\n createOrUpdateSingleSymbol(bar, opt, symbolMeta, true);\n }\n\n createOrUpdateBarRect(bar, symbolMeta, true);\n createOrUpdateClip(bar, opt, symbolMeta, true);\n}\n\nfunction removeBar(data, dataIndex, animationModel, bar) {\n // Not show text when animating\n var labelRect = bar.__pictorialBarRect;\n labelRect && labelRect.removeTextContent();\n var paths = [];\n eachPath(bar, function (path) {\n paths.push(path);\n });\n bar.__pictorialMainPath && paths.push(bar.__pictorialMainPath); // I do not find proper remove animation for clip yet.\n\n bar.__pictorialClipPath && (animationModel = null);\n zrUtil.each(paths, function (path) {\n graphic.removeElement(path, {\n scaleX: 0,\n scaleY: 0\n }, animationModel, dataIndex, function () {\n bar.parent && bar.parent.remove(bar);\n });\n });\n data.setItemGraphicEl(dataIndex, null);\n}\n\nfunction getShapeStr(data, symbolMeta) {\n return [data.getItemVisual(symbolMeta.dataIndex, 'symbol') || 'none', !!symbolMeta.symbolRepeat, !!symbolMeta.symbolClip].join(':');\n}\n\nfunction eachPath(bar, cb, context) {\n // Do not use Group#eachChild, because it do not support remove.\n zrUtil.each(bar.__pictorialBundle.children(), function (el) {\n el !== bar.__pictorialBarRect && cb.call(context, el);\n });\n}\n\nfunction updateAttr(el, immediateAttrs, animationAttrs, symbolMeta, isUpdate, cb) {\n immediateAttrs && el.attr(immediateAttrs); // when symbolCip used, only clip path has init animation, otherwise it would be weird effect.\n\n if (symbolMeta.symbolClip && !isUpdate) {\n animationAttrs && el.attr(animationAttrs);\n } else {\n animationAttrs && graphic[isUpdate ? 'updateProps' : 'initProps'](el, animationAttrs, symbolMeta.animationModel, symbolMeta.dataIndex, cb);\n }\n}\n\nfunction updateCommon(bar, opt, symbolMeta) {\n var dataIndex = symbolMeta.dataIndex;\n var itemModel = symbolMeta.itemModel; // Color must be excluded.\n // Because symbol provide setColor individually to set fill and stroke\n\n var emphasisModel = itemModel.getModel('emphasis');\n var emphasisStyle = emphasisModel.getModel('itemStyle').getItemStyle();\n var blurStyle = itemModel.getModel(['blur', 'itemStyle']).getItemStyle();\n var selectStyle = itemModel.getModel(['select', 'itemStyle']).getItemStyle();\n var cursorStyle = itemModel.getShallow('cursor');\n var focus = emphasisModel.get('focus');\n var blurScope = emphasisModel.get('blurScope');\n var hoverScale = emphasisModel.get('scale');\n eachPath(bar, function (path) {\n if (path instanceof ZRImage) {\n var pathStyle = path.style;\n path.useStyle(zrUtil.extend({\n // TODO other properties like dx, dy ?\n image: pathStyle.image,\n x: pathStyle.x,\n y: pathStyle.y,\n width: pathStyle.width,\n height: pathStyle.height\n }, symbolMeta.style));\n } else {\n path.useStyle(symbolMeta.style);\n }\n\n var emphasisState = path.ensureState('emphasis');\n emphasisState.style = emphasisStyle;\n\n if (hoverScale) {\n // NOTE: Must after scale is set after updateAttr\n emphasisState.scaleX = path.scaleX * 1.1;\n emphasisState.scaleY = path.scaleY * 1.1;\n }\n\n path.ensureState('blur').style = blurStyle;\n path.ensureState('select').style = selectStyle;\n cursorStyle && (path.cursor = cursorStyle);\n path.z2 = symbolMeta.z2;\n });\n var barPositionOutside = opt.valueDim.posDesc[+(symbolMeta.boundingLength > 0)];\n var barRect = bar.__pictorialBarRect;\n setLabelStyle(barRect, getLabelStatesModels(itemModel), {\n labelFetcher: opt.seriesModel,\n labelDataIndex: dataIndex,\n defaultText: getDefaultLabel(opt.seriesModel.getData(), dataIndex),\n inheritColor: symbolMeta.style.fill,\n defaultOpacity: symbolMeta.style.opacity,\n defaultOutsidePosition: barPositionOutside\n });\n toggleHoverEmphasis(bar, focus, blurScope, emphasisModel.get('disabled'));\n}\n\nfunction toIntTimes(times) {\n var roundedTimes = Math.round(times); // Escapse accurate error\n\n return Math.abs(times - roundedTimes) < 1e-4 ? roundedTimes : Math.ceil(times);\n}\n\nexport default PictorialBarView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { layout, createProgressiveLayout } from '../../layout/barGrid.js';\nimport dataSample from '../../processor/dataSample.js';\nimport BarSeries from './BarSeries.js';\nimport BarView from './BarView.js';\nexport function install(registers) {\n registers.registerChartView(BarView);\n registers.registerSeriesModel(BarSeries);\n registers.registerLayout(registers.PRIORITY.VISUAL.LAYOUT, zrUtil.curry(layout, 'bar')); // Do layout after other overall layout, which can prepare some information.\n\n registers.registerLayout(registers.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT, createProgressiveLayout('bar')); // Down sample after filter\n\n registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, dataSample('bar'));\n /**\n * @payload\n * @property {string} [componentType=series]\n * @property {number} [dx]\n * @property {number} [dy]\n * @property {number} [zoom]\n * @property {number} [originX]\n * @property {number} [originY]\n */\n\n registers.registerAction({\n type: 'changeAxisOrder',\n event: 'changeAxisOrder',\n update: 'update'\n }, function (payload, ecModel) {\n var componentType = payload.componentType || 'series';\n ecModel.eachComponent({\n mainType: componentType,\n query: payload\n }, function (componentModel) {\n if (payload.sortInfo) {\n componentModel.axis.setCategorySortInfo(payload.sortInfo);\n }\n });\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport PictorialBarView from './PictorialBarView.js';\nimport PictorialBarSeriesModel from './PictorialBarSeries.js';\nimport { createProgressiveLayout, layout } from '../../layout/barGrid.js';\nimport { curry } from 'zrender/lib/core/util.js';\nexport function install(registers) {\n registers.registerChartView(PictorialBarView);\n registers.registerSeriesModel(PictorialBarSeriesModel);\n registers.registerLayout(registers.PRIORITY.VISUAL.LAYOUT, curry(layout, 'pictorialBar')); // Do layout after other overall layout, which can prepare some information.\n\n registers.registerLayout(registers.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT, createProgressiveLayout('pictorialBar'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series.js';\nimport { WhiskerBoxCommonMixin } from '../helper/whiskerBoxCommon.js';\nimport { mixin } from 'zrender/lib/core/util.js';\n\nvar BoxplotSeriesModel =\n/** @class */\nfunction (_super) {\n __extends(BoxplotSeriesModel, _super);\n\n function BoxplotSeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = BoxplotSeriesModel.type; // TODO\n // box width represents group size, so dimension should have 'size'.\n\n /**\n * @see \n * The meanings of 'min' and 'max' depend on user,\n * and echarts do not need to know it.\n * @readOnly\n */\n\n _this.defaultValueDimensions = [{\n name: 'min',\n defaultTooltip: true\n }, {\n name: 'Q1',\n defaultTooltip: true\n }, {\n name: 'median',\n defaultTooltip: true\n }, {\n name: 'Q3',\n defaultTooltip: true\n }, {\n name: 'max',\n defaultTooltip: true\n }];\n _this.visualDrawType = 'stroke';\n return _this;\n }\n\n BoxplotSeriesModel.type = 'series.boxplot';\n BoxplotSeriesModel.dependencies = ['xAxis', 'yAxis', 'grid'];\n BoxplotSeriesModel.defaultOption = {\n // zlevel: 0,\n z: 2,\n coordinateSystem: 'cartesian2d',\n legendHoverLink: true,\n layout: null,\n boxWidth: [7, 50],\n itemStyle: {\n color: '#fff',\n borderWidth: 1\n },\n emphasis: {\n scale: true,\n itemStyle: {\n borderWidth: 2,\n shadowBlur: 5,\n shadowOffsetX: 1,\n shadowOffsetY: 1,\n shadowColor: 'rgba(0,0,0,0.2)'\n }\n },\n animationDuration: 800\n };\n return BoxplotSeriesModel;\n}(SeriesModel);\n\nmixin(BoxplotSeriesModel, WhiskerBoxCommonMixin, true);\nexport default BoxplotSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport ChartView from '../../view/Chart.js';\nimport * as graphic from '../../util/graphic.js';\nimport { setStatesStylesFromModel, toggleHoverEmphasis } from '../../util/states.js';\nimport Path from 'zrender/lib/graphic/Path.js';\nimport { saveOldStyle } from '../../animation/basicTransition.js';\n\nvar BoxplotView =\n/** @class */\nfunction (_super) {\n __extends(BoxplotView, _super);\n\n function BoxplotView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = BoxplotView.type;\n return _this;\n }\n\n BoxplotView.prototype.render = function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n var group = this.group;\n var oldData = this._data; // There is no old data only when first rendering or switching from\n // stream mode to normal mode, where previous elements should be removed.\n\n if (!this._data) {\n group.removeAll();\n }\n\n var constDim = seriesModel.get('layout') === 'horizontal' ? 1 : 0;\n data.diff(oldData).add(function (newIdx) {\n if (data.hasValue(newIdx)) {\n var itemLayout = data.getItemLayout(newIdx);\n var symbolEl = createNormalBox(itemLayout, data, newIdx, constDim, true);\n data.setItemGraphicEl(newIdx, symbolEl);\n group.add(symbolEl);\n }\n }).update(function (newIdx, oldIdx) {\n var symbolEl = oldData.getItemGraphicEl(oldIdx); // Empty data\n\n if (!data.hasValue(newIdx)) {\n group.remove(symbolEl);\n return;\n }\n\n var itemLayout = data.getItemLayout(newIdx);\n\n if (!symbolEl) {\n symbolEl = createNormalBox(itemLayout, data, newIdx, constDim);\n } else {\n saveOldStyle(symbolEl);\n updateNormalBoxData(itemLayout, symbolEl, data, newIdx);\n }\n\n group.add(symbolEl);\n data.setItemGraphicEl(newIdx, symbolEl);\n }).remove(function (oldIdx) {\n var el = oldData.getItemGraphicEl(oldIdx);\n el && group.remove(el);\n }).execute();\n this._data = data;\n };\n\n BoxplotView.prototype.remove = function (ecModel) {\n var group = this.group;\n var data = this._data;\n this._data = null;\n data && data.eachItemGraphicEl(function (el) {\n el && group.remove(el);\n });\n };\n\n BoxplotView.type = 'boxplot';\n return BoxplotView;\n}(ChartView);\n\nvar BoxPathShape =\n/** @class */\nfunction () {\n function BoxPathShape() {}\n\n return BoxPathShape;\n}();\n\nvar BoxPath =\n/** @class */\nfunction (_super) {\n __extends(BoxPath, _super);\n\n function BoxPath(opts) {\n var _this = _super.call(this, opts) || this;\n\n _this.type = 'boxplotBoxPath';\n return _this;\n }\n\n BoxPath.prototype.getDefaultShape = function () {\n return new BoxPathShape();\n };\n\n BoxPath.prototype.buildPath = function (ctx, shape) {\n var ends = shape.points;\n var i = 0;\n ctx.moveTo(ends[i][0], ends[i][1]);\n i++;\n\n for (; i < 4; i++) {\n ctx.lineTo(ends[i][0], ends[i][1]);\n }\n\n ctx.closePath();\n\n for (; i < ends.length; i++) {\n ctx.moveTo(ends[i][0], ends[i][1]);\n i++;\n ctx.lineTo(ends[i][0], ends[i][1]);\n }\n };\n\n return BoxPath;\n}(Path);\n\nfunction createNormalBox(itemLayout, data, dataIndex, constDim, isInit) {\n var ends = itemLayout.ends;\n var el = new BoxPath({\n shape: {\n points: isInit ? transInit(ends, constDim, itemLayout) : ends\n }\n });\n updateNormalBoxData(itemLayout, el, data, dataIndex, isInit);\n return el;\n}\n\nfunction updateNormalBoxData(itemLayout, el, data, dataIndex, isInit) {\n var seriesModel = data.hostModel;\n var updateMethod = graphic[isInit ? 'initProps' : 'updateProps'];\n updateMethod(el, {\n shape: {\n points: itemLayout.ends\n }\n }, seriesModel, dataIndex);\n el.useStyle(data.getItemVisual(dataIndex, 'style'));\n el.style.strokeNoScale = true;\n el.z2 = 100;\n var itemModel = data.getItemModel(dataIndex);\n var emphasisModel = itemModel.getModel('emphasis');\n setStatesStylesFromModel(el, itemModel);\n toggleHoverEmphasis(el, emphasisModel.get('focus'), emphasisModel.get('blurScope'), emphasisModel.get('disabled'));\n}\n\nfunction transInit(points, dim, itemLayout) {\n return zrUtil.map(points, function (point) {\n point = point.slice();\n point[dim] = itemLayout.initBaseline;\n return point;\n });\n}\n\nexport default BoxplotView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { parsePercent } from '../../util/number.js';\nvar each = zrUtil.each;\nexport default function boxplotLayout(ecModel) {\n var groupResult = groupSeriesByAxis(ecModel);\n each(groupResult, function (groupItem) {\n var seriesModels = groupItem.seriesModels;\n\n if (!seriesModels.length) {\n return;\n }\n\n calculateBase(groupItem);\n each(seriesModels, function (seriesModel, idx) {\n layoutSingleSeries(seriesModel, groupItem.boxOffsetList[idx], groupItem.boxWidthList[idx]);\n });\n });\n}\n/**\n * Group series by axis.\n */\n\nfunction groupSeriesByAxis(ecModel) {\n var result = [];\n var axisList = [];\n ecModel.eachSeriesByType('boxplot', function (seriesModel) {\n var baseAxis = seriesModel.getBaseAxis();\n var idx = zrUtil.indexOf(axisList, baseAxis);\n\n if (idx < 0) {\n idx = axisList.length;\n axisList[idx] = baseAxis;\n result[idx] = {\n axis: baseAxis,\n seriesModels: []\n };\n }\n\n result[idx].seriesModels.push(seriesModel);\n });\n return result;\n}\n/**\n * Calculate offset and box width for each series.\n */\n\n\nfunction calculateBase(groupItem) {\n var baseAxis = groupItem.axis;\n var seriesModels = groupItem.seriesModels;\n var seriesCount = seriesModels.length;\n var boxWidthList = groupItem.boxWidthList = [];\n var boxOffsetList = groupItem.boxOffsetList = [];\n var boundList = [];\n var bandWidth;\n\n if (baseAxis.type === 'category') {\n bandWidth = baseAxis.getBandWidth();\n } else {\n var maxDataCount_1 = 0;\n each(seriesModels, function (seriesModel) {\n maxDataCount_1 = Math.max(maxDataCount_1, seriesModel.getData().count());\n });\n var extent = baseAxis.getExtent();\n bandWidth = Math.abs(extent[1] - extent[0]) / maxDataCount_1;\n }\n\n each(seriesModels, function (seriesModel) {\n var boxWidthBound = seriesModel.get('boxWidth');\n\n if (!zrUtil.isArray(boxWidthBound)) {\n boxWidthBound = [boxWidthBound, boxWidthBound];\n }\n\n boundList.push([parsePercent(boxWidthBound[0], bandWidth) || 0, parsePercent(boxWidthBound[1], bandWidth) || 0]);\n });\n var availableWidth = bandWidth * 0.8 - 2;\n var boxGap = availableWidth / seriesCount * 0.3;\n var boxWidth = (availableWidth - boxGap * (seriesCount - 1)) / seriesCount;\n var base = boxWidth / 2 - availableWidth / 2;\n each(seriesModels, function (seriesModel, idx) {\n boxOffsetList.push(base);\n base += boxGap + boxWidth;\n boxWidthList.push(Math.min(Math.max(boxWidth, boundList[idx][0]), boundList[idx][1]));\n });\n}\n/**\n * Calculate points location for each series.\n */\n\n\nfunction layoutSingleSeries(seriesModel, offset, boxWidth) {\n var coordSys = seriesModel.coordinateSystem;\n var data = seriesModel.getData();\n var halfWidth = boxWidth / 2;\n var cDimIdx = seriesModel.get('layout') === 'horizontal' ? 0 : 1;\n var vDimIdx = 1 - cDimIdx;\n var coordDims = ['x', 'y'];\n var cDim = data.mapDimension(coordDims[cDimIdx]);\n var vDims = data.mapDimensionsAll(coordDims[vDimIdx]);\n\n if (cDim == null || vDims.length < 5) {\n return;\n }\n\n for (var dataIndex = 0; dataIndex < data.count(); dataIndex++) {\n var axisDimVal = data.get(cDim, dataIndex);\n var median = getPoint(axisDimVal, vDims[2], dataIndex);\n var end1 = getPoint(axisDimVal, vDims[0], dataIndex);\n var end2 = getPoint(axisDimVal, vDims[1], dataIndex);\n var end4 = getPoint(axisDimVal, vDims[3], dataIndex);\n var end5 = getPoint(axisDimVal, vDims[4], dataIndex);\n var ends = [];\n addBodyEnd(ends, end2, false);\n addBodyEnd(ends, end4, true);\n ends.push(end1, end2, end5, end4);\n layEndLine(ends, end1);\n layEndLine(ends, end5);\n layEndLine(ends, median);\n data.setItemLayout(dataIndex, {\n initBaseline: median[vDimIdx],\n ends: ends\n });\n }\n\n function getPoint(axisDimVal, dim, dataIndex) {\n var val = data.get(dim, dataIndex);\n var p = [];\n p[cDimIdx] = axisDimVal;\n p[vDimIdx] = val;\n var point;\n\n if (isNaN(axisDimVal) || isNaN(val)) {\n point = [NaN, NaN];\n } else {\n point = coordSys.dataToPoint(p);\n point[cDimIdx] += offset;\n }\n\n return point;\n }\n\n function addBodyEnd(ends, point, start) {\n var point1 = point.slice();\n var point2 = point.slice();\n point1[cDimIdx] += halfWidth;\n point2[cDimIdx] -= halfWidth;\n start ? ends.push(point1, point2) : ends.push(point2, point1);\n }\n\n function layEndLine(ends, endCenter) {\n var from = endCenter.slice();\n var to = endCenter.slice();\n from[cDimIdx] -= halfWidth;\n to[cDimIdx] += halfWidth;\n ends.push(from, to);\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport prepareBoxplotData from './prepareBoxplotData.js';\nimport { throwError, makePrintable } from '../../util/log.js';\nimport { SOURCE_FORMAT_ARRAY_ROWS } from '../../util/types.js';\nexport var boxplotTransform = {\n type: 'echarts:boxplot',\n transform: function transform(params) {\n var upstream = params.upstream;\n\n if (upstream.sourceFormat !== SOURCE_FORMAT_ARRAY_ROWS) {\n var errMsg = '';\n\n if (process.env.NODE_ENV !== 'production') {\n errMsg = makePrintable('source data is not applicable for this boxplot transform. Expect number[][].');\n }\n\n throwError(errMsg);\n }\n\n var result = prepareBoxplotData(upstream.getRawData(), params.config);\n return [{\n dimensions: ['ItemName', 'Low', 'Q1', 'Q2', 'Q3', 'High'],\n data: result.boxData\n }, {\n data: result.outliers\n }];\n }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport BoxplotSeriesModel from './BoxplotSeries.js';\nimport BoxplotView from './BoxplotView.js';\nimport boxplotLayout from './boxplotLayout.js';\nimport { boxplotTransform } from './boxplotTransform.js';\nexport function install(registers) {\n registers.registerSeriesModel(BoxplotSeriesModel);\n registers.registerChartView(BoxplotView);\n registers.registerLayout(boxplotLayout);\n registers.registerTransform(boxplotTransform);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { quantile, asc } from '../../util/number.js';\nimport { isFunction, isString } from 'zrender/lib/core/util.js';\n/**\n * See:\n * \n * \n *\n * Helper method for preparing data.\n *\n * @param rawData like\n * [\n * [12,232,443], (raw data set for the first box)\n * [3843,5545,1232], (raw data set for the second box)\n * ...\n * ]\n * @param opt.boundIQR=1.5 Data less than min bound is outlier.\n * default 1.5, means Q1 - 1.5 * (Q3 - Q1).\n * If 'none'/0 passed, min bound will not be used.\n */\n\nexport default function prepareBoxplotData(rawData, opt) {\n opt = opt || {};\n var boxData = [];\n var outliers = [];\n var boundIQR = opt.boundIQR;\n var useExtreme = boundIQR === 'none' || boundIQR === 0;\n\n for (var i = 0; i < rawData.length; i++) {\n var ascList = asc(rawData[i].slice());\n var Q1 = quantile(ascList, 0.25);\n var Q2 = quantile(ascList, 0.5);\n var Q3 = quantile(ascList, 0.75);\n var min = ascList[0];\n var max = ascList[ascList.length - 1];\n var bound = (boundIQR == null ? 1.5 : boundIQR) * (Q3 - Q1);\n var low = useExtreme ? min : Math.max(min, Q1 - bound);\n var high = useExtreme ? max : Math.min(max, Q3 + bound);\n var itemNameFormatter = opt.itemNameFormatter;\n var itemName = isFunction(itemNameFormatter) ? itemNameFormatter({\n value: i\n }) : isString(itemNameFormatter) ? itemNameFormatter.replace('{value}', i + '') : i + '';\n boxData.push([itemName, low, Q1, Q2, Q3, high]);\n\n for (var j = 0; j < ascList.length; j++) {\n var dataItem = ascList[j];\n\n if (dataItem < low || dataItem > high) {\n var outlier = [itemName, dataItem];\n outliers.push(outlier);\n }\n }\n }\n\n return {\n boxData: boxData,\n outliers: outliers\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series.js';\nimport { WhiskerBoxCommonMixin } from '../helper/whiskerBoxCommon.js';\nimport { mixin } from 'zrender/lib/core/util.js';\n\nvar CandlestickSeriesModel =\n/** @class */\nfunction (_super) {\n __extends(CandlestickSeriesModel, _super);\n\n function CandlestickSeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = CandlestickSeriesModel.type;\n _this.defaultValueDimensions = [{\n name: 'open',\n defaultTooltip: true\n }, {\n name: 'close',\n defaultTooltip: true\n }, {\n name: 'lowest',\n defaultTooltip: true\n }, {\n name: 'highest',\n defaultTooltip: true\n }];\n return _this;\n }\n /**\n * Get dimension for shadow in dataZoom\n * @return dimension name\n */\n\n\n CandlestickSeriesModel.prototype.getShadowDim = function () {\n return 'open';\n };\n\n CandlestickSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\n var itemLayout = data.getItemLayout(dataIndex);\n return itemLayout && selectors.rect(itemLayout.brushRect);\n };\n\n CandlestickSeriesModel.type = 'series.candlestick';\n CandlestickSeriesModel.dependencies = ['xAxis', 'yAxis', 'grid'];\n CandlestickSeriesModel.defaultOption = {\n // zlevel: 0,\n z: 2,\n coordinateSystem: 'cartesian2d',\n legendHoverLink: true,\n // xAxisIndex: 0,\n // yAxisIndex: 0,\n layout: null,\n clip: true,\n itemStyle: {\n color: '#eb5454',\n color0: '#47b262',\n borderColor: '#eb5454',\n borderColor0: '#47b262',\n borderColorDoji: null,\n // borderColor: '#d24040',\n // borderColor0: '#398f4f',\n borderWidth: 1\n },\n emphasis: {\n scale: true,\n itemStyle: {\n borderWidth: 2\n }\n },\n barMaxWidth: null,\n barMinWidth: null,\n barWidth: null,\n large: true,\n largeThreshold: 600,\n progressive: 3e3,\n progressiveThreshold: 1e4,\n progressiveChunkMode: 'mod',\n animationEasing: 'linear',\n animationDuration: 300\n };\n return CandlestickSeriesModel;\n}(SeriesModel);\n\nmixin(CandlestickSeriesModel, WhiskerBoxCommonMixin, true);\nexport default CandlestickSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport ChartView from '../../view/Chart.js';\nimport * as graphic from '../../util/graphic.js';\nimport { setStatesStylesFromModel } from '../../util/states.js';\nimport Path from 'zrender/lib/graphic/Path.js';\nimport { createClipPath } from '../helper/createClipPathFromCoordSys.js';\nimport { saveOldStyle } from '../../animation/basicTransition.js';\nvar SKIP_PROPS = ['color', 'borderColor'];\n\nvar CandlestickView =\n/** @class */\nfunction (_super) {\n __extends(CandlestickView, _super);\n\n function CandlestickView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = CandlestickView.type;\n return _this;\n }\n\n CandlestickView.prototype.render = function (seriesModel, ecModel, api) {\n // If there is clipPath created in large mode. Remove it.\n this.group.removeClipPath(); // Clear previously rendered progressive elements.\n\n this._progressiveEls = null;\n\n this._updateDrawMode(seriesModel);\n\n this._isLargeDraw ? this._renderLarge(seriesModel) : this._renderNormal(seriesModel);\n };\n\n CandlestickView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\n this._clear();\n\n this._updateDrawMode(seriesModel);\n };\n\n CandlestickView.prototype.incrementalRender = function (params, seriesModel, ecModel, api) {\n this._progressiveEls = [];\n this._isLargeDraw ? this._incrementalRenderLarge(params, seriesModel) : this._incrementalRenderNormal(params, seriesModel);\n };\n\n CandlestickView.prototype.eachRendered = function (cb) {\n graphic.traverseElements(this._progressiveEls || this.group, cb);\n };\n\n CandlestickView.prototype._updateDrawMode = function (seriesModel) {\n var isLargeDraw = seriesModel.pipelineContext.large;\n\n if (this._isLargeDraw == null || isLargeDraw !== this._isLargeDraw) {\n this._isLargeDraw = isLargeDraw;\n\n this._clear();\n }\n };\n\n CandlestickView.prototype._renderNormal = function (seriesModel) {\n var data = seriesModel.getData();\n var oldData = this._data;\n var group = this.group;\n var isSimpleBox = data.getLayout('isSimpleBox');\n var needsClip = seriesModel.get('clip', true);\n var coord = seriesModel.coordinateSystem;\n var clipArea = coord.getArea && coord.getArea(); // There is no old data only when first rendering or switching from\n // stream mode to normal mode, where previous elements should be removed.\n\n if (!this._data) {\n group.removeAll();\n }\n\n data.diff(oldData).add(function (newIdx) {\n if (data.hasValue(newIdx)) {\n var itemLayout = data.getItemLayout(newIdx);\n\n if (needsClip && isNormalBoxClipped(clipArea, itemLayout)) {\n return;\n }\n\n var el = createNormalBox(itemLayout, newIdx, true);\n graphic.initProps(el, {\n shape: {\n points: itemLayout.ends\n }\n }, seriesModel, newIdx);\n setBoxCommon(el, data, newIdx, isSimpleBox);\n group.add(el);\n data.setItemGraphicEl(newIdx, el);\n }\n }).update(function (newIdx, oldIdx) {\n var el = oldData.getItemGraphicEl(oldIdx); // Empty data\n\n if (!data.hasValue(newIdx)) {\n group.remove(el);\n return;\n }\n\n var itemLayout = data.getItemLayout(newIdx);\n\n if (needsClip && isNormalBoxClipped(clipArea, itemLayout)) {\n group.remove(el);\n return;\n }\n\n if (!el) {\n el = createNormalBox(itemLayout, newIdx);\n } else {\n graphic.updateProps(el, {\n shape: {\n points: itemLayout.ends\n }\n }, seriesModel, newIdx);\n saveOldStyle(el);\n }\n\n setBoxCommon(el, data, newIdx, isSimpleBox);\n group.add(el);\n data.setItemGraphicEl(newIdx, el);\n }).remove(function (oldIdx) {\n var el = oldData.getItemGraphicEl(oldIdx);\n el && group.remove(el);\n }).execute();\n this._data = data;\n };\n\n CandlestickView.prototype._renderLarge = function (seriesModel) {\n this._clear();\n\n createLarge(seriesModel, this.group);\n var clipPath = seriesModel.get('clip', true) ? createClipPath(seriesModel.coordinateSystem, false, seriesModel) : null;\n\n if (clipPath) {\n this.group.setClipPath(clipPath);\n } else {\n this.group.removeClipPath();\n }\n };\n\n CandlestickView.prototype._incrementalRenderNormal = function (params, seriesModel) {\n var data = seriesModel.getData();\n var isSimpleBox = data.getLayout('isSimpleBox');\n var dataIndex;\n\n while ((dataIndex = params.next()) != null) {\n var itemLayout = data.getItemLayout(dataIndex);\n var el = createNormalBox(itemLayout, dataIndex);\n setBoxCommon(el, data, dataIndex, isSimpleBox);\n el.incremental = true;\n this.group.add(el);\n\n this._progressiveEls.push(el);\n }\n };\n\n CandlestickView.prototype._incrementalRenderLarge = function (params, seriesModel) {\n createLarge(seriesModel, this.group, this._progressiveEls, true);\n };\n\n CandlestickView.prototype.remove = function (ecModel) {\n this._clear();\n };\n\n CandlestickView.prototype._clear = function () {\n this.group.removeAll();\n this._data = null;\n };\n\n CandlestickView.type = 'candlestick';\n return CandlestickView;\n}(ChartView);\n\nvar NormalBoxPathShape =\n/** @class */\nfunction () {\n function NormalBoxPathShape() {}\n\n return NormalBoxPathShape;\n}();\n\nvar NormalBoxPath =\n/** @class */\nfunction (_super) {\n __extends(NormalBoxPath, _super);\n\n function NormalBoxPath(opts) {\n var _this = _super.call(this, opts) || this;\n\n _this.type = 'normalCandlestickBox';\n return _this;\n }\n\n NormalBoxPath.prototype.getDefaultShape = function () {\n return new NormalBoxPathShape();\n };\n\n NormalBoxPath.prototype.buildPath = function (ctx, shape) {\n var ends = shape.points;\n\n if (this.__simpleBox) {\n ctx.moveTo(ends[4][0], ends[4][1]);\n ctx.lineTo(ends[6][0], ends[6][1]);\n } else {\n ctx.moveTo(ends[0][0], ends[0][1]);\n ctx.lineTo(ends[1][0], ends[1][1]);\n ctx.lineTo(ends[2][0], ends[2][1]);\n ctx.lineTo(ends[3][0], ends[3][1]);\n ctx.closePath();\n ctx.moveTo(ends[4][0], ends[4][1]);\n ctx.lineTo(ends[5][0], ends[5][1]);\n ctx.moveTo(ends[6][0], ends[6][1]);\n ctx.lineTo(ends[7][0], ends[7][1]);\n }\n };\n\n return NormalBoxPath;\n}(Path);\n\nfunction createNormalBox(itemLayout, dataIndex, isInit) {\n var ends = itemLayout.ends;\n return new NormalBoxPath({\n shape: {\n points: isInit ? transInit(ends, itemLayout) : ends\n },\n z2: 100\n });\n}\n\nfunction isNormalBoxClipped(clipArea, itemLayout) {\n var clipped = true;\n\n for (var i = 0; i < itemLayout.ends.length; i++) {\n // If any point are in the region.\n if (clipArea.contain(itemLayout.ends[i][0], itemLayout.ends[i][1])) {\n clipped = false;\n break;\n }\n }\n\n return clipped;\n}\n\nfunction setBoxCommon(el, data, dataIndex, isSimpleBox) {\n var itemModel = data.getItemModel(dataIndex);\n el.useStyle(data.getItemVisual(dataIndex, 'style'));\n el.style.strokeNoScale = true;\n el.__simpleBox = isSimpleBox;\n setStatesStylesFromModel(el, itemModel);\n}\n\nfunction transInit(points, itemLayout) {\n return zrUtil.map(points, function (point) {\n point = point.slice();\n point[1] = itemLayout.initBaseline;\n return point;\n });\n}\n\nvar LargeBoxPathShape =\n/** @class */\nfunction () {\n function LargeBoxPathShape() {}\n\n return LargeBoxPathShape;\n}();\n\nvar LargeBoxPath =\n/** @class */\nfunction (_super) {\n __extends(LargeBoxPath, _super);\n\n function LargeBoxPath(opts) {\n var _this = _super.call(this, opts) || this;\n\n _this.type = 'largeCandlestickBox';\n return _this;\n }\n\n LargeBoxPath.prototype.getDefaultShape = function () {\n return new LargeBoxPathShape();\n };\n\n LargeBoxPath.prototype.buildPath = function (ctx, shape) {\n // Drawing lines is more efficient than drawing\n // a whole line or drawing rects.\n var points = shape.points;\n\n for (var i = 0; i < points.length;) {\n if (this.__sign === points[i++]) {\n var x = points[i++];\n ctx.moveTo(x, points[i++]);\n ctx.lineTo(x, points[i++]);\n } else {\n i += 3;\n }\n }\n };\n\n return LargeBoxPath;\n}(Path);\n\nfunction createLarge(seriesModel, group, progressiveEls, incremental) {\n var data = seriesModel.getData();\n var largePoints = data.getLayout('largePoints');\n var elP = new LargeBoxPath({\n shape: {\n points: largePoints\n },\n __sign: 1,\n ignoreCoarsePointer: true\n });\n group.add(elP);\n var elN = new LargeBoxPath({\n shape: {\n points: largePoints\n },\n __sign: -1,\n ignoreCoarsePointer: true\n });\n group.add(elN);\n var elDoji = new LargeBoxPath({\n shape: {\n points: largePoints\n },\n __sign: 0,\n ignoreCoarsePointer: true\n });\n group.add(elDoji);\n setLargeStyle(1, elP, seriesModel, data);\n setLargeStyle(-1, elN, seriesModel, data);\n setLargeStyle(0, elDoji, seriesModel, data);\n\n if (incremental) {\n elP.incremental = true;\n elN.incremental = true;\n }\n\n if (progressiveEls) {\n progressiveEls.push(elP, elN);\n }\n}\n\nfunction setLargeStyle(sign, el, seriesModel, data) {\n // TODO put in visual?\n var borderColor = seriesModel.get(['itemStyle', sign > 0 ? 'borderColor' : 'borderColor0']) // Use color for border color by default.\n || seriesModel.get(['itemStyle', sign > 0 ? 'color' : 'color0']);\n\n if (sign === 0) {\n borderColor = seriesModel.get(['itemStyle', 'borderColorDoji']);\n } // Color must be excluded.\n // Because symbol provide setColor individually to set fill and stroke\n\n\n var itemStyle = seriesModel.getModel('itemStyle').getItemStyle(SKIP_PROPS);\n el.useStyle(itemStyle);\n el.style.fill = null;\n el.style.stroke = borderColor;\n}\n\nexport default CandlestickView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { subPixelOptimize } from '../../util/graphic.js';\nimport createRenderPlanner from '../helper/createRenderPlanner.js';\nimport { parsePercent } from '../../util/number.js';\nimport { map, retrieve2 } from 'zrender/lib/core/util.js';\nimport { createFloat32Array } from '../../util/vendor.js';\nvar candlestickLayout = {\n seriesType: 'candlestick',\n plan: createRenderPlanner(),\n reset: function (seriesModel) {\n var coordSys = seriesModel.coordinateSystem;\n var data = seriesModel.getData();\n var candleWidth = calculateCandleWidth(seriesModel, data);\n var cDimIdx = 0;\n var vDimIdx = 1;\n var coordDims = ['x', 'y'];\n var cDimI = data.getDimensionIndex(data.mapDimension(coordDims[cDimIdx]));\n var vDimsI = map(data.mapDimensionsAll(coordDims[vDimIdx]), data.getDimensionIndex, data);\n var openDimI = vDimsI[0];\n var closeDimI = vDimsI[1];\n var lowestDimI = vDimsI[2];\n var highestDimI = vDimsI[3];\n data.setLayout({\n candleWidth: candleWidth,\n // The value is experimented visually.\n isSimpleBox: candleWidth <= 1.3\n });\n\n if (cDimI < 0 || vDimsI.length < 4) {\n return;\n }\n\n return {\n progress: seriesModel.pipelineContext.large ? largeProgress : normalProgress\n };\n\n function normalProgress(params, data) {\n var dataIndex;\n var store = data.getStore();\n\n while ((dataIndex = params.next()) != null) {\n var axisDimVal = store.get(cDimI, dataIndex);\n var openVal = store.get(openDimI, dataIndex);\n var closeVal = store.get(closeDimI, dataIndex);\n var lowestVal = store.get(lowestDimI, dataIndex);\n var highestVal = store.get(highestDimI, dataIndex);\n var ocLow = Math.min(openVal, closeVal);\n var ocHigh = Math.max(openVal, closeVal);\n var ocLowPoint = getPoint(ocLow, axisDimVal);\n var ocHighPoint = getPoint(ocHigh, axisDimVal);\n var lowestPoint = getPoint(lowestVal, axisDimVal);\n var highestPoint = getPoint(highestVal, axisDimVal);\n var ends = [];\n addBodyEnd(ends, ocHighPoint, 0);\n addBodyEnd(ends, ocLowPoint, 1);\n ends.push(subPixelOptimizePoint(highestPoint), subPixelOptimizePoint(ocHighPoint), subPixelOptimizePoint(lowestPoint), subPixelOptimizePoint(ocLowPoint));\n var itemModel = data.getItemModel(dataIndex);\n var hasDojiColor = !!itemModel.get(['itemStyle', 'borderColorDoji']);\n data.setItemLayout(dataIndex, {\n sign: getSign(store, dataIndex, openVal, closeVal, closeDimI, hasDojiColor),\n initBaseline: openVal > closeVal ? ocHighPoint[vDimIdx] : ocLowPoint[vDimIdx],\n ends: ends,\n brushRect: makeBrushRect(lowestVal, highestVal, axisDimVal)\n });\n }\n\n function getPoint(val, axisDimVal) {\n var p = [];\n p[cDimIdx] = axisDimVal;\n p[vDimIdx] = val;\n return isNaN(axisDimVal) || isNaN(val) ? [NaN, NaN] : coordSys.dataToPoint(p);\n }\n\n function addBodyEnd(ends, point, start) {\n var point1 = point.slice();\n var point2 = point.slice();\n point1[cDimIdx] = subPixelOptimize(point1[cDimIdx] + candleWidth / 2, 1, false);\n point2[cDimIdx] = subPixelOptimize(point2[cDimIdx] - candleWidth / 2, 1, true);\n start ? ends.push(point1, point2) : ends.push(point2, point1);\n }\n\n function makeBrushRect(lowestVal, highestVal, axisDimVal) {\n var pmin = getPoint(lowestVal, axisDimVal);\n var pmax = getPoint(highestVal, axisDimVal);\n pmin[cDimIdx] -= candleWidth / 2;\n pmax[cDimIdx] -= candleWidth / 2;\n return {\n x: pmin[0],\n y: pmin[1],\n width: vDimIdx ? candleWidth : pmax[0] - pmin[0],\n height: vDimIdx ? pmax[1] - pmin[1] : candleWidth\n };\n }\n\n function subPixelOptimizePoint(point) {\n point[cDimIdx] = subPixelOptimize(point[cDimIdx], 1);\n return point;\n }\n }\n\n function largeProgress(params, data) {\n // Structure: [sign, x, yhigh, ylow, sign, x, yhigh, ylow, ...]\n var points = createFloat32Array(params.count * 4);\n var offset = 0;\n var point;\n var tmpIn = [];\n var tmpOut = [];\n var dataIndex;\n var store = data.getStore();\n var hasDojiColor = !!seriesModel.get(['itemStyle', 'borderColorDoji']);\n\n while ((dataIndex = params.next()) != null) {\n var axisDimVal = store.get(cDimI, dataIndex);\n var openVal = store.get(openDimI, dataIndex);\n var closeVal = store.get(closeDimI, dataIndex);\n var lowestVal = store.get(lowestDimI, dataIndex);\n var highestVal = store.get(highestDimI, dataIndex);\n\n if (isNaN(axisDimVal) || isNaN(lowestVal) || isNaN(highestVal)) {\n points[offset++] = NaN;\n offset += 3;\n continue;\n }\n\n points[offset++] = getSign(store, dataIndex, openVal, closeVal, closeDimI, hasDojiColor);\n tmpIn[cDimIdx] = axisDimVal;\n tmpIn[vDimIdx] = lowestVal;\n point = coordSys.dataToPoint(tmpIn, null, tmpOut);\n points[offset++] = point ? point[0] : NaN;\n points[offset++] = point ? point[1] : NaN;\n tmpIn[vDimIdx] = highestVal;\n point = coordSys.dataToPoint(tmpIn, null, tmpOut);\n points[offset++] = point ? point[1] : NaN;\n }\n\n data.setLayout('largePoints', points);\n }\n }\n};\n/**\n * Get the sign of a single data.\n *\n * @returns 0 for doji with hasDojiColor: true,\n * 1 for positive,\n * -1 for negative.\n */\n\nfunction getSign(store, dataIndex, openVal, closeVal, closeDimI, hasDojiColor) {\n var sign;\n\n if (openVal > closeVal) {\n sign = -1;\n } else if (openVal < closeVal) {\n sign = 1;\n } else {\n sign = hasDojiColor // When doji color is set, use it instead of color/color0.\n ? 0 : dataIndex > 0 // If close === open, compare with close of last record\n ? store.get(closeDimI, dataIndex - 1) <= closeVal ? 1 : -1 : // No record of previous, set to be positive\n 1;\n }\n\n return sign;\n}\n\nfunction calculateCandleWidth(seriesModel, data) {\n var baseAxis = seriesModel.getBaseAxis();\n var extent;\n var bandWidth = baseAxis.type === 'category' ? baseAxis.getBandWidth() : (extent = baseAxis.getExtent(), Math.abs(extent[1] - extent[0]) / data.count());\n var barMaxWidth = parsePercent(retrieve2(seriesModel.get('barMaxWidth'), bandWidth), bandWidth);\n var barMinWidth = parsePercent(retrieve2(seriesModel.get('barMinWidth'), 1), bandWidth);\n var barWidth = seriesModel.get('barWidth');\n return barWidth != null ? parsePercent(barWidth, bandWidth) // Put max outer to ensure bar visible in spite of overlap.\n : Math.max(Math.min(bandWidth / 2, barMaxWidth), barMinWidth);\n}\n\nexport default candlestickLayout;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport createRenderPlanner from '../helper/createRenderPlanner.js';\nimport { extend } from 'zrender/lib/core/util.js';\nvar positiveBorderColorQuery = ['itemStyle', 'borderColor'];\nvar negativeBorderColorQuery = ['itemStyle', 'borderColor0'];\nvar dojiBorderColorQuery = ['itemStyle', 'borderColorDoji'];\nvar positiveColorQuery = ['itemStyle', 'color'];\nvar negativeColorQuery = ['itemStyle', 'color0'];\nvar candlestickVisual = {\n seriesType: 'candlestick',\n plan: createRenderPlanner(),\n // For legend.\n performRawSeries: true,\n reset: function (seriesModel, ecModel) {\n function getColor(sign, model) {\n return model.get(sign > 0 ? positiveColorQuery : negativeColorQuery);\n }\n\n function getBorderColor(sign, model) {\n return model.get(sign === 0 ? dojiBorderColorQuery : sign > 0 ? positiveBorderColorQuery : negativeBorderColorQuery);\n } // Only visible series has each data be visual encoded\n\n\n if (ecModel.isSeriesFiltered(seriesModel)) {\n return;\n }\n\n var isLargeRender = seriesModel.pipelineContext.large;\n return !isLargeRender && {\n progress: function (params, data) {\n var dataIndex;\n\n while ((dataIndex = params.next()) != null) {\n var itemModel = data.getItemModel(dataIndex);\n var sign = data.getItemLayout(dataIndex).sign;\n var style = itemModel.getItemStyle();\n style.fill = getColor(sign, itemModel);\n style.stroke = getBorderColor(sign, itemModel) || style.fill;\n var existsStyle = data.ensureUniqueItemVisual(dataIndex, 'style');\n extend(existsStyle, style);\n }\n }\n };\n }\n};\nexport default candlestickVisual;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport CandlestickView from './CandlestickView.js';\nimport CandlestickSeriesModel from './CandlestickSeries.js';\nimport preprocessor from './preprocessor.js';\nimport candlestickVisual from './candlestickVisual.js';\nimport candlestickLayout from './candlestickLayout.js';\nexport function install(registers) {\n registers.registerChartView(CandlestickView);\n registers.registerSeriesModel(CandlestickSeriesModel);\n registers.registerPreprocessor(preprocessor);\n registers.registerVisual(candlestickVisual);\n registers.registerLayout(candlestickLayout);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nexport default function candlestickPreprocessor(option) {\n if (!option || !zrUtil.isArray(option.series)) {\n return;\n } // Translate 'k' to 'candlestick'.\n\n\n zrUtil.each(option.series, function (seriesItem) {\n if (zrUtil.isObject(seriesItem) && seriesItem.type === 'k') {\n seriesItem.type = 'candlestick';\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport createSeriesData from '../helper/createSeriesData.js';\nimport { makeInner } from '../../util/model.js';\nimport SeriesModel from '../../model/Series.js'; // Also compat with ec4, where\n// `visual('color') visual('borderColor')` is supported.\n\nexport var STYLE_VISUAL_TYPE = {\n color: 'fill',\n borderColor: 'stroke'\n};\nexport var NON_STYLE_VISUAL_PROPS = {\n symbol: 1,\n symbolSize: 1,\n symbolKeepAspect: 1,\n legendIcon: 1,\n visualMeta: 1,\n liftZ: 1,\n decal: 1\n};\n;\nexport var customInnerStore = makeInner();\n\nvar CustomSeriesModel =\n/** @class */\nfunction (_super) {\n __extends(CustomSeriesModel, _super);\n\n function CustomSeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = CustomSeriesModel.type;\n return _this;\n }\n\n CustomSeriesModel.prototype.optionUpdated = function () {\n this.currentZLevel = this.get('zlevel', true);\n this.currentZ = this.get('z', true);\n };\n\n CustomSeriesModel.prototype.getInitialData = function (option, ecModel) {\n return createSeriesData(null, this);\n };\n\n CustomSeriesModel.prototype.getDataParams = function (dataIndex, dataType, el) {\n var params = _super.prototype.getDataParams.call(this, dataIndex, dataType);\n\n el && (params.info = customInnerStore(el).info);\n return params;\n };\n\n CustomSeriesModel.type = 'series.custom';\n CustomSeriesModel.dependencies = ['grid', 'polar', 'geo', 'singleAxis', 'calendar'];\n CustomSeriesModel.defaultOption = {\n coordinateSystem: 'cartesian2d',\n // zlevel: 0,\n z: 2,\n legendHoverLink: true,\n // Custom series will not clip by default.\n // Some case will use custom series to draw label\n // For example https://echarts.apache.org/examples/en/editor.html?c=custom-gantt-flight\n clip: false // Cartesian coordinate system\n // xAxisIndex: 0,\n // yAxisIndex: 0,\n // Polar coordinate system\n // polarIndex: 0,\n // Geo coordinate system\n // geoIndex: 0,\n\n };\n return CustomSeriesModel;\n}(SeriesModel);\n\nexport default CustomSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport { hasOwn, assert, isString, retrieve2, retrieve3, defaults, each, indexOf } from 'zrender/lib/core/util.js';\nimport * as graphicUtil from '../../util/graphic.js';\nimport { setDefaultStateProxy, toggleHoverEmphasis } from '../../util/states.js';\nimport * as labelStyleHelper from '../../label/labelStyle.js';\nimport { getDefaultLabel } from '../helper/labelHelper.js';\nimport { getLayoutOnAxis } from '../../layout/barGrid.js';\nimport DataDiffer from '../../data/DataDiffer.js';\nimport ChartView from '../../view/Chart.js';\nimport { createClipPath } from '../helper/createClipPathFromCoordSys.js';\nimport prepareCartesian2d from '../../coord/cartesian/prepareCustom.js';\nimport prepareGeo from '../../coord/geo/prepareCustom.js';\nimport prepareSingleAxis from '../../coord/single/prepareCustom.js';\nimport preparePolar from '../../coord/polar/prepareCustom.js';\nimport prepareCalendar from '../../coord/calendar/prepareCustom.js';\nimport Displayable from 'zrender/lib/graphic/Displayable.js';\nimport { convertToEC4StyleForCustomSerise, isEC4CompatibleStyle, convertFromEC4CompatibleStyle, warnDeprecated } from '../../util/styleCompat.js';\nimport { throwError } from '../../util/log.js';\nimport { createOrUpdatePatternFromDecal } from '../../util/decal.js';\nimport { STYLE_VISUAL_TYPE, NON_STYLE_VISUAL_PROPS, customInnerStore } from './CustomSeries.js';\nimport { applyLeaveTransition, applyUpdateTransition } from '../../animation/customGraphicTransition.js';\nimport { applyKeyframeAnimation, stopPreviousKeyframeAnimationAndRestore } from '../../animation/customGraphicKeyframeAnimation.js';\nvar EMPHASIS = 'emphasis';\nvar NORMAL = 'normal';\nvar BLUR = 'blur';\nvar SELECT = 'select';\nvar STATES = [NORMAL, EMPHASIS, BLUR, SELECT];\nvar PATH_ITEM_STYLE = {\n normal: ['itemStyle'],\n emphasis: [EMPHASIS, 'itemStyle'],\n blur: [BLUR, 'itemStyle'],\n select: [SELECT, 'itemStyle']\n};\nvar PATH_LABEL = {\n normal: ['label'],\n emphasis: [EMPHASIS, 'label'],\n blur: [BLUR, 'label'],\n select: [SELECT, 'label']\n};\nvar DEFAULT_TRANSITION = ['x', 'y']; // Use prefix to avoid index to be the same as el.name,\n// which will cause weird update animation.\n\nvar GROUP_DIFF_PREFIX = 'e\\0\\0';\nvar attachedTxInfoTmp = {\n normal: {},\n emphasis: {},\n blur: {},\n select: {}\n};\n/**\n * To reduce total package size of each coordinate systems, the modules `prepareCustom`\n * of each coordinate systems are not required by each coordinate systems directly, but\n * required by the module `custom`.\n *\n * prepareInfoForCustomSeries {Function}: optional\n * @return {Object} {coordSys: {...}, api: {\n * coord: function (data, clamp) {}, // return point in global.\n * size: function (dataSize, dataItem) {} // return size of each axis in coordSys.\n * }}\n */\n\nvar prepareCustoms = {\n cartesian2d: prepareCartesian2d,\n geo: prepareGeo,\n single: prepareSingleAxis,\n polar: preparePolar,\n calendar: prepareCalendar\n};\n\nfunction isPath(el) {\n return el instanceof graphicUtil.Path;\n}\n\nfunction isDisplayable(el) {\n return el instanceof Displayable;\n}\n\nfunction copyElement(sourceEl, targetEl) {\n targetEl.copyTransform(sourceEl);\n\n if (isDisplayable(targetEl) && isDisplayable(sourceEl)) {\n targetEl.setStyle(sourceEl.style);\n targetEl.z = sourceEl.z;\n targetEl.z2 = sourceEl.z2;\n targetEl.zlevel = sourceEl.zlevel;\n targetEl.invisible = sourceEl.invisible;\n targetEl.ignore = sourceEl.ignore;\n\n if (isPath(targetEl) && isPath(sourceEl)) {\n targetEl.setShape(sourceEl.shape);\n }\n }\n}\n\nvar CustomChartView =\n/** @class */\nfunction (_super) {\n __extends(CustomChartView, _super);\n\n function CustomChartView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = CustomChartView.type;\n return _this;\n }\n\n CustomChartView.prototype.render = function (customSeries, ecModel, api, payload) {\n // Clear previously rendered progressive elements.\n this._progressiveEls = null;\n var oldData = this._data;\n var data = customSeries.getData();\n var group = this.group;\n var renderItem = makeRenderItem(customSeries, data, ecModel, api);\n\n if (!oldData) {\n // Previous render is incremental render or first render.\n // Needs remove the incremental rendered elements.\n group.removeAll();\n }\n\n data.diff(oldData).add(function (newIdx) {\n createOrUpdateItem(api, null, newIdx, renderItem(newIdx, payload), customSeries, group, data);\n }).remove(function (oldIdx) {\n var el = oldData.getItemGraphicEl(oldIdx);\n el && applyLeaveTransition(el, customInnerStore(el).option, customSeries);\n }).update(function (newIdx, oldIdx) {\n var oldEl = oldData.getItemGraphicEl(oldIdx);\n createOrUpdateItem(api, oldEl, newIdx, renderItem(newIdx, payload), customSeries, group, data);\n }).execute(); // Do clipping\n\n var clipPath = customSeries.get('clip', true) ? createClipPath(customSeries.coordinateSystem, false, customSeries) : null;\n\n if (clipPath) {\n group.setClipPath(clipPath);\n } else {\n group.removeClipPath();\n }\n\n this._data = data;\n };\n\n CustomChartView.prototype.incrementalPrepareRender = function (customSeries, ecModel, api) {\n this.group.removeAll();\n this._data = null;\n };\n\n CustomChartView.prototype.incrementalRender = function (params, customSeries, ecModel, api, payload) {\n var data = customSeries.getData();\n var renderItem = makeRenderItem(customSeries, data, ecModel, api);\n var progressiveEls = this._progressiveEls = [];\n\n function setIncrementalAndHoverLayer(el) {\n if (!el.isGroup) {\n el.incremental = true;\n el.ensureState('emphasis').hoverLayer = true;\n }\n }\n\n for (var idx = params.start; idx < params.end; idx++) {\n var el = createOrUpdateItem(null, null, idx, renderItem(idx, payload), customSeries, this.group, data);\n\n if (el) {\n el.traverse(setIncrementalAndHoverLayer);\n progressiveEls.push(el);\n }\n }\n };\n\n CustomChartView.prototype.eachRendered = function (cb) {\n graphicUtil.traverseElements(this._progressiveEls || this.group, cb);\n };\n\n CustomChartView.prototype.filterForExposedEvent = function (eventType, query, targetEl, packedEvent) {\n var elementName = query.element;\n\n if (elementName == null || targetEl.name === elementName) {\n return true;\n } // Enable to give a name on a group made by `renderItem`, and listen\n // events that are triggered by its descendents.\n\n\n while ((targetEl = targetEl.__hostTarget || targetEl.parent) && targetEl !== this.group) {\n if (targetEl.name === elementName) {\n return true;\n }\n }\n\n return false;\n };\n\n CustomChartView.type = 'custom';\n return CustomChartView;\n}(ChartView);\n\nexport default CustomChartView;\n\nfunction createEl(elOption) {\n var graphicType = elOption.type;\n var el; // Those graphic elements are not shapes. They should not be\n // overwritten by users, so do them first.\n\n if (graphicType === 'path') {\n var shape = elOption.shape; // Using pathRect brings convenience to users sacle svg path.\n\n var pathRect = shape.width != null && shape.height != null ? {\n x: shape.x || 0,\n y: shape.y || 0,\n width: shape.width,\n height: shape.height\n } : null;\n var pathData = getPathData(shape); // Path is also used for icon, so layout 'center' by default.\n\n el = graphicUtil.makePath(pathData, null, pathRect, shape.layout || 'center');\n customInnerStore(el).customPathData = pathData;\n } else if (graphicType === 'image') {\n el = new graphicUtil.Image({});\n customInnerStore(el).customImagePath = elOption.style.image;\n } else if (graphicType === 'text') {\n el = new graphicUtil.Text({}); // customInnerStore(el).customText = (elOption.style as TextStyleProps).text;\n } else if (graphicType === 'group') {\n el = new graphicUtil.Group();\n } else if (graphicType === 'compoundPath') {\n throw new Error('\"compoundPath\" is not supported yet.');\n } else {\n var Clz = graphicUtil.getShapeClass(graphicType);\n\n if (!Clz) {\n var errMsg = '';\n\n if (process.env.NODE_ENV !== 'production') {\n errMsg = 'graphic type \"' + graphicType + '\" can not be found.';\n }\n\n throwError(errMsg);\n }\n\n el = new Clz();\n }\n\n customInnerStore(el).customGraphicType = graphicType;\n el.name = elOption.name; // Compat ec4: the default z2 lift is 1. If changing the number,\n // some cases probably be broken: hierarchy layout along z, like circle packing,\n // where emphasis only intending to modify color/border rather than lift z2.\n\n el.z2EmphasisLift = 1;\n el.z2SelectLift = 1;\n return el;\n}\n\nfunction updateElNormal( // Can be null/undefined\napi, el, dataIndex, elOption, attachedTxInfo, seriesModel, isInit) {\n // Stop and restore before update any other attributes.\n stopPreviousKeyframeAnimationAndRestore(el);\n var txCfgOpt = attachedTxInfo && attachedTxInfo.normal.cfg;\n\n if (txCfgOpt) {\n // PENDING: whether use user object directly rather than clone?\n // TODO:5.0 textConfig transition animation?\n el.setTextConfig(txCfgOpt);\n } // Default transition ['x', 'y']\n\n\n if (elOption && elOption.transition == null) {\n elOption.transition = DEFAULT_TRANSITION;\n } // Do some normalization on style.\n\n\n var styleOpt = elOption && elOption.style;\n\n if (styleOpt) {\n if (el.type === 'text') {\n var textOptionStyle = styleOpt; // Compatible with ec4: if `textFill` or `textStroke` exists use them.\n\n hasOwn(textOptionStyle, 'textFill') && (textOptionStyle.fill = textOptionStyle.textFill);\n hasOwn(textOptionStyle, 'textStroke') && (textOptionStyle.stroke = textOptionStyle.textStroke);\n }\n\n var decalPattern = void 0;\n var decalObj = isPath(el) ? styleOpt.decal : null;\n\n if (api && decalObj) {\n decalObj.dirty = true;\n decalPattern = createOrUpdatePatternFromDecal(decalObj, api);\n } // Always overwrite in case user specify this prop.\n\n\n styleOpt.__decalPattern = decalPattern;\n }\n\n if (isDisplayable(el)) {\n if (styleOpt) {\n var decalPattern = styleOpt.__decalPattern;\n\n if (decalPattern) {\n styleOpt.decal = decalPattern;\n }\n }\n }\n\n applyUpdateTransition(el, elOption, seriesModel, {\n dataIndex: dataIndex,\n isInit: isInit,\n clearStyle: true\n });\n applyKeyframeAnimation(el, elOption.keyframeAnimation, seriesModel);\n}\n\nfunction updateElOnState(state, el, elStateOpt, styleOpt, attachedTxInfo) {\n var elDisplayable = el.isGroup ? null : el;\n var txCfgOpt = attachedTxInfo && attachedTxInfo[state].cfg; // PENDING:5.0 support customize scale change and transition animation?\n\n if (elDisplayable) {\n // By default support auto lift color when hover whether `emphasis` specified.\n var stateObj = elDisplayable.ensureState(state);\n\n if (styleOpt === false) {\n var existingEmphasisState = elDisplayable.getState(state);\n\n if (existingEmphasisState) {\n existingEmphasisState.style = null;\n }\n } else {\n // style is needed to enable default emphasis.\n stateObj.style = styleOpt || null;\n } // If `elOption.styleEmphasis` or `elOption.emphasis.style` is `false`,\n // remove hover style.\n // If `elOption.textConfig` or `elOption.emphasis.textConfig` is null/undefined, it does not\n // make sense. So for simplicity, we do not ditinguish `hasOwnProperty` and null/undefined.\n\n\n if (txCfgOpt) {\n stateObj.textConfig = txCfgOpt;\n }\n\n setDefaultStateProxy(elDisplayable);\n }\n}\n\nfunction updateZ(el, elOption, seriesModel) {\n // Group not support textContent and not support z yet.\n if (el.isGroup) {\n return;\n }\n\n var elDisplayable = el;\n var currentZ = seriesModel.currentZ;\n var currentZLevel = seriesModel.currentZLevel; // Always erase.\n\n elDisplayable.z = currentZ;\n elDisplayable.zlevel = currentZLevel; // z2 must not be null/undefined, otherwise sort error may occur.\n\n var optZ2 = elOption.z2;\n optZ2 != null && (elDisplayable.z2 = optZ2 || 0);\n\n for (var i = 0; i < STATES.length; i++) {\n updateZForEachState(elDisplayable, elOption, STATES[i]);\n }\n}\n\nfunction updateZForEachState(elDisplayable, elOption, state) {\n var isNormal = state === NORMAL;\n var elStateOpt = isNormal ? elOption : retrieveStateOption(elOption, state);\n var optZ2 = elStateOpt ? elStateOpt.z2 : null;\n var stateObj;\n\n if (optZ2 != null) {\n // Do not `ensureState` until required.\n stateObj = isNormal ? elDisplayable : elDisplayable.ensureState(state);\n stateObj.z2 = optZ2 || 0;\n }\n}\n\nfunction makeRenderItem(customSeries, data, ecModel, api) {\n var renderItem = customSeries.get('renderItem');\n var coordSys = customSeries.coordinateSystem;\n var prepareResult = {};\n\n if (coordSys) {\n if (process.env.NODE_ENV !== 'production') {\n assert(renderItem, 'series.render is required.');\n assert(coordSys.prepareCustoms || prepareCustoms[coordSys.type], 'This coordSys does not support custom series.');\n } // `coordSys.prepareCustoms` is used for external coord sys like bmap.\n\n\n prepareResult = coordSys.prepareCustoms ? coordSys.prepareCustoms(coordSys) : prepareCustoms[coordSys.type](coordSys);\n }\n\n var userAPI = defaults({\n getWidth: api.getWidth,\n getHeight: api.getHeight,\n getZr: api.getZr,\n getDevicePixelRatio: api.getDevicePixelRatio,\n value: value,\n style: style,\n ordinalRawValue: ordinalRawValue,\n styleEmphasis: styleEmphasis,\n visual: visual,\n barLayout: barLayout,\n currentSeriesIndices: currentSeriesIndices,\n font: font\n }, prepareResult.api || {});\n var userParams = {\n // The life cycle of context: current round of rendering.\n // The global life cycle is probably not necessary, because\n // user can store global status by themselves.\n context: {},\n seriesId: customSeries.id,\n seriesName: customSeries.name,\n seriesIndex: customSeries.seriesIndex,\n coordSys: prepareResult.coordSys,\n dataInsideLength: data.count(),\n encode: wrapEncodeDef(customSeries.getData())\n }; // If someday intending to refactor them to a class, should consider do not\n // break change: currently these attribute member are encapsulated in a closure\n // so that do not need to force user to call these method with a scope.\n // Do not support call `api` asynchronously without dataIndexInside input.\n\n var currDataIndexInside;\n var currItemModel;\n var currItemStyleModels = {};\n var currLabelModels = {};\n var seriesItemStyleModels = {};\n var seriesLabelModels = {};\n\n for (var i = 0; i < STATES.length; i++) {\n var stateName = STATES[i];\n seriesItemStyleModels[stateName] = customSeries.getModel(PATH_ITEM_STYLE[stateName]);\n seriesLabelModels[stateName] = customSeries.getModel(PATH_LABEL[stateName]);\n }\n\n function getItemModel(dataIndexInside) {\n return dataIndexInside === currDataIndexInside ? currItemModel || (currItemModel = data.getItemModel(dataIndexInside)) : data.getItemModel(dataIndexInside);\n }\n\n function getItemStyleModel(dataIndexInside, state) {\n return !data.hasItemOption ? seriesItemStyleModels[state] : dataIndexInside === currDataIndexInside ? currItemStyleModels[state] || (currItemStyleModels[state] = getItemModel(dataIndexInside).getModel(PATH_ITEM_STYLE[state])) : getItemModel(dataIndexInside).getModel(PATH_ITEM_STYLE[state]);\n }\n\n function getLabelModel(dataIndexInside, state) {\n return !data.hasItemOption ? seriesLabelModels[state] : dataIndexInside === currDataIndexInside ? currLabelModels[state] || (currLabelModels[state] = getItemModel(dataIndexInside).getModel(PATH_LABEL[state])) : getItemModel(dataIndexInside).getModel(PATH_LABEL[state]);\n }\n\n return function (dataIndexInside, payload) {\n currDataIndexInside = dataIndexInside;\n currItemModel = null;\n currItemStyleModels = {};\n currLabelModels = {};\n return renderItem && renderItem(defaults({\n dataIndexInside: dataIndexInside,\n dataIndex: data.getRawIndex(dataIndexInside),\n // Can be used for optimization when zoom or roam.\n actionType: payload ? payload.type : null\n }, userParams), userAPI);\n };\n /**\n * @public\n * @param dim by default 0.\n * @param dataIndexInside by default `currDataIndexInside`.\n */\n\n function value(dim, dataIndexInside) {\n dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n return data.getStore().get(data.getDimensionIndex(dim || 0), dataIndexInside);\n }\n /**\n * @public\n * @param dim by default 0.\n * @param dataIndexInside by default `currDataIndexInside`.\n */\n\n\n function ordinalRawValue(dim, dataIndexInside) {\n dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n dim = dim || 0;\n var dimInfo = data.getDimensionInfo(dim);\n\n if (!dimInfo) {\n var dimIndex = data.getDimensionIndex(dim);\n return dimIndex >= 0 ? data.getStore().get(dimIndex, dataIndexInside) : undefined;\n }\n\n var val = data.get(dimInfo.name, dataIndexInside);\n var ordinalMeta = dimInfo && dimInfo.ordinalMeta;\n return ordinalMeta ? ordinalMeta.categories[val] : val;\n }\n /**\n * @deprecated The original intention of `api.style` is enable to set itemStyle\n * like other series. But it is not necessary and not easy to give a strict definition\n * of what it returns. And since echarts5 it needs to be make compat work. So\n * deprecates it since echarts5.\n *\n * By default, `visual` is applied to style (to support visualMap).\n * `visual.color` is applied at `fill`. If user want apply visual.color on `stroke`,\n * it can be implemented as:\n * `api.style({stroke: api.visual('color'), fill: null})`;\n *\n * [Compat]: since ec5, RectText has been separated from its hosts el.\n * so `api.style()` will only return the style from `itemStyle` but not handle `label`\n * any more. But `series.label` config is never published in doc.\n * We still compat it in `api.style()`. But not encourage to use it and will still not\n * to pulish it to doc.\n * @public\n * @param dataIndexInside by default `currDataIndexInside`.\n */\n\n\n function style(userProps, dataIndexInside) {\n if (process.env.NODE_ENV !== 'production') {\n warnDeprecated('api.style', 'Please write literal style directly instead.');\n }\n\n dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n var style = data.getItemVisual(dataIndexInside, 'style');\n var visualColor = style && style.fill;\n var opacity = style && style.opacity;\n var itemStyle = getItemStyleModel(dataIndexInside, NORMAL).getItemStyle();\n visualColor != null && (itemStyle.fill = visualColor);\n opacity != null && (itemStyle.opacity = opacity);\n var opt = {\n inheritColor: isString(visualColor) ? visualColor : '#000'\n };\n var labelModel = getLabelModel(dataIndexInside, NORMAL); // Now that the feature of \"auto adjust text fill/stroke\" has been migrated to zrender\n // since ec5, we should set `isAttached` as `false` here and make compat in\n // `convertToEC4StyleForCustomSerise`.\n\n var textStyle = labelStyleHelper.createTextStyle(labelModel, null, opt, false, true);\n textStyle.text = labelModel.getShallow('show') ? retrieve2(customSeries.getFormattedLabel(dataIndexInside, NORMAL), getDefaultLabel(data, dataIndexInside)) : null;\n var textConfig = labelStyleHelper.createTextConfig(labelModel, opt, false);\n preFetchFromExtra(userProps, itemStyle);\n itemStyle = convertToEC4StyleForCustomSerise(itemStyle, textStyle, textConfig);\n userProps && applyUserPropsAfter(itemStyle, userProps);\n itemStyle.legacy = true;\n return itemStyle;\n }\n /**\n * @deprecated The reason see `api.style()`\n * @public\n * @param dataIndexInside by default `currDataIndexInside`.\n */\n\n\n function styleEmphasis(userProps, dataIndexInside) {\n if (process.env.NODE_ENV !== 'production') {\n warnDeprecated('api.styleEmphasis', 'Please write literal style directly instead.');\n }\n\n dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n var itemStyle = getItemStyleModel(dataIndexInside, EMPHASIS).getItemStyle();\n var labelModel = getLabelModel(dataIndexInside, EMPHASIS);\n var textStyle = labelStyleHelper.createTextStyle(labelModel, null, null, true, true);\n textStyle.text = labelModel.getShallow('show') ? retrieve3(customSeries.getFormattedLabel(dataIndexInside, EMPHASIS), customSeries.getFormattedLabel(dataIndexInside, NORMAL), getDefaultLabel(data, dataIndexInside)) : null;\n var textConfig = labelStyleHelper.createTextConfig(labelModel, null, true);\n preFetchFromExtra(userProps, itemStyle);\n itemStyle = convertToEC4StyleForCustomSerise(itemStyle, textStyle, textConfig);\n userProps && applyUserPropsAfter(itemStyle, userProps);\n itemStyle.legacy = true;\n return itemStyle;\n }\n\n function applyUserPropsAfter(itemStyle, extra) {\n for (var key in extra) {\n if (hasOwn(extra, key)) {\n itemStyle[key] = extra[key];\n }\n }\n }\n\n function preFetchFromExtra(extra, itemStyle) {\n // A trick to retrieve those props firstly, which are used to\n // apply auto inside fill/stroke in `convertToEC4StyleForCustomSerise`.\n // (It's not reasonable but only for a degree of compat)\n if (extra) {\n extra.textFill && (itemStyle.textFill = extra.textFill);\n extra.textPosition && (itemStyle.textPosition = extra.textPosition);\n }\n }\n /**\n * @public\n * @param dataIndexInside by default `currDataIndexInside`.\n */\n\n\n function visual(visualType, dataIndexInside) {\n dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n\n if (hasOwn(STYLE_VISUAL_TYPE, visualType)) {\n var style_1 = data.getItemVisual(dataIndexInside, 'style');\n return style_1 ? style_1[STYLE_VISUAL_TYPE[visualType]] : null;\n } // Only support these visuals. Other visual might be inner tricky\n // for performance (like `style`), do not expose to users.\n\n\n if (hasOwn(NON_STYLE_VISUAL_PROPS, visualType)) {\n return data.getItemVisual(dataIndexInside, visualType);\n }\n }\n /**\n * @public\n * @return If not support, return undefined.\n */\n\n\n function barLayout(opt) {\n if (coordSys.type === 'cartesian2d') {\n var baseAxis = coordSys.getBaseAxis();\n return getLayoutOnAxis(defaults({\n axis: baseAxis\n }, opt));\n }\n }\n /**\n * @public\n */\n\n\n function currentSeriesIndices() {\n return ecModel.getCurrentSeriesIndices();\n }\n /**\n * @public\n * @return font string\n */\n\n\n function font(opt) {\n return labelStyleHelper.getFont(opt, ecModel);\n }\n}\n\nfunction wrapEncodeDef(data) {\n var encodeDef = {};\n each(data.dimensions, function (dimName) {\n var dimInfo = data.getDimensionInfo(dimName);\n\n if (!dimInfo.isExtraCoord) {\n var coordDim = dimInfo.coordDim;\n var dataDims = encodeDef[coordDim] = encodeDef[coordDim] || [];\n dataDims[dimInfo.coordDimIndex] = data.getDimensionIndex(dimName);\n }\n });\n return encodeDef;\n}\n\nfunction createOrUpdateItem(api, existsEl, dataIndex, elOption, seriesModel, group, data) {\n // [Rule]\n // If `renderItem` returns `null`/`undefined`/`false`, remove the previous el if existing.\n // (It seems that violate the \"merge\" principle, but most of users probably intuitively\n // regard \"return;\" as \"show nothing element whatever\", so make a exception to meet the\n // most cases.)\n // The rule or \"merge\" see [STRATEGY_MERGE].\n // If `elOption` is `null`/`undefined`/`false` (when `renderItem` returns nothing).\n if (!elOption) {\n group.remove(existsEl);\n return;\n }\n\n var el = doCreateOrUpdateEl(api, existsEl, dataIndex, elOption, seriesModel, group);\n el && data.setItemGraphicEl(dataIndex, el);\n el && toggleHoverEmphasis(el, elOption.focus, elOption.blurScope, elOption.emphasisDisabled);\n return el;\n}\n\nfunction doCreateOrUpdateEl(api, existsEl, dataIndex, elOption, seriesModel, group) {\n if (process.env.NODE_ENV !== 'production') {\n assert(elOption, 'should not have an null/undefined element setting');\n }\n\n var toBeReplacedIdx = -1;\n var oldEl = existsEl;\n\n if (existsEl && doesElNeedRecreate(existsEl, elOption, seriesModel) // || (\n // // PENDING: even in one-to-one mapping case, if el is marked as morph,\n // // do not sure whether the el will be mapped to another el with different\n // // hierarchy in Group tree. So always recreate el rather than reuse the el.\n // morphHelper && morphHelper.isOneToOneFrom(el)\n // )\n ) {\n // Should keep at the original index, otherwise \"merge by index\" will be incorrect.\n toBeReplacedIdx = indexOf(group.childrenRef(), existsEl);\n existsEl = null;\n }\n\n var isInit = !existsEl;\n var el = existsEl;\n\n if (!el) {\n el = createEl(elOption);\n\n if (oldEl) {\n copyElement(oldEl, el);\n }\n } else {\n // FIMXE:NEXT unified clearState?\n // If in some case the performance issue arised, consider\n // do not clearState but update cached normal state directly.\n el.clearStates();\n } // Need to set morph: false explictly to disable automatically morphing.\n\n\n if (elOption.morph === false) {\n el.disableMorphing = true;\n } else if (el.disableMorphing) {\n el.disableMorphing = false;\n }\n\n attachedTxInfoTmp.normal.cfg = attachedTxInfoTmp.normal.conOpt = attachedTxInfoTmp.emphasis.cfg = attachedTxInfoTmp.emphasis.conOpt = attachedTxInfoTmp.blur.cfg = attachedTxInfoTmp.blur.conOpt = attachedTxInfoTmp.select.cfg = attachedTxInfoTmp.select.conOpt = null;\n attachedTxInfoTmp.isLegacy = false;\n doCreateOrUpdateAttachedTx(el, dataIndex, elOption, seriesModel, isInit, attachedTxInfoTmp);\n doCreateOrUpdateClipPath(el, dataIndex, elOption, seriesModel, isInit);\n updateElNormal(api, el, dataIndex, elOption, attachedTxInfoTmp, seriesModel, isInit); // `elOption.info` enables user to mount some info on\n // elements and use them in event handlers.\n // Update them only when user specified, otherwise, remain.\n\n hasOwn(elOption, 'info') && (customInnerStore(el).info = elOption.info);\n\n for (var i = 0; i < STATES.length; i++) {\n var stateName = STATES[i];\n\n if (stateName !== NORMAL) {\n var otherStateOpt = retrieveStateOption(elOption, stateName);\n var otherStyleOpt = retrieveStyleOptionOnState(elOption, otherStateOpt, stateName);\n updateElOnState(stateName, el, otherStateOpt, otherStyleOpt, attachedTxInfoTmp);\n }\n }\n\n updateZ(el, elOption, seriesModel);\n\n if (elOption.type === 'group') {\n mergeChildren(api, el, dataIndex, elOption, seriesModel);\n }\n\n if (toBeReplacedIdx >= 0) {\n group.replaceAt(el, toBeReplacedIdx);\n } else {\n group.add(el);\n }\n\n return el;\n} // `el` must not be null/undefined.\n\n\nfunction doesElNeedRecreate(el, elOption, seriesModel) {\n var elInner = customInnerStore(el);\n var elOptionType = elOption.type;\n var elOptionShape = elOption.shape;\n var elOptionStyle = elOption.style;\n return (// Always create new if universal transition is enabled.\n // Because we do transition after render. It needs to know what old element is. Replacement will loose it.\n seriesModel.isUniversalTransitionEnabled() // If `elOptionType` is `null`, follow the merge principle.\n || elOptionType != null && elOptionType !== elInner.customGraphicType || elOptionType === 'path' && hasOwnPathData(elOptionShape) && getPathData(elOptionShape) !== elInner.customPathData || elOptionType === 'image' && hasOwn(elOptionStyle, 'image') && elOptionStyle.image !== elInner.customImagePath // // FIXME test and remove this restriction?\n // || (elOptionType === 'text'\n // && hasOwn(elOptionStyle, 'text')\n // && (elOptionStyle as TextStyleProps).text !== elInner.customText\n // )\n\n );\n}\n\nfunction doCreateOrUpdateClipPath(el, dataIndex, elOption, seriesModel, isInit) {\n // Based on the \"merge\" principle, if no clipPath provided,\n // do nothing. The exists clip will be totally removed only if\n // `el.clipPath` is `false`. Otherwise it will be merged/replaced.\n var clipPathOpt = elOption.clipPath;\n\n if (clipPathOpt === false) {\n if (el && el.getClipPath()) {\n el.removeClipPath();\n }\n } else if (clipPathOpt) {\n var clipPath = el.getClipPath();\n\n if (clipPath && doesElNeedRecreate(clipPath, clipPathOpt, seriesModel)) {\n clipPath = null;\n }\n\n if (!clipPath) {\n clipPath = createEl(clipPathOpt);\n\n if (process.env.NODE_ENV !== 'production') {\n assert(isPath(clipPath), 'Only any type of `path` can be used in `clipPath`, rather than ' + clipPath.type + '.');\n }\n\n el.setClipPath(clipPath);\n }\n\n updateElNormal(null, clipPath, dataIndex, clipPathOpt, null, seriesModel, isInit);\n } // If not define `clipPath` in option, do nothing unnecessary.\n\n}\n\nfunction doCreateOrUpdateAttachedTx(el, dataIndex, elOption, seriesModel, isInit, attachedTxInfo) {\n // Group does not support textContent temporarily until necessary.\n if (el.isGroup) {\n return;\n } // Normal must be called before emphasis, for `isLegacy` detection.\n\n\n processTxInfo(elOption, null, attachedTxInfo);\n processTxInfo(elOption, EMPHASIS, attachedTxInfo); // If `elOption.textConfig` or `elOption.textContent` is null/undefined, it does not make sense.\n // So for simplicity, if \"elOption hasOwnProperty of them but be null/undefined\", we do not\n // trade them as set to null to el.\n // Especially:\n // `elOption.textContent: false` means remove textContent.\n // `elOption.textContent.emphasis.style: false` means remove the style from emphasis state.\n\n var txConOptNormal = attachedTxInfo.normal.conOpt;\n var txConOptEmphasis = attachedTxInfo.emphasis.conOpt;\n var txConOptBlur = attachedTxInfo.blur.conOpt;\n var txConOptSelect = attachedTxInfo.select.conOpt;\n\n if (txConOptNormal != null || txConOptEmphasis != null || txConOptSelect != null || txConOptBlur != null) {\n var textContent = el.getTextContent();\n\n if (txConOptNormal === false) {\n textContent && el.removeTextContent();\n } else {\n txConOptNormal = attachedTxInfo.normal.conOpt = txConOptNormal || {\n type: 'text'\n };\n\n if (!textContent) {\n textContent = createEl(txConOptNormal);\n el.setTextContent(textContent);\n } else {\n // If in some case the performance issue arised, consider\n // do not clearState but update cached normal state directly.\n textContent.clearStates();\n }\n\n updateElNormal(null, textContent, dataIndex, txConOptNormal, null, seriesModel, isInit);\n var txConStlOptNormal = txConOptNormal && txConOptNormal.style;\n\n for (var i = 0; i < STATES.length; i++) {\n var stateName = STATES[i];\n\n if (stateName !== NORMAL) {\n var txConOptOtherState = attachedTxInfo[stateName].conOpt;\n updateElOnState(stateName, textContent, txConOptOtherState, retrieveStyleOptionOnState(txConOptNormal, txConOptOtherState, stateName), null);\n }\n }\n\n txConStlOptNormal ? textContent.dirty() : textContent.markRedraw();\n }\n }\n}\n\nfunction processTxInfo(elOption, state, attachedTxInfo) {\n var stateOpt = !state ? elOption : retrieveStateOption(elOption, state);\n var styleOpt = !state ? elOption.style : retrieveStyleOptionOnState(elOption, stateOpt, EMPHASIS);\n var elType = elOption.type;\n var txCfg = stateOpt ? stateOpt.textConfig : null;\n var txConOptNormal = elOption.textContent;\n var txConOpt = !txConOptNormal ? null : !state ? txConOptNormal : retrieveStateOption(txConOptNormal, state);\n\n if (styleOpt && ( // Because emphasis style has little info to detect legacy,\n // if normal is legacy, emphasis is trade as legacy.\n attachedTxInfo.isLegacy || isEC4CompatibleStyle(styleOpt, elType, !!txCfg, !!txConOpt))) {\n attachedTxInfo.isLegacy = true;\n var convertResult = convertFromEC4CompatibleStyle(styleOpt, elType, !state); // Explicitly specified `textConfig` and `textContent` has higher priority than\n // the ones generated by legacy style. Otherwise if users use them and `api.style`\n // at the same time, they not both work and hardly to known why.\n\n if (!txCfg && convertResult.textConfig) {\n txCfg = convertResult.textConfig;\n }\n\n if (!txConOpt && convertResult.textContent) {\n txConOpt = convertResult.textContent;\n }\n }\n\n if (!state && txConOpt) {\n var txConOptNormal_1 = txConOpt; // `textContent: {type: 'text'}`, the \"type\" is easy to be missing. So we tolerate it.\n\n !txConOptNormal_1.type && (txConOptNormal_1.type = 'text');\n\n if (process.env.NODE_ENV !== 'production') {\n // Do not tolerate incorrcet type for forward compat.\n assert(txConOptNormal_1.type === 'text', 'textContent.type must be \"text\"');\n }\n }\n\n var info = !state ? attachedTxInfo.normal : attachedTxInfo[state];\n info.cfg = txCfg;\n info.conOpt = txConOpt;\n}\n\nfunction retrieveStateOption(elOption, state) {\n return !state ? elOption : elOption ? elOption[state] : null;\n}\n\nfunction retrieveStyleOptionOnState(stateOptionNormal, stateOption, state) {\n var style = stateOption && stateOption.style;\n\n if (style == null && state === EMPHASIS && stateOptionNormal) {\n style = stateOptionNormal.styleEmphasis;\n }\n\n return style;\n} // Usage:\n// (1) By default, `elOption.$mergeChildren` is `'byIndex'`, which indicates\n// that the existing children will not be removed, and enables the feature\n// that update some of the props of some of the children simply by construct\n// the returned children of `renderItem` like:\n// `var children = group.children = []; children[3] = {opacity: 0.5};`\n// (2) If `elOption.$mergeChildren` is `'byName'`, add/update/remove children\n// by child.name. But that might be lower performance.\n// (3) If `elOption.$mergeChildren` is `false`, the existing children will be\n// replaced totally.\n// (4) If `!elOption.children`, following the \"merge\" principle, nothing will\n// happen.\n// (5) If `elOption.$mergeChildren` is not `false` neither `'byName'` and the\n// `el` is a group, and if any of the new child is null, it means to remove\n// the element at the same index, if exists. On the other hand, if the new\n// child is and empty object `{}`, it means to keep the element not changed.\n//\n// For implementation simpleness, do not provide a direct way to remove single\n// child (otherwise the total indices of the children array have to be modified).\n// User can remove a single child by setting its `ignore` to `true`.\n\n\nfunction mergeChildren(api, el, dataIndex, elOption, seriesModel) {\n var newChildren = elOption.children;\n var newLen = newChildren ? newChildren.length : 0;\n var mergeChildren = elOption.$mergeChildren; // `diffChildrenByName` has been deprecated.\n\n var byName = mergeChildren === 'byName' || elOption.diffChildrenByName;\n var notMerge = mergeChildren === false; // For better performance on roam update, only enter if necessary.\n\n if (!newLen && !byName && !notMerge) {\n return;\n }\n\n if (byName) {\n diffGroupChildren({\n api: api,\n oldChildren: el.children() || [],\n newChildren: newChildren || [],\n dataIndex: dataIndex,\n seriesModel: seriesModel,\n group: el\n });\n return;\n }\n\n notMerge && el.removeAll(); // Mapping children of a group simply by index, which\n // might be better performance.\n\n var index = 0;\n\n for (; index < newLen; index++) {\n var newChild = newChildren[index];\n var oldChild = el.childAt(index);\n\n if (newChild) {\n if (newChild.ignore == null) {\n // The old child is set to be ignored if null (see comments\n // below). So we need to set ignore to be false back.\n newChild.ignore = false;\n }\n\n doCreateOrUpdateEl(api, oldChild, dataIndex, newChild, seriesModel, el);\n } else {\n if (process.env.NODE_ENV !== 'production') {\n assert(oldChild, 'renderItem should not return a group containing elements' + ' as null/undefined/{} if they do not exist before.');\n } // If the new element option is null, it means to remove the old\n // element. But we cannot really remove the element from the group\n // directly, because the element order may not be stable when this\n // element is added back. So we set the element to be ignored.\n\n\n oldChild.ignore = true;\n }\n }\n\n for (var i = el.childCount() - 1; i >= index; i--) {\n var child = el.childAt(i);\n removeChildFromGroup(el, child, seriesModel);\n }\n}\n\nfunction removeChildFromGroup(group, child, seriesModel) {\n // Do not support leave elements that are not mentioned in the latest\n // `renderItem` return. Otherwise users may not have a clear and simple\n // concept that how to control all of the elements.\n child && applyLeaveTransition(child, customInnerStore(group).option, seriesModel);\n}\n\nfunction diffGroupChildren(context) {\n new DataDiffer(context.oldChildren, context.newChildren, getKey, getKey, context).add(processAddUpdate).update(processAddUpdate).remove(processRemove).execute();\n}\n\nfunction getKey(item, idx) {\n var name = item && item.name;\n return name != null ? name : GROUP_DIFF_PREFIX + idx;\n}\n\nfunction processAddUpdate(newIndex, oldIndex) {\n var context = this.context;\n var childOption = newIndex != null ? context.newChildren[newIndex] : null;\n var child = oldIndex != null ? context.oldChildren[oldIndex] : null;\n doCreateOrUpdateEl(context.api, child, context.dataIndex, childOption, context.seriesModel, context.group);\n}\n\nfunction processRemove(oldIndex) {\n var context = this.context;\n var child = context.oldChildren[oldIndex];\n child && applyLeaveTransition(child, customInnerStore(child).option, context.seriesModel);\n}\n/**\n * @return SVG Path data.\n */\n\n\nfunction getPathData(shape) {\n // \"d\" follows the SVG convention.\n return shape && (shape.pathData || shape.d);\n}\n\nfunction hasOwnPathData(shape) {\n return shape && (hasOwn(shape, 'pathData') || hasOwn(shape, 'd'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport CustomSeriesModel from './CustomSeries.js';\nimport CustomChartView from './CustomView.js';\nexport function install(registers) {\n registers.registerChartView(CustomChartView);\n registers.registerSeriesModel(CustomSeriesModel);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport createSeriesData from '../helper/createSeriesData.js';\nimport SeriesModel from '../../model/Series.js';\n\nvar EffectScatterSeriesModel =\n/** @class */\nfunction (_super) {\n __extends(EffectScatterSeriesModel, _super);\n\n function EffectScatterSeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = EffectScatterSeriesModel.type;\n _this.hasSymbolVisual = true;\n return _this;\n }\n\n EffectScatterSeriesModel.prototype.getInitialData = function (option, ecModel) {\n return createSeriesData(null, this, {\n useEncodeDefaulter: true\n });\n };\n\n EffectScatterSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\n return selectors.point(data.getItemLayout(dataIndex));\n };\n\n EffectScatterSeriesModel.type = 'series.effectScatter';\n EffectScatterSeriesModel.dependencies = ['grid', 'polar'];\n EffectScatterSeriesModel.defaultOption = {\n coordinateSystem: 'cartesian2d',\n // zlevel: 0,\n z: 2,\n legendHoverLink: true,\n effectType: 'ripple',\n progressive: 0,\n // When to show the effect, option: 'render'|'emphasis'\n showEffectOn: 'render',\n clip: true,\n // Ripple effect config\n rippleEffect: {\n period: 4,\n // Scale of ripple\n scale: 2.5,\n // Brush type can be fill or stroke\n brushType: 'fill',\n // Ripple number\n number: 3\n },\n universalTransition: {\n divideShape: 'clone'\n },\n // Cartesian coordinate system\n // xAxisIndex: 0,\n // yAxisIndex: 0,\n // Polar coordinate system\n // polarIndex: 0,\n // Geo coordinate system\n // geoIndex: 0,\n // symbol: null, // 图形类型\n symbolSize: 10 // 图形大小,半宽(半径)参数,当图形为方向或菱形则总宽度为symbolSize * 2\n // symbolRotate: null, // 图形旋转控制\n // itemStyle: {\n // opacity: 1\n // }\n\n };\n return EffectScatterSeriesModel;\n}(SeriesModel);\n\nexport default EffectScatterSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport SymbolDraw from '../helper/SymbolDraw.js';\nimport EffectSymbol from '../helper/EffectSymbol.js';\nimport * as matrix from 'zrender/lib/core/matrix.js';\nimport pointsLayout from '../../layout/points.js';\nimport ChartView from '../../view/Chart.js';\n\nvar EffectScatterView =\n/** @class */\nfunction (_super) {\n __extends(EffectScatterView, _super);\n\n function EffectScatterView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = EffectScatterView.type;\n return _this;\n }\n\n EffectScatterView.prototype.init = function () {\n this._symbolDraw = new SymbolDraw(EffectSymbol);\n };\n\n EffectScatterView.prototype.render = function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n var effectSymbolDraw = this._symbolDraw;\n effectSymbolDraw.updateData(data, {\n clipShape: this._getClipShape(seriesModel)\n });\n this.group.add(effectSymbolDraw.group);\n };\n\n EffectScatterView.prototype._getClipShape = function (seriesModel) {\n var coordSys = seriesModel.coordinateSystem;\n var clipArea = coordSys && coordSys.getArea && coordSys.getArea();\n return seriesModel.get('clip', true) ? clipArea : null;\n };\n\n EffectScatterView.prototype.updateTransform = function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n this.group.dirty();\n var res = pointsLayout('').reset(seriesModel, ecModel, api);\n\n if (res.progress) {\n res.progress({\n start: 0,\n end: data.count(),\n count: data.count()\n }, data);\n }\n\n this._symbolDraw.updateLayout();\n };\n\n EffectScatterView.prototype._updateGroupTransform = function (seriesModel) {\n var coordSys = seriesModel.coordinateSystem;\n\n if (coordSys && coordSys.getRoamTransform) {\n this.group.transform = matrix.clone(coordSys.getRoamTransform());\n this.group.decomposeTransform();\n }\n };\n\n EffectScatterView.prototype.remove = function (ecModel, api) {\n this._symbolDraw && this._symbolDraw.remove(true);\n };\n\n EffectScatterView.type = 'effectScatter';\n return EffectScatterView;\n}(ChartView);\n\nexport default EffectScatterView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport EffectScatterView from './EffectScatterView.js';\nimport EffectScatterSeriesModel from './EffectScatterSeries.js';\nimport layoutPoints from '../../layout/points.js';\nexport function install(registers) {\n registers.registerChartView(EffectScatterView);\n registers.registerSeriesModel(EffectScatterSeriesModel);\n registers.registerLayout(layoutPoints('effectScatter'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport createSeriesDataSimply from '../helper/createSeriesDataSimply.js';\nimport { defaultEmphasis } from '../../util/model.js';\nimport { makeSeriesEncodeForNameBased } from '../../data/helper/sourceHelper.js';\nimport LegendVisualProvider from '../../visual/LegendVisualProvider.js';\nimport SeriesModel from '../../model/Series.js';\n\nvar FunnelSeriesModel =\n/** @class */\nfunction (_super) {\n __extends(FunnelSeriesModel, _super);\n\n function FunnelSeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = FunnelSeriesModel.type;\n return _this;\n }\n\n FunnelSeriesModel.prototype.init = function (option) {\n _super.prototype.init.apply(this, arguments); // Enable legend selection for each data item\n // Use a function instead of direct access because data reference may changed\n\n\n this.legendVisualProvider = new LegendVisualProvider(zrUtil.bind(this.getData, this), zrUtil.bind(this.getRawData, this)); // Extend labelLine emphasis\n\n this._defaultLabelLine(option);\n };\n\n FunnelSeriesModel.prototype.getInitialData = function (option, ecModel) {\n return createSeriesDataSimply(this, {\n coordDimensions: ['value'],\n encodeDefaulter: zrUtil.curry(makeSeriesEncodeForNameBased, this)\n });\n };\n\n FunnelSeriesModel.prototype._defaultLabelLine = function (option) {\n // Extend labelLine emphasis\n defaultEmphasis(option, 'labelLine', ['show']);\n var labelLineNormalOpt = option.labelLine;\n var labelLineEmphasisOpt = option.emphasis.labelLine; // Not show label line if `label.normal.show = false`\n\n labelLineNormalOpt.show = labelLineNormalOpt.show && option.label.show;\n labelLineEmphasisOpt.show = labelLineEmphasisOpt.show && option.emphasis.label.show;\n }; // Overwrite\n\n\n FunnelSeriesModel.prototype.getDataParams = function (dataIndex) {\n var data = this.getData();\n\n var params = _super.prototype.getDataParams.call(this, dataIndex);\n\n var valueDim = data.mapDimension('value');\n var sum = data.getSum(valueDim); // Percent is 0 if sum is 0\n\n params.percent = !sum ? 0 : +(data.get(valueDim, dataIndex) / sum * 100).toFixed(2);\n params.$vars.push('percent');\n return params;\n };\n\n FunnelSeriesModel.type = 'series.funnel';\n FunnelSeriesModel.defaultOption = {\n // zlevel: 0, // 一级层叠\n z: 2,\n legendHoverLink: true,\n colorBy: 'data',\n left: 80,\n top: 60,\n right: 80,\n bottom: 60,\n // width: {totalWidth} - left - right,\n // height: {totalHeight} - top - bottom,\n // 默认取数据最小最大值\n // min: 0,\n // max: 100,\n minSize: '0%',\n maxSize: '100%',\n sort: 'descending',\n orient: 'vertical',\n gap: 0,\n funnelAlign: 'center',\n label: {\n show: true,\n position: 'outer' // formatter: 标签文本格式器,同Tooltip.formatter,不支持异步回调\n\n },\n labelLine: {\n show: true,\n length: 20,\n lineStyle: {\n // color: 各异,\n width: 1\n }\n },\n itemStyle: {\n // color: 各异,\n borderColor: '#fff',\n borderWidth: 1\n },\n emphasis: {\n label: {\n show: true\n }\n },\n select: {\n itemStyle: {\n borderColor: '#212121'\n }\n }\n };\n return FunnelSeriesModel;\n}(SeriesModel);\n\nexport default FunnelSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic.js';\nimport { setStatesStylesFromModel, toggleHoverEmphasis } from '../../util/states.js';\nimport ChartView from '../../view/Chart.js';\nimport { setLabelLineStyle, getLabelLineStatesModels } from '../../label/labelGuideHelper.js';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle.js';\nimport { saveOldStyle } from '../../animation/basicTransition.js';\nvar opacityAccessPath = ['itemStyle', 'opacity'];\n/**\n * Piece of pie including Sector, Label, LabelLine\n */\n\nvar FunnelPiece =\n/** @class */\nfunction (_super) {\n __extends(FunnelPiece, _super);\n\n function FunnelPiece(data, idx) {\n var _this = _super.call(this) || this;\n\n var polygon = _this;\n var labelLine = new graphic.Polyline();\n var text = new graphic.Text();\n polygon.setTextContent(text);\n\n _this.setTextGuideLine(labelLine);\n\n _this.updateData(data, idx, true);\n\n return _this;\n }\n\n FunnelPiece.prototype.updateData = function (data, idx, firstCreate) {\n var polygon = this;\n var seriesModel = data.hostModel;\n var itemModel = data.getItemModel(idx);\n var layout = data.getItemLayout(idx);\n var emphasisModel = itemModel.getModel('emphasis');\n var opacity = itemModel.get(opacityAccessPath);\n opacity = opacity == null ? 1 : opacity;\n\n if (!firstCreate) {\n saveOldStyle(polygon);\n } // Update common style\n\n\n polygon.useStyle(data.getItemVisual(idx, 'style'));\n polygon.style.lineJoin = 'round';\n\n if (firstCreate) {\n polygon.setShape({\n points: layout.points\n });\n polygon.style.opacity = 0;\n graphic.initProps(polygon, {\n style: {\n opacity: opacity\n }\n }, seriesModel, idx);\n } else {\n graphic.updateProps(polygon, {\n style: {\n opacity: opacity\n },\n shape: {\n points: layout.points\n }\n }, seriesModel, idx);\n }\n\n setStatesStylesFromModel(polygon, itemModel);\n\n this._updateLabel(data, idx);\n\n toggleHoverEmphasis(this, emphasisModel.get('focus'), emphasisModel.get('blurScope'), emphasisModel.get('disabled'));\n };\n\n FunnelPiece.prototype._updateLabel = function (data, idx) {\n var polygon = this;\n var labelLine = this.getTextGuideLine();\n var labelText = polygon.getTextContent();\n var seriesModel = data.hostModel;\n var itemModel = data.getItemModel(idx);\n var layout = data.getItemLayout(idx);\n var labelLayout = layout.label;\n var style = data.getItemVisual(idx, 'style');\n var visualColor = style.fill;\n setLabelStyle( // position will not be used in setLabelStyle\n labelText, getLabelStatesModels(itemModel), {\n labelFetcher: data.hostModel,\n labelDataIndex: idx,\n defaultOpacity: style.opacity,\n defaultText: data.getName(idx)\n }, {\n normal: {\n align: labelLayout.textAlign,\n verticalAlign: labelLayout.verticalAlign\n }\n });\n polygon.setTextConfig({\n local: true,\n inside: !!labelLayout.inside,\n insideStroke: visualColor,\n // insideFill: 'auto',\n outsideFill: visualColor\n });\n var linePoints = labelLayout.linePoints;\n labelLine.setShape({\n points: linePoints\n });\n polygon.textGuideLineConfig = {\n anchor: linePoints ? new graphic.Point(linePoints[0][0], linePoints[0][1]) : null\n }; // Make sure update style on labelText after setLabelStyle.\n // Because setLabelStyle will replace a new style on it.\n\n graphic.updateProps(labelText, {\n style: {\n x: labelLayout.x,\n y: labelLayout.y\n }\n }, seriesModel, idx);\n labelText.attr({\n rotation: labelLayout.rotation,\n originX: labelLayout.x,\n originY: labelLayout.y,\n z2: 10\n });\n setLabelLineStyle(polygon, getLabelLineStatesModels(itemModel), {\n // Default use item visual color\n stroke: visualColor\n });\n };\n\n return FunnelPiece;\n}(graphic.Polygon);\n\nvar FunnelView =\n/** @class */\nfunction (_super) {\n __extends(FunnelView, _super);\n\n function FunnelView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = FunnelView.type;\n _this.ignoreLabelLineUpdate = true;\n return _this;\n }\n\n FunnelView.prototype.render = function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n var oldData = this._data;\n var group = this.group;\n data.diff(oldData).add(function (idx) {\n var funnelPiece = new FunnelPiece(data, idx);\n data.setItemGraphicEl(idx, funnelPiece);\n group.add(funnelPiece);\n }).update(function (newIdx, oldIdx) {\n var piece = oldData.getItemGraphicEl(oldIdx);\n piece.updateData(data, newIdx);\n group.add(piece);\n data.setItemGraphicEl(newIdx, piece);\n }).remove(function (idx) {\n var piece = oldData.getItemGraphicEl(idx);\n graphic.removeElementWithFadeOut(piece, seriesModel, idx);\n }).execute();\n this._data = data;\n };\n\n FunnelView.prototype.remove = function () {\n this.group.removeAll();\n this._data = null;\n };\n\n FunnelView.prototype.dispose = function () {};\n\n FunnelView.type = 'funnel';\n return FunnelView;\n}(ChartView);\n\nexport default FunnelView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as layout from '../../util/layout.js';\nimport { parsePercent, linearMap } from '../../util/number.js';\nimport { isFunction } from 'zrender/lib/core/util.js';\n\nfunction getViewRect(seriesModel, api) {\n return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n width: api.getWidth(),\n height: api.getHeight()\n });\n}\n\nfunction getSortedIndices(data, sort) {\n var valueDim = data.mapDimension('value');\n var valueArr = data.mapArray(valueDim, function (val) {\n return val;\n });\n var indices = [];\n var isAscending = sort === 'ascending';\n\n for (var i = 0, len = data.count(); i < len; i++) {\n indices[i] = i;\n } // Add custom sortable function & none sortable opetion by \"options.sort\"\n\n\n if (isFunction(sort)) {\n indices.sort(sort);\n } else if (sort !== 'none') {\n indices.sort(function (a, b) {\n return isAscending ? valueArr[a] - valueArr[b] : valueArr[b] - valueArr[a];\n });\n }\n\n return indices;\n}\n\nfunction labelLayout(data) {\n var seriesModel = data.hostModel;\n var orient = seriesModel.get('orient');\n data.each(function (idx) {\n var itemModel = data.getItemModel(idx);\n var labelModel = itemModel.getModel('label');\n var labelPosition = labelModel.get('position');\n var labelLineModel = itemModel.getModel('labelLine');\n var layout = data.getItemLayout(idx);\n var points = layout.points;\n var isLabelInside = labelPosition === 'inner' || labelPosition === 'inside' || labelPosition === 'center' || labelPosition === 'insideLeft' || labelPosition === 'insideRight';\n var textAlign;\n var textX;\n var textY;\n var linePoints;\n\n if (isLabelInside) {\n if (labelPosition === 'insideLeft') {\n textX = (points[0][0] + points[3][0]) / 2 + 5;\n textY = (points[0][1] + points[3][1]) / 2;\n textAlign = 'left';\n } else if (labelPosition === 'insideRight') {\n textX = (points[1][0] + points[2][0]) / 2 - 5;\n textY = (points[1][1] + points[2][1]) / 2;\n textAlign = 'right';\n } else {\n textX = (points[0][0] + points[1][0] + points[2][0] + points[3][0]) / 4;\n textY = (points[0][1] + points[1][1] + points[2][1] + points[3][1]) / 4;\n textAlign = 'center';\n }\n\n linePoints = [[textX, textY], [textX, textY]];\n } else {\n var x1 = void 0;\n var y1 = void 0;\n var x2 = void 0;\n var y2 = void 0;\n var labelLineLen = labelLineModel.get('length');\n\n if (process.env.NODE_ENV !== 'production') {\n if (orient === 'vertical' && ['top', 'bottom'].indexOf(labelPosition) > -1) {\n labelPosition = 'left';\n console.warn('Position error: Funnel chart on vertical orient dose not support top and bottom.');\n }\n\n if (orient === 'horizontal' && ['left', 'right'].indexOf(labelPosition) > -1) {\n labelPosition = 'bottom';\n console.warn('Position error: Funnel chart on horizontal orient dose not support left and right.');\n }\n }\n\n if (labelPosition === 'left') {\n // Left side\n x1 = (points[3][0] + points[0][0]) / 2;\n y1 = (points[3][1] + points[0][1]) / 2;\n x2 = x1 - labelLineLen;\n textX = x2 - 5;\n textAlign = 'right';\n } else if (labelPosition === 'right') {\n // Right side\n x1 = (points[1][0] + points[2][0]) / 2;\n y1 = (points[1][1] + points[2][1]) / 2;\n x2 = x1 + labelLineLen;\n textX = x2 + 5;\n textAlign = 'left';\n } else if (labelPosition === 'top') {\n // Top side\n x1 = (points[3][0] + points[0][0]) / 2;\n y1 = (points[3][1] + points[0][1]) / 2;\n y2 = y1 - labelLineLen;\n textY = y2 - 5;\n textAlign = 'center';\n } else if (labelPosition === 'bottom') {\n // Bottom side\n x1 = (points[1][0] + points[2][0]) / 2;\n y1 = (points[1][1] + points[2][1]) / 2;\n y2 = y1 + labelLineLen;\n textY = y2 + 5;\n textAlign = 'center';\n } else if (labelPosition === 'rightTop') {\n // RightTop side\n x1 = orient === 'horizontal' ? points[3][0] : points[1][0];\n y1 = orient === 'horizontal' ? points[3][1] : points[1][1];\n\n if (orient === 'horizontal') {\n y2 = y1 - labelLineLen;\n textY = y2 - 5;\n textAlign = 'center';\n } else {\n x2 = x1 + labelLineLen;\n textX = x2 + 5;\n textAlign = 'top';\n }\n } else if (labelPosition === 'rightBottom') {\n // RightBottom side\n x1 = points[2][0];\n y1 = points[2][1];\n\n if (orient === 'horizontal') {\n y2 = y1 + labelLineLen;\n textY = y2 + 5;\n textAlign = 'center';\n } else {\n x2 = x1 + labelLineLen;\n textX = x2 + 5;\n textAlign = 'bottom';\n }\n } else if (labelPosition === 'leftTop') {\n // LeftTop side\n x1 = points[0][0];\n y1 = orient === 'horizontal' ? points[0][1] : points[1][1];\n\n if (orient === 'horizontal') {\n y2 = y1 - labelLineLen;\n textY = y2 - 5;\n textAlign = 'center';\n } else {\n x2 = x1 - labelLineLen;\n textX = x2 - 5;\n textAlign = 'right';\n }\n } else if (labelPosition === 'leftBottom') {\n // LeftBottom side\n x1 = orient === 'horizontal' ? points[1][0] : points[3][0];\n y1 = orient === 'horizontal' ? points[1][1] : points[2][1];\n\n if (orient === 'horizontal') {\n y2 = y1 + labelLineLen;\n textY = y2 + 5;\n textAlign = 'center';\n } else {\n x2 = x1 - labelLineLen;\n textX = x2 - 5;\n textAlign = 'right';\n }\n } else {\n // Right side or Bottom side\n x1 = (points[1][0] + points[2][0]) / 2;\n y1 = (points[1][1] + points[2][1]) / 2;\n\n if (orient === 'horizontal') {\n y2 = y1 + labelLineLen;\n textY = y2 + 5;\n textAlign = 'center';\n } else {\n x2 = x1 + labelLineLen;\n textX = x2 + 5;\n textAlign = 'left';\n }\n }\n\n if (orient === 'horizontal') {\n x2 = x1;\n textX = x2;\n } else {\n y2 = y1;\n textY = y2;\n }\n\n linePoints = [[x1, y1], [x2, y2]];\n }\n\n layout.label = {\n linePoints: linePoints,\n x: textX,\n y: textY,\n verticalAlign: 'middle',\n textAlign: textAlign,\n inside: isLabelInside\n };\n });\n}\n\nexport default function funnelLayout(ecModel, api) {\n ecModel.eachSeriesByType('funnel', function (seriesModel) {\n var data = seriesModel.getData();\n var valueDim = data.mapDimension('value');\n var sort = seriesModel.get('sort');\n var viewRect = getViewRect(seriesModel, api);\n var orient = seriesModel.get('orient');\n var viewWidth = viewRect.width;\n var viewHeight = viewRect.height;\n var indices = getSortedIndices(data, sort);\n var x = viewRect.x;\n var y = viewRect.y;\n var sizeExtent = orient === 'horizontal' ? [parsePercent(seriesModel.get('minSize'), viewHeight), parsePercent(seriesModel.get('maxSize'), viewHeight)] : [parsePercent(seriesModel.get('minSize'), viewWidth), parsePercent(seriesModel.get('maxSize'), viewWidth)];\n var dataExtent = data.getDataExtent(valueDim);\n var min = seriesModel.get('min');\n var max = seriesModel.get('max');\n\n if (min == null) {\n min = Math.min(dataExtent[0], 0);\n }\n\n if (max == null) {\n max = dataExtent[1];\n }\n\n var funnelAlign = seriesModel.get('funnelAlign');\n var gap = seriesModel.get('gap');\n var viewSize = orient === 'horizontal' ? viewWidth : viewHeight;\n var itemSize = (viewSize - gap * (data.count() - 1)) / data.count();\n\n var getLinePoints = function (idx, offset) {\n // End point index is data.count() and we assign it 0\n if (orient === 'horizontal') {\n var val_1 = data.get(valueDim, idx) || 0;\n var itemHeight = linearMap(val_1, [min, max], sizeExtent, true);\n var y0 = void 0;\n\n switch (funnelAlign) {\n case 'top':\n y0 = y;\n break;\n\n case 'center':\n y0 = y + (viewHeight - itemHeight) / 2;\n break;\n\n case 'bottom':\n y0 = y + (viewHeight - itemHeight);\n break;\n }\n\n return [[offset, y0], [offset, y0 + itemHeight]];\n }\n\n var val = data.get(valueDim, idx) || 0;\n var itemWidth = linearMap(val, [min, max], sizeExtent, true);\n var x0;\n\n switch (funnelAlign) {\n case 'left':\n x0 = x;\n break;\n\n case 'center':\n x0 = x + (viewWidth - itemWidth) / 2;\n break;\n\n case 'right':\n x0 = x + viewWidth - itemWidth;\n break;\n }\n\n return [[x0, offset], [x0 + itemWidth, offset]];\n };\n\n if (sort === 'ascending') {\n // From bottom to top\n itemSize = -itemSize;\n gap = -gap;\n\n if (orient === 'horizontal') {\n x += viewWidth;\n } else {\n y += viewHeight;\n }\n\n indices = indices.reverse();\n }\n\n for (var i = 0; i < indices.length; i++) {\n var idx = indices[i];\n var nextIdx = indices[i + 1];\n var itemModel = data.getItemModel(idx);\n\n if (orient === 'horizontal') {\n var width = itemModel.get(['itemStyle', 'width']);\n\n if (width == null) {\n width = itemSize;\n } else {\n width = parsePercent(width, viewWidth);\n\n if (sort === 'ascending') {\n width = -width;\n }\n }\n\n var start = getLinePoints(idx, x);\n var end = getLinePoints(nextIdx, x + width);\n x += width + gap;\n data.setItemLayout(idx, {\n points: start.concat(end.slice().reverse())\n });\n } else {\n var height = itemModel.get(['itemStyle', 'height']);\n\n if (height == null) {\n height = itemSize;\n } else {\n height = parsePercent(height, viewHeight);\n\n if (sort === 'ascending') {\n height = -height;\n }\n }\n\n var start = getLinePoints(idx, y);\n var end = getLinePoints(nextIdx, y + height);\n y += height + gap;\n data.setItemLayout(idx, {\n points: start.concat(end.slice().reverse())\n });\n }\n }\n\n labelLayout(data);\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport FunnelView from './FunnelView.js';\nimport FunnelSeriesModel from './FunnelSeries.js';\nimport funnelLayout from './funnelLayout.js';\nimport dataFilter from '../../processor/dataFilter.js';\nexport function install(registers) {\n registers.registerChartView(FunnelView);\n registers.registerSeriesModel(FunnelSeriesModel);\n registers.registerLayout(funnelLayout);\n registers.registerProcessor(dataFilter('funnel'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport createSeriesDataSimply from '../helper/createSeriesDataSimply.js';\nimport SeriesModel from '../../model/Series.js';\n\nvar GaugeSeriesModel =\n/** @class */\nfunction (_super) {\n __extends(GaugeSeriesModel, _super);\n\n function GaugeSeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = GaugeSeriesModel.type;\n _this.visualStyleAccessPath = 'itemStyle';\n return _this;\n }\n\n GaugeSeriesModel.prototype.getInitialData = function (option, ecModel) {\n return createSeriesDataSimply(this, ['value']);\n };\n\n GaugeSeriesModel.type = 'series.gauge';\n GaugeSeriesModel.defaultOption = {\n // zlevel: 0,\n z: 2,\n colorBy: 'data',\n // 默认全局居中\n center: ['50%', '50%'],\n legendHoverLink: true,\n radius: '75%',\n startAngle: 225,\n endAngle: -45,\n clockwise: true,\n // 最小值\n min: 0,\n // 最大值\n max: 100,\n // 分割段数,默认为10\n splitNumber: 10,\n // 坐标轴线\n axisLine: {\n // 默认显示,属性show控制显示与否\n show: true,\n roundCap: false,\n lineStyle: {\n color: [[1, '#E6EBF8']],\n width: 10\n }\n },\n // 坐标轴线\n progress: {\n // 默认显示,属性show控制显示与否\n show: false,\n overlap: true,\n width: 10,\n roundCap: false,\n clip: true\n },\n // 分隔线\n splitLine: {\n // 默认显示,属性show控制显示与否\n show: true,\n // 属性length控制线长\n length: 10,\n distance: 10,\n // 属性lineStyle(详见lineStyle)控制线条样式\n lineStyle: {\n color: '#63677A',\n width: 3,\n type: 'solid'\n }\n },\n // 坐标轴小标记\n axisTick: {\n // 属性show控制显示与否,默认不显示\n show: true,\n // 每份split细分多少段\n splitNumber: 5,\n // 属性length控制线长\n length: 6,\n distance: 10,\n // 属性lineStyle控制线条样式\n lineStyle: {\n color: '#63677A',\n width: 1,\n type: 'solid'\n }\n },\n axisLabel: {\n show: true,\n distance: 15,\n // formatter: null,\n color: '#464646',\n fontSize: 12,\n rotate: 0\n },\n pointer: {\n icon: null,\n offsetCenter: [0, 0],\n show: true,\n showAbove: true,\n length: '60%',\n width: 6,\n keepAspect: false\n },\n anchor: {\n show: false,\n showAbove: false,\n size: 6,\n icon: 'circle',\n offsetCenter: [0, 0],\n keepAspect: false,\n itemStyle: {\n color: '#fff',\n borderWidth: 0,\n borderColor: '#5470c6'\n }\n },\n title: {\n show: true,\n // x, y,单位px\n offsetCenter: [0, '20%'],\n // 其余属性默认使用全局文本样式,详见TEXTSTYLE\n color: '#464646',\n fontSize: 16,\n valueAnimation: false\n },\n detail: {\n show: true,\n backgroundColor: 'rgba(0,0,0,0)',\n borderWidth: 0,\n borderColor: '#ccc',\n width: 100,\n height: null,\n padding: [5, 10],\n // x, y,单位px\n offsetCenter: [0, '40%'],\n // formatter: null,\n // 其余属性默认使用全局文本样式,详见TEXTSTYLE\n color: '#464646',\n fontSize: 30,\n fontWeight: 'bold',\n lineHeight: 30,\n valueAnimation: false\n }\n };\n return GaugeSeriesModel;\n}(SeriesModel);\n\nexport default GaugeSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport PointerPath from './PointerPath.js';\nimport * as graphic from '../../util/graphic.js';\nimport { setStatesStylesFromModel, toggleHoverEmphasis } from '../../util/states.js';\nimport { createTextStyle, setLabelValueAnimation, animateLabelValue } from '../../label/labelStyle.js';\nimport ChartView from '../../view/Chart.js';\nimport { parsePercent, round, linearMap } from '../../util/number.js';\nimport Sausage from '../../util/shape/sausage.js';\nimport { createSymbol } from '../../util/symbol.js';\nimport ZRImage from 'zrender/lib/graphic/Image.js';\nimport { extend, isFunction, isString, isNumber, each } from 'zrender/lib/core/util.js';\nimport { setCommonECData } from '../../util/innerStore.js';\nimport { normalizeArcAngles } from 'zrender/lib/core/PathProxy.js';\n\nfunction parsePosition(seriesModel, api) {\n var center = seriesModel.get('center');\n var width = api.getWidth();\n var height = api.getHeight();\n var size = Math.min(width, height);\n var cx = parsePercent(center[0], api.getWidth());\n var cy = parsePercent(center[1], api.getHeight());\n var r = parsePercent(seriesModel.get('radius'), size / 2);\n return {\n cx: cx,\n cy: cy,\n r: r\n };\n}\n\nfunction formatLabel(value, labelFormatter) {\n var label = value == null ? '' : value + '';\n\n if (labelFormatter) {\n if (isString(labelFormatter)) {\n label = labelFormatter.replace('{value}', label);\n } else if (isFunction(labelFormatter)) {\n label = labelFormatter(value);\n }\n }\n\n return label;\n}\n\nvar GaugeView =\n/** @class */\nfunction (_super) {\n __extends(GaugeView, _super);\n\n function GaugeView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = GaugeView.type;\n return _this;\n }\n\n GaugeView.prototype.render = function (seriesModel, ecModel, api) {\n this.group.removeAll();\n var colorList = seriesModel.get(['axisLine', 'lineStyle', 'color']);\n var posInfo = parsePosition(seriesModel, api);\n\n this._renderMain(seriesModel, ecModel, api, colorList, posInfo);\n\n this._data = seriesModel.getData();\n };\n\n GaugeView.prototype.dispose = function () {};\n\n GaugeView.prototype._renderMain = function (seriesModel, ecModel, api, colorList, posInfo) {\n var group = this.group;\n var clockwise = seriesModel.get('clockwise');\n var startAngle = -seriesModel.get('startAngle') / 180 * Math.PI;\n var endAngle = -seriesModel.get('endAngle') / 180 * Math.PI;\n var axisLineModel = seriesModel.getModel('axisLine');\n var roundCap = axisLineModel.get('roundCap');\n var MainPath = roundCap ? Sausage : graphic.Sector;\n var showAxis = axisLineModel.get('show');\n var lineStyleModel = axisLineModel.getModel('lineStyle');\n var axisLineWidth = lineStyleModel.get('width');\n var angles = [startAngle, endAngle];\n normalizeArcAngles(angles, !clockwise);\n startAngle = angles[0];\n endAngle = angles[1];\n var angleRangeSpan = endAngle - startAngle;\n var prevEndAngle = startAngle;\n var sectors = [];\n\n for (var i = 0; showAxis && i < colorList.length; i++) {\n // Clamp\n var percent = Math.min(Math.max(colorList[i][0], 0), 1);\n endAngle = startAngle + angleRangeSpan * percent;\n var sector = new MainPath({\n shape: {\n startAngle: prevEndAngle,\n endAngle: endAngle,\n cx: posInfo.cx,\n cy: posInfo.cy,\n clockwise: clockwise,\n r0: posInfo.r - axisLineWidth,\n r: posInfo.r\n },\n silent: true\n });\n sector.setStyle({\n fill: colorList[i][1]\n });\n sector.setStyle(lineStyleModel.getLineStyle( // Because we use sector to simulate arc\n // so the properties for stroking are useless\n ['color', 'width']));\n sectors.push(sector);\n prevEndAngle = endAngle;\n }\n\n sectors.reverse();\n each(sectors, function (sector) {\n return group.add(sector);\n });\n\n var getColor = function (percent) {\n // Less than 0\n if (percent <= 0) {\n return colorList[0][1];\n }\n\n var i;\n\n for (i = 0; i < colorList.length; i++) {\n if (colorList[i][0] >= percent && (i === 0 ? 0 : colorList[i - 1][0]) < percent) {\n return colorList[i][1];\n }\n } // More than 1\n\n\n return colorList[i - 1][1];\n };\n\n this._renderTicks(seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise, axisLineWidth);\n\n this._renderTitleAndDetail(seriesModel, ecModel, api, getColor, posInfo);\n\n this._renderAnchor(seriesModel, posInfo);\n\n this._renderPointer(seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise, axisLineWidth);\n };\n\n GaugeView.prototype._renderTicks = function (seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise, axisLineWidth) {\n var group = this.group;\n var cx = posInfo.cx;\n var cy = posInfo.cy;\n var r = posInfo.r;\n var minVal = +seriesModel.get('min');\n var maxVal = +seriesModel.get('max');\n var splitLineModel = seriesModel.getModel('splitLine');\n var tickModel = seriesModel.getModel('axisTick');\n var labelModel = seriesModel.getModel('axisLabel');\n var splitNumber = seriesModel.get('splitNumber');\n var subSplitNumber = tickModel.get('splitNumber');\n var splitLineLen = parsePercent(splitLineModel.get('length'), r);\n var tickLen = parsePercent(tickModel.get('length'), r);\n var angle = startAngle;\n var step = (endAngle - startAngle) / splitNumber;\n var subStep = step / subSplitNumber;\n var splitLineStyle = splitLineModel.getModel('lineStyle').getLineStyle();\n var tickLineStyle = tickModel.getModel('lineStyle').getLineStyle();\n var splitLineDistance = splitLineModel.get('distance');\n var unitX;\n var unitY;\n\n for (var i = 0; i <= splitNumber; i++) {\n unitX = Math.cos(angle);\n unitY = Math.sin(angle); // Split line\n\n if (splitLineModel.get('show')) {\n var distance = splitLineDistance ? splitLineDistance + axisLineWidth : axisLineWidth;\n var splitLine = new graphic.Line({\n shape: {\n x1: unitX * (r - distance) + cx,\n y1: unitY * (r - distance) + cy,\n x2: unitX * (r - splitLineLen - distance) + cx,\n y2: unitY * (r - splitLineLen - distance) + cy\n },\n style: splitLineStyle,\n silent: true\n });\n\n if (splitLineStyle.stroke === 'auto') {\n splitLine.setStyle({\n stroke: getColor(i / splitNumber)\n });\n }\n\n group.add(splitLine);\n } // Label\n\n\n if (labelModel.get('show')) {\n var distance = labelModel.get('distance') + splitLineDistance;\n var label = formatLabel(round(i / splitNumber * (maxVal - minVal) + minVal), labelModel.get('formatter'));\n var autoColor = getColor(i / splitNumber);\n var textStyleX = unitX * (r - splitLineLen - distance) + cx;\n var textStyleY = unitY * (r - splitLineLen - distance) + cy;\n var rotateType = labelModel.get('rotate');\n var rotate = 0;\n\n if (rotateType === 'radial') {\n rotate = -angle + 2 * Math.PI;\n\n if (rotate > Math.PI / 2) {\n rotate += Math.PI;\n }\n } else if (rotateType === 'tangential') {\n rotate = -angle - Math.PI / 2;\n } else if (isNumber(rotateType)) {\n rotate = rotateType * Math.PI / 180;\n }\n\n if (rotate === 0) {\n group.add(new graphic.Text({\n style: createTextStyle(labelModel, {\n text: label,\n x: textStyleX,\n y: textStyleY,\n verticalAlign: unitY < -0.8 ? 'top' : unitY > 0.8 ? 'bottom' : 'middle',\n align: unitX < -0.4 ? 'left' : unitX > 0.4 ? 'right' : 'center'\n }, {\n inheritColor: autoColor\n }),\n silent: true\n }));\n } else {\n group.add(new graphic.Text({\n style: createTextStyle(labelModel, {\n text: label,\n x: textStyleX,\n y: textStyleY,\n verticalAlign: 'middle',\n align: 'center'\n }, {\n inheritColor: autoColor\n }),\n silent: true,\n originX: textStyleX,\n originY: textStyleY,\n rotation: rotate\n }));\n }\n } // Axis tick\n\n\n if (tickModel.get('show') && i !== splitNumber) {\n var distance = tickModel.get('distance');\n distance = distance ? distance + axisLineWidth : axisLineWidth;\n\n for (var j = 0; j <= subSplitNumber; j++) {\n unitX = Math.cos(angle);\n unitY = Math.sin(angle);\n var tickLine = new graphic.Line({\n shape: {\n x1: unitX * (r - distance) + cx,\n y1: unitY * (r - distance) + cy,\n x2: unitX * (r - tickLen - distance) + cx,\n y2: unitY * (r - tickLen - distance) + cy\n },\n silent: true,\n style: tickLineStyle\n });\n\n if (tickLineStyle.stroke === 'auto') {\n tickLine.setStyle({\n stroke: getColor((i + j / subSplitNumber) / splitNumber)\n });\n }\n\n group.add(tickLine);\n angle += subStep;\n }\n\n angle -= subStep;\n } else {\n angle += step;\n }\n }\n };\n\n GaugeView.prototype._renderPointer = function (seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise, axisLineWidth) {\n var group = this.group;\n var oldData = this._data;\n var oldProgressData = this._progressEls;\n var progressList = [];\n var showPointer = seriesModel.get(['pointer', 'show']);\n var progressModel = seriesModel.getModel('progress');\n var showProgress = progressModel.get('show');\n var data = seriesModel.getData();\n var valueDim = data.mapDimension('value');\n var minVal = +seriesModel.get('min');\n var maxVal = +seriesModel.get('max');\n var valueExtent = [minVal, maxVal];\n var angleExtent = [startAngle, endAngle];\n\n function createPointer(idx, angle) {\n var itemModel = data.getItemModel(idx);\n var pointerModel = itemModel.getModel('pointer');\n var pointerWidth = parsePercent(pointerModel.get('width'), posInfo.r);\n var pointerLength = parsePercent(pointerModel.get('length'), posInfo.r);\n var pointerStr = seriesModel.get(['pointer', 'icon']);\n var pointerOffset = pointerModel.get('offsetCenter');\n var pointerOffsetX = parsePercent(pointerOffset[0], posInfo.r);\n var pointerOffsetY = parsePercent(pointerOffset[1], posInfo.r);\n var pointerKeepAspect = pointerModel.get('keepAspect');\n var pointer; // not exist icon type will be set 'rect'\n\n if (pointerStr) {\n pointer = createSymbol(pointerStr, pointerOffsetX - pointerWidth / 2, pointerOffsetY - pointerLength, pointerWidth, pointerLength, null, pointerKeepAspect);\n } else {\n pointer = new PointerPath({\n shape: {\n angle: -Math.PI / 2,\n width: pointerWidth,\n r: pointerLength,\n x: pointerOffsetX,\n y: pointerOffsetY\n }\n });\n }\n\n pointer.rotation = -(angle + Math.PI / 2);\n pointer.x = posInfo.cx;\n pointer.y = posInfo.cy;\n return pointer;\n }\n\n function createProgress(idx, endAngle) {\n var roundCap = progressModel.get('roundCap');\n var ProgressPath = roundCap ? Sausage : graphic.Sector;\n var isOverlap = progressModel.get('overlap');\n var progressWidth = isOverlap ? progressModel.get('width') : axisLineWidth / data.count();\n var r0 = isOverlap ? posInfo.r - progressWidth : posInfo.r - (idx + 1) * progressWidth;\n var r = isOverlap ? posInfo.r : posInfo.r - idx * progressWidth;\n var progress = new ProgressPath({\n shape: {\n startAngle: startAngle,\n endAngle: endAngle,\n cx: posInfo.cx,\n cy: posInfo.cy,\n clockwise: clockwise,\n r0: r0,\n r: r\n }\n });\n isOverlap && (progress.z2 = maxVal - data.get(valueDim, idx) % maxVal);\n return progress;\n }\n\n if (showProgress || showPointer) {\n data.diff(oldData).add(function (idx) {\n var val = data.get(valueDim, idx);\n\n if (showPointer) {\n var pointer = createPointer(idx, startAngle); // TODO hide pointer on NaN value?\n\n graphic.initProps(pointer, {\n rotation: -((isNaN(+val) ? angleExtent[0] : linearMap(val, valueExtent, angleExtent, true)) + Math.PI / 2)\n }, seriesModel);\n group.add(pointer);\n data.setItemGraphicEl(idx, pointer);\n }\n\n if (showProgress) {\n var progress = createProgress(idx, startAngle);\n var isClip = progressModel.get('clip');\n graphic.initProps(progress, {\n shape: {\n endAngle: linearMap(val, valueExtent, angleExtent, isClip)\n }\n }, seriesModel);\n group.add(progress); // Add data index and series index for indexing the data by element\n // Useful in tooltip\n\n setCommonECData(seriesModel.seriesIndex, data.dataType, idx, progress);\n progressList[idx] = progress;\n }\n }).update(function (newIdx, oldIdx) {\n var val = data.get(valueDim, newIdx);\n\n if (showPointer) {\n var previousPointer = oldData.getItemGraphicEl(oldIdx);\n var previousRotate = previousPointer ? previousPointer.rotation : startAngle;\n var pointer = createPointer(newIdx, previousRotate);\n pointer.rotation = previousRotate;\n graphic.updateProps(pointer, {\n rotation: -((isNaN(+val) ? angleExtent[0] : linearMap(val, valueExtent, angleExtent, true)) + Math.PI / 2)\n }, seriesModel);\n group.add(pointer);\n data.setItemGraphicEl(newIdx, pointer);\n }\n\n if (showProgress) {\n var previousProgress = oldProgressData[oldIdx];\n var previousEndAngle = previousProgress ? previousProgress.shape.endAngle : startAngle;\n var progress = createProgress(newIdx, previousEndAngle);\n var isClip = progressModel.get('clip');\n graphic.updateProps(progress, {\n shape: {\n endAngle: linearMap(val, valueExtent, angleExtent, isClip)\n }\n }, seriesModel);\n group.add(progress); // Add data index and series index for indexing the data by element\n // Useful in tooltip\n\n setCommonECData(seriesModel.seriesIndex, data.dataType, newIdx, progress);\n progressList[newIdx] = progress;\n }\n }).execute();\n data.each(function (idx) {\n var itemModel = data.getItemModel(idx);\n var emphasisModel = itemModel.getModel('emphasis');\n var focus = emphasisModel.get('focus');\n var blurScope = emphasisModel.get('blurScope');\n var emphasisDisabled = emphasisModel.get('disabled');\n\n if (showPointer) {\n var pointer = data.getItemGraphicEl(idx);\n var symbolStyle = data.getItemVisual(idx, 'style');\n var visualColor = symbolStyle.fill;\n\n if (pointer instanceof ZRImage) {\n var pathStyle = pointer.style;\n pointer.useStyle(extend({\n image: pathStyle.image,\n x: pathStyle.x,\n y: pathStyle.y,\n width: pathStyle.width,\n height: pathStyle.height\n }, symbolStyle));\n } else {\n pointer.useStyle(symbolStyle);\n pointer.type !== 'pointer' && pointer.setColor(visualColor);\n }\n\n pointer.setStyle(itemModel.getModel(['pointer', 'itemStyle']).getItemStyle());\n\n if (pointer.style.fill === 'auto') {\n pointer.setStyle('fill', getColor(linearMap(data.get(valueDim, idx), valueExtent, [0, 1], true)));\n }\n\n pointer.z2EmphasisLift = 0;\n setStatesStylesFromModel(pointer, itemModel);\n toggleHoverEmphasis(pointer, focus, blurScope, emphasisDisabled);\n }\n\n if (showProgress) {\n var progress = progressList[idx];\n progress.useStyle(data.getItemVisual(idx, 'style'));\n progress.setStyle(itemModel.getModel(['progress', 'itemStyle']).getItemStyle());\n progress.z2EmphasisLift = 0;\n setStatesStylesFromModel(progress, itemModel);\n toggleHoverEmphasis(progress, focus, blurScope, emphasisDisabled);\n }\n });\n this._progressEls = progressList;\n }\n };\n\n GaugeView.prototype._renderAnchor = function (seriesModel, posInfo) {\n var anchorModel = seriesModel.getModel('anchor');\n var showAnchor = anchorModel.get('show');\n\n if (showAnchor) {\n var anchorSize = anchorModel.get('size');\n var anchorType = anchorModel.get('icon');\n var offsetCenter = anchorModel.get('offsetCenter');\n var anchorKeepAspect = anchorModel.get('keepAspect');\n var anchor = createSymbol(anchorType, posInfo.cx - anchorSize / 2 + parsePercent(offsetCenter[0], posInfo.r), posInfo.cy - anchorSize / 2 + parsePercent(offsetCenter[1], posInfo.r), anchorSize, anchorSize, null, anchorKeepAspect);\n anchor.z2 = anchorModel.get('showAbove') ? 1 : 0;\n anchor.setStyle(anchorModel.getModel('itemStyle').getItemStyle());\n this.group.add(anchor);\n }\n };\n\n GaugeView.prototype._renderTitleAndDetail = function (seriesModel, ecModel, api, getColor, posInfo) {\n var _this = this;\n\n var data = seriesModel.getData();\n var valueDim = data.mapDimension('value');\n var minVal = +seriesModel.get('min');\n var maxVal = +seriesModel.get('max');\n var contentGroup = new graphic.Group();\n var newTitleEls = [];\n var newDetailEls = [];\n var hasAnimation = seriesModel.isAnimationEnabled();\n var showPointerAbove = seriesModel.get(['pointer', 'showAbove']);\n data.diff(this._data).add(function (idx) {\n newTitleEls[idx] = new graphic.Text({\n silent: true\n });\n newDetailEls[idx] = new graphic.Text({\n silent: true\n });\n }).update(function (idx, oldIdx) {\n newTitleEls[idx] = _this._titleEls[oldIdx];\n newDetailEls[idx] = _this._detailEls[oldIdx];\n }).execute();\n data.each(function (idx) {\n var itemModel = data.getItemModel(idx);\n var value = data.get(valueDim, idx);\n var itemGroup = new graphic.Group();\n var autoColor = getColor(linearMap(value, [minVal, maxVal], [0, 1], true));\n var itemTitleModel = itemModel.getModel('title');\n\n if (itemTitleModel.get('show')) {\n var titleOffsetCenter = itemTitleModel.get('offsetCenter');\n var titleX = posInfo.cx + parsePercent(titleOffsetCenter[0], posInfo.r);\n var titleY = posInfo.cy + parsePercent(titleOffsetCenter[1], posInfo.r);\n var labelEl = newTitleEls[idx];\n labelEl.attr({\n z2: showPointerAbove ? 0 : 2,\n style: createTextStyle(itemTitleModel, {\n x: titleX,\n y: titleY,\n text: data.getName(idx),\n align: 'center',\n verticalAlign: 'middle'\n }, {\n inheritColor: autoColor\n })\n });\n itemGroup.add(labelEl);\n }\n\n var itemDetailModel = itemModel.getModel('detail');\n\n if (itemDetailModel.get('show')) {\n var detailOffsetCenter = itemDetailModel.get('offsetCenter');\n var detailX = posInfo.cx + parsePercent(detailOffsetCenter[0], posInfo.r);\n var detailY = posInfo.cy + parsePercent(detailOffsetCenter[1], posInfo.r);\n var width = parsePercent(itemDetailModel.get('width'), posInfo.r);\n var height = parsePercent(itemDetailModel.get('height'), posInfo.r);\n var detailColor = seriesModel.get(['progress', 'show']) ? data.getItemVisual(idx, 'style').fill : autoColor;\n var labelEl = newDetailEls[idx];\n var formatter_1 = itemDetailModel.get('formatter');\n labelEl.attr({\n z2: showPointerAbove ? 0 : 2,\n style: createTextStyle(itemDetailModel, {\n x: detailX,\n y: detailY,\n text: formatLabel(value, formatter_1),\n width: isNaN(width) ? null : width,\n height: isNaN(height) ? null : height,\n align: 'center',\n verticalAlign: 'middle'\n }, {\n inheritColor: detailColor\n })\n });\n setLabelValueAnimation(labelEl, {\n normal: itemDetailModel\n }, value, function (value) {\n return formatLabel(value, formatter_1);\n });\n hasAnimation && animateLabelValue(labelEl, idx, data, seriesModel, {\n getFormattedLabel: function (labelDataIndex, status, dataType, labelDimIndex, fmt, extendParams) {\n return formatLabel(extendParams ? extendParams.interpolatedValue : value, formatter_1);\n }\n });\n itemGroup.add(labelEl);\n }\n\n contentGroup.add(itemGroup);\n });\n this.group.add(contentGroup);\n this._titleEls = newTitleEls;\n this._detailEls = newDetailEls;\n };\n\n GaugeView.type = 'gauge';\n return GaugeView;\n}(ChartView);\n\nexport default GaugeView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport Path from 'zrender/lib/graphic/Path.js';\n\nvar PointerShape =\n/** @class */\nfunction () {\n function PointerShape() {\n this.angle = 0;\n this.width = 10;\n this.r = 10;\n this.x = 0;\n this.y = 0;\n }\n\n return PointerShape;\n}();\n\nvar PointerPath =\n/** @class */\nfunction (_super) {\n __extends(PointerPath, _super);\n\n function PointerPath(opts) {\n var _this = _super.call(this, opts) || this;\n\n _this.type = 'pointer';\n return _this;\n }\n\n PointerPath.prototype.getDefaultShape = function () {\n return new PointerShape();\n };\n\n PointerPath.prototype.buildPath = function (ctx, shape) {\n var mathCos = Math.cos;\n var mathSin = Math.sin;\n var r = shape.r;\n var width = shape.width;\n var angle = shape.angle;\n var x = shape.x - mathCos(angle) * width * (width >= r / 3 ? 1 : 2);\n var y = shape.y - mathSin(angle) * width * (width >= r / 3 ? 1 : 2);\n angle = shape.angle - Math.PI / 2;\n ctx.moveTo(x, y);\n ctx.lineTo(shape.x + mathCos(angle) * width, shape.y + mathSin(angle) * width);\n ctx.lineTo(shape.x + mathCos(shape.angle) * r, shape.y + mathSin(shape.angle) * r);\n ctx.lineTo(shape.x - mathCos(angle) * width, shape.y - mathSin(angle) * width);\n ctx.lineTo(x, y);\n };\n\n return PointerPath;\n}(Path);\n\nexport default PointerPath;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport GaugeView from './GaugeView.js';\nimport GaugeSeriesModel from './GaugeSeries.js';\nexport function install(registers) {\n registers.registerChartView(GaugeView);\n registers.registerSeriesModel(GaugeSeriesModel);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport SeriesData from '../../data/SeriesData.js';\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { defaultEmphasis } from '../../util/model.js';\nimport Model from '../../model/Model.js';\nimport createGraphFromNodeEdge from '../helper/createGraphFromNodeEdge.js';\nimport LegendVisualProvider from '../../visual/LegendVisualProvider.js';\nimport SeriesModel from '../../model/Series.js';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup.js';\nimport { defaultSeriesFormatTooltip } from '../../component/tooltip/seriesFormatTooltip.js';\nimport { initCurvenessList, createEdgeMapForCurveness } from '../helper/multipleGraphEdgeHelper.js';\n\nvar GraphSeriesModel =\n/** @class */\nfunction (_super) {\n __extends(GraphSeriesModel, _super);\n\n function GraphSeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = GraphSeriesModel.type;\n _this.hasSymbolVisual = true;\n return _this;\n }\n\n GraphSeriesModel.prototype.init = function (option) {\n _super.prototype.init.apply(this, arguments);\n\n var self = this;\n\n function getCategoriesData() {\n return self._categoriesData;\n } // Provide data for legend select\n\n\n this.legendVisualProvider = new LegendVisualProvider(getCategoriesData, getCategoriesData);\n this.fillDataTextStyle(option.edges || option.links);\n\n this._updateCategoriesData();\n };\n\n GraphSeriesModel.prototype.mergeOption = function (option) {\n _super.prototype.mergeOption.apply(this, arguments);\n\n this.fillDataTextStyle(option.edges || option.links);\n\n this._updateCategoriesData();\n };\n\n GraphSeriesModel.prototype.mergeDefaultAndTheme = function (option) {\n _super.prototype.mergeDefaultAndTheme.apply(this, arguments);\n\n defaultEmphasis(option, 'edgeLabel', ['show']);\n };\n\n GraphSeriesModel.prototype.getInitialData = function (option, ecModel) {\n var edges = option.edges || option.links || [];\n var nodes = option.data || option.nodes || [];\n var self = this;\n\n if (nodes && edges) {\n // auto curveness\n initCurvenessList(this);\n var graph = createGraphFromNodeEdge(nodes, edges, this, true, beforeLink);\n zrUtil.each(graph.edges, function (edge) {\n createEdgeMapForCurveness(edge.node1, edge.node2, this, edge.dataIndex);\n }, this);\n return graph.data;\n }\n\n function beforeLink(nodeData, edgeData) {\n // Overwrite nodeData.getItemModel to\n nodeData.wrapMethod('getItemModel', function (model) {\n var categoriesModels = self._categoriesModels;\n var categoryIdx = model.getShallow('category');\n var categoryModel = categoriesModels[categoryIdx];\n\n if (categoryModel) {\n categoryModel.parentModel = model.parentModel;\n model.parentModel = categoryModel;\n }\n\n return model;\n }); // TODO Inherit resolveParentPath by default in Model#getModel?\n\n var oldGetModel = Model.prototype.getModel;\n\n function newGetModel(path, parentModel) {\n var model = oldGetModel.call(this, path, parentModel);\n model.resolveParentPath = resolveParentPath;\n return model;\n }\n\n edgeData.wrapMethod('getItemModel', function (model) {\n model.resolveParentPath = resolveParentPath;\n model.getModel = newGetModel;\n return model;\n });\n\n function resolveParentPath(pathArr) {\n if (pathArr && (pathArr[0] === 'label' || pathArr[1] === 'label')) {\n var newPathArr = pathArr.slice();\n\n if (pathArr[0] === 'label') {\n newPathArr[0] = 'edgeLabel';\n } else if (pathArr[1] === 'label') {\n newPathArr[1] = 'edgeLabel';\n }\n\n return newPathArr;\n }\n\n return pathArr;\n }\n }\n };\n\n GraphSeriesModel.prototype.getGraph = function () {\n return this.getData().graph;\n };\n\n GraphSeriesModel.prototype.getEdgeData = function () {\n return this.getGraph().edgeData;\n };\n\n GraphSeriesModel.prototype.getCategoriesData = function () {\n return this._categoriesData;\n };\n\n GraphSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n if (dataType === 'edge') {\n var nodeData = this.getData();\n var params = this.getDataParams(dataIndex, dataType);\n var edge = nodeData.graph.getEdgeByIndex(dataIndex);\n var sourceName = nodeData.getName(edge.node1.dataIndex);\n var targetName = nodeData.getName(edge.node2.dataIndex);\n var nameArr = [];\n sourceName != null && nameArr.push(sourceName);\n targetName != null && nameArr.push(targetName);\n return createTooltipMarkup('nameValue', {\n name: nameArr.join(' > '),\n value: params.value,\n noValue: params.value == null\n });\n } // dataType === 'node' or empty\n\n\n var nodeMarkup = defaultSeriesFormatTooltip({\n series: this,\n dataIndex: dataIndex,\n multipleSeries: multipleSeries\n });\n return nodeMarkup;\n };\n\n GraphSeriesModel.prototype._updateCategoriesData = function () {\n var categories = zrUtil.map(this.option.categories || [], function (category) {\n // Data must has value\n return category.value != null ? category : zrUtil.extend({\n value: 0\n }, category);\n });\n var categoriesData = new SeriesData(['value'], this);\n categoriesData.initData(categories);\n this._categoriesData = categoriesData;\n this._categoriesModels = categoriesData.mapArray(function (idx) {\n return categoriesData.getItemModel(idx);\n });\n };\n\n GraphSeriesModel.prototype.setZoom = function (zoom) {\n this.option.zoom = zoom;\n };\n\n GraphSeriesModel.prototype.setCenter = function (center) {\n this.option.center = center;\n };\n\n GraphSeriesModel.prototype.isAnimationEnabled = function () {\n return _super.prototype.isAnimationEnabled.call(this) // Not enable animation when do force layout\n && !(this.get('layout') === 'force' && this.get(['force', 'layoutAnimation']));\n };\n\n GraphSeriesModel.type = 'series.graph';\n GraphSeriesModel.dependencies = ['grid', 'polar', 'geo', 'singleAxis', 'calendar'];\n GraphSeriesModel.defaultOption = {\n // zlevel: 0,\n z: 2,\n coordinateSystem: 'view',\n // Default option for all coordinate systems\n // xAxisIndex: 0,\n // yAxisIndex: 0,\n // polarIndex: 0,\n // geoIndex: 0,\n legendHoverLink: true,\n layout: null,\n // Configuration of circular layout\n circular: {\n rotateLabel: false\n },\n // Configuration of force directed layout\n force: {\n initLayout: null,\n // Node repulsion. Can be an array to represent range.\n repulsion: [0, 50],\n gravity: 0.1,\n // Initial friction\n friction: 0.6,\n // Edge length. Can be an array to represent range.\n edgeLength: 30,\n layoutAnimation: true\n },\n left: 'center',\n top: 'center',\n // right: null,\n // bottom: null,\n // width: '80%',\n // height: '80%',\n symbol: 'circle',\n symbolSize: 10,\n edgeSymbol: ['none', 'none'],\n edgeSymbolSize: 10,\n edgeLabel: {\n position: 'middle',\n distance: 5\n },\n draggable: false,\n roam: false,\n // Default on center of graph\n center: null,\n zoom: 1,\n // Symbol size scale ratio in roam\n nodeScaleRatio: 0.6,\n // cursor: null,\n // categories: [],\n // data: []\n // Or\n // nodes: []\n //\n // links: []\n // Or\n // edges: []\n label: {\n show: false,\n formatter: '{b}'\n },\n itemStyle: {},\n lineStyle: {\n color: '#aaa',\n width: 1,\n opacity: 0.5\n },\n emphasis: {\n scale: true,\n label: {\n show: true\n }\n },\n select: {\n itemStyle: {\n borderColor: '#212121'\n }\n }\n };\n return GraphSeriesModel;\n}(SeriesModel);\n\nexport default GraphSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport SymbolDraw from '../helper/SymbolDraw.js';\nimport LineDraw from '../helper/LineDraw.js';\nimport RoamController from '../../component/helper/RoamController.js';\nimport * as roamHelper from '../../component/helper/roamHelper.js';\nimport { onIrrelevantElement } from '../../component/helper/cursorHelper.js';\nimport * as graphic from '../../util/graphic.js';\nimport adjustEdge from './adjustEdge.js';\nimport { getNodeGlobalScale } from './graphHelper.js';\nimport ChartView from '../../view/Chart.js';\nimport { getECData } from '../../util/innerStore.js';\nimport { simpleLayoutEdge } from './simpleLayoutHelper.js';\nimport { circularLayout, rotateNodeLabel } from './circularLayoutHelper.js';\n\nfunction isViewCoordSys(coordSys) {\n return coordSys.type === 'view';\n}\n\nvar GraphView =\n/** @class */\nfunction (_super) {\n __extends(GraphView, _super);\n\n function GraphView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = GraphView.type;\n return _this;\n }\n\n GraphView.prototype.init = function (ecModel, api) {\n var symbolDraw = new SymbolDraw();\n var lineDraw = new LineDraw();\n var group = this.group;\n this._controller = new RoamController(api.getZr());\n this._controllerHost = {\n target: group\n };\n group.add(symbolDraw.group);\n group.add(lineDraw.group);\n this._symbolDraw = symbolDraw;\n this._lineDraw = lineDraw;\n this._firstRender = true;\n };\n\n GraphView.prototype.render = function (seriesModel, ecModel, api) {\n var _this = this;\n\n var coordSys = seriesModel.coordinateSystem;\n this._model = seriesModel;\n var symbolDraw = this._symbolDraw;\n var lineDraw = this._lineDraw;\n var group = this.group;\n\n if (isViewCoordSys(coordSys)) {\n var groupNewProp = {\n x: coordSys.x,\n y: coordSys.y,\n scaleX: coordSys.scaleX,\n scaleY: coordSys.scaleY\n };\n\n if (this._firstRender) {\n group.attr(groupNewProp);\n } else {\n graphic.updateProps(group, groupNewProp, seriesModel);\n }\n } // Fix edge contact point with node\n\n\n adjustEdge(seriesModel.getGraph(), getNodeGlobalScale(seriesModel));\n var data = seriesModel.getData();\n symbolDraw.updateData(data);\n var edgeData = seriesModel.getEdgeData(); // TODO: TYPE\n\n lineDraw.updateData(edgeData);\n\n this._updateNodeAndLinkScale();\n\n this._updateController(seriesModel, ecModel, api);\n\n clearTimeout(this._layoutTimeout);\n var forceLayout = seriesModel.forceLayout;\n var layoutAnimation = seriesModel.get(['force', 'layoutAnimation']);\n\n if (forceLayout) {\n this._startForceLayoutIteration(forceLayout, layoutAnimation);\n }\n\n var layout = seriesModel.get('layout');\n data.graph.eachNode(function (node) {\n var idx = node.dataIndex;\n var el = node.getGraphicEl();\n var itemModel = node.getModel();\n\n if (!el) {\n return;\n } // Update draggable\n\n\n el.off('drag').off('dragend');\n var draggable = itemModel.get('draggable');\n\n if (draggable) {\n el.on('drag', function (e) {\n switch (layout) {\n case 'force':\n forceLayout.warmUp();\n !_this._layouting && _this._startForceLayoutIteration(forceLayout, layoutAnimation);\n forceLayout.setFixed(idx); // Write position back to layout\n\n data.setItemLayout(idx, [el.x, el.y]);\n break;\n\n case 'circular':\n data.setItemLayout(idx, [el.x, el.y]); // mark node fixed\n\n node.setLayout({\n fixed: true\n }, true); // recalculate circular layout\n\n circularLayout(seriesModel, 'symbolSize', node, [e.offsetX, e.offsetY]);\n\n _this.updateLayout(seriesModel);\n\n break;\n\n case 'none':\n default:\n data.setItemLayout(idx, [el.x, el.y]); // update edge\n\n simpleLayoutEdge(seriesModel.getGraph(), seriesModel);\n\n _this.updateLayout(seriesModel);\n\n break;\n }\n }).on('dragend', function () {\n if (forceLayout) {\n forceLayout.setUnfixed(idx);\n }\n });\n }\n\n el.setDraggable(draggable, !!itemModel.get('cursor'));\n var focus = itemModel.get(['emphasis', 'focus']);\n\n if (focus === 'adjacency') {\n getECData(el).focus = node.getAdjacentDataIndices();\n }\n });\n data.graph.eachEdge(function (edge) {\n var el = edge.getGraphicEl();\n var focus = edge.getModel().get(['emphasis', 'focus']);\n\n if (!el) {\n return;\n }\n\n if (focus === 'adjacency') {\n getECData(el).focus = {\n edge: [edge.dataIndex],\n node: [edge.node1.dataIndex, edge.node2.dataIndex]\n };\n }\n });\n var circularRotateLabel = seriesModel.get('layout') === 'circular' && seriesModel.get(['circular', 'rotateLabel']);\n var cx = data.getLayout('cx');\n var cy = data.getLayout('cy');\n data.graph.eachNode(function (node) {\n rotateNodeLabel(node, circularRotateLabel, cx, cy);\n });\n this._firstRender = false;\n };\n\n GraphView.prototype.dispose = function () {\n this._controller && this._controller.dispose();\n this._controllerHost = null;\n };\n\n GraphView.prototype._startForceLayoutIteration = function (forceLayout, layoutAnimation) {\n var self = this;\n\n (function step() {\n forceLayout.step(function (stopped) {\n self.updateLayout(self._model);\n (self._layouting = !stopped) && (layoutAnimation ? self._layoutTimeout = setTimeout(step, 16) : step());\n });\n })();\n };\n\n GraphView.prototype._updateController = function (seriesModel, ecModel, api) {\n var _this = this;\n\n var controller = this._controller;\n var controllerHost = this._controllerHost;\n var group = this.group;\n controller.setPointerChecker(function (e, x, y) {\n var rect = group.getBoundingRect();\n rect.applyTransform(group.transform);\n return rect.contain(x, y) && !onIrrelevantElement(e, api, seriesModel);\n });\n\n if (!isViewCoordSys(seriesModel.coordinateSystem)) {\n controller.disable();\n return;\n }\n\n controller.enable(seriesModel.get('roam'));\n controllerHost.zoomLimit = seriesModel.get('scaleLimit');\n controllerHost.zoom = seriesModel.coordinateSystem.getZoom();\n controller.off('pan').off('zoom').on('pan', function (e) {\n roamHelper.updateViewOnPan(controllerHost, e.dx, e.dy);\n api.dispatchAction({\n seriesId: seriesModel.id,\n type: 'graphRoam',\n dx: e.dx,\n dy: e.dy\n });\n }).on('zoom', function (e) {\n roamHelper.updateViewOnZoom(controllerHost, e.scale, e.originX, e.originY);\n api.dispatchAction({\n seriesId: seriesModel.id,\n type: 'graphRoam',\n zoom: e.scale,\n originX: e.originX,\n originY: e.originY\n });\n\n _this._updateNodeAndLinkScale();\n\n adjustEdge(seriesModel.getGraph(), getNodeGlobalScale(seriesModel));\n\n _this._lineDraw.updateLayout(); // Only update label layout on zoom\n\n\n api.updateLabelLayout();\n });\n };\n\n GraphView.prototype._updateNodeAndLinkScale = function () {\n var seriesModel = this._model;\n var data = seriesModel.getData();\n var nodeScale = getNodeGlobalScale(seriesModel);\n data.eachItemGraphicEl(function (el, idx) {\n el && el.setSymbolScale(nodeScale);\n });\n };\n\n GraphView.prototype.updateLayout = function (seriesModel) {\n adjustEdge(seriesModel.getGraph(), getNodeGlobalScale(seriesModel));\n\n this._symbolDraw.updateLayout();\n\n this._lineDraw.updateLayout();\n };\n\n GraphView.prototype.remove = function (ecModel, api) {\n this._symbolDraw && this._symbolDraw.remove();\n this._lineDraw && this._lineDraw.remove();\n };\n\n GraphView.type = 'graph';\n return GraphView;\n}(ChartView);\n\nexport default GraphView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as curveTool from 'zrender/lib/core/curve.js';\nimport * as vec2 from 'zrender/lib/core/vector.js';\nimport { getSymbolSize } from './graphHelper.js';\nvar v1 = [];\nvar v2 = [];\nvar v3 = [];\nvar quadraticAt = curveTool.quadraticAt;\nvar v2DistSquare = vec2.distSquare;\nvar mathAbs = Math.abs;\n\nfunction intersectCurveCircle(curvePoints, center, radius) {\n var p0 = curvePoints[0];\n var p1 = curvePoints[1];\n var p2 = curvePoints[2];\n var d = Infinity;\n var t;\n var radiusSquare = radius * radius;\n var interval = 0.1;\n\n for (var _t = 0.1; _t <= 0.9; _t += 0.1) {\n v1[0] = quadraticAt(p0[0], p1[0], p2[0], _t);\n v1[1] = quadraticAt(p0[1], p1[1], p2[1], _t);\n var diff = mathAbs(v2DistSquare(v1, center) - radiusSquare);\n\n if (diff < d) {\n d = diff;\n t = _t;\n }\n } // Assume the segment is monotone,Find root through Bisection method\n // At most 32 iteration\n\n\n for (var i = 0; i < 32; i++) {\n // let prev = t - interval;\n var next = t + interval; // v1[0] = quadraticAt(p0[0], p1[0], p2[0], prev);\n // v1[1] = quadraticAt(p0[1], p1[1], p2[1], prev);\n\n v2[0] = quadraticAt(p0[0], p1[0], p2[0], t);\n v2[1] = quadraticAt(p0[1], p1[1], p2[1], t);\n v3[0] = quadraticAt(p0[0], p1[0], p2[0], next);\n v3[1] = quadraticAt(p0[1], p1[1], p2[1], next);\n var diff = v2DistSquare(v2, center) - radiusSquare;\n\n if (mathAbs(diff) < 1e-2) {\n break;\n } // let prevDiff = v2DistSquare(v1, center) - radiusSquare;\n\n\n var nextDiff = v2DistSquare(v3, center) - radiusSquare;\n interval /= 2;\n\n if (diff < 0) {\n if (nextDiff >= 0) {\n t = t + interval;\n } else {\n t = t - interval;\n }\n } else {\n if (nextDiff >= 0) {\n t = t - interval;\n } else {\n t = t + interval;\n }\n }\n }\n\n return t;\n} // Adjust edge to avoid\n\n\nexport default function adjustEdge(graph, scale) {\n var tmp0 = [];\n var quadraticSubdivide = curveTool.quadraticSubdivide;\n var pts = [[], [], []];\n var pts2 = [[], []];\n var v = [];\n scale /= 2;\n graph.eachEdge(function (edge, idx) {\n var linePoints = edge.getLayout();\n var fromSymbol = edge.getVisual('fromSymbol');\n var toSymbol = edge.getVisual('toSymbol');\n\n if (!linePoints.__original) {\n linePoints.__original = [vec2.clone(linePoints[0]), vec2.clone(linePoints[1])];\n\n if (linePoints[2]) {\n linePoints.__original.push(vec2.clone(linePoints[2]));\n }\n }\n\n var originalPoints = linePoints.__original; // Quadratic curve\n\n if (linePoints[2] != null) {\n vec2.copy(pts[0], originalPoints[0]);\n vec2.copy(pts[1], originalPoints[2]);\n vec2.copy(pts[2], originalPoints[1]);\n\n if (fromSymbol && fromSymbol !== 'none') {\n var symbolSize = getSymbolSize(edge.node1);\n var t = intersectCurveCircle(pts, originalPoints[0], symbolSize * scale); // Subdivide and get the second\n\n quadraticSubdivide(pts[0][0], pts[1][0], pts[2][0], t, tmp0);\n pts[0][0] = tmp0[3];\n pts[1][0] = tmp0[4];\n quadraticSubdivide(pts[0][1], pts[1][1], pts[2][1], t, tmp0);\n pts[0][1] = tmp0[3];\n pts[1][1] = tmp0[4];\n }\n\n if (toSymbol && toSymbol !== 'none') {\n var symbolSize = getSymbolSize(edge.node2);\n var t = intersectCurveCircle(pts, originalPoints[1], symbolSize * scale); // Subdivide and get the first\n\n quadraticSubdivide(pts[0][0], pts[1][0], pts[2][0], t, tmp0);\n pts[1][0] = tmp0[1];\n pts[2][0] = tmp0[2];\n quadraticSubdivide(pts[0][1], pts[1][1], pts[2][1], t, tmp0);\n pts[1][1] = tmp0[1];\n pts[2][1] = tmp0[2];\n } // Copy back to layout\n\n\n vec2.copy(linePoints[0], pts[0]);\n vec2.copy(linePoints[1], pts[2]);\n vec2.copy(linePoints[2], pts[1]);\n } // Line\n else {\n vec2.copy(pts2[0], originalPoints[0]);\n vec2.copy(pts2[1], originalPoints[1]);\n vec2.sub(v, pts2[1], pts2[0]);\n vec2.normalize(v, v);\n\n if (fromSymbol && fromSymbol !== 'none') {\n var symbolSize = getSymbolSize(edge.node1);\n vec2.scaleAndAdd(pts2[0], pts2[0], v, symbolSize * scale);\n }\n\n if (toSymbol && toSymbol !== 'none') {\n var symbolSize = getSymbolSize(edge.node2);\n vec2.scaleAndAdd(pts2[1], pts2[1], v, -symbolSize * scale);\n }\n\n vec2.copy(linePoints[0], pts2[0]);\n vec2.copy(linePoints[1], pts2[1]);\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { isNumber } from 'zrender/lib/core/util.js';\nexport default function categoryFilter(ecModel) {\n var legendModels = ecModel.findComponents({\n mainType: 'legend'\n });\n\n if (!legendModels || !legendModels.length) {\n return;\n }\n\n ecModel.eachSeriesByType('graph', function (graphSeries) {\n var categoriesData = graphSeries.getCategoriesData();\n var graph = graphSeries.getGraph();\n var data = graph.data;\n var categoryNames = categoriesData.mapArray(categoriesData.getName);\n data.filterSelf(function (idx) {\n var model = data.getItemModel(idx);\n var category = model.getShallow('category');\n\n if (category != null) {\n if (isNumber(category)) {\n category = categoryNames[category];\n } // If in any legend component the status is not selected.\n\n\n for (var i = 0; i < legendModels.length; i++) {\n if (!legendModels[i].isSelected(category)) {\n return false;\n }\n }\n }\n\n return true;\n });\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { extend, isString } from 'zrender/lib/core/util.js';\nexport default function categoryVisual(ecModel) {\n var paletteScope = {};\n ecModel.eachSeriesByType('graph', function (seriesModel) {\n var categoriesData = seriesModel.getCategoriesData();\n var data = seriesModel.getData();\n var categoryNameIdxMap = {};\n categoriesData.each(function (idx) {\n var name = categoriesData.getName(idx); // Add prefix to avoid conflict with Object.prototype.\n\n categoryNameIdxMap['ec-' + name] = idx;\n var itemModel = categoriesData.getItemModel(idx);\n var style = itemModel.getModel('itemStyle').getItemStyle();\n\n if (!style.fill) {\n // Get color from palette.\n style.fill = seriesModel.getColorFromPalette(name, paletteScope);\n }\n\n categoriesData.setItemVisual(idx, 'style', style);\n var symbolVisualList = ['symbol', 'symbolSize', 'symbolKeepAspect'];\n\n for (var i = 0; i < symbolVisualList.length; i++) {\n var symbolVisual = itemModel.getShallow(symbolVisualList[i], true);\n\n if (symbolVisual != null) {\n categoriesData.setItemVisual(idx, symbolVisualList[i], symbolVisual);\n }\n }\n }); // Assign category color to visual\n\n if (categoriesData.count()) {\n data.each(function (idx) {\n var model = data.getItemModel(idx);\n var categoryIdx = model.getShallow('category');\n\n if (categoryIdx != null) {\n if (isString(categoryIdx)) {\n categoryIdx = categoryNameIdxMap['ec-' + categoryIdx];\n }\n\n var categoryStyle = categoriesData.getItemVisual(categoryIdx, 'style');\n var style = data.ensureUniqueItemVisual(idx, 'style');\n extend(style, categoryStyle);\n var visualList = ['symbol', 'symbolSize', 'symbolKeepAspect'];\n\n for (var i = 0; i < visualList.length; i++) {\n data.setItemVisual(idx, visualList[i], categoriesData.getItemVisual(categoryIdx, visualList[i]));\n }\n }\n });\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { circularLayout } from './circularLayoutHelper.js';\nexport default function graphCircularLayout(ecModel) {\n ecModel.eachSeriesByType('graph', function (seriesModel) {\n if (seriesModel.get('layout') === 'circular') {\n circularLayout(seriesModel, 'symbolSize');\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as vec2 from 'zrender/lib/core/vector.js';\nimport { getSymbolSize, getNodeGlobalScale } from './graphHelper.js';\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { getCurvenessForEdge } from '../helper/multipleGraphEdgeHelper.js';\nvar PI = Math.PI;\nvar _symbolRadiansHalf = [];\n/**\n * `basedOn` can be:\n * 'value':\n * This layout is not accurate and have same bad case. For example,\n * if the min value is very smaller than the max value, the nodes\n * with the min value probably overlap even though there is enough\n * space to layout them. So we only use this approach in the as the\n * init layout of the force layout.\n * FIXME\n * Probably we do not need this method any more but use\n * `basedOn: 'symbolSize'` in force layout if\n * delay its init operations to GraphView.\n * 'symbolSize':\n * This approach work only if all of the symbol size calculated.\n * That is, the progressive rendering is not applied to graph.\n * FIXME\n * If progressive rendering is applied to graph some day,\n * probably we have to use `basedOn: 'value'`.\n */\n\nexport function circularLayout(seriesModel, basedOn, draggingNode, pointer) {\n var coordSys = seriesModel.coordinateSystem;\n\n if (coordSys && coordSys.type !== 'view') {\n return;\n }\n\n var rect = coordSys.getBoundingRect();\n var nodeData = seriesModel.getData();\n var graph = nodeData.graph;\n var cx = rect.width / 2 + rect.x;\n var cy = rect.height / 2 + rect.y;\n var r = Math.min(rect.width, rect.height) / 2;\n var count = nodeData.count();\n nodeData.setLayout({\n cx: cx,\n cy: cy\n });\n\n if (!count) {\n return;\n }\n\n if (draggingNode) {\n var _a = coordSys.pointToData(pointer),\n tempX = _a[0],\n tempY = _a[1];\n\n var v = [tempX - cx, tempY - cy];\n vec2.normalize(v, v);\n vec2.scale(v, v, r);\n draggingNode.setLayout([cx + v[0], cy + v[1]], true);\n var circularRotateLabel = seriesModel.get(['circular', 'rotateLabel']);\n rotateNodeLabel(draggingNode, circularRotateLabel, cx, cy);\n }\n\n _layoutNodesBasedOn[basedOn](seriesModel, graph, nodeData, r, cx, cy, count);\n\n graph.eachEdge(function (edge, index) {\n var curveness = zrUtil.retrieve3(edge.getModel().get(['lineStyle', 'curveness']), getCurvenessForEdge(edge, seriesModel, index), 0);\n var p1 = vec2.clone(edge.node1.getLayout());\n var p2 = vec2.clone(edge.node2.getLayout());\n var cp1;\n var x12 = (p1[0] + p2[0]) / 2;\n var y12 = (p1[1] + p2[1]) / 2;\n\n if (+curveness) {\n curveness *= 3;\n cp1 = [cx * curveness + x12 * (1 - curveness), cy * curveness + y12 * (1 - curveness)];\n }\n\n edge.setLayout([p1, p2, cp1]);\n });\n}\nvar _layoutNodesBasedOn = {\n value: function (seriesModel, graph, nodeData, r, cx, cy, count) {\n var angle = 0;\n var sum = nodeData.getSum('value');\n var unitAngle = Math.PI * 2 / (sum || count);\n graph.eachNode(function (node) {\n var value = node.getValue('value');\n var radianHalf = unitAngle * (sum ? value : 1) / 2;\n angle += radianHalf;\n node.setLayout([r * Math.cos(angle) + cx, r * Math.sin(angle) + cy]);\n angle += radianHalf;\n });\n },\n symbolSize: function (seriesModel, graph, nodeData, r, cx, cy, count) {\n var sumRadian = 0;\n _symbolRadiansHalf.length = count;\n var nodeScale = getNodeGlobalScale(seriesModel);\n graph.eachNode(function (node) {\n var symbolSize = getSymbolSize(node); // Normally this case will not happen, but we still add\n // some the defensive code (2px is an arbitrary value).\n\n isNaN(symbolSize) && (symbolSize = 2);\n symbolSize < 0 && (symbolSize = 0);\n symbolSize *= nodeScale;\n var symbolRadianHalf = Math.asin(symbolSize / 2 / r); // when `symbolSize / 2` is bigger than `r`.\n\n isNaN(symbolRadianHalf) && (symbolRadianHalf = PI / 2);\n _symbolRadiansHalf[node.dataIndex] = symbolRadianHalf;\n sumRadian += symbolRadianHalf * 2;\n });\n var halfRemainRadian = (2 * PI - sumRadian) / count / 2;\n var angle = 0;\n graph.eachNode(function (node) {\n var radianHalf = halfRemainRadian + _symbolRadiansHalf[node.dataIndex];\n angle += radianHalf; // init circular layout for\n // 1. layout undefined node\n // 2. not fixed node\n\n (!node.getLayout() || !node.getLayout().fixed) && node.setLayout([r * Math.cos(angle) + cx, r * Math.sin(angle) + cy]);\n angle += radianHalf;\n });\n }\n};\nexport function rotateNodeLabel(node, circularRotateLabel, cx, cy) {\n var el = node.getGraphicEl(); // need to check if el exists. '-' value may not create node element.\n\n if (!el) {\n return;\n }\n\n var nodeModel = node.getModel();\n var labelRotate = nodeModel.get(['label', 'rotate']) || 0;\n var symbolPath = el.getSymbolPath();\n\n if (circularRotateLabel) {\n var pos = node.getLayout();\n var rad = Math.atan2(pos[1] - cy, pos[0] - cx);\n\n if (rad < 0) {\n rad = Math.PI * 2 + rad;\n }\n\n var isLeft = pos[0] < cx;\n\n if (isLeft) {\n rad = rad - Math.PI;\n }\n\n var textPosition = isLeft ? 'left' : 'right';\n symbolPath.setTextConfig({\n rotation: -rad,\n position: textPosition,\n origin: 'center'\n });\n var emphasisState = symbolPath.ensureState('emphasis');\n zrUtil.extend(emphasisState.textConfig || (emphasisState.textConfig = {}), {\n position: textPosition\n });\n } else {\n symbolPath.setTextConfig({\n rotation: labelRotate *= Math.PI / 180\n });\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// FIXME Where to create the simple view coordinate system\nimport View from '../../coord/View.js';\nimport { getLayoutRect } from '../../util/layout.js';\nimport * as bbox from 'zrender/lib/core/bbox.js';\nimport { extend } from 'zrender/lib/core/util.js';\n\nfunction getViewRect(seriesModel, api, aspect) {\n var option = extend(seriesModel.getBoxLayoutParams(), {\n aspect: aspect\n });\n return getLayoutRect(option, {\n width: api.getWidth(),\n height: api.getHeight()\n });\n}\n\nexport default function createViewCoordSys(ecModel, api) {\n var viewList = [];\n ecModel.eachSeriesByType('graph', function (seriesModel) {\n var coordSysType = seriesModel.get('coordinateSystem');\n\n if (!coordSysType || coordSysType === 'view') {\n var data_1 = seriesModel.getData();\n var positions = data_1.mapArray(function (idx) {\n var itemModel = data_1.getItemModel(idx);\n return [+itemModel.get('x'), +itemModel.get('y')];\n });\n var min = [];\n var max = [];\n bbox.fromPoints(positions, min, max); // If width or height is 0\n\n if (max[0] - min[0] === 0) {\n max[0] += 1;\n min[0] -= 1;\n }\n\n if (max[1] - min[1] === 0) {\n max[1] += 1;\n min[1] -= 1;\n }\n\n var aspect = (max[0] - min[0]) / (max[1] - min[1]); // FIXME If get view rect after data processed?\n\n var viewRect = getViewRect(seriesModel, api, aspect); // Position may be NaN, use view rect instead\n\n if (isNaN(aspect)) {\n min = [viewRect.x, viewRect.y];\n max = [viewRect.x + viewRect.width, viewRect.y + viewRect.height];\n }\n\n var bbWidth = max[0] - min[0];\n var bbHeight = max[1] - min[1];\n var viewWidth = viewRect.width;\n var viewHeight = viewRect.height;\n var viewCoordSys = seriesModel.coordinateSystem = new View();\n viewCoordSys.zoomLimit = seriesModel.get('scaleLimit');\n viewCoordSys.setBoundingRect(min[0], min[1], bbWidth, bbHeight);\n viewCoordSys.setViewRect(viewRect.x, viewRect.y, viewWidth, viewHeight); // Update roam info\n\n viewCoordSys.setCenter(seriesModel.get('center'), api);\n viewCoordSys.setZoom(seriesModel.get('zoom'));\n viewList.push(viewCoordSys);\n }\n });\n return viewList;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { extend } from 'zrender/lib/core/util.js';\n\nfunction normalize(a) {\n if (!(a instanceof Array)) {\n a = [a, a];\n }\n\n return a;\n}\n\nexport default function graphEdgeVisual(ecModel) {\n ecModel.eachSeriesByType('graph', function (seriesModel) {\n var graph = seriesModel.getGraph();\n var edgeData = seriesModel.getEdgeData();\n var symbolType = normalize(seriesModel.get('edgeSymbol'));\n var symbolSize = normalize(seriesModel.get('edgeSymbolSize')); // const colorQuery = ['lineStyle', 'color'] as const;\n // const opacityQuery = ['lineStyle', 'opacity'] as const;\n\n edgeData.setVisual('fromSymbol', symbolType && symbolType[0]);\n edgeData.setVisual('toSymbol', symbolType && symbolType[1]);\n edgeData.setVisual('fromSymbolSize', symbolSize && symbolSize[0]);\n edgeData.setVisual('toSymbolSize', symbolSize && symbolSize[1]);\n edgeData.setVisual('style', seriesModel.getModel('lineStyle').getLineStyle());\n edgeData.each(function (idx) {\n var itemModel = edgeData.getItemModel(idx);\n var edge = graph.getEdgeByIndex(idx);\n var symbolType = normalize(itemModel.getShallow('symbol', true));\n var symbolSize = normalize(itemModel.getShallow('symbolSize', true)); // Edge visual must after node visual\n\n var style = itemModel.getModel('lineStyle').getLineStyle();\n var existsStyle = edgeData.ensureUniqueItemVisual(idx, 'style');\n extend(existsStyle, style);\n\n switch (existsStyle.stroke) {\n case 'source':\n {\n var nodeStyle = edge.node1.getVisual('style');\n existsStyle.stroke = nodeStyle && nodeStyle.fill;\n break;\n }\n\n case 'target':\n {\n var nodeStyle = edge.node2.getVisual('style');\n existsStyle.stroke = nodeStyle && nodeStyle.fill;\n break;\n }\n }\n\n symbolType[0] && edge.setVisual('fromSymbol', symbolType[0]);\n symbolType[1] && edge.setVisual('toSymbol', symbolType[1]);\n symbolSize[0] && edge.setVisual('fromSymbolSize', symbolSize[0]);\n symbolSize[1] && edge.setVisual('toSymbolSize', symbolSize[1]);\n });\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/*\n* A third-party license is embedded for some of the code in this file:\n* Some formulas were originally copied from \"d3.js\" with some\n* modifications made for this project.\n* (See more details in the comment of the method \"step\" below.)\n* The use of the source code of this file is also subject to the terms\n* and consitions of the license of \"d3.js\" (BSD-3Clause, see\n* ).\n*/\nimport * as vec2 from 'zrender/lib/core/vector.js';\nvar scaleAndAdd = vec2.scaleAndAdd; // function adjacentNode(n, e) {\n// return e.n1 === n ? e.n2 : e.n1;\n// }\n\nexport function forceLayout(inNodes, inEdges, opts) {\n var nodes = inNodes;\n var edges = inEdges;\n var rect = opts.rect;\n var width = rect.width;\n var height = rect.height;\n var center = [rect.x + width / 2, rect.y + height / 2]; // let scale = opts.scale || 1;\n\n var gravity = opts.gravity == null ? 0.1 : opts.gravity; // for (let i = 0; i < edges.length; i++) {\n // let e = edges[i];\n // let n1 = e.n1;\n // let n2 = e.n2;\n // n1.edges = n1.edges || [];\n // n2.edges = n2.edges || [];\n // n1.edges.push(e);\n // n2.edges.push(e);\n // }\n // Init position\n\n for (var i = 0; i < nodes.length; i++) {\n var n = nodes[i];\n\n if (!n.p) {\n n.p = vec2.create(width * (Math.random() - 0.5) + center[0], height * (Math.random() - 0.5) + center[1]);\n }\n\n n.pp = vec2.clone(n.p);\n n.edges = null;\n } // Formula in 'Graph Drawing by Force-directed Placement'\n // let k = scale * Math.sqrt(width * height / nodes.length);\n // let k2 = k * k;\n\n\n var initialFriction = opts.friction == null ? 0.6 : opts.friction;\n var friction = initialFriction;\n var beforeStepCallback;\n var afterStepCallback;\n return {\n warmUp: function () {\n friction = initialFriction * 0.8;\n },\n setFixed: function (idx) {\n nodes[idx].fixed = true;\n },\n setUnfixed: function (idx) {\n nodes[idx].fixed = false;\n },\n\n /**\n * Before step hook\n */\n beforeStep: function (cb) {\n beforeStepCallback = cb;\n },\n\n /**\n * After step hook\n */\n afterStep: function (cb) {\n afterStepCallback = cb;\n },\n\n /**\n * Some formulas were originally copied from \"d3.js\"\n * https://github.com/d3/d3/blob/b516d77fb8566b576088e73410437494717ada26/src/layout/force.js\n * with some modifications made for this project.\n * See the license statement at the head of this file.\n */\n step: function (cb) {\n beforeStepCallback && beforeStepCallback(nodes, edges);\n var v12 = [];\n var nLen = nodes.length;\n\n for (var i = 0; i < edges.length; i++) {\n var e = edges[i];\n\n if (e.ignoreForceLayout) {\n continue;\n }\n\n var n1 = e.n1;\n var n2 = e.n2;\n vec2.sub(v12, n2.p, n1.p);\n var d = vec2.len(v12) - e.d;\n var w = n2.w / (n1.w + n2.w);\n\n if (isNaN(w)) {\n w = 0;\n }\n\n vec2.normalize(v12, v12);\n !n1.fixed && scaleAndAdd(n1.p, n1.p, v12, w * d * friction);\n !n2.fixed && scaleAndAdd(n2.p, n2.p, v12, -(1 - w) * d * friction);\n } // Gravity\n\n\n for (var i = 0; i < nLen; i++) {\n var n = nodes[i];\n\n if (!n.fixed) {\n vec2.sub(v12, center, n.p); // let d = vec2.len(v12);\n // vec2.scale(v12, v12, 1 / d);\n // let gravityFactor = gravity;\n\n scaleAndAdd(n.p, n.p, v12, gravity * friction);\n }\n } // Repulsive\n // PENDING\n\n\n for (var i = 0; i < nLen; i++) {\n var n1 = nodes[i];\n\n for (var j = i + 1; j < nLen; j++) {\n var n2 = nodes[j];\n vec2.sub(v12, n2.p, n1.p);\n var d = vec2.len(v12);\n\n if (d === 0) {\n // Random repulse\n vec2.set(v12, Math.random() - 0.5, Math.random() - 0.5);\n d = 1;\n }\n\n var repFact = (n1.rep + n2.rep) / d / d;\n !n1.fixed && scaleAndAdd(n1.pp, n1.pp, v12, repFact);\n !n2.fixed && scaleAndAdd(n2.pp, n2.pp, v12, -repFact);\n }\n }\n\n var v = [];\n\n for (var i = 0; i < nLen; i++) {\n var n = nodes[i];\n\n if (!n.fixed) {\n vec2.sub(v, n.p, n.pp);\n scaleAndAdd(n.p, n.p, v, friction);\n vec2.copy(n.pp, n.p);\n }\n }\n\n friction = friction * 0.992;\n var finished = friction < 0.01;\n afterStepCallback && afterStepCallback(nodes, edges, finished);\n cb && cb(finished);\n }\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { forceLayout } from './forceHelper.js';\nimport { simpleLayout } from './simpleLayoutHelper.js';\nimport { circularLayout } from './circularLayoutHelper.js';\nimport { linearMap } from '../../util/number.js';\nimport * as vec2 from 'zrender/lib/core/vector.js';\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { getCurvenessForEdge } from '../helper/multipleGraphEdgeHelper.js';\nexport default function graphForceLayout(ecModel) {\n ecModel.eachSeriesByType('graph', function (graphSeries) {\n var coordSys = graphSeries.coordinateSystem;\n\n if (coordSys && coordSys.type !== 'view') {\n return;\n }\n\n if (graphSeries.get('layout') === 'force') {\n var preservedPoints_1 = graphSeries.preservedPoints || {};\n var graph_1 = graphSeries.getGraph();\n var nodeData_1 = graph_1.data;\n var edgeData = graph_1.edgeData;\n var forceModel = graphSeries.getModel('force');\n var initLayout = forceModel.get('initLayout');\n\n if (graphSeries.preservedPoints) {\n nodeData_1.each(function (idx) {\n var id = nodeData_1.getId(idx);\n nodeData_1.setItemLayout(idx, preservedPoints_1[id] || [NaN, NaN]);\n });\n } else if (!initLayout || initLayout === 'none') {\n simpleLayout(graphSeries);\n } else if (initLayout === 'circular') {\n circularLayout(graphSeries, 'value');\n }\n\n var nodeDataExtent_1 = nodeData_1.getDataExtent('value');\n var edgeDataExtent_1 = edgeData.getDataExtent('value'); // let edgeDataExtent = edgeData.getDataExtent('value');\n\n var repulsion = forceModel.get('repulsion');\n var edgeLength = forceModel.get('edgeLength');\n var repulsionArr_1 = zrUtil.isArray(repulsion) ? repulsion : [repulsion, repulsion];\n var edgeLengthArr_1 = zrUtil.isArray(edgeLength) ? edgeLength : [edgeLength, edgeLength]; // Larger value has smaller length\n\n edgeLengthArr_1 = [edgeLengthArr_1[1], edgeLengthArr_1[0]];\n var nodes_1 = nodeData_1.mapArray('value', function (value, idx) {\n var point = nodeData_1.getItemLayout(idx);\n var rep = linearMap(value, nodeDataExtent_1, repulsionArr_1);\n\n if (isNaN(rep)) {\n rep = (repulsionArr_1[0] + repulsionArr_1[1]) / 2;\n }\n\n return {\n w: rep,\n rep: rep,\n fixed: nodeData_1.getItemModel(idx).get('fixed'),\n p: !point || isNaN(point[0]) || isNaN(point[1]) ? null : point\n };\n });\n var edges = edgeData.mapArray('value', function (value, idx) {\n var edge = graph_1.getEdgeByIndex(idx);\n var d = linearMap(value, edgeDataExtent_1, edgeLengthArr_1);\n\n if (isNaN(d)) {\n d = (edgeLengthArr_1[0] + edgeLengthArr_1[1]) / 2;\n }\n\n var edgeModel = edge.getModel();\n var curveness = zrUtil.retrieve3(edge.getModel().get(['lineStyle', 'curveness']), -getCurvenessForEdge(edge, graphSeries, idx, true), 0);\n return {\n n1: nodes_1[edge.node1.dataIndex],\n n2: nodes_1[edge.node2.dataIndex],\n d: d,\n curveness: curveness,\n ignoreForceLayout: edgeModel.get('ignoreForceLayout')\n };\n }); // let coordSys = graphSeries.coordinateSystem;\n\n var rect = coordSys.getBoundingRect();\n var forceInstance = forceLayout(nodes_1, edges, {\n rect: rect,\n gravity: forceModel.get('gravity'),\n friction: forceModel.get('friction')\n });\n forceInstance.beforeStep(function (nodes, edges) {\n for (var i = 0, l = nodes.length; i < l; i++) {\n if (nodes[i].fixed) {\n // Write back to layout instance\n vec2.copy(nodes[i].p, graph_1.getNodeByIndex(i).getLayout());\n }\n }\n });\n forceInstance.afterStep(function (nodes, edges, stopped) {\n for (var i = 0, l = nodes.length; i < l; i++) {\n if (!nodes[i].fixed) {\n graph_1.getNodeByIndex(i).setLayout(nodes[i].p);\n }\n\n preservedPoints_1[nodeData_1.getId(i)] = nodes[i].p;\n }\n\n for (var i = 0, l = edges.length; i < l; i++) {\n var e = edges[i];\n var edge = graph_1.getEdgeByIndex(i);\n var p1 = e.n1.p;\n var p2 = e.n2.p;\n var points = edge.getLayout();\n points = points ? points.slice() : [];\n points[0] = points[0] || [];\n points[1] = points[1] || [];\n vec2.copy(points[0], p1);\n vec2.copy(points[1], p2);\n\n if (+e.curveness) {\n points[2] = [(p1[0] + p2[0]) / 2 - (p1[1] - p2[1]) * e.curveness, (p1[1] + p2[1]) / 2 - (p2[0] - p1[0]) * e.curveness];\n }\n\n edge.setLayout(points);\n }\n });\n graphSeries.forceLayout = forceInstance;\n graphSeries.preservedPoints = preservedPoints_1; // Step to get the layout\n\n forceInstance.step();\n } else {\n // Remove prev injected forceLayout instance\n graphSeries.forceLayout = null;\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nexport function getNodeGlobalScale(seriesModel) {\n var coordSys = seriesModel.coordinateSystem;\n\n if (coordSys.type !== 'view') {\n return 1;\n }\n\n var nodeScaleRatio = seriesModel.option.nodeScaleRatio;\n var groupZoom = coordSys.scaleX; // Scale node when zoom changes\n\n var roamZoom = coordSys.getZoom();\n var nodeScale = (roamZoom - 1) * nodeScaleRatio + 1;\n return nodeScale / groupZoom;\n}\nexport function getSymbolSize(node) {\n var symbolSize = node.getVisual('symbolSize');\n\n if (symbolSize instanceof Array) {\n symbolSize = (symbolSize[0] + symbolSize[1]) / 2;\n }\n\n return +symbolSize;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport categoryFilter from './categoryFilter.js';\nimport categoryVisual from './categoryVisual.js';\nimport edgeVisual from './edgeVisual.js';\nimport simpleLayout from './simpleLayout.js';\nimport circularLayout from './circularLayout.js';\nimport forceLayout from './forceLayout.js';\nimport createView from './createView.js';\nimport View from '../../coord/View.js';\nimport GraphView from './GraphView.js';\nimport GraphSeriesModel from './GraphSeries.js';\nimport { updateCenterAndZoom } from '../../action/roamHelper.js';\nimport { noop } from 'zrender/lib/core/util.js';\nvar actionInfo = {\n type: 'graphRoam',\n event: 'graphRoam',\n update: 'none'\n};\nexport function install(registers) {\n registers.registerChartView(GraphView);\n registers.registerSeriesModel(GraphSeriesModel);\n registers.registerProcessor(categoryFilter);\n registers.registerVisual(categoryVisual);\n registers.registerVisual(edgeVisual);\n registers.registerLayout(simpleLayout);\n registers.registerLayout(registers.PRIORITY.VISUAL.POST_CHART_LAYOUT, circularLayout);\n registers.registerLayout(forceLayout);\n registers.registerCoordinateSystem('graphView', {\n dimensions: View.dimensions,\n create: createView\n }); // Register legacy focus actions\n\n registers.registerAction({\n type: 'focusNodeAdjacency',\n event: 'focusNodeAdjacency',\n update: 'series:focusNodeAdjacency'\n }, noop);\n registers.registerAction({\n type: 'unfocusNodeAdjacency',\n event: 'unfocusNodeAdjacency',\n update: 'series:unfocusNodeAdjacency'\n }, noop); // Register roam action.\n\n registers.registerAction(actionInfo, function (payload, ecModel, api) {\n ecModel.eachComponent({\n mainType: 'series',\n query: payload\n }, function (seriesModel) {\n var coordSys = seriesModel.coordinateSystem;\n var res = updateCenterAndZoom(coordSys, payload, undefined, api);\n seriesModel.setCenter && seriesModel.setCenter(res.center);\n seriesModel.setZoom && seriesModel.setZoom(res.zoom);\n });\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { each } from 'zrender/lib/core/util.js';\nimport { simpleLayout, simpleLayoutEdge } from './simpleLayoutHelper.js';\nexport default function graphSimpleLayout(ecModel, api) {\n ecModel.eachSeriesByType('graph', function (seriesModel) {\n var layout = seriesModel.get('layout');\n var coordSys = seriesModel.coordinateSystem;\n\n if (coordSys && coordSys.type !== 'view') {\n var data_1 = seriesModel.getData();\n var dimensions_1 = [];\n each(coordSys.dimensions, function (coordDim) {\n dimensions_1 = dimensions_1.concat(data_1.mapDimensionsAll(coordDim));\n });\n\n for (var dataIndex = 0; dataIndex < data_1.count(); dataIndex++) {\n var value = [];\n var hasValue = false;\n\n for (var i = 0; i < dimensions_1.length; i++) {\n var val = data_1.get(dimensions_1[i], dataIndex);\n\n if (!isNaN(val)) {\n hasValue = true;\n }\n\n value.push(val);\n }\n\n if (hasValue) {\n data_1.setItemLayout(dataIndex, coordSys.dataToPoint(value));\n } else {\n // Also {Array.}, not undefined to avoid if...else... statement\n data_1.setItemLayout(dataIndex, [NaN, NaN]);\n }\n }\n\n simpleLayoutEdge(data_1.graph, seriesModel);\n } else if (!layout || layout === 'none') {\n simpleLayout(seriesModel);\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as vec2 from 'zrender/lib/core/vector.js';\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { getCurvenessForEdge } from '../helper/multipleGraphEdgeHelper.js';\nexport function simpleLayout(seriesModel) {\n var coordSys = seriesModel.coordinateSystem;\n\n if (coordSys && coordSys.type !== 'view') {\n return;\n }\n\n var graph = seriesModel.getGraph();\n graph.eachNode(function (node) {\n var model = node.getModel();\n node.setLayout([+model.get('x'), +model.get('y')]);\n });\n simpleLayoutEdge(graph, seriesModel);\n}\nexport function simpleLayoutEdge(graph, seriesModel) {\n graph.eachEdge(function (edge, index) {\n var curveness = zrUtil.retrieve3(edge.getModel().get(['lineStyle', 'curveness']), -getCurvenessForEdge(edge, seriesModel, index, true), 0);\n var p1 = vec2.clone(edge.node1.getLayout());\n var p2 = vec2.clone(edge.node2.getLayout());\n var points = [p1, p2];\n\n if (+curveness) {\n points.push([(p1[0] + p2[0]) / 2 - (p1[1] - p2[1]) * curveness, (p1[1] + p2[1]) / 2 - (p2[0] - p1[0]) * curveness]);\n }\n\n edge.setLayout(points);\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/* global Uint8ClampedArray */\nimport { platformApi } from 'zrender/lib/core/platform.js';\nvar GRADIENT_LEVELS = 256;\n\nvar HeatmapLayer =\n/** @class */\nfunction () {\n function HeatmapLayer() {\n this.blurSize = 30;\n this.pointSize = 20;\n this.maxOpacity = 1;\n this.minOpacity = 0;\n this._gradientPixels = {\n inRange: null,\n outOfRange: null\n };\n var canvas = platformApi.createCanvas();\n this.canvas = canvas;\n }\n /**\n * Renders Heatmap and returns the rendered canvas\n * @param data array of data, each has x, y, value\n * @param width canvas width\n * @param height canvas height\n */\n\n\n HeatmapLayer.prototype.update = function (data, width, height, normalize, colorFunc, isInRange) {\n var brush = this._getBrush();\n\n var gradientInRange = this._getGradient(colorFunc, 'inRange');\n\n var gradientOutOfRange = this._getGradient(colorFunc, 'outOfRange');\n\n var r = this.pointSize + this.blurSize;\n var canvas = this.canvas;\n var ctx = canvas.getContext('2d');\n var len = data.length;\n canvas.width = width;\n canvas.height = height;\n\n for (var i = 0; i < len; ++i) {\n var p = data[i];\n var x = p[0];\n var y = p[1];\n var value = p[2]; // calculate alpha using value\n\n var alpha = normalize(value); // draw with the circle brush with alpha\n\n ctx.globalAlpha = alpha;\n ctx.drawImage(brush, x - r, y - r);\n }\n\n if (!canvas.width || !canvas.height) {\n // Avoid \"Uncaught DOMException: Failed to execute 'getImageData' on\n // 'CanvasRenderingContext2D': The source height is 0.\"\n return canvas;\n } // colorize the canvas using alpha value and set with gradient\n\n\n var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);\n var pixels = imageData.data;\n var offset = 0;\n var pixelLen = pixels.length;\n var minOpacity = this.minOpacity;\n var maxOpacity = this.maxOpacity;\n var diffOpacity = maxOpacity - minOpacity;\n\n while (offset < pixelLen) {\n var alpha = pixels[offset + 3] / 256;\n var gradientOffset = Math.floor(alpha * (GRADIENT_LEVELS - 1)) * 4; // Simple optimize to ignore the empty data\n\n if (alpha > 0) {\n var gradient = isInRange(alpha) ? gradientInRange : gradientOutOfRange; // Any alpha > 0 will be mapped to [minOpacity, maxOpacity]\n\n alpha > 0 && (alpha = alpha * diffOpacity + minOpacity);\n pixels[offset++] = gradient[gradientOffset];\n pixels[offset++] = gradient[gradientOffset + 1];\n pixels[offset++] = gradient[gradientOffset + 2];\n pixels[offset++] = gradient[gradientOffset + 3] * alpha * 256;\n } else {\n offset += 4;\n }\n }\n\n ctx.putImageData(imageData, 0, 0);\n return canvas;\n };\n /**\n * get canvas of a black circle brush used for canvas to draw later\n */\n\n\n HeatmapLayer.prototype._getBrush = function () {\n var brushCanvas = this._brushCanvas || (this._brushCanvas = platformApi.createCanvas()); // set brush size\n\n var r = this.pointSize + this.blurSize;\n var d = r * 2;\n brushCanvas.width = d;\n brushCanvas.height = d;\n var ctx = brushCanvas.getContext('2d');\n ctx.clearRect(0, 0, d, d); // in order to render shadow without the distinct circle,\n // draw the distinct circle in an invisible place,\n // and use shadowOffset to draw shadow in the center of the canvas\n\n ctx.shadowOffsetX = d;\n ctx.shadowBlur = this.blurSize; // draw the shadow in black, and use alpha and shadow blur to generate\n // color in color map\n\n ctx.shadowColor = '#000'; // draw circle in the left to the canvas\n\n ctx.beginPath();\n ctx.arc(-r, r, this.pointSize, 0, Math.PI * 2, true);\n ctx.closePath();\n ctx.fill();\n return brushCanvas;\n };\n /**\n * get gradient color map\n * @private\n */\n\n\n HeatmapLayer.prototype._getGradient = function (colorFunc, state) {\n var gradientPixels = this._gradientPixels;\n var pixelsSingleState = gradientPixels[state] || (gradientPixels[state] = new Uint8ClampedArray(256 * 4));\n var color = [0, 0, 0, 0];\n var off = 0;\n\n for (var i = 0; i < 256; i++) {\n colorFunc[state](i / 255, true, color);\n pixelsSingleState[off++] = color[0];\n pixelsSingleState[off++] = color[1];\n pixelsSingleState[off++] = color[2];\n pixelsSingleState[off++] = color[3];\n }\n\n return pixelsSingleState;\n };\n\n return HeatmapLayer;\n}();\n\nexport default HeatmapLayer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series.js';\nimport createSeriesData from '../helper/createSeriesData.js';\nimport CoordinateSystem from '../../core/CoordinateSystem.js';\n\nvar HeatmapSeriesModel =\n/** @class */\nfunction (_super) {\n __extends(HeatmapSeriesModel, _super);\n\n function HeatmapSeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = HeatmapSeriesModel.type;\n return _this;\n }\n\n HeatmapSeriesModel.prototype.getInitialData = function (option, ecModel) {\n return createSeriesData(null, this, {\n generateCoord: 'value'\n });\n };\n\n HeatmapSeriesModel.prototype.preventIncremental = function () {\n var coordSysCreator = CoordinateSystem.get(this.get('coordinateSystem'));\n\n if (coordSysCreator && coordSysCreator.dimensions) {\n return coordSysCreator.dimensions[0] === 'lng' && coordSysCreator.dimensions[1] === 'lat';\n }\n };\n\n HeatmapSeriesModel.type = 'series.heatmap';\n HeatmapSeriesModel.dependencies = ['grid', 'geo', 'calendar'];\n HeatmapSeriesModel.defaultOption = {\n coordinateSystem: 'cartesian2d',\n // zlevel: 0,\n z: 2,\n // Cartesian coordinate system\n // xAxisIndex: 0,\n // yAxisIndex: 0,\n // Geo coordinate system\n geoIndex: 0,\n blurSize: 30,\n pointSize: 20,\n maxOpacity: 1,\n minOpacity: 0,\n select: {\n itemStyle: {\n borderColor: '#212121'\n }\n }\n };\n return HeatmapSeriesModel;\n}(SeriesModel);\n\nexport default HeatmapSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic.js';\nimport { toggleHoverEmphasis } from '../../util/states.js';\nimport HeatmapLayer from './HeatmapLayer.js';\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport ChartView from '../../view/Chart.js';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem.js';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle.js';\n\nfunction getIsInPiecewiseRange(dataExtent, pieceList, selected) {\n var dataSpan = dataExtent[1] - dataExtent[0];\n pieceList = zrUtil.map(pieceList, function (piece) {\n return {\n interval: [(piece.interval[0] - dataExtent[0]) / dataSpan, (piece.interval[1] - dataExtent[0]) / dataSpan]\n };\n });\n var len = pieceList.length;\n var lastIndex = 0;\n return function (val) {\n var i; // Try to find in the location of the last found\n\n for (i = lastIndex; i < len; i++) {\n var interval = pieceList[i].interval;\n\n if (interval[0] <= val && val <= interval[1]) {\n lastIndex = i;\n break;\n }\n }\n\n if (i === len) {\n // Not found, back interation\n for (i = lastIndex - 1; i >= 0; i--) {\n var interval = pieceList[i].interval;\n\n if (interval[0] <= val && val <= interval[1]) {\n lastIndex = i;\n break;\n }\n }\n }\n\n return i >= 0 && i < len && selected[i];\n };\n}\n\nfunction getIsInContinuousRange(dataExtent, range) {\n var dataSpan = dataExtent[1] - dataExtent[0];\n range = [(range[0] - dataExtent[0]) / dataSpan, (range[1] - dataExtent[0]) / dataSpan];\n return function (val) {\n return val >= range[0] && val <= range[1];\n };\n}\n\nfunction isGeoCoordSys(coordSys) {\n var dimensions = coordSys.dimensions; // Not use coordSys.type === 'geo' because coordSys maybe extended\n\n return dimensions[0] === 'lng' && dimensions[1] === 'lat';\n}\n\nvar HeatmapView =\n/** @class */\nfunction (_super) {\n __extends(HeatmapView, _super);\n\n function HeatmapView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = HeatmapView.type;\n return _this;\n }\n\n HeatmapView.prototype.render = function (seriesModel, ecModel, api) {\n var visualMapOfThisSeries;\n ecModel.eachComponent('visualMap', function (visualMap) {\n visualMap.eachTargetSeries(function (targetSeries) {\n if (targetSeries === seriesModel) {\n visualMapOfThisSeries = visualMap;\n }\n });\n });\n\n if (process.env.NODE_ENV !== 'production') {\n if (!visualMapOfThisSeries) {\n throw new Error('Heatmap must use with visualMap');\n }\n } // Clear previously rendered progressive elements.\n\n\n this._progressiveEls = null;\n this.group.removeAll();\n var coordSys = seriesModel.coordinateSystem;\n\n if (coordSys.type === 'cartesian2d' || coordSys.type === 'calendar') {\n this._renderOnCartesianAndCalendar(seriesModel, api, 0, seriesModel.getData().count());\n } else if (isGeoCoordSys(coordSys)) {\n this._renderOnGeo(coordSys, seriesModel, visualMapOfThisSeries, api);\n }\n };\n\n HeatmapView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\n this.group.removeAll();\n };\n\n HeatmapView.prototype.incrementalRender = function (params, seriesModel, ecModel, api) {\n var coordSys = seriesModel.coordinateSystem;\n\n if (coordSys) {\n // geo does not support incremental rendering?\n if (isGeoCoordSys(coordSys)) {\n this.render(seriesModel, ecModel, api);\n } else {\n this._progressiveEls = [];\n\n this._renderOnCartesianAndCalendar(seriesModel, api, params.start, params.end, true);\n }\n }\n };\n\n HeatmapView.prototype.eachRendered = function (cb) {\n graphic.traverseElements(this._progressiveEls || this.group, cb);\n };\n\n HeatmapView.prototype._renderOnCartesianAndCalendar = function (seriesModel, api, start, end, incremental) {\n var coordSys = seriesModel.coordinateSystem;\n var isCartesian2d = isCoordinateSystemType(coordSys, 'cartesian2d');\n var width;\n var height;\n var xAxisExtent;\n var yAxisExtent;\n\n if (isCartesian2d) {\n var xAxis = coordSys.getAxis('x');\n var yAxis = coordSys.getAxis('y');\n\n if (process.env.NODE_ENV !== 'production') {\n if (!(xAxis.type === 'category' && yAxis.type === 'category')) {\n throw new Error('Heatmap on cartesian must have two category axes');\n }\n\n if (!(xAxis.onBand && yAxis.onBand)) {\n throw new Error('Heatmap on cartesian must have two axes with boundaryGap true');\n }\n } // add 0.5px to avoid the gaps\n\n\n width = xAxis.getBandWidth() + .5;\n height = yAxis.getBandWidth() + .5;\n xAxisExtent = xAxis.scale.getExtent();\n yAxisExtent = yAxis.scale.getExtent();\n }\n\n var group = this.group;\n var data = seriesModel.getData();\n var emphasisStyle = seriesModel.getModel(['emphasis', 'itemStyle']).getItemStyle();\n var blurStyle = seriesModel.getModel(['blur', 'itemStyle']).getItemStyle();\n var selectStyle = seriesModel.getModel(['select', 'itemStyle']).getItemStyle();\n var borderRadius = seriesModel.get(['itemStyle', 'borderRadius']);\n var labelStatesModels = getLabelStatesModels(seriesModel);\n var emphasisModel = seriesModel.getModel('emphasis');\n var focus = emphasisModel.get('focus');\n var blurScope = emphasisModel.get('blurScope');\n var emphasisDisabled = emphasisModel.get('disabled');\n var dataDims = isCartesian2d ? [data.mapDimension('x'), data.mapDimension('y'), data.mapDimension('value')] : [data.mapDimension('time'), data.mapDimension('value')];\n\n for (var idx = start; idx < end; idx++) {\n var rect = void 0;\n var style = data.getItemVisual(idx, 'style');\n\n if (isCartesian2d) {\n var dataDimX = data.get(dataDims[0], idx);\n var dataDimY = data.get(dataDims[1], idx); // Ignore empty data and out of extent data\n\n if (isNaN(data.get(dataDims[2], idx)) || isNaN(dataDimX) || isNaN(dataDimY) || dataDimX < xAxisExtent[0] || dataDimX > xAxisExtent[1] || dataDimY < yAxisExtent[0] || dataDimY > yAxisExtent[1]) {\n continue;\n }\n\n var point = coordSys.dataToPoint([dataDimX, dataDimY]);\n rect = new graphic.Rect({\n shape: {\n x: point[0] - width / 2,\n y: point[1] - height / 2,\n width: width,\n height: height\n },\n style: style\n });\n } else {\n // Ignore empty data\n if (isNaN(data.get(dataDims[1], idx))) {\n continue;\n }\n\n rect = new graphic.Rect({\n z2: 1,\n shape: coordSys.dataToRect([data.get(dataDims[0], idx)]).contentShape,\n style: style\n });\n } // Optimization for large dataset\n\n\n if (data.hasItemOption) {\n var itemModel = data.getItemModel(idx);\n var emphasisModel_1 = itemModel.getModel('emphasis');\n emphasisStyle = emphasisModel_1.getModel('itemStyle').getItemStyle();\n blurStyle = itemModel.getModel(['blur', 'itemStyle']).getItemStyle();\n selectStyle = itemModel.getModel(['select', 'itemStyle']).getItemStyle(); // Each item value struct in the data would be firstly\n // {\n // itemStyle: { borderRadius: [30, 30] },\n // value: [2022, 02, 22]\n // }\n\n borderRadius = itemModel.get(['itemStyle', 'borderRadius']);\n focus = emphasisModel_1.get('focus');\n blurScope = emphasisModel_1.get('blurScope');\n emphasisDisabled = emphasisModel_1.get('disabled');\n labelStatesModels = getLabelStatesModels(itemModel);\n }\n\n rect.shape.r = borderRadius;\n var rawValue = seriesModel.getRawValue(idx);\n var defaultText = '-';\n\n if (rawValue && rawValue[2] != null) {\n defaultText = rawValue[2] + '';\n }\n\n setLabelStyle(rect, labelStatesModels, {\n labelFetcher: seriesModel,\n labelDataIndex: idx,\n defaultOpacity: style.opacity,\n defaultText: defaultText\n });\n rect.ensureState('emphasis').style = emphasisStyle;\n rect.ensureState('blur').style = blurStyle;\n rect.ensureState('select').style = selectStyle;\n toggleHoverEmphasis(rect, focus, blurScope, emphasisDisabled);\n rect.incremental = incremental; // PENDING\n\n if (incremental) {\n // Rect must use hover layer if it's incremental.\n rect.states.emphasis.hoverLayer = true;\n }\n\n group.add(rect);\n data.setItemGraphicEl(idx, rect);\n\n if (this._progressiveEls) {\n this._progressiveEls.push(rect);\n }\n }\n };\n\n HeatmapView.prototype._renderOnGeo = function (geo, seriesModel, visualMapModel, api) {\n var inRangeVisuals = visualMapModel.targetVisuals.inRange;\n var outOfRangeVisuals = visualMapModel.targetVisuals.outOfRange; // if (!visualMapping) {\n // throw new Error('Data range must have color visuals');\n // }\n\n var data = seriesModel.getData();\n var hmLayer = this._hmLayer || this._hmLayer || new HeatmapLayer();\n hmLayer.blurSize = seriesModel.get('blurSize');\n hmLayer.pointSize = seriesModel.get('pointSize');\n hmLayer.minOpacity = seriesModel.get('minOpacity');\n hmLayer.maxOpacity = seriesModel.get('maxOpacity');\n var rect = geo.getViewRect().clone();\n var roamTransform = geo.getRoamTransform();\n rect.applyTransform(roamTransform); // Clamp on viewport\n\n var x = Math.max(rect.x, 0);\n var y = Math.max(rect.y, 0);\n var x2 = Math.min(rect.width + rect.x, api.getWidth());\n var y2 = Math.min(rect.height + rect.y, api.getHeight());\n var width = x2 - x;\n var height = y2 - y;\n var dims = [data.mapDimension('lng'), data.mapDimension('lat'), data.mapDimension('value')];\n var points = data.mapArray(dims, function (lng, lat, value) {\n var pt = geo.dataToPoint([lng, lat]);\n pt[0] -= x;\n pt[1] -= y;\n pt.push(value);\n return pt;\n });\n var dataExtent = visualMapModel.getExtent();\n var isInRange = visualMapModel.type === 'visualMap.continuous' ? getIsInContinuousRange(dataExtent, visualMapModel.option.range) : getIsInPiecewiseRange(dataExtent, visualMapModel.getPieceList(), visualMapModel.option.selected);\n hmLayer.update(points, width, height, inRangeVisuals.color.getNormalizer(), {\n inRange: inRangeVisuals.color.getColorMapper(),\n outOfRange: outOfRangeVisuals.color.getColorMapper()\n }, isInRange);\n var img = new graphic.Image({\n style: {\n width: width,\n height: height,\n x: x,\n y: y,\n image: hmLayer.canvas\n },\n silent: true\n });\n this.group.add(img);\n };\n\n HeatmapView.type = 'heatmap';\n return HeatmapView;\n}(ChartView);\n\nexport default HeatmapView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport HeatmapView from './HeatmapView.js';\nimport HeatmapSeriesModel from './HeatmapSeries.js';\nexport function install(registers) {\n registers.registerChartView(HeatmapView);\n registers.registerSeriesModel(HeatmapSeriesModel);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\n/**\n * Provide effect for line\n */\n\nimport * as graphic from '../../util/graphic.js';\nimport Line from './Line.js';\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { createSymbol } from '../../util/symbol.js';\nimport * as vec2 from 'zrender/lib/core/vector.js';\nimport * as curveUtil from 'zrender/lib/core/curve.js';\n\nvar EffectLine =\n/** @class */\nfunction (_super) {\n __extends(EffectLine, _super);\n\n function EffectLine(lineData, idx, seriesScope) {\n var _this = _super.call(this) || this;\n\n _this.add(_this.createLine(lineData, idx, seriesScope));\n\n _this._updateEffectSymbol(lineData, idx);\n\n return _this;\n }\n\n EffectLine.prototype.createLine = function (lineData, idx, seriesScope) {\n return new Line(lineData, idx, seriesScope);\n };\n\n EffectLine.prototype._updateEffectSymbol = function (lineData, idx) {\n var itemModel = lineData.getItemModel(idx);\n var effectModel = itemModel.getModel('effect');\n var size = effectModel.get('symbolSize');\n var symbolType = effectModel.get('symbol');\n\n if (!zrUtil.isArray(size)) {\n size = [size, size];\n }\n\n var lineStyle = lineData.getItemVisual(idx, 'style');\n var color = effectModel.get('color') || lineStyle && lineStyle.stroke;\n var symbol = this.childAt(1);\n\n if (this._symbolType !== symbolType) {\n // Remove previous\n this.remove(symbol);\n symbol = createSymbol(symbolType, -0.5, -0.5, 1, 1, color);\n symbol.z2 = 100;\n symbol.culling = true;\n this.add(symbol);\n } // Symbol may be removed if loop is false\n\n\n if (!symbol) {\n return;\n } // Shadow color is same with color in default\n\n\n symbol.setStyle('shadowColor', color);\n symbol.setStyle(effectModel.getItemStyle(['color']));\n symbol.scaleX = size[0];\n symbol.scaleY = size[1];\n symbol.setColor(color);\n this._symbolType = symbolType;\n this._symbolScale = size;\n\n this._updateEffectAnimation(lineData, effectModel, idx);\n };\n\n EffectLine.prototype._updateEffectAnimation = function (lineData, effectModel, idx) {\n var symbol = this.childAt(1);\n\n if (!symbol) {\n return;\n }\n\n var points = lineData.getItemLayout(idx);\n var period = effectModel.get('period') * 1000;\n var loop = effectModel.get('loop');\n var roundTrip = effectModel.get('roundTrip');\n var constantSpeed = effectModel.get('constantSpeed');\n var delayExpr = zrUtil.retrieve(effectModel.get('delay'), function (idx) {\n return idx / lineData.count() * period / 3;\n }); // Ignore when updating\n\n symbol.ignore = true;\n\n this._updateAnimationPoints(symbol, points);\n\n if (constantSpeed > 0) {\n period = this._getLineLength(symbol) / constantSpeed * 1000;\n }\n\n if (period !== this._period || loop !== this._loop || roundTrip !== this._roundTrip) {\n symbol.stopAnimation();\n var delayNum = void 0;\n\n if (zrUtil.isFunction(delayExpr)) {\n delayNum = delayExpr(idx);\n } else {\n delayNum = delayExpr;\n }\n\n if (symbol.__t > 0) {\n delayNum = -period * symbol.__t;\n }\n\n this._animateSymbol(symbol, period, delayNum, loop, roundTrip);\n }\n\n this._period = period;\n this._loop = loop;\n this._roundTrip = roundTrip;\n };\n\n EffectLine.prototype._animateSymbol = function (symbol, period, delayNum, loop, roundTrip) {\n if (period > 0) {\n symbol.__t = 0;\n var self_1 = this;\n var animator = symbol.animate('', loop).when(roundTrip ? period * 2 : period, {\n __t: roundTrip ? 2 : 1\n }).delay(delayNum).during(function () {\n self_1._updateSymbolPosition(symbol);\n });\n\n if (!loop) {\n animator.done(function () {\n self_1.remove(symbol);\n });\n }\n\n animator.start();\n }\n };\n\n EffectLine.prototype._getLineLength = function (symbol) {\n // Not so accurate\n return vec2.dist(symbol.__p1, symbol.__cp1) + vec2.dist(symbol.__cp1, symbol.__p2);\n };\n\n EffectLine.prototype._updateAnimationPoints = function (symbol, points) {\n symbol.__p1 = points[0];\n symbol.__p2 = points[1];\n symbol.__cp1 = points[2] || [(points[0][0] + points[1][0]) / 2, (points[0][1] + points[1][1]) / 2];\n };\n\n EffectLine.prototype.updateData = function (lineData, idx, seriesScope) {\n this.childAt(0).updateData(lineData, idx, seriesScope);\n\n this._updateEffectSymbol(lineData, idx);\n };\n\n EffectLine.prototype._updateSymbolPosition = function (symbol) {\n var p1 = symbol.__p1;\n var p2 = symbol.__p2;\n var cp1 = symbol.__cp1;\n var t = symbol.__t < 1 ? symbol.__t : 2 - symbol.__t;\n var pos = [symbol.x, symbol.y];\n var lastPos = pos.slice();\n var quadraticAt = curveUtil.quadraticAt;\n var quadraticDerivativeAt = curveUtil.quadraticDerivativeAt;\n pos[0] = quadraticAt(p1[0], cp1[0], p2[0], t);\n pos[1] = quadraticAt(p1[1], cp1[1], p2[1], t); // Tangent\n\n var tx = symbol.__t < 1 ? quadraticDerivativeAt(p1[0], cp1[0], p2[0], t) : quadraticDerivativeAt(p2[0], cp1[0], p1[0], 1 - t);\n var ty = symbol.__t < 1 ? quadraticDerivativeAt(p1[1], cp1[1], p2[1], t) : quadraticDerivativeAt(p2[1], cp1[1], p1[1], 1 - t);\n symbol.rotation = -Math.atan2(ty, tx) - Math.PI / 2; // enable continuity trail for 'line', 'rect', 'roundRect' symbolType\n\n if (this._symbolType === 'line' || this._symbolType === 'rect' || this._symbolType === 'roundRect') {\n if (symbol.__lastT !== undefined && symbol.__lastT < symbol.__t) {\n symbol.scaleY = vec2.dist(lastPos, pos) * 1.05; // make sure the last segment render within endPoint\n\n if (t === 1) {\n pos[0] = lastPos[0] + (pos[0] - lastPos[0]) / 2;\n pos[1] = lastPos[1] + (pos[1] - lastPos[1]) / 2;\n }\n } else if (symbol.__lastT === 1) {\n // After first loop, symbol.__t does NOT start with 0, so connect p1 to pos directly.\n symbol.scaleY = 2 * vec2.dist(p1, pos);\n } else {\n symbol.scaleY = this._symbolScale[1];\n }\n }\n\n symbol.__lastT = symbol.__t;\n symbol.ignore = false;\n symbol.x = pos[0];\n symbol.y = pos[1];\n };\n\n EffectLine.prototype.updateLayout = function (lineData, idx) {\n this.childAt(0).updateLayout(lineData, idx);\n var effectModel = lineData.getItemModel(idx).getModel('effect');\n\n this._updateEffectAnimation(lineData, effectModel, idx);\n };\n\n return EffectLine;\n}(graphic.Group);\n\nexport default EffectLine;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport Polyline from './Polyline.js';\nimport EffectLine from './EffectLine.js';\nimport * as vec2 from 'zrender/lib/core/vector.js';\n\nvar EffectPolyline =\n/** @class */\nfunction (_super) {\n __extends(EffectPolyline, _super);\n\n function EffectPolyline() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this._lastFrame = 0;\n _this._lastFramePercent = 0;\n return _this;\n } // Override\n\n\n EffectPolyline.prototype.createLine = function (lineData, idx, seriesScope) {\n return new Polyline(lineData, idx, seriesScope);\n };\n\n ; // Override\n\n EffectPolyline.prototype._updateAnimationPoints = function (symbol, points) {\n this._points = points;\n var accLenArr = [0];\n var len = 0;\n\n for (var i = 1; i < points.length; i++) {\n var p1 = points[i - 1];\n var p2 = points[i];\n len += vec2.dist(p1, p2);\n accLenArr.push(len);\n }\n\n if (len === 0) {\n this._length = 0;\n return;\n }\n\n for (var i = 0; i < accLenArr.length; i++) {\n accLenArr[i] /= len;\n }\n\n this._offsets = accLenArr;\n this._length = len;\n };\n\n ; // Override\n\n EffectPolyline.prototype._getLineLength = function () {\n return this._length;\n };\n\n ; // Override\n\n EffectPolyline.prototype._updateSymbolPosition = function (symbol) {\n var t = symbol.__t < 1 ? symbol.__t : 2 - symbol.__t;\n var points = this._points;\n var offsets = this._offsets;\n var len = points.length;\n\n if (!offsets) {\n // Has length 0\n return;\n }\n\n var lastFrame = this._lastFrame;\n var frame;\n\n if (t < this._lastFramePercent) {\n // Start from the next frame\n // PENDING start from lastFrame ?\n var start = Math.min(lastFrame + 1, len - 1);\n\n for (frame = start; frame >= 0; frame--) {\n if (offsets[frame] <= t) {\n break;\n }\n } // PENDING really need to do this ?\n\n\n frame = Math.min(frame, len - 2);\n } else {\n for (frame = lastFrame; frame < len; frame++) {\n if (offsets[frame] > t) {\n break;\n }\n }\n\n frame = Math.min(frame - 1, len - 2);\n }\n\n var p = (t - offsets[frame]) / (offsets[frame + 1] - offsets[frame]);\n var p0 = points[frame];\n var p1 = points[frame + 1];\n symbol.x = p0[0] * (1 - p) + p * p1[0];\n symbol.y = p0[1] * (1 - p) + p * p1[1];\n var tx = symbol.__t < 1 ? p1[0] - p0[0] : p0[0] - p1[0];\n var ty = symbol.__t < 1 ? p1[1] - p0[1] : p0[1] - p1[1];\n symbol.rotation = -Math.atan2(ty, tx) - Math.PI / 2;\n this._lastFrame = frame;\n this._lastFramePercent = t;\n symbol.ignore = false;\n };\n\n ;\n return EffectPolyline;\n}(EffectLine);\n\nexport default EffectPolyline;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport { createSymbol, normalizeSymbolOffset, normalizeSymbolSize } from '../../util/symbol.js';\nimport { Group } from '../../util/graphic.js';\nimport { enterEmphasis, leaveEmphasis, toggleHoverEmphasis } from '../../util/states.js';\nimport SymbolClz from './Symbol.js';\n\nfunction updateRipplePath(rippleGroup, effectCfg) {\n var color = effectCfg.rippleEffectColor || effectCfg.color;\n rippleGroup.eachChild(function (ripplePath) {\n ripplePath.attr({\n z: effectCfg.z,\n zlevel: effectCfg.zlevel,\n style: {\n stroke: effectCfg.brushType === 'stroke' ? color : null,\n fill: effectCfg.brushType === 'fill' ? color : null\n }\n });\n });\n}\n\nvar EffectSymbol =\n/** @class */\nfunction (_super) {\n __extends(EffectSymbol, _super);\n\n function EffectSymbol(data, idx) {\n var _this = _super.call(this) || this;\n\n var symbol = new SymbolClz(data, idx);\n var rippleGroup = new Group();\n\n _this.add(symbol);\n\n _this.add(rippleGroup);\n\n _this.updateData(data, idx);\n\n return _this;\n }\n\n EffectSymbol.prototype.stopEffectAnimation = function () {\n this.childAt(1).removeAll();\n };\n\n EffectSymbol.prototype.startEffectAnimation = function (effectCfg) {\n var symbolType = effectCfg.symbolType;\n var color = effectCfg.color;\n var rippleNumber = effectCfg.rippleNumber;\n var rippleGroup = this.childAt(1);\n\n for (var i = 0; i < rippleNumber; i++) {\n // If width/height are set too small (e.g., set to 1) on ios10\n // and macOS Sierra, a circle stroke become a rect, no matter what\n // the scale is set. So we set width/height as 2. See #4136.\n var ripplePath = createSymbol(symbolType, -1, -1, 2, 2, color);\n ripplePath.attr({\n style: {\n strokeNoScale: true\n },\n z2: 99,\n silent: true,\n scaleX: 0.5,\n scaleY: 0.5\n });\n var delay = -i / rippleNumber * effectCfg.period + effectCfg.effectOffset;\n ripplePath.animate('', true).when(effectCfg.period, {\n scaleX: effectCfg.rippleScale / 2,\n scaleY: effectCfg.rippleScale / 2\n }).delay(delay).start();\n ripplePath.animateStyle(true).when(effectCfg.period, {\n opacity: 0\n }).delay(delay).start();\n rippleGroup.add(ripplePath);\n }\n\n updateRipplePath(rippleGroup, effectCfg);\n };\n /**\n * Update effect symbol\n */\n\n\n EffectSymbol.prototype.updateEffectAnimation = function (effectCfg) {\n var oldEffectCfg = this._effectCfg;\n var rippleGroup = this.childAt(1); // Must reinitialize effect if following configuration changed\n\n var DIFFICULT_PROPS = ['symbolType', 'period', 'rippleScale', 'rippleNumber'];\n\n for (var i = 0; i < DIFFICULT_PROPS.length; i++) {\n var propName = DIFFICULT_PROPS[i];\n\n if (oldEffectCfg[propName] !== effectCfg[propName]) {\n this.stopEffectAnimation();\n this.startEffectAnimation(effectCfg);\n return;\n }\n }\n\n updateRipplePath(rippleGroup, effectCfg);\n };\n /**\n * Highlight symbol\n */\n\n\n EffectSymbol.prototype.highlight = function () {\n enterEmphasis(this);\n };\n /**\n * Downplay symbol\n */\n\n\n EffectSymbol.prototype.downplay = function () {\n leaveEmphasis(this);\n };\n\n EffectSymbol.prototype.getSymbolType = function () {\n var symbol = this.childAt(0);\n return symbol && symbol.getSymbolType();\n };\n /**\n * Update symbol properties\n */\n\n\n EffectSymbol.prototype.updateData = function (data, idx) {\n var _this = this;\n\n var seriesModel = data.hostModel;\n this.childAt(0).updateData(data, idx);\n var rippleGroup = this.childAt(1);\n var itemModel = data.getItemModel(idx);\n var symbolType = data.getItemVisual(idx, 'symbol');\n var symbolSize = normalizeSymbolSize(data.getItemVisual(idx, 'symbolSize'));\n var symbolStyle = data.getItemVisual(idx, 'style');\n var color = symbolStyle && symbolStyle.fill;\n var emphasisModel = itemModel.getModel('emphasis');\n rippleGroup.setScale(symbolSize);\n rippleGroup.traverse(function (ripplePath) {\n ripplePath.setStyle('fill', color);\n });\n var symbolOffset = normalizeSymbolOffset(data.getItemVisual(idx, 'symbolOffset'), symbolSize);\n\n if (symbolOffset) {\n rippleGroup.x = symbolOffset[0];\n rippleGroup.y = symbolOffset[1];\n }\n\n var symbolRotate = data.getItemVisual(idx, 'symbolRotate');\n rippleGroup.rotation = (symbolRotate || 0) * Math.PI / 180 || 0;\n var effectCfg = {};\n effectCfg.showEffectOn = seriesModel.get('showEffectOn');\n effectCfg.rippleScale = itemModel.get(['rippleEffect', 'scale']);\n effectCfg.brushType = itemModel.get(['rippleEffect', 'brushType']);\n effectCfg.period = itemModel.get(['rippleEffect', 'period']) * 1000;\n effectCfg.effectOffset = idx / data.count();\n effectCfg.z = seriesModel.getShallow('z') || 0;\n effectCfg.zlevel = seriesModel.getShallow('zlevel') || 0;\n effectCfg.symbolType = symbolType;\n effectCfg.color = color;\n effectCfg.rippleEffectColor = itemModel.get(['rippleEffect', 'color']);\n effectCfg.rippleNumber = itemModel.get(['rippleEffect', 'number']);\n\n if (effectCfg.showEffectOn === 'render') {\n this._effectCfg ? this.updateEffectAnimation(effectCfg) : this.startEffectAnimation(effectCfg);\n this._effectCfg = effectCfg;\n } else {\n // Not keep old effect config\n this._effectCfg = null;\n this.stopEffectAnimation();\n\n this.onHoverStateChange = function (toState) {\n if (toState === 'emphasis') {\n if (effectCfg.showEffectOn !== 'render') {\n _this.startEffectAnimation(effectCfg);\n }\n } else if (toState === 'normal') {\n if (effectCfg.showEffectOn !== 'render') {\n _this.stopEffectAnimation();\n }\n }\n };\n }\n\n this._effectCfg = effectCfg;\n toggleHoverEmphasis(this, emphasisModel.get('focus'), emphasisModel.get('blurScope'), emphasisModel.get('disabled'));\n };\n\n ;\n\n EffectSymbol.prototype.fadeOut = function (cb) {\n cb && cb();\n };\n\n ;\n return EffectSymbol;\n}(Group);\n\nexport default EffectSymbol;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\"; // TODO Batch by color\n\nimport * as graphic from '../../util/graphic.js';\nimport * as lineContain from 'zrender/lib/contain/line.js';\nimport * as quadraticContain from 'zrender/lib/contain/quadratic.js';\nimport { getECData } from '../../util/innerStore.js';\n\nvar LargeLinesPathShape =\n/** @class */\nfunction () {\n function LargeLinesPathShape() {\n this.polyline = false;\n this.curveness = 0;\n this.segs = [];\n }\n\n return LargeLinesPathShape;\n}();\n\nvar LargeLinesPath =\n/** @class */\nfunction (_super) {\n __extends(LargeLinesPath, _super);\n\n function LargeLinesPath(opts) {\n var _this = _super.call(this, opts) || this;\n\n _this._off = 0;\n _this.hoverDataIdx = -1;\n return _this;\n }\n\n LargeLinesPath.prototype.reset = function () {\n this.notClear = false;\n this._off = 0;\n };\n\n LargeLinesPath.prototype.getDefaultStyle = function () {\n return {\n stroke: '#000',\n fill: null\n };\n };\n\n LargeLinesPath.prototype.getDefaultShape = function () {\n return new LargeLinesPathShape();\n };\n\n LargeLinesPath.prototype.buildPath = function (ctx, shape) {\n var segs = shape.segs;\n var curveness = shape.curveness;\n var i;\n\n if (shape.polyline) {\n for (i = this._off; i < segs.length;) {\n var count = segs[i++];\n\n if (count > 0) {\n ctx.moveTo(segs[i++], segs[i++]);\n\n for (var k = 1; k < count; k++) {\n ctx.lineTo(segs[i++], segs[i++]);\n }\n }\n }\n } else {\n for (i = this._off; i < segs.length;) {\n var x0 = segs[i++];\n var y0 = segs[i++];\n var x1 = segs[i++];\n var y1 = segs[i++];\n ctx.moveTo(x0, y0);\n\n if (curveness > 0) {\n var x2 = (x0 + x1) / 2 - (y0 - y1) * curveness;\n var y2 = (y0 + y1) / 2 - (x1 - x0) * curveness;\n ctx.quadraticCurveTo(x2, y2, x1, y1);\n } else {\n ctx.lineTo(x1, y1);\n }\n }\n }\n\n if (this.incremental) {\n this._off = i;\n this.notClear = true;\n }\n };\n\n LargeLinesPath.prototype.findDataIndex = function (x, y) {\n var shape = this.shape;\n var segs = shape.segs;\n var curveness = shape.curveness;\n var lineWidth = this.style.lineWidth;\n\n if (shape.polyline) {\n var dataIndex = 0;\n\n for (var i = 0; i < segs.length;) {\n var count = segs[i++];\n\n if (count > 0) {\n var x0 = segs[i++];\n var y0 = segs[i++];\n\n for (var k = 1; k < count; k++) {\n var x1 = segs[i++];\n var y1 = segs[i++];\n\n if (lineContain.containStroke(x0, y0, x1, y1, lineWidth, x, y)) {\n return dataIndex;\n }\n }\n }\n\n dataIndex++;\n }\n } else {\n var dataIndex = 0;\n\n for (var i = 0; i < segs.length;) {\n var x0 = segs[i++];\n var y0 = segs[i++];\n var x1 = segs[i++];\n var y1 = segs[i++];\n\n if (curveness > 0) {\n var x2 = (x0 + x1) / 2 - (y0 - y1) * curveness;\n var y2 = (y0 + y1) / 2 - (x1 - x0) * curveness;\n\n if (quadraticContain.containStroke(x0, y0, x2, y2, x1, y1, lineWidth, x, y)) {\n return dataIndex;\n }\n } else {\n if (lineContain.containStroke(x0, y0, x1, y1, lineWidth, x, y)) {\n return dataIndex;\n }\n }\n\n dataIndex++;\n }\n }\n\n return -1;\n };\n\n LargeLinesPath.prototype.contain = function (x, y) {\n var localPos = this.transformCoordToLocal(x, y);\n var rect = this.getBoundingRect();\n x = localPos[0];\n y = localPos[1];\n\n if (rect.contain(x, y)) {\n // Cache found data index.\n var dataIdx = this.hoverDataIdx = this.findDataIndex(x, y);\n return dataIdx >= 0;\n }\n\n this.hoverDataIdx = -1;\n return false;\n };\n\n LargeLinesPath.prototype.getBoundingRect = function () {\n // Ignore stroke for large symbol draw.\n var rect = this._rect;\n\n if (!rect) {\n var shape = this.shape;\n var points = shape.segs;\n var minX = Infinity;\n var minY = Infinity;\n var maxX = -Infinity;\n var maxY = -Infinity;\n\n for (var i = 0; i < points.length;) {\n var x = points[i++];\n var y = points[i++];\n minX = Math.min(x, minX);\n maxX = Math.max(x, maxX);\n minY = Math.min(y, minY);\n maxY = Math.max(y, maxY);\n }\n\n rect = this._rect = new graphic.BoundingRect(minX, minY, maxX, maxY);\n }\n\n return rect;\n };\n\n return LargeLinesPath;\n}(graphic.Path);\n\nvar LargeLineDraw =\n/** @class */\nfunction () {\n function LargeLineDraw() {\n this.group = new graphic.Group();\n }\n /**\n * Update symbols draw by new data\n */\n\n\n LargeLineDraw.prototype.updateData = function (data) {\n this._clear();\n\n var lineEl = this._create();\n\n lineEl.setShape({\n segs: data.getLayout('linesPoints')\n });\n\n this._setCommon(lineEl, data);\n };\n\n ;\n /**\n * @override\n */\n\n LargeLineDraw.prototype.incrementalPrepareUpdate = function (data) {\n this.group.removeAll();\n\n this._clear();\n };\n\n ;\n /**\n * @override\n */\n\n LargeLineDraw.prototype.incrementalUpdate = function (taskParams, data) {\n var lastAdded = this._newAdded[0];\n var linePoints = data.getLayout('linesPoints');\n var oldSegs = lastAdded && lastAdded.shape.segs; // Merging the exists. Each element has 1e4 points.\n // Consider the performance balance between too much elements and too much points in one shape(may affect hover optimization)\n\n if (oldSegs && oldSegs.length < 2e4) {\n var oldLen = oldSegs.length;\n var newSegs = new Float32Array(oldLen + linePoints.length); // Concat two array\n\n newSegs.set(oldSegs);\n newSegs.set(linePoints, oldLen);\n lastAdded.setShape({\n segs: newSegs\n });\n } else {\n // Clear\n this._newAdded = [];\n\n var lineEl = this._create();\n\n lineEl.incremental = true;\n lineEl.setShape({\n segs: linePoints\n });\n\n this._setCommon(lineEl, data);\n\n lineEl.__startIndex = taskParams.start;\n }\n };\n /**\n * @override\n */\n\n\n LargeLineDraw.prototype.remove = function () {\n this._clear();\n };\n\n LargeLineDraw.prototype.eachRendered = function (cb) {\n this._newAdded[0] && cb(this._newAdded[0]);\n };\n\n LargeLineDraw.prototype._create = function () {\n var lineEl = new LargeLinesPath({\n cursor: 'default',\n ignoreCoarsePointer: true\n });\n\n this._newAdded.push(lineEl);\n\n this.group.add(lineEl);\n return lineEl;\n };\n\n LargeLineDraw.prototype._setCommon = function (lineEl, data, isIncremental) {\n var hostModel = data.hostModel;\n lineEl.setShape({\n polyline: hostModel.get('polyline'),\n curveness: hostModel.get(['lineStyle', 'curveness'])\n });\n lineEl.useStyle(hostModel.getModel('lineStyle').getLineStyle());\n lineEl.style.strokeNoScale = true;\n var style = data.getVisual('style');\n\n if (style && style.stroke) {\n lineEl.setStyle('stroke', style.stroke);\n }\n\n lineEl.setStyle('fill', null);\n var ecData = getECData(lineEl); // Enable tooltip\n // PENDING May have performance issue when path is extremely large\n\n ecData.seriesIndex = hostModel.seriesIndex;\n lineEl.on('mousemove', function (e) {\n ecData.dataIndex = null;\n var dataIndex = lineEl.hoverDataIdx;\n\n if (dataIndex > 0) {\n // Provide dataIndex for tooltip\n ecData.dataIndex = dataIndex + lineEl.__startIndex;\n }\n });\n };\n\n ;\n\n LargeLineDraw.prototype._clear = function () {\n this._newAdded = [];\n this.group.removeAll();\n };\n\n ;\n return LargeLineDraw;\n}();\n\nexport default LargeLineDraw;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\n/* global Float32Array */\n// TODO Batch by color\n\nimport * as graphic from '../../util/graphic.js';\nimport { createSymbol } from '../../util/symbol.js';\nimport { getECData } from '../../util/innerStore.js';\nvar BOOST_SIZE_THRESHOLD = 4;\n\nvar LargeSymbolPathShape =\n/** @class */\nfunction () {\n function LargeSymbolPathShape() {}\n\n return LargeSymbolPathShape;\n}();\n\nvar LargeSymbolPath =\n/** @class */\nfunction (_super) {\n __extends(LargeSymbolPath, _super);\n\n function LargeSymbolPath(opts) {\n var _this = _super.call(this, opts) || this;\n\n _this._off = 0;\n _this.hoverDataIdx = -1;\n return _this;\n }\n\n LargeSymbolPath.prototype.getDefaultShape = function () {\n return new LargeSymbolPathShape();\n };\n\n LargeSymbolPath.prototype.reset = function () {\n this.notClear = false;\n this._off = 0;\n };\n\n LargeSymbolPath.prototype.buildPath = function (path, shape) {\n var points = shape.points;\n var size = shape.size;\n var symbolProxy = this.symbolProxy;\n var symbolProxyShape = symbolProxy.shape;\n var ctx = path.getContext ? path.getContext() : path;\n var canBoost = ctx && size[0] < BOOST_SIZE_THRESHOLD;\n var softClipShape = this.softClipShape;\n var i; // Do draw in afterBrush.\n\n if (canBoost) {\n this._ctx = ctx;\n return;\n }\n\n this._ctx = null;\n\n for (i = this._off; i < points.length;) {\n var x = points[i++];\n var y = points[i++];\n\n if (isNaN(x) || isNaN(y)) {\n continue;\n }\n\n if (softClipShape && !softClipShape.contain(x, y)) {\n continue;\n }\n\n symbolProxyShape.x = x - size[0] / 2;\n symbolProxyShape.y = y - size[1] / 2;\n symbolProxyShape.width = size[0];\n symbolProxyShape.height = size[1];\n symbolProxy.buildPath(path, symbolProxyShape, true);\n }\n\n if (this.incremental) {\n this._off = i;\n this.notClear = true;\n }\n };\n\n LargeSymbolPath.prototype.afterBrush = function () {\n var shape = this.shape;\n var points = shape.points;\n var size = shape.size;\n var ctx = this._ctx;\n var softClipShape = this.softClipShape;\n var i;\n\n if (!ctx) {\n return;\n } // PENDING If style or other canvas status changed?\n\n\n for (i = this._off; i < points.length;) {\n var x = points[i++];\n var y = points[i++];\n\n if (isNaN(x) || isNaN(y)) {\n continue;\n }\n\n if (softClipShape && !softClipShape.contain(x, y)) {\n continue;\n } // fillRect is faster than building a rect path and draw.\n // And it support light globalCompositeOperation.\n\n\n ctx.fillRect(x - size[0] / 2, y - size[1] / 2, size[0], size[1]);\n }\n\n if (this.incremental) {\n this._off = i;\n this.notClear = true;\n }\n };\n\n LargeSymbolPath.prototype.findDataIndex = function (x, y) {\n // TODO ???\n // Consider transform\n var shape = this.shape;\n var points = shape.points;\n var size = shape.size;\n var w = Math.max(size[0], 4);\n var h = Math.max(size[1], 4); // Not consider transform\n // Treat each element as a rect\n // top down traverse\n\n for (var idx = points.length / 2 - 1; idx >= 0; idx--) {\n var i = idx * 2;\n var x0 = points[i] - w / 2;\n var y0 = points[i + 1] - h / 2;\n\n if (x >= x0 && y >= y0 && x <= x0 + w && y <= y0 + h) {\n return idx;\n }\n }\n\n return -1;\n };\n\n LargeSymbolPath.prototype.contain = function (x, y) {\n var localPos = this.transformCoordToLocal(x, y);\n var rect = this.getBoundingRect();\n x = localPos[0];\n y = localPos[1];\n\n if (rect.contain(x, y)) {\n // Cache found data index.\n var dataIdx = this.hoverDataIdx = this.findDataIndex(x, y);\n return dataIdx >= 0;\n }\n\n this.hoverDataIdx = -1;\n return false;\n };\n\n LargeSymbolPath.prototype.getBoundingRect = function () {\n // Ignore stroke for large symbol draw.\n var rect = this._rect;\n\n if (!rect) {\n var shape = this.shape;\n var points = shape.points;\n var size = shape.size;\n var w = size[0];\n var h = size[1];\n var minX = Infinity;\n var minY = Infinity;\n var maxX = -Infinity;\n var maxY = -Infinity;\n\n for (var i = 0; i < points.length;) {\n var x = points[i++];\n var y = points[i++];\n minX = Math.min(x, minX);\n maxX = Math.max(x, maxX);\n minY = Math.min(y, minY);\n maxY = Math.max(y, maxY);\n }\n\n rect = this._rect = new graphic.BoundingRect(minX - w / 2, minY - h / 2, maxX - minX + w, maxY - minY + h);\n }\n\n return rect;\n };\n\n return LargeSymbolPath;\n}(graphic.Path);\n\nvar LargeSymbolDraw =\n/** @class */\nfunction () {\n function LargeSymbolDraw() {\n this.group = new graphic.Group();\n }\n /**\n * Update symbols draw by new data\n */\n\n\n LargeSymbolDraw.prototype.updateData = function (data, opt) {\n this._clear();\n\n var symbolEl = this._create();\n\n symbolEl.setShape({\n points: data.getLayout('points')\n });\n\n this._setCommon(symbolEl, data, opt);\n };\n\n LargeSymbolDraw.prototype.updateLayout = function (data) {\n var points = data.getLayout('points');\n this.group.eachChild(function (child) {\n if (child.startIndex != null) {\n var len = (child.endIndex - child.startIndex) * 2;\n var byteOffset = child.startIndex * 4 * 2;\n points = new Float32Array(points.buffer, byteOffset, len);\n }\n\n child.setShape('points', points); // Reset draw cursor.\n\n child.reset();\n });\n };\n\n LargeSymbolDraw.prototype.incrementalPrepareUpdate = function (data) {\n this._clear();\n };\n\n LargeSymbolDraw.prototype.incrementalUpdate = function (taskParams, data, opt) {\n var lastAdded = this._newAdded[0];\n var points = data.getLayout('points');\n var oldPoints = lastAdded && lastAdded.shape.points; // Merging the exists. Each element has 1e4 points.\n // Consider the performance balance between too much elements and too much points in one shape(may affect hover optimization)\n\n if (oldPoints && oldPoints.length < 2e4) {\n var oldLen = oldPoints.length;\n var newPoints = new Float32Array(oldLen + points.length); // Concat two array\n\n newPoints.set(oldPoints);\n newPoints.set(points, oldLen); // Update endIndex\n\n lastAdded.endIndex = taskParams.end;\n lastAdded.setShape({\n points: newPoints\n });\n } else {\n // Clear\n this._newAdded = [];\n\n var symbolEl = this._create();\n\n symbolEl.startIndex = taskParams.start;\n symbolEl.endIndex = taskParams.end;\n symbolEl.incremental = true;\n symbolEl.setShape({\n points: points\n });\n\n this._setCommon(symbolEl, data, opt);\n }\n };\n\n LargeSymbolDraw.prototype.eachRendered = function (cb) {\n this._newAdded[0] && cb(this._newAdded[0]);\n };\n\n LargeSymbolDraw.prototype._create = function () {\n var symbolEl = new LargeSymbolPath({\n cursor: 'default'\n });\n symbolEl.ignoreCoarsePointer = true;\n this.group.add(symbolEl);\n\n this._newAdded.push(symbolEl);\n\n return symbolEl;\n };\n\n LargeSymbolDraw.prototype._setCommon = function (symbolEl, data, opt) {\n var hostModel = data.hostModel;\n opt = opt || {};\n var size = data.getVisual('symbolSize');\n symbolEl.setShape('size', size instanceof Array ? size : [size, size]);\n symbolEl.softClipShape = opt.clipShape || null; // Create symbolProxy to build path for each data\n\n symbolEl.symbolProxy = createSymbol(data.getVisual('symbol'), 0, 0, 0, 0); // Use symbolProxy setColor method\n\n symbolEl.setColor = symbolEl.symbolProxy.setColor;\n var extrudeShadow = symbolEl.shape.size[0] < BOOST_SIZE_THRESHOLD;\n symbolEl.useStyle( // Draw shadow when doing fillRect is extremely slow.\n hostModel.getModel('itemStyle').getItemStyle(extrudeShadow ? ['color', 'shadowBlur', 'shadowColor'] : ['color']));\n var globalStyle = data.getVisual('style');\n var visualColor = globalStyle && globalStyle.fill;\n\n if (visualColor) {\n symbolEl.setColor(visualColor);\n }\n\n var ecData = getECData(symbolEl); // Enable tooltip\n // PENDING May have performance issue when path is extremely large\n\n ecData.seriesIndex = hostModel.seriesIndex;\n symbolEl.on('mousemove', function (e) {\n ecData.dataIndex = null;\n var dataIndex = symbolEl.hoverDataIdx;\n\n if (dataIndex >= 0) {\n // Provide dataIndex for tooltip\n ecData.dataIndex = dataIndex + (symbolEl.startIndex || 0);\n }\n });\n };\n\n LargeSymbolDraw.prototype.remove = function () {\n this._clear();\n };\n\n LargeSymbolDraw.prototype._clear = function () {\n this._newAdded = [];\n this.group.removeAll();\n };\n\n return LargeSymbolDraw;\n}();\n\nexport default LargeSymbolDraw;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport { isArray, each } from 'zrender/lib/core/util.js';\nimport * as vector from 'zrender/lib/core/vector.js';\nimport * as symbolUtil from '../../util/symbol.js';\nimport ECLinePath from './LinePath.js';\nimport * as graphic from '../../util/graphic.js';\nimport { toggleHoverEmphasis, enterEmphasis, leaveEmphasis, SPECIAL_STATES } from '../../util/states.js';\nimport { getLabelStatesModels, setLabelStyle } from '../../label/labelStyle.js';\nimport { round } from '../../util/number.js';\nvar SYMBOL_CATEGORIES = ['fromSymbol', 'toSymbol'];\n\nfunction makeSymbolTypeKey(symbolCategory) {\n return '_' + symbolCategory + 'Type';\n}\n/**\n * @inner\n */\n\n\nfunction createSymbol(name, lineData, idx) {\n var symbolType = lineData.getItemVisual(idx, name);\n\n if (!symbolType || symbolType === 'none') {\n return;\n }\n\n var symbolSize = lineData.getItemVisual(idx, name + 'Size');\n var symbolRotate = lineData.getItemVisual(idx, name + 'Rotate');\n var symbolOffset = lineData.getItemVisual(idx, name + 'Offset');\n var symbolKeepAspect = lineData.getItemVisual(idx, name + 'KeepAspect');\n var symbolSizeArr = symbolUtil.normalizeSymbolSize(symbolSize);\n var symbolOffsetArr = symbolUtil.normalizeSymbolOffset(symbolOffset || 0, symbolSizeArr);\n var symbolPath = symbolUtil.createSymbol(symbolType, -symbolSizeArr[0] / 2 + symbolOffsetArr[0], -symbolSizeArr[1] / 2 + symbolOffsetArr[1], symbolSizeArr[0], symbolSizeArr[1], null, symbolKeepAspect);\n symbolPath.__specifiedRotation = symbolRotate == null || isNaN(symbolRotate) ? void 0 : +symbolRotate * Math.PI / 180 || 0;\n symbolPath.name = name;\n return symbolPath;\n}\n\nfunction createLine(points) {\n var line = new ECLinePath({\n name: 'line',\n subPixelOptimize: true\n });\n setLinePoints(line.shape, points);\n return line;\n}\n\nfunction setLinePoints(targetShape, points) {\n targetShape.x1 = points[0][0];\n targetShape.y1 = points[0][1];\n targetShape.x2 = points[1][0];\n targetShape.y2 = points[1][1];\n targetShape.percent = 1;\n var cp1 = points[2];\n\n if (cp1) {\n targetShape.cpx1 = cp1[0];\n targetShape.cpy1 = cp1[1];\n } else {\n targetShape.cpx1 = NaN;\n targetShape.cpy1 = NaN;\n }\n}\n\nvar Line =\n/** @class */\nfunction (_super) {\n __extends(Line, _super);\n\n function Line(lineData, idx, seriesScope) {\n var _this = _super.call(this) || this;\n\n _this._createLine(lineData, idx, seriesScope);\n\n return _this;\n }\n\n Line.prototype._createLine = function (lineData, idx, seriesScope) {\n var seriesModel = lineData.hostModel;\n var linePoints = lineData.getItemLayout(idx);\n var line = createLine(linePoints);\n line.shape.percent = 0;\n graphic.initProps(line, {\n shape: {\n percent: 1\n }\n }, seriesModel, idx);\n this.add(line);\n each(SYMBOL_CATEGORIES, function (symbolCategory) {\n var symbol = createSymbol(symbolCategory, lineData, idx); // symbols must added after line to make sure\n // it will be updated after line#update.\n // Or symbol position and rotation update in line#beforeUpdate will be one frame slow\n\n this.add(symbol);\n this[makeSymbolTypeKey(symbolCategory)] = lineData.getItemVisual(idx, symbolCategory);\n }, this);\n\n this._updateCommonStl(lineData, idx, seriesScope);\n }; // TODO More strict on the List type in parameters?\n\n\n Line.prototype.updateData = function (lineData, idx, seriesScope) {\n var seriesModel = lineData.hostModel;\n var line = this.childOfName('line');\n var linePoints = lineData.getItemLayout(idx);\n var target = {\n shape: {}\n };\n setLinePoints(target.shape, linePoints);\n graphic.updateProps(line, target, seriesModel, idx);\n each(SYMBOL_CATEGORIES, function (symbolCategory) {\n var symbolType = lineData.getItemVisual(idx, symbolCategory);\n var key = makeSymbolTypeKey(symbolCategory); // Symbol changed\n\n if (this[key] !== symbolType) {\n this.remove(this.childOfName(symbolCategory));\n var symbol = createSymbol(symbolCategory, lineData, idx);\n this.add(symbol);\n }\n\n this[key] = symbolType;\n }, this);\n\n this._updateCommonStl(lineData, idx, seriesScope);\n };\n\n ;\n\n Line.prototype.getLinePath = function () {\n return this.childAt(0);\n };\n\n Line.prototype._updateCommonStl = function (lineData, idx, seriesScope) {\n var seriesModel = lineData.hostModel;\n var line = this.childOfName('line');\n var emphasisLineStyle = seriesScope && seriesScope.emphasisLineStyle;\n var blurLineStyle = seriesScope && seriesScope.blurLineStyle;\n var selectLineStyle = seriesScope && seriesScope.selectLineStyle;\n var labelStatesModels = seriesScope && seriesScope.labelStatesModels;\n var emphasisDisabled = seriesScope && seriesScope.emphasisDisabled;\n var focus = seriesScope && seriesScope.focus;\n var blurScope = seriesScope && seriesScope.blurScope; // Optimization for large dataset\n\n if (!seriesScope || lineData.hasItemOption) {\n var itemModel = lineData.getItemModel(idx);\n var emphasisModel = itemModel.getModel('emphasis');\n emphasisLineStyle = emphasisModel.getModel('lineStyle').getLineStyle();\n blurLineStyle = itemModel.getModel(['blur', 'lineStyle']).getLineStyle();\n selectLineStyle = itemModel.getModel(['select', 'lineStyle']).getLineStyle();\n emphasisDisabled = emphasisModel.get('disabled');\n focus = emphasisModel.get('focus');\n blurScope = emphasisModel.get('blurScope');\n labelStatesModels = getLabelStatesModels(itemModel);\n }\n\n var lineStyle = lineData.getItemVisual(idx, 'style');\n var visualColor = lineStyle.stroke;\n line.useStyle(lineStyle);\n line.style.fill = null;\n line.style.strokeNoScale = true;\n line.ensureState('emphasis').style = emphasisLineStyle;\n line.ensureState('blur').style = blurLineStyle;\n line.ensureState('select').style = selectLineStyle; // Update symbol\n\n each(SYMBOL_CATEGORIES, function (symbolCategory) {\n var symbol = this.childOfName(symbolCategory);\n\n if (symbol) {\n // Share opacity and color with line.\n symbol.setColor(visualColor);\n symbol.style.opacity = lineStyle.opacity;\n\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\n var stateName = SPECIAL_STATES[i];\n var lineState = line.getState(stateName);\n\n if (lineState) {\n var lineStateStyle = lineState.style || {};\n var state = symbol.ensureState(stateName);\n var stateStyle = state.style || (state.style = {});\n\n if (lineStateStyle.stroke != null) {\n stateStyle[symbol.__isEmptyBrush ? 'stroke' : 'fill'] = lineStateStyle.stroke;\n }\n\n if (lineStateStyle.opacity != null) {\n stateStyle.opacity = lineStateStyle.opacity;\n }\n }\n }\n\n symbol.markRedraw();\n }\n }, this);\n var rawVal = seriesModel.getRawValue(idx);\n setLabelStyle(this, labelStatesModels, {\n labelDataIndex: idx,\n labelFetcher: {\n getFormattedLabel: function (dataIndex, stateName) {\n return seriesModel.getFormattedLabel(dataIndex, stateName, lineData.dataType);\n }\n },\n inheritColor: visualColor || '#000',\n defaultOpacity: lineStyle.opacity,\n defaultText: (rawVal == null ? lineData.getName(idx) : isFinite(rawVal) ? round(rawVal) : rawVal) + ''\n });\n var label = this.getTextContent(); // Always set `textStyle` even if `normalStyle.text` is null, because default\n // values have to be set on `normalStyle`.\n\n if (label) {\n var labelNormalModel = labelStatesModels.normal;\n label.__align = label.style.align;\n label.__verticalAlign = label.style.verticalAlign; // 'start', 'middle', 'end'\n\n label.__position = labelNormalModel.get('position') || 'middle';\n var distance = labelNormalModel.get('distance');\n\n if (!isArray(distance)) {\n distance = [distance, distance];\n }\n\n label.__labelDistance = distance;\n }\n\n this.setTextConfig({\n position: null,\n local: true,\n inside: false // Can't be inside for stroke element.\n\n });\n toggleHoverEmphasis(this, focus, blurScope, emphasisDisabled);\n };\n\n Line.prototype.highlight = function () {\n enterEmphasis(this);\n };\n\n Line.prototype.downplay = function () {\n leaveEmphasis(this);\n };\n\n Line.prototype.updateLayout = function (lineData, idx) {\n this.setLinePoints(lineData.getItemLayout(idx));\n };\n\n Line.prototype.setLinePoints = function (points) {\n var linePath = this.childOfName('line');\n setLinePoints(linePath.shape, points);\n linePath.dirty();\n };\n\n Line.prototype.beforeUpdate = function () {\n var lineGroup = this;\n var symbolFrom = lineGroup.childOfName('fromSymbol');\n var symbolTo = lineGroup.childOfName('toSymbol');\n var label = lineGroup.getTextContent(); // Quick reject\n\n if (!symbolFrom && !symbolTo && (!label || label.ignore)) {\n return;\n }\n\n var invScale = 1;\n var parentNode = this.parent;\n\n while (parentNode) {\n if (parentNode.scaleX) {\n invScale /= parentNode.scaleX;\n }\n\n parentNode = parentNode.parent;\n }\n\n var line = lineGroup.childOfName('line'); // If line not changed\n // FIXME Parent scale changed\n\n if (!this.__dirty && !line.__dirty) {\n return;\n }\n\n var percent = line.shape.percent;\n var fromPos = line.pointAt(0);\n var toPos = line.pointAt(percent);\n var d = vector.sub([], toPos, fromPos);\n vector.normalize(d, d);\n\n function setSymbolRotation(symbol, percent) {\n // Fix #12388\n // when symbol is set to be 'arrow' in markLine,\n // symbolRotate value will be ignored, and compulsively use tangent angle.\n // rotate by default if symbol rotation is not specified\n var specifiedRotation = symbol.__specifiedRotation;\n\n if (specifiedRotation == null) {\n var tangent = line.tangentAt(percent);\n symbol.attr('rotation', (percent === 1 ? -1 : 1) * Math.PI / 2 - Math.atan2(tangent[1], tangent[0]));\n } else {\n symbol.attr('rotation', specifiedRotation);\n }\n }\n\n if (symbolFrom) {\n symbolFrom.setPosition(fromPos);\n setSymbolRotation(symbolFrom, 0);\n symbolFrom.scaleX = symbolFrom.scaleY = invScale * percent;\n symbolFrom.markRedraw();\n }\n\n if (symbolTo) {\n symbolTo.setPosition(toPos);\n setSymbolRotation(symbolTo, 1);\n symbolTo.scaleX = symbolTo.scaleY = invScale * percent;\n symbolTo.markRedraw();\n }\n\n if (label && !label.ignore) {\n label.x = label.y = 0;\n label.originX = label.originY = 0;\n var textAlign = void 0;\n var textVerticalAlign = void 0;\n var distance = label.__labelDistance;\n var distanceX = distance[0] * invScale;\n var distanceY = distance[1] * invScale;\n var halfPercent = percent / 2;\n var tangent = line.tangentAt(halfPercent);\n var n = [tangent[1], -tangent[0]];\n var cp = line.pointAt(halfPercent);\n\n if (n[1] > 0) {\n n[0] = -n[0];\n n[1] = -n[1];\n }\n\n var dir = tangent[0] < 0 ? -1 : 1;\n\n if (label.__position !== 'start' && label.__position !== 'end') {\n var rotation = -Math.atan2(tangent[1], tangent[0]);\n\n if (toPos[0] < fromPos[0]) {\n rotation = Math.PI + rotation;\n }\n\n label.rotation = rotation;\n }\n\n var dy = void 0;\n\n switch (label.__position) {\n case 'insideStartTop':\n case 'insideMiddleTop':\n case 'insideEndTop':\n case 'middle':\n dy = -distanceY;\n textVerticalAlign = 'bottom';\n break;\n\n case 'insideStartBottom':\n case 'insideMiddleBottom':\n case 'insideEndBottom':\n dy = distanceY;\n textVerticalAlign = 'top';\n break;\n\n default:\n dy = 0;\n textVerticalAlign = 'middle';\n }\n\n switch (label.__position) {\n case 'end':\n label.x = d[0] * distanceX + toPos[0];\n label.y = d[1] * distanceY + toPos[1];\n textAlign = d[0] > 0.8 ? 'left' : d[0] < -0.8 ? 'right' : 'center';\n textVerticalAlign = d[1] > 0.8 ? 'top' : d[1] < -0.8 ? 'bottom' : 'middle';\n break;\n\n case 'start':\n label.x = -d[0] * distanceX + fromPos[0];\n label.y = -d[1] * distanceY + fromPos[1];\n textAlign = d[0] > 0.8 ? 'right' : d[0] < -0.8 ? 'left' : 'center';\n textVerticalAlign = d[1] > 0.8 ? 'bottom' : d[1] < -0.8 ? 'top' : 'middle';\n break;\n\n case 'insideStartTop':\n case 'insideStart':\n case 'insideStartBottom':\n label.x = distanceX * dir + fromPos[0];\n label.y = fromPos[1] + dy;\n textAlign = tangent[0] < 0 ? 'right' : 'left';\n label.originX = -distanceX * dir;\n label.originY = -dy;\n break;\n\n case 'insideMiddleTop':\n case 'insideMiddle':\n case 'insideMiddleBottom':\n case 'middle':\n label.x = cp[0];\n label.y = cp[1] + dy;\n textAlign = 'center';\n label.originY = -dy;\n break;\n\n case 'insideEndTop':\n case 'insideEnd':\n case 'insideEndBottom':\n label.x = -distanceX * dir + toPos[0];\n label.y = toPos[1] + dy;\n textAlign = tangent[0] >= 0 ? 'right' : 'left';\n label.originX = distanceX * dir;\n label.originY = -dy;\n break;\n }\n\n label.scaleX = label.scaleY = invScale;\n label.setStyle({\n // Use the user specified text align and baseline first\n verticalAlign: label.__verticalAlign || textVerticalAlign,\n align: label.__align || textAlign\n });\n }\n };\n\n return Line;\n}(graphic.Group);\n\nexport default Line;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as graphic from '../../util/graphic.js';\nimport LineGroup from './Line.js';\nimport { getLabelStatesModels } from '../../label/labelStyle.js';\n\nvar LineDraw =\n/** @class */\nfunction () {\n function LineDraw(LineCtor) {\n this.group = new graphic.Group();\n this._LineCtor = LineCtor || LineGroup;\n }\n\n LineDraw.prototype.updateData = function (lineData) {\n var _this = this; // Remove progressive els.\n\n\n this._progressiveEls = null;\n var lineDraw = this;\n var group = lineDraw.group;\n var oldLineData = lineDraw._lineData;\n lineDraw._lineData = lineData; // There is no oldLineData only when first rendering or switching from\n // stream mode to normal mode, where previous elements should be removed.\n\n if (!oldLineData) {\n group.removeAll();\n }\n\n var seriesScope = makeSeriesScope(lineData);\n lineData.diff(oldLineData).add(function (idx) {\n _this._doAdd(lineData, idx, seriesScope);\n }).update(function (newIdx, oldIdx) {\n _this._doUpdate(oldLineData, lineData, oldIdx, newIdx, seriesScope);\n }).remove(function (idx) {\n group.remove(oldLineData.getItemGraphicEl(idx));\n }).execute();\n };\n\n ;\n\n LineDraw.prototype.updateLayout = function () {\n var lineData = this._lineData; // Do not support update layout in incremental mode.\n\n if (!lineData) {\n return;\n }\n\n lineData.eachItemGraphicEl(function (el, idx) {\n el.updateLayout(lineData, idx);\n }, this);\n };\n\n ;\n\n LineDraw.prototype.incrementalPrepareUpdate = function (lineData) {\n this._seriesScope = makeSeriesScope(lineData);\n this._lineData = null;\n this.group.removeAll();\n };\n\n ;\n\n LineDraw.prototype.incrementalUpdate = function (taskParams, lineData) {\n this._progressiveEls = [];\n\n function updateIncrementalAndHover(el) {\n if (!el.isGroup && !isEffectObject(el)) {\n el.incremental = true;\n el.ensureState('emphasis').hoverLayer = true;\n }\n }\n\n for (var idx = taskParams.start; idx < taskParams.end; idx++) {\n var itemLayout = lineData.getItemLayout(idx);\n\n if (lineNeedsDraw(itemLayout)) {\n var el = new this._LineCtor(lineData, idx, this._seriesScope);\n el.traverse(updateIncrementalAndHover);\n this.group.add(el);\n lineData.setItemGraphicEl(idx, el);\n\n this._progressiveEls.push(el);\n }\n }\n };\n\n ;\n\n LineDraw.prototype.remove = function () {\n this.group.removeAll();\n };\n\n ;\n\n LineDraw.prototype.eachRendered = function (cb) {\n graphic.traverseElements(this._progressiveEls || this.group, cb);\n };\n\n LineDraw.prototype._doAdd = function (lineData, idx, seriesScope) {\n var itemLayout = lineData.getItemLayout(idx);\n\n if (!lineNeedsDraw(itemLayout)) {\n return;\n }\n\n var el = new this._LineCtor(lineData, idx, seriesScope);\n lineData.setItemGraphicEl(idx, el);\n this.group.add(el);\n };\n\n LineDraw.prototype._doUpdate = function (oldLineData, newLineData, oldIdx, newIdx, seriesScope) {\n var itemEl = oldLineData.getItemGraphicEl(oldIdx);\n\n if (!lineNeedsDraw(newLineData.getItemLayout(newIdx))) {\n this.group.remove(itemEl);\n return;\n }\n\n if (!itemEl) {\n itemEl = new this._LineCtor(newLineData, newIdx, seriesScope);\n } else {\n itemEl.updateData(newLineData, newIdx, seriesScope);\n }\n\n newLineData.setItemGraphicEl(newIdx, itemEl);\n this.group.add(itemEl);\n };\n\n return LineDraw;\n}();\n\nfunction isEffectObject(el) {\n return el.animators && el.animators.length > 0;\n}\n\nfunction makeSeriesScope(lineData) {\n var hostModel = lineData.hostModel;\n var emphasisModel = hostModel.getModel('emphasis');\n return {\n lineStyle: hostModel.getModel('lineStyle').getLineStyle(),\n emphasisLineStyle: emphasisModel.getModel(['lineStyle']).getLineStyle(),\n blurLineStyle: hostModel.getModel(['blur', 'lineStyle']).getLineStyle(),\n selectLineStyle: hostModel.getModel(['select', 'lineStyle']).getLineStyle(),\n emphasisDisabled: emphasisModel.get('disabled'),\n blurScope: emphasisModel.get('blurScope'),\n focus: emphasisModel.get('focus'),\n labelStatesModels: getLabelStatesModels(hostModel)\n };\n}\n\nfunction isPointNaN(pt) {\n return isNaN(pt[0]) || isNaN(pt[1]);\n}\n\nfunction lineNeedsDraw(pts) {\n return pts && !isPointNaN(pts[0]) && !isPointNaN(pts[1]);\n}\n\nexport default LineDraw;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\n/**\n * Line path for bezier and straight line draw\n */\n\nimport * as graphic from '../../util/graphic.js';\nimport * as vec2 from 'zrender/lib/core/vector.js';\nvar straightLineProto = graphic.Line.prototype;\nvar bezierCurveProto = graphic.BezierCurve.prototype;\n\nvar StraightLineShape =\n/** @class */\nfunction () {\n function StraightLineShape() {\n // Start point\n this.x1 = 0;\n this.y1 = 0; // End point\n\n this.x2 = 0;\n this.y2 = 0;\n this.percent = 1;\n }\n\n return StraightLineShape;\n}();\n\nvar CurveShape =\n/** @class */\nfunction (_super) {\n __extends(CurveShape, _super);\n\n function CurveShape() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n return CurveShape;\n}(StraightLineShape);\n\nfunction isStraightLine(shape) {\n return isNaN(+shape.cpx1) || isNaN(+shape.cpy1);\n}\n\nvar ECLinePath =\n/** @class */\nfunction (_super) {\n __extends(ECLinePath, _super);\n\n function ECLinePath(opts) {\n var _this = _super.call(this, opts) || this;\n\n _this.type = 'ec-line';\n return _this;\n }\n\n ECLinePath.prototype.getDefaultStyle = function () {\n return {\n stroke: '#000',\n fill: null\n };\n };\n\n ECLinePath.prototype.getDefaultShape = function () {\n return new StraightLineShape();\n };\n\n ECLinePath.prototype.buildPath = function (ctx, shape) {\n if (isStraightLine(shape)) {\n straightLineProto.buildPath.call(this, ctx, shape);\n } else {\n bezierCurveProto.buildPath.call(this, ctx, shape);\n }\n };\n\n ECLinePath.prototype.pointAt = function (t) {\n if (isStraightLine(this.shape)) {\n return straightLineProto.pointAt.call(this, t);\n } else {\n return bezierCurveProto.pointAt.call(this, t);\n }\n };\n\n ECLinePath.prototype.tangentAt = function (t) {\n var shape = this.shape;\n var p = isStraightLine(shape) ? [shape.x2 - shape.x1, shape.y2 - shape.y1] : bezierCurveProto.tangentAt.call(this, t);\n return vec2.normalize(p, p);\n };\n\n return ECLinePath;\n}(graphic.Path);\n\nexport default ECLinePath;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic.js';\nimport { toggleHoverEmphasis } from '../../util/states.js';\n\nvar Polyline =\n/** @class */\nfunction (_super) {\n __extends(Polyline, _super);\n\n function Polyline(lineData, idx, seriesScope) {\n var _this = _super.call(this) || this;\n\n _this._createPolyline(lineData, idx, seriesScope);\n\n return _this;\n }\n\n Polyline.prototype._createPolyline = function (lineData, idx, seriesScope) {\n // let seriesModel = lineData.hostModel;\n var points = lineData.getItemLayout(idx);\n var line = new graphic.Polyline({\n shape: {\n points: points\n }\n });\n this.add(line);\n\n this._updateCommonStl(lineData, idx, seriesScope);\n };\n\n ;\n\n Polyline.prototype.updateData = function (lineData, idx, seriesScope) {\n var seriesModel = lineData.hostModel;\n var line = this.childAt(0);\n var target = {\n shape: {\n points: lineData.getItemLayout(idx)\n }\n };\n graphic.updateProps(line, target, seriesModel, idx);\n\n this._updateCommonStl(lineData, idx, seriesScope);\n };\n\n ;\n\n Polyline.prototype._updateCommonStl = function (lineData, idx, seriesScope) {\n var line = this.childAt(0);\n var itemModel = lineData.getItemModel(idx);\n var emphasisLineStyle = seriesScope && seriesScope.emphasisLineStyle;\n var focus = seriesScope && seriesScope.focus;\n var blurScope = seriesScope && seriesScope.blurScope;\n var emphasisDisabled = seriesScope && seriesScope.emphasisDisabled;\n\n if (!seriesScope || lineData.hasItemOption) {\n var emphasisModel = itemModel.getModel('emphasis');\n emphasisLineStyle = emphasisModel.getModel('lineStyle').getLineStyle();\n emphasisDisabled = emphasisModel.get('disabled');\n focus = emphasisModel.get('focus');\n blurScope = emphasisModel.get('blurScope');\n }\n\n line.useStyle(lineData.getItemVisual(idx, 'style'));\n line.style.fill = null;\n line.style.strokeNoScale = true;\n var lineEmphasisState = line.ensureState('emphasis');\n lineEmphasisState.style = emphasisLineStyle;\n toggleHoverEmphasis(this, focus, blurScope, emphasisDisabled);\n };\n\n ;\n\n Polyline.prototype.updateLayout = function (lineData, idx) {\n var polyline = this.childAt(0);\n polyline.setShape('points', lineData.getItemLayout(idx));\n };\n\n ;\n return Polyline;\n}(graphic.Group);\n\nexport default Polyline;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport { createSymbol, normalizeSymbolOffset, normalizeSymbolSize } from '../../util/symbol.js';\nimport * as graphic from '../../util/graphic.js';\nimport { getECData } from '../../util/innerStore.js';\nimport { enterEmphasis, leaveEmphasis, toggleHoverEmphasis } from '../../util/states.js';\nimport { getDefaultLabel } from './labelHelper.js';\nimport { extend } from 'zrender/lib/core/util.js';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle.js';\nimport ZRImage from 'zrender/lib/graphic/Image.js';\nimport { saveOldStyle } from '../../animation/basicTransition.js';\n\nvar Symbol =\n/** @class */\nfunction (_super) {\n __extends(Symbol, _super);\n\n function Symbol(data, idx, seriesScope, opts) {\n var _this = _super.call(this) || this;\n\n _this.updateData(data, idx, seriesScope, opts);\n\n return _this;\n }\n\n Symbol.prototype._createSymbol = function (symbolType, data, idx, symbolSize, keepAspect) {\n // Remove paths created before\n this.removeAll(); // let symbolPath = createSymbol(\n // symbolType, -0.5, -0.5, 1, 1, color\n // );\n // If width/height are set too small (e.g., set to 1) on ios10\n // and macOS Sierra, a circle stroke become a rect, no matter what\n // the scale is set. So we set width/height as 2. See #4150.\n\n var symbolPath = createSymbol(symbolType, -1, -1, 2, 2, null, keepAspect);\n symbolPath.attr({\n z2: 100,\n culling: true,\n scaleX: symbolSize[0] / 2,\n scaleY: symbolSize[1] / 2\n }); // Rewrite drift method\n\n symbolPath.drift = driftSymbol;\n this._symbolType = symbolType;\n this.add(symbolPath);\n };\n /**\n * Stop animation\n * @param {boolean} toLastFrame\n */\n\n\n Symbol.prototype.stopSymbolAnimation = function (toLastFrame) {\n this.childAt(0).stopAnimation(null, toLastFrame);\n };\n\n Symbol.prototype.getSymbolType = function () {\n return this._symbolType;\n };\n /**\n * FIXME:\n * Caution: This method breaks the encapsulation of this module,\n * but it indeed brings convenience. So do not use the method\n * unless you detailedly know all the implements of `Symbol`,\n * especially animation.\n *\n * Get symbol path element.\n */\n\n\n Symbol.prototype.getSymbolPath = function () {\n return this.childAt(0);\n };\n /**\n * Highlight symbol\n */\n\n\n Symbol.prototype.highlight = function () {\n enterEmphasis(this.childAt(0));\n };\n /**\n * Downplay symbol\n */\n\n\n Symbol.prototype.downplay = function () {\n leaveEmphasis(this.childAt(0));\n };\n /**\n * @param {number} zlevel\n * @param {number} z\n */\n\n\n Symbol.prototype.setZ = function (zlevel, z) {\n var symbolPath = this.childAt(0);\n symbolPath.zlevel = zlevel;\n symbolPath.z = z;\n };\n\n Symbol.prototype.setDraggable = function (draggable, hasCursorOption) {\n var symbolPath = this.childAt(0);\n symbolPath.draggable = draggable;\n symbolPath.cursor = !hasCursorOption && draggable ? 'move' : symbolPath.cursor;\n };\n /**\n * Update symbol properties\n */\n\n\n Symbol.prototype.updateData = function (data, idx, seriesScope, opts) {\n this.silent = false;\n var symbolType = data.getItemVisual(idx, 'symbol') || 'circle';\n var seriesModel = data.hostModel;\n var symbolSize = Symbol.getSymbolSize(data, idx);\n var isInit = symbolType !== this._symbolType;\n var disableAnimation = opts && opts.disableAnimation;\n\n if (isInit) {\n var keepAspect = data.getItemVisual(idx, 'symbolKeepAspect');\n\n this._createSymbol(symbolType, data, idx, symbolSize, keepAspect);\n } else {\n var symbolPath = this.childAt(0);\n symbolPath.silent = false;\n var target = {\n scaleX: symbolSize[0] / 2,\n scaleY: symbolSize[1] / 2\n };\n disableAnimation ? symbolPath.attr(target) : graphic.updateProps(symbolPath, target, seriesModel, idx);\n saveOldStyle(symbolPath);\n }\n\n this._updateCommon(data, idx, symbolSize, seriesScope, opts);\n\n if (isInit) {\n var symbolPath = this.childAt(0);\n\n if (!disableAnimation) {\n var target = {\n scaleX: this._sizeX,\n scaleY: this._sizeY,\n style: {\n // Always fadeIn. Because it has fadeOut animation when symbol is removed..\n opacity: symbolPath.style.opacity\n }\n };\n symbolPath.scaleX = symbolPath.scaleY = 0;\n symbolPath.style.opacity = 0;\n graphic.initProps(symbolPath, target, seriesModel, idx);\n }\n }\n\n if (disableAnimation) {\n // Must stop leave transition manually if don't call initProps or updateProps.\n this.childAt(0).stopAnimation('leave');\n }\n };\n\n Symbol.prototype._updateCommon = function (data, idx, symbolSize, seriesScope, opts) {\n var symbolPath = this.childAt(0);\n var seriesModel = data.hostModel;\n var emphasisItemStyle;\n var blurItemStyle;\n var selectItemStyle;\n var focus;\n var blurScope;\n var emphasisDisabled;\n var labelStatesModels;\n var hoverScale;\n var cursorStyle;\n\n if (seriesScope) {\n emphasisItemStyle = seriesScope.emphasisItemStyle;\n blurItemStyle = seriesScope.blurItemStyle;\n selectItemStyle = seriesScope.selectItemStyle;\n focus = seriesScope.focus;\n blurScope = seriesScope.blurScope;\n labelStatesModels = seriesScope.labelStatesModels;\n hoverScale = seriesScope.hoverScale;\n cursorStyle = seriesScope.cursorStyle;\n emphasisDisabled = seriesScope.emphasisDisabled;\n }\n\n if (!seriesScope || data.hasItemOption) {\n var itemModel = seriesScope && seriesScope.itemModel ? seriesScope.itemModel : data.getItemModel(idx);\n var emphasisModel = itemModel.getModel('emphasis');\n emphasisItemStyle = emphasisModel.getModel('itemStyle').getItemStyle();\n selectItemStyle = itemModel.getModel(['select', 'itemStyle']).getItemStyle();\n blurItemStyle = itemModel.getModel(['blur', 'itemStyle']).getItemStyle();\n focus = emphasisModel.get('focus');\n blurScope = emphasisModel.get('blurScope');\n emphasisDisabled = emphasisModel.get('disabled');\n labelStatesModels = getLabelStatesModels(itemModel);\n hoverScale = emphasisModel.getShallow('scale');\n cursorStyle = itemModel.getShallow('cursor');\n }\n\n var symbolRotate = data.getItemVisual(idx, 'symbolRotate');\n symbolPath.attr('rotation', (symbolRotate || 0) * Math.PI / 180 || 0);\n var symbolOffset = normalizeSymbolOffset(data.getItemVisual(idx, 'symbolOffset'), symbolSize);\n\n if (symbolOffset) {\n symbolPath.x = symbolOffset[0];\n symbolPath.y = symbolOffset[1];\n }\n\n cursorStyle && symbolPath.attr('cursor', cursorStyle);\n var symbolStyle = data.getItemVisual(idx, 'style');\n var visualColor = symbolStyle.fill;\n\n if (symbolPath instanceof ZRImage) {\n var pathStyle = symbolPath.style;\n symbolPath.useStyle(extend({\n // TODO other properties like x, y ?\n image: pathStyle.image,\n x: pathStyle.x,\n y: pathStyle.y,\n width: pathStyle.width,\n height: pathStyle.height\n }, symbolStyle));\n } else {\n if (symbolPath.__isEmptyBrush) {\n // fill and stroke will be swapped if it's empty.\n // So we cloned a new style to avoid it affecting the original style in visual storage.\n // TODO Better implementation. No empty logic!\n symbolPath.useStyle(extend({}, symbolStyle));\n } else {\n symbolPath.useStyle(symbolStyle);\n } // Disable decal because symbol scale will been applied on the decal.\n\n\n symbolPath.style.decal = null;\n symbolPath.setColor(visualColor, opts && opts.symbolInnerColor);\n symbolPath.style.strokeNoScale = true;\n }\n\n var liftZ = data.getItemVisual(idx, 'liftZ');\n var z2Origin = this._z2;\n\n if (liftZ != null) {\n if (z2Origin == null) {\n this._z2 = symbolPath.z2;\n symbolPath.z2 += liftZ;\n }\n } else if (z2Origin != null) {\n symbolPath.z2 = z2Origin;\n this._z2 = null;\n }\n\n var useNameLabel = opts && opts.useNameLabel;\n setLabelStyle(symbolPath, labelStatesModels, {\n labelFetcher: seriesModel,\n labelDataIndex: idx,\n defaultText: getLabelDefaultText,\n inheritColor: visualColor,\n defaultOpacity: symbolStyle.opacity\n }); // Do not execute util needed.\n\n function getLabelDefaultText(idx) {\n return useNameLabel ? data.getName(idx) : getDefaultLabel(data, idx);\n }\n\n this._sizeX = symbolSize[0] / 2;\n this._sizeY = symbolSize[1] / 2;\n var emphasisState = symbolPath.ensureState('emphasis');\n emphasisState.style = emphasisItemStyle;\n symbolPath.ensureState('select').style = selectItemStyle;\n symbolPath.ensureState('blur').style = blurItemStyle; // null / undefined / true means to use default strategy.\n // 0 / false / negative number / NaN / Infinity means no scale.\n\n var scaleRatio = hoverScale == null || hoverScale === true ? Math.max(1.1, 3 / this._sizeY) // PENDING: restrict hoverScale > 1? It seems unreasonable to scale down\n : isFinite(hoverScale) && hoverScale > 0 ? +hoverScale : 1; // always set scale to allow resetting\n\n emphasisState.scaleX = this._sizeX * scaleRatio;\n emphasisState.scaleY = this._sizeY * scaleRatio;\n this.setSymbolScale(1);\n toggleHoverEmphasis(this, focus, blurScope, emphasisDisabled);\n };\n\n Symbol.prototype.setSymbolScale = function (scale) {\n this.scaleX = this.scaleY = scale;\n };\n\n Symbol.prototype.fadeOut = function (cb, seriesModel, opt) {\n var symbolPath = this.childAt(0);\n var dataIndex = getECData(this).dataIndex;\n var animationOpt = opt && opt.animation; // Avoid mistaken hover when fading out\n\n this.silent = symbolPath.silent = true; // Not show text when animating\n\n if (opt && opt.fadeLabel) {\n var textContent = symbolPath.getTextContent();\n\n if (textContent) {\n graphic.removeElement(textContent, {\n style: {\n opacity: 0\n }\n }, seriesModel, {\n dataIndex: dataIndex,\n removeOpt: animationOpt,\n cb: function () {\n symbolPath.removeTextContent();\n }\n });\n }\n } else {\n symbolPath.removeTextContent();\n }\n\n graphic.removeElement(symbolPath, {\n style: {\n opacity: 0\n },\n scaleX: 0,\n scaleY: 0\n }, seriesModel, {\n dataIndex: dataIndex,\n cb: cb,\n removeOpt: animationOpt\n });\n };\n\n Symbol.getSymbolSize = function (data, idx) {\n return normalizeSymbolSize(data.getItemVisual(idx, 'symbolSize'));\n };\n\n return Symbol;\n}(graphic.Group);\n\nfunction driftSymbol(dx, dy) {\n this.parent.drift(dx, dy);\n}\n\nexport default Symbol;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as graphic from '../../util/graphic.js';\nimport SymbolClz from './Symbol.js';\nimport { isObject } from 'zrender/lib/core/util.js';\nimport { getLabelStatesModels } from '../../label/labelStyle.js';\n\nfunction symbolNeedsDraw(data, point, idx, opt) {\n return point && !isNaN(point[0]) && !isNaN(point[1]) && !(opt.isIgnore && opt.isIgnore(idx)) // We do not set clipShape on group, because it will cut part of\n // the symbol element shape. We use the same clip shape here as\n // the line clip.\n && !(opt.clipShape && !opt.clipShape.contain(point[0], point[1])) && data.getItemVisual(idx, 'symbol') !== 'none';\n}\n\nfunction normalizeUpdateOpt(opt) {\n if (opt != null && !isObject(opt)) {\n opt = {\n isIgnore: opt\n };\n }\n\n return opt || {};\n}\n\nfunction makeSeriesScope(data) {\n var seriesModel = data.hostModel;\n var emphasisModel = seriesModel.getModel('emphasis');\n return {\n emphasisItemStyle: emphasisModel.getModel('itemStyle').getItemStyle(),\n blurItemStyle: seriesModel.getModel(['blur', 'itemStyle']).getItemStyle(),\n selectItemStyle: seriesModel.getModel(['select', 'itemStyle']).getItemStyle(),\n focus: emphasisModel.get('focus'),\n blurScope: emphasisModel.get('blurScope'),\n emphasisDisabled: emphasisModel.get('disabled'),\n hoverScale: emphasisModel.get('scale'),\n labelStatesModels: getLabelStatesModels(seriesModel),\n cursorStyle: seriesModel.get('cursor')\n };\n}\n\nvar SymbolDraw =\n/** @class */\nfunction () {\n function SymbolDraw(SymbolCtor) {\n this.group = new graphic.Group();\n this._SymbolCtor = SymbolCtor || SymbolClz;\n }\n /**\n * Update symbols draw by new data\n */\n\n\n SymbolDraw.prototype.updateData = function (data, opt) {\n // Remove progressive els.\n this._progressiveEls = null;\n opt = normalizeUpdateOpt(opt);\n var group = this.group;\n var seriesModel = data.hostModel;\n var oldData = this._data;\n var SymbolCtor = this._SymbolCtor;\n var disableAnimation = opt.disableAnimation;\n var seriesScope = makeSeriesScope(data);\n var symbolUpdateOpt = {\n disableAnimation: disableAnimation\n };\n\n var getSymbolPoint = opt.getSymbolPoint || function (idx) {\n return data.getItemLayout(idx);\n }; // There is no oldLineData only when first rendering or switching from\n // stream mode to normal mode, where previous elements should be removed.\n\n\n if (!oldData) {\n group.removeAll();\n }\n\n data.diff(oldData).add(function (newIdx) {\n var point = getSymbolPoint(newIdx);\n\n if (symbolNeedsDraw(data, point, newIdx, opt)) {\n var symbolEl = new SymbolCtor(data, newIdx, seriesScope, symbolUpdateOpt);\n symbolEl.setPosition(point);\n data.setItemGraphicEl(newIdx, symbolEl);\n group.add(symbolEl);\n }\n }).update(function (newIdx, oldIdx) {\n var symbolEl = oldData.getItemGraphicEl(oldIdx);\n var point = getSymbolPoint(newIdx);\n\n if (!symbolNeedsDraw(data, point, newIdx, opt)) {\n group.remove(symbolEl);\n return;\n }\n\n var newSymbolType = data.getItemVisual(newIdx, 'symbol') || 'circle';\n var oldSymbolType = symbolEl && symbolEl.getSymbolType && symbolEl.getSymbolType();\n\n if (!symbolEl // Create a new if symbol type changed.\n || oldSymbolType && oldSymbolType !== newSymbolType) {\n group.remove(symbolEl);\n symbolEl = new SymbolCtor(data, newIdx, seriesScope, symbolUpdateOpt);\n symbolEl.setPosition(point);\n } else {\n symbolEl.updateData(data, newIdx, seriesScope, symbolUpdateOpt);\n var target = {\n x: point[0],\n y: point[1]\n };\n disableAnimation ? symbolEl.attr(target) : graphic.updateProps(symbolEl, target, seriesModel);\n } // Add back\n\n\n group.add(symbolEl);\n data.setItemGraphicEl(newIdx, symbolEl);\n }).remove(function (oldIdx) {\n var el = oldData.getItemGraphicEl(oldIdx);\n el && el.fadeOut(function () {\n group.remove(el);\n }, seriesModel);\n }).execute();\n this._getSymbolPoint = getSymbolPoint;\n this._data = data;\n };\n\n ;\n\n SymbolDraw.prototype.updateLayout = function () {\n var _this = this;\n\n var data = this._data;\n\n if (data) {\n // Not use animation\n data.eachItemGraphicEl(function (el, idx) {\n var point = _this._getSymbolPoint(idx);\n\n el.setPosition(point);\n el.markRedraw();\n });\n }\n };\n\n ;\n\n SymbolDraw.prototype.incrementalPrepareUpdate = function (data) {\n this._seriesScope = makeSeriesScope(data);\n this._data = null;\n this.group.removeAll();\n };\n\n ;\n /**\n * Update symbols draw by new data\n */\n\n SymbolDraw.prototype.incrementalUpdate = function (taskParams, data, opt) {\n // Clear\n this._progressiveEls = [];\n opt = normalizeUpdateOpt(opt);\n\n function updateIncrementalAndHover(el) {\n if (!el.isGroup) {\n el.incremental = true;\n el.ensureState('emphasis').hoverLayer = true;\n }\n }\n\n for (var idx = taskParams.start; idx < taskParams.end; idx++) {\n var point = data.getItemLayout(idx);\n\n if (symbolNeedsDraw(data, point, idx, opt)) {\n var el = new this._SymbolCtor(data, idx, this._seriesScope);\n el.traverse(updateIncrementalAndHover);\n el.setPosition(point);\n this.group.add(el);\n data.setItemGraphicEl(idx, el);\n\n this._progressiveEls.push(el);\n }\n }\n };\n\n ;\n\n SymbolDraw.prototype.eachRendered = function (cb) {\n graphic.traverseElements(this._progressiveEls || this.group, cb);\n };\n\n SymbolDraw.prototype.remove = function (enableAnimation) {\n var group = this.group;\n var data = this._data; // Incremental model do not have this._data.\n\n if (data && enableAnimation) {\n data.eachItemGraphicEl(function (el) {\n el.fadeOut(function () {\n group.remove(el);\n }, data.hostModel);\n });\n } else {\n group.removeAll();\n }\n };\n\n ;\n return SymbolDraw;\n}();\n\nexport default SymbolDraw;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as graphic from '../../util/graphic.js';\nimport { round } from '../../util/number.js';\nimport { isFunction } from 'zrender/lib/core/util.js';\n\nfunction createGridClipPath(cartesian, hasAnimation, seriesModel, done, during) {\n var rect = cartesian.getArea();\n var x = rect.x;\n var y = rect.y;\n var width = rect.width;\n var height = rect.height;\n var lineWidth = seriesModel.get(['lineStyle', 'width']) || 2; // Expand the clip path a bit to avoid the border is clipped and looks thinner\n\n x -= lineWidth / 2;\n y -= lineWidth / 2;\n width += lineWidth;\n height += lineWidth; // fix: https://github.com/apache/incubator-echarts/issues/11369\n\n x = Math.floor(x);\n width = Math.round(width);\n var clipPath = new graphic.Rect({\n shape: {\n x: x,\n y: y,\n width: width,\n height: height\n }\n });\n\n if (hasAnimation) {\n var baseAxis = cartesian.getBaseAxis();\n var isHorizontal = baseAxis.isHorizontal();\n var isAxisInversed = baseAxis.inverse;\n\n if (isHorizontal) {\n if (isAxisInversed) {\n clipPath.shape.x += width;\n }\n\n clipPath.shape.width = 0;\n } else {\n if (!isAxisInversed) {\n clipPath.shape.y += height;\n }\n\n clipPath.shape.height = 0;\n }\n\n var duringCb = isFunction(during) ? function (percent) {\n during(percent, clipPath);\n } : null;\n graphic.initProps(clipPath, {\n shape: {\n width: width,\n height: height,\n x: x,\n y: y\n }\n }, seriesModel, null, done, duringCb);\n }\n\n return clipPath;\n}\n\nfunction createPolarClipPath(polar, hasAnimation, seriesModel) {\n var sectorArea = polar.getArea(); // Avoid float number rounding error for symbol on the edge of axis extent.\n\n var r0 = round(sectorArea.r0, 1);\n var r = round(sectorArea.r, 1);\n var clipPath = new graphic.Sector({\n shape: {\n cx: round(polar.cx, 1),\n cy: round(polar.cy, 1),\n r0: r0,\n r: r,\n startAngle: sectorArea.startAngle,\n endAngle: sectorArea.endAngle,\n clockwise: sectorArea.clockwise\n }\n });\n\n if (hasAnimation) {\n var isRadial = polar.getBaseAxis().dim === 'angle';\n\n if (isRadial) {\n clipPath.shape.endAngle = sectorArea.startAngle;\n } else {\n clipPath.shape.r = r0;\n }\n\n graphic.initProps(clipPath, {\n shape: {\n endAngle: sectorArea.endAngle,\n r: r\n }\n }, seriesModel);\n }\n\n return clipPath;\n}\n\nfunction createClipPath(coordSys, hasAnimation, seriesModel, done, during) {\n if (!coordSys) {\n return null;\n } else if (coordSys.type === 'polar') {\n return createPolarClipPath(coordSys, hasAnimation, seriesModel);\n } else if (coordSys.type === 'cartesian2d') {\n return createGridClipPath(coordSys, hasAnimation, seriesModel, done, during);\n }\n\n return null;\n}\n\nexport { createGridClipPath, createPolarClipPath, createClipPath };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport SeriesData from '../../data/SeriesData.js';\nimport Graph from '../../data/Graph.js';\nimport linkSeriesData from '../../data/helper/linkSeriesData.js';\nimport prepareSeriesDataSchema from '../../data/helper/createDimensions.js';\nimport CoordinateSystem from '../../core/CoordinateSystem.js';\nimport createSeriesData from './createSeriesData.js';\nimport { convertOptionIdName } from '../../util/model.js';\nexport default function createGraphFromNodeEdge(nodes, edges, seriesModel, directed, beforeLink) {\n // ??? TODO\n // support dataset?\n var graph = new Graph(directed);\n\n for (var i = 0; i < nodes.length; i++) {\n graph.addNode(zrUtil.retrieve( // Id, name, dataIndex\n nodes[i].id, nodes[i].name, i), i);\n }\n\n var linkNameList = [];\n var validEdges = [];\n var linkCount = 0;\n\n for (var i = 0; i < edges.length; i++) {\n var link = edges[i];\n var source = link.source;\n var target = link.target; // addEdge may fail when source or target not exists\n\n if (graph.addEdge(source, target, linkCount)) {\n validEdges.push(link);\n linkNameList.push(zrUtil.retrieve(convertOptionIdName(link.id, null), source + ' > ' + target));\n linkCount++;\n }\n }\n\n var coordSys = seriesModel.get('coordinateSystem');\n var nodeData;\n\n if (coordSys === 'cartesian2d' || coordSys === 'polar') {\n nodeData = createSeriesData(nodes, seriesModel);\n } else {\n var coordSysCtor = CoordinateSystem.get(coordSys);\n var coordDimensions = coordSysCtor ? coordSysCtor.dimensions || [] : []; // FIXME: Some geo do not need `value` dimenson, whereas `calendar` needs\n // `value` dimension, but graph need `value` dimension. It's better to\n // uniform this behavior.\n\n if (zrUtil.indexOf(coordDimensions, 'value') < 0) {\n coordDimensions.concat(['value']);\n }\n\n var dimensions = prepareSeriesDataSchema(nodes, {\n coordDimensions: coordDimensions,\n encodeDefine: seriesModel.getEncode()\n }).dimensions;\n nodeData = new SeriesData(dimensions, seriesModel);\n nodeData.initData(nodes);\n }\n\n var edgeData = new SeriesData(['value'], seriesModel);\n edgeData.initData(validEdges, linkNameList);\n beforeLink && beforeLink(nodeData, edgeData);\n linkSeriesData({\n mainData: nodeData,\n struct: graph,\n structAttr: 'graph',\n datas: {\n node: nodeData,\n edge: edgeData\n },\n datasAttr: {\n node: 'data',\n edge: 'edgeData'\n }\n }); // Update dataIndex of nodes and edges because invalid edge may be removed\n\n graph.update();\n return graph;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { makeInner } from '../../util/model.js';\n/**\n * @return {string} If large mode changed, return string 'reset';\n */\n\nexport default function createRenderPlanner() {\n var inner = makeInner();\n return function (seriesModel) {\n var fields = inner(seriesModel);\n var pipelineContext = seriesModel.pipelineContext;\n var originalLarge = !!fields.large;\n var originalProgressive = !!fields.progressiveRender; // FIXME: if the planner works on a filtered series, `pipelineContext` does not\n // exists. See #11611 . Probably we need to modify this structure, see the comment\n // on `performRawSeries` in `Schedular.js`.\n\n var large = fields.large = !!(pipelineContext && pipelineContext.large);\n var progressive = fields.progressiveRender = !!(pipelineContext && pipelineContext.progressiveRender);\n return !!(originalLarge !== large || originalProgressive !== progressive) && 'reset';\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport SeriesData from '../../data/SeriesData.js';\nimport prepareSeriesDataSchema from '../../data/helper/createDimensions.js';\nimport { getDimensionTypeByAxis } from '../../data/helper/dimensionHelper.js';\nimport { getDataItemValue } from '../../util/model.js';\nimport CoordinateSystem from '../../core/CoordinateSystem.js';\nimport { getCoordSysInfoBySeries } from '../../model/referHelper.js';\nimport { createSourceFromSeriesDataOption } from '../../data/Source.js';\nimport { enableDataStack } from '../../data/helper/dataStackHelper.js';\nimport { makeSeriesEncodeForAxisCoordSys } from '../../data/helper/sourceHelper.js';\nimport { SOURCE_FORMAT_ORIGINAL } from '../../util/types.js';\n\nfunction getCoordSysDimDefs(seriesModel, coordSysInfo) {\n var coordSysName = seriesModel.get('coordinateSystem');\n var registeredCoordSys = CoordinateSystem.get(coordSysName);\n var coordSysDimDefs;\n\n if (coordSysInfo && coordSysInfo.coordSysDims) {\n coordSysDimDefs = zrUtil.map(coordSysInfo.coordSysDims, function (dim) {\n var dimInfo = {\n name: dim\n };\n var axisModel = coordSysInfo.axisMap.get(dim);\n\n if (axisModel) {\n var axisType = axisModel.get('type');\n dimInfo.type = getDimensionTypeByAxis(axisType);\n }\n\n return dimInfo;\n });\n }\n\n if (!coordSysDimDefs) {\n // Get dimensions from registered coordinate system\n coordSysDimDefs = registeredCoordSys && (registeredCoordSys.getDimensionsInfo ? registeredCoordSys.getDimensionsInfo() : registeredCoordSys.dimensions.slice()) || ['x', 'y'];\n }\n\n return coordSysDimDefs;\n}\n\nfunction injectOrdinalMeta(dimInfoList, createInvertedIndices, coordSysInfo) {\n var firstCategoryDimIndex;\n var hasNameEncode;\n coordSysInfo && zrUtil.each(dimInfoList, function (dimInfo, dimIndex) {\n var coordDim = dimInfo.coordDim;\n var categoryAxisModel = coordSysInfo.categoryAxisMap.get(coordDim);\n\n if (categoryAxisModel) {\n if (firstCategoryDimIndex == null) {\n firstCategoryDimIndex = dimIndex;\n }\n\n dimInfo.ordinalMeta = categoryAxisModel.getOrdinalMeta();\n\n if (createInvertedIndices) {\n dimInfo.createInvertedIndices = true;\n }\n }\n\n if (dimInfo.otherDims.itemName != null) {\n hasNameEncode = true;\n }\n });\n\n if (!hasNameEncode && firstCategoryDimIndex != null) {\n dimInfoList[firstCategoryDimIndex].otherDims.itemName = 0;\n }\n\n return firstCategoryDimIndex;\n}\n/**\n * Caution: there are side effects to `sourceManager` in this method.\n * Should better only be called in `Series['getInitialData']`.\n */\n\n\nfunction createSeriesData(sourceRaw, seriesModel, opt) {\n opt = opt || {};\n var sourceManager = seriesModel.getSourceManager();\n var source;\n var isOriginalSource = false;\n\n if (sourceRaw) {\n isOriginalSource = true;\n source = createSourceFromSeriesDataOption(sourceRaw);\n } else {\n source = sourceManager.getSource(); // Is series.data. not dataset.\n\n isOriginalSource = source.sourceFormat === SOURCE_FORMAT_ORIGINAL;\n }\n\n var coordSysInfo = getCoordSysInfoBySeries(seriesModel);\n var coordSysDimDefs = getCoordSysDimDefs(seriesModel, coordSysInfo);\n var useEncodeDefaulter = opt.useEncodeDefaulter;\n var encodeDefaulter = zrUtil.isFunction(useEncodeDefaulter) ? useEncodeDefaulter : useEncodeDefaulter ? zrUtil.curry(makeSeriesEncodeForAxisCoordSys, coordSysDimDefs, seriesModel) : null;\n var createDimensionOptions = {\n coordDimensions: coordSysDimDefs,\n generateCoord: opt.generateCoord,\n encodeDefine: seriesModel.getEncode(),\n encodeDefaulter: encodeDefaulter,\n canOmitUnusedDimensions: !isOriginalSource\n };\n var schema = prepareSeriesDataSchema(source, createDimensionOptions);\n var firstCategoryDimIndex = injectOrdinalMeta(schema.dimensions, opt.createInvertedIndices, coordSysInfo);\n var store = !isOriginalSource ? sourceManager.getSharedDataStore(schema) : null;\n var stackCalculationInfo = enableDataStack(seriesModel, {\n schema: schema,\n store: store\n });\n var data = new SeriesData(schema, seriesModel);\n data.setCalculationInfo(stackCalculationInfo);\n var dimValueGetter = firstCategoryDimIndex != null && isNeedCompleteOrdinalData(source) ? function (itemOpt, dimName, dataIndex, dimIndex) {\n // Use dataIndex as ordinal value in categoryAxis\n return dimIndex === firstCategoryDimIndex ? dataIndex : this.defaultDimValueGetter(itemOpt, dimName, dataIndex, dimIndex);\n } : null;\n data.hasItemOption = false;\n data.initData( // Try to reuse the data store in sourceManager if using dataset.\n isOriginalSource ? source : store, null, dimValueGetter);\n return data;\n}\n\nfunction isNeedCompleteOrdinalData(source) {\n if (source.sourceFormat === SOURCE_FORMAT_ORIGINAL) {\n var sampleItem = firstDataNotNull(source.data || []);\n return !zrUtil.isArray(getDataItemValue(sampleItem));\n }\n}\n\nfunction firstDataNotNull(arr) {\n var i = 0;\n\n while (i < arr.length && arr[i] == null) {\n i++;\n }\n\n return arr[i];\n}\n\nexport default createSeriesData;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport prepareSeriesDataSchema from '../../data/helper/createDimensions.js';\nimport SeriesData from '../../data/SeriesData.js';\nimport { extend, isArray } from 'zrender/lib/core/util.js';\n/**\n * [Usage]:\n * (1)\n * createListSimply(seriesModel, ['value']);\n * (2)\n * createListSimply(seriesModel, {\n * coordDimensions: ['value'],\n * dimensionsCount: 5\n * });\n */\n\nexport default function createSeriesDataSimply(seriesModel, opt, nameList) {\n opt = isArray(opt) && {\n coordDimensions: opt\n } || extend({\n encodeDefine: seriesModel.getEncode()\n }, opt);\n var source = seriesModel.getSource();\n var dimensions = prepareSeriesDataSchema(source, opt).dimensions;\n var list = new SeriesData(dimensions, seriesModel);\n list.initData(source, nameList);\n return list;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { getDecalFromPalette } from '../../model/mixin/palette.js';\nexport default function enableAriaDecalForTree(seriesModel) {\n var data = seriesModel.getData();\n var tree = data.tree;\n var decalPaletteScope = {};\n tree.eachNode(function (node) {\n // Use decal of level 1 node\n var current = node;\n\n while (current && current.depth > 1) {\n current = current.parentNode;\n }\n\n var decal = getDecalFromPalette(seriesModel.ecModel, current.name || current.dataIndex + '', decalPaletteScope);\n node.setVisual('decal', decal);\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { retrieveRawValue } from '../../data/helper/dataProvider.js';\nimport { isArray } from 'zrender/lib/core/util.js';\n/**\n * @return label string. Not null/undefined\n */\n\nexport function getDefaultLabel(data, dataIndex) {\n var labelDims = data.mapDimensionsAll('defaultedLabel');\n var len = labelDims.length; // Simple optimization (in lots of cases, label dims length is 1)\n\n if (len === 1) {\n var rawVal = retrieveRawValue(data, dataIndex, labelDims[0]);\n return rawVal != null ? rawVal + '' : null;\n } else if (len) {\n var vals = [];\n\n for (var i = 0; i < labelDims.length; i++) {\n vals.push(retrieveRawValue(data, dataIndex, labelDims[i]));\n }\n\n return vals.join(' ');\n }\n}\nexport function getDefaultInterpolatedLabel(data, interpolatedValue) {\n var labelDims = data.mapDimensionsAll('defaultedLabel');\n\n if (!isArray(interpolatedValue)) {\n return interpolatedValue + '';\n }\n\n var vals = [];\n\n for (var i = 0; i < labelDims.length; i++) {\n var dimIndex = data.getDimensionIndex(labelDims[i]);\n\n if (dimIndex >= 0) {\n vals.push(interpolatedValue[dimIndex]);\n }\n }\n\n return vals.join(' ');\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// @ts-nocheck\nimport * as zrUtil from 'zrender/lib/core/util.js';\nvar KEY_DELIMITER = '-->';\n/**\n * params handler\n * @param {module:echarts/model/SeriesModel} seriesModel\n * @returns {*}\n */\n\nvar getAutoCurvenessParams = function (seriesModel) {\n return seriesModel.get('autoCurveness') || null;\n};\n/**\n * Generate a list of edge curvatures, 20 is the default\n * @param {module:echarts/model/SeriesModel} seriesModel\n * @param {number} appendLength\n * @return 20 => [0, -0.2, 0.2, -0.4, 0.4, -0.6, 0.6, -0.8, 0.8, -1, 1, -1.2, 1.2, -1.4, 1.4, -1.6, 1.6, -1.8, 1.8, -2]\n */\n\n\nvar createCurveness = function (seriesModel, appendLength) {\n var autoCurvenessParmas = getAutoCurvenessParams(seriesModel);\n var length = 20;\n var curvenessList = []; // handler the function set\n\n if (zrUtil.isNumber(autoCurvenessParmas)) {\n length = autoCurvenessParmas;\n } else if (zrUtil.isArray(autoCurvenessParmas)) {\n seriesModel.__curvenessList = autoCurvenessParmas;\n return;\n } // append length\n\n\n if (appendLength > length) {\n length = appendLength;\n } // make sure the length is even\n\n\n var len = length % 2 ? length + 2 : length + 3;\n curvenessList = [];\n\n for (var i = 0; i < len; i++) {\n curvenessList.push((i % 2 ? i + 1 : i) / 10 * (i % 2 ? -1 : 1));\n }\n\n seriesModel.__curvenessList = curvenessList;\n};\n/**\n * Create different cache key data in the positive and negative directions, in order to set the curvature later\n * @param {number|string|module:echarts/data/Graph.Node} n1\n * @param {number|string|module:echarts/data/Graph.Node} n2\n * @param {module:echarts/model/SeriesModel} seriesModel\n * @returns {string} key\n */\n\n\nvar getKeyOfEdges = function (n1, n2, seriesModel) {\n var source = [n1.id, n1.dataIndex].join('.');\n var target = [n2.id, n2.dataIndex].join('.');\n return [seriesModel.uid, source, target].join(KEY_DELIMITER);\n};\n/**\n * get opposite key\n * @param {string} key\n * @returns {string}\n */\n\n\nvar getOppositeKey = function (key) {\n var keys = key.split(KEY_DELIMITER);\n return [keys[0], keys[2], keys[1]].join(KEY_DELIMITER);\n};\n/**\n * get edgeMap with key\n * @param edge\n * @param {module:echarts/model/SeriesModel} seriesModel\n */\n\n\nvar getEdgeFromMap = function (edge, seriesModel) {\n var key = getKeyOfEdges(edge.node1, edge.node2, seriesModel);\n return seriesModel.__edgeMap[key];\n};\n/**\n * calculate all cases total length\n * @param edge\n * @param seriesModel\n * @returns {number}\n */\n\n\nvar getTotalLengthBetweenNodes = function (edge, seriesModel) {\n var len = getEdgeMapLengthWithKey(getKeyOfEdges(edge.node1, edge.node2, seriesModel), seriesModel);\n var lenV = getEdgeMapLengthWithKey(getKeyOfEdges(edge.node2, edge.node1, seriesModel), seriesModel);\n return len + lenV;\n};\n/**\n *\n * @param key\n */\n\n\nvar getEdgeMapLengthWithKey = function (key, seriesModel) {\n var edgeMap = seriesModel.__edgeMap;\n return edgeMap[key] ? edgeMap[key].length : 0;\n};\n/**\n * Count the number of edges between the same two points, used to obtain the curvature table and the parity of the edge\n * @see /graph/GraphSeries.js@getInitialData\n * @param {module:echarts/model/SeriesModel} seriesModel\n */\n\n\nexport function initCurvenessList(seriesModel) {\n if (!getAutoCurvenessParams(seriesModel)) {\n return;\n }\n\n seriesModel.__curvenessList = [];\n seriesModel.__edgeMap = {}; // calc the array of curveness List\n\n createCurveness(seriesModel);\n}\n/**\n * set edgeMap with key\n * @param {number|string|module:echarts/data/Graph.Node} n1\n * @param {number|string|module:echarts/data/Graph.Node} n2\n * @param {module:echarts/model/SeriesModel} seriesModel\n * @param {number} index\n */\n\nexport function createEdgeMapForCurveness(n1, n2, seriesModel, index) {\n if (!getAutoCurvenessParams(seriesModel)) {\n return;\n }\n\n var key = getKeyOfEdges(n1, n2, seriesModel);\n var edgeMap = seriesModel.__edgeMap;\n var oppositeEdges = edgeMap[getOppositeKey(key)]; // set direction\n\n if (edgeMap[key] && !oppositeEdges) {\n edgeMap[key].isForward = true;\n } else if (oppositeEdges && edgeMap[key]) {\n oppositeEdges.isForward = true;\n edgeMap[key].isForward = false;\n }\n\n edgeMap[key] = edgeMap[key] || [];\n edgeMap[key].push(index);\n}\n/**\n * get curvature for edge\n * @param edge\n * @param {module:echarts/model/SeriesModel} seriesModel\n * @param index\n */\n\nexport function getCurvenessForEdge(edge, seriesModel, index, needReverse) {\n var autoCurvenessParams = getAutoCurvenessParams(seriesModel);\n var isArrayParam = zrUtil.isArray(autoCurvenessParams);\n\n if (!autoCurvenessParams) {\n return null;\n }\n\n var edgeArray = getEdgeFromMap(edge, seriesModel);\n\n if (!edgeArray) {\n return null;\n }\n\n var edgeIndex = -1;\n\n for (var i = 0; i < edgeArray.length; i++) {\n if (edgeArray[i] === index) {\n edgeIndex = i;\n break;\n }\n } // if totalLen is Longer createCurveness\n\n\n var totalLen = getTotalLengthBetweenNodes(edge, seriesModel);\n createCurveness(seriesModel, totalLen);\n edge.lineStyle = edge.lineStyle || {}; // if is opposite edge, must set curvenss to opposite number\n\n var curKey = getKeyOfEdges(edge.node1, edge.node2, seriesModel);\n var curvenessList = seriesModel.__curvenessList; // if pass array no need parity\n\n var parityCorrection = isArrayParam ? 0 : totalLen % 2 ? 0 : 1;\n\n if (!edgeArray.isForward) {\n // the opposite edge show outside\n var oppositeKey = getOppositeKey(curKey);\n var len = getEdgeMapLengthWithKey(oppositeKey, seriesModel);\n var resValue = curvenessList[edgeIndex + len + parityCorrection]; // isNeedReverse, simple, force type need reverse the curveness in the junction of the forword and the opposite\n\n if (needReverse) {\n // set as array may make the parity handle with the len of opposite\n if (isArrayParam) {\n if (autoCurvenessParams && autoCurvenessParams[0] === 0) {\n return (len + parityCorrection) % 2 ? resValue : -resValue;\n } else {\n return ((len % 2 ? 0 : 1) + parityCorrection) % 2 ? resValue : -resValue;\n }\n } else {\n return (len + parityCorrection) % 2 ? resValue : -resValue;\n }\n } else {\n return curvenessList[edgeIndex + len + parityCorrection];\n }\n } else {\n return curvenessList[parityCorrection + edgeIndex];\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { isArray, map } from 'zrender/lib/core/util.js';\nimport { parsePercent } from 'zrender/lib/contain/text.js';\nexport function getSectorCornerRadius(model, shape, zeroIfNull) {\n var cornerRadius = model.get('borderRadius');\n\n if (cornerRadius == null) {\n return zeroIfNull ? {\n cornerRadius: 0\n } : null;\n }\n\n if (!isArray(cornerRadius)) {\n cornerRadius = [cornerRadius, cornerRadius, cornerRadius, cornerRadius];\n }\n\n var dr = Math.abs(shape.r || 0 - shape.r0 || 0);\n return {\n cornerRadius: map(cornerRadius, function (cr) {\n return parsePercent(cr, dr);\n })\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nexport function retrieveTargetInfo(payload, validPayloadTypes, seriesModel) {\n if (payload && zrUtil.indexOf(validPayloadTypes, payload.type) >= 0) {\n var root = seriesModel.getData().tree.root;\n var targetNode = payload.targetNode;\n\n if (zrUtil.isString(targetNode)) {\n targetNode = root.getNodeById(targetNode);\n }\n\n if (targetNode && root.contains(targetNode)) {\n return {\n node: targetNode\n };\n }\n\n var targetNodeId = payload.targetNodeId;\n\n if (targetNodeId != null && (targetNode = root.getNodeById(targetNodeId))) {\n return {\n node: targetNode\n };\n }\n }\n} // Not includes the given node at the last item.\n\nexport function getPathToRoot(node) {\n var path = [];\n\n while (node) {\n node = node.parentNode;\n node && path.push(node);\n }\n\n return path.reverse();\n}\nexport function aboveViewRoot(viewRoot, node) {\n var viewPath = getPathToRoot(viewRoot);\n return zrUtil.indexOf(viewPath, node) >= 0;\n} // From root to the input node (the input node will be included).\n\nexport function wrapTreePathInfo(node, seriesModel) {\n var treePathInfo = [];\n\n while (node) {\n var nodeDataIndex = node.dataIndex;\n treePathInfo.push({\n name: node.name,\n dataIndex: nodeDataIndex,\n value: seriesModel.getRawValue(nodeDataIndex)\n });\n node = node.parentNode;\n }\n\n treePathInfo.reverse();\n return treePathInfo;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport createSeriesDataSimply from './createSeriesDataSimply.js';\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { getDimensionTypeByAxis } from '../../data/helper/dimensionHelper.js';\nimport { makeSeriesEncodeForAxisCoordSys } from '../../data/helper/sourceHelper.js';\n\nvar WhiskerBoxCommonMixin =\n/** @class */\nfunction () {\n function WhiskerBoxCommonMixin() {}\n /**\n * @override\n */\n\n\n WhiskerBoxCommonMixin.prototype.getInitialData = function (option, ecModel) {\n // When both types of xAxis and yAxis are 'value', layout is\n // needed to be specified by user. Otherwise, layout can be\n // judged by which axis is category.\n var ordinalMeta;\n var xAxisModel = ecModel.getComponent('xAxis', this.get('xAxisIndex'));\n var yAxisModel = ecModel.getComponent('yAxis', this.get('yAxisIndex'));\n var xAxisType = xAxisModel.get('type');\n var yAxisType = yAxisModel.get('type');\n var addOrdinal; // FIXME\n // Consider time axis.\n\n if (xAxisType === 'category') {\n option.layout = 'horizontal';\n ordinalMeta = xAxisModel.getOrdinalMeta();\n addOrdinal = true;\n } else if (yAxisType === 'category') {\n option.layout = 'vertical';\n ordinalMeta = yAxisModel.getOrdinalMeta();\n addOrdinal = true;\n } else {\n option.layout = option.layout || 'horizontal';\n }\n\n var coordDims = ['x', 'y'];\n var baseAxisDimIndex = option.layout === 'horizontal' ? 0 : 1;\n var baseAxisDim = this._baseAxisDim = coordDims[baseAxisDimIndex];\n var otherAxisDim = coordDims[1 - baseAxisDimIndex];\n var axisModels = [xAxisModel, yAxisModel];\n var baseAxisType = axisModels[baseAxisDimIndex].get('type');\n var otherAxisType = axisModels[1 - baseAxisDimIndex].get('type');\n var data = option.data; // Clone a new data for next setOption({}) usage.\n // Avoid modifying current data will affect further update.\n\n if (data && addOrdinal) {\n var newOptionData_1 = [];\n zrUtil.each(data, function (item, index) {\n var newItem;\n\n if (zrUtil.isArray(item)) {\n newItem = item.slice(); // Modify current using data.\n\n item.unshift(index);\n } else if (zrUtil.isArray(item.value)) {\n newItem = zrUtil.extend({}, item);\n newItem.value = newItem.value.slice(); // Modify current using data.\n\n item.value.unshift(index);\n } else {\n newItem = item;\n }\n\n newOptionData_1.push(newItem);\n });\n option.data = newOptionData_1;\n }\n\n var defaultValueDimensions = this.defaultValueDimensions;\n var coordDimensions = [{\n name: baseAxisDim,\n type: getDimensionTypeByAxis(baseAxisType),\n ordinalMeta: ordinalMeta,\n otherDims: {\n tooltip: false,\n itemName: 0\n },\n dimsDef: ['base']\n }, {\n name: otherAxisDim,\n type: getDimensionTypeByAxis(otherAxisType),\n dimsDef: defaultValueDimensions.slice()\n }];\n return createSeriesDataSimply(this, {\n coordDimensions: coordDimensions,\n dimensionsCount: defaultValueDimensions.length + 1,\n encodeDefaulter: zrUtil.curry(makeSeriesEncodeForAxisCoordSys, coordDimensions, this)\n });\n };\n /**\n * If horizontal, base axis is x, otherwise y.\n * @override\n */\n\n\n WhiskerBoxCommonMixin.prototype.getBaseAxis = function () {\n var dim = this._baseAxisDim;\n return this.ecModel.getComponent(dim + 'Axis', this.get(dim + 'AxisIndex')).axis;\n };\n\n return WhiskerBoxCommonMixin;\n}();\n\n;\nexport { WhiskerBoxCommonMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport createSeriesData from '../helper/createSeriesData.js';\nimport SeriesModel from '../../model/Series.js';\nimport { createSymbol } from '../../util/symbol.js';\nimport { Group } from '../../util/graphic.js';\n\nvar LineSeriesModel =\n/** @class */\nfunction (_super) {\n __extends(LineSeriesModel, _super);\n\n function LineSeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = LineSeriesModel.type;\n _this.hasSymbolVisual = true;\n return _this;\n }\n\n LineSeriesModel.prototype.getInitialData = function (option) {\n if (process.env.NODE_ENV !== 'production') {\n var coordSys = option.coordinateSystem;\n\n if (coordSys !== 'polar' && coordSys !== 'cartesian2d') {\n throw new Error('Line not support coordinateSystem besides cartesian and polar');\n }\n }\n\n return createSeriesData(null, this, {\n useEncodeDefaulter: true\n });\n };\n\n LineSeriesModel.prototype.getLegendIcon = function (opt) {\n var group = new Group();\n var line = createSymbol('line', 0, opt.itemHeight / 2, opt.itemWidth, 0, opt.lineStyle.stroke, false);\n group.add(line);\n line.setStyle(opt.lineStyle);\n var visualType = this.getData().getVisual('symbol');\n var visualRotate = this.getData().getVisual('symbolRotate');\n var symbolType = visualType === 'none' ? 'circle' : visualType; // Symbol size is 80% when there is a line\n\n var size = opt.itemHeight * 0.8;\n var symbol = createSymbol(symbolType, (opt.itemWidth - size) / 2, (opt.itemHeight - size) / 2, size, size, opt.itemStyle.fill);\n group.add(symbol);\n symbol.setStyle(opt.itemStyle);\n var symbolRotate = opt.iconRotate === 'inherit' ? visualRotate : opt.iconRotate || 0;\n symbol.rotation = symbolRotate * Math.PI / 180;\n symbol.setOrigin([opt.itemWidth / 2, opt.itemHeight / 2]);\n\n if (symbolType.indexOf('empty') > -1) {\n symbol.style.stroke = symbol.style.fill;\n symbol.style.fill = '#fff';\n symbol.style.lineWidth = 2;\n }\n\n return group;\n };\n\n LineSeriesModel.type = 'series.line';\n LineSeriesModel.dependencies = ['grid', 'polar'];\n LineSeriesModel.defaultOption = {\n // zlevel: 0,\n z: 3,\n coordinateSystem: 'cartesian2d',\n legendHoverLink: true,\n clip: true,\n label: {\n position: 'top'\n },\n // itemStyle: {\n // },\n endLabel: {\n show: false,\n valueAnimation: true,\n distance: 8\n },\n lineStyle: {\n width: 2,\n type: 'solid'\n },\n emphasis: {\n scale: true\n },\n // areaStyle: {\n // origin of areaStyle. Valid values:\n // `'auto'/null/undefined`: from axisLine to data\n // `'start'`: from min to data\n // `'end'`: from data to max\n // origin: 'auto'\n // },\n // false, 'start', 'end', 'middle'\n step: false,\n // Disabled if step is true\n smooth: false,\n smoothMonotone: null,\n symbol: 'emptyCircle',\n symbolSize: 4,\n symbolRotate: null,\n showSymbol: true,\n // `false`: follow the label interval strategy.\n // `true`: show all symbols.\n // `'auto'`: If possible, show all symbols, otherwise\n // follow the label interval strategy.\n showAllSymbol: 'auto',\n // Whether to connect break point.\n connectNulls: false,\n // Sampling for large data. Can be: 'average', 'max', 'min', 'sum', 'lttb'.\n sampling: 'none',\n animationEasing: 'linear',\n // Disable progressive\n progressive: 0,\n hoverLayerThreshold: Infinity,\n universalTransition: {\n divideShape: 'clone'\n },\n triggerLineEvent: false\n };\n return LineSeriesModel;\n}(SeriesModel);\n\nexport default LineSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\"; // FIXME step not support polar\n\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport SymbolDraw from '../helper/SymbolDraw.js';\nimport SymbolClz from '../helper/Symbol.js';\nimport lineAnimationDiff from './lineAnimationDiff.js';\nimport * as graphic from '../../util/graphic.js';\nimport * as modelUtil from '../../util/model.js';\nimport { ECPolyline, ECPolygon } from './poly.js';\nimport ChartView from '../../view/Chart.js';\nimport { prepareDataCoordInfo, getStackedOnPoint } from './helper.js';\nimport { createGridClipPath, createPolarClipPath } from '../helper/createClipPathFromCoordSys.js';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem.js';\nimport { setStatesStylesFromModel, setStatesFlag, toggleHoverEmphasis, SPECIAL_STATES } from '../../util/states.js';\nimport { setLabelStyle, getLabelStatesModels, labelInner } from '../../label/labelStyle.js';\nimport { getDefaultLabel, getDefaultInterpolatedLabel } from '../helper/labelHelper.js';\nimport { getECData } from '../../util/innerStore.js';\nimport { createFloat32Array } from '../../util/vendor.js';\nimport { convertToColorString } from '../../util/format.js';\nimport { lerp } from 'zrender/lib/tool/color.js';\n\nfunction isPointsSame(points1, points2) {\n if (points1.length !== points2.length) {\n return;\n }\n\n for (var i = 0; i < points1.length; i++) {\n if (points1[i] !== points2[i]) {\n return;\n }\n }\n\n return true;\n}\n\nfunction bboxFromPoints(points) {\n var minX = Infinity;\n var minY = Infinity;\n var maxX = -Infinity;\n var maxY = -Infinity;\n\n for (var i = 0; i < points.length;) {\n var x = points[i++];\n var y = points[i++];\n\n if (!isNaN(x)) {\n minX = Math.min(x, minX);\n maxX = Math.max(x, maxX);\n }\n\n if (!isNaN(y)) {\n minY = Math.min(y, minY);\n maxY = Math.max(y, maxY);\n }\n }\n\n return [[minX, minY], [maxX, maxY]];\n}\n\nfunction getBoundingDiff(points1, points2) {\n var _a = bboxFromPoints(points1),\n min1 = _a[0],\n max1 = _a[1];\n\n var _b = bboxFromPoints(points2),\n min2 = _b[0],\n max2 = _b[1]; // Get a max value from each corner of two boundings.\n\n\n return Math.max(Math.abs(min1[0] - min2[0]), Math.abs(min1[1] - min2[1]), Math.abs(max1[0] - max2[0]), Math.abs(max1[1] - max2[1]));\n}\n\nfunction getSmooth(smooth) {\n return zrUtil.isNumber(smooth) ? smooth : smooth ? 0.5 : 0;\n}\n\nfunction getStackedOnPoints(coordSys, data, dataCoordInfo) {\n if (!dataCoordInfo.valueDim) {\n return [];\n }\n\n var len = data.count();\n var points = createFloat32Array(len * 2);\n\n for (var idx = 0; idx < len; idx++) {\n var pt = getStackedOnPoint(dataCoordInfo, coordSys, data, idx);\n points[idx * 2] = pt[0];\n points[idx * 2 + 1] = pt[1];\n }\n\n return points;\n}\n\nfunction turnPointsIntoStep(points, coordSys, stepTurnAt, connectNulls) {\n var baseAxis = coordSys.getBaseAxis();\n var baseIndex = baseAxis.dim === 'x' || baseAxis.dim === 'radius' ? 0 : 1;\n var stepPoints = [];\n var i = 0;\n var stepPt = [];\n var pt = [];\n var nextPt = [];\n var filteredPoints = [];\n\n if (connectNulls) {\n for (i = 0; i < points.length; i += 2) {\n if (!isNaN(points[i]) && !isNaN(points[i + 1])) {\n filteredPoints.push(points[i], points[i + 1]);\n }\n }\n\n points = filteredPoints;\n }\n\n for (i = 0; i < points.length - 2; i += 2) {\n nextPt[0] = points[i + 2];\n nextPt[1] = points[i + 3];\n pt[0] = points[i];\n pt[1] = points[i + 1];\n stepPoints.push(pt[0], pt[1]);\n\n switch (stepTurnAt) {\n case 'end':\n stepPt[baseIndex] = nextPt[baseIndex];\n stepPt[1 - baseIndex] = pt[1 - baseIndex];\n stepPoints.push(stepPt[0], stepPt[1]);\n break;\n\n case 'middle':\n var middle = (pt[baseIndex] + nextPt[baseIndex]) / 2;\n var stepPt2 = [];\n stepPt[baseIndex] = stepPt2[baseIndex] = middle;\n stepPt[1 - baseIndex] = pt[1 - baseIndex];\n stepPt2[1 - baseIndex] = nextPt[1 - baseIndex];\n stepPoints.push(stepPt[0], stepPt[1]);\n stepPoints.push(stepPt2[0], stepPt2[1]);\n break;\n\n default:\n // default is start\n stepPt[baseIndex] = pt[baseIndex];\n stepPt[1 - baseIndex] = nextPt[1 - baseIndex];\n stepPoints.push(stepPt[0], stepPt[1]);\n }\n } // Last points\n\n\n stepPoints.push(points[i++], points[i++]);\n return stepPoints;\n}\n/**\n * Clip color stops to edge. Avoid creating too large gradients.\n * Which may lead to blurry when GPU acceleration is enabled. See #15680\n *\n * The stops has been sorted from small to large.\n */\n\n\nfunction clipColorStops(colorStops, maxSize) {\n var newColorStops = [];\n var len = colorStops.length; // coord will always < 0 in prevOutOfRangeColorStop.\n\n var prevOutOfRangeColorStop;\n var prevInRangeColorStop;\n\n function lerpStop(stop0, stop1, clippedCoord) {\n var coord0 = stop0.coord;\n var p = (clippedCoord - coord0) / (stop1.coord - coord0);\n var color = lerp(p, [stop0.color, stop1.color]);\n return {\n coord: clippedCoord,\n color: color\n };\n }\n\n for (var i = 0; i < len; i++) {\n var stop_1 = colorStops[i];\n var coord = stop_1.coord;\n\n if (coord < 0) {\n prevOutOfRangeColorStop = stop_1;\n } else if (coord > maxSize) {\n if (prevInRangeColorStop) {\n newColorStops.push(lerpStop(prevInRangeColorStop, stop_1, maxSize));\n } else if (prevOutOfRangeColorStop) {\n // If there are two stops and coord range is between these two stops\n newColorStops.push(lerpStop(prevOutOfRangeColorStop, stop_1, 0), lerpStop(prevOutOfRangeColorStop, stop_1, maxSize));\n } // All following stop will be out of range. So just ignore them.\n\n\n break;\n } else {\n if (prevOutOfRangeColorStop) {\n newColorStops.push(lerpStop(prevOutOfRangeColorStop, stop_1, 0)); // Reset\n\n prevOutOfRangeColorStop = null;\n }\n\n newColorStops.push(stop_1);\n prevInRangeColorStop = stop_1;\n }\n }\n\n return newColorStops;\n}\n\nfunction getVisualGradient(data, coordSys, api) {\n var visualMetaList = data.getVisual('visualMeta');\n\n if (!visualMetaList || !visualMetaList.length || !data.count()) {\n // When data.count() is 0, gradient range can not be calculated.\n return;\n }\n\n if (coordSys.type !== 'cartesian2d') {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('Visual map on line style is only supported on cartesian2d.');\n }\n\n return;\n }\n\n var coordDim;\n var visualMeta;\n\n for (var i = visualMetaList.length - 1; i >= 0; i--) {\n var dimInfo = data.getDimensionInfo(visualMetaList[i].dimension);\n coordDim = dimInfo && dimInfo.coordDim; // Can only be x or y\n\n if (coordDim === 'x' || coordDim === 'y') {\n visualMeta = visualMetaList[i];\n break;\n }\n }\n\n if (!visualMeta) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('Visual map on line style only support x or y dimension.');\n }\n\n return;\n } // If the area to be rendered is bigger than area defined by LinearGradient,\n // the canvas spec prescribes that the color of the first stop and the last\n // stop should be used. But if two stops are added at offset 0, in effect\n // browsers use the color of the second stop to render area outside\n // LinearGradient. So we can only infinitesimally extend area defined in\n // LinearGradient to render `outerColors`.\n\n\n var axis = coordSys.getAxis(coordDim); // dataToCoord mapping may not be linear, but must be monotonic.\n\n var colorStops = zrUtil.map(visualMeta.stops, function (stop) {\n // offset will be calculated later.\n return {\n coord: axis.toGlobalCoord(axis.dataToCoord(stop.value)),\n color: stop.color\n };\n });\n var stopLen = colorStops.length;\n var outerColors = visualMeta.outerColors.slice();\n\n if (stopLen && colorStops[0].coord > colorStops[stopLen - 1].coord) {\n colorStops.reverse();\n outerColors.reverse();\n }\n\n var colorStopsInRange = clipColorStops(colorStops, coordDim === 'x' ? api.getWidth() : api.getHeight());\n var inRangeStopLen = colorStopsInRange.length;\n\n if (!inRangeStopLen && stopLen) {\n // All stops are out of range. All will be the same color.\n return colorStops[0].coord < 0 ? outerColors[1] ? outerColors[1] : colorStops[stopLen - 1].color : outerColors[0] ? outerColors[0] : colorStops[0].color;\n }\n\n var tinyExtent = 10; // Arbitrary value: 10px\n\n var minCoord = colorStopsInRange[0].coord - tinyExtent;\n var maxCoord = colorStopsInRange[inRangeStopLen - 1].coord + tinyExtent;\n var coordSpan = maxCoord - minCoord;\n\n if (coordSpan < 1e-3) {\n return 'transparent';\n }\n\n zrUtil.each(colorStopsInRange, function (stop) {\n stop.offset = (stop.coord - minCoord) / coordSpan;\n });\n colorStopsInRange.push({\n // NOTE: inRangeStopLen may still be 0 if stoplen is zero.\n offset: inRangeStopLen ? colorStopsInRange[inRangeStopLen - 1].offset : 0.5,\n color: outerColors[1] || 'transparent'\n });\n colorStopsInRange.unshift({\n offset: inRangeStopLen ? colorStopsInRange[0].offset : 0.5,\n color: outerColors[0] || 'transparent'\n });\n var gradient = new graphic.LinearGradient(0, 0, 0, 0, colorStopsInRange, true);\n gradient[coordDim] = minCoord;\n gradient[coordDim + '2'] = maxCoord;\n return gradient;\n}\n\nfunction getIsIgnoreFunc(seriesModel, data, coordSys) {\n var showAllSymbol = seriesModel.get('showAllSymbol');\n var isAuto = showAllSymbol === 'auto';\n\n if (showAllSymbol && !isAuto) {\n return;\n }\n\n var categoryAxis = coordSys.getAxesByScale('ordinal')[0];\n\n if (!categoryAxis) {\n return;\n } // Note that category label interval strategy might bring some weird effect\n // in some scenario: users may wonder why some of the symbols are not\n // displayed. So we show all symbols as possible as we can.\n\n\n if (isAuto // Simplify the logic, do not determine label overlap here.\n && canShowAllSymbolForCategory(categoryAxis, data)) {\n return;\n } // Otherwise follow the label interval strategy on category axis.\n\n\n var categoryDataDim = data.mapDimension(categoryAxis.dim);\n var labelMap = {};\n zrUtil.each(categoryAxis.getViewLabels(), function (labelItem) {\n var ordinalNumber = categoryAxis.scale.getRawOrdinalNumber(labelItem.tickValue);\n labelMap[ordinalNumber] = 1;\n });\n return function (dataIndex) {\n return !labelMap.hasOwnProperty(data.get(categoryDataDim, dataIndex));\n };\n}\n\nfunction canShowAllSymbolForCategory(categoryAxis, data) {\n // In most cases, line is monotonous on category axis, and the label size\n // is close with each other. So we check the symbol size and some of the\n // label size alone with the category axis to estimate whether all symbol\n // can be shown without overlap.\n var axisExtent = categoryAxis.getExtent();\n var availSize = Math.abs(axisExtent[1] - axisExtent[0]) / categoryAxis.scale.count();\n isNaN(availSize) && (availSize = 0); // 0/0 is NaN.\n // Sampling some points, max 5.\n\n var dataLen = data.count();\n var step = Math.max(1, Math.round(dataLen / 5));\n\n for (var dataIndex = 0; dataIndex < dataLen; dataIndex += step) {\n if (SymbolClz.getSymbolSize(data, dataIndex // Only for cartesian, where `isHorizontal` exists.\n )[categoryAxis.isHorizontal() ? 1 : 0] // Empirical number\n * 1.5 > availSize) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction isPointNull(x, y) {\n return isNaN(x) || isNaN(y);\n}\n\nfunction getLastIndexNotNull(points) {\n var len = points.length / 2;\n\n for (; len > 0; len--) {\n if (!isPointNull(points[len * 2 - 2], points[len * 2 - 1])) {\n break;\n }\n }\n\n return len - 1;\n}\n\nfunction getPointAtIndex(points, idx) {\n return [points[idx * 2], points[idx * 2 + 1]];\n}\n\nfunction getIndexRange(points, xOrY, dim) {\n var len = points.length / 2;\n var dimIdx = dim === 'x' ? 0 : 1;\n var a;\n var b;\n var prevIndex = 0;\n var nextIndex = -1;\n\n for (var i = 0; i < len; i++) {\n b = points[i * 2 + dimIdx];\n\n if (isNaN(b) || isNaN(points[i * 2 + 1 - dimIdx])) {\n continue;\n }\n\n if (i === 0) {\n a = b;\n continue;\n }\n\n if (a <= xOrY && b >= xOrY || a >= xOrY && b <= xOrY) {\n nextIndex = i;\n break;\n }\n\n prevIndex = i;\n a = b;\n }\n\n return {\n range: [prevIndex, nextIndex],\n t: (xOrY - a) / (b - a)\n };\n}\n\nfunction anyStateShowEndLabel(seriesModel) {\n if (seriesModel.get(['endLabel', 'show'])) {\n return true;\n }\n\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\n if (seriesModel.get([SPECIAL_STATES[i], 'endLabel', 'show'])) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction createLineClipPath(lineView, coordSys, hasAnimation, seriesModel) {\n if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n var endLabelModel_1 = seriesModel.getModel('endLabel');\n var valueAnimation_1 = endLabelModel_1.get('valueAnimation');\n var data_1 = seriesModel.getData();\n var labelAnimationRecord_1 = {\n lastFrameIndex: 0\n };\n var during = anyStateShowEndLabel(seriesModel) ? function (percent, clipRect) {\n lineView._endLabelOnDuring(percent, clipRect, data_1, labelAnimationRecord_1, valueAnimation_1, endLabelModel_1, coordSys);\n } : null;\n var isHorizontal = coordSys.getBaseAxis().isHorizontal();\n var clipPath = createGridClipPath(coordSys, hasAnimation, seriesModel, function () {\n var endLabel = lineView._endLabel;\n\n if (endLabel && hasAnimation) {\n if (labelAnimationRecord_1.originalX != null) {\n endLabel.attr({\n x: labelAnimationRecord_1.originalX,\n y: labelAnimationRecord_1.originalY\n });\n }\n }\n }, during); // Expand clip shape to avoid clipping when line value exceeds axis\n\n if (!seriesModel.get('clip', true)) {\n var rectShape = clipPath.shape;\n var expandSize = Math.max(rectShape.width, rectShape.height);\n\n if (isHorizontal) {\n rectShape.y -= expandSize;\n rectShape.height += expandSize * 2;\n } else {\n rectShape.x -= expandSize;\n rectShape.width += expandSize * 2;\n }\n } // Set to the final frame. To make sure label layout is right.\n\n\n if (during) {\n during(1, clipPath);\n }\n\n return clipPath;\n } else {\n if (process.env.NODE_ENV !== 'production') {\n if (seriesModel.get(['endLabel', 'show'])) {\n console.warn('endLabel is not supported for lines in polar systems.');\n }\n }\n\n return createPolarClipPath(coordSys, hasAnimation, seriesModel);\n }\n}\n\nfunction getEndLabelStateSpecified(endLabelModel, coordSys) {\n var baseAxis = coordSys.getBaseAxis();\n var isHorizontal = baseAxis.isHorizontal();\n var isBaseInversed = baseAxis.inverse;\n var align = isHorizontal ? isBaseInversed ? 'right' : 'left' : 'center';\n var verticalAlign = isHorizontal ? 'middle' : isBaseInversed ? 'top' : 'bottom';\n return {\n normal: {\n align: endLabelModel.get('align') || align,\n verticalAlign: endLabelModel.get('verticalAlign') || verticalAlign\n }\n };\n}\n\nvar LineView =\n/** @class */\nfunction (_super) {\n __extends(LineView, _super);\n\n function LineView() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n LineView.prototype.init = function () {\n var lineGroup = new graphic.Group();\n var symbolDraw = new SymbolDraw();\n this.group.add(symbolDraw.group);\n this._symbolDraw = symbolDraw;\n this._lineGroup = lineGroup;\n };\n\n LineView.prototype.render = function (seriesModel, ecModel, api) {\n var _this = this;\n\n var coordSys = seriesModel.coordinateSystem;\n var group = this.group;\n var data = seriesModel.getData();\n var lineStyleModel = seriesModel.getModel('lineStyle');\n var areaStyleModel = seriesModel.getModel('areaStyle');\n var points = data.getLayout('points') || [];\n var isCoordSysPolar = coordSys.type === 'polar';\n var prevCoordSys = this._coordSys;\n var symbolDraw = this._symbolDraw;\n var polyline = this._polyline;\n var polygon = this._polygon;\n var lineGroup = this._lineGroup;\n var hasAnimation = !ecModel.ssr && seriesModel.isAnimationEnabled();\n var isAreaChart = !areaStyleModel.isEmpty();\n var valueOrigin = areaStyleModel.get('origin');\n var dataCoordInfo = prepareDataCoordInfo(coordSys, data, valueOrigin);\n var stackedOnPoints = isAreaChart && getStackedOnPoints(coordSys, data, dataCoordInfo);\n var showSymbol = seriesModel.get('showSymbol');\n var connectNulls = seriesModel.get('connectNulls');\n var isIgnoreFunc = showSymbol && !isCoordSysPolar && getIsIgnoreFunc(seriesModel, data, coordSys); // Remove temporary symbols\n\n var oldData = this._data;\n oldData && oldData.eachItemGraphicEl(function (el, idx) {\n if (el.__temp) {\n group.remove(el);\n oldData.setItemGraphicEl(idx, null);\n }\n }); // Remove previous created symbols if showSymbol changed to false\n\n if (!showSymbol) {\n symbolDraw.remove();\n }\n\n group.add(lineGroup); // FIXME step not support polar\n\n var step = !isCoordSysPolar ? seriesModel.get('step') : false;\n var clipShapeForSymbol;\n\n if (coordSys && coordSys.getArea && seriesModel.get('clip', true)) {\n clipShapeForSymbol = coordSys.getArea(); // Avoid float number rounding error for symbol on the edge of axis extent.\n // See #7913 and `test/dataZoom-clip.html`.\n\n if (clipShapeForSymbol.width != null) {\n clipShapeForSymbol.x -= 0.1;\n clipShapeForSymbol.y -= 0.1;\n clipShapeForSymbol.width += 0.2;\n clipShapeForSymbol.height += 0.2;\n } else if (clipShapeForSymbol.r0) {\n clipShapeForSymbol.r0 -= 0.5;\n clipShapeForSymbol.r += 0.5;\n }\n }\n\n this._clipShapeForSymbol = clipShapeForSymbol;\n var visualColor = getVisualGradient(data, coordSys, api) || data.getVisual('style')[data.getVisual('drawType')]; // Initialization animation or coordinate system changed\n\n if (!(polyline && prevCoordSys.type === coordSys.type && step === this._step)) {\n showSymbol && symbolDraw.updateData(data, {\n isIgnore: isIgnoreFunc,\n clipShape: clipShapeForSymbol,\n disableAnimation: true,\n getSymbolPoint: function (idx) {\n return [points[idx * 2], points[idx * 2 + 1]];\n }\n });\n hasAnimation && this._initSymbolLabelAnimation(data, coordSys, clipShapeForSymbol);\n\n if (step) {\n // TODO If stacked series is not step\n points = turnPointsIntoStep(points, coordSys, step, connectNulls);\n\n if (stackedOnPoints) {\n stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step, connectNulls);\n }\n }\n\n polyline = this._newPolyline(points);\n\n if (isAreaChart) {\n polygon = this._newPolygon(points, stackedOnPoints);\n } // If areaStyle is removed\n else if (polygon) {\n lineGroup.remove(polygon);\n polygon = this._polygon = null;\n } // NOTE: Must update _endLabel before setClipPath.\n\n\n if (!isCoordSysPolar) {\n this._initOrUpdateEndLabel(seriesModel, coordSys, convertToColorString(visualColor));\n }\n\n lineGroup.setClipPath(createLineClipPath(this, coordSys, true, seriesModel));\n } else {\n if (isAreaChart && !polygon) {\n // If areaStyle is added\n polygon = this._newPolygon(points, stackedOnPoints);\n } else if (polygon && !isAreaChart) {\n // If areaStyle is removed\n lineGroup.remove(polygon);\n polygon = this._polygon = null;\n } // NOTE: Must update _endLabel before setClipPath.\n\n\n if (!isCoordSysPolar) {\n this._initOrUpdateEndLabel(seriesModel, coordSys, convertToColorString(visualColor));\n } // Update clipPath\n\n\n var oldClipPath = lineGroup.getClipPath();\n\n if (oldClipPath) {\n var newClipPath = createLineClipPath(this, coordSys, false, seriesModel);\n graphic.initProps(oldClipPath, {\n shape: newClipPath.shape\n }, seriesModel);\n } else {\n lineGroup.setClipPath(createLineClipPath(this, coordSys, true, seriesModel));\n } // Always update, or it is wrong in the case turning on legend\n // because points are not changed.\n\n\n showSymbol && symbolDraw.updateData(data, {\n isIgnore: isIgnoreFunc,\n clipShape: clipShapeForSymbol,\n disableAnimation: true,\n getSymbolPoint: function (idx) {\n return [points[idx * 2], points[idx * 2 + 1]];\n }\n }); // In the case data zoom triggered refreshing frequently\n // Data may not change if line has a category axis. So it should animate nothing.\n\n if (!isPointsSame(this._stackedOnPoints, stackedOnPoints) || !isPointsSame(this._points, points)) {\n if (hasAnimation) {\n this._doUpdateAnimation(data, stackedOnPoints, coordSys, api, step, valueOrigin, connectNulls);\n } else {\n // Not do it in update with animation\n if (step) {\n // TODO If stacked series is not step\n points = turnPointsIntoStep(points, coordSys, step, connectNulls);\n\n if (stackedOnPoints) {\n stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step, connectNulls);\n }\n }\n\n polyline.setShape({\n points: points\n });\n polygon && polygon.setShape({\n points: points,\n stackedOnPoints: stackedOnPoints\n });\n }\n }\n }\n\n var emphasisModel = seriesModel.getModel('emphasis');\n var focus = emphasisModel.get('focus');\n var blurScope = emphasisModel.get('blurScope');\n var emphasisDisabled = emphasisModel.get('disabled');\n polyline.useStyle(zrUtil.defaults( // Use color in lineStyle first\n lineStyleModel.getLineStyle(), {\n fill: 'none',\n stroke: visualColor,\n lineJoin: 'bevel'\n }));\n setStatesStylesFromModel(polyline, seriesModel, 'lineStyle');\n\n if (polyline.style.lineWidth > 0 && seriesModel.get(['emphasis', 'lineStyle', 'width']) === 'bolder') {\n var emphasisLineStyle = polyline.getState('emphasis').style;\n emphasisLineStyle.lineWidth = +polyline.style.lineWidth + 1;\n } // Needs seriesIndex for focus\n\n\n getECData(polyline).seriesIndex = seriesModel.seriesIndex;\n toggleHoverEmphasis(polyline, focus, blurScope, emphasisDisabled);\n var smooth = getSmooth(seriesModel.get('smooth'));\n var smoothMonotone = seriesModel.get('smoothMonotone');\n polyline.setShape({\n smooth: smooth,\n smoothMonotone: smoothMonotone,\n connectNulls: connectNulls\n });\n\n if (polygon) {\n var stackedOnSeries = data.getCalculationInfo('stackedOnSeries');\n var stackedOnSmooth = 0;\n polygon.useStyle(zrUtil.defaults(areaStyleModel.getAreaStyle(), {\n fill: visualColor,\n opacity: 0.7,\n lineJoin: 'bevel',\n decal: data.getVisual('style').decal\n }));\n\n if (stackedOnSeries) {\n stackedOnSmooth = getSmooth(stackedOnSeries.get('smooth'));\n }\n\n polygon.setShape({\n smooth: smooth,\n stackedOnSmooth: stackedOnSmooth,\n smoothMonotone: smoothMonotone,\n connectNulls: connectNulls\n });\n setStatesStylesFromModel(polygon, seriesModel, 'areaStyle'); // Needs seriesIndex for focus\n\n getECData(polygon).seriesIndex = seriesModel.seriesIndex;\n toggleHoverEmphasis(polygon, focus, blurScope, emphasisDisabled);\n }\n\n var changePolyState = function (toState) {\n _this._changePolyState(toState);\n };\n\n data.eachItemGraphicEl(function (el) {\n // Switch polyline / polygon state if element changed its state.\n el && (el.onHoverStateChange = changePolyState);\n });\n this._polyline.onHoverStateChange = changePolyState;\n this._data = data; // Save the coordinate system for transition animation when data changed\n\n this._coordSys = coordSys;\n this._stackedOnPoints = stackedOnPoints;\n this._points = points;\n this._step = step;\n this._valueOrigin = valueOrigin;\n\n if (seriesModel.get('triggerLineEvent')) {\n this.packEventData(seriesModel, polyline);\n polygon && this.packEventData(seriesModel, polygon);\n }\n };\n\n LineView.prototype.packEventData = function (seriesModel, el) {\n getECData(el).eventData = {\n componentType: 'series',\n componentSubType: 'line',\n componentIndex: seriesModel.componentIndex,\n seriesIndex: seriesModel.seriesIndex,\n seriesName: seriesModel.name,\n seriesType: 'line'\n };\n };\n\n LineView.prototype.highlight = function (seriesModel, ecModel, api, payload) {\n var data = seriesModel.getData();\n var dataIndex = modelUtil.queryDataIndex(data, payload);\n\n this._changePolyState('emphasis');\n\n if (!(dataIndex instanceof Array) && dataIndex != null && dataIndex >= 0) {\n var points = data.getLayout('points');\n var symbol = data.getItemGraphicEl(dataIndex);\n\n if (!symbol) {\n // Create a temporary symbol if it is not exists\n var x = points[dataIndex * 2];\n var y = points[dataIndex * 2 + 1];\n\n if (isNaN(x) || isNaN(y)) {\n // Null data\n return;\n } // fix #11360: shouldn't draw symbol outside clipShapeForSymbol\n\n\n if (this._clipShapeForSymbol && !this._clipShapeForSymbol.contain(x, y)) {\n return;\n }\n\n var zlevel = seriesModel.get('zlevel') || 0;\n var z = seriesModel.get('z') || 0;\n symbol = new SymbolClz(data, dataIndex);\n symbol.x = x;\n symbol.y = y;\n symbol.setZ(zlevel, z); // ensure label text of the temporary symbol is in front of line and area polygon\n\n var symbolLabel = symbol.getSymbolPath().getTextContent();\n\n if (symbolLabel) {\n symbolLabel.zlevel = zlevel;\n symbolLabel.z = z;\n symbolLabel.z2 = this._polyline.z2 + 1;\n }\n\n symbol.__temp = true;\n data.setItemGraphicEl(dataIndex, symbol); // Stop scale animation\n\n symbol.stopSymbolAnimation(true);\n this.group.add(symbol);\n }\n\n symbol.highlight();\n } else {\n // Highlight whole series\n ChartView.prototype.highlight.call(this, seriesModel, ecModel, api, payload);\n }\n };\n\n LineView.prototype.downplay = function (seriesModel, ecModel, api, payload) {\n var data = seriesModel.getData();\n var dataIndex = modelUtil.queryDataIndex(data, payload);\n\n this._changePolyState('normal');\n\n if (dataIndex != null && dataIndex >= 0) {\n var symbol = data.getItemGraphicEl(dataIndex);\n\n if (symbol) {\n if (symbol.__temp) {\n data.setItemGraphicEl(dataIndex, null);\n this.group.remove(symbol);\n } else {\n symbol.downplay();\n }\n }\n } else {\n // FIXME\n // can not downplay completely.\n // Downplay whole series\n ChartView.prototype.downplay.call(this, seriesModel, ecModel, api, payload);\n }\n };\n\n LineView.prototype._changePolyState = function (toState) {\n var polygon = this._polygon;\n setStatesFlag(this._polyline, toState);\n polygon && setStatesFlag(polygon, toState);\n };\n\n LineView.prototype._newPolyline = function (points) {\n var polyline = this._polyline; // Remove previous created polyline\n\n if (polyline) {\n this._lineGroup.remove(polyline);\n }\n\n polyline = new ECPolyline({\n shape: {\n points: points\n },\n segmentIgnoreThreshold: 2,\n z2: 10\n });\n\n this._lineGroup.add(polyline);\n\n this._polyline = polyline;\n return polyline;\n };\n\n LineView.prototype._newPolygon = function (points, stackedOnPoints) {\n var polygon = this._polygon; // Remove previous created polygon\n\n if (polygon) {\n this._lineGroup.remove(polygon);\n }\n\n polygon = new ECPolygon({\n shape: {\n points: points,\n stackedOnPoints: stackedOnPoints\n },\n segmentIgnoreThreshold: 2\n });\n\n this._lineGroup.add(polygon);\n\n this._polygon = polygon;\n return polygon;\n };\n\n LineView.prototype._initSymbolLabelAnimation = function (data, coordSys, clipShape) {\n var isHorizontalOrRadial;\n var isCoordSysPolar;\n var baseAxis = coordSys.getBaseAxis();\n var isAxisInverse = baseAxis.inverse;\n\n if (coordSys.type === 'cartesian2d') {\n isHorizontalOrRadial = baseAxis.isHorizontal();\n isCoordSysPolar = false;\n } else if (coordSys.type === 'polar') {\n isHorizontalOrRadial = baseAxis.dim === 'angle';\n isCoordSysPolar = true;\n }\n\n var seriesModel = data.hostModel;\n var seriesDuration = seriesModel.get('animationDuration');\n\n if (zrUtil.isFunction(seriesDuration)) {\n seriesDuration = seriesDuration(null);\n }\n\n var seriesDelay = seriesModel.get('animationDelay') || 0;\n var seriesDelayValue = zrUtil.isFunction(seriesDelay) ? seriesDelay(null) : seriesDelay;\n data.eachItemGraphicEl(function (symbol, idx) {\n var el = symbol;\n\n if (el) {\n var point = [symbol.x, symbol.y];\n var start = void 0;\n var end = void 0;\n var current = void 0;\n\n if (clipShape) {\n if (isCoordSysPolar) {\n var polarClip = clipShape;\n var coord = coordSys.pointToCoord(point);\n\n if (isHorizontalOrRadial) {\n start = polarClip.startAngle;\n end = polarClip.endAngle;\n current = -coord[1] / 180 * Math.PI;\n } else {\n start = polarClip.r0;\n end = polarClip.r;\n current = coord[0];\n }\n } else {\n var gridClip = clipShape;\n\n if (isHorizontalOrRadial) {\n start = gridClip.x;\n end = gridClip.x + gridClip.width;\n current = symbol.x;\n } else {\n start = gridClip.y + gridClip.height;\n end = gridClip.y;\n current = symbol.y;\n }\n }\n }\n\n var ratio = end === start ? 0 : (current - start) / (end - start);\n\n if (isAxisInverse) {\n ratio = 1 - ratio;\n }\n\n var delay = zrUtil.isFunction(seriesDelay) ? seriesDelay(idx) : seriesDuration * ratio + seriesDelayValue;\n var symbolPath = el.getSymbolPath();\n var text = symbolPath.getTextContent();\n el.attr({\n scaleX: 0,\n scaleY: 0\n });\n el.animateTo({\n scaleX: 1,\n scaleY: 1\n }, {\n duration: 200,\n setToFinal: true,\n delay: delay\n });\n\n if (text) {\n text.animateFrom({\n style: {\n opacity: 0\n }\n }, {\n duration: 300,\n delay: delay\n });\n }\n\n symbolPath.disableLabelAnimation = true;\n }\n });\n };\n\n LineView.prototype._initOrUpdateEndLabel = function (seriesModel, coordSys, inheritColor) {\n var endLabelModel = seriesModel.getModel('endLabel');\n\n if (anyStateShowEndLabel(seriesModel)) {\n var data_2 = seriesModel.getData();\n var polyline = this._polyline; // series may be filtered.\n\n var points = data_2.getLayout('points');\n\n if (!points) {\n polyline.removeTextContent();\n this._endLabel = null;\n return;\n }\n\n var endLabel = this._endLabel;\n\n if (!endLabel) {\n endLabel = this._endLabel = new graphic.Text({\n z2: 200 // should be higher than item symbol\n\n });\n endLabel.ignoreClip = true;\n polyline.setTextContent(this._endLabel);\n polyline.disableLabelAnimation = true;\n } // Find last non-NaN data to display data\n\n\n var dataIndex = getLastIndexNotNull(points);\n\n if (dataIndex >= 0) {\n setLabelStyle(polyline, getLabelStatesModels(seriesModel, 'endLabel'), {\n inheritColor: inheritColor,\n labelFetcher: seriesModel,\n labelDataIndex: dataIndex,\n defaultText: function (dataIndex, opt, interpolatedValue) {\n return interpolatedValue != null ? getDefaultInterpolatedLabel(data_2, interpolatedValue) : getDefaultLabel(data_2, dataIndex);\n },\n enableTextSetter: true\n }, getEndLabelStateSpecified(endLabelModel, coordSys));\n polyline.textConfig.position = null;\n }\n } else if (this._endLabel) {\n this._polyline.removeTextContent();\n\n this._endLabel = null;\n }\n };\n\n LineView.prototype._endLabelOnDuring = function (percent, clipRect, data, animationRecord, valueAnimation, endLabelModel, coordSys) {\n var endLabel = this._endLabel;\n var polyline = this._polyline;\n\n if (endLabel) {\n // NOTE: Don't remove percent < 1. percent === 1 means the first frame during render.\n // The label is not prepared at this time.\n if (percent < 1 && animationRecord.originalX == null) {\n animationRecord.originalX = endLabel.x;\n animationRecord.originalY = endLabel.y;\n }\n\n var points = data.getLayout('points');\n var seriesModel = data.hostModel;\n var connectNulls = seriesModel.get('connectNulls');\n var precision = endLabelModel.get('precision');\n var distance = endLabelModel.get('distance') || 0;\n var baseAxis = coordSys.getBaseAxis();\n var isHorizontal = baseAxis.isHorizontal();\n var isBaseInversed = baseAxis.inverse;\n var clipShape = clipRect.shape;\n var xOrY = isBaseInversed ? isHorizontal ? clipShape.x : clipShape.y + clipShape.height : isHorizontal ? clipShape.x + clipShape.width : clipShape.y;\n var distanceX = (isHorizontal ? distance : 0) * (isBaseInversed ? -1 : 1);\n var distanceY = (isHorizontal ? 0 : -distance) * (isBaseInversed ? -1 : 1);\n var dim = isHorizontal ? 'x' : 'y';\n var dataIndexRange = getIndexRange(points, xOrY, dim);\n var indices = dataIndexRange.range;\n var diff = indices[1] - indices[0];\n var value = void 0;\n\n if (diff >= 1) {\n // diff > 1 && connectNulls, which is on the null data.\n if (diff > 1 && !connectNulls) {\n var pt = getPointAtIndex(points, indices[0]);\n endLabel.attr({\n x: pt[0] + distanceX,\n y: pt[1] + distanceY\n });\n valueAnimation && (value = seriesModel.getRawValue(indices[0]));\n } else {\n var pt = polyline.getPointOn(xOrY, dim);\n pt && endLabel.attr({\n x: pt[0] + distanceX,\n y: pt[1] + distanceY\n });\n var startValue = seriesModel.getRawValue(indices[0]);\n var endValue = seriesModel.getRawValue(indices[1]);\n valueAnimation && (value = modelUtil.interpolateRawValues(data, precision, startValue, endValue, dataIndexRange.t));\n }\n\n animationRecord.lastFrameIndex = indices[0];\n } else {\n // If diff <= 0, which is the range is not found(Include NaN)\n // Choose the first point or last point.\n var idx = percent === 1 || animationRecord.lastFrameIndex > 0 ? indices[0] : 0;\n var pt = getPointAtIndex(points, idx);\n valueAnimation && (value = seriesModel.getRawValue(idx));\n endLabel.attr({\n x: pt[0] + distanceX,\n y: pt[1] + distanceY\n });\n }\n\n if (valueAnimation) {\n labelInner(endLabel).setLabelText(value);\n }\n }\n };\n /**\n * @private\n */\n // FIXME Two value axis\n\n\n LineView.prototype._doUpdateAnimation = function (data, stackedOnPoints, coordSys, api, step, valueOrigin, connectNulls) {\n var polyline = this._polyline;\n var polygon = this._polygon;\n var seriesModel = data.hostModel;\n var diff = lineAnimationDiff(this._data, data, this._stackedOnPoints, stackedOnPoints, this._coordSys, coordSys, this._valueOrigin, valueOrigin);\n var current = diff.current;\n var stackedOnCurrent = diff.stackedOnCurrent;\n var next = diff.next;\n var stackedOnNext = diff.stackedOnNext;\n\n if (step) {\n // TODO If stacked series is not step\n current = turnPointsIntoStep(diff.current, coordSys, step, connectNulls);\n stackedOnCurrent = turnPointsIntoStep(diff.stackedOnCurrent, coordSys, step, connectNulls);\n next = turnPointsIntoStep(diff.next, coordSys, step, connectNulls);\n stackedOnNext = turnPointsIntoStep(diff.stackedOnNext, coordSys, step, connectNulls);\n } // Don't apply animation if diff is large.\n // For better result and avoid memory explosion problems like\n // https://github.com/apache/incubator-echarts/issues/12229\n\n\n if (getBoundingDiff(current, next) > 3000 || polygon && getBoundingDiff(stackedOnCurrent, stackedOnNext) > 3000) {\n polyline.stopAnimation();\n polyline.setShape({\n points: next\n });\n\n if (polygon) {\n polygon.stopAnimation();\n polygon.setShape({\n points: next,\n stackedOnPoints: stackedOnNext\n });\n }\n\n return;\n }\n\n polyline.shape.__points = diff.current;\n polyline.shape.points = current;\n var target = {\n shape: {\n points: next\n }\n }; // Also animate the original points.\n // If points reference is changed when turning into step line.\n\n if (diff.current !== current) {\n target.shape.__points = diff.next;\n } // Stop previous animation.\n\n\n polyline.stopAnimation();\n graphic.updateProps(polyline, target, seriesModel);\n\n if (polygon) {\n polygon.setShape({\n // Reuse the points with polyline.\n points: current,\n stackedOnPoints: stackedOnCurrent\n });\n polygon.stopAnimation();\n graphic.updateProps(polygon, {\n shape: {\n stackedOnPoints: stackedOnNext\n }\n }, seriesModel); // If use attr directly in updateProps.\n\n if (polyline.shape.points !== polygon.shape.points) {\n polygon.shape.points = polyline.shape.points;\n }\n }\n\n var updatedDataInfo = [];\n var diffStatus = diff.status;\n\n for (var i = 0; i < diffStatus.length; i++) {\n var cmd = diffStatus[i].cmd;\n\n if (cmd === '=') {\n var el = data.getItemGraphicEl(diffStatus[i].idx1);\n\n if (el) {\n updatedDataInfo.push({\n el: el,\n ptIdx: i // Index of points\n\n });\n }\n }\n }\n\n if (polyline.animators && polyline.animators.length) {\n polyline.animators[0].during(function () {\n polygon && polygon.dirtyShape();\n var points = polyline.shape.__points;\n\n for (var i = 0; i < updatedDataInfo.length; i++) {\n var el = updatedDataInfo[i].el;\n var offset = updatedDataInfo[i].ptIdx * 2;\n el.x = points[offset];\n el.y = points[offset + 1];\n el.markRedraw();\n }\n });\n }\n };\n\n LineView.prototype.remove = function (ecModel) {\n var group = this.group;\n var oldData = this._data;\n\n this._lineGroup.removeAll();\n\n this._symbolDraw.remove(true); // Remove temporary created elements when highlighting\n\n\n oldData && oldData.eachItemGraphicEl(function (el, idx) {\n if (el.__temp) {\n group.remove(el);\n oldData.setItemGraphicEl(idx, null);\n }\n });\n this._polyline = this._polygon = this._coordSys = this._points = this._stackedOnPoints = this._endLabel = this._data = null;\n };\n\n LineView.type = 'line';\n return LineView;\n}(ChartView);\n\nexport default LineView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { isDimensionStacked } from '../../data/helper/dataStackHelper.js';\nimport { isNumber, map } from 'zrender/lib/core/util.js';\nexport function prepareDataCoordInfo(coordSys, data, valueOrigin) {\n var baseAxis = coordSys.getBaseAxis();\n var valueAxis = coordSys.getOtherAxis(baseAxis);\n var valueStart = getValueStart(valueAxis, valueOrigin);\n var baseAxisDim = baseAxis.dim;\n var valueAxisDim = valueAxis.dim;\n var valueDim = data.mapDimension(valueAxisDim);\n var baseDim = data.mapDimension(baseAxisDim);\n var baseDataOffset = valueAxisDim === 'x' || valueAxisDim === 'radius' ? 1 : 0;\n var dims = map(coordSys.dimensions, function (coordDim) {\n return data.mapDimension(coordDim);\n });\n var stacked = false;\n var stackResultDim = data.getCalculationInfo('stackResultDimension');\n\n if (isDimensionStacked(data, dims[0]\n /* , dims[1] */\n )) {\n // jshint ignore:line\n stacked = true;\n dims[0] = stackResultDim;\n }\n\n if (isDimensionStacked(data, dims[1]\n /* , dims[0] */\n )) {\n // jshint ignore:line\n stacked = true;\n dims[1] = stackResultDim;\n }\n\n return {\n dataDimsForPoint: dims,\n valueStart: valueStart,\n valueAxisDim: valueAxisDim,\n baseAxisDim: baseAxisDim,\n stacked: !!stacked,\n valueDim: valueDim,\n baseDim: baseDim,\n baseDataOffset: baseDataOffset,\n stackedOverDimension: data.getCalculationInfo('stackedOverDimension')\n };\n}\n\nfunction getValueStart(valueAxis, valueOrigin) {\n var valueStart = 0;\n var extent = valueAxis.scale.getExtent();\n\n if (valueOrigin === 'start') {\n valueStart = extent[0];\n } else if (valueOrigin === 'end') {\n valueStart = extent[1];\n } // If origin is specified as a number, use it as\n // valueStart directly\n else if (isNumber(valueOrigin) && !isNaN(valueOrigin)) {\n valueStart = valueOrigin;\n } // auto\n else {\n // Both positive\n if (extent[0] > 0) {\n valueStart = extent[0];\n } // Both negative\n else if (extent[1] < 0) {\n valueStart = extent[1];\n } // If is one positive, and one negative, onZero shall be true\n\n }\n\n return valueStart;\n}\n\nexport function getStackedOnPoint(dataCoordInfo, coordSys, data, idx) {\n var value = NaN;\n\n if (dataCoordInfo.stacked) {\n value = data.get(data.getCalculationInfo('stackedOverDimension'), idx);\n }\n\n if (isNaN(value)) {\n value = dataCoordInfo.valueStart;\n }\n\n var baseDataOffset = dataCoordInfo.baseDataOffset;\n var stackedData = [];\n stackedData[baseDataOffset] = data.get(dataCoordInfo.baseDim, idx);\n stackedData[1 - baseDataOffset] = value;\n return coordSys.dataToPoint(stackedData);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport LineSeries from './LineSeries.js';\nimport LineView from './LineView.js'; // In case developer forget to include grid component\n\nimport layoutPoints from '../../layout/points.js';\nimport dataSample from '../../processor/dataSample.js';\nexport function install(registers) {\n registers.registerChartView(LineView);\n registers.registerSeriesModel(LineSeries);\n registers.registerLayout(layoutPoints('line', true));\n registers.registerVisual({\n seriesType: 'line',\n reset: function (seriesModel) {\n var data = seriesModel.getData(); // Visual coding for legend\n\n var lineStyle = seriesModel.getModel('lineStyle').getLineStyle();\n\n if (lineStyle && !lineStyle.stroke) {\n // Fill in visual should be palette color if\n // has color callback\n lineStyle.stroke = data.getVisual('style').fill;\n }\n\n data.setVisual('legendLineStyle', lineStyle);\n }\n }); // Down sample after filter\n\n registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, dataSample('line'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { prepareDataCoordInfo, getStackedOnPoint } from './helper.js';\nimport { createFloat32Array } from '../../util/vendor.js';\n\nfunction diffData(oldData, newData) {\n var diffResult = [];\n newData.diff(oldData).add(function (idx) {\n diffResult.push({\n cmd: '+',\n idx: idx\n });\n }).update(function (newIdx, oldIdx) {\n diffResult.push({\n cmd: '=',\n idx: oldIdx,\n idx1: newIdx\n });\n }).remove(function (idx) {\n diffResult.push({\n cmd: '-',\n idx: idx\n });\n }).execute();\n return diffResult;\n}\n\nexport default function lineAnimationDiff(oldData, newData, oldStackedOnPoints, newStackedOnPoints, oldCoordSys, newCoordSys, oldValueOrigin, newValueOrigin) {\n var diff = diffData(oldData, newData); // let newIdList = newData.mapArray(newData.getId);\n // let oldIdList = oldData.mapArray(oldData.getId);\n // convertToIntId(newIdList, oldIdList);\n // // FIXME One data ?\n // diff = arrayDiff(oldIdList, newIdList);\n\n var currPoints = [];\n var nextPoints = []; // Points for stacking base line\n\n var currStackedPoints = [];\n var nextStackedPoints = [];\n var status = [];\n var sortedIndices = [];\n var rawIndices = [];\n var newDataOldCoordInfo = prepareDataCoordInfo(oldCoordSys, newData, oldValueOrigin); // const oldDataNewCoordInfo = prepareDataCoordInfo(newCoordSys, oldData, newValueOrigin);\n\n var oldPoints = oldData.getLayout('points') || [];\n var newPoints = newData.getLayout('points') || [];\n\n for (var i = 0; i < diff.length; i++) {\n var diffItem = diff[i];\n var pointAdded = true;\n var oldIdx2 = void 0;\n var newIdx2 = void 0; // FIXME, animation is not so perfect when dataZoom window moves fast\n // Which is in case remvoing or add more than one data in the tail or head\n\n switch (diffItem.cmd) {\n case '=':\n oldIdx2 = diffItem.idx * 2;\n newIdx2 = diffItem.idx1 * 2;\n var currentX = oldPoints[oldIdx2];\n var currentY = oldPoints[oldIdx2 + 1];\n var nextX = newPoints[newIdx2];\n var nextY = newPoints[newIdx2 + 1]; // If previous data is NaN, use next point directly\n\n if (isNaN(currentX) || isNaN(currentY)) {\n currentX = nextX;\n currentY = nextY;\n }\n\n currPoints.push(currentX, currentY);\n nextPoints.push(nextX, nextY);\n currStackedPoints.push(oldStackedOnPoints[oldIdx2], oldStackedOnPoints[oldIdx2 + 1]);\n nextStackedPoints.push(newStackedOnPoints[newIdx2], newStackedOnPoints[newIdx2 + 1]);\n rawIndices.push(newData.getRawIndex(diffItem.idx1));\n break;\n\n case '+':\n var newIdx = diffItem.idx;\n var newDataDimsForPoint = newDataOldCoordInfo.dataDimsForPoint;\n var oldPt = oldCoordSys.dataToPoint([newData.get(newDataDimsForPoint[0], newIdx), newData.get(newDataDimsForPoint[1], newIdx)]);\n newIdx2 = newIdx * 2;\n currPoints.push(oldPt[0], oldPt[1]);\n nextPoints.push(newPoints[newIdx2], newPoints[newIdx2 + 1]);\n var stackedOnPoint = getStackedOnPoint(newDataOldCoordInfo, oldCoordSys, newData, newIdx);\n currStackedPoints.push(stackedOnPoint[0], stackedOnPoint[1]);\n nextStackedPoints.push(newStackedOnPoints[newIdx2], newStackedOnPoints[newIdx2 + 1]);\n rawIndices.push(newData.getRawIndex(newIdx));\n break;\n\n case '-':\n pointAdded = false;\n } // Original indices\n\n\n if (pointAdded) {\n status.push(diffItem);\n sortedIndices.push(sortedIndices.length);\n }\n } // Diff result may be crossed if all items are changed\n // Sort by data index\n\n\n sortedIndices.sort(function (a, b) {\n return rawIndices[a] - rawIndices[b];\n });\n var len = currPoints.length;\n var sortedCurrPoints = createFloat32Array(len);\n var sortedNextPoints = createFloat32Array(len);\n var sortedCurrStackedPoints = createFloat32Array(len);\n var sortedNextStackedPoints = createFloat32Array(len);\n var sortedStatus = [];\n\n for (var i = 0; i < sortedIndices.length; i++) {\n var idx = sortedIndices[i];\n var i2 = i * 2;\n var idx2 = idx * 2;\n sortedCurrPoints[i2] = currPoints[idx2];\n sortedCurrPoints[i2 + 1] = currPoints[idx2 + 1];\n sortedNextPoints[i2] = nextPoints[idx2];\n sortedNextPoints[i2 + 1] = nextPoints[idx2 + 1];\n sortedCurrStackedPoints[i2] = currStackedPoints[idx2];\n sortedCurrStackedPoints[i2 + 1] = currStackedPoints[idx2 + 1];\n sortedNextStackedPoints[i2] = nextStackedPoints[idx2];\n sortedNextStackedPoints[i2 + 1] = nextStackedPoints[idx2 + 1];\n sortedStatus[i] = status[idx];\n }\n\n return {\n current: sortedCurrPoints,\n next: sortedNextPoints,\n stackedOnCurrent: sortedCurrStackedPoints,\n stackedOnNext: sortedNextStackedPoints,\n status: sortedStatus\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\"; // Poly path support NaN point\n\nimport Path from 'zrender/lib/graphic/Path.js';\nimport PathProxy from 'zrender/lib/core/PathProxy.js';\nimport { cubicRootAt, cubicAt } from 'zrender/lib/core/curve.js';\nvar mathMin = Math.min;\nvar mathMax = Math.max;\n\nfunction isPointNull(x, y) {\n return isNaN(x) || isNaN(y);\n}\n/**\n * Draw smoothed line in non-monotone, in may cause undesired curve in extreme\n * situations. This should be used when points are non-monotone neither in x or\n * y dimension.\n */\n\n\nfunction drawSegment(ctx, points, start, segLen, allLen, dir, smooth, smoothMonotone, connectNulls) {\n var prevX;\n var prevY;\n var cpx0;\n var cpy0;\n var cpx1;\n var cpy1;\n var idx = start;\n var k = 0;\n\n for (; k < segLen; k++) {\n var x = points[idx * 2];\n var y = points[idx * 2 + 1];\n\n if (idx >= allLen || idx < 0) {\n break;\n }\n\n if (isPointNull(x, y)) {\n if (connectNulls) {\n idx += dir;\n continue;\n }\n\n break;\n }\n\n if (idx === start) {\n ctx[dir > 0 ? 'moveTo' : 'lineTo'](x, y);\n cpx0 = x;\n cpy0 = y;\n } else {\n var dx = x - prevX;\n var dy = y - prevY; // Ignore tiny segment.\n\n if (dx * dx + dy * dy < 0.5) {\n idx += dir;\n continue;\n }\n\n if (smooth > 0) {\n var nextIdx = idx + dir;\n var nextX = points[nextIdx * 2];\n var nextY = points[nextIdx * 2 + 1]; // Ignore duplicate point\n\n while (nextX === x && nextY === y && k < segLen) {\n k++;\n nextIdx += dir;\n idx += dir;\n nextX = points[nextIdx * 2];\n nextY = points[nextIdx * 2 + 1];\n x = points[idx * 2];\n y = points[idx * 2 + 1];\n dx = x - prevX;\n dy = y - prevY;\n }\n\n var tmpK = k + 1;\n\n if (connectNulls) {\n // Find next point not null\n while (isPointNull(nextX, nextY) && tmpK < segLen) {\n tmpK++;\n nextIdx += dir;\n nextX = points[nextIdx * 2];\n nextY = points[nextIdx * 2 + 1];\n }\n }\n\n var ratioNextSeg = 0.5;\n var vx = 0;\n var vy = 0;\n var nextCpx0 = void 0;\n var nextCpy0 = void 0; // Is last point\n\n if (tmpK >= segLen || isPointNull(nextX, nextY)) {\n cpx1 = x;\n cpy1 = y;\n } else {\n vx = nextX - prevX;\n vy = nextY - prevY;\n var dx0 = x - prevX;\n var dx1 = nextX - x;\n var dy0 = y - prevY;\n var dy1 = nextY - y;\n var lenPrevSeg = void 0;\n var lenNextSeg = void 0;\n\n if (smoothMonotone === 'x') {\n lenPrevSeg = Math.abs(dx0);\n lenNextSeg = Math.abs(dx1);\n var dir_1 = vx > 0 ? 1 : -1;\n cpx1 = x - dir_1 * lenPrevSeg * smooth;\n cpy1 = y;\n nextCpx0 = x + dir_1 * lenNextSeg * smooth;\n nextCpy0 = y;\n } else if (smoothMonotone === 'y') {\n lenPrevSeg = Math.abs(dy0);\n lenNextSeg = Math.abs(dy1);\n var dir_2 = vy > 0 ? 1 : -1;\n cpx1 = x;\n cpy1 = y - dir_2 * lenPrevSeg * smooth;\n nextCpx0 = x;\n nextCpy0 = y + dir_2 * lenNextSeg * smooth;\n } else {\n lenPrevSeg = Math.sqrt(dx0 * dx0 + dy0 * dy0);\n lenNextSeg = Math.sqrt(dx1 * dx1 + dy1 * dy1); // Use ratio of seg length\n\n ratioNextSeg = lenNextSeg / (lenNextSeg + lenPrevSeg);\n cpx1 = x - vx * smooth * (1 - ratioNextSeg);\n cpy1 = y - vy * smooth * (1 - ratioNextSeg); // cp0 of next segment\n\n nextCpx0 = x + vx * smooth * ratioNextSeg;\n nextCpy0 = y + vy * smooth * ratioNextSeg; // Smooth constraint between point and next point.\n // Avoid exceeding extreme after smoothing.\n\n nextCpx0 = mathMin(nextCpx0, mathMax(nextX, x));\n nextCpy0 = mathMin(nextCpy0, mathMax(nextY, y));\n nextCpx0 = mathMax(nextCpx0, mathMin(nextX, x));\n nextCpy0 = mathMax(nextCpy0, mathMin(nextY, y)); // Reclaculate cp1 based on the adjusted cp0 of next seg.\n\n vx = nextCpx0 - x;\n vy = nextCpy0 - y;\n cpx1 = x - vx * lenPrevSeg / lenNextSeg;\n cpy1 = y - vy * lenPrevSeg / lenNextSeg; // Smooth constraint between point and prev point.\n // Avoid exceeding extreme after smoothing.\n\n cpx1 = mathMin(cpx1, mathMax(prevX, x));\n cpy1 = mathMin(cpy1, mathMax(prevY, y));\n cpx1 = mathMax(cpx1, mathMin(prevX, x));\n cpy1 = mathMax(cpy1, mathMin(prevY, y)); // Adjust next cp0 again.\n\n vx = x - cpx1;\n vy = y - cpy1;\n nextCpx0 = x + vx * lenNextSeg / lenPrevSeg;\n nextCpy0 = y + vy * lenNextSeg / lenPrevSeg;\n }\n }\n\n ctx.bezierCurveTo(cpx0, cpy0, cpx1, cpy1, x, y);\n cpx0 = nextCpx0;\n cpy0 = nextCpy0;\n } else {\n ctx.lineTo(x, y);\n }\n }\n\n prevX = x;\n prevY = y;\n idx += dir;\n }\n\n return k;\n}\n\nvar ECPolylineShape =\n/** @class */\nfunction () {\n function ECPolylineShape() {\n this.smooth = 0;\n this.smoothConstraint = true;\n }\n\n return ECPolylineShape;\n}();\n\nvar ECPolyline =\n/** @class */\nfunction (_super) {\n __extends(ECPolyline, _super);\n\n function ECPolyline(opts) {\n var _this = _super.call(this, opts) || this;\n\n _this.type = 'ec-polyline';\n return _this;\n }\n\n ECPolyline.prototype.getDefaultStyle = function () {\n return {\n stroke: '#000',\n fill: null\n };\n };\n\n ECPolyline.prototype.getDefaultShape = function () {\n return new ECPolylineShape();\n };\n\n ECPolyline.prototype.buildPath = function (ctx, shape) {\n var points = shape.points;\n var i = 0;\n var len = points.length / 2; // const result = getBoundingBox(points, shape.smoothConstraint);\n\n if (shape.connectNulls) {\n // Must remove first and last null values avoid draw error in polygon\n for (; len > 0; len--) {\n if (!isPointNull(points[len * 2 - 2], points[len * 2 - 1])) {\n break;\n }\n }\n\n for (; i < len; i++) {\n if (!isPointNull(points[i * 2], points[i * 2 + 1])) {\n break;\n }\n }\n }\n\n while (i < len) {\n i += drawSegment(ctx, points, i, len, len, 1, shape.smooth, shape.smoothMonotone, shape.connectNulls) + 1;\n }\n };\n\n ECPolyline.prototype.getPointOn = function (xOrY, dim) {\n if (!this.path) {\n this.createPathProxy();\n this.buildPath(this.path, this.shape);\n }\n\n var path = this.path;\n var data = path.data;\n var CMD = PathProxy.CMD;\n var x0;\n var y0;\n var isDimX = dim === 'x';\n var roots = [];\n\n for (var i = 0; i < data.length;) {\n var cmd = data[i++];\n var x = void 0;\n var y = void 0;\n var x2 = void 0;\n var y2 = void 0;\n var x3 = void 0;\n var y3 = void 0;\n var t = void 0;\n\n switch (cmd) {\n case CMD.M:\n x0 = data[i++];\n y0 = data[i++];\n break;\n\n case CMD.L:\n x = data[i++];\n y = data[i++];\n t = isDimX ? (xOrY - x0) / (x - x0) : (xOrY - y0) / (y - y0);\n\n if (t <= 1 && t >= 0) {\n var val = isDimX ? (y - y0) * t + y0 : (x - x0) * t + x0;\n return isDimX ? [xOrY, val] : [val, xOrY];\n }\n\n x0 = x;\n y0 = y;\n break;\n\n case CMD.C:\n x = data[i++];\n y = data[i++];\n x2 = data[i++];\n y2 = data[i++];\n x3 = data[i++];\n y3 = data[i++];\n var nRoot = isDimX ? cubicRootAt(x0, x, x2, x3, xOrY, roots) : cubicRootAt(y0, y, y2, y3, xOrY, roots);\n\n if (nRoot > 0) {\n for (var i_1 = 0; i_1 < nRoot; i_1++) {\n var t_1 = roots[i_1];\n\n if (t_1 <= 1 && t_1 >= 0) {\n var val = isDimX ? cubicAt(y0, y, y2, y3, t_1) : cubicAt(x0, x, x2, x3, t_1);\n return isDimX ? [xOrY, val] : [val, xOrY];\n }\n }\n }\n\n x0 = x3;\n y0 = y3;\n break;\n }\n }\n };\n\n return ECPolyline;\n}(Path);\n\nexport { ECPolyline };\n\nvar ECPolygonShape =\n/** @class */\nfunction (_super) {\n __extends(ECPolygonShape, _super);\n\n function ECPolygonShape() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n return ECPolygonShape;\n}(ECPolylineShape);\n\nvar ECPolygon =\n/** @class */\nfunction (_super) {\n __extends(ECPolygon, _super);\n\n function ECPolygon(opts) {\n var _this = _super.call(this, opts) || this;\n\n _this.type = 'ec-polygon';\n return _this;\n }\n\n ECPolygon.prototype.getDefaultShape = function () {\n return new ECPolygonShape();\n };\n\n ECPolygon.prototype.buildPath = function (ctx, shape) {\n var points = shape.points;\n var stackedOnPoints = shape.stackedOnPoints;\n var i = 0;\n var len = points.length / 2;\n var smoothMonotone = shape.smoothMonotone;\n\n if (shape.connectNulls) {\n // Must remove first and last null values avoid draw error in polygon\n for (; len > 0; len--) {\n if (!isPointNull(points[len * 2 - 2], points[len * 2 - 1])) {\n break;\n }\n }\n\n for (; i < len; i++) {\n if (!isPointNull(points[i * 2], points[i * 2 + 1])) {\n break;\n }\n }\n }\n\n while (i < len) {\n var k = drawSegment(ctx, points, i, len, len, 1, shape.smooth, smoothMonotone, shape.connectNulls);\n drawSegment(ctx, stackedOnPoints, i + k - 1, k, len, -1, shape.stackedOnSmooth, smoothMonotone, shape.connectNulls);\n i += k + 1;\n ctx.closePath();\n }\n };\n\n return ECPolygon;\n}(Path);\n\nexport { ECPolygon };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\n/* global Uint32Array, Float64Array, Float32Array */\n\nimport SeriesModel from '../../model/Series.js';\nimport SeriesData from '../../data/SeriesData.js';\nimport { concatArray, mergeAll, map, isNumber } from 'zrender/lib/core/util.js';\nimport CoordinateSystem from '../../core/CoordinateSystem.js';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup.js';\nvar Uint32Arr = typeof Uint32Array === 'undefined' ? Array : Uint32Array;\nvar Float64Arr = typeof Float64Array === 'undefined' ? Array : Float64Array;\n\nfunction compatEc2(seriesOpt) {\n var data = seriesOpt.data;\n\n if (data && data[0] && data[0][0] && data[0][0].coord) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('Lines data configuration has been changed to' + ' { coords:[[1,2],[2,3]] }');\n }\n\n seriesOpt.data = map(data, function (itemOpt) {\n var coords = [itemOpt[0].coord, itemOpt[1].coord];\n var target = {\n coords: coords\n };\n\n if (itemOpt[0].name) {\n target.fromName = itemOpt[0].name;\n }\n\n if (itemOpt[1].name) {\n target.toName = itemOpt[1].name;\n }\n\n return mergeAll([target, itemOpt[0], itemOpt[1]]);\n });\n }\n}\n\nvar LinesSeriesModel =\n/** @class */\nfunction (_super) {\n __extends(LinesSeriesModel, _super);\n\n function LinesSeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = LinesSeriesModel.type;\n _this.visualStyleAccessPath = 'lineStyle';\n _this.visualDrawType = 'stroke';\n return _this;\n }\n\n LinesSeriesModel.prototype.init = function (option) {\n // The input data may be null/undefined.\n option.data = option.data || []; // Not using preprocessor because mergeOption may not have series.type\n\n compatEc2(option);\n\n var result = this._processFlatCoordsArray(option.data);\n\n this._flatCoords = result.flatCoords;\n this._flatCoordsOffset = result.flatCoordsOffset;\n\n if (result.flatCoords) {\n option.data = new Float32Array(result.count);\n }\n\n _super.prototype.init.apply(this, arguments);\n };\n\n LinesSeriesModel.prototype.mergeOption = function (option) {\n compatEc2(option);\n\n if (option.data) {\n // Only update when have option data to merge.\n var result = this._processFlatCoordsArray(option.data);\n\n this._flatCoords = result.flatCoords;\n this._flatCoordsOffset = result.flatCoordsOffset;\n\n if (result.flatCoords) {\n option.data = new Float32Array(result.count);\n }\n }\n\n _super.prototype.mergeOption.apply(this, arguments);\n };\n\n LinesSeriesModel.prototype.appendData = function (params) {\n var result = this._processFlatCoordsArray(params.data);\n\n if (result.flatCoords) {\n if (!this._flatCoords) {\n this._flatCoords = result.flatCoords;\n this._flatCoordsOffset = result.flatCoordsOffset;\n } else {\n this._flatCoords = concatArray(this._flatCoords, result.flatCoords);\n this._flatCoordsOffset = concatArray(this._flatCoordsOffset, result.flatCoordsOffset);\n }\n\n params.data = new Float32Array(result.count);\n }\n\n this.getRawData().appendData(params.data);\n };\n\n LinesSeriesModel.prototype._getCoordsFromItemModel = function (idx) {\n var itemModel = this.getData().getItemModel(idx);\n var coords = itemModel.option instanceof Array ? itemModel.option : itemModel.getShallow('coords');\n\n if (process.env.NODE_ENV !== 'production') {\n if (!(coords instanceof Array && coords.length > 0 && coords[0] instanceof Array)) {\n throw new Error('Invalid coords ' + JSON.stringify(coords) + '. Lines must have 2d coords array in data item.');\n }\n }\n\n return coords;\n };\n\n LinesSeriesModel.prototype.getLineCoordsCount = function (idx) {\n if (this._flatCoordsOffset) {\n return this._flatCoordsOffset[idx * 2 + 1];\n } else {\n return this._getCoordsFromItemModel(idx).length;\n }\n };\n\n LinesSeriesModel.prototype.getLineCoords = function (idx, out) {\n if (this._flatCoordsOffset) {\n var offset = this._flatCoordsOffset[idx * 2];\n var len = this._flatCoordsOffset[idx * 2 + 1];\n\n for (var i = 0; i < len; i++) {\n out[i] = out[i] || [];\n out[i][0] = this._flatCoords[offset + i * 2];\n out[i][1] = this._flatCoords[offset + i * 2 + 1];\n }\n\n return len;\n } else {\n var coords = this._getCoordsFromItemModel(idx);\n\n for (var i = 0; i < coords.length; i++) {\n out[i] = out[i] || [];\n out[i][0] = coords[i][0];\n out[i][1] = coords[i][1];\n }\n\n return coords.length;\n }\n };\n\n LinesSeriesModel.prototype._processFlatCoordsArray = function (data) {\n var startOffset = 0;\n\n if (this._flatCoords) {\n startOffset = this._flatCoords.length;\n } // Stored as a typed array. In format\n // Points Count(2) | x | y | x | y | Points Count(3) | x | y | x | y | x | y |\n\n\n if (isNumber(data[0])) {\n var len = data.length; // Store offset and len of each segment\n\n var coordsOffsetAndLenStorage = new Uint32Arr(len);\n var coordsStorage = new Float64Arr(len);\n var coordsCursor = 0;\n var offsetCursor = 0;\n var dataCount = 0;\n\n for (var i = 0; i < len;) {\n dataCount++;\n var count = data[i++]; // Offset\n\n coordsOffsetAndLenStorage[offsetCursor++] = coordsCursor + startOffset; // Len\n\n coordsOffsetAndLenStorage[offsetCursor++] = count;\n\n for (var k = 0; k < count; k++) {\n var x = data[i++];\n var y = data[i++];\n coordsStorage[coordsCursor++] = x;\n coordsStorage[coordsCursor++] = y;\n\n if (i > len) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error('Invalid data format.');\n }\n }\n }\n }\n\n return {\n flatCoordsOffset: new Uint32Array(coordsOffsetAndLenStorage.buffer, 0, offsetCursor),\n flatCoords: coordsStorage,\n count: dataCount\n };\n }\n\n return {\n flatCoordsOffset: null,\n flatCoords: null,\n count: data.length\n };\n };\n\n LinesSeriesModel.prototype.getInitialData = function (option, ecModel) {\n if (process.env.NODE_ENV !== 'production') {\n var CoordSys = CoordinateSystem.get(option.coordinateSystem);\n\n if (!CoordSys) {\n throw new Error('Unknown coordinate system ' + option.coordinateSystem);\n }\n }\n\n var lineData = new SeriesData(['value'], this);\n lineData.hasItemOption = false;\n lineData.initData(option.data, [], function (dataItem, dimName, dataIndex, dimIndex) {\n // dataItem is simply coords\n if (dataItem instanceof Array) {\n return NaN;\n } else {\n lineData.hasItemOption = true;\n var value = dataItem.value;\n\n if (value != null) {\n return value instanceof Array ? value[dimIndex] : value;\n }\n }\n });\n return lineData;\n };\n\n LinesSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n var data = this.getData();\n var itemModel = data.getItemModel(dataIndex);\n var name = itemModel.get('name');\n\n if (name) {\n return name;\n }\n\n var fromName = itemModel.get('fromName');\n var toName = itemModel.get('toName');\n var nameArr = [];\n fromName != null && nameArr.push(fromName);\n toName != null && nameArr.push(toName);\n return createTooltipMarkup('nameValue', {\n name: nameArr.join(' > ')\n });\n };\n\n LinesSeriesModel.prototype.preventIncremental = function () {\n return !!this.get(['effect', 'show']);\n };\n\n LinesSeriesModel.prototype.getProgressive = function () {\n var progressive = this.option.progressive;\n\n if (progressive == null) {\n return this.option.large ? 1e4 : this.get('progressive');\n }\n\n return progressive;\n };\n\n LinesSeriesModel.prototype.getProgressiveThreshold = function () {\n var progressiveThreshold = this.option.progressiveThreshold;\n\n if (progressiveThreshold == null) {\n return this.option.large ? 2e4 : this.get('progressiveThreshold');\n }\n\n return progressiveThreshold;\n };\n\n LinesSeriesModel.prototype.getZLevelKey = function () {\n var effectModel = this.getModel('effect');\n var trailLength = effectModel.get('trailLength');\n return this.getData().count() > this.getProgressiveThreshold() // Each progressive series has individual key.\n ? this.id : effectModel.get('show') && trailLength > 0 ? trailLength + '' : '';\n };\n\n LinesSeriesModel.type = 'series.lines';\n LinesSeriesModel.dependencies = ['grid', 'polar', 'geo', 'calendar'];\n LinesSeriesModel.defaultOption = {\n coordinateSystem: 'geo',\n // zlevel: 0,\n z: 2,\n legendHoverLink: true,\n // Cartesian coordinate system\n xAxisIndex: 0,\n yAxisIndex: 0,\n symbol: ['none', 'none'],\n symbolSize: [10, 10],\n // Geo coordinate system\n geoIndex: 0,\n effect: {\n show: false,\n period: 4,\n constantSpeed: 0,\n symbol: 'circle',\n symbolSize: 3,\n loop: true,\n trailLength: 0.2\n },\n large: false,\n // Available when large is true\n largeThreshold: 2000,\n polyline: false,\n clip: true,\n label: {\n show: false,\n position: 'end' // distance: 5,\n // formatter: 标签文本格式器,同Tooltip.formatter,不支持异步回调\n\n },\n lineStyle: {\n opacity: 0.5\n }\n };\n return LinesSeriesModel;\n}(SeriesModel);\n\nexport default LinesSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport LineDraw from '../helper/LineDraw.js';\nimport EffectLine from '../helper/EffectLine.js';\nimport Line from '../helper/Line.js';\nimport Polyline from '../helper/Polyline.js';\nimport EffectPolyline from '../helper/EffectPolyline.js';\nimport LargeLineDraw from '../helper/LargeLineDraw.js';\nimport linesLayout from './linesLayout.js';\nimport { createClipPath } from '../helper/createClipPathFromCoordSys.js';\nimport ChartView from '../../view/Chart.js';\n\nvar LinesView =\n/** @class */\nfunction (_super) {\n __extends(LinesView, _super);\n\n function LinesView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = LinesView.type;\n return _this;\n }\n\n LinesView.prototype.render = function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n\n var lineDraw = this._updateLineDraw(data, seriesModel);\n\n var zlevel = seriesModel.get('zlevel');\n var trailLength = seriesModel.get(['effect', 'trailLength']);\n var zr = api.getZr(); // Avoid the drag cause ghost shadow\n // FIXME Better way ?\n // SVG doesn't support\n\n var isSvg = zr.painter.getType() === 'svg';\n\n if (!isSvg) {\n zr.painter.getLayer(zlevel).clear(true);\n } // Config layer with motion blur\n\n\n if (this._lastZlevel != null && !isSvg) {\n zr.configLayer(this._lastZlevel, {\n motionBlur: false\n });\n }\n\n if (this._showEffect(seriesModel) && trailLength > 0) {\n if (!isSvg) {\n zr.configLayer(zlevel, {\n motionBlur: true,\n lastFrameAlpha: Math.max(Math.min(trailLength / 10 + 0.9, 1), 0)\n });\n } else if (process.env.NODE_ENV !== 'production') {\n console.warn('SVG render mode doesn\\'t support lines with trail effect');\n }\n }\n\n lineDraw.updateData(data);\n var clipPath = seriesModel.get('clip', true) && createClipPath(seriesModel.coordinateSystem, false, seriesModel);\n\n if (clipPath) {\n this.group.setClipPath(clipPath);\n } else {\n this.group.removeClipPath();\n }\n\n this._lastZlevel = zlevel;\n this._finished = true;\n };\n\n LinesView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n\n var lineDraw = this._updateLineDraw(data, seriesModel);\n\n lineDraw.incrementalPrepareUpdate(data);\n\n this._clearLayer(api);\n\n this._finished = false;\n };\n\n LinesView.prototype.incrementalRender = function (taskParams, seriesModel, ecModel) {\n this._lineDraw.incrementalUpdate(taskParams, seriesModel.getData());\n\n this._finished = taskParams.end === seriesModel.getData().count();\n };\n\n LinesView.prototype.eachRendered = function (cb) {\n this._lineDraw && this._lineDraw.eachRendered(cb);\n };\n\n LinesView.prototype.updateTransform = function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n var pipelineContext = seriesModel.pipelineContext;\n\n if (!this._finished || pipelineContext.large || pipelineContext.progressiveRender) {\n // TODO Don't have to do update in large mode. Only do it when there are millions of data.\n return {\n update: true\n };\n } else {\n // TODO Use same logic with ScatterView.\n // Manually update layout\n var res = linesLayout.reset(seriesModel, ecModel, api);\n\n if (res.progress) {\n res.progress({\n start: 0,\n end: data.count(),\n count: data.count()\n }, data);\n } // Not in large mode\n\n\n this._lineDraw.updateLayout();\n\n this._clearLayer(api);\n }\n };\n\n LinesView.prototype._updateLineDraw = function (data, seriesModel) {\n var lineDraw = this._lineDraw;\n\n var hasEffect = this._showEffect(seriesModel);\n\n var isPolyline = !!seriesModel.get('polyline');\n var pipelineContext = seriesModel.pipelineContext;\n var isLargeDraw = pipelineContext.large;\n\n if (process.env.NODE_ENV !== 'production') {\n if (hasEffect && isLargeDraw) {\n console.warn('Large lines not support effect');\n }\n }\n\n if (!lineDraw || hasEffect !== this._hasEffet || isPolyline !== this._isPolyline || isLargeDraw !== this._isLargeDraw) {\n if (lineDraw) {\n lineDraw.remove();\n }\n\n lineDraw = this._lineDraw = isLargeDraw ? new LargeLineDraw() : new LineDraw(isPolyline ? hasEffect ? EffectPolyline : Polyline : hasEffect ? EffectLine : Line);\n this._hasEffet = hasEffect;\n this._isPolyline = isPolyline;\n this._isLargeDraw = isLargeDraw;\n }\n\n this.group.add(lineDraw.group);\n return lineDraw;\n };\n\n LinesView.prototype._showEffect = function (seriesModel) {\n return !!seriesModel.get(['effect', 'show']);\n };\n\n LinesView.prototype._clearLayer = function (api) {\n // Not use motion when dragging or zooming\n var zr = api.getZr();\n var isSvg = zr.painter.getType() === 'svg';\n\n if (!isSvg && this._lastZlevel != null) {\n zr.painter.getLayer(this._lastZlevel).clear(true);\n }\n };\n\n LinesView.prototype.remove = function (ecModel, api) {\n this._lineDraw && this._lineDraw.remove();\n this._lineDraw = null; // Clear motion when lineDraw is removed\n\n this._clearLayer(api);\n };\n\n LinesView.prototype.dispose = function (ecModel, api) {\n this.remove(ecModel, api);\n };\n\n LinesView.type = 'lines';\n return LinesView;\n}(ChartView);\n\nexport default LinesView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport LinesView from './LinesView.js';\nimport LinesSeriesModel from './LinesSeries.js';\nimport linesLayout from './linesLayout.js';\nimport linesVisual from './linesVisual.js';\nexport function install(registers) {\n registers.registerChartView(LinesView);\n registers.registerSeriesModel(LinesSeriesModel);\n registers.registerLayout(linesLayout);\n registers.registerVisual(linesVisual);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/* global Float32Array */\nimport createRenderPlanner from '../helper/createRenderPlanner.js';\nimport { error } from '../../util/log.js';\nvar linesLayout = {\n seriesType: 'lines',\n plan: createRenderPlanner(),\n reset: function (seriesModel) {\n var coordSys = seriesModel.coordinateSystem;\n\n if (!coordSys) {\n if (process.env.NODE_ENV !== 'production') {\n error('The lines series must have a coordinate system.');\n }\n\n return;\n }\n\n var isPolyline = seriesModel.get('polyline');\n var isLarge = seriesModel.pipelineContext.large;\n return {\n progress: function (params, lineData) {\n var lineCoords = [];\n\n if (isLarge) {\n var points = void 0;\n var segCount = params.end - params.start;\n\n if (isPolyline) {\n var totalCoordsCount = 0;\n\n for (var i = params.start; i < params.end; i++) {\n totalCoordsCount += seriesModel.getLineCoordsCount(i);\n }\n\n points = new Float32Array(segCount + totalCoordsCount * 2);\n } else {\n points = new Float32Array(segCount * 4);\n }\n\n var offset = 0;\n var pt = [];\n\n for (var i = params.start; i < params.end; i++) {\n var len = seriesModel.getLineCoords(i, lineCoords);\n\n if (isPolyline) {\n points[offset++] = len;\n }\n\n for (var k = 0; k < len; k++) {\n pt = coordSys.dataToPoint(lineCoords[k], false, pt);\n points[offset++] = pt[0];\n points[offset++] = pt[1];\n }\n }\n\n lineData.setLayout('linesPoints', points);\n } else {\n for (var i = params.start; i < params.end; i++) {\n var itemModel = lineData.getItemModel(i);\n var len = seriesModel.getLineCoords(i, lineCoords);\n var pts = [];\n\n if (isPolyline) {\n for (var j = 0; j < len; j++) {\n pts.push(coordSys.dataToPoint(lineCoords[j]));\n }\n } else {\n pts[0] = coordSys.dataToPoint(lineCoords[0]);\n pts[1] = coordSys.dataToPoint(lineCoords[1]);\n var curveness = itemModel.get(['lineStyle', 'curveness']);\n\n if (+curveness) {\n pts[2] = [(pts[0][0] + pts[1][0]) / 2 - (pts[0][1] - pts[1][1]) * curveness, (pts[0][1] + pts[1][1]) / 2 - (pts[1][0] - pts[0][0]) * curveness];\n }\n }\n\n lineData.setItemLayout(i, pts);\n }\n }\n }\n };\n }\n};\nexport default linesLayout;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction normalize(a) {\n if (!(a instanceof Array)) {\n a = [a, a];\n }\n\n return a;\n}\n\nvar linesVisual = {\n seriesType: 'lines',\n reset: function (seriesModel) {\n var symbolType = normalize(seriesModel.get('symbol'));\n var symbolSize = normalize(seriesModel.get('symbolSize'));\n var data = seriesModel.getData();\n data.setVisual('fromSymbol', symbolType && symbolType[0]);\n data.setVisual('toSymbol', symbolType && symbolType[1]);\n data.setVisual('fromSymbolSize', symbolSize && symbolSize[0]);\n data.setVisual('toSymbolSize', symbolSize && symbolSize[1]);\n\n function dataEach(data, idx) {\n var itemModel = data.getItemModel(idx);\n var symbolType = normalize(itemModel.getShallow('symbol', true));\n var symbolSize = normalize(itemModel.getShallow('symbolSize', true));\n symbolType[0] && data.setItemVisual(idx, 'fromSymbol', symbolType[0]);\n symbolType[1] && data.setItemVisual(idx, 'toSymbol', symbolType[1]);\n symbolSize[0] && data.setItemVisual(idx, 'fromSymbolSize', symbolSize[0]);\n symbolSize[1] && data.setItemVisual(idx, 'toSymbolSize', symbolSize[1]);\n }\n\n return {\n dataEach: data.hasItemOption ? dataEach : null\n };\n }\n};\nexport default linesVisual;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport createSeriesDataSimply from '../helper/createSeriesDataSimply.js';\nimport SeriesModel from '../../model/Series.js';\nimport geoSourceManager from '../../coord/geo/geoSourceManager.js';\nimport { makeSeriesEncodeForNameBased } from '../../data/helper/sourceHelper.js';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup.js';\nimport { createSymbol } from '../../util/symbol.js';\n\nvar MapSeries =\n/** @class */\nfunction (_super) {\n __extends(MapSeries, _super);\n\n function MapSeries() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = MapSeries.type; // Only first map series of same mapType will drawMap.\n\n _this.needsDrawMap = false; // Group of all map series with same mapType\n\n _this.seriesGroup = [];\n\n _this.getTooltipPosition = function (dataIndex) {\n if (dataIndex != null) {\n var name_1 = this.getData().getName(dataIndex);\n var geo = this.coordinateSystem;\n var region = geo.getRegion(name_1);\n return region && geo.dataToPoint(region.getCenter());\n }\n };\n\n return _this;\n }\n\n MapSeries.prototype.getInitialData = function (option) {\n var data = createSeriesDataSimply(this, {\n coordDimensions: ['value'],\n encodeDefaulter: zrUtil.curry(makeSeriesEncodeForNameBased, this)\n });\n var dataNameMap = zrUtil.createHashMap();\n var toAppendNames = [];\n\n for (var i = 0, len = data.count(); i < len; i++) {\n var name_2 = data.getName(i);\n dataNameMap.set(name_2, true);\n }\n\n var geoSource = geoSourceManager.load(this.getMapType(), this.option.nameMap, this.option.nameProperty);\n zrUtil.each(geoSource.regions, function (region) {\n var name = region.name;\n\n if (!dataNameMap.get(name)) {\n toAppendNames.push(name);\n }\n }); // Complete data with missing regions. The consequent processes (like visual\n // map and render) can not be performed without a \"full data\". For example,\n // find `dataIndex` by name.\n\n data.appendValues([], toAppendNames);\n return data;\n };\n /**\n * If no host geo model, return null, which means using a\n * inner exclusive geo model.\n */\n\n\n MapSeries.prototype.getHostGeoModel = function () {\n var geoIndex = this.option.geoIndex;\n return geoIndex != null ? this.ecModel.getComponent('geo', geoIndex) : null;\n };\n\n MapSeries.prototype.getMapType = function () {\n return (this.getHostGeoModel() || this).option.map;\n }; // _fillOption(option, mapName) {\n // Shallow clone\n // option = zrUtil.extend({}, option);\n // option.data = geoCreator.getFilledRegions(option.data, mapName, option.nameMap);\n // return option;\n // }\n\n\n MapSeries.prototype.getRawValue = function (dataIndex) {\n // Use value stored in data instead because it is calculated from multiple series\n // FIXME Provide all value of multiple series ?\n var data = this.getData();\n return data.get(data.mapDimension('value'), dataIndex);\n };\n /**\n * Get model of region\n */\n\n\n MapSeries.prototype.getRegionModel = function (regionName) {\n var data = this.getData();\n return data.getItemModel(data.indexOfName(regionName));\n };\n /**\n * Map tooltip formatter\n */\n\n\n MapSeries.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n // FIXME orignalData and data is a bit confusing\n var data = this.getData();\n var value = this.getRawValue(dataIndex);\n var name = data.getName(dataIndex);\n var seriesGroup = this.seriesGroup;\n var seriesNames = [];\n\n for (var i = 0; i < seriesGroup.length; i++) {\n var otherIndex = seriesGroup[i].originalData.indexOfName(name);\n var valueDim = data.mapDimension('value');\n\n if (!isNaN(seriesGroup[i].originalData.get(valueDim, otherIndex))) {\n seriesNames.push(seriesGroup[i].name);\n }\n }\n\n return createTooltipMarkup('section', {\n header: seriesNames.join(', '),\n noHeader: !seriesNames.length,\n blocks: [createTooltipMarkup('nameValue', {\n name: name,\n value: value\n })]\n });\n };\n\n MapSeries.prototype.setZoom = function (zoom) {\n this.option.zoom = zoom;\n };\n\n MapSeries.prototype.setCenter = function (center) {\n this.option.center = center;\n };\n\n MapSeries.prototype.getLegendIcon = function (opt) {\n var iconType = opt.icon || 'roundRect';\n var icon = createSymbol(iconType, 0, 0, opt.itemWidth, opt.itemHeight, opt.itemStyle.fill);\n icon.setStyle(opt.itemStyle); // Map do not use itemStyle.borderWidth as border width\n\n icon.style.stroke = 'none'; // No rotation because no series visual symbol for map\n\n if (iconType.indexOf('empty') > -1) {\n icon.style.stroke = icon.style.fill;\n icon.style.fill = '#fff';\n icon.style.lineWidth = 2;\n }\n\n return icon;\n };\n\n MapSeries.type = 'series.map';\n MapSeries.dependencies = ['geo'];\n MapSeries.layoutMode = 'box';\n MapSeries.defaultOption = {\n // 一级层叠\n // zlevel: 0,\n // 二级层叠\n z: 2,\n coordinateSystem: 'geo',\n // map should be explicitly specified since ec3.\n map: '',\n // If `geoIndex` is not specified, a exclusive geo will be\n // created. Otherwise use the specified geo component, and\n // `map` and `mapType` are ignored.\n // geoIndex: 0,\n // 'center' | 'left' | 'right' | 'x%' | {number}\n left: 'center',\n // 'center' | 'top' | 'bottom' | 'x%' | {number}\n top: 'center',\n // right\n // bottom\n // width:\n // height\n // Aspect is width / height. Inited to be geoJson bbox aspect\n // This parameter is used for scale this aspect\n // Default value:\n // for geoSVG source: 1,\n // for geoJSON source: 0.75.\n aspectScale: null,\n // Layout with center and size\n // If you want to put map in a fixed size box with right aspect ratio\n // This two properties may be more convenient.\n // layoutCenter: [50%, 50%]\n // layoutSize: 100\n showLegendSymbol: true,\n // Define left-top, right-bottom coords to control view\n // For example, [ [180, 90], [-180, -90] ],\n // higher priority than center and zoom\n boundingCoords: null,\n // Default on center of map\n center: null,\n zoom: 1,\n scaleLimit: null,\n selectedMode: true,\n label: {\n show: false,\n color: '#000'\n },\n // scaleLimit: null,\n itemStyle: {\n borderWidth: 0.5,\n borderColor: '#444',\n areaColor: '#eee'\n },\n emphasis: {\n label: {\n show: true,\n color: 'rgb(100,0,0)'\n },\n itemStyle: {\n areaColor: 'rgba(255,215,0,0.8)'\n }\n },\n select: {\n label: {\n show: true,\n color: 'rgb(100,0,0)'\n },\n itemStyle: {\n color: 'rgba(255,215,0,0.8)'\n }\n },\n nameProperty: 'name'\n };\n return MapSeries;\n}(SeriesModel);\n\nexport default MapSeries;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic.js';\nimport MapDraw from '../../component/helper/MapDraw.js';\nimport ChartView from '../../view/Chart.js';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle.js';\nimport { setStatesFlag, Z2_EMPHASIS_LIFT } from '../../util/states.js';\n\nvar MapView =\n/** @class */\nfunction (_super) {\n __extends(MapView, _super);\n\n function MapView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = MapView.type;\n return _this;\n }\n\n MapView.prototype.render = function (mapModel, ecModel, api, payload) {\n // Not render if it is an toggleSelect action from self\n if (payload && payload.type === 'mapToggleSelect' && payload.from === this.uid) {\n return;\n }\n\n var group = this.group;\n group.removeAll();\n\n if (mapModel.getHostGeoModel()) {\n return;\n }\n\n if (this._mapDraw && payload && payload.type === 'geoRoam') {\n this._mapDraw.resetForLabelLayout();\n } // Not update map if it is an roam action from self\n\n\n if (!(payload && payload.type === 'geoRoam' && payload.componentType === 'series' && payload.seriesId === mapModel.id)) {\n if (mapModel.needsDrawMap) {\n var mapDraw = this._mapDraw || new MapDraw(api);\n group.add(mapDraw.group);\n mapDraw.draw(mapModel, ecModel, api, this, payload);\n this._mapDraw = mapDraw;\n } else {\n // Remove drawn map\n this._mapDraw && this._mapDraw.remove();\n this._mapDraw = null;\n }\n } else {\n var mapDraw = this._mapDraw;\n mapDraw && group.add(mapDraw.group);\n }\n\n mapModel.get('showLegendSymbol') && ecModel.getComponent('legend') && this._renderSymbols(mapModel, ecModel, api);\n };\n\n MapView.prototype.remove = function () {\n this._mapDraw && this._mapDraw.remove();\n this._mapDraw = null;\n this.group.removeAll();\n };\n\n MapView.prototype.dispose = function () {\n this._mapDraw && this._mapDraw.remove();\n this._mapDraw = null;\n };\n\n MapView.prototype._renderSymbols = function (mapModel, ecModel, api) {\n var originalData = mapModel.originalData;\n var group = this.group;\n originalData.each(originalData.mapDimension('value'), function (value, originalDataIndex) {\n if (isNaN(value)) {\n return;\n }\n\n var layout = originalData.getItemLayout(originalDataIndex);\n\n if (!layout || !layout.point) {\n // Not exists in map\n return;\n }\n\n var point = layout.point;\n var offset = layout.offset;\n var circle = new graphic.Circle({\n style: {\n // Because the special of map draw.\n // Which needs statistic of multiple series and draw on one map.\n // And each series also need a symbol with legend color\n //\n // Layout and visual are put one the different data\n // TODO\n fill: mapModel.getData().getVisual('style').fill\n },\n shape: {\n cx: point[0] + offset * 9,\n cy: point[1],\n r: 3\n },\n silent: true,\n // Do not overlap the first series, on which labels are displayed.\n z2: 8 + (!offset ? Z2_EMPHASIS_LIFT + 1 : 0)\n }); // Only the series that has the first value on the same region is in charge of rendering the label.\n // But consider the case:\n // series: [\n // {id: 'X', type: 'map', map: 'm', {data: [{name: 'A', value: 11}, {name: 'B', {value: 22}]},\n // {id: 'Y', type: 'map', map: 'm', {data: [{name: 'A', value: 21}, {name: 'C', {value: 33}]}\n // ]\n // The offset `0` of item `A` is at series `X`, but of item `C` is at series `Y`.\n // For backward compatibility, we follow the rule that render label `A` by the\n // settings on series `X` but render label `C` by the settings on series `Y`.\n\n if (!offset) {\n var fullData = mapModel.mainSeries.getData();\n var name_1 = originalData.getName(originalDataIndex);\n var fullIndex_1 = fullData.indexOfName(name_1);\n var itemModel = originalData.getItemModel(originalDataIndex);\n var labelModel = itemModel.getModel('label');\n var regionGroup = fullData.getItemGraphicEl(fullIndex_1); // `getFormattedLabel` needs to use `getData` inside. Here\n // `mapModel.getData()` is shallow cloned from `mainSeries.getData()`.\n // FIXME\n // If this is not the `mainSeries`, the item model (like label formatter)\n // set on original data item will never get. But it has been working\n // like that from the beginning, and this scenario is rarely encountered.\n // So it won't be fixed until we have to.\n\n setLabelStyle(circle, getLabelStatesModels(itemModel), {\n labelFetcher: {\n getFormattedLabel: function (idx, state) {\n return mapModel.getFormattedLabel(fullIndex_1, state);\n }\n },\n defaultText: name_1\n });\n circle.disableLabelAnimation = true;\n\n if (!labelModel.get('position')) {\n circle.setTextConfig({\n position: 'bottom'\n });\n }\n\n regionGroup.onHoverStateChange = function (toState) {\n setStatesFlag(circle, toState);\n };\n }\n\n group.add(circle);\n });\n };\n\n MapView.type = 'map';\n return MapView;\n}(ChartView);\n\nexport default MapView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { use } from '../../extension.js';\nimport MapView from './MapView.js';\nimport MapSeries from './MapSeries.js';\nimport mapDataStatistic from './mapDataStatistic.js';\nimport mapSymbolLayout from './mapSymbolLayout.js';\nimport { createLegacyDataSelectAction } from '../../legacy/dataSelectAction.js';\nimport { install as installGeo } from '../../component/geo/install.js';\nexport function install(registers) {\n use(installGeo);\n registers.registerChartView(MapView);\n registers.registerSeriesModel(MapSeries);\n registers.registerLayout(mapSymbolLayout);\n registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, mapDataStatistic);\n createLegacyDataSelectAction('map', registers.registerAction);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js'; // FIXME 公用?\n\nfunction dataStatistics(datas, statisticType) {\n var dataNameMap = {};\n zrUtil.each(datas, function (data) {\n data.each(data.mapDimension('value'), function (value, idx) {\n // Add prefix to avoid conflict with Object.prototype.\n var mapKey = 'ec-' + data.getName(idx);\n dataNameMap[mapKey] = dataNameMap[mapKey] || [];\n\n if (!isNaN(value)) {\n dataNameMap[mapKey].push(value);\n }\n });\n });\n return datas[0].map(datas[0].mapDimension('value'), function (value, idx) {\n var mapKey = 'ec-' + datas[0].getName(idx);\n var sum = 0;\n var min = Infinity;\n var max = -Infinity;\n var len = dataNameMap[mapKey].length;\n\n for (var i = 0; i < len; i++) {\n min = Math.min(min, dataNameMap[mapKey][i]);\n max = Math.max(max, dataNameMap[mapKey][i]);\n sum += dataNameMap[mapKey][i];\n }\n\n var result;\n\n if (statisticType === 'min') {\n result = min;\n } else if (statisticType === 'max') {\n result = max;\n } else if (statisticType === 'average') {\n result = sum / len;\n } else {\n result = sum;\n }\n\n return len === 0 ? NaN : result;\n });\n}\n\nexport default function mapDataStatistic(ecModel) {\n var seriesGroups = {};\n ecModel.eachSeriesByType('map', function (seriesModel) {\n var hostGeoModel = seriesModel.getHostGeoModel();\n var key = hostGeoModel ? 'o' + hostGeoModel.id : 'i' + seriesModel.getMapType();\n (seriesGroups[key] = seriesGroups[key] || []).push(seriesModel);\n });\n zrUtil.each(seriesGroups, function (seriesList, key) {\n var data = dataStatistics(zrUtil.map(seriesList, function (seriesModel) {\n return seriesModel.getData();\n }), seriesList[0].get('mapValueCalculation'));\n\n for (var i = 0; i < seriesList.length; i++) {\n seriesList[i].originalData = seriesList[i].getData();\n } // FIXME Put where?\n\n\n for (var i = 0; i < seriesList.length; i++) {\n seriesList[i].seriesGroup = seriesList;\n seriesList[i].needsDrawMap = i === 0 && !seriesList[i].getHostGeoModel();\n seriesList[i].setData(data.cloneShallow());\n seriesList[i].mainSeries = seriesList[0];\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nexport default function mapSymbolLayout(ecModel) {\n var processedMapType = {};\n ecModel.eachSeriesByType('map', function (mapSeries) {\n var mapType = mapSeries.getMapType();\n\n if (mapSeries.getHostGeoModel() || processedMapType[mapType]) {\n return;\n }\n\n var mapSymbolOffsets = {};\n zrUtil.each(mapSeries.seriesGroup, function (subMapSeries) {\n var geo = subMapSeries.coordinateSystem;\n var data = subMapSeries.originalData;\n\n if (subMapSeries.get('showLegendSymbol') && ecModel.getComponent('legend')) {\n data.each(data.mapDimension('value'), function (value, idx) {\n var name = data.getName(idx);\n var region = geo.getRegion(name); // If input series.data is [11, 22, '-'/null/undefined, 44],\n // it will be filled with NaN: [11, 22, NaN, 44] and NaN will\n // not be drawn. So here must validate if value is NaN.\n\n if (!region || isNaN(value)) {\n return;\n }\n\n var offset = mapSymbolOffsets[name] || 0;\n var point = geo.dataToPoint(region.getCenter());\n mapSymbolOffsets[name] = offset + 1;\n data.setItemLayout(idx, {\n point: point,\n offset: offset\n });\n });\n }\n }); // Show label of those region not has legendIcon (which is offset 0)\n\n var data = mapSeries.getData();\n data.each(function (idx) {\n var name = data.getName(idx);\n var layout = data.getItemLayout(idx) || {};\n layout.showLabel = !mapSymbolOffsets[name];\n data.setItemLayout(idx, layout);\n });\n processedMapType[mapType] = true;\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport { each, bind } from 'zrender/lib/core/util.js';\nimport SeriesModel from '../../model/Series.js';\nimport createSeriesData from '../helper/createSeriesData.js';\n\nvar ParallelSeriesModel =\n/** @class */\nfunction (_super) {\n __extends(ParallelSeriesModel, _super);\n\n function ParallelSeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = ParallelSeriesModel.type;\n _this.visualStyleAccessPath = 'lineStyle';\n _this.visualDrawType = 'stroke';\n return _this;\n }\n\n ParallelSeriesModel.prototype.getInitialData = function (option, ecModel) {\n return createSeriesData(null, this, {\n useEncodeDefaulter: bind(makeDefaultEncode, null, this)\n });\n };\n /**\n * User can get data raw indices on 'axisAreaSelected' event received.\n *\n * @return Raw indices\n */\n\n\n ParallelSeriesModel.prototype.getRawIndicesByActiveState = function (activeState) {\n var coordSys = this.coordinateSystem;\n var data = this.getData();\n var indices = [];\n coordSys.eachActiveState(data, function (theActiveState, dataIndex) {\n if (activeState === theActiveState) {\n indices.push(data.getRawIndex(dataIndex));\n }\n });\n return indices;\n };\n\n ParallelSeriesModel.type = 'series.parallel';\n ParallelSeriesModel.dependencies = ['parallel'];\n ParallelSeriesModel.defaultOption = {\n // zlevel: 0,\n z: 2,\n coordinateSystem: 'parallel',\n parallelIndex: 0,\n label: {\n show: false\n },\n inactiveOpacity: 0.05,\n activeOpacity: 1,\n lineStyle: {\n width: 1,\n opacity: 0.45,\n type: 'solid'\n },\n emphasis: {\n label: {\n show: false\n }\n },\n progressive: 500,\n smooth: false,\n animationEasing: 'linear'\n };\n return ParallelSeriesModel;\n}(SeriesModel);\n\nfunction makeDefaultEncode(seriesModel) {\n // The mapping of parallelAxis dimension to data dimension can\n // be specified in parallelAxis.option.dim. For example, if\n // parallelAxis.option.dim is 'dim3', it mapping to the third\n // dimension of data. But `data.encode` has higher priority.\n // Moreover, parallelModel.dimension should not be regarded as data\n // dimensions. Consider dimensions = ['dim4', 'dim2', 'dim6'];\n var parallelModel = seriesModel.ecModel.getComponent('parallel', seriesModel.get('parallelIndex'));\n\n if (!parallelModel) {\n return;\n }\n\n var encodeDefine = {};\n each(parallelModel.dimensions, function (axisDim) {\n var dataDimIndex = convertDimNameToNumber(axisDim);\n encodeDefine[axisDim] = dataDimIndex;\n });\n return encodeDefine;\n}\n\nfunction convertDimNameToNumber(dimName) {\n return +dimName.replace('dim', '');\n}\n\nexport default ParallelSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic.js';\nimport { setStatesStylesFromModel, toggleHoverEmphasis } from '../../util/states.js';\nimport ChartView from '../../view/Chart.js';\nimport { numericToNumber } from '../../util/number.js';\nimport { eqNaN } from 'zrender/lib/core/util.js';\nimport { saveOldStyle } from '../../animation/basicTransition.js';\nvar DEFAULT_SMOOTH = 0.3;\n\nvar ParallelView =\n/** @class */\nfunction (_super) {\n __extends(ParallelView, _super);\n\n function ParallelView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = ParallelView.type;\n _this._dataGroup = new graphic.Group();\n _this._initialized = false;\n return _this;\n }\n\n ParallelView.prototype.init = function () {\n this.group.add(this._dataGroup);\n };\n /**\n * @override\n */\n\n\n ParallelView.prototype.render = function (seriesModel, ecModel, api, payload) {\n // Clear previously rendered progressive elements.\n this._progressiveEls = null;\n var dataGroup = this._dataGroup;\n var data = seriesModel.getData();\n var oldData = this._data;\n var coordSys = seriesModel.coordinateSystem;\n var dimensions = coordSys.dimensions;\n var seriesScope = makeSeriesScope(seriesModel);\n data.diff(oldData).add(add).update(update).remove(remove).execute();\n\n function add(newDataIndex) {\n var line = addEl(data, dataGroup, newDataIndex, dimensions, coordSys);\n updateElCommon(line, data, newDataIndex, seriesScope);\n }\n\n function update(newDataIndex, oldDataIndex) {\n var line = oldData.getItemGraphicEl(oldDataIndex);\n var points = createLinePoints(data, newDataIndex, dimensions, coordSys);\n data.setItemGraphicEl(newDataIndex, line);\n graphic.updateProps(line, {\n shape: {\n points: points\n }\n }, seriesModel, newDataIndex);\n saveOldStyle(line);\n updateElCommon(line, data, newDataIndex, seriesScope);\n }\n\n function remove(oldDataIndex) {\n var line = oldData.getItemGraphicEl(oldDataIndex);\n dataGroup.remove(line);\n } // First create\n\n\n if (!this._initialized) {\n this._initialized = true;\n var clipPath = createGridClipShape(coordSys, seriesModel, function () {\n // Callback will be invoked immediately if there is no animation\n setTimeout(function () {\n dataGroup.removeClipPath();\n });\n });\n dataGroup.setClipPath(clipPath);\n }\n\n this._data = data;\n };\n\n ParallelView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\n this._initialized = true;\n this._data = null;\n\n this._dataGroup.removeAll();\n };\n\n ParallelView.prototype.incrementalRender = function (taskParams, seriesModel, ecModel) {\n var data = seriesModel.getData();\n var coordSys = seriesModel.coordinateSystem;\n var dimensions = coordSys.dimensions;\n var seriesScope = makeSeriesScope(seriesModel);\n var progressiveEls = this._progressiveEls = [];\n\n for (var dataIndex = taskParams.start; dataIndex < taskParams.end; dataIndex++) {\n var line = addEl(data, this._dataGroup, dataIndex, dimensions, coordSys);\n line.incremental = true;\n updateElCommon(line, data, dataIndex, seriesScope);\n progressiveEls.push(line);\n }\n };\n\n ParallelView.prototype.remove = function () {\n this._dataGroup && this._dataGroup.removeAll();\n this._data = null;\n };\n\n ParallelView.type = 'parallel';\n return ParallelView;\n}(ChartView);\n\nfunction createGridClipShape(coordSys, seriesModel, cb) {\n var parallelModel = coordSys.model;\n var rect = coordSys.getRect();\n var rectEl = new graphic.Rect({\n shape: {\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height\n }\n });\n var dim = parallelModel.get('layout') === 'horizontal' ? 'width' : 'height';\n rectEl.setShape(dim, 0);\n graphic.initProps(rectEl, {\n shape: {\n width: rect.width,\n height: rect.height\n }\n }, seriesModel, cb);\n return rectEl;\n}\n\nfunction createLinePoints(data, dataIndex, dimensions, coordSys) {\n var points = [];\n\n for (var i = 0; i < dimensions.length; i++) {\n var dimName = dimensions[i];\n var value = data.get(data.mapDimension(dimName), dataIndex);\n\n if (!isEmptyValue(value, coordSys.getAxis(dimName).type)) {\n points.push(coordSys.dataToPoint(value, dimName));\n }\n }\n\n return points;\n}\n\nfunction addEl(data, dataGroup, dataIndex, dimensions, coordSys) {\n var points = createLinePoints(data, dataIndex, dimensions, coordSys);\n var line = new graphic.Polyline({\n shape: {\n points: points\n },\n // silent: true,\n z2: 10\n });\n dataGroup.add(line);\n data.setItemGraphicEl(dataIndex, line);\n return line;\n}\n\nfunction makeSeriesScope(seriesModel) {\n var smooth = seriesModel.get('smooth', true);\n smooth === true && (smooth = DEFAULT_SMOOTH);\n smooth = numericToNumber(smooth);\n eqNaN(smooth) && (smooth = 0);\n return {\n smooth: smooth\n };\n}\n\nfunction updateElCommon(el, data, dataIndex, seriesScope) {\n el.useStyle(data.getItemVisual(dataIndex, 'style'));\n el.style.fill = null;\n el.setShape('smooth', seriesScope.smooth);\n var itemModel = data.getItemModel(dataIndex);\n var emphasisModel = itemModel.getModel('emphasis');\n setStatesStylesFromModel(el, itemModel, 'lineStyle');\n toggleHoverEmphasis(el, emphasisModel.get('focus'), emphasisModel.get('blurScope'), emphasisModel.get('disabled'));\n} // function simpleDiff(oldData, newData, dimensions) {\n// let oldLen;\n// if (!oldData\n// || !oldData.__plProgressive\n// || (oldLen = oldData.count()) !== newData.count()\n// ) {\n// return true;\n// }\n// let dimLen = dimensions.length;\n// for (let i = 0; i < oldLen; i++) {\n// for (let j = 0; j < dimLen; j++) {\n// if (oldData.get(dimensions[j], i) !== newData.get(dimensions[j], i)) {\n// return true;\n// }\n// }\n// }\n// return false;\n// }\n// FIXME put in common util?\n\n\nfunction isEmptyValue(val, axisType) {\n return axisType === 'category' ? val == null : val == null || isNaN(val); // axisType === 'value'\n}\n\nexport default ParallelView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { use } from '../../extension.js';\nimport ParallelView from './ParallelView.js';\nimport ParallelSeriesModel from './ParallelSeries.js';\nimport parallelVisual from './parallelVisual.js';\nimport { install as installParallelComponent } from '../../component/parallel/install.js';\nexport function install(registers) {\n use(installParallelComponent);\n registers.registerChartView(ParallelView);\n registers.registerSeriesModel(ParallelSeriesModel);\n registers.registerVisual(registers.PRIORITY.VISUAL.BRUSH, parallelVisual);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar opacityAccessPath = ['lineStyle', 'opacity'];\nvar parallelVisual = {\n seriesType: 'parallel',\n reset: function (seriesModel, ecModel) {\n var coordSys = seriesModel.coordinateSystem;\n var opacityMap = {\n normal: seriesModel.get(['lineStyle', 'opacity']),\n active: seriesModel.get('activeOpacity'),\n inactive: seriesModel.get('inactiveOpacity')\n };\n return {\n progress: function (params, data) {\n coordSys.eachActiveState(data, function (activeState, dataIndex) {\n var opacity = opacityMap[activeState];\n\n if (activeState === 'normal' && data.hasItemOption) {\n var itemOpacity = data.getItemModel(dataIndex).get(opacityAccessPath, true);\n itemOpacity != null && (opacity = itemOpacity);\n }\n\n var existsStyle = data.ensureUniqueItemVisual(dataIndex, 'style');\n existsStyle.opacity = opacity;\n }, params.start, params.end);\n }\n };\n }\n};\nexport default parallelVisual;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport createSeriesDataSimply from '../helper/createSeriesDataSimply.js';\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as modelUtil from '../../util/model.js';\nimport { getPercentSeats } from '../../util/number.js';\nimport { makeSeriesEncodeForNameBased } from '../../data/helper/sourceHelper.js';\nimport LegendVisualProvider from '../../visual/LegendVisualProvider.js';\nimport SeriesModel from '../../model/Series.js';\nvar innerData = modelUtil.makeInner();\n\nvar PieSeriesModel =\n/** @class */\nfunction (_super) {\n __extends(PieSeriesModel, _super);\n\n function PieSeriesModel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @overwrite\n */\n\n\n PieSeriesModel.prototype.init = function (option) {\n _super.prototype.init.apply(this, arguments); // Enable legend selection for each data item\n // Use a function instead of direct access because data reference may changed\n\n\n this.legendVisualProvider = new LegendVisualProvider(zrUtil.bind(this.getData, this), zrUtil.bind(this.getRawData, this));\n\n this._defaultLabelLine(option);\n };\n /**\n * @overwrite\n */\n\n\n PieSeriesModel.prototype.mergeOption = function () {\n _super.prototype.mergeOption.apply(this, arguments);\n };\n /**\n * @overwrite\n */\n\n\n PieSeriesModel.prototype.getInitialData = function () {\n return createSeriesDataSimply(this, {\n coordDimensions: ['value'],\n encodeDefaulter: zrUtil.curry(makeSeriesEncodeForNameBased, this)\n });\n };\n /**\n * @overwrite\n */\n\n\n PieSeriesModel.prototype.getDataParams = function (dataIndex) {\n var data = this.getData(); // update seats when data is changed\n\n var dataInner = innerData(data);\n var seats = dataInner.seats;\n\n if (!seats) {\n var valueList_1 = [];\n data.each(data.mapDimension('value'), function (value) {\n valueList_1.push(value);\n });\n seats = dataInner.seats = getPercentSeats(valueList_1, data.hostModel.get('percentPrecision'));\n }\n\n var params = _super.prototype.getDataParams.call(this, dataIndex); // seats may be empty when sum is 0\n\n\n params.percent = seats[dataIndex] || 0;\n params.$vars.push('percent');\n return params;\n };\n\n PieSeriesModel.prototype._defaultLabelLine = function (option) {\n // Extend labelLine emphasis\n modelUtil.defaultEmphasis(option, 'labelLine', ['show']);\n var labelLineNormalOpt = option.labelLine;\n var labelLineEmphasisOpt = option.emphasis.labelLine; // Not show label line if `label.normal.show = false`\n\n labelLineNormalOpt.show = labelLineNormalOpt.show && option.label.show;\n labelLineEmphasisOpt.show = labelLineEmphasisOpt.show && option.emphasis.label.show;\n };\n\n PieSeriesModel.type = 'series.pie';\n PieSeriesModel.defaultOption = {\n // zlevel: 0,\n z: 2,\n legendHoverLink: true,\n colorBy: 'data',\n // 默认全局居中\n center: ['50%', '50%'],\n radius: [0, '75%'],\n // 默认顺时针\n clockwise: true,\n startAngle: 90,\n // 最小角度改为0\n minAngle: 0,\n // If the angle of a sector less than `minShowLabelAngle`,\n // the label will not be displayed.\n minShowLabelAngle: 0,\n // 选中时扇区偏移量\n selectedOffset: 10,\n // 选择模式,默认关闭,可选single,multiple\n // selectedMode: false,\n // 南丁格尔玫瑰图模式,'radius'(半径) | 'area'(面积)\n // roseType: null,\n percentPrecision: 2,\n // If still show when all data zero.\n stillShowZeroSum: true,\n // cursor: null,\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n width: null,\n height: null,\n label: {\n // color: 'inherit',\n // If rotate around circle\n rotate: 0,\n show: true,\n overflow: 'truncate',\n // 'outer', 'inside', 'center'\n position: 'outer',\n // 'none', 'labelLine', 'edge'. Works only when position is 'outer'\n alignTo: 'none',\n // Closest distance between label and chart edge.\n // Works only position is 'outer' and alignTo is 'edge'.\n edgeDistance: '25%',\n // Works only position is 'outer' and alignTo is not 'edge'.\n bleedMargin: 10,\n // Distance between text and label line.\n distanceToLabelLine: 5 // formatter: 标签文本格式器,同 tooltip.formatter,不支持异步回调\n // 默认使用全局文本样式,详见 textStyle\n // distance: 当position为inner时有效,为label位置到圆心的距离与圆半径(环状图为内外半径和)的比例系数\n\n },\n // Enabled when label.normal.position is 'outer'\n labelLine: {\n show: true,\n // 引导线两段中的第一段长度\n length: 15,\n // 引导线两段中的第二段长度\n length2: 15,\n smooth: false,\n minTurnAngle: 90,\n maxSurfaceAngle: 90,\n lineStyle: {\n // color: 各异,\n width: 1,\n type: 'solid'\n }\n },\n itemStyle: {\n borderWidth: 1,\n borderJoin: 'round'\n },\n showEmptyCircle: true,\n emptyCircleStyle: {\n color: 'lightgray',\n opacity: 1\n },\n labelLayout: {\n // Hide the overlapped label.\n hideOverlap: true\n },\n emphasis: {\n scale: true,\n scaleSize: 5\n },\n // If use strategy to avoid label overlapping\n avoidLabelOverlap: true,\n // Animation type. Valid values: expansion, scale\n animationType: 'expansion',\n animationDuration: 1000,\n // Animation type when update. Valid values: transition, expansion\n animationTypeUpdate: 'transition',\n animationEasingUpdate: 'cubicInOut',\n animationDurationUpdate: 500,\n animationEasing: 'cubicInOut'\n };\n return PieSeriesModel;\n}(SeriesModel);\n\nexport default PieSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport { extend, retrieve3 } from 'zrender/lib/core/util.js';\nimport * as graphic from '../../util/graphic.js';\nimport { setStatesStylesFromModel, toggleHoverEmphasis } from '../../util/states.js';\nimport ChartView from '../../view/Chart.js';\nimport labelLayout from './labelLayout.js';\nimport { setLabelLineStyle, getLabelLineStatesModels } from '../../label/labelGuideHelper.js';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle.js';\nimport { getSectorCornerRadius } from '../helper/sectorHelper.js';\nimport { saveOldStyle } from '../../animation/basicTransition.js';\nimport { getBasicPieLayout } from './pieLayout.js';\n/**\n * Piece of pie including Sector, Label, LabelLine\n */\n\nvar PiePiece =\n/** @class */\nfunction (_super) {\n __extends(PiePiece, _super);\n\n function PiePiece(data, idx, startAngle) {\n var _this = _super.call(this) || this;\n\n _this.z2 = 2;\n var text = new graphic.Text();\n\n _this.setTextContent(text);\n\n _this.updateData(data, idx, startAngle, true);\n\n return _this;\n }\n\n PiePiece.prototype.updateData = function (data, idx, startAngle, firstCreate) {\n var sector = this;\n var seriesModel = data.hostModel;\n var itemModel = data.getItemModel(idx);\n var emphasisModel = itemModel.getModel('emphasis');\n var layout = data.getItemLayout(idx); // cornerRadius & innerCornerRadius doesn't exist in the item layout. Use `0` if null value is specified.\n // see `setItemLayout` in `pieLayout.ts`.\n\n var sectorShape = extend(getSectorCornerRadius(itemModel.getModel('itemStyle'), layout, true), layout); // Ignore NaN data.\n\n if (isNaN(sectorShape.startAngle)) {\n // Use NaN shape to avoid drawing shape.\n sector.setShape(sectorShape);\n return;\n }\n\n if (firstCreate) {\n sector.setShape(sectorShape);\n var animationType = seriesModel.getShallow('animationType');\n\n if (seriesModel.ecModel.ssr) {\n // Use scale animation in SSR mode(opacity?)\n // Because CSS SVG animation doesn't support very customized shape animation.\n graphic.initProps(sector, {\n scaleX: 0,\n scaleY: 0\n }, seriesModel, {\n dataIndex: idx,\n isFrom: true\n });\n sector.originX = sectorShape.cx;\n sector.originY = sectorShape.cy;\n } else if (animationType === 'scale') {\n sector.shape.r = layout.r0;\n graphic.initProps(sector, {\n shape: {\n r: layout.r\n }\n }, seriesModel, idx);\n } // Expansion\n else {\n if (startAngle != null) {\n sector.setShape({\n startAngle: startAngle,\n endAngle: startAngle\n });\n graphic.initProps(sector, {\n shape: {\n startAngle: layout.startAngle,\n endAngle: layout.endAngle\n }\n }, seriesModel, idx);\n } else {\n sector.shape.endAngle = layout.startAngle;\n graphic.updateProps(sector, {\n shape: {\n endAngle: layout.endAngle\n }\n }, seriesModel, idx);\n }\n }\n } else {\n saveOldStyle(sector); // Transition animation from the old shape\n\n graphic.updateProps(sector, {\n shape: sectorShape\n }, seriesModel, idx);\n }\n\n sector.useStyle(data.getItemVisual(idx, 'style'));\n setStatesStylesFromModel(sector, itemModel);\n var midAngle = (layout.startAngle + layout.endAngle) / 2;\n var offset = seriesModel.get('selectedOffset');\n var dx = Math.cos(midAngle) * offset;\n var dy = Math.sin(midAngle) * offset;\n var cursorStyle = itemModel.getShallow('cursor');\n cursorStyle && sector.attr('cursor', cursorStyle);\n\n this._updateLabel(seriesModel, data, idx);\n\n sector.ensureState('emphasis').shape = extend({\n r: layout.r + (emphasisModel.get('scale') ? emphasisModel.get('scaleSize') || 0 : 0)\n }, getSectorCornerRadius(emphasisModel.getModel('itemStyle'), layout));\n extend(sector.ensureState('select'), {\n x: dx,\n y: dy,\n shape: getSectorCornerRadius(itemModel.getModel(['select', 'itemStyle']), layout)\n });\n extend(sector.ensureState('blur'), {\n shape: getSectorCornerRadius(itemModel.getModel(['blur', 'itemStyle']), layout)\n });\n var labelLine = sector.getTextGuideLine();\n var labelText = sector.getTextContent();\n labelLine && extend(labelLine.ensureState('select'), {\n x: dx,\n y: dy\n }); // TODO: needs dx, dy in zrender?\n\n extend(labelText.ensureState('select'), {\n x: dx,\n y: dy\n });\n toggleHoverEmphasis(this, emphasisModel.get('focus'), emphasisModel.get('blurScope'), emphasisModel.get('disabled'));\n };\n\n PiePiece.prototype._updateLabel = function (seriesModel, data, idx) {\n var sector = this;\n var itemModel = data.getItemModel(idx);\n var labelLineModel = itemModel.getModel('labelLine');\n var style = data.getItemVisual(idx, 'style');\n var visualColor = style && style.fill;\n var visualOpacity = style && style.opacity;\n setLabelStyle(sector, getLabelStatesModels(itemModel), {\n labelFetcher: data.hostModel,\n labelDataIndex: idx,\n inheritColor: visualColor,\n defaultOpacity: visualOpacity,\n defaultText: seriesModel.getFormattedLabel(idx, 'normal') || data.getName(idx)\n });\n var labelText = sector.getTextContent(); // Set textConfig on sector.\n\n sector.setTextConfig({\n // reset position, rotation\n position: null,\n rotation: null\n }); // Make sure update style on labelText after setLabelStyle.\n // Because setLabelStyle will replace a new style on it.\n\n labelText.attr({\n z2: 10\n });\n var labelPosition = seriesModel.get(['label', 'position']);\n\n if (labelPosition !== 'outside' && labelPosition !== 'outer') {\n sector.removeTextGuideLine();\n } else {\n var polyline = this.getTextGuideLine();\n\n if (!polyline) {\n polyline = new graphic.Polyline();\n this.setTextGuideLine(polyline);\n } // Default use item visual color\n\n\n setLabelLineStyle(this, getLabelLineStatesModels(itemModel), {\n stroke: visualColor,\n opacity: retrieve3(labelLineModel.get(['lineStyle', 'opacity']), visualOpacity, 1)\n });\n }\n };\n\n return PiePiece;\n}(graphic.Sector); // Pie view\n\n\nvar PieView =\n/** @class */\nfunction (_super) {\n __extends(PieView, _super);\n\n function PieView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.ignoreLabelLineUpdate = true;\n return _this;\n }\n\n PieView.prototype.render = function (seriesModel, ecModel, api, payload) {\n var data = seriesModel.getData();\n var oldData = this._data;\n var group = this.group;\n var startAngle; // First render\n\n if (!oldData && data.count() > 0) {\n var shape = data.getItemLayout(0);\n\n for (var s = 1; isNaN(shape && shape.startAngle) && s < data.count(); ++s) {\n shape = data.getItemLayout(s);\n }\n\n if (shape) {\n startAngle = shape.startAngle;\n }\n } // remove empty-circle if it exists\n\n\n if (this._emptyCircleSector) {\n group.remove(this._emptyCircleSector);\n } // when all data are filtered, show lightgray empty circle\n\n\n if (data.count() === 0 && seriesModel.get('showEmptyCircle')) {\n var sector = new graphic.Sector({\n shape: getBasicPieLayout(seriesModel, api)\n });\n sector.useStyle(seriesModel.getModel('emptyCircleStyle').getItemStyle());\n this._emptyCircleSector = sector;\n group.add(sector);\n }\n\n data.diff(oldData).add(function (idx) {\n var piePiece = new PiePiece(data, idx, startAngle);\n data.setItemGraphicEl(idx, piePiece);\n group.add(piePiece);\n }).update(function (newIdx, oldIdx) {\n var piePiece = oldData.getItemGraphicEl(oldIdx);\n piePiece.updateData(data, newIdx, startAngle);\n piePiece.off('click');\n group.add(piePiece);\n data.setItemGraphicEl(newIdx, piePiece);\n }).remove(function (idx) {\n var piePiece = oldData.getItemGraphicEl(idx);\n graphic.removeElementWithFadeOut(piePiece, seriesModel, idx);\n }).execute();\n labelLayout(seriesModel); // Always use initial animation.\n\n if (seriesModel.get('animationTypeUpdate') !== 'expansion') {\n this._data = data;\n }\n };\n\n PieView.prototype.dispose = function () {};\n\n PieView.prototype.containPoint = function (point, seriesModel) {\n var data = seriesModel.getData();\n var itemLayout = data.getItemLayout(0);\n\n if (itemLayout) {\n var dx = point[0] - itemLayout.cx;\n var dy = point[1] - itemLayout.cy;\n var radius = Math.sqrt(dx * dx + dy * dy);\n return radius <= itemLayout.r && radius >= itemLayout.r0;\n }\n };\n\n PieView.type = 'pie';\n return PieView;\n}(ChartView);\n\nexport default PieView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { createLegacyDataSelectAction } from '../../legacy/dataSelectAction.js';\nimport pieLayout from '../pie/pieLayout.js';\nimport dataFilter from '../../processor/dataFilter.js';\nimport { curry } from 'zrender/lib/core/util.js';\nimport PieView from './PieView.js';\nimport PieSeriesModel from './PieSeries.js';\nimport negativeDataFilter from '../../processor/negativeDataFilter.js';\nexport function install(registers) {\n registers.registerChartView(PieView);\n registers.registerSeriesModel(PieSeriesModel);\n createLegacyDataSelectAction('pie', registers.registerAction);\n registers.registerLayout(curry(pieLayout, 'pie'));\n registers.registerProcessor(dataFilter('pie'));\n registers.registerProcessor(negativeDataFilter('pie'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// FIXME emphasis label position is not same with normal label position\nimport { parsePercent } from '../../util/number.js';\nimport { Point } from '../../util/graphic.js';\nimport { each, isNumber } from 'zrender/lib/core/util.js';\nimport { limitTurnAngle, limitSurfaceAngle } from '../../label/labelGuideHelper.js';\nimport { shiftLayoutOnY } from '../../label/labelLayoutHelper.js';\nvar RADIAN = Math.PI / 180;\n\nfunction adjustSingleSide(list, cx, cy, r, dir, viewWidth, viewHeight, viewLeft, viewTop, farthestX) {\n if (list.length < 2) {\n return;\n }\n\n ;\n\n function recalculateXOnSemiToAlignOnEllipseCurve(semi) {\n var rB = semi.rB;\n var rB2 = rB * rB;\n\n for (var i = 0; i < semi.list.length; i++) {\n var item = semi.list[i];\n var dy = Math.abs(item.label.y - cy); // horizontal r is always same with original r because x is not changed.\n\n var rA = r + item.len;\n var rA2 = rA * rA; // Use ellipse implicit function to calculate x\n\n var dx = Math.sqrt((1 - Math.abs(dy * dy / rB2)) * rA2);\n var newX = cx + (dx + item.len2) * dir;\n var deltaX = newX - item.label.x;\n var newTargetWidth = item.targetTextWidth - deltaX * dir; // text x is changed, so need to recalculate width.\n\n constrainTextWidth(item, newTargetWidth, true);\n item.label.x = newX;\n }\n } // Adjust X based on the shifted y. Make tight labels aligned on an ellipse curve.\n\n\n function recalculateX(items) {\n // Extremes of\n var topSemi = {\n list: [],\n maxY: 0\n };\n var bottomSemi = {\n list: [],\n maxY: 0\n };\n\n for (var i = 0; i < items.length; i++) {\n if (items[i].labelAlignTo !== 'none') {\n continue;\n }\n\n var item = items[i];\n var semi = item.label.y > cy ? bottomSemi : topSemi;\n var dy = Math.abs(item.label.y - cy);\n\n if (dy >= semi.maxY) {\n var dx = item.label.x - cx - item.len2 * dir; // horizontal r is always same with original r because x is not changed.\n\n var rA = r + item.len; // Canculate rB based on the topest / bottemest label.\n\n var rB = Math.abs(dx) < rA ? Math.sqrt(dy * dy / (1 - dx * dx / rA / rA)) : rA;\n semi.rB = rB;\n semi.maxY = dy;\n }\n\n semi.list.push(item);\n }\n\n recalculateXOnSemiToAlignOnEllipseCurve(topSemi);\n recalculateXOnSemiToAlignOnEllipseCurve(bottomSemi);\n }\n\n var len = list.length;\n\n for (var i = 0; i < len; i++) {\n if (list[i].position === 'outer' && list[i].labelAlignTo === 'labelLine') {\n var dx = list[i].label.x - farthestX;\n list[i].linePoints[1][0] += dx;\n list[i].label.x = farthestX;\n }\n }\n\n if (shiftLayoutOnY(list, viewTop, viewTop + viewHeight)) {\n recalculateX(list);\n }\n}\n\nfunction avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop) {\n var leftList = [];\n var rightList = [];\n var leftmostX = Number.MAX_VALUE;\n var rightmostX = -Number.MAX_VALUE;\n\n for (var i = 0; i < labelLayoutList.length; i++) {\n var label = labelLayoutList[i].label;\n\n if (isPositionCenter(labelLayoutList[i])) {\n continue;\n }\n\n if (label.x < cx) {\n leftmostX = Math.min(leftmostX, label.x);\n leftList.push(labelLayoutList[i]);\n } else {\n rightmostX = Math.max(rightmostX, label.x);\n rightList.push(labelLayoutList[i]);\n }\n }\n\n for (var i = 0; i < labelLayoutList.length; i++) {\n var layout = labelLayoutList[i];\n\n if (!isPositionCenter(layout) && layout.linePoints) {\n if (layout.labelStyleWidth != null) {\n continue;\n }\n\n var label = layout.label;\n var linePoints = layout.linePoints;\n var targetTextWidth = void 0;\n\n if (layout.labelAlignTo === 'edge') {\n if (label.x < cx) {\n targetTextWidth = linePoints[2][0] - layout.labelDistance - viewLeft - layout.edgeDistance;\n } else {\n targetTextWidth = viewLeft + viewWidth - layout.edgeDistance - linePoints[2][0] - layout.labelDistance;\n }\n } else if (layout.labelAlignTo === 'labelLine') {\n if (label.x < cx) {\n targetTextWidth = leftmostX - viewLeft - layout.bleedMargin;\n } else {\n targetTextWidth = viewLeft + viewWidth - rightmostX - layout.bleedMargin;\n }\n } else {\n if (label.x < cx) {\n targetTextWidth = label.x - viewLeft - layout.bleedMargin;\n } else {\n targetTextWidth = viewLeft + viewWidth - label.x - layout.bleedMargin;\n }\n }\n\n layout.targetTextWidth = targetTextWidth;\n constrainTextWidth(layout, targetTextWidth);\n }\n }\n\n adjustSingleSide(rightList, cx, cy, r, 1, viewWidth, viewHeight, viewLeft, viewTop, rightmostX);\n adjustSingleSide(leftList, cx, cy, r, -1, viewWidth, viewHeight, viewLeft, viewTop, leftmostX);\n\n for (var i = 0; i < labelLayoutList.length; i++) {\n var layout = labelLayoutList[i];\n\n if (!isPositionCenter(layout) && layout.linePoints) {\n var label = layout.label;\n var linePoints = layout.linePoints;\n var isAlignToEdge = layout.labelAlignTo === 'edge';\n var padding = label.style.padding;\n var paddingH = padding ? padding[1] + padding[3] : 0; // textRect.width already contains paddingH if bgColor is set\n\n var extraPaddingH = label.style.backgroundColor ? 0 : paddingH;\n var realTextWidth = layout.rect.width + extraPaddingH;\n var dist = linePoints[1][0] - linePoints[2][0];\n\n if (isAlignToEdge) {\n if (label.x < cx) {\n linePoints[2][0] = viewLeft + layout.edgeDistance + realTextWidth + layout.labelDistance;\n } else {\n linePoints[2][0] = viewLeft + viewWidth - layout.edgeDistance - realTextWidth - layout.labelDistance;\n }\n } else {\n if (label.x < cx) {\n linePoints[2][0] = label.x + layout.labelDistance;\n } else {\n linePoints[2][0] = label.x - layout.labelDistance;\n }\n\n linePoints[1][0] = linePoints[2][0] + dist;\n }\n\n linePoints[1][1] = linePoints[2][1] = label.y;\n }\n }\n}\n/**\n * Set max width of each label, and then wrap each label to the max width.\n *\n * @param layout label layout\n * @param availableWidth max width for the label to display\n * @param forceRecalculate recaculate the text layout even if the current width\n * is smaller than `availableWidth`. This is useful when the text was previously\n * wrapped by calling `constrainTextWidth` but now `availableWidth` changed, in\n * which case, previous wrapping should be redo.\n */\n\n\nfunction constrainTextWidth(layout, availableWidth, forceRecalculate) {\n if (forceRecalculate === void 0) {\n forceRecalculate = false;\n }\n\n if (layout.labelStyleWidth != null) {\n // User-defined style.width has the highest priority.\n return;\n }\n\n var label = layout.label;\n var style = label.style;\n var textRect = layout.rect;\n var bgColor = style.backgroundColor;\n var padding = style.padding;\n var paddingH = padding ? padding[1] + padding[3] : 0;\n var overflow = style.overflow; // textRect.width already contains paddingH if bgColor is set\n\n var oldOuterWidth = textRect.width + (bgColor ? 0 : paddingH);\n\n if (availableWidth < oldOuterWidth || forceRecalculate) {\n var oldHeight = textRect.height;\n\n if (overflow && overflow.match('break')) {\n // Temporarily set background to be null to calculate\n // the bounding box without background.\n label.setStyle('backgroundColor', null); // Set constraining width\n\n label.setStyle('width', availableWidth - paddingH); // This is the real bounding box of the text without padding.\n\n var innerRect = label.getBoundingRect();\n label.setStyle('width', Math.ceil(innerRect.width));\n label.setStyle('backgroundColor', bgColor);\n } else {\n var availableInnerWidth = availableWidth - paddingH;\n var newWidth = availableWidth < oldOuterWidth // Current text is too wide, use `availableWidth` as max width.\n ? availableInnerWidth : // Current available width is enough, but the text may have\n // already been wrapped with a smaller available width.\n forceRecalculate ? availableInnerWidth > layout.unconstrainedWidth // Current available is larger than text width,\n // so don't constrain width (otherwise it may have\n // empty space in the background).\n ? null // Current available is smaller than text width, so\n // use the current available width as constraining\n // width.\n : availableInnerWidth : // Current available width is enough, so no need to\n // constrain.\n null;\n label.setStyle('width', newWidth);\n }\n\n var newRect = label.getBoundingRect();\n textRect.width = newRect.width;\n var margin = (label.style.margin || 0) + 2.1;\n textRect.height = newRect.height + margin;\n textRect.y -= (textRect.height - oldHeight) / 2;\n }\n}\n\nfunction isPositionCenter(sectorShape) {\n // Not change x for center label\n return sectorShape.position === 'center';\n}\n\nexport default function pieLabelLayout(seriesModel) {\n var data = seriesModel.getData();\n var labelLayoutList = [];\n var cx;\n var cy;\n var hasLabelRotate = false;\n var minShowLabelRadian = (seriesModel.get('minShowLabelAngle') || 0) * RADIAN;\n var viewRect = data.getLayout('viewRect');\n var r = data.getLayout('r');\n var viewWidth = viewRect.width;\n var viewLeft = viewRect.x;\n var viewTop = viewRect.y;\n var viewHeight = viewRect.height;\n\n function setNotShow(el) {\n el.ignore = true;\n }\n\n function isLabelShown(label) {\n if (!label.ignore) {\n return true;\n }\n\n for (var key in label.states) {\n if (label.states[key].ignore === false) {\n return true;\n }\n }\n\n return false;\n }\n\n data.each(function (idx) {\n var sector = data.getItemGraphicEl(idx);\n var sectorShape = sector.shape;\n var label = sector.getTextContent();\n var labelLine = sector.getTextGuideLine();\n var itemModel = data.getItemModel(idx);\n var labelModel = itemModel.getModel('label'); // Use position in normal or emphasis\n\n var labelPosition = labelModel.get('position') || itemModel.get(['emphasis', 'label', 'position']);\n var labelDistance = labelModel.get('distanceToLabelLine');\n var labelAlignTo = labelModel.get('alignTo');\n var edgeDistance = parsePercent(labelModel.get('edgeDistance'), viewWidth);\n var bleedMargin = labelModel.get('bleedMargin');\n var labelLineModel = itemModel.getModel('labelLine');\n var labelLineLen = labelLineModel.get('length');\n labelLineLen = parsePercent(labelLineLen, viewWidth);\n var labelLineLen2 = labelLineModel.get('length2');\n labelLineLen2 = parsePercent(labelLineLen2, viewWidth);\n\n if (Math.abs(sectorShape.endAngle - sectorShape.startAngle) < minShowLabelRadian) {\n each(label.states, setNotShow);\n label.ignore = true;\n\n if (labelLine) {\n each(labelLine.states, setNotShow);\n labelLine.ignore = true;\n }\n\n return;\n }\n\n if (!isLabelShown(label)) {\n return;\n }\n\n var midAngle = (sectorShape.startAngle + sectorShape.endAngle) / 2;\n var nx = Math.cos(midAngle);\n var ny = Math.sin(midAngle);\n var textX;\n var textY;\n var linePoints;\n var textAlign;\n cx = sectorShape.cx;\n cy = sectorShape.cy;\n var isLabelInside = labelPosition === 'inside' || labelPosition === 'inner';\n\n if (labelPosition === 'center') {\n textX = sectorShape.cx;\n textY = sectorShape.cy;\n textAlign = 'center';\n } else {\n var x1 = (isLabelInside ? (sectorShape.r + sectorShape.r0) / 2 * nx : sectorShape.r * nx) + cx;\n var y1 = (isLabelInside ? (sectorShape.r + sectorShape.r0) / 2 * ny : sectorShape.r * ny) + cy;\n textX = x1 + nx * 3;\n textY = y1 + ny * 3;\n\n if (!isLabelInside) {\n // For roseType\n var x2 = x1 + nx * (labelLineLen + r - sectorShape.r);\n var y2 = y1 + ny * (labelLineLen + r - sectorShape.r);\n var x3 = x2 + (nx < 0 ? -1 : 1) * labelLineLen2;\n var y3 = y2;\n\n if (labelAlignTo === 'edge') {\n // Adjust textX because text align of edge is opposite\n textX = nx < 0 ? viewLeft + edgeDistance : viewLeft + viewWidth - edgeDistance;\n } else {\n textX = x3 + (nx < 0 ? -labelDistance : labelDistance);\n }\n\n textY = y3;\n linePoints = [[x1, y1], [x2, y2], [x3, y3]];\n }\n\n textAlign = isLabelInside ? 'center' : labelAlignTo === 'edge' ? nx > 0 ? 'right' : 'left' : nx > 0 ? 'left' : 'right';\n }\n\n var PI = Math.PI;\n var labelRotate = 0;\n var rotate = labelModel.get('rotate');\n\n if (isNumber(rotate)) {\n labelRotate = rotate * (PI / 180);\n } else if (labelPosition === 'center') {\n labelRotate = 0;\n } else if (rotate === 'radial' || rotate === true) {\n var radialAngle = nx < 0 ? -midAngle + PI : -midAngle;\n labelRotate = radialAngle;\n } else if (rotate === 'tangential' && labelPosition !== 'outside' && labelPosition !== 'outer') {\n var rad = Math.atan2(nx, ny);\n\n if (rad < 0) {\n rad = PI * 2 + rad;\n }\n\n var isDown = ny > 0;\n\n if (isDown) {\n rad = PI + rad;\n }\n\n labelRotate = rad - PI;\n }\n\n hasLabelRotate = !!labelRotate;\n label.x = textX;\n label.y = textY;\n label.rotation = labelRotate;\n label.setStyle({\n verticalAlign: 'middle'\n }); // Not sectorShape the inside label\n\n if (!isLabelInside) {\n var textRect = label.getBoundingRect().clone();\n textRect.applyTransform(label.getComputedTransform()); // Text has a default 1px stroke. Exclude this.\n\n var margin = (label.style.margin || 0) + 2.1;\n textRect.y -= margin / 2;\n textRect.height += margin;\n labelLayoutList.push({\n label: label,\n labelLine: labelLine,\n position: labelPosition,\n len: labelLineLen,\n len2: labelLineLen2,\n minTurnAngle: labelLineModel.get('minTurnAngle'),\n maxSurfaceAngle: labelLineModel.get('maxSurfaceAngle'),\n surfaceNormal: new Point(nx, ny),\n linePoints: linePoints,\n textAlign: textAlign,\n labelDistance: labelDistance,\n labelAlignTo: labelAlignTo,\n edgeDistance: edgeDistance,\n bleedMargin: bleedMargin,\n rect: textRect,\n unconstrainedWidth: textRect.width,\n labelStyleWidth: label.style.width\n });\n } else {\n label.setStyle({\n align: textAlign\n });\n var selectState = label.states.select;\n\n if (selectState) {\n selectState.x += label.x;\n selectState.y += label.y;\n }\n }\n\n sector.setTextConfig({\n inside: isLabelInside\n });\n });\n\n if (!hasLabelRotate && seriesModel.get('avoidLabelOverlap')) {\n avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop);\n }\n\n for (var i = 0; i < labelLayoutList.length; i++) {\n var layout = labelLayoutList[i];\n var label = layout.label;\n var labelLine = layout.labelLine;\n var notShowLabel = isNaN(label.x) || isNaN(label.y);\n\n if (label) {\n label.setStyle({\n align: layout.textAlign\n });\n\n if (notShowLabel) {\n each(label.states, setNotShow);\n label.ignore = true;\n }\n\n var selectState = label.states.select;\n\n if (selectState) {\n selectState.x += label.x;\n selectState.y += label.y;\n }\n }\n\n if (labelLine) {\n var linePoints = layout.linePoints;\n\n if (notShowLabel || !linePoints) {\n each(labelLine.states, setNotShow);\n labelLine.ignore = true;\n } else {\n limitTurnAngle(linePoints, layout.minTurnAngle);\n limitSurfaceAngle(linePoints, layout.surfaceNormal, layout.maxSurfaceAngle);\n labelLine.setShape({\n points: linePoints\n }); // Set the anchor to the midpoint of sector\n\n label.__hostTarget.textGuideLineConfig = {\n anchor: new Point(linePoints[0][0], linePoints[0][1])\n };\n }\n }\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { parsePercent, linearMap } from '../../util/number.js';\nimport * as layout from '../../util/layout.js';\nimport * as zrUtil from 'zrender/lib/core/util.js';\nvar PI2 = Math.PI * 2;\nvar RADIAN = Math.PI / 180;\n\nfunction getViewRect(seriesModel, api) {\n return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n width: api.getWidth(),\n height: api.getHeight()\n });\n}\n\nexport function getBasicPieLayout(seriesModel, api) {\n var viewRect = getViewRect(seriesModel, api); // center can be string or number when coordinateSystem is specified\n\n var center = seriesModel.get('center');\n var radius = seriesModel.get('radius');\n\n if (!zrUtil.isArray(radius)) {\n radius = [0, radius];\n }\n\n var width = parsePercent(viewRect.width, api.getWidth());\n var height = parsePercent(viewRect.height, api.getHeight());\n var size = Math.min(width, height);\n var r0 = parsePercent(radius[0], size / 2);\n var r = parsePercent(radius[1], size / 2);\n var cx;\n var cy;\n var coordSys = seriesModel.coordinateSystem;\n\n if (coordSys) {\n // percentage is not allowed when coordinate system is specified\n var point = coordSys.dataToPoint(center);\n cx = point[0] || 0;\n cy = point[1] || 0;\n } else {\n if (!zrUtil.isArray(center)) {\n center = [center, center];\n }\n\n cx = parsePercent(center[0], width) + viewRect.x;\n cy = parsePercent(center[1], height) + viewRect.y;\n }\n\n return {\n cx: cx,\n cy: cy,\n r0: r0,\n r: r\n };\n}\nexport default function pieLayout(seriesType, ecModel, api) {\n ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n var data = seriesModel.getData();\n var valueDim = data.mapDimension('value');\n var viewRect = getViewRect(seriesModel, api);\n\n var _a = getBasicPieLayout(seriesModel, api),\n cx = _a.cx,\n cy = _a.cy,\n r = _a.r,\n r0 = _a.r0;\n\n var startAngle = -seriesModel.get('startAngle') * RADIAN;\n var minAngle = seriesModel.get('minAngle') * RADIAN;\n var validDataCount = 0;\n data.each(valueDim, function (value) {\n !isNaN(value) && validDataCount++;\n });\n var sum = data.getSum(valueDim); // Sum may be 0\n\n var unitRadian = Math.PI / (sum || validDataCount) * 2;\n var clockwise = seriesModel.get('clockwise');\n var roseType = seriesModel.get('roseType');\n var stillShowZeroSum = seriesModel.get('stillShowZeroSum'); // [0...max]\n\n var extent = data.getDataExtent(valueDim);\n extent[0] = 0; // In the case some sector angle is smaller than minAngle\n\n var restAngle = PI2;\n var valueSumLargerThanMinAngle = 0;\n var currentAngle = startAngle;\n var dir = clockwise ? 1 : -1;\n data.setLayout({\n viewRect: viewRect,\n r: r\n });\n data.each(valueDim, function (value, idx) {\n var angle;\n\n if (isNaN(value)) {\n data.setItemLayout(idx, {\n angle: NaN,\n startAngle: NaN,\n endAngle: NaN,\n clockwise: clockwise,\n cx: cx,\n cy: cy,\n r0: r0,\n r: roseType ? NaN : r\n });\n return;\n } // FIXME 兼容 2.0 但是 roseType 是 area 的时候才是这样?\n\n\n if (roseType !== 'area') {\n angle = sum === 0 && stillShowZeroSum ? unitRadian : value * unitRadian;\n } else {\n angle = PI2 / validDataCount;\n }\n\n if (angle < minAngle) {\n angle = minAngle;\n restAngle -= minAngle;\n } else {\n valueSumLargerThanMinAngle += value;\n }\n\n var endAngle = currentAngle + dir * angle;\n data.setItemLayout(idx, {\n angle: angle,\n startAngle: currentAngle,\n endAngle: endAngle,\n clockwise: clockwise,\n cx: cx,\n cy: cy,\n r0: r0,\n r: roseType ? linearMap(value, extent, [r0, r]) : r\n });\n currentAngle = endAngle;\n }); // Some sector is constrained by minAngle\n // Rest sectors needs recalculate angle\n\n if (restAngle < PI2 && validDataCount) {\n // Average the angle if rest angle is not enough after all angles is\n // Constrained by minAngle\n if (restAngle <= 1e-3) {\n var angle_1 = PI2 / validDataCount;\n data.each(valueDim, function (value, idx) {\n if (!isNaN(value)) {\n var layout_1 = data.getItemLayout(idx);\n layout_1.angle = angle_1;\n layout_1.startAngle = startAngle + dir * idx * angle_1;\n layout_1.endAngle = startAngle + dir * (idx + 1) * angle_1;\n }\n });\n } else {\n unitRadian = restAngle / valueSumLargerThanMinAngle;\n currentAngle = startAngle;\n data.each(valueDim, function (value, idx) {\n if (!isNaN(value)) {\n var layout_2 = data.getItemLayout(idx);\n var angle = layout_2.angle === minAngle ? minAngle : value * unitRadian;\n layout_2.startAngle = currentAngle;\n layout_2.endAngle = currentAngle + dir * angle;\n currentAngle += dir * angle;\n }\n });\n }\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series.js';\nimport createSeriesDataSimply from '../helper/createSeriesDataSimply.js';\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport LegendVisualProvider from '../../visual/LegendVisualProvider.js';\nimport { createTooltipMarkup, retrieveVisualColorForTooltipMarker } from '../../component/tooltip/tooltipMarkup.js';\n\nvar RadarSeriesModel =\n/** @class */\nfunction (_super) {\n __extends(RadarSeriesModel, _super);\n\n function RadarSeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = RadarSeriesModel.type;\n _this.hasSymbolVisual = true;\n return _this;\n } // Overwrite\n\n\n RadarSeriesModel.prototype.init = function (option) {\n _super.prototype.init.apply(this, arguments); // Enable legend selection for each data item\n // Use a function instead of direct access because data reference may changed\n\n\n this.legendVisualProvider = new LegendVisualProvider(zrUtil.bind(this.getData, this), zrUtil.bind(this.getRawData, this));\n };\n\n RadarSeriesModel.prototype.getInitialData = function (option, ecModel) {\n return createSeriesDataSimply(this, {\n generateCoord: 'indicator_',\n generateCoordCount: Infinity\n });\n };\n\n RadarSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n var data = this.getData();\n var coordSys = this.coordinateSystem;\n var indicatorAxes = coordSys.getIndicatorAxes();\n var name = this.getData().getName(dataIndex);\n var nameToDisplay = name === '' ? this.name : name;\n var markerColor = retrieveVisualColorForTooltipMarker(this, dataIndex);\n return createTooltipMarkup('section', {\n header: nameToDisplay,\n sortBlocks: true,\n blocks: zrUtil.map(indicatorAxes, function (axis) {\n var val = data.get(data.mapDimension(axis.dim), dataIndex);\n return createTooltipMarkup('nameValue', {\n markerType: 'subItem',\n markerColor: markerColor,\n name: axis.name,\n value: val,\n sortParam: val\n });\n })\n });\n };\n\n RadarSeriesModel.prototype.getTooltipPosition = function (dataIndex) {\n if (dataIndex != null) {\n var data_1 = this.getData();\n var coordSys = this.coordinateSystem;\n var values = data_1.getValues(zrUtil.map(coordSys.dimensions, function (dim) {\n return data_1.mapDimension(dim);\n }), dataIndex);\n\n for (var i = 0, len = values.length; i < len; i++) {\n if (!isNaN(values[i])) {\n var indicatorAxes = coordSys.getIndicatorAxes();\n return coordSys.coordToPoint(indicatorAxes[i].dataToCoord(values[i]), i);\n }\n }\n }\n };\n\n RadarSeriesModel.type = 'series.radar';\n RadarSeriesModel.dependencies = ['radar'];\n RadarSeriesModel.defaultOption = {\n // zlevel: 0,\n z: 2,\n colorBy: 'data',\n coordinateSystem: 'radar',\n legendHoverLink: true,\n radarIndex: 0,\n lineStyle: {\n width: 2,\n type: 'solid',\n join: 'round'\n },\n label: {\n position: 'top'\n },\n // areaStyle: {\n // },\n // itemStyle: {}\n symbolSize: 8 // symbolRotate: null\n\n };\n return RadarSeriesModel;\n}(SeriesModel);\n\nexport default RadarSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic.js';\nimport { setStatesStylesFromModel, toggleHoverEmphasis } from '../../util/states.js';\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as symbolUtil from '../../util/symbol.js';\nimport ChartView from '../../view/Chart.js';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle.js';\nimport ZRImage from 'zrender/lib/graphic/Image.js';\nimport { saveOldStyle } from '../../animation/basicTransition.js';\n\nvar RadarView =\n/** @class */\nfunction (_super) {\n __extends(RadarView, _super);\n\n function RadarView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = RadarView.type;\n return _this;\n }\n\n RadarView.prototype.render = function (seriesModel, ecModel, api) {\n var polar = seriesModel.coordinateSystem;\n var group = this.group;\n var data = seriesModel.getData();\n var oldData = this._data;\n\n function createSymbol(data, idx) {\n var symbolType = data.getItemVisual(idx, 'symbol') || 'circle';\n\n if (symbolType === 'none') {\n return;\n }\n\n var symbolSize = symbolUtil.normalizeSymbolSize(data.getItemVisual(idx, 'symbolSize'));\n var symbolPath = symbolUtil.createSymbol(symbolType, -1, -1, 2, 2);\n var symbolRotate = data.getItemVisual(idx, 'symbolRotate') || 0;\n symbolPath.attr({\n style: {\n strokeNoScale: true\n },\n z2: 100,\n scaleX: symbolSize[0] / 2,\n scaleY: symbolSize[1] / 2,\n rotation: symbolRotate * Math.PI / 180 || 0\n });\n return symbolPath;\n }\n\n function updateSymbols(oldPoints, newPoints, symbolGroup, data, idx, isInit) {\n // Simply rerender all\n symbolGroup.removeAll();\n\n for (var i = 0; i < newPoints.length - 1; i++) {\n var symbolPath = createSymbol(data, idx);\n\n if (symbolPath) {\n symbolPath.__dimIdx = i;\n\n if (oldPoints[i]) {\n symbolPath.setPosition(oldPoints[i]);\n graphic[isInit ? 'initProps' : 'updateProps'](symbolPath, {\n x: newPoints[i][0],\n y: newPoints[i][1]\n }, seriesModel, idx);\n } else {\n symbolPath.setPosition(newPoints[i]);\n }\n\n symbolGroup.add(symbolPath);\n }\n }\n }\n\n function getInitialPoints(points) {\n return zrUtil.map(points, function (pt) {\n return [polar.cx, polar.cy];\n });\n }\n\n data.diff(oldData).add(function (idx) {\n var points = data.getItemLayout(idx);\n\n if (!points) {\n return;\n }\n\n var polygon = new graphic.Polygon();\n var polyline = new graphic.Polyline();\n var target = {\n shape: {\n points: points\n }\n };\n polygon.shape.points = getInitialPoints(points);\n polyline.shape.points = getInitialPoints(points);\n graphic.initProps(polygon, target, seriesModel, idx);\n graphic.initProps(polyline, target, seriesModel, idx);\n var itemGroup = new graphic.Group();\n var symbolGroup = new graphic.Group();\n itemGroup.add(polyline);\n itemGroup.add(polygon);\n itemGroup.add(symbolGroup);\n updateSymbols(polyline.shape.points, points, symbolGroup, data, idx, true);\n data.setItemGraphicEl(idx, itemGroup);\n }).update(function (newIdx, oldIdx) {\n var itemGroup = oldData.getItemGraphicEl(oldIdx);\n var polyline = itemGroup.childAt(0);\n var polygon = itemGroup.childAt(1);\n var symbolGroup = itemGroup.childAt(2);\n var target = {\n shape: {\n points: data.getItemLayout(newIdx)\n }\n };\n\n if (!target.shape.points) {\n return;\n }\n\n updateSymbols(polyline.shape.points, target.shape.points, symbolGroup, data, newIdx, false);\n saveOldStyle(polygon);\n saveOldStyle(polyline);\n graphic.updateProps(polyline, target, seriesModel);\n graphic.updateProps(polygon, target, seriesModel);\n data.setItemGraphicEl(newIdx, itemGroup);\n }).remove(function (idx) {\n group.remove(oldData.getItemGraphicEl(idx));\n }).execute();\n data.eachItemGraphicEl(function (itemGroup, idx) {\n var itemModel = data.getItemModel(idx);\n var polyline = itemGroup.childAt(0);\n var polygon = itemGroup.childAt(1);\n var symbolGroup = itemGroup.childAt(2); // Radar uses the visual encoded from itemStyle.\n\n var itemStyle = data.getItemVisual(idx, 'style');\n var color = itemStyle.fill;\n group.add(itemGroup);\n polyline.useStyle(zrUtil.defaults(itemModel.getModel('lineStyle').getLineStyle(), {\n fill: 'none',\n stroke: color\n }));\n setStatesStylesFromModel(polyline, itemModel, 'lineStyle');\n setStatesStylesFromModel(polygon, itemModel, 'areaStyle');\n var areaStyleModel = itemModel.getModel('areaStyle');\n var polygonIgnore = areaStyleModel.isEmpty() && areaStyleModel.parentModel.isEmpty();\n polygon.ignore = polygonIgnore;\n zrUtil.each(['emphasis', 'select', 'blur'], function (stateName) {\n var stateModel = itemModel.getModel([stateName, 'areaStyle']);\n var stateIgnore = stateModel.isEmpty() && stateModel.parentModel.isEmpty(); // Won't be ignore if normal state is not ignore.\n\n polygon.ensureState(stateName).ignore = stateIgnore && polygonIgnore;\n });\n polygon.useStyle(zrUtil.defaults(areaStyleModel.getAreaStyle(), {\n fill: color,\n opacity: 0.7,\n decal: itemStyle.decal\n }));\n var emphasisModel = itemModel.getModel('emphasis');\n var itemHoverStyle = emphasisModel.getModel('itemStyle').getItemStyle();\n symbolGroup.eachChild(function (symbolPath) {\n if (symbolPath instanceof ZRImage) {\n var pathStyle = symbolPath.style;\n symbolPath.useStyle(zrUtil.extend({\n // TODO other properties like x, y ?\n image: pathStyle.image,\n x: pathStyle.x,\n y: pathStyle.y,\n width: pathStyle.width,\n height: pathStyle.height\n }, itemStyle));\n } else {\n symbolPath.useStyle(itemStyle);\n symbolPath.setColor(color);\n symbolPath.style.strokeNoScale = true;\n }\n\n var pathEmphasisState = symbolPath.ensureState('emphasis');\n pathEmphasisState.style = zrUtil.clone(itemHoverStyle);\n var defaultText = data.getStore().get(data.getDimensionIndex(symbolPath.__dimIdx), idx);\n (defaultText == null || isNaN(defaultText)) && (defaultText = '');\n setLabelStyle(symbolPath, getLabelStatesModels(itemModel), {\n labelFetcher: data.hostModel,\n labelDataIndex: idx,\n labelDimIndex: symbolPath.__dimIdx,\n defaultText: defaultText,\n inheritColor: color,\n defaultOpacity: itemStyle.opacity\n });\n });\n toggleHoverEmphasis(itemGroup, emphasisModel.get('focus'), emphasisModel.get('blurScope'), emphasisModel.get('disabled'));\n });\n this._data = data;\n };\n\n RadarView.prototype.remove = function () {\n this.group.removeAll();\n this._data = null;\n };\n\n RadarView.type = 'radar';\n return RadarView;\n}(ChartView);\n\nexport default RadarView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// @ts-nocheck\n// Backward compat for radar chart in 2\nimport * as zrUtil from 'zrender/lib/core/util.js';\nexport default function radarBackwardCompat(option) {\n var polarOptArr = option.polar;\n\n if (polarOptArr) {\n if (!zrUtil.isArray(polarOptArr)) {\n polarOptArr = [polarOptArr];\n }\n\n var polarNotRadar_1 = [];\n zrUtil.each(polarOptArr, function (polarOpt, idx) {\n if (polarOpt.indicator) {\n if (polarOpt.type && !polarOpt.shape) {\n polarOpt.shape = polarOpt.type;\n }\n\n option.radar = option.radar || [];\n\n if (!zrUtil.isArray(option.radar)) {\n option.radar = [option.radar];\n }\n\n option.radar.push(polarOpt);\n } else {\n polarNotRadar_1.push(polarOpt);\n }\n });\n option.polar = polarNotRadar_1;\n }\n\n zrUtil.each(option.series, function (seriesOpt) {\n if (seriesOpt && seriesOpt.type === 'radar' && seriesOpt.polarIndex) {\n seriesOpt.radarIndex = seriesOpt.polarIndex;\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { use } from '../../extension.js';\nimport radarLayout from '../radar/radarLayout.js';\nimport dataFilter from '../../processor/dataFilter.js';\nimport backwardCompat from '../radar/backwardCompat.js';\nimport RadarView from './RadarView.js';\nimport RadarSeriesModel from './RadarSeries.js';\nimport { install as installRadarComponent } from '../../component/radar/install.js';\nexport function install(registers) {\n use(installRadarComponent);\n registers.registerChartView(RadarView);\n registers.registerSeriesModel(RadarSeriesModel);\n registers.registerLayout(radarLayout);\n registers.registerProcessor(dataFilter('radar'));\n registers.registerPreprocessor(backwardCompat);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nexport default function radarLayout(ecModel) {\n ecModel.eachSeriesByType('radar', function (seriesModel) {\n var data = seriesModel.getData();\n var points = [];\n var coordSys = seriesModel.coordinateSystem;\n\n if (!coordSys) {\n return;\n }\n\n var axes = coordSys.getIndicatorAxes();\n zrUtil.each(axes, function (axis, axisIndex) {\n data.each(data.mapDimension(axes[axisIndex].dim), function (val, dataIndex) {\n points[dataIndex] = points[dataIndex] || [];\n var point = coordSys.dataToPoint(val, axisIndex);\n points[dataIndex][axisIndex] = isValidPoint(point) ? point : getValueMissingPoint(coordSys);\n });\n }); // Close polygon\n\n data.each(function (idx) {\n // TODO\n // Is it appropriate to connect to the next data when some data is missing?\n // Or, should trade it like `connectNull` in line chart?\n var firstPoint = zrUtil.find(points[idx], function (point) {\n return isValidPoint(point);\n }) || getValueMissingPoint(coordSys); // Copy the first actual point to the end of the array\n\n points[idx].push(firstPoint.slice());\n data.setItemLayout(idx, points[idx]);\n });\n });\n}\n\nfunction isValidPoint(point) {\n return !isNaN(point[0]) && !isNaN(point[1]);\n}\n\nfunction getValueMissingPoint(coordSys) {\n // It is error-prone to input [NaN, NaN] into polygon, polygon.\n // (probably cause problem when refreshing or animating)\n return [coordSys.cx, coordSys.cy];\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series.js';\nimport createGraphFromNodeEdge from '../helper/createGraphFromNodeEdge.js';\nimport Model from '../../model/Model.js';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup.js';\n\nvar SankeySeriesModel =\n/** @class */\nfunction (_super) {\n __extends(SankeySeriesModel, _super);\n\n function SankeySeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = SankeySeriesModel.type;\n return _this;\n }\n /**\n * Init a graph data structure from data in option series\n */\n\n\n SankeySeriesModel.prototype.getInitialData = function (option, ecModel) {\n var links = option.edges || option.links;\n var nodes = option.data || option.nodes;\n var levels = option.levels;\n this.levelModels = [];\n var levelModels = this.levelModels;\n\n for (var i = 0; i < levels.length; i++) {\n if (levels[i].depth != null && levels[i].depth >= 0) {\n levelModels[levels[i].depth] = new Model(levels[i], this, ecModel);\n } else {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error('levels[i].depth is mandatory and should be natural number');\n }\n }\n }\n\n if (nodes && links) {\n var graph = createGraphFromNodeEdge(nodes, links, this, true, beforeLink);\n return graph.data;\n }\n\n function beforeLink(nodeData, edgeData) {\n nodeData.wrapMethod('getItemModel', function (model, idx) {\n var seriesModel = model.parentModel;\n var layout = seriesModel.getData().getItemLayout(idx);\n\n if (layout) {\n var nodeDepth = layout.depth;\n var levelModel = seriesModel.levelModels[nodeDepth];\n\n if (levelModel) {\n model.parentModel = levelModel;\n }\n }\n\n return model;\n });\n edgeData.wrapMethod('getItemModel', function (model, idx) {\n var seriesModel = model.parentModel;\n var edge = seriesModel.getGraph().getEdgeByIndex(idx);\n var layout = edge.node1.getLayout();\n\n if (layout) {\n var depth = layout.depth;\n var levelModel = seriesModel.levelModels[depth];\n\n if (levelModel) {\n model.parentModel = levelModel;\n }\n }\n\n return model;\n });\n }\n };\n\n SankeySeriesModel.prototype.setNodePosition = function (dataIndex, localPosition) {\n var nodes = this.option.data || this.option.nodes;\n var dataItem = nodes[dataIndex];\n dataItem.localX = localPosition[0];\n dataItem.localY = localPosition[1];\n };\n /**\n * Return the graphic data structure\n *\n * @return graphic data structure\n */\n\n\n SankeySeriesModel.prototype.getGraph = function () {\n return this.getData().graph;\n };\n /**\n * Get edge data of graphic data structure\n *\n * @return data structure of list\n */\n\n\n SankeySeriesModel.prototype.getEdgeData = function () {\n return this.getGraph().edgeData;\n };\n\n SankeySeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n function noValue(val) {\n return isNaN(val) || val == null;\n } // dataType === 'node' or empty do not show tooltip by default\n\n\n if (dataType === 'edge') {\n var params = this.getDataParams(dataIndex, dataType);\n var rawDataOpt = params.data;\n var edgeValue = params.value;\n var edgeName = rawDataOpt.source + ' -- ' + rawDataOpt.target;\n return createTooltipMarkup('nameValue', {\n name: edgeName,\n value: edgeValue,\n noValue: noValue(edgeValue)\n });\n } // dataType === 'node'\n else {\n var node = this.getGraph().getNodeByIndex(dataIndex);\n var value = node.getLayout().value;\n var name_1 = this.getDataParams(dataIndex, dataType).data.name;\n return createTooltipMarkup('nameValue', {\n name: name_1 != null ? name_1 + '' : null,\n value: value,\n noValue: noValue(value)\n });\n }\n };\n\n SankeySeriesModel.prototype.optionUpdated = function () {}; // Override Series.getDataParams()\n\n\n SankeySeriesModel.prototype.getDataParams = function (dataIndex, dataType) {\n var params = _super.prototype.getDataParams.call(this, dataIndex, dataType);\n\n if (params.value == null && dataType === 'node') {\n var node = this.getGraph().getNodeByIndex(dataIndex);\n var nodeValue = node.getLayout().value;\n params.value = nodeValue;\n }\n\n return params;\n };\n\n SankeySeriesModel.type = 'series.sankey';\n SankeySeriesModel.defaultOption = {\n // zlevel: 0,\n z: 2,\n coordinateSystem: 'view',\n left: '5%',\n top: '5%',\n right: '20%',\n bottom: '5%',\n orient: 'horizontal',\n nodeWidth: 20,\n nodeGap: 8,\n draggable: true,\n layoutIterations: 32,\n label: {\n show: true,\n position: 'right',\n fontSize: 12\n },\n edgeLabel: {\n show: false,\n fontSize: 12\n },\n levels: [],\n nodeAlign: 'justify',\n lineStyle: {\n color: '#314656',\n opacity: 0.2,\n curveness: 0.5\n },\n emphasis: {\n label: {\n show: true\n },\n lineStyle: {\n opacity: 0.5\n }\n },\n select: {\n itemStyle: {\n borderColor: '#212121'\n }\n },\n animationEasing: 'linear',\n animationDuration: 1000\n };\n return SankeySeriesModel;\n}(SeriesModel);\n\nexport default SankeySeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic.js';\nimport { enterEmphasis, leaveEmphasis, toggleHoverEmphasis, setStatesStylesFromModel } from '../../util/states.js';\nimport ChartView from '../../view/Chart.js';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle.js';\nimport { getECData } from '../../util/innerStore.js';\nimport { isString } from 'zrender/lib/core/util.js';\n\nvar SankeyPathShape =\n/** @class */\nfunction () {\n function SankeyPathShape() {\n this.x1 = 0;\n this.y1 = 0;\n this.x2 = 0;\n this.y2 = 0;\n this.cpx1 = 0;\n this.cpy1 = 0;\n this.cpx2 = 0;\n this.cpy2 = 0;\n this.extent = 0;\n }\n\n return SankeyPathShape;\n}();\n\nvar SankeyPath =\n/** @class */\nfunction (_super) {\n __extends(SankeyPath, _super);\n\n function SankeyPath(opts) {\n return _super.call(this, opts) || this;\n }\n\n SankeyPath.prototype.getDefaultShape = function () {\n return new SankeyPathShape();\n };\n\n SankeyPath.prototype.buildPath = function (ctx, shape) {\n var extent = shape.extent;\n ctx.moveTo(shape.x1, shape.y1);\n ctx.bezierCurveTo(shape.cpx1, shape.cpy1, shape.cpx2, shape.cpy2, shape.x2, shape.y2);\n\n if (shape.orient === 'vertical') {\n ctx.lineTo(shape.x2 + extent, shape.y2);\n ctx.bezierCurveTo(shape.cpx2 + extent, shape.cpy2, shape.cpx1 + extent, shape.cpy1, shape.x1 + extent, shape.y1);\n } else {\n ctx.lineTo(shape.x2, shape.y2 + extent);\n ctx.bezierCurveTo(shape.cpx2, shape.cpy2 + extent, shape.cpx1, shape.cpy1 + extent, shape.x1, shape.y1 + extent);\n }\n\n ctx.closePath();\n };\n\n SankeyPath.prototype.highlight = function () {\n enterEmphasis(this);\n };\n\n SankeyPath.prototype.downplay = function () {\n leaveEmphasis(this);\n };\n\n return SankeyPath;\n}(graphic.Path);\n\nvar SankeyView =\n/** @class */\nfunction (_super) {\n __extends(SankeyView, _super);\n\n function SankeyView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = SankeyView.type;\n _this._focusAdjacencyDisabled = false;\n return _this;\n }\n\n SankeyView.prototype.render = function (seriesModel, ecModel, api) {\n var sankeyView = this;\n var graph = seriesModel.getGraph();\n var group = this.group;\n var layoutInfo = seriesModel.layoutInfo; // view width\n\n var width = layoutInfo.width; // view height\n\n var height = layoutInfo.height;\n var nodeData = seriesModel.getData();\n var edgeData = seriesModel.getData('edge');\n var orient = seriesModel.get('orient');\n this._model = seriesModel;\n group.removeAll();\n group.x = layoutInfo.x;\n group.y = layoutInfo.y; // generate a bezire Curve for each edge\n\n graph.eachEdge(function (edge) {\n var curve = new SankeyPath();\n var ecData = getECData(curve);\n ecData.dataIndex = edge.dataIndex;\n ecData.seriesIndex = seriesModel.seriesIndex;\n ecData.dataType = 'edge';\n var edgeModel = edge.getModel();\n var lineStyleModel = edgeModel.getModel('lineStyle');\n var curvature = lineStyleModel.get('curveness');\n var n1Layout = edge.node1.getLayout();\n var node1Model = edge.node1.getModel();\n var dragX1 = node1Model.get('localX');\n var dragY1 = node1Model.get('localY');\n var n2Layout = edge.node2.getLayout();\n var node2Model = edge.node2.getModel();\n var dragX2 = node2Model.get('localX');\n var dragY2 = node2Model.get('localY');\n var edgeLayout = edge.getLayout();\n var x1;\n var y1;\n var x2;\n var y2;\n var cpx1;\n var cpy1;\n var cpx2;\n var cpy2;\n curve.shape.extent = Math.max(1, edgeLayout.dy);\n curve.shape.orient = orient;\n\n if (orient === 'vertical') {\n x1 = (dragX1 != null ? dragX1 * width : n1Layout.x) + edgeLayout.sy;\n y1 = (dragY1 != null ? dragY1 * height : n1Layout.y) + n1Layout.dy;\n x2 = (dragX2 != null ? dragX2 * width : n2Layout.x) + edgeLayout.ty;\n y2 = dragY2 != null ? dragY2 * height : n2Layout.y;\n cpx1 = x1;\n cpy1 = y1 * (1 - curvature) + y2 * curvature;\n cpx2 = x2;\n cpy2 = y1 * curvature + y2 * (1 - curvature);\n } else {\n x1 = (dragX1 != null ? dragX1 * width : n1Layout.x) + n1Layout.dx;\n y1 = (dragY1 != null ? dragY1 * height : n1Layout.y) + edgeLayout.sy;\n x2 = dragX2 != null ? dragX2 * width : n2Layout.x;\n y2 = (dragY2 != null ? dragY2 * height : n2Layout.y) + edgeLayout.ty;\n cpx1 = x1 * (1 - curvature) + x2 * curvature;\n cpy1 = y1;\n cpx2 = x1 * curvature + x2 * (1 - curvature);\n cpy2 = y2;\n }\n\n curve.setShape({\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2,\n cpx1: cpx1,\n cpy1: cpy1,\n cpx2: cpx2,\n cpy2: cpy2\n });\n curve.useStyle(lineStyleModel.getItemStyle()); // Special color, use source node color or target node color\n\n switch (curve.style.fill) {\n case 'source':\n curve.style.fill = edge.node1.getVisual('color');\n curve.style.decal = edge.node1.getVisual('style').decal;\n break;\n\n case 'target':\n curve.style.fill = edge.node2.getVisual('color');\n curve.style.decal = edge.node2.getVisual('style').decal;\n break;\n\n case 'gradient':\n var sourceColor = edge.node1.getVisual('color');\n var targetColor = edge.node2.getVisual('color');\n\n if (isString(sourceColor) && isString(targetColor)) {\n curve.style.fill = new graphic.LinearGradient(0, 0, +(orient === 'horizontal'), +(orient === 'vertical'), [{\n color: sourceColor,\n offset: 0\n }, {\n color: targetColor,\n offset: 1\n }]);\n }\n\n }\n\n setLabelStyle(curve, getLabelStatesModels(edgeModel, 'edgeLabel'), {\n labelFetcher: seriesModel,\n labelDataIndex: edge.dataIndex,\n defaultText: \"\" + edgeModel.get('value')\n });\n curve.setTextConfig({\n position: 'inside'\n });\n var emphasisModel = edgeModel.getModel('emphasis');\n setStatesStylesFromModel(curve, edgeModel, 'lineStyle', function (model) {\n return model.getItemStyle();\n });\n group.add(curve);\n edgeData.setItemGraphicEl(edge.dataIndex, curve);\n var focus = emphasisModel.get('focus');\n toggleHoverEmphasis(curve, focus === 'adjacency' ? edge.getAdjacentDataIndices() : focus, emphasisModel.get('blurScope'), emphasisModel.get('disabled'));\n getECData(curve).dataType = 'edge';\n }); // Generate a rect for each node\n\n graph.eachNode(function (node) {\n var layout = node.getLayout();\n var itemModel = node.getModel();\n var dragX = itemModel.get('localX');\n var dragY = itemModel.get('localY');\n var emphasisModel = itemModel.getModel('emphasis');\n var rect = new graphic.Rect({\n shape: {\n x: dragX != null ? dragX * width : layout.x,\n y: dragY != null ? dragY * height : layout.y,\n width: layout.dx,\n height: layout.dy\n },\n style: itemModel.getModel('itemStyle').getItemStyle(),\n z2: 10\n });\n setLabelStyle(rect, getLabelStatesModels(itemModel), {\n labelFetcher: seriesModel,\n labelDataIndex: node.dataIndex,\n defaultText: node.id\n });\n rect.disableLabelAnimation = true;\n rect.setStyle('fill', node.getVisual('color'));\n rect.setStyle('decal', node.getVisual('style').decal);\n setStatesStylesFromModel(rect, itemModel);\n group.add(rect);\n nodeData.setItemGraphicEl(node.dataIndex, rect);\n getECData(rect).dataType = 'node';\n var focus = emphasisModel.get('focus');\n toggleHoverEmphasis(rect, focus === 'adjacency' ? node.getAdjacentDataIndices() : focus, emphasisModel.get('blurScope'), emphasisModel.get('disabled'));\n });\n nodeData.eachItemGraphicEl(function (el, dataIndex) {\n var itemModel = nodeData.getItemModel(dataIndex);\n\n if (itemModel.get('draggable')) {\n el.drift = function (dx, dy) {\n sankeyView._focusAdjacencyDisabled = true;\n this.shape.x += dx;\n this.shape.y += dy;\n this.dirty();\n api.dispatchAction({\n type: 'dragNode',\n seriesId: seriesModel.id,\n dataIndex: nodeData.getRawIndex(dataIndex),\n localX: this.shape.x / width,\n localY: this.shape.y / height\n });\n };\n\n el.ondragend = function () {\n sankeyView._focusAdjacencyDisabled = false;\n };\n\n el.draggable = true;\n el.cursor = 'move';\n }\n });\n\n if (!this._data && seriesModel.isAnimationEnabled()) {\n group.setClipPath(createGridClipShape(group.getBoundingRect(), seriesModel, function () {\n group.removeClipPath();\n }));\n }\n\n this._data = seriesModel.getData();\n };\n\n SankeyView.prototype.dispose = function () {};\n\n SankeyView.type = 'sankey';\n return SankeyView;\n}(ChartView); // Add animation to the view\n\n\nfunction createGridClipShape(rect, seriesModel, cb) {\n var rectEl = new graphic.Rect({\n shape: {\n x: rect.x - 10,\n y: rect.y - 10,\n width: 0,\n height: rect.height + 20\n }\n });\n graphic.initProps(rectEl, {\n shape: {\n width: rect.width + 20\n }\n }, seriesModel, cb);\n return rectEl;\n}\n\nexport default SankeyView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport SankeyView from './SankeyView.js';\nimport SankeySeriesModel from './SankeySeries.js';\nimport sankeyLayout from './sankeyLayout.js';\nimport sankeyVisual from './sankeyVisual.js';\nexport function install(registers) {\n registers.registerChartView(SankeyView);\n registers.registerSeriesModel(SankeySeriesModel);\n registers.registerLayout(sankeyLayout);\n registers.registerVisual(sankeyVisual);\n registers.registerAction({\n type: 'dragNode',\n event: 'dragnode',\n // here can only use 'update' now, other value is not support in echarts.\n update: 'update'\n }, function (payload, ecModel) {\n ecModel.eachComponent({\n mainType: 'series',\n subType: 'sankey',\n query: payload\n }, function (seriesModel) {\n seriesModel.setNodePosition(payload.dataIndex, [payload.localX, payload.localY]);\n });\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as layout from '../../util/layout.js';\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { groupData } from '../../util/model.js';\nexport default function sankeyLayout(ecModel, api) {\n ecModel.eachSeriesByType('sankey', function (seriesModel) {\n var nodeWidth = seriesModel.get('nodeWidth');\n var nodeGap = seriesModel.get('nodeGap');\n var layoutInfo = getViewRect(seriesModel, api);\n seriesModel.layoutInfo = layoutInfo;\n var width = layoutInfo.width;\n var height = layoutInfo.height;\n var graph = seriesModel.getGraph();\n var nodes = graph.nodes;\n var edges = graph.edges;\n computeNodeValues(nodes);\n var filteredNodes = zrUtil.filter(nodes, function (node) {\n return node.getLayout().value === 0;\n });\n var iterations = filteredNodes.length !== 0 ? 0 : seriesModel.get('layoutIterations');\n var orient = seriesModel.get('orient');\n var nodeAlign = seriesModel.get('nodeAlign');\n layoutSankey(nodes, edges, nodeWidth, nodeGap, width, height, iterations, orient, nodeAlign);\n });\n}\n/**\n * Get the layout position of the whole view\n */\n\nfunction getViewRect(seriesModel, api) {\n return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n width: api.getWidth(),\n height: api.getHeight()\n });\n}\n\nfunction layoutSankey(nodes, edges, nodeWidth, nodeGap, width, height, iterations, orient, nodeAlign) {\n computeNodeBreadths(nodes, edges, nodeWidth, width, height, orient, nodeAlign);\n computeNodeDepths(nodes, edges, height, width, nodeGap, iterations, orient);\n computeEdgeDepths(nodes, orient);\n}\n/**\n * Compute the value of each node by summing the associated edge's value\n */\n\n\nfunction computeNodeValues(nodes) {\n zrUtil.each(nodes, function (node) {\n var value1 = sum(node.outEdges, getEdgeValue);\n var value2 = sum(node.inEdges, getEdgeValue);\n var nodeRawValue = node.getValue() || 0;\n var value = Math.max(value1, value2, nodeRawValue);\n node.setLayout({\n value: value\n }, true);\n });\n}\n/**\n * Compute the x-position for each node.\n *\n * Here we use Kahn algorithm to detect cycle when we traverse\n * the node to computer the initial x position.\n */\n\n\nfunction computeNodeBreadths(nodes, edges, nodeWidth, width, height, orient, nodeAlign) {\n // Used to mark whether the edge is deleted. if it is deleted,\n // the value is 0, otherwise it is 1.\n var remainEdges = []; // Storage each node's indegree.\n\n var indegreeArr = []; // Used to storage the node with indegree is equal to 0.\n\n var zeroIndegrees = [];\n var nextTargetNode = [];\n var x = 0; // let kx = 0;\n\n for (var i = 0; i < edges.length; i++) {\n remainEdges[i] = 1;\n }\n\n for (var i = 0; i < nodes.length; i++) {\n indegreeArr[i] = nodes[i].inEdges.length;\n\n if (indegreeArr[i] === 0) {\n zeroIndegrees.push(nodes[i]);\n }\n }\n\n var maxNodeDepth = -1; // Traversing nodes using topological sorting to calculate the\n // horizontal(if orient === 'horizontal') or vertical(if orient === 'vertical')\n // position of the nodes.\n\n while (zeroIndegrees.length) {\n for (var idx = 0; idx < zeroIndegrees.length; idx++) {\n var node = zeroIndegrees[idx];\n var item = node.hostGraph.data.getRawDataItem(node.dataIndex);\n var isItemDepth = item.depth != null && item.depth >= 0;\n\n if (isItemDepth && item.depth > maxNodeDepth) {\n maxNodeDepth = item.depth;\n }\n\n node.setLayout({\n depth: isItemDepth ? item.depth : x\n }, true);\n orient === 'vertical' ? node.setLayout({\n dy: nodeWidth\n }, true) : node.setLayout({\n dx: nodeWidth\n }, true);\n\n for (var edgeIdx = 0; edgeIdx < node.outEdges.length; edgeIdx++) {\n var edge = node.outEdges[edgeIdx];\n var indexEdge = edges.indexOf(edge);\n remainEdges[indexEdge] = 0;\n var targetNode = edge.node2;\n var nodeIndex = nodes.indexOf(targetNode);\n\n if (--indegreeArr[nodeIndex] === 0 && nextTargetNode.indexOf(targetNode) < 0) {\n nextTargetNode.push(targetNode);\n }\n }\n }\n\n ++x;\n zeroIndegrees = nextTargetNode;\n nextTargetNode = [];\n }\n\n for (var i = 0; i < remainEdges.length; i++) {\n if (remainEdges[i] === 1) {\n throw new Error('Sankey is a DAG, the original data has cycle!');\n }\n }\n\n var maxDepth = maxNodeDepth > x - 1 ? maxNodeDepth : x - 1;\n\n if (nodeAlign && nodeAlign !== 'left') {\n adjustNodeWithNodeAlign(nodes, nodeAlign, orient, maxDepth);\n }\n\n var kx = orient === 'vertical' ? (height - nodeWidth) / maxDepth : (width - nodeWidth) / maxDepth;\n scaleNodeBreadths(nodes, kx, orient);\n}\n\nfunction isNodeDepth(node) {\n var item = node.hostGraph.data.getRawDataItem(node.dataIndex);\n return item.depth != null && item.depth >= 0;\n}\n\nfunction adjustNodeWithNodeAlign(nodes, nodeAlign, orient, maxDepth) {\n if (nodeAlign === 'right') {\n var nextSourceNode = [];\n var remainNodes = nodes;\n var nodeHeight = 0;\n\n while (remainNodes.length) {\n for (var i = 0; i < remainNodes.length; i++) {\n var node = remainNodes[i];\n node.setLayout({\n skNodeHeight: nodeHeight\n }, true);\n\n for (var j = 0; j < node.inEdges.length; j++) {\n var edge = node.inEdges[j];\n\n if (nextSourceNode.indexOf(edge.node1) < 0) {\n nextSourceNode.push(edge.node1);\n }\n }\n }\n\n remainNodes = nextSourceNode;\n nextSourceNode = [];\n ++nodeHeight;\n }\n\n zrUtil.each(nodes, function (node) {\n if (!isNodeDepth(node)) {\n node.setLayout({\n depth: Math.max(0, maxDepth - node.getLayout().skNodeHeight)\n }, true);\n }\n });\n } else if (nodeAlign === 'justify') {\n moveSinksRight(nodes, maxDepth);\n }\n}\n/**\n * All the node without outEgdes are assigned maximum x-position and\n * be aligned in the last column.\n *\n * @param nodes. node of sankey view.\n * @param maxDepth. use to assign to node without outEdges as x-position.\n */\n\n\nfunction moveSinksRight(nodes, maxDepth) {\n zrUtil.each(nodes, function (node) {\n if (!isNodeDepth(node) && !node.outEdges.length) {\n node.setLayout({\n depth: maxDepth\n }, true);\n }\n });\n}\n/**\n * Scale node x-position to the width\n *\n * @param nodes node of sankey view\n * @param kx multiple used to scale nodes\n */\n\n\nfunction scaleNodeBreadths(nodes, kx, orient) {\n zrUtil.each(nodes, function (node) {\n var nodeDepth = node.getLayout().depth * kx;\n orient === 'vertical' ? node.setLayout({\n y: nodeDepth\n }, true) : node.setLayout({\n x: nodeDepth\n }, true);\n });\n}\n/**\n * Using Gauss-Seidel iterations method to compute the node depth(y-position)\n *\n * @param nodes node of sankey view\n * @param edges edge of sankey view\n * @param height the whole height of the area to draw the view\n * @param nodeGap the vertical distance between two nodes\n * in the same column.\n * @param iterations the number of iterations for the algorithm\n */\n\n\nfunction computeNodeDepths(nodes, edges, height, width, nodeGap, iterations, orient) {\n var nodesByBreadth = prepareNodesByBreadth(nodes, orient);\n initializeNodeDepth(nodesByBreadth, edges, height, width, nodeGap, orient);\n resolveCollisions(nodesByBreadth, nodeGap, height, width, orient);\n\n for (var alpha = 1; iterations > 0; iterations--) {\n // 0.99 is a experience parameter, ensure that each iterations of\n // changes as small as possible.\n alpha *= 0.99;\n relaxRightToLeft(nodesByBreadth, alpha, orient);\n resolveCollisions(nodesByBreadth, nodeGap, height, width, orient);\n relaxLeftToRight(nodesByBreadth, alpha, orient);\n resolveCollisions(nodesByBreadth, nodeGap, height, width, orient);\n }\n}\n\nfunction prepareNodesByBreadth(nodes, orient) {\n var nodesByBreadth = [];\n var keyAttr = orient === 'vertical' ? 'y' : 'x';\n var groupResult = groupData(nodes, function (node) {\n return node.getLayout()[keyAttr];\n });\n groupResult.keys.sort(function (a, b) {\n return a - b;\n });\n zrUtil.each(groupResult.keys, function (key) {\n nodesByBreadth.push(groupResult.buckets.get(key));\n });\n return nodesByBreadth;\n}\n/**\n * Compute the original y-position for each node\n */\n\n\nfunction initializeNodeDepth(nodesByBreadth, edges, height, width, nodeGap, orient) {\n var minKy = Infinity;\n zrUtil.each(nodesByBreadth, function (nodes) {\n var n = nodes.length;\n var sum = 0;\n zrUtil.each(nodes, function (node) {\n sum += node.getLayout().value;\n });\n var ky = orient === 'vertical' ? (width - (n - 1) * nodeGap) / sum : (height - (n - 1) * nodeGap) / sum;\n\n if (ky < minKy) {\n minKy = ky;\n }\n });\n zrUtil.each(nodesByBreadth, function (nodes) {\n zrUtil.each(nodes, function (node, i) {\n var nodeDy = node.getLayout().value * minKy;\n\n if (orient === 'vertical') {\n node.setLayout({\n x: i\n }, true);\n node.setLayout({\n dx: nodeDy\n }, true);\n } else {\n node.setLayout({\n y: i\n }, true);\n node.setLayout({\n dy: nodeDy\n }, true);\n }\n });\n });\n zrUtil.each(edges, function (edge) {\n var edgeDy = +edge.getValue() * minKy;\n edge.setLayout({\n dy: edgeDy\n }, true);\n });\n}\n/**\n * Resolve the collision of initialized depth (y-position)\n */\n\n\nfunction resolveCollisions(nodesByBreadth, nodeGap, height, width, orient) {\n var keyAttr = orient === 'vertical' ? 'x' : 'y';\n zrUtil.each(nodesByBreadth, function (nodes) {\n nodes.sort(function (a, b) {\n return a.getLayout()[keyAttr] - b.getLayout()[keyAttr];\n });\n var nodeX;\n var node;\n var dy;\n var y0 = 0;\n var n = nodes.length;\n var nodeDyAttr = orient === 'vertical' ? 'dx' : 'dy';\n\n for (var i = 0; i < n; i++) {\n node = nodes[i];\n dy = y0 - node.getLayout()[keyAttr];\n\n if (dy > 0) {\n nodeX = node.getLayout()[keyAttr] + dy;\n orient === 'vertical' ? node.setLayout({\n x: nodeX\n }, true) : node.setLayout({\n y: nodeX\n }, true);\n }\n\n y0 = node.getLayout()[keyAttr] + node.getLayout()[nodeDyAttr] + nodeGap;\n }\n\n var viewWidth = orient === 'vertical' ? width : height; // If the bottommost node goes outside the bounds, push it back up\n\n dy = y0 - nodeGap - viewWidth;\n\n if (dy > 0) {\n nodeX = node.getLayout()[keyAttr] - dy;\n orient === 'vertical' ? node.setLayout({\n x: nodeX\n }, true) : node.setLayout({\n y: nodeX\n }, true);\n y0 = nodeX;\n\n for (var i = n - 2; i >= 0; --i) {\n node = nodes[i];\n dy = node.getLayout()[keyAttr] + node.getLayout()[nodeDyAttr] + nodeGap - y0;\n\n if (dy > 0) {\n nodeX = node.getLayout()[keyAttr] - dy;\n orient === 'vertical' ? node.setLayout({\n x: nodeX\n }, true) : node.setLayout({\n y: nodeX\n }, true);\n }\n\n y0 = node.getLayout()[keyAttr];\n }\n }\n });\n}\n/**\n * Change the y-position of the nodes, except most the right side nodes\n * @param nodesByBreadth\n * @param alpha parameter used to adjust the nodes y-position\n */\n\n\nfunction relaxRightToLeft(nodesByBreadth, alpha, orient) {\n zrUtil.each(nodesByBreadth.slice().reverse(), function (nodes) {\n zrUtil.each(nodes, function (node) {\n if (node.outEdges.length) {\n var y = sum(node.outEdges, weightedTarget, orient) / sum(node.outEdges, getEdgeValue);\n\n if (isNaN(y)) {\n var len = node.outEdges.length;\n y = len ? sum(node.outEdges, centerTarget, orient) / len : 0;\n }\n\n if (orient === 'vertical') {\n var nodeX = node.getLayout().x + (y - center(node, orient)) * alpha;\n node.setLayout({\n x: nodeX\n }, true);\n } else {\n var nodeY = node.getLayout().y + (y - center(node, orient)) * alpha;\n node.setLayout({\n y: nodeY\n }, true);\n }\n }\n });\n });\n}\n\nfunction weightedTarget(edge, orient) {\n return center(edge.node2, orient) * edge.getValue();\n}\n\nfunction centerTarget(edge, orient) {\n return center(edge.node2, orient);\n}\n\nfunction weightedSource(edge, orient) {\n return center(edge.node1, orient) * edge.getValue();\n}\n\nfunction centerSource(edge, orient) {\n return center(edge.node1, orient);\n}\n\nfunction center(node, orient) {\n return orient === 'vertical' ? node.getLayout().x + node.getLayout().dx / 2 : node.getLayout().y + node.getLayout().dy / 2;\n}\n\nfunction getEdgeValue(edge) {\n return edge.getValue();\n}\n\nfunction sum(array, cb, orient) {\n var sum = 0;\n var len = array.length;\n var i = -1;\n\n while (++i < len) {\n var value = +cb(array[i], orient);\n\n if (!isNaN(value)) {\n sum += value;\n }\n }\n\n return sum;\n}\n/**\n * Change the y-position of the nodes, except most the left side nodes\n */\n\n\nfunction relaxLeftToRight(nodesByBreadth, alpha, orient) {\n zrUtil.each(nodesByBreadth, function (nodes) {\n zrUtil.each(nodes, function (node) {\n if (node.inEdges.length) {\n var y = sum(node.inEdges, weightedSource, orient) / sum(node.inEdges, getEdgeValue);\n\n if (isNaN(y)) {\n var len = node.inEdges.length;\n y = len ? sum(node.inEdges, centerSource, orient) / len : 0;\n }\n\n if (orient === 'vertical') {\n var nodeX = node.getLayout().x + (y - center(node, orient)) * alpha;\n node.setLayout({\n x: nodeX\n }, true);\n } else {\n var nodeY = node.getLayout().y + (y - center(node, orient)) * alpha;\n node.setLayout({\n y: nodeY\n }, true);\n }\n }\n });\n });\n}\n/**\n * Compute the depth(y-position) of each edge\n */\n\n\nfunction computeEdgeDepths(nodes, orient) {\n var keyAttr = orient === 'vertical' ? 'x' : 'y';\n zrUtil.each(nodes, function (node) {\n node.outEdges.sort(function (a, b) {\n return a.node2.getLayout()[keyAttr] - b.node2.getLayout()[keyAttr];\n });\n node.inEdges.sort(function (a, b) {\n return a.node1.getLayout()[keyAttr] - b.node1.getLayout()[keyAttr];\n });\n });\n zrUtil.each(nodes, function (node) {\n var sy = 0;\n var ty = 0;\n zrUtil.each(node.outEdges, function (edge) {\n edge.setLayout({\n sy: sy\n }, true);\n sy += edge.getLayout().dy;\n });\n zrUtil.each(node.inEdges, function (edge) {\n edge.setLayout({\n ty: ty\n }, true);\n ty += edge.getLayout().dy;\n });\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport VisualMapping from '../../visual/VisualMapping.js';\nexport default function sankeyVisual(ecModel) {\n ecModel.eachSeriesByType('sankey', function (seriesModel) {\n var graph = seriesModel.getGraph();\n var nodes = graph.nodes;\n var edges = graph.edges;\n\n if (nodes.length) {\n var minValue_1 = Infinity;\n var maxValue_1 = -Infinity;\n zrUtil.each(nodes, function (node) {\n var nodeValue = node.getLayout().value;\n\n if (nodeValue < minValue_1) {\n minValue_1 = nodeValue;\n }\n\n if (nodeValue > maxValue_1) {\n maxValue_1 = nodeValue;\n }\n });\n zrUtil.each(nodes, function (node) {\n var mapping = new VisualMapping({\n type: 'color',\n mappingMethod: 'linear',\n dataExtent: [minValue_1, maxValue_1],\n visual: seriesModel.get('color')\n });\n var mapValueToColor = mapping.mapValueToVisual(node.getLayout().value);\n var customColor = node.getModel().get(['itemStyle', 'color']);\n\n if (customColor != null) {\n node.setVisual('color', customColor);\n node.setVisual('style', {\n fill: customColor\n });\n } else {\n node.setVisual('color', mapValueToColor);\n node.setVisual('style', {\n fill: mapValueToColor\n });\n }\n });\n }\n\n if (edges.length) {\n zrUtil.each(edges, function (edge) {\n var edgeStyle = edge.getModel().get('lineStyle');\n edge.setVisual('style', edgeStyle);\n });\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport createSeriesData from '../helper/createSeriesData.js';\nimport SeriesModel from '../../model/Series.js';\n\nvar ScatterSeriesModel =\n/** @class */\nfunction (_super) {\n __extends(ScatterSeriesModel, _super);\n\n function ScatterSeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = ScatterSeriesModel.type;\n _this.hasSymbolVisual = true;\n return _this;\n }\n\n ScatterSeriesModel.prototype.getInitialData = function (option, ecModel) {\n return createSeriesData(null, this, {\n useEncodeDefaulter: true\n });\n };\n\n ScatterSeriesModel.prototype.getProgressive = function () {\n var progressive = this.option.progressive;\n\n if (progressive == null) {\n // PENDING\n return this.option.large ? 5e3 : this.get('progressive');\n }\n\n return progressive;\n };\n\n ScatterSeriesModel.prototype.getProgressiveThreshold = function () {\n var progressiveThreshold = this.option.progressiveThreshold;\n\n if (progressiveThreshold == null) {\n // PENDING\n return this.option.large ? 1e4 : this.get('progressiveThreshold');\n }\n\n return progressiveThreshold;\n };\n\n ScatterSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\n return selectors.point(data.getItemLayout(dataIndex));\n };\n\n ScatterSeriesModel.prototype.getZLevelKey = function () {\n // Each progressive series has individual key.\n return this.getData().count() > this.getProgressiveThreshold() ? this.id : '';\n };\n\n ScatterSeriesModel.type = 'series.scatter';\n ScatterSeriesModel.dependencies = ['grid', 'polar', 'geo', 'singleAxis', 'calendar'];\n ScatterSeriesModel.defaultOption = {\n coordinateSystem: 'cartesian2d',\n // zlevel: 0,\n z: 2,\n legendHoverLink: true,\n symbolSize: 10,\n // symbolRotate: null, // 图形旋转控制\n large: false,\n // Available when large is true\n largeThreshold: 2000,\n // cursor: null,\n itemStyle: {\n opacity: 0.8 // color: 各异\n\n },\n emphasis: {\n scale: true\n },\n // If clip the overflow graphics\n // Works on cartesian / polar series\n clip: true,\n select: {\n itemStyle: {\n borderColor: '#212121'\n }\n },\n universalTransition: {\n divideShape: 'clone'\n } // progressive: null\n\n };\n return ScatterSeriesModel;\n}(SeriesModel);\n\nexport default ScatterSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport SymbolDraw from '../helper/SymbolDraw.js';\nimport LargeSymbolDraw from '../helper/LargeSymbolDraw.js';\nimport pointsLayout from '../../layout/points.js';\nimport ChartView from '../../view/Chart.js';\n\nvar ScatterView =\n/** @class */\nfunction (_super) {\n __extends(ScatterView, _super);\n\n function ScatterView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = ScatterView.type;\n return _this;\n }\n\n ScatterView.prototype.render = function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n\n var symbolDraw = this._updateSymbolDraw(data, seriesModel);\n\n symbolDraw.updateData(data, {\n // TODO\n // If this parameter should be a shape or a bounding volume\n // shape will be more general.\n // But bounding volume like bounding rect will be much faster in the contain calculation\n clipShape: this._getClipShape(seriesModel)\n });\n this._finished = true;\n };\n\n ScatterView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n\n var symbolDraw = this._updateSymbolDraw(data, seriesModel);\n\n symbolDraw.incrementalPrepareUpdate(data);\n this._finished = false;\n };\n\n ScatterView.prototype.incrementalRender = function (taskParams, seriesModel, ecModel) {\n this._symbolDraw.incrementalUpdate(taskParams, seriesModel.getData(), {\n clipShape: this._getClipShape(seriesModel)\n });\n\n this._finished = taskParams.end === seriesModel.getData().count();\n };\n\n ScatterView.prototype.updateTransform = function (seriesModel, ecModel, api) {\n var data = seriesModel.getData(); // Must mark group dirty and make sure the incremental layer will be cleared\n // PENDING\n\n this.group.dirty();\n\n if (!this._finished || data.count() > 1e4) {\n return {\n update: true\n };\n } else {\n var res = pointsLayout('').reset(seriesModel, ecModel, api);\n\n if (res.progress) {\n res.progress({\n start: 0,\n end: data.count(),\n count: data.count()\n }, data);\n }\n\n this._symbolDraw.updateLayout(data);\n }\n };\n\n ScatterView.prototype.eachRendered = function (cb) {\n this._symbolDraw && this._symbolDraw.eachRendered(cb);\n };\n\n ScatterView.prototype._getClipShape = function (seriesModel) {\n var coordSys = seriesModel.coordinateSystem;\n var clipArea = coordSys && coordSys.getArea && coordSys.getArea();\n return seriesModel.get('clip', true) ? clipArea : null;\n };\n\n ScatterView.prototype._updateSymbolDraw = function (data, seriesModel) {\n var symbolDraw = this._symbolDraw;\n var pipelineContext = seriesModel.pipelineContext;\n var isLargeDraw = pipelineContext.large;\n\n if (!symbolDraw || isLargeDraw !== this._isLargeDraw) {\n symbolDraw && symbolDraw.remove();\n symbolDraw = this._symbolDraw = isLargeDraw ? new LargeSymbolDraw() : new SymbolDraw();\n this._isLargeDraw = isLargeDraw;\n this.group.removeAll();\n }\n\n this.group.add(symbolDraw.group);\n return symbolDraw;\n };\n\n ScatterView.prototype.remove = function (ecModel, api) {\n this._symbolDraw && this._symbolDraw.remove(true);\n this._symbolDraw = null;\n };\n\n ScatterView.prototype.dispose = function () {};\n\n ScatterView.type = 'scatter';\n return ScatterView;\n}(ChartView);\n\nexport default ScatterView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { use } from '../../extension.js';\nimport ScatterSeriesModel from './ScatterSeries.js';\nimport ScatterView from './ScatterView.js';\nimport { install as installGridSimple } from '../../component/grid/installSimple.js';\nimport layoutPoints from '../../layout/points.js';\nexport function install(registers) {\n // In case developer forget to include grid component\n use(installGridSimple);\n registers.registerSeriesModel(ScatterSeriesModel);\n registers.registerChartView(ScatterView);\n registers.registerLayout(layoutPoints('scatter'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as graphic from '../../util/graphic.js';\nimport { toggleHoverEmphasis, SPECIAL_STATES, DISPLAY_STATES } from '../../util/states.js';\nimport { createTextStyle } from '../../label/labelStyle.js';\nimport { getECData } from '../../util/innerStore.js';\nimport { getSectorCornerRadius } from '../helper/sectorHelper.js';\nimport { createOrUpdatePatternFromDecal } from '../../util/decal.js';\nimport { saveOldStyle } from '../../animation/basicTransition.js';\nimport { normalizeRadian } from 'zrender/lib/contain/util.js';\nvar DEFAULT_SECTOR_Z = 2;\nvar DEFAULT_TEXT_Z = 4;\n/**\n * Sunburstce of Sunburst including Sector, Label, LabelLine\n */\n\nvar SunburstPiece =\n/** @class */\nfunction (_super) {\n __extends(SunburstPiece, _super);\n\n function SunburstPiece(node, seriesModel, ecModel, api) {\n var _this = _super.call(this) || this;\n\n _this.z2 = DEFAULT_SECTOR_Z;\n _this.textConfig = {\n inside: true\n };\n getECData(_this).seriesIndex = seriesModel.seriesIndex;\n var text = new graphic.Text({\n z2: DEFAULT_TEXT_Z,\n silent: node.getModel().get(['label', 'silent'])\n });\n\n _this.setTextContent(text);\n\n _this.updateData(true, node, seriesModel, ecModel, api);\n\n return _this;\n }\n\n SunburstPiece.prototype.updateData = function (firstCreate, node, // state: 'emphasis' | 'normal' | 'highlight' | 'downplay',\n seriesModel, ecModel, api) {\n this.node = node;\n node.piece = this;\n seriesModel = seriesModel || this._seriesModel;\n ecModel = ecModel || this._ecModel;\n var sector = this;\n getECData(sector).dataIndex = node.dataIndex;\n var itemModel = node.getModel();\n var emphasisModel = itemModel.getModel('emphasis');\n var layout = node.getLayout();\n var sectorShape = zrUtil.extend({}, layout);\n sectorShape.label = null;\n var normalStyle = node.getVisual('style');\n normalStyle.lineJoin = 'bevel';\n var decal = node.getVisual('decal');\n\n if (decal) {\n normalStyle.decal = createOrUpdatePatternFromDecal(decal, api);\n }\n\n var cornerRadius = getSectorCornerRadius(itemModel.getModel('itemStyle'), sectorShape, true);\n zrUtil.extend(sectorShape, cornerRadius);\n zrUtil.each(SPECIAL_STATES, function (stateName) {\n var state = sector.ensureState(stateName);\n var itemStyleModel = itemModel.getModel([stateName, 'itemStyle']);\n state.style = itemStyleModel.getItemStyle(); // border radius\n\n var cornerRadius = getSectorCornerRadius(itemStyleModel, sectorShape);\n\n if (cornerRadius) {\n state.shape = cornerRadius;\n }\n });\n\n if (firstCreate) {\n sector.setShape(sectorShape);\n sector.shape.r = layout.r0;\n graphic.initProps(sector, {\n shape: {\n r: layout.r\n }\n }, seriesModel, node.dataIndex);\n } else {\n // Disable animation for gradient since no interpolation method\n // is supported for gradient\n graphic.updateProps(sector, {\n shape: sectorShape\n }, seriesModel);\n saveOldStyle(sector);\n }\n\n sector.useStyle(normalStyle);\n\n this._updateLabel(seriesModel);\n\n var cursorStyle = itemModel.getShallow('cursor');\n cursorStyle && sector.attr('cursor', cursorStyle);\n this._seriesModel = seriesModel || this._seriesModel;\n this._ecModel = ecModel || this._ecModel;\n var focus = emphasisModel.get('focus');\n var focusOrIndices = focus === 'ancestor' ? node.getAncestorsIndices() : focus === 'descendant' ? node.getDescendantIndices() : focus;\n toggleHoverEmphasis(this, focusOrIndices, emphasisModel.get('blurScope'), emphasisModel.get('disabled'));\n };\n\n SunburstPiece.prototype._updateLabel = function (seriesModel) {\n var _this = this;\n\n var itemModel = this.node.getModel();\n var normalLabelModel = itemModel.getModel('label');\n var layout = this.node.getLayout();\n var angle = layout.endAngle - layout.startAngle;\n var midAngle = (layout.startAngle + layout.endAngle) / 2;\n var dx = Math.cos(midAngle);\n var dy = Math.sin(midAngle);\n var sector = this;\n var label = sector.getTextContent();\n var dataIndex = this.node.dataIndex;\n var labelMinAngle = normalLabelModel.get('minAngle') / 180 * Math.PI;\n var isNormalShown = normalLabelModel.get('show') && !(labelMinAngle != null && Math.abs(angle) < labelMinAngle);\n label.ignore = !isNormalShown; // TODO use setLabelStyle\n\n zrUtil.each(DISPLAY_STATES, function (stateName) {\n var labelStateModel = stateName === 'normal' ? itemModel.getModel('label') : itemModel.getModel([stateName, 'label']);\n var isNormal = stateName === 'normal';\n var state = isNormal ? label : label.ensureState(stateName);\n var text = seriesModel.getFormattedLabel(dataIndex, stateName);\n\n if (isNormal) {\n text = text || _this.node.name;\n }\n\n state.style = createTextStyle(labelStateModel, {}, null, stateName !== 'normal', true);\n\n if (text) {\n state.style.text = text;\n } // Not displaying text when angle is too small\n\n\n var isShown = labelStateModel.get('show');\n\n if (isShown != null && !isNormal) {\n state.ignore = !isShown;\n }\n\n var labelPosition = getLabelAttr(labelStateModel, 'position');\n var sectorState = isNormal ? sector : sector.states[stateName];\n var labelColor = sectorState.style.fill;\n sectorState.textConfig = {\n outsideFill: labelStateModel.get('color') === 'inherit' ? labelColor : null,\n inside: labelPosition !== 'outside'\n };\n var r;\n var labelPadding = getLabelAttr(labelStateModel, 'distance') || 0;\n var textAlign = getLabelAttr(labelStateModel, 'align');\n\n if (labelPosition === 'outside') {\n r = layout.r + labelPadding;\n textAlign = midAngle > Math.PI / 2 ? 'right' : 'left';\n } else {\n if (!textAlign || textAlign === 'center') {\n // Put label in the center if it's a circle\n if (angle === 2 * Math.PI && layout.r0 === 0) {\n r = 0;\n } else {\n r = (layout.r + layout.r0) / 2;\n }\n\n textAlign = 'center';\n } else if (textAlign === 'left') {\n r = layout.r0 + labelPadding;\n\n if (midAngle > Math.PI / 2) {\n textAlign = 'right';\n }\n } else if (textAlign === 'right') {\n r = layout.r - labelPadding;\n\n if (midAngle > Math.PI / 2) {\n textAlign = 'left';\n }\n }\n }\n\n state.style.align = textAlign;\n state.style.verticalAlign = getLabelAttr(labelStateModel, 'verticalAlign') || 'middle';\n state.x = r * dx + layout.cx;\n state.y = r * dy + layout.cy;\n var rotateType = getLabelAttr(labelStateModel, 'rotate');\n var rotate = 0;\n\n if (rotateType === 'radial') {\n rotate = normalizeRadian(-midAngle);\n\n if (rotate > Math.PI / 2 && rotate < Math.PI * 1.5) {\n rotate += Math.PI;\n }\n } else if (rotateType === 'tangential') {\n rotate = Math.PI / 2 - midAngle;\n\n if (rotate > Math.PI / 2) {\n rotate -= Math.PI;\n } else if (rotate < -Math.PI / 2) {\n rotate += Math.PI;\n }\n } else if (zrUtil.isNumber(rotateType)) {\n rotate = rotateType * Math.PI / 180;\n }\n\n state.rotation = rotate;\n });\n\n function getLabelAttr(model, name) {\n var stateAttr = model.get(name);\n\n if (stateAttr == null) {\n return normalLabelModel.get(name);\n }\n\n return stateAttr;\n }\n\n label.dirtyStyle();\n };\n\n return SunburstPiece;\n}(graphic.Sector);\n\nexport default SunburstPiece;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport SeriesModel from '../../model/Series.js';\nimport Tree from '../../data/Tree.js';\nimport { wrapTreePathInfo } from '../helper/treeHelper.js';\nimport Model from '../../model/Model.js';\nimport enableAriaDecalForTree from '../helper/enableAriaDecalForTree.js';\n\nvar SunburstSeriesModel =\n/** @class */\nfunction (_super) {\n __extends(SunburstSeriesModel, _super);\n\n function SunburstSeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = SunburstSeriesModel.type;\n _this.ignoreStyleOnData = true;\n return _this;\n }\n\n SunburstSeriesModel.prototype.getInitialData = function (option, ecModel) {\n // Create a virtual root.\n var root = {\n name: option.name,\n children: option.data\n };\n completeTreeValue(root);\n var levelModels = this._levelModels = zrUtil.map(option.levels || [], function (levelDefine) {\n return new Model(levelDefine, this, ecModel);\n }, this); // Make sure always a new tree is created when setOption,\n // in TreemapView, we check whether oldTree === newTree\n // to choose mappings approach among old shapes and new shapes.\n\n var tree = Tree.createTree(root, this, beforeLink);\n\n function beforeLink(nodeData) {\n nodeData.wrapMethod('getItemModel', function (model, idx) {\n var node = tree.getNodeByDataIndex(idx);\n var levelModel = levelModels[node.depth];\n levelModel && (model.parentModel = levelModel);\n return model;\n });\n }\n\n return tree.data;\n };\n\n SunburstSeriesModel.prototype.optionUpdated = function () {\n this.resetViewRoot();\n };\n /*\n * @override\n */\n\n\n SunburstSeriesModel.prototype.getDataParams = function (dataIndex) {\n var params = _super.prototype.getDataParams.apply(this, arguments);\n\n var node = this.getData().tree.getNodeByDataIndex(dataIndex);\n params.treePathInfo = wrapTreePathInfo(node, this);\n return params;\n };\n\n SunburstSeriesModel.prototype.getLevelModel = function (node) {\n return this._levelModels && this._levelModels[node.depth];\n };\n\n SunburstSeriesModel.prototype.getViewRoot = function () {\n return this._viewRoot;\n };\n\n SunburstSeriesModel.prototype.resetViewRoot = function (viewRoot) {\n viewRoot ? this._viewRoot = viewRoot : viewRoot = this._viewRoot;\n var root = this.getRawData().tree.root;\n\n if (!viewRoot || viewRoot !== root && !root.contains(viewRoot)) {\n this._viewRoot = root;\n }\n };\n\n SunburstSeriesModel.prototype.enableAriaDecal = function () {\n enableAriaDecalForTree(this);\n };\n\n SunburstSeriesModel.type = 'series.sunburst';\n SunburstSeriesModel.defaultOption = {\n // zlevel: 0,\n z: 2,\n // 默认全局居中\n center: ['50%', '50%'],\n radius: [0, '75%'],\n // 默认顺时针\n clockwise: true,\n startAngle: 90,\n // 最小角度改为0\n minAngle: 0,\n // If still show when all data zero.\n stillShowZeroSum: true,\n // 'rootToNode', 'link', or false\n nodeClick: 'rootToNode',\n renderLabelForZeroData: false,\n label: {\n // could be: 'radial', 'tangential', or 'none'\n rotate: 'radial',\n show: true,\n opacity: 1,\n // 'left' is for inner side of inside, and 'right' is for outer\n // side for inside\n align: 'center',\n position: 'inside',\n distance: 5,\n silent: true\n },\n itemStyle: {\n borderWidth: 1,\n borderColor: 'white',\n borderType: 'solid',\n shadowBlur: 0,\n shadowColor: 'rgba(0, 0, 0, 0.2)',\n shadowOffsetX: 0,\n shadowOffsetY: 0,\n opacity: 1\n },\n emphasis: {\n focus: 'descendant'\n },\n blur: {\n itemStyle: {\n opacity: 0.2\n },\n label: {\n opacity: 0.1\n }\n },\n // Animation type can be expansion, scale.\n animationType: 'expansion',\n animationDuration: 1000,\n animationDurationUpdate: 500,\n data: [],\n\n /**\n * Sort order.\n *\n * Valid values: 'desc', 'asc', null, or callback function.\n * 'desc' and 'asc' for descend and ascendant order;\n * null for not sorting;\n * example of callback function:\n * function(nodeA, nodeB) {\n * return nodeA.getValue() - nodeB.getValue();\n * }\n */\n sort: 'desc'\n };\n return SunburstSeriesModel;\n}(SeriesModel);\n\nfunction completeTreeValue(dataNode) {\n // Postorder travel tree.\n // If value of none-leaf node is not set,\n // calculate it by suming up the value of all children.\n var sum = 0;\n zrUtil.each(dataNode.children, function (child) {\n completeTreeValue(child);\n var childValue = child.value; // TODO First value of array must be a number\n\n zrUtil.isArray(childValue) && (childValue = childValue[0]);\n sum += childValue;\n });\n var thisValue = dataNode.value;\n\n if (zrUtil.isArray(thisValue)) {\n thisValue = thisValue[0];\n }\n\n if (thisValue == null || isNaN(thisValue)) {\n thisValue = sum;\n } // Value should not less than 0.\n\n\n if (thisValue < 0) {\n thisValue = 0;\n }\n\n zrUtil.isArray(dataNode.value) ? dataNode.value[0] = thisValue : dataNode.value = thisValue;\n}\n\nexport default SunburstSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport ChartView from '../../view/Chart.js';\nimport SunburstPiece from './SunburstPiece.js';\nimport DataDiffer from '../../data/DataDiffer.js';\nimport { ROOT_TO_NODE_ACTION } from './sunburstAction.js';\nimport { windowOpen } from '../../util/format.js';\n\nvar SunburstView =\n/** @class */\nfunction (_super) {\n __extends(SunburstView, _super);\n\n function SunburstView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = SunburstView.type;\n return _this;\n }\n\n SunburstView.prototype.render = function (seriesModel, ecModel, api, // @ts-ignore\n payload) {\n var self = this;\n this.seriesModel = seriesModel;\n this.api = api;\n this.ecModel = ecModel;\n var data = seriesModel.getData();\n var virtualRoot = data.tree.root;\n var newRoot = seriesModel.getViewRoot();\n var group = this.group;\n var renderLabelForZeroData = seriesModel.get('renderLabelForZeroData');\n var newChildren = [];\n newRoot.eachNode(function (node) {\n newChildren.push(node);\n });\n var oldChildren = this._oldChildren || [];\n dualTravel(newChildren, oldChildren);\n renderRollUp(virtualRoot, newRoot);\n\n this._initEvents();\n\n this._oldChildren = newChildren;\n\n function dualTravel(newChildren, oldChildren) {\n if (newChildren.length === 0 && oldChildren.length === 0) {\n return;\n }\n\n new DataDiffer(oldChildren, newChildren, getKey, getKey).add(processNode).update(processNode).remove(zrUtil.curry(processNode, null)).execute();\n\n function getKey(node) {\n return node.getId();\n }\n\n function processNode(newIdx, oldIdx) {\n var newNode = newIdx == null ? null : newChildren[newIdx];\n var oldNode = oldIdx == null ? null : oldChildren[oldIdx];\n doRenderNode(newNode, oldNode);\n }\n }\n\n function doRenderNode(newNode, oldNode) {\n if (!renderLabelForZeroData && newNode && !newNode.getValue()) {\n // Not render data with value 0\n newNode = null;\n }\n\n if (newNode !== virtualRoot && oldNode !== virtualRoot) {\n if (oldNode && oldNode.piece) {\n if (newNode) {\n // Update\n oldNode.piece.updateData(false, newNode, seriesModel, ecModel, api); // For tooltip\n\n data.setItemGraphicEl(newNode.dataIndex, oldNode.piece);\n } else {\n // Remove\n removeNode(oldNode);\n }\n } else if (newNode) {\n // Add\n var piece = new SunburstPiece(newNode, seriesModel, ecModel, api);\n group.add(piece); // For tooltip\n\n data.setItemGraphicEl(newNode.dataIndex, piece);\n }\n }\n }\n\n function removeNode(node) {\n if (!node) {\n return;\n }\n\n if (node.piece) {\n group.remove(node.piece);\n node.piece = null;\n }\n }\n\n function renderRollUp(virtualRoot, viewRoot) {\n if (viewRoot.depth > 0) {\n // Render\n if (self.virtualPiece) {\n // Update\n self.virtualPiece.updateData(false, virtualRoot, seriesModel, ecModel, api);\n } else {\n // Add\n self.virtualPiece = new SunburstPiece(virtualRoot, seriesModel, ecModel, api);\n group.add(self.virtualPiece);\n } // TODO event scope\n\n\n viewRoot.piece.off('click');\n self.virtualPiece.on('click', function (e) {\n self._rootToNode(viewRoot.parentNode);\n });\n } else if (self.virtualPiece) {\n // Remove\n group.remove(self.virtualPiece);\n self.virtualPiece = null;\n }\n }\n };\n /**\n * @private\n */\n\n\n SunburstView.prototype._initEvents = function () {\n var _this = this;\n\n this.group.off('click');\n this.group.on('click', function (e) {\n var targetFound = false;\n\n var viewRoot = _this.seriesModel.getViewRoot();\n\n viewRoot.eachNode(function (node) {\n if (!targetFound && node.piece && node.piece === e.target) {\n var nodeClick = node.getModel().get('nodeClick');\n\n if (nodeClick === 'rootToNode') {\n _this._rootToNode(node);\n } else if (nodeClick === 'link') {\n var itemModel = node.getModel();\n var link = itemModel.get('link');\n\n if (link) {\n var linkTarget = itemModel.get('target', true) || '_blank';\n windowOpen(link, linkTarget);\n }\n }\n\n targetFound = true;\n }\n });\n });\n };\n /**\n * @private\n */\n\n\n SunburstView.prototype._rootToNode = function (node) {\n if (node !== this.seriesModel.getViewRoot()) {\n this.api.dispatchAction({\n type: ROOT_TO_NODE_ACTION,\n from: this.uid,\n seriesId: this.seriesModel.id,\n targetNode: node\n });\n }\n };\n /**\n * @implement\n */\n\n\n SunburstView.prototype.containPoint = function (point, seriesModel) {\n var treeRoot = seriesModel.getData();\n var itemLayout = treeRoot.getItemLayout(0);\n\n if (itemLayout) {\n var dx = point[0] - itemLayout.cx;\n var dy = point[1] - itemLayout.cy;\n var radius = Math.sqrt(dx * dx + dy * dy);\n return radius <= itemLayout.r && radius >= itemLayout.r0;\n }\n };\n\n SunburstView.type = 'sunburst';\n return SunburstView;\n}(ChartView);\n\nexport default SunburstView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport SunburstView from './SunburstView.js';\nimport SunburstSeriesModel from './SunburstSeries.js';\nimport sunburstLayout from './sunburstLayout.js';\nimport sunburstVisual from './sunburstVisual.js';\nimport dataFilter from '../../processor/dataFilter.js';\nimport { curry } from 'zrender/lib/core/util.js';\nimport { installSunburstAction } from './sunburstAction.js';\nexport function install(registers) {\n registers.registerChartView(SunburstView);\n registers.registerSeriesModel(SunburstSeriesModel);\n registers.registerLayout(curry(sunburstLayout, 'sunburst'));\n registers.registerProcessor(curry(dataFilter, 'sunburst'));\n registers.registerVisual(sunburstVisual);\n installSunburstAction(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { extend } from 'zrender/lib/core/util.js';\nimport { deprecateReplaceLog } from '../../util/log.js';\nimport { retrieveTargetInfo, aboveViewRoot } from '../helper/treeHelper.js';\nexport var ROOT_TO_NODE_ACTION = 'sunburstRootToNode';\nvar HIGHLIGHT_ACTION = 'sunburstHighlight';\nvar UNHIGHLIGHT_ACTION = 'sunburstUnhighlight';\nexport function installSunburstAction(registers) {\n registers.registerAction({\n type: ROOT_TO_NODE_ACTION,\n update: 'updateView'\n }, function (payload, ecModel) {\n ecModel.eachComponent({\n mainType: 'series',\n subType: 'sunburst',\n query: payload\n }, handleRootToNode);\n\n function handleRootToNode(model, index) {\n var targetInfo = retrieveTargetInfo(payload, [ROOT_TO_NODE_ACTION], model);\n\n if (targetInfo) {\n var originViewRoot = model.getViewRoot();\n\n if (originViewRoot) {\n payload.direction = aboveViewRoot(originViewRoot, targetInfo.node) ? 'rollUp' : 'drillDown';\n }\n\n model.resetViewRoot(targetInfo.node);\n }\n }\n });\n registers.registerAction({\n type: HIGHLIGHT_ACTION,\n update: 'none'\n }, function (payload, ecModel, api) {\n // Clone\n payload = extend({}, payload);\n ecModel.eachComponent({\n mainType: 'series',\n subType: 'sunburst',\n query: payload\n }, handleHighlight);\n\n function handleHighlight(model) {\n var targetInfo = retrieveTargetInfo(payload, [HIGHLIGHT_ACTION], model);\n\n if (targetInfo) {\n payload.dataIndex = targetInfo.node.dataIndex;\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n deprecateReplaceLog('sunburstHighlight', 'highlight');\n } // Fast forward action\n\n\n api.dispatchAction(extend(payload, {\n type: 'highlight'\n }));\n });\n registers.registerAction({\n type: UNHIGHLIGHT_ACTION,\n update: 'updateView'\n }, function (payload, ecModel, api) {\n payload = extend({}, payload);\n\n if (process.env.NODE_ENV !== 'production') {\n deprecateReplaceLog('sunburstUnhighlight', 'downplay');\n }\n\n api.dispatchAction(extend(payload, {\n type: 'downplay'\n }));\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { parsePercent } from '../../util/number.js';\nimport * as zrUtil from 'zrender/lib/core/util.js'; // let PI2 = Math.PI * 2;\n\nvar RADIAN = Math.PI / 180;\nexport default function sunburstLayout(seriesType, ecModel, api) {\n ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n var center = seriesModel.get('center');\n var radius = seriesModel.get('radius');\n\n if (!zrUtil.isArray(radius)) {\n radius = [0, radius];\n }\n\n if (!zrUtil.isArray(center)) {\n center = [center, center];\n }\n\n var width = api.getWidth();\n var height = api.getHeight();\n var size = Math.min(width, height);\n var cx = parsePercent(center[0], width);\n var cy = parsePercent(center[1], height);\n var r0 = parsePercent(radius[0], size / 2);\n var r = parsePercent(radius[1], size / 2);\n var startAngle = -seriesModel.get('startAngle') * RADIAN;\n var minAngle = seriesModel.get('minAngle') * RADIAN;\n var virtualRoot = seriesModel.getData().tree.root;\n var treeRoot = seriesModel.getViewRoot();\n var rootDepth = treeRoot.depth;\n var sort = seriesModel.get('sort');\n\n if (sort != null) {\n initChildren(treeRoot, sort);\n }\n\n var validDataCount = 0;\n zrUtil.each(treeRoot.children, function (child) {\n !isNaN(child.getValue()) && validDataCount++;\n });\n var sum = treeRoot.getValue(); // Sum may be 0\n\n var unitRadian = Math.PI / (sum || validDataCount) * 2;\n var renderRollupNode = treeRoot.depth > 0;\n var levels = treeRoot.height - (renderRollupNode ? -1 : 1);\n var rPerLevel = (r - r0) / (levels || 1);\n var clockwise = seriesModel.get('clockwise');\n var stillShowZeroSum = seriesModel.get('stillShowZeroSum'); // In the case some sector angle is smaller than minAngle\n // let restAngle = PI2;\n // let valueSumLargerThanMinAngle = 0;\n\n var dir = clockwise ? 1 : -1;\n /**\n * Render a tree\n * @return increased angle\n */\n\n var renderNode = function (node, startAngle) {\n if (!node) {\n return;\n }\n\n var endAngle = startAngle; // Render self\n\n if (node !== virtualRoot) {\n // Tree node is virtual, so it doesn't need to be drawn\n var value = node.getValue();\n var angle = sum === 0 && stillShowZeroSum ? unitRadian : value * unitRadian;\n\n if (angle < minAngle) {\n angle = minAngle; // restAngle -= minAngle;\n } // else {\n // valueSumLargerThanMinAngle += value;\n // }\n\n\n endAngle = startAngle + dir * angle;\n var depth = node.depth - rootDepth - (renderRollupNode ? -1 : 1);\n var rStart = r0 + rPerLevel * depth;\n var rEnd = r0 + rPerLevel * (depth + 1);\n var levelModel = seriesModel.getLevelModel(node);\n\n if (levelModel) {\n var r0_1 = levelModel.get('r0', true);\n var r_1 = levelModel.get('r', true);\n var radius_1 = levelModel.get('radius', true);\n\n if (radius_1 != null) {\n r0_1 = radius_1[0];\n r_1 = radius_1[1];\n }\n\n r0_1 != null && (rStart = parsePercent(r0_1, size / 2));\n r_1 != null && (rEnd = parsePercent(r_1, size / 2));\n }\n\n node.setLayout({\n angle: angle,\n startAngle: startAngle,\n endAngle: endAngle,\n clockwise: clockwise,\n cx: cx,\n cy: cy,\n r0: rStart,\n r: rEnd\n });\n } // Render children\n\n\n if (node.children && node.children.length) {\n // currentAngle = startAngle;\n var siblingAngle_1 = 0;\n zrUtil.each(node.children, function (node) {\n siblingAngle_1 += renderNode(node, startAngle + siblingAngle_1);\n });\n }\n\n return endAngle - startAngle;\n }; // Virtual root node for roll up\n\n\n if (renderRollupNode) {\n var rStart = r0;\n var rEnd = r0 + rPerLevel;\n var angle = Math.PI * 2;\n virtualRoot.setLayout({\n angle: angle,\n startAngle: startAngle,\n endAngle: startAngle + angle,\n clockwise: clockwise,\n cx: cx,\n cy: cy,\n r0: rStart,\n r: rEnd\n });\n }\n\n renderNode(treeRoot, startAngle);\n });\n}\n/**\n * Init node children by order and update visual\n */\n\nfunction initChildren(node, sortOrder) {\n var children = node.children || [];\n node.children = sort(children, sortOrder); // Init children recursively\n\n if (children.length) {\n zrUtil.each(node.children, function (child) {\n initChildren(child, sortOrder);\n });\n }\n}\n/**\n * Sort children nodes\n *\n * @param {TreeNode[]} children children of node to be sorted\n * @param {string | function | null} sort sort method\n * See SunburstSeries.js for details.\n */\n\n\nfunction sort(children, sortOrder) {\n if (zrUtil.isFunction(sortOrder)) {\n var sortTargets = zrUtil.map(children, function (child, idx) {\n var value = child.getValue();\n return {\n params: {\n depth: child.depth,\n height: child.height,\n dataIndex: child.dataIndex,\n getValue: function () {\n return value;\n }\n },\n index: idx\n };\n });\n sortTargets.sort(function (a, b) {\n return sortOrder(a.params, b.params);\n });\n return zrUtil.map(sortTargets, function (target) {\n return children[target.index];\n });\n } else {\n var isAsc_1 = sortOrder === 'asc';\n return children.sort(function (a, b) {\n var diff = (a.getValue() - b.getValue()) * (isAsc_1 ? 1 : -1);\n return diff === 0 ? (a.dataIndex - b.dataIndex) * (isAsc_1 ? -1 : 1) : diff;\n });\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { lift } from 'zrender/lib/tool/color.js';\nimport { extend, isString } from 'zrender/lib/core/util.js';\nexport default function sunburstVisual(ecModel) {\n var paletteScope = {}; // Default color strategy\n\n function pickColor(node, seriesModel, treeHeight) {\n // Choose color from palette based on the first level.\n var current = node;\n\n while (current && current.depth > 1) {\n current = current.parentNode;\n }\n\n var color = seriesModel.getColorFromPalette(current.name || current.dataIndex + '', paletteScope);\n\n if (node.depth > 1 && isString(color)) {\n // Lighter on the deeper level.\n color = lift(color, (node.depth - 1) / (treeHeight - 1) * 0.5);\n }\n\n return color;\n }\n\n ecModel.eachSeriesByType('sunburst', function (seriesModel) {\n var data = seriesModel.getData();\n var tree = data.tree;\n tree.eachNode(function (node) {\n var model = node.getModel();\n var style = model.getModel('itemStyle').getItemStyle();\n\n if (!style.fill) {\n style.fill = pickColor(node, seriesModel, tree.root.height);\n }\n\n var existsStyle = data.ensureUniqueItemVisual(node.dataIndex, 'style');\n extend(existsStyle, style);\n });\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series.js';\nimport prepareSeriesDataSchema from '../../data/helper/createDimensions.js';\nimport { getDimensionTypeByAxis } from '../../data/helper/dimensionHelper.js';\nimport SeriesData from '../../data/SeriesData.js';\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { groupData, SINGLE_REFERRING } from '../../util/model.js';\nimport LegendVisualProvider from '../../visual/LegendVisualProvider.js';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup.js';\nvar DATA_NAME_INDEX = 2;\n\nvar ThemeRiverSeriesModel =\n/** @class */\nfunction (_super) {\n __extends(ThemeRiverSeriesModel, _super);\n\n function ThemeRiverSeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = ThemeRiverSeriesModel.type;\n return _this;\n }\n /**\n * @override\n */\n\n\n ThemeRiverSeriesModel.prototype.init = function (option) {\n // eslint-disable-next-line\n _super.prototype.init.apply(this, arguments); // Put this function here is for the sake of consistency of code style.\n // Enable legend selection for each data item\n // Use a function instead of direct access because data reference may changed\n\n\n this.legendVisualProvider = new LegendVisualProvider(zrUtil.bind(this.getData, this), zrUtil.bind(this.getRawData, this));\n };\n /**\n * If there is no value of a certain point in the time for some event,set it value to 0.\n *\n * @param {Array} data initial data in the option\n * @return {Array}\n */\n\n\n ThemeRiverSeriesModel.prototype.fixData = function (data) {\n var rawDataLength = data.length;\n /**\n * Make sure every layer data get the same keys.\n * The value index tells which layer has visited.\n * {\n * 2014/01/01: -1\n * }\n */\n\n var timeValueKeys = {}; // grouped data by name\n\n var groupResult = groupData(data, function (item) {\n if (!timeValueKeys.hasOwnProperty(item[0] + '')) {\n timeValueKeys[item[0] + ''] = -1;\n }\n\n return item[2];\n });\n var layerData = [];\n groupResult.buckets.each(function (items, key) {\n layerData.push({\n name: key,\n dataList: items\n });\n });\n var layerNum = layerData.length;\n\n for (var k = 0; k < layerNum; ++k) {\n var name_1 = layerData[k].name;\n\n for (var j = 0; j < layerData[k].dataList.length; ++j) {\n var timeValue = layerData[k].dataList[j][0] + '';\n timeValueKeys[timeValue] = k;\n }\n\n for (var timeValue in timeValueKeys) {\n if (timeValueKeys.hasOwnProperty(timeValue) && timeValueKeys[timeValue] !== k) {\n timeValueKeys[timeValue] = k;\n data[rawDataLength] = [timeValue, 0, name_1];\n rawDataLength++;\n }\n }\n }\n\n return data;\n };\n /**\n * @override\n * @param option the initial option that user gave\n * @param ecModel the model object for themeRiver option\n */\n\n\n ThemeRiverSeriesModel.prototype.getInitialData = function (option, ecModel) {\n var singleAxisModel = this.getReferringComponents('singleAxis', SINGLE_REFERRING).models[0];\n var axisType = singleAxisModel.get('type'); // filter the data item with the value of label is undefined\n\n var filterData = zrUtil.filter(option.data, function (dataItem) {\n return dataItem[2] !== undefined;\n }); // ??? TODO design a stage to transfer data for themeRiver and lines?\n\n var data = this.fixData(filterData || []);\n var nameList = [];\n var nameMap = this.nameMap = zrUtil.createHashMap();\n var count = 0;\n\n for (var i = 0; i < data.length; ++i) {\n nameList.push(data[i][DATA_NAME_INDEX]);\n\n if (!nameMap.get(data[i][DATA_NAME_INDEX])) {\n nameMap.set(data[i][DATA_NAME_INDEX], count);\n count++;\n }\n }\n\n var dimensions = prepareSeriesDataSchema(data, {\n coordDimensions: ['single'],\n dimensionsDefine: [{\n name: 'time',\n type: getDimensionTypeByAxis(axisType)\n }, {\n name: 'value',\n type: 'float'\n }, {\n name: 'name',\n type: 'ordinal'\n }],\n encodeDefine: {\n single: 0,\n value: 1,\n itemName: 2\n }\n }).dimensions;\n var list = new SeriesData(dimensions, this);\n list.initData(data);\n return list;\n };\n /**\n * The raw data is divided into multiple layers and each layer\n * has same name.\n */\n\n\n ThemeRiverSeriesModel.prototype.getLayerSeries = function () {\n var data = this.getData();\n var lenCount = data.count();\n var indexArr = [];\n\n for (var i = 0; i < lenCount; ++i) {\n indexArr[i] = i;\n }\n\n var timeDim = data.mapDimension('single'); // data group by name\n\n var groupResult = groupData(indexArr, function (index) {\n return data.get('name', index);\n });\n var layerSeries = [];\n groupResult.buckets.each(function (items, key) {\n items.sort(function (index1, index2) {\n return data.get(timeDim, index1) - data.get(timeDim, index2);\n });\n layerSeries.push({\n name: key,\n indices: items\n });\n });\n return layerSeries;\n };\n /**\n * Get data indices for show tooltip content\n */\n\n\n ThemeRiverSeriesModel.prototype.getAxisTooltipData = function (dim, value, baseAxis) {\n if (!zrUtil.isArray(dim)) {\n dim = dim ? [dim] : [];\n }\n\n var data = this.getData();\n var layerSeries = this.getLayerSeries();\n var indices = [];\n var layerNum = layerSeries.length;\n var nestestValue;\n\n for (var i = 0; i < layerNum; ++i) {\n var minDist = Number.MAX_VALUE;\n var nearestIdx = -1;\n var pointNum = layerSeries[i].indices.length;\n\n for (var j = 0; j < pointNum; ++j) {\n var theValue = data.get(dim[0], layerSeries[i].indices[j]);\n var dist = Math.abs(theValue - value);\n\n if (dist <= minDist) {\n nestestValue = theValue;\n minDist = dist;\n nearestIdx = layerSeries[i].indices[j];\n }\n }\n\n indices.push(nearestIdx);\n }\n\n return {\n dataIndices: indices,\n nestestValue: nestestValue\n };\n };\n\n ThemeRiverSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n var data = this.getData();\n var name = data.getName(dataIndex);\n var value = data.get(data.mapDimension('value'), dataIndex);\n return createTooltipMarkup('nameValue', {\n name: name,\n value: value\n });\n };\n\n ThemeRiverSeriesModel.type = 'series.themeRiver';\n ThemeRiverSeriesModel.dependencies = ['singleAxis'];\n ThemeRiverSeriesModel.defaultOption = {\n // zlevel: 0,\n z: 2,\n colorBy: 'data',\n coordinateSystem: 'singleAxis',\n // gap in axis's orthogonal orientation\n boundaryGap: ['10%', '10%'],\n // legendHoverLink: true,\n singleAxisIndex: 0,\n animationEasing: 'linear',\n label: {\n margin: 4,\n show: true,\n position: 'left',\n fontSize: 11\n },\n emphasis: {\n label: {\n show: true\n }\n }\n };\n return ThemeRiverSeriesModel;\n}(SeriesModel);\n\nexport default ThemeRiverSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport { ECPolygon } from '../line/poly.js';\nimport * as graphic from '../../util/graphic.js';\nimport { setStatesStylesFromModel, toggleHoverEmphasis } from '../../util/states.js';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle.js';\nimport { bind } from 'zrender/lib/core/util.js';\nimport DataDiffer from '../../data/DataDiffer.js';\nimport ChartView from '../../view/Chart.js';\nimport { saveOldStyle } from '../../animation/basicTransition.js';\n\nvar ThemeRiverView =\n/** @class */\nfunction (_super) {\n __extends(ThemeRiverView, _super);\n\n function ThemeRiverView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = ThemeRiverView.type;\n _this._layers = [];\n return _this;\n }\n\n ThemeRiverView.prototype.render = function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n var self = this;\n var group = this.group;\n var layersSeries = seriesModel.getLayerSeries();\n var layoutInfo = data.getLayout('layoutInfo');\n var rect = layoutInfo.rect;\n var boundaryGap = layoutInfo.boundaryGap;\n group.x = 0;\n group.y = rect.y + boundaryGap[0];\n\n function keyGetter(item) {\n return item.name;\n }\n\n var dataDiffer = new DataDiffer(this._layersSeries || [], layersSeries, keyGetter, keyGetter);\n var newLayersGroups = [];\n dataDiffer.add(bind(process, this, 'add')).update(bind(process, this, 'update')).remove(bind(process, this, 'remove')).execute();\n\n function process(status, idx, oldIdx) {\n var oldLayersGroups = self._layers;\n\n if (status === 'remove') {\n group.remove(oldLayersGroups[idx]);\n return;\n }\n\n var points0 = [];\n var points1 = [];\n var style;\n var indices = layersSeries[idx].indices;\n var j = 0;\n\n for (; j < indices.length; j++) {\n var layout = data.getItemLayout(indices[j]);\n var x = layout.x;\n var y0 = layout.y0;\n var y = layout.y;\n points0.push(x, y0);\n points1.push(x, y0 + y);\n style = data.getItemVisual(indices[j], 'style');\n }\n\n var polygon;\n var textLayout = data.getItemLayout(indices[0]);\n var labelModel = seriesModel.getModel('label');\n var margin = labelModel.get('margin');\n var emphasisModel = seriesModel.getModel('emphasis');\n\n if (status === 'add') {\n var layerGroup = newLayersGroups[idx] = new graphic.Group();\n polygon = new ECPolygon({\n shape: {\n points: points0,\n stackedOnPoints: points1,\n smooth: 0.4,\n stackedOnSmooth: 0.4,\n smoothConstraint: false\n },\n z2: 0\n });\n layerGroup.add(polygon);\n group.add(layerGroup);\n\n if (seriesModel.isAnimationEnabled()) {\n polygon.setClipPath(createGridClipShape(polygon.getBoundingRect(), seriesModel, function () {\n polygon.removeClipPath();\n }));\n }\n } else {\n var layerGroup = oldLayersGroups[oldIdx];\n polygon = layerGroup.childAt(0);\n group.add(layerGroup);\n newLayersGroups[idx] = layerGroup;\n graphic.updateProps(polygon, {\n shape: {\n points: points0,\n stackedOnPoints: points1\n }\n }, seriesModel);\n saveOldStyle(polygon);\n }\n\n setLabelStyle(polygon, getLabelStatesModels(seriesModel), {\n labelDataIndex: indices[j - 1],\n defaultText: data.getName(indices[j - 1]),\n inheritColor: style.fill\n }, {\n normal: {\n verticalAlign: 'middle' // align: 'right'\n\n }\n });\n polygon.setTextConfig({\n position: null,\n local: true\n });\n var labelEl = polygon.getTextContent(); // TODO More label position options.\n\n if (labelEl) {\n labelEl.x = textLayout.x - margin;\n labelEl.y = textLayout.y0 + textLayout.y / 2;\n }\n\n polygon.useStyle(style);\n data.setItemGraphicEl(idx, polygon);\n setStatesStylesFromModel(polygon, seriesModel);\n toggleHoverEmphasis(polygon, emphasisModel.get('focus'), emphasisModel.get('blurScope'), emphasisModel.get('disabled'));\n }\n\n this._layersSeries = layersSeries;\n this._layers = newLayersGroups;\n };\n\n ThemeRiverView.type = 'themeRiver';\n return ThemeRiverView;\n}(ChartView);\n\n; // add animation to the view\n\nfunction createGridClipShape(rect, seriesModel, cb) {\n var rectEl = new graphic.Rect({\n shape: {\n x: rect.x - 10,\n y: rect.y - 10,\n width: 0,\n height: rect.height + 20\n }\n });\n graphic.initProps(rectEl, {\n shape: {\n x: rect.x - 50,\n width: rect.width + 100,\n height: rect.height + 20\n }\n }, seriesModel, cb);\n return rectEl;\n}\n\nexport default ThemeRiverView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport ThemeRiverView from './ThemeRiverView.js';\nimport ThemeRiverSeriesModel from './ThemeRiverSeries.js';\nimport themeRiverLayout from './themeRiverLayout.js';\nimport dataFilter from '../../processor/dataFilter.js';\nexport function install(registers) {\n registers.registerChartView(ThemeRiverView);\n registers.registerSeriesModel(ThemeRiverSeriesModel);\n registers.registerLayout(themeRiverLayout);\n registers.registerProcessor(dataFilter('themeRiver'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as numberUtil from '../../util/number.js';\nexport default function themeRiverLayout(ecModel, api) {\n ecModel.eachSeriesByType('themeRiver', function (seriesModel) {\n var data = seriesModel.getData();\n var single = seriesModel.coordinateSystem;\n var layoutInfo = {}; // use the axis boundingRect for view\n\n var rect = single.getRect();\n layoutInfo.rect = rect;\n var boundaryGap = seriesModel.get('boundaryGap');\n var axis = single.getAxis();\n layoutInfo.boundaryGap = boundaryGap;\n\n if (axis.orient === 'horizontal') {\n boundaryGap[0] = numberUtil.parsePercent(boundaryGap[0], rect.height);\n boundaryGap[1] = numberUtil.parsePercent(boundaryGap[1], rect.height);\n var height = rect.height - boundaryGap[0] - boundaryGap[1];\n doThemeRiverLayout(data, seriesModel, height);\n } else {\n boundaryGap[0] = numberUtil.parsePercent(boundaryGap[0], rect.width);\n boundaryGap[1] = numberUtil.parsePercent(boundaryGap[1], rect.width);\n var width = rect.width - boundaryGap[0] - boundaryGap[1];\n doThemeRiverLayout(data, seriesModel, width);\n }\n\n data.setLayout('layoutInfo', layoutInfo);\n });\n}\n/**\n * The layout information about themeriver\n *\n * @param data data in the series\n * @param seriesModel the model object of themeRiver series\n * @param height value used to compute every series height\n */\n\nfunction doThemeRiverLayout(data, seriesModel, height) {\n if (!data.count()) {\n return;\n }\n\n var coordSys = seriesModel.coordinateSystem; // the data in each layer are organized into a series.\n\n var layerSeries = seriesModel.getLayerSeries(); // the points in each layer.\n\n var timeDim = data.mapDimension('single');\n var valueDim = data.mapDimension('value');\n var layerPoints = zrUtil.map(layerSeries, function (singleLayer) {\n return zrUtil.map(singleLayer.indices, function (idx) {\n var pt = coordSys.dataToPoint(data.get(timeDim, idx));\n pt[1] = data.get(valueDim, idx);\n return pt;\n });\n });\n var base = computeBaseline(layerPoints);\n var baseLine = base.y0;\n var ky = height / base.max; // set layout information for each item.\n\n var n = layerSeries.length;\n var m = layerSeries[0].indices.length;\n var baseY0;\n\n for (var j = 0; j < m; ++j) {\n baseY0 = baseLine[j] * ky;\n data.setItemLayout(layerSeries[0].indices[j], {\n layerIndex: 0,\n x: layerPoints[0][j][0],\n y0: baseY0,\n y: layerPoints[0][j][1] * ky\n });\n\n for (var i = 1; i < n; ++i) {\n baseY0 += layerPoints[i - 1][j][1] * ky;\n data.setItemLayout(layerSeries[i].indices[j], {\n layerIndex: i,\n x: layerPoints[i][j][0],\n y0: baseY0,\n y: layerPoints[i][j][1] * ky\n });\n }\n }\n}\n/**\n * Compute the baseLine of the rawdata\n * Inspired by Lee Byron's paper Stacked Graphs - Geometry & Aesthetics\n *\n * @param data the points in each layer\n */\n\n\nfunction computeBaseline(data) {\n var layerNum = data.length;\n var pointNum = data[0].length;\n var sums = [];\n var y0 = [];\n var max = 0;\n\n for (var i = 0; i < pointNum; ++i) {\n var temp = 0;\n\n for (var j = 0; j < layerNum; ++j) {\n temp += data[j][i][1];\n }\n\n if (temp > max) {\n max = temp;\n }\n\n sums.push(temp);\n }\n\n for (var k = 0; k < pointNum; ++k) {\n y0[k] = (max - sums[k]) / 2;\n }\n\n max = 0;\n\n for (var l = 0; l < pointNum; ++l) {\n var sum = sums[l] + y0[l];\n\n if (sum > max) {\n max = sum;\n }\n }\n\n return {\n y0: y0,\n max: max\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series.js';\nimport Tree from '../../data/Tree.js';\nimport Model from '../../model/Model.js';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup.js';\nimport { wrapTreePathInfo } from '../helper/treeHelper.js';\n\nvar TreeSeriesModel =\n/** @class */\nfunction (_super) {\n __extends(TreeSeriesModel, _super);\n\n function TreeSeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.hasSymbolVisual = true; // Do it self.\n\n _this.ignoreStyleOnData = true;\n return _this;\n }\n /**\n * Init a tree data structure from data in option series\n */\n\n\n TreeSeriesModel.prototype.getInitialData = function (option) {\n // create a virtual root\n var root = {\n name: option.name,\n children: option.data\n };\n var leaves = option.leaves || {};\n var leavesModel = new Model(leaves, this, this.ecModel);\n var tree = Tree.createTree(root, this, beforeLink);\n\n function beforeLink(nodeData) {\n nodeData.wrapMethod('getItemModel', function (model, idx) {\n var node = tree.getNodeByDataIndex(idx);\n\n if (!(node && node.children.length && node.isExpand)) {\n model.parentModel = leavesModel;\n }\n\n return model;\n });\n }\n\n var treeDepth = 0;\n tree.eachNode('preorder', function (node) {\n if (node.depth > treeDepth) {\n treeDepth = node.depth;\n }\n });\n var expandAndCollapse = option.expandAndCollapse;\n var expandTreeDepth = expandAndCollapse && option.initialTreeDepth >= 0 ? option.initialTreeDepth : treeDepth;\n tree.root.eachNode('preorder', function (node) {\n var item = node.hostTree.data.getRawDataItem(node.dataIndex); // Add item.collapsed != null, because users can collapse node original in the series.data.\n\n node.isExpand = item && item.collapsed != null ? !item.collapsed : node.depth <= expandTreeDepth;\n });\n return tree.data;\n };\n /**\n * Make the configuration 'orient' backward compatibly, with 'horizontal = LR', 'vertical = TB'.\n * @returns {string} orient\n */\n\n\n TreeSeriesModel.prototype.getOrient = function () {\n var orient = this.get('orient');\n\n if (orient === 'horizontal') {\n orient = 'LR';\n } else if (orient === 'vertical') {\n orient = 'TB';\n }\n\n return orient;\n };\n\n TreeSeriesModel.prototype.setZoom = function (zoom) {\n this.option.zoom = zoom;\n };\n\n TreeSeriesModel.prototype.setCenter = function (center) {\n this.option.center = center;\n };\n\n TreeSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n var tree = this.getData().tree;\n var realRoot = tree.root.children[0];\n var node = tree.getNodeByDataIndex(dataIndex);\n var value = node.getValue();\n var name = node.name;\n\n while (node && node !== realRoot) {\n name = node.parentNode.name + '.' + name;\n node = node.parentNode;\n }\n\n return createTooltipMarkup('nameValue', {\n name: name,\n value: value,\n noValue: isNaN(value) || value == null\n });\n }; // Add tree path to tooltip param\n\n\n TreeSeriesModel.prototype.getDataParams = function (dataIndex) {\n var params = _super.prototype.getDataParams.apply(this, arguments);\n\n var node = this.getData().tree.getNodeByDataIndex(dataIndex);\n params.treeAncestors = wrapTreePathInfo(node, this);\n params.collapsed = !node.isExpand;\n return params;\n };\n\n TreeSeriesModel.type = 'series.tree'; // can support the position parameters 'left', 'top','right','bottom', 'width',\n // 'height' in the setOption() with 'merge' mode normal.\n\n TreeSeriesModel.layoutMode = 'box';\n TreeSeriesModel.defaultOption = {\n // zlevel: 0,\n z: 2,\n coordinateSystem: 'view',\n // the position of the whole view\n left: '12%',\n top: '12%',\n right: '12%',\n bottom: '12%',\n // the layout of the tree, two value can be selected, 'orthogonal' or 'radial'\n layout: 'orthogonal',\n // value can be 'polyline'\n edgeShape: 'curve',\n edgeForkPosition: '50%',\n // true | false | 'move' | 'scale', see module:component/helper/RoamController.\n roam: false,\n // Symbol size scale ratio in roam\n nodeScaleRatio: 0.4,\n // Default on center of graph\n center: null,\n zoom: 1,\n orient: 'LR',\n symbol: 'emptyCircle',\n symbolSize: 7,\n expandAndCollapse: true,\n initialTreeDepth: 2,\n lineStyle: {\n color: '#ccc',\n width: 1.5,\n curveness: 0.5\n },\n itemStyle: {\n color: 'lightsteelblue',\n // borderColor: '#c23531',\n borderWidth: 1.5\n },\n label: {\n show: true\n },\n animationEasing: 'linear',\n animationDuration: 700,\n animationDurationUpdate: 500\n };\n return TreeSeriesModel;\n}(SeriesModel);\n\nexport default TreeSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as graphic from '../../util/graphic.js';\nimport { getECData } from '../../util/innerStore.js';\nimport SymbolClz from '../helper/Symbol.js';\nimport { radialCoordinate } from './layoutHelper.js';\nimport * as bbox from 'zrender/lib/core/bbox.js';\nimport View from '../../coord/View.js';\nimport * as roamHelper from '../../component/helper/roamHelper.js';\nimport RoamController from '../../component/helper/RoamController.js';\nimport { onIrrelevantElement } from '../../component/helper/cursorHelper.js';\nimport { parsePercent } from '../../util/number.js';\nimport ChartView from '../../view/Chart.js';\nimport Path from 'zrender/lib/graphic/Path.js';\nimport { setStatesStylesFromModel, setStatesFlag, setDefaultStateProxy, HOVER_STATE_BLUR } from '../../util/states.js';\n\nvar TreeEdgeShape =\n/** @class */\nfunction () {\n function TreeEdgeShape() {\n this.parentPoint = [];\n this.childPoints = [];\n }\n\n return TreeEdgeShape;\n}();\n\nvar TreePath =\n/** @class */\nfunction (_super) {\n __extends(TreePath, _super);\n\n function TreePath(opts) {\n return _super.call(this, opts) || this;\n }\n\n TreePath.prototype.getDefaultStyle = function () {\n return {\n stroke: '#000',\n fill: null\n };\n };\n\n TreePath.prototype.getDefaultShape = function () {\n return new TreeEdgeShape();\n };\n\n TreePath.prototype.buildPath = function (ctx, shape) {\n var childPoints = shape.childPoints;\n var childLen = childPoints.length;\n var parentPoint = shape.parentPoint;\n var firstChildPos = childPoints[0];\n var lastChildPos = childPoints[childLen - 1];\n\n if (childLen === 1) {\n ctx.moveTo(parentPoint[0], parentPoint[1]);\n ctx.lineTo(firstChildPos[0], firstChildPos[1]);\n return;\n }\n\n var orient = shape.orient;\n var forkDim = orient === 'TB' || orient === 'BT' ? 0 : 1;\n var otherDim = 1 - forkDim;\n var forkPosition = parsePercent(shape.forkPosition, 1);\n var tmpPoint = [];\n tmpPoint[forkDim] = parentPoint[forkDim];\n tmpPoint[otherDim] = parentPoint[otherDim] + (lastChildPos[otherDim] - parentPoint[otherDim]) * forkPosition;\n ctx.moveTo(parentPoint[0], parentPoint[1]);\n ctx.lineTo(tmpPoint[0], tmpPoint[1]);\n ctx.moveTo(firstChildPos[0], firstChildPos[1]);\n tmpPoint[forkDim] = firstChildPos[forkDim];\n ctx.lineTo(tmpPoint[0], tmpPoint[1]);\n tmpPoint[forkDim] = lastChildPos[forkDim];\n ctx.lineTo(tmpPoint[0], tmpPoint[1]);\n ctx.lineTo(lastChildPos[0], lastChildPos[1]);\n\n for (var i = 1; i < childLen - 1; i++) {\n var point = childPoints[i];\n ctx.moveTo(point[0], point[1]);\n tmpPoint[forkDim] = point[forkDim];\n ctx.lineTo(tmpPoint[0], tmpPoint[1]);\n }\n };\n\n return TreePath;\n}(Path);\n\nvar TreeView =\n/** @class */\nfunction (_super) {\n __extends(TreeView, _super);\n\n function TreeView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = TreeView.type;\n _this._mainGroup = new graphic.Group();\n return _this;\n }\n\n TreeView.prototype.init = function (ecModel, api) {\n this._controller = new RoamController(api.getZr());\n this._controllerHost = {\n target: this.group\n };\n this.group.add(this._mainGroup);\n };\n\n TreeView.prototype.render = function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n var layoutInfo = seriesModel.layoutInfo;\n var group = this._mainGroup;\n var layout = seriesModel.get('layout');\n\n if (layout === 'radial') {\n group.x = layoutInfo.x + layoutInfo.width / 2;\n group.y = layoutInfo.y + layoutInfo.height / 2;\n } else {\n group.x = layoutInfo.x;\n group.y = layoutInfo.y;\n }\n\n this._updateViewCoordSys(seriesModel, api);\n\n this._updateController(seriesModel, ecModel, api);\n\n var oldData = this._data;\n data.diff(oldData).add(function (newIdx) {\n if (symbolNeedsDraw(data, newIdx)) {\n // Create node and edge\n updateNode(data, newIdx, null, group, seriesModel);\n }\n }).update(function (newIdx, oldIdx) {\n var symbolEl = oldData.getItemGraphicEl(oldIdx);\n\n if (!symbolNeedsDraw(data, newIdx)) {\n symbolEl && removeNode(oldData, oldIdx, symbolEl, group, seriesModel);\n return;\n } // Update node and edge\n\n\n updateNode(data, newIdx, symbolEl, group, seriesModel);\n }).remove(function (oldIdx) {\n var symbolEl = oldData.getItemGraphicEl(oldIdx); // When remove a collapsed node of subtree, since the collapsed\n // node haven't been initialized with a symbol element,\n // you can't found it's symbol element through index.\n // so if we want to remove the symbol element we should insure\n // that the symbol element is not null.\n\n if (symbolEl) {\n removeNode(oldData, oldIdx, symbolEl, group, seriesModel);\n }\n }).execute();\n this._nodeScaleRatio = seriesModel.get('nodeScaleRatio');\n\n this._updateNodeAndLinkScale(seriesModel);\n\n if (seriesModel.get('expandAndCollapse') === true) {\n data.eachItemGraphicEl(function (el, dataIndex) {\n el.off('click').on('click', function () {\n api.dispatchAction({\n type: 'treeExpandAndCollapse',\n seriesId: seriesModel.id,\n dataIndex: dataIndex\n });\n });\n });\n }\n\n this._data = data;\n };\n\n TreeView.prototype._updateViewCoordSys = function (seriesModel, api) {\n var data = seriesModel.getData();\n var points = [];\n data.each(function (idx) {\n var layout = data.getItemLayout(idx);\n\n if (layout && !isNaN(layout.x) && !isNaN(layout.y)) {\n points.push([+layout.x, +layout.y]);\n }\n });\n var min = [];\n var max = [];\n bbox.fromPoints(points, min, max); // If don't Store min max when collapse the root node after roam,\n // the root node will disappear.\n\n var oldMin = this._min;\n var oldMax = this._max; // If width or height is 0\n\n if (max[0] - min[0] === 0) {\n min[0] = oldMin ? oldMin[0] : min[0] - 1;\n max[0] = oldMax ? oldMax[0] : max[0] + 1;\n }\n\n if (max[1] - min[1] === 0) {\n min[1] = oldMin ? oldMin[1] : min[1] - 1;\n max[1] = oldMax ? oldMax[1] : max[1] + 1;\n }\n\n var viewCoordSys = seriesModel.coordinateSystem = new View();\n viewCoordSys.zoomLimit = seriesModel.get('scaleLimit');\n viewCoordSys.setBoundingRect(min[0], min[1], max[0] - min[0], max[1] - min[1]);\n viewCoordSys.setCenter(seriesModel.get('center'), api);\n viewCoordSys.setZoom(seriesModel.get('zoom')); // Here we use viewCoordSys just for computing the 'position' and 'scale' of the group\n\n this.group.attr({\n x: viewCoordSys.x,\n y: viewCoordSys.y,\n scaleX: viewCoordSys.scaleX,\n scaleY: viewCoordSys.scaleY\n });\n this._min = min;\n this._max = max;\n };\n\n TreeView.prototype._updateController = function (seriesModel, ecModel, api) {\n var _this = this;\n\n var controller = this._controller;\n var controllerHost = this._controllerHost;\n var group = this.group;\n controller.setPointerChecker(function (e, x, y) {\n var rect = group.getBoundingRect();\n rect.applyTransform(group.transform);\n return rect.contain(x, y) && !onIrrelevantElement(e, api, seriesModel);\n });\n controller.enable(seriesModel.get('roam'));\n controllerHost.zoomLimit = seriesModel.get('scaleLimit');\n controllerHost.zoom = seriesModel.coordinateSystem.getZoom();\n controller.off('pan').off('zoom').on('pan', function (e) {\n roamHelper.updateViewOnPan(controllerHost, e.dx, e.dy);\n api.dispatchAction({\n seriesId: seriesModel.id,\n type: 'treeRoam',\n dx: e.dx,\n dy: e.dy\n });\n }).on('zoom', function (e) {\n roamHelper.updateViewOnZoom(controllerHost, e.scale, e.originX, e.originY);\n api.dispatchAction({\n seriesId: seriesModel.id,\n type: 'treeRoam',\n zoom: e.scale,\n originX: e.originX,\n originY: e.originY\n });\n\n _this._updateNodeAndLinkScale(seriesModel); // Only update label layout on zoom\n\n\n api.updateLabelLayout();\n });\n };\n\n TreeView.prototype._updateNodeAndLinkScale = function (seriesModel) {\n var data = seriesModel.getData();\n\n var nodeScale = this._getNodeGlobalScale(seriesModel);\n\n data.eachItemGraphicEl(function (el, idx) {\n el.setSymbolScale(nodeScale);\n });\n };\n\n TreeView.prototype._getNodeGlobalScale = function (seriesModel) {\n var coordSys = seriesModel.coordinateSystem;\n\n if (coordSys.type !== 'view') {\n return 1;\n }\n\n var nodeScaleRatio = this._nodeScaleRatio;\n var groupZoom = coordSys.scaleX || 1; // Scale node when zoom changes\n\n var roamZoom = coordSys.getZoom();\n var nodeScale = (roamZoom - 1) * nodeScaleRatio + 1;\n return nodeScale / groupZoom;\n };\n\n TreeView.prototype.dispose = function () {\n this._controller && this._controller.dispose();\n this._controllerHost = null;\n };\n\n TreeView.prototype.remove = function () {\n this._mainGroup.removeAll();\n\n this._data = null;\n };\n\n TreeView.type = 'tree';\n return TreeView;\n}(ChartView);\n\nfunction symbolNeedsDraw(data, dataIndex) {\n var layout = data.getItemLayout(dataIndex);\n return layout && !isNaN(layout.x) && !isNaN(layout.y);\n}\n\nfunction updateNode(data, dataIndex, symbolEl, group, seriesModel) {\n var isInit = !symbolEl;\n var node = data.tree.getNodeByDataIndex(dataIndex);\n var itemModel = node.getModel();\n var visualColor = node.getVisual('style').fill;\n var symbolInnerColor = node.isExpand === false && node.children.length !== 0 ? visualColor : '#fff';\n var virtualRoot = data.tree.root;\n var source = node.parentNode === virtualRoot ? node : node.parentNode || node;\n var sourceSymbolEl = data.getItemGraphicEl(source.dataIndex);\n var sourceLayout = source.getLayout();\n var sourceOldLayout = sourceSymbolEl ? {\n x: sourceSymbolEl.__oldX,\n y: sourceSymbolEl.__oldY,\n rawX: sourceSymbolEl.__radialOldRawX,\n rawY: sourceSymbolEl.__radialOldRawY\n } : sourceLayout;\n var targetLayout = node.getLayout();\n\n if (isInit) {\n symbolEl = new SymbolClz(data, dataIndex, null, {\n symbolInnerColor: symbolInnerColor,\n useNameLabel: true\n });\n symbolEl.x = sourceOldLayout.x;\n symbolEl.y = sourceOldLayout.y;\n } else {\n symbolEl.updateData(data, dataIndex, null, {\n symbolInnerColor: symbolInnerColor,\n useNameLabel: true\n });\n }\n\n symbolEl.__radialOldRawX = symbolEl.__radialRawX;\n symbolEl.__radialOldRawY = symbolEl.__radialRawY;\n symbolEl.__radialRawX = targetLayout.rawX;\n symbolEl.__radialRawY = targetLayout.rawY;\n group.add(symbolEl);\n data.setItemGraphicEl(dataIndex, symbolEl);\n symbolEl.__oldX = symbolEl.x;\n symbolEl.__oldY = symbolEl.y;\n graphic.updateProps(symbolEl, {\n x: targetLayout.x,\n y: targetLayout.y\n }, seriesModel);\n var symbolPath = symbolEl.getSymbolPath();\n\n if (seriesModel.get('layout') === 'radial') {\n var realRoot = virtualRoot.children[0];\n var rootLayout = realRoot.getLayout();\n var length_1 = realRoot.children.length;\n var rad = void 0;\n var isLeft = void 0;\n\n if (targetLayout.x === rootLayout.x && node.isExpand === true && realRoot.children.length) {\n var center = {\n x: (realRoot.children[0].getLayout().x + realRoot.children[length_1 - 1].getLayout().x) / 2,\n y: (realRoot.children[0].getLayout().y + realRoot.children[length_1 - 1].getLayout().y) / 2\n };\n rad = Math.atan2(center.y - rootLayout.y, center.x - rootLayout.x);\n\n if (rad < 0) {\n rad = Math.PI * 2 + rad;\n }\n\n isLeft = center.x < rootLayout.x;\n\n if (isLeft) {\n rad = rad - Math.PI;\n }\n } else {\n rad = Math.atan2(targetLayout.y - rootLayout.y, targetLayout.x - rootLayout.x);\n\n if (rad < 0) {\n rad = Math.PI * 2 + rad;\n }\n\n if (node.children.length === 0 || node.children.length !== 0 && node.isExpand === false) {\n isLeft = targetLayout.x < rootLayout.x;\n\n if (isLeft) {\n rad = rad - Math.PI;\n }\n } else {\n isLeft = targetLayout.x > rootLayout.x;\n\n if (!isLeft) {\n rad = rad - Math.PI;\n }\n }\n }\n\n var textPosition = isLeft ? 'left' : 'right';\n var normalLabelModel = itemModel.getModel('label');\n var rotate = normalLabelModel.get('rotate');\n var labelRotateRadian = rotate * (Math.PI / 180);\n var textContent = symbolPath.getTextContent();\n\n if (textContent) {\n symbolPath.setTextConfig({\n position: normalLabelModel.get('position') || textPosition,\n rotation: rotate == null ? -rad : labelRotateRadian,\n origin: 'center'\n });\n textContent.setStyle('verticalAlign', 'middle');\n }\n } // Handle status\n\n\n var focus = itemModel.get(['emphasis', 'focus']);\n var focusDataIndices = focus === 'relative' ? zrUtil.concatArray(node.getAncestorsIndices(), node.getDescendantIndices()) : focus === 'ancestor' ? node.getAncestorsIndices() : focus === 'descendant' ? node.getDescendantIndices() : null;\n\n if (focusDataIndices) {\n // Modify the focus to data indices.\n getECData(symbolEl).focus = focusDataIndices;\n }\n\n drawEdge(seriesModel, node, virtualRoot, symbolEl, sourceOldLayout, sourceLayout, targetLayout, group);\n\n if (symbolEl.__edge) {\n symbolEl.onHoverStateChange = function (toState) {\n if (toState !== 'blur') {\n // NOTE: Ensure the parent elements will been blurred firstly.\n // According to the return of getAncestorsIndices and getDescendantIndices\n // TODO: A bit tricky.\n var parentEl = node.parentNode && data.getItemGraphicEl(node.parentNode.dataIndex);\n\n if (!(parentEl && parentEl.hoverState === HOVER_STATE_BLUR)) {\n setStatesFlag(symbolEl.__edge, toState);\n }\n }\n };\n }\n}\n\nfunction drawEdge(seriesModel, node, virtualRoot, symbolEl, sourceOldLayout, sourceLayout, targetLayout, group) {\n var itemModel = node.getModel();\n var edgeShape = seriesModel.get('edgeShape');\n var layout = seriesModel.get('layout');\n var orient = seriesModel.getOrient();\n var curvature = seriesModel.get(['lineStyle', 'curveness']);\n var edgeForkPosition = seriesModel.get('edgeForkPosition');\n var lineStyle = itemModel.getModel('lineStyle').getLineStyle();\n var edge = symbolEl.__edge; // curve edge from node -> parent\n // polyline edge from node -> children\n\n if (edgeShape === 'curve') {\n if (node.parentNode && node.parentNode !== virtualRoot) {\n if (!edge) {\n edge = symbolEl.__edge = new graphic.BezierCurve({\n shape: getEdgeShape(layout, orient, curvature, sourceOldLayout, sourceOldLayout)\n });\n }\n\n graphic.updateProps(edge, {\n shape: getEdgeShape(layout, orient, curvature, sourceLayout, targetLayout)\n }, seriesModel);\n }\n } else if (edgeShape === 'polyline') {\n if (layout === 'orthogonal') {\n if (node !== virtualRoot && node.children && node.children.length !== 0 && node.isExpand === true) {\n var children = node.children;\n var childPoints = [];\n\n for (var i = 0; i < children.length; i++) {\n var childLayout = children[i].getLayout();\n childPoints.push([childLayout.x, childLayout.y]);\n }\n\n if (!edge) {\n edge = symbolEl.__edge = new TreePath({\n shape: {\n parentPoint: [targetLayout.x, targetLayout.y],\n childPoints: [[targetLayout.x, targetLayout.y]],\n orient: orient,\n forkPosition: edgeForkPosition\n }\n });\n }\n\n graphic.updateProps(edge, {\n shape: {\n parentPoint: [targetLayout.x, targetLayout.y],\n childPoints: childPoints\n }\n }, seriesModel);\n }\n } else {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error('The polyline edgeShape can only be used in orthogonal layout');\n }\n }\n } // show all edge when edgeShape is 'curve', filter node `isExpand` is false when edgeShape is 'polyline'\n\n\n if (edge && !(edgeShape === 'polyline' && !node.isExpand)) {\n edge.useStyle(zrUtil.defaults({\n strokeNoScale: true,\n fill: null\n }, lineStyle));\n setStatesStylesFromModel(edge, itemModel, 'lineStyle');\n setDefaultStateProxy(edge);\n group.add(edge);\n }\n}\n\nfunction removeNodeEdge(node, data, group, seriesModel, removeAnimationOpt) {\n var virtualRoot = data.tree.root;\n\n var _a = getSourceNode(virtualRoot, node),\n source = _a.source,\n sourceLayout = _a.sourceLayout;\n\n var symbolEl = data.getItemGraphicEl(node.dataIndex);\n\n if (!symbolEl) {\n return;\n }\n\n var sourceSymbolEl = data.getItemGraphicEl(source.dataIndex);\n var sourceEdge = sourceSymbolEl.__edge; // 1. when expand the sub tree, delete the children node should delete the edge of\n // the source at the same time. because the polyline edge shape is only owned by the source.\n // 2.when the node is the only children of the source, delete the node should delete the edge of\n // the source at the same time. the same reason as above.\n\n var edge = symbolEl.__edge || (source.isExpand === false || source.children.length === 1 ? sourceEdge : undefined);\n var edgeShape = seriesModel.get('edgeShape');\n var layoutOpt = seriesModel.get('layout');\n var orient = seriesModel.get('orient');\n var curvature = seriesModel.get(['lineStyle', 'curveness']);\n\n if (edge) {\n if (edgeShape === 'curve') {\n graphic.removeElement(edge, {\n shape: getEdgeShape(layoutOpt, orient, curvature, sourceLayout, sourceLayout),\n style: {\n opacity: 0\n }\n }, seriesModel, {\n cb: function () {\n group.remove(edge);\n },\n removeOpt: removeAnimationOpt\n });\n } else if (edgeShape === 'polyline' && seriesModel.get('layout') === 'orthogonal') {\n graphic.removeElement(edge, {\n shape: {\n parentPoint: [sourceLayout.x, sourceLayout.y],\n childPoints: [[sourceLayout.x, sourceLayout.y]]\n },\n style: {\n opacity: 0\n }\n }, seriesModel, {\n cb: function () {\n group.remove(edge);\n },\n removeOpt: removeAnimationOpt\n });\n }\n }\n}\n\nfunction getSourceNode(virtualRoot, node) {\n var source = node.parentNode === virtualRoot ? node : node.parentNode || node;\n var sourceLayout;\n\n while (sourceLayout = source.getLayout(), sourceLayout == null) {\n source = source.parentNode === virtualRoot ? source : source.parentNode || source;\n }\n\n return {\n source: source,\n sourceLayout: sourceLayout\n };\n}\n\nfunction removeNode(data, dataIndex, symbolEl, group, seriesModel) {\n var node = data.tree.getNodeByDataIndex(dataIndex);\n var virtualRoot = data.tree.root;\n var sourceLayout = getSourceNode(virtualRoot, node).sourceLayout; // Use same duration and easing with update to have more consistent animation.\n\n var removeAnimationOpt = {\n duration: seriesModel.get('animationDurationUpdate'),\n easing: seriesModel.get('animationEasingUpdate')\n };\n graphic.removeElement(symbolEl, {\n x: sourceLayout.x + 1,\n y: sourceLayout.y + 1\n }, seriesModel, {\n cb: function () {\n group.remove(symbolEl);\n data.setItemGraphicEl(dataIndex, null);\n },\n removeOpt: removeAnimationOpt\n });\n symbolEl.fadeOut(null, data.hostModel, {\n fadeLabel: true,\n animation: removeAnimationOpt\n }); // remove edge as parent node\n\n node.children.forEach(function (childNode) {\n removeNodeEdge(childNode, data, group, seriesModel, removeAnimationOpt);\n }); // remove edge as child node\n\n removeNodeEdge(node, data, group, seriesModel, removeAnimationOpt);\n}\n\nfunction getEdgeShape(layoutOpt, orient, curvature, sourceLayout, targetLayout) {\n var cpx1;\n var cpy1;\n var cpx2;\n var cpy2;\n var x1;\n var x2;\n var y1;\n var y2;\n\n if (layoutOpt === 'radial') {\n x1 = sourceLayout.rawX;\n y1 = sourceLayout.rawY;\n x2 = targetLayout.rawX;\n y2 = targetLayout.rawY;\n var radialCoor1 = radialCoordinate(x1, y1);\n var radialCoor2 = radialCoordinate(x1, y1 + (y2 - y1) * curvature);\n var radialCoor3 = radialCoordinate(x2, y2 + (y1 - y2) * curvature);\n var radialCoor4 = radialCoordinate(x2, y2);\n return {\n x1: radialCoor1.x || 0,\n y1: radialCoor1.y || 0,\n x2: radialCoor4.x || 0,\n y2: radialCoor4.y || 0,\n cpx1: radialCoor2.x || 0,\n cpy1: radialCoor2.y || 0,\n cpx2: radialCoor3.x || 0,\n cpy2: radialCoor3.y || 0\n };\n } else {\n x1 = sourceLayout.x;\n y1 = sourceLayout.y;\n x2 = targetLayout.x;\n y2 = targetLayout.y;\n\n if (orient === 'LR' || orient === 'RL') {\n cpx1 = x1 + (x2 - x1) * curvature;\n cpy1 = y1;\n cpx2 = x2 + (x1 - x2) * curvature;\n cpy2 = y2;\n }\n\n if (orient === 'TB' || orient === 'BT') {\n cpx1 = x1;\n cpy1 = y1 + (y2 - y1) * curvature;\n cpx2 = x2;\n cpy2 = y2 + (y1 - y2) * curvature;\n }\n }\n\n return {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2,\n cpx1: cpx1,\n cpy1: cpy1,\n cpx2: cpx2,\n cpy2: cpy2\n };\n}\n\nexport default TreeView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport TreeView from './TreeView.js';\nimport TreeSeriesModel from './TreeSeries.js';\nimport treeLayout from './treeLayout.js';\nimport treeVisual from './treeVisual.js';\nimport { installTreeAction } from './treeAction.js';\nexport function install(registers) {\n registers.registerChartView(TreeView);\n registers.registerSeriesModel(TreeSeriesModel);\n registers.registerLayout(treeLayout);\n registers.registerVisual(treeVisual);\n installTreeAction(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/*\n* A third-party license is embedded for some of the code in this file:\n* The tree layoutHelper implementation was originally copied from\n* \"d3.js\"(https://github.com/d3/d3-hierarchy) with\n* some modifications made for this project.\n* (see more details in the comment of the specific method below.)\n* The use of the source code of this file is also subject to the terms\n* and consitions of the licence of \"d3.js\" (BSD-3Clause, see\n* ).\n*/\n\n/**\n * @file The layout algorithm of node-link tree diagrams. Here we using Reingold-Tilford algorithm to drawing\n * the tree.\n */\nimport * as layout from '../../util/layout.js';\n/**\n * Initialize all computational message for following algorithm.\n */\n\nexport function init(inRoot) {\n var root = inRoot;\n root.hierNode = {\n defaultAncestor: null,\n ancestor: root,\n prelim: 0,\n modifier: 0,\n change: 0,\n shift: 0,\n i: 0,\n thread: null\n };\n var nodes = [root];\n var node;\n var children;\n\n while (node = nodes.pop()) {\n // jshint ignore:line\n children = node.children;\n\n if (node.isExpand && children.length) {\n var n = children.length;\n\n for (var i = n - 1; i >= 0; i--) {\n var child = children[i];\n child.hierNode = {\n defaultAncestor: null,\n ancestor: child,\n prelim: 0,\n modifier: 0,\n change: 0,\n shift: 0,\n i: i,\n thread: null\n };\n nodes.push(child);\n }\n }\n }\n}\n/**\n * The implementation of this function was originally copied from \"d3.js\"\n * \n * with some modifications made for this program.\n * See the license statement at the head of this file.\n *\n * Computes a preliminary x coordinate for node. Before that, this function is\n * applied recursively to the children of node, as well as the function\n * apportion(). After spacing out the children by calling executeShifts(), the\n * node is placed to the midpoint of its outermost children.\n */\n\nexport function firstWalk(node, separation) {\n var children = node.isExpand ? node.children : [];\n var siblings = node.parentNode.children;\n var subtreeW = node.hierNode.i ? siblings[node.hierNode.i - 1] : null;\n\n if (children.length) {\n executeShifts(node);\n var midPoint = (children[0].hierNode.prelim + children[children.length - 1].hierNode.prelim) / 2;\n\n if (subtreeW) {\n node.hierNode.prelim = subtreeW.hierNode.prelim + separation(node, subtreeW);\n node.hierNode.modifier = node.hierNode.prelim - midPoint;\n } else {\n node.hierNode.prelim = midPoint;\n }\n } else if (subtreeW) {\n node.hierNode.prelim = subtreeW.hierNode.prelim + separation(node, subtreeW);\n }\n\n node.parentNode.hierNode.defaultAncestor = apportion(node, subtreeW, node.parentNode.hierNode.defaultAncestor || siblings[0], separation);\n}\n/**\n * The implementation of this function was originally copied from \"d3.js\"\n * \n * with some modifications made for this program.\n * See the license statement at the head of this file.\n *\n * Computes all real x-coordinates by summing up the modifiers recursively.\n */\n\nexport function secondWalk(node) {\n var nodeX = node.hierNode.prelim + node.parentNode.hierNode.modifier;\n node.setLayout({\n x: nodeX\n }, true);\n node.hierNode.modifier += node.parentNode.hierNode.modifier;\n}\nexport function separation(cb) {\n return arguments.length ? cb : defaultSeparation;\n}\n/**\n * Transform the common coordinate to radial coordinate.\n */\n\nexport function radialCoordinate(rad, r) {\n rad -= Math.PI / 2;\n return {\n x: r * Math.cos(rad),\n y: r * Math.sin(rad)\n };\n}\n/**\n * Get the layout position of the whole view.\n */\n\nexport function getViewRect(seriesModel, api) {\n return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n width: api.getWidth(),\n height: api.getHeight()\n });\n}\n/**\n * All other shifts, applied to the smaller subtrees between w- and w+, are\n * performed by this function.\n *\n * The implementation of this function was originally copied from \"d3.js\"\n * \n * with some modifications made for this program.\n * See the license statement at the head of this file.\n */\n\nfunction executeShifts(node) {\n var children = node.children;\n var n = children.length;\n var shift = 0;\n var change = 0;\n\n while (--n >= 0) {\n var child = children[n];\n child.hierNode.prelim += shift;\n child.hierNode.modifier += shift;\n change += child.hierNode.change;\n shift += child.hierNode.shift + change;\n }\n}\n/**\n * The implementation of this function was originally copied from \"d3.js\"\n * \n * with some modifications made for this program.\n * See the license statement at the head of this file.\n *\n * The core of the algorithm. Here, a new subtree is combined with the\n * previous subtrees. Threads are used to traverse the inside and outside\n * contours of the left and right subtree up to the highest common level.\n * Whenever two nodes of the inside contours conflict, we compute the left\n * one of the greatest uncommon ancestors using the function nextAncestor()\n * and call moveSubtree() to shift the subtree and prepare the shifts of\n * smaller subtrees. Finally, we add a new thread (if necessary).\n */\n\n\nfunction apportion(subtreeV, subtreeW, ancestor, separation) {\n if (subtreeW) {\n var nodeOutRight = subtreeV;\n var nodeInRight = subtreeV;\n var nodeOutLeft = nodeInRight.parentNode.children[0];\n var nodeInLeft = subtreeW;\n var sumOutRight = nodeOutRight.hierNode.modifier;\n var sumInRight = nodeInRight.hierNode.modifier;\n var sumOutLeft = nodeOutLeft.hierNode.modifier;\n var sumInLeft = nodeInLeft.hierNode.modifier;\n\n while (nodeInLeft = nextRight(nodeInLeft), nodeInRight = nextLeft(nodeInRight), nodeInLeft && nodeInRight) {\n nodeOutRight = nextRight(nodeOutRight);\n nodeOutLeft = nextLeft(nodeOutLeft);\n nodeOutRight.hierNode.ancestor = subtreeV;\n var shift = nodeInLeft.hierNode.prelim + sumInLeft - nodeInRight.hierNode.prelim - sumInRight + separation(nodeInLeft, nodeInRight);\n\n if (shift > 0) {\n moveSubtree(nextAncestor(nodeInLeft, subtreeV, ancestor), subtreeV, shift);\n sumInRight += shift;\n sumOutRight += shift;\n }\n\n sumInLeft += nodeInLeft.hierNode.modifier;\n sumInRight += nodeInRight.hierNode.modifier;\n sumOutRight += nodeOutRight.hierNode.modifier;\n sumOutLeft += nodeOutLeft.hierNode.modifier;\n }\n\n if (nodeInLeft && !nextRight(nodeOutRight)) {\n nodeOutRight.hierNode.thread = nodeInLeft;\n nodeOutRight.hierNode.modifier += sumInLeft - sumOutRight;\n }\n\n if (nodeInRight && !nextLeft(nodeOutLeft)) {\n nodeOutLeft.hierNode.thread = nodeInRight;\n nodeOutLeft.hierNode.modifier += sumInRight - sumOutLeft;\n ancestor = subtreeV;\n }\n }\n\n return ancestor;\n}\n/**\n * This function is used to traverse the right contour of a subtree.\n * It returns the rightmost child of node or the thread of node. The function\n * returns null if and only if node is on the highest depth of its subtree.\n */\n\n\nfunction nextRight(node) {\n var children = node.children;\n return children.length && node.isExpand ? children[children.length - 1] : node.hierNode.thread;\n}\n/**\n * This function is used to traverse the left contour of a subtree (or a subforest).\n * It returns the leftmost child of node or the thread of node. The function\n * returns null if and only if node is on the highest depth of its subtree.\n */\n\n\nfunction nextLeft(node) {\n var children = node.children;\n return children.length && node.isExpand ? children[0] : node.hierNode.thread;\n}\n/**\n * If nodeInLeft’s ancestor is a sibling of node, returns nodeInLeft’s ancestor.\n * Otherwise, returns the specified ancestor.\n */\n\n\nfunction nextAncestor(nodeInLeft, node, ancestor) {\n return nodeInLeft.hierNode.ancestor.parentNode === node.parentNode ? nodeInLeft.hierNode.ancestor : ancestor;\n}\n/**\n * The implementation of this function was originally copied from \"d3.js\"\n * \n * with some modifications made for this program.\n * See the license statement at the head of this file.\n *\n * Shifts the current subtree rooted at wr.\n * This is done by increasing prelim(w+) and modifier(w+) by shift.\n */\n\n\nfunction moveSubtree(wl, wr, shift) {\n var change = shift / (wr.hierNode.i - wl.hierNode.i);\n wr.hierNode.change -= change;\n wr.hierNode.shift += shift;\n wr.hierNode.modifier += shift;\n wr.hierNode.prelim += shift;\n wl.hierNode.change += change;\n}\n/**\n * The implementation of this function was originally copied from \"d3.js\"\n * \n * with some modifications made for this program.\n * See the license statement at the head of this file.\n */\n\n\nfunction defaultSeparation(node1, node2) {\n return node1.parentNode === node2.parentNode ? 1 : 2;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Traverse the tree from bottom to top and do something\n */\nfunction eachAfter(root, callback, separation) {\n var nodes = [root];\n var next = [];\n var node;\n\n while (node = nodes.pop()) {\n // jshint ignore:line\n next.push(node);\n\n if (node.isExpand) {\n var children = node.children;\n\n if (children.length) {\n for (var i = 0; i < children.length; i++) {\n nodes.push(children[i]);\n }\n }\n }\n }\n\n while (node = next.pop()) {\n // jshint ignore:line\n callback(node, separation);\n }\n}\n/**\n * Traverse the tree from top to bottom and do something\n */\n\n\nfunction eachBefore(root, callback) {\n var nodes = [root];\n var node;\n\n while (node = nodes.pop()) {\n // jshint ignore:line\n callback(node);\n\n if (node.isExpand) {\n var children = node.children;\n\n if (children.length) {\n for (var i = children.length - 1; i >= 0; i--) {\n nodes.push(children[i]);\n }\n }\n }\n }\n}\n\nexport { eachAfter, eachBefore };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { updateCenterAndZoom } from '../../action/roamHelper.js';\nexport function installTreeAction(registers) {\n registers.registerAction({\n type: 'treeExpandAndCollapse',\n event: 'treeExpandAndCollapse',\n update: 'update'\n }, function (payload, ecModel) {\n ecModel.eachComponent({\n mainType: 'series',\n subType: 'tree',\n query: payload\n }, function (seriesModel) {\n var dataIndex = payload.dataIndex;\n var tree = seriesModel.getData().tree;\n var node = tree.getNodeByDataIndex(dataIndex);\n node.isExpand = !node.isExpand;\n });\n });\n registers.registerAction({\n type: 'treeRoam',\n event: 'treeRoam',\n // Here we set 'none' instead of 'update', because roam action\n // just need to update the transform matrix without having to recalculate\n // the layout. So don't need to go through the whole update process, such\n // as 'dataPrcocess', 'coordSystemUpdate', 'layout' and so on.\n update: 'none'\n }, function (payload, ecModel, api) {\n ecModel.eachComponent({\n mainType: 'series',\n subType: 'tree',\n query: payload\n }, function (seriesModel) {\n var coordSys = seriesModel.coordinateSystem;\n var res = updateCenterAndZoom(coordSys, payload, undefined, api);\n seriesModel.setCenter && seriesModel.setCenter(res.center);\n seriesModel.setZoom && seriesModel.setZoom(res.zoom);\n });\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { eachAfter, eachBefore } from './traversalHelper.js';\nimport { init, firstWalk, secondWalk, separation as sep, radialCoordinate, getViewRect } from './layoutHelper.js';\nexport default function treeLayout(ecModel, api) {\n ecModel.eachSeriesByType('tree', function (seriesModel) {\n commonLayout(seriesModel, api);\n });\n}\n\nfunction commonLayout(seriesModel, api) {\n var layoutInfo = getViewRect(seriesModel, api);\n seriesModel.layoutInfo = layoutInfo;\n var layout = seriesModel.get('layout');\n var width = 0;\n var height = 0;\n var separation = null;\n\n if (layout === 'radial') {\n width = 2 * Math.PI;\n height = Math.min(layoutInfo.height, layoutInfo.width) / 2;\n separation = sep(function (node1, node2) {\n return (node1.parentNode === node2.parentNode ? 1 : 2) / node1.depth;\n });\n } else {\n width = layoutInfo.width;\n height = layoutInfo.height;\n separation = sep();\n }\n\n var virtualRoot = seriesModel.getData().tree.root;\n var realRoot = virtualRoot.children[0];\n\n if (realRoot) {\n init(virtualRoot);\n eachAfter(realRoot, firstWalk, separation);\n virtualRoot.hierNode.modifier = -realRoot.hierNode.prelim;\n eachBefore(realRoot, secondWalk);\n var left_1 = realRoot;\n var right_1 = realRoot;\n var bottom_1 = realRoot;\n eachBefore(realRoot, function (node) {\n var x = node.getLayout().x;\n\n if (x < left_1.getLayout().x) {\n left_1 = node;\n }\n\n if (x > right_1.getLayout().x) {\n right_1 = node;\n }\n\n if (node.depth > bottom_1.depth) {\n bottom_1 = node;\n }\n });\n var delta = left_1 === right_1 ? 1 : separation(left_1, right_1) / 2;\n var tx_1 = delta - left_1.getLayout().x;\n var kx_1 = 0;\n var ky_1 = 0;\n var coorX_1 = 0;\n var coorY_1 = 0;\n\n if (layout === 'radial') {\n kx_1 = width / (right_1.getLayout().x + delta + tx_1); // here we use (node.depth - 1), bucause the real root's depth is 1\n\n ky_1 = height / (bottom_1.depth - 1 || 1);\n eachBefore(realRoot, function (node) {\n coorX_1 = (node.getLayout().x + tx_1) * kx_1;\n coorY_1 = (node.depth - 1) * ky_1;\n var finalCoor = radialCoordinate(coorX_1, coorY_1);\n node.setLayout({\n x: finalCoor.x,\n y: finalCoor.y,\n rawX: coorX_1,\n rawY: coorY_1\n }, true);\n });\n } else {\n var orient_1 = seriesModel.getOrient();\n\n if (orient_1 === 'RL' || orient_1 === 'LR') {\n ky_1 = height / (right_1.getLayout().x + delta + tx_1);\n kx_1 = width / (bottom_1.depth - 1 || 1);\n eachBefore(realRoot, function (node) {\n coorY_1 = (node.getLayout().x + tx_1) * ky_1;\n coorX_1 = orient_1 === 'LR' ? (node.depth - 1) * kx_1 : width - (node.depth - 1) * kx_1;\n node.setLayout({\n x: coorX_1,\n y: coorY_1\n }, true);\n });\n } else if (orient_1 === 'TB' || orient_1 === 'BT') {\n kx_1 = width / (right_1.getLayout().x + delta + tx_1);\n ky_1 = height / (bottom_1.depth - 1 || 1);\n eachBefore(realRoot, function (node) {\n coorX_1 = (node.getLayout().x + tx_1) * kx_1;\n coorY_1 = orient_1 === 'TB' ? (node.depth - 1) * ky_1 : height - (node.depth - 1) * ky_1;\n node.setLayout({\n x: coorX_1,\n y: coorY_1\n }, true);\n });\n }\n }\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { extend } from 'zrender/lib/core/util.js';\nexport default function treeVisual(ecModel) {\n ecModel.eachSeriesByType('tree', function (seriesModel) {\n var data = seriesModel.getData();\n var tree = data.tree;\n tree.eachNode(function (node) {\n var model = node.getModel(); // TODO Optimize\n\n var style = model.getModel('itemStyle').getItemStyle();\n var existsStyle = data.ensureUniqueItemVisual(node.dataIndex, 'style');\n extend(existsStyle, style);\n });\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as graphic from '../../util/graphic.js';\nimport { getECData } from '../../util/innerStore.js';\nimport * as layout from '../../util/layout.js';\nimport { wrapTreePathInfo } from '../helper/treeHelper.js';\nimport { curry, defaults } from 'zrender/lib/core/util.js';\nimport { convertOptionIdName } from '../../util/model.js';\nimport { toggleHoverEmphasis, Z2_EMPHASIS_LIFT } from '../../util/states.js';\nimport { createTextStyle } from '../../label/labelStyle.js';\nvar TEXT_PADDING = 8;\nvar ITEM_GAP = 8;\nvar ARRAY_LENGTH = 5;\n\nvar Breadcrumb =\n/** @class */\nfunction () {\n function Breadcrumb(containerGroup) {\n this.group = new graphic.Group();\n containerGroup.add(this.group);\n }\n\n Breadcrumb.prototype.render = function (seriesModel, api, targetNode, onSelect) {\n var model = seriesModel.getModel('breadcrumb');\n var thisGroup = this.group;\n thisGroup.removeAll();\n\n if (!model.get('show') || !targetNode) {\n return;\n }\n\n var normalStyleModel = model.getModel('itemStyle');\n var emphasisModel = model.getModel('emphasis');\n var textStyleModel = normalStyleModel.getModel('textStyle');\n var emphasisTextStyleModel = emphasisModel.getModel(['itemStyle', 'textStyle']);\n var layoutParam = {\n pos: {\n left: model.get('left'),\n right: model.get('right'),\n top: model.get('top'),\n bottom: model.get('bottom')\n },\n box: {\n width: api.getWidth(),\n height: api.getHeight()\n },\n emptyItemWidth: model.get('emptyItemWidth'),\n totalWidth: 0,\n renderList: []\n };\n\n this._prepare(targetNode, layoutParam, textStyleModel);\n\n this._renderContent(seriesModel, layoutParam, normalStyleModel, emphasisModel, textStyleModel, emphasisTextStyleModel, onSelect);\n\n layout.positionElement(thisGroup, layoutParam.pos, layoutParam.box);\n };\n /**\n * Prepare render list and total width\n * @private\n */\n\n\n Breadcrumb.prototype._prepare = function (targetNode, layoutParam, textStyleModel) {\n for (var node = targetNode; node; node = node.parentNode) {\n var text = convertOptionIdName(node.getModel().get('name'), '');\n var textRect = textStyleModel.getTextRect(text);\n var itemWidth = Math.max(textRect.width + TEXT_PADDING * 2, layoutParam.emptyItemWidth);\n layoutParam.totalWidth += itemWidth + ITEM_GAP;\n layoutParam.renderList.push({\n node: node,\n text: text,\n width: itemWidth\n });\n }\n };\n /**\n * @private\n */\n\n\n Breadcrumb.prototype._renderContent = function (seriesModel, layoutParam, normalStyleModel, emphasisModel, textStyleModel, emphasisTextStyleModel, onSelect) {\n // Start rendering.\n var lastX = 0;\n var emptyItemWidth = layoutParam.emptyItemWidth;\n var height = seriesModel.get(['breadcrumb', 'height']);\n var availableSize = layout.getAvailableSize(layoutParam.pos, layoutParam.box);\n var totalWidth = layoutParam.totalWidth;\n var renderList = layoutParam.renderList;\n var emphasisItemStyle = emphasisModel.getModel('itemStyle').getItemStyle();\n\n for (var i = renderList.length - 1; i >= 0; i--) {\n var item = renderList[i];\n var itemNode = item.node;\n var itemWidth = item.width;\n var text = item.text; // Hdie text and shorten width if necessary.\n\n if (totalWidth > availableSize.width) {\n totalWidth -= itemWidth - emptyItemWidth;\n itemWidth = emptyItemWidth;\n text = null;\n }\n\n var el = new graphic.Polygon({\n shape: {\n points: makeItemPoints(lastX, 0, itemWidth, height, i === renderList.length - 1, i === 0)\n },\n style: defaults(normalStyleModel.getItemStyle(), {\n lineJoin: 'bevel'\n }),\n textContent: new graphic.Text({\n style: createTextStyle(textStyleModel, {\n text: text\n })\n }),\n textConfig: {\n position: 'inside'\n },\n z2: Z2_EMPHASIS_LIFT * 1e4,\n onclick: curry(onSelect, itemNode)\n });\n el.disableLabelAnimation = true;\n el.getTextContent().ensureState('emphasis').style = createTextStyle(emphasisTextStyleModel, {\n text: text\n });\n el.ensureState('emphasis').style = emphasisItemStyle;\n toggleHoverEmphasis(el, emphasisModel.get('focus'), emphasisModel.get('blurScope'), emphasisModel.get('disabled'));\n this.group.add(el);\n packEventData(el, seriesModel, itemNode);\n lastX += itemWidth + ITEM_GAP;\n }\n };\n\n Breadcrumb.prototype.remove = function () {\n this.group.removeAll();\n };\n\n return Breadcrumb;\n}();\n\nfunction makeItemPoints(x, y, itemWidth, itemHeight, head, tail) {\n var points = [[head ? x : x - ARRAY_LENGTH, y], [x + itemWidth, y], [x + itemWidth, y + itemHeight], [head ? x : x - ARRAY_LENGTH, y + itemHeight]];\n !tail && points.splice(2, 0, [x + itemWidth + ARRAY_LENGTH, y + itemHeight / 2]);\n !head && points.push([x, y + itemHeight / 2]);\n return points;\n} // Package custom mouse event.\n\n\nfunction packEventData(el, seriesModel, itemNode) {\n getECData(el).eventData = {\n componentType: 'series',\n componentSubType: 'treemap',\n componentIndex: seriesModel.componentIndex,\n seriesIndex: seriesModel.seriesIndex,\n seriesName: seriesModel.name,\n seriesType: 'treemap',\n selfType: 'breadcrumb',\n nodeData: {\n dataIndex: itemNode && itemNode.dataIndex,\n name: itemNode && itemNode.name\n },\n treePathInfo: itemNode && wrapTreePathInfo(itemNode, seriesModel)\n };\n}\n\nexport default Breadcrumb;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport SeriesModel from '../../model/Series.js';\nimport Tree from '../../data/Tree.js';\nimport Model from '../../model/Model.js';\nimport { wrapTreePathInfo } from '../helper/treeHelper.js';\nimport { normalizeToArray } from '../../util/model.js';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup.js';\nimport enableAriaDecalForTree from '../helper/enableAriaDecalForTree.js';\n\nvar TreemapSeriesModel =\n/** @class */\nfunction (_super) {\n __extends(TreemapSeriesModel, _super);\n\n function TreemapSeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = TreemapSeriesModel.type;\n _this.preventUsingHoverLayer = true;\n return _this;\n }\n /**\n * @override\n */\n\n\n TreemapSeriesModel.prototype.getInitialData = function (option, ecModel) {\n // Create a virtual root.\n var root = {\n name: option.name,\n children: option.data\n };\n completeTreeValue(root);\n var levels = option.levels || []; // Used in \"visual priority\" in `treemapVisual.js`.\n // This way is a little tricky, must satisfy the precondition:\n // 1. There is no `treeNode.getModel('itemStyle.xxx')` used.\n // 2. The `Model.prototype.getModel()` will not use any clone-like way.\n\n var designatedVisualItemStyle = this.designatedVisualItemStyle = {};\n var designatedVisualModel = new Model({\n itemStyle: designatedVisualItemStyle\n }, this, ecModel);\n levels = option.levels = setDefault(levels, ecModel);\n var levelModels = zrUtil.map(levels || [], function (levelDefine) {\n return new Model(levelDefine, designatedVisualModel, ecModel);\n }, this); // Make sure always a new tree is created when setOption,\n // in TreemapView, we check whether oldTree === newTree\n // to choose mappings approach among old shapes and new shapes.\n\n var tree = Tree.createTree(root, this, beforeLink);\n\n function beforeLink(nodeData) {\n nodeData.wrapMethod('getItemModel', function (model, idx) {\n var node = tree.getNodeByDataIndex(idx);\n var levelModel = node ? levelModels[node.depth] : null; // If no levelModel, we also need `designatedVisualModel`.\n\n model.parentModel = levelModel || designatedVisualModel;\n return model;\n });\n }\n\n return tree.data;\n };\n\n TreemapSeriesModel.prototype.optionUpdated = function () {\n this.resetViewRoot();\n };\n /**\n * @override\n * @param {number} dataIndex\n * @param {boolean} [mutipleSeries=false]\n */\n\n\n TreemapSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n var data = this.getData();\n var value = this.getRawValue(dataIndex);\n var name = data.getName(dataIndex);\n return createTooltipMarkup('nameValue', {\n name: name,\n value: value\n });\n };\n /**\n * Add tree path to tooltip param\n *\n * @override\n * @param {number} dataIndex\n * @return {Object}\n */\n\n\n TreemapSeriesModel.prototype.getDataParams = function (dataIndex) {\n var params = _super.prototype.getDataParams.apply(this, arguments);\n\n var node = this.getData().tree.getNodeByDataIndex(dataIndex);\n params.treeAncestors = wrapTreePathInfo(node, this); // compatitable the previous code.\n\n params.treePathInfo = params.treeAncestors;\n return params;\n };\n /**\n * @public\n * @param {Object} layoutInfo {\n * x: containerGroup x\n * y: containerGroup y\n * width: containerGroup width\n * height: containerGroup height\n * }\n */\n\n\n TreemapSeriesModel.prototype.setLayoutInfo = function (layoutInfo) {\n /**\n * @readOnly\n * @type {Object}\n */\n this.layoutInfo = this.layoutInfo || {};\n zrUtil.extend(this.layoutInfo, layoutInfo);\n };\n /**\n * @param {string} id\n * @return {number} index\n */\n\n\n TreemapSeriesModel.prototype.mapIdToIndex = function (id) {\n // A feature is implemented:\n // index is monotone increasing with the sequence of\n // input id at the first time.\n // This feature can make sure that each data item and its\n // mapped color have the same index between data list and\n // color list at the beginning, which is useful for user\n // to adjust data-color mapping.\n\n /**\n * @private\n * @type {Object}\n */\n var idIndexMap = this._idIndexMap;\n\n if (!idIndexMap) {\n idIndexMap = this._idIndexMap = zrUtil.createHashMap();\n /**\n * @private\n * @type {number}\n */\n\n this._idIndexMapCount = 0;\n }\n\n var index = idIndexMap.get(id);\n\n if (index == null) {\n idIndexMap.set(id, index = this._idIndexMapCount++);\n }\n\n return index;\n };\n\n TreemapSeriesModel.prototype.getViewRoot = function () {\n return this._viewRoot;\n };\n\n TreemapSeriesModel.prototype.resetViewRoot = function (viewRoot) {\n viewRoot ? this._viewRoot = viewRoot : viewRoot = this._viewRoot;\n var root = this.getRawData().tree.root;\n\n if (!viewRoot || viewRoot !== root && !root.contains(viewRoot)) {\n this._viewRoot = root;\n }\n };\n\n TreemapSeriesModel.prototype.enableAriaDecal = function () {\n enableAriaDecalForTree(this);\n };\n\n TreemapSeriesModel.type = 'series.treemap';\n TreemapSeriesModel.layoutMode = 'box';\n TreemapSeriesModel.defaultOption = {\n // Disable progressive rendering\n progressive: 0,\n // size: ['80%', '80%'], // deprecated, compatible with ec2.\n left: 'center',\n top: 'middle',\n width: '80%',\n height: '80%',\n sort: true,\n clipWindow: 'origin',\n squareRatio: 0.5 * (1 + Math.sqrt(5)),\n leafDepth: null,\n drillDownIcon: '▶',\n // to align specialized icon. ▷▶❒❐▼✚\n zoomToNodeRatio: 0.32 * 0.32,\n roam: true,\n nodeClick: 'zoomToNode',\n animation: true,\n animationDurationUpdate: 900,\n animationEasing: 'quinticInOut',\n breadcrumb: {\n show: true,\n height: 22,\n left: 'center',\n top: 'bottom',\n // right\n // bottom\n emptyItemWidth: 25,\n itemStyle: {\n color: 'rgba(0,0,0,0.7)',\n textStyle: {\n color: '#fff'\n }\n },\n emphasis: {\n itemStyle: {\n color: 'rgba(0,0,0,0.9)' // '#5793f3',\n\n }\n }\n },\n label: {\n show: true,\n // Do not use textDistance, for ellipsis rect just the same as treemap node rect.\n distance: 0,\n padding: 5,\n position: 'inside',\n // formatter: null,\n color: '#fff',\n overflow: 'truncate' // align\n // verticalAlign\n\n },\n upperLabel: {\n show: false,\n position: [0, '50%'],\n height: 20,\n // formatter: null,\n // color: '#fff',\n overflow: 'truncate',\n // align: null,\n verticalAlign: 'middle'\n },\n itemStyle: {\n color: null,\n colorAlpha: null,\n colorSaturation: null,\n borderWidth: 0,\n gapWidth: 0,\n borderColor: '#fff',\n borderColorSaturation: null // If specified, borderColor will be ineffective, and the\n // border color is evaluated by color of current node and\n // borderColorSaturation.\n\n },\n emphasis: {\n upperLabel: {\n show: true,\n position: [0, '50%'],\n overflow: 'truncate',\n verticalAlign: 'middle'\n }\n },\n visualDimension: 0,\n visualMin: null,\n visualMax: null,\n color: [],\n // level[n].color (if necessary).\n // + Specify color list of each level. level[0].color would be global\n // color list if not specified. (see method `setDefault`).\n // + But set as a empty array to forbid fetch color from global palette\n // when using nodeModel.get('color'), otherwise nodes on deep level\n // will always has color palette set and are not able to inherit color\n // from parent node.\n // + TreemapSeries.color can not be set as 'none', otherwise effect\n // legend color fetching (see seriesColor.js).\n colorAlpha: null,\n colorSaturation: null,\n colorMappingBy: 'index',\n visibleMin: 10,\n // be rendered. Only works when sort is 'asc' or 'desc'.\n childrenVisibleMin: null,\n // grandchildren will not show.\n // Why grandchildren? If not grandchildren but children,\n // some siblings show children and some not,\n // the appearance may be mess and not consistent,\n levels: [] // Each item: {\n // visibleMin, itemStyle, visualDimension, label\n // }\n\n };\n return TreemapSeriesModel;\n}(SeriesModel);\n/**\n * @param {Object} dataNode\n */\n\n\nfunction completeTreeValue(dataNode) {\n // Postorder travel tree.\n // If value of none-leaf node is not set,\n // calculate it by suming up the value of all children.\n var sum = 0;\n zrUtil.each(dataNode.children, function (child) {\n completeTreeValue(child);\n var childValue = child.value;\n zrUtil.isArray(childValue) && (childValue = childValue[0]);\n sum += childValue;\n });\n var thisValue = dataNode.value;\n\n if (zrUtil.isArray(thisValue)) {\n thisValue = thisValue[0];\n }\n\n if (thisValue == null || isNaN(thisValue)) {\n thisValue = sum;\n } // Value should not less than 0.\n\n\n if (thisValue < 0) {\n thisValue = 0;\n }\n\n zrUtil.isArray(dataNode.value) ? dataNode.value[0] = thisValue : dataNode.value = thisValue;\n}\n/**\n * set default to level configuration\n */\n\n\nfunction setDefault(levels, ecModel) {\n var globalColorList = normalizeToArray(ecModel.get('color'));\n var globalDecalList = normalizeToArray(ecModel.get(['aria', 'decal', 'decals']));\n\n if (!globalColorList) {\n return;\n }\n\n levels = levels || [];\n var hasColorDefine;\n var hasDecalDefine;\n zrUtil.each(levels, function (levelDefine) {\n var model = new Model(levelDefine);\n var modelColor = model.get('color');\n var modelDecal = model.get('decal');\n\n if (model.get(['itemStyle', 'color']) || modelColor && modelColor !== 'none') {\n hasColorDefine = true;\n }\n\n if (model.get(['itemStyle', 'decal']) || modelDecal && modelDecal !== 'none') {\n hasDecalDefine = true;\n }\n });\n var level0 = levels[0] || (levels[0] = {});\n\n if (!hasColorDefine) {\n level0.color = globalColorList.slice();\n }\n\n if (!hasDecalDefine && globalDecalList) {\n level0.decal = globalDecalList.slice();\n }\n\n return levels;\n}\n\nexport default TreemapSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport { bind, each, indexOf, curry, extend, normalizeCssArray, isFunction } from 'zrender/lib/core/util.js';\nimport * as graphic from '../../util/graphic.js';\nimport { getECData } from '../../util/innerStore.js';\nimport { isHighDownDispatcher, setAsHighDownDispatcher, setDefaultStateProxy, enableHoverFocus, Z2_EMPHASIS_LIFT } from '../../util/states.js';\nimport DataDiffer from '../../data/DataDiffer.js';\nimport * as helper from '../helper/treeHelper.js';\nimport Breadcrumb from './Breadcrumb.js';\nimport RoamController from '../../component/helper/RoamController.js';\nimport BoundingRect from 'zrender/lib/core/BoundingRect.js';\nimport * as matrix from 'zrender/lib/core/matrix.js';\nimport * as animationUtil from '../../util/animation.js';\nimport makeStyleMapper from '../../model/mixin/makeStyleMapper.js';\nimport ChartView from '../../view/Chart.js';\nimport Displayable from 'zrender/lib/graphic/Displayable.js';\nimport { makeInner, convertOptionIdName } from '../../util/model.js';\nimport { windowOpen } from '../../util/format.js';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle.js';\nvar Group = graphic.Group;\nvar Rect = graphic.Rect;\nvar DRAG_THRESHOLD = 3;\nvar PATH_LABEL_NOAMAL = 'label';\nvar PATH_UPPERLABEL_NORMAL = 'upperLabel'; // Should larger than emphasis states lift z\n\nvar Z2_BASE = Z2_EMPHASIS_LIFT * 10; // Should bigger than every z2.\n\nvar Z2_BG = Z2_EMPHASIS_LIFT * 2;\nvar Z2_CONTENT = Z2_EMPHASIS_LIFT * 3;\nvar getStateItemStyle = makeStyleMapper([['fill', 'color'], // `borderColor` and `borderWidth` has been occupied,\n// so use `stroke` to indicate the stroke of the rect.\n['stroke', 'strokeColor'], ['lineWidth', 'strokeWidth'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor'] // Option decal is in `DecalObject` but style.decal is in `PatternObject`.\n// So do not transfer decal directly.\n]);\n\nvar getItemStyleNormal = function (model) {\n // Normal style props should include emphasis style props.\n var itemStyle = getStateItemStyle(model); // Clear styles set by emphasis.\n\n itemStyle.stroke = itemStyle.fill = itemStyle.lineWidth = null;\n return itemStyle;\n};\n\nvar inner = makeInner();\n\nvar TreemapView =\n/** @class */\nfunction (_super) {\n __extends(TreemapView, _super);\n\n function TreemapView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = TreemapView.type;\n _this._state = 'ready';\n _this._storage = createStorage();\n return _this;\n }\n /**\n * @override\n */\n\n\n TreemapView.prototype.render = function (seriesModel, ecModel, api, payload) {\n var models = ecModel.findComponents({\n mainType: 'series',\n subType: 'treemap',\n query: payload\n });\n\n if (indexOf(models, seriesModel) < 0) {\n return;\n }\n\n this.seriesModel = seriesModel;\n this.api = api;\n this.ecModel = ecModel;\n var types = ['treemapZoomToNode', 'treemapRootToNode'];\n var targetInfo = helper.retrieveTargetInfo(payload, types, seriesModel);\n var payloadType = payload && payload.type;\n var layoutInfo = seriesModel.layoutInfo;\n var isInit = !this._oldTree;\n var thisStorage = this._storage; // Mark new root when action is treemapRootToNode.\n\n var reRoot = payloadType === 'treemapRootToNode' && targetInfo && thisStorage ? {\n rootNodeGroup: thisStorage.nodeGroup[targetInfo.node.getRawIndex()],\n direction: payload.direction\n } : null;\n\n var containerGroup = this._giveContainerGroup(layoutInfo);\n\n var hasAnimation = seriesModel.get('animation');\n\n var renderResult = this._doRender(containerGroup, seriesModel, reRoot);\n\n hasAnimation && !isInit && (!payloadType || payloadType === 'treemapZoomToNode' || payloadType === 'treemapRootToNode') ? this._doAnimation(containerGroup, renderResult, seriesModel, reRoot) : renderResult.renderFinally();\n\n this._resetController(api);\n\n this._renderBreadcrumb(seriesModel, api, targetInfo);\n };\n\n TreemapView.prototype._giveContainerGroup = function (layoutInfo) {\n var containerGroup = this._containerGroup;\n\n if (!containerGroup) {\n // FIXME\n // 加一层containerGroup是为了clip,但是现在clip功能并没有实现。\n containerGroup = this._containerGroup = new Group();\n\n this._initEvents(containerGroup);\n\n this.group.add(containerGroup);\n }\n\n containerGroup.x = layoutInfo.x;\n containerGroup.y = layoutInfo.y;\n return containerGroup;\n };\n\n TreemapView.prototype._doRender = function (containerGroup, seriesModel, reRoot) {\n var thisTree = seriesModel.getData().tree;\n var oldTree = this._oldTree; // Clear last shape records.\n\n var lastsForAnimation = createStorage();\n var thisStorage = createStorage();\n var oldStorage = this._storage;\n var willInvisibleEls = [];\n\n function doRenderNode(thisNode, oldNode, parentGroup, depth) {\n return renderNode(seriesModel, thisStorage, oldStorage, reRoot, lastsForAnimation, willInvisibleEls, thisNode, oldNode, parentGroup, depth);\n } // Notice: When thisTree and oldTree are the same tree (see list.cloneShallow),\n // the oldTree is actually losted, so we cannot find all of the old graphic\n // elements from tree. So we use this strategy: make element storage, move\n // from old storage to new storage, clear old storage.\n\n\n dualTravel(thisTree.root ? [thisTree.root] : [], oldTree && oldTree.root ? [oldTree.root] : [], containerGroup, thisTree === oldTree || !oldTree, 0); // Process all removing.\n\n var willDeleteEls = clearStorage(oldStorage);\n this._oldTree = thisTree;\n this._storage = thisStorage;\n return {\n lastsForAnimation: lastsForAnimation,\n willDeleteEls: willDeleteEls,\n renderFinally: renderFinally\n };\n\n function dualTravel(thisViewChildren, oldViewChildren, parentGroup, sameTree, depth) {\n // When 'render' is triggered by action,\n // 'this' and 'old' may be the same tree,\n // we use rawIndex in that case.\n if (sameTree) {\n oldViewChildren = thisViewChildren;\n each(thisViewChildren, function (child, index) {\n !child.isRemoved() && processNode(index, index);\n });\n } // Diff hierarchically (diff only in each subtree, but not whole).\n // because, consistency of view is important.\n else {\n new DataDiffer(oldViewChildren, thisViewChildren, getKey, getKey).add(processNode).update(processNode).remove(curry(processNode, null)).execute();\n }\n\n function getKey(node) {\n // Identify by name or raw index.\n return node.getId();\n }\n\n function processNode(newIndex, oldIndex) {\n var thisNode = newIndex != null ? thisViewChildren[newIndex] : null;\n var oldNode = oldIndex != null ? oldViewChildren[oldIndex] : null;\n var group = doRenderNode(thisNode, oldNode, parentGroup, depth);\n group && dualTravel(thisNode && thisNode.viewChildren || [], oldNode && oldNode.viewChildren || [], group, sameTree, depth + 1);\n }\n }\n\n function clearStorage(storage) {\n var willDeleteEls = createStorage();\n storage && each(storage, function (store, storageName) {\n var delEls = willDeleteEls[storageName];\n each(store, function (el) {\n el && (delEls.push(el), inner(el).willDelete = true);\n });\n });\n return willDeleteEls;\n }\n\n function renderFinally() {\n each(willDeleteEls, function (els) {\n each(els, function (el) {\n el.parent && el.parent.remove(el);\n });\n });\n each(willInvisibleEls, function (el) {\n el.invisible = true; // Setting invisible is for optimizing, so no need to set dirty,\n // just mark as invisible.\n\n el.dirty();\n });\n }\n };\n\n TreemapView.prototype._doAnimation = function (containerGroup, renderResult, seriesModel, reRoot) {\n var durationOption = seriesModel.get('animationDurationUpdate');\n var easingOption = seriesModel.get('animationEasing'); // TODO: do not support function until necessary.\n\n var duration = (isFunction(durationOption) ? 0 : durationOption) || 0;\n var easing = (isFunction(easingOption) ? null : easingOption) || 'cubicOut';\n var animationWrap = animationUtil.createWrap(); // Make delete animations.\n\n each(renderResult.willDeleteEls, function (store, storageName) {\n each(store, function (el, rawIndex) {\n if (el.invisible) {\n return;\n }\n\n var parent = el.parent; // Always has parent, and parent is nodeGroup.\n\n var target;\n var innerStore = inner(parent);\n\n if (reRoot && reRoot.direction === 'drillDown') {\n target = parent === reRoot.rootNodeGroup // This is the content element of view root.\n // Only `content` will enter this branch, because\n // `background` and `nodeGroup` will not be deleted.\n ? {\n shape: {\n x: 0,\n y: 0,\n width: innerStore.nodeWidth,\n height: innerStore.nodeHeight\n },\n style: {\n opacity: 0\n }\n } // Others.\n : {\n style: {\n opacity: 0\n }\n };\n } else {\n var targetX = 0;\n var targetY = 0;\n\n if (!innerStore.willDelete) {\n // Let node animate to right-bottom corner, cooperating with fadeout,\n // which is appropriate for user understanding.\n // Divided by 2 for reRoot rolling up effect.\n targetX = innerStore.nodeWidth / 2;\n targetY = innerStore.nodeHeight / 2;\n }\n\n target = storageName === 'nodeGroup' ? {\n x: targetX,\n y: targetY,\n style: {\n opacity: 0\n }\n } : {\n shape: {\n x: targetX,\n y: targetY,\n width: 0,\n height: 0\n },\n style: {\n opacity: 0\n }\n };\n } // TODO: do not support delay until necessary.\n\n\n target && animationWrap.add(el, target, duration, 0, easing);\n });\n }); // Make other animations\n\n each(this._storage, function (store, storageName) {\n each(store, function (el, rawIndex) {\n var last = renderResult.lastsForAnimation[storageName][rawIndex];\n var target = {};\n\n if (!last) {\n return;\n }\n\n if (el instanceof graphic.Group) {\n if (last.oldX != null) {\n target.x = el.x;\n target.y = el.y;\n el.x = last.oldX;\n el.y = last.oldY;\n }\n } else {\n if (last.oldShape) {\n target.shape = extend({}, el.shape);\n el.setShape(last.oldShape);\n }\n\n if (last.fadein) {\n el.setStyle('opacity', 0);\n target.style = {\n opacity: 1\n };\n } // When animation is stopped for succedent animation starting,\n // el.style.opacity might not be 1\n else if (el.style.opacity !== 1) {\n target.style = {\n opacity: 1\n };\n }\n }\n\n animationWrap.add(el, target, duration, 0, easing);\n });\n }, this);\n this._state = 'animating';\n animationWrap.finished(bind(function () {\n this._state = 'ready';\n renderResult.renderFinally();\n }, this)).start();\n };\n\n TreemapView.prototype._resetController = function (api) {\n var controller = this._controller; // Init controller.\n\n if (!controller) {\n controller = this._controller = new RoamController(api.getZr());\n controller.enable(this.seriesModel.get('roam'));\n controller.on('pan', bind(this._onPan, this));\n controller.on('zoom', bind(this._onZoom, this));\n }\n\n var rect = new BoundingRect(0, 0, api.getWidth(), api.getHeight());\n controller.setPointerChecker(function (e, x, y) {\n return rect.contain(x, y);\n });\n };\n\n TreemapView.prototype._clearController = function () {\n var controller = this._controller;\n\n if (controller) {\n controller.dispose();\n controller = null;\n }\n };\n\n TreemapView.prototype._onPan = function (e) {\n if (this._state !== 'animating' && (Math.abs(e.dx) > DRAG_THRESHOLD || Math.abs(e.dy) > DRAG_THRESHOLD)) {\n // These param must not be cached.\n var root = this.seriesModel.getData().tree.root;\n\n if (!root) {\n return;\n }\n\n var rootLayout = root.getLayout();\n\n if (!rootLayout) {\n return;\n }\n\n this.api.dispatchAction({\n type: 'treemapMove',\n from: this.uid,\n seriesId: this.seriesModel.id,\n rootRect: {\n x: rootLayout.x + e.dx,\n y: rootLayout.y + e.dy,\n width: rootLayout.width,\n height: rootLayout.height\n }\n });\n }\n };\n\n TreemapView.prototype._onZoom = function (e) {\n var mouseX = e.originX;\n var mouseY = e.originY;\n\n if (this._state !== 'animating') {\n // These param must not be cached.\n var root = this.seriesModel.getData().tree.root;\n\n if (!root) {\n return;\n }\n\n var rootLayout = root.getLayout();\n\n if (!rootLayout) {\n return;\n }\n\n var rect = new BoundingRect(rootLayout.x, rootLayout.y, rootLayout.width, rootLayout.height);\n var layoutInfo = this.seriesModel.layoutInfo; // Transform mouse coord from global to containerGroup.\n\n mouseX -= layoutInfo.x;\n mouseY -= layoutInfo.y; // Scale root bounding rect.\n\n var m = matrix.create();\n matrix.translate(m, m, [-mouseX, -mouseY]);\n matrix.scale(m, m, [e.scale, e.scale]);\n matrix.translate(m, m, [mouseX, mouseY]);\n rect.applyTransform(m);\n this.api.dispatchAction({\n type: 'treemapRender',\n from: this.uid,\n seriesId: this.seriesModel.id,\n rootRect: {\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height\n }\n });\n }\n };\n\n TreemapView.prototype._initEvents = function (containerGroup) {\n var _this = this;\n\n containerGroup.on('click', function (e) {\n if (_this._state !== 'ready') {\n return;\n }\n\n var nodeClick = _this.seriesModel.get('nodeClick', true);\n\n if (!nodeClick) {\n return;\n }\n\n var targetInfo = _this.findTarget(e.offsetX, e.offsetY);\n\n if (!targetInfo) {\n return;\n }\n\n var node = targetInfo.node;\n\n if (node.getLayout().isLeafRoot) {\n _this._rootToNode(targetInfo);\n } else {\n if (nodeClick === 'zoomToNode') {\n _this._zoomToNode(targetInfo);\n } else if (nodeClick === 'link') {\n var itemModel = node.hostTree.data.getItemModel(node.dataIndex);\n var link = itemModel.get('link', true);\n var linkTarget = itemModel.get('target', true) || 'blank';\n link && windowOpen(link, linkTarget);\n }\n }\n }, this);\n };\n\n TreemapView.prototype._renderBreadcrumb = function (seriesModel, api, targetInfo) {\n var _this = this;\n\n if (!targetInfo) {\n targetInfo = seriesModel.get('leafDepth', true) != null ? {\n node: seriesModel.getViewRoot()\n } // FIXME\n // better way?\n // Find breadcrumb tail on center of containerGroup.\n : this.findTarget(api.getWidth() / 2, api.getHeight() / 2);\n\n if (!targetInfo) {\n targetInfo = {\n node: seriesModel.getData().tree.root\n };\n }\n }\n\n (this._breadcrumb || (this._breadcrumb = new Breadcrumb(this.group))).render(seriesModel, api, targetInfo.node, function (node) {\n if (_this._state !== 'animating') {\n helper.aboveViewRoot(seriesModel.getViewRoot(), node) ? _this._rootToNode({\n node: node\n }) : _this._zoomToNode({\n node: node\n });\n }\n });\n };\n /**\n * @override\n */\n\n\n TreemapView.prototype.remove = function () {\n this._clearController();\n\n this._containerGroup && this._containerGroup.removeAll();\n this._storage = createStorage();\n this._state = 'ready';\n this._breadcrumb && this._breadcrumb.remove();\n };\n\n TreemapView.prototype.dispose = function () {\n this._clearController();\n };\n\n TreemapView.prototype._zoomToNode = function (targetInfo) {\n this.api.dispatchAction({\n type: 'treemapZoomToNode',\n from: this.uid,\n seriesId: this.seriesModel.id,\n targetNode: targetInfo.node\n });\n };\n\n TreemapView.prototype._rootToNode = function (targetInfo) {\n this.api.dispatchAction({\n type: 'treemapRootToNode',\n from: this.uid,\n seriesId: this.seriesModel.id,\n targetNode: targetInfo.node\n });\n };\n /**\n * @public\n * @param {number} x Global coord x.\n * @param {number} y Global coord y.\n * @return {Object} info If not found, return undefined;\n * @return {number} info.node Target node.\n * @return {number} info.offsetX x refer to target node.\n * @return {number} info.offsetY y refer to target node.\n */\n\n\n TreemapView.prototype.findTarget = function (x, y) {\n var targetInfo;\n var viewRoot = this.seriesModel.getViewRoot();\n viewRoot.eachNode({\n attr: 'viewChildren',\n order: 'preorder'\n }, function (node) {\n var bgEl = this._storage.background[node.getRawIndex()]; // If invisible, there might be no element.\n\n\n if (bgEl) {\n var point = bgEl.transformCoordToLocal(x, y);\n var shape = bgEl.shape; // For performance consideration, don't use 'getBoundingRect'.\n\n if (shape.x <= point[0] && point[0] <= shape.x + shape.width && shape.y <= point[1] && point[1] <= shape.y + shape.height) {\n targetInfo = {\n node: node,\n offsetX: point[0],\n offsetY: point[1]\n };\n } else {\n return false; // Suppress visit subtree.\n }\n }\n }, this);\n return targetInfo;\n };\n\n TreemapView.type = 'treemap';\n return TreemapView;\n}(ChartView);\n/**\n * @inner\n */\n\n\nfunction createStorage() {\n return {\n nodeGroup: [],\n background: [],\n content: []\n };\n}\n/**\n * @inner\n * @return Return undefined means do not travel further.\n */\n\n\nfunction renderNode(seriesModel, thisStorage, oldStorage, reRoot, lastsForAnimation, willInvisibleEls, thisNode, oldNode, parentGroup, depth) {\n // Whether under viewRoot.\n if (!thisNode) {\n // Deleting nodes will be performed finally. This method just find\n // element from old storage, or create new element, set them to new\n // storage, and set styles.\n return;\n } // -------------------------------------------------------------------\n // Start of closure variables available in \"Procedures in renderNode\".\n\n\n var thisLayout = thisNode.getLayout();\n var data = seriesModel.getData();\n var nodeModel = thisNode.getModel(); // Only for enabling highlight/downplay. Clear firstly.\n // Because some node will not be rendered.\n\n data.setItemGraphicEl(thisNode.dataIndex, null);\n\n if (!thisLayout || !thisLayout.isInView) {\n return;\n }\n\n var thisWidth = thisLayout.width;\n var thisHeight = thisLayout.height;\n var borderWidth = thisLayout.borderWidth;\n var thisInvisible = thisLayout.invisible;\n var thisRawIndex = thisNode.getRawIndex();\n var oldRawIndex = oldNode && oldNode.getRawIndex();\n var thisViewChildren = thisNode.viewChildren;\n var upperHeight = thisLayout.upperHeight;\n var isParent = thisViewChildren && thisViewChildren.length;\n var itemStyleNormalModel = nodeModel.getModel('itemStyle');\n var itemStyleEmphasisModel = nodeModel.getModel(['emphasis', 'itemStyle']);\n var itemStyleBlurModel = nodeModel.getModel(['blur', 'itemStyle']);\n var itemStyleSelectModel = nodeModel.getModel(['select', 'itemStyle']);\n var borderRadius = itemStyleNormalModel.get('borderRadius') || 0; // End of closure ariables available in \"Procedures in renderNode\".\n // -----------------------------------------------------------------\n // Node group\n\n var group = giveGraphic('nodeGroup', Group);\n\n if (!group) {\n return;\n }\n\n parentGroup.add(group); // x,y are not set when el is above view root.\n\n group.x = thisLayout.x || 0;\n group.y = thisLayout.y || 0;\n group.markRedraw();\n inner(group).nodeWidth = thisWidth;\n inner(group).nodeHeight = thisHeight;\n\n if (thisLayout.isAboveViewRoot) {\n return group;\n } // Background\n\n\n var bg = giveGraphic('background', Rect, depth, Z2_BG);\n bg && renderBackground(group, bg, isParent && thisLayout.upperLabelHeight);\n var emphasisModel = nodeModel.getModel('emphasis');\n var focus = emphasisModel.get('focus');\n var blurScope = emphasisModel.get('blurScope');\n var isDisabled = emphasisModel.get('disabled');\n var focusOrIndices = focus === 'ancestor' ? thisNode.getAncestorsIndices() : focus === 'descendant' ? thisNode.getDescendantIndices() : focus; // No children, render content.\n\n if (isParent) {\n // Because of the implementation about \"traverse\" in graphic hover style, we\n // can not set hover listener on the \"group\" of non-leaf node. Otherwise the\n // hover event from the descendents will be listenered.\n if (isHighDownDispatcher(group)) {\n setAsHighDownDispatcher(group, false);\n }\n\n if (bg) {\n setAsHighDownDispatcher(bg, !isDisabled); // Only for enabling highlight/downplay.\n\n data.setItemGraphicEl(thisNode.dataIndex, bg);\n enableHoverFocus(bg, focusOrIndices, blurScope);\n }\n } else {\n var content = giveGraphic('content', Rect, depth, Z2_CONTENT);\n content && renderContent(group, content);\n bg.disableMorphing = true;\n\n if (bg && isHighDownDispatcher(bg)) {\n setAsHighDownDispatcher(bg, false);\n }\n\n setAsHighDownDispatcher(group, !isDisabled); // Only for enabling highlight/downplay.\n\n data.setItemGraphicEl(thisNode.dataIndex, group);\n enableHoverFocus(group, focusOrIndices, blurScope);\n }\n\n return group; // ----------------------------\n // | Procedures in renderNode |\n // ----------------------------\n\n function renderBackground(group, bg, useUpperLabel) {\n var ecData = getECData(bg); // For tooltip.\n\n ecData.dataIndex = thisNode.dataIndex;\n ecData.seriesIndex = seriesModel.seriesIndex;\n bg.setShape({\n x: 0,\n y: 0,\n width: thisWidth,\n height: thisHeight,\n r: borderRadius\n });\n\n if (thisInvisible) {\n // If invisible, do not set visual, otherwise the element will\n // change immediately before animation. We think it is OK to\n // remain its origin color when moving out of the view window.\n processInvisible(bg);\n } else {\n bg.invisible = false;\n var style = thisNode.getVisual('style');\n var visualBorderColor = style.stroke;\n var normalStyle = getItemStyleNormal(itemStyleNormalModel);\n normalStyle.fill = visualBorderColor;\n var emphasisStyle = getStateItemStyle(itemStyleEmphasisModel);\n emphasisStyle.fill = itemStyleEmphasisModel.get('borderColor');\n var blurStyle = getStateItemStyle(itemStyleBlurModel);\n blurStyle.fill = itemStyleBlurModel.get('borderColor');\n var selectStyle = getStateItemStyle(itemStyleSelectModel);\n selectStyle.fill = itemStyleSelectModel.get('borderColor');\n\n if (useUpperLabel) {\n var upperLabelWidth = thisWidth - 2 * borderWidth;\n prepareText( // PENDING: convert ZRColor to ColorString for text.\n bg, visualBorderColor, style.opacity, {\n x: borderWidth,\n y: 0,\n width: upperLabelWidth,\n height: upperHeight\n });\n } // For old bg.\n else {\n bg.removeTextContent();\n }\n\n bg.setStyle(normalStyle);\n bg.ensureState('emphasis').style = emphasisStyle;\n bg.ensureState('blur').style = blurStyle;\n bg.ensureState('select').style = selectStyle;\n setDefaultStateProxy(bg);\n }\n\n group.add(bg);\n }\n\n function renderContent(group, content) {\n var ecData = getECData(content); // For tooltip.\n\n ecData.dataIndex = thisNode.dataIndex;\n ecData.seriesIndex = seriesModel.seriesIndex;\n var contentWidth = Math.max(thisWidth - 2 * borderWidth, 0);\n var contentHeight = Math.max(thisHeight - 2 * borderWidth, 0);\n content.culling = true;\n content.setShape({\n x: borderWidth,\n y: borderWidth,\n width: contentWidth,\n height: contentHeight,\n r: borderRadius\n });\n\n if (thisInvisible) {\n // If invisible, do not set visual, otherwise the element will\n // change immediately before animation. We think it is OK to\n // remain its origin color when moving out of the view window.\n processInvisible(content);\n } else {\n content.invisible = false;\n var nodeStyle = thisNode.getVisual('style');\n var visualColor = nodeStyle.fill;\n var normalStyle = getItemStyleNormal(itemStyleNormalModel);\n normalStyle.fill = visualColor;\n normalStyle.decal = nodeStyle.decal;\n var emphasisStyle = getStateItemStyle(itemStyleEmphasisModel);\n var blurStyle = getStateItemStyle(itemStyleBlurModel);\n var selectStyle = getStateItemStyle(itemStyleSelectModel); // PENDING: convert ZRColor to ColorString for text.\n\n prepareText(content, visualColor, nodeStyle.opacity, null);\n content.setStyle(normalStyle);\n content.ensureState('emphasis').style = emphasisStyle;\n content.ensureState('blur').style = blurStyle;\n content.ensureState('select').style = selectStyle;\n setDefaultStateProxy(content);\n }\n\n group.add(content);\n }\n\n function processInvisible(element) {\n // Delay invisible setting utill animation finished,\n // avoid element vanish suddenly before animation.\n !element.invisible && willInvisibleEls.push(element);\n }\n\n function prepareText(rectEl, visualColor, visualOpacity, // Can be null/undefined\n upperLabelRect) {\n var normalLabelModel = nodeModel.getModel(upperLabelRect ? PATH_UPPERLABEL_NORMAL : PATH_LABEL_NOAMAL);\n var defaultText = convertOptionIdName(nodeModel.get('name'), null);\n var isShow = normalLabelModel.getShallow('show');\n setLabelStyle(rectEl, getLabelStatesModels(nodeModel, upperLabelRect ? PATH_UPPERLABEL_NORMAL : PATH_LABEL_NOAMAL), {\n defaultText: isShow ? defaultText : null,\n inheritColor: visualColor,\n defaultOpacity: visualOpacity,\n labelFetcher: seriesModel,\n labelDataIndex: thisNode.dataIndex\n });\n var textEl = rectEl.getTextContent();\n\n if (!textEl) {\n return;\n }\n\n var textStyle = textEl.style;\n var textPadding = normalizeCssArray(textStyle.padding || 0);\n\n if (upperLabelRect) {\n rectEl.setTextConfig({\n layoutRect: upperLabelRect\n });\n textEl.disableLabelLayout = true;\n }\n\n textEl.beforeUpdate = function () {\n var width = Math.max((upperLabelRect ? upperLabelRect.width : rectEl.shape.width) - textPadding[1] - textPadding[3], 0);\n var height = Math.max((upperLabelRect ? upperLabelRect.height : rectEl.shape.height) - textPadding[0] - textPadding[2], 0);\n\n if (textStyle.width !== width || textStyle.height !== height) {\n textEl.setStyle({\n width: width,\n height: height\n });\n }\n };\n\n textStyle.truncateMinChar = 2;\n textStyle.lineOverflow = 'truncate';\n addDrillDownIcon(textStyle, upperLabelRect, thisLayout);\n var textEmphasisState = textEl.getState('emphasis');\n addDrillDownIcon(textEmphasisState ? textEmphasisState.style : null, upperLabelRect, thisLayout);\n }\n\n function addDrillDownIcon(style, upperLabelRect, thisLayout) {\n var text = style ? style.text : null;\n\n if (!upperLabelRect && thisLayout.isLeafRoot && text != null) {\n var iconChar = seriesModel.get('drillDownIcon', true);\n style.text = iconChar ? iconChar + ' ' + text : text;\n }\n }\n\n function giveGraphic(storageName, Ctor, depth, z) {\n var element = oldRawIndex != null && oldStorage[storageName][oldRawIndex];\n var lasts = lastsForAnimation[storageName];\n\n if (element) {\n // Remove from oldStorage\n oldStorage[storageName][oldRawIndex] = null;\n prepareAnimationWhenHasOld(lasts, element);\n } // If invisible and no old element, do not create new element (for optimizing).\n else if (!thisInvisible) {\n element = new Ctor();\n\n if (element instanceof Displayable) {\n element.z2 = calculateZ2(depth, z);\n }\n\n prepareAnimationWhenNoOld(lasts, element);\n } // Set to thisStorage\n\n\n return thisStorage[storageName][thisRawIndex] = element;\n }\n\n function prepareAnimationWhenHasOld(lasts, element) {\n var lastCfg = lasts[thisRawIndex] = {};\n\n if (element instanceof Group) {\n lastCfg.oldX = element.x;\n lastCfg.oldY = element.y;\n } else {\n lastCfg.oldShape = extend({}, element.shape);\n }\n } // If a element is new, we need to find the animation start point carefully,\n // otherwise it will looks strange when 'zoomToNode'.\n\n\n function prepareAnimationWhenNoOld(lasts, element) {\n var lastCfg = lasts[thisRawIndex] = {};\n var parentNode = thisNode.parentNode;\n var isGroup = element instanceof graphic.Group;\n\n if (parentNode && (!reRoot || reRoot.direction === 'drillDown')) {\n var parentOldX = 0;\n var parentOldY = 0; // New nodes appear from right-bottom corner in 'zoomToNode' animation.\n // For convenience, get old bounding rect from background.\n\n var parentOldBg = lastsForAnimation.background[parentNode.getRawIndex()];\n\n if (!reRoot && parentOldBg && parentOldBg.oldShape) {\n parentOldX = parentOldBg.oldShape.width;\n parentOldY = parentOldBg.oldShape.height;\n } // When no parent old shape found, its parent is new too,\n // so we can just use {x:0, y:0}.\n\n\n if (isGroup) {\n lastCfg.oldX = 0;\n lastCfg.oldY = parentOldY;\n } else {\n lastCfg.oldShape = {\n x: parentOldX,\n y: parentOldY,\n width: 0,\n height: 0\n };\n }\n } // Fade in, user can be aware that these nodes are new.\n\n\n lastCfg.fadein = !isGroup;\n }\n} // We cannot set all background with the same z, because the behaviour of\n// drill down and roll up differ background creation sequence from tree\n// hierarchy sequence, which cause lower background elements to overlap\n// upper ones. So we calculate z based on depth.\n// Moreover, we try to shrink down z interval to [0, 1] to avoid that\n// treemap with large z overlaps other components.\n\n\nfunction calculateZ2(depth, z2InLevel) {\n return depth * Z2_BASE + z2InLevel;\n}\n\nexport default TreemapView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { installTreemapAction } from './treemapAction.js';\nimport TreemapSeriesModel from './TreemapSeries.js';\nimport TreemapView from './TreemapView.js';\nimport treemapVisual from './treemapVisual.js';\nimport treemapLayout from './treemapLayout.js';\nexport function install(registers) {\n registers.registerSeriesModel(TreemapSeriesModel);\n registers.registerChartView(TreemapView);\n registers.registerVisual(treemapVisual);\n registers.registerLayout(treemapLayout);\n installTreemapAction(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as helper from '../helper/treeHelper.js';\nimport { noop } from 'zrender/lib/core/util.js';\nvar actionTypes = ['treemapZoomToNode', 'treemapRender', 'treemapMove'];\nexport function installTreemapAction(registers) {\n for (var i = 0; i < actionTypes.length; i++) {\n registers.registerAction({\n type: actionTypes[i],\n update: 'updateView'\n }, noop);\n }\n\n registers.registerAction({\n type: 'treemapRootToNode',\n update: 'updateView'\n }, function (payload, ecModel) {\n ecModel.eachComponent({\n mainType: 'series',\n subType: 'treemap',\n query: payload\n }, handleRootToNode);\n\n function handleRootToNode(model, index) {\n var types = ['treemapZoomToNode', 'treemapRootToNode'];\n var targetInfo = helper.retrieveTargetInfo(payload, types, model);\n\n if (targetInfo) {\n var originViewRoot = model.getViewRoot();\n\n if (originViewRoot) {\n payload.direction = helper.aboveViewRoot(originViewRoot, targetInfo.node) ? 'rollUp' : 'drillDown';\n }\n\n model.resetViewRoot(targetInfo.node);\n }\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/*\n* A third-party license is embedded for some of the code in this file:\n* The treemap layout implementation was originally copied from\n* \"d3.js\" with some modifications made for this project.\n* (See more details in the comment of the method \"squarify\" below.)\n* The use of the source code of this file is also subject to the terms\n* and consitions of the license of \"d3.js\" (BSD-3Clause, see\n* ).\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport BoundingRect from 'zrender/lib/core/BoundingRect.js';\nimport { parsePercent, MAX_SAFE_INTEGER } from '../../util/number.js';\nimport * as layout from '../../util/layout.js';\nimport * as helper from '../helper/treeHelper.js';\nvar mathMax = Math.max;\nvar mathMin = Math.min;\nvar retrieveValue = zrUtil.retrieve;\nvar each = zrUtil.each;\nvar PATH_BORDER_WIDTH = ['itemStyle', 'borderWidth'];\nvar PATH_GAP_WIDTH = ['itemStyle', 'gapWidth'];\nvar PATH_UPPER_LABEL_SHOW = ['upperLabel', 'show'];\nvar PATH_UPPER_LABEL_HEIGHT = ['upperLabel', 'height'];\n;\n/**\n * @public\n */\n\nexport default {\n seriesType: 'treemap',\n reset: function (seriesModel, ecModel, api, payload) {\n // Layout result in each node:\n // {x, y, width, height, area, borderWidth}\n var ecWidth = api.getWidth();\n var ecHeight = api.getHeight();\n var seriesOption = seriesModel.option;\n var layoutInfo = layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n width: api.getWidth(),\n height: api.getHeight()\n });\n var size = seriesOption.size || []; // Compatible with ec2.\n\n var containerWidth = parsePercent(retrieveValue(layoutInfo.width, size[0]), ecWidth);\n var containerHeight = parsePercent(retrieveValue(layoutInfo.height, size[1]), ecHeight); // Fetch payload info.\n\n var payloadType = payload && payload.type;\n var types = ['treemapZoomToNode', 'treemapRootToNode'];\n var targetInfo = helper.retrieveTargetInfo(payload, types, seriesModel);\n var rootRect = payloadType === 'treemapRender' || payloadType === 'treemapMove' ? payload.rootRect : null;\n var viewRoot = seriesModel.getViewRoot();\n var viewAbovePath = helper.getPathToRoot(viewRoot);\n\n if (payloadType !== 'treemapMove') {\n var rootSize = payloadType === 'treemapZoomToNode' ? estimateRootSize(seriesModel, targetInfo, viewRoot, containerWidth, containerHeight) : rootRect ? [rootRect.width, rootRect.height] : [containerWidth, containerHeight];\n var sort_1 = seriesOption.sort;\n\n if (sort_1 && sort_1 !== 'asc' && sort_1 !== 'desc') {\n // Default to be desc order.\n sort_1 = 'desc';\n }\n\n var options = {\n squareRatio: seriesOption.squareRatio,\n sort: sort_1,\n leafDepth: seriesOption.leafDepth\n }; // layout should be cleared because using updateView but not update.\n\n viewRoot.hostTree.clearLayouts(); // TODO\n // optimize: if out of view clip, do not layout.\n // But take care that if do not render node out of view clip,\n // how to calculate start po\n\n var viewRootLayout_1 = {\n x: 0,\n y: 0,\n width: rootSize[0],\n height: rootSize[1],\n area: rootSize[0] * rootSize[1]\n };\n viewRoot.setLayout(viewRootLayout_1);\n squarify(viewRoot, options, false, 0); // Supplement layout.\n\n viewRootLayout_1 = viewRoot.getLayout();\n each(viewAbovePath, function (node, index) {\n var childValue = (viewAbovePath[index + 1] || viewRoot).getValue();\n node.setLayout(zrUtil.extend({\n dataExtent: [childValue, childValue],\n borderWidth: 0,\n upperHeight: 0\n }, viewRootLayout_1));\n });\n }\n\n var treeRoot = seriesModel.getData().tree.root;\n treeRoot.setLayout(calculateRootPosition(layoutInfo, rootRect, targetInfo), true);\n seriesModel.setLayoutInfo(layoutInfo); // FIXME\n // 现在没有clip功能,暂时取ec高宽。\n\n prunning(treeRoot, // Transform to base element coordinate system.\n new BoundingRect(-layoutInfo.x, -layoutInfo.y, ecWidth, ecHeight), viewAbovePath, viewRoot, 0);\n }\n};\n/**\n * Layout treemap with squarify algorithm.\n * The original presentation of this algorithm\n * was made by Mark Bruls, Kees Huizing, and Jarke J. van Wijk\n * .\n * The implementation of this algorithm was originally copied from \"d3.js\"\n * \n * with some modifications made for this program.\n * See the license statement at the head of this file.\n *\n * @protected\n * @param {module:echarts/data/Tree~TreeNode} node\n * @param {Object} options\n * @param {string} options.sort 'asc' or 'desc'\n * @param {number} options.squareRatio\n * @param {boolean} hideChildren\n * @param {number} depth\n */\n\nfunction squarify(node, options, hideChildren, depth) {\n var width;\n var height;\n\n if (node.isRemoved()) {\n return;\n }\n\n var thisLayout = node.getLayout();\n width = thisLayout.width;\n height = thisLayout.height; // Considering border and gap\n\n var nodeModel = node.getModel();\n var borderWidth = nodeModel.get(PATH_BORDER_WIDTH);\n var halfGapWidth = nodeModel.get(PATH_GAP_WIDTH) / 2;\n var upperLabelHeight = getUpperLabelHeight(nodeModel);\n var upperHeight = Math.max(borderWidth, upperLabelHeight);\n var layoutOffset = borderWidth - halfGapWidth;\n var layoutOffsetUpper = upperHeight - halfGapWidth;\n node.setLayout({\n borderWidth: borderWidth,\n upperHeight: upperHeight,\n upperLabelHeight: upperLabelHeight\n }, true);\n width = mathMax(width - 2 * layoutOffset, 0);\n height = mathMax(height - layoutOffset - layoutOffsetUpper, 0);\n var totalArea = width * height;\n var viewChildren = initChildren(node, nodeModel, totalArea, options, hideChildren, depth);\n\n if (!viewChildren.length) {\n return;\n }\n\n var rect = {\n x: layoutOffset,\n y: layoutOffsetUpper,\n width: width,\n height: height\n };\n var rowFixedLength = mathMin(width, height);\n var best = Infinity; // the best row score so far\n\n var row = [];\n row.area = 0;\n\n for (var i = 0, len = viewChildren.length; i < len;) {\n var child = viewChildren[i];\n row.push(child);\n row.area += child.getLayout().area;\n var score = worst(row, rowFixedLength, options.squareRatio); // continue with this orientation\n\n if (score <= best) {\n i++;\n best = score;\n } // abort, and try a different orientation\n else {\n row.area -= row.pop().getLayout().area;\n position(row, rowFixedLength, rect, halfGapWidth, false);\n rowFixedLength = mathMin(rect.width, rect.height);\n row.length = row.area = 0;\n best = Infinity;\n }\n }\n\n if (row.length) {\n position(row, rowFixedLength, rect, halfGapWidth, true);\n }\n\n if (!hideChildren) {\n var childrenVisibleMin = nodeModel.get('childrenVisibleMin');\n\n if (childrenVisibleMin != null && totalArea < childrenVisibleMin) {\n hideChildren = true;\n }\n }\n\n for (var i = 0, len = viewChildren.length; i < len; i++) {\n squarify(viewChildren[i], options, hideChildren, depth + 1);\n }\n}\n/**\n * Set area to each child, and calculate data extent for visual coding.\n */\n\n\nfunction initChildren(node, nodeModel, totalArea, options, hideChildren, depth) {\n var viewChildren = node.children || [];\n var orderBy = options.sort;\n orderBy !== 'asc' && orderBy !== 'desc' && (orderBy = null);\n var overLeafDepth = options.leafDepth != null && options.leafDepth <= depth; // leafDepth has higher priority.\n\n if (hideChildren && !overLeafDepth) {\n return node.viewChildren = [];\n } // Sort children, order by desc.\n\n\n viewChildren = zrUtil.filter(viewChildren, function (child) {\n return !child.isRemoved();\n });\n sort(viewChildren, orderBy);\n var info = statistic(nodeModel, viewChildren, orderBy);\n\n if (info.sum === 0) {\n return node.viewChildren = [];\n }\n\n info.sum = filterByThreshold(nodeModel, totalArea, info.sum, orderBy, viewChildren);\n\n if (info.sum === 0) {\n return node.viewChildren = [];\n } // Set area to each child.\n\n\n for (var i = 0, len = viewChildren.length; i < len; i++) {\n var area = viewChildren[i].getValue() / info.sum * totalArea; // Do not use setLayout({...}, true), because it is needed to clear last layout.\n\n viewChildren[i].setLayout({\n area: area\n });\n }\n\n if (overLeafDepth) {\n viewChildren.length && node.setLayout({\n isLeafRoot: true\n }, true);\n viewChildren.length = 0;\n }\n\n node.viewChildren = viewChildren;\n node.setLayout({\n dataExtent: info.dataExtent\n }, true);\n return viewChildren;\n}\n/**\n * Consider 'visibleMin'. Modify viewChildren and get new sum.\n */\n\n\nfunction filterByThreshold(nodeModel, totalArea, sum, orderBy, orderedChildren) {\n // visibleMin is not supported yet when no option.sort.\n if (!orderBy) {\n return sum;\n }\n\n var visibleMin = nodeModel.get('visibleMin');\n var len = orderedChildren.length;\n var deletePoint = len; // Always travel from little value to big value.\n\n for (var i = len - 1; i >= 0; i--) {\n var value = orderedChildren[orderBy === 'asc' ? len - i - 1 : i].getValue();\n\n if (value / sum * totalArea < visibleMin) {\n deletePoint = i;\n sum -= value;\n }\n }\n\n orderBy === 'asc' ? orderedChildren.splice(0, len - deletePoint) : orderedChildren.splice(deletePoint, len - deletePoint);\n return sum;\n}\n/**\n * Sort\n */\n\n\nfunction sort(viewChildren, orderBy) {\n if (orderBy) {\n viewChildren.sort(function (a, b) {\n var diff = orderBy === 'asc' ? a.getValue() - b.getValue() : b.getValue() - a.getValue();\n return diff === 0 ? orderBy === 'asc' ? a.dataIndex - b.dataIndex : b.dataIndex - a.dataIndex : diff;\n });\n }\n\n return viewChildren;\n}\n/**\n * Statistic\n */\n\n\nfunction statistic(nodeModel, children, orderBy) {\n // Calculate sum.\n var sum = 0;\n\n for (var i = 0, len = children.length; i < len; i++) {\n sum += children[i].getValue();\n } // Statistic data extent for latter visual coding.\n // Notice: data extent should be calculate based on raw children\n // but not filtered view children, otherwise visual mapping will not\n // be stable when zoom (where children is filtered by visibleMin).\n\n\n var dimension = nodeModel.get('visualDimension');\n var dataExtent; // The same as area dimension.\n\n if (!children || !children.length) {\n dataExtent = [NaN, NaN];\n } else if (dimension === 'value' && orderBy) {\n dataExtent = [children[children.length - 1].getValue(), children[0].getValue()];\n orderBy === 'asc' && dataExtent.reverse();\n } // Other dimension.\n else {\n dataExtent = [Infinity, -Infinity];\n each(children, function (child) {\n var value = child.getValue(dimension);\n value < dataExtent[0] && (dataExtent[0] = value);\n value > dataExtent[1] && (dataExtent[1] = value);\n });\n }\n\n return {\n sum: sum,\n dataExtent: dataExtent\n };\n}\n/**\n * Computes the score for the specified row,\n * as the worst aspect ratio.\n */\n\n\nfunction worst(row, rowFixedLength, ratio) {\n var areaMax = 0;\n var areaMin = Infinity;\n\n for (var i = 0, area = void 0, len = row.length; i < len; i++) {\n area = row[i].getLayout().area;\n\n if (area) {\n area < areaMin && (areaMin = area);\n area > areaMax && (areaMax = area);\n }\n }\n\n var squareArea = row.area * row.area;\n var f = rowFixedLength * rowFixedLength * ratio;\n return squareArea ? mathMax(f * areaMax / squareArea, squareArea / (f * areaMin)) : Infinity;\n}\n/**\n * Positions the specified row of nodes. Modifies `rect`.\n */\n\n\nfunction position(row, rowFixedLength, rect, halfGapWidth, flush) {\n // When rowFixedLength === rect.width,\n // it is horizontal subdivision,\n // rowFixedLength is the width of the subdivision,\n // rowOtherLength is the height of the subdivision,\n // and nodes will be positioned from left to right.\n // wh[idx0WhenH] means: when horizontal,\n // wh[idx0WhenH] => wh[0] => 'width'.\n // xy[idx1WhenH] => xy[1] => 'y'.\n var idx0WhenH = rowFixedLength === rect.width ? 0 : 1;\n var idx1WhenH = 1 - idx0WhenH;\n var xy = ['x', 'y'];\n var wh = ['width', 'height'];\n var last = rect[xy[idx0WhenH]];\n var rowOtherLength = rowFixedLength ? row.area / rowFixedLength : 0;\n\n if (flush || rowOtherLength > rect[wh[idx1WhenH]]) {\n rowOtherLength = rect[wh[idx1WhenH]]; // over+underflow\n }\n\n for (var i = 0, rowLen = row.length; i < rowLen; i++) {\n var node = row[i];\n var nodeLayout = {};\n var step = rowOtherLength ? node.getLayout().area / rowOtherLength : 0;\n var wh1 = nodeLayout[wh[idx1WhenH]] = mathMax(rowOtherLength - 2 * halfGapWidth, 0); // We use Math.max/min to avoid negative width/height when considering gap width.\n\n var remain = rect[xy[idx0WhenH]] + rect[wh[idx0WhenH]] - last;\n var modWH = i === rowLen - 1 || remain < step ? remain : step;\n var wh0 = nodeLayout[wh[idx0WhenH]] = mathMax(modWH - 2 * halfGapWidth, 0);\n nodeLayout[xy[idx1WhenH]] = rect[xy[idx1WhenH]] + mathMin(halfGapWidth, wh1 / 2);\n nodeLayout[xy[idx0WhenH]] = last + mathMin(halfGapWidth, wh0 / 2);\n last += modWH;\n node.setLayout(nodeLayout, true);\n }\n\n rect[xy[idx1WhenH]] += rowOtherLength;\n rect[wh[idx1WhenH]] -= rowOtherLength;\n} // Return [containerWidth, containerHeight] as default.\n\n\nfunction estimateRootSize(seriesModel, targetInfo, viewRoot, containerWidth, containerHeight) {\n // If targetInfo.node exists, we zoom to the node,\n // so estimate whole width and height by target node.\n var currNode = (targetInfo || {}).node;\n var defaultSize = [containerWidth, containerHeight];\n\n if (!currNode || currNode === viewRoot) {\n return defaultSize;\n }\n\n var parent;\n var viewArea = containerWidth * containerHeight;\n var area = viewArea * seriesModel.option.zoomToNodeRatio;\n\n while (parent = currNode.parentNode) {\n // jshint ignore:line\n var sum = 0;\n var siblings = parent.children;\n\n for (var i = 0, len = siblings.length; i < len; i++) {\n sum += siblings[i].getValue();\n }\n\n var currNodeValue = currNode.getValue();\n\n if (currNodeValue === 0) {\n return defaultSize;\n }\n\n area *= sum / currNodeValue; // Considering border, suppose aspect ratio is 1.\n\n var parentModel = parent.getModel();\n var borderWidth = parentModel.get(PATH_BORDER_WIDTH);\n var upperHeight = Math.max(borderWidth, getUpperLabelHeight(parentModel));\n area += 4 * borderWidth * borderWidth + (3 * borderWidth + upperHeight) * Math.pow(area, 0.5);\n area > MAX_SAFE_INTEGER && (area = MAX_SAFE_INTEGER);\n currNode = parent;\n }\n\n area < viewArea && (area = viewArea);\n var scale = Math.pow(area / viewArea, 0.5);\n return [containerWidth * scale, containerHeight * scale];\n} // Root position based on coord of containerGroup\n\n\nfunction calculateRootPosition(layoutInfo, rootRect, targetInfo) {\n if (rootRect) {\n return {\n x: rootRect.x,\n y: rootRect.y\n };\n }\n\n var defaultPosition = {\n x: 0,\n y: 0\n };\n\n if (!targetInfo) {\n return defaultPosition;\n } // If targetInfo is fetched by 'retrieveTargetInfo',\n // old tree and new tree are the same tree,\n // so the node still exists and we can visit it.\n\n\n var targetNode = targetInfo.node;\n var layout = targetNode.getLayout();\n\n if (!layout) {\n return defaultPosition;\n } // Transform coord from local to container.\n\n\n var targetCenter = [layout.width / 2, layout.height / 2];\n var node = targetNode;\n\n while (node) {\n var nodeLayout = node.getLayout();\n targetCenter[0] += nodeLayout.x;\n targetCenter[1] += nodeLayout.y;\n node = node.parentNode;\n }\n\n return {\n x: layoutInfo.width / 2 - targetCenter[0],\n y: layoutInfo.height / 2 - targetCenter[1]\n };\n} // Mark nodes visible for prunning when visual coding and rendering.\n// Prunning depends on layout and root position, so we have to do it after layout.\n\n\nfunction prunning(node, clipRect, viewAbovePath, viewRoot, depth) {\n var nodeLayout = node.getLayout();\n var nodeInViewAbovePath = viewAbovePath[depth];\n var isAboveViewRoot = nodeInViewAbovePath && nodeInViewAbovePath === node;\n\n if (nodeInViewAbovePath && !isAboveViewRoot || depth === viewAbovePath.length && node !== viewRoot) {\n return;\n }\n\n node.setLayout({\n // isInView means: viewRoot sub tree + viewAbovePath\n isInView: true,\n // invisible only means: outside view clip so that the node can not\n // see but still layout for animation preparation but not render.\n invisible: !isAboveViewRoot && !clipRect.intersect(nodeLayout),\n isAboveViewRoot: isAboveViewRoot\n }, true); // Transform to child coordinate.\n\n var childClipRect = new BoundingRect(clipRect.x - nodeLayout.x, clipRect.y - nodeLayout.y, clipRect.width, clipRect.height);\n each(node.viewChildren || [], function (child) {\n prunning(child, childClipRect, viewAbovePath, viewRoot, depth + 1);\n });\n}\n\nfunction getUpperLabelHeight(model) {\n return model.get(PATH_UPPER_LABEL_SHOW) ? model.get(PATH_UPPER_LABEL_HEIGHT) : 0;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport VisualMapping from '../../visual/VisualMapping.js';\nimport { each, extend, isArray } from 'zrender/lib/core/util.js';\nimport { modifyHSL, modifyAlpha } from 'zrender/lib/tool/color.js';\nimport { makeInner } from '../../util/model.js';\nvar ITEM_STYLE_NORMAL = 'itemStyle';\nvar inner = makeInner();\nexport default {\n seriesType: 'treemap',\n reset: function (seriesModel) {\n var tree = seriesModel.getData().tree;\n var root = tree.root;\n\n if (root.isRemoved()) {\n return;\n }\n\n travelTree(root, // Visual should calculate from tree root but not view root.\n {}, seriesModel.getViewRoot().getAncestors(), seriesModel);\n }\n};\n\nfunction travelTree(node, designatedVisual, viewRootAncestors, seriesModel) {\n var nodeModel = node.getModel();\n var nodeLayout = node.getLayout();\n var data = node.hostTree.data; // Optimize\n\n if (!nodeLayout || nodeLayout.invisible || !nodeLayout.isInView) {\n return;\n }\n\n var nodeItemStyleModel = nodeModel.getModel(ITEM_STYLE_NORMAL);\n var visuals = buildVisuals(nodeItemStyleModel, designatedVisual, seriesModel);\n var existsStyle = data.ensureUniqueItemVisual(node.dataIndex, 'style'); // calculate border color\n\n var borderColor = nodeItemStyleModel.get('borderColor');\n var borderColorSaturation = nodeItemStyleModel.get('borderColorSaturation');\n var thisNodeColor;\n\n if (borderColorSaturation != null) {\n // For performance, do not always execute 'calculateColor'.\n thisNodeColor = calculateColor(visuals);\n borderColor = calculateBorderColor(borderColorSaturation, thisNodeColor);\n }\n\n existsStyle.stroke = borderColor;\n var viewChildren = node.viewChildren;\n\n if (!viewChildren || !viewChildren.length) {\n thisNodeColor = calculateColor(visuals); // Apply visual to this node.\n\n existsStyle.fill = thisNodeColor;\n } else {\n var mapping_1 = buildVisualMapping(node, nodeModel, nodeLayout, nodeItemStyleModel, visuals, viewChildren); // Designate visual to children.\n\n each(viewChildren, function (child, index) {\n // If higher than viewRoot, only ancestors of viewRoot is needed to visit.\n if (child.depth >= viewRootAncestors.length || child === viewRootAncestors[child.depth]) {\n var childVisual = mapVisual(nodeModel, visuals, child, index, mapping_1, seriesModel);\n travelTree(child, childVisual, viewRootAncestors, seriesModel);\n }\n });\n }\n}\n\nfunction buildVisuals(nodeItemStyleModel, designatedVisual, seriesModel) {\n var visuals = extend({}, designatedVisual);\n var designatedVisualItemStyle = seriesModel.designatedVisualItemStyle;\n each(['color', 'colorAlpha', 'colorSaturation'], function (visualName) {\n // Priority: thisNode > thisLevel > parentNodeDesignated > seriesModel\n designatedVisualItemStyle[visualName] = designatedVisual[visualName];\n var val = nodeItemStyleModel.get(visualName);\n designatedVisualItemStyle[visualName] = null;\n val != null && (visuals[visualName] = val);\n });\n return visuals;\n}\n\nfunction calculateColor(visuals) {\n var color = getValueVisualDefine(visuals, 'color');\n\n if (color) {\n var colorAlpha = getValueVisualDefine(visuals, 'colorAlpha');\n var colorSaturation = getValueVisualDefine(visuals, 'colorSaturation');\n\n if (colorSaturation) {\n color = modifyHSL(color, null, null, colorSaturation);\n }\n\n if (colorAlpha) {\n color = modifyAlpha(color, colorAlpha);\n }\n\n return color;\n }\n}\n\nfunction calculateBorderColor(borderColorSaturation, thisNodeColor) {\n return thisNodeColor != null // Can only be string\n ? modifyHSL(thisNodeColor, null, null, borderColorSaturation) : null;\n}\n\nfunction getValueVisualDefine(visuals, name) {\n var value = visuals[name];\n\n if (value != null && value !== 'none') {\n return value;\n }\n}\n\nfunction buildVisualMapping(node, nodeModel, nodeLayout, nodeItemStyleModel, visuals, viewChildren) {\n if (!viewChildren || !viewChildren.length) {\n return;\n }\n\n var rangeVisual = getRangeVisual(nodeModel, 'color') || visuals.color != null && visuals.color !== 'none' && (getRangeVisual(nodeModel, 'colorAlpha') || getRangeVisual(nodeModel, 'colorSaturation'));\n\n if (!rangeVisual) {\n return;\n }\n\n var visualMin = nodeModel.get('visualMin');\n var visualMax = nodeModel.get('visualMax');\n var dataExtent = nodeLayout.dataExtent.slice();\n visualMin != null && visualMin < dataExtent[0] && (dataExtent[0] = visualMin);\n visualMax != null && visualMax > dataExtent[1] && (dataExtent[1] = visualMax);\n var colorMappingBy = nodeModel.get('colorMappingBy');\n var opt = {\n type: rangeVisual.name,\n dataExtent: dataExtent,\n visual: rangeVisual.range\n };\n\n if (opt.type === 'color' && (colorMappingBy === 'index' || colorMappingBy === 'id')) {\n opt.mappingMethod = 'category';\n opt.loop = true; // categories is ordinal, so do not set opt.categories.\n } else {\n opt.mappingMethod = 'linear';\n }\n\n var mapping = new VisualMapping(opt);\n inner(mapping).drColorMappingBy = colorMappingBy;\n return mapping;\n} // Notice: If we don't have the attribute 'colorRange', but only use\n// attribute 'color' to represent both concepts of 'colorRange' and 'color',\n// (It means 'colorRange' when 'color' is Array, means 'color' when not array),\n// this problem will be encountered:\n// If a level-1 node doesn't have children, and its siblings have children,\n// and colorRange is set on level-1, then the node cannot be colored.\n// So we separate 'colorRange' and 'color' to different attributes.\n\n\nfunction getRangeVisual(nodeModel, name) {\n // 'colorRange', 'colorARange', 'colorSRange'.\n // If not exists on this node, fetch from levels and series.\n var range = nodeModel.get(name);\n return isArray(range) && range.length ? {\n name: name,\n range: range\n } : null;\n}\n\nfunction mapVisual(nodeModel, visuals, child, index, mapping, seriesModel) {\n var childVisuals = extend({}, visuals);\n\n if (mapping) {\n // Only support color, colorAlpha, colorSaturation.\n var mappingType = mapping.type;\n var colorMappingBy = mappingType === 'color' && inner(mapping).drColorMappingBy;\n var value = colorMappingBy === 'index' ? index : colorMappingBy === 'id' ? seriesModel.mapIdToIndex(child.getId()) : child.getValue(nodeModel.get('visualDimension'));\n childVisuals[mappingType] = mapping.mapValueToVisual(value);\n }\n\n return childVisuals;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport ariaVisual from '../../visual/aria.js';\nimport ariaPreprocessor from './preprocessor.js';\nexport function install(registers) {\n registers.registerPreprocessor(ariaPreprocessor);\n registers.registerVisual(registers.PRIORITY.VISUAL.ARIA, ariaVisual);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nexport default function ariaPreprocessor(option) {\n if (!option || !option.aria) {\n return;\n }\n\n var aria = option.aria; // aria.show is deprecated and should use aria.enabled instead\n\n if (aria.show != null) {\n aria.enabled = aria.show;\n }\n\n aria.label = aria.label || {}; // move description, general, series, data to be under aria.label\n\n zrUtil.each(['description', 'general', 'series', 'data'], function (name) {\n if (aria[name] != null) {\n aria.label[name] = aria[name];\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as graphic from '../../util/graphic.js';\nimport { createTextStyle } from '../../label/labelStyle.js';\nimport Model from '../../model/Model.js';\nimport AxisView from './AxisView.js';\nimport AxisBuilder from './AxisBuilder.js';\nimport { getECData } from '../../util/innerStore.js';\nvar elementList = ['axisLine', 'axisLabel', 'axisTick', 'minorTick', 'splitLine', 'minorSplitLine', 'splitArea'];\n\nfunction getAxisLineShape(polar, rExtent, angle) {\n rExtent[1] > rExtent[0] && (rExtent = rExtent.slice().reverse());\n var start = polar.coordToPoint([rExtent[0], angle]);\n var end = polar.coordToPoint([rExtent[1], angle]);\n return {\n x1: start[0],\n y1: start[1],\n x2: end[0],\n y2: end[1]\n };\n}\n\nfunction getRadiusIdx(polar) {\n var radiusAxis = polar.getRadiusAxis();\n return radiusAxis.inverse ? 0 : 1;\n} // Remove the last tick which will overlap the first tick\n\n\nfunction fixAngleOverlap(list) {\n var firstItem = list[0];\n var lastItem = list[list.length - 1];\n\n if (firstItem && lastItem && Math.abs(Math.abs(firstItem.coord - lastItem.coord) - 360) < 1e-4) {\n list.pop();\n }\n}\n\nvar AngleAxisView =\n/** @class */\nfunction (_super) {\n __extends(AngleAxisView, _super);\n\n function AngleAxisView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = AngleAxisView.type;\n _this.axisPointerClass = 'PolarAxisPointer';\n return _this;\n }\n\n AngleAxisView.prototype.render = function (angleAxisModel, ecModel) {\n this.group.removeAll();\n\n if (!angleAxisModel.get('show')) {\n return;\n }\n\n var angleAxis = angleAxisModel.axis;\n var polar = angleAxis.polar;\n var radiusExtent = polar.getRadiusAxis().getExtent();\n var ticksAngles = angleAxis.getTicksCoords();\n var minorTickAngles = angleAxis.getMinorTicksCoords();\n var labels = zrUtil.map(angleAxis.getViewLabels(), function (labelItem) {\n labelItem = zrUtil.clone(labelItem);\n var scale = angleAxis.scale;\n var tickValue = scale.type === 'ordinal' ? scale.getRawOrdinalNumber(labelItem.tickValue) : labelItem.tickValue;\n labelItem.coord = angleAxis.dataToCoord(tickValue);\n return labelItem;\n });\n fixAngleOverlap(labels);\n fixAngleOverlap(ticksAngles);\n zrUtil.each(elementList, function (name) {\n if (angleAxisModel.get([name, 'show']) && (!angleAxis.scale.isBlank() || name === 'axisLine')) {\n angelAxisElementsBuilders[name](this.group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent, labels);\n }\n }, this);\n };\n\n AngleAxisView.type = 'angleAxis';\n return AngleAxisView;\n}(AxisView);\n\nvar angelAxisElementsBuilders = {\n axisLine: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\n var lineStyleModel = angleAxisModel.getModel(['axisLine', 'lineStyle']); // extent id of the axis radius (r0 and r)\n\n var rId = getRadiusIdx(polar);\n var r0Id = rId ? 0 : 1;\n var shape;\n\n if (radiusExtent[r0Id] === 0) {\n shape = new graphic.Circle({\n shape: {\n cx: polar.cx,\n cy: polar.cy,\n r: radiusExtent[rId]\n },\n style: lineStyleModel.getLineStyle(),\n z2: 1,\n silent: true\n });\n } else {\n shape = new graphic.Ring({\n shape: {\n cx: polar.cx,\n cy: polar.cy,\n r: radiusExtent[rId],\n r0: radiusExtent[r0Id]\n },\n style: lineStyleModel.getLineStyle(),\n z2: 1,\n silent: true\n });\n }\n\n shape.style.fill = null;\n group.add(shape);\n },\n axisTick: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\n var tickModel = angleAxisModel.getModel('axisTick');\n var tickLen = (tickModel.get('inside') ? -1 : 1) * tickModel.get('length');\n var radius = radiusExtent[getRadiusIdx(polar)];\n var lines = zrUtil.map(ticksAngles, function (tickAngleItem) {\n return new graphic.Line({\n shape: getAxisLineShape(polar, [radius, radius + tickLen], tickAngleItem.coord)\n });\n });\n group.add(graphic.mergePath(lines, {\n style: zrUtil.defaults(tickModel.getModel('lineStyle').getLineStyle(), {\n stroke: angleAxisModel.get(['axisLine', 'lineStyle', 'color'])\n })\n }));\n },\n minorTick: function (group, angleAxisModel, polar, tickAngles, minorTickAngles, radiusExtent) {\n if (!minorTickAngles.length) {\n return;\n }\n\n var tickModel = angleAxisModel.getModel('axisTick');\n var minorTickModel = angleAxisModel.getModel('minorTick');\n var tickLen = (tickModel.get('inside') ? -1 : 1) * minorTickModel.get('length');\n var radius = radiusExtent[getRadiusIdx(polar)];\n var lines = [];\n\n for (var i = 0; i < minorTickAngles.length; i++) {\n for (var k = 0; k < minorTickAngles[i].length; k++) {\n lines.push(new graphic.Line({\n shape: getAxisLineShape(polar, [radius, radius + tickLen], minorTickAngles[i][k].coord)\n }));\n }\n }\n\n group.add(graphic.mergePath(lines, {\n style: zrUtil.defaults(minorTickModel.getModel('lineStyle').getLineStyle(), zrUtil.defaults(tickModel.getLineStyle(), {\n stroke: angleAxisModel.get(['axisLine', 'lineStyle', 'color'])\n }))\n }));\n },\n axisLabel: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent, labels) {\n var rawCategoryData = angleAxisModel.getCategories(true);\n var commonLabelModel = angleAxisModel.getModel('axisLabel');\n var labelMargin = commonLabelModel.get('margin');\n var triggerEvent = angleAxisModel.get('triggerEvent'); // Use length of ticksAngles because it may remove the last tick to avoid overlapping\n\n zrUtil.each(labels, function (labelItem, idx) {\n var labelModel = commonLabelModel;\n var tickValue = labelItem.tickValue;\n var r = radiusExtent[getRadiusIdx(polar)];\n var p = polar.coordToPoint([r + labelMargin, labelItem.coord]);\n var cx = polar.cx;\n var cy = polar.cy;\n var labelTextAlign = Math.abs(p[0] - cx) / r < 0.3 ? 'center' : p[0] > cx ? 'left' : 'right';\n var labelTextVerticalAlign = Math.abs(p[1] - cy) / r < 0.3 ? 'middle' : p[1] > cy ? 'top' : 'bottom';\n\n if (rawCategoryData && rawCategoryData[tickValue]) {\n var rawCategoryItem = rawCategoryData[tickValue];\n\n if (zrUtil.isObject(rawCategoryItem) && rawCategoryItem.textStyle) {\n labelModel = new Model(rawCategoryItem.textStyle, commonLabelModel, commonLabelModel.ecModel);\n }\n }\n\n var textEl = new graphic.Text({\n silent: AxisBuilder.isLabelSilent(angleAxisModel),\n style: createTextStyle(labelModel, {\n x: p[0],\n y: p[1],\n fill: labelModel.getTextColor() || angleAxisModel.get(['axisLine', 'lineStyle', 'color']),\n text: labelItem.formattedLabel,\n align: labelTextAlign,\n verticalAlign: labelTextVerticalAlign\n })\n });\n group.add(textEl); // Pack data for mouse event\n\n if (triggerEvent) {\n var eventData = AxisBuilder.makeAxisEventDataBase(angleAxisModel);\n eventData.targetType = 'axisLabel';\n eventData.value = labelItem.rawLabel;\n getECData(textEl).eventData = eventData;\n }\n }, this);\n },\n splitLine: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\n var splitLineModel = angleAxisModel.getModel('splitLine');\n var lineStyleModel = splitLineModel.getModel('lineStyle');\n var lineColors = lineStyleModel.get('color');\n var lineCount = 0;\n lineColors = lineColors instanceof Array ? lineColors : [lineColors];\n var splitLines = [];\n\n for (var i = 0; i < ticksAngles.length; i++) {\n var colorIndex = lineCount++ % lineColors.length;\n splitLines[colorIndex] = splitLines[colorIndex] || [];\n splitLines[colorIndex].push(new graphic.Line({\n shape: getAxisLineShape(polar, radiusExtent, ticksAngles[i].coord)\n }));\n } // Simple optimization\n // Batching the lines if color are the same\n\n\n for (var i = 0; i < splitLines.length; i++) {\n group.add(graphic.mergePath(splitLines[i], {\n style: zrUtil.defaults({\n stroke: lineColors[i % lineColors.length]\n }, lineStyleModel.getLineStyle()),\n silent: true,\n z: angleAxisModel.get('z')\n }));\n }\n },\n minorSplitLine: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\n if (!minorTickAngles.length) {\n return;\n }\n\n var minorSplitLineModel = angleAxisModel.getModel('minorSplitLine');\n var lineStyleModel = minorSplitLineModel.getModel('lineStyle');\n var lines = [];\n\n for (var i = 0; i < minorTickAngles.length; i++) {\n for (var k = 0; k < minorTickAngles[i].length; k++) {\n lines.push(new graphic.Line({\n shape: getAxisLineShape(polar, radiusExtent, minorTickAngles[i][k].coord)\n }));\n }\n }\n\n group.add(graphic.mergePath(lines, {\n style: lineStyleModel.getLineStyle(),\n silent: true,\n z: angleAxisModel.get('z')\n }));\n },\n splitArea: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\n if (!ticksAngles.length) {\n return;\n }\n\n var splitAreaModel = angleAxisModel.getModel('splitArea');\n var areaStyleModel = splitAreaModel.getModel('areaStyle');\n var areaColors = areaStyleModel.get('color');\n var lineCount = 0;\n areaColors = areaColors instanceof Array ? areaColors : [areaColors];\n var splitAreas = [];\n var RADIAN = Math.PI / 180;\n var prevAngle = -ticksAngles[0].coord * RADIAN;\n var r0 = Math.min(radiusExtent[0], radiusExtent[1]);\n var r1 = Math.max(radiusExtent[0], radiusExtent[1]);\n var clockwise = angleAxisModel.get('clockwise');\n\n for (var i = 1, len = ticksAngles.length; i <= len; i++) {\n var coord = i === len ? ticksAngles[0].coord : ticksAngles[i].coord;\n var colorIndex = lineCount++ % areaColors.length;\n splitAreas[colorIndex] = splitAreas[colorIndex] || [];\n splitAreas[colorIndex].push(new graphic.Sector({\n shape: {\n cx: polar.cx,\n cy: polar.cy,\n r0: r0,\n r: r1,\n startAngle: prevAngle,\n endAngle: -coord * RADIAN,\n clockwise: clockwise\n },\n silent: true\n }));\n prevAngle = -coord * RADIAN;\n } // Simple optimization\n // Batching the lines if color are the same\n\n\n for (var i = 0; i < splitAreas.length; i++) {\n group.add(graphic.mergePath(splitAreas[i], {\n style: zrUtil.defaults({\n fill: areaColors[i % areaColors.length]\n }, areaStyleModel.getAreaStyle()),\n silent: true\n }));\n }\n }\n};\nexport default AngleAxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { retrieve, defaults, extend, each, isObject, map, isString, isNumber, isFunction } from 'zrender/lib/core/util.js';\nimport * as graphic from '../../util/graphic.js';\nimport { getECData } from '../../util/innerStore.js';\nimport { createTextStyle } from '../../label/labelStyle.js';\nimport Model from '../../model/Model.js';\nimport { isRadianAroundZero, remRadian } from '../../util/number.js';\nimport { createSymbol, normalizeSymbolOffset } from '../../util/symbol.js';\nimport * as matrixUtil from 'zrender/lib/core/matrix.js';\nimport { applyTransform as v2ApplyTransform } from 'zrender/lib/core/vector.js';\nimport { shouldShowAllLabels } from '../../coord/axisHelper.js';\nimport { prepareLayoutList, hideOverlap } from '../../label/labelLayoutHelper.js';\nvar PI = Math.PI;\n/**\n * A final axis is translated and rotated from a \"standard axis\".\n * So opt.position and opt.rotation is required.\n *\n * A standard axis is and axis from [0, 0] to [0, axisExtent[1]],\n * for example: (0, 0) ------------> (0, 50)\n *\n * nameDirection or tickDirection or labelDirection is 1 means tick\n * or label is below the standard axis, whereas is -1 means above\n * the standard axis. labelOffset means offset between label and axis,\n * which is useful when 'onZero', where axisLabel is in the grid and\n * label in outside grid.\n *\n * Tips: like always,\n * positive rotation represents anticlockwise, and negative rotation\n * represents clockwise.\n * The direction of position coordinate is the same as the direction\n * of screen coordinate.\n *\n * Do not need to consider axis 'inverse', which is auto processed by\n * axis extent.\n */\n\nvar AxisBuilder =\n/** @class */\nfunction () {\n function AxisBuilder(axisModel, opt) {\n this.group = new graphic.Group();\n this.opt = opt;\n this.axisModel = axisModel; // Default value\n\n defaults(opt, {\n labelOffset: 0,\n nameDirection: 1,\n tickDirection: 1,\n labelDirection: 1,\n silent: true,\n handleAutoShown: function () {\n return true;\n }\n }); // FIXME Not use a separate text group?\n\n var transformGroup = new graphic.Group({\n x: opt.position[0],\n y: opt.position[1],\n rotation: opt.rotation\n }); // this.group.add(transformGroup);\n // this._transformGroup = transformGroup;\n\n transformGroup.updateTransform();\n this._transformGroup = transformGroup;\n }\n\n AxisBuilder.prototype.hasBuilder = function (name) {\n return !!builders[name];\n };\n\n AxisBuilder.prototype.add = function (name) {\n builders[name](this.opt, this.axisModel, this.group, this._transformGroup);\n };\n\n AxisBuilder.prototype.getGroup = function () {\n return this.group;\n };\n\n AxisBuilder.innerTextLayout = function (axisRotation, textRotation, direction) {\n var rotationDiff = remRadian(textRotation - axisRotation);\n var textAlign;\n var textVerticalAlign;\n\n if (isRadianAroundZero(rotationDiff)) {\n // Label is parallel with axis line.\n textVerticalAlign = direction > 0 ? 'top' : 'bottom';\n textAlign = 'center';\n } else if (isRadianAroundZero(rotationDiff - PI)) {\n // Label is inverse parallel with axis line.\n textVerticalAlign = direction > 0 ? 'bottom' : 'top';\n textAlign = 'center';\n } else {\n textVerticalAlign = 'middle';\n\n if (rotationDiff > 0 && rotationDiff < PI) {\n textAlign = direction > 0 ? 'right' : 'left';\n } else {\n textAlign = direction > 0 ? 'left' : 'right';\n }\n }\n\n return {\n rotation: rotationDiff,\n textAlign: textAlign,\n textVerticalAlign: textVerticalAlign\n };\n };\n\n AxisBuilder.makeAxisEventDataBase = function (axisModel) {\n var eventData = {\n componentType: axisModel.mainType,\n componentIndex: axisModel.componentIndex\n };\n eventData[axisModel.mainType + 'Index'] = axisModel.componentIndex;\n return eventData;\n };\n\n AxisBuilder.isLabelSilent = function (axisModel) {\n var tooltipOpt = axisModel.get('tooltip');\n return axisModel.get('silent') // Consider mouse cursor, add these restrictions.\n || !(axisModel.get('triggerEvent') || tooltipOpt && tooltipOpt.show);\n };\n\n return AxisBuilder;\n}();\n\n;\nvar builders = {\n axisLine: function (opt, axisModel, group, transformGroup) {\n var shown = axisModel.get(['axisLine', 'show']);\n\n if (shown === 'auto' && opt.handleAutoShown) {\n shown = opt.handleAutoShown('axisLine');\n }\n\n if (!shown) {\n return;\n }\n\n var extent = axisModel.axis.getExtent();\n var matrix = transformGroup.transform;\n var pt1 = [extent[0], 0];\n var pt2 = [extent[1], 0];\n var inverse = pt1[0] > pt2[0];\n\n if (matrix) {\n v2ApplyTransform(pt1, pt1, matrix);\n v2ApplyTransform(pt2, pt2, matrix);\n }\n\n var lineStyle = extend({\n lineCap: 'round'\n }, axisModel.getModel(['axisLine', 'lineStyle']).getLineStyle());\n var line = new graphic.Line({\n shape: {\n x1: pt1[0],\n y1: pt1[1],\n x2: pt2[0],\n y2: pt2[1]\n },\n style: lineStyle,\n strokeContainThreshold: opt.strokeContainThreshold || 5,\n silent: true,\n z2: 1\n });\n graphic.subPixelOptimizeLine(line.shape, line.style.lineWidth);\n line.anid = 'line';\n group.add(line);\n var arrows = axisModel.get(['axisLine', 'symbol']);\n\n if (arrows != null) {\n var arrowSize = axisModel.get(['axisLine', 'symbolSize']);\n\n if (isString(arrows)) {\n // Use the same arrow for start and end point\n arrows = [arrows, arrows];\n }\n\n if (isString(arrowSize) || isNumber(arrowSize)) {\n // Use the same size for width and height\n arrowSize = [arrowSize, arrowSize];\n }\n\n var arrowOffset = normalizeSymbolOffset(axisModel.get(['axisLine', 'symbolOffset']) || 0, arrowSize);\n var symbolWidth_1 = arrowSize[0];\n var symbolHeight_1 = arrowSize[1];\n each([{\n rotate: opt.rotation + Math.PI / 2,\n offset: arrowOffset[0],\n r: 0\n }, {\n rotate: opt.rotation - Math.PI / 2,\n offset: arrowOffset[1],\n r: Math.sqrt((pt1[0] - pt2[0]) * (pt1[0] - pt2[0]) + (pt1[1] - pt2[1]) * (pt1[1] - pt2[1]))\n }], function (point, index) {\n if (arrows[index] !== 'none' && arrows[index] != null) {\n var symbol = createSymbol(arrows[index], -symbolWidth_1 / 2, -symbolHeight_1 / 2, symbolWidth_1, symbolHeight_1, lineStyle.stroke, true); // Calculate arrow position with offset\n\n var r = point.r + point.offset;\n var pt = inverse ? pt2 : pt1;\n symbol.attr({\n rotation: point.rotate,\n x: pt[0] + r * Math.cos(opt.rotation),\n y: pt[1] - r * Math.sin(opt.rotation),\n silent: true,\n z2: 11\n });\n group.add(symbol);\n }\n });\n }\n },\n axisTickLabel: function (opt, axisModel, group, transformGroup) {\n var ticksEls = buildAxisMajorTicks(group, transformGroup, axisModel, opt);\n var labelEls = buildAxisLabel(group, transformGroup, axisModel, opt);\n fixMinMaxLabelShow(axisModel, labelEls, ticksEls);\n buildAxisMinorTicks(group, transformGroup, axisModel, opt.tickDirection); // This bit fixes the label overlap issue for the time chart.\n // See https://github.com/apache/echarts/issues/14266 for more.\n\n if (axisModel.get(['axisLabel', 'hideOverlap'])) {\n var labelList = prepareLayoutList(map(labelEls, function (label) {\n return {\n label: label,\n priority: label.z2,\n defaultAttr: {\n ignore: label.ignore\n }\n };\n }));\n hideOverlap(labelList);\n }\n },\n axisName: function (opt, axisModel, group, transformGroup) {\n var name = retrieve(opt.axisName, axisModel.get('name'));\n\n if (!name) {\n return;\n }\n\n var nameLocation = axisModel.get('nameLocation');\n var nameDirection = opt.nameDirection;\n var textStyleModel = axisModel.getModel('nameTextStyle');\n var gap = axisModel.get('nameGap') || 0;\n var extent = axisModel.axis.getExtent();\n var gapSignal = extent[0] > extent[1] ? -1 : 1;\n var pos = [nameLocation === 'start' ? extent[0] - gapSignal * gap : nameLocation === 'end' ? extent[1] + gapSignal * gap : (extent[0] + extent[1]) / 2, // Reuse labelOffset.\n isNameLocationCenter(nameLocation) ? opt.labelOffset + nameDirection * gap : 0];\n var labelLayout;\n var nameRotation = axisModel.get('nameRotate');\n\n if (nameRotation != null) {\n nameRotation = nameRotation * PI / 180; // To radian.\n }\n\n var axisNameAvailableWidth;\n\n if (isNameLocationCenter(nameLocation)) {\n labelLayout = AxisBuilder.innerTextLayout(opt.rotation, nameRotation != null ? nameRotation : opt.rotation, // Adapt to axis.\n nameDirection);\n } else {\n labelLayout = endTextLayout(opt.rotation, nameLocation, nameRotation || 0, extent);\n axisNameAvailableWidth = opt.axisNameAvailableWidth;\n\n if (axisNameAvailableWidth != null) {\n axisNameAvailableWidth = Math.abs(axisNameAvailableWidth / Math.sin(labelLayout.rotation));\n !isFinite(axisNameAvailableWidth) && (axisNameAvailableWidth = null);\n }\n }\n\n var textFont = textStyleModel.getFont();\n var truncateOpt = axisModel.get('nameTruncate', true) || {};\n var ellipsis = truncateOpt.ellipsis;\n var maxWidth = retrieve(opt.nameTruncateMaxWidth, truncateOpt.maxWidth, axisNameAvailableWidth);\n var textEl = new graphic.Text({\n x: pos[0],\n y: pos[1],\n rotation: labelLayout.rotation,\n silent: AxisBuilder.isLabelSilent(axisModel),\n style: createTextStyle(textStyleModel, {\n text: name,\n font: textFont,\n overflow: 'truncate',\n width: maxWidth,\n ellipsis: ellipsis,\n fill: textStyleModel.getTextColor() || axisModel.get(['axisLine', 'lineStyle', 'color']),\n align: textStyleModel.get('align') || labelLayout.textAlign,\n verticalAlign: textStyleModel.get('verticalAlign') || labelLayout.textVerticalAlign\n }),\n z2: 1\n });\n graphic.setTooltipConfig({\n el: textEl,\n componentModel: axisModel,\n itemName: name\n });\n textEl.__fullText = name; // Id for animation\n\n textEl.anid = 'name';\n\n if (axisModel.get('triggerEvent')) {\n var eventData = AxisBuilder.makeAxisEventDataBase(axisModel);\n eventData.targetType = 'axisName';\n eventData.name = name;\n getECData(textEl).eventData = eventData;\n } // FIXME\n\n\n transformGroup.add(textEl);\n textEl.updateTransform();\n group.add(textEl);\n textEl.decomposeTransform();\n }\n};\n\nfunction endTextLayout(rotation, textPosition, textRotate, extent) {\n var rotationDiff = remRadian(textRotate - rotation);\n var textAlign;\n var textVerticalAlign;\n var inverse = extent[0] > extent[1];\n var onLeft = textPosition === 'start' && !inverse || textPosition !== 'start' && inverse;\n\n if (isRadianAroundZero(rotationDiff - PI / 2)) {\n textVerticalAlign = onLeft ? 'bottom' : 'top';\n textAlign = 'center';\n } else if (isRadianAroundZero(rotationDiff - PI * 1.5)) {\n textVerticalAlign = onLeft ? 'top' : 'bottom';\n textAlign = 'center';\n } else {\n textVerticalAlign = 'middle';\n\n if (rotationDiff < PI * 1.5 && rotationDiff > PI / 2) {\n textAlign = onLeft ? 'left' : 'right';\n } else {\n textAlign = onLeft ? 'right' : 'left';\n }\n }\n\n return {\n rotation: rotationDiff,\n textAlign: textAlign,\n textVerticalAlign: textVerticalAlign\n };\n}\n\nfunction fixMinMaxLabelShow(axisModel, labelEls, tickEls) {\n if (shouldShowAllLabels(axisModel.axis)) {\n return;\n } // If min or max are user set, we need to check\n // If the tick on min(max) are overlap on their neighbour tick\n // If they are overlapped, we need to hide the min(max) tick label\n\n\n var showMinLabel = axisModel.get(['axisLabel', 'showMinLabel']);\n var showMaxLabel = axisModel.get(['axisLabel', 'showMaxLabel']); // FIXME\n // Have not consider onBand yet, where tick els is more than label els.\n\n labelEls = labelEls || [];\n tickEls = tickEls || [];\n var firstLabel = labelEls[0];\n var nextLabel = labelEls[1];\n var lastLabel = labelEls[labelEls.length - 1];\n var prevLabel = labelEls[labelEls.length - 2];\n var firstTick = tickEls[0];\n var nextTick = tickEls[1];\n var lastTick = tickEls[tickEls.length - 1];\n var prevTick = tickEls[tickEls.length - 2];\n\n if (showMinLabel === false) {\n ignoreEl(firstLabel);\n ignoreEl(firstTick);\n } else if (isTwoLabelOverlapped(firstLabel, nextLabel)) {\n if (showMinLabel) {\n ignoreEl(nextLabel);\n ignoreEl(nextTick);\n } else {\n ignoreEl(firstLabel);\n ignoreEl(firstTick);\n }\n }\n\n if (showMaxLabel === false) {\n ignoreEl(lastLabel);\n ignoreEl(lastTick);\n } else if (isTwoLabelOverlapped(prevLabel, lastLabel)) {\n if (showMaxLabel) {\n ignoreEl(prevLabel);\n ignoreEl(prevTick);\n } else {\n ignoreEl(lastLabel);\n ignoreEl(lastTick);\n }\n }\n}\n\nfunction ignoreEl(el) {\n el && (el.ignore = true);\n}\n\nfunction isTwoLabelOverlapped(current, next) {\n // current and next has the same rotation.\n var firstRect = current && current.getBoundingRect().clone();\n var nextRect = next && next.getBoundingRect().clone();\n\n if (!firstRect || !nextRect) {\n return;\n } // When checking intersect of two rotated labels, we use mRotationBack\n // to avoid that boundingRect is enlarge when using `boundingRect.applyTransform`.\n\n\n var mRotationBack = matrixUtil.identity([]);\n matrixUtil.rotate(mRotationBack, mRotationBack, -current.rotation);\n firstRect.applyTransform(matrixUtil.mul([], mRotationBack, current.getLocalTransform()));\n nextRect.applyTransform(matrixUtil.mul([], mRotationBack, next.getLocalTransform()));\n return firstRect.intersect(nextRect);\n}\n\nfunction isNameLocationCenter(nameLocation) {\n return nameLocation === 'middle' || nameLocation === 'center';\n}\n\nfunction createTicks(ticksCoords, tickTransform, tickEndCoord, tickLineStyle, anidPrefix) {\n var tickEls = [];\n var pt1 = [];\n var pt2 = [];\n\n for (var i = 0; i < ticksCoords.length; i++) {\n var tickCoord = ticksCoords[i].coord;\n pt1[0] = tickCoord;\n pt1[1] = 0;\n pt2[0] = tickCoord;\n pt2[1] = tickEndCoord;\n\n if (tickTransform) {\n v2ApplyTransform(pt1, pt1, tickTransform);\n v2ApplyTransform(pt2, pt2, tickTransform);\n } // Tick line, Not use group transform to have better line draw\n\n\n var tickEl = new graphic.Line({\n shape: {\n x1: pt1[0],\n y1: pt1[1],\n x2: pt2[0],\n y2: pt2[1]\n },\n style: tickLineStyle,\n z2: 2,\n autoBatch: true,\n silent: true\n });\n graphic.subPixelOptimizeLine(tickEl.shape, tickEl.style.lineWidth);\n tickEl.anid = anidPrefix + '_' + ticksCoords[i].tickValue;\n tickEls.push(tickEl);\n }\n\n return tickEls;\n}\n\nfunction buildAxisMajorTicks(group, transformGroup, axisModel, opt) {\n var axis = axisModel.axis;\n var tickModel = axisModel.getModel('axisTick');\n var shown = tickModel.get('show');\n\n if (shown === 'auto' && opt.handleAutoShown) {\n shown = opt.handleAutoShown('axisTick');\n }\n\n if (!shown || axis.scale.isBlank()) {\n return;\n }\n\n var lineStyleModel = tickModel.getModel('lineStyle');\n var tickEndCoord = opt.tickDirection * tickModel.get('length');\n var ticksCoords = axis.getTicksCoords();\n var ticksEls = createTicks(ticksCoords, transformGroup.transform, tickEndCoord, defaults(lineStyleModel.getLineStyle(), {\n stroke: axisModel.get(['axisLine', 'lineStyle', 'color'])\n }), 'ticks');\n\n for (var i = 0; i < ticksEls.length; i++) {\n group.add(ticksEls[i]);\n }\n\n return ticksEls;\n}\n\nfunction buildAxisMinorTicks(group, transformGroup, axisModel, tickDirection) {\n var axis = axisModel.axis;\n var minorTickModel = axisModel.getModel('minorTick');\n\n if (!minorTickModel.get('show') || axis.scale.isBlank()) {\n return;\n }\n\n var minorTicksCoords = axis.getMinorTicksCoords();\n\n if (!minorTicksCoords.length) {\n return;\n }\n\n var lineStyleModel = minorTickModel.getModel('lineStyle');\n var tickEndCoord = tickDirection * minorTickModel.get('length');\n var minorTickLineStyle = defaults(lineStyleModel.getLineStyle(), defaults(axisModel.getModel('axisTick').getLineStyle(), {\n stroke: axisModel.get(['axisLine', 'lineStyle', 'color'])\n }));\n\n for (var i = 0; i < minorTicksCoords.length; i++) {\n var minorTicksEls = createTicks(minorTicksCoords[i], transformGroup.transform, tickEndCoord, minorTickLineStyle, 'minorticks_' + i);\n\n for (var k = 0; k < minorTicksEls.length; k++) {\n group.add(minorTicksEls[k]);\n }\n }\n}\n\nfunction buildAxisLabel(group, transformGroup, axisModel, opt) {\n var axis = axisModel.axis;\n var show = retrieve(opt.axisLabelShow, axisModel.get(['axisLabel', 'show']));\n\n if (!show || axis.scale.isBlank()) {\n return;\n }\n\n var labelModel = axisModel.getModel('axisLabel');\n var labelMargin = labelModel.get('margin');\n var labels = axis.getViewLabels(); // Special label rotate.\n\n var labelRotation = (retrieve(opt.labelRotate, labelModel.get('rotate')) || 0) * PI / 180;\n var labelLayout = AxisBuilder.innerTextLayout(opt.rotation, labelRotation, opt.labelDirection);\n var rawCategoryData = axisModel.getCategories && axisModel.getCategories(true);\n var labelEls = [];\n var silent = AxisBuilder.isLabelSilent(axisModel);\n var triggerEvent = axisModel.get('triggerEvent');\n each(labels, function (labelItem, index) {\n var tickValue = axis.scale.type === 'ordinal' ? axis.scale.getRawOrdinalNumber(labelItem.tickValue) : labelItem.tickValue;\n var formattedLabel = labelItem.formattedLabel;\n var rawLabel = labelItem.rawLabel;\n var itemLabelModel = labelModel;\n\n if (rawCategoryData && rawCategoryData[tickValue]) {\n var rawCategoryItem = rawCategoryData[tickValue];\n\n if (isObject(rawCategoryItem) && rawCategoryItem.textStyle) {\n itemLabelModel = new Model(rawCategoryItem.textStyle, labelModel, axisModel.ecModel);\n }\n }\n\n var textColor = itemLabelModel.getTextColor() || axisModel.get(['axisLine', 'lineStyle', 'color']);\n var tickCoord = axis.dataToCoord(tickValue);\n var textEl = new graphic.Text({\n x: tickCoord,\n y: opt.labelOffset + opt.labelDirection * labelMargin,\n rotation: labelLayout.rotation,\n silent: silent,\n z2: 10 + (labelItem.level || 0),\n style: createTextStyle(itemLabelModel, {\n text: formattedLabel,\n align: itemLabelModel.getShallow('align', true) || labelLayout.textAlign,\n verticalAlign: itemLabelModel.getShallow('verticalAlign', true) || itemLabelModel.getShallow('baseline', true) || labelLayout.textVerticalAlign,\n fill: isFunction(textColor) ? textColor( // (1) In category axis with data zoom, tick is not the original\n // index of axis.data. So tick should not be exposed to user\n // in category axis.\n // (2) Compatible with previous version, which always use formatted label as\n // input. But in interval scale the formatted label is like '223,445', which\n // maked user replace ','. So we modify it to return original val but remain\n // it as 'string' to avoid error in replacing.\n axis.type === 'category' ? rawLabel : axis.type === 'value' ? tickValue + '' : tickValue, index) : textColor\n })\n });\n textEl.anid = 'label_' + tickValue; // Pack data for mouse event\n\n if (triggerEvent) {\n var eventData = AxisBuilder.makeAxisEventDataBase(axisModel);\n eventData.targetType = 'axisLabel';\n eventData.value = rawLabel;\n eventData.tickIndex = index;\n\n if (axis.type === 'category') {\n eventData.dataIndex = tickValue;\n }\n\n getECData(textEl).eventData = eventData;\n } // FIXME\n\n\n transformGroup.add(textEl);\n textEl.updateTransform();\n labelEls.push(textEl);\n group.add(textEl);\n textEl.decomposeTransform();\n });\n return labelEls;\n}\n\nexport default AxisBuilder;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as axisPointerModelHelper from '../axisPointer/modelHelper.js';\nimport ComponentView from '../../view/Component.js';\nvar axisPointerClazz = {};\n/**\n * Base class of AxisView.\n */\n\nvar AxisView =\n/** @class */\nfunction (_super) {\n __extends(AxisView, _super);\n\n function AxisView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = AxisView.type;\n return _this;\n }\n /**\n * @override\n */\n\n\n AxisView.prototype.render = function (axisModel, ecModel, api, payload) {\n // FIXME\n // This process should proformed after coordinate systems updated\n // (axis scale updated), and should be performed each time update.\n // So put it here temporarily, although it is not appropriate to\n // put a model-writing procedure in `view`.\n this.axisPointerClass && axisPointerModelHelper.fixValue(axisModel);\n\n _super.prototype.render.apply(this, arguments);\n\n this._doUpdateAxisPointerClass(axisModel, api, true);\n };\n /**\n * Action handler.\n */\n\n\n AxisView.prototype.updateAxisPointer = function (axisModel, ecModel, api, payload) {\n this._doUpdateAxisPointerClass(axisModel, api, false);\n };\n /**\n * @override\n */\n\n\n AxisView.prototype.remove = function (ecModel, api) {\n var axisPointer = this._axisPointer;\n axisPointer && axisPointer.remove(api);\n };\n /**\n * @override\n */\n\n\n AxisView.prototype.dispose = function (ecModel, api) {\n this._disposeAxisPointer(api);\n\n _super.prototype.dispose.apply(this, arguments);\n };\n\n AxisView.prototype._doUpdateAxisPointerClass = function (axisModel, api, forceRender) {\n var Clazz = AxisView.getAxisPointerClass(this.axisPointerClass);\n\n if (!Clazz) {\n return;\n }\n\n var axisPointerModel = axisPointerModelHelper.getAxisPointerModel(axisModel);\n axisPointerModel ? (this._axisPointer || (this._axisPointer = new Clazz())).render(axisModel, axisPointerModel, api, forceRender) : this._disposeAxisPointer(api);\n };\n\n AxisView.prototype._disposeAxisPointer = function (api) {\n this._axisPointer && this._axisPointer.dispose(api);\n this._axisPointer = null;\n };\n\n AxisView.registerAxisPointerClass = function (type, clazz) {\n if (process.env.NODE_ENV !== 'production') {\n if (axisPointerClazz[type]) {\n throw new Error('axisPointer ' + type + ' exists');\n }\n }\n\n axisPointerClazz[type] = clazz;\n };\n\n ;\n\n AxisView.getAxisPointerClass = function (type) {\n return type && axisPointerClazz[type];\n };\n\n ;\n AxisView.type = 'axis';\n return AxisView;\n}(ComponentView);\n\nexport default AxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as graphic from '../../util/graphic.js';\nimport AxisBuilder from './AxisBuilder.js';\nimport AxisView from './AxisView.js';\nimport * as cartesianAxisHelper from '../../coord/cartesian/cartesianAxisHelper.js';\nimport { rectCoordAxisBuildSplitArea, rectCoordAxisHandleRemove } from './axisSplitHelper.js';\nimport { isIntervalOrLogScale } from '../../scale/helper.js';\nvar axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\nvar selfBuilderAttrs = ['splitArea', 'splitLine', 'minorSplitLine'];\n\nvar CartesianAxisView =\n/** @class */\nfunction (_super) {\n __extends(CartesianAxisView, _super);\n\n function CartesianAxisView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = CartesianAxisView.type;\n _this.axisPointerClass = 'CartesianAxisPointer';\n return _this;\n }\n /**\n * @override\n */\n\n\n CartesianAxisView.prototype.render = function (axisModel, ecModel, api, payload) {\n this.group.removeAll();\n var oldAxisGroup = this._axisGroup;\n this._axisGroup = new graphic.Group();\n this.group.add(this._axisGroup);\n\n if (!axisModel.get('show')) {\n return;\n }\n\n var gridModel = axisModel.getCoordSysModel();\n var layout = cartesianAxisHelper.layout(gridModel, axisModel);\n var axisBuilder = new AxisBuilder(axisModel, zrUtil.extend({\n handleAutoShown: function (elementType) {\n var cartesians = gridModel.coordinateSystem.getCartesians();\n\n for (var i = 0; i < cartesians.length; i++) {\n if (isIntervalOrLogScale(cartesians[i].getOtherAxis(axisModel.axis).scale)) {\n // Still show axis tick or axisLine if other axis is value / log\n return true;\n }\n } // Not show axisTick or axisLine if other axis is category / time\n\n\n return false;\n }\n }, layout));\n zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n\n this._axisGroup.add(axisBuilder.getGroup());\n\n zrUtil.each(selfBuilderAttrs, function (name) {\n if (axisModel.get([name, 'show'])) {\n axisElementBuilders[name](this, this._axisGroup, axisModel, gridModel);\n }\n }, this); // THIS is a special case for bar racing chart.\n // Update the axis label from the natural initial layout to\n // sorted layout should has no animation.\n\n var isInitialSortFromBarRacing = payload && payload.type === 'changeAxisOrder' && payload.isInitSort;\n\n if (!isInitialSortFromBarRacing) {\n graphic.groupTransition(oldAxisGroup, this._axisGroup, axisModel);\n }\n\n _super.prototype.render.call(this, axisModel, ecModel, api, payload);\n };\n\n CartesianAxisView.prototype.remove = function () {\n rectCoordAxisHandleRemove(this);\n };\n\n CartesianAxisView.type = 'cartesianAxis';\n return CartesianAxisView;\n}(AxisView);\n\nvar axisElementBuilders = {\n splitLine: function (axisView, axisGroup, axisModel, gridModel) {\n var axis = axisModel.axis;\n\n if (axis.scale.isBlank()) {\n return;\n }\n\n var splitLineModel = axisModel.getModel('splitLine');\n var lineStyleModel = splitLineModel.getModel('lineStyle');\n var lineColors = lineStyleModel.get('color');\n lineColors = zrUtil.isArray(lineColors) ? lineColors : [lineColors];\n var gridRect = gridModel.coordinateSystem.getRect();\n var isHorizontal = axis.isHorizontal();\n var lineCount = 0;\n var ticksCoords = axis.getTicksCoords({\n tickModel: splitLineModel\n });\n var p1 = [];\n var p2 = [];\n var lineStyle = lineStyleModel.getLineStyle();\n\n for (var i = 0; i < ticksCoords.length; i++) {\n var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\n\n if (isHorizontal) {\n p1[0] = tickCoord;\n p1[1] = gridRect.y;\n p2[0] = tickCoord;\n p2[1] = gridRect.y + gridRect.height;\n } else {\n p1[0] = gridRect.x;\n p1[1] = tickCoord;\n p2[0] = gridRect.x + gridRect.width;\n p2[1] = tickCoord;\n }\n\n var colorIndex = lineCount++ % lineColors.length;\n var tickValue = ticksCoords[i].tickValue;\n var line = new graphic.Line({\n anid: tickValue != null ? 'line_' + ticksCoords[i].tickValue : null,\n autoBatch: true,\n shape: {\n x1: p1[0],\n y1: p1[1],\n x2: p2[0],\n y2: p2[1]\n },\n style: zrUtil.defaults({\n stroke: lineColors[colorIndex]\n }, lineStyle),\n silent: true\n });\n graphic.subPixelOptimizeLine(line.shape, lineStyle.lineWidth);\n axisGroup.add(line);\n }\n },\n minorSplitLine: function (axisView, axisGroup, axisModel, gridModel) {\n var axis = axisModel.axis;\n var minorSplitLineModel = axisModel.getModel('minorSplitLine');\n var lineStyleModel = minorSplitLineModel.getModel('lineStyle');\n var gridRect = gridModel.coordinateSystem.getRect();\n var isHorizontal = axis.isHorizontal();\n var minorTicksCoords = axis.getMinorTicksCoords();\n\n if (!minorTicksCoords.length) {\n return;\n }\n\n var p1 = [];\n var p2 = [];\n var lineStyle = lineStyleModel.getLineStyle();\n\n for (var i = 0; i < minorTicksCoords.length; i++) {\n for (var k = 0; k < minorTicksCoords[i].length; k++) {\n var tickCoord = axis.toGlobalCoord(minorTicksCoords[i][k].coord);\n\n if (isHorizontal) {\n p1[0] = tickCoord;\n p1[1] = gridRect.y;\n p2[0] = tickCoord;\n p2[1] = gridRect.y + gridRect.height;\n } else {\n p1[0] = gridRect.x;\n p1[1] = tickCoord;\n p2[0] = gridRect.x + gridRect.width;\n p2[1] = tickCoord;\n }\n\n var line = new graphic.Line({\n anid: 'minor_line_' + minorTicksCoords[i][k].tickValue,\n autoBatch: true,\n shape: {\n x1: p1[0],\n y1: p1[1],\n x2: p2[0],\n y2: p2[1]\n },\n style: lineStyle,\n silent: true\n });\n graphic.subPixelOptimizeLine(line.shape, lineStyle.lineWidth);\n axisGroup.add(line);\n }\n }\n },\n splitArea: function (axisView, axisGroup, axisModel, gridModel) {\n rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel);\n }\n};\n\nvar CartesianXAxisView =\n/** @class */\nfunction (_super) {\n __extends(CartesianXAxisView, _super);\n\n function CartesianXAxisView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = CartesianXAxisView.type;\n return _this;\n }\n\n CartesianXAxisView.type = 'xAxis';\n return CartesianXAxisView;\n}(CartesianAxisView);\n\nexport { CartesianXAxisView };\n\nvar CartesianYAxisView =\n/** @class */\nfunction (_super) {\n __extends(CartesianYAxisView, _super);\n\n function CartesianYAxisView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = CartesianXAxisView.type;\n return _this;\n }\n\n CartesianYAxisView.type = 'yAxis';\n return CartesianYAxisView;\n}(CartesianAxisView);\n\nexport { CartesianYAxisView };\nexport default CartesianAxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport AxisBuilder from './AxisBuilder.js';\nimport BrushController from '../helper/BrushController.js';\nimport * as brushHelper from '../helper/brushHelper.js';\nimport * as graphic from '../../util/graphic.js';\nimport ComponentView from '../../view/Component.js';\nvar elementList = ['axisLine', 'axisTickLabel', 'axisName'];\n\nvar ParallelAxisView =\n/** @class */\nfunction (_super) {\n __extends(ParallelAxisView, _super);\n\n function ParallelAxisView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = ParallelAxisView.type;\n return _this;\n }\n\n ParallelAxisView.prototype.init = function (ecModel, api) {\n _super.prototype.init.apply(this, arguments);\n\n (this._brushController = new BrushController(api.getZr())).on('brush', zrUtil.bind(this._onBrush, this));\n };\n\n ParallelAxisView.prototype.render = function (axisModel, ecModel, api, payload) {\n if (fromAxisAreaSelect(axisModel, ecModel, payload)) {\n return;\n }\n\n this.axisModel = axisModel;\n this.api = api;\n this.group.removeAll();\n var oldAxisGroup = this._axisGroup;\n this._axisGroup = new graphic.Group();\n this.group.add(this._axisGroup);\n\n if (!axisModel.get('show')) {\n return;\n }\n\n var coordSysModel = getCoordSysModel(axisModel, ecModel);\n var coordSys = coordSysModel.coordinateSystem;\n var areaSelectStyle = axisModel.getAreaSelectStyle();\n var areaWidth = areaSelectStyle.width;\n var dim = axisModel.axis.dim;\n var axisLayout = coordSys.getAxisLayout(dim);\n var builderOpt = zrUtil.extend({\n strokeContainThreshold: areaWidth\n }, axisLayout);\n var axisBuilder = new AxisBuilder(axisModel, builderOpt);\n zrUtil.each(elementList, axisBuilder.add, axisBuilder);\n\n this._axisGroup.add(axisBuilder.getGroup());\n\n this._refreshBrushController(builderOpt, areaSelectStyle, axisModel, coordSysModel, areaWidth, api);\n\n graphic.groupTransition(oldAxisGroup, this._axisGroup, axisModel);\n }; // /**\n // * @override\n // */\n // updateVisual(axisModel, ecModel, api, payload) {\n // this._brushController && this._brushController\n // .updateCovers(getCoverInfoList(axisModel));\n // }\n\n\n ParallelAxisView.prototype._refreshBrushController = function (builderOpt, areaSelectStyle, axisModel, coordSysModel, areaWidth, api) {\n // After filtering, axis may change, select area needs to be update.\n var extent = axisModel.axis.getExtent();\n var extentLen = extent[1] - extent[0];\n var extra = Math.min(30, Math.abs(extentLen) * 0.1); // Arbitrary value.\n // width/height might be negative, which will be\n // normalized in BoundingRect.\n\n var rect = graphic.BoundingRect.create({\n x: extent[0],\n y: -areaWidth / 2,\n width: extentLen,\n height: areaWidth\n });\n rect.x -= extra;\n rect.width += 2 * extra;\n\n this._brushController.mount({\n enableGlobalPan: true,\n rotation: builderOpt.rotation,\n x: builderOpt.position[0],\n y: builderOpt.position[1]\n }).setPanels([{\n panelId: 'pl',\n clipPath: brushHelper.makeRectPanelClipPath(rect),\n isTargetByCursor: brushHelper.makeRectIsTargetByCursor(rect, api, coordSysModel),\n getLinearBrushOtherExtent: brushHelper.makeLinearBrushOtherExtent(rect, 0)\n }]).enableBrush({\n brushType: 'lineX',\n brushStyle: areaSelectStyle,\n removeOnClick: true\n }).updateCovers(getCoverInfoList(axisModel));\n };\n\n ParallelAxisView.prototype._onBrush = function (eventParam) {\n var coverInfoList = eventParam.areas; // Do not cache these object, because the mey be changed.\n\n var axisModel = this.axisModel;\n var axis = axisModel.axis;\n var intervals = zrUtil.map(coverInfoList, function (coverInfo) {\n return [axis.coordToData(coverInfo.range[0], true), axis.coordToData(coverInfo.range[1], true)];\n }); // If realtime is true, action is not dispatched on drag end, because\n // the drag end emits the same params with the last drag move event,\n // and may have some delay when using touch pad.\n\n if (!axisModel.option.realtime === eventParam.isEnd || eventParam.removeOnClick) {\n // jshint ignore:line\n this.api.dispatchAction({\n type: 'axisAreaSelect',\n parallelAxisId: axisModel.id,\n intervals: intervals\n });\n }\n };\n\n ParallelAxisView.prototype.dispose = function () {\n this._brushController.dispose();\n };\n\n ParallelAxisView.type = 'parallelAxis';\n return ParallelAxisView;\n}(ComponentView);\n\nfunction fromAxisAreaSelect(axisModel, ecModel, payload) {\n return payload && payload.type === 'axisAreaSelect' && ecModel.findComponents({\n mainType: 'parallelAxis',\n query: payload\n })[0] === axisModel;\n}\n\nfunction getCoverInfoList(axisModel) {\n var axis = axisModel.axis;\n return zrUtil.map(axisModel.activeIntervals, function (interval) {\n return {\n brushType: 'lineX',\n panelId: 'pl',\n range: [axis.dataToCoord(interval[0], true), axis.dataToCoord(interval[1], true)]\n };\n });\n}\n\nfunction getCoordSysModel(axisModel, ecModel) {\n return ecModel.getComponent('parallel', axisModel.get('parallelIndex'));\n}\n\nexport default ParallelAxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as graphic from '../../util/graphic.js';\nimport AxisBuilder from './AxisBuilder.js';\nimport AxisView from './AxisView.js';\nvar axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\nvar selfBuilderAttrs = ['splitLine', 'splitArea', 'minorSplitLine'];\n\nvar RadiusAxisView =\n/** @class */\nfunction (_super) {\n __extends(RadiusAxisView, _super);\n\n function RadiusAxisView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = RadiusAxisView.type;\n _this.axisPointerClass = 'PolarAxisPointer';\n return _this;\n }\n\n RadiusAxisView.prototype.render = function (radiusAxisModel, ecModel) {\n this.group.removeAll();\n\n if (!radiusAxisModel.get('show')) {\n return;\n }\n\n var oldAxisGroup = this._axisGroup;\n var newAxisGroup = this._axisGroup = new graphic.Group();\n this.group.add(newAxisGroup);\n var radiusAxis = radiusAxisModel.axis;\n var polar = radiusAxis.polar;\n var angleAxis = polar.getAngleAxis();\n var ticksCoords = radiusAxis.getTicksCoords();\n var minorTicksCoords = radiusAxis.getMinorTicksCoords();\n var axisAngle = angleAxis.getExtent()[0];\n var radiusExtent = radiusAxis.getExtent();\n var layout = layoutAxis(polar, radiusAxisModel, axisAngle);\n var axisBuilder = new AxisBuilder(radiusAxisModel, layout);\n zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n newAxisGroup.add(axisBuilder.getGroup());\n graphic.groupTransition(oldAxisGroup, newAxisGroup, radiusAxisModel);\n zrUtil.each(selfBuilderAttrs, function (name) {\n if (radiusAxisModel.get([name, 'show']) && !radiusAxis.scale.isBlank()) {\n axisElementBuilders[name](this.group, radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords, minorTicksCoords);\n }\n }, this);\n };\n\n RadiusAxisView.type = 'radiusAxis';\n return RadiusAxisView;\n}(AxisView);\n\nvar axisElementBuilders = {\n splitLine: function (group, radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords) {\n var splitLineModel = radiusAxisModel.getModel('splitLine');\n var lineStyleModel = splitLineModel.getModel('lineStyle');\n var lineColors = lineStyleModel.get('color');\n var lineCount = 0;\n lineColors = lineColors instanceof Array ? lineColors : [lineColors];\n var splitLines = [];\n\n for (var i = 0; i < ticksCoords.length; i++) {\n var colorIndex = lineCount++ % lineColors.length;\n splitLines[colorIndex] = splitLines[colorIndex] || [];\n splitLines[colorIndex].push(new graphic.Circle({\n shape: {\n cx: polar.cx,\n cy: polar.cy,\n // ensure circle radius >= 0\n r: Math.max(ticksCoords[i].coord, 0)\n }\n }));\n } // Simple optimization\n // Batching the lines if color are the same\n\n\n for (var i = 0; i < splitLines.length; i++) {\n group.add(graphic.mergePath(splitLines[i], {\n style: zrUtil.defaults({\n stroke: lineColors[i % lineColors.length],\n fill: null\n }, lineStyleModel.getLineStyle()),\n silent: true\n }));\n }\n },\n minorSplitLine: function (group, radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords, minorTicksCoords) {\n if (!minorTicksCoords.length) {\n return;\n }\n\n var minorSplitLineModel = radiusAxisModel.getModel('minorSplitLine');\n var lineStyleModel = minorSplitLineModel.getModel('lineStyle');\n var lines = [];\n\n for (var i = 0; i < minorTicksCoords.length; i++) {\n for (var k = 0; k < minorTicksCoords[i].length; k++) {\n lines.push(new graphic.Circle({\n shape: {\n cx: polar.cx,\n cy: polar.cy,\n r: minorTicksCoords[i][k].coord\n }\n }));\n }\n }\n\n group.add(graphic.mergePath(lines, {\n style: zrUtil.defaults({\n fill: null\n }, lineStyleModel.getLineStyle()),\n silent: true\n }));\n },\n splitArea: function (group, radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords) {\n if (!ticksCoords.length) {\n return;\n }\n\n var splitAreaModel = radiusAxisModel.getModel('splitArea');\n var areaStyleModel = splitAreaModel.getModel('areaStyle');\n var areaColors = areaStyleModel.get('color');\n var lineCount = 0;\n areaColors = areaColors instanceof Array ? areaColors : [areaColors];\n var splitAreas = [];\n var prevRadius = ticksCoords[0].coord;\n\n for (var i = 1; i < ticksCoords.length; i++) {\n var colorIndex = lineCount++ % areaColors.length;\n splitAreas[colorIndex] = splitAreas[colorIndex] || [];\n splitAreas[colorIndex].push(new graphic.Sector({\n shape: {\n cx: polar.cx,\n cy: polar.cy,\n r0: prevRadius,\n r: ticksCoords[i].coord,\n startAngle: 0,\n endAngle: Math.PI * 2\n },\n silent: true\n }));\n prevRadius = ticksCoords[i].coord;\n } // Simple optimization\n // Batching the lines if color are the same\n\n\n for (var i = 0; i < splitAreas.length; i++) {\n group.add(graphic.mergePath(splitAreas[i], {\n style: zrUtil.defaults({\n fill: areaColors[i % areaColors.length]\n }, areaStyleModel.getAreaStyle()),\n silent: true\n }));\n }\n }\n};\n/**\n * @inner\n */\n\nfunction layoutAxis(polar, radiusAxisModel, axisAngle) {\n return {\n position: [polar.cx, polar.cy],\n rotation: axisAngle / 180 * Math.PI,\n labelDirection: -1,\n tickDirection: -1,\n nameDirection: 1,\n labelRotate: radiusAxisModel.getModel('axisLabel').get('rotate'),\n // Over splitLine and splitArea\n z2: 1\n };\n}\n\nexport default RadiusAxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport AxisBuilder from './AxisBuilder.js';\nimport * as graphic from '../../util/graphic.js';\nimport * as singleAxisHelper from '../../coord/single/singleAxisHelper.js';\nimport AxisView from './AxisView.js';\nimport { rectCoordAxisBuildSplitArea, rectCoordAxisHandleRemove } from './axisSplitHelper.js';\nvar axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\nvar selfBuilderAttrs = ['splitArea', 'splitLine'];\n\nvar SingleAxisView =\n/** @class */\nfunction (_super) {\n __extends(SingleAxisView, _super);\n\n function SingleAxisView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = SingleAxisView.type;\n _this.axisPointerClass = 'SingleAxisPointer';\n return _this;\n }\n\n SingleAxisView.prototype.render = function (axisModel, ecModel, api, payload) {\n var group = this.group;\n group.removeAll();\n var oldAxisGroup = this._axisGroup;\n this._axisGroup = new graphic.Group();\n var layout = singleAxisHelper.layout(axisModel);\n var axisBuilder = new AxisBuilder(axisModel, layout);\n zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n group.add(this._axisGroup);\n group.add(axisBuilder.getGroup());\n zrUtil.each(selfBuilderAttrs, function (name) {\n if (axisModel.get([name, 'show'])) {\n axisElementBuilders[name](this, this.group, this._axisGroup, axisModel);\n }\n }, this);\n graphic.groupTransition(oldAxisGroup, this._axisGroup, axisModel);\n\n _super.prototype.render.call(this, axisModel, ecModel, api, payload);\n };\n\n SingleAxisView.prototype.remove = function () {\n rectCoordAxisHandleRemove(this);\n };\n\n SingleAxisView.type = 'singleAxis';\n return SingleAxisView;\n}(AxisView);\n\nvar axisElementBuilders = {\n splitLine: function (axisView, group, axisGroup, axisModel) {\n var axis = axisModel.axis;\n\n if (axis.scale.isBlank()) {\n return;\n }\n\n var splitLineModel = axisModel.getModel('splitLine');\n var lineStyleModel = splitLineModel.getModel('lineStyle');\n var lineColors = lineStyleModel.get('color');\n lineColors = lineColors instanceof Array ? lineColors : [lineColors];\n var lineWidth = lineStyleModel.get('width');\n var gridRect = axisModel.coordinateSystem.getRect();\n var isHorizontal = axis.isHorizontal();\n var splitLines = [];\n var lineCount = 0;\n var ticksCoords = axis.getTicksCoords({\n tickModel: splitLineModel\n });\n var p1 = [];\n var p2 = [];\n\n for (var i = 0; i < ticksCoords.length; ++i) {\n var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\n\n if (isHorizontal) {\n p1[0] = tickCoord;\n p1[1] = gridRect.y;\n p2[0] = tickCoord;\n p2[1] = gridRect.y + gridRect.height;\n } else {\n p1[0] = gridRect.x;\n p1[1] = tickCoord;\n p2[0] = gridRect.x + gridRect.width;\n p2[1] = tickCoord;\n }\n\n var line = new graphic.Line({\n shape: {\n x1: p1[0],\n y1: p1[1],\n x2: p2[0],\n y2: p2[1]\n },\n silent: true\n });\n graphic.subPixelOptimizeLine(line.shape, lineWidth);\n var colorIndex = lineCount++ % lineColors.length;\n splitLines[colorIndex] = splitLines[colorIndex] || [];\n splitLines[colorIndex].push(line);\n }\n\n var lineStyle = lineStyleModel.getLineStyle(['color']);\n\n for (var i = 0; i < splitLines.length; ++i) {\n group.add(graphic.mergePath(splitLines[i], {\n style: zrUtil.defaults({\n stroke: lineColors[i % lineColors.length]\n }, lineStyle),\n silent: true\n }));\n }\n },\n splitArea: function (axisView, group, axisGroup, axisModel) {\n rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, axisModel);\n }\n};\nexport default SingleAxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as graphic from '../../util/graphic.js';\nimport { makeInner } from '../../util/model.js';\nvar inner = makeInner();\nexport function rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel) {\n var axis = axisModel.axis;\n\n if (axis.scale.isBlank()) {\n return;\n } // TODO: TYPE\n\n\n var splitAreaModel = axisModel.getModel('splitArea');\n var areaStyleModel = splitAreaModel.getModel('areaStyle');\n var areaColors = areaStyleModel.get('color');\n var gridRect = gridModel.coordinateSystem.getRect();\n var ticksCoords = axis.getTicksCoords({\n tickModel: splitAreaModel,\n clamp: true\n });\n\n if (!ticksCoords.length) {\n return;\n } // For Making appropriate splitArea animation, the color and anid\n // should be corresponding to previous one if possible.\n\n\n var areaColorsLen = areaColors.length;\n var lastSplitAreaColors = inner(axisView).splitAreaColors;\n var newSplitAreaColors = zrUtil.createHashMap();\n var colorIndex = 0;\n\n if (lastSplitAreaColors) {\n for (var i = 0; i < ticksCoords.length; i++) {\n var cIndex = lastSplitAreaColors.get(ticksCoords[i].tickValue);\n\n if (cIndex != null) {\n colorIndex = (cIndex + (areaColorsLen - 1) * i) % areaColorsLen;\n break;\n }\n }\n }\n\n var prev = axis.toGlobalCoord(ticksCoords[0].coord);\n var areaStyle = areaStyleModel.getAreaStyle();\n areaColors = zrUtil.isArray(areaColors) ? areaColors : [areaColors];\n\n for (var i = 1; i < ticksCoords.length; i++) {\n var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\n var x = void 0;\n var y = void 0;\n var width = void 0;\n var height = void 0;\n\n if (axis.isHorizontal()) {\n x = prev;\n y = gridRect.y;\n width = tickCoord - x;\n height = gridRect.height;\n prev = x + width;\n } else {\n x = gridRect.x;\n y = prev;\n width = gridRect.width;\n height = tickCoord - y;\n prev = y + height;\n }\n\n var tickValue = ticksCoords[i - 1].tickValue;\n tickValue != null && newSplitAreaColors.set(tickValue, colorIndex);\n axisGroup.add(new graphic.Rect({\n anid: tickValue != null ? 'area_' + tickValue : null,\n shape: {\n x: x,\n y: y,\n width: width,\n height: height\n },\n style: zrUtil.defaults({\n fill: areaColors[colorIndex]\n }, areaStyle),\n autoBatch: true,\n silent: true\n }));\n colorIndex = (colorIndex + 1) % areaColorsLen;\n }\n\n inner(axisView).splitAreaColors = newSplitAreaColors;\n}\nexport function rectCoordAxisHandleRemove(axisView) {\n inner(axisView).splitAreaColors = null;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar actionInfo = {\n type: 'axisAreaSelect',\n event: 'axisAreaSelected' // update: 'updateVisual'\n\n};\nexport function installParallelActions(registers) {\n registers.registerAction(actionInfo, function (payload, ecModel) {\n ecModel.eachComponent({\n mainType: 'parallelAxis',\n query: payload\n }, function (parallelAxisModel) {\n parallelAxisModel.axis.model.setActiveIntervals(payload.intervals);\n });\n });\n /**\n * @payload\n */\n\n registers.registerAction('parallelAxisExpand', function (payload, ecModel) {\n ecModel.eachComponent({\n mainType: 'parallel',\n query: payload\n }, function (parallelModel) {\n parallelModel.setAxisExpand(payload);\n });\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component.js';\n\nvar AxisPointerModel =\n/** @class */\nfunction (_super) {\n __extends(AxisPointerModel, _super);\n\n function AxisPointerModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = AxisPointerModel.type;\n return _this;\n }\n\n AxisPointerModel.type = 'axisPointer';\n AxisPointerModel.defaultOption = {\n // 'auto' means that show when triggered by tooltip or handle.\n show: 'auto',\n // zlevel: 0,\n z: 50,\n type: 'line',\n // axispointer triggered by tootip determine snap automatically,\n // see `modelHelper`.\n snap: false,\n triggerTooltip: true,\n value: null,\n status: null,\n link: [],\n // Do not set 'auto' here, otherwise global animation: false\n // will not effect at this axispointer.\n animation: null,\n animationDurationUpdate: 200,\n lineStyle: {\n color: '#B9BEC9',\n width: 1,\n type: 'dashed'\n },\n shadowStyle: {\n color: 'rgba(210,219,238,0.2)'\n },\n label: {\n show: true,\n formatter: null,\n precision: 'auto',\n margin: 3,\n color: '#fff',\n padding: [5, 7, 5, 7],\n backgroundColor: 'auto',\n borderColor: null,\n borderWidth: 0,\n borderRadius: 3\n },\n handle: {\n show: false,\n // eslint-disable-next-line\n icon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z',\n size: 45,\n // handle margin is from symbol center to axis, which is stable when circular move.\n margin: 50,\n // color: '#1b8bbd'\n // color: '#2f4554'\n color: '#333',\n shadowBlur: 3,\n shadowColor: '#aaa',\n shadowOffsetX: 0,\n shadowOffsetY: 2,\n // For mobile performance\n throttle: 40\n }\n };\n return AxisPointerModel;\n}(ComponentModel);\n\nexport default AxisPointerModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as globalListener from './globalListener.js';\nimport ComponentView from '../../view/Component.js';\n\nvar AxisPointerView =\n/** @class */\nfunction (_super) {\n __extends(AxisPointerView, _super);\n\n function AxisPointerView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = AxisPointerView.type;\n return _this;\n }\n\n AxisPointerView.prototype.render = function (globalAxisPointerModel, ecModel, api) {\n var globalTooltipModel = ecModel.getComponent('tooltip');\n var triggerOn = globalAxisPointerModel.get('triggerOn') || globalTooltipModel && globalTooltipModel.get('triggerOn') || 'mousemove|click'; // Register global listener in AxisPointerView to enable\n // AxisPointerView to be independent to Tooltip.\n\n globalListener.register('axisPointer', api, function (currTrigger, e, dispatchAction) {\n // If 'none', it is not controlled by mouse totally.\n if (triggerOn !== 'none' && (currTrigger === 'leave' || triggerOn.indexOf(currTrigger) >= 0)) {\n dispatchAction({\n type: 'updateAxisPointer',\n currTrigger: currTrigger,\n x: e && e.offsetX,\n y: e && e.offsetY\n });\n }\n });\n };\n\n AxisPointerView.prototype.remove = function (ecModel, api) {\n globalListener.unregister('axisPointer', api);\n };\n\n AxisPointerView.prototype.dispose = function (ecModel, api) {\n globalListener.unregister('axisPointer', api);\n };\n\n AxisPointerView.type = 'axisPointer';\n return AxisPointerView;\n}(ComponentView);\n\nexport default AxisPointerView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as graphic from '../../util/graphic.js';\nimport * as axisPointerModelHelper from './modelHelper.js';\nimport * as eventTool from 'zrender/lib/core/event.js';\nimport * as throttleUtil from '../../util/throttle.js';\nimport { makeInner } from '../../util/model.js';\nvar inner = makeInner();\nvar clone = zrUtil.clone;\nvar bind = zrUtil.bind;\n/**\n * Base axis pointer class in 2D.\n */\n\nvar BaseAxisPointer =\n/** @class */\nfunction () {\n function BaseAxisPointer() {\n this._dragging = false;\n /**\n * In px, arbitrary value. Do not set too small,\n * no animation is ok for most cases.\n */\n\n this.animationThreshold = 15;\n }\n /**\n * @implement\n */\n\n\n BaseAxisPointer.prototype.render = function (axisModel, axisPointerModel, api, forceRender) {\n var value = axisPointerModel.get('value');\n var status = axisPointerModel.get('status'); // Bind them to `this`, not in closure, otherwise they will not\n // be replaced when user calling setOption in not merge mode.\n\n this._axisModel = axisModel;\n this._axisPointerModel = axisPointerModel;\n this._api = api; // Optimize: `render` will be called repeatedly during mouse move.\n // So it is power consuming if performing `render` each time,\n // especially on mobile device.\n\n if (!forceRender && this._lastValue === value && this._lastStatus === status) {\n return;\n }\n\n this._lastValue = value;\n this._lastStatus = status;\n var group = this._group;\n var handle = this._handle;\n\n if (!status || status === 'hide') {\n // Do not clear here, for animation better.\n group && group.hide();\n handle && handle.hide();\n return;\n }\n\n group && group.show();\n handle && handle.show(); // Otherwise status is 'show'\n\n var elOption = {};\n this.makeElOption(elOption, value, axisModel, axisPointerModel, api); // Enable change axis pointer type.\n\n var graphicKey = elOption.graphicKey;\n\n if (graphicKey !== this._lastGraphicKey) {\n this.clear(api);\n }\n\n this._lastGraphicKey = graphicKey;\n var moveAnimation = this._moveAnimation = this.determineAnimation(axisModel, axisPointerModel);\n\n if (!group) {\n group = this._group = new graphic.Group();\n this.createPointerEl(group, elOption, axisModel, axisPointerModel);\n this.createLabelEl(group, elOption, axisModel, axisPointerModel);\n api.getZr().add(group);\n } else {\n var doUpdateProps = zrUtil.curry(updateProps, axisPointerModel, moveAnimation);\n this.updatePointerEl(group, elOption, doUpdateProps);\n this.updateLabelEl(group, elOption, doUpdateProps, axisPointerModel);\n }\n\n updateMandatoryProps(group, axisPointerModel, true);\n\n this._renderHandle(value);\n };\n /**\n * @implement\n */\n\n\n BaseAxisPointer.prototype.remove = function (api) {\n this.clear(api);\n };\n /**\n * @implement\n */\n\n\n BaseAxisPointer.prototype.dispose = function (api) {\n this.clear(api);\n };\n /**\n * @protected\n */\n\n\n BaseAxisPointer.prototype.determineAnimation = function (axisModel, axisPointerModel) {\n var animation = axisPointerModel.get('animation');\n var axis = axisModel.axis;\n var isCategoryAxis = axis.type === 'category';\n var useSnap = axisPointerModel.get('snap'); // Value axis without snap always do not snap.\n\n if (!useSnap && !isCategoryAxis) {\n return false;\n }\n\n if (animation === 'auto' || animation == null) {\n var animationThreshold = this.animationThreshold;\n\n if (isCategoryAxis && axis.getBandWidth() > animationThreshold) {\n return true;\n } // It is important to auto animation when snap used. Consider if there is\n // a dataZoom, animation will be disabled when too many points exist, while\n // it will be enabled for better visual effect when little points exist.\n\n\n if (useSnap) {\n var seriesDataCount = axisPointerModelHelper.getAxisInfo(axisModel).seriesDataCount;\n var axisExtent = axis.getExtent(); // Approximate band width\n\n return Math.abs(axisExtent[0] - axisExtent[1]) / seriesDataCount > animationThreshold;\n }\n\n return false;\n }\n\n return animation === true;\n };\n /**\n * add {pointer, label, graphicKey} to elOption\n * @protected\n */\n\n\n BaseAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {// Should be implemenented by sub-class.\n };\n /**\n * @protected\n */\n\n\n BaseAxisPointer.prototype.createPointerEl = function (group, elOption, axisModel, axisPointerModel) {\n var pointerOption = elOption.pointer;\n\n if (pointerOption) {\n var pointerEl = inner(group).pointerEl = new graphic[pointerOption.type](clone(elOption.pointer));\n group.add(pointerEl);\n }\n };\n /**\n * @protected\n */\n\n\n BaseAxisPointer.prototype.createLabelEl = function (group, elOption, axisModel, axisPointerModel) {\n if (elOption.label) {\n var labelEl = inner(group).labelEl = new graphic.Text(clone(elOption.label));\n group.add(labelEl);\n updateLabelShowHide(labelEl, axisPointerModel);\n }\n };\n /**\n * @protected\n */\n\n\n BaseAxisPointer.prototype.updatePointerEl = function (group, elOption, updateProps) {\n var pointerEl = inner(group).pointerEl;\n\n if (pointerEl && elOption.pointer) {\n pointerEl.setStyle(elOption.pointer.style);\n updateProps(pointerEl, {\n shape: elOption.pointer.shape\n });\n }\n };\n /**\n * @protected\n */\n\n\n BaseAxisPointer.prototype.updateLabelEl = function (group, elOption, updateProps, axisPointerModel) {\n var labelEl = inner(group).labelEl;\n\n if (labelEl) {\n labelEl.setStyle(elOption.label.style);\n updateProps(labelEl, {\n // Consider text length change in vertical axis, animation should\n // be used on shape, otherwise the effect will be weird.\n // TODOTODO\n // shape: elOption.label.shape,\n x: elOption.label.x,\n y: elOption.label.y\n });\n updateLabelShowHide(labelEl, axisPointerModel);\n }\n };\n /**\n * @private\n */\n\n\n BaseAxisPointer.prototype._renderHandle = function (value) {\n if (this._dragging || !this.updateHandleTransform) {\n return;\n }\n\n var axisPointerModel = this._axisPointerModel;\n\n var zr = this._api.getZr();\n\n var handle = this._handle;\n var handleModel = axisPointerModel.getModel('handle');\n var status = axisPointerModel.get('status');\n\n if (!handleModel.get('show') || !status || status === 'hide') {\n handle && zr.remove(handle);\n this._handle = null;\n return;\n }\n\n var isInit;\n\n if (!this._handle) {\n isInit = true;\n handle = this._handle = graphic.createIcon(handleModel.get('icon'), {\n cursor: 'move',\n draggable: true,\n onmousemove: function (e) {\n // For mobile device, prevent screen slider on the button.\n eventTool.stop(e.event);\n },\n onmousedown: bind(this._onHandleDragMove, this, 0, 0),\n drift: bind(this._onHandleDragMove, this),\n ondragend: bind(this._onHandleDragEnd, this)\n });\n zr.add(handle);\n }\n\n updateMandatoryProps(handle, axisPointerModel, false); // update style\n\n handle.setStyle(handleModel.getItemStyle(null, ['color', 'borderColor', 'borderWidth', 'opacity', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY'])); // update position\n\n var handleSize = handleModel.get('size');\n\n if (!zrUtil.isArray(handleSize)) {\n handleSize = [handleSize, handleSize];\n }\n\n handle.scaleX = handleSize[0] / 2;\n handle.scaleY = handleSize[1] / 2;\n throttleUtil.createOrUpdate(this, '_doDispatchAxisPointer', handleModel.get('throttle') || 0, 'fixRate');\n\n this._moveHandleToValue(value, isInit);\n };\n\n BaseAxisPointer.prototype._moveHandleToValue = function (value, isInit) {\n updateProps(this._axisPointerModel, !isInit && this._moveAnimation, this._handle, getHandleTransProps(this.getHandleTransform(value, this._axisModel, this._axisPointerModel)));\n };\n\n BaseAxisPointer.prototype._onHandleDragMove = function (dx, dy) {\n var handle = this._handle;\n\n if (!handle) {\n return;\n }\n\n this._dragging = true; // Persistent for throttle.\n\n var trans = this.updateHandleTransform(getHandleTransProps(handle), [dx, dy], this._axisModel, this._axisPointerModel);\n this._payloadInfo = trans;\n handle.stopAnimation();\n handle.attr(getHandleTransProps(trans));\n inner(handle).lastProp = null;\n\n this._doDispatchAxisPointer();\n };\n /**\n * Throttled method.\n */\n\n\n BaseAxisPointer.prototype._doDispatchAxisPointer = function () {\n var handle = this._handle;\n\n if (!handle) {\n return;\n }\n\n var payloadInfo = this._payloadInfo;\n var axisModel = this._axisModel;\n\n this._api.dispatchAction({\n type: 'updateAxisPointer',\n x: payloadInfo.cursorPoint[0],\n y: payloadInfo.cursorPoint[1],\n tooltipOption: payloadInfo.tooltipOption,\n axesInfo: [{\n axisDim: axisModel.axis.dim,\n axisIndex: axisModel.componentIndex\n }]\n });\n };\n\n BaseAxisPointer.prototype._onHandleDragEnd = function () {\n this._dragging = false;\n var handle = this._handle;\n\n if (!handle) {\n return;\n }\n\n var value = this._axisPointerModel.get('value'); // Consider snap or categroy axis, handle may be not consistent with\n // axisPointer. So move handle to align the exact value position when\n // drag ended.\n\n\n this._moveHandleToValue(value); // For the effect: tooltip will be shown when finger holding on handle\n // button, and will be hidden after finger left handle button.\n\n\n this._api.dispatchAction({\n type: 'hideTip'\n });\n };\n /**\n * @private\n */\n\n\n BaseAxisPointer.prototype.clear = function (api) {\n this._lastValue = null;\n this._lastStatus = null;\n var zr = api.getZr();\n var group = this._group;\n var handle = this._handle;\n\n if (zr && group) {\n this._lastGraphicKey = null;\n group && zr.remove(group);\n handle && zr.remove(handle);\n this._group = null;\n this._handle = null;\n this._payloadInfo = null;\n }\n\n throttleUtil.clear(this, '_doDispatchAxisPointer');\n };\n /**\n * @protected\n */\n\n\n BaseAxisPointer.prototype.doClear = function () {// Implemented by sub-class if necessary.\n };\n\n BaseAxisPointer.prototype.buildLabel = function (xy, wh, xDimIndex) {\n xDimIndex = xDimIndex || 0;\n return {\n x: xy[xDimIndex],\n y: xy[1 - xDimIndex],\n width: wh[xDimIndex],\n height: wh[1 - xDimIndex]\n };\n };\n\n return BaseAxisPointer;\n}();\n\nfunction updateProps(animationModel, moveAnimation, el, props) {\n // Animation optimize.\n if (!propsEqual(inner(el).lastProp, props)) {\n inner(el).lastProp = props;\n moveAnimation ? graphic.updateProps(el, props, animationModel) : (el.stopAnimation(), el.attr(props));\n }\n}\n\nfunction propsEqual(lastProps, newProps) {\n if (zrUtil.isObject(lastProps) && zrUtil.isObject(newProps)) {\n var equals_1 = true;\n zrUtil.each(newProps, function (item, key) {\n equals_1 = equals_1 && propsEqual(lastProps[key], item);\n });\n return !!equals_1;\n } else {\n return lastProps === newProps;\n }\n}\n\nfunction updateLabelShowHide(labelEl, axisPointerModel) {\n labelEl[axisPointerModel.get(['label', 'show']) ? 'show' : 'hide']();\n}\n\nfunction getHandleTransProps(trans) {\n return {\n x: trans.x || 0,\n y: trans.y || 0,\n rotation: trans.rotation || 0\n };\n}\n\nfunction updateMandatoryProps(group, axisPointerModel, silent) {\n var z = axisPointerModel.get('z');\n var zlevel = axisPointerModel.get('zlevel');\n group && group.traverse(function (el) {\n if (el.type !== 'group') {\n z != null && (el.z = z);\n zlevel != null && (el.zlevel = zlevel);\n el.silent = silent;\n }\n });\n}\n\nexport default BaseAxisPointer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport BaseAxisPointer from './BaseAxisPointer.js';\nimport * as viewHelper from './viewHelper.js';\nimport * as cartesianAxisHelper from '../../coord/cartesian/cartesianAxisHelper.js';\n\nvar CartesianAxisPointer =\n/** @class */\nfunction (_super) {\n __extends(CartesianAxisPointer, _super);\n\n function CartesianAxisPointer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @override\n */\n\n\n CartesianAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {\n var axis = axisModel.axis;\n var grid = axis.grid;\n var axisPointerType = axisPointerModel.get('type');\n var otherExtent = getCartesian(grid, axis).getOtherAxis(axis).getGlobalExtent();\n var pixelValue = axis.toGlobalCoord(axis.dataToCoord(value, true));\n\n if (axisPointerType && axisPointerType !== 'none') {\n var elStyle = viewHelper.buildElStyle(axisPointerModel);\n var pointerOption = pointerShapeBuilder[axisPointerType](axis, pixelValue, otherExtent);\n pointerOption.style = elStyle;\n elOption.graphicKey = pointerOption.type;\n elOption.pointer = pointerOption;\n }\n\n var layoutInfo = cartesianAxisHelper.layout(grid.model, axisModel);\n viewHelper.buildCartesianSingleLabelElOption( // @ts-ignore\n value, elOption, layoutInfo, axisModel, axisPointerModel, api);\n };\n /**\n * @override\n */\n\n\n CartesianAxisPointer.prototype.getHandleTransform = function (value, axisModel, axisPointerModel) {\n var layoutInfo = cartesianAxisHelper.layout(axisModel.axis.grid.model, axisModel, {\n labelInside: false\n }); // @ts-ignore\n\n layoutInfo.labelMargin = axisPointerModel.get(['handle', 'margin']);\n var pos = viewHelper.getTransformedPosition(axisModel.axis, value, layoutInfo);\n return {\n x: pos[0],\n y: pos[1],\n rotation: layoutInfo.rotation + (layoutInfo.labelDirection < 0 ? Math.PI : 0)\n };\n };\n /**\n * @override\n */\n\n\n CartesianAxisPointer.prototype.updateHandleTransform = function (transform, delta, axisModel, axisPointerModel) {\n var axis = axisModel.axis;\n var grid = axis.grid;\n var axisExtent = axis.getGlobalExtent(true);\n var otherExtent = getCartesian(grid, axis).getOtherAxis(axis).getGlobalExtent();\n var dimIndex = axis.dim === 'x' ? 0 : 1;\n var currPosition = [transform.x, transform.y];\n currPosition[dimIndex] += delta[dimIndex];\n currPosition[dimIndex] = Math.min(axisExtent[1], currPosition[dimIndex]);\n currPosition[dimIndex] = Math.max(axisExtent[0], currPosition[dimIndex]);\n var cursorOtherValue = (otherExtent[1] + otherExtent[0]) / 2;\n var cursorPoint = [cursorOtherValue, cursorOtherValue];\n cursorPoint[dimIndex] = currPosition[dimIndex]; // Make tooltip do not overlap axisPointer and in the middle of the grid.\n\n var tooltipOptions = [{\n verticalAlign: 'middle'\n }, {\n align: 'center'\n }];\n return {\n x: currPosition[0],\n y: currPosition[1],\n rotation: transform.rotation,\n cursorPoint: cursorPoint,\n tooltipOption: tooltipOptions[dimIndex]\n };\n };\n\n return CartesianAxisPointer;\n}(BaseAxisPointer);\n\nfunction getCartesian(grid, axis) {\n var opt = {};\n opt[axis.dim + 'AxisIndex'] = axis.index;\n return grid.getCartesian(opt);\n}\n\nvar pointerShapeBuilder = {\n line: function (axis, pixelValue, otherExtent) {\n var targetShape = viewHelper.makeLineShape([pixelValue, otherExtent[0]], [pixelValue, otherExtent[1]], getAxisDimIndex(axis));\n return {\n type: 'Line',\n subPixelOptimize: true,\n shape: targetShape\n };\n },\n shadow: function (axis, pixelValue, otherExtent) {\n var bandWidth = Math.max(1, axis.getBandWidth());\n var span = otherExtent[1] - otherExtent[0];\n return {\n type: 'Rect',\n shape: viewHelper.makeRectShape([pixelValue - bandWidth / 2, otherExtent[0]], [bandWidth, span], getAxisDimIndex(axis))\n };\n }\n};\n\nfunction getAxisDimIndex(axis) {\n return axis.dim === 'x' ? 0 : 1;\n}\n\nexport default CartesianAxisPointer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport BaseAxisPointer from './BaseAxisPointer.js';\nimport * as graphic from '../../util/graphic.js';\nimport * as viewHelper from './viewHelper.js';\nimport * as matrix from 'zrender/lib/core/matrix.js';\nimport AxisBuilder from '../axis/AxisBuilder.js';\n\nvar PolarAxisPointer =\n/** @class */\nfunction (_super) {\n __extends(PolarAxisPointer, _super);\n\n function PolarAxisPointer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @override\n */\n\n\n PolarAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {\n var axis = axisModel.axis;\n\n if (axis.dim === 'angle') {\n this.animationThreshold = Math.PI / 18;\n }\n\n var polar = axis.polar;\n var otherAxis = polar.getOtherAxis(axis);\n var otherExtent = otherAxis.getExtent();\n var coordValue = axis.dataToCoord(value);\n var axisPointerType = axisPointerModel.get('type');\n\n if (axisPointerType && axisPointerType !== 'none') {\n var elStyle = viewHelper.buildElStyle(axisPointerModel);\n var pointerOption = pointerShapeBuilder[axisPointerType](axis, polar, coordValue, otherExtent);\n pointerOption.style = elStyle;\n elOption.graphicKey = pointerOption.type;\n elOption.pointer = pointerOption;\n }\n\n var labelMargin = axisPointerModel.get(['label', 'margin']);\n var labelPos = getLabelPosition(value, axisModel, axisPointerModel, polar, labelMargin);\n viewHelper.buildLabelElOption(elOption, axisModel, axisPointerModel, api, labelPos);\n };\n\n return PolarAxisPointer;\n}(BaseAxisPointer);\n\n;\n\nfunction getLabelPosition(value, axisModel, axisPointerModel, polar, labelMargin) {\n var axis = axisModel.axis;\n var coord = axis.dataToCoord(value);\n var axisAngle = polar.getAngleAxis().getExtent()[0];\n axisAngle = axisAngle / 180 * Math.PI;\n var radiusExtent = polar.getRadiusAxis().getExtent();\n var position;\n var align;\n var verticalAlign;\n\n if (axis.dim === 'radius') {\n var transform = matrix.create();\n matrix.rotate(transform, transform, axisAngle);\n matrix.translate(transform, transform, [polar.cx, polar.cy]);\n position = graphic.applyTransform([coord, -labelMargin], transform);\n var labelRotation = axisModel.getModel('axisLabel').get('rotate') || 0; // @ts-ignore\n\n var labelLayout = AxisBuilder.innerTextLayout(axisAngle, labelRotation * Math.PI / 180, -1);\n align = labelLayout.textAlign;\n verticalAlign = labelLayout.textVerticalAlign;\n } else {\n // angle axis\n var r = radiusExtent[1];\n position = polar.coordToPoint([r + labelMargin, coord]);\n var cx = polar.cx;\n var cy = polar.cy;\n align = Math.abs(position[0] - cx) / r < 0.3 ? 'center' : position[0] > cx ? 'left' : 'right';\n verticalAlign = Math.abs(position[1] - cy) / r < 0.3 ? 'middle' : position[1] > cy ? 'top' : 'bottom';\n }\n\n return {\n position: position,\n align: align,\n verticalAlign: verticalAlign\n };\n}\n\nvar pointerShapeBuilder = {\n line: function (axis, polar, coordValue, otherExtent) {\n return axis.dim === 'angle' ? {\n type: 'Line',\n shape: viewHelper.makeLineShape(polar.coordToPoint([otherExtent[0], coordValue]), polar.coordToPoint([otherExtent[1], coordValue]))\n } : {\n type: 'Circle',\n shape: {\n cx: polar.cx,\n cy: polar.cy,\n r: coordValue\n }\n };\n },\n shadow: function (axis, polar, coordValue, otherExtent) {\n var bandWidth = Math.max(1, axis.getBandWidth());\n var radian = Math.PI / 180;\n return axis.dim === 'angle' ? {\n type: 'Sector',\n shape: viewHelper.makeSectorShape(polar.cx, polar.cy, otherExtent[0], otherExtent[1], // In ECharts y is negative if angle is positive\n (-coordValue - bandWidth / 2) * radian, (-coordValue + bandWidth / 2) * radian)\n } : {\n type: 'Sector',\n shape: viewHelper.makeSectorShape(polar.cx, polar.cy, coordValue - bandWidth / 2, coordValue + bandWidth / 2, 0, Math.PI * 2)\n };\n }\n};\nexport default PolarAxisPointer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport BaseAxisPointer from './BaseAxisPointer.js';\nimport * as viewHelper from './viewHelper.js';\nimport * as singleAxisHelper from '../../coord/single/singleAxisHelper.js';\nvar XY = ['x', 'y'];\nvar WH = ['width', 'height'];\n\nvar SingleAxisPointer =\n/** @class */\nfunction (_super) {\n __extends(SingleAxisPointer, _super);\n\n function SingleAxisPointer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @override\n */\n\n\n SingleAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {\n var axis = axisModel.axis;\n var coordSys = axis.coordinateSystem;\n var otherExtent = getGlobalExtent(coordSys, 1 - getPointDimIndex(axis));\n var pixelValue = coordSys.dataToPoint(value)[0];\n var axisPointerType = axisPointerModel.get('type');\n\n if (axisPointerType && axisPointerType !== 'none') {\n var elStyle = viewHelper.buildElStyle(axisPointerModel);\n var pointerOption = pointerShapeBuilder[axisPointerType](axis, pixelValue, otherExtent);\n pointerOption.style = elStyle;\n elOption.graphicKey = pointerOption.type;\n elOption.pointer = pointerOption;\n }\n\n var layoutInfo = singleAxisHelper.layout(axisModel);\n viewHelper.buildCartesianSingleLabelElOption( // @ts-ignore\n value, elOption, layoutInfo, axisModel, axisPointerModel, api);\n };\n /**\n * @override\n */\n\n\n SingleAxisPointer.prototype.getHandleTransform = function (value, axisModel, axisPointerModel) {\n var layoutInfo = singleAxisHelper.layout(axisModel, {\n labelInside: false\n }); // @ts-ignore\n\n layoutInfo.labelMargin = axisPointerModel.get(['handle', 'margin']);\n var position = viewHelper.getTransformedPosition(axisModel.axis, value, layoutInfo);\n return {\n x: position[0],\n y: position[1],\n rotation: layoutInfo.rotation + (layoutInfo.labelDirection < 0 ? Math.PI : 0)\n };\n };\n /**\n * @override\n */\n\n\n SingleAxisPointer.prototype.updateHandleTransform = function (transform, delta, axisModel, axisPointerModel) {\n var axis = axisModel.axis;\n var coordSys = axis.coordinateSystem;\n var dimIndex = getPointDimIndex(axis);\n var axisExtent = getGlobalExtent(coordSys, dimIndex);\n var currPosition = [transform.x, transform.y];\n currPosition[dimIndex] += delta[dimIndex];\n currPosition[dimIndex] = Math.min(axisExtent[1], currPosition[dimIndex]);\n currPosition[dimIndex] = Math.max(axisExtent[0], currPosition[dimIndex]);\n var otherExtent = getGlobalExtent(coordSys, 1 - dimIndex);\n var cursorOtherValue = (otherExtent[1] + otherExtent[0]) / 2;\n var cursorPoint = [cursorOtherValue, cursorOtherValue];\n cursorPoint[dimIndex] = currPosition[dimIndex];\n return {\n x: currPosition[0],\n y: currPosition[1],\n rotation: transform.rotation,\n cursorPoint: cursorPoint,\n tooltipOption: {\n verticalAlign: 'middle'\n }\n };\n };\n\n return SingleAxisPointer;\n}(BaseAxisPointer);\n\nvar pointerShapeBuilder = {\n line: function (axis, pixelValue, otherExtent) {\n var targetShape = viewHelper.makeLineShape([pixelValue, otherExtent[0]], [pixelValue, otherExtent[1]], getPointDimIndex(axis));\n return {\n type: 'Line',\n subPixelOptimize: true,\n shape: targetShape\n };\n },\n shadow: function (axis, pixelValue, otherExtent) {\n var bandWidth = axis.getBandWidth();\n var span = otherExtent[1] - otherExtent[0];\n return {\n type: 'Rect',\n shape: viewHelper.makeRectShape([pixelValue - bandWidth / 2, otherExtent[0]], [bandWidth, span], getPointDimIndex(axis))\n };\n }\n};\n\nfunction getPointDimIndex(axis) {\n return axis.isHorizontal() ? 0 : 1;\n}\n\nfunction getGlobalExtent(coordSys, dimIndex) {\n var rect = coordSys.getRect();\n return [rect[XY[dimIndex]], rect[XY[dimIndex]] + rect[WH[dimIndex]]];\n}\n\nexport default SingleAxisPointer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { makeInner } from '../../util/model.js';\nimport * as modelHelper from './modelHelper.js';\nimport findPointFromSeries from './findPointFromSeries.js';\nimport { each, curry, bind, extend } from 'zrender/lib/core/util.js';\nvar inner = makeInner();\n/**\n * Basic logic: check all axis, if they do not demand show/highlight,\n * then hide/downplay them.\n *\n * @return content of event obj for echarts.connect.\n */\n\nexport default function axisTrigger(payload, ecModel, api) {\n var currTrigger = payload.currTrigger;\n var point = [payload.x, payload.y];\n var finder = payload;\n var dispatchAction = payload.dispatchAction || bind(api.dispatchAction, api);\n var coordSysAxesInfo = ecModel.getComponent('axisPointer').coordSysAxesInfo; // Pending\n // See #6121. But we are not able to reproduce it yet.\n\n if (!coordSysAxesInfo) {\n return;\n }\n\n if (illegalPoint(point)) {\n // Used in the default behavior of `connection`: use the sample seriesIndex\n // and dataIndex. And also used in the tooltipView trigger.\n point = findPointFromSeries({\n seriesIndex: finder.seriesIndex,\n // Do not use dataIndexInside from other ec instance.\n // FIXME: auto detect it?\n dataIndex: finder.dataIndex\n }, ecModel).point;\n }\n\n var isIllegalPoint = illegalPoint(point); // Axis and value can be specified when calling dispatchAction({type: 'updateAxisPointer'}).\n // Notice: In this case, it is difficult to get the `point` (which is necessary to show\n // tooltip, so if point is not given, we just use the point found by sample seriesIndex\n // and dataIndex.\n\n var inputAxesInfo = finder.axesInfo;\n var axesInfo = coordSysAxesInfo.axesInfo;\n var shouldHide = currTrigger === 'leave' || illegalPoint(point);\n var outputPayload = {};\n var showValueMap = {};\n var dataByCoordSys = {\n list: [],\n map: {}\n };\n var updaters = {\n showPointer: curry(showPointer, showValueMap),\n showTooltip: curry(showTooltip, dataByCoordSys)\n }; // Process for triggered axes.\n\n each(coordSysAxesInfo.coordSysMap, function (coordSys, coordSysKey) {\n // If a point given, it must be contained by the coordinate system.\n var coordSysContainsPoint = isIllegalPoint || coordSys.containPoint(point);\n each(coordSysAxesInfo.coordSysAxesInfo[coordSysKey], function (axisInfo, key) {\n var axis = axisInfo.axis;\n var inputAxisInfo = findInputAxisInfo(inputAxesInfo, axisInfo); // If no inputAxesInfo, no axis is restricted.\n\n if (!shouldHide && coordSysContainsPoint && (!inputAxesInfo || inputAxisInfo)) {\n var val = inputAxisInfo && inputAxisInfo.value;\n\n if (val == null && !isIllegalPoint) {\n val = axis.pointToData(point);\n }\n\n val != null && processOnAxis(axisInfo, val, updaters, false, outputPayload);\n }\n });\n }); // Process for linked axes.\n\n var linkTriggers = {};\n each(axesInfo, function (tarAxisInfo, tarKey) {\n var linkGroup = tarAxisInfo.linkGroup; // If axis has been triggered in the previous stage, it should not be triggered by link.\n\n if (linkGroup && !showValueMap[tarKey]) {\n each(linkGroup.axesInfo, function (srcAxisInfo, srcKey) {\n var srcValItem = showValueMap[srcKey]; // If srcValItem exist, source axis is triggered, so link to target axis.\n\n if (srcAxisInfo !== tarAxisInfo && srcValItem) {\n var val = srcValItem.value;\n linkGroup.mapper && (val = tarAxisInfo.axis.scale.parse(linkGroup.mapper(val, makeMapperParam(srcAxisInfo), makeMapperParam(tarAxisInfo))));\n linkTriggers[tarAxisInfo.key] = val;\n }\n });\n }\n });\n each(linkTriggers, function (val, tarKey) {\n processOnAxis(axesInfo[tarKey], val, updaters, true, outputPayload);\n });\n updateModelActually(showValueMap, axesInfo, outputPayload);\n dispatchTooltipActually(dataByCoordSys, point, payload, dispatchAction);\n dispatchHighDownActually(axesInfo, dispatchAction, api);\n return outputPayload;\n}\n\nfunction processOnAxis(axisInfo, newValue, updaters, noSnap, outputFinder) {\n var axis = axisInfo.axis;\n\n if (axis.scale.isBlank() || !axis.containData(newValue)) {\n return;\n }\n\n if (!axisInfo.involveSeries) {\n updaters.showPointer(axisInfo, newValue);\n return;\n } // Heavy calculation. So put it after axis.containData checking.\n\n\n var payloadInfo = buildPayloadsBySeries(newValue, axisInfo);\n var payloadBatch = payloadInfo.payloadBatch;\n var snapToValue = payloadInfo.snapToValue; // Fill content of event obj for echarts.connect.\n // By default use the first involved series data as a sample to connect.\n\n if (payloadBatch[0] && outputFinder.seriesIndex == null) {\n extend(outputFinder, payloadBatch[0]);\n } // If no linkSource input, this process is for collecting link\n // target, where snap should not be accepted.\n\n\n if (!noSnap && axisInfo.snap) {\n if (axis.containData(snapToValue) && snapToValue != null) {\n newValue = snapToValue;\n }\n }\n\n updaters.showPointer(axisInfo, newValue, payloadBatch); // Tooltip should always be snapToValue, otherwise there will be\n // incorrect \"axis value ~ series value\" mapping displayed in tooltip.\n\n updaters.showTooltip(axisInfo, payloadInfo, snapToValue);\n}\n\nfunction buildPayloadsBySeries(value, axisInfo) {\n var axis = axisInfo.axis;\n var dim = axis.dim;\n var snapToValue = value;\n var payloadBatch = [];\n var minDist = Number.MAX_VALUE;\n var minDiff = -1;\n each(axisInfo.seriesModels, function (series, idx) {\n var dataDim = series.getData().mapDimensionsAll(dim);\n var seriesNestestValue;\n var dataIndices;\n\n if (series.getAxisTooltipData) {\n var result = series.getAxisTooltipData(dataDim, value, axis);\n dataIndices = result.dataIndices;\n seriesNestestValue = result.nestestValue;\n } else {\n dataIndices = series.getData().indicesOfNearest(dataDim[0], value, // Add a threshold to avoid find the wrong dataIndex\n // when data length is not same.\n // false,\n axis.type === 'category' ? 0.5 : null);\n\n if (!dataIndices.length) {\n return;\n }\n\n seriesNestestValue = series.getData().get(dataDim[0], dataIndices[0]);\n }\n\n if (seriesNestestValue == null || !isFinite(seriesNestestValue)) {\n return;\n }\n\n var diff = value - seriesNestestValue;\n var dist = Math.abs(diff); // Consider category case\n\n if (dist <= minDist) {\n if (dist < minDist || diff >= 0 && minDiff < 0) {\n minDist = dist;\n minDiff = diff;\n snapToValue = seriesNestestValue;\n payloadBatch.length = 0;\n }\n\n each(dataIndices, function (dataIndex) {\n payloadBatch.push({\n seriesIndex: series.seriesIndex,\n dataIndexInside: dataIndex,\n dataIndex: series.getData().getRawIndex(dataIndex)\n });\n });\n }\n });\n return {\n payloadBatch: payloadBatch,\n snapToValue: snapToValue\n };\n}\n\nfunction showPointer(showValueMap, axisInfo, value, payloadBatch) {\n showValueMap[axisInfo.key] = {\n value: value,\n payloadBatch: payloadBatch\n };\n}\n\nfunction showTooltip(dataByCoordSys, axisInfo, payloadInfo, value) {\n var payloadBatch = payloadInfo.payloadBatch;\n var axis = axisInfo.axis;\n var axisModel = axis.model;\n var axisPointerModel = axisInfo.axisPointerModel; // If no data, do not create anything in dataByCoordSys,\n // whose length will be used to judge whether dispatch action.\n\n if (!axisInfo.triggerTooltip || !payloadBatch.length) {\n return;\n }\n\n var coordSysModel = axisInfo.coordSys.model;\n var coordSysKey = modelHelper.makeKey(coordSysModel);\n var coordSysItem = dataByCoordSys.map[coordSysKey];\n\n if (!coordSysItem) {\n coordSysItem = dataByCoordSys.map[coordSysKey] = {\n coordSysId: coordSysModel.id,\n coordSysIndex: coordSysModel.componentIndex,\n coordSysType: coordSysModel.type,\n coordSysMainType: coordSysModel.mainType,\n dataByAxis: []\n };\n dataByCoordSys.list.push(coordSysItem);\n }\n\n coordSysItem.dataByAxis.push({\n axisDim: axis.dim,\n axisIndex: axisModel.componentIndex,\n axisType: axisModel.type,\n axisId: axisModel.id,\n value: value,\n // Caustion: viewHelper.getValueLabel is actually on \"view stage\", which\n // depends that all models have been updated. So it should not be performed\n // here. Considering axisPointerModel used here is volatile, which is hard\n // to be retrieve in TooltipView, we prepare parameters here.\n valueLabelOpt: {\n precision: axisPointerModel.get(['label', 'precision']),\n formatter: axisPointerModel.get(['label', 'formatter'])\n },\n seriesDataIndices: payloadBatch.slice()\n });\n}\n\nfunction updateModelActually(showValueMap, axesInfo, outputPayload) {\n var outputAxesInfo = outputPayload.axesInfo = []; // Basic logic: If no 'show' required, 'hide' this axisPointer.\n\n each(axesInfo, function (axisInfo, key) {\n var option = axisInfo.axisPointerModel.option;\n var valItem = showValueMap[key];\n\n if (valItem) {\n !axisInfo.useHandle && (option.status = 'show');\n option.value = valItem.value; // For label formatter param and highlight.\n\n option.seriesDataIndices = (valItem.payloadBatch || []).slice();\n } // When always show (e.g., handle used), remain\n // original value and status.\n else {\n // If hide, value still need to be set, consider\n // click legend to toggle axis blank.\n !axisInfo.useHandle && (option.status = 'hide');\n } // If status is 'hide', should be no info in payload.\n\n\n option.status === 'show' && outputAxesInfo.push({\n axisDim: axisInfo.axis.dim,\n axisIndex: axisInfo.axis.model.componentIndex,\n value: option.value\n });\n });\n}\n\nfunction dispatchTooltipActually(dataByCoordSys, point, payload, dispatchAction) {\n // Basic logic: If no showTip required, hideTip will be dispatched.\n if (illegalPoint(point) || !dataByCoordSys.list.length) {\n dispatchAction({\n type: 'hideTip'\n });\n return;\n } // In most case only one axis (or event one series is used). It is\n // convenient to fetch payload.seriesIndex and payload.dataIndex\n // directly. So put the first seriesIndex and dataIndex of the first\n // axis on the payload.\n\n\n var sampleItem = ((dataByCoordSys.list[0].dataByAxis[0] || {}).seriesDataIndices || [])[0] || {};\n dispatchAction({\n type: 'showTip',\n escapeConnect: true,\n x: point[0],\n y: point[1],\n tooltipOption: payload.tooltipOption,\n position: payload.position,\n dataIndexInside: sampleItem.dataIndexInside,\n dataIndex: sampleItem.dataIndex,\n seriesIndex: sampleItem.seriesIndex,\n dataByCoordSys: dataByCoordSys.list\n });\n}\n\nfunction dispatchHighDownActually(axesInfo, dispatchAction, api) {\n // FIXME\n // highlight status modification should be a stage of main process?\n // (Consider confilct (e.g., legend and axisPointer) and setOption)\n var zr = api.getZr();\n var highDownKey = 'axisPointerLastHighlights';\n var lastHighlights = inner(zr)[highDownKey] || {};\n var newHighlights = inner(zr)[highDownKey] = {}; // Update highlight/downplay status according to axisPointer model.\n // Build hash map and remove duplicate incidentally.\n\n each(axesInfo, function (axisInfo, key) {\n var option = axisInfo.axisPointerModel.option;\n option.status === 'show' && each(option.seriesDataIndices, function (batchItem) {\n var key = batchItem.seriesIndex + ' | ' + batchItem.dataIndex;\n newHighlights[key] = batchItem;\n });\n }); // Diff.\n\n var toHighlight = [];\n var toDownplay = [];\n each(lastHighlights, function (batchItem, key) {\n !newHighlights[key] && toDownplay.push(batchItem);\n });\n each(newHighlights, function (batchItem, key) {\n !lastHighlights[key] && toHighlight.push(batchItem);\n });\n toDownplay.length && api.dispatchAction({\n type: 'downplay',\n escapeConnect: true,\n // Not blur others when highlight in axisPointer.\n notBlur: true,\n batch: toDownplay\n });\n toHighlight.length && api.dispatchAction({\n type: 'highlight',\n escapeConnect: true,\n // Not blur others when highlight in axisPointer.\n notBlur: true,\n batch: toHighlight\n });\n}\n\nfunction findInputAxisInfo(inputAxesInfo, axisInfo) {\n for (var i = 0; i < (inputAxesInfo || []).length; i++) {\n var inputAxisInfo = inputAxesInfo[i];\n\n if (axisInfo.axis.dim === inputAxisInfo.axisDim && axisInfo.axis.model.componentIndex === inputAxisInfo.axisIndex) {\n return inputAxisInfo;\n }\n }\n}\n\nfunction makeMapperParam(axisInfo) {\n var axisModel = axisInfo.axis.model;\n var item = {};\n var dim = item.axisDim = axisInfo.axis.dim;\n item.axisIndex = item[dim + 'AxisIndex'] = axisModel.componentIndex;\n item.axisName = item[dim + 'AxisName'] = axisModel.name;\n item.axisId = item[dim + 'AxisId'] = axisModel.id;\n return item;\n}\n\nfunction illegalPoint(point) {\n return !point || point[0] == null || isNaN(point[0]) || point[1] == null || isNaN(point[1]);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as modelUtil from '../../util/model.js';\n/**\n * @param finder contains {seriesIndex, dataIndex, dataIndexInside}\n * @param ecModel\n * @return {point: [x, y], el: ...} point Will not be null.\n */\n\nexport default function findPointFromSeries(finder, ecModel) {\n var point = [];\n var seriesIndex = finder.seriesIndex;\n var seriesModel;\n\n if (seriesIndex == null || !(seriesModel = ecModel.getSeriesByIndex(seriesIndex))) {\n return {\n point: []\n };\n }\n\n var data = seriesModel.getData();\n var dataIndex = modelUtil.queryDataIndex(data, finder);\n\n if (dataIndex == null || dataIndex < 0 || zrUtil.isArray(dataIndex)) {\n return {\n point: []\n };\n }\n\n var el = data.getItemGraphicEl(dataIndex);\n var coordSys = seriesModel.coordinateSystem;\n\n if (seriesModel.getTooltipPosition) {\n point = seriesModel.getTooltipPosition(dataIndex) || [];\n } else if (coordSys && coordSys.dataToPoint) {\n if (finder.isStacked) {\n var baseAxis = coordSys.getBaseAxis();\n var valueAxis = coordSys.getOtherAxis(baseAxis);\n var valueAxisDim = valueAxis.dim;\n var baseAxisDim = baseAxis.dim;\n var baseDataOffset = valueAxisDim === 'x' || valueAxisDim === 'radius' ? 1 : 0;\n var baseDim = data.mapDimension(baseAxisDim);\n var stackedData = [];\n stackedData[baseDataOffset] = data.get(baseDim, dataIndex);\n stackedData[1 - baseDataOffset] = data.get(data.getCalculationInfo('stackResultDimension'), dataIndex);\n point = coordSys.dataToPoint(stackedData) || [];\n } else {\n point = coordSys.dataToPoint(data.getValues(zrUtil.map(coordSys.dimensions, function (dim) {\n return data.mapDimension(dim);\n }), dataIndex)) || [];\n }\n } else if (el) {\n // Use graphic bounding rect\n var rect = el.getBoundingRect().clone();\n rect.applyTransform(el.transform);\n point = [rect.x + rect.width / 2, rect.y + rect.height / 2];\n }\n\n return {\n point: point,\n el: el\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport env from 'zrender/lib/core/env.js';\nimport { makeInner } from '../../util/model.js';\nvar inner = makeInner();\nvar each = zrUtil.each;\n/**\n * @param {string} key\n * @param {module:echarts/ExtensionAPI} api\n * @param {Function} handler\n * param: {string} currTrigger\n * param: {Array.} point\n */\n\nexport function register(key, api, handler) {\n if (env.node) {\n return;\n }\n\n var zr = api.getZr();\n inner(zr).records || (inner(zr).records = {});\n initGlobalListeners(zr, api);\n var record = inner(zr).records[key] || (inner(zr).records[key] = {});\n record.handler = handler;\n}\n\nfunction initGlobalListeners(zr, api) {\n if (inner(zr).initialized) {\n return;\n }\n\n inner(zr).initialized = true;\n useHandler('click', zrUtil.curry(doEnter, 'click'));\n useHandler('mousemove', zrUtil.curry(doEnter, 'mousemove')); // useHandler('mouseout', onLeave);\n\n useHandler('globalout', onLeave);\n\n function useHandler(eventType, cb) {\n zr.on(eventType, function (e) {\n var dis = makeDispatchAction(api);\n each(inner(zr).records, function (record) {\n record && cb(record, e, dis.dispatchAction);\n });\n dispatchTooltipFinally(dis.pendings, api);\n });\n }\n}\n\nfunction dispatchTooltipFinally(pendings, api) {\n var showLen = pendings.showTip.length;\n var hideLen = pendings.hideTip.length;\n var actuallyPayload;\n\n if (showLen) {\n actuallyPayload = pendings.showTip[showLen - 1];\n } else if (hideLen) {\n actuallyPayload = pendings.hideTip[hideLen - 1];\n }\n\n if (actuallyPayload) {\n actuallyPayload.dispatchAction = null;\n api.dispatchAction(actuallyPayload);\n }\n}\n\nfunction onLeave(record, e, dispatchAction) {\n record.handler('leave', null, dispatchAction);\n}\n\nfunction doEnter(currTrigger, record, e, dispatchAction) {\n record.handler(currTrigger, e, dispatchAction);\n}\n\nfunction makeDispatchAction(api) {\n var pendings = {\n showTip: [],\n hideTip: []\n }; // FIXME\n // better approach?\n // 'showTip' and 'hideTip' can be triggered by axisPointer and tooltip,\n // which may be conflict, (axisPointer call showTip but tooltip call hideTip);\n // So we have to add \"final stage\" to merge those dispatched actions.\n\n var dispatchAction = function (payload) {\n var pendingList = pendings[payload.type];\n\n if (pendingList) {\n pendingList.push(payload);\n } else {\n payload.dispatchAction = dispatchAction;\n api.dispatchAction(payload);\n }\n };\n\n return {\n dispatchAction: dispatchAction,\n pendings: pendings\n };\n}\n\nexport function unregister(key, api) {\n if (env.node) {\n return;\n }\n\n var zr = api.getZr();\n var record = (inner(zr).records || {})[key];\n\n if (record) {\n inner(zr).records[key] = null;\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport AxisView from '../axis/AxisView.js';\nimport CartesianAxisPointer from './CartesianAxisPointer.js';\nimport AxisPointerModel from './AxisPointerModel.js';\nimport AxisPointerView from './AxisPointerView.js';\nimport { isArray } from 'zrender/lib/core/util.js';\nimport { collect } from './modelHelper.js';\nimport axisTrigger from './axisTrigger.js';\nexport function install(registers) {\n // CartesianAxisPointer is not supposed to be required here. But consider\n // echarts.simple.js and online build tooltip, which only require gridSimple,\n // CartesianAxisPointer should be able to required somewhere.\n AxisView.registerAxisPointerClass('CartesianAxisPointer', CartesianAxisPointer);\n registers.registerComponentModel(AxisPointerModel);\n registers.registerComponentView(AxisPointerView);\n registers.registerPreprocessor(function (option) {\n // Always has a global axisPointerModel for default setting.\n if (option) {\n (!option.axisPointer || option.axisPointer.length === 0) && (option.axisPointer = {});\n var link = option.axisPointer.link; // Normalize to array to avoid object mergin. But if link\n // is not set, remain null/undefined, otherwise it will\n // override existent link setting.\n\n if (link && !isArray(link)) {\n option.axisPointer.link = [link];\n }\n }\n }); // This process should proformed after coordinate systems created\n // and series data processed. So put it on statistic processing stage.\n\n registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, function (ecModel, api) {\n // Build axisPointerModel, mergin tooltip.axisPointer model for each axis.\n // allAxesInfo should be updated when setOption performed.\n ecModel.getComponent('axisPointer').coordSysAxesInfo = collect(ecModel, api);\n }); // Broadcast to all views.\n\n registers.registerAction({\n type: 'updateAxisPointer',\n event: 'updateAxisPointer',\n update: ':updateAxisPointer'\n }, axisTrigger);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport Model from '../../model/Model.js';\nimport { each, curry, clone, defaults, isArray, indexOf } from 'zrender/lib/core/util.js'; // Build axisPointerModel, mergin tooltip.axisPointer model for each axis.\n// allAxesInfo should be updated when setOption performed.\n\nexport function collect(ecModel, api) {\n var result = {\n /**\n * key: makeKey(axis.model)\n * value: {\n * axis,\n * coordSys,\n * axisPointerModel,\n * triggerTooltip,\n * involveSeries,\n * snap,\n * seriesModels,\n * seriesDataCount\n * }\n */\n axesInfo: {},\n seriesInvolved: false,\n\n /**\n * key: makeKey(coordSys.model)\n * value: Object: key makeKey(axis.model), value: axisInfo\n */\n coordSysAxesInfo: {},\n coordSysMap: {}\n };\n collectAxesInfo(result, ecModel, api); // Check seriesInvolved for performance, in case too many series in some chart.\n\n result.seriesInvolved && collectSeriesInfo(result, ecModel);\n return result;\n}\n\nfunction collectAxesInfo(result, ecModel, api) {\n var globalTooltipModel = ecModel.getComponent('tooltip');\n var globalAxisPointerModel = ecModel.getComponent('axisPointer'); // links can only be set on global.\n\n var linksOption = globalAxisPointerModel.get('link', true) || [];\n var linkGroups = []; // Collect axes info.\n\n each(api.getCoordinateSystems(), function (coordSys) {\n // Some coordinate system do not support axes, like geo.\n if (!coordSys.axisPointerEnabled) {\n return;\n }\n\n var coordSysKey = makeKey(coordSys.model);\n var axesInfoInCoordSys = result.coordSysAxesInfo[coordSysKey] = {};\n result.coordSysMap[coordSysKey] = coordSys; // Set tooltip (like 'cross') is a convenient way to show axisPointer\n // for user. So we enable setting tooltip on coordSys model.\n\n var coordSysModel = coordSys.model;\n var baseTooltipModel = coordSysModel.getModel('tooltip', globalTooltipModel);\n each(coordSys.getAxes(), curry(saveTooltipAxisInfo, false, null)); // If axis tooltip used, choose tooltip axis for each coordSys.\n // Notice this case: coordSys is `grid` but not `cartesian2D` here.\n\n if (coordSys.getTooltipAxes && globalTooltipModel // If tooltip.showContent is set as false, tooltip will not\n // show but axisPointer will show as normal.\n && baseTooltipModel.get('show')) {\n // Compatible with previous logic. But series.tooltip.trigger: 'axis'\n // or series.data[n].tooltip.trigger: 'axis' are not support any more.\n var triggerAxis = baseTooltipModel.get('trigger') === 'axis';\n var cross = baseTooltipModel.get(['axisPointer', 'type']) === 'cross';\n var tooltipAxes = coordSys.getTooltipAxes(baseTooltipModel.get(['axisPointer', 'axis']));\n\n if (triggerAxis || cross) {\n each(tooltipAxes.baseAxes, curry(saveTooltipAxisInfo, cross ? 'cross' : true, triggerAxis));\n }\n\n if (cross) {\n each(tooltipAxes.otherAxes, curry(saveTooltipAxisInfo, 'cross', false));\n }\n } // fromTooltip: true | false | 'cross'\n // triggerTooltip: true | false | null\n\n\n function saveTooltipAxisInfo(fromTooltip, triggerTooltip, axis) {\n var axisPointerModel = axis.model.getModel('axisPointer', globalAxisPointerModel);\n var axisPointerShow = axisPointerModel.get('show');\n\n if (!axisPointerShow || axisPointerShow === 'auto' && !fromTooltip && !isHandleTrigger(axisPointerModel)) {\n return;\n }\n\n if (triggerTooltip == null) {\n triggerTooltip = axisPointerModel.get('triggerTooltip');\n }\n\n axisPointerModel = fromTooltip ? makeAxisPointerModel(axis, baseTooltipModel, globalAxisPointerModel, ecModel, fromTooltip, triggerTooltip) : axisPointerModel;\n var snap = axisPointerModel.get('snap');\n var axisKey = makeKey(axis.model);\n var involveSeries = triggerTooltip || snap || axis.type === 'category'; // If result.axesInfo[key] exist, override it (tooltip has higher priority).\n\n var axisInfo = result.axesInfo[axisKey] = {\n key: axisKey,\n axis: axis,\n coordSys: coordSys,\n axisPointerModel: axisPointerModel,\n triggerTooltip: triggerTooltip,\n involveSeries: involveSeries,\n snap: snap,\n useHandle: isHandleTrigger(axisPointerModel),\n seriesModels: [],\n linkGroup: null\n };\n axesInfoInCoordSys[axisKey] = axisInfo;\n result.seriesInvolved = result.seriesInvolved || involveSeries;\n var groupIndex = getLinkGroupIndex(linksOption, axis);\n\n if (groupIndex != null) {\n var linkGroup = linkGroups[groupIndex] || (linkGroups[groupIndex] = {\n axesInfo: {}\n });\n linkGroup.axesInfo[axisKey] = axisInfo;\n linkGroup.mapper = linksOption[groupIndex].mapper;\n axisInfo.linkGroup = linkGroup;\n }\n }\n });\n}\n\nfunction makeAxisPointerModel(axis, baseTooltipModel, globalAxisPointerModel, ecModel, fromTooltip, triggerTooltip) {\n var tooltipAxisPointerModel = baseTooltipModel.getModel('axisPointer');\n var fields = ['type', 'snap', 'lineStyle', 'shadowStyle', 'label', 'animation', 'animationDurationUpdate', 'animationEasingUpdate', 'z'];\n var volatileOption = {};\n each(fields, function (field) {\n volatileOption[field] = clone(tooltipAxisPointerModel.get(field));\n }); // category axis do not auto snap, otherwise some tick that do not\n // has value can not be hovered. value/time/log axis default snap if\n // triggered from tooltip and trigger tooltip.\n\n volatileOption.snap = axis.type !== 'category' && !!triggerTooltip; // Compatible with previous behavior, tooltip axis does not show label by default.\n // Only these properties can be overridden from tooltip to axisPointer.\n\n if (tooltipAxisPointerModel.get('type') === 'cross') {\n volatileOption.type = 'line';\n }\n\n var labelOption = volatileOption.label || (volatileOption.label = {}); // Follow the convention, do not show label when triggered by tooltip by default.\n\n labelOption.show == null && (labelOption.show = false);\n\n if (fromTooltip === 'cross') {\n // When 'cross', both axes show labels.\n var tooltipAxisPointerLabelShow = tooltipAxisPointerModel.get(['label', 'show']);\n labelOption.show = tooltipAxisPointerLabelShow != null ? tooltipAxisPointerLabelShow : true; // If triggerTooltip, this is a base axis, which should better not use cross style\n // (cross style is dashed by default)\n\n if (!triggerTooltip) {\n var crossStyle = volatileOption.lineStyle = tooltipAxisPointerModel.get('crossStyle');\n crossStyle && defaults(labelOption, crossStyle.textStyle);\n }\n }\n\n return axis.model.getModel('axisPointer', new Model(volatileOption, globalAxisPointerModel, ecModel));\n}\n\nfunction collectSeriesInfo(result, ecModel) {\n // Prepare data for axis trigger\n ecModel.eachSeries(function (seriesModel) {\n // Notice this case: this coordSys is `cartesian2D` but not `grid`.\n var coordSys = seriesModel.coordinateSystem;\n var seriesTooltipTrigger = seriesModel.get(['tooltip', 'trigger'], true);\n var seriesTooltipShow = seriesModel.get(['tooltip', 'show'], true);\n\n if (!coordSys || seriesTooltipTrigger === 'none' || seriesTooltipTrigger === false || seriesTooltipTrigger === 'item' || seriesTooltipShow === false || seriesModel.get(['axisPointer', 'show'], true) === false) {\n return;\n }\n\n each(result.coordSysAxesInfo[makeKey(coordSys.model)], function (axisInfo) {\n var axis = axisInfo.axis;\n\n if (coordSys.getAxis(axis.dim) === axis) {\n axisInfo.seriesModels.push(seriesModel);\n axisInfo.seriesDataCount == null && (axisInfo.seriesDataCount = 0);\n axisInfo.seriesDataCount += seriesModel.getData().count();\n }\n });\n });\n}\n/**\n * For example:\n * {\n * axisPointer: {\n * links: [{\n * xAxisIndex: [2, 4],\n * yAxisIndex: 'all'\n * }, {\n * xAxisId: ['a5', 'a7'],\n * xAxisName: 'xxx'\n * }]\n * }\n * }\n */\n\n\nfunction getLinkGroupIndex(linksOption, axis) {\n var axisModel = axis.model;\n var dim = axis.dim;\n\n for (var i = 0; i < linksOption.length; i++) {\n var linkOption = linksOption[i] || {};\n\n if (checkPropInLink(linkOption[dim + 'AxisId'], axisModel.id) || checkPropInLink(linkOption[dim + 'AxisIndex'], axisModel.componentIndex) || checkPropInLink(linkOption[dim + 'AxisName'], axisModel.name)) {\n return i;\n }\n }\n}\n\nfunction checkPropInLink(linkPropValue, axisPropValue) {\n return linkPropValue === 'all' || isArray(linkPropValue) && indexOf(linkPropValue, axisPropValue) >= 0 || linkPropValue === axisPropValue;\n}\n\nexport function fixValue(axisModel) {\n var axisInfo = getAxisInfo(axisModel);\n\n if (!axisInfo) {\n return;\n }\n\n var axisPointerModel = axisInfo.axisPointerModel;\n var scale = axisInfo.axis.scale;\n var option = axisPointerModel.option;\n var status = axisPointerModel.get('status');\n var value = axisPointerModel.get('value'); // Parse init value for category and time axis.\n\n if (value != null) {\n value = scale.parse(value);\n }\n\n var useHandle = isHandleTrigger(axisPointerModel); // If `handle` used, `axisPointer` will always be displayed, so value\n // and status should be initialized.\n\n if (status == null) {\n option.status = useHandle ? 'show' : 'hide';\n }\n\n var extent = scale.getExtent().slice();\n extent[0] > extent[1] && extent.reverse();\n\n if ( // Pick a value on axis when initializing.\n value == null // If both `handle` and `dataZoom` are used, value may be out of axis extent,\n // where we should re-pick a value to keep `handle` displaying normally.\n || value > extent[1]) {\n // Make handle displayed on the end of the axis when init, which looks better.\n value = extent[1];\n }\n\n if (value < extent[0]) {\n value = extent[0];\n }\n\n option.value = value;\n\n if (useHandle) {\n option.status = axisInfo.axis.scale.isBlank() ? 'hide' : 'show';\n }\n}\nexport function getAxisInfo(axisModel) {\n var coordSysAxesInfo = (axisModel.ecModel.getComponent('axisPointer') || {}).coordSysAxesInfo;\n return coordSysAxesInfo && coordSysAxesInfo.axesInfo[makeKey(axisModel)];\n}\nexport function getAxisPointerModel(axisModel) {\n var axisInfo = getAxisInfo(axisModel);\n return axisInfo && axisInfo.axisPointerModel;\n}\n\nfunction isHandleTrigger(axisPointerModel) {\n return !!axisPointerModel.get(['handle', 'show']);\n}\n/**\n * @param {module:echarts/model/Model} model\n * @return {string} unique key\n */\n\n\nexport function makeKey(model) {\n return model.type + '||' + model.id;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as graphic from '../../util/graphic.js';\nimport * as textContain from 'zrender/lib/contain/text.js';\nimport * as formatUtil from '../../util/format.js';\nimport * as matrix from 'zrender/lib/core/matrix.js';\nimport * as axisHelper from '../../coord/axisHelper.js';\nimport AxisBuilder from '../axis/AxisBuilder.js';\nimport { createTextStyle } from '../../label/labelStyle.js';\nexport function buildElStyle(axisPointerModel) {\n var axisPointerType = axisPointerModel.get('type');\n var styleModel = axisPointerModel.getModel(axisPointerType + 'Style');\n var style;\n\n if (axisPointerType === 'line') {\n style = styleModel.getLineStyle();\n style.fill = null;\n } else if (axisPointerType === 'shadow') {\n style = styleModel.getAreaStyle();\n style.stroke = null;\n }\n\n return style;\n}\n/**\n * @param {Function} labelPos {align, verticalAlign, position}\n */\n\nexport function buildLabelElOption(elOption, axisModel, axisPointerModel, api, labelPos) {\n var value = axisPointerModel.get('value');\n var text = getValueLabel(value, axisModel.axis, axisModel.ecModel, axisPointerModel.get('seriesDataIndices'), {\n precision: axisPointerModel.get(['label', 'precision']),\n formatter: axisPointerModel.get(['label', 'formatter'])\n });\n var labelModel = axisPointerModel.getModel('label');\n var paddings = formatUtil.normalizeCssArray(labelModel.get('padding') || 0);\n var font = labelModel.getFont();\n var textRect = textContain.getBoundingRect(text, font);\n var position = labelPos.position;\n var width = textRect.width + paddings[1] + paddings[3];\n var height = textRect.height + paddings[0] + paddings[2]; // Adjust by align.\n\n var align = labelPos.align;\n align === 'right' && (position[0] -= width);\n align === 'center' && (position[0] -= width / 2);\n var verticalAlign = labelPos.verticalAlign;\n verticalAlign === 'bottom' && (position[1] -= height);\n verticalAlign === 'middle' && (position[1] -= height / 2); // Not overflow ec container\n\n confineInContainer(position, width, height, api);\n var bgColor = labelModel.get('backgroundColor');\n\n if (!bgColor || bgColor === 'auto') {\n bgColor = axisModel.get(['axisLine', 'lineStyle', 'color']);\n }\n\n elOption.label = {\n // shape: {x: 0, y: 0, width: width, height: height, r: labelModel.get('borderRadius')},\n x: position[0],\n y: position[1],\n style: createTextStyle(labelModel, {\n text: text,\n font: font,\n fill: labelModel.getTextColor(),\n padding: paddings,\n backgroundColor: bgColor\n }),\n // Label should be over axisPointer.\n z2: 10\n };\n} // Do not overflow ec container\n\nfunction confineInContainer(position, width, height, api) {\n var viewWidth = api.getWidth();\n var viewHeight = api.getHeight();\n position[0] = Math.min(position[0] + width, viewWidth) - width;\n position[1] = Math.min(position[1] + height, viewHeight) - height;\n position[0] = Math.max(position[0], 0);\n position[1] = Math.max(position[1], 0);\n}\n\nexport function getValueLabel(value, axis, ecModel, seriesDataIndices, opt) {\n value = axis.scale.parse(value);\n var text = axis.scale.getLabel({\n value: value\n }, {\n // If `precision` is set, width can be fixed (like '12.00500'), which\n // helps to debounce when when moving label.\n precision: opt.precision\n });\n var formatter = opt.formatter;\n\n if (formatter) {\n var params_1 = {\n value: axisHelper.getAxisRawValue(axis, {\n value: value\n }),\n axisDimension: axis.dim,\n axisIndex: axis.index,\n seriesData: []\n };\n zrUtil.each(seriesDataIndices, function (idxItem) {\n var series = ecModel.getSeriesByIndex(idxItem.seriesIndex);\n var dataIndex = idxItem.dataIndexInside;\n var dataParams = series && series.getDataParams(dataIndex);\n dataParams && params_1.seriesData.push(dataParams);\n });\n\n if (zrUtil.isString(formatter)) {\n text = formatter.replace('{value}', text);\n } else if (zrUtil.isFunction(formatter)) {\n text = formatter(params_1);\n }\n }\n\n return text;\n}\nexport function getTransformedPosition(axis, value, layoutInfo) {\n var transform = matrix.create();\n matrix.rotate(transform, transform, layoutInfo.rotation);\n matrix.translate(transform, transform, layoutInfo.position);\n return graphic.applyTransform([axis.dataToCoord(value), (layoutInfo.labelOffset || 0) + (layoutInfo.labelDirection || 1) * (layoutInfo.labelMargin || 0)], transform);\n}\nexport function buildCartesianSingleLabelElOption(value, elOption, layoutInfo, axisModel, axisPointerModel, api) {\n // @ts-ignore\n var textLayout = AxisBuilder.innerTextLayout(layoutInfo.rotation, 0, layoutInfo.labelDirection);\n layoutInfo.labelMargin = axisPointerModel.get(['label', 'margin']);\n buildLabelElOption(elOption, axisModel, axisPointerModel, api, {\n position: getTransformedPosition(axisModel.axis, value, layoutInfo),\n align: textLayout.textAlign,\n verticalAlign: textLayout.textVerticalAlign\n });\n}\nexport function makeLineShape(p1, p2, xDimIndex) {\n xDimIndex = xDimIndex || 0;\n return {\n x1: p1[xDimIndex],\n y1: p1[1 - xDimIndex],\n x2: p2[xDimIndex],\n y2: p2[1 - xDimIndex]\n };\n}\nexport function makeRectShape(xy, wh, xDimIndex) {\n xDimIndex = xDimIndex || 0;\n return {\n x: xy[xDimIndex],\n y: xy[1 - xDimIndex],\n width: wh[xDimIndex],\n height: wh[1 - xDimIndex]\n };\n}\nexport function makeSectorShape(cx, cy, r0, r, startAngle, endAngle) {\n return {\n cx: cx,\n cy: cy,\n r0: r0,\n r: r,\n startAngle: startAngle,\n endAngle: endAngle,\n clockwise: true\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as visualSolution from '../../visual/visualSolution.js';\nimport Model from '../../model/Model.js';\nimport ComponentModel from '../../model/Component.js';\nvar DEFAULT_OUT_OF_BRUSH_COLOR = '#ddd';\n\nvar BrushModel =\n/** @class */\nfunction (_super) {\n __extends(BrushModel, _super);\n\n function BrushModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = BrushModel.type;\n /**\n * @readOnly\n */\n\n _this.areas = [];\n /**\n * Current brush painting area settings.\n * @readOnly\n */\n\n _this.brushOption = {};\n return _this;\n }\n\n BrushModel.prototype.optionUpdated = function (newOption, isInit) {\n var thisOption = this.option;\n !isInit && visualSolution.replaceVisualOption(thisOption, newOption, ['inBrush', 'outOfBrush']);\n var inBrush = thisOption.inBrush = thisOption.inBrush || {}; // Always give default visual, consider setOption at the second time.\n\n thisOption.outOfBrush = thisOption.outOfBrush || {\n color: DEFAULT_OUT_OF_BRUSH_COLOR\n };\n\n if (!inBrush.hasOwnProperty('liftZ')) {\n // Bigger than the highlight z lift, otherwise it will\n // be effected by the highlight z when brush.\n inBrush.liftZ = 5;\n }\n };\n /**\n * If `areas` is null/undefined, range state remain.\n */\n\n\n BrushModel.prototype.setAreas = function (areas) {\n if (process.env.NODE_ENV !== 'production') {\n zrUtil.assert(zrUtil.isArray(areas));\n zrUtil.each(areas, function (area) {\n zrUtil.assert(area.brushType, 'Illegal areas');\n });\n } // If areas is null/undefined, range state remain.\n // This helps user to dispatchAction({type: 'brush'}) with no areas\n // set but just want to get the current brush select info from a `brush` event.\n\n\n if (!areas) {\n return;\n }\n\n this.areas = zrUtil.map(areas, function (area) {\n return generateBrushOption(this.option, area);\n }, this);\n };\n /**\n * Set the current painting brush option.\n */\n\n\n BrushModel.prototype.setBrushOption = function (brushOption) {\n this.brushOption = generateBrushOption(this.option, brushOption);\n this.brushType = this.brushOption.brushType;\n };\n\n BrushModel.type = 'brush';\n BrushModel.dependencies = ['geo', 'grid', 'xAxis', 'yAxis', 'parallel', 'series'];\n BrushModel.defaultOption = {\n seriesIndex: 'all',\n brushType: 'rect',\n brushMode: 'single',\n transformable: true,\n brushStyle: {\n borderWidth: 1,\n color: 'rgba(210,219,238,0.3)',\n borderColor: '#D2DBEE'\n },\n throttleType: 'fixRate',\n throttleDelay: 0,\n removeOnClick: true,\n z: 10000\n };\n return BrushModel;\n}(ComponentModel);\n\nfunction generateBrushOption(option, brushOption) {\n return zrUtil.merge({\n brushType: option.brushType,\n brushMode: option.brushMode,\n transformable: option.transformable,\n brushStyle: new Model(option.brushStyle).getItemStyle(),\n removeOnClick: option.removeOnClick,\n z: option.z\n }, brushOption, true);\n}\n\nexport default BrushModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport BrushController from '../helper/BrushController.js';\nimport { layoutCovers } from './visualEncoding.js';\nimport ComponentView from '../../view/Component.js';\n\nvar BrushView =\n/** @class */\nfunction (_super) {\n __extends(BrushView, _super);\n\n function BrushView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = BrushView.type;\n return _this;\n }\n\n BrushView.prototype.init = function (ecModel, api) {\n this.ecModel = ecModel;\n this.api = api;\n this.model;\n (this._brushController = new BrushController(api.getZr())).on('brush', zrUtil.bind(this._onBrush, this)).mount();\n };\n\n BrushView.prototype.render = function (brushModel, ecModel, api, payload) {\n this.model = brushModel;\n\n this._updateController(brushModel, ecModel, api, payload);\n };\n\n BrushView.prototype.updateTransform = function (brushModel, ecModel, api, payload) {\n // PENDING: `updateTransform` is a little tricky, whose layout need\n // to be calculate mandatorily and other stages will not be performed.\n // Take care the correctness of the logic. See #11754 .\n layoutCovers(ecModel);\n\n this._updateController(brushModel, ecModel, api, payload);\n };\n\n BrushView.prototype.updateVisual = function (brushModel, ecModel, api, payload) {\n this.updateTransform(brushModel, ecModel, api, payload);\n };\n\n BrushView.prototype.updateView = function (brushModel, ecModel, api, payload) {\n this._updateController(brushModel, ecModel, api, payload);\n };\n\n BrushView.prototype._updateController = function (brushModel, ecModel, api, payload) {\n // Do not update controller when drawing.\n (!payload || payload.$from !== brushModel.id) && this._brushController.setPanels(brushModel.brushTargetManager.makePanelOpts(api)).enableBrush(brushModel.brushOption).updateCovers(brushModel.areas.slice());\n }; // updateLayout: updateController,\n // updateVisual: updateController,\n\n\n BrushView.prototype.dispose = function () {\n this._brushController.dispose();\n };\n\n BrushView.prototype._onBrush = function (eventParam) {\n var modelId = this.model.id;\n var areas = this.model.brushTargetManager.setOutputRanges(eventParam.areas, this.ecModel); // Action is not dispatched on drag end, because the drag end\n // emits the same params with the last drag move event, and\n // may have some delay when using touch pad, which makes\n // animation not smooth (when using debounce).\n\n (!eventParam.isEnd || eventParam.removeOnClick) && this.api.dispatchAction({\n type: 'brush',\n brushId: modelId,\n areas: zrUtil.clone(areas),\n $from: modelId\n });\n eventParam.isEnd && this.api.dispatchAction({\n type: 'brushEnd',\n brushId: modelId,\n areas: zrUtil.clone(areas),\n $from: modelId\n });\n };\n\n BrushView.type = 'brush';\n return BrushView;\n}(ComponentView);\n\nexport default BrushView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport brushPreprocessor from './preprocessor.js';\nimport BrushView from './BrushView.js';\nimport BrushModel from './BrushModel.js';\nimport brushVisual from './visualEncoding.js'; // TODO\n\nimport BrushFeature from '../toolbox/feature/Brush.js';\nimport { registerFeature } from '../toolbox/featureManager.js';\nimport { noop } from 'zrender/lib/core/util.js';\nexport function install(registers) {\n registers.registerComponentView(BrushView);\n registers.registerComponentModel(BrushModel);\n registers.registerPreprocessor(brushPreprocessor);\n registers.registerVisual(registers.PRIORITY.VISUAL.BRUSH, brushVisual);\n registers.registerAction({\n type: 'brush',\n event: 'brush',\n update: 'updateVisual'\n }, function (payload, ecModel) {\n ecModel.eachComponent({\n mainType: 'brush',\n query: payload\n }, function (brushModel) {\n brushModel.setAreas(payload.areas);\n });\n });\n /**\n * payload: {\n * brushComponents: [\n * {\n * brushId,\n * brushIndex,\n * brushName,\n * series: [\n * {\n * seriesId,\n * seriesIndex,\n * seriesName,\n * rawIndices: [21, 34, ...]\n * },\n * ...\n * ]\n * },\n * ...\n * ]\n * }\n */\n\n registers.registerAction({\n type: 'brushSelect',\n event: 'brushSelected',\n update: 'none'\n }, noop);\n registers.registerAction({\n type: 'brushEnd',\n event: 'brushEnd',\n update: 'none'\n }, noop);\n registerFeature('brush', BrushFeature);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { normalizeToArray } from '../../util/model.js';\nvar DEFAULT_TOOLBOX_BTNS = ['rect', 'polygon', 'keep', 'clear'];\nexport default function brushPreprocessor(option, isNew) {\n var brushComponents = normalizeToArray(option ? option.brush : []);\n\n if (!brushComponents.length) {\n return;\n }\n\n var brushComponentSpecifiedBtns = [];\n zrUtil.each(brushComponents, function (brushOpt) {\n var tbs = brushOpt.hasOwnProperty('toolbox') ? brushOpt.toolbox : [];\n\n if (tbs instanceof Array) {\n brushComponentSpecifiedBtns = brushComponentSpecifiedBtns.concat(tbs);\n }\n });\n var toolbox = option && option.toolbox;\n\n if (zrUtil.isArray(toolbox)) {\n toolbox = toolbox[0];\n }\n\n if (!toolbox) {\n toolbox = {\n feature: {}\n };\n option.toolbox = [toolbox];\n }\n\n var toolboxFeature = toolbox.feature || (toolbox.feature = {});\n var toolboxBrush = toolboxFeature.brush || (toolboxFeature.brush = {});\n var brushTypes = toolboxBrush.type || (toolboxBrush.type = []);\n brushTypes.push.apply(brushTypes, brushComponentSpecifiedBtns);\n removeDuplicate(brushTypes);\n\n if (isNew && !brushTypes.length) {\n brushTypes.push.apply(brushTypes, DEFAULT_TOOLBOX_BTNS);\n }\n}\n\nfunction removeDuplicate(arr) {\n var map = {};\n zrUtil.each(arr, function (val) {\n map[val] = 1;\n });\n arr.length = 0;\n zrUtil.each(map, function (flag, val) {\n arr.push(val);\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as polygonContain from 'zrender/lib/contain/polygon.js';\nimport BoundingRect from 'zrender/lib/core/BoundingRect.js';\nimport { linePolygonIntersect } from '../../util/graphic.js';\nexport function makeBrushCommonSelectorForSeries(area) {\n var brushType = area.brushType; // Do not use function binding or curry for performance.\n\n var selectors = {\n point: function (itemLayout) {\n return selector[brushType].point(itemLayout, selectors, area);\n },\n rect: function (itemLayout) {\n return selector[brushType].rect(itemLayout, selectors, area);\n }\n };\n return selectors;\n}\nvar selector = {\n lineX: getLineSelectors(0),\n lineY: getLineSelectors(1),\n rect: {\n point: function (itemLayout, selectors, area) {\n return itemLayout && area.boundingRect.contain(itemLayout[0], itemLayout[1]);\n },\n rect: function (itemLayout, selectors, area) {\n return itemLayout && area.boundingRect.intersect(itemLayout);\n }\n },\n polygon: {\n point: function (itemLayout, selectors, area) {\n return itemLayout && area.boundingRect.contain(itemLayout[0], itemLayout[1]) && polygonContain.contain(area.range, itemLayout[0], itemLayout[1]);\n },\n rect: function (itemLayout, selectors, area) {\n var points = area.range;\n\n if (!itemLayout || points.length <= 1) {\n return false;\n }\n\n var x = itemLayout.x;\n var y = itemLayout.y;\n var width = itemLayout.width;\n var height = itemLayout.height;\n var p = points[0];\n\n if (polygonContain.contain(points, x, y) || polygonContain.contain(points, x + width, y) || polygonContain.contain(points, x, y + height) || polygonContain.contain(points, x + width, y + height) || BoundingRect.create(itemLayout).contain(p[0], p[1]) || linePolygonIntersect(x, y, x + width, y, points) || linePolygonIntersect(x, y, x, y + height, points) || linePolygonIntersect(x + width, y, x + width, y + height, points) || linePolygonIntersect(x, y + height, x + width, y + height, points)) {\n return true;\n }\n }\n }\n};\n\nfunction getLineSelectors(xyIndex) {\n var xy = ['x', 'y'];\n var wh = ['width', 'height'];\n return {\n point: function (itemLayout, selectors, area) {\n if (itemLayout) {\n var range = area.range;\n var p = itemLayout[xyIndex];\n return inLineRange(p, range);\n }\n },\n rect: function (itemLayout, selectors, area) {\n if (itemLayout) {\n var range = area.range;\n var layoutRange = [itemLayout[xy[xyIndex]], itemLayout[xy[xyIndex]] + itemLayout[wh[xyIndex]]];\n layoutRange[1] < layoutRange[0] && layoutRange.reverse();\n return inLineRange(layoutRange[0], range) || inLineRange(layoutRange[1], range) || inLineRange(range[0], layoutRange) || inLineRange(range[1], layoutRange);\n }\n }\n };\n}\n\nfunction inLineRange(p, range) {\n return range[0] <= p && p <= range[1];\n}\n\nexport default selector;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport BoundingRect from 'zrender/lib/core/BoundingRect.js';\nimport * as visualSolution from '../../visual/visualSolution.js';\nimport { makeBrushCommonSelectorForSeries } from './selector.js';\nimport * as throttleUtil from '../../util/throttle.js';\nimport BrushTargetManager from '../helper/BrushTargetManager.js';\nvar STATE_LIST = ['inBrush', 'outOfBrush'];\nvar DISPATCH_METHOD = '__ecBrushSelect';\nvar DISPATCH_FLAG = '__ecInBrushSelectEvent';\n;\nexport function layoutCovers(ecModel) {\n ecModel.eachComponent({\n mainType: 'brush'\n }, function (brushModel) {\n var brushTargetManager = brushModel.brushTargetManager = new BrushTargetManager(brushModel.option, ecModel);\n brushTargetManager.setInputRanges(brushModel.areas, ecModel);\n });\n}\n/**\n * Register the visual encoding if this modules required.\n */\n\nexport default function brushVisual(ecModel, api, payload) {\n var brushSelected = [];\n var throttleType;\n var throttleDelay;\n ecModel.eachComponent({\n mainType: 'brush'\n }, function (brushModel) {\n payload && payload.type === 'takeGlobalCursor' && brushModel.setBrushOption(payload.key === 'brush' ? payload.brushOption : {\n brushType: false\n });\n });\n layoutCovers(ecModel);\n ecModel.eachComponent({\n mainType: 'brush'\n }, function (brushModel, brushIndex) {\n var thisBrushSelected = {\n brushId: brushModel.id,\n brushIndex: brushIndex,\n brushName: brushModel.name,\n areas: zrUtil.clone(brushModel.areas),\n selected: []\n }; // Every brush component exists in event params, convenient\n // for user to find by index.\n\n brushSelected.push(thisBrushSelected);\n var brushOption = brushModel.option;\n var brushLink = brushOption.brushLink;\n var linkedSeriesMap = [];\n var selectedDataIndexForLink = [];\n var rangeInfoBySeries = [];\n var hasBrushExists = false;\n\n if (!brushIndex) {\n // Only the first throttle setting works.\n throttleType = brushOption.throttleType;\n throttleDelay = brushOption.throttleDelay;\n } // Add boundingRect and selectors to range.\n\n\n var areas = zrUtil.map(brushModel.areas, function (area) {\n var builder = boundingRectBuilders[area.brushType];\n var selectableArea = zrUtil.defaults({\n boundingRect: builder ? builder(area) : void 0\n }, area);\n selectableArea.selectors = makeBrushCommonSelectorForSeries(selectableArea);\n return selectableArea;\n });\n var visualMappings = visualSolution.createVisualMappings(brushModel.option, STATE_LIST, function (mappingOption) {\n mappingOption.mappingMethod = 'fixed';\n });\n zrUtil.isArray(brushLink) && zrUtil.each(brushLink, function (seriesIndex) {\n linkedSeriesMap[seriesIndex] = 1;\n });\n\n function linkOthers(seriesIndex) {\n return brushLink === 'all' || !!linkedSeriesMap[seriesIndex];\n } // If no supported brush or no brush on the series,\n // all visuals should be in original state.\n\n\n function brushed(rangeInfoList) {\n return !!rangeInfoList.length;\n }\n /**\n * Logic for each series: (If the logic has to be modified one day, do it carefully!)\n *\n * ( brushed ┬ && ┬hasBrushExist ┬ && linkOthers ) => StepA: ┬record, ┬ StepB: ┬visualByRecord.\n * !brushed┘ ├hasBrushExist ┤ └nothing,┘ ├visualByRecord.\n * └!hasBrushExist┘ └nothing.\n * ( !brushed && ┬hasBrushExist ┬ && linkOthers ) => StepA: nothing, StepB: ┬visualByRecord.\n * └!hasBrushExist┘ └nothing.\n * ( brushed ┬ && !linkOthers ) => StepA: nothing, StepB: ┬visualByCheck.\n * !brushed┘ └nothing.\n * ( !brushed && !linkOthers ) => StepA: nothing, StepB: nothing.\n */\n // Step A\n\n\n ecModel.eachSeries(function (seriesModel, seriesIndex) {\n var rangeInfoList = rangeInfoBySeries[seriesIndex] = [];\n seriesModel.subType === 'parallel' ? stepAParallel(seriesModel, seriesIndex) : stepAOthers(seriesModel, seriesIndex, rangeInfoList);\n });\n\n function stepAParallel(seriesModel, seriesIndex) {\n var coordSys = seriesModel.coordinateSystem;\n hasBrushExists = hasBrushExists || coordSys.hasAxisBrushed();\n linkOthers(seriesIndex) && coordSys.eachActiveState(seriesModel.getData(), function (activeState, dataIndex) {\n activeState === 'active' && (selectedDataIndexForLink[dataIndex] = 1);\n });\n }\n\n function stepAOthers(seriesModel, seriesIndex, rangeInfoList) {\n if (!seriesModel.brushSelector || brushModelNotControll(brushModel, seriesIndex)) {\n return;\n }\n\n zrUtil.each(areas, function (area) {\n if (brushModel.brushTargetManager.controlSeries(area, seriesModel, ecModel)) {\n rangeInfoList.push(area);\n }\n\n hasBrushExists = hasBrushExists || brushed(rangeInfoList);\n });\n\n if (linkOthers(seriesIndex) && brushed(rangeInfoList)) {\n var data_1 = seriesModel.getData();\n data_1.each(function (dataIndex) {\n if (checkInRange(seriesModel, rangeInfoList, data_1, dataIndex)) {\n selectedDataIndexForLink[dataIndex] = 1;\n }\n });\n }\n } // Step B\n\n\n ecModel.eachSeries(function (seriesModel, seriesIndex) {\n var seriesBrushSelected = {\n seriesId: seriesModel.id,\n seriesIndex: seriesIndex,\n seriesName: seriesModel.name,\n dataIndex: []\n }; // Every series exists in event params, convenient\n // for user to find series by seriesIndex.\n\n thisBrushSelected.selected.push(seriesBrushSelected);\n var rangeInfoList = rangeInfoBySeries[seriesIndex];\n var data = seriesModel.getData();\n var getValueState = linkOthers(seriesIndex) ? function (dataIndex) {\n return selectedDataIndexForLink[dataIndex] ? (seriesBrushSelected.dataIndex.push(data.getRawIndex(dataIndex)), 'inBrush') : 'outOfBrush';\n } : function (dataIndex) {\n return checkInRange(seriesModel, rangeInfoList, data, dataIndex) ? (seriesBrushSelected.dataIndex.push(data.getRawIndex(dataIndex)), 'inBrush') : 'outOfBrush';\n }; // If no supported brush or no brush, all visuals are in original state.\n\n (linkOthers(seriesIndex) ? hasBrushExists : brushed(rangeInfoList)) && visualSolution.applyVisual(STATE_LIST, visualMappings, data, getValueState);\n });\n });\n dispatchAction(api, throttleType, throttleDelay, brushSelected, payload);\n}\n;\n\nfunction dispatchAction(api, throttleType, throttleDelay, brushSelected, payload) {\n // This event will not be triggered when `setOpion`, otherwise dead lock may\n // triggered when do `setOption` in event listener, which we do not find\n // satisfactory way to solve yet. Some considered resolutions:\n // (a) Diff with prevoius selected data ant only trigger event when changed.\n // But store previous data and diff precisely (i.e., not only by dataIndex, but\n // also detect value changes in selected data) might bring complexity or fragility.\n // (b) Use spectial param like `silent` to suppress event triggering.\n // But such kind of volatile param may be weird in `setOption`.\n if (!payload) {\n return;\n }\n\n var zr = api.getZr();\n\n if (zr[DISPATCH_FLAG]) {\n return;\n }\n\n if (!zr[DISPATCH_METHOD]) {\n zr[DISPATCH_METHOD] = doDispatch;\n }\n\n var fn = throttleUtil.createOrUpdate(zr, DISPATCH_METHOD, throttleDelay, throttleType);\n fn(api, brushSelected);\n}\n\nfunction doDispatch(api, brushSelected) {\n if (!api.isDisposed()) {\n var zr = api.getZr();\n zr[DISPATCH_FLAG] = true;\n api.dispatchAction({\n type: 'brushSelect',\n batch: brushSelected\n });\n zr[DISPATCH_FLAG] = false;\n }\n}\n\nfunction checkInRange(seriesModel, rangeInfoList, data, dataIndex) {\n for (var i = 0, len = rangeInfoList.length; i < len; i++) {\n var area = rangeInfoList[i];\n\n if (seriesModel.brushSelector(dataIndex, data, area.selectors, area)) {\n return true;\n }\n }\n}\n\nfunction brushModelNotControll(brushModel, seriesIndex) {\n var seriesIndices = brushModel.option.seriesIndex;\n return seriesIndices != null && seriesIndices !== 'all' && (zrUtil.isArray(seriesIndices) ? zrUtil.indexOf(seriesIndices, seriesIndex) < 0 : seriesIndex !== seriesIndices);\n}\n\nvar boundingRectBuilders = {\n rect: function (area) {\n return getBoundingRectFromMinMax(area.range);\n },\n polygon: function (area) {\n var minMax;\n var range = area.range;\n\n for (var i = 0, len = range.length; i < len; i++) {\n minMax = minMax || [[Infinity, -Infinity], [Infinity, -Infinity]];\n var rg = range[i];\n rg[0] < minMax[0][0] && (minMax[0][0] = rg[0]);\n rg[0] > minMax[0][1] && (minMax[0][1] = rg[0]);\n rg[1] < minMax[1][0] && (minMax[1][0] = rg[1]);\n rg[1] > minMax[1][1] && (minMax[1][1] = rg[1]);\n }\n\n return minMax && getBoundingRectFromMinMax(minMax);\n }\n};\n\nfunction getBoundingRectFromMinMax(minMax) {\n return new BoundingRect(minMax[0][0], minMax[1][0], minMax[0][1] - minMax[0][0], minMax[1][1] - minMax[1][0]);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport { isString, extend, map, isFunction } from 'zrender/lib/core/util.js';\nimport * as graphic from '../../util/graphic.js';\nimport { createTextStyle } from '../../label/labelStyle.js';\nimport { formatTplSimple } from '../../util/format.js';\nimport { parsePercent } from '../../util/number.js';\nimport ComponentView from '../../view/Component.js';\nimport { getLocaleModel } from '../../core/locale.js';\n\nvar CalendarView =\n/** @class */\nfunction (_super) {\n __extends(CalendarView, _super);\n\n function CalendarView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = CalendarView.type;\n return _this;\n }\n\n CalendarView.prototype.render = function (calendarModel, ecModel, api) {\n var group = this.group;\n group.removeAll();\n var coordSys = calendarModel.coordinateSystem; // range info\n\n var rangeData = coordSys.getRangeInfo();\n var orient = coordSys.getOrient(); // locale\n\n var localeModel = ecModel.getLocaleModel();\n\n this._renderDayRect(calendarModel, rangeData, group); // _renderLines must be called prior to following function\n\n\n this._renderLines(calendarModel, rangeData, orient, group);\n\n this._renderYearText(calendarModel, rangeData, orient, group);\n\n this._renderMonthText(calendarModel, localeModel, orient, group);\n\n this._renderWeekText(calendarModel, localeModel, rangeData, orient, group);\n }; // render day rect\n\n\n CalendarView.prototype._renderDayRect = function (calendarModel, rangeData, group) {\n var coordSys = calendarModel.coordinateSystem;\n var itemRectStyleModel = calendarModel.getModel('itemStyle').getItemStyle();\n var sw = coordSys.getCellWidth();\n var sh = coordSys.getCellHeight();\n\n for (var i = rangeData.start.time; i <= rangeData.end.time; i = coordSys.getNextNDay(i, 1).time) {\n var point = coordSys.dataToRect([i], false).tl; // every rect\n\n var rect = new graphic.Rect({\n shape: {\n x: point[0],\n y: point[1],\n width: sw,\n height: sh\n },\n cursor: 'default',\n style: itemRectStyleModel\n });\n group.add(rect);\n }\n }; // render separate line\n\n\n CalendarView.prototype._renderLines = function (calendarModel, rangeData, orient, group) {\n var self = this;\n var coordSys = calendarModel.coordinateSystem;\n var lineStyleModel = calendarModel.getModel(['splitLine', 'lineStyle']).getLineStyle();\n var show = calendarModel.get(['splitLine', 'show']);\n var lineWidth = lineStyleModel.lineWidth;\n this._tlpoints = [];\n this._blpoints = [];\n this._firstDayOfMonth = [];\n this._firstDayPoints = [];\n var firstDay = rangeData.start;\n\n for (var i = 0; firstDay.time <= rangeData.end.time; i++) {\n addPoints(firstDay.formatedDate);\n\n if (i === 0) {\n firstDay = coordSys.getDateInfo(rangeData.start.y + '-' + rangeData.start.m);\n }\n\n var date = firstDay.date;\n date.setMonth(date.getMonth() + 1);\n firstDay = coordSys.getDateInfo(date);\n }\n\n addPoints(coordSys.getNextNDay(rangeData.end.time, 1).formatedDate);\n\n function addPoints(date) {\n self._firstDayOfMonth.push(coordSys.getDateInfo(date));\n\n self._firstDayPoints.push(coordSys.dataToRect([date], false).tl);\n\n var points = self._getLinePointsOfOneWeek(calendarModel, date, orient);\n\n self._tlpoints.push(points[0]);\n\n self._blpoints.push(points[points.length - 1]);\n\n show && self._drawSplitline(points, lineStyleModel, group);\n } // render top/left line\n\n\n show && this._drawSplitline(self._getEdgesPoints(self._tlpoints, lineWidth, orient), lineStyleModel, group); // render bottom/right line\n\n show && this._drawSplitline(self._getEdgesPoints(self._blpoints, lineWidth, orient), lineStyleModel, group);\n }; // get points at both ends\n\n\n CalendarView.prototype._getEdgesPoints = function (points, lineWidth, orient) {\n var rs = [points[0].slice(), points[points.length - 1].slice()];\n var idx = orient === 'horizontal' ? 0 : 1; // both ends of the line are extend half lineWidth\n\n rs[0][idx] = rs[0][idx] - lineWidth / 2;\n rs[1][idx] = rs[1][idx] + lineWidth / 2;\n return rs;\n }; // render split line\n\n\n CalendarView.prototype._drawSplitline = function (points, lineStyle, group) {\n var poyline = new graphic.Polyline({\n z2: 20,\n shape: {\n points: points\n },\n style: lineStyle\n });\n group.add(poyline);\n }; // render month line of one week points\n\n\n CalendarView.prototype._getLinePointsOfOneWeek = function (calendarModel, date, orient) {\n var coordSys = calendarModel.coordinateSystem;\n var parsedDate = coordSys.getDateInfo(date);\n var points = [];\n\n for (var i = 0; i < 7; i++) {\n var tmpD = coordSys.getNextNDay(parsedDate.time, i);\n var point = coordSys.dataToRect([tmpD.time], false);\n points[2 * tmpD.day] = point.tl;\n points[2 * tmpD.day + 1] = point[orient === 'horizontal' ? 'bl' : 'tr'];\n }\n\n return points;\n };\n\n CalendarView.prototype._formatterLabel = function (formatter, params) {\n if (isString(formatter) && formatter) {\n return formatTplSimple(formatter, params);\n }\n\n if (isFunction(formatter)) {\n return formatter(params);\n }\n\n return params.nameMap;\n };\n\n CalendarView.prototype._yearTextPositionControl = function (textEl, point, orient, position, margin) {\n var x = point[0];\n var y = point[1];\n var aligns = ['center', 'bottom'];\n\n if (position === 'bottom') {\n y += margin;\n aligns = ['center', 'top'];\n } else if (position === 'left') {\n x -= margin;\n } else if (position === 'right') {\n x += margin;\n aligns = ['center', 'top'];\n } else {\n // top\n y -= margin;\n }\n\n var rotate = 0;\n\n if (position === 'left' || position === 'right') {\n rotate = Math.PI / 2;\n }\n\n return {\n rotation: rotate,\n x: x,\n y: y,\n style: {\n align: aligns[0],\n verticalAlign: aligns[1]\n }\n };\n }; // render year\n\n\n CalendarView.prototype._renderYearText = function (calendarModel, rangeData, orient, group) {\n var yearLabel = calendarModel.getModel('yearLabel');\n\n if (!yearLabel.get('show')) {\n return;\n }\n\n var margin = yearLabel.get('margin');\n var pos = yearLabel.get('position');\n\n if (!pos) {\n pos = orient !== 'horizontal' ? 'top' : 'left';\n }\n\n var points = [this._tlpoints[this._tlpoints.length - 1], this._blpoints[0]];\n var xc = (points[0][0] + points[1][0]) / 2;\n var yc = (points[0][1] + points[1][1]) / 2;\n var idx = orient === 'horizontal' ? 0 : 1;\n var posPoints = {\n top: [xc, points[idx][1]],\n bottom: [xc, points[1 - idx][1]],\n left: [points[1 - idx][0], yc],\n right: [points[idx][0], yc]\n };\n var name = rangeData.start.y;\n\n if (+rangeData.end.y > +rangeData.start.y) {\n name = name + '-' + rangeData.end.y;\n }\n\n var formatter = yearLabel.get('formatter');\n var params = {\n start: rangeData.start.y,\n end: rangeData.end.y,\n nameMap: name\n };\n\n var content = this._formatterLabel(formatter, params);\n\n var yearText = new graphic.Text({\n z2: 30,\n style: createTextStyle(yearLabel, {\n text: content\n })\n });\n yearText.attr(this._yearTextPositionControl(yearText, posPoints[pos], orient, pos, margin));\n group.add(yearText);\n };\n\n CalendarView.prototype._monthTextPositionControl = function (point, isCenter, orient, position, margin) {\n var align = 'left';\n var vAlign = 'top';\n var x = point[0];\n var y = point[1];\n\n if (orient === 'horizontal') {\n y = y + margin;\n\n if (isCenter) {\n align = 'center';\n }\n\n if (position === 'start') {\n vAlign = 'bottom';\n }\n } else {\n x = x + margin;\n\n if (isCenter) {\n vAlign = 'middle';\n }\n\n if (position === 'start') {\n align = 'right';\n }\n }\n\n return {\n x: x,\n y: y,\n align: align,\n verticalAlign: vAlign\n };\n }; // render month and year text\n\n\n CalendarView.prototype._renderMonthText = function (calendarModel, localeModel, orient, group) {\n var monthLabel = calendarModel.getModel('monthLabel');\n\n if (!monthLabel.get('show')) {\n return;\n }\n\n var nameMap = monthLabel.get('nameMap');\n var margin = monthLabel.get('margin');\n var pos = monthLabel.get('position');\n var align = monthLabel.get('align');\n var termPoints = [this._tlpoints, this._blpoints];\n\n if (!nameMap || isString(nameMap)) {\n if (nameMap) {\n // case-sensitive\n localeModel = getLocaleModel(nameMap) || localeModel;\n } // PENDING\n // for ZH locale, original form is `一月` but current form is `1月`\n\n\n nameMap = localeModel.get(['time', 'monthAbbr']) || [];\n }\n\n var idx = pos === 'start' ? 0 : 1;\n var axis = orient === 'horizontal' ? 0 : 1;\n margin = pos === 'start' ? -margin : margin;\n var isCenter = align === 'center';\n\n for (var i = 0; i < termPoints[idx].length - 1; i++) {\n var tmp = termPoints[idx][i].slice();\n var firstDay = this._firstDayOfMonth[i];\n\n if (isCenter) {\n var firstDayPoints = this._firstDayPoints[i];\n tmp[axis] = (firstDayPoints[axis] + termPoints[0][i + 1][axis]) / 2;\n }\n\n var formatter = monthLabel.get('formatter');\n var name_1 = nameMap[+firstDay.m - 1];\n var params = {\n yyyy: firstDay.y,\n yy: (firstDay.y + '').slice(2),\n MM: firstDay.m,\n M: +firstDay.m,\n nameMap: name_1\n };\n\n var content = this._formatterLabel(formatter, params);\n\n var monthText = new graphic.Text({\n z2: 30,\n style: extend(createTextStyle(monthLabel, {\n text: content\n }), this._monthTextPositionControl(tmp, isCenter, orient, pos, margin))\n });\n group.add(monthText);\n }\n };\n\n CalendarView.prototype._weekTextPositionControl = function (point, orient, position, margin, cellSize) {\n var align = 'center';\n var vAlign = 'middle';\n var x = point[0];\n var y = point[1];\n var isStart = position === 'start';\n\n if (orient === 'horizontal') {\n x = x + margin + (isStart ? 1 : -1) * cellSize[0] / 2;\n align = isStart ? 'right' : 'left';\n } else {\n y = y + margin + (isStart ? 1 : -1) * cellSize[1] / 2;\n vAlign = isStart ? 'bottom' : 'top';\n }\n\n return {\n x: x,\n y: y,\n align: align,\n verticalAlign: vAlign\n };\n }; // render weeks\n\n\n CalendarView.prototype._renderWeekText = function (calendarModel, localeModel, rangeData, orient, group) {\n var dayLabel = calendarModel.getModel('dayLabel');\n\n if (!dayLabel.get('show')) {\n return;\n }\n\n var coordSys = calendarModel.coordinateSystem;\n var pos = dayLabel.get('position');\n var nameMap = dayLabel.get('nameMap');\n var margin = dayLabel.get('margin');\n var firstDayOfWeek = coordSys.getFirstDayOfWeek();\n\n if (!nameMap || isString(nameMap)) {\n if (nameMap) {\n // case-sensitive\n localeModel = getLocaleModel(nameMap) || localeModel;\n } // Use the first letter of `dayOfWeekAbbr` if `dayOfWeekShort` doesn't exist in the locale file\n\n\n var dayOfWeekShort = localeModel.get(['time', 'dayOfWeekShort']);\n nameMap = dayOfWeekShort || map(localeModel.get(['time', 'dayOfWeekAbbr']), function (val) {\n return val[0];\n });\n }\n\n var start = coordSys.getNextNDay(rangeData.end.time, 7 - rangeData.lweek).time;\n var cellSize = [coordSys.getCellWidth(), coordSys.getCellHeight()];\n margin = parsePercent(margin, Math.min(cellSize[1], cellSize[0]));\n\n if (pos === 'start') {\n start = coordSys.getNextNDay(rangeData.start.time, -(7 + rangeData.fweek)).time;\n margin = -margin;\n }\n\n for (var i = 0; i < 7; i++) {\n var tmpD = coordSys.getNextNDay(start, i);\n var point = coordSys.dataToRect([tmpD.time], false).center;\n var day = i;\n day = Math.abs((i + firstDayOfWeek) % 7);\n var weekText = new graphic.Text({\n z2: 30,\n style: extend(createTextStyle(dayLabel, {\n text: nameMap[day]\n }), this._weekTextPositionControl(point, orient, pos, margin, cellSize))\n });\n group.add(weekText);\n }\n };\n\n CalendarView.type = 'calendar';\n return CalendarView;\n}(ComponentView);\n\nexport default CalendarView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport CalendarModel from '../../coord/calendar/CalendarModel.js';\nimport CalendarView from './CalendarView.js';\nimport Calendar from '../../coord/calendar/Calendar.js';\nexport function install(registers) {\n registers.registerComponentModel(CalendarModel);\n registers.registerComponentView(CalendarView);\n registers.registerCoordinateSystem('calendar', Calendar);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as numberUtil from '../../util/number.js';\nimport sliderMove from '../helper/sliderMove.js';\nimport { unionAxisExtentFromData } from '../../coord/axisHelper.js';\nimport { ensureScaleRawExtentInfo } from '../../coord/scaleRawExtentInfo.js';\nimport { getAxisMainType, isCoordSupported } from './helper.js';\nimport { SINGLE_REFERRING } from '../../util/model.js';\nvar each = zrUtil.each;\nvar asc = numberUtil.asc;\n/**\n * Operate single axis.\n * One axis can only operated by one axis operator.\n * Different dataZoomModels may be defined to operate the same axis.\n * (i.e. 'inside' data zoom and 'slider' data zoom components)\n * So dataZoomModels share one axisProxy in that case.\n */\n\nvar AxisProxy =\n/** @class */\nfunction () {\n function AxisProxy(dimName, axisIndex, dataZoomModel, ecModel) {\n this._dimName = dimName;\n this._axisIndex = axisIndex;\n this.ecModel = ecModel;\n this._dataZoomModel = dataZoomModel; // /**\n // * @readOnly\n // * @private\n // */\n // this.hasSeriesStacked;\n }\n /**\n * Whether the axisProxy is hosted by dataZoomModel.\n */\n\n\n AxisProxy.prototype.hostedBy = function (dataZoomModel) {\n return this._dataZoomModel === dataZoomModel;\n };\n /**\n * @return Value can only be NaN or finite value.\n */\n\n\n AxisProxy.prototype.getDataValueWindow = function () {\n return this._valueWindow.slice();\n };\n /**\n * @return {Array.}\n */\n\n\n AxisProxy.prototype.getDataPercentWindow = function () {\n return this._percentWindow.slice();\n };\n\n AxisProxy.prototype.getTargetSeriesModels = function () {\n var seriesModels = [];\n this.ecModel.eachSeries(function (seriesModel) {\n if (isCoordSupported(seriesModel)) {\n var axisMainType = getAxisMainType(this._dimName);\n var axisModel = seriesModel.getReferringComponents(axisMainType, SINGLE_REFERRING).models[0];\n\n if (axisModel && this._axisIndex === axisModel.componentIndex) {\n seriesModels.push(seriesModel);\n }\n }\n }, this);\n return seriesModels;\n };\n\n AxisProxy.prototype.getAxisModel = function () {\n return this.ecModel.getComponent(this._dimName + 'Axis', this._axisIndex);\n };\n\n AxisProxy.prototype.getMinMaxSpan = function () {\n return zrUtil.clone(this._minMaxSpan);\n };\n /**\n * Only calculate by given range and this._dataExtent, do not change anything.\n */\n\n\n AxisProxy.prototype.calculateDataWindow = function (opt) {\n var dataExtent = this._dataExtent;\n var axisModel = this.getAxisModel();\n var scale = axisModel.axis.scale;\n\n var rangePropMode = this._dataZoomModel.getRangePropMode();\n\n var percentExtent = [0, 100];\n var percentWindow = [];\n var valueWindow = [];\n var hasPropModeValue;\n each(['start', 'end'], function (prop, idx) {\n var boundPercent = opt[prop];\n var boundValue = opt[prop + 'Value']; // Notice: dataZoom is based either on `percentProp` ('start', 'end') or\n // on `valueProp` ('startValue', 'endValue'). (They are based on the data extent\n // but not min/max of axis, which will be calculated by data window then).\n // The former one is suitable for cases that a dataZoom component controls multiple\n // axes with different unit or extent, and the latter one is suitable for accurate\n // zoom by pixel (e.g., in dataZoomSelect).\n // we use `getRangePropMode()` to mark which prop is used. `rangePropMode` is updated\n // only when setOption or dispatchAction, otherwise it remains its original value.\n // (Why not only record `percentProp` and always map to `valueProp`? Because\n // the map `valueProp` -> `percentProp` -> `valueProp` probably not the original\n // `valueProp`. consider two axes constrolled by one dataZoom. They have different\n // data extent. All of values that are overflow the `dataExtent` will be calculated\n // to percent '100%').\n\n if (rangePropMode[idx] === 'percent') {\n boundPercent == null && (boundPercent = percentExtent[idx]); // Use scale.parse to math round for category or time axis.\n\n boundValue = scale.parse(numberUtil.linearMap(boundPercent, percentExtent, dataExtent));\n } else {\n hasPropModeValue = true;\n boundValue = boundValue == null ? dataExtent[idx] : scale.parse(boundValue); // Calculating `percent` from `value` may be not accurate, because\n // This calculation can not be inversed, because all of values that\n // are overflow the `dataExtent` will be calculated to percent '100%'\n\n boundPercent = numberUtil.linearMap(boundValue, dataExtent, percentExtent);\n } // valueWindow[idx] = round(boundValue);\n // percentWindow[idx] = round(boundPercent);\n // fallback to extent start/end when parsed value or percent is invalid\n\n\n valueWindow[idx] = boundValue == null || isNaN(boundValue) ? dataExtent[idx] : boundValue;\n percentWindow[idx] = boundPercent == null || isNaN(boundPercent) ? percentExtent[idx] : boundPercent;\n });\n asc(valueWindow);\n asc(percentWindow); // The windows from user calling of `dispatchAction` might be out of the extent,\n // or do not obey the `min/maxSpan`, `min/maxValueSpan`. But we don't restrict window\n // by `zoomLock` here, because we see `zoomLock` just as a interaction constraint,\n // where API is able to initialize/modify the window size even though `zoomLock`\n // specified.\n\n var spans = this._minMaxSpan;\n hasPropModeValue ? restrictSet(valueWindow, percentWindow, dataExtent, percentExtent, false) : restrictSet(percentWindow, valueWindow, percentExtent, dataExtent, true);\n\n function restrictSet(fromWindow, toWindow, fromExtent, toExtent, toValue) {\n var suffix = toValue ? 'Span' : 'ValueSpan';\n sliderMove(0, fromWindow, fromExtent, 'all', spans['min' + suffix], spans['max' + suffix]);\n\n for (var i = 0; i < 2; i++) {\n toWindow[i] = numberUtil.linearMap(fromWindow[i], fromExtent, toExtent, true);\n toValue && (toWindow[i] = scale.parse(toWindow[i]));\n }\n }\n\n return {\n valueWindow: valueWindow,\n percentWindow: percentWindow\n };\n };\n /**\n * Notice: reset should not be called before series.restoreData() is called,\n * so it is recommended to be called in \"process stage\" but not \"model init\n * stage\".\n */\n\n\n AxisProxy.prototype.reset = function (dataZoomModel) {\n if (dataZoomModel !== this._dataZoomModel) {\n return;\n }\n\n var targetSeries = this.getTargetSeriesModels(); // Culculate data window and data extent, and record them.\n\n this._dataExtent = calculateDataExtent(this, this._dimName, targetSeries); // `calculateDataWindow` uses min/maxSpan.\n\n this._updateMinMaxSpan();\n\n var dataWindow = this.calculateDataWindow(dataZoomModel.settledOption);\n this._valueWindow = dataWindow.valueWindow;\n this._percentWindow = dataWindow.percentWindow; // Update axis setting then.\n\n this._setAxisModel();\n };\n\n AxisProxy.prototype.filterData = function (dataZoomModel, api) {\n if (dataZoomModel !== this._dataZoomModel) {\n return;\n }\n\n var axisDim = this._dimName;\n var seriesModels = this.getTargetSeriesModels();\n var filterMode = dataZoomModel.get('filterMode');\n var valueWindow = this._valueWindow;\n\n if (filterMode === 'none') {\n return;\n } // FIXME\n // Toolbox may has dataZoom injected. And if there are stacked bar chart\n // with NaN data, NaN will be filtered and stack will be wrong.\n // So we need to force the mode to be set empty.\n // In fect, it is not a big deal that do not support filterMode-'filter'\n // when using toolbox#dataZoom, utill tooltip#dataZoom support \"single axis\n // selection\" some day, which might need \"adapt to data extent on the\n // otherAxis\", which is disabled by filterMode-'empty'.\n // But currently, stack has been fixed to based on value but not index,\n // so this is not an issue any more.\n // let otherAxisModel = this.getOtherAxisModel();\n // if (dataZoomModel.get('$fromToolbox')\n // && otherAxisModel\n // && otherAxisModel.hasSeriesStacked\n // ) {\n // filterMode = 'empty';\n // }\n // TODO\n // filterMode 'weakFilter' and 'empty' is not optimized for huge data yet.\n\n\n each(seriesModels, function (seriesModel) {\n var seriesData = seriesModel.getData();\n var dataDims = seriesData.mapDimensionsAll(axisDim);\n\n if (!dataDims.length) {\n return;\n }\n\n if (filterMode === 'weakFilter') {\n var store_1 = seriesData.getStore();\n var dataDimIndices_1 = zrUtil.map(dataDims, function (dim) {\n return seriesData.getDimensionIndex(dim);\n }, seriesData);\n seriesData.filterSelf(function (dataIndex) {\n var leftOut;\n var rightOut;\n var hasValue;\n\n for (var i = 0; i < dataDims.length; i++) {\n var value = store_1.get(dataDimIndices_1[i], dataIndex);\n var thisHasValue = !isNaN(value);\n var thisLeftOut = value < valueWindow[0];\n var thisRightOut = value > valueWindow[1];\n\n if (thisHasValue && !thisLeftOut && !thisRightOut) {\n return true;\n }\n\n thisHasValue && (hasValue = true);\n thisLeftOut && (leftOut = true);\n thisRightOut && (rightOut = true);\n } // If both left out and right out, do not filter.\n\n\n return hasValue && leftOut && rightOut;\n });\n } else {\n each(dataDims, function (dim) {\n if (filterMode === 'empty') {\n seriesModel.setData(seriesData = seriesData.map(dim, function (value) {\n return !isInWindow(value) ? NaN : value;\n }));\n } else {\n var range = {};\n range[dim] = valueWindow; // console.time('select');\n\n seriesData.selectRange(range); // console.timeEnd('select');\n }\n });\n }\n\n each(dataDims, function (dim) {\n seriesData.setApproximateExtent(valueWindow, dim);\n });\n });\n\n function isInWindow(value) {\n return value >= valueWindow[0] && value <= valueWindow[1];\n }\n };\n\n AxisProxy.prototype._updateMinMaxSpan = function () {\n var minMaxSpan = this._minMaxSpan = {};\n var dataZoomModel = this._dataZoomModel;\n var dataExtent = this._dataExtent;\n each(['min', 'max'], function (minMax) {\n var percentSpan = dataZoomModel.get(minMax + 'Span');\n var valueSpan = dataZoomModel.get(minMax + 'ValueSpan');\n valueSpan != null && (valueSpan = this.getAxisModel().axis.scale.parse(valueSpan)); // minValueSpan and maxValueSpan has higher priority than minSpan and maxSpan\n\n if (valueSpan != null) {\n percentSpan = numberUtil.linearMap(dataExtent[0] + valueSpan, dataExtent, [0, 100], true);\n } else if (percentSpan != null) {\n valueSpan = numberUtil.linearMap(percentSpan, [0, 100], dataExtent, true) - dataExtent[0];\n }\n\n minMaxSpan[minMax + 'Span'] = percentSpan;\n minMaxSpan[minMax + 'ValueSpan'] = valueSpan;\n }, this);\n };\n\n AxisProxy.prototype._setAxisModel = function () {\n var axisModel = this.getAxisModel();\n var percentWindow = this._percentWindow;\n var valueWindow = this._valueWindow;\n\n if (!percentWindow) {\n return;\n } // [0, 500]: arbitrary value, guess axis extent.\n\n\n var precision = numberUtil.getPixelPrecision(valueWindow, [0, 500]);\n precision = Math.min(precision, 20); // For value axis, if min/max/scale are not set, we just use the extent obtained\n // by series data, which may be a little different from the extent calculated by\n // `axisHelper.getScaleExtent`. But the different just affects the experience a\n // little when zooming. So it will not be fixed until some users require it strongly.\n\n var rawExtentInfo = axisModel.axis.scale.rawExtentInfo;\n\n if (percentWindow[0] !== 0) {\n rawExtentInfo.setDeterminedMinMax('min', +valueWindow[0].toFixed(precision));\n }\n\n if (percentWindow[1] !== 100) {\n rawExtentInfo.setDeterminedMinMax('max', +valueWindow[1].toFixed(precision));\n }\n\n rawExtentInfo.freeze();\n };\n\n return AxisProxy;\n}();\n\nfunction calculateDataExtent(axisProxy, axisDim, seriesModels) {\n var dataExtent = [Infinity, -Infinity];\n each(seriesModels, function (seriesModel) {\n unionAxisExtentFromData(dataExtent, seriesModel.getData(), axisDim);\n }); // It is important to get \"consistent\" extent when more then one axes is\n // controlled by a `dataZoom`, otherwise those axes will not be synchronized\n // when zooming. But it is difficult to know what is \"consistent\", considering\n // axes have different type or even different meanings (For example, two\n // time axes are used to compare data of the same date in different years).\n // So basically dataZoom just obtains extent by series.data (in category axis\n // extent can be obtained from axis.data).\n // Nevertheless, user can set min/max/scale on axes to make extent of axes\n // consistent.\n\n var axisModel = axisProxy.getAxisModel();\n var rawExtentResult = ensureScaleRawExtentInfo(axisModel.axis.scale, axisModel, dataExtent).calculate();\n return [rawExtentResult.min, rawExtentResult.max];\n}\n\nexport default AxisProxy;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport { each, createHashMap, merge, assert } from 'zrender/lib/core/util.js';\nimport ComponentModel from '../../model/Component.js';\nimport { getAxisMainType, DATA_ZOOM_AXIS_DIMENSIONS } from './helper.js';\nimport { MULTIPLE_REFERRING, SINGLE_REFERRING } from '../../util/model.js';\n\nvar DataZoomAxisInfo =\n/** @class */\nfunction () {\n function DataZoomAxisInfo() {\n this.indexList = [];\n this.indexMap = [];\n }\n\n DataZoomAxisInfo.prototype.add = function (axisCmptIdx) {\n // Remove duplication.\n if (!this.indexMap[axisCmptIdx]) {\n this.indexList.push(axisCmptIdx);\n this.indexMap[axisCmptIdx] = true;\n }\n };\n\n return DataZoomAxisInfo;\n}();\n\nvar DataZoomModel =\n/** @class */\nfunction (_super) {\n __extends(DataZoomModel, _super);\n\n function DataZoomModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = DataZoomModel.type;\n _this._autoThrottle = true;\n _this._noTarget = true;\n /**\n * It is `[rangeModeForMin, rangeModeForMax]`.\n * The optional values for `rangeMode`:\n * + `'value'` mode: the axis extent will always be determined by\n * `dataZoom.startValue` and `dataZoom.endValue`, despite\n * how data like and how `axis.min` and `axis.max` are.\n * + `'percent'` mode: `100` represents 100% of the `[dMin, dMax]`,\n * where `dMin` is `axis.min` if `axis.min` specified, otherwise `data.extent[0]`,\n * and `dMax` is `axis.max` if `axis.max` specified, otherwise `data.extent[1]`.\n * Axis extent will be determined by the result of the percent of `[dMin, dMax]`.\n *\n * For example, when users are using dynamic data (update data periodically via `setOption`),\n * if in `'value`' mode, the window will be kept in a fixed value range despite how\n * data are appended, while if in `'percent'` mode, whe window range will be changed alone with\n * the appended data (suppose `axis.min` and `axis.max` are not specified).\n */\n\n _this._rangePropMode = ['percent', 'percent'];\n return _this;\n }\n\n DataZoomModel.prototype.init = function (option, parentModel, ecModel) {\n var inputRawOption = retrieveRawOption(option);\n /**\n * Suppose a \"main process\" start at the point that model prepared (that is,\n * model initialized or merged or method called in `action`).\n * We should keep the `main process` idempotent, that is, given a set of values\n * on `option`, we get the same result.\n *\n * But sometimes, values on `option` will be updated for providing users\n * a \"final calculated value\" (`dataZoomProcessor` will do that). Those value\n * should not be the base/input of the `main process`.\n *\n * So in that case we should save and keep the input of the `main process`\n * separately, called `settledOption`.\n *\n * For example, consider the case:\n * (Step_1) brush zoom the grid by `toolbox.dataZoom`,\n * where the original input `option.startValue`, `option.endValue` are earsed by\n * calculated value.\n * (Step)2) click the legend to hide and show a series,\n * where the new range is calculated by the earsed `startValue` and `endValue`,\n * which brings incorrect result.\n */\n\n this.settledOption = inputRawOption;\n this.mergeDefaultAndTheme(option, ecModel);\n\n this._doInit(inputRawOption);\n };\n\n DataZoomModel.prototype.mergeOption = function (newOption) {\n var inputRawOption = retrieveRawOption(newOption); // FIX #2591\n\n merge(this.option, newOption, true);\n merge(this.settledOption, inputRawOption, true);\n\n this._doInit(inputRawOption);\n };\n\n DataZoomModel.prototype._doInit = function (inputRawOption) {\n var thisOption = this.option;\n\n this._setDefaultThrottle(inputRawOption);\n\n this._updateRangeUse(inputRawOption);\n\n var settledOption = this.settledOption;\n each([['start', 'startValue'], ['end', 'endValue']], function (names, index) {\n // start/end has higher priority over startValue/endValue if they\n // both set, but we should make chart.setOption({endValue: 1000})\n // effective, rather than chart.setOption({endValue: 1000, end: null}).\n if (this._rangePropMode[index] === 'value') {\n thisOption[names[0]] = settledOption[names[0]] = null;\n } // Otherwise do nothing and use the merge result.\n\n }, this);\n\n this._resetTarget();\n };\n\n DataZoomModel.prototype._resetTarget = function () {\n var optionOrient = this.get('orient', true);\n var targetAxisIndexMap = this._targetAxisInfoMap = createHashMap();\n\n var hasAxisSpecified = this._fillSpecifiedTargetAxis(targetAxisIndexMap);\n\n if (hasAxisSpecified) {\n this._orient = optionOrient || this._makeAutoOrientByTargetAxis();\n } else {\n this._orient = optionOrient || 'horizontal';\n\n this._fillAutoTargetAxisByOrient(targetAxisIndexMap, this._orient);\n }\n\n this._noTarget = true;\n targetAxisIndexMap.each(function (axisInfo) {\n if (axisInfo.indexList.length) {\n this._noTarget = false;\n }\n }, this);\n };\n\n DataZoomModel.prototype._fillSpecifiedTargetAxis = function (targetAxisIndexMap) {\n var hasAxisSpecified = false;\n each(DATA_ZOOM_AXIS_DIMENSIONS, function (axisDim) {\n var refering = this.getReferringComponents(getAxisMainType(axisDim), MULTIPLE_REFERRING); // When user set axisIndex as a empty array, we think that user specify axisIndex\n // but do not want use auto mode. Because empty array may be encountered when\n // some error occurred.\n\n if (!refering.specified) {\n return;\n }\n\n hasAxisSpecified = true;\n var axisInfo = new DataZoomAxisInfo();\n each(refering.models, function (axisModel) {\n axisInfo.add(axisModel.componentIndex);\n });\n targetAxisIndexMap.set(axisDim, axisInfo);\n }, this);\n return hasAxisSpecified;\n };\n\n DataZoomModel.prototype._fillAutoTargetAxisByOrient = function (targetAxisIndexMap, orient) {\n var ecModel = this.ecModel;\n var needAuto = true; // Find axis that parallel to dataZoom as default.\n\n if (needAuto) {\n var axisDim = orient === 'vertical' ? 'y' : 'x';\n var axisModels = ecModel.findComponents({\n mainType: axisDim + 'Axis'\n });\n setParallelAxis(axisModels, axisDim);\n } // Find axis that parallel to dataZoom as default.\n\n\n if (needAuto) {\n var axisModels = ecModel.findComponents({\n mainType: 'singleAxis',\n filter: function (axisModel) {\n return axisModel.get('orient', true) === orient;\n }\n });\n setParallelAxis(axisModels, 'single');\n }\n\n function setParallelAxis(axisModels, axisDim) {\n // At least use the first parallel axis as the target axis.\n var axisModel = axisModels[0];\n\n if (!axisModel) {\n return;\n }\n\n var axisInfo = new DataZoomAxisInfo();\n axisInfo.add(axisModel.componentIndex);\n targetAxisIndexMap.set(axisDim, axisInfo);\n needAuto = false; // Find parallel axes in the same grid.\n\n if (axisDim === 'x' || axisDim === 'y') {\n var gridModel_1 = axisModel.getReferringComponents('grid', SINGLE_REFERRING).models[0];\n gridModel_1 && each(axisModels, function (axModel) {\n if (axisModel.componentIndex !== axModel.componentIndex && gridModel_1 === axModel.getReferringComponents('grid', SINGLE_REFERRING).models[0]) {\n axisInfo.add(axModel.componentIndex);\n }\n });\n }\n }\n\n if (needAuto) {\n // If no parallel axis, find the first category axis as default. (Also consider polar).\n each(DATA_ZOOM_AXIS_DIMENSIONS, function (axisDim) {\n if (!needAuto) {\n return;\n }\n\n var axisModels = ecModel.findComponents({\n mainType: getAxisMainType(axisDim),\n filter: function (axisModel) {\n return axisModel.get('type', true) === 'category';\n }\n });\n\n if (axisModels[0]) {\n var axisInfo = new DataZoomAxisInfo();\n axisInfo.add(axisModels[0].componentIndex);\n targetAxisIndexMap.set(axisDim, axisInfo);\n needAuto = false;\n }\n }, this);\n }\n };\n\n DataZoomModel.prototype._makeAutoOrientByTargetAxis = function () {\n var dim; // Find the first axis\n\n this.eachTargetAxis(function (axisDim) {\n !dim && (dim = axisDim);\n }, this);\n return dim === 'y' ? 'vertical' : 'horizontal';\n };\n\n DataZoomModel.prototype._setDefaultThrottle = function (inputRawOption) {\n // When first time user set throttle, auto throttle ends.\n if (inputRawOption.hasOwnProperty('throttle')) {\n this._autoThrottle = false;\n }\n\n if (this._autoThrottle) {\n var globalOption = this.ecModel.option;\n this.option.throttle = globalOption.animation && globalOption.animationDurationUpdate > 0 ? 100 : 20;\n }\n };\n\n DataZoomModel.prototype._updateRangeUse = function (inputRawOption) {\n var rangePropMode = this._rangePropMode;\n var rangeModeInOption = this.get('rangeMode');\n each([['start', 'startValue'], ['end', 'endValue']], function (names, index) {\n var percentSpecified = inputRawOption[names[0]] != null;\n var valueSpecified = inputRawOption[names[1]] != null;\n\n if (percentSpecified && !valueSpecified) {\n rangePropMode[index] = 'percent';\n } else if (!percentSpecified && valueSpecified) {\n rangePropMode[index] = 'value';\n } else if (rangeModeInOption) {\n rangePropMode[index] = rangeModeInOption[index];\n } else if (percentSpecified) {\n // percentSpecified && valueSpecified\n rangePropMode[index] = 'percent';\n } // else remain its original setting.\n\n });\n };\n\n DataZoomModel.prototype.noTarget = function () {\n return this._noTarget;\n };\n\n DataZoomModel.prototype.getFirstTargetAxisModel = function () {\n var firstAxisModel;\n this.eachTargetAxis(function (axisDim, axisIndex) {\n if (firstAxisModel == null) {\n firstAxisModel = this.ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\n }\n }, this);\n return firstAxisModel;\n };\n /**\n * @param {Function} callback param: axisModel, dimNames, axisIndex, dataZoomModel, ecModel\n */\n\n\n DataZoomModel.prototype.eachTargetAxis = function (callback, context) {\n this._targetAxisInfoMap.each(function (axisInfo, axisDim) {\n each(axisInfo.indexList, function (axisIndex) {\n callback.call(context, axisDim, axisIndex);\n });\n });\n };\n /**\n * @return If not found, return null/undefined.\n */\n\n\n DataZoomModel.prototype.getAxisProxy = function (axisDim, axisIndex) {\n var axisModel = this.getAxisModel(axisDim, axisIndex);\n\n if (axisModel) {\n return axisModel.__dzAxisProxy;\n }\n };\n /**\n * @return If not found, return null/undefined.\n */\n\n\n DataZoomModel.prototype.getAxisModel = function (axisDim, axisIndex) {\n if (process.env.NODE_ENV !== 'production') {\n assert(axisDim && axisIndex != null);\n }\n\n var axisInfo = this._targetAxisInfoMap.get(axisDim);\n\n if (axisInfo && axisInfo.indexMap[axisIndex]) {\n return this.ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\n }\n };\n /**\n * If not specified, set to undefined.\n */\n\n\n DataZoomModel.prototype.setRawRange = function (opt) {\n var thisOption = this.option;\n var settledOption = this.settledOption;\n each([['start', 'startValue'], ['end', 'endValue']], function (names) {\n // Consider the pair :\n // If one has value and the other one is `null/undefined`, we both set them\n // to `settledOption`. This strategy enables the feature to clear the original\n // value in `settledOption` to `null/undefined`.\n // But if both of them are `null/undefined`, we do not set them to `settledOption`\n // and keep `settledOption` with the original value. This strategy enables users to\n // only set but not set when calling\n // `dispatchAction`.\n // The pair is treated in the same way.\n if (opt[names[0]] != null || opt[names[1]] != null) {\n thisOption[names[0]] = settledOption[names[0]] = opt[names[0]];\n thisOption[names[1]] = settledOption[names[1]] = opt[names[1]];\n }\n }, this);\n\n this._updateRangeUse(opt);\n };\n\n DataZoomModel.prototype.setCalculatedRange = function (opt) {\n var option = this.option;\n each(['start', 'startValue', 'end', 'endValue'], function (name) {\n option[name] = opt[name];\n });\n };\n\n DataZoomModel.prototype.getPercentRange = function () {\n var axisProxy = this.findRepresentativeAxisProxy();\n\n if (axisProxy) {\n return axisProxy.getDataPercentWindow();\n }\n };\n /**\n * For example, chart.getModel().getComponent('dataZoom').getValueRange('y', 0);\n *\n * @return [startValue, endValue] value can only be '-' or finite number.\n */\n\n\n DataZoomModel.prototype.getValueRange = function (axisDim, axisIndex) {\n if (axisDim == null && axisIndex == null) {\n var axisProxy = this.findRepresentativeAxisProxy();\n\n if (axisProxy) {\n return axisProxy.getDataValueWindow();\n }\n } else {\n return this.getAxisProxy(axisDim, axisIndex).getDataValueWindow();\n }\n };\n /**\n * @param axisModel If axisModel given, find axisProxy\n * corresponding to the axisModel\n */\n\n\n DataZoomModel.prototype.findRepresentativeAxisProxy = function (axisModel) {\n if (axisModel) {\n return axisModel.__dzAxisProxy;\n } // Find the first hosted axisProxy\n\n\n var firstProxy;\n\n var axisDimList = this._targetAxisInfoMap.keys();\n\n for (var i = 0; i < axisDimList.length; i++) {\n var axisDim = axisDimList[i];\n\n var axisInfo = this._targetAxisInfoMap.get(axisDim);\n\n for (var j = 0; j < axisInfo.indexList.length; j++) {\n var proxy = this.getAxisProxy(axisDim, axisInfo.indexList[j]);\n\n if (proxy.hostedBy(this)) {\n return proxy;\n }\n\n if (!firstProxy) {\n firstProxy = proxy;\n }\n }\n } // If no hosted proxy found, still need to return a proxy.\n // This case always happens in toolbox dataZoom, where axes are all hosted by\n // other dataZooms.\n\n\n return firstProxy;\n };\n\n DataZoomModel.prototype.getRangePropMode = function () {\n return this._rangePropMode.slice();\n };\n\n DataZoomModel.prototype.getOrient = function () {\n if (process.env.NODE_ENV !== 'production') {\n // Should not be called before initialized.\n assert(this._orient);\n }\n\n return this._orient;\n };\n\n DataZoomModel.type = 'dataZoom';\n DataZoomModel.dependencies = ['xAxis', 'yAxis', 'radiusAxis', 'angleAxis', 'singleAxis', 'series', 'toolbox'];\n DataZoomModel.defaultOption = {\n // zlevel: 0,\n z: 4,\n filterMode: 'filter',\n start: 0,\n end: 100\n };\n return DataZoomModel;\n}(ComponentModel);\n/**\n * Retrieve those raw params from option, which will be cached separately,\n * because they will be overwritten by normalized/calculated values in the main\n * process.\n */\n\n\nfunction retrieveRawOption(option) {\n var ret = {};\n each(['start', 'end', 'startValue', 'endValue', 'throttle'], function (name) {\n option.hasOwnProperty(name) && (ret[name] = option[name]);\n });\n return ret;\n}\n\nexport default DataZoomModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport ComponentView from '../../view/Component.js';\n\nvar DataZoomView =\n/** @class */\nfunction (_super) {\n __extends(DataZoomView, _super);\n\n function DataZoomView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = DataZoomView.type;\n return _this;\n }\n\n DataZoomView.prototype.render = function (dataZoomModel, ecModel, api, payload) {\n this.dataZoomModel = dataZoomModel;\n this.ecModel = ecModel;\n this.api = api;\n };\n\n DataZoomView.type = 'dataZoom';\n return DataZoomView;\n}(ComponentView);\n\nexport default DataZoomView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport DataZoomModel from './DataZoomModel.js';\nimport { inheritDefaultOption } from '../../util/component.js';\n\nvar InsideZoomModel =\n/** @class */\nfunction (_super) {\n __extends(InsideZoomModel, _super);\n\n function InsideZoomModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = InsideZoomModel.type;\n return _this;\n }\n\n InsideZoomModel.type = 'dataZoom.inside';\n InsideZoomModel.defaultOption = inheritDefaultOption(DataZoomModel.defaultOption, {\n disabled: false,\n zoomLock: false,\n zoomOnMouseWheel: true,\n moveOnMouseMove: true,\n moveOnMouseWheel: false,\n preventDefaultMouseMove: true\n });\n return InsideZoomModel;\n}(DataZoomModel);\n\nexport default InsideZoomModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport DataZoomView from './DataZoomView.js';\nimport sliderMove from '../helper/sliderMove.js';\nimport * as roams from './roams.js';\nimport { bind } from 'zrender/lib/core/util.js';\n\nvar InsideZoomView =\n/** @class */\nfunction (_super) {\n __extends(InsideZoomView, _super);\n\n function InsideZoomView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = 'dataZoom.inside';\n return _this;\n }\n\n InsideZoomView.prototype.render = function (dataZoomModel, ecModel, api) {\n _super.prototype.render.apply(this, arguments);\n\n if (dataZoomModel.noTarget()) {\n this._clear();\n\n return;\n } // Hence the `throttle` util ensures to preserve command order,\n // here simply updating range all the time will not cause missing\n // any of the the roam change.\n\n\n this.range = dataZoomModel.getPercentRange(); // Reset controllers.\n\n roams.setViewInfoToCoordSysRecord(api, dataZoomModel, {\n pan: bind(getRangeHandlers.pan, this),\n zoom: bind(getRangeHandlers.zoom, this),\n scrollMove: bind(getRangeHandlers.scrollMove, this)\n });\n };\n\n InsideZoomView.prototype.dispose = function () {\n this._clear();\n\n _super.prototype.dispose.apply(this, arguments);\n };\n\n InsideZoomView.prototype._clear = function () {\n roams.disposeCoordSysRecordIfNeeded(this.api, this.dataZoomModel);\n this.range = null;\n };\n\n InsideZoomView.type = 'dataZoom.inside';\n return InsideZoomView;\n}(DataZoomView);\n\nvar getRangeHandlers = {\n zoom: function (coordSysInfo, coordSysMainType, controller, e) {\n var lastRange = this.range;\n var range = lastRange.slice(); // Calculate transform by the first axis.\n\n var axisModel = coordSysInfo.axisModels[0];\n\n if (!axisModel) {\n return;\n }\n\n var directionInfo = getDirectionInfo[coordSysMainType](null, [e.originX, e.originY], axisModel, controller, coordSysInfo);\n var percentPoint = (directionInfo.signal > 0 ? directionInfo.pixelStart + directionInfo.pixelLength - directionInfo.pixel : directionInfo.pixel - directionInfo.pixelStart) / directionInfo.pixelLength * (range[1] - range[0]) + range[0];\n var scale = Math.max(1 / e.scale, 0);\n range[0] = (range[0] - percentPoint) * scale + percentPoint;\n range[1] = (range[1] - percentPoint) * scale + percentPoint; // Restrict range.\n\n var minMaxSpan = this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();\n sliderMove(0, range, [0, 100], 0, minMaxSpan.minSpan, minMaxSpan.maxSpan);\n this.range = range;\n\n if (lastRange[0] !== range[0] || lastRange[1] !== range[1]) {\n return range;\n }\n },\n pan: makeMover(function (range, axisModel, coordSysInfo, coordSysMainType, controller, e) {\n var directionInfo = getDirectionInfo[coordSysMainType]([e.oldX, e.oldY], [e.newX, e.newY], axisModel, controller, coordSysInfo);\n return directionInfo.signal * (range[1] - range[0]) * directionInfo.pixel / directionInfo.pixelLength;\n }),\n scrollMove: makeMover(function (range, axisModel, coordSysInfo, coordSysMainType, controller, e) {\n var directionInfo = getDirectionInfo[coordSysMainType]([0, 0], [e.scrollDelta, e.scrollDelta], axisModel, controller, coordSysInfo);\n return directionInfo.signal * (range[1] - range[0]) * e.scrollDelta;\n })\n};\n\nfunction makeMover(getPercentDelta) {\n return function (coordSysInfo, coordSysMainType, controller, e) {\n var lastRange = this.range;\n var range = lastRange.slice(); // Calculate transform by the first axis.\n\n var axisModel = coordSysInfo.axisModels[0];\n\n if (!axisModel) {\n return;\n }\n\n var percentDelta = getPercentDelta(range, axisModel, coordSysInfo, coordSysMainType, controller, e);\n sliderMove(percentDelta, range, [0, 100], 'all');\n this.range = range;\n\n if (lastRange[0] !== range[0] || lastRange[1] !== range[1]) {\n return range;\n }\n };\n}\n\nvar getDirectionInfo = {\n grid: function (oldPoint, newPoint, axisModel, controller, coordSysInfo) {\n var axis = axisModel.axis;\n var ret = {};\n var rect = coordSysInfo.model.coordinateSystem.getRect();\n oldPoint = oldPoint || [0, 0];\n\n if (axis.dim === 'x') {\n ret.pixel = newPoint[0] - oldPoint[0];\n ret.pixelLength = rect.width;\n ret.pixelStart = rect.x;\n ret.signal = axis.inverse ? 1 : -1;\n } else {\n // axis.dim === 'y'\n ret.pixel = newPoint[1] - oldPoint[1];\n ret.pixelLength = rect.height;\n ret.pixelStart = rect.y;\n ret.signal = axis.inverse ? -1 : 1;\n }\n\n return ret;\n },\n polar: function (oldPoint, newPoint, axisModel, controller, coordSysInfo) {\n var axis = axisModel.axis;\n var ret = {};\n var polar = coordSysInfo.model.coordinateSystem;\n var radiusExtent = polar.getRadiusAxis().getExtent();\n var angleExtent = polar.getAngleAxis().getExtent();\n oldPoint = oldPoint ? polar.pointToCoord(oldPoint) : [0, 0];\n newPoint = polar.pointToCoord(newPoint);\n\n if (axisModel.mainType === 'radiusAxis') {\n ret.pixel = newPoint[0] - oldPoint[0]; // ret.pixelLength = Math.abs(radiusExtent[1] - radiusExtent[0]);\n // ret.pixelStart = Math.min(radiusExtent[0], radiusExtent[1]);\n\n ret.pixelLength = radiusExtent[1] - radiusExtent[0];\n ret.pixelStart = radiusExtent[0];\n ret.signal = axis.inverse ? 1 : -1;\n } else {\n // 'angleAxis'\n ret.pixel = newPoint[1] - oldPoint[1]; // ret.pixelLength = Math.abs(angleExtent[1] - angleExtent[0]);\n // ret.pixelStart = Math.min(angleExtent[0], angleExtent[1]);\n\n ret.pixelLength = angleExtent[1] - angleExtent[0];\n ret.pixelStart = angleExtent[0];\n ret.signal = axis.inverse ? -1 : 1;\n }\n\n return ret;\n },\n singleAxis: function (oldPoint, newPoint, axisModel, controller, coordSysInfo) {\n var axis = axisModel.axis;\n var rect = coordSysInfo.model.coordinateSystem.getRect();\n var ret = {};\n oldPoint = oldPoint || [0, 0];\n\n if (axis.orient === 'horizontal') {\n ret.pixel = newPoint[0] - oldPoint[0];\n ret.pixelLength = rect.width;\n ret.pixelStart = rect.x;\n ret.signal = axis.inverse ? 1 : -1;\n } else {\n // 'vertical'\n ret.pixel = newPoint[1] - oldPoint[1];\n ret.pixelLength = rect.height;\n ret.pixelStart = rect.y;\n ret.signal = axis.inverse ? -1 : 1;\n }\n\n return ret;\n }\n};\nexport default InsideZoomView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport DataZoomModel from './DataZoomModel.js';\n\nvar SelectDataZoomModel =\n/** @class */\nfunction (_super) {\n __extends(SelectDataZoomModel, _super);\n\n function SelectDataZoomModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = SelectDataZoomModel.type;\n return _this;\n }\n\n SelectDataZoomModel.type = 'dataZoom.select';\n return SelectDataZoomModel;\n}(DataZoomModel);\n\nexport default SelectDataZoomModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport DataZoomView from './DataZoomView.js';\n\nvar SelectDataZoomView =\n/** @class */\nfunction (_super) {\n __extends(SelectDataZoomView, _super);\n\n function SelectDataZoomView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = SelectDataZoomView.type;\n return _this;\n }\n\n SelectDataZoomView.type = 'dataZoom.select';\n return SelectDataZoomView;\n}(DataZoomView);\n\nexport default SelectDataZoomView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport DataZoomModel from './DataZoomModel.js';\nimport { inheritDefaultOption } from '../../util/component.js';\n\nvar SliderZoomModel =\n/** @class */\nfunction (_super) {\n __extends(SliderZoomModel, _super);\n\n function SliderZoomModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = SliderZoomModel.type;\n return _this;\n }\n\n SliderZoomModel.type = 'dataZoom.slider';\n SliderZoomModel.layoutMode = 'box';\n SliderZoomModel.defaultOption = inheritDefaultOption(DataZoomModel.defaultOption, {\n show: true,\n // deault value can only be drived in view stage.\n right: 'ph',\n top: 'ph',\n width: 'ph',\n height: 'ph',\n left: null,\n bottom: null,\n borderColor: '#d2dbee',\n borderRadius: 3,\n backgroundColor: 'rgba(47,69,84,0)',\n // dataBackgroundColor: '#ddd',\n dataBackground: {\n lineStyle: {\n color: '#d2dbee',\n width: 0.5\n },\n areaStyle: {\n color: '#d2dbee',\n opacity: 0.2\n }\n },\n selectedDataBackground: {\n lineStyle: {\n color: '#8fb0f7',\n width: 0.5\n },\n areaStyle: {\n color: '#8fb0f7',\n opacity: 0.2\n }\n },\n // Color of selected window.\n fillerColor: 'rgba(135,175,274,0.2)',\n handleIcon: 'path://M-9.35,34.56V42m0-40V9.5m-2,0h4a2,2,0,0,1,2,2v21a2,2,0,0,1-2,2h-4a2,2,0,0,1-2-2v-21A2,2,0,0,1-11.35,9.5Z',\n // Percent of the slider height\n handleSize: '100%',\n handleStyle: {\n color: '#fff',\n borderColor: '#ACB8D1'\n },\n moveHandleSize: 7,\n moveHandleIcon: 'path://M-320.9-50L-320.9-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-348-41-339-50-320.9-50z M-212.3-50L-212.3-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-239.4-41-230.4-50-212.3-50z M-103.7-50L-103.7-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-130.9-41-121.8-50-103.7-50z',\n moveHandleStyle: {\n color: '#D2DBEE',\n opacity: 0.7\n },\n showDetail: true,\n showDataShadow: 'auto',\n realtime: true,\n zoomLock: false,\n textStyle: {\n color: '#6E7079'\n },\n brushSelect: true,\n brushStyle: {\n color: 'rgba(135,175,274,0.15)'\n },\n emphasis: {\n handleStyle: {\n borderColor: '#8FB0F7'\n },\n moveHandleStyle: {\n color: '#8FB0F7'\n }\n }\n });\n return SliderZoomModel;\n}(DataZoomModel);\n\nexport default SliderZoomModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport { bind, each, isFunction, isString, indexOf } from 'zrender/lib/core/util.js';\nimport * as eventTool from 'zrender/lib/core/event.js';\nimport * as graphic from '../../util/graphic.js';\nimport * as throttle from '../../util/throttle.js';\nimport DataZoomView from './DataZoomView.js';\nimport { linearMap, asc, parsePercent } from '../../util/number.js';\nimport * as layout from '../../util/layout.js';\nimport sliderMove from '../helper/sliderMove.js';\nimport { getAxisMainType, collectReferCoordSysModelInfo } from './helper.js';\nimport { enableHoverEmphasis } from '../../util/states.js';\nimport { createSymbol, symbolBuildProxies } from '../../util/symbol.js';\nimport { deprecateLog } from '../../util/log.js';\nimport { createTextStyle } from '../../label/labelStyle.js';\nvar Rect = graphic.Rect; // Constants\n\nvar DEFAULT_LOCATION_EDGE_GAP = 7;\nvar DEFAULT_FRAME_BORDER_WIDTH = 1;\nvar DEFAULT_FILLER_SIZE = 30;\nvar DEFAULT_MOVE_HANDLE_SIZE = 7;\nvar HORIZONTAL = 'horizontal';\nvar VERTICAL = 'vertical';\nvar LABEL_GAP = 5;\nvar SHOW_DATA_SHADOW_SERIES_TYPE = ['line', 'bar', 'candlestick', 'scatter'];\nvar REALTIME_ANIMATION_CONFIG = {\n easing: 'cubicOut',\n duration: 100,\n delay: 0\n};\n\nvar SliderZoomView =\n/** @class */\nfunction (_super) {\n __extends(SliderZoomView, _super);\n\n function SliderZoomView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = SliderZoomView.type;\n _this._displayables = {};\n return _this;\n }\n\n SliderZoomView.prototype.init = function (ecModel, api) {\n this.api = api; // A unique handler for each dataZoom component\n\n this._onBrush = bind(this._onBrush, this);\n this._onBrushEnd = bind(this._onBrushEnd, this);\n };\n\n SliderZoomView.prototype.render = function (dataZoomModel, ecModel, api, payload) {\n _super.prototype.render.apply(this, arguments);\n\n throttle.createOrUpdate(this, '_dispatchZoomAction', dataZoomModel.get('throttle'), 'fixRate');\n this._orient = dataZoomModel.getOrient();\n\n if (dataZoomModel.get('show') === false) {\n this.group.removeAll();\n return;\n }\n\n if (dataZoomModel.noTarget()) {\n this._clear();\n\n this.group.removeAll();\n return;\n } // Notice: this._resetInterval() should not be executed when payload.type\n // is 'dataZoom', origin this._range should be maintained, otherwise 'pan'\n // or 'zoom' info will be missed because of 'throttle' of this.dispatchAction,\n\n\n if (!payload || payload.type !== 'dataZoom' || payload.from !== this.uid) {\n this._buildView();\n }\n\n this._updateView();\n };\n\n SliderZoomView.prototype.dispose = function () {\n this._clear();\n\n _super.prototype.dispose.apply(this, arguments);\n };\n\n SliderZoomView.prototype._clear = function () {\n throttle.clear(this, '_dispatchZoomAction');\n var zr = this.api.getZr();\n zr.off('mousemove', this._onBrush);\n zr.off('mouseup', this._onBrushEnd);\n };\n\n SliderZoomView.prototype._buildView = function () {\n var thisGroup = this.group;\n thisGroup.removeAll();\n this._brushing = false;\n this._displayables.brushRect = null;\n\n this._resetLocation();\n\n this._resetInterval();\n\n var barGroup = this._displayables.sliderGroup = new graphic.Group();\n\n this._renderBackground();\n\n this._renderHandle();\n\n this._renderDataShadow();\n\n thisGroup.add(barGroup);\n\n this._positionGroup();\n };\n\n SliderZoomView.prototype._resetLocation = function () {\n var dataZoomModel = this.dataZoomModel;\n var api = this.api;\n var showMoveHandle = dataZoomModel.get('brushSelect');\n var moveHandleSize = showMoveHandle ? DEFAULT_MOVE_HANDLE_SIZE : 0; // If some of x/y/width/height are not specified,\n // auto-adapt according to target grid.\n\n var coordRect = this._findCoordRect();\n\n var ecSize = {\n width: api.getWidth(),\n height: api.getHeight()\n }; // Default align by coordinate system rect.\n\n var positionInfo = this._orient === HORIZONTAL ? {\n // Why using 'right', because right should be used in vertical,\n // and it is better to be consistent for dealing with position param merge.\n right: ecSize.width - coordRect.x - coordRect.width,\n top: ecSize.height - DEFAULT_FILLER_SIZE - DEFAULT_LOCATION_EDGE_GAP - moveHandleSize,\n width: coordRect.width,\n height: DEFAULT_FILLER_SIZE\n } : {\n right: DEFAULT_LOCATION_EDGE_GAP,\n top: coordRect.y,\n width: DEFAULT_FILLER_SIZE,\n height: coordRect.height\n }; // Do not write back to option and replace value 'ph', because\n // the 'ph' value should be recalculated when resize.\n\n var layoutParams = layout.getLayoutParams(dataZoomModel.option); // Replace the placeholder value.\n\n each(['right', 'top', 'width', 'height'], function (name) {\n if (layoutParams[name] === 'ph') {\n layoutParams[name] = positionInfo[name];\n }\n });\n var layoutRect = layout.getLayoutRect(layoutParams, ecSize);\n this._location = {\n x: layoutRect.x,\n y: layoutRect.y\n };\n this._size = [layoutRect.width, layoutRect.height];\n this._orient === VERTICAL && this._size.reverse();\n };\n\n SliderZoomView.prototype._positionGroup = function () {\n var thisGroup = this.group;\n var location = this._location;\n var orient = this._orient; // Just use the first axis to determine mapping.\n\n var targetAxisModel = this.dataZoomModel.getFirstTargetAxisModel();\n var inverse = targetAxisModel && targetAxisModel.get('inverse');\n var sliderGroup = this._displayables.sliderGroup;\n var otherAxisInverse = (this._dataShadowInfo || {}).otherAxisInverse; // Transform barGroup.\n\n sliderGroup.attr(orient === HORIZONTAL && !inverse ? {\n scaleY: otherAxisInverse ? 1 : -1,\n scaleX: 1\n } : orient === HORIZONTAL && inverse ? {\n scaleY: otherAxisInverse ? 1 : -1,\n scaleX: -1\n } : orient === VERTICAL && !inverse ? {\n scaleY: otherAxisInverse ? -1 : 1,\n scaleX: 1,\n rotation: Math.PI / 2\n } // Don't use Math.PI, considering shadow direction.\n : {\n scaleY: otherAxisInverse ? -1 : 1,\n scaleX: -1,\n rotation: Math.PI / 2\n }); // Position barGroup\n\n var rect = thisGroup.getBoundingRect([sliderGroup]);\n thisGroup.x = location.x - rect.x;\n thisGroup.y = location.y - rect.y;\n thisGroup.markRedraw();\n };\n\n SliderZoomView.prototype._getViewExtent = function () {\n return [0, this._size[0]];\n };\n\n SliderZoomView.prototype._renderBackground = function () {\n var dataZoomModel = this.dataZoomModel;\n var size = this._size;\n var barGroup = this._displayables.sliderGroup;\n var brushSelect = dataZoomModel.get('brushSelect');\n barGroup.add(new Rect({\n silent: true,\n shape: {\n x: 0,\n y: 0,\n width: size[0],\n height: size[1]\n },\n style: {\n fill: dataZoomModel.get('backgroundColor')\n },\n z2: -40\n })); // Click panel, over shadow, below handles.\n\n var clickPanel = new Rect({\n shape: {\n x: 0,\n y: 0,\n width: size[0],\n height: size[1]\n },\n style: {\n fill: 'transparent'\n },\n z2: 0,\n onclick: bind(this._onClickPanel, this)\n });\n var zr = this.api.getZr();\n\n if (brushSelect) {\n clickPanel.on('mousedown', this._onBrushStart, this);\n clickPanel.cursor = 'crosshair';\n zr.on('mousemove', this._onBrush);\n zr.on('mouseup', this._onBrushEnd);\n } else {\n zr.off('mousemove', this._onBrush);\n zr.off('mouseup', this._onBrushEnd);\n }\n\n barGroup.add(clickPanel);\n };\n\n SliderZoomView.prototype._renderDataShadow = function () {\n var info = this._dataShadowInfo = this._prepareDataShadowInfo();\n\n this._displayables.dataShadowSegs = [];\n\n if (!info) {\n return;\n }\n\n var size = this._size;\n var oldSize = this._shadowSize || [];\n var seriesModel = info.series;\n var data = seriesModel.getRawData();\n var candlestickDim = seriesModel.getShadowDim && seriesModel.getShadowDim();\n var otherDim = candlestickDim && data.getDimensionInfo(candlestickDim) ? seriesModel.getShadowDim() // @see candlestick\n : info.otherDim;\n\n if (otherDim == null) {\n return;\n }\n\n var polygonPts = this._shadowPolygonPts;\n var polylinePts = this._shadowPolylinePts; // Not re-render if data doesn't change.\n\n if (data !== this._shadowData || otherDim !== this._shadowDim || size[0] !== oldSize[0] || size[1] !== oldSize[1]) {\n var otherDataExtent_1 = data.getDataExtent(otherDim); // Nice extent.\n\n var otherOffset = (otherDataExtent_1[1] - otherDataExtent_1[0]) * 0.3;\n otherDataExtent_1 = [otherDataExtent_1[0] - otherOffset, otherDataExtent_1[1] + otherOffset];\n var otherShadowExtent_1 = [0, size[1]];\n var thisShadowExtent = [0, size[0]];\n var areaPoints_1 = [[size[0], 0], [0, 0]];\n var linePoints_1 = [];\n var step_1 = thisShadowExtent[1] / (data.count() - 1);\n var thisCoord_1 = 0; // Optimize for large data shadow\n\n var stride_1 = Math.round(data.count() / size[0]);\n var lastIsEmpty_1;\n data.each([otherDim], function (value, index) {\n if (stride_1 > 0 && index % stride_1) {\n thisCoord_1 += step_1;\n return;\n } // FIXME\n // Should consider axis.min/axis.max when drawing dataShadow.\n // FIXME\n // 应该使用统一的空判断?还是在list里进行空判断?\n\n\n var isEmpty = value == null || isNaN(value) || value === ''; // See #4235.\n\n var otherCoord = isEmpty ? 0 : linearMap(value, otherDataExtent_1, otherShadowExtent_1, true); // Attempt to draw data shadow precisely when there are empty value.\n\n if (isEmpty && !lastIsEmpty_1 && index) {\n areaPoints_1.push([areaPoints_1[areaPoints_1.length - 1][0], 0]);\n linePoints_1.push([linePoints_1[linePoints_1.length - 1][0], 0]);\n } else if (!isEmpty && lastIsEmpty_1) {\n areaPoints_1.push([thisCoord_1, 0]);\n linePoints_1.push([thisCoord_1, 0]);\n }\n\n areaPoints_1.push([thisCoord_1, otherCoord]);\n linePoints_1.push([thisCoord_1, otherCoord]);\n thisCoord_1 += step_1;\n lastIsEmpty_1 = isEmpty;\n });\n polygonPts = this._shadowPolygonPts = areaPoints_1;\n polylinePts = this._shadowPolylinePts = linePoints_1;\n }\n\n this._shadowData = data;\n this._shadowDim = otherDim;\n this._shadowSize = [size[0], size[1]];\n var dataZoomModel = this.dataZoomModel;\n\n function createDataShadowGroup(isSelectedArea) {\n var model = dataZoomModel.getModel(isSelectedArea ? 'selectedDataBackground' : 'dataBackground');\n var group = new graphic.Group();\n var polygon = new graphic.Polygon({\n shape: {\n points: polygonPts\n },\n segmentIgnoreThreshold: 1,\n style: model.getModel('areaStyle').getAreaStyle(),\n silent: true,\n z2: -20\n });\n var polyline = new graphic.Polyline({\n shape: {\n points: polylinePts\n },\n segmentIgnoreThreshold: 1,\n style: model.getModel('lineStyle').getLineStyle(),\n silent: true,\n z2: -19\n });\n group.add(polygon);\n group.add(polyline);\n return group;\n } // let dataBackgroundModel = dataZoomModel.getModel('dataBackground');\n\n\n for (var i = 0; i < 3; i++) {\n var group = createDataShadowGroup(i === 1);\n\n this._displayables.sliderGroup.add(group);\n\n this._displayables.dataShadowSegs.push(group);\n }\n };\n\n SliderZoomView.prototype._prepareDataShadowInfo = function () {\n var dataZoomModel = this.dataZoomModel;\n var showDataShadow = dataZoomModel.get('showDataShadow');\n\n if (showDataShadow === false) {\n return;\n } // Find a representative series.\n\n\n var result;\n var ecModel = this.ecModel;\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n var seriesModels = dataZoomModel.getAxisProxy(axisDim, axisIndex).getTargetSeriesModels();\n each(seriesModels, function (seriesModel) {\n if (result) {\n return;\n }\n\n if (showDataShadow !== true && indexOf(SHOW_DATA_SHADOW_SERIES_TYPE, seriesModel.get('type')) < 0) {\n return;\n }\n\n var thisAxis = ecModel.getComponent(getAxisMainType(axisDim), axisIndex).axis;\n var otherDim = getOtherDim(axisDim);\n var otherAxisInverse;\n var coordSys = seriesModel.coordinateSystem;\n\n if (otherDim != null && coordSys.getOtherAxis) {\n otherAxisInverse = coordSys.getOtherAxis(thisAxis).inverse;\n }\n\n otherDim = seriesModel.getData().mapDimension(otherDim);\n result = {\n thisAxis: thisAxis,\n series: seriesModel,\n thisDim: axisDim,\n otherDim: otherDim,\n otherAxisInverse: otherAxisInverse\n };\n }, this);\n }, this);\n return result;\n };\n\n SliderZoomView.prototype._renderHandle = function () {\n var thisGroup = this.group;\n var displayables = this._displayables;\n var handles = displayables.handles = [null, null];\n var handleLabels = displayables.handleLabels = [null, null];\n var sliderGroup = this._displayables.sliderGroup;\n var size = this._size;\n var dataZoomModel = this.dataZoomModel;\n var api = this.api;\n var borderRadius = dataZoomModel.get('borderRadius') || 0;\n var brushSelect = dataZoomModel.get('brushSelect');\n var filler = displayables.filler = new Rect({\n silent: brushSelect,\n style: {\n fill: dataZoomModel.get('fillerColor')\n },\n textConfig: {\n position: 'inside'\n }\n });\n sliderGroup.add(filler); // Frame border.\n\n sliderGroup.add(new Rect({\n silent: true,\n subPixelOptimize: true,\n shape: {\n x: 0,\n y: 0,\n width: size[0],\n height: size[1],\n r: borderRadius\n },\n style: {\n // deprecated option\n stroke: dataZoomModel.get('dataBackgroundColor') || dataZoomModel.get('borderColor'),\n lineWidth: DEFAULT_FRAME_BORDER_WIDTH,\n fill: 'rgba(0,0,0,0)'\n }\n })); // Left and right handle to resize\n\n each([0, 1], function (handleIndex) {\n var iconStr = dataZoomModel.get('handleIcon');\n\n if (!symbolBuildProxies[iconStr] && iconStr.indexOf('path://') < 0 && iconStr.indexOf('image://') < 0) {\n // Compatitable with the old icon parsers. Which can use a path string without path://\n iconStr = 'path://' + iconStr;\n\n if (process.env.NODE_ENV !== 'production') {\n deprecateLog('handleIcon now needs \\'path://\\' prefix when using a path string');\n }\n }\n\n var path = createSymbol(iconStr, -1, 0, 2, 2, null, true);\n path.attr({\n cursor: getCursor(this._orient),\n draggable: true,\n drift: bind(this._onDragMove, this, handleIndex),\n ondragend: bind(this._onDragEnd, this),\n onmouseover: bind(this._showDataInfo, this, true),\n onmouseout: bind(this._showDataInfo, this, false),\n z2: 5\n });\n var bRect = path.getBoundingRect();\n var handleSize = dataZoomModel.get('handleSize');\n this._handleHeight = parsePercent(handleSize, this._size[1]);\n this._handleWidth = bRect.width / bRect.height * this._handleHeight;\n path.setStyle(dataZoomModel.getModel('handleStyle').getItemStyle());\n path.style.strokeNoScale = true;\n path.rectHover = true;\n path.ensureState('emphasis').style = dataZoomModel.getModel(['emphasis', 'handleStyle']).getItemStyle();\n enableHoverEmphasis(path);\n var handleColor = dataZoomModel.get('handleColor'); // deprecated option\n // Compatitable with previous version\n\n if (handleColor != null) {\n path.style.fill = handleColor;\n }\n\n sliderGroup.add(handles[handleIndex] = path);\n var textStyleModel = dataZoomModel.getModel('textStyle');\n thisGroup.add(handleLabels[handleIndex] = new graphic.Text({\n silent: true,\n invisible: true,\n style: createTextStyle(textStyleModel, {\n x: 0,\n y: 0,\n text: '',\n verticalAlign: 'middle',\n align: 'center',\n fill: textStyleModel.getTextColor(),\n font: textStyleModel.getFont()\n }),\n z2: 10\n }));\n }, this); // Handle to move. Only visible when brushSelect is set true.\n\n var actualMoveZone = filler;\n\n if (brushSelect) {\n var moveHandleHeight = parsePercent(dataZoomModel.get('moveHandleSize'), size[1]);\n var moveHandle_1 = displayables.moveHandle = new graphic.Rect({\n style: dataZoomModel.getModel('moveHandleStyle').getItemStyle(),\n silent: true,\n shape: {\n r: [0, 0, 2, 2],\n y: size[1] - 0.5,\n height: moveHandleHeight\n }\n });\n var iconSize = moveHandleHeight * 0.8;\n var moveHandleIcon = displayables.moveHandleIcon = createSymbol(dataZoomModel.get('moveHandleIcon'), -iconSize / 2, -iconSize / 2, iconSize, iconSize, '#fff', true);\n moveHandleIcon.silent = true;\n moveHandleIcon.y = size[1] + moveHandleHeight / 2 - 0.5;\n moveHandle_1.ensureState('emphasis').style = dataZoomModel.getModel(['emphasis', 'moveHandleStyle']).getItemStyle();\n var moveZoneExpandSize = Math.min(size[1] / 2, Math.max(moveHandleHeight, 10));\n actualMoveZone = displayables.moveZone = new graphic.Rect({\n invisible: true,\n shape: {\n y: size[1] - moveZoneExpandSize,\n height: moveHandleHeight + moveZoneExpandSize\n }\n });\n actualMoveZone.on('mouseover', function () {\n api.enterEmphasis(moveHandle_1);\n }).on('mouseout', function () {\n api.leaveEmphasis(moveHandle_1);\n });\n sliderGroup.add(moveHandle_1);\n sliderGroup.add(moveHandleIcon);\n sliderGroup.add(actualMoveZone);\n }\n\n actualMoveZone.attr({\n draggable: true,\n cursor: getCursor(this._orient),\n drift: bind(this._onDragMove, this, 'all'),\n ondragstart: bind(this._showDataInfo, this, true),\n ondragend: bind(this._onDragEnd, this),\n onmouseover: bind(this._showDataInfo, this, true),\n onmouseout: bind(this._showDataInfo, this, false)\n });\n };\n\n SliderZoomView.prototype._resetInterval = function () {\n var range = this._range = this.dataZoomModel.getPercentRange();\n\n var viewExtent = this._getViewExtent();\n\n this._handleEnds = [linearMap(range[0], [0, 100], viewExtent, true), linearMap(range[1], [0, 100], viewExtent, true)];\n };\n\n SliderZoomView.prototype._updateInterval = function (handleIndex, delta) {\n var dataZoomModel = this.dataZoomModel;\n var handleEnds = this._handleEnds;\n\n var viewExtend = this._getViewExtent();\n\n var minMaxSpan = dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();\n var percentExtent = [0, 100];\n sliderMove(delta, handleEnds, viewExtend, dataZoomModel.get('zoomLock') ? 'all' : handleIndex, minMaxSpan.minSpan != null ? linearMap(minMaxSpan.minSpan, percentExtent, viewExtend, true) : null, minMaxSpan.maxSpan != null ? linearMap(minMaxSpan.maxSpan, percentExtent, viewExtend, true) : null);\n var lastRange = this._range;\n var range = this._range = asc([linearMap(handleEnds[0], viewExtend, percentExtent, true), linearMap(handleEnds[1], viewExtend, percentExtent, true)]);\n return !lastRange || lastRange[0] !== range[0] || lastRange[1] !== range[1];\n };\n\n SliderZoomView.prototype._updateView = function (nonRealtime) {\n var displaybles = this._displayables;\n var handleEnds = this._handleEnds;\n var handleInterval = asc(handleEnds.slice());\n var size = this._size;\n each([0, 1], function (handleIndex) {\n // Handles\n var handle = displaybles.handles[handleIndex];\n var handleHeight = this._handleHeight;\n handle.attr({\n scaleX: handleHeight / 2,\n scaleY: handleHeight / 2,\n // This is a trick, by adding an extra tiny offset to let the default handle's end point align to the drag window.\n // NOTE: It may affect some custom shapes a bit. But we prefer to have better result by default.\n x: handleEnds[handleIndex] + (handleIndex ? -1 : 1),\n y: size[1] / 2 - handleHeight / 2\n });\n }, this); // Filler\n\n displaybles.filler.setShape({\n x: handleInterval[0],\n y: 0,\n width: handleInterval[1] - handleInterval[0],\n height: size[1]\n });\n var viewExtent = {\n x: handleInterval[0],\n width: handleInterval[1] - handleInterval[0]\n }; // Move handle\n\n if (displaybles.moveHandle) {\n displaybles.moveHandle.setShape(viewExtent);\n displaybles.moveZone.setShape(viewExtent); // Force update path on the invisible object\n\n displaybles.moveZone.getBoundingRect();\n displaybles.moveHandleIcon && displaybles.moveHandleIcon.attr('x', viewExtent.x + viewExtent.width / 2);\n } // update clip path of shadow.\n\n\n var dataShadowSegs = displaybles.dataShadowSegs;\n var segIntervals = [0, handleInterval[0], handleInterval[1], size[0]];\n\n for (var i = 0; i < dataShadowSegs.length; i++) {\n var segGroup = dataShadowSegs[i];\n var clipPath = segGroup.getClipPath();\n\n if (!clipPath) {\n clipPath = new graphic.Rect();\n segGroup.setClipPath(clipPath);\n }\n\n clipPath.setShape({\n x: segIntervals[i],\n y: 0,\n width: segIntervals[i + 1] - segIntervals[i],\n height: size[1]\n });\n }\n\n this._updateDataInfo(nonRealtime);\n };\n\n SliderZoomView.prototype._updateDataInfo = function (nonRealtime) {\n var dataZoomModel = this.dataZoomModel;\n var displaybles = this._displayables;\n var handleLabels = displaybles.handleLabels;\n var orient = this._orient;\n var labelTexts = ['', '']; // FIXME\n // date型,支持formatter,autoformatter(ec2 date.getAutoFormatter)\n\n if (dataZoomModel.get('showDetail')) {\n var axisProxy = dataZoomModel.findRepresentativeAxisProxy();\n\n if (axisProxy) {\n var axis = axisProxy.getAxisModel().axis;\n var range = this._range;\n var dataInterval = nonRealtime // See #4434, data and axis are not processed and reset yet in non-realtime mode.\n ? axisProxy.calculateDataWindow({\n start: range[0],\n end: range[1]\n }).valueWindow : axisProxy.getDataValueWindow();\n labelTexts = [this._formatLabel(dataInterval[0], axis), this._formatLabel(dataInterval[1], axis)];\n }\n }\n\n var orderedHandleEnds = asc(this._handleEnds.slice());\n setLabel.call(this, 0);\n setLabel.call(this, 1);\n\n function setLabel(handleIndex) {\n // Label\n // Text should not transform by barGroup.\n // Ignore handlers transform\n var barTransform = graphic.getTransform(displaybles.handles[handleIndex].parent, this.group);\n var direction = graphic.transformDirection(handleIndex === 0 ? 'right' : 'left', barTransform);\n var offset = this._handleWidth / 2 + LABEL_GAP;\n var textPoint = graphic.applyTransform([orderedHandleEnds[handleIndex] + (handleIndex === 0 ? -offset : offset), this._size[1] / 2], barTransform);\n handleLabels[handleIndex].setStyle({\n x: textPoint[0],\n y: textPoint[1],\n verticalAlign: orient === HORIZONTAL ? 'middle' : direction,\n align: orient === HORIZONTAL ? direction : 'center',\n text: labelTexts[handleIndex]\n });\n }\n };\n\n SliderZoomView.prototype._formatLabel = function (value, axis) {\n var dataZoomModel = this.dataZoomModel;\n var labelFormatter = dataZoomModel.get('labelFormatter');\n var labelPrecision = dataZoomModel.get('labelPrecision');\n\n if (labelPrecision == null || labelPrecision === 'auto') {\n labelPrecision = axis.getPixelPrecision();\n }\n\n var valueStr = value == null || isNaN(value) ? '' // FIXME Glue code\n : axis.type === 'category' || axis.type === 'time' ? axis.scale.getLabel({\n value: Math.round(value)\n }) // param of toFixed should less then 20.\n : value.toFixed(Math.min(labelPrecision, 20));\n return isFunction(labelFormatter) ? labelFormatter(value, valueStr) : isString(labelFormatter) ? labelFormatter.replace('{value}', valueStr) : valueStr;\n };\n /**\n * @param showOrHide true: show, false: hide\n */\n\n\n SliderZoomView.prototype._showDataInfo = function (showOrHide) {\n // Always show when drgging.\n showOrHide = this._dragging || showOrHide;\n var displayables = this._displayables;\n var handleLabels = displayables.handleLabels;\n handleLabels[0].attr('invisible', !showOrHide);\n handleLabels[1].attr('invisible', !showOrHide); // Highlight move handle\n\n displayables.moveHandle && this.api[showOrHide ? 'enterEmphasis' : 'leaveEmphasis'](displayables.moveHandle, 1);\n };\n\n SliderZoomView.prototype._onDragMove = function (handleIndex, dx, dy, event) {\n this._dragging = true; // For mobile device, prevent screen slider on the button.\n\n eventTool.stop(event.event); // Transform dx, dy to bar coordination.\n\n var barTransform = this._displayables.sliderGroup.getLocalTransform();\n\n var vertex = graphic.applyTransform([dx, dy], barTransform, true);\n\n var changed = this._updateInterval(handleIndex, vertex[0]);\n\n var realtime = this.dataZoomModel.get('realtime');\n\n this._updateView(!realtime); // Avoid dispatch dataZoom repeatly but range not changed,\n // which cause bad visual effect when progressive enabled.\n\n\n changed && realtime && this._dispatchZoomAction(true);\n };\n\n SliderZoomView.prototype._onDragEnd = function () {\n this._dragging = false;\n\n this._showDataInfo(false); // While in realtime mode and stream mode, dispatch action when\n // drag end will cause the whole view rerender, which is unnecessary.\n\n\n var realtime = this.dataZoomModel.get('realtime');\n !realtime && this._dispatchZoomAction(false);\n };\n\n SliderZoomView.prototype._onClickPanel = function (e) {\n var size = this._size;\n\n var localPoint = this._displayables.sliderGroup.transformCoordToLocal(e.offsetX, e.offsetY);\n\n if (localPoint[0] < 0 || localPoint[0] > size[0] || localPoint[1] < 0 || localPoint[1] > size[1]) {\n return;\n }\n\n var handleEnds = this._handleEnds;\n var center = (handleEnds[0] + handleEnds[1]) / 2;\n\n var changed = this._updateInterval('all', localPoint[0] - center);\n\n this._updateView();\n\n changed && this._dispatchZoomAction(false);\n };\n\n SliderZoomView.prototype._onBrushStart = function (e) {\n var x = e.offsetX;\n var y = e.offsetY;\n this._brushStart = new graphic.Point(x, y);\n this._brushing = true;\n this._brushStartTime = +new Date(); // this._updateBrushRect(x, y);\n };\n\n SliderZoomView.prototype._onBrushEnd = function (e) {\n if (!this._brushing) {\n return;\n }\n\n var brushRect = this._displayables.brushRect;\n this._brushing = false;\n\n if (!brushRect) {\n return;\n }\n\n brushRect.attr('ignore', true);\n var brushShape = brushRect.shape;\n var brushEndTime = +new Date(); // console.log(brushEndTime - this._brushStartTime);\n\n if (brushEndTime - this._brushStartTime < 200 && Math.abs(brushShape.width) < 5) {\n // Will treat it as a click\n return;\n }\n\n var viewExtend = this._getViewExtent();\n\n var percentExtent = [0, 100];\n this._range = asc([linearMap(brushShape.x, viewExtend, percentExtent, true), linearMap(brushShape.x + brushShape.width, viewExtend, percentExtent, true)]);\n this._handleEnds = [brushShape.x, brushShape.x + brushShape.width];\n\n this._updateView();\n\n this._dispatchZoomAction(false);\n };\n\n SliderZoomView.prototype._onBrush = function (e) {\n if (this._brushing) {\n // For mobile device, prevent screen slider on the button.\n eventTool.stop(e.event);\n\n this._updateBrushRect(e.offsetX, e.offsetY);\n }\n };\n\n SliderZoomView.prototype._updateBrushRect = function (mouseX, mouseY) {\n var displayables = this._displayables;\n var dataZoomModel = this.dataZoomModel;\n var brushRect = displayables.brushRect;\n\n if (!brushRect) {\n brushRect = displayables.brushRect = new Rect({\n silent: true,\n style: dataZoomModel.getModel('brushStyle').getItemStyle()\n });\n displayables.sliderGroup.add(brushRect);\n }\n\n brushRect.attr('ignore', false);\n var brushStart = this._brushStart;\n var sliderGroup = this._displayables.sliderGroup;\n var endPoint = sliderGroup.transformCoordToLocal(mouseX, mouseY);\n var startPoint = sliderGroup.transformCoordToLocal(brushStart.x, brushStart.y);\n var size = this._size;\n endPoint[0] = Math.max(Math.min(size[0], endPoint[0]), 0);\n brushRect.setShape({\n x: startPoint[0],\n y: 0,\n width: endPoint[0] - startPoint[0],\n height: size[1]\n });\n };\n /**\n * This action will be throttled.\n */\n\n\n SliderZoomView.prototype._dispatchZoomAction = function (realtime) {\n var range = this._range;\n this.api.dispatchAction({\n type: 'dataZoom',\n from: this.uid,\n dataZoomId: this.dataZoomModel.id,\n animation: realtime ? REALTIME_ANIMATION_CONFIG : null,\n start: range[0],\n end: range[1]\n });\n };\n\n SliderZoomView.prototype._findCoordRect = function () {\n // Find the grid corresponding to the first axis referred by dataZoom.\n var rect;\n var coordSysInfoList = collectReferCoordSysModelInfo(this.dataZoomModel).infoList;\n\n if (!rect && coordSysInfoList.length) {\n var coordSys = coordSysInfoList[0].model.coordinateSystem;\n rect = coordSys.getRect && coordSys.getRect();\n }\n\n if (!rect) {\n var width = this.api.getWidth();\n var height = this.api.getHeight();\n rect = {\n x: width * 0.2,\n y: height * 0.2,\n width: width * 0.6,\n height: height * 0.6\n };\n }\n\n return rect;\n };\n\n SliderZoomView.type = 'dataZoom.slider';\n return SliderZoomView;\n}(DataZoomView);\n\nfunction getOtherDim(thisDim) {\n // FIXME\n // 这个逻辑和getOtherAxis里一致,但是写在这里是否不好\n var map = {\n x: 'y',\n y: 'x',\n radius: 'angle',\n angle: 'radius'\n };\n return map[thisDim];\n}\n\nfunction getCursor(orient) {\n return orient === 'vertical' ? 'ns-resize' : 'ew-resize';\n}\n\nexport default SliderZoomView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { findEffectedDataZooms } from './helper.js';\nimport { each } from 'zrender/lib/core/util.js';\nexport default function installDataZoomAction(registers) {\n registers.registerAction('dataZoom', function (payload, ecModel) {\n var effectedModels = findEffectedDataZooms(ecModel, payload);\n each(effectedModels, function (dataZoomModel) {\n dataZoomModel.setRawRange({\n start: payload.start,\n end: payload.end,\n startValue: payload.startValue,\n endValue: payload.endValue\n });\n });\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { createHashMap, each } from 'zrender/lib/core/util.js';\nimport { getAxisMainType } from './helper.js';\nimport AxisProxy from './AxisProxy.js';\nvar dataZoomProcessor = {\n // `dataZoomProcessor` will only be performed in needed series. Consider if\n // there is a line series and a pie series, it is better not to update the\n // line series if only pie series is needed to be updated.\n getTargetSeries: function (ecModel) {\n function eachAxisModel(cb) {\n ecModel.eachComponent('dataZoom', function (dataZoomModel) {\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n var axisModel = ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\n cb(axisDim, axisIndex, axisModel, dataZoomModel);\n });\n });\n } // FIXME: it brings side-effect to `getTargetSeries`.\n // Prepare axis proxies.\n\n\n eachAxisModel(function (axisDim, axisIndex, axisModel, dataZoomModel) {\n // dispose all last axis proxy, in case that some axis are deleted.\n axisModel.__dzAxisProxy = null;\n });\n var proxyList = [];\n eachAxisModel(function (axisDim, axisIndex, axisModel, dataZoomModel) {\n // Different dataZooms may constrol the same axis. In that case,\n // an axisProxy serves both of them.\n if (!axisModel.__dzAxisProxy) {\n // Use the first dataZoomModel as the main model of axisProxy.\n axisModel.__dzAxisProxy = new AxisProxy(axisDim, axisIndex, dataZoomModel, ecModel);\n proxyList.push(axisModel.__dzAxisProxy);\n }\n });\n var seriesModelMap = createHashMap();\n each(proxyList, function (axisProxy) {\n each(axisProxy.getTargetSeriesModels(), function (seriesModel) {\n seriesModelMap.set(seriesModel.uid, seriesModel);\n });\n });\n return seriesModelMap;\n },\n // Consider appendData, where filter should be performed. Because data process is\n // in block mode currently, it is not need to worry about that the overallProgress\n // execute every frame.\n overallReset: function (ecModel, api) {\n ecModel.eachComponent('dataZoom', function (dataZoomModel) {\n // We calculate window and reset axis here but not in model\n // init stage and not after action dispatch handler, because\n // reset should be called after seriesData.restoreData.\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n dataZoomModel.getAxisProxy(axisDim, axisIndex).reset(dataZoomModel);\n }); // Caution: data zoom filtering is order sensitive when using\n // percent range and no min/max/scale set on axis.\n // For example, we have dataZoom definition:\n // [\n // {xAxisIndex: 0, start: 30, end: 70},\n // {yAxisIndex: 0, start: 20, end: 80}\n // ]\n // In this case, [20, 80] of y-dataZoom should be based on data\n // that have filtered by x-dataZoom using range of [30, 70],\n // but should not be based on full raw data. Thus sliding\n // x-dataZoom will change both ranges of xAxis and yAxis,\n // while sliding y-dataZoom will only change the range of yAxis.\n // So we should filter x-axis after reset x-axis immediately,\n // and then reset y-axis and filter y-axis.\n\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n dataZoomModel.getAxisProxy(axisDim, axisIndex).filterData(dataZoomModel, api);\n });\n });\n ecModel.eachComponent('dataZoom', function (dataZoomModel) {\n // Fullfill all of the range props so that user\n // is able to get them from chart.getOption().\n var axisProxy = dataZoomModel.findRepresentativeAxisProxy();\n\n if (axisProxy) {\n var percentRange = axisProxy.getDataPercentWindow();\n var valueRange = axisProxy.getDataValueWindow();\n dataZoomModel.setCalculatedRange({\n start: percentRange[0],\n end: percentRange[1],\n startValue: valueRange[0],\n endValue: valueRange[1]\n });\n }\n });\n }\n};\nexport default dataZoomProcessor;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { indexOf, createHashMap, assert } from 'zrender/lib/core/util.js';\nexport var DATA_ZOOM_AXIS_DIMENSIONS = ['x', 'y', 'radius', 'angle', 'single']; // Supported coords.\n// FIXME: polar has been broken (but rarely used).\n\nvar SERIES_COORDS = ['cartesian2d', 'polar', 'singleAxis'];\nexport function isCoordSupported(seriesModel) {\n var coordType = seriesModel.get('coordinateSystem');\n return indexOf(SERIES_COORDS, coordType) >= 0;\n}\nexport function getAxisMainType(axisDim) {\n if (process.env.NODE_ENV !== 'production') {\n assert(axisDim);\n }\n\n return axisDim + 'Axis';\n}\nexport function getAxisIndexPropName(axisDim) {\n if (process.env.NODE_ENV !== 'production') {\n assert(axisDim);\n }\n\n return axisDim + 'AxisIndex';\n}\nexport function getAxisIdPropName(axisDim) {\n if (process.env.NODE_ENV !== 'production') {\n assert(axisDim);\n }\n\n return axisDim + 'AxisId';\n}\n/**\n * If two dataZoomModels has the same axis controlled, we say that they are 'linked'.\n * This function finds all linked dataZoomModels start from the given payload.\n */\n\nexport function findEffectedDataZooms(ecModel, payload) {\n // Key: `DataZoomAxisDimension`\n var axisRecords = createHashMap();\n var effectedModels = []; // Key: uid of dataZoomModel\n\n var effectedModelMap = createHashMap(); // Find the dataZooms specified by payload.\n\n ecModel.eachComponent({\n mainType: 'dataZoom',\n query: payload\n }, function (dataZoomModel) {\n if (!effectedModelMap.get(dataZoomModel.uid)) {\n addToEffected(dataZoomModel);\n }\n }); // Start from the given dataZoomModels, travel the graph to find\n // all of the linked dataZoom models.\n\n var foundNewLink;\n\n do {\n foundNewLink = false;\n ecModel.eachComponent('dataZoom', processSingle);\n } while (foundNewLink);\n\n function processSingle(dataZoomModel) {\n if (!effectedModelMap.get(dataZoomModel.uid) && isLinked(dataZoomModel)) {\n addToEffected(dataZoomModel);\n foundNewLink = true;\n }\n }\n\n function addToEffected(dataZoom) {\n effectedModelMap.set(dataZoom.uid, true);\n effectedModels.push(dataZoom);\n markAxisControlled(dataZoom);\n }\n\n function isLinked(dataZoomModel) {\n var isLink = false;\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n var axisIdxArr = axisRecords.get(axisDim);\n\n if (axisIdxArr && axisIdxArr[axisIndex]) {\n isLink = true;\n }\n });\n return isLink;\n }\n\n function markAxisControlled(dataZoomModel) {\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n (axisRecords.get(axisDim) || axisRecords.set(axisDim, []))[axisIndex] = true;\n });\n }\n\n return effectedModels;\n}\n/**\n * Find the first target coordinate system.\n * Available after model built.\n *\n * @return Like {\n * grid: [\n * {model: coord0, axisModels: [axis1, axis3], coordIndex: 1},\n * {model: coord1, axisModels: [axis0, axis2], coordIndex: 0},\n * ...\n * ], // cartesians must not be null/undefined.\n * polar: [\n * {model: coord0, axisModels: [axis4], coordIndex: 0},\n * ...\n * ], // polars must not be null/undefined.\n * singleAxis: [\n * {model: coord0, axisModels: [], coordIndex: 0}\n * ]\n * }\n */\n\nexport function collectReferCoordSysModelInfo(dataZoomModel) {\n var ecModel = dataZoomModel.ecModel;\n var coordSysInfoWrap = {\n infoList: [],\n infoMap: createHashMap()\n };\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n var axisModel = ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\n\n if (!axisModel) {\n return;\n }\n\n var coordSysModel = axisModel.getCoordSysModel();\n\n if (!coordSysModel) {\n return;\n }\n\n var coordSysUid = coordSysModel.uid;\n var coordSysInfo = coordSysInfoWrap.infoMap.get(coordSysUid);\n\n if (!coordSysInfo) {\n coordSysInfo = {\n model: coordSysModel,\n axisModels: []\n };\n coordSysInfoWrap.infoList.push(coordSysInfo);\n coordSysInfoWrap.infoMap.set(coordSysUid, coordSysInfo);\n }\n\n coordSysInfo.axisModels.push(axisModel);\n });\n return coordSysInfoWrap;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { makeInner } from '../../util/model.js';\nvar each = zrUtil.each;\nvar inner = makeInner();\n/**\n * @param ecModel\n * @param newSnapshot key is dataZoomId\n */\n\nexport function push(ecModel, newSnapshot) {\n var storedSnapshots = getStoreSnapshots(ecModel); // If previous dataZoom can not be found,\n // complete an range with current range.\n\n each(newSnapshot, function (batchItem, dataZoomId) {\n var i = storedSnapshots.length - 1;\n\n for (; i >= 0; i--) {\n var snapshot = storedSnapshots[i];\n\n if (snapshot[dataZoomId]) {\n break;\n }\n }\n\n if (i < 0) {\n // No origin range set, create one by current range.\n var dataZoomModel = ecModel.queryComponents({\n mainType: 'dataZoom',\n subType: 'select',\n id: dataZoomId\n })[0];\n\n if (dataZoomModel) {\n var percentRange = dataZoomModel.getPercentRange();\n storedSnapshots[0][dataZoomId] = {\n dataZoomId: dataZoomId,\n start: percentRange[0],\n end: percentRange[1]\n };\n }\n }\n });\n storedSnapshots.push(newSnapshot);\n}\nexport function pop(ecModel) {\n var storedSnapshots = getStoreSnapshots(ecModel);\n var head = storedSnapshots[storedSnapshots.length - 1];\n storedSnapshots.length > 1 && storedSnapshots.pop(); // Find top for all dataZoom.\n\n var snapshot = {};\n each(head, function (batchItem, dataZoomId) {\n for (var i = storedSnapshots.length - 1; i >= 0; i--) {\n batchItem = storedSnapshots[i][dataZoomId];\n\n if (batchItem) {\n snapshot[dataZoomId] = batchItem;\n break;\n }\n }\n });\n return snapshot;\n}\nexport function clear(ecModel) {\n inner(ecModel).snapshots = null;\n}\nexport function count(ecModel) {\n return getStoreSnapshots(ecModel).length;\n}\n/**\n * History length of each dataZoom may be different.\n * this._history[0] is used to store origin range.\n */\n\nfunction getStoreSnapshots(ecModel) {\n var store = inner(ecModel);\n\n if (!store.snapshots) {\n store.snapshots = [{}];\n }\n\n return store.snapshots;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { use } from '../../extension.js';\nimport { install as installDataZoomInside } from './installDataZoomInside.js';\nimport { install as installDataZoomSlider } from './installDataZoomSlider.js';\nexport function install(registers) {\n use(installDataZoomInside);\n use(installDataZoomSlider); // Do not install './dataZoomSelect',\n // since it only work for toolbox dataZoom.\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport dataZoomProcessor from './dataZoomProcessor.js';\nimport installDataZoomAction from './dataZoomAction.js';\nvar installed = false;\nexport default function installCommon(registers) {\n if (installed) {\n return;\n }\n\n installed = true;\n registers.registerProcessor(registers.PRIORITY.PROCESSOR.FILTER, dataZoomProcessor);\n installDataZoomAction(registers);\n registers.registerSubTypeDefaulter('dataZoom', function () {\n // Default 'slider' when no type specified.\n return 'slider';\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport InsideZoomModel from './InsideZoomModel.js';\nimport InsideZoomView from './InsideZoomView.js';\nimport { installDataZoomRoamProcessor } from './roams.js';\nimport installCommon from './installCommon.js';\nexport function install(registers) {\n installCommon(registers);\n registers.registerComponentModel(InsideZoomModel);\n registers.registerComponentView(InsideZoomView);\n installDataZoomRoamProcessor(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport SelectZoomModel from './SelectZoomModel.js';\nimport SelectZoomView from './SelectZoomView.js';\nimport installCommon from './installCommon.js';\nexport function install(registers) {\n registers.registerComponentModel(SelectZoomModel);\n registers.registerComponentView(SelectZoomView);\n installCommon(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport SliderZoomModel from './SliderZoomModel.js';\nimport SliderZoomView from './SliderZoomView.js';\nimport installCommon from './installCommon.js';\nexport function install(registers) {\n registers.registerComponentModel(SliderZoomModel);\n registers.registerComponentView(SliderZoomView);\n installCommon(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Only create one roam controller for each coordinate system.\n// one roam controller might be refered by two inside data zoom\n// components (for example, one for x and one for y). When user\n// pan or zoom, only dispatch one action for those data zoom\n// components.\nimport RoamController from '../../component/helper/RoamController.js';\nimport * as throttleUtil from '../../util/throttle.js';\nimport { makeInner } from '../../util/model.js';\nimport { each, curry, createHashMap } from 'zrender/lib/core/util.js';\nimport { collectReferCoordSysModelInfo } from './helper.js';\nvar inner = makeInner();\nexport function setViewInfoToCoordSysRecord(api, dataZoomModel, getRange) {\n inner(api).coordSysRecordMap.each(function (coordSysRecord) {\n var dzInfo = coordSysRecord.dataZoomInfoMap.get(dataZoomModel.uid);\n\n if (dzInfo) {\n dzInfo.getRange = getRange;\n }\n });\n}\nexport function disposeCoordSysRecordIfNeeded(api, dataZoomModel) {\n var coordSysRecordMap = inner(api).coordSysRecordMap;\n var coordSysKeyArr = coordSysRecordMap.keys();\n\n for (var i = 0; i < coordSysKeyArr.length; i++) {\n var coordSysKey = coordSysKeyArr[i];\n var coordSysRecord = coordSysRecordMap.get(coordSysKey);\n var dataZoomInfoMap = coordSysRecord.dataZoomInfoMap;\n\n if (dataZoomInfoMap) {\n var dzUid = dataZoomModel.uid;\n var dzInfo = dataZoomInfoMap.get(dzUid);\n\n if (dzInfo) {\n dataZoomInfoMap.removeKey(dzUid);\n\n if (!dataZoomInfoMap.keys().length) {\n disposeCoordSysRecord(coordSysRecordMap, coordSysRecord);\n }\n }\n }\n }\n}\n\nfunction disposeCoordSysRecord(coordSysRecordMap, coordSysRecord) {\n if (coordSysRecord) {\n coordSysRecordMap.removeKey(coordSysRecord.model.uid);\n var controller = coordSysRecord.controller;\n controller && controller.dispose();\n }\n}\n\nfunction createCoordSysRecord(api, coordSysModel) {\n // These init props will never change after record created.\n var coordSysRecord = {\n model: coordSysModel,\n containsPoint: curry(containsPoint, coordSysModel),\n dispatchAction: curry(dispatchAction, api),\n dataZoomInfoMap: null,\n controller: null\n }; // Must not do anything depends on coordSysRecord outside the event handler here,\n // because coordSysRecord not completed yet.\n\n var controller = coordSysRecord.controller = new RoamController(api.getZr());\n each(['pan', 'zoom', 'scrollMove'], function (eventName) {\n controller.on(eventName, function (event) {\n var batch = [];\n coordSysRecord.dataZoomInfoMap.each(function (dzInfo) {\n // Check whether the behaviors (zoomOnMouseWheel, moveOnMouseMove,\n // moveOnMouseWheel, ...) enabled.\n if (!event.isAvailableBehavior(dzInfo.model.option)) {\n return;\n }\n\n var method = (dzInfo.getRange || {})[eventName];\n var range = method && method(dzInfo.dzReferCoordSysInfo, coordSysRecord.model.mainType, coordSysRecord.controller, event);\n !dzInfo.model.get('disabled', true) && range && batch.push({\n dataZoomId: dzInfo.model.id,\n start: range[0],\n end: range[1]\n });\n });\n batch.length && coordSysRecord.dispatchAction(batch);\n });\n });\n return coordSysRecord;\n}\n/**\n * This action will be throttled.\n */\n\n\nfunction dispatchAction(api, batch) {\n if (!api.isDisposed()) {\n api.dispatchAction({\n type: 'dataZoom',\n animation: {\n easing: 'cubicOut',\n duration: 100\n },\n batch: batch\n });\n }\n}\n\nfunction containsPoint(coordSysModel, e, x, y) {\n return coordSysModel.coordinateSystem.containPoint([x, y]);\n}\n/**\n * Merge roamController settings when multiple dataZooms share one roamController.\n */\n\n\nfunction mergeControllerParams(dataZoomInfoMap) {\n var controlType; // DO NOT use reserved word (true, false, undefined) as key literally. Even if encapsulated\n // as string, it is probably revert to reserved word by compress tool. See #7411.\n\n var prefix = 'type_';\n var typePriority = {\n 'type_true': 2,\n 'type_move': 1,\n 'type_false': 0,\n 'type_undefined': -1\n };\n var preventDefaultMouseMove = true;\n dataZoomInfoMap.each(function (dataZoomInfo) {\n var dataZoomModel = dataZoomInfo.model;\n var oneType = dataZoomModel.get('disabled', true) ? false : dataZoomModel.get('zoomLock', true) ? 'move' : true;\n\n if (typePriority[prefix + oneType] > typePriority[prefix + controlType]) {\n controlType = oneType;\n } // Prevent default move event by default. If one false, do not prevent. Otherwise\n // users may be confused why it does not work when multiple insideZooms exist.\n\n\n preventDefaultMouseMove = preventDefaultMouseMove && dataZoomModel.get('preventDefaultMouseMove', true);\n });\n return {\n controlType: controlType,\n opt: {\n // RoamController will enable all of these functionalities,\n // and the final behavior is determined by its event listener\n // provided by each inside zoom.\n zoomOnMouseWheel: true,\n moveOnMouseMove: true,\n moveOnMouseWheel: true,\n preventDefaultMouseMove: !!preventDefaultMouseMove\n }\n };\n}\n\nexport function installDataZoomRoamProcessor(registers) {\n registers.registerProcessor(registers.PRIORITY.PROCESSOR.FILTER, function (ecModel, api) {\n var apiInner = inner(api);\n var coordSysRecordMap = apiInner.coordSysRecordMap || (apiInner.coordSysRecordMap = createHashMap());\n coordSysRecordMap.each(function (coordSysRecord) {\n // `coordSysRecordMap` always exists (because it holds the `roam controller`, which should\n // better not re-create each time), but clear `dataZoomInfoMap` each round of the workflow.\n coordSysRecord.dataZoomInfoMap = null;\n });\n ecModel.eachComponent({\n mainType: 'dataZoom',\n subType: 'inside'\n }, function (dataZoomModel) {\n var dzReferCoordSysWrap = collectReferCoordSysModelInfo(dataZoomModel);\n each(dzReferCoordSysWrap.infoList, function (dzCoordSysInfo) {\n var coordSysUid = dzCoordSysInfo.model.uid;\n var coordSysRecord = coordSysRecordMap.get(coordSysUid) || coordSysRecordMap.set(coordSysUid, createCoordSysRecord(api, dzCoordSysInfo.model));\n var dataZoomInfoMap = coordSysRecord.dataZoomInfoMap || (coordSysRecord.dataZoomInfoMap = createHashMap()); // Notice these props might be changed each time for a single dataZoomModel.\n\n dataZoomInfoMap.set(dataZoomModel.uid, {\n dzReferCoordSysInfo: dzCoordSysInfo,\n model: dataZoomModel,\n getRange: null\n });\n });\n }); // (1) Merge dataZoom settings for each coord sys and set to the roam controller.\n // (2) Clear coord sys if not refered by any dataZoom.\n\n coordSysRecordMap.each(function (coordSysRecord) {\n var controller = coordSysRecord.controller;\n var firstDzInfo;\n var dataZoomInfoMap = coordSysRecord.dataZoomInfoMap;\n\n if (dataZoomInfoMap) {\n var firstDzKey = dataZoomInfoMap.keys()[0];\n\n if (firstDzKey != null) {\n firstDzInfo = dataZoomInfoMap.get(firstDzKey);\n }\n }\n\n if (!firstDzInfo) {\n disposeCoordSysRecord(coordSysRecordMap, coordSysRecord);\n return;\n }\n\n var controllerParams = mergeControllerParams(dataZoomInfoMap);\n controller.enable(controllerParams.controlType, controllerParams.opt);\n controller.setPointerChecker(coordSysRecord.containsPoint);\n throttleUtil.createOrUpdate(coordSysRecord, 'dispatchAction', firstDzInfo.model.get('throttle', true), 'fixRate');\n });\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\n/**\n * This module is imported by echarts directly.\n *\n * Notice:\n * Always keep this file exists for backward compatibility.\n * Because before 4.1.0, dataset is an optional component,\n * some users may import this module manually.\n */\n\nimport ComponentModel from '../../model/Component.js';\nimport ComponentView from '../../view/Component.js';\nimport { SERIES_LAYOUT_BY_COLUMN } from '../../util/types.js';\nimport { disableTransformOptionMerge, SourceManager } from '../../data/helper/sourceManager.js';\n\nvar DatasetModel =\n/** @class */\nfunction (_super) {\n __extends(DatasetModel, _super);\n\n function DatasetModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = 'dataset';\n return _this;\n }\n\n DatasetModel.prototype.init = function (option, parentModel, ecModel) {\n _super.prototype.init.call(this, option, parentModel, ecModel);\n\n this._sourceManager = new SourceManager(this);\n disableTransformOptionMerge(this);\n };\n\n DatasetModel.prototype.mergeOption = function (newOption, ecModel) {\n _super.prototype.mergeOption.call(this, newOption, ecModel);\n\n disableTransformOptionMerge(this);\n };\n\n DatasetModel.prototype.optionUpdated = function () {\n this._sourceManager.dirty();\n };\n\n DatasetModel.prototype.getSourceManager = function () {\n return this._sourceManager;\n };\n\n DatasetModel.type = 'dataset';\n DatasetModel.defaultOption = {\n seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN\n };\n return DatasetModel;\n}(ComponentModel);\n\nexport { DatasetModel };\n\nvar DatasetView =\n/** @class */\nfunction (_super) {\n __extends(DatasetView, _super);\n\n function DatasetView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = 'dataset';\n return _this;\n }\n\n DatasetView.type = 'dataset';\n return DatasetView;\n}(ComponentView);\n\nexport function install(registers) {\n registers.registerComponentModel(DatasetModel);\n registers.registerComponentView(DatasetView);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport MapDraw from '../helper/MapDraw.js';\nimport ComponentView from '../../view/Component.js';\nimport { getECData } from '../../util/innerStore.js';\nimport { findEventDispatcher } from '../../util/event.js';\n\nvar GeoView =\n/** @class */\nfunction (_super) {\n __extends(GeoView, _super);\n\n function GeoView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = GeoView.type;\n _this.focusBlurEnabled = true;\n return _this;\n }\n\n GeoView.prototype.init = function (ecModel, api) {\n this._api = api;\n };\n\n GeoView.prototype.render = function (geoModel, ecModel, api, payload) {\n this._model = geoModel;\n\n if (!geoModel.get('show')) {\n this._mapDraw && this._mapDraw.remove();\n this._mapDraw = null;\n return;\n }\n\n if (!this._mapDraw) {\n this._mapDraw = new MapDraw(api);\n }\n\n var mapDraw = this._mapDraw;\n mapDraw.draw(geoModel, ecModel, api, this, payload);\n mapDraw.group.on('click', this._handleRegionClick, this);\n mapDraw.group.silent = geoModel.get('silent');\n this.group.add(mapDraw.group);\n this.updateSelectStatus(geoModel, ecModel, api);\n };\n\n GeoView.prototype._handleRegionClick = function (e) {\n var eventData;\n findEventDispatcher(e.target, function (current) {\n return (eventData = getECData(current).eventData) != null;\n }, true);\n\n if (eventData) {\n this._api.dispatchAction({\n type: 'geoToggleSelect',\n geoId: this._model.id,\n name: eventData.name\n });\n }\n };\n\n GeoView.prototype.updateSelectStatus = function (model, ecModel, api) {\n var _this = this;\n\n this._mapDraw.group.traverse(function (node) {\n var eventData = getECData(node).eventData;\n\n if (eventData) {\n _this._model.isSelected(eventData.name) ? api.enterSelect(node) : api.leaveSelect(node); // No need to traverse children.\n\n return true;\n }\n });\n };\n\n GeoView.prototype.findHighDownDispatchers = function (name) {\n return this._mapDraw && this._mapDraw.findHighDownDispatchers(name, this._model);\n };\n\n GeoView.prototype.dispose = function () {\n this._mapDraw && this._mapDraw.remove();\n };\n\n GeoView.type = 'geo';\n return GeoView;\n}(ComponentView);\n\nexport default GeoView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport GeoModel from '../../coord/geo/GeoModel.js';\nimport geoCreator from '../../coord/geo/geoCreator.js';\nimport { each } from 'zrender/lib/core/util.js';\nimport { updateCenterAndZoom } from '../../action/roamHelper.js';\nimport GeoView from './GeoView.js';\nimport geoSourceManager from '../../coord/geo/geoSourceManager.js';\n\nfunction registerMap(mapName, geoJson, specialAreas) {\n geoSourceManager.registerMap(mapName, geoJson, specialAreas);\n}\n\nexport function install(registers) {\n registers.registerCoordinateSystem('geo', geoCreator);\n registers.registerComponentModel(GeoModel);\n registers.registerComponentView(GeoView);\n registers.registerImpl('registerMap', registerMap);\n registers.registerImpl('getMap', function (mapName) {\n return geoSourceManager.getMapForUser(mapName);\n });\n\n function makeAction(method, actionInfo) {\n actionInfo.update = 'geo:updateSelectStatus';\n registers.registerAction(actionInfo, function (payload, ecModel) {\n var selected = {};\n var allSelected = [];\n ecModel.eachComponent({\n mainType: 'geo',\n query: payload\n }, function (geoModel) {\n geoModel[method](payload.name);\n var geo = geoModel.coordinateSystem;\n each(geo.regions, function (region) {\n selected[region.name] = geoModel.isSelected(region.name) || false;\n }); // Notice: there might be duplicated name in different regions.\n\n var names = [];\n each(selected, function (v, name) {\n selected[name] && names.push(name);\n });\n allSelected.push({\n geoIndex: geoModel.componentIndex,\n // Use singular, the same naming convention as the event `selectchanged`.\n name: names\n });\n });\n return {\n selected: selected,\n allSelected: allSelected,\n name: payload.name\n };\n });\n }\n\n makeAction('toggleSelected', {\n type: 'geoToggleSelect',\n event: 'geoselectchanged'\n });\n makeAction('select', {\n type: 'geoSelect',\n event: 'geoselected'\n });\n makeAction('unSelect', {\n type: 'geoUnSelect',\n event: 'geounselected'\n });\n /**\n * @payload\n * @property {string} [componentType=series]\n * @property {number} [dx]\n * @property {number} [dy]\n * @property {number} [zoom]\n * @property {number} [originX]\n * @property {number} [originY]\n */\n\n registers.registerAction({\n type: 'geoRoam',\n event: 'geoRoam',\n update: 'updateTransform'\n }, function (payload, ecModel, api) {\n var componentType = payload.componentType || 'series';\n ecModel.eachComponent({\n mainType: componentType,\n query: payload\n }, function (componentModel) {\n var geo = componentModel.coordinateSystem;\n\n if (geo.type !== 'geo') {\n return;\n }\n\n var res = updateCenterAndZoom(geo, payload, componentModel.get('scaleLimit'), api);\n componentModel.setCenter && componentModel.setCenter(res.center);\n componentModel.setZoom && componentModel.setZoom(res.zoom); // All map series with same `map` use the same geo coordinate system\n // So the center and zoom must be in sync. Include the series not selected by legend\n\n if (componentType === 'series') {\n each(componentModel.seriesGroup, function (seriesModel) {\n seriesModel.setCenter(res.center);\n seriesModel.setZoom(res.zoom);\n });\n }\n });\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as modelUtil from '../../util/model.js';\nimport ComponentModel from '../../model/Component.js';\nimport { copyLayoutParams, mergeLayoutParam } from '../../util/layout.js';\n;\n;\n;\nexport function setKeyInfoToNewElOption(resultItem, newElOption) {\n var existElOption = resultItem.existing; // Set id and type after id assigned.\n\n newElOption.id = resultItem.keyInfo.id;\n !newElOption.type && existElOption && (newElOption.type = existElOption.type); // Set parent id if not specified\n\n if (newElOption.parentId == null) {\n var newElParentOption = newElOption.parentOption;\n\n if (newElParentOption) {\n newElOption.parentId = newElParentOption.id;\n } else if (existElOption) {\n newElOption.parentId = existElOption.parentId;\n }\n } // Clear\n\n\n newElOption.parentOption = null;\n}\n\nfunction isSetLoc(obj, props) {\n var isSet;\n zrUtil.each(props, function (prop) {\n obj[prop] != null && obj[prop] !== 'auto' && (isSet = true);\n });\n return isSet;\n}\n\nfunction mergeNewElOptionToExist(existList, index, newElOption) {\n // Update existing options, for `getOption` feature.\n var newElOptCopy = zrUtil.extend({}, newElOption);\n var existElOption = existList[index];\n var $action = newElOption.$action || 'merge';\n\n if ($action === 'merge') {\n if (existElOption) {\n if (process.env.NODE_ENV !== 'production') {\n var newType = newElOption.type;\n zrUtil.assert(!newType || existElOption.type === newType, 'Please set $action: \"replace\" to change `type`');\n } // We can ensure that newElOptCopy and existElOption are not\n // the same object, so `merge` will not change newElOptCopy.\n\n\n zrUtil.merge(existElOption, newElOptCopy, true); // Rigid body, use ignoreSize.\n\n mergeLayoutParam(existElOption, newElOptCopy, {\n ignoreSize: true\n }); // Will be used in render.\n\n copyLayoutParams(newElOption, existElOption); // Copy transition info to new option so it can be used in the transition.\n // DO IT AFTER merge\n\n copyTransitionInfo(newElOption, existElOption);\n copyTransitionInfo(newElOption, existElOption, 'shape');\n copyTransitionInfo(newElOption, existElOption, 'style');\n copyTransitionInfo(newElOption, existElOption, 'extra'); // Copy clipPath\n\n newElOption.clipPath = existElOption.clipPath;\n } else {\n existList[index] = newElOptCopy;\n }\n } else if ($action === 'replace') {\n existList[index] = newElOptCopy;\n } else if ($action === 'remove') {\n // null will be cleaned later.\n existElOption && (existList[index] = null);\n }\n}\n\nvar TRANSITION_PROPS_TO_COPY = ['transition', 'enterFrom', 'leaveTo'];\nvar ROOT_TRANSITION_PROPS_TO_COPY = TRANSITION_PROPS_TO_COPY.concat(['enterAnimation', 'updateAnimation', 'leaveAnimation']);\n\nfunction copyTransitionInfo(target, source, targetProp) {\n if (targetProp) {\n if (!target[targetProp] && source[targetProp]) {\n // TODO avoid creating this empty object when there is no transition configuration.\n target[targetProp] = {};\n }\n\n target = target[targetProp];\n source = source[targetProp];\n }\n\n if (!target || !source) {\n return;\n }\n\n var props = targetProp ? TRANSITION_PROPS_TO_COPY : ROOT_TRANSITION_PROPS_TO_COPY;\n\n for (var i = 0; i < props.length; i++) {\n var prop = props[i];\n\n if (target[prop] == null && source[prop] != null) {\n target[prop] = source[prop];\n }\n }\n}\n\nfunction setLayoutInfoToExist(existItem, newElOption) {\n if (!existItem) {\n return;\n }\n\n existItem.hv = newElOption.hv = [// Rigid body, don't care about `width`.\n isSetLoc(newElOption, ['left', 'right']), // Rigid body, don't care about `height`.\n isSetLoc(newElOption, ['top', 'bottom'])]; // Give default group size. Otherwise layout error may occur.\n\n if (existItem.type === 'group') {\n var existingGroupOpt = existItem;\n var newGroupOpt = newElOption;\n existingGroupOpt.width == null && (existingGroupOpt.width = newGroupOpt.width = 0);\n existingGroupOpt.height == null && (existingGroupOpt.height = newGroupOpt.height = 0);\n }\n}\n\nvar GraphicComponentModel =\n/** @class */\nfunction (_super) {\n __extends(GraphicComponentModel, _super);\n\n function GraphicComponentModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = GraphicComponentModel.type;\n _this.preventAutoZ = true;\n return _this;\n }\n\n GraphicComponentModel.prototype.mergeOption = function (option, ecModel) {\n // Prevent default merge to elements\n var elements = this.option.elements;\n this.option.elements = null;\n\n _super.prototype.mergeOption.call(this, option, ecModel);\n\n this.option.elements = elements;\n };\n\n GraphicComponentModel.prototype.optionUpdated = function (newOption, isInit) {\n var thisOption = this.option;\n var newList = (isInit ? thisOption : newOption).elements;\n var existList = thisOption.elements = isInit ? [] : thisOption.elements;\n var flattenedList = [];\n\n this._flatten(newList, flattenedList, null);\n\n var mappingResult = modelUtil.mappingToExists(existList, flattenedList, 'normalMerge'); // Clear elOptionsToUpdate\n\n var elOptionsToUpdate = this._elOptionsToUpdate = [];\n zrUtil.each(mappingResult, function (resultItem, index) {\n var newElOption = resultItem.newOption;\n\n if (process.env.NODE_ENV !== 'production') {\n zrUtil.assert(zrUtil.isObject(newElOption) || resultItem.existing, 'Empty graphic option definition');\n }\n\n if (!newElOption) {\n return;\n }\n\n elOptionsToUpdate.push(newElOption);\n setKeyInfoToNewElOption(resultItem, newElOption);\n mergeNewElOptionToExist(existList, index, newElOption);\n setLayoutInfoToExist(existList[index], newElOption);\n }, this); // Clean\n\n thisOption.elements = zrUtil.filter(existList, function (item) {\n // $action should be volatile, otherwise option gotten from\n // `getOption` will contain unexpected $action.\n item && delete item.$action;\n return item != null;\n });\n };\n /**\n * Convert\n * [{\n * type: 'group',\n * id: 'xx',\n * children: [{type: 'circle'}, {type: 'polygon'}]\n * }]\n * to\n * [\n * {type: 'group', id: 'xx'},\n * {type: 'circle', parentId: 'xx'},\n * {type: 'polygon', parentId: 'xx'}\n * ]\n */\n\n\n GraphicComponentModel.prototype._flatten = function (optionList, result, parentOption) {\n zrUtil.each(optionList, function (option) {\n if (!option) {\n return;\n }\n\n if (parentOption) {\n option.parentOption = parentOption;\n }\n\n result.push(option);\n var children = option.children; // here we don't judge if option.type is `group`\n // when new option doesn't provide `type`, it will cause that the children can't be updated.\n\n if (children && children.length) {\n this._flatten(children, result, option);\n } // Deleting for JSON output, and for not affecting group creation.\n\n\n delete option.children;\n }, this);\n }; // FIXME\n // Pass to view using payload? setOption has a payload?\n\n\n GraphicComponentModel.prototype.useElOptionsToUpdate = function () {\n var els = this._elOptionsToUpdate; // Clear to avoid render duplicately when zooming.\n\n this._elOptionsToUpdate = null;\n return els;\n };\n\n GraphicComponentModel.type = 'graphic';\n GraphicComponentModel.defaultOption = {\n elements: [] // parentId: null\n\n };\n return GraphicComponentModel;\n}(ComponentModel);\n\nexport { GraphicComponentModel };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport Displayable from 'zrender/lib/graphic/Displayable.js';\nimport * as modelUtil from '../../util/model.js';\nimport * as graphicUtil from '../../util/graphic.js';\nimport * as layoutUtil from '../../util/layout.js';\nimport { parsePercent } from '../../util/number.js';\nimport ComponentView from '../../view/Component.js';\nimport { getECData } from '../../util/innerStore.js';\nimport { isEC4CompatibleStyle, convertFromEC4CompatibleStyle } from '../../util/styleCompat.js';\nimport { applyLeaveTransition, applyUpdateTransition, isTransitionAll, updateLeaveTo } from '../../animation/customGraphicTransition.js';\nimport { updateProps } from '../../animation/basicTransition.js';\nimport { applyKeyframeAnimation, stopPreviousKeyframeAnimationAndRestore } from '../../animation/customGraphicKeyframeAnimation.js';\nvar nonShapeGraphicElements = {\n // Reserved but not supported in graphic component.\n path: null,\n compoundPath: null,\n // Supported in graphic component.\n group: graphicUtil.Group,\n image: graphicUtil.Image,\n text: graphicUtil.Text\n};\nexport var inner = modelUtil.makeInner(); // ------------------------\n// View\n// ------------------------\n\nvar GraphicComponentView =\n/** @class */\nfunction (_super) {\n __extends(GraphicComponentView, _super);\n\n function GraphicComponentView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = GraphicComponentView.type;\n return _this;\n }\n\n GraphicComponentView.prototype.init = function () {\n this._elMap = zrUtil.createHashMap();\n };\n\n GraphicComponentView.prototype.render = function (graphicModel, ecModel, api) {\n // Having leveraged between use cases and algorithm complexity, a very\n // simple layout mechanism is used:\n // The size(width/height) can be determined by itself or its parent (not\n // implemented yet), but can not by its children. (Top-down travel)\n // The location(x/y) can be determined by the bounding rect of itself\n // (can including its descendants or not) and the size of its parent.\n // (Bottom-up travel)\n // When `chart.clear()` or `chart.setOption({...}, true)` with the same id,\n // view will be reused.\n if (graphicModel !== this._lastGraphicModel) {\n this._clear();\n }\n\n this._lastGraphicModel = graphicModel;\n\n this._updateElements(graphicModel);\n\n this._relocate(graphicModel, api);\n };\n /**\n * Update graphic elements.\n */\n\n\n GraphicComponentView.prototype._updateElements = function (graphicModel) {\n var elOptionsToUpdate = graphicModel.useElOptionsToUpdate();\n\n if (!elOptionsToUpdate) {\n return;\n }\n\n var elMap = this._elMap;\n var rootGroup = this.group;\n var globalZ = graphicModel.get('z');\n var globalZLevel = graphicModel.get('zlevel'); // Top-down tranverse to assign graphic settings to each elements.\n\n zrUtil.each(elOptionsToUpdate, function (elOption) {\n var id = modelUtil.convertOptionIdName(elOption.id, null);\n var elExisting = id != null ? elMap.get(id) : null;\n var parentId = modelUtil.convertOptionIdName(elOption.parentId, null);\n var targetElParent = parentId != null ? elMap.get(parentId) : rootGroup;\n var elType = elOption.type;\n var elOptionStyle = elOption.style;\n\n if (elType === 'text' && elOptionStyle) {\n // In top/bottom mode, textVerticalAlign should not be used, which cause\n // inaccurately locating.\n if (elOption.hv && elOption.hv[1]) {\n elOptionStyle.textVerticalAlign = elOptionStyle.textBaseline = elOptionStyle.verticalAlign = elOptionStyle.align = null;\n }\n }\n\n var textContentOption = elOption.textContent;\n var textConfig = elOption.textConfig;\n\n if (elOptionStyle && isEC4CompatibleStyle(elOptionStyle, elType, !!textConfig, !!textContentOption)) {\n var convertResult = convertFromEC4CompatibleStyle(elOptionStyle, elType, true);\n\n if (!textConfig && convertResult.textConfig) {\n textConfig = elOption.textConfig = convertResult.textConfig;\n }\n\n if (!textContentOption && convertResult.textContent) {\n textContentOption = convertResult.textContent;\n }\n } // Remove unnecessary props to avoid potential problems.\n\n\n var elOptionCleaned = getCleanedElOption(elOption); // For simple, do not support parent change, otherwise reorder is needed.\n\n if (process.env.NODE_ENV !== 'production') {\n elExisting && zrUtil.assert(targetElParent === elExisting.parent, 'Changing parent is not supported.');\n }\n\n var $action = elOption.$action || 'merge';\n var isMerge = $action === 'merge';\n var isReplace = $action === 'replace';\n\n if (isMerge) {\n var isInit = !elExisting;\n var el_1 = elExisting;\n\n if (isInit) {\n el_1 = createEl(id, targetElParent, elOption.type, elMap);\n } else {\n el_1 && (inner(el_1).isNew = false); // Stop and restore before update any other attributes.\n\n stopPreviousKeyframeAnimationAndRestore(el_1);\n }\n\n if (el_1) {\n applyUpdateTransition(el_1, elOptionCleaned, graphicModel, {\n isInit: isInit\n });\n updateCommonAttrs(el_1, elOption, globalZ, globalZLevel);\n }\n } else if (isReplace) {\n removeEl(elExisting, elOption, elMap, graphicModel);\n var el_2 = createEl(id, targetElParent, elOption.type, elMap);\n\n if (el_2) {\n applyUpdateTransition(el_2, elOptionCleaned, graphicModel, {\n isInit: true\n });\n updateCommonAttrs(el_2, elOption, globalZ, globalZLevel);\n }\n } else if ($action === 'remove') {\n updateLeaveTo(elExisting, elOption);\n removeEl(elExisting, elOption, elMap, graphicModel);\n }\n\n var el = elMap.get(id);\n\n if (el && textContentOption) {\n if (isMerge) {\n var textContentExisting = el.getTextContent();\n textContentExisting ? textContentExisting.attr(textContentOption) : el.setTextContent(new graphicUtil.Text(textContentOption));\n } else if (isReplace) {\n el.setTextContent(new graphicUtil.Text(textContentOption));\n }\n }\n\n if (el) {\n var clipPathOption = elOption.clipPath;\n\n if (clipPathOption) {\n var clipPathType = clipPathOption.type;\n var clipPath = void 0;\n var isInit = false;\n\n if (isMerge) {\n var oldClipPath = el.getClipPath();\n isInit = !oldClipPath || inner(oldClipPath).type !== clipPathType;\n clipPath = isInit ? newEl(clipPathType) : oldClipPath;\n } else if (isReplace) {\n isInit = true;\n clipPath = newEl(clipPathType);\n }\n\n el.setClipPath(clipPath);\n applyUpdateTransition(clipPath, clipPathOption, graphicModel, {\n isInit: isInit\n });\n applyKeyframeAnimation(clipPath, clipPathOption.keyframeAnimation, graphicModel);\n }\n\n var elInner = inner(el);\n el.setTextConfig(textConfig);\n elInner.option = elOption;\n setEventData(el, graphicModel, elOption);\n graphicUtil.setTooltipConfig({\n el: el,\n componentModel: graphicModel,\n itemName: el.name,\n itemTooltipOption: elOption.tooltip\n });\n applyKeyframeAnimation(el, elOption.keyframeAnimation, graphicModel);\n }\n });\n };\n /**\n * Locate graphic elements.\n */\n\n\n GraphicComponentView.prototype._relocate = function (graphicModel, api) {\n var elOptions = graphicModel.option.elements;\n var rootGroup = this.group;\n var elMap = this._elMap;\n var apiWidth = api.getWidth();\n var apiHeight = api.getHeight();\n var xy = ['x', 'y']; // Top-down to calculate percentage width/height of group\n\n for (var i = 0; i < elOptions.length; i++) {\n var elOption = elOptions[i];\n var id = modelUtil.convertOptionIdName(elOption.id, null);\n var el = id != null ? elMap.get(id) : null;\n\n if (!el || !el.isGroup) {\n continue;\n }\n\n var parentEl = el.parent;\n var isParentRoot = parentEl === rootGroup; // Like 'position:absolut' in css, default 0.\n\n var elInner = inner(el);\n var parentElInner = inner(parentEl);\n elInner.width = parsePercent(elInner.option.width, isParentRoot ? apiWidth : parentElInner.width) || 0;\n elInner.height = parsePercent(elInner.option.height, isParentRoot ? apiHeight : parentElInner.height) || 0;\n } // Bottom-up tranvese all elements (consider ec resize) to locate elements.\n\n\n for (var i = elOptions.length - 1; i >= 0; i--) {\n var elOption = elOptions[i];\n var id = modelUtil.convertOptionIdName(elOption.id, null);\n var el = id != null ? elMap.get(id) : null;\n\n if (!el) {\n continue;\n }\n\n var parentEl = el.parent;\n var parentElInner = inner(parentEl);\n var containerInfo = parentEl === rootGroup ? {\n width: apiWidth,\n height: apiHeight\n } : {\n width: parentElInner.width,\n height: parentElInner.height\n }; // PENDING\n // Currently, when `bounding: 'all'`, the union bounding rect of the group\n // does not include the rect of [0, 0, group.width, group.height], which\n // is probably weird for users. Should we make a break change for it?\n\n var layoutPos = {};\n var layouted = layoutUtil.positionElement(el, elOption, containerInfo, null, {\n hv: elOption.hv,\n boundingMode: elOption.bounding\n }, layoutPos);\n\n if (!inner(el).isNew && layouted) {\n var transition = elOption.transition;\n var animatePos = {};\n\n for (var k = 0; k < xy.length; k++) {\n var key = xy[k];\n var val = layoutPos[key];\n\n if (transition && (isTransitionAll(transition) || zrUtil.indexOf(transition, key) >= 0)) {\n animatePos[key] = val;\n } else {\n el[key] = val;\n }\n }\n\n updateProps(el, animatePos, graphicModel, 0);\n } else {\n el.attr(layoutPos);\n }\n }\n };\n /**\n * Clear all elements.\n */\n\n\n GraphicComponentView.prototype._clear = function () {\n var _this = this;\n\n var elMap = this._elMap;\n elMap.each(function (el) {\n removeEl(el, inner(el).option, elMap, _this._lastGraphicModel);\n });\n this._elMap = zrUtil.createHashMap();\n };\n\n GraphicComponentView.prototype.dispose = function () {\n this._clear();\n };\n\n GraphicComponentView.type = 'graphic';\n return GraphicComponentView;\n}(ComponentView);\n\nexport { GraphicComponentView };\n\nfunction newEl(graphicType) {\n if (process.env.NODE_ENV !== 'production') {\n zrUtil.assert(graphicType, 'graphic type MUST be set');\n }\n\n var Clz = zrUtil.hasOwn(nonShapeGraphicElements, graphicType) // Those graphic elements are not shapes. They should not be\n // overwritten by users, so do them first.\n ? nonShapeGraphicElements[graphicType] : graphicUtil.getShapeClass(graphicType);\n\n if (process.env.NODE_ENV !== 'production') {\n zrUtil.assert(Clz, \"graphic type \" + graphicType + \" can not be found\");\n }\n\n var el = new Clz({});\n inner(el).type = graphicType;\n return el;\n}\n\nfunction createEl(id, targetElParent, graphicType, elMap) {\n var el = newEl(graphicType);\n targetElParent.add(el);\n elMap.set(id, el);\n inner(el).id = id;\n inner(el).isNew = true;\n return el;\n}\n\nfunction removeEl(elExisting, elOption, elMap, graphicModel) {\n var existElParent = elExisting && elExisting.parent;\n\n if (existElParent) {\n elExisting.type === 'group' && elExisting.traverse(function (el) {\n removeEl(el, elOption, elMap, graphicModel);\n });\n applyLeaveTransition(elExisting, elOption, graphicModel);\n elMap.removeKey(inner(elExisting).id);\n }\n}\n\nfunction updateCommonAttrs(el, elOption, defaultZ, defaultZlevel) {\n if (!el.isGroup) {\n zrUtil.each([['cursor', Displayable.prototype.cursor], // We should not support configure z and zlevel in the element level.\n // But seems we didn't limit it previously. So here still use it to avoid breaking.\n ['zlevel', defaultZlevel || 0], ['z', defaultZ || 0], // z2 must not be null/undefined, otherwise sort error may occur.\n ['z2', 0]], function (item) {\n var prop = item[0];\n\n if (zrUtil.hasOwn(elOption, prop)) {\n el[prop] = zrUtil.retrieve2(elOption[prop], item[1]);\n } else if (el[prop] == null) {\n el[prop] = item[1];\n }\n });\n }\n\n zrUtil.each(zrUtil.keys(elOption), function (key) {\n // Assign event handlers.\n // PENDING: should enumerate all event names or use pattern matching?\n if (key.indexOf('on') === 0) {\n var val = elOption[key];\n el[key] = zrUtil.isFunction(val) ? val : null;\n }\n });\n\n if (zrUtil.hasOwn(elOption, 'draggable')) {\n el.draggable = elOption.draggable;\n } // Other attributes\n\n\n elOption.name != null && (el.name = elOption.name);\n elOption.id != null && (el.id = elOption.id);\n} // Remove unnecessary props to avoid potential problems.\n\n\nfunction getCleanedElOption(elOption) {\n elOption = zrUtil.extend({}, elOption);\n zrUtil.each(['id', 'parentId', '$action', 'hv', 'bounding', 'textContent', 'clipPath'].concat(layoutUtil.LOCATION_PARAMS), function (name) {\n delete elOption[name];\n });\n return elOption;\n}\n\nfunction setEventData(el, graphicModel, elOption) {\n var eventData = getECData(el).eventData; // Simple optimize for large amount of elements that no need event.\n\n if (!el.silent && !el.ignore && !eventData) {\n eventData = getECData(el).eventData = {\n componentType: 'graphic',\n componentIndex: graphicModel.componentIndex,\n name: el.name\n };\n } // `elOption.info` enables user to mount some info on\n // elements and use them in event handlers.\n\n\n if (eventData) {\n eventData.info = elOption.info;\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { isArray } from 'zrender/lib/core/util.js';\nimport { GraphicComponentModel } from './GraphicModel.js';\nimport { GraphicComponentView } from './GraphicView.js';\nexport function install(registers) {\n registers.registerComponentModel(GraphicComponentModel);\n registers.registerComponentView(GraphicComponentView);\n registers.registerPreprocessor(function (option) {\n var graphicOption = option.graphic; // Convert\n // {graphic: [{left: 10, type: 'circle'}, ...]}\n // or\n // {graphic: {left: 10, type: 'circle'}}\n // to\n // {graphic: [{elements: [{left: 10, type: 'circle'}, ...]}]}\n\n if (isArray(graphicOption)) {\n if (!graphicOption[0] || !graphicOption[0].elements) {\n option.graphic = [{\n elements: graphicOption\n }];\n } else {\n // Only one graphic instance can be instantiated. (We don't\n // want that too many views are created in echarts._viewMap.)\n option.graphic = [option.graphic[0]];\n }\n } else if (graphicOption && !graphicOption.elements) {\n option.graphic = [{\n elements: [graphicOption]\n }];\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { install as installSimple } from './installSimple.js';\nimport { install as installAxisPointer } from '../axisPointer/install.js';\nimport { use } from '../../extension.js';\nexport function install(registers) {\n use(installSimple);\n use(installAxisPointer);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport ComponentView from '../../view/Component.js';\nimport GridModel from '../../coord/cartesian/GridModel.js';\nimport { Rect } from '../../util/graphic.js';\nimport { defaults } from 'zrender/lib/core/util.js';\nimport { CartesianAxisModel } from '../../coord/cartesian/AxisModel.js';\nimport axisModelCreator from '../../coord/axisModelCreator.js';\nimport Grid from '../../coord/cartesian/Grid.js';\nimport { CartesianXAxisView, CartesianYAxisView } from '../axis/CartesianAxisView.js'; // Grid view\n\nvar GridView =\n/** @class */\nfunction (_super) {\n __extends(GridView, _super);\n\n function GridView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = 'grid';\n return _this;\n }\n\n GridView.prototype.render = function (gridModel, ecModel) {\n this.group.removeAll();\n\n if (gridModel.get('show')) {\n this.group.add(new Rect({\n shape: gridModel.coordinateSystem.getRect(),\n style: defaults({\n fill: gridModel.get('backgroundColor')\n }, gridModel.getItemStyle()),\n silent: true,\n z2: -1\n }));\n }\n };\n\n GridView.type = 'grid';\n return GridView;\n}(ComponentView);\n\nvar extraOption = {\n // gridIndex: 0,\n // gridId: '',\n offset: 0\n};\nexport function install(registers) {\n registers.registerComponentView(GridView);\n registers.registerComponentModel(GridModel);\n registers.registerCoordinateSystem('cartesian2d', Grid);\n axisModelCreator(registers, 'x', CartesianAxisModel, extraOption);\n axisModelCreator(registers, 'y', CartesianAxisModel, extraOption);\n registers.registerComponentView(CartesianXAxisView);\n registers.registerComponentView(CartesianYAxisView);\n registers.registerPreprocessor(function (option) {\n // Only create grid when need\n if (option.xAxis && option.yAxis && !option.grid) {\n option.grid = {};\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport { curry, each, map, bind, merge, clone, defaults, assert } from 'zrender/lib/core/util.js';\nimport Eventful from 'zrender/lib/core/Eventful.js';\nimport * as graphic from '../../util/graphic.js';\nimport * as interactionMutex from './interactionMutex.js';\nimport DataDiffer from '../../data/DataDiffer.js';\nvar BRUSH_PANEL_GLOBAL = true;\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathPow = Math.pow;\nvar COVER_Z = 10000;\nvar UNSELECT_THRESHOLD = 6;\nvar MIN_RESIZE_LINE_WIDTH = 6;\nvar MUTEX_RESOURCE_KEY = 'globalPan';\nvar DIRECTION_MAP = {\n w: [0, 0],\n e: [0, 1],\n n: [1, 0],\n s: [1, 1]\n};\nvar CURSOR_MAP = {\n w: 'ew',\n e: 'ew',\n n: 'ns',\n s: 'ns',\n ne: 'nesw',\n sw: 'nesw',\n nw: 'nwse',\n se: 'nwse'\n};\nvar DEFAULT_BRUSH_OPT = {\n brushStyle: {\n lineWidth: 2,\n stroke: 'rgba(210,219,238,0.3)',\n fill: '#D2DBEE'\n },\n transformable: true,\n brushMode: 'single',\n removeOnClick: false\n};\nvar baseUID = 0;\n/**\n * params:\n * areas: Array., coord relates to container group,\n * If no container specified, to global.\n * opt {\n * isEnd: boolean,\n * removeOnClick: boolean\n * }\n */\n\nvar BrushController =\n/** @class */\nfunction (_super) {\n __extends(BrushController, _super);\n\n function BrushController(zr) {\n var _this = _super.call(this) || this;\n /**\n * @internal\n */\n\n\n _this._track = [];\n /**\n * @internal\n */\n\n _this._covers = [];\n _this._handlers = {};\n\n if (process.env.NODE_ENV !== 'production') {\n assert(zr);\n }\n\n _this._zr = zr;\n _this.group = new graphic.Group();\n _this._uid = 'brushController_' + baseUID++;\n each(pointerHandlers, function (handler, eventName) {\n this._handlers[eventName] = bind(handler, this);\n }, _this);\n return _this;\n }\n /**\n * If set to `false`, select disabled.\n */\n\n\n BrushController.prototype.enableBrush = function (brushOption) {\n if (process.env.NODE_ENV !== 'production') {\n assert(this._mounted);\n }\n\n this._brushType && this._doDisableBrush();\n brushOption.brushType && this._doEnableBrush(brushOption);\n return this;\n };\n\n BrushController.prototype._doEnableBrush = function (brushOption) {\n var zr = this._zr; // Consider roam, which takes globalPan too.\n\n if (!this._enableGlobalPan) {\n interactionMutex.take(zr, MUTEX_RESOURCE_KEY, this._uid);\n }\n\n each(this._handlers, function (handler, eventName) {\n zr.on(eventName, handler);\n });\n this._brushType = brushOption.brushType;\n this._brushOption = merge(clone(DEFAULT_BRUSH_OPT), brushOption, true);\n };\n\n BrushController.prototype._doDisableBrush = function () {\n var zr = this._zr;\n interactionMutex.release(zr, MUTEX_RESOURCE_KEY, this._uid);\n each(this._handlers, function (handler, eventName) {\n zr.off(eventName, handler);\n });\n this._brushType = this._brushOption = null;\n };\n /**\n * @param panelOpts If not pass, it is global brush.\n */\n\n\n BrushController.prototype.setPanels = function (panelOpts) {\n if (panelOpts && panelOpts.length) {\n var panels_1 = this._panels = {};\n each(panelOpts, function (panelOpts) {\n panels_1[panelOpts.panelId] = clone(panelOpts);\n });\n } else {\n this._panels = null;\n }\n\n return this;\n };\n\n BrushController.prototype.mount = function (opt) {\n opt = opt || {};\n\n if (process.env.NODE_ENV !== 'production') {\n this._mounted = true; // should be at first.\n }\n\n this._enableGlobalPan = opt.enableGlobalPan;\n var thisGroup = this.group;\n\n this._zr.add(thisGroup);\n\n thisGroup.attr({\n x: opt.x || 0,\n y: opt.y || 0,\n rotation: opt.rotation || 0,\n scaleX: opt.scaleX || 1,\n scaleY: opt.scaleY || 1\n });\n this._transform = thisGroup.getLocalTransform();\n return this;\n }; // eachCover(cb, context): void {\n // each(this._covers, cb, context);\n // }\n\n /**\n * Update covers.\n * @param coverConfigList\n * If coverConfigList is null/undefined, all covers removed.\n */\n\n\n BrushController.prototype.updateCovers = function (coverConfigList) {\n if (process.env.NODE_ENV !== 'production') {\n assert(this._mounted);\n }\n\n coverConfigList = map(coverConfigList, function (coverConfig) {\n return merge(clone(DEFAULT_BRUSH_OPT), coverConfig, true);\n });\n var tmpIdPrefix = '\\0-brush-index-';\n var oldCovers = this._covers;\n var newCovers = this._covers = [];\n var controller = this;\n var creatingCover = this._creatingCover;\n new DataDiffer(oldCovers, coverConfigList, oldGetKey, getKey).add(addOrUpdate).update(addOrUpdate).remove(remove).execute();\n return this;\n\n function getKey(brushOption, index) {\n return (brushOption.id != null ? brushOption.id : tmpIdPrefix + index) + '-' + brushOption.brushType;\n }\n\n function oldGetKey(cover, index) {\n return getKey(cover.__brushOption, index);\n }\n\n function addOrUpdate(newIndex, oldIndex) {\n var newBrushInternal = coverConfigList[newIndex]; // Consider setOption in event listener of brushSelect,\n // where updating cover when creating should be forbidden.\n\n if (oldIndex != null && oldCovers[oldIndex] === creatingCover) {\n newCovers[newIndex] = oldCovers[oldIndex];\n } else {\n var cover = newCovers[newIndex] = oldIndex != null ? (oldCovers[oldIndex].__brushOption = newBrushInternal, oldCovers[oldIndex]) : endCreating(controller, createCover(controller, newBrushInternal));\n updateCoverAfterCreation(controller, cover);\n }\n }\n\n function remove(oldIndex) {\n if (oldCovers[oldIndex] !== creatingCover) {\n controller.group.remove(oldCovers[oldIndex]);\n }\n }\n };\n\n BrushController.prototype.unmount = function () {\n if (process.env.NODE_ENV !== 'production') {\n if (!this._mounted) {\n return;\n }\n }\n\n this.enableBrush(false); // container may 'removeAll' outside.\n\n clearCovers(this);\n\n this._zr.remove(this.group);\n\n if (process.env.NODE_ENV !== 'production') {\n this._mounted = false; // should be at last.\n }\n\n return this;\n };\n\n BrushController.prototype.dispose = function () {\n this.unmount();\n this.off();\n };\n\n return BrushController;\n}(Eventful);\n\nfunction createCover(controller, brushOption) {\n var cover = coverRenderers[brushOption.brushType].createCover(controller, brushOption);\n cover.__brushOption = brushOption;\n updateZ(cover, brushOption);\n controller.group.add(cover);\n return cover;\n}\n\nfunction endCreating(controller, creatingCover) {\n var coverRenderer = getCoverRenderer(creatingCover);\n\n if (coverRenderer.endCreating) {\n coverRenderer.endCreating(controller, creatingCover);\n updateZ(creatingCover, creatingCover.__brushOption);\n }\n\n return creatingCover;\n}\n\nfunction updateCoverShape(controller, cover) {\n var brushOption = cover.__brushOption;\n getCoverRenderer(cover).updateCoverShape(controller, cover, brushOption.range, brushOption);\n}\n\nfunction updateZ(cover, brushOption) {\n var z = brushOption.z;\n z == null && (z = COVER_Z);\n cover.traverse(function (el) {\n el.z = z;\n el.z2 = z; // Consider in given container.\n });\n}\n\nfunction updateCoverAfterCreation(controller, cover) {\n getCoverRenderer(cover).updateCommon(controller, cover);\n updateCoverShape(controller, cover);\n}\n\nfunction getCoverRenderer(cover) {\n return coverRenderers[cover.__brushOption.brushType];\n} // return target panel or `true` (means global panel)\n\n\nfunction getPanelByPoint(controller, e, localCursorPoint) {\n var panels = controller._panels;\n\n if (!panels) {\n return BRUSH_PANEL_GLOBAL; // Global panel\n }\n\n var panel;\n var transform = controller._transform;\n each(panels, function (pn) {\n pn.isTargetByCursor(e, localCursorPoint, transform) && (panel = pn);\n });\n return panel;\n} // Return a panel or true\n\n\nfunction getPanelByCover(controller, cover) {\n var panels = controller._panels;\n\n if (!panels) {\n return BRUSH_PANEL_GLOBAL; // Global panel\n }\n\n var panelId = cover.__brushOption.panelId; // User may give cover without coord sys info,\n // which is then treated as global panel.\n\n return panelId != null ? panels[panelId] : BRUSH_PANEL_GLOBAL;\n}\n\nfunction clearCovers(controller) {\n var covers = controller._covers;\n var originalLength = covers.length;\n each(covers, function (cover) {\n controller.group.remove(cover);\n }, controller);\n covers.length = 0;\n return !!originalLength;\n}\n\nfunction trigger(controller, opt) {\n var areas = map(controller._covers, function (cover) {\n var brushOption = cover.__brushOption;\n var range = clone(brushOption.range);\n return {\n brushType: brushOption.brushType,\n panelId: brushOption.panelId,\n range: range\n };\n });\n controller.trigger('brush', {\n areas: areas,\n isEnd: !!opt.isEnd,\n removeOnClick: !!opt.removeOnClick\n });\n}\n\nfunction shouldShowCover(controller) {\n var track = controller._track;\n\n if (!track.length) {\n return false;\n }\n\n var p2 = track[track.length - 1];\n var p1 = track[0];\n var dx = p2[0] - p1[0];\n var dy = p2[1] - p1[1];\n var dist = mathPow(dx * dx + dy * dy, 0.5);\n return dist > UNSELECT_THRESHOLD;\n}\n\nfunction getTrackEnds(track) {\n var tail = track.length - 1;\n tail < 0 && (tail = 0);\n return [track[0], track[tail]];\n}\n\n;\n\nfunction createBaseRectCover(rectRangeConverter, controller, brushOption, edgeNameSequences) {\n var cover = new graphic.Group();\n cover.add(new graphic.Rect({\n name: 'main',\n style: makeStyle(brushOption),\n silent: true,\n draggable: true,\n cursor: 'move',\n drift: curry(driftRect, rectRangeConverter, controller, cover, ['n', 's', 'w', 'e']),\n ondragend: curry(trigger, controller, {\n isEnd: true\n })\n }));\n each(edgeNameSequences, function (nameSequence) {\n cover.add(new graphic.Rect({\n name: nameSequence.join(''),\n style: {\n opacity: 0\n },\n draggable: true,\n silent: true,\n invisible: true,\n drift: curry(driftRect, rectRangeConverter, controller, cover, nameSequence),\n ondragend: curry(trigger, controller, {\n isEnd: true\n })\n }));\n });\n return cover;\n}\n\nfunction updateBaseRect(controller, cover, localRange, brushOption) {\n var lineWidth = brushOption.brushStyle.lineWidth || 0;\n var handleSize = mathMax(lineWidth, MIN_RESIZE_LINE_WIDTH);\n var x = localRange[0][0];\n var y = localRange[1][0];\n var xa = x - lineWidth / 2;\n var ya = y - lineWidth / 2;\n var x2 = localRange[0][1];\n var y2 = localRange[1][1];\n var x2a = x2 - handleSize + lineWidth / 2;\n var y2a = y2 - handleSize + lineWidth / 2;\n var width = x2 - x;\n var height = y2 - y;\n var widtha = width + lineWidth;\n var heighta = height + lineWidth;\n updateRectShape(controller, cover, 'main', x, y, width, height);\n\n if (brushOption.transformable) {\n updateRectShape(controller, cover, 'w', xa, ya, handleSize, heighta);\n updateRectShape(controller, cover, 'e', x2a, ya, handleSize, heighta);\n updateRectShape(controller, cover, 'n', xa, ya, widtha, handleSize);\n updateRectShape(controller, cover, 's', xa, y2a, widtha, handleSize);\n updateRectShape(controller, cover, 'nw', xa, ya, handleSize, handleSize);\n updateRectShape(controller, cover, 'ne', x2a, ya, handleSize, handleSize);\n updateRectShape(controller, cover, 'sw', xa, y2a, handleSize, handleSize);\n updateRectShape(controller, cover, 'se', x2a, y2a, handleSize, handleSize);\n }\n}\n\nfunction updateCommon(controller, cover) {\n var brushOption = cover.__brushOption;\n var transformable = brushOption.transformable;\n var mainEl = cover.childAt(0);\n mainEl.useStyle(makeStyle(brushOption));\n mainEl.attr({\n silent: !transformable,\n cursor: transformable ? 'move' : 'default'\n });\n each([['w'], ['e'], ['n'], ['s'], ['s', 'e'], ['s', 'w'], ['n', 'e'], ['n', 'w']], function (nameSequence) {\n var el = cover.childOfName(nameSequence.join(''));\n var globalDir = nameSequence.length === 1 ? getGlobalDirection1(controller, nameSequence[0]) : getGlobalDirection2(controller, nameSequence);\n el && el.attr({\n silent: !transformable,\n invisible: !transformable,\n cursor: transformable ? CURSOR_MAP[globalDir] + '-resize' : null\n });\n });\n}\n\nfunction updateRectShape(controller, cover, name, x, y, w, h) {\n var el = cover.childOfName(name);\n el && el.setShape(pointsToRect(clipByPanel(controller, cover, [[x, y], [x + w, y + h]])));\n}\n\nfunction makeStyle(brushOption) {\n return defaults({\n strokeNoScale: true\n }, brushOption.brushStyle);\n}\n\nfunction formatRectRange(x, y, x2, y2) {\n var min = [mathMin(x, x2), mathMin(y, y2)];\n var max = [mathMax(x, x2), mathMax(y, y2)];\n return [[min[0], max[0]], [min[1], max[1]] // y range\n ];\n}\n\nfunction getTransform(controller) {\n return graphic.getTransform(controller.group);\n}\n\nfunction getGlobalDirection1(controller, localDirName) {\n var map = {\n w: 'left',\n e: 'right',\n n: 'top',\n s: 'bottom'\n };\n var inverseMap = {\n left: 'w',\n right: 'e',\n top: 'n',\n bottom: 's'\n };\n var dir = graphic.transformDirection(map[localDirName], getTransform(controller));\n return inverseMap[dir];\n}\n\nfunction getGlobalDirection2(controller, localDirNameSeq) {\n var globalDir = [getGlobalDirection1(controller, localDirNameSeq[0]), getGlobalDirection1(controller, localDirNameSeq[1])];\n (globalDir[0] === 'e' || globalDir[0] === 'w') && globalDir.reverse();\n return globalDir.join('');\n}\n\nfunction driftRect(rectRangeConverter, controller, cover, dirNameSequence, dx, dy) {\n var brushOption = cover.__brushOption;\n var rectRange = rectRangeConverter.toRectRange(brushOption.range);\n var localDelta = toLocalDelta(controller, dx, dy);\n each(dirNameSequence, function (dirName) {\n var ind = DIRECTION_MAP[dirName];\n rectRange[ind[0]][ind[1]] += localDelta[ind[0]];\n });\n brushOption.range = rectRangeConverter.fromRectRange(formatRectRange(rectRange[0][0], rectRange[1][0], rectRange[0][1], rectRange[1][1]));\n updateCoverAfterCreation(controller, cover);\n trigger(controller, {\n isEnd: false\n });\n}\n\nfunction driftPolygon(controller, cover, dx, dy) {\n var range = cover.__brushOption.range;\n var localDelta = toLocalDelta(controller, dx, dy);\n each(range, function (point) {\n point[0] += localDelta[0];\n point[1] += localDelta[1];\n });\n updateCoverAfterCreation(controller, cover);\n trigger(controller, {\n isEnd: false\n });\n}\n\nfunction toLocalDelta(controller, dx, dy) {\n var thisGroup = controller.group;\n var localD = thisGroup.transformCoordToLocal(dx, dy);\n var localZero = thisGroup.transformCoordToLocal(0, 0);\n return [localD[0] - localZero[0], localD[1] - localZero[1]];\n}\n\nfunction clipByPanel(controller, cover, data) {\n var panel = getPanelByCover(controller, cover);\n return panel && panel !== BRUSH_PANEL_GLOBAL ? panel.clipPath(data, controller._transform) : clone(data);\n}\n\nfunction pointsToRect(points) {\n var xmin = mathMin(points[0][0], points[1][0]);\n var ymin = mathMin(points[0][1], points[1][1]);\n var xmax = mathMax(points[0][0], points[1][0]);\n var ymax = mathMax(points[0][1], points[1][1]);\n return {\n x: xmin,\n y: ymin,\n width: xmax - xmin,\n height: ymax - ymin\n };\n}\n\nfunction resetCursor(controller, e, localCursorPoint) {\n if ( // Check active\n !controller._brushType // resetCursor should be always called when mouse is in zr area,\n // but not called when mouse is out of zr area to avoid bad influence\n // if `mousemove`, `mouseup` are triggered from `document` event.\n || isOutsideZrArea(controller, e.offsetX, e.offsetY)) {\n return;\n }\n\n var zr = controller._zr;\n var covers = controller._covers;\n var currPanel = getPanelByPoint(controller, e, localCursorPoint); // Check whether in covers.\n\n if (!controller._dragging) {\n for (var i = 0; i < covers.length; i++) {\n var brushOption = covers[i].__brushOption;\n\n if (currPanel && (currPanel === BRUSH_PANEL_GLOBAL || brushOption.panelId === currPanel.panelId) && coverRenderers[brushOption.brushType].contain(covers[i], localCursorPoint[0], localCursorPoint[1])) {\n // Use cursor style set on cover.\n return;\n }\n }\n }\n\n currPanel && zr.setCursorStyle('crosshair');\n}\n\nfunction preventDefault(e) {\n var rawE = e.event;\n rawE.preventDefault && rawE.preventDefault();\n}\n\nfunction mainShapeContain(cover, x, y) {\n return cover.childOfName('main').contain(x, y);\n}\n\nfunction updateCoverByMouse(controller, e, localCursorPoint, isEnd) {\n var creatingCover = controller._creatingCover;\n var panel = controller._creatingPanel;\n var thisBrushOption = controller._brushOption;\n var eventParams;\n\n controller._track.push(localCursorPoint.slice());\n\n if (shouldShowCover(controller) || creatingCover) {\n if (panel && !creatingCover) {\n thisBrushOption.brushMode === 'single' && clearCovers(controller);\n var brushOption = clone(thisBrushOption);\n brushOption.brushType = determineBrushType(brushOption.brushType, panel);\n brushOption.panelId = panel === BRUSH_PANEL_GLOBAL ? null : panel.panelId;\n creatingCover = controller._creatingCover = createCover(controller, brushOption);\n\n controller._covers.push(creatingCover);\n }\n\n if (creatingCover) {\n var coverRenderer = coverRenderers[determineBrushType(controller._brushType, panel)];\n var coverBrushOption = creatingCover.__brushOption;\n coverBrushOption.range = coverRenderer.getCreatingRange(clipByPanel(controller, creatingCover, controller._track));\n\n if (isEnd) {\n endCreating(controller, creatingCover);\n coverRenderer.updateCommon(controller, creatingCover);\n }\n\n updateCoverShape(controller, creatingCover);\n eventParams = {\n isEnd: isEnd\n };\n }\n } else if (isEnd && thisBrushOption.brushMode === 'single' && thisBrushOption.removeOnClick) {\n // Help user to remove covers easily, only by a tiny drag, in 'single' mode.\n // But a single click do not clear covers, because user may have casual\n // clicks (for example, click on other component and do not expect covers\n // disappear).\n // Only some cover removed, trigger action, but not every click trigger action.\n if (getPanelByPoint(controller, e, localCursorPoint) && clearCovers(controller)) {\n eventParams = {\n isEnd: isEnd,\n removeOnClick: true\n };\n }\n }\n\n return eventParams;\n}\n\nfunction determineBrushType(brushType, panel) {\n if (brushType === 'auto') {\n if (process.env.NODE_ENV !== 'production') {\n assert(panel && panel.defaultBrushType, 'MUST have defaultBrushType when brushType is \"atuo\"');\n }\n\n return panel.defaultBrushType;\n }\n\n return brushType;\n}\n\nvar pointerHandlers = {\n mousedown: function (e) {\n if (this._dragging) {\n // In case some browser do not support globalOut,\n // and release mouse out side the browser.\n handleDragEnd(this, e);\n } else if (!e.target || !e.target.draggable) {\n preventDefault(e);\n var localCursorPoint = this.group.transformCoordToLocal(e.offsetX, e.offsetY);\n this._creatingCover = null;\n var panel = this._creatingPanel = getPanelByPoint(this, e, localCursorPoint);\n\n if (panel) {\n this._dragging = true;\n this._track = [localCursorPoint.slice()];\n }\n }\n },\n mousemove: function (e) {\n var x = e.offsetX;\n var y = e.offsetY;\n var localCursorPoint = this.group.transformCoordToLocal(x, y);\n resetCursor(this, e, localCursorPoint);\n\n if (this._dragging) {\n preventDefault(e);\n var eventParams = updateCoverByMouse(this, e, localCursorPoint, false);\n eventParams && trigger(this, eventParams);\n }\n },\n mouseup: function (e) {\n handleDragEnd(this, e);\n }\n};\n\nfunction handleDragEnd(controller, e) {\n if (controller._dragging) {\n preventDefault(e);\n var x = e.offsetX;\n var y = e.offsetY;\n var localCursorPoint = controller.group.transformCoordToLocal(x, y);\n var eventParams = updateCoverByMouse(controller, e, localCursorPoint, true);\n controller._dragging = false;\n controller._track = [];\n controller._creatingCover = null; // trigger event should be at final, after procedure will be nested.\n\n eventParams && trigger(controller, eventParams);\n }\n}\n\nfunction isOutsideZrArea(controller, x, y) {\n var zr = controller._zr;\n return x < 0 || x > zr.getWidth() || y < 0 || y > zr.getHeight();\n}\n/**\n * key: brushType\n */\n\n\nvar coverRenderers = {\n lineX: getLineRenderer(0),\n lineY: getLineRenderer(1),\n rect: {\n createCover: function (controller, brushOption) {\n function returnInput(range) {\n return range;\n }\n\n return createBaseRectCover({\n toRectRange: returnInput,\n fromRectRange: returnInput\n }, controller, brushOption, [['w'], ['e'], ['n'], ['s'], ['s', 'e'], ['s', 'w'], ['n', 'e'], ['n', 'w']]);\n },\n getCreatingRange: function (localTrack) {\n var ends = getTrackEnds(localTrack);\n return formatRectRange(ends[1][0], ends[1][1], ends[0][0], ends[0][1]);\n },\n updateCoverShape: function (controller, cover, localRange, brushOption) {\n updateBaseRect(controller, cover, localRange, brushOption);\n },\n updateCommon: updateCommon,\n contain: mainShapeContain\n },\n polygon: {\n createCover: function (controller, brushOption) {\n var cover = new graphic.Group(); // Do not use graphic.Polygon because graphic.Polyline do not close the\n // border of the shape when drawing, which is a better experience for user.\n\n cover.add(new graphic.Polyline({\n name: 'main',\n style: makeStyle(brushOption),\n silent: true\n }));\n return cover;\n },\n getCreatingRange: function (localTrack) {\n return localTrack;\n },\n endCreating: function (controller, cover) {\n cover.remove(cover.childAt(0)); // Use graphic.Polygon close the shape.\n\n cover.add(new graphic.Polygon({\n name: 'main',\n draggable: true,\n drift: curry(driftPolygon, controller, cover),\n ondragend: curry(trigger, controller, {\n isEnd: true\n })\n }));\n },\n updateCoverShape: function (controller, cover, localRange, brushOption) {\n cover.childAt(0).setShape({\n points: clipByPanel(controller, cover, localRange)\n });\n },\n updateCommon: updateCommon,\n contain: mainShapeContain\n }\n};\n\nfunction getLineRenderer(xyIndex) {\n return {\n createCover: function (controller, brushOption) {\n return createBaseRectCover({\n toRectRange: function (range) {\n var rectRange = [range, [0, 100]];\n xyIndex && rectRange.reverse();\n return rectRange;\n },\n fromRectRange: function (rectRange) {\n return rectRange[xyIndex];\n }\n }, controller, brushOption, [[['w'], ['e']], [['n'], ['s']]][xyIndex]);\n },\n getCreatingRange: function (localTrack) {\n var ends = getTrackEnds(localTrack);\n var min = mathMin(ends[0][xyIndex], ends[1][xyIndex]);\n var max = mathMax(ends[0][xyIndex], ends[1][xyIndex]);\n return [min, max];\n },\n updateCoverShape: function (controller, cover, localRange, brushOption) {\n var otherExtent; // If brushWidth not specified, fit the panel.\n\n var panel = getPanelByCover(controller, cover);\n\n if (panel !== BRUSH_PANEL_GLOBAL && panel.getLinearBrushOtherExtent) {\n otherExtent = panel.getLinearBrushOtherExtent(xyIndex);\n } else {\n var zr = controller._zr;\n otherExtent = [0, [zr.getWidth(), zr.getHeight()][1 - xyIndex]];\n }\n\n var rectRange = [localRange, otherExtent];\n xyIndex && rectRange.reverse();\n updateBaseRect(controller, cover, rectRange, brushOption);\n },\n updateCommon: updateCommon,\n contain: mainShapeContain\n };\n}\n\nexport default BrushController;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { each, indexOf, curry, assert, map, createHashMap } from 'zrender/lib/core/util.js';\nimport * as graphic from '../../util/graphic.js';\nimport * as brushHelper from './brushHelper.js';\nimport { parseFinder as modelUtilParseFinder } from '../../util/model.js'; // FIXME\n// how to genarialize to more coordinate systems.\n\nvar INCLUDE_FINDER_MAIN_TYPES = ['grid', 'xAxis', 'yAxis', 'geo', 'graph', 'polar', 'radiusAxis', 'angleAxis', 'bmap'];\n\nvar BrushTargetManager =\n/** @class */\nfunction () {\n /**\n * @param finder contains Index/Id/Name of xAxis/yAxis/geo/grid\n * Each can be {number|Array.}. like: {xAxisIndex: [3, 4]}\n * @param opt.include include coordinate system types.\n */\n function BrushTargetManager(finder, ecModel, opt) {\n var _this = this;\n\n this._targetInfoList = [];\n var foundCpts = parseFinder(ecModel, finder);\n each(targetInfoBuilders, function (builder, type) {\n if (!opt || !opt.include || indexOf(opt.include, type) >= 0) {\n builder(foundCpts, _this._targetInfoList);\n }\n });\n }\n\n BrushTargetManager.prototype.setOutputRanges = function (areas, ecModel) {\n this.matchOutputRanges(areas, ecModel, function (area, coordRange, coordSys) {\n (area.coordRanges || (area.coordRanges = [])).push(coordRange); // area.coordRange is the first of area.coordRanges\n\n if (!area.coordRange) {\n area.coordRange = coordRange; // In 'category' axis, coord to pixel is not reversible, so we can not\n // rebuild range by coordRange accrately, which may bring trouble when\n // brushing only one item. So we use __rangeOffset to rebuilding range\n // by coordRange. And this it only used in brush component so it is no\n // need to be adapted to coordRanges.\n\n var result = coordConvert[area.brushType](0, coordSys, coordRange);\n area.__rangeOffset = {\n offset: diffProcessor[area.brushType](result.values, area.range, [1, 1]),\n xyMinMax: result.xyMinMax\n };\n }\n });\n return areas;\n };\n\n BrushTargetManager.prototype.matchOutputRanges = function (areas, ecModel, cb) {\n each(areas, function (area) {\n var targetInfo = this.findTargetInfo(area, ecModel);\n\n if (targetInfo && targetInfo !== true) {\n each(targetInfo.coordSyses, function (coordSys) {\n var result = coordConvert[area.brushType](1, coordSys, area.range, true);\n cb(area, result.values, coordSys, ecModel);\n });\n }\n }, this);\n };\n /**\n * the `areas` is `BrushModel.areas`.\n * Called in layout stage.\n * convert `area.coordRange` to global range and set panelId to `area.range`.\n */\n\n\n BrushTargetManager.prototype.setInputRanges = function (areas, ecModel) {\n each(areas, function (area) {\n var targetInfo = this.findTargetInfo(area, ecModel);\n\n if (process.env.NODE_ENV !== 'production') {\n assert(!targetInfo || targetInfo === true || area.coordRange, 'coordRange must be specified when coord index specified.');\n assert(!targetInfo || targetInfo !== true || area.range, 'range must be specified in global brush.');\n }\n\n area.range = area.range || []; // convert coordRange to global range and set panelId.\n\n if (targetInfo && targetInfo !== true) {\n area.panelId = targetInfo.panelId; // (1) area.range should always be calculate from coordRange but does\n // not keep its original value, for the sake of the dataZoom scenario,\n // where area.coordRange remains unchanged but area.range may be changed.\n // (2) Only support converting one coordRange to pixel range in brush\n // component. So do not consider `coordRanges`.\n // (3) About __rangeOffset, see comment above.\n\n var result = coordConvert[area.brushType](0, targetInfo.coordSys, area.coordRange);\n var rangeOffset = area.__rangeOffset;\n area.range = rangeOffset ? diffProcessor[area.brushType](result.values, rangeOffset.offset, getScales(result.xyMinMax, rangeOffset.xyMinMax)) : result.values;\n }\n }, this);\n };\n\n BrushTargetManager.prototype.makePanelOpts = function (api, getDefaultBrushType) {\n return map(this._targetInfoList, function (targetInfo) {\n var rect = targetInfo.getPanelRect();\n return {\n panelId: targetInfo.panelId,\n defaultBrushType: getDefaultBrushType ? getDefaultBrushType(targetInfo) : null,\n clipPath: brushHelper.makeRectPanelClipPath(rect),\n isTargetByCursor: brushHelper.makeRectIsTargetByCursor(rect, api, targetInfo.coordSysModel),\n getLinearBrushOtherExtent: brushHelper.makeLinearBrushOtherExtent(rect)\n };\n });\n };\n\n BrushTargetManager.prototype.controlSeries = function (area, seriesModel, ecModel) {\n // Check whether area is bound in coord, and series do not belong to that coord.\n // If do not do this check, some brush (like lineX) will controll all axes.\n var targetInfo = this.findTargetInfo(area, ecModel);\n return targetInfo === true || targetInfo && indexOf(targetInfo.coordSyses, seriesModel.coordinateSystem) >= 0;\n };\n /**\n * If return Object, a coord found.\n * If return true, global found.\n * Otherwise nothing found.\n */\n\n\n BrushTargetManager.prototype.findTargetInfo = function (area, ecModel) {\n var targetInfoList = this._targetInfoList;\n var foundCpts = parseFinder(ecModel, area);\n\n for (var i = 0; i < targetInfoList.length; i++) {\n var targetInfo = targetInfoList[i];\n var areaPanelId = area.panelId;\n\n if (areaPanelId) {\n if (targetInfo.panelId === areaPanelId) {\n return targetInfo;\n }\n } else {\n for (var j = 0; j < targetInfoMatchers.length; j++) {\n if (targetInfoMatchers[j](foundCpts, targetInfo)) {\n return targetInfo;\n }\n }\n }\n }\n\n return true;\n };\n\n return BrushTargetManager;\n}();\n\nfunction formatMinMax(minMax) {\n minMax[0] > minMax[1] && minMax.reverse();\n return minMax;\n}\n\nfunction parseFinder(ecModel, finder) {\n return modelUtilParseFinder(ecModel, finder, {\n includeMainTypes: INCLUDE_FINDER_MAIN_TYPES\n });\n}\n\nvar targetInfoBuilders = {\n grid: function (foundCpts, targetInfoList) {\n var xAxisModels = foundCpts.xAxisModels;\n var yAxisModels = foundCpts.yAxisModels;\n var gridModels = foundCpts.gridModels; // Remove duplicated.\n\n var gridModelMap = createHashMap();\n var xAxesHas = {};\n var yAxesHas = {};\n\n if (!xAxisModels && !yAxisModels && !gridModels) {\n return;\n }\n\n each(xAxisModels, function (axisModel) {\n var gridModel = axisModel.axis.grid.model;\n gridModelMap.set(gridModel.id, gridModel);\n xAxesHas[gridModel.id] = true;\n });\n each(yAxisModels, function (axisModel) {\n var gridModel = axisModel.axis.grid.model;\n gridModelMap.set(gridModel.id, gridModel);\n yAxesHas[gridModel.id] = true;\n });\n each(gridModels, function (gridModel) {\n gridModelMap.set(gridModel.id, gridModel);\n xAxesHas[gridModel.id] = true;\n yAxesHas[gridModel.id] = true;\n });\n gridModelMap.each(function (gridModel) {\n var grid = gridModel.coordinateSystem;\n var cartesians = [];\n each(grid.getCartesians(), function (cartesian, index) {\n if (indexOf(xAxisModels, cartesian.getAxis('x').model) >= 0 || indexOf(yAxisModels, cartesian.getAxis('y').model) >= 0) {\n cartesians.push(cartesian);\n }\n });\n targetInfoList.push({\n panelId: 'grid--' + gridModel.id,\n gridModel: gridModel,\n coordSysModel: gridModel,\n // Use the first one as the representitive coordSys.\n coordSys: cartesians[0],\n coordSyses: cartesians,\n getPanelRect: panelRectBuilders.grid,\n xAxisDeclared: xAxesHas[gridModel.id],\n yAxisDeclared: yAxesHas[gridModel.id]\n });\n });\n },\n geo: function (foundCpts, targetInfoList) {\n each(foundCpts.geoModels, function (geoModel) {\n var coordSys = geoModel.coordinateSystem;\n targetInfoList.push({\n panelId: 'geo--' + geoModel.id,\n geoModel: geoModel,\n coordSysModel: geoModel,\n coordSys: coordSys,\n coordSyses: [coordSys],\n getPanelRect: panelRectBuilders.geo\n });\n });\n }\n};\nvar targetInfoMatchers = [// grid\nfunction (foundCpts, targetInfo) {\n var xAxisModel = foundCpts.xAxisModel;\n var yAxisModel = foundCpts.yAxisModel;\n var gridModel = foundCpts.gridModel;\n !gridModel && xAxisModel && (gridModel = xAxisModel.axis.grid.model);\n !gridModel && yAxisModel && (gridModel = yAxisModel.axis.grid.model);\n return gridModel && gridModel === targetInfo.gridModel;\n}, // geo\nfunction (foundCpts, targetInfo) {\n var geoModel = foundCpts.geoModel;\n return geoModel && geoModel === targetInfo.geoModel;\n}];\nvar panelRectBuilders = {\n grid: function () {\n // grid is not Transformable.\n return this.coordSys.master.getRect().clone();\n },\n geo: function () {\n var coordSys = this.coordSys;\n var rect = coordSys.getBoundingRect().clone(); // geo roam and zoom transform\n\n rect.applyTransform(graphic.getTransform(coordSys));\n return rect;\n }\n};\nvar coordConvert = {\n lineX: curry(axisConvert, 0),\n lineY: curry(axisConvert, 1),\n rect: function (to, coordSys, rangeOrCoordRange, clamp) {\n var xminymin = to ? coordSys.pointToData([rangeOrCoordRange[0][0], rangeOrCoordRange[1][0]], clamp) : coordSys.dataToPoint([rangeOrCoordRange[0][0], rangeOrCoordRange[1][0]], clamp);\n var xmaxymax = to ? coordSys.pointToData([rangeOrCoordRange[0][1], rangeOrCoordRange[1][1]], clamp) : coordSys.dataToPoint([rangeOrCoordRange[0][1], rangeOrCoordRange[1][1]], clamp);\n var values = [formatMinMax([xminymin[0], xmaxymax[0]]), formatMinMax([xminymin[1], xmaxymax[1]])];\n return {\n values: values,\n xyMinMax: values\n };\n },\n polygon: function (to, coordSys, rangeOrCoordRange, clamp) {\n var xyMinMax = [[Infinity, -Infinity], [Infinity, -Infinity]];\n var values = map(rangeOrCoordRange, function (item) {\n var p = to ? coordSys.pointToData(item, clamp) : coordSys.dataToPoint(item, clamp);\n xyMinMax[0][0] = Math.min(xyMinMax[0][0], p[0]);\n xyMinMax[1][0] = Math.min(xyMinMax[1][0], p[1]);\n xyMinMax[0][1] = Math.max(xyMinMax[0][1], p[0]);\n xyMinMax[1][1] = Math.max(xyMinMax[1][1], p[1]);\n return p;\n });\n return {\n values: values,\n xyMinMax: xyMinMax\n };\n }\n};\n\nfunction axisConvert(axisNameIndex, to, coordSys, rangeOrCoordRange) {\n if (process.env.NODE_ENV !== 'production') {\n assert(coordSys.type === 'cartesian2d', 'lineX/lineY brush is available only in cartesian2d.');\n }\n\n var axis = coordSys.getAxis(['x', 'y'][axisNameIndex]);\n var values = formatMinMax(map([0, 1], function (i) {\n return to ? axis.coordToData(axis.toLocalCoord(rangeOrCoordRange[i]), true) : axis.toGlobalCoord(axis.dataToCoord(rangeOrCoordRange[i]));\n }));\n var xyMinMax = [];\n xyMinMax[axisNameIndex] = values;\n xyMinMax[1 - axisNameIndex] = [NaN, NaN];\n return {\n values: values,\n xyMinMax: xyMinMax\n };\n}\n\nvar diffProcessor = {\n lineX: curry(axisDiffProcessor, 0),\n lineY: curry(axisDiffProcessor, 1),\n rect: function (values, refer, scales) {\n return [[values[0][0] - scales[0] * refer[0][0], values[0][1] - scales[0] * refer[0][1]], [values[1][0] - scales[1] * refer[1][0], values[1][1] - scales[1] * refer[1][1]]];\n },\n polygon: function (values, refer, scales) {\n return map(values, function (item, idx) {\n return [item[0] - scales[0] * refer[idx][0], item[1] - scales[1] * refer[idx][1]];\n });\n }\n};\n\nfunction axisDiffProcessor(axisNameIndex, values, refer, scales) {\n return [values[0] - scales[axisNameIndex] * refer[0], values[1] - scales[axisNameIndex] * refer[1]];\n} // We have to process scale caused by dataZoom manually,\n// although it might be not accurate.\n// Return [0~1, 0~1]\n\n\nfunction getScales(xyMinMaxCurr, xyMinMaxOrigin) {\n var sizeCurr = getSize(xyMinMaxCurr);\n var sizeOrigin = getSize(xyMinMaxOrigin);\n var scales = [sizeCurr[0] / sizeOrigin[0], sizeCurr[1] / sizeOrigin[1]];\n isNaN(scales[0]) && (scales[0] = 1);\n isNaN(scales[1]) && (scales[1] = 1);\n return scales;\n}\n\nfunction getSize(xyMinMax) {\n return xyMinMax ? [xyMinMax[0][1] - xyMinMax[0][0], xyMinMax[1][1] - xyMinMax[1][0]] : [NaN, NaN];\n}\n\nexport default BrushTargetManager;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport RoamController from './RoamController.js';\nimport * as roamHelper from '../../component/helper/roamHelper.js';\nimport { onIrrelevantElement } from '../../component/helper/cursorHelper.js';\nimport * as graphic from '../../util/graphic.js';\nimport { toggleHoverEmphasis, enableComponentHighDownFeatures, setDefaultStateProxy } from '../../util/states.js';\nimport geoSourceManager from '../../coord/geo/geoSourceManager.js';\nimport { getUID } from '../../util/component.js';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle.js';\nimport { getECData } from '../../util/innerStore.js';\nimport { createOrUpdatePatternFromDecal } from '../../util/decal.js';\nimport Displayable from 'zrender/lib/graphic/Displayable.js';\nimport { makeInner } from '../../util/model.js';\n/**\n * Only these tags enable use `itemStyle` if they are named in SVG.\n * Other tags like might not suitable for `itemStyle`.\n * They will not be considered to be styled until some requirements come.\n */\n\nvar OPTION_STYLE_ENABLED_TAGS = ['rect', 'circle', 'line', 'ellipse', 'polygon', 'polyline', 'path'];\nvar OPTION_STYLE_ENABLED_TAG_MAP = zrUtil.createHashMap(OPTION_STYLE_ENABLED_TAGS);\nvar STATE_TRIGGER_TAG_MAP = zrUtil.createHashMap(OPTION_STYLE_ENABLED_TAGS.concat(['g']));\nvar LABEL_HOST_MAP = zrUtil.createHashMap(OPTION_STYLE_ENABLED_TAGS.concat(['g']));\nvar mapLabelRaw = makeInner();\n\nfunction getFixedItemStyle(model) {\n var itemStyle = model.getItemStyle();\n var areaColor = model.get('areaColor'); // If user want the color not to be changed when hover,\n // they should both set areaColor and color to be null.\n\n if (areaColor != null) {\n itemStyle.fill = areaColor;\n }\n\n return itemStyle;\n} // Only stroke can be used for line.\n// Using fill in style if stroke not exits.\n// TODO Not sure yet. Perhaps a separate `lineStyle`?\n\n\nfunction fixLineStyle(styleHost) {\n var style = styleHost.style;\n\n if (style) {\n style.stroke = style.stroke || style.fill;\n style.fill = null;\n }\n}\n\nvar MapDraw =\n/** @class */\nfunction () {\n function MapDraw(api) {\n var group = new graphic.Group();\n this.uid = getUID('ec_map_draw');\n this._controller = new RoamController(api.getZr());\n this._controllerHost = {\n target: group\n };\n this.group = group;\n group.add(this._regionsGroup = new graphic.Group());\n group.add(this._svgGroup = new graphic.Group());\n }\n\n MapDraw.prototype.draw = function (mapOrGeoModel, ecModel, api, fromView, payload) {\n var isGeo = mapOrGeoModel.mainType === 'geo'; // Map series has data. GEO model that controlled by map series\n // will be assigned with map data. Other GEO model has no data.\n\n var data = mapOrGeoModel.getData && mapOrGeoModel.getData();\n isGeo && ecModel.eachComponent({\n mainType: 'series',\n subType: 'map'\n }, function (mapSeries) {\n if (!data && mapSeries.getHostGeoModel() === mapOrGeoModel) {\n data = mapSeries.getData();\n }\n });\n var geo = mapOrGeoModel.coordinateSystem;\n var regionsGroup = this._regionsGroup;\n var group = this.group;\n var transformInfo = geo.getTransformInfo();\n var transformInfoRaw = transformInfo.raw;\n var transformInfoRoam = transformInfo.roam; // No animation when first draw or in action\n\n var isFirstDraw = !regionsGroup.childAt(0) || payload;\n\n if (isFirstDraw) {\n group.x = transformInfoRoam.x;\n group.y = transformInfoRoam.y;\n group.scaleX = transformInfoRoam.scaleX;\n group.scaleY = transformInfoRoam.scaleY;\n group.dirty();\n } else {\n graphic.updateProps(group, transformInfoRoam, mapOrGeoModel);\n }\n\n var isVisualEncodedByVisualMap = data && data.getVisual('visualMeta') && data.getVisual('visualMeta').length > 0;\n var viewBuildCtx = {\n api: api,\n geo: geo,\n mapOrGeoModel: mapOrGeoModel,\n data: data,\n isVisualEncodedByVisualMap: isVisualEncodedByVisualMap,\n isGeo: isGeo,\n transformInfoRaw: transformInfoRaw\n };\n\n if (geo.resourceType === 'geoJSON') {\n this._buildGeoJSON(viewBuildCtx);\n } else if (geo.resourceType === 'geoSVG') {\n this._buildSVG(viewBuildCtx);\n }\n\n this._updateController(mapOrGeoModel, ecModel, api);\n\n this._updateMapSelectHandler(mapOrGeoModel, regionsGroup, api, fromView);\n };\n\n MapDraw.prototype._buildGeoJSON = function (viewBuildCtx) {\n var regionsGroupByName = this._regionsGroupByName = zrUtil.createHashMap();\n var regionsInfoByName = zrUtil.createHashMap();\n var regionsGroup = this._regionsGroup;\n var transformInfoRaw = viewBuildCtx.transformInfoRaw;\n var mapOrGeoModel = viewBuildCtx.mapOrGeoModel;\n var data = viewBuildCtx.data;\n var projection = viewBuildCtx.geo.projection;\n var projectionStream = projection && projection.stream;\n\n function transformPoint(point, project) {\n if (project) {\n // projection may return null point.\n point = project(point);\n }\n\n return point && [point[0] * transformInfoRaw.scaleX + transformInfoRaw.x, point[1] * transformInfoRaw.scaleY + transformInfoRaw.y];\n }\n\n ;\n\n function transformPolygonPoints(inPoints) {\n var outPoints = []; // If projectionStream is provided. Use it instead of single point project.\n\n var project = !projectionStream && projection && projection.project;\n\n for (var i = 0; i < inPoints.length; ++i) {\n var newPt = transformPoint(inPoints[i], project);\n newPt && outPoints.push(newPt);\n }\n\n return outPoints;\n }\n\n function getPolyShape(points) {\n return {\n shape: {\n points: transformPolygonPoints(points)\n }\n };\n }\n\n regionsGroup.removeAll(); // Only when the resource is GeoJSON, there is `geo.regions`.\n\n zrUtil.each(viewBuildCtx.geo.regions, function (region) {\n var regionName = region.name; // Consider in GeoJson properties.name may be duplicated, for example,\n // there is multiple region named \"United Kindom\" or \"France\" (so many\n // colonies). And it is not appropriate to merge them in geo, which\n // will make them share the same label and bring trouble in label\n // location calculation.\n\n var regionGroup = regionsGroupByName.get(regionName);\n\n var _a = regionsInfoByName.get(regionName) || {},\n dataIdx = _a.dataIdx,\n regionModel = _a.regionModel;\n\n if (!regionGroup) {\n regionGroup = regionsGroupByName.set(regionName, new graphic.Group());\n regionsGroup.add(regionGroup);\n dataIdx = data ? data.indexOfName(regionName) : null;\n regionModel = viewBuildCtx.isGeo ? mapOrGeoModel.getRegionModel(regionName) : data ? data.getItemModel(dataIdx) : null;\n regionsInfoByName.set(regionName, {\n dataIdx: dataIdx,\n regionModel: regionModel\n });\n }\n\n var polygonSubpaths = [];\n var polylineSubpaths = [];\n zrUtil.each(region.geometries, function (geometry) {\n // Polygon and MultiPolygon\n if (geometry.type === 'polygon') {\n var polys = [geometry.exterior].concat(geometry.interiors || []);\n\n if (projectionStream) {\n polys = projectPolys(polys, projectionStream);\n }\n\n zrUtil.each(polys, function (poly) {\n polygonSubpaths.push(new graphic.Polygon(getPolyShape(poly)));\n });\n } // LineString and MultiLineString\n else {\n var points = geometry.points;\n\n if (projectionStream) {\n points = projectPolys(points, projectionStream, true);\n }\n\n zrUtil.each(points, function (points) {\n polylineSubpaths.push(new graphic.Polyline(getPolyShape(points)));\n });\n }\n });\n var centerPt = transformPoint(region.getCenter(), projection && projection.project);\n\n function createCompoundPath(subpaths, isLine) {\n if (!subpaths.length) {\n return;\n }\n\n var compoundPath = new graphic.CompoundPath({\n culling: true,\n segmentIgnoreThreshold: 1,\n shape: {\n paths: subpaths\n }\n });\n regionGroup.add(compoundPath);\n applyOptionStyleForRegion(viewBuildCtx, compoundPath, dataIdx, regionModel);\n resetLabelForRegion(viewBuildCtx, compoundPath, regionName, regionModel, mapOrGeoModel, dataIdx, centerPt);\n\n if (isLine) {\n fixLineStyle(compoundPath);\n zrUtil.each(compoundPath.states, fixLineStyle);\n }\n }\n\n createCompoundPath(polygonSubpaths);\n createCompoundPath(polylineSubpaths, true);\n }); // Ensure children have been added to `regionGroup` before calling them.\n\n regionsGroupByName.each(function (regionGroup, regionName) {\n var _a = regionsInfoByName.get(regionName),\n dataIdx = _a.dataIdx,\n regionModel = _a.regionModel;\n\n resetEventTriggerForRegion(viewBuildCtx, regionGroup, regionName, regionModel, mapOrGeoModel, dataIdx);\n resetTooltipForRegion(viewBuildCtx, regionGroup, regionName, regionModel, mapOrGeoModel);\n resetStateTriggerForRegion(viewBuildCtx, regionGroup, regionName, regionModel, mapOrGeoModel);\n }, this);\n };\n\n MapDraw.prototype._buildSVG = function (viewBuildCtx) {\n var mapName = viewBuildCtx.geo.map;\n var transformInfoRaw = viewBuildCtx.transformInfoRaw;\n this._svgGroup.x = transformInfoRaw.x;\n this._svgGroup.y = transformInfoRaw.y;\n this._svgGroup.scaleX = transformInfoRaw.scaleX;\n this._svgGroup.scaleY = transformInfoRaw.scaleY;\n\n if (this._svgResourceChanged(mapName)) {\n this._freeSVG();\n\n this._useSVG(mapName);\n }\n\n var svgDispatcherMap = this._svgDispatcherMap = zrUtil.createHashMap();\n var focusSelf = false;\n zrUtil.each(this._svgGraphicRecord.named, function (namedItem) {\n // Note that we also allow different elements have the same name.\n // For example, a glyph of a city and the label of the city have\n // the same name and their tooltip info can be defined in a single\n // region option.\n var regionName = namedItem.name;\n var mapOrGeoModel = viewBuildCtx.mapOrGeoModel;\n var data = viewBuildCtx.data;\n var svgNodeTagLower = namedItem.svgNodeTagLower;\n var el = namedItem.el;\n var dataIdx = data ? data.indexOfName(regionName) : null;\n var regionModel = mapOrGeoModel.getRegionModel(regionName);\n\n if (OPTION_STYLE_ENABLED_TAG_MAP.get(svgNodeTagLower) != null && el instanceof Displayable) {\n applyOptionStyleForRegion(viewBuildCtx, el, dataIdx, regionModel);\n }\n\n if (el instanceof Displayable) {\n el.culling = true;\n } // We do not know how the SVG like so we'd better not to change z2.\n // Otherwise it might bring some unexpected result. For example,\n // an area hovered that make some inner city can not be clicked.\n\n\n el.z2EmphasisLift = 0; // If self named:\n\n if (!namedItem.namedFrom) {\n // label should batter to be displayed based on the center of \n // if it is named rather than displayed on each child.\n if (LABEL_HOST_MAP.get(svgNodeTagLower) != null) {\n resetLabelForRegion(viewBuildCtx, el, regionName, regionModel, mapOrGeoModel, dataIdx, null);\n }\n\n resetEventTriggerForRegion(viewBuildCtx, el, regionName, regionModel, mapOrGeoModel, dataIdx);\n resetTooltipForRegion(viewBuildCtx, el, regionName, regionModel, mapOrGeoModel);\n\n if (STATE_TRIGGER_TAG_MAP.get(svgNodeTagLower) != null) {\n var focus_1 = resetStateTriggerForRegion(viewBuildCtx, el, regionName, regionModel, mapOrGeoModel);\n\n if (focus_1 === 'self') {\n focusSelf = true;\n }\n\n var els = svgDispatcherMap.get(regionName) || svgDispatcherMap.set(regionName, []);\n els.push(el);\n }\n }\n }, this);\n\n this._enableBlurEntireSVG(focusSelf, viewBuildCtx);\n };\n\n MapDraw.prototype._enableBlurEntireSVG = function (focusSelf, viewBuildCtx) {\n // It's a little complicated to support blurring the entire geoSVG in series-map.\n // So do not support it until some requirements come.\n // At present, in series-map, only regions can be blurred.\n if (focusSelf && viewBuildCtx.isGeo) {\n var blurStyle = viewBuildCtx.mapOrGeoModel.getModel(['blur', 'itemStyle']).getItemStyle(); // Only support `opacity` here. Because not sure that other props are suitable for\n // all of the elements generated by SVG (especially for Text/TSpan/Image/... ).\n\n var opacity_1 = blurStyle.opacity;\n\n this._svgGraphicRecord.root.traverse(function (el) {\n if (!el.isGroup) {\n // PENDING: clear those settings to SVG elements when `_freeSVG`.\n // (Currently it happen not to be needed.)\n setDefaultStateProxy(el);\n var style = el.ensureState('blur').style || {}; // Do not overwrite the region style that already set from region option.\n\n if (style.opacity == null && opacity_1 != null) {\n style.opacity = opacity_1;\n } // If `ensureState('blur').style = {}`, there will be default opacity.\n // Enable `stateTransition` (animation).\n\n\n el.ensureState('emphasis');\n }\n });\n }\n };\n\n MapDraw.prototype.remove = function () {\n this._regionsGroup.removeAll();\n\n this._regionsGroupByName = null;\n\n this._svgGroup.removeAll();\n\n this._freeSVG();\n\n this._controller.dispose();\n\n this._controllerHost = null;\n };\n\n MapDraw.prototype.findHighDownDispatchers = function (name, geoModel) {\n if (name == null) {\n return [];\n }\n\n var geo = geoModel.coordinateSystem;\n\n if (geo.resourceType === 'geoJSON') {\n var regionsGroupByName = this._regionsGroupByName;\n\n if (regionsGroupByName) {\n var regionGroup = regionsGroupByName.get(name);\n return regionGroup ? [regionGroup] : [];\n }\n } else if (geo.resourceType === 'geoSVG') {\n return this._svgDispatcherMap && this._svgDispatcherMap.get(name) || [];\n }\n };\n\n MapDraw.prototype._svgResourceChanged = function (mapName) {\n return this._svgMapName !== mapName;\n };\n\n MapDraw.prototype._useSVG = function (mapName) {\n var resource = geoSourceManager.getGeoResource(mapName);\n\n if (resource && resource.type === 'geoSVG') {\n var svgGraphic = resource.useGraphic(this.uid);\n\n this._svgGroup.add(svgGraphic.root);\n\n this._svgGraphicRecord = svgGraphic;\n this._svgMapName = mapName;\n }\n };\n\n MapDraw.prototype._freeSVG = function () {\n var mapName = this._svgMapName;\n\n if (mapName == null) {\n return;\n }\n\n var resource = geoSourceManager.getGeoResource(mapName);\n\n if (resource && resource.type === 'geoSVG') {\n resource.freeGraphic(this.uid);\n }\n\n this._svgGraphicRecord = null;\n this._svgDispatcherMap = null;\n\n this._svgGroup.removeAll();\n\n this._svgMapName = null;\n };\n\n MapDraw.prototype._updateController = function (mapOrGeoModel, ecModel, api) {\n var geo = mapOrGeoModel.coordinateSystem;\n var controller = this._controller;\n var controllerHost = this._controllerHost; // @ts-ignore FIXME:TS\n\n controllerHost.zoomLimit = mapOrGeoModel.get('scaleLimit');\n controllerHost.zoom = geo.getZoom(); // roamType is will be set default true if it is null\n // @ts-ignore FIXME:TS\n\n controller.enable(mapOrGeoModel.get('roam') || false);\n var mainType = mapOrGeoModel.mainType;\n\n function makeActionBase() {\n var action = {\n type: 'geoRoam',\n componentType: mainType\n };\n action[mainType + 'Id'] = mapOrGeoModel.id;\n return action;\n }\n\n controller.off('pan').on('pan', function (e) {\n this._mouseDownFlag = false;\n roamHelper.updateViewOnPan(controllerHost, e.dx, e.dy);\n api.dispatchAction(zrUtil.extend(makeActionBase(), {\n dx: e.dx,\n dy: e.dy,\n animation: {\n duration: 0\n }\n }));\n }, this);\n controller.off('zoom').on('zoom', function (e) {\n this._mouseDownFlag = false;\n roamHelper.updateViewOnZoom(controllerHost, e.scale, e.originX, e.originY);\n api.dispatchAction(zrUtil.extend(makeActionBase(), {\n zoom: e.scale,\n originX: e.originX,\n originY: e.originY,\n animation: {\n duration: 0\n }\n }));\n }, this);\n controller.setPointerChecker(function (e, x, y) {\n return geo.containPoint([x, y]) && !onIrrelevantElement(e, api, mapOrGeoModel);\n });\n };\n /**\n * FIXME: this is a temporarily workaround.\n * When `geoRoam` the elements need to be reset in `MapView['render']`, because the props like\n * `ignore` might have been modified by `LabelManager`, and `LabelManager#addLabelsOfSeries`\n * will subsequently cache `defaultAttr` like `ignore`. If do not do this reset, the modified\n * props will have no chance to be restored.\n * Note: This reset should be after `clearStates` in `renderSeries` because `useStates` in\n * `renderSeries` will cache the modified `ignore` to `el._normalState`.\n * TODO:\n * Use clone/immutable in `LabelManager`?\n */\n\n\n MapDraw.prototype.resetForLabelLayout = function () {\n this.group.traverse(function (el) {\n var label = el.getTextContent();\n\n if (label) {\n label.ignore = mapLabelRaw(label).ignore;\n }\n });\n };\n\n MapDraw.prototype._updateMapSelectHandler = function (mapOrGeoModel, regionsGroup, api, fromView) {\n var mapDraw = this;\n regionsGroup.off('mousedown');\n regionsGroup.off('click'); // @ts-ignore FIXME:TS resolve type conflict\n\n if (mapOrGeoModel.get('selectedMode')) {\n regionsGroup.on('mousedown', function () {\n mapDraw._mouseDownFlag = true;\n });\n regionsGroup.on('click', function (e) {\n if (!mapDraw._mouseDownFlag) {\n return;\n }\n\n mapDraw._mouseDownFlag = false;\n });\n }\n };\n\n return MapDraw;\n}();\n\n;\n\nfunction applyOptionStyleForRegion(viewBuildCtx, el, dataIndex, regionModel) {\n // All of the path are using `itemStyle`, because\n // (1) Some SVG also use fill on polyline (The different between\n // polyline and polygon is \"open\" or \"close\" but not fill or not).\n // (2) For the common props like opacity, if some use itemStyle\n // and some use `lineStyle`, it might confuse users.\n // (3) Most SVG use , where can not detect whether to draw a \"line\"\n // or a filled shape, so use `itemStyle` for .\n var normalStyleModel = regionModel.getModel('itemStyle');\n var emphasisStyleModel = regionModel.getModel(['emphasis', 'itemStyle']);\n var blurStyleModel = regionModel.getModel(['blur', 'itemStyle']);\n var selectStyleModel = regionModel.getModel(['select', 'itemStyle']); // NOTE: DON'T use 'style' in visual when drawing map.\n // This component is used for drawing underlying map for both geo component and map series.\n\n var normalStyle = getFixedItemStyle(normalStyleModel);\n var emphasisStyle = getFixedItemStyle(emphasisStyleModel);\n var selectStyle = getFixedItemStyle(selectStyleModel);\n var blurStyle = getFixedItemStyle(blurStyleModel); // Update the itemStyle if has data visual\n\n var data = viewBuildCtx.data;\n\n if (data) {\n // Only visual color of each item will be used. It can be encoded by visualMap\n // But visual color of series is used in symbol drawing\n // Visual color for each series is for the symbol draw\n var style = data.getItemVisual(dataIndex, 'style');\n var decal = data.getItemVisual(dataIndex, 'decal');\n\n if (viewBuildCtx.isVisualEncodedByVisualMap && style.fill) {\n normalStyle.fill = style.fill;\n }\n\n if (decal) {\n normalStyle.decal = createOrUpdatePatternFromDecal(decal, viewBuildCtx.api);\n }\n } // SVG text, tspan and image can be named but not supporeted\n // to be styled by region option yet.\n\n\n el.setStyle(normalStyle);\n el.style.strokeNoScale = true;\n el.ensureState('emphasis').style = emphasisStyle;\n el.ensureState('select').style = selectStyle;\n el.ensureState('blur').style = blurStyle; // Enable blur\n\n setDefaultStateProxy(el);\n}\n\nfunction resetLabelForRegion(viewBuildCtx, el, regionName, regionModel, mapOrGeoModel, // Exist only if `viewBuildCtx.data` exists.\ndataIdx, // If labelXY not provided, use `textConfig.position: 'inside'`\nlabelXY) {\n var data = viewBuildCtx.data;\n var isGeo = viewBuildCtx.isGeo;\n var isDataNaN = data && isNaN(data.get(data.mapDimension('value'), dataIdx));\n var itemLayout = data && data.getItemLayout(dataIdx); // In the following cases label will be drawn\n // 1. In map series and data value is NaN\n // 2. In geo component\n // 3. Region has no series legendIcon, which will be add a showLabel flag in mapSymbolLayout\n\n if (isGeo || isDataNaN || itemLayout && itemLayout.showLabel) {\n var query = !isGeo ? dataIdx : regionName;\n var labelFetcher = void 0; // Consider dataIdx not found.\n\n if (!data || dataIdx >= 0) {\n labelFetcher = mapOrGeoModel;\n }\n\n var specifiedTextOpt = labelXY ? {\n normal: {\n align: 'center',\n verticalAlign: 'middle'\n }\n } : null; // Caveat: must be called after `setDefaultStateProxy(el);` called.\n // because textContent will be assign with `el.stateProxy` inside.\n\n setLabelStyle(el, getLabelStatesModels(regionModel), {\n labelFetcher: labelFetcher,\n labelDataIndex: query,\n defaultText: regionName\n }, specifiedTextOpt);\n var textEl = el.getTextContent();\n\n if (textEl) {\n mapLabelRaw(textEl).ignore = textEl.ignore;\n\n if (el.textConfig && labelXY) {\n // Compute a relative offset based on the el bounding rect.\n var rect = el.getBoundingRect().clone(); // Need to make sure the percent position base on the same rect in normal and\n // emphasis state. Otherwise if using boundingRect of el, but the emphasis state\n // has borderWidth (even 0.5px), the text position will be changed obviously\n // if the position is very big like ['1234%', '1345%'].\n\n el.textConfig.layoutRect = rect;\n el.textConfig.position = [(labelXY[0] - rect.x) / rect.width * 100 + '%', (labelXY[1] - rect.y) / rect.height * 100 + '%'];\n }\n } // PENDING:\n // If labelLayout is enabled (test/label-layout.html), el.dataIndex should be specified.\n // But el.dataIndex is also used to determine whether user event should be triggered,\n // where el.seriesIndex or el.dataModel must be specified. At present for a single el\n // there is not case that \"only label layout enabled but user event disabled\", so here\n // we depends `resetEventTriggerForRegion` to do the job of setting `el.dataIndex`.\n\n\n el.disableLabelAnimation = true;\n } else {\n el.removeTextContent();\n el.removeTextConfig();\n el.disableLabelAnimation = null;\n }\n}\n\nfunction resetEventTriggerForRegion(viewBuildCtx, eventTrigger, regionName, regionModel, mapOrGeoModel, // Exist only if `viewBuildCtx.data` exists.\ndataIdx) {\n // setItemGraphicEl, setHoverStyle after all polygons and labels\n // are added to the regionGroup\n if (viewBuildCtx.data) {\n // FIXME: when series-map use a SVG map, and there are duplicated name specified\n // on different SVG elements, after `data.setItemGraphicEl(...)`:\n // (1) all of them will be mounted with `dataIndex`, `seriesIndex`, so that tooltip\n // can be triggered only mouse hover. That's correct.\n // (2) only the last element will be kept in `data`, so that if trigger tooltip\n // by `dispatchAction`, only the last one can be found and triggered. That might be\n // not correct. We will fix it in future if anyone demanding that.\n viewBuildCtx.data.setItemGraphicEl(dataIdx, eventTrigger);\n } // series-map will not trigger \"geoselectchange\" no matter it is\n // based on a declared geo component. Because series-map will\n // trigger \"selectchange\". If it trigger both the two events,\n // If users call `chart.dispatchAction({type: 'toggleSelect'})`,\n // it not easy to also fire event \"geoselectchanged\".\n else {\n // Package custom mouse event for geo component\n getECData(eventTrigger).eventData = {\n componentType: 'geo',\n componentIndex: mapOrGeoModel.componentIndex,\n geoIndex: mapOrGeoModel.componentIndex,\n name: regionName,\n region: regionModel && regionModel.option || {}\n };\n }\n}\n\nfunction resetTooltipForRegion(viewBuildCtx, el, regionName, regionModel, mapOrGeoModel) {\n if (!viewBuildCtx.data) {\n graphic.setTooltipConfig({\n el: el,\n componentModel: mapOrGeoModel,\n itemName: regionName,\n // @ts-ignore FIXME:TS fix the \"compatible with each other\"?\n itemTooltipOption: regionModel.get('tooltip')\n });\n }\n}\n\nfunction resetStateTriggerForRegion(viewBuildCtx, el, regionName, regionModel, mapOrGeoModel) {\n // @ts-ignore FIXME:TS fix the \"compatible with each other\"?\n el.highDownSilentOnTouch = !!mapOrGeoModel.get('selectedMode'); // @ts-ignore FIXME:TS fix the \"compatible with each other\"?\n\n var emphasisModel = regionModel.getModel('emphasis');\n var focus = emphasisModel.get('focus');\n toggleHoverEmphasis(el, focus, emphasisModel.get('blurScope'), emphasisModel.get('disabled'));\n\n if (viewBuildCtx.isGeo) {\n enableComponentHighDownFeatures(el, mapOrGeoModel, regionName);\n }\n\n return focus;\n}\n\nfunction projectPolys(rings, // Polygons include exterior and interiors. Or polylines.\ncreateStream, isLine) {\n var polygons = [];\n var curPoly;\n\n function startPolygon() {\n curPoly = [];\n }\n\n function endPolygon() {\n if (curPoly.length) {\n polygons.push(curPoly);\n curPoly = [];\n }\n }\n\n var stream = createStream({\n polygonStart: startPolygon,\n polygonEnd: endPolygon,\n lineStart: startPolygon,\n lineEnd: endPolygon,\n point: function (x, y) {\n // May have NaN values from stream.\n if (isFinite(x) && isFinite(y)) {\n curPoly.push([x, y]);\n }\n },\n sphere: function () {}\n });\n !isLine && stream.polygonStart();\n zrUtil.each(rings, function (ring) {\n stream.lineStart();\n\n for (var i = 0; i < ring.length; i++) {\n stream.point(ring[i][0], ring[i][1]);\n }\n\n stream.lineEnd();\n });\n !isLine && stream.polygonEnd();\n return polygons;\n}\n\nexport default MapDraw; // @ts-ignore FIXME:TS fix the \"compatible with each other\"?","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport Eventful from 'zrender/lib/core/Eventful.js';\nimport * as eventTool from 'zrender/lib/core/event.js';\nimport * as interactionMutex from './interactionMutex.js';\nimport { isString, bind, defaults, clone } from 'zrender/lib/core/util.js';\n;\n\nvar RoamController =\n/** @class */\nfunction (_super) {\n __extends(RoamController, _super);\n\n function RoamController(zr) {\n var _this = _super.call(this) || this;\n\n _this._zr = zr; // Avoid two roamController bind the same handler\n\n var mousedownHandler = bind(_this._mousedownHandler, _this);\n var mousemoveHandler = bind(_this._mousemoveHandler, _this);\n var mouseupHandler = bind(_this._mouseupHandler, _this);\n var mousewheelHandler = bind(_this._mousewheelHandler, _this);\n var pinchHandler = bind(_this._pinchHandler, _this);\n /**\n * Notice: only enable needed types. For example, if 'zoom'\n * is not needed, 'zoom' should not be enabled, otherwise\n * default mousewheel behaviour (scroll page) will be disabled.\n */\n\n _this.enable = function (controlType, opt) {\n // Disable previous first\n this.disable();\n this._opt = defaults(clone(opt) || {}, {\n zoomOnMouseWheel: true,\n moveOnMouseMove: true,\n // By default, wheel do not trigger move.\n moveOnMouseWheel: false,\n preventDefaultMouseMove: true\n });\n\n if (controlType == null) {\n controlType = true;\n }\n\n if (controlType === true || controlType === 'move' || controlType === 'pan') {\n zr.on('mousedown', mousedownHandler);\n zr.on('mousemove', mousemoveHandler);\n zr.on('mouseup', mouseupHandler);\n }\n\n if (controlType === true || controlType === 'scale' || controlType === 'zoom') {\n zr.on('mousewheel', mousewheelHandler);\n zr.on('pinch', pinchHandler);\n }\n };\n\n _this.disable = function () {\n zr.off('mousedown', mousedownHandler);\n zr.off('mousemove', mousemoveHandler);\n zr.off('mouseup', mouseupHandler);\n zr.off('mousewheel', mousewheelHandler);\n zr.off('pinch', pinchHandler);\n };\n\n return _this;\n }\n\n RoamController.prototype.isDragging = function () {\n return this._dragging;\n };\n\n RoamController.prototype.isPinching = function () {\n return this._pinching;\n };\n\n RoamController.prototype.setPointerChecker = function (pointerChecker) {\n this.pointerChecker = pointerChecker;\n };\n\n RoamController.prototype.dispose = function () {\n this.disable();\n };\n\n RoamController.prototype._mousedownHandler = function (e) {\n if (eventTool.isMiddleOrRightButtonOnMouseUpDown(e)) {\n return;\n }\n\n var el = e.target;\n\n while (el) {\n if (el.draggable) {\n return;\n } // check if host is draggable\n\n\n el = el.__hostTarget || el.parent;\n }\n\n var x = e.offsetX;\n var y = e.offsetY; // Only check on mosedown, but not mousemove.\n // Mouse can be out of target when mouse moving.\n\n if (this.pointerChecker && this.pointerChecker(e, x, y)) {\n this._x = x;\n this._y = y;\n this._dragging = true;\n }\n };\n\n RoamController.prototype._mousemoveHandler = function (e) {\n if (!this._dragging || !isAvailableBehavior('moveOnMouseMove', e, this._opt) || e.gestureEvent === 'pinch' || interactionMutex.isTaken(this._zr, 'globalPan')) {\n return;\n }\n\n var x = e.offsetX;\n var y = e.offsetY;\n var oldX = this._x;\n var oldY = this._y;\n var dx = x - oldX;\n var dy = y - oldY;\n this._x = x;\n this._y = y;\n this._opt.preventDefaultMouseMove && eventTool.stop(e.event);\n trigger(this, 'pan', 'moveOnMouseMove', e, {\n dx: dx,\n dy: dy,\n oldX: oldX,\n oldY: oldY,\n newX: x,\n newY: y,\n isAvailableBehavior: null\n });\n };\n\n RoamController.prototype._mouseupHandler = function (e) {\n if (!eventTool.isMiddleOrRightButtonOnMouseUpDown(e)) {\n this._dragging = false;\n }\n };\n\n RoamController.prototype._mousewheelHandler = function (e) {\n var shouldZoom = isAvailableBehavior('zoomOnMouseWheel', e, this._opt);\n var shouldMove = isAvailableBehavior('moveOnMouseWheel', e, this._opt);\n var wheelDelta = e.wheelDelta;\n var absWheelDeltaDelta = Math.abs(wheelDelta);\n var originX = e.offsetX;\n var originY = e.offsetY; // wheelDelta maybe -0 in chrome mac.\n\n if (wheelDelta === 0 || !shouldZoom && !shouldMove) {\n return;\n } // If both `shouldZoom` and `shouldMove` is true, trigger\n // their event both, and the final behavior is determined\n // by event listener themselves.\n\n\n if (shouldZoom) {\n // Convenience:\n // Mac and VM Windows on Mac: scroll up: zoom out.\n // Windows: scroll up: zoom in.\n // FIXME: Should do more test in different environment.\n // wheelDelta is too complicated in difference nvironment\n // (https://developer.mozilla.org/en-US/docs/Web/Events/mousewheel),\n // although it has been normallized by zrender.\n // wheelDelta of mouse wheel is bigger than touch pad.\n var factor = absWheelDeltaDelta > 3 ? 1.4 : absWheelDeltaDelta > 1 ? 1.2 : 1.1;\n var scale = wheelDelta > 0 ? factor : 1 / factor;\n checkPointerAndTrigger(this, 'zoom', 'zoomOnMouseWheel', e, {\n scale: scale,\n originX: originX,\n originY: originY,\n isAvailableBehavior: null\n });\n }\n\n if (shouldMove) {\n // FIXME: Should do more test in different environment.\n var absDelta = Math.abs(wheelDelta); // wheelDelta of mouse wheel is bigger than touch pad.\n\n var scrollDelta = (wheelDelta > 0 ? 1 : -1) * (absDelta > 3 ? 0.4 : absDelta > 1 ? 0.15 : 0.05);\n checkPointerAndTrigger(this, 'scrollMove', 'moveOnMouseWheel', e, {\n scrollDelta: scrollDelta,\n originX: originX,\n originY: originY,\n isAvailableBehavior: null\n });\n }\n };\n\n RoamController.prototype._pinchHandler = function (e) {\n if (interactionMutex.isTaken(this._zr, 'globalPan')) {\n return;\n }\n\n var scale = e.pinchScale > 1 ? 1.1 : 1 / 1.1;\n checkPointerAndTrigger(this, 'zoom', null, e, {\n scale: scale,\n originX: e.pinchX,\n originY: e.pinchY,\n isAvailableBehavior: null\n });\n };\n\n return RoamController;\n}(Eventful);\n\nfunction checkPointerAndTrigger(controller, eventName, behaviorToCheck, e, contollerEvent) {\n if (controller.pointerChecker && controller.pointerChecker(e, contollerEvent.originX, contollerEvent.originY)) {\n // When mouse is out of roamController rect,\n // default befavoius should not be be disabled, otherwise\n // page sliding is disabled, contrary to expectation.\n eventTool.stop(e.event);\n trigger(controller, eventName, behaviorToCheck, e, contollerEvent);\n }\n}\n\nfunction trigger(controller, eventName, behaviorToCheck, e, contollerEvent) {\n // Also provide behavior checker for event listener, for some case that\n // multiple components share one listener.\n contollerEvent.isAvailableBehavior = bind(isAvailableBehavior, null, behaviorToCheck, e); // TODO should not have type issue.\n\n controller.trigger(eventName, contollerEvent);\n} // settings: {\n// zoomOnMouseWheel\n// moveOnMouseMove\n// moveOnMouseWheel\n// }\n// The value can be: true / false / 'shift' / 'ctrl' / 'alt'.\n\n\nfunction isAvailableBehavior(behaviorToCheck, e, settings) {\n var setting = settings[behaviorToCheck];\n return !behaviorToCheck || setting && (!isString(setting) || e.event[setting + 'Key']);\n}\n\nexport default RoamController;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport BoundingRect from 'zrender/lib/core/BoundingRect.js';\nimport { onIrrelevantElement } from './cursorHelper.js';\nimport * as graphicUtil from '../../util/graphic.js';\nexport function makeRectPanelClipPath(rect) {\n rect = normalizeRect(rect);\n return function (localPoints) {\n return graphicUtil.clipPointsByRect(localPoints, rect);\n };\n}\nexport function makeLinearBrushOtherExtent(rect, specifiedXYIndex) {\n rect = normalizeRect(rect);\n return function (xyIndex) {\n var idx = specifiedXYIndex != null ? specifiedXYIndex : xyIndex;\n var brushWidth = idx ? rect.width : rect.height;\n var base = idx ? rect.x : rect.y;\n return [base, base + (brushWidth || 0)];\n };\n}\nexport function makeRectIsTargetByCursor(rect, api, targetModel) {\n var boundingRect = normalizeRect(rect);\n return function (e, localCursorPoint) {\n return boundingRect.contain(localCursorPoint[0], localCursorPoint[1]) && !onIrrelevantElement(e, api, targetModel);\n };\n} // Consider width/height is negative.\n\nfunction normalizeRect(rect) {\n return BoundingRect.create(rect);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar IRRELEVANT_EXCLUDES = {\n 'axisPointer': 1,\n 'tooltip': 1,\n 'brush': 1\n};\n/**\n * Avoid that: mouse click on a elements that is over geo or graph,\n * but roam is triggered.\n */\n\nexport function onIrrelevantElement(e, api, targetCoordSysModel) {\n var model = api.getComponentByElement(e.topTarget); // If model is axisModel, it works only if it is injected with coordinateSystem.\n\n var coordSys = model && model.coordinateSystem;\n return model && model !== targetCoordSysModel && !IRRELEVANT_EXCLUDES.hasOwnProperty(model.mainType) && coordSys && coordSys.model !== targetCoordSysModel;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// @ts-nocheck\nimport * as echarts from '../../core/echarts.js';\nimport { noop } from 'zrender/lib/core/util.js';\nvar ATTR = '\\0_ec_interaction_mutex';\nexport function take(zr, resourceKey, userKey) {\n var store = getStore(zr);\n store[resourceKey] = userKey;\n}\nexport function release(zr, resourceKey, userKey) {\n var store = getStore(zr);\n var uKey = store[resourceKey];\n\n if (uKey === userKey) {\n store[resourceKey] = null;\n }\n}\nexport function isTaken(zr, resourceKey) {\n return !!getStore(zr)[resourceKey];\n}\n\nfunction getStore(zr) {\n return zr[ATTR] || (zr[ATTR] = {});\n}\n/**\n * payload: {\n * type: 'takeGlobalCursor',\n * key: 'dataZoomSelect', or 'brush', or ...,\n * If no userKey, release global cursor.\n * }\n */\n// TODO: SELF REGISTERED.\n\n\necharts.registerAction({\n type: 'takeGlobalCursor',\n event: 'globalCursorTaken',\n update: 'update'\n}, noop);","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// @ts-nocheck\nimport { getLayoutRect, box as layoutBox, positionElement } from '../../util/layout.js';\nimport * as formatUtil from '../../util/format.js';\nimport * as graphic from '../../util/graphic.js';\n/**\n * Layout list like component.\n * It will box layout each items in group of component and then position the whole group in the viewport\n * @param {module:zrender/group/Group} group\n * @param {module:echarts/model/Component} componentModel\n * @param {module:echarts/ExtensionAPI}\n */\n\nexport function layout(group, componentModel, api) {\n var boxLayoutParams = componentModel.getBoxLayoutParams();\n var padding = componentModel.get('padding');\n var viewportSize = {\n width: api.getWidth(),\n height: api.getHeight()\n };\n var rect = getLayoutRect(boxLayoutParams, viewportSize, padding);\n layoutBox(componentModel.get('orient'), group, componentModel.get('itemGap'), rect.width, rect.height);\n positionElement(group, boxLayoutParams, viewportSize, padding);\n}\nexport function makeBackground(rect, componentModel) {\n var padding = formatUtil.normalizeCssArray(componentModel.get('padding'));\n var style = componentModel.getItemStyle(['color', 'opacity']);\n style.fill = componentModel.get('backgroundColor');\n rect = new graphic.Rect({\n shape: {\n x: rect.x - padding[3],\n y: rect.y - padding[0],\n width: rect.width + padding[1] + padding[3],\n height: rect.height + padding[0] + padding[2],\n r: componentModel.get('borderRadius')\n },\n style: style,\n silent: true,\n z2: -1\n }); // FIXME\n // `subPixelOptimizeRect` may bring some gap between edge of viewpart\n // and background rect when setting like `left: 0`, `top: 0`.\n // graphic.subPixelOptimizeRect(rect);\n\n return rect;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * For geo and graph.\n */\nexport function updateViewOnPan(controllerHost, dx, dy) {\n var target = controllerHost.target;\n target.x += dx;\n target.y += dy;\n target.dirty();\n}\n/**\n * For geo and graph.\n */\n\nexport function updateViewOnZoom(controllerHost, zoomDelta, zoomX, zoomY) {\n var target = controllerHost.target;\n var zoomLimit = controllerHost.zoomLimit;\n var newZoom = controllerHost.zoom = controllerHost.zoom || 1;\n newZoom *= zoomDelta;\n\n if (zoomLimit) {\n var zoomMin = zoomLimit.min || 0;\n var zoomMax = zoomLimit.max || Infinity;\n newZoom = Math.max(Math.min(zoomMax, newZoom), zoomMin);\n }\n\n var zoomScale = newZoom / controllerHost.zoom;\n controllerHost.zoom = newZoom; // Keep the mouse center when scaling\n\n target.x -= (zoomX - target.x) * (zoomScale - 1);\n target.y -= (zoomY - target.y) * (zoomScale - 1);\n target.scaleX *= zoomScale;\n target.scaleY *= zoomScale;\n target.dirty();\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Calculate slider move result.\n * Usage:\n * (1) If both handle0 and handle1 are needed to be moved, set minSpan the same as\n * maxSpan and the same as `Math.abs(handleEnd[1] - handleEnds[0])`.\n * (2) If handle0 is forbidden to cross handle1, set minSpan as `0`.\n *\n * @param delta Move length.\n * @param handleEnds handleEnds[0] can be bigger then handleEnds[1].\n * handleEnds will be modified in this method.\n * @param extent handleEnds is restricted by extent.\n * extent[0] should less or equals than extent[1].\n * @param handleIndex Can be 'all', means that both move the two handleEnds.\n * @param minSpan The range of dataZoom can not be smaller than that.\n * If not set, handle0 and cross handle1. If set as a non-negative\n * number (including `0`), handles will push each other when reaching\n * the minSpan.\n * @param maxSpan The range of dataZoom can not be larger than that.\n * @return The input handleEnds.\n */\nexport default function sliderMove(delta, handleEnds, extent, handleIndex, minSpan, maxSpan) {\n delta = delta || 0;\n var extentSpan = extent[1] - extent[0]; // Notice maxSpan and minSpan can be null/undefined.\n\n if (minSpan != null) {\n minSpan = restrict(minSpan, [0, extentSpan]);\n }\n\n if (maxSpan != null) {\n maxSpan = Math.max(maxSpan, minSpan != null ? minSpan : 0);\n }\n\n if (handleIndex === 'all') {\n var handleSpan = Math.abs(handleEnds[1] - handleEnds[0]);\n handleSpan = restrict(handleSpan, [0, extentSpan]);\n minSpan = maxSpan = restrict(handleSpan, [minSpan, maxSpan]);\n handleIndex = 0;\n }\n\n handleEnds[0] = restrict(handleEnds[0], extent);\n handleEnds[1] = restrict(handleEnds[1], extent);\n var originalDistSign = getSpanSign(handleEnds, handleIndex);\n handleEnds[handleIndex] += delta; // Restrict in extent.\n\n var extentMinSpan = minSpan || 0;\n var realExtent = extent.slice();\n originalDistSign.sign < 0 ? realExtent[0] += extentMinSpan : realExtent[1] -= extentMinSpan;\n handleEnds[handleIndex] = restrict(handleEnds[handleIndex], realExtent); // Expand span.\n\n var currDistSign;\n currDistSign = getSpanSign(handleEnds, handleIndex);\n\n if (minSpan != null && (currDistSign.sign !== originalDistSign.sign || currDistSign.span < minSpan)) {\n // If minSpan exists, 'cross' is forbidden.\n handleEnds[1 - handleIndex] = handleEnds[handleIndex] + originalDistSign.sign * minSpan;\n } // Shrink span.\n\n\n currDistSign = getSpanSign(handleEnds, handleIndex);\n\n if (maxSpan != null && currDistSign.span > maxSpan) {\n handleEnds[1 - handleIndex] = handleEnds[handleIndex] + currDistSign.sign * maxSpan;\n }\n\n return handleEnds;\n}\n\nfunction getSpanSign(handleEnds, handleIndex) {\n var dist = handleEnds[handleIndex] - handleEnds[1 - handleIndex]; // If `handleEnds[0] === handleEnds[1]`, always believe that handleEnd[0]\n // is at left of handleEnds[1] for non-cross case.\n\n return {\n span: Math.abs(dist),\n sign: dist > 0 ? -1 : dist < 0 ? 1 : handleIndex ? -1 : 1\n };\n}\n\nfunction restrict(value, extend) {\n return Math.min(extend[1] != null ? extend[1] : Infinity, Math.max(extend[0] != null ? extend[0] : -Infinity, value));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport Model from '../../model/Model.js';\nimport { isNameSpecified } from '../../util/model.js';\nimport ComponentModel from '../../model/Component.js';\n\nvar getDefaultSelectorOptions = function (ecModel, type) {\n if (type === 'all') {\n return {\n type: 'all',\n title: ecModel.getLocaleModel().get(['legend', 'selector', 'all'])\n };\n } else if (type === 'inverse') {\n return {\n type: 'inverse',\n title: ecModel.getLocaleModel().get(['legend', 'selector', 'inverse'])\n };\n }\n};\n\nvar LegendModel =\n/** @class */\nfunction (_super) {\n __extends(LegendModel, _super);\n\n function LegendModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = LegendModel.type;\n _this.layoutMode = {\n type: 'box',\n // legend.width/height are maxWidth/maxHeight actually,\n // whereas real width/height is calculated by its content.\n // (Setting {left: 10, right: 10} does not make sense).\n // So consider the case:\n // `setOption({legend: {left: 10});`\n // then `setOption({legend: {right: 10});`\n // The previous `left` should be cleared by setting `ignoreSize`.\n ignoreSize: true\n };\n return _this;\n }\n\n LegendModel.prototype.init = function (option, parentModel, ecModel) {\n this.mergeDefaultAndTheme(option, ecModel);\n option.selected = option.selected || {};\n\n this._updateSelector(option);\n };\n\n LegendModel.prototype.mergeOption = function (option, ecModel) {\n _super.prototype.mergeOption.call(this, option, ecModel);\n\n this._updateSelector(option);\n };\n\n LegendModel.prototype._updateSelector = function (option) {\n var selector = option.selector;\n var ecModel = this.ecModel;\n\n if (selector === true) {\n selector = option.selector = ['all', 'inverse'];\n }\n\n if (zrUtil.isArray(selector)) {\n zrUtil.each(selector, function (item, index) {\n zrUtil.isString(item) && (item = {\n type: item\n });\n selector[index] = zrUtil.merge(item, getDefaultSelectorOptions(ecModel, item.type));\n });\n }\n };\n\n LegendModel.prototype.optionUpdated = function () {\n this._updateData(this.ecModel);\n\n var legendData = this._data; // If selectedMode is single, try to select one\n\n if (legendData[0] && this.get('selectedMode') === 'single') {\n var hasSelected = false; // If has any selected in option.selected\n\n for (var i = 0; i < legendData.length; i++) {\n var name_1 = legendData[i].get('name');\n\n if (this.isSelected(name_1)) {\n // Force to unselect others\n this.select(name_1);\n hasSelected = true;\n break;\n }\n } // Try select the first if selectedMode is single\n\n\n !hasSelected && this.select(legendData[0].get('name'));\n }\n };\n\n LegendModel.prototype._updateData = function (ecModel) {\n var potentialData = [];\n var availableNames = [];\n ecModel.eachRawSeries(function (seriesModel) {\n var seriesName = seriesModel.name;\n availableNames.push(seriesName);\n var isPotential;\n\n if (seriesModel.legendVisualProvider) {\n var provider = seriesModel.legendVisualProvider;\n var names = provider.getAllNames();\n\n if (!ecModel.isSeriesFiltered(seriesModel)) {\n availableNames = availableNames.concat(names);\n }\n\n if (names.length) {\n potentialData = potentialData.concat(names);\n } else {\n isPotential = true;\n }\n } else {\n isPotential = true;\n }\n\n if (isPotential && isNameSpecified(seriesModel)) {\n potentialData.push(seriesModel.name);\n }\n });\n /**\n * @type {Array.}\n * @private\n */\n\n this._availableNames = availableNames; // If legend.data is not specified in option, use availableNames as data,\n // which is convenient for user preparing option.\n\n var rawData = this.get('data') || potentialData;\n var legendNameMap = zrUtil.createHashMap();\n var legendData = zrUtil.map(rawData, function (dataItem) {\n // Can be string or number\n if (zrUtil.isString(dataItem) || zrUtil.isNumber(dataItem)) {\n dataItem = {\n name: dataItem\n };\n }\n\n if (legendNameMap.get(dataItem.name)) {\n // remove legend name duplicate\n return null;\n }\n\n legendNameMap.set(dataItem.name, true);\n return new Model(dataItem, this, this.ecModel);\n }, this);\n /**\n * @type {Array.}\n * @private\n */\n\n this._data = zrUtil.filter(legendData, function (item) {\n return !!item;\n });\n };\n\n LegendModel.prototype.getData = function () {\n return this._data;\n };\n\n LegendModel.prototype.select = function (name) {\n var selected = this.option.selected;\n var selectedMode = this.get('selectedMode');\n\n if (selectedMode === 'single') {\n var data = this._data;\n zrUtil.each(data, function (dataItem) {\n selected[dataItem.get('name')] = false;\n });\n }\n\n selected[name] = true;\n };\n\n LegendModel.prototype.unSelect = function (name) {\n if (this.get('selectedMode') !== 'single') {\n this.option.selected[name] = false;\n }\n };\n\n LegendModel.prototype.toggleSelected = function (name) {\n var selected = this.option.selected; // Default is true\n\n if (!selected.hasOwnProperty(name)) {\n selected[name] = true;\n }\n\n this[selected[name] ? 'unSelect' : 'select'](name);\n };\n\n LegendModel.prototype.allSelect = function () {\n var data = this._data;\n var selected = this.option.selected;\n zrUtil.each(data, function (dataItem) {\n selected[dataItem.get('name', true)] = true;\n });\n };\n\n LegendModel.prototype.inverseSelect = function () {\n var data = this._data;\n var selected = this.option.selected;\n zrUtil.each(data, function (dataItem) {\n var name = dataItem.get('name', true); // Initially, default value is true\n\n if (!selected.hasOwnProperty(name)) {\n selected[name] = true;\n }\n\n selected[name] = !selected[name];\n });\n };\n\n LegendModel.prototype.isSelected = function (name) {\n var selected = this.option.selected;\n return !(selected.hasOwnProperty(name) && !selected[name]) && zrUtil.indexOf(this._availableNames, name) >= 0;\n };\n\n LegendModel.prototype.getOrient = function () {\n return this.get('orient') === 'vertical' ? {\n index: 1,\n name: 'vertical'\n } : {\n index: 0,\n name: 'horizontal'\n };\n };\n\n LegendModel.type = 'legend.plain';\n LegendModel.dependencies = ['series'];\n LegendModel.defaultOption = {\n // zlevel: 0,\n z: 4,\n show: true,\n orient: 'horizontal',\n left: 'center',\n // right: 'center',\n top: 0,\n // bottom: null,\n align: 'auto',\n backgroundColor: 'rgba(0,0,0,0)',\n borderColor: '#ccc',\n borderRadius: 0,\n borderWidth: 0,\n padding: 5,\n itemGap: 10,\n itemWidth: 25,\n itemHeight: 14,\n symbolRotate: 'inherit',\n symbolKeepAspect: true,\n inactiveColor: '#ccc',\n inactiveBorderColor: '#ccc',\n inactiveBorderWidth: 'auto',\n itemStyle: {\n color: 'inherit',\n opacity: 'inherit',\n borderColor: 'inherit',\n borderWidth: 'auto',\n borderCap: 'inherit',\n borderJoin: 'inherit',\n borderDashOffset: 'inherit',\n borderMiterLimit: 'inherit'\n },\n lineStyle: {\n width: 'auto',\n color: 'inherit',\n inactiveColor: '#ccc',\n inactiveWidth: 2,\n opacity: 'inherit',\n type: 'inherit',\n cap: 'inherit',\n join: 'inherit',\n dashOffset: 'inherit',\n miterLimit: 'inherit'\n },\n textStyle: {\n color: '#333'\n },\n selectedMode: true,\n selector: false,\n selectorLabel: {\n show: true,\n borderRadius: 10,\n padding: [3, 5, 3, 5],\n fontSize: 12,\n fontFamily: 'sans-serif',\n color: '#666',\n borderWidth: 1,\n borderColor: '#666'\n },\n emphasis: {\n selectorLabel: {\n show: true,\n color: '#eee',\n backgroundColor: '#666'\n }\n },\n selectorPosition: 'auto',\n selectorItemGap: 7,\n selectorButtonGap: 10,\n tooltip: {\n show: false\n }\n };\n return LegendModel;\n}(ComponentModel);\n\nexport default LegendModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { parse, stringify } from 'zrender/lib/tool/color.js';\nimport * as graphic from '../../util/graphic.js';\nimport { enableHoverEmphasis } from '../../util/states.js';\nimport { setLabelStyle, createTextStyle } from '../../label/labelStyle.js';\nimport { makeBackground } from '../helper/listComponent.js';\nimport * as layoutUtil from '../../util/layout.js';\nimport ComponentView from '../../view/Component.js';\nimport { createSymbol } from '../../util/symbol.js';\nimport { createOrUpdatePatternFromDecal } from '../../util/decal.js';\nvar curry = zrUtil.curry;\nvar each = zrUtil.each;\nvar Group = graphic.Group;\n\nvar LegendView =\n/** @class */\nfunction (_super) {\n __extends(LegendView, _super);\n\n function LegendView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = LegendView.type;\n _this.newlineDisabled = false;\n return _this;\n }\n\n LegendView.prototype.init = function () {\n this.group.add(this._contentGroup = new Group());\n this.group.add(this._selectorGroup = new Group());\n this._isFirstRender = true;\n };\n /**\n * @protected\n */\n\n\n LegendView.prototype.getContentGroup = function () {\n return this._contentGroup;\n };\n /**\n * @protected\n */\n\n\n LegendView.prototype.getSelectorGroup = function () {\n return this._selectorGroup;\n };\n /**\n * @override\n */\n\n\n LegendView.prototype.render = function (legendModel, ecModel, api) {\n var isFirstRender = this._isFirstRender;\n this._isFirstRender = false;\n this.resetInner();\n\n if (!legendModel.get('show', true)) {\n return;\n }\n\n var itemAlign = legendModel.get('align');\n var orient = legendModel.get('orient');\n\n if (!itemAlign || itemAlign === 'auto') {\n itemAlign = legendModel.get('left') === 'right' && orient === 'vertical' ? 'right' : 'left';\n } // selector has been normalized to an array in model\n\n\n var selector = legendModel.get('selector', true);\n var selectorPosition = legendModel.get('selectorPosition', true);\n\n if (selector && (!selectorPosition || selectorPosition === 'auto')) {\n selectorPosition = orient === 'horizontal' ? 'end' : 'start';\n }\n\n this.renderInner(itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition); // Perform layout.\n\n var positionInfo = legendModel.getBoxLayoutParams();\n var viewportSize = {\n width: api.getWidth(),\n height: api.getHeight()\n };\n var padding = legendModel.get('padding');\n var maxSize = layoutUtil.getLayoutRect(positionInfo, viewportSize, padding);\n var mainRect = this.layoutInner(legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition); // Place mainGroup, based on the calculated `mainRect`.\n\n var layoutRect = layoutUtil.getLayoutRect(zrUtil.defaults({\n width: mainRect.width,\n height: mainRect.height\n }, positionInfo), viewportSize, padding);\n this.group.x = layoutRect.x - mainRect.x;\n this.group.y = layoutRect.y - mainRect.y;\n this.group.markRedraw(); // Render background after group is layout.\n\n this.group.add(this._backgroundEl = makeBackground(mainRect, legendModel));\n };\n\n LegendView.prototype.resetInner = function () {\n this.getContentGroup().removeAll();\n this._backgroundEl && this.group.remove(this._backgroundEl);\n this.getSelectorGroup().removeAll();\n };\n\n LegendView.prototype.renderInner = function (itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition) {\n var contentGroup = this.getContentGroup();\n var legendDrawnMap = zrUtil.createHashMap();\n var selectMode = legendModel.get('selectedMode');\n var excludeSeriesId = [];\n ecModel.eachRawSeries(function (seriesModel) {\n !seriesModel.get('legendHoverLink') && excludeSeriesId.push(seriesModel.id);\n });\n each(legendModel.getData(), function (legendItemModel, dataIndex) {\n var name = legendItemModel.get('name'); // Use empty string or \\n as a newline string\n\n if (!this.newlineDisabled && (name === '' || name === '\\n')) {\n var g = new Group(); // @ts-ignore\n\n g.newline = true;\n contentGroup.add(g);\n return;\n } // Representitive series.\n\n\n var seriesModel = ecModel.getSeriesByName(name)[0];\n\n if (legendDrawnMap.get(name)) {\n // Have been drawn\n return;\n } // Legend to control series.\n\n\n if (seriesModel) {\n var data = seriesModel.getData();\n var lineVisualStyle = data.getVisual('legendLineStyle') || {};\n var legendIcon = data.getVisual('legendIcon');\n /**\n * `data.getVisual('style')` may be the color from the register\n * in series. For example, for line series,\n */\n\n var style = data.getVisual('style');\n\n var itemGroup = this._createItem(seriesModel, name, dataIndex, legendItemModel, legendModel, itemAlign, lineVisualStyle, style, legendIcon, selectMode, api);\n\n itemGroup.on('click', curry(dispatchSelectAction, name, null, api, excludeSeriesId)).on('mouseover', curry(dispatchHighlightAction, seriesModel.name, null, api, excludeSeriesId)).on('mouseout', curry(dispatchDownplayAction, seriesModel.name, null, api, excludeSeriesId));\n legendDrawnMap.set(name, true);\n } else {\n // Legend to control data. In pie and funnel.\n ecModel.eachRawSeries(function (seriesModel) {\n // In case multiple series has same data name\n if (legendDrawnMap.get(name)) {\n return;\n }\n\n if (seriesModel.legendVisualProvider) {\n var provider = seriesModel.legendVisualProvider;\n\n if (!provider.containName(name)) {\n return;\n }\n\n var idx = provider.indexOfName(name);\n var style = provider.getItemVisual(idx, 'style');\n var legendIcon = provider.getItemVisual(idx, 'legendIcon');\n var colorArr = parse(style.fill); // Color may be set to transparent in visualMap when data is out of range.\n // Do not show nothing.\n\n if (colorArr && colorArr[3] === 0) {\n colorArr[3] = 0.2; // TODO color is set to 0, 0, 0, 0. Should show correct RGBA\n\n style = zrUtil.extend(zrUtil.extend({}, style), {\n fill: stringify(colorArr, 'rgba')\n });\n }\n\n var itemGroup = this._createItem(seriesModel, name, dataIndex, legendItemModel, legendModel, itemAlign, {}, style, legendIcon, selectMode, api); // FIXME: consider different series has items with the same name.\n\n\n itemGroup.on('click', curry(dispatchSelectAction, null, name, api, excludeSeriesId)) // Should not specify the series name, consider legend controls\n // more than one pie series.\n .on('mouseover', curry(dispatchHighlightAction, null, name, api, excludeSeriesId)).on('mouseout', curry(dispatchDownplayAction, null, name, api, excludeSeriesId));\n legendDrawnMap.set(name, true);\n }\n }, this);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!legendDrawnMap.get(name)) {\n console.warn(name + ' series not exists. Legend data should be same with series name or data name.');\n }\n }\n }, this);\n\n if (selector) {\n this._createSelector(selector, legendModel, api, orient, selectorPosition);\n }\n };\n\n LegendView.prototype._createSelector = function (selector, legendModel, api, orient, selectorPosition) {\n var selectorGroup = this.getSelectorGroup();\n each(selector, function createSelectorButton(selectorItem) {\n var type = selectorItem.type;\n var labelText = new graphic.Text({\n style: {\n x: 0,\n y: 0,\n align: 'center',\n verticalAlign: 'middle'\n },\n onclick: function () {\n api.dispatchAction({\n type: type === 'all' ? 'legendAllSelect' : 'legendInverseSelect'\n });\n }\n });\n selectorGroup.add(labelText);\n var labelModel = legendModel.getModel('selectorLabel');\n var emphasisLabelModel = legendModel.getModel(['emphasis', 'selectorLabel']);\n setLabelStyle(labelText, {\n normal: labelModel,\n emphasis: emphasisLabelModel\n }, {\n defaultText: selectorItem.title\n });\n enableHoverEmphasis(labelText);\n });\n };\n\n LegendView.prototype._createItem = function (seriesModel, name, dataIndex, legendItemModel, legendModel, itemAlign, lineVisualStyle, itemVisualStyle, legendIcon, selectMode, api) {\n var drawType = seriesModel.visualDrawType;\n var itemWidth = legendModel.get('itemWidth');\n var itemHeight = legendModel.get('itemHeight');\n var isSelected = legendModel.isSelected(name);\n var iconRotate = legendItemModel.get('symbolRotate');\n var symbolKeepAspect = legendItemModel.get('symbolKeepAspect');\n var legendIconType = legendItemModel.get('icon');\n legendIcon = legendIconType || legendIcon || 'roundRect';\n var style = getLegendStyle(legendIcon, legendItemModel, lineVisualStyle, itemVisualStyle, drawType, isSelected, api);\n var itemGroup = new Group();\n var textStyleModel = legendItemModel.getModel('textStyle');\n\n if (zrUtil.isFunction(seriesModel.getLegendIcon) && (!legendIconType || legendIconType === 'inherit')) {\n // Series has specific way to define legend icon\n itemGroup.add(seriesModel.getLegendIcon({\n itemWidth: itemWidth,\n itemHeight: itemHeight,\n icon: legendIcon,\n iconRotate: iconRotate,\n itemStyle: style.itemStyle,\n lineStyle: style.lineStyle,\n symbolKeepAspect: symbolKeepAspect\n }));\n } else {\n // Use default legend icon policy for most series\n var rotate = legendIconType === 'inherit' && seriesModel.getData().getVisual('symbol') ? iconRotate === 'inherit' ? seriesModel.getData().getVisual('symbolRotate') : iconRotate : 0; // No rotation for no icon\n\n itemGroup.add(getDefaultLegendIcon({\n itemWidth: itemWidth,\n itemHeight: itemHeight,\n icon: legendIcon,\n iconRotate: rotate,\n itemStyle: style.itemStyle,\n lineStyle: style.lineStyle,\n symbolKeepAspect: symbolKeepAspect\n }));\n }\n\n var textX = itemAlign === 'left' ? itemWidth + 5 : -5;\n var textAlign = itemAlign;\n var formatter = legendModel.get('formatter');\n var content = name;\n\n if (zrUtil.isString(formatter) && formatter) {\n content = formatter.replace('{name}', name != null ? name : '');\n } else if (zrUtil.isFunction(formatter)) {\n content = formatter(name);\n }\n\n var inactiveColor = legendItemModel.get('inactiveColor');\n itemGroup.add(new graphic.Text({\n style: createTextStyle(textStyleModel, {\n text: content,\n x: textX,\n y: itemHeight / 2,\n fill: isSelected ? textStyleModel.getTextColor() : inactiveColor,\n align: textAlign,\n verticalAlign: 'middle'\n })\n })); // Add a invisible rect to increase the area of mouse hover\n\n var hitRect = new graphic.Rect({\n shape: itemGroup.getBoundingRect(),\n invisible: true\n });\n var tooltipModel = legendItemModel.getModel('tooltip');\n\n if (tooltipModel.get('show')) {\n graphic.setTooltipConfig({\n el: hitRect,\n componentModel: legendModel,\n itemName: name,\n itemTooltipOption: tooltipModel.option\n });\n }\n\n itemGroup.add(hitRect);\n itemGroup.eachChild(function (child) {\n child.silent = true;\n });\n hitRect.silent = !selectMode;\n this.getContentGroup().add(itemGroup);\n enableHoverEmphasis(itemGroup); // @ts-ignore\n\n itemGroup.__legendDataIndex = dataIndex;\n return itemGroup;\n };\n\n LegendView.prototype.layoutInner = function (legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition) {\n var contentGroup = this.getContentGroup();\n var selectorGroup = this.getSelectorGroup(); // Place items in contentGroup.\n\n layoutUtil.box(legendModel.get('orient'), contentGroup, legendModel.get('itemGap'), maxSize.width, maxSize.height);\n var contentRect = contentGroup.getBoundingRect();\n var contentPos = [-contentRect.x, -contentRect.y];\n selectorGroup.markRedraw();\n contentGroup.markRedraw();\n\n if (selector) {\n // Place buttons in selectorGroup\n layoutUtil.box( // Buttons in selectorGroup always layout horizontally\n 'horizontal', selectorGroup, legendModel.get('selectorItemGap', true));\n var selectorRect = selectorGroup.getBoundingRect();\n var selectorPos = [-selectorRect.x, -selectorRect.y];\n var selectorButtonGap = legendModel.get('selectorButtonGap', true);\n var orientIdx = legendModel.getOrient().index;\n var wh = orientIdx === 0 ? 'width' : 'height';\n var hw = orientIdx === 0 ? 'height' : 'width';\n var yx = orientIdx === 0 ? 'y' : 'x';\n\n if (selectorPosition === 'end') {\n selectorPos[orientIdx] += contentRect[wh] + selectorButtonGap;\n } else {\n contentPos[orientIdx] += selectorRect[wh] + selectorButtonGap;\n } // Always align selector to content as 'middle'\n\n\n selectorPos[1 - orientIdx] += contentRect[hw] / 2 - selectorRect[hw] / 2;\n selectorGroup.x = selectorPos[0];\n selectorGroup.y = selectorPos[1];\n contentGroup.x = contentPos[0];\n contentGroup.y = contentPos[1];\n var mainRect = {\n x: 0,\n y: 0\n };\n mainRect[wh] = contentRect[wh] + selectorButtonGap + selectorRect[wh];\n mainRect[hw] = Math.max(contentRect[hw], selectorRect[hw]);\n mainRect[yx] = Math.min(0, selectorRect[yx] + selectorPos[1 - orientIdx]);\n return mainRect;\n } else {\n contentGroup.x = contentPos[0];\n contentGroup.y = contentPos[1];\n return this.group.getBoundingRect();\n }\n };\n /**\n * @protected\n */\n\n\n LegendView.prototype.remove = function () {\n this.getContentGroup().removeAll();\n this._isFirstRender = true;\n };\n\n LegendView.type = 'legend.plain';\n return LegendView;\n}(ComponentView);\n\nfunction getLegendStyle(iconType, legendItemModel, lineVisualStyle, itemVisualStyle, drawType, isSelected, api) {\n /**\n * Use series style if is inherit;\n * elsewise, use legend style\n */\n function handleCommonProps(style, visualStyle) {\n // If lineStyle.width is 'auto', it is set to be 2 if series has border\n if (style.lineWidth === 'auto') {\n style.lineWidth = visualStyle.lineWidth > 0 ? 2 : 0;\n }\n\n each(style, function (propVal, propName) {\n style[propName] === 'inherit' && (style[propName] = visualStyle[propName]);\n });\n } // itemStyle\n\n\n var itemStyleModel = legendItemModel.getModel('itemStyle');\n var itemStyle = itemStyleModel.getItemStyle();\n var iconBrushType = iconType.lastIndexOf('empty', 0) === 0 ? 'fill' : 'stroke';\n var decalStyle = itemStyleModel.getShallow('decal');\n itemStyle.decal = !decalStyle || decalStyle === 'inherit' ? itemVisualStyle.decal : createOrUpdatePatternFromDecal(decalStyle, api);\n\n if (itemStyle.fill === 'inherit') {\n /**\n * Series with visualDrawType as 'stroke' should have\n * series stroke as legend fill\n */\n itemStyle.fill = itemVisualStyle[drawType];\n }\n\n if (itemStyle.stroke === 'inherit') {\n /**\n * icon type with \"emptyXXX\" should use fill color\n * in visual style\n */\n itemStyle.stroke = itemVisualStyle[iconBrushType];\n }\n\n if (itemStyle.opacity === 'inherit') {\n /**\n * Use lineStyle.opacity if drawType is stroke\n */\n itemStyle.opacity = (drawType === 'fill' ? itemVisualStyle : lineVisualStyle).opacity;\n }\n\n handleCommonProps(itemStyle, itemVisualStyle); // lineStyle\n\n var legendLineModel = legendItemModel.getModel('lineStyle');\n var lineStyle = legendLineModel.getLineStyle();\n handleCommonProps(lineStyle, lineVisualStyle); // Fix auto color to real color\n\n itemStyle.fill === 'auto' && (itemStyle.fill = itemVisualStyle.fill);\n itemStyle.stroke === 'auto' && (itemStyle.stroke = itemVisualStyle.fill);\n lineStyle.stroke === 'auto' && (lineStyle.stroke = itemVisualStyle.fill);\n\n if (!isSelected) {\n var borderWidth = legendItemModel.get('inactiveBorderWidth');\n /**\n * Since stroke is set to be inactiveBorderColor, it may occur that\n * there is no border in series but border in legend, so we need to\n * use border only when series has border if is set to be auto\n */\n\n var visualHasBorder = itemStyle[iconBrushType];\n itemStyle.lineWidth = borderWidth === 'auto' ? itemVisualStyle.lineWidth > 0 && visualHasBorder ? 2 : 0 : itemStyle.lineWidth;\n itemStyle.fill = legendItemModel.get('inactiveColor');\n itemStyle.stroke = legendItemModel.get('inactiveBorderColor');\n lineStyle.stroke = legendLineModel.get('inactiveColor');\n lineStyle.lineWidth = legendLineModel.get('inactiveWidth');\n }\n\n return {\n itemStyle: itemStyle,\n lineStyle: lineStyle\n };\n}\n\nfunction getDefaultLegendIcon(opt) {\n var symboType = opt.icon || 'roundRect';\n var icon = createSymbol(symboType, 0, 0, opt.itemWidth, opt.itemHeight, opt.itemStyle.fill, opt.symbolKeepAspect);\n icon.setStyle(opt.itemStyle);\n icon.rotation = (opt.iconRotate || 0) * Math.PI / 180;\n icon.setOrigin([opt.itemWidth / 2, opt.itemHeight / 2]);\n\n if (symboType.indexOf('empty') > -1) {\n icon.style.stroke = icon.style.fill;\n icon.style.fill = '#fff';\n icon.style.lineWidth = 2;\n }\n\n return icon;\n}\n\nfunction dispatchSelectAction(seriesName, dataName, api, excludeSeriesId) {\n // downplay before unselect\n dispatchDownplayAction(seriesName, dataName, api, excludeSeriesId);\n api.dispatchAction({\n type: 'legendToggleSelect',\n name: seriesName != null ? seriesName : dataName\n }); // highlight after select\n // TODO highlight immediately may cause animation loss.\n\n dispatchHighlightAction(seriesName, dataName, api, excludeSeriesId);\n}\n\nfunction isUseHoverLayer(api) {\n var list = api.getZr().storage.getDisplayList();\n var emphasisState;\n var i = 0;\n var len = list.length;\n\n while (i < len && !(emphasisState = list[i].states.emphasis)) {\n i++;\n }\n\n return emphasisState && emphasisState.hoverLayer;\n}\n\nfunction dispatchHighlightAction(seriesName, dataName, api, excludeSeriesId) {\n // If element hover will move to a hoverLayer.\n if (!isUseHoverLayer(api)) {\n api.dispatchAction({\n type: 'highlight',\n seriesName: seriesName,\n name: dataName,\n excludeSeriesId: excludeSeriesId\n });\n }\n}\n\nfunction dispatchDownplayAction(seriesName, dataName, api, excludeSeriesId) {\n // If element hover will move to a hoverLayer.\n if (!isUseHoverLayer(api)) {\n api.dispatchAction({\n type: 'downplay',\n seriesName: seriesName,\n name: dataName,\n excludeSeriesId: excludeSeriesId\n });\n }\n}\n\nexport default LegendView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport LegendModel from './LegendModel.js';\nimport { mergeLayoutParam, getLayoutParams } from '../../util/layout.js';\nimport { inheritDefaultOption } from '../../util/component.js';\n\nvar ScrollableLegendModel =\n/** @class */\nfunction (_super) {\n __extends(ScrollableLegendModel, _super);\n\n function ScrollableLegendModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = ScrollableLegendModel.type;\n return _this;\n }\n /**\n * @param {number} scrollDataIndex\n */\n\n\n ScrollableLegendModel.prototype.setScrollDataIndex = function (scrollDataIndex) {\n this.option.scrollDataIndex = scrollDataIndex;\n };\n\n ScrollableLegendModel.prototype.init = function (option, parentModel, ecModel) {\n var inputPositionParams = getLayoutParams(option);\n\n _super.prototype.init.call(this, option, parentModel, ecModel);\n\n mergeAndNormalizeLayoutParams(this, option, inputPositionParams);\n };\n /**\n * @override\n */\n\n\n ScrollableLegendModel.prototype.mergeOption = function (option, ecModel) {\n _super.prototype.mergeOption.call(this, option, ecModel);\n\n mergeAndNormalizeLayoutParams(this, this.option, option);\n };\n\n ScrollableLegendModel.type = 'legend.scroll';\n ScrollableLegendModel.defaultOption = inheritDefaultOption(LegendModel.defaultOption, {\n scrollDataIndex: 0,\n pageButtonItemGap: 5,\n pageButtonGap: null,\n pageButtonPosition: 'end',\n pageFormatter: '{current}/{total}',\n pageIcons: {\n horizontal: ['M0,0L12,-10L12,10z', 'M0,0L-12,-10L-12,10z'],\n vertical: ['M0,0L20,0L10,-20z', 'M0,0L20,0L10,20z']\n },\n pageIconColor: '#2f4554',\n pageIconInactiveColor: '#aaa',\n pageIconSize: 15,\n pageTextStyle: {\n color: '#333'\n },\n animationDurationUpdate: 800\n });\n return ScrollableLegendModel;\n}(LegendModel);\n\n; // Do not `ignoreSize` to enable setting {left: 10, right: 10}.\n\nfunction mergeAndNormalizeLayoutParams(legendModel, target, raw) {\n var orient = legendModel.getOrient();\n var ignoreSize = [1, 1];\n ignoreSize[orient.index] = 0;\n mergeLayoutParam(target, raw, {\n type: 'box',\n ignoreSize: !!ignoreSize\n });\n}\n\nexport default ScrollableLegendModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\n/**\n * Separate legend and scrollable legend to reduce package size.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as graphic from '../../util/graphic.js';\nimport * as layoutUtil from '../../util/layout.js';\nimport LegendView from './LegendView.js';\nvar Group = graphic.Group;\nvar WH = ['width', 'height'];\nvar XY = ['x', 'y'];\n\nvar ScrollableLegendView =\n/** @class */\nfunction (_super) {\n __extends(ScrollableLegendView, _super);\n\n function ScrollableLegendView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = ScrollableLegendView.type;\n _this.newlineDisabled = true;\n _this._currentIndex = 0;\n return _this;\n }\n\n ScrollableLegendView.prototype.init = function () {\n _super.prototype.init.call(this);\n\n this.group.add(this._containerGroup = new Group());\n\n this._containerGroup.add(this.getContentGroup());\n\n this.group.add(this._controllerGroup = new Group());\n };\n /**\n * @override\n */\n\n\n ScrollableLegendView.prototype.resetInner = function () {\n _super.prototype.resetInner.call(this);\n\n this._controllerGroup.removeAll();\n\n this._containerGroup.removeClipPath();\n\n this._containerGroup.__rectSize = null;\n };\n /**\n * @override\n */\n\n\n ScrollableLegendView.prototype.renderInner = function (itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition) {\n var self = this; // Render content items.\n\n _super.prototype.renderInner.call(this, itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition);\n\n var controllerGroup = this._controllerGroup; // FIXME: support be 'auto' adapt to size number text length,\n // e.g., '3/12345' should not overlap with the control arrow button.\n\n var pageIconSize = legendModel.get('pageIconSize', true);\n var pageIconSizeArr = zrUtil.isArray(pageIconSize) ? pageIconSize : [pageIconSize, pageIconSize];\n createPageButton('pagePrev', 0);\n var pageTextStyleModel = legendModel.getModel('pageTextStyle');\n controllerGroup.add(new graphic.Text({\n name: 'pageText',\n style: {\n // Placeholder to calculate a proper layout.\n text: 'xx/xx',\n fill: pageTextStyleModel.getTextColor(),\n font: pageTextStyleModel.getFont(),\n verticalAlign: 'middle',\n align: 'center'\n },\n silent: true\n }));\n createPageButton('pageNext', 1);\n\n function createPageButton(name, iconIdx) {\n var pageDataIndexName = name + 'DataIndex';\n var icon = graphic.createIcon(legendModel.get('pageIcons', true)[legendModel.getOrient().name][iconIdx], {\n // Buttons will be created in each render, so we do not need\n // to worry about avoiding using legendModel kept in scope.\n onclick: zrUtil.bind(self._pageGo, self, pageDataIndexName, legendModel, api)\n }, {\n x: -pageIconSizeArr[0] / 2,\n y: -pageIconSizeArr[1] / 2,\n width: pageIconSizeArr[0],\n height: pageIconSizeArr[1]\n });\n icon.name = name;\n controllerGroup.add(icon);\n }\n };\n /**\n * @override\n */\n\n\n ScrollableLegendView.prototype.layoutInner = function (legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition) {\n var selectorGroup = this.getSelectorGroup();\n var orientIdx = legendModel.getOrient().index;\n var wh = WH[orientIdx];\n var xy = XY[orientIdx];\n var hw = WH[1 - orientIdx];\n var yx = XY[1 - orientIdx];\n selector && layoutUtil.box( // Buttons in selectorGroup always layout horizontally\n 'horizontal', selectorGroup, legendModel.get('selectorItemGap', true));\n var selectorButtonGap = legendModel.get('selectorButtonGap', true);\n var selectorRect = selectorGroup.getBoundingRect();\n var selectorPos = [-selectorRect.x, -selectorRect.y];\n var processMaxSize = zrUtil.clone(maxSize);\n selector && (processMaxSize[wh] = maxSize[wh] - selectorRect[wh] - selectorButtonGap);\n\n var mainRect = this._layoutContentAndController(legendModel, isFirstRender, processMaxSize, orientIdx, wh, hw, yx, xy);\n\n if (selector) {\n if (selectorPosition === 'end') {\n selectorPos[orientIdx] += mainRect[wh] + selectorButtonGap;\n } else {\n var offset = selectorRect[wh] + selectorButtonGap;\n selectorPos[orientIdx] -= offset;\n mainRect[xy] -= offset;\n }\n\n mainRect[wh] += selectorRect[wh] + selectorButtonGap;\n selectorPos[1 - orientIdx] += mainRect[yx] + mainRect[hw] / 2 - selectorRect[hw] / 2;\n mainRect[hw] = Math.max(mainRect[hw], selectorRect[hw]);\n mainRect[yx] = Math.min(mainRect[yx], selectorRect[yx] + selectorPos[1 - orientIdx]);\n selectorGroup.x = selectorPos[0];\n selectorGroup.y = selectorPos[1];\n selectorGroup.markRedraw();\n }\n\n return mainRect;\n };\n\n ScrollableLegendView.prototype._layoutContentAndController = function (legendModel, isFirstRender, maxSize, orientIdx, wh, hw, yx, xy) {\n var contentGroup = this.getContentGroup();\n var containerGroup = this._containerGroup;\n var controllerGroup = this._controllerGroup; // Place items in contentGroup.\n\n layoutUtil.box(legendModel.get('orient'), contentGroup, legendModel.get('itemGap'), !orientIdx ? null : maxSize.width, orientIdx ? null : maxSize.height);\n layoutUtil.box( // Buttons in controller are layout always horizontally.\n 'horizontal', controllerGroup, legendModel.get('pageButtonItemGap', true));\n var contentRect = contentGroup.getBoundingRect();\n var controllerRect = controllerGroup.getBoundingRect();\n var showController = this._showController = contentRect[wh] > maxSize[wh]; // In case that the inner elements of contentGroup layout do not based on [0, 0]\n\n var contentPos = [-contentRect.x, -contentRect.y]; // Remain contentPos when scroll animation perfroming.\n // If first rendering, `contentGroup.position` is [0, 0], which\n // does not make sense and may cause unexepcted animation if adopted.\n\n if (!isFirstRender) {\n contentPos[orientIdx] = contentGroup[xy];\n } // Layout container group based on 0.\n\n\n var containerPos = [0, 0];\n var controllerPos = [-controllerRect.x, -controllerRect.y];\n var pageButtonGap = zrUtil.retrieve2(legendModel.get('pageButtonGap', true), legendModel.get('itemGap', true)); // Place containerGroup and controllerGroup and contentGroup.\n\n if (showController) {\n var pageButtonPosition = legendModel.get('pageButtonPosition', true); // controller is on the right / bottom.\n\n if (pageButtonPosition === 'end') {\n controllerPos[orientIdx] += maxSize[wh] - controllerRect[wh];\n } // controller is on the left / top.\n else {\n containerPos[orientIdx] += controllerRect[wh] + pageButtonGap;\n }\n } // Always align controller to content as 'middle'.\n\n\n controllerPos[1 - orientIdx] += contentRect[hw] / 2 - controllerRect[hw] / 2;\n contentGroup.setPosition(contentPos);\n containerGroup.setPosition(containerPos);\n controllerGroup.setPosition(controllerPos); // Calculate `mainRect` and set `clipPath`.\n // mainRect should not be calculated by `this.group.getBoundingRect()`\n // for sake of the overflow.\n\n var mainRect = {\n x: 0,\n y: 0\n }; // Consider content may be overflow (should be clipped).\n\n mainRect[wh] = showController ? maxSize[wh] : contentRect[wh];\n mainRect[hw] = Math.max(contentRect[hw], controllerRect[hw]); // `containerRect[yx] + containerPos[1 - orientIdx]` is 0.\n\n mainRect[yx] = Math.min(0, controllerRect[yx] + controllerPos[1 - orientIdx]);\n containerGroup.__rectSize = maxSize[wh];\n\n if (showController) {\n var clipShape = {\n x: 0,\n y: 0\n };\n clipShape[wh] = Math.max(maxSize[wh] - controllerRect[wh] - pageButtonGap, 0);\n clipShape[hw] = mainRect[hw];\n containerGroup.setClipPath(new graphic.Rect({\n shape: clipShape\n })); // Consider content may be larger than container, container rect\n // can not be obtained from `containerGroup.getBoundingRect()`.\n\n containerGroup.__rectSize = clipShape[wh];\n } else {\n // Do not remove or ignore controller. Keep them set as placeholders.\n controllerGroup.eachChild(function (child) {\n child.attr({\n invisible: true,\n silent: true\n });\n });\n } // Content translate animation.\n\n\n var pageInfo = this._getPageInfo(legendModel);\n\n pageInfo.pageIndex != null && graphic.updateProps(contentGroup, {\n x: pageInfo.contentPosition[0],\n y: pageInfo.contentPosition[1]\n }, // When switch from \"show controller\" to \"not show controller\", view should be\n // updated immediately without animation, otherwise causes weird effect.\n showController ? legendModel : null);\n\n this._updatePageInfoView(legendModel, pageInfo);\n\n return mainRect;\n };\n\n ScrollableLegendView.prototype._pageGo = function (to, legendModel, api) {\n var scrollDataIndex = this._getPageInfo(legendModel)[to];\n\n scrollDataIndex != null && api.dispatchAction({\n type: 'legendScroll',\n scrollDataIndex: scrollDataIndex,\n legendId: legendModel.id\n });\n };\n\n ScrollableLegendView.prototype._updatePageInfoView = function (legendModel, pageInfo) {\n var controllerGroup = this._controllerGroup;\n zrUtil.each(['pagePrev', 'pageNext'], function (name) {\n var key = name + 'DataIndex';\n var canJump = pageInfo[key] != null;\n var icon = controllerGroup.childOfName(name);\n\n if (icon) {\n icon.setStyle('fill', canJump ? legendModel.get('pageIconColor', true) : legendModel.get('pageIconInactiveColor', true));\n icon.cursor = canJump ? 'pointer' : 'default';\n }\n });\n var pageText = controllerGroup.childOfName('pageText');\n var pageFormatter = legendModel.get('pageFormatter');\n var pageIndex = pageInfo.pageIndex;\n var current = pageIndex != null ? pageIndex + 1 : 0;\n var total = pageInfo.pageCount;\n pageText && pageFormatter && pageText.setStyle('text', zrUtil.isString(pageFormatter) ? pageFormatter.replace('{current}', current == null ? '' : current + '').replace('{total}', total == null ? '' : total + '') : pageFormatter({\n current: current,\n total: total\n }));\n };\n /**\n * contentPosition: Array., null when data item not found.\n * pageIndex: number, null when data item not found.\n * pageCount: number, always be a number, can be 0.\n * pagePrevDataIndex: number, null when no previous page.\n * pageNextDataIndex: number, null when no next page.\n * }\n */\n\n\n ScrollableLegendView.prototype._getPageInfo = function (legendModel) {\n var scrollDataIndex = legendModel.get('scrollDataIndex', true);\n var contentGroup = this.getContentGroup();\n var containerRectSize = this._containerGroup.__rectSize;\n var orientIdx = legendModel.getOrient().index;\n var wh = WH[orientIdx];\n var xy = XY[orientIdx];\n\n var targetItemIndex = this._findTargetItemIndex(scrollDataIndex);\n\n var children = contentGroup.children();\n var targetItem = children[targetItemIndex];\n var itemCount = children.length;\n var pCount = !itemCount ? 0 : 1;\n var result = {\n contentPosition: [contentGroup.x, contentGroup.y],\n pageCount: pCount,\n pageIndex: pCount - 1,\n pagePrevDataIndex: null,\n pageNextDataIndex: null\n };\n\n if (!targetItem) {\n return result;\n }\n\n var targetItemInfo = getItemInfo(targetItem);\n result.contentPosition[orientIdx] = -targetItemInfo.s; // Strategy:\n // (1) Always align based on the left/top most item.\n // (2) It is user-friendly that the last item shown in the\n // current window is shown at the begining of next window.\n // Otherwise if half of the last item is cut by the window,\n // it will have no chance to display entirely.\n // (3) Consider that item size probably be different, we\n // have calculate pageIndex by size rather than item index,\n // and we can not get page index directly by division.\n // (4) The window is to narrow to contain more than\n // one item, we should make sure that the page can be fliped.\n\n for (var i = targetItemIndex + 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i <= itemCount; ++i) {\n currItemInfo = getItemInfo(children[i]);\n\n if ( // Half of the last item is out of the window.\n !currItemInfo && winEndItemInfo.e > winStartItemInfo.s + containerRectSize || // If the current item does not intersect with the window, the new page\n // can be started at the current item or the last item.\n currItemInfo && !intersect(currItemInfo, winStartItemInfo.s)) {\n if (winEndItemInfo.i > winStartItemInfo.i) {\n winStartItemInfo = winEndItemInfo;\n } else {\n // e.g., when page size is smaller than item size.\n winStartItemInfo = currItemInfo;\n }\n\n if (winStartItemInfo) {\n if (result.pageNextDataIndex == null) {\n result.pageNextDataIndex = winStartItemInfo.i;\n }\n\n ++result.pageCount;\n }\n }\n\n winEndItemInfo = currItemInfo;\n }\n\n for (var i = targetItemIndex - 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i >= -1; --i) {\n currItemInfo = getItemInfo(children[i]);\n\n if ( // If the the end item does not intersect with the window started\n // from the current item, a page can be settled.\n (!currItemInfo || !intersect(winEndItemInfo, currItemInfo.s)) && // e.g., when page size is smaller than item size.\n winStartItemInfo.i < winEndItemInfo.i) {\n winEndItemInfo = winStartItemInfo;\n\n if (result.pagePrevDataIndex == null) {\n result.pagePrevDataIndex = winStartItemInfo.i;\n }\n\n ++result.pageCount;\n ++result.pageIndex;\n }\n\n winStartItemInfo = currItemInfo;\n }\n\n return result;\n\n function getItemInfo(el) {\n if (el) {\n var itemRect = el.getBoundingRect();\n var start = itemRect[xy] + el[xy];\n return {\n s: start,\n e: start + itemRect[wh],\n i: el.__legendDataIndex\n };\n }\n }\n\n function intersect(itemInfo, winStart) {\n return itemInfo.e >= winStart && itemInfo.s <= winStart + containerRectSize;\n }\n };\n\n ScrollableLegendView.prototype._findTargetItemIndex = function (targetDataIndex) {\n if (!this._showController) {\n return 0;\n }\n\n var index;\n var contentGroup = this.getContentGroup();\n var defaultIndex;\n contentGroup.eachChild(function (child, idx) {\n var legendDataIdx = child.__legendDataIndex; // FIXME\n // If the given targetDataIndex (from model) is illegal,\n // we use defaultIndex. But the index on the legend model and\n // action payload is still illegal. That case will not be\n // changed until some scenario requires.\n\n if (defaultIndex == null && legendDataIdx != null) {\n defaultIndex = idx;\n }\n\n if (legendDataIdx === targetDataIndex) {\n index = idx;\n }\n });\n return index != null ? index : defaultIndex;\n };\n\n ScrollableLegendView.type = 'legend.scroll';\n return ScrollableLegendView;\n}(LegendView);\n\nexport default ScrollableLegendView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { use } from '../../extension.js';\nimport { install as installLegendPlain } from './installLegendPlain.js';\nimport { install as installLegendScroll } from './installLegendScroll.js';\nexport function install(registers) {\n use(installLegendPlain);\n use(installLegendScroll);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport LegendModel from './LegendModel.js';\nimport LegendView from './LegendView.js';\nimport legendFilter from './legendFilter.js';\nimport { installLegendAction } from './legendAction.js';\nexport function install(registers) {\n registers.registerComponentModel(LegendModel);\n registers.registerComponentView(LegendView);\n registers.registerProcessor(registers.PRIORITY.PROCESSOR.SERIES_FILTER, legendFilter);\n registers.registerSubTypeDefaulter('legend', function () {\n return 'plain';\n });\n installLegendAction(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { use } from '../../extension.js';\nimport { install as installLegendPlain } from './installLegendPlain.js';\nimport ScrollableLegendModel from './ScrollableLegendModel.js';\nimport ScrollableLegendView from './ScrollableLegendView.js';\nimport installScrollableLegendAction from './scrollableLegendAction.js';\nexport function install(registers) {\n use(installLegendPlain);\n registers.registerComponentModel(ScrollableLegendModel);\n registers.registerComponentView(ScrollableLegendView);\n installScrollableLegendAction(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// @ts-nocheck\nimport { curry, each } from 'zrender/lib/core/util.js';\n\nfunction legendSelectActionHandler(methodName, payload, ecModel) {\n var selectedMap = {};\n var isToggleSelect = methodName === 'toggleSelected';\n var isSelected; // Update all legend components\n\n ecModel.eachComponent('legend', function (legendModel) {\n if (isToggleSelect && isSelected != null) {\n // Force other legend has same selected status\n // Or the first is toggled to true and other are toggled to false\n // In the case one legend has some item unSelected in option. And if other legend\n // doesn't has the item, they will assume it is selected.\n legendModel[isSelected ? 'select' : 'unSelect'](payload.name);\n } else if (methodName === 'allSelect' || methodName === 'inverseSelect') {\n legendModel[methodName]();\n } else {\n legendModel[methodName](payload.name);\n isSelected = legendModel.isSelected(payload.name);\n }\n\n var legendData = legendModel.getData();\n each(legendData, function (model) {\n var name = model.get('name'); // Wrap element\n\n if (name === '\\n' || name === '') {\n return;\n }\n\n var isItemSelected = legendModel.isSelected(name);\n\n if (selectedMap.hasOwnProperty(name)) {\n // Unselected if any legend is unselected\n selectedMap[name] = selectedMap[name] && isItemSelected;\n } else {\n selectedMap[name] = isItemSelected;\n }\n });\n }); // Return the event explicitly\n\n return methodName === 'allSelect' || methodName === 'inverseSelect' ? {\n selected: selectedMap\n } : {\n name: payload.name,\n selected: selectedMap\n };\n}\n\nexport function installLegendAction(registers) {\n /**\n * @event legendToggleSelect\n * @type {Object}\n * @property {string} type 'legendToggleSelect'\n * @property {string} [from]\n * @property {string} name Series name or data item name\n */\n registers.registerAction('legendToggleSelect', 'legendselectchanged', curry(legendSelectActionHandler, 'toggleSelected'));\n registers.registerAction('legendAllSelect', 'legendselectall', curry(legendSelectActionHandler, 'allSelect'));\n registers.registerAction('legendInverseSelect', 'legendinverseselect', curry(legendSelectActionHandler, 'inverseSelect'));\n /**\n * @event legendSelect\n * @type {Object}\n * @property {string} type 'legendSelect'\n * @property {string} name Series name or data item name\n */\n\n registers.registerAction('legendSelect', 'legendselected', curry(legendSelectActionHandler, 'select'));\n /**\n * @event legendUnSelect\n * @type {Object}\n * @property {string} type 'legendUnSelect'\n * @property {string} name Series name or data item name\n */\n\n registers.registerAction('legendUnSelect', 'legendunselected', curry(legendSelectActionHandler, 'unSelect'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nexport default function legendFilter(ecModel) {\n var legendModels = ecModel.findComponents({\n mainType: 'legend'\n });\n\n if (legendModels && legendModels.length) {\n ecModel.filterSeries(function (series) {\n // If in any legend component the status is not selected.\n // Because in legend series is assumed selected when it is not in the legend data.\n for (var i = 0; i < legendModels.length; i++) {\n if (!legendModels[i].isSelected(series.name)) {\n return false;\n }\n }\n\n return true;\n });\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nexport default function installScrollableLegendAction(registers) {\n /**\n * @event legendScroll\n * @type {Object}\n * @property {string} type 'legendScroll'\n * @property {string} scrollDataIndex\n */\n registers.registerAction('legendScroll', 'legendscroll', function (payload, ecModel) {\n var scrollDataIndex = payload.scrollDataIndex;\n scrollDataIndex != null && ecModel.eachComponent({\n mainType: 'legend',\n subType: 'scroll',\n query: payload\n }, function (legendModel) {\n legendModel.setScrollDataIndex(scrollDataIndex);\n });\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport MarkerModel from './MarkerModel.js';\n\nvar MarkAreaModel =\n/** @class */\nfunction (_super) {\n __extends(MarkAreaModel, _super);\n\n function MarkAreaModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = MarkAreaModel.type;\n return _this;\n }\n\n MarkAreaModel.prototype.createMarkerModelFromSeries = function (markerOpt, masterMarkerModel, ecModel) {\n return new MarkAreaModel(markerOpt, masterMarkerModel, ecModel);\n };\n\n MarkAreaModel.type = 'markArea';\n MarkAreaModel.defaultOption = {\n // zlevel: 0,\n // PENDING\n z: 1,\n tooltip: {\n trigger: 'item'\n },\n // markArea should fixed on the coordinate system\n animation: false,\n label: {\n show: true,\n position: 'top'\n },\n itemStyle: {\n // color and borderColor default to use color from series\n // color: 'auto'\n // borderColor: 'auto'\n borderWidth: 0\n },\n emphasis: {\n label: {\n show: true,\n position: 'top'\n }\n }\n };\n return MarkAreaModel;\n}(MarkerModel);\n\nexport default MarkAreaModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\"; // TODO Optimize on polar\n\nimport * as colorUtil from 'zrender/lib/tool/color.js';\nimport SeriesData from '../../data/SeriesData.js';\nimport * as numberUtil from '../../util/number.js';\nimport * as graphic from '../../util/graphic.js';\nimport { toggleHoverEmphasis, setStatesStylesFromModel } from '../../util/states.js';\nimport * as markerHelper from './markerHelper.js';\nimport MarkerView from './MarkerView.js';\nimport { retrieve, mergeAll, map, curry, filter, extend, isString } from 'zrender/lib/core/util.js';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem.js';\nimport MarkerModel from './MarkerModel.js';\nimport { makeInner } from '../../util/model.js';\nimport { getVisualFromData } from '../../visual/helper.js';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle.js';\nimport { getECData } from '../../util/innerStore.js';\nimport { parseDataValue } from '../../data/helper/dataValueHelper.js';\nvar inner = makeInner();\n\nvar markAreaTransform = function (seriesModel, coordSys, maModel, item) {\n // item may be null\n var item0 = item[0];\n var item1 = item[1];\n\n if (!item0 || !item1) {\n return;\n }\n\n var lt = markerHelper.dataTransform(seriesModel, item0);\n var rb = markerHelper.dataTransform(seriesModel, item1); // FIXME make sure lt is less than rb\n\n var ltCoord = lt.coord;\n var rbCoord = rb.coord;\n ltCoord[0] = retrieve(ltCoord[0], -Infinity);\n ltCoord[1] = retrieve(ltCoord[1], -Infinity);\n rbCoord[0] = retrieve(rbCoord[0], Infinity);\n rbCoord[1] = retrieve(rbCoord[1], Infinity); // Merge option into one\n\n var result = mergeAll([{}, lt, rb]);\n result.coord = [lt.coord, rb.coord];\n result.x0 = lt.x;\n result.y0 = lt.y;\n result.x1 = rb.x;\n result.y1 = rb.y;\n return result;\n};\n\nfunction isInfinity(val) {\n return !isNaN(val) && !isFinite(val);\n} // If a markArea has one dim\n\n\nfunction ifMarkAreaHasOnlyDim(dimIndex, fromCoord, toCoord, coordSys) {\n var otherDimIndex = 1 - dimIndex;\n return isInfinity(fromCoord[otherDimIndex]) && isInfinity(toCoord[otherDimIndex]);\n}\n\nfunction markAreaFilter(coordSys, item) {\n var fromCoord = item.coord[0];\n var toCoord = item.coord[1];\n var item0 = {\n coord: fromCoord,\n x: item.x0,\n y: item.y0\n };\n var item1 = {\n coord: toCoord,\n x: item.x1,\n y: item.y1\n };\n\n if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n // In case\n // {\n // markArea: {\n // data: [{ yAxis: 2 }]\n // }\n // }\n if (fromCoord && toCoord && (ifMarkAreaHasOnlyDim(1, fromCoord, toCoord, coordSys) || ifMarkAreaHasOnlyDim(0, fromCoord, toCoord, coordSys))) {\n return true;\n } // Directly returning true may also do the work,\n // because markArea will not be shown automatically\n // when it's not included in coordinate system.\n // But filtering ahead can avoid keeping rendering markArea\n // when there are too many of them.\n\n\n return markerHelper.zoneFilter(coordSys, item0, item1);\n }\n\n return markerHelper.dataFilter(coordSys, item0) || markerHelper.dataFilter(coordSys, item1);\n} // dims can be ['x0', 'y0'], ['x1', 'y1'], ['x0', 'y1'], ['x1', 'y0']\n\n\nfunction getSingleMarkerEndPoint(data, idx, dims, seriesModel, api) {\n var coordSys = seriesModel.coordinateSystem;\n var itemModel = data.getItemModel(idx);\n var point;\n var xPx = numberUtil.parsePercent(itemModel.get(dims[0]), api.getWidth());\n var yPx = numberUtil.parsePercent(itemModel.get(dims[1]), api.getHeight());\n\n if (!isNaN(xPx) && !isNaN(yPx)) {\n point = [xPx, yPx];\n } else {\n // Chart like bar may have there own marker positioning logic\n if (seriesModel.getMarkerPosition) {\n // Consider the case that user input the right-bottom point first\n // Pick the larger x and y as 'x1' and 'y1'\n var pointValue0 = data.getValues(['x0', 'y0'], idx);\n var pointValue1 = data.getValues(['x1', 'y1'], idx);\n var clampPointValue0 = coordSys.clampData(pointValue0);\n var clampPointValue1 = coordSys.clampData(pointValue1);\n var pointValue = [];\n\n if (dims[0] === 'x0') {\n pointValue[0] = clampPointValue0[0] > clampPointValue1[0] ? pointValue1[0] : pointValue0[0];\n } else {\n pointValue[0] = clampPointValue0[0] > clampPointValue1[0] ? pointValue0[0] : pointValue1[0];\n }\n\n if (dims[1] === 'y0') {\n pointValue[1] = clampPointValue0[1] > clampPointValue1[1] ? pointValue1[1] : pointValue0[1];\n } else {\n pointValue[1] = clampPointValue0[1] > clampPointValue1[1] ? pointValue0[1] : pointValue1[1];\n } // Use the getMarkerPosition\n\n\n point = seriesModel.getMarkerPosition(pointValue, dims, true);\n } else {\n var x = data.get(dims[0], idx);\n var y = data.get(dims[1], idx);\n var pt = [x, y];\n coordSys.clampData && coordSys.clampData(pt, pt);\n point = coordSys.dataToPoint(pt, true);\n }\n\n if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n // TODO: TYPE ts@4.1 may still infer it as Axis instead of Axis2D. Not sure if it's a bug\n var xAxis = coordSys.getAxis('x');\n var yAxis = coordSys.getAxis('y');\n var x = data.get(dims[0], idx);\n var y = data.get(dims[1], idx);\n\n if (isInfinity(x)) {\n point[0] = xAxis.toGlobalCoord(xAxis.getExtent()[dims[0] === 'x0' ? 0 : 1]);\n } else if (isInfinity(y)) {\n point[1] = yAxis.toGlobalCoord(yAxis.getExtent()[dims[1] === 'y0' ? 0 : 1]);\n }\n } // Use x, y if has any\n\n\n if (!isNaN(xPx)) {\n point[0] = xPx;\n }\n\n if (!isNaN(yPx)) {\n point[1] = yPx;\n }\n }\n\n return point;\n}\n\nexport var dimPermutations = [['x0', 'y0'], ['x1', 'y0'], ['x1', 'y1'], ['x0', 'y1']];\n\nvar MarkAreaView =\n/** @class */\nfunction (_super) {\n __extends(MarkAreaView, _super);\n\n function MarkAreaView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = MarkAreaView.type;\n return _this;\n }\n\n MarkAreaView.prototype.updateTransform = function (markAreaModel, ecModel, api) {\n ecModel.eachSeries(function (seriesModel) {\n var maModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markArea');\n\n if (maModel) {\n var areaData_1 = maModel.getData();\n areaData_1.each(function (idx) {\n var points = map(dimPermutations, function (dim) {\n return getSingleMarkerEndPoint(areaData_1, idx, dim, seriesModel, api);\n }); // Layout\n\n areaData_1.setItemLayout(idx, points);\n var el = areaData_1.getItemGraphicEl(idx);\n el.setShape('points', points);\n });\n }\n }, this);\n };\n\n MarkAreaView.prototype.renderSeries = function (seriesModel, maModel, ecModel, api) {\n var coordSys = seriesModel.coordinateSystem;\n var seriesId = seriesModel.id;\n var seriesData = seriesModel.getData();\n var areaGroupMap = this.markerGroupMap;\n var polygonGroup = areaGroupMap.get(seriesId) || areaGroupMap.set(seriesId, {\n group: new graphic.Group()\n });\n this.group.add(polygonGroup.group);\n this.markKeep(polygonGroup);\n var areaData = createList(coordSys, seriesModel, maModel); // Line data for tooltip and formatter\n\n maModel.setData(areaData); // Update visual and layout of line\n\n areaData.each(function (idx) {\n // Layout\n var points = map(dimPermutations, function (dim) {\n return getSingleMarkerEndPoint(areaData, idx, dim, seriesModel, api);\n });\n var xAxisScale = coordSys.getAxis('x').scale;\n var yAxisScale = coordSys.getAxis('y').scale;\n var xAxisExtent = xAxisScale.getExtent();\n var yAxisExtent = yAxisScale.getExtent();\n var xPointExtent = [xAxisScale.parse(areaData.get('x0', idx)), xAxisScale.parse(areaData.get('x1', idx))];\n var yPointExtent = [yAxisScale.parse(areaData.get('y0', idx)), yAxisScale.parse(areaData.get('y1', idx))];\n numberUtil.asc(xPointExtent);\n numberUtil.asc(yPointExtent);\n var overlapped = !(xAxisExtent[0] > xPointExtent[1] || xAxisExtent[1] < xPointExtent[0] || yAxisExtent[0] > yPointExtent[1] || yAxisExtent[1] < yPointExtent[0]); // If none of the area is inside coordSys, allClipped is set to be true\n // in layout so that label will not be displayed. See #12591\n\n var allClipped = !overlapped;\n areaData.setItemLayout(idx, {\n points: points,\n allClipped: allClipped\n });\n var style = areaData.getItemModel(idx).getModel('itemStyle').getItemStyle();\n var color = getVisualFromData(seriesData, 'color');\n\n if (!style.fill) {\n style.fill = color;\n\n if (isString(style.fill)) {\n style.fill = colorUtil.modifyAlpha(style.fill, 0.4);\n }\n }\n\n if (!style.stroke) {\n style.stroke = color;\n } // Visual\n\n\n areaData.setItemVisual(idx, 'style', style);\n });\n areaData.diff(inner(polygonGroup).data).add(function (idx) {\n var layout = areaData.getItemLayout(idx);\n\n if (!layout.allClipped) {\n var polygon = new graphic.Polygon({\n shape: {\n points: layout.points\n }\n });\n areaData.setItemGraphicEl(idx, polygon);\n polygonGroup.group.add(polygon);\n }\n }).update(function (newIdx, oldIdx) {\n var polygon = inner(polygonGroup).data.getItemGraphicEl(oldIdx);\n var layout = areaData.getItemLayout(newIdx);\n\n if (!layout.allClipped) {\n if (polygon) {\n graphic.updateProps(polygon, {\n shape: {\n points: layout.points\n }\n }, maModel, newIdx);\n } else {\n polygon = new graphic.Polygon({\n shape: {\n points: layout.points\n }\n });\n }\n\n areaData.setItemGraphicEl(newIdx, polygon);\n polygonGroup.group.add(polygon);\n } else if (polygon) {\n polygonGroup.group.remove(polygon);\n }\n }).remove(function (idx) {\n var polygon = inner(polygonGroup).data.getItemGraphicEl(idx);\n polygonGroup.group.remove(polygon);\n }).execute();\n areaData.eachItemGraphicEl(function (polygon, idx) {\n var itemModel = areaData.getItemModel(idx);\n var style = areaData.getItemVisual(idx, 'style');\n polygon.useStyle(areaData.getItemVisual(idx, 'style'));\n setLabelStyle(polygon, getLabelStatesModels(itemModel), {\n labelFetcher: maModel,\n labelDataIndex: idx,\n defaultText: areaData.getName(idx) || '',\n inheritColor: isString(style.fill) ? colorUtil.modifyAlpha(style.fill, 1) : '#000'\n });\n setStatesStylesFromModel(polygon, itemModel);\n toggleHoverEmphasis(polygon, null, null, itemModel.get(['emphasis', 'disabled']));\n getECData(polygon).dataModel = maModel;\n });\n inner(polygonGroup).data = areaData;\n polygonGroup.group.silent = maModel.get('silent') || seriesModel.get('silent');\n };\n\n MarkAreaView.type = 'markArea';\n return MarkAreaView;\n}(MarkerView);\n\nfunction createList(coordSys, seriesModel, maModel) {\n var areaData;\n var dataDims;\n var dims = ['x0', 'y0', 'x1', 'y1'];\n\n if (coordSys) {\n var coordDimsInfos_1 = map(coordSys && coordSys.dimensions, function (coordDim) {\n var data = seriesModel.getData();\n var info = data.getDimensionInfo(data.mapDimension(coordDim)) || {}; // In map series data don't have lng and lat dimension. Fallback to same with coordSys\n\n return extend(extend({}, info), {\n name: coordDim,\n // DON'T use ordinalMeta to parse and collect ordinal.\n ordinalMeta: null\n });\n });\n dataDims = map(dims, function (dim, idx) {\n return {\n name: dim,\n type: coordDimsInfos_1[idx % 2].type\n };\n });\n areaData = new SeriesData(dataDims, maModel);\n } else {\n dataDims = [{\n name: 'value',\n type: 'float'\n }];\n areaData = new SeriesData(dataDims, maModel);\n }\n\n var optData = map(maModel.get('data'), curry(markAreaTransform, seriesModel, coordSys, maModel));\n\n if (coordSys) {\n optData = filter(optData, curry(markAreaFilter, coordSys));\n }\n\n var dimValueGetter = coordSys ? function (item, dimName, dataIndex, dimIndex) {\n // TODO should convert to ParsedValue?\n var rawVal = item.coord[Math.floor(dimIndex / 2)][dimIndex % 2];\n return parseDataValue(rawVal, dataDims[dimIndex]);\n } : function (item, dimName, dataIndex, dimIndex) {\n return parseDataValue(item.value, dataDims[dimIndex]);\n };\n areaData.initData(optData, null, dimValueGetter);\n areaData.hasItemOption = true;\n return areaData;\n}\n\nexport default MarkAreaView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport MarkerModel from './MarkerModel.js';\n\nvar MarkLineModel =\n/** @class */\nfunction (_super) {\n __extends(MarkLineModel, _super);\n\n function MarkLineModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = MarkLineModel.type;\n return _this;\n }\n\n MarkLineModel.prototype.createMarkerModelFromSeries = function (markerOpt, masterMarkerModel, ecModel) {\n return new MarkLineModel(markerOpt, masterMarkerModel, ecModel);\n };\n\n MarkLineModel.type = 'markLine';\n MarkLineModel.defaultOption = {\n // zlevel: 0,\n z: 5,\n symbol: ['circle', 'arrow'],\n symbolSize: [8, 16],\n // symbolRotate: 0,\n symbolOffset: 0,\n precision: 2,\n tooltip: {\n trigger: 'item'\n },\n label: {\n show: true,\n position: 'end',\n distance: 5\n },\n lineStyle: {\n type: 'dashed'\n },\n emphasis: {\n label: {\n show: true\n },\n lineStyle: {\n width: 3\n }\n },\n animationEasing: 'linear'\n };\n return MarkLineModel;\n}(MarkerModel);\n\nexport default MarkLineModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport SeriesData from '../../data/SeriesData.js';\nimport * as numberUtil from '../../util/number.js';\nimport * as markerHelper from './markerHelper.js';\nimport LineDraw from '../../chart/helper/LineDraw.js';\nimport MarkerView from './MarkerView.js';\nimport { getStackedDimension } from '../../data/helper/dataStackHelper.js';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem.js';\nimport { getECData } from '../../util/innerStore.js';\nimport MarkerModel from './MarkerModel.js';\nimport { isArray, retrieve, retrieve2, clone, extend, logError, merge, map, curry, filter, isNumber } from 'zrender/lib/core/util.js';\nimport { makeInner } from '../../util/model.js';\nimport { getVisualFromData } from '../../visual/helper.js';\nvar inner = makeInner();\n\nvar markLineTransform = function (seriesModel, coordSys, mlModel, item) {\n var data = seriesModel.getData();\n var itemArray;\n\n if (!isArray(item)) {\n // Special type markLine like 'min', 'max', 'average', 'median'\n var mlType = item.type;\n\n if (mlType === 'min' || mlType === 'max' || mlType === 'average' || mlType === 'median' // In case\n // data: [{\n // yAxis: 10\n // }]\n || item.xAxis != null || item.yAxis != null) {\n var valueAxis = void 0;\n var value = void 0;\n\n if (item.yAxis != null || item.xAxis != null) {\n valueAxis = coordSys.getAxis(item.yAxis != null ? 'y' : 'x');\n value = retrieve(item.yAxis, item.xAxis);\n } else {\n var axisInfo = markerHelper.getAxisInfo(item, data, coordSys, seriesModel);\n valueAxis = axisInfo.valueAxis;\n var valueDataDim = getStackedDimension(data, axisInfo.valueDataDim);\n value = markerHelper.numCalculate(data, valueDataDim, mlType);\n }\n\n var valueIndex = valueAxis.dim === 'x' ? 0 : 1;\n var baseIndex = 1 - valueIndex; // Normized to 2d data with start and end point\n\n var mlFrom = clone(item);\n var mlTo = {\n coord: []\n };\n mlFrom.type = null;\n mlFrom.coord = [];\n mlFrom.coord[baseIndex] = -Infinity;\n mlTo.coord[baseIndex] = Infinity;\n var precision = mlModel.get('precision');\n\n if (precision >= 0 && isNumber(value)) {\n value = +value.toFixed(Math.min(precision, 20));\n }\n\n mlFrom.coord[valueIndex] = mlTo.coord[valueIndex] = value;\n itemArray = [mlFrom, mlTo, {\n type: mlType,\n valueIndex: item.valueIndex,\n // Force to use the value of calculated value.\n value: value\n }];\n } else {\n // Invalid data\n if (process.env.NODE_ENV !== 'production') {\n logError('Invalid markLine data.');\n }\n\n itemArray = [];\n }\n } else {\n itemArray = item;\n }\n\n var normalizedItem = [markerHelper.dataTransform(seriesModel, itemArray[0]), markerHelper.dataTransform(seriesModel, itemArray[1]), extend({}, itemArray[2])]; // Avoid line data type is extended by from(to) data type\n\n normalizedItem[2].type = normalizedItem[2].type || null; // Merge from option and to option into line option\n\n merge(normalizedItem[2], normalizedItem[0]);\n merge(normalizedItem[2], normalizedItem[1]);\n return normalizedItem;\n};\n\nfunction isInfinity(val) {\n return !isNaN(val) && !isFinite(val);\n} // If a markLine has one dim\n\n\nfunction ifMarkLineHasOnlyDim(dimIndex, fromCoord, toCoord, coordSys) {\n var otherDimIndex = 1 - dimIndex;\n var dimName = coordSys.dimensions[dimIndex];\n return isInfinity(fromCoord[otherDimIndex]) && isInfinity(toCoord[otherDimIndex]) && fromCoord[dimIndex] === toCoord[dimIndex] && coordSys.getAxis(dimName).containData(fromCoord[dimIndex]);\n}\n\nfunction markLineFilter(coordSys, item) {\n if (coordSys.type === 'cartesian2d') {\n var fromCoord = item[0].coord;\n var toCoord = item[1].coord; // In case\n // {\n // markLine: {\n // data: [{ yAxis: 2 }]\n // }\n // }\n\n if (fromCoord && toCoord && (ifMarkLineHasOnlyDim(1, fromCoord, toCoord, coordSys) || ifMarkLineHasOnlyDim(0, fromCoord, toCoord, coordSys))) {\n return true;\n }\n }\n\n return markerHelper.dataFilter(coordSys, item[0]) && markerHelper.dataFilter(coordSys, item[1]);\n}\n\nfunction updateSingleMarkerEndLayout(data, idx, isFrom, seriesModel, api) {\n var coordSys = seriesModel.coordinateSystem;\n var itemModel = data.getItemModel(idx);\n var point;\n var xPx = numberUtil.parsePercent(itemModel.get('x'), api.getWidth());\n var yPx = numberUtil.parsePercent(itemModel.get('y'), api.getHeight());\n\n if (!isNaN(xPx) && !isNaN(yPx)) {\n point = [xPx, yPx];\n } else {\n // Chart like bar may have there own marker positioning logic\n if (seriesModel.getMarkerPosition) {\n // Use the getMarkerPosition\n point = seriesModel.getMarkerPosition(data.getValues(data.dimensions, idx));\n } else {\n var dims = coordSys.dimensions;\n var x = data.get(dims[0], idx);\n var y = data.get(dims[1], idx);\n point = coordSys.dataToPoint([x, y]);\n } // Expand line to the edge of grid if value on one axis is Inifnity\n // In case\n // markLine: {\n // data: [{\n // yAxis: 2\n // // or\n // type: 'average'\n // }]\n // }\n\n\n if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n // TODO: TYPE ts@4.1 may still infer it as Axis instead of Axis2D. Not sure if it's a bug\n var xAxis = coordSys.getAxis('x');\n var yAxis = coordSys.getAxis('y');\n var dims = coordSys.dimensions;\n\n if (isInfinity(data.get(dims[0], idx))) {\n point[0] = xAxis.toGlobalCoord(xAxis.getExtent()[isFrom ? 0 : 1]);\n } else if (isInfinity(data.get(dims[1], idx))) {\n point[1] = yAxis.toGlobalCoord(yAxis.getExtent()[isFrom ? 0 : 1]);\n }\n } // Use x, y if has any\n\n\n if (!isNaN(xPx)) {\n point[0] = xPx;\n }\n\n if (!isNaN(yPx)) {\n point[1] = yPx;\n }\n }\n\n data.setItemLayout(idx, point);\n}\n\nvar MarkLineView =\n/** @class */\nfunction (_super) {\n __extends(MarkLineView, _super);\n\n function MarkLineView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = MarkLineView.type;\n return _this;\n }\n\n MarkLineView.prototype.updateTransform = function (markLineModel, ecModel, api) {\n ecModel.eachSeries(function (seriesModel) {\n var mlModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markLine');\n\n if (mlModel) {\n var mlData_1 = mlModel.getData();\n var fromData_1 = inner(mlModel).from;\n var toData_1 = inner(mlModel).to; // Update visual and layout of from symbol and to symbol\n\n fromData_1.each(function (idx) {\n updateSingleMarkerEndLayout(fromData_1, idx, true, seriesModel, api);\n updateSingleMarkerEndLayout(toData_1, idx, false, seriesModel, api);\n }); // Update layout of line\n\n mlData_1.each(function (idx) {\n mlData_1.setItemLayout(idx, [fromData_1.getItemLayout(idx), toData_1.getItemLayout(idx)]);\n });\n this.markerGroupMap.get(seriesModel.id).updateLayout();\n }\n }, this);\n };\n\n MarkLineView.prototype.renderSeries = function (seriesModel, mlModel, ecModel, api) {\n var coordSys = seriesModel.coordinateSystem;\n var seriesId = seriesModel.id;\n var seriesData = seriesModel.getData();\n var lineDrawMap = this.markerGroupMap;\n var lineDraw = lineDrawMap.get(seriesId) || lineDrawMap.set(seriesId, new LineDraw());\n this.group.add(lineDraw.group);\n var mlData = createList(coordSys, seriesModel, mlModel);\n var fromData = mlData.from;\n var toData = mlData.to;\n var lineData = mlData.line;\n inner(mlModel).from = fromData;\n inner(mlModel).to = toData; // Line data for tooltip and formatter\n\n mlModel.setData(lineData); // TODO\n // Functionally, `symbolSize` & `symbolOffset` can also be 2D array now.\n // But the related logic and type definition are not finished yet.\n // Finish it if required\n\n var symbolType = mlModel.get('symbol');\n var symbolSize = mlModel.get('symbolSize');\n var symbolRotate = mlModel.get('symbolRotate');\n var symbolOffset = mlModel.get('symbolOffset'); // TODO: support callback function like markPoint\n\n if (!isArray(symbolType)) {\n symbolType = [symbolType, symbolType];\n }\n\n if (!isArray(symbolSize)) {\n symbolSize = [symbolSize, symbolSize];\n }\n\n if (!isArray(symbolRotate)) {\n symbolRotate = [symbolRotate, symbolRotate];\n }\n\n if (!isArray(symbolOffset)) {\n symbolOffset = [symbolOffset, symbolOffset];\n } // Update visual and layout of from symbol and to symbol\n\n\n mlData.from.each(function (idx) {\n updateDataVisualAndLayout(fromData, idx, true);\n updateDataVisualAndLayout(toData, idx, false);\n }); // Update visual and layout of line\n\n lineData.each(function (idx) {\n var lineStyle = lineData.getItemModel(idx).getModel('lineStyle').getLineStyle(); // lineData.setItemVisual(idx, {\n // color: lineColor || fromData.getItemVisual(idx, 'color')\n // });\n\n lineData.setItemLayout(idx, [fromData.getItemLayout(idx), toData.getItemLayout(idx)]);\n\n if (lineStyle.stroke == null) {\n lineStyle.stroke = fromData.getItemVisual(idx, 'style').fill;\n }\n\n lineData.setItemVisual(idx, {\n fromSymbolKeepAspect: fromData.getItemVisual(idx, 'symbolKeepAspect'),\n fromSymbolOffset: fromData.getItemVisual(idx, 'symbolOffset'),\n fromSymbolRotate: fromData.getItemVisual(idx, 'symbolRotate'),\n fromSymbolSize: fromData.getItemVisual(idx, 'symbolSize'),\n fromSymbol: fromData.getItemVisual(idx, 'symbol'),\n toSymbolKeepAspect: toData.getItemVisual(idx, 'symbolKeepAspect'),\n toSymbolOffset: toData.getItemVisual(idx, 'symbolOffset'),\n toSymbolRotate: toData.getItemVisual(idx, 'symbolRotate'),\n toSymbolSize: toData.getItemVisual(idx, 'symbolSize'),\n toSymbol: toData.getItemVisual(idx, 'symbol'),\n style: lineStyle\n });\n });\n lineDraw.updateData(lineData); // Set host model for tooltip\n // FIXME\n\n mlData.line.eachItemGraphicEl(function (el) {\n getECData(el).dataModel = mlModel;\n el.traverse(function (child) {\n getECData(child).dataModel = mlModel;\n });\n });\n\n function updateDataVisualAndLayout(data, idx, isFrom) {\n var itemModel = data.getItemModel(idx);\n updateSingleMarkerEndLayout(data, idx, isFrom, seriesModel, api);\n var style = itemModel.getModel('itemStyle').getItemStyle();\n\n if (style.fill == null) {\n style.fill = getVisualFromData(seriesData, 'color');\n }\n\n data.setItemVisual(idx, {\n symbolKeepAspect: itemModel.get('symbolKeepAspect'),\n // `0` should be considered as a valid value, so use `retrieve2` instead of `||`\n symbolOffset: retrieve2(itemModel.get('symbolOffset', true), symbolOffset[isFrom ? 0 : 1]),\n symbolRotate: retrieve2(itemModel.get('symbolRotate', true), symbolRotate[isFrom ? 0 : 1]),\n // TODO: when 2d array is supported, it should ignore parent\n symbolSize: retrieve2(itemModel.get('symbolSize'), symbolSize[isFrom ? 0 : 1]),\n symbol: retrieve2(itemModel.get('symbol', true), symbolType[isFrom ? 0 : 1]),\n style: style\n });\n }\n\n this.markKeep(lineDraw);\n lineDraw.group.silent = mlModel.get('silent') || seriesModel.get('silent');\n };\n\n MarkLineView.type = 'markLine';\n return MarkLineView;\n}(MarkerView);\n\nfunction createList(coordSys, seriesModel, mlModel) {\n var coordDimsInfos;\n\n if (coordSys) {\n coordDimsInfos = map(coordSys && coordSys.dimensions, function (coordDim) {\n var info = seriesModel.getData().getDimensionInfo(seriesModel.getData().mapDimension(coordDim)) || {}; // In map series data don't have lng and lat dimension. Fallback to same with coordSys\n\n return extend(extend({}, info), {\n name: coordDim,\n // DON'T use ordinalMeta to parse and collect ordinal.\n ordinalMeta: null\n });\n });\n } else {\n coordDimsInfos = [{\n name: 'value',\n type: 'float'\n }];\n }\n\n var fromData = new SeriesData(coordDimsInfos, mlModel);\n var toData = new SeriesData(coordDimsInfos, mlModel); // No dimensions\n\n var lineData = new SeriesData([], mlModel);\n var optData = map(mlModel.get('data'), curry(markLineTransform, seriesModel, coordSys, mlModel));\n\n if (coordSys) {\n optData = filter(optData, curry(markLineFilter, coordSys));\n }\n\n var dimValueGetter = markerHelper.createMarkerDimValueGetter(!!coordSys, coordDimsInfos);\n fromData.initData(map(optData, function (item) {\n return item[0];\n }), null, dimValueGetter);\n toData.initData(map(optData, function (item) {\n return item[1];\n }), null, dimValueGetter);\n lineData.initData(map(optData, function (item) {\n return item[2];\n }));\n lineData.hasItemOption = true;\n return {\n from: fromData,\n to: toData,\n line: lineData\n };\n}\n\nexport default MarkLineView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport MarkerModel from './MarkerModel.js';\n\nvar MarkPointModel =\n/** @class */\nfunction (_super) {\n __extends(MarkPointModel, _super);\n\n function MarkPointModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = MarkPointModel.type;\n return _this;\n }\n\n MarkPointModel.prototype.createMarkerModelFromSeries = function (markerOpt, masterMarkerModel, ecModel) {\n return new MarkPointModel(markerOpt, masterMarkerModel, ecModel);\n };\n\n MarkPointModel.type = 'markPoint';\n MarkPointModel.defaultOption = {\n // zlevel: 0,\n z: 5,\n symbol: 'pin',\n symbolSize: 50,\n // symbolRotate: 0,\n // symbolOffset: [0, 0]\n tooltip: {\n trigger: 'item'\n },\n label: {\n show: true,\n position: 'inside'\n },\n itemStyle: {\n borderWidth: 2\n },\n emphasis: {\n label: {\n show: true\n }\n }\n };\n return MarkPointModel;\n}(MarkerModel);\n\nexport default MarkPointModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport SymbolDraw from '../../chart/helper/SymbolDraw.js';\nimport * as numberUtil from '../../util/number.js';\nimport SeriesData from '../../data/SeriesData.js';\nimport * as markerHelper from './markerHelper.js';\nimport MarkerView from './MarkerView.js';\nimport MarkerModel from './MarkerModel.js';\nimport { isFunction, map, filter, curry, extend } from 'zrender/lib/core/util.js';\nimport { getECData } from '../../util/innerStore.js';\nimport { getVisualFromData } from '../../visual/helper.js';\n\nfunction updateMarkerLayout(mpData, seriesModel, api) {\n var coordSys = seriesModel.coordinateSystem;\n mpData.each(function (idx) {\n var itemModel = mpData.getItemModel(idx);\n var point;\n var xPx = numberUtil.parsePercent(itemModel.get('x'), api.getWidth());\n var yPx = numberUtil.parsePercent(itemModel.get('y'), api.getHeight());\n\n if (!isNaN(xPx) && !isNaN(yPx)) {\n point = [xPx, yPx];\n } // Chart like bar may have there own marker positioning logic\n else if (seriesModel.getMarkerPosition) {\n // Use the getMarkerPosition\n point = seriesModel.getMarkerPosition(mpData.getValues(mpData.dimensions, idx));\n } else if (coordSys) {\n var x = mpData.get(coordSys.dimensions[0], idx);\n var y = mpData.get(coordSys.dimensions[1], idx);\n point = coordSys.dataToPoint([x, y]);\n } // Use x, y if has any\n\n\n if (!isNaN(xPx)) {\n point[0] = xPx;\n }\n\n if (!isNaN(yPx)) {\n point[1] = yPx;\n }\n\n mpData.setItemLayout(idx, point);\n });\n}\n\nvar MarkPointView =\n/** @class */\nfunction (_super) {\n __extends(MarkPointView, _super);\n\n function MarkPointView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = MarkPointView.type;\n return _this;\n }\n\n MarkPointView.prototype.updateTransform = function (markPointModel, ecModel, api) {\n ecModel.eachSeries(function (seriesModel) {\n var mpModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markPoint');\n\n if (mpModel) {\n updateMarkerLayout(mpModel.getData(), seriesModel, api);\n this.markerGroupMap.get(seriesModel.id).updateLayout();\n }\n }, this);\n };\n\n MarkPointView.prototype.renderSeries = function (seriesModel, mpModel, ecModel, api) {\n var coordSys = seriesModel.coordinateSystem;\n var seriesId = seriesModel.id;\n var seriesData = seriesModel.getData();\n var symbolDrawMap = this.markerGroupMap;\n var symbolDraw = symbolDrawMap.get(seriesId) || symbolDrawMap.set(seriesId, new SymbolDraw());\n var mpData = createData(coordSys, seriesModel, mpModel); // FIXME\n\n mpModel.setData(mpData);\n updateMarkerLayout(mpModel.getData(), seriesModel, api);\n mpData.each(function (idx) {\n var itemModel = mpData.getItemModel(idx);\n var symbol = itemModel.getShallow('symbol');\n var symbolSize = itemModel.getShallow('symbolSize');\n var symbolRotate = itemModel.getShallow('symbolRotate');\n var symbolOffset = itemModel.getShallow('symbolOffset');\n var symbolKeepAspect = itemModel.getShallow('symbolKeepAspect'); // TODO: refactor needed: single data item should not support callback function\n\n if (isFunction(symbol) || isFunction(symbolSize) || isFunction(symbolRotate) || isFunction(symbolOffset)) {\n var rawIdx = mpModel.getRawValue(idx);\n var dataParams = mpModel.getDataParams(idx);\n\n if (isFunction(symbol)) {\n symbol = symbol(rawIdx, dataParams);\n }\n\n if (isFunction(symbolSize)) {\n // FIXME 这里不兼容 ECharts 2.x,2.x 貌似参数是整个数据?\n symbolSize = symbolSize(rawIdx, dataParams);\n }\n\n if (isFunction(symbolRotate)) {\n symbolRotate = symbolRotate(rawIdx, dataParams);\n }\n\n if (isFunction(symbolOffset)) {\n symbolOffset = symbolOffset(rawIdx, dataParams);\n }\n }\n\n var style = itemModel.getModel('itemStyle').getItemStyle();\n var color = getVisualFromData(seriesData, 'color');\n\n if (!style.fill) {\n style.fill = color;\n }\n\n mpData.setItemVisual(idx, {\n symbol: symbol,\n symbolSize: symbolSize,\n symbolRotate: symbolRotate,\n symbolOffset: symbolOffset,\n symbolKeepAspect: symbolKeepAspect,\n style: style\n });\n }); // TODO Text are wrong\n\n symbolDraw.updateData(mpData);\n this.group.add(symbolDraw.group); // Set host model for tooltip\n // FIXME\n\n mpData.eachItemGraphicEl(function (el) {\n el.traverse(function (child) {\n getECData(child).dataModel = mpModel;\n });\n });\n this.markKeep(symbolDraw);\n symbolDraw.group.silent = mpModel.get('silent') || seriesModel.get('silent');\n };\n\n MarkPointView.type = 'markPoint';\n return MarkPointView;\n}(MarkerView);\n\nfunction createData(coordSys, seriesModel, mpModel) {\n var coordDimsInfos;\n\n if (coordSys) {\n coordDimsInfos = map(coordSys && coordSys.dimensions, function (coordDim) {\n var info = seriesModel.getData().getDimensionInfo(seriesModel.getData().mapDimension(coordDim)) || {}; // In map series data don't have lng and lat dimension. Fallback to same with coordSys\n\n return extend(extend({}, info), {\n name: coordDim,\n // DON'T use ordinalMeta to parse and collect ordinal.\n ordinalMeta: null\n });\n });\n } else {\n coordDimsInfos = [{\n name: 'value',\n type: 'float'\n }];\n }\n\n var mpData = new SeriesData(coordDimsInfos, mpModel);\n var dataOpt = map(mpModel.get('data'), curry(markerHelper.dataTransform, seriesModel));\n\n if (coordSys) {\n dataOpt = filter(dataOpt, curry(markerHelper.dataFilter, coordSys));\n }\n\n var dimValueGetter = markerHelper.createMarkerDimValueGetter(!!coordSys, coordDimsInfos);\n mpData.initData(dataOpt, null, dimValueGetter);\n return mpData;\n}\n\nexport default MarkPointView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport env from 'zrender/lib/core/env.js';\nimport { DataFormatMixin } from '../../model/mixin/dataFormat.js';\nimport ComponentModel from '../../model/Component.js';\nimport { makeInner, defaultEmphasis } from '../../util/model.js';\nimport { createTooltipMarkup } from '../tooltip/tooltipMarkup.js';\n\nfunction fillLabel(opt) {\n defaultEmphasis(opt, 'label', ['show']);\n} // { [componentType]: MarkerModel }\n\n\nvar inner = makeInner();\n\nvar MarkerModel =\n/** @class */\nfunction (_super) {\n __extends(MarkerModel, _super);\n\n function MarkerModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = MarkerModel.type;\n /**\n * If marker model is created by self from series\n */\n\n _this.createdBySelf = false;\n return _this;\n }\n /**\n * @overrite\n */\n\n\n MarkerModel.prototype.init = function (option, parentModel, ecModel) {\n if (process.env.NODE_ENV !== 'production') {\n if (this.type === 'marker') {\n throw new Error('Marker component is abstract component. Use markLine, markPoint, markArea instead.');\n }\n }\n\n this.mergeDefaultAndTheme(option, ecModel);\n\n this._mergeOption(option, ecModel, false, true);\n };\n\n MarkerModel.prototype.isAnimationEnabled = function () {\n if (env.node) {\n return false;\n }\n\n var hostSeries = this.__hostSeries;\n return this.getShallow('animation') && hostSeries && hostSeries.isAnimationEnabled();\n };\n /**\n * @overrite\n */\n\n\n MarkerModel.prototype.mergeOption = function (newOpt, ecModel) {\n this._mergeOption(newOpt, ecModel, false, false);\n };\n\n MarkerModel.prototype._mergeOption = function (newOpt, ecModel, createdBySelf, isInit) {\n var componentType = this.mainType;\n\n if (!createdBySelf) {\n ecModel.eachSeries(function (seriesModel) {\n // mainType can be markPoint, markLine, markArea\n var markerOpt = seriesModel.get(this.mainType, true);\n var markerModel = inner(seriesModel)[componentType];\n\n if (!markerOpt || !markerOpt.data) {\n inner(seriesModel)[componentType] = null;\n return;\n }\n\n if (!markerModel) {\n if (isInit) {\n // Default label emphasis `position` and `show`\n fillLabel(markerOpt);\n }\n\n zrUtil.each(markerOpt.data, function (item) {\n // FIXME Overwrite fillLabel method ?\n if (item instanceof Array) {\n fillLabel(item[0]);\n fillLabel(item[1]);\n } else {\n fillLabel(item);\n }\n });\n markerModel = this.createMarkerModelFromSeries(markerOpt, this, ecModel); // markerModel = new ImplementedMarkerModel(\n // markerOpt, this, ecModel\n // );\n\n zrUtil.extend(markerModel, {\n mainType: this.mainType,\n // Use the same series index and name\n seriesIndex: seriesModel.seriesIndex,\n name: seriesModel.name,\n createdBySelf: true\n });\n markerModel.__hostSeries = seriesModel;\n } else {\n markerModel._mergeOption(markerOpt, ecModel, true);\n }\n\n inner(seriesModel)[componentType] = markerModel;\n }, this);\n }\n };\n\n MarkerModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n var data = this.getData();\n var value = this.getRawValue(dataIndex);\n var itemName = data.getName(dataIndex);\n return createTooltipMarkup('section', {\n header: this.name,\n blocks: [createTooltipMarkup('nameValue', {\n name: itemName,\n value: value,\n noName: !itemName,\n noValue: value == null\n })]\n });\n };\n\n MarkerModel.prototype.getData = function () {\n return this._data;\n };\n\n MarkerModel.prototype.setData = function (data) {\n this._data = data;\n };\n\n MarkerModel.getMarkerModelFromSeries = function (seriesModel, // Support three types of markers. Strict check.\n componentType) {\n return inner(seriesModel)[componentType];\n };\n\n MarkerModel.type = 'marker';\n MarkerModel.dependencies = ['series', 'grid', 'polar', 'geo'];\n return MarkerModel;\n}(ComponentModel);\n\nzrUtil.mixin(MarkerModel, DataFormatMixin.prototype);\nexport default MarkerModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport ComponentView from '../../view/Component.js';\nimport { createHashMap, each } from 'zrender/lib/core/util.js';\nimport MarkerModel from './MarkerModel.js';\nimport { makeInner } from '../../util/model.js';\nimport { enterBlur, leaveBlur } from '../../util/states.js';\nvar inner = makeInner();\n\nvar MarkerView =\n/** @class */\nfunction (_super) {\n __extends(MarkerView, _super);\n\n function MarkerView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = MarkerView.type;\n return _this;\n }\n\n MarkerView.prototype.init = function () {\n this.markerGroupMap = createHashMap();\n };\n\n MarkerView.prototype.render = function (markerModel, ecModel, api) {\n var _this = this;\n\n var markerGroupMap = this.markerGroupMap;\n markerGroupMap.each(function (item) {\n inner(item).keep = false;\n });\n ecModel.eachSeries(function (seriesModel) {\n var markerModel = MarkerModel.getMarkerModelFromSeries(seriesModel, _this.type);\n markerModel && _this.renderSeries(seriesModel, markerModel, ecModel, api);\n });\n markerGroupMap.each(function (item) {\n !inner(item).keep && _this.group.remove(item.group);\n });\n };\n\n MarkerView.prototype.markKeep = function (drawGroup) {\n inner(drawGroup).keep = true;\n };\n\n MarkerView.prototype.toggleBlurSeries = function (seriesModelList, isBlur) {\n var _this = this;\n\n each(seriesModelList, function (seriesModel) {\n var markerModel = MarkerModel.getMarkerModelFromSeries(seriesModel, _this.type);\n\n if (markerModel) {\n var data = markerModel.getData();\n data.eachItemGraphicEl(function (el) {\n if (el) {\n isBlur ? enterBlur(el) : leaveBlur(el);\n }\n });\n }\n });\n };\n\n MarkerView.type = 'marker';\n return MarkerView;\n}(ComponentView);\n\nexport default MarkerView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { isArray } from 'zrender/lib/core/util.js';\nexport default function checkMarkerInSeries(seriesOpts, markerType) {\n if (!seriesOpts) {\n return false;\n }\n\n var seriesOptArr = isArray(seriesOpts) ? seriesOpts : [seriesOpts];\n\n for (var idx = 0; idx < seriesOptArr.length; idx++) {\n if (seriesOptArr[idx] && seriesOptArr[idx][markerType]) {\n return true;\n }\n }\n\n return false;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport checkMarkerInSeries from './checkMarkerInSeries.js';\nimport MarkAreaModel from './MarkAreaModel.js';\nimport MarkAreaView from './MarkAreaView.js';\nexport function install(registers) {\n registers.registerComponentModel(MarkAreaModel);\n registers.registerComponentView(MarkAreaView);\n registers.registerPreprocessor(function (opt) {\n if (checkMarkerInSeries(opt.series, 'markArea')) {\n // Make sure markArea component is enabled\n opt.markArea = opt.markArea || {};\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport checkMarkerInSeries from './checkMarkerInSeries.js';\nimport MarkLineModel from './MarkLineModel.js';\nimport MarkLineView from './MarkLineView.js';\nexport function install(registers) {\n registers.registerComponentModel(MarkLineModel);\n registers.registerComponentView(MarkLineView);\n registers.registerPreprocessor(function (opt) {\n if (checkMarkerInSeries(opt.series, 'markLine')) {\n // Make sure markLine component is enabled\n opt.markLine = opt.markLine || {};\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport checkMarkerInSeries from './checkMarkerInSeries.js';\nimport MarkPointModel from './MarkPointModel.js';\nimport MarkPointView from './MarkPointView.js';\nexport function install(registers) {\n registers.registerComponentModel(MarkPointModel);\n registers.registerComponentView(MarkPointView);\n registers.registerPreprocessor(function (opt) {\n if (checkMarkerInSeries(opt.series, 'markPoint')) {\n // Make sure markPoint component is enabled\n opt.markPoint = opt.markPoint || {};\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as numberUtil from '../../util/number.js';\nimport { isDimensionStacked } from '../../data/helper/dataStackHelper.js';\nimport { indexOf, curry, clone, isArray } from 'zrender/lib/core/util.js';\nimport { parseDataValue } from '../../data/helper/dataValueHelper.js';\n\nfunction hasXOrY(item) {\n return !(isNaN(parseFloat(item.x)) && isNaN(parseFloat(item.y)));\n}\n\nfunction hasXAndY(item) {\n return !isNaN(parseFloat(item.x)) && !isNaN(parseFloat(item.y));\n}\n\nfunction markerTypeCalculatorWithExtent(markerType, data, otherDataDim, targetDataDim, otherCoordIndex, targetCoordIndex) {\n var coordArr = [];\n var stacked = isDimensionStacked(data, targetDataDim\n /* , otherDataDim */\n );\n var calcDataDim = stacked ? data.getCalculationInfo('stackResultDimension') : targetDataDim;\n var value = numCalculate(data, calcDataDim, markerType);\n var dataIndex = data.indicesOfNearest(calcDataDim, value)[0];\n coordArr[otherCoordIndex] = data.get(otherDataDim, dataIndex);\n coordArr[targetCoordIndex] = data.get(calcDataDim, dataIndex);\n var coordArrValue = data.get(targetDataDim, dataIndex); // Make it simple, do not visit all stacked value to count precision.\n\n var precision = numberUtil.getPrecision(data.get(targetDataDim, dataIndex));\n precision = Math.min(precision, 20);\n\n if (precision >= 0) {\n coordArr[targetCoordIndex] = +coordArr[targetCoordIndex].toFixed(precision);\n }\n\n return [coordArr, coordArrValue];\n} // TODO Specified percent\n\n\nvar markerTypeCalculator = {\n min: curry(markerTypeCalculatorWithExtent, 'min'),\n max: curry(markerTypeCalculatorWithExtent, 'max'),\n average: curry(markerTypeCalculatorWithExtent, 'average'),\n median: curry(markerTypeCalculatorWithExtent, 'median')\n};\n/**\n * Transform markPoint data item to format used in List by do the following\n * 1. Calculate statistic like `max`, `min`, `average`\n * 2. Convert `item.xAxis`, `item.yAxis` to `item.coord` array\n */\n\nexport function dataTransform(seriesModel, item) {\n if (!item) {\n return;\n }\n\n var data = seriesModel.getData();\n var coordSys = seriesModel.coordinateSystem;\n var dims = coordSys && coordSys.dimensions; // 1. If not specify the position with pixel directly\n // 2. If `coord` is not a data array. Which uses `xAxis`,\n // `yAxis` to specify the coord on each dimension\n // parseFloat first because item.x and item.y can be percent string like '20%'\n\n if (!hasXAndY(item) && !isArray(item.coord) && isArray(dims)) {\n var axisInfo = getAxisInfo(item, data, coordSys, seriesModel); // Clone the option\n // Transform the properties xAxis, yAxis, radiusAxis, angleAxis, geoCoord to value\n\n item = clone(item);\n\n if (item.type && markerTypeCalculator[item.type] && axisInfo.baseAxis && axisInfo.valueAxis) {\n var otherCoordIndex = indexOf(dims, axisInfo.baseAxis.dim);\n var targetCoordIndex = indexOf(dims, axisInfo.valueAxis.dim);\n var coordInfo = markerTypeCalculator[item.type](data, axisInfo.baseDataDim, axisInfo.valueDataDim, otherCoordIndex, targetCoordIndex);\n item.coord = coordInfo[0]; // Force to use the value of calculated value.\n // let item use the value without stack.\n\n item.value = coordInfo[1];\n } else {\n // FIXME Only has one of xAxis and yAxis.\n item.coord = [item.xAxis != null ? item.xAxis : item.radiusAxis, item.yAxis != null ? item.yAxis : item.angleAxis];\n }\n } // x y is provided\n\n\n if (item.coord == null || !isArray(dims)) {\n item.coord = [];\n } else {\n // Each coord support max, min, average\n var coord = item.coord;\n\n for (var i = 0; i < 2; i++) {\n if (markerTypeCalculator[coord[i]]) {\n coord[i] = numCalculate(data, data.mapDimension(dims[i]), coord[i]);\n }\n }\n }\n\n return item;\n}\nexport function getAxisInfo(item, data, coordSys, seriesModel) {\n var ret = {};\n\n if (item.valueIndex != null || item.valueDim != null) {\n ret.valueDataDim = item.valueIndex != null ? data.getDimension(item.valueIndex) : item.valueDim;\n ret.valueAxis = coordSys.getAxis(dataDimToCoordDim(seriesModel, ret.valueDataDim));\n ret.baseAxis = coordSys.getOtherAxis(ret.valueAxis);\n ret.baseDataDim = data.mapDimension(ret.baseAxis.dim);\n } else {\n ret.baseAxis = seriesModel.getBaseAxis();\n ret.valueAxis = coordSys.getOtherAxis(ret.baseAxis);\n ret.baseDataDim = data.mapDimension(ret.baseAxis.dim);\n ret.valueDataDim = data.mapDimension(ret.valueAxis.dim);\n }\n\n return ret;\n}\n\nfunction dataDimToCoordDim(seriesModel, dataDim) {\n var dimItem = seriesModel.getData().getDimensionInfo(dataDim);\n return dimItem && dimItem.coordDim;\n}\n/**\n * Filter data which is out of coordinateSystem range\n * [dataFilter description]\n */\n\n\nexport function dataFilter( // Currently only polar and cartesian has containData.\ncoordSys, item) {\n // Always return true if there is no coordSys\n return coordSys && coordSys.containData && item.coord && !hasXOrY(item) ? coordSys.containData(item.coord) : true;\n}\nexport function zoneFilter( // Currently only polar and cartesian has containData.\ncoordSys, item1, item2) {\n // Always return true if there is no coordSys\n return coordSys && coordSys.containZone && item1.coord && item2.coord && !hasXOrY(item1) && !hasXOrY(item2) ? coordSys.containZone(item1.coord, item2.coord) : true;\n}\nexport function createMarkerDimValueGetter(inCoordSys, dims) {\n return inCoordSys ? function (item, dimName, dataIndex, dimIndex) {\n var rawVal = dimIndex < 2 // x, y, radius, angle\n ? item.coord && item.coord[dimIndex] : item.value;\n return parseDataValue(rawVal, dims[dimIndex]);\n } : function (item, dimName, dataIndex, dimIndex) {\n return parseDataValue(item.value, dims[dimIndex]);\n };\n}\nexport function numCalculate(data, valueDataDim, type) {\n if (type === 'average') {\n var sum_1 = 0;\n var count_1 = 0;\n data.each(valueDataDim, function (val, idx) {\n if (!isNaN(val)) {\n sum_1 += val;\n count_1++;\n }\n });\n return sum_1 / count_1;\n } else if (type === 'median') {\n return data.getMedian(valueDataDim);\n } else {\n // max & min\n return data.getDataExtent(valueDataDim)[type === 'max' ? 1 : 0];\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport ComponentView from '../../view/Component.js';\nimport { each, bind, extend } from 'zrender/lib/core/util.js';\nimport { createOrUpdate, clear } from '../../util/throttle.js';\nvar CLICK_THRESHOLD = 5; // > 4\n\nvar ParallelView =\n/** @class */\nfunction (_super) {\n __extends(ParallelView, _super);\n\n function ParallelView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = ParallelView.type;\n return _this;\n }\n\n ParallelView.prototype.render = function (parallelModel, ecModel, api) {\n this._model = parallelModel;\n this._api = api;\n\n if (!this._handlers) {\n this._handlers = {};\n each(handlers, function (handler, eventName) {\n api.getZr().on(eventName, this._handlers[eventName] = bind(handler, this));\n }, this);\n }\n\n createOrUpdate(this, '_throttledDispatchExpand', parallelModel.get('axisExpandRate'), 'fixRate');\n };\n\n ParallelView.prototype.dispose = function (ecModel, api) {\n clear(this, '_throttledDispatchExpand');\n each(this._handlers, function (handler, eventName) {\n api.getZr().off(eventName, handler);\n });\n this._handlers = null;\n };\n /**\n * @internal\n * @param {Object} [opt] If null, cancel the last action triggering for debounce.\n */\n\n\n ParallelView.prototype._throttledDispatchExpand = function (opt) {\n this._dispatchExpand(opt);\n };\n /**\n * @internal\n */\n\n\n ParallelView.prototype._dispatchExpand = function (opt) {\n opt && this._api.dispatchAction(extend({\n type: 'parallelAxisExpand'\n }, opt));\n };\n\n ParallelView.type = 'parallel';\n return ParallelView;\n}(ComponentView);\n\nvar handlers = {\n mousedown: function (e) {\n if (checkTrigger(this, 'click')) {\n this._mouseDownPoint = [e.offsetX, e.offsetY];\n }\n },\n mouseup: function (e) {\n var mouseDownPoint = this._mouseDownPoint;\n\n if (checkTrigger(this, 'click') && mouseDownPoint) {\n var point = [e.offsetX, e.offsetY];\n var dist = Math.pow(mouseDownPoint[0] - point[0], 2) + Math.pow(mouseDownPoint[1] - point[1], 2);\n\n if (dist > CLICK_THRESHOLD) {\n return;\n }\n\n var result = this._model.coordinateSystem.getSlidedAxisExpandWindow([e.offsetX, e.offsetY]);\n\n result.behavior !== 'none' && this._dispatchExpand({\n axisExpandWindow: result.axisExpandWindow\n });\n }\n\n this._mouseDownPoint = null;\n },\n mousemove: function (e) {\n // Should do nothing when brushing.\n if (this._mouseDownPoint || !checkTrigger(this, 'mousemove')) {\n return;\n }\n\n var model = this._model;\n var result = model.coordinateSystem.getSlidedAxisExpandWindow([e.offsetX, e.offsetY]);\n var behavior = result.behavior;\n behavior === 'jump' && this._throttledDispatchExpand.debounceNextCall(model.get('axisExpandDebounce'));\n\n this._throttledDispatchExpand(behavior === 'none' ? null // Cancel the last trigger, in case that mouse slide out of the area quickly.\n : {\n axisExpandWindow: result.axisExpandWindow,\n // Jumping uses animation, and sliding suppresses animation.\n animation: behavior === 'jump' ? null : {\n duration: 0 // Disable animation.\n\n }\n });\n }\n};\n\nfunction checkTrigger(view, triggerOn) {\n var model = view._model;\n return model.get('axisExpandable') && model.get('axisExpandTriggerOn') === triggerOn;\n}\n\nexport default ParallelView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport parallelPreprocessor from '../../coord/parallel/parallelPreprocessor.js';\nimport ParallelView from './ParallelView.js';\nimport ParallelModel from '../../coord/parallel/ParallelModel.js';\nimport parallelCoordSysCreator from '../../coord/parallel/parallelCreator.js';\nimport axisModelCreator from '../../coord/axisModelCreator.js';\nimport ParallelAxisModel from '../../coord/parallel/AxisModel.js';\nimport ParallelAxisView from '../axis/ParallelAxisView.js';\nimport { installParallelActions } from '../axis/parallelAxisAction.js';\nvar defaultAxisOption = {\n type: 'value',\n areaSelectStyle: {\n width: 20,\n borderWidth: 1,\n borderColor: 'rgba(160,197,232)',\n color: 'rgba(160,197,232)',\n opacity: 0.3\n },\n realtime: true,\n z: 10\n};\nexport function install(registers) {\n registers.registerComponentView(ParallelView);\n registers.registerComponentModel(ParallelModel);\n registers.registerCoordinateSystem('parallel', parallelCoordSysCreator);\n registers.registerPreprocessor(parallelPreprocessor);\n registers.registerComponentModel(ParallelAxisModel);\n registers.registerComponentView(ParallelAxisView);\n axisModelCreator(registers, 'parallel', ParallelAxisModel, defaultAxisOption);\n installParallelActions(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport { use } from '../../extension.js';\nimport AxisView from '../axis/AxisView.js';\nimport PolarAxisPointer from '../axisPointer/PolarAxisPointer.js';\nimport { install as installAxisPointer } from '../axisPointer/install.js';\nimport PolarModel from '../../coord/polar/PolarModel.js';\nimport axisModelCreator from '../../coord/axisModelCreator.js';\nimport { AngleAxisModel, RadiusAxisModel } from '../../coord/polar/AxisModel.js';\nimport polarCreator from '../../coord/polar/polarCreator.js';\nimport AngleAxisView from '../axis/AngleAxisView.js';\nimport RadiusAxisView from '../axis/RadiusAxisView.js';\nimport ComponentView from '../../view/Component.js';\nimport { curry } from 'zrender/lib/core/util.js';\nimport barLayoutPolar from '../../layout/barPolar.js';\nvar angleAxisExtraOption = {\n startAngle: 90,\n clockwise: true,\n splitNumber: 12,\n axisLabel: {\n rotate: 0\n }\n};\nvar radiusAxisExtraOption = {\n splitNumber: 5\n};\n\nvar PolarView =\n/** @class */\nfunction (_super) {\n __extends(PolarView, _super);\n\n function PolarView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = PolarView.type;\n return _this;\n }\n\n PolarView.type = 'polar';\n return PolarView;\n}(ComponentView);\n\nexport function install(registers) {\n use(installAxisPointer);\n AxisView.registerAxisPointerClass('PolarAxisPointer', PolarAxisPointer);\n registers.registerCoordinateSystem('polar', polarCreator);\n registers.registerComponentModel(PolarModel);\n registers.registerComponentView(PolarView); // Model and view for angleAxis and radiusAxis\n\n axisModelCreator(registers, 'angle', AngleAxisModel, angleAxisExtraOption);\n axisModelCreator(registers, 'radius', RadiusAxisModel, radiusAxisExtraOption);\n registers.registerComponentView(AngleAxisView);\n registers.registerComponentView(RadiusAxisView);\n registers.registerLayout(curry(barLayoutPolar, 'bar'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport AxisBuilder from '../axis/AxisBuilder.js';\nimport * as graphic from '../../util/graphic.js';\nimport ComponentView from '../../view/Component.js';\nvar axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\n\nvar RadarView =\n/** @class */\nfunction (_super) {\n __extends(RadarView, _super);\n\n function RadarView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = RadarView.type;\n return _this;\n }\n\n RadarView.prototype.render = function (radarModel, ecModel, api) {\n var group = this.group;\n group.removeAll();\n\n this._buildAxes(radarModel);\n\n this._buildSplitLineAndArea(radarModel);\n };\n\n RadarView.prototype._buildAxes = function (radarModel) {\n var radar = radarModel.coordinateSystem;\n var indicatorAxes = radar.getIndicatorAxes();\n var axisBuilders = zrUtil.map(indicatorAxes, function (indicatorAxis) {\n var axisName = indicatorAxis.model.get('showName') ? indicatorAxis.name : ''; // hide name\n\n var axisBuilder = new AxisBuilder(indicatorAxis.model, {\n axisName: axisName,\n position: [radar.cx, radar.cy],\n rotation: indicatorAxis.angle,\n labelDirection: -1,\n tickDirection: -1,\n nameDirection: 1\n });\n return axisBuilder;\n });\n zrUtil.each(axisBuilders, function (axisBuilder) {\n zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n this.group.add(axisBuilder.getGroup());\n }, this);\n };\n\n RadarView.prototype._buildSplitLineAndArea = function (radarModel) {\n var radar = radarModel.coordinateSystem;\n var indicatorAxes = radar.getIndicatorAxes();\n\n if (!indicatorAxes.length) {\n return;\n }\n\n var shape = radarModel.get('shape');\n var splitLineModel = radarModel.getModel('splitLine');\n var splitAreaModel = radarModel.getModel('splitArea');\n var lineStyleModel = splitLineModel.getModel('lineStyle');\n var areaStyleModel = splitAreaModel.getModel('areaStyle');\n var showSplitLine = splitLineModel.get('show');\n var showSplitArea = splitAreaModel.get('show');\n var splitLineColors = lineStyleModel.get('color');\n var splitAreaColors = areaStyleModel.get('color');\n var splitLineColorsArr = zrUtil.isArray(splitLineColors) ? splitLineColors : [splitLineColors];\n var splitAreaColorsArr = zrUtil.isArray(splitAreaColors) ? splitAreaColors : [splitAreaColors];\n var splitLines = [];\n var splitAreas = [];\n\n function getColorIndex(areaOrLine, areaOrLineColorList, idx) {\n var colorIndex = idx % areaOrLineColorList.length;\n areaOrLine[colorIndex] = areaOrLine[colorIndex] || [];\n return colorIndex;\n }\n\n if (shape === 'circle') {\n var ticksRadius = indicatorAxes[0].getTicksCoords();\n var cx = radar.cx;\n var cy = radar.cy;\n\n for (var i = 0; i < ticksRadius.length; i++) {\n if (showSplitLine) {\n var colorIndex = getColorIndex(splitLines, splitLineColorsArr, i);\n splitLines[colorIndex].push(new graphic.Circle({\n shape: {\n cx: cx,\n cy: cy,\n r: ticksRadius[i].coord\n }\n }));\n }\n\n if (showSplitArea && i < ticksRadius.length - 1) {\n var colorIndex = getColorIndex(splitAreas, splitAreaColorsArr, i);\n splitAreas[colorIndex].push(new graphic.Ring({\n shape: {\n cx: cx,\n cy: cy,\n r0: ticksRadius[i].coord,\n r: ticksRadius[i + 1].coord\n }\n }));\n }\n }\n } // Polyyon\n else {\n var realSplitNumber_1;\n var axesTicksPoints = zrUtil.map(indicatorAxes, function (indicatorAxis, idx) {\n var ticksCoords = indicatorAxis.getTicksCoords();\n realSplitNumber_1 = realSplitNumber_1 == null ? ticksCoords.length - 1 : Math.min(ticksCoords.length - 1, realSplitNumber_1);\n return zrUtil.map(ticksCoords, function (tickCoord) {\n return radar.coordToPoint(tickCoord.coord, idx);\n });\n });\n var prevPoints = [];\n\n for (var i = 0; i <= realSplitNumber_1; i++) {\n var points = [];\n\n for (var j = 0; j < indicatorAxes.length; j++) {\n points.push(axesTicksPoints[j][i]);\n } // Close\n\n\n if (points[0]) {\n points.push(points[0].slice());\n } else {\n if (process.env.NODE_ENV !== 'production') {\n console.error('Can\\'t draw value axis ' + i);\n }\n }\n\n if (showSplitLine) {\n var colorIndex = getColorIndex(splitLines, splitLineColorsArr, i);\n splitLines[colorIndex].push(new graphic.Polyline({\n shape: {\n points: points\n }\n }));\n }\n\n if (showSplitArea && prevPoints) {\n var colorIndex = getColorIndex(splitAreas, splitAreaColorsArr, i - 1);\n splitAreas[colorIndex].push(new graphic.Polygon({\n shape: {\n points: points.concat(prevPoints)\n }\n }));\n }\n\n prevPoints = points.slice().reverse();\n }\n }\n\n var lineStyle = lineStyleModel.getLineStyle();\n var areaStyle = areaStyleModel.getAreaStyle(); // Add splitArea before splitLine\n\n zrUtil.each(splitAreas, function (splitAreas, idx) {\n this.group.add(graphic.mergePath(splitAreas, {\n style: zrUtil.defaults({\n stroke: 'none',\n fill: splitAreaColorsArr[idx % splitAreaColorsArr.length]\n }, areaStyle),\n silent: true\n }));\n }, this);\n zrUtil.each(splitLines, function (splitLines, idx) {\n this.group.add(graphic.mergePath(splitLines, {\n style: zrUtil.defaults({\n fill: 'none',\n stroke: splitLineColorsArr[idx % splitLineColorsArr.length]\n }, lineStyle),\n silent: true\n }));\n }, this);\n };\n\n RadarView.type = 'radar';\n return RadarView;\n}(ComponentView);\n\nexport default RadarView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport RadarModel from '../../coord/radar/RadarModel.js';\nimport RadarView from './RadarView.js';\nimport Radar from '../../coord/radar/Radar.js';\nexport function install(registers) {\n registers.registerCoordinateSystem('radar', Radar);\n registers.registerComponentModel(RadarModel);\n registers.registerComponentView(RadarView);\n registers.registerVisual({\n seriesType: 'radar',\n reset: function (seriesModel) {\n var data = seriesModel.getData(); // itemVisual symbol is for selected data\n\n data.each(function (idx) {\n data.setItemVisual(idx, 'legendIcon', 'roundRect');\n }); // visual is for unselected data\n\n data.setVisual('legendIcon', 'roundRect');\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport { use } from '../../extension.js';\nimport ComponentView from '../../view/Component.js';\nimport SingleAxisView from '../axis/SingleAxisView.js';\nimport axisModelCreator from '../../coord/axisModelCreator.js';\nimport SingleAxisModel from '../../coord/single/AxisModel.js';\nimport singleCreator from '../../coord/single/singleCreator.js';\nimport { install as installAxisPointer } from '../axisPointer/install.js';\nimport AxisView from '../axis/AxisView.js';\nimport SingleAxisPointer from '../axisPointer/SingleAxisPointer.js';\n\nvar SingleView =\n/** @class */\nfunction (_super) {\n __extends(SingleView, _super);\n\n function SingleView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = SingleView.type;\n return _this;\n }\n\n SingleView.type = 'single';\n return SingleView;\n}(ComponentView);\n\nexport function install(registers) {\n use(installAxisPointer);\n AxisView.registerAxisPointerClass('SingleAxisPointer', SingleAxisPointer);\n registers.registerComponentView(SingleView); // Axis\n\n registers.registerComponentView(SingleAxisView);\n registers.registerComponentModel(SingleAxisModel);\n axisModelCreator(registers, 'single', SingleAxisModel, SingleAxisModel.defaultOption);\n registers.registerCoordinateSystem('single', singleCreator);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport TimelineModel from './TimelineModel.js';\nimport { DataFormatMixin } from '../../model/mixin/dataFormat.js';\nimport { mixin } from 'zrender/lib/core/util.js';\nimport { inheritDefaultOption } from '../../util/component.js';\n\nvar SliderTimelineModel =\n/** @class */\nfunction (_super) {\n __extends(SliderTimelineModel, _super);\n\n function SliderTimelineModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = SliderTimelineModel.type;\n return _this;\n }\n\n SliderTimelineModel.type = 'timeline.slider';\n /**\n * @protected\n */\n\n SliderTimelineModel.defaultOption = inheritDefaultOption(TimelineModel.defaultOption, {\n backgroundColor: 'rgba(0,0,0,0)',\n borderColor: '#ccc',\n borderWidth: 0,\n orient: 'horizontal',\n inverse: false,\n tooltip: {\n trigger: 'item' // data item may also have tootip attr.\n\n },\n symbol: 'circle',\n symbolSize: 12,\n lineStyle: {\n show: true,\n width: 2,\n color: '#DAE1F5'\n },\n label: {\n position: 'auto',\n // When using number, label position is not\n // restricted by viewRect.\n // positive: right/bottom, negative: left/top\n show: true,\n interval: 'auto',\n rotate: 0,\n // formatter: null,\n // 其余属性默认使用全局文本样式,详见TEXTSTYLE\n color: '#A4B1D7'\n },\n itemStyle: {\n color: '#A4B1D7',\n borderWidth: 1\n },\n checkpointStyle: {\n symbol: 'circle',\n symbolSize: 15,\n color: '#316bf3',\n borderColor: '#fff',\n borderWidth: 2,\n shadowBlur: 2,\n shadowOffsetX: 1,\n shadowOffsetY: 1,\n shadowColor: 'rgba(0, 0, 0, 0.3)',\n // borderColor: 'rgba(194,53,49, 0.5)',\n animation: true,\n animationDuration: 300,\n animationEasing: 'quinticInOut'\n },\n controlStyle: {\n show: true,\n showPlayBtn: true,\n showPrevBtn: true,\n showNextBtn: true,\n itemSize: 24,\n itemGap: 12,\n position: 'left',\n playIcon: 'path://M31.6,53C17.5,53,6,41.5,6,27.4S17.5,1.8,31.6,1.8C45.7,1.8,57.2,13.3,57.2,27.4S45.7,53,31.6,53z M31.6,3.3 C18.4,3.3,7.5,14.1,7.5,27.4c0,13.3,10.8,24.1,24.1,24.1C44.9,51.5,55.7,40.7,55.7,27.4C55.7,14.1,44.9,3.3,31.6,3.3z M24.9,21.3 c0-2.2,1.6-3.1,3.5-2l10.5,6.1c1.899,1.1,1.899,2.9,0,4l-10.5,6.1c-1.9,1.1-3.5,0.2-3.5-2V21.3z',\n stopIcon: 'path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5C17.6,3.5,6.8,14.4,6.8,27.6c0,13.3,10.8,24.1,24.101,24.1C44.2,51.7,55,40.9,55,27.6C54.9,14.4,44.1,3.5,30.9,3.5z M36.9,35.8c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H36c0.5,0,0.9,0.4,0.9,1V35.8z M27.8,35.8 c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H27c0.5,0,0.9,0.4,0.9,1L27.8,35.8L27.8,35.8z',\n // eslint-disable-next-line max-len\n nextIcon: 'M2,18.5A1.52,1.52,0,0,1,.92,18a1.49,1.49,0,0,1,0-2.12L7.81,9.36,1,3.11A1.5,1.5,0,1,1,3,.89l8,7.34a1.48,1.48,0,0,1,.49,1.09,1.51,1.51,0,0,1-.46,1.1L3,18.08A1.5,1.5,0,0,1,2,18.5Z',\n // eslint-disable-next-line max-len\n prevIcon: 'M10,.5A1.52,1.52,0,0,1,11.08,1a1.49,1.49,0,0,1,0,2.12L4.19,9.64,11,15.89a1.5,1.5,0,1,1-2,2.22L1,10.77A1.48,1.48,0,0,1,.5,9.68,1.51,1.51,0,0,1,1,8.58L9,.92A1.5,1.5,0,0,1,10,.5Z',\n prevBtnSize: 18,\n nextBtnSize: 18,\n color: '#A4B1D7',\n borderColor: '#A4B1D7',\n borderWidth: 1\n },\n emphasis: {\n label: {\n show: true,\n // 其余属性默认使用全局文本样式,详见TEXTSTYLE\n color: '#6f778d'\n },\n itemStyle: {\n color: '#316BF3'\n },\n controlStyle: {\n color: '#316BF3',\n borderColor: '#316BF3',\n borderWidth: 2\n }\n },\n progress: {\n lineStyle: {\n color: '#316BF3'\n },\n itemStyle: {\n color: '#316BF3'\n },\n label: {\n color: '#6f778d'\n }\n },\n data: []\n });\n return SliderTimelineModel;\n}(TimelineModel);\n\nmixin(SliderTimelineModel, DataFormatMixin.prototype);\nexport default SliderTimelineModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport BoundingRect from 'zrender/lib/core/BoundingRect.js';\nimport * as matrix from 'zrender/lib/core/matrix.js';\nimport * as graphic from '../../util/graphic.js';\nimport { createTextStyle } from '../../label/labelStyle.js';\nimport * as layout from '../../util/layout.js';\nimport TimelineView from './TimelineView.js';\nimport TimelineAxis from './TimelineAxis.js';\nimport { createSymbol, normalizeSymbolOffset, normalizeSymbolSize } from '../../util/symbol.js';\nimport * as numberUtil from '../../util/number.js';\nimport { merge, each, extend, isString, bind, defaults, retrieve2 } from 'zrender/lib/core/util.js';\nimport OrdinalScale from '../../scale/Ordinal.js';\nimport TimeScale from '../../scale/Time.js';\nimport IntervalScale from '../../scale/Interval.js';\nimport { parsePercent } from 'zrender/lib/contain/text.js';\nimport { makeInner } from '../../util/model.js';\nimport { getECData } from '../../util/innerStore.js';\nimport { enableHoverEmphasis } from '../../util/states.js';\nimport { createTooltipMarkup } from '../tooltip/tooltipMarkup.js';\nvar PI = Math.PI;\nvar labelDataIndexStore = makeInner();\n\nvar SliderTimelineView =\n/** @class */\nfunction (_super) {\n __extends(SliderTimelineView, _super);\n\n function SliderTimelineView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = SliderTimelineView.type;\n return _this;\n }\n\n SliderTimelineView.prototype.init = function (ecModel, api) {\n this.api = api;\n };\n /**\n * @override\n */\n\n\n SliderTimelineView.prototype.render = function (timelineModel, ecModel, api) {\n this.model = timelineModel;\n this.api = api;\n this.ecModel = ecModel;\n this.group.removeAll();\n\n if (timelineModel.get('show', true)) {\n var layoutInfo_1 = this._layout(timelineModel, api);\n\n var mainGroup_1 = this._createGroup('_mainGroup');\n\n var labelGroup = this._createGroup('_labelGroup');\n\n var axis_1 = this._axis = this._createAxis(layoutInfo_1, timelineModel);\n\n timelineModel.formatTooltip = function (dataIndex) {\n var name = axis_1.scale.getLabel({\n value: dataIndex\n });\n return createTooltipMarkup('nameValue', {\n noName: true,\n value: name\n });\n };\n\n each(['AxisLine', 'AxisTick', 'Control', 'CurrentPointer'], function (name) {\n this['_render' + name](layoutInfo_1, mainGroup_1, axis_1, timelineModel);\n }, this);\n\n this._renderAxisLabel(layoutInfo_1, labelGroup, axis_1, timelineModel);\n\n this._position(layoutInfo_1, timelineModel);\n }\n\n this._doPlayStop();\n\n this._updateTicksStatus();\n };\n /**\n * @override\n */\n\n\n SliderTimelineView.prototype.remove = function () {\n this._clearTimer();\n\n this.group.removeAll();\n };\n /**\n * @override\n */\n\n\n SliderTimelineView.prototype.dispose = function () {\n this._clearTimer();\n };\n\n SliderTimelineView.prototype._layout = function (timelineModel, api) {\n var labelPosOpt = timelineModel.get(['label', 'position']);\n var orient = timelineModel.get('orient');\n var viewRect = getViewRect(timelineModel, api);\n var parsedLabelPos; // Auto label offset.\n\n if (labelPosOpt == null || labelPosOpt === 'auto') {\n parsedLabelPos = orient === 'horizontal' ? viewRect.y + viewRect.height / 2 < api.getHeight() / 2 ? '-' : '+' : viewRect.x + viewRect.width / 2 < api.getWidth() / 2 ? '+' : '-';\n } else if (isString(labelPosOpt)) {\n parsedLabelPos = {\n horizontal: {\n top: '-',\n bottom: '+'\n },\n vertical: {\n left: '-',\n right: '+'\n }\n }[orient][labelPosOpt];\n } else {\n // is number\n parsedLabelPos = labelPosOpt;\n }\n\n var labelAlignMap = {\n horizontal: 'center',\n vertical: parsedLabelPos >= 0 || parsedLabelPos === '+' ? 'left' : 'right'\n };\n var labelBaselineMap = {\n horizontal: parsedLabelPos >= 0 || parsedLabelPos === '+' ? 'top' : 'bottom',\n vertical: 'middle'\n };\n var rotationMap = {\n horizontal: 0,\n vertical: PI / 2\n }; // Position\n\n var mainLength = orient === 'vertical' ? viewRect.height : viewRect.width;\n var controlModel = timelineModel.getModel('controlStyle');\n var showControl = controlModel.get('show', true);\n var controlSize = showControl ? controlModel.get('itemSize') : 0;\n var controlGap = showControl ? controlModel.get('itemGap') : 0;\n var sizePlusGap = controlSize + controlGap; // Special label rotate.\n\n var labelRotation = timelineModel.get(['label', 'rotate']) || 0;\n labelRotation = labelRotation * PI / 180; // To radian.\n\n var playPosition;\n var prevBtnPosition;\n var nextBtnPosition;\n var controlPosition = controlModel.get('position', true);\n var showPlayBtn = showControl && controlModel.get('showPlayBtn', true);\n var showPrevBtn = showControl && controlModel.get('showPrevBtn', true);\n var showNextBtn = showControl && controlModel.get('showNextBtn', true);\n var xLeft = 0;\n var xRight = mainLength; // position[0] means left, position[1] means middle.\n\n if (controlPosition === 'left' || controlPosition === 'bottom') {\n showPlayBtn && (playPosition = [0, 0], xLeft += sizePlusGap);\n showPrevBtn && (prevBtnPosition = [xLeft, 0], xLeft += sizePlusGap);\n showNextBtn && (nextBtnPosition = [xRight - controlSize, 0], xRight -= sizePlusGap);\n } else {\n // 'top' 'right'\n showPlayBtn && (playPosition = [xRight - controlSize, 0], xRight -= sizePlusGap);\n showPrevBtn && (prevBtnPosition = [0, 0], xLeft += sizePlusGap);\n showNextBtn && (nextBtnPosition = [xRight - controlSize, 0], xRight -= sizePlusGap);\n }\n\n var axisExtent = [xLeft, xRight];\n\n if (timelineModel.get('inverse')) {\n axisExtent.reverse();\n }\n\n return {\n viewRect: viewRect,\n mainLength: mainLength,\n orient: orient,\n rotation: rotationMap[orient],\n labelRotation: labelRotation,\n labelPosOpt: parsedLabelPos,\n labelAlign: timelineModel.get(['label', 'align']) || labelAlignMap[orient],\n labelBaseline: timelineModel.get(['label', 'verticalAlign']) || timelineModel.get(['label', 'baseline']) || labelBaselineMap[orient],\n // Based on mainGroup.\n playPosition: playPosition,\n prevBtnPosition: prevBtnPosition,\n nextBtnPosition: nextBtnPosition,\n axisExtent: axisExtent,\n controlSize: controlSize,\n controlGap: controlGap\n };\n };\n\n SliderTimelineView.prototype._position = function (layoutInfo, timelineModel) {\n // Position is be called finally, because bounding rect is needed for\n // adapt content to fill viewRect (auto adapt offset).\n // Timeline may be not all in the viewRect when 'offset' is specified\n // as a number, because it is more appropriate that label aligns at\n // 'offset' but not the other edge defined by viewRect.\n var mainGroup = this._mainGroup;\n var labelGroup = this._labelGroup;\n var viewRect = layoutInfo.viewRect;\n\n if (layoutInfo.orient === 'vertical') {\n // transform to horizontal, inverse rotate by left-top point.\n var m = matrix.create();\n var rotateOriginX = viewRect.x;\n var rotateOriginY = viewRect.y + viewRect.height;\n matrix.translate(m, m, [-rotateOriginX, -rotateOriginY]);\n matrix.rotate(m, m, -PI / 2);\n matrix.translate(m, m, [rotateOriginX, rotateOriginY]);\n viewRect = viewRect.clone();\n viewRect.applyTransform(m);\n }\n\n var viewBound = getBound(viewRect);\n var mainBound = getBound(mainGroup.getBoundingRect());\n var labelBound = getBound(labelGroup.getBoundingRect());\n var mainPosition = [mainGroup.x, mainGroup.y];\n var labelsPosition = [labelGroup.x, labelGroup.y];\n labelsPosition[0] = mainPosition[0] = viewBound[0][0];\n var labelPosOpt = layoutInfo.labelPosOpt;\n\n if (labelPosOpt == null || isString(labelPosOpt)) {\n // '+' or '-'\n var mainBoundIdx = labelPosOpt === '+' ? 0 : 1;\n toBound(mainPosition, mainBound, viewBound, 1, mainBoundIdx);\n toBound(labelsPosition, labelBound, viewBound, 1, 1 - mainBoundIdx);\n } else {\n var mainBoundIdx = labelPosOpt >= 0 ? 0 : 1;\n toBound(mainPosition, mainBound, viewBound, 1, mainBoundIdx);\n labelsPosition[1] = mainPosition[1] + labelPosOpt;\n }\n\n mainGroup.setPosition(mainPosition);\n labelGroup.setPosition(labelsPosition);\n mainGroup.rotation = labelGroup.rotation = layoutInfo.rotation;\n setOrigin(mainGroup);\n setOrigin(labelGroup);\n\n function setOrigin(targetGroup) {\n targetGroup.originX = viewBound[0][0] - targetGroup.x;\n targetGroup.originY = viewBound[1][0] - targetGroup.y;\n }\n\n function getBound(rect) {\n // [[xmin, xmax], [ymin, ymax]]\n return [[rect.x, rect.x + rect.width], [rect.y, rect.y + rect.height]];\n }\n\n function toBound(fromPos, from, to, dimIdx, boundIdx) {\n fromPos[dimIdx] += to[dimIdx][boundIdx] - from[dimIdx][boundIdx];\n }\n };\n\n SliderTimelineView.prototype._createAxis = function (layoutInfo, timelineModel) {\n var data = timelineModel.getData();\n var axisType = timelineModel.get('axisType');\n var scale = createScaleByModel(timelineModel, axisType); // Customize scale. The `tickValue` is `dataIndex`.\n\n scale.getTicks = function () {\n return data.mapArray(['value'], function (value) {\n return {\n value: value\n };\n });\n };\n\n var dataExtent = data.getDataExtent('value');\n scale.setExtent(dataExtent[0], dataExtent[1]);\n scale.calcNiceTicks();\n var axis = new TimelineAxis('value', scale, layoutInfo.axisExtent, axisType);\n axis.model = timelineModel;\n return axis;\n };\n\n SliderTimelineView.prototype._createGroup = function (key) {\n var newGroup = this[key] = new graphic.Group();\n this.group.add(newGroup);\n return newGroup;\n };\n\n SliderTimelineView.prototype._renderAxisLine = function (layoutInfo, group, axis, timelineModel) {\n var axisExtent = axis.getExtent();\n\n if (!timelineModel.get(['lineStyle', 'show'])) {\n return;\n }\n\n var line = new graphic.Line({\n shape: {\n x1: axisExtent[0],\n y1: 0,\n x2: axisExtent[1],\n y2: 0\n },\n style: extend({\n lineCap: 'round'\n }, timelineModel.getModel('lineStyle').getLineStyle()),\n silent: true,\n z2: 1\n });\n group.add(line);\n var progressLine = this._progressLine = new graphic.Line({\n shape: {\n x1: axisExtent[0],\n x2: this._currentPointer ? this._currentPointer.x : axisExtent[0],\n y1: 0,\n y2: 0\n },\n style: defaults({\n lineCap: 'round',\n lineWidth: line.style.lineWidth\n }, timelineModel.getModel(['progress', 'lineStyle']).getLineStyle()),\n silent: true,\n z2: 1\n });\n group.add(progressLine);\n };\n\n SliderTimelineView.prototype._renderAxisTick = function (layoutInfo, group, axis, timelineModel) {\n var _this = this;\n\n var data = timelineModel.getData(); // Show all ticks, despite ignoring strategy.\n\n var ticks = axis.scale.getTicks();\n this._tickSymbols = []; // The value is dataIndex, see the customized scale.\n\n each(ticks, function (tick) {\n var tickCoord = axis.dataToCoord(tick.value);\n var itemModel = data.getItemModel(tick.value);\n var itemStyleModel = itemModel.getModel('itemStyle');\n var hoverStyleModel = itemModel.getModel(['emphasis', 'itemStyle']);\n var progressStyleModel = itemModel.getModel(['progress', 'itemStyle']);\n var symbolOpt = {\n x: tickCoord,\n y: 0,\n onclick: bind(_this._changeTimeline, _this, tick.value)\n };\n var el = giveSymbol(itemModel, itemStyleModel, group, symbolOpt);\n el.ensureState('emphasis').style = hoverStyleModel.getItemStyle();\n el.ensureState('progress').style = progressStyleModel.getItemStyle();\n enableHoverEmphasis(el);\n var ecData = getECData(el);\n\n if (itemModel.get('tooltip')) {\n ecData.dataIndex = tick.value;\n ecData.dataModel = timelineModel;\n } else {\n ecData.dataIndex = ecData.dataModel = null;\n }\n\n _this._tickSymbols.push(el);\n });\n };\n\n SliderTimelineView.prototype._renderAxisLabel = function (layoutInfo, group, axis, timelineModel) {\n var _this = this;\n\n var labelModel = axis.getLabelModel();\n\n if (!labelModel.get('show')) {\n return;\n }\n\n var data = timelineModel.getData();\n var labels = axis.getViewLabels();\n this._tickLabels = [];\n each(labels, function (labelItem) {\n // The tickValue is dataIndex, see the customized scale.\n var dataIndex = labelItem.tickValue;\n var itemModel = data.getItemModel(dataIndex);\n var normalLabelModel = itemModel.getModel('label');\n var hoverLabelModel = itemModel.getModel(['emphasis', 'label']);\n var progressLabelModel = itemModel.getModel(['progress', 'label']);\n var tickCoord = axis.dataToCoord(labelItem.tickValue);\n var textEl = new graphic.Text({\n x: tickCoord,\n y: 0,\n rotation: layoutInfo.labelRotation - layoutInfo.rotation,\n onclick: bind(_this._changeTimeline, _this, dataIndex),\n silent: false,\n style: createTextStyle(normalLabelModel, {\n text: labelItem.formattedLabel,\n align: layoutInfo.labelAlign,\n verticalAlign: layoutInfo.labelBaseline\n })\n });\n textEl.ensureState('emphasis').style = createTextStyle(hoverLabelModel);\n textEl.ensureState('progress').style = createTextStyle(progressLabelModel);\n group.add(textEl);\n enableHoverEmphasis(textEl);\n labelDataIndexStore(textEl).dataIndex = dataIndex;\n\n _this._tickLabels.push(textEl);\n });\n };\n\n SliderTimelineView.prototype._renderControl = function (layoutInfo, group, axis, timelineModel) {\n var controlSize = layoutInfo.controlSize;\n var rotation = layoutInfo.rotation;\n var itemStyle = timelineModel.getModel('controlStyle').getItemStyle();\n var hoverStyle = timelineModel.getModel(['emphasis', 'controlStyle']).getItemStyle();\n var playState = timelineModel.getPlayState();\n var inverse = timelineModel.get('inverse', true);\n makeBtn(layoutInfo.nextBtnPosition, 'next', bind(this._changeTimeline, this, inverse ? '-' : '+'));\n makeBtn(layoutInfo.prevBtnPosition, 'prev', bind(this._changeTimeline, this, inverse ? '+' : '-'));\n makeBtn(layoutInfo.playPosition, playState ? 'stop' : 'play', bind(this._handlePlayClick, this, !playState), true);\n\n function makeBtn(position, iconName, onclick, willRotate) {\n if (!position) {\n return;\n }\n\n var iconSize = parsePercent(retrieve2(timelineModel.get(['controlStyle', iconName + 'BtnSize']), controlSize), controlSize);\n var rect = [0, -iconSize / 2, iconSize, iconSize];\n var btn = makeControlIcon(timelineModel, iconName + 'Icon', rect, {\n x: position[0],\n y: position[1],\n originX: controlSize / 2,\n originY: 0,\n rotation: willRotate ? -rotation : 0,\n rectHover: true,\n style: itemStyle,\n onclick: onclick\n });\n btn.ensureState('emphasis').style = hoverStyle;\n group.add(btn);\n enableHoverEmphasis(btn);\n }\n };\n\n SliderTimelineView.prototype._renderCurrentPointer = function (layoutInfo, group, axis, timelineModel) {\n var data = timelineModel.getData();\n var currentIndex = timelineModel.getCurrentIndex();\n var pointerModel = data.getItemModel(currentIndex).getModel('checkpointStyle');\n var me = this;\n var callback = {\n onCreate: function (pointer) {\n pointer.draggable = true;\n pointer.drift = bind(me._handlePointerDrag, me);\n pointer.ondragend = bind(me._handlePointerDragend, me);\n pointerMoveTo(pointer, me._progressLine, currentIndex, axis, timelineModel, true);\n },\n onUpdate: function (pointer) {\n pointerMoveTo(pointer, me._progressLine, currentIndex, axis, timelineModel);\n }\n }; // Reuse when exists, for animation and drag.\n\n this._currentPointer = giveSymbol(pointerModel, pointerModel, this._mainGroup, {}, this._currentPointer, callback);\n };\n\n SliderTimelineView.prototype._handlePlayClick = function (nextState) {\n this._clearTimer();\n\n this.api.dispatchAction({\n type: 'timelinePlayChange',\n playState: nextState,\n from: this.uid\n });\n };\n\n SliderTimelineView.prototype._handlePointerDrag = function (dx, dy, e) {\n this._clearTimer();\n\n this._pointerChangeTimeline([e.offsetX, e.offsetY]);\n };\n\n SliderTimelineView.prototype._handlePointerDragend = function (e) {\n this._pointerChangeTimeline([e.offsetX, e.offsetY], true);\n };\n\n SliderTimelineView.prototype._pointerChangeTimeline = function (mousePos, trigger) {\n var toCoord = this._toAxisCoord(mousePos)[0];\n\n var axis = this._axis;\n var axisExtent = numberUtil.asc(axis.getExtent().slice());\n toCoord > axisExtent[1] && (toCoord = axisExtent[1]);\n toCoord < axisExtent[0] && (toCoord = axisExtent[0]);\n this._currentPointer.x = toCoord;\n\n this._currentPointer.markRedraw();\n\n var progressLine = this._progressLine;\n\n if (progressLine) {\n progressLine.shape.x2 = toCoord;\n progressLine.dirty();\n }\n\n var targetDataIndex = this._findNearestTick(toCoord);\n\n var timelineModel = this.model;\n\n if (trigger || targetDataIndex !== timelineModel.getCurrentIndex() && timelineModel.get('realtime')) {\n this._changeTimeline(targetDataIndex);\n }\n };\n\n SliderTimelineView.prototype._doPlayStop = function () {\n var _this = this;\n\n this._clearTimer();\n\n if (this.model.getPlayState()) {\n this._timer = setTimeout(function () {\n // Do not cache\n var timelineModel = _this.model;\n\n _this._changeTimeline(timelineModel.getCurrentIndex() + (timelineModel.get('rewind', true) ? -1 : 1));\n }, this.model.get('playInterval'));\n }\n };\n\n SliderTimelineView.prototype._toAxisCoord = function (vertex) {\n var trans = this._mainGroup.getLocalTransform();\n\n return graphic.applyTransform(vertex, trans, true);\n };\n\n SliderTimelineView.prototype._findNearestTick = function (axisCoord) {\n var data = this.model.getData();\n var dist = Infinity;\n var targetDataIndex;\n var axis = this._axis;\n data.each(['value'], function (value, dataIndex) {\n var coord = axis.dataToCoord(value);\n var d = Math.abs(coord - axisCoord);\n\n if (d < dist) {\n dist = d;\n targetDataIndex = dataIndex;\n }\n });\n return targetDataIndex;\n };\n\n SliderTimelineView.prototype._clearTimer = function () {\n if (this._timer) {\n clearTimeout(this._timer);\n this._timer = null;\n }\n };\n\n SliderTimelineView.prototype._changeTimeline = function (nextIndex) {\n var currentIndex = this.model.getCurrentIndex();\n\n if (nextIndex === '+') {\n nextIndex = currentIndex + 1;\n } else if (nextIndex === '-') {\n nextIndex = currentIndex - 1;\n }\n\n this.api.dispatchAction({\n type: 'timelineChange',\n currentIndex: nextIndex,\n from: this.uid\n });\n };\n\n SliderTimelineView.prototype._updateTicksStatus = function () {\n var currentIndex = this.model.getCurrentIndex();\n var tickSymbols = this._tickSymbols;\n var tickLabels = this._tickLabels;\n\n if (tickSymbols) {\n for (var i = 0; i < tickSymbols.length; i++) {\n tickSymbols && tickSymbols[i] && tickSymbols[i].toggleState('progress', i < currentIndex);\n }\n }\n\n if (tickLabels) {\n for (var i = 0; i < tickLabels.length; i++) {\n tickLabels && tickLabels[i] && tickLabels[i].toggleState('progress', labelDataIndexStore(tickLabels[i]).dataIndex <= currentIndex);\n }\n }\n };\n\n SliderTimelineView.type = 'timeline.slider';\n return SliderTimelineView;\n}(TimelineView);\n\nfunction createScaleByModel(model, axisType) {\n axisType = axisType || model.get('type');\n\n if (axisType) {\n switch (axisType) {\n // Buildin scale\n case 'category':\n return new OrdinalScale({\n ordinalMeta: model.getCategories(),\n extent: [Infinity, -Infinity]\n });\n\n case 'time':\n return new TimeScale({\n locale: model.ecModel.getLocaleModel(),\n useUTC: model.ecModel.get('useUTC')\n });\n\n default:\n // default to be value\n return new IntervalScale();\n }\n }\n}\n\nfunction getViewRect(model, api) {\n return layout.getLayoutRect(model.getBoxLayoutParams(), {\n width: api.getWidth(),\n height: api.getHeight()\n }, model.get('padding'));\n}\n\nfunction makeControlIcon(timelineModel, objPath, rect, opts) {\n var style = opts.style;\n var icon = graphic.createIcon(timelineModel.get(['controlStyle', objPath]), opts || {}, new BoundingRect(rect[0], rect[1], rect[2], rect[3])); // TODO createIcon won't use style in opt.\n\n if (style) {\n icon.setStyle(style);\n }\n\n return icon;\n}\n/**\n * Create symbol or update symbol\n * opt: basic position and event handlers\n */\n\n\nfunction giveSymbol(hostModel, itemStyleModel, group, opt, symbol, callback) {\n var color = itemStyleModel.get('color');\n\n if (!symbol) {\n var symbolType = hostModel.get('symbol');\n symbol = createSymbol(symbolType, -1, -1, 2, 2, color);\n symbol.setStyle('strokeNoScale', true);\n group.add(symbol);\n callback && callback.onCreate(symbol);\n } else {\n symbol.setColor(color);\n group.add(symbol); // Group may be new, also need to add.\n\n callback && callback.onUpdate(symbol);\n } // Style\n\n\n var itemStyle = itemStyleModel.getItemStyle(['color']);\n symbol.setStyle(itemStyle); // Transform and events.\n\n opt = merge({\n rectHover: true,\n z2: 100\n }, opt, true);\n var symbolSize = normalizeSymbolSize(hostModel.get('symbolSize'));\n opt.scaleX = symbolSize[0] / 2;\n opt.scaleY = symbolSize[1] / 2;\n var symbolOffset = normalizeSymbolOffset(hostModel.get('symbolOffset'), symbolSize);\n\n if (symbolOffset) {\n opt.x = (opt.x || 0) + symbolOffset[0];\n opt.y = (opt.y || 0) + symbolOffset[1];\n }\n\n var symbolRotate = hostModel.get('symbolRotate');\n opt.rotation = (symbolRotate || 0) * Math.PI / 180 || 0;\n symbol.attr(opt); // FIXME\n // (1) When symbol.style.strokeNoScale is true and updateTransform is not performed,\n // getBoundingRect will return wrong result.\n // (This is supposed to be resolved in zrender, but it is a little difficult to\n // leverage performance and auto updateTransform)\n // (2) All of ancesters of symbol do not scale, so we can just updateTransform symbol.\n\n symbol.updateTransform();\n return symbol;\n}\n\nfunction pointerMoveTo(pointer, progressLine, dataIndex, axis, timelineModel, noAnimation) {\n if (pointer.dragging) {\n return;\n }\n\n var pointerModel = timelineModel.getModel('checkpointStyle');\n var toCoord = axis.dataToCoord(timelineModel.getData().get('value', dataIndex));\n\n if (noAnimation || !pointerModel.get('animation', true)) {\n pointer.attr({\n x: toCoord,\n y: 0\n });\n progressLine && progressLine.attr({\n shape: {\n x2: toCoord\n }\n });\n } else {\n var animationCfg = {\n duration: pointerModel.get('animationDuration', true),\n easing: pointerModel.get('animationEasing', true)\n };\n pointer.stopAnimation(null, true);\n pointer.animateTo({\n x: toCoord,\n y: 0\n }, animationCfg);\n progressLine && progressLine.animateTo({\n shape: {\n x2: toCoord\n }\n }, animationCfg);\n }\n}\n\nexport default SliderTimelineView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport Axis from '../../coord/Axis.js';\n/**\n * Extend axis 2d\n */\n\nvar TimelineAxis =\n/** @class */\nfunction (_super) {\n __extends(TimelineAxis, _super);\n\n function TimelineAxis(dim, scale, coordExtent, axisType) {\n var _this = _super.call(this, dim, scale, coordExtent) || this;\n\n _this.type = axisType || 'value';\n return _this;\n }\n /**\n * @override\n */\n\n\n TimelineAxis.prototype.getLabelModel = function () {\n // Force override\n return this.model.getModel('label');\n };\n /**\n * @override\n */\n\n\n TimelineAxis.prototype.isHorizontal = function () {\n return this.model.get('orient') === 'horizontal';\n };\n\n return TimelineAxis;\n}(Axis);\n\nexport default TimelineAxis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component.js';\nimport SeriesData from '../../data/SeriesData.js';\nimport { each, isObject, clone } from 'zrender/lib/core/util.js';\nimport { convertOptionIdName, getDataItemValue } from '../../util/model.js';\n\nvar TimelineModel =\n/** @class */\nfunction (_super) {\n __extends(TimelineModel, _super);\n\n function TimelineModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = TimelineModel.type;\n _this.layoutMode = 'box';\n return _this;\n }\n /**\n * @override\n */\n\n\n TimelineModel.prototype.init = function (option, parentModel, ecModel) {\n this.mergeDefaultAndTheme(option, ecModel);\n\n this._initData();\n };\n /**\n * @override\n */\n\n\n TimelineModel.prototype.mergeOption = function (option) {\n _super.prototype.mergeOption.apply(this, arguments);\n\n this._initData();\n };\n\n TimelineModel.prototype.setCurrentIndex = function (currentIndex) {\n if (currentIndex == null) {\n currentIndex = this.option.currentIndex;\n }\n\n var count = this._data.count();\n\n if (this.option.loop) {\n currentIndex = (currentIndex % count + count) % count;\n } else {\n currentIndex >= count && (currentIndex = count - 1);\n currentIndex < 0 && (currentIndex = 0);\n }\n\n this.option.currentIndex = currentIndex;\n };\n /**\n * @return {number} currentIndex\n */\n\n\n TimelineModel.prototype.getCurrentIndex = function () {\n return this.option.currentIndex;\n };\n /**\n * @return {boolean}\n */\n\n\n TimelineModel.prototype.isIndexMax = function () {\n return this.getCurrentIndex() >= this._data.count() - 1;\n };\n /**\n * @param {boolean} state true: play, false: stop\n */\n\n\n TimelineModel.prototype.setPlayState = function (state) {\n this.option.autoPlay = !!state;\n };\n /**\n * @return {boolean} true: play, false: stop\n */\n\n\n TimelineModel.prototype.getPlayState = function () {\n return !!this.option.autoPlay;\n };\n /**\n * @private\n */\n\n\n TimelineModel.prototype._initData = function () {\n var thisOption = this.option;\n var dataArr = thisOption.data || [];\n var axisType = thisOption.axisType;\n var names = this._names = [];\n var processedDataArr;\n\n if (axisType === 'category') {\n processedDataArr = [];\n each(dataArr, function (item, index) {\n var value = convertOptionIdName(getDataItemValue(item), '');\n var newItem;\n\n if (isObject(item)) {\n newItem = clone(item);\n newItem.value = index;\n } else {\n newItem = index;\n }\n\n processedDataArr.push(newItem);\n names.push(value);\n });\n } else {\n processedDataArr = dataArr;\n }\n\n var dimType = {\n category: 'ordinal',\n time: 'time',\n value: 'number'\n }[axisType] || 'number';\n var data = this._data = new SeriesData([{\n name: 'value',\n type: dimType\n }], this);\n data.initData(processedDataArr, names);\n };\n\n TimelineModel.prototype.getData = function () {\n return this._data;\n };\n /**\n * @public\n * @return {Array.} categoreis\n */\n\n\n TimelineModel.prototype.getCategories = function () {\n if (this.get('axisType') === 'category') {\n return this._names.slice();\n }\n };\n\n TimelineModel.type = 'timeline';\n /**\n * @protected\n */\n\n TimelineModel.defaultOption = {\n // zlevel: 0, // 一级层叠\n z: 4,\n show: true,\n axisType: 'time',\n realtime: true,\n left: '20%',\n top: null,\n right: '20%',\n bottom: 0,\n width: null,\n height: 40,\n padding: 5,\n controlPosition: 'left',\n autoPlay: false,\n rewind: false,\n loop: true,\n playInterval: 2000,\n currentIndex: 0,\n itemStyle: {},\n label: {\n color: '#000'\n },\n data: []\n };\n return TimelineModel;\n}(ComponentModel);\n\nexport default TimelineModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport ComponentView from '../../view/Component.js';\n\nvar TimelineView =\n/** @class */\nfunction (_super) {\n __extends(TimelineView, _super);\n\n function TimelineView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = TimelineView.type;\n return _this;\n }\n\n TimelineView.type = 'timeline';\n return TimelineView;\n}(ComponentView);\n\nexport default TimelineView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport SliderTimelineModel from './SliderTimelineModel.js';\nimport SliderTimelineView from './SliderTimelineView.js';\nimport { installTimelineAction } from './timelineAction.js';\nimport preprocessor from './preprocessor.js';\nexport function install(registers) {\n registers.registerComponentModel(SliderTimelineModel);\n registers.registerComponentView(SliderTimelineView);\n registers.registerSubTypeDefaulter('timeline', function () {\n // Only slider now.\n return 'slider';\n });\n installTimelineAction(registers);\n registers.registerPreprocessor(preprocessor);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// @ts-nocheck\nimport * as zrUtil from 'zrender/lib/core/util.js';\nexport default function timelinePreprocessor(option) {\n var timelineOpt = option && option.timeline;\n\n if (!zrUtil.isArray(timelineOpt)) {\n timelineOpt = timelineOpt ? [timelineOpt] : [];\n }\n\n zrUtil.each(timelineOpt, function (opt) {\n if (!opt) {\n return;\n }\n\n compatibleEC2(opt);\n });\n}\n\nfunction compatibleEC2(opt) {\n var type = opt.type;\n var ec2Types = {\n 'number': 'value',\n 'time': 'time'\n }; // Compatible with ec2\n\n if (ec2Types[type]) {\n opt.axisType = ec2Types[type];\n delete opt.type;\n }\n\n transferItem(opt);\n\n if (has(opt, 'controlPosition')) {\n var controlStyle = opt.controlStyle || (opt.controlStyle = {});\n\n if (!has(controlStyle, 'position')) {\n controlStyle.position = opt.controlPosition;\n }\n\n if (controlStyle.position === 'none' && !has(controlStyle, 'show')) {\n controlStyle.show = false;\n delete controlStyle.position;\n }\n\n delete opt.controlPosition;\n }\n\n zrUtil.each(opt.data || [], function (dataItem) {\n if (zrUtil.isObject(dataItem) && !zrUtil.isArray(dataItem)) {\n if (!has(dataItem, 'value') && has(dataItem, 'name')) {\n // In ec2, using name as value.\n dataItem.value = dataItem.name;\n }\n\n transferItem(dataItem);\n }\n });\n}\n\nfunction transferItem(opt) {\n var itemStyle = opt.itemStyle || (opt.itemStyle = {});\n var itemStyleEmphasis = itemStyle.emphasis || (itemStyle.emphasis = {}); // Transfer label out\n\n var label = opt.label || opt.label || {};\n var labelNormal = label.normal || (label.normal = {});\n var excludeLabelAttr = {\n normal: 1,\n emphasis: 1\n };\n zrUtil.each(label, function (value, name) {\n if (!excludeLabelAttr[name] && !has(labelNormal, name)) {\n labelNormal[name] = value;\n }\n });\n\n if (itemStyleEmphasis.label && !has(label, 'emphasis')) {\n label.emphasis = itemStyleEmphasis.label;\n delete itemStyleEmphasis.label;\n }\n}\n\nfunction has(obj, attr) {\n return obj.hasOwnProperty(attr);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { defaults } from 'zrender/lib/core/util.js';\nexport function installTimelineAction(registers) {\n registers.registerAction({\n type: 'timelineChange',\n event: 'timelineChanged',\n update: 'prepareAndUpdate'\n }, function (payload, ecModel, api) {\n var timelineModel = ecModel.getComponent('timeline');\n\n if (timelineModel && payload.currentIndex != null) {\n timelineModel.setCurrentIndex(payload.currentIndex);\n\n if (!timelineModel.get('loop', true) && timelineModel.isIndexMax() && timelineModel.getPlayState()) {\n timelineModel.setPlayState(false); // The timeline has played to the end, trigger event\n\n api.dispatchAction({\n type: 'timelinePlayChange',\n playState: false,\n from: payload.from\n });\n }\n } // Set normalized currentIndex to payload.\n\n\n ecModel.resetOption('timeline', {\n replaceMerge: timelineModel.get('replaceMerge', true)\n });\n return defaults({\n currentIndex: timelineModel.option.currentIndex\n }, payload);\n });\n registers.registerAction({\n type: 'timelinePlayChange',\n event: 'timelinePlayChanged',\n update: 'update'\n }, function (payload, ecModel) {\n var timelineModel = ecModel.getComponent('timeline');\n\n if (timelineModel && payload.playState != null) {\n timelineModel.setPlayState(payload.playState);\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as graphic from '../../util/graphic.js';\nimport { getECData } from '../../util/innerStore.js';\nimport { createTextStyle } from '../../label/labelStyle.js';\nimport { getLayoutRect } from '../../util/layout.js';\nimport ComponentModel from '../../model/Component.js';\nimport ComponentView from '../../view/Component.js';\nimport { windowOpen } from '../../util/format.js';\n\nvar TitleModel =\n/** @class */\nfunction (_super) {\n __extends(TitleModel, _super);\n\n function TitleModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = TitleModel.type;\n _this.layoutMode = {\n type: 'box',\n ignoreSize: true\n };\n return _this;\n }\n\n TitleModel.type = 'title';\n TitleModel.defaultOption = {\n // zlevel: 0,\n z: 6,\n show: true,\n text: '',\n target: 'blank',\n subtext: '',\n subtarget: 'blank',\n left: 0,\n top: 0,\n backgroundColor: 'rgba(0,0,0,0)',\n borderColor: '#ccc',\n borderWidth: 0,\n padding: 5,\n itemGap: 10,\n textStyle: {\n fontSize: 18,\n fontWeight: 'bold',\n color: '#464646'\n },\n subtextStyle: {\n fontSize: 12,\n color: '#6E7079'\n }\n };\n return TitleModel;\n}(ComponentModel); // View\n\n\nvar TitleView =\n/** @class */\nfunction (_super) {\n __extends(TitleView, _super);\n\n function TitleView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = TitleView.type;\n return _this;\n }\n\n TitleView.prototype.render = function (titleModel, ecModel, api) {\n this.group.removeAll();\n\n if (!titleModel.get('show')) {\n return;\n }\n\n var group = this.group;\n var textStyleModel = titleModel.getModel('textStyle');\n var subtextStyleModel = titleModel.getModel('subtextStyle');\n var textAlign = titleModel.get('textAlign');\n var textVerticalAlign = zrUtil.retrieve2(titleModel.get('textBaseline'), titleModel.get('textVerticalAlign'));\n var textEl = new graphic.Text({\n style: createTextStyle(textStyleModel, {\n text: titleModel.get('text'),\n fill: textStyleModel.getTextColor()\n }, {\n disableBox: true\n }),\n z2: 10\n });\n var textRect = textEl.getBoundingRect();\n var subText = titleModel.get('subtext');\n var subTextEl = new graphic.Text({\n style: createTextStyle(subtextStyleModel, {\n text: subText,\n fill: subtextStyleModel.getTextColor(),\n y: textRect.height + titleModel.get('itemGap'),\n verticalAlign: 'top'\n }, {\n disableBox: true\n }),\n z2: 10\n });\n var link = titleModel.get('link');\n var sublink = titleModel.get('sublink');\n var triggerEvent = titleModel.get('triggerEvent', true);\n textEl.silent = !link && !triggerEvent;\n subTextEl.silent = !sublink && !triggerEvent;\n\n if (link) {\n textEl.on('click', function () {\n windowOpen(link, '_' + titleModel.get('target'));\n });\n }\n\n if (sublink) {\n subTextEl.on('click', function () {\n windowOpen(sublink, '_' + titleModel.get('subtarget'));\n });\n }\n\n getECData(textEl).eventData = getECData(subTextEl).eventData = triggerEvent ? {\n componentType: 'title',\n componentIndex: titleModel.componentIndex\n } : null;\n group.add(textEl);\n subText && group.add(subTextEl); // If no subText, but add subTextEl, there will be an empty line.\n\n var groupRect = group.getBoundingRect();\n var layoutOption = titleModel.getBoxLayoutParams();\n layoutOption.width = groupRect.width;\n layoutOption.height = groupRect.height;\n var layoutRect = getLayoutRect(layoutOption, {\n width: api.getWidth(),\n height: api.getHeight()\n }, titleModel.get('padding')); // Adjust text align based on position\n\n if (!textAlign) {\n // Align left if title is on the left. center and right is same\n textAlign = titleModel.get('left') || titleModel.get('right'); // @ts-ignore\n\n if (textAlign === 'middle') {\n textAlign = 'center';\n } // Adjust layout by text align\n\n\n if (textAlign === 'right') {\n layoutRect.x += layoutRect.width;\n } else if (textAlign === 'center') {\n layoutRect.x += layoutRect.width / 2;\n }\n }\n\n if (!textVerticalAlign) {\n textVerticalAlign = titleModel.get('top') || titleModel.get('bottom'); // @ts-ignore\n\n if (textVerticalAlign === 'center') {\n textVerticalAlign = 'middle';\n }\n\n if (textVerticalAlign === 'bottom') {\n layoutRect.y += layoutRect.height;\n } else if (textVerticalAlign === 'middle') {\n layoutRect.y += layoutRect.height / 2;\n }\n\n textVerticalAlign = textVerticalAlign || 'top';\n }\n\n group.x = layoutRect.x;\n group.y = layoutRect.y;\n group.markRedraw();\n var alignStyle = {\n align: textAlign,\n verticalAlign: textVerticalAlign\n };\n textEl.setStyle(alignStyle);\n subTextEl.setStyle(alignStyle); // Render background\n // Get groupRect again because textAlign has been changed\n\n groupRect = group.getBoundingRect();\n var padding = layoutRect.margin;\n var style = titleModel.getItemStyle(['color', 'opacity']);\n style.fill = titleModel.get('backgroundColor');\n var rect = new graphic.Rect({\n shape: {\n x: groupRect.x - padding[3],\n y: groupRect.y - padding[0],\n width: groupRect.width + padding[1] + padding[3],\n height: groupRect.height + padding[0] + padding[2],\n r: titleModel.get('borderRadius')\n },\n style: style,\n subPixelOptimize: true,\n silent: true\n });\n group.add(rect);\n };\n\n TitleView.type = 'title';\n return TitleView;\n}(ComponentView);\n\nexport function install(registers) {\n registers.registerComponentModel(TitleModel);\n registers.registerComponentView(TitleView);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as featureManager from './featureManager.js';\nimport ComponentModel from '../../model/Component.js';\n\nvar ToolboxModel =\n/** @class */\nfunction (_super) {\n __extends(ToolboxModel, _super);\n\n function ToolboxModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = ToolboxModel.type;\n return _this;\n }\n\n ToolboxModel.prototype.optionUpdated = function () {\n _super.prototype.optionUpdated.apply(this, arguments);\n\n var ecModel = this.ecModel;\n zrUtil.each(this.option.feature, function (featureOpt, featureName) {\n var Feature = featureManager.getFeature(featureName);\n\n if (Feature) {\n if (Feature.getDefaultOption) {\n Feature.defaultOption = Feature.getDefaultOption(ecModel);\n }\n\n zrUtil.merge(featureOpt, Feature.defaultOption);\n }\n });\n };\n\n ToolboxModel.type = 'toolbox';\n ToolboxModel.layoutMode = {\n type: 'box',\n ignoreSize: true\n };\n ToolboxModel.defaultOption = {\n show: true,\n z: 6,\n // zlevel: 0,\n orient: 'horizontal',\n left: 'right',\n top: 'top',\n // right\n // bottom\n backgroundColor: 'transparent',\n borderColor: '#ccc',\n borderRadius: 0,\n borderWidth: 0,\n padding: 5,\n itemSize: 15,\n itemGap: 8,\n showTitle: true,\n iconStyle: {\n borderColor: '#666',\n color: 'none'\n },\n emphasis: {\n iconStyle: {\n borderColor: '#3E98C5'\n }\n },\n // textStyle: {},\n // feature\n tooltip: {\n show: false,\n position: 'bottom'\n }\n };\n return ToolboxModel;\n}(ComponentModel);\n\nexport default ToolboxModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as textContain from 'zrender/lib/contain/text.js';\nimport * as graphic from '../../util/graphic.js';\nimport { enterEmphasis, leaveEmphasis } from '../../util/states.js';\nimport Model from '../../model/Model.js';\nimport DataDiffer from '../../data/DataDiffer.js';\nimport * as listComponentHelper from '../helper/listComponent.js';\nimport ComponentView from '../../view/Component.js';\nimport { ToolboxFeature, getFeature } from './featureManager.js';\nimport { getUID } from '../../util/component.js';\nimport ZRText from 'zrender/lib/graphic/Text.js';\n\nvar ToolboxView =\n/** @class */\nfunction (_super) {\n __extends(ToolboxView, _super);\n\n function ToolboxView() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n ToolboxView.prototype.render = function (toolboxModel, ecModel, api, payload) {\n var group = this.group;\n group.removeAll();\n\n if (!toolboxModel.get('show')) {\n return;\n }\n\n var itemSize = +toolboxModel.get('itemSize');\n var isVertical = toolboxModel.get('orient') === 'vertical';\n var featureOpts = toolboxModel.get('feature') || {};\n var features = this._features || (this._features = {});\n var featureNames = [];\n zrUtil.each(featureOpts, function (opt, name) {\n featureNames.push(name);\n });\n new DataDiffer(this._featureNames || [], featureNames).add(processFeature).update(processFeature).remove(zrUtil.curry(processFeature, null)).execute(); // Keep for diff.\n\n this._featureNames = featureNames;\n\n function processFeature(newIndex, oldIndex) {\n var featureName = featureNames[newIndex];\n var oldName = featureNames[oldIndex];\n var featureOpt = featureOpts[featureName];\n var featureModel = new Model(featureOpt, toolboxModel, toolboxModel.ecModel);\n var feature; // FIX#11236, merge feature title from MagicType newOption. TODO: consider seriesIndex ?\n\n if (payload && payload.newTitle != null && payload.featureName === featureName) {\n featureOpt.title = payload.newTitle;\n }\n\n if (featureName && !oldName) {\n // Create\n if (isUserFeatureName(featureName)) {\n feature = {\n onclick: featureModel.option.onclick,\n featureName: featureName\n };\n } else {\n var Feature = getFeature(featureName);\n\n if (!Feature) {\n return;\n }\n\n feature = new Feature();\n }\n\n features[featureName] = feature;\n } else {\n feature = features[oldName]; // If feature does not exist.\n\n if (!feature) {\n return;\n }\n }\n\n feature.uid = getUID('toolbox-feature');\n feature.model = featureModel;\n feature.ecModel = ecModel;\n feature.api = api;\n var isToolboxFeature = feature instanceof ToolboxFeature;\n\n if (!featureName && oldName) {\n isToolboxFeature && feature.dispose && feature.dispose(ecModel, api);\n return;\n }\n\n if (!featureModel.get('show') || isToolboxFeature && feature.unusable) {\n isToolboxFeature && feature.remove && feature.remove(ecModel, api);\n return;\n }\n\n createIconPaths(featureModel, feature, featureName);\n\n featureModel.setIconStatus = function (iconName, status) {\n var option = this.option;\n var iconPaths = this.iconPaths;\n option.iconStatus = option.iconStatus || {};\n option.iconStatus[iconName] = status;\n\n if (iconPaths[iconName]) {\n (status === 'emphasis' ? enterEmphasis : leaveEmphasis)(iconPaths[iconName]);\n }\n };\n\n if (feature instanceof ToolboxFeature) {\n if (feature.render) {\n feature.render(featureModel, ecModel, api, payload);\n }\n }\n }\n\n function createIconPaths(featureModel, feature, featureName) {\n var iconStyleModel = featureModel.getModel('iconStyle');\n var iconStyleEmphasisModel = featureModel.getModel(['emphasis', 'iconStyle']); // If one feature has multiple icons, they are organized as\n // {\n // icon: {\n // foo: '',\n // bar: ''\n // },\n // title: {\n // foo: '',\n // bar: ''\n // }\n // }\n\n var icons = feature instanceof ToolboxFeature && feature.getIcons ? feature.getIcons() : featureModel.get('icon');\n var titles = featureModel.get('title') || {};\n var iconsMap;\n var titlesMap;\n\n if (zrUtil.isString(icons)) {\n iconsMap = {};\n iconsMap[featureName] = icons;\n } else {\n iconsMap = icons;\n }\n\n if (zrUtil.isString(titles)) {\n titlesMap = {};\n titlesMap[featureName] = titles;\n } else {\n titlesMap = titles;\n }\n\n var iconPaths = featureModel.iconPaths = {};\n zrUtil.each(iconsMap, function (iconStr, iconName) {\n var path = graphic.createIcon(iconStr, {}, {\n x: -itemSize / 2,\n y: -itemSize / 2,\n width: itemSize,\n height: itemSize\n }); // TODO handling image\n\n path.setStyle(iconStyleModel.getItemStyle());\n var pathEmphasisState = path.ensureState('emphasis');\n pathEmphasisState.style = iconStyleEmphasisModel.getItemStyle(); // Text position calculation\n\n var textContent = new ZRText({\n style: {\n text: titlesMap[iconName],\n align: iconStyleEmphasisModel.get('textAlign'),\n borderRadius: iconStyleEmphasisModel.get('textBorderRadius'),\n padding: iconStyleEmphasisModel.get('textPadding'),\n fill: null\n },\n ignore: true\n });\n path.setTextContent(textContent);\n graphic.setTooltipConfig({\n el: path,\n componentModel: toolboxModel,\n itemName: iconName,\n formatterParamsExtra: {\n title: titlesMap[iconName]\n }\n });\n path.__title = titlesMap[iconName];\n path.on('mouseover', function () {\n // Should not reuse above hoverStyle, which might be modified.\n var hoverStyle = iconStyleEmphasisModel.getItemStyle();\n var defaultTextPosition = isVertical ? toolboxModel.get('right') == null && toolboxModel.get('left') !== 'right' ? 'right' : 'left' : toolboxModel.get('bottom') == null && toolboxModel.get('top') !== 'bottom' ? 'bottom' : 'top';\n textContent.setStyle({\n fill: iconStyleEmphasisModel.get('textFill') || hoverStyle.fill || hoverStyle.stroke || '#000',\n backgroundColor: iconStyleEmphasisModel.get('textBackgroundColor')\n });\n path.setTextConfig({\n position: iconStyleEmphasisModel.get('textPosition') || defaultTextPosition\n });\n textContent.ignore = !toolboxModel.get('showTitle'); // Use enterEmphasis and leaveEmphasis provide by ec.\n // There are flags managed by the echarts.\n\n api.enterEmphasis(this);\n }).on('mouseout', function () {\n if (featureModel.get(['iconStatus', iconName]) !== 'emphasis') {\n api.leaveEmphasis(this);\n }\n\n textContent.hide();\n });\n (featureModel.get(['iconStatus', iconName]) === 'emphasis' ? enterEmphasis : leaveEmphasis)(path);\n group.add(path);\n path.on('click', zrUtil.bind(feature.onclick, feature, ecModel, api, iconName));\n iconPaths[iconName] = path;\n });\n }\n\n listComponentHelper.layout(group, toolboxModel, api); // Render background after group is layout\n // FIXME\n\n group.add(listComponentHelper.makeBackground(group.getBoundingRect(), toolboxModel)); // Adjust icon title positions to avoid them out of screen\n\n isVertical || group.eachChild(function (icon) {\n var titleText = icon.__title; // const hoverStyle = icon.hoverStyle;\n // TODO simplify code?\n\n var emphasisState = icon.ensureState('emphasis');\n var emphasisTextConfig = emphasisState.textConfig || (emphasisState.textConfig = {});\n var textContent = icon.getTextContent();\n var emphasisTextState = textContent && textContent.ensureState('emphasis'); // May be background element\n\n if (emphasisTextState && !zrUtil.isFunction(emphasisTextState) && titleText) {\n var emphasisTextStyle = emphasisTextState.style || (emphasisTextState.style = {});\n var rect = textContain.getBoundingRect(titleText, ZRText.makeFont(emphasisTextStyle));\n var offsetX = icon.x + group.x;\n var offsetY = icon.y + group.y + itemSize;\n var needPutOnTop = false;\n\n if (offsetY + rect.height > api.getHeight()) {\n emphasisTextConfig.position = 'top';\n needPutOnTop = true;\n }\n\n var topOffset = needPutOnTop ? -5 - rect.height : itemSize + 10;\n\n if (offsetX + rect.width / 2 > api.getWidth()) {\n emphasisTextConfig.position = ['100%', topOffset];\n emphasisTextStyle.align = 'right';\n } else if (offsetX - rect.width / 2 < 0) {\n emphasisTextConfig.position = [0, topOffset];\n emphasisTextStyle.align = 'left';\n }\n }\n });\n };\n\n ToolboxView.prototype.updateView = function (toolboxModel, ecModel, api, payload) {\n zrUtil.each(this._features, function (feature) {\n feature instanceof ToolboxFeature && feature.updateView && feature.updateView(feature.model, ecModel, api, payload);\n });\n }; // updateLayout(toolboxModel, ecModel, api, payload) {\n // zrUtil.each(this._features, function (feature) {\n // feature.updateLayout && feature.updateLayout(feature.model, ecModel, api, payload);\n // });\n // },\n\n\n ToolboxView.prototype.remove = function (ecModel, api) {\n zrUtil.each(this._features, function (feature) {\n feature instanceof ToolboxFeature && feature.remove && feature.remove(ecModel, api);\n });\n this.group.removeAll();\n };\n\n ToolboxView.prototype.dispose = function (ecModel, api) {\n zrUtil.each(this._features, function (feature) {\n feature instanceof ToolboxFeature && feature.dispose && feature.dispose(ecModel, api);\n });\n };\n\n ToolboxView.type = 'toolbox';\n return ToolboxView;\n}(ComponentView);\n\nfunction isUserFeatureName(featureName) {\n return featureName.indexOf('my') === 0;\n}\n\nexport default ToolboxView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { ToolboxFeature } from '../featureManager.js';\nvar ICON_TYPES = ['rect', 'polygon', 'lineX', 'lineY', 'keep', 'clear'];\n\nvar BrushFeature =\n/** @class */\nfunction (_super) {\n __extends(BrushFeature, _super);\n\n function BrushFeature() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n BrushFeature.prototype.render = function (featureModel, ecModel, api) {\n var brushType;\n var brushMode;\n var isBrushed;\n ecModel.eachComponent({\n mainType: 'brush'\n }, function (brushModel) {\n brushType = brushModel.brushType;\n brushMode = brushModel.brushOption.brushMode || 'single';\n isBrushed = isBrushed || !!brushModel.areas.length;\n });\n this._brushType = brushType;\n this._brushMode = brushMode;\n zrUtil.each(featureModel.get('type', true), function (type) {\n featureModel.setIconStatus(type, (type === 'keep' ? brushMode === 'multiple' : type === 'clear' ? isBrushed : type === brushType) ? 'emphasis' : 'normal');\n });\n };\n\n BrushFeature.prototype.updateView = function (featureModel, ecModel, api) {\n this.render(featureModel, ecModel, api);\n };\n\n BrushFeature.prototype.getIcons = function () {\n var model = this.model;\n var availableIcons = model.get('icon', true);\n var icons = {};\n zrUtil.each(model.get('type', true), function (type) {\n if (availableIcons[type]) {\n icons[type] = availableIcons[type];\n }\n });\n return icons;\n };\n\n ;\n\n BrushFeature.prototype.onclick = function (ecModel, api, type) {\n var brushType = this._brushType;\n var brushMode = this._brushMode;\n\n if (type === 'clear') {\n // Trigger parallel action firstly\n api.dispatchAction({\n type: 'axisAreaSelect',\n intervals: []\n });\n api.dispatchAction({\n type: 'brush',\n command: 'clear',\n // Clear all areas of all brush components.\n areas: []\n });\n } else {\n api.dispatchAction({\n type: 'takeGlobalCursor',\n key: 'brush',\n brushOption: {\n brushType: type === 'keep' ? brushType : brushType === type ? false : type,\n brushMode: type === 'keep' ? brushMode === 'multiple' ? 'single' : 'multiple' : brushMode\n }\n });\n }\n };\n\n ;\n\n BrushFeature.getDefaultOption = function (ecModel) {\n var defaultOption = {\n show: true,\n type: ICON_TYPES.slice(),\n icon: {\n /* eslint-disable */\n rect: 'M7.3,34.7 M0.4,10V-0.2h9.8 M89.6,10V-0.2h-9.8 M0.4,60v10.2h9.8 M89.6,60v10.2h-9.8 M12.3,22.4V10.5h13.1 M33.6,10.5h7.8 M49.1,10.5h7.8 M77.5,22.4V10.5h-13 M12.3,31.1v8.2 M77.7,31.1v8.2 M12.3,47.6v11.9h13.1 M33.6,59.5h7.6 M49.1,59.5 h7.7 M77.5,47.6v11.9h-13',\n polygon: 'M55.2,34.9c1.7,0,3.1,1.4,3.1,3.1s-1.4,3.1-3.1,3.1 s-3.1-1.4-3.1-3.1S53.5,34.9,55.2,34.9z M50.4,51c1.7,0,3.1,1.4,3.1,3.1c0,1.7-1.4,3.1-3.1,3.1c-1.7,0-3.1-1.4-3.1-3.1 C47.3,52.4,48.7,51,50.4,51z M55.6,37.1l1.5-7.8 M60.1,13.5l1.6-8.7l-7.8,4 M59,19l-1,5.3 M24,16.1l6.4,4.9l6.4-3.3 M48.5,11.6 l-5.9,3.1 M19.1,12.8L9.7,5.1l1.1,7.7 M13.4,29.8l1,7.3l6.6,1.6 M11.6,18.4l1,6.1 M32.8,41.9 M26.6,40.4 M27.3,40.2l6.1,1.6 M49.9,52.1l-5.6-7.6l-4.9-1.2',\n lineX: 'M15.2,30 M19.7,15.6V1.9H29 M34.8,1.9H40.4 M55.3,15.6V1.9H45.9 M19.7,44.4V58.1H29 M34.8,58.1H40.4 M55.3,44.4 V58.1H45.9 M12.5,20.3l-9.4,9.6l9.6,9.8 M3.1,29.9h16.5 M62.5,20.3l9.4,9.6L62.3,39.7 M71.9,29.9H55.4',\n lineY: 'M38.8,7.7 M52.7,12h13.2v9 M65.9,26.6V32 M52.7,46.3h13.2v-9 M24.9,12H11.8v9 M11.8,26.6V32 M24.9,46.3H11.8v-9 M48.2,5.1l-9.3-9l-9.4,9.2 M38.9-3.9V12 M48.2,53.3l-9.3,9l-9.4-9.2 M38.9,62.3V46.4',\n keep: 'M4,10.5V1h10.3 M20.7,1h6.1 M33,1h6.1 M55.4,10.5V1H45.2 M4,17.3v6.6 M55.6,17.3v6.6 M4,30.5V40h10.3 M20.7,40 h6.1 M33,40h6.1 M55.4,30.5V40H45.2 M21,18.9h62.9v48.6H21V18.9z',\n clear: 'M22,14.7l30.9,31 M52.9,14.7L22,45.7 M4.7,16.8V4.2h13.1 M26,4.2h7.8 M41.6,4.2h7.8 M70.3,16.8V4.2H57.2 M4.7,25.9v8.6 M70.3,25.9v8.6 M4.7,43.2v12.6h13.1 M26,55.8h7.8 M41.6,55.8h7.8 M70.3,43.2v12.6H57.2' // jshint ignore:line\n\n /* eslint-enable */\n\n },\n // `rect`, `polygon`, `lineX`, `lineY`, `keep`, `clear`\n title: ecModel.getLocaleModel().get(['toolbox', 'brush', 'title'])\n };\n return defaultOption;\n };\n\n return BrushFeature;\n}(ToolboxFeature);\n\nexport default BrushFeature;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\n/* global document */\n\nimport * as echarts from '../../../core/echarts.js';\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { ToolboxFeature } from '../featureManager.js';\nimport { addEventListener } from 'zrender/lib/core/event.js';\nimport { warn } from '../../../util/log.js';\n/* global document */\n\nvar BLOCK_SPLITER = new Array(60).join('-');\nvar ITEM_SPLITER = '\\t';\n/**\n * Group series into two types\n * 1. on category axis, like line, bar\n * 2. others, like scatter, pie\n */\n\nfunction groupSeries(ecModel) {\n var seriesGroupByCategoryAxis = {};\n var otherSeries = [];\n var meta = [];\n ecModel.eachRawSeries(function (seriesModel) {\n var coordSys = seriesModel.coordinateSystem;\n\n if (coordSys && (coordSys.type === 'cartesian2d' || coordSys.type === 'polar')) {\n // TODO: TYPE Consider polar? Include polar may increase unecessary bundle size.\n var baseAxis = coordSys.getBaseAxis();\n\n if (baseAxis.type === 'category') {\n var key = baseAxis.dim + '_' + baseAxis.index;\n\n if (!seriesGroupByCategoryAxis[key]) {\n seriesGroupByCategoryAxis[key] = {\n categoryAxis: baseAxis,\n valueAxis: coordSys.getOtherAxis(baseAxis),\n series: []\n };\n meta.push({\n axisDim: baseAxis.dim,\n axisIndex: baseAxis.index\n });\n }\n\n seriesGroupByCategoryAxis[key].series.push(seriesModel);\n } else {\n otherSeries.push(seriesModel);\n }\n } else {\n otherSeries.push(seriesModel);\n }\n });\n return {\n seriesGroupByCategoryAxis: seriesGroupByCategoryAxis,\n other: otherSeries,\n meta: meta\n };\n}\n/**\n * Assemble content of series on cateogory axis\n * @inner\n */\n\n\nfunction assembleSeriesWithCategoryAxis(groups) {\n var tables = [];\n zrUtil.each(groups, function (group, key) {\n var categoryAxis = group.categoryAxis;\n var valueAxis = group.valueAxis;\n var valueAxisDim = valueAxis.dim;\n var headers = [' '].concat(zrUtil.map(group.series, function (series) {\n return series.name;\n })); // @ts-ignore TODO Polar\n\n var columns = [categoryAxis.model.getCategories()];\n zrUtil.each(group.series, function (series) {\n var rawData = series.getRawData();\n columns.push(series.getRawData().mapArray(rawData.mapDimension(valueAxisDim), function (val) {\n return val;\n }));\n }); // Assemble table content\n\n var lines = [headers.join(ITEM_SPLITER)];\n\n for (var i = 0; i < columns[0].length; i++) {\n var items = [];\n\n for (var j = 0; j < columns.length; j++) {\n items.push(columns[j][i]);\n }\n\n lines.push(items.join(ITEM_SPLITER));\n }\n\n tables.push(lines.join('\\n'));\n });\n return tables.join('\\n\\n' + BLOCK_SPLITER + '\\n\\n');\n}\n/**\n * Assemble content of other series\n */\n\n\nfunction assembleOtherSeries(series) {\n return zrUtil.map(series, function (series) {\n var data = series.getRawData();\n var lines = [series.name];\n var vals = [];\n data.each(data.dimensions, function () {\n var argLen = arguments.length;\n var dataIndex = arguments[argLen - 1];\n var name = data.getName(dataIndex);\n\n for (var i = 0; i < argLen - 1; i++) {\n vals[i] = arguments[i];\n }\n\n lines.push((name ? name + ITEM_SPLITER : '') + vals.join(ITEM_SPLITER));\n });\n return lines.join('\\n');\n }).join('\\n\\n' + BLOCK_SPLITER + '\\n\\n');\n}\n\nfunction getContentFromModel(ecModel) {\n var result = groupSeries(ecModel);\n return {\n value: zrUtil.filter([assembleSeriesWithCategoryAxis(result.seriesGroupByCategoryAxis), assembleOtherSeries(result.other)], function (str) {\n return !!str.replace(/[\\n\\t\\s]/g, '');\n }).join('\\n\\n' + BLOCK_SPLITER + '\\n\\n'),\n meta: result.meta\n };\n}\n\nfunction trim(str) {\n return str.replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n}\n/**\n * If a block is tsv format\n */\n\n\nfunction isTSVFormat(block) {\n // Simple method to find out if a block is tsv format\n var firstLine = block.slice(0, block.indexOf('\\n'));\n\n if (firstLine.indexOf(ITEM_SPLITER) >= 0) {\n return true;\n }\n}\n\nvar itemSplitRegex = new RegExp('[' + ITEM_SPLITER + ']+', 'g');\n/**\n * @param {string} tsv\n * @return {Object}\n */\n\nfunction parseTSVContents(tsv) {\n var tsvLines = tsv.split(/\\n+/g);\n var headers = trim(tsvLines.shift()).split(itemSplitRegex);\n var categories = [];\n var series = zrUtil.map(headers, function (header) {\n return {\n name: header,\n data: []\n };\n });\n\n for (var i = 0; i < tsvLines.length; i++) {\n var items = trim(tsvLines[i]).split(itemSplitRegex);\n categories.push(items.shift());\n\n for (var j = 0; j < items.length; j++) {\n series[j] && (series[j].data[i] = items[j]);\n }\n }\n\n return {\n series: series,\n categories: categories\n };\n}\n\nfunction parseListContents(str) {\n var lines = str.split(/\\n+/g);\n var seriesName = trim(lines.shift());\n var data = [];\n\n for (var i = 0; i < lines.length; i++) {\n // if line is empty, ignore it.\n // there is a case that a user forgot to delete `\\n`.\n var line = trim(lines[i]);\n\n if (!line) {\n continue;\n }\n\n var items = line.split(itemSplitRegex);\n var name_1 = '';\n var value = void 0;\n var hasName = false;\n\n if (isNaN(items[0])) {\n // First item is name\n hasName = true;\n name_1 = items[0];\n items = items.slice(1);\n data[i] = {\n name: name_1,\n value: []\n };\n value = data[i].value;\n } else {\n value = data[i] = [];\n }\n\n for (var j = 0; j < items.length; j++) {\n value.push(+items[j]);\n }\n\n if (value.length === 1) {\n hasName ? data[i].value = value[0] : data[i] = value[0];\n }\n }\n\n return {\n name: seriesName,\n data: data\n };\n}\n\nfunction parseContents(str, blockMetaList) {\n var blocks = str.split(new RegExp('\\n*' + BLOCK_SPLITER + '\\n*', 'g'));\n var newOption = {\n series: []\n };\n zrUtil.each(blocks, function (block, idx) {\n if (isTSVFormat(block)) {\n var result = parseTSVContents(block);\n var blockMeta = blockMetaList[idx];\n var axisKey = blockMeta.axisDim + 'Axis';\n\n if (blockMeta) {\n newOption[axisKey] = newOption[axisKey] || [];\n newOption[axisKey][blockMeta.axisIndex] = {\n data: result.categories\n };\n newOption.series = newOption.series.concat(result.series);\n }\n } else {\n var result = parseListContents(block);\n newOption.series.push(result);\n }\n });\n return newOption;\n}\n\nvar DataView =\n/** @class */\nfunction (_super) {\n __extends(DataView, _super);\n\n function DataView() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n DataView.prototype.onclick = function (ecModel, api) {\n // FIXME: better way?\n setTimeout(function () {\n api.dispatchAction({\n type: 'hideTip'\n });\n });\n var container = api.getDom();\n var model = this.model;\n\n if (this._dom) {\n container.removeChild(this._dom);\n }\n\n var root = document.createElement('div'); // use padding to avoid 5px whitespace\n\n root.style.cssText = 'position:absolute;top:0;bottom:0;left:0;right:0;padding:5px';\n root.style.backgroundColor = model.get('backgroundColor') || '#fff'; // Create elements\n\n var header = document.createElement('h4');\n var lang = model.get('lang') || [];\n header.innerHTML = lang[0] || model.get('title');\n header.style.cssText = 'margin:10px 20px';\n header.style.color = model.get('textColor');\n var viewMain = document.createElement('div');\n var textarea = document.createElement('textarea');\n viewMain.style.cssText = 'overflow:auto';\n var optionToContent = model.get('optionToContent');\n var contentToOption = model.get('contentToOption');\n var result = getContentFromModel(ecModel);\n\n if (zrUtil.isFunction(optionToContent)) {\n var htmlOrDom = optionToContent(api.getOption());\n\n if (zrUtil.isString(htmlOrDom)) {\n viewMain.innerHTML = htmlOrDom;\n } else if (zrUtil.isDom(htmlOrDom)) {\n viewMain.appendChild(htmlOrDom);\n }\n } else {\n // Use default textarea\n textarea.readOnly = model.get('readOnly');\n var style = textarea.style; // eslint-disable-next-line max-len\n\n style.cssText = 'display:block;width:100%;height:100%;font-family:monospace;font-size:14px;line-height:1.6rem;resize:none;box-sizing:border-box;outline:none';\n style.color = model.get('textColor');\n style.borderColor = model.get('textareaBorderColor');\n style.backgroundColor = model.get('textareaColor');\n textarea.value = result.value;\n viewMain.appendChild(textarea);\n }\n\n var blockMetaList = result.meta;\n var buttonContainer = document.createElement('div');\n buttonContainer.style.cssText = 'position:absolute;bottom:5px;left:0;right:0'; // eslint-disable-next-line max-len\n\n var buttonStyle = 'float:right;margin-right:20px;border:none;cursor:pointer;padding:2px 5px;font-size:12px;border-radius:3px';\n var closeButton = document.createElement('div');\n var refreshButton = document.createElement('div');\n buttonStyle += ';background-color:' + model.get('buttonColor');\n buttonStyle += ';color:' + model.get('buttonTextColor');\n var self = this;\n\n function close() {\n container.removeChild(root);\n self._dom = null;\n }\n\n addEventListener(closeButton, 'click', close);\n addEventListener(refreshButton, 'click', function () {\n if (contentToOption == null && optionToContent != null || contentToOption != null && optionToContent == null) {\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line\n warn('It seems you have just provided one of `contentToOption` and `optionToContent` functions but missed the other one. Data change is ignored.');\n }\n\n close();\n return;\n }\n\n var newOption;\n\n try {\n if (zrUtil.isFunction(contentToOption)) {\n newOption = contentToOption(viewMain, api.getOption());\n } else {\n newOption = parseContents(textarea.value, blockMetaList);\n }\n } catch (e) {\n close();\n throw new Error('Data view format error ' + e);\n }\n\n if (newOption) {\n api.dispatchAction({\n type: 'changeDataView',\n newOption: newOption\n });\n }\n\n close();\n });\n closeButton.innerHTML = lang[1];\n refreshButton.innerHTML = lang[2];\n refreshButton.style.cssText = closeButton.style.cssText = buttonStyle;\n !model.get('readOnly') && buttonContainer.appendChild(refreshButton);\n buttonContainer.appendChild(closeButton);\n root.appendChild(header);\n root.appendChild(viewMain);\n root.appendChild(buttonContainer);\n viewMain.style.height = container.clientHeight - 80 + 'px';\n container.appendChild(root);\n this._dom = root;\n };\n\n DataView.prototype.remove = function (ecModel, api) {\n this._dom && api.getDom().removeChild(this._dom);\n };\n\n DataView.prototype.dispose = function (ecModel, api) {\n this.remove(ecModel, api);\n };\n\n DataView.getDefaultOption = function (ecModel) {\n var defaultOption = {\n show: true,\n readOnly: false,\n optionToContent: null,\n contentToOption: null,\n // eslint-disable-next-line\n icon: 'M17.5,17.3H33 M17.5,17.3H33 M45.4,29.5h-28 M11.5,2v56H51V14.8L38.4,2H11.5z M38.4,2.2v12.7H51 M45.4,41.7h-28',\n title: ecModel.getLocaleModel().get(['toolbox', 'dataView', 'title']),\n lang: ecModel.getLocaleModel().get(['toolbox', 'dataView', 'lang']),\n backgroundColor: '#fff',\n textColor: '#000',\n textareaColor: '#fff',\n textareaBorderColor: '#333',\n buttonColor: '#c23531',\n buttonTextColor: '#fff'\n };\n return defaultOption;\n };\n\n return DataView;\n}(ToolboxFeature);\n/**\n * @inner\n */\n\n\nfunction tryMergeDataOption(newData, originalData) {\n return zrUtil.map(newData, function (newVal, idx) {\n var original = originalData && originalData[idx];\n\n if (zrUtil.isObject(original) && !zrUtil.isArray(original)) {\n var newValIsObject = zrUtil.isObject(newVal) && !zrUtil.isArray(newVal);\n\n if (!newValIsObject) {\n newVal = {\n value: newVal\n };\n } // original data has name but new data has no name\n\n\n var shouldDeleteName = original.name != null && newVal.name == null; // Original data has option\n\n newVal = zrUtil.defaults(newVal, original);\n shouldDeleteName && delete newVal.name;\n return newVal;\n } else {\n return newVal;\n }\n });\n} // TODO: SELF REGISTERED.\n\n\necharts.registerAction({\n type: 'changeDataView',\n event: 'dataViewChanged',\n update: 'prepareAndUpdate'\n}, function (payload, ecModel) {\n var newSeriesOptList = [];\n zrUtil.each(payload.newOption.series, function (seriesOpt) {\n var seriesModel = ecModel.getSeriesByName(seriesOpt.name)[0];\n\n if (!seriesModel) {\n // New created series\n // Geuss the series type\n newSeriesOptList.push(zrUtil.extend({\n // Default is scatter\n type: 'scatter'\n }, seriesOpt));\n } else {\n var originalData = seriesModel.get('data');\n newSeriesOptList.push({\n name: seriesOpt.name,\n data: tryMergeDataOption(seriesOpt.data, originalData)\n });\n }\n });\n ecModel.mergeOption(zrUtil.defaults({\n series: newSeriesOptList\n }, payload.newOption));\n});\nexport default DataView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\"; // TODO depends on DataZoom and Brush\n\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport BrushController from '../../helper/BrushController.js';\nimport BrushTargetManager from '../../helper/BrushTargetManager.js';\nimport * as history from '../../dataZoom/history.js';\nimport sliderMove from '../../helper/sliderMove.js';\nimport { ToolboxFeature } from '../featureManager.js';\nimport { makeInternalComponentId, parseFinder } from '../../../util/model.js';\nimport { registerInternalOptionCreator } from '../../../model/internalComponentCreator.js';\nvar each = zrUtil.each;\nvar DATA_ZOOM_ID_BASE = makeInternalComponentId('toolbox-dataZoom_');\nvar ICON_TYPES = ['zoom', 'back'];\n\nvar DataZoomFeature =\n/** @class */\nfunction (_super) {\n __extends(DataZoomFeature, _super);\n\n function DataZoomFeature() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n DataZoomFeature.prototype.render = function (featureModel, ecModel, api, payload) {\n if (!this._brushController) {\n this._brushController = new BrushController(api.getZr());\n\n this._brushController.on('brush', zrUtil.bind(this._onBrush, this)).mount();\n }\n\n updateZoomBtnStatus(featureModel, ecModel, this, payload, api);\n updateBackBtnStatus(featureModel, ecModel);\n };\n\n DataZoomFeature.prototype.onclick = function (ecModel, api, type) {\n handlers[type].call(this);\n };\n\n DataZoomFeature.prototype.remove = function (ecModel, api) {\n this._brushController && this._brushController.unmount();\n };\n\n DataZoomFeature.prototype.dispose = function (ecModel, api) {\n this._brushController && this._brushController.dispose();\n };\n\n DataZoomFeature.prototype._onBrush = function (eventParam) {\n var areas = eventParam.areas;\n\n if (!eventParam.isEnd || !areas.length) {\n return;\n }\n\n var snapshot = {};\n var ecModel = this.ecModel;\n\n this._brushController.updateCovers([]); // remove cover\n\n\n var brushTargetManager = new BrushTargetManager(makeAxisFinder(this.model), ecModel, {\n include: ['grid']\n });\n brushTargetManager.matchOutputRanges(areas, ecModel, function (area, coordRange, coordSys) {\n if (coordSys.type !== 'cartesian2d') {\n return;\n }\n\n var brushType = area.brushType;\n\n if (brushType === 'rect') {\n setBatch('x', coordSys, coordRange[0]);\n setBatch('y', coordSys, coordRange[1]);\n } else {\n setBatch({\n lineX: 'x',\n lineY: 'y'\n }[brushType], coordSys, coordRange);\n }\n });\n history.push(ecModel, snapshot);\n\n this._dispatchZoomAction(snapshot);\n\n function setBatch(dimName, coordSys, minMax) {\n var axis = coordSys.getAxis(dimName);\n var axisModel = axis.model;\n var dataZoomModel = findDataZoom(dimName, axisModel, ecModel); // Restrict range.\n\n var minMaxSpan = dataZoomModel.findRepresentativeAxisProxy(axisModel).getMinMaxSpan();\n\n if (minMaxSpan.minValueSpan != null || minMaxSpan.maxValueSpan != null) {\n minMax = sliderMove(0, minMax.slice(), axis.scale.getExtent(), 0, minMaxSpan.minValueSpan, minMaxSpan.maxValueSpan);\n }\n\n dataZoomModel && (snapshot[dataZoomModel.id] = {\n dataZoomId: dataZoomModel.id,\n startValue: minMax[0],\n endValue: minMax[1]\n });\n }\n\n function findDataZoom(dimName, axisModel, ecModel) {\n var found;\n ecModel.eachComponent({\n mainType: 'dataZoom',\n subType: 'select'\n }, function (dzModel) {\n var has = dzModel.getAxisModel(dimName, axisModel.componentIndex);\n has && (found = dzModel);\n });\n return found;\n }\n };\n\n ;\n\n DataZoomFeature.prototype._dispatchZoomAction = function (snapshot) {\n var batch = []; // Convert from hash map to array.\n\n each(snapshot, function (batchItem, dataZoomId) {\n batch.push(zrUtil.clone(batchItem));\n });\n batch.length && this.api.dispatchAction({\n type: 'dataZoom',\n from: this.uid,\n batch: batch\n });\n };\n\n DataZoomFeature.getDefaultOption = function (ecModel) {\n var defaultOption = {\n show: true,\n filterMode: 'filter',\n // Icon group\n icon: {\n zoom: 'M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1',\n back: 'M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26'\n },\n // `zoom`, `back`\n title: ecModel.getLocaleModel().get(['toolbox', 'dataZoom', 'title']),\n brushStyle: {\n borderWidth: 0,\n color: 'rgba(210,219,238,0.2)'\n }\n };\n return defaultOption;\n };\n\n return DataZoomFeature;\n}(ToolboxFeature);\n\nvar handlers = {\n zoom: function () {\n var nextActive = !this._isZoomActive;\n this.api.dispatchAction({\n type: 'takeGlobalCursor',\n key: 'dataZoomSelect',\n dataZoomSelectActive: nextActive\n });\n },\n back: function () {\n this._dispatchZoomAction(history.pop(this.ecModel));\n }\n};\n\nfunction makeAxisFinder(dzFeatureModel) {\n var setting = {\n xAxisIndex: dzFeatureModel.get('xAxisIndex', true),\n yAxisIndex: dzFeatureModel.get('yAxisIndex', true),\n xAxisId: dzFeatureModel.get('xAxisId', true),\n yAxisId: dzFeatureModel.get('yAxisId', true)\n }; // If both `xAxisIndex` `xAxisId` not set, it means 'all'.\n // If both `yAxisIndex` `yAxisId` not set, it means 'all'.\n // Some old cases set like this below to close yAxis control but leave xAxis control:\n // `{ feature: { dataZoom: { yAxisIndex: false } }`.\n\n if (setting.xAxisIndex == null && setting.xAxisId == null) {\n setting.xAxisIndex = 'all';\n }\n\n if (setting.yAxisIndex == null && setting.yAxisId == null) {\n setting.yAxisIndex = 'all';\n }\n\n return setting;\n}\n\nfunction updateBackBtnStatus(featureModel, ecModel) {\n featureModel.setIconStatus('back', history.count(ecModel) > 1 ? 'emphasis' : 'normal');\n}\n\nfunction updateZoomBtnStatus(featureModel, ecModel, view, payload, api) {\n var zoomActive = view._isZoomActive;\n\n if (payload && payload.type === 'takeGlobalCursor') {\n zoomActive = payload.key === 'dataZoomSelect' ? payload.dataZoomSelectActive : false;\n }\n\n view._isZoomActive = zoomActive;\n featureModel.setIconStatus('zoom', zoomActive ? 'emphasis' : 'normal');\n var brushTargetManager = new BrushTargetManager(makeAxisFinder(featureModel), ecModel, {\n include: ['grid']\n });\n var panels = brushTargetManager.makePanelOpts(api, function (targetInfo) {\n return targetInfo.xAxisDeclared && !targetInfo.yAxisDeclared ? 'lineX' : !targetInfo.xAxisDeclared && targetInfo.yAxisDeclared ? 'lineY' : 'rect';\n });\n\n view._brushController.setPanels(panels).enableBrush(zoomActive && panels.length ? {\n brushType: 'auto',\n brushStyle: featureModel.getModel('brushStyle').getItemStyle()\n } : false);\n}\n\nregisterInternalOptionCreator('dataZoom', function (ecModel) {\n var toolboxModel = ecModel.getComponent('toolbox', 0);\n var featureDataZoomPath = ['feature', 'dataZoom'];\n\n if (!toolboxModel || toolboxModel.get(featureDataZoomPath) == null) {\n return;\n }\n\n var dzFeatureModel = toolboxModel.getModel(featureDataZoomPath);\n var dzOptions = [];\n var finder = makeAxisFinder(dzFeatureModel);\n var finderResult = parseFinder(ecModel, finder);\n each(finderResult.xAxisModels, function (axisModel) {\n return buildInternalOptions(axisModel, 'xAxis', 'xAxisIndex');\n });\n each(finderResult.yAxisModels, function (axisModel) {\n return buildInternalOptions(axisModel, 'yAxis', 'yAxisIndex');\n });\n\n function buildInternalOptions(axisModel, axisMainType, axisIndexPropName) {\n var axisIndex = axisModel.componentIndex;\n var newOpt = {\n type: 'select',\n $fromToolbox: true,\n // Default to be filter\n filterMode: dzFeatureModel.get('filterMode', true) || 'filter',\n // Id for merge mapping.\n id: DATA_ZOOM_ID_BASE + axisMainType + axisIndex\n };\n newOpt[axisIndexPropName] = axisIndex;\n dzOptions.push(newOpt);\n }\n\n return dzOptions;\n});\nexport default DataZoomFeature;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as echarts from '../../../core/echarts.js';\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { ToolboxFeature } from '../featureManager.js';\nimport { SINGLE_REFERRING } from '../../../util/model.js';\nvar INNER_STACK_KEYWORD = '__ec_magicType_stack__';\nvar ICON_TYPES = ['line', 'bar', 'stack']; // stack and tiled appears in pair for the title\n\nvar TITLE_TYPES = ['line', 'bar', 'stack', 'tiled'];\nvar radioTypes = [['line', 'bar'], ['stack']];\n\nvar MagicType =\n/** @class */\nfunction (_super) {\n __extends(MagicType, _super);\n\n function MagicType() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n MagicType.prototype.getIcons = function () {\n var model = this.model;\n var availableIcons = model.get('icon');\n var icons = {};\n zrUtil.each(model.get('type'), function (type) {\n if (availableIcons[type]) {\n icons[type] = availableIcons[type];\n }\n });\n return icons;\n };\n\n MagicType.getDefaultOption = function (ecModel) {\n var defaultOption = {\n show: true,\n type: [],\n // Icon group\n icon: {\n line: 'M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4',\n bar: 'M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7',\n // eslint-disable-next-line\n stack: 'M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z' // jshint ignore:line\n\n },\n // `line`, `bar`, `stack`, `tiled`\n title: ecModel.getLocaleModel().get(['toolbox', 'magicType', 'title']),\n option: {},\n seriesIndex: {}\n };\n return defaultOption;\n };\n\n MagicType.prototype.onclick = function (ecModel, api, type) {\n var model = this.model;\n var seriesIndex = model.get(['seriesIndex', type]); // Not supported magicType\n\n if (!seriesOptGenreator[type]) {\n return;\n }\n\n var newOption = {\n series: []\n };\n\n var generateNewSeriesTypes = function (seriesModel) {\n var seriesType = seriesModel.subType;\n var seriesId = seriesModel.id;\n var newSeriesOpt = seriesOptGenreator[type](seriesType, seriesId, seriesModel, model);\n\n if (newSeriesOpt) {\n // PENDING If merge original option?\n zrUtil.defaults(newSeriesOpt, seriesModel.option);\n newOption.series.push(newSeriesOpt);\n } // Modify boundaryGap\n\n\n var coordSys = seriesModel.coordinateSystem;\n\n if (coordSys && coordSys.type === 'cartesian2d' && (type === 'line' || type === 'bar')) {\n var categoryAxis = coordSys.getAxesByScale('ordinal')[0];\n\n if (categoryAxis) {\n var axisDim = categoryAxis.dim;\n var axisType = axisDim + 'Axis';\n var axisModel = seriesModel.getReferringComponents(axisType, SINGLE_REFERRING).models[0];\n var axisIndex = axisModel.componentIndex;\n newOption[axisType] = newOption[axisType] || [];\n\n for (var i = 0; i <= axisIndex; i++) {\n newOption[axisType][axisIndex] = newOption[axisType][axisIndex] || {};\n }\n\n newOption[axisType][axisIndex].boundaryGap = type === 'bar';\n }\n }\n };\n\n zrUtil.each(radioTypes, function (radio) {\n if (zrUtil.indexOf(radio, type) >= 0) {\n zrUtil.each(radio, function (item) {\n model.setIconStatus(item, 'normal');\n });\n }\n });\n model.setIconStatus(type, 'emphasis');\n ecModel.eachComponent({\n mainType: 'series',\n query: seriesIndex == null ? null : {\n seriesIndex: seriesIndex\n }\n }, generateNewSeriesTypes);\n var newTitle;\n var currentType = type; // Change title of stack\n\n if (type === 'stack') {\n // use titles in model instead of ecModel\n // as stack and tiled appears in pair, just flip them\n // no need of checking stack state\n newTitle = zrUtil.merge({\n stack: model.option.title.tiled,\n tiled: model.option.title.stack\n }, model.option.title);\n\n if (model.get(['iconStatus', type]) !== 'emphasis') {\n currentType = 'tiled';\n }\n }\n\n api.dispatchAction({\n type: 'changeMagicType',\n currentType: currentType,\n newOption: newOption,\n newTitle: newTitle,\n featureName: 'magicType'\n });\n };\n\n return MagicType;\n}(ToolboxFeature);\n\nvar seriesOptGenreator = {\n 'line': function (seriesType, seriesId, seriesModel, model) {\n if (seriesType === 'bar') {\n return zrUtil.merge({\n id: seriesId,\n type: 'line',\n // Preserve data related option\n data: seriesModel.get('data'),\n stack: seriesModel.get('stack'),\n markPoint: seriesModel.get('markPoint'),\n markLine: seriesModel.get('markLine')\n }, model.get(['option', 'line']) || {}, true);\n }\n },\n 'bar': function (seriesType, seriesId, seriesModel, model) {\n if (seriesType === 'line') {\n return zrUtil.merge({\n id: seriesId,\n type: 'bar',\n // Preserve data related option\n data: seriesModel.get('data'),\n stack: seriesModel.get('stack'),\n markPoint: seriesModel.get('markPoint'),\n markLine: seriesModel.get('markLine')\n }, model.get(['option', 'bar']) || {}, true);\n }\n },\n 'stack': function (seriesType, seriesId, seriesModel, model) {\n var isStack = seriesModel.get('stack') === INNER_STACK_KEYWORD;\n\n if (seriesType === 'line' || seriesType === 'bar') {\n model.setIconStatus('stack', isStack ? 'normal' : 'emphasis');\n return zrUtil.merge({\n id: seriesId,\n stack: isStack ? '' : INNER_STACK_KEYWORD\n }, model.get(['option', 'stack']) || {}, true);\n }\n }\n}; // TODO: SELF REGISTERED.\n\necharts.registerAction({\n type: 'changeMagicType',\n event: 'magicTypeChanged',\n update: 'prepareAndUpdate'\n}, function (payload, ecModel) {\n ecModel.mergeOption(payload.newOption);\n});\nexport default MagicType;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as echarts from '../../../core/echarts.js';\nimport * as history from '../../dataZoom/history.js';\nimport { ToolboxFeature } from '../featureManager.js';\n\nvar RestoreOption =\n/** @class */\nfunction (_super) {\n __extends(RestoreOption, _super);\n\n function RestoreOption() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n RestoreOption.prototype.onclick = function (ecModel, api) {\n history.clear(ecModel);\n api.dispatchAction({\n type: 'restore',\n from: this.uid\n });\n };\n\n RestoreOption.getDefaultOption = function (ecModel) {\n var defaultOption = {\n show: true,\n // eslint-disable-next-line\n icon: 'M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5',\n title: ecModel.getLocaleModel().get(['toolbox', 'restore', 'title'])\n };\n return defaultOption;\n };\n\n return RestoreOption;\n}(ToolboxFeature); // TODO: SELF REGISTERED.\n\n\necharts.registerAction({\n type: 'restore',\n event: 'restore',\n update: 'prepareAndUpdate'\n}, function (payload, ecModel) {\n ecModel.resetOption('recreate');\n});\nexport default RestoreOption;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\n/* global Uint8Array, document */\n\nimport env from 'zrender/lib/core/env.js';\nimport { ToolboxFeature } from '../featureManager.js';\nimport { isFunction } from 'zrender/lib/core/util.js';\n/* global window, document */\n\nvar SaveAsImage =\n/** @class */\nfunction (_super) {\n __extends(SaveAsImage, _super);\n\n function SaveAsImage() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n SaveAsImage.prototype.onclick = function (ecModel, api) {\n var model = this.model;\n var title = model.get('name') || ecModel.get('title.0.text') || 'echarts';\n var isSvg = api.getZr().painter.getType() === 'svg';\n var type = isSvg ? 'svg' : model.get('type', true) || 'png';\n var url = api.getConnectedDataURL({\n type: type,\n backgroundColor: model.get('backgroundColor', true) || ecModel.get('backgroundColor') || '#fff',\n connectedBackgroundColor: model.get('connectedBackgroundColor'),\n excludeComponents: model.get('excludeComponents'),\n pixelRatio: model.get('pixelRatio')\n });\n var browser = env.browser; // Chrome, Firefox, New Edge\n\n if (isFunction(MouseEvent) && (browser.newEdge || !browser.ie && !browser.edge)) {\n var $a = document.createElement('a');\n $a.download = title + '.' + type;\n $a.target = '_blank';\n $a.href = url;\n var evt = new MouseEvent('click', {\n // some micro front-end framework, window maybe is a Proxy\n view: document.defaultView,\n bubbles: true,\n cancelable: false\n });\n $a.dispatchEvent(evt);\n } // IE or old Edge\n else {\n // @ts-ignore\n if (window.navigator.msSaveOrOpenBlob || isSvg) {\n var parts = url.split(','); // data:[][;charset=][;base64],\n\n var base64Encoded = parts[0].indexOf('base64') > -1;\n var bstr = isSvg // should decode the svg data uri first\n ? decodeURIComponent(parts[1]) : parts[1]; // only `atob` when the data uri is encoded with base64\n // otherwise, like `svg` data uri exported by zrender,\n // there will be an error, for it's not encoded with base64.\n // (just a url-encoded string through `encodeURIComponent`)\n\n base64Encoded && (bstr = window.atob(bstr));\n var filename = title + '.' + type; // @ts-ignore\n\n if (window.navigator.msSaveOrOpenBlob) {\n var n = bstr.length;\n var u8arr = new Uint8Array(n);\n\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n);\n }\n\n var blob = new Blob([u8arr]); // @ts-ignore\n\n window.navigator.msSaveOrOpenBlob(blob, filename);\n } else {\n var frame = document.createElement('iframe');\n document.body.appendChild(frame);\n var cw = frame.contentWindow;\n var doc = cw.document;\n doc.open('image/svg+xml', 'replace');\n doc.write(bstr);\n doc.close();\n cw.focus();\n doc.execCommand('SaveAs', true, filename);\n document.body.removeChild(frame);\n }\n } else {\n var lang = model.get('lang');\n var html = '' + '' + '' + '';\n var tab = window.open();\n tab.document.write(html);\n tab.document.title = title;\n }\n }\n };\n\n SaveAsImage.getDefaultOption = function (ecModel) {\n var defaultOption = {\n show: true,\n icon: 'M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0',\n title: ecModel.getLocaleModel().get(['toolbox', 'saveAsImage', 'title']),\n type: 'png',\n // Default use option.backgroundColor\n // backgroundColor: '#fff',\n connectedBackgroundColor: '#fff',\n name: '',\n excludeComponents: ['toolbox'],\n // use current pixel ratio of device by default\n // pixelRatio: 1,\n lang: ecModel.getLocaleModel().get(['toolbox', 'saveAsImage', 'lang'])\n };\n return defaultOption;\n };\n\n return SaveAsImage;\n}(ToolboxFeature);\n\nexport default SaveAsImage;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar ToolboxFeature =\n/** @class */\nfunction () {\n function ToolboxFeature() {}\n\n return ToolboxFeature;\n}();\n\nexport { ToolboxFeature };\nvar features = {};\nexport function registerFeature(name, ctor) {\n features[name] = ctor;\n}\nexport function getFeature(name) {\n return features[name];\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { use } from '../../extension.js';\nimport { install as installDataZoomSelect } from '../../component/dataZoom/installDataZoomSelect.js';\nimport ToolboxModel from './ToolboxModel.js';\nimport ToolboxView from './ToolboxView.js'; // TODOD: REGISTER IN INSTALL\n\nimport { registerFeature } from './featureManager.js';\nimport SaveAsImage from './feature/SaveAsImage.js';\nimport MagicType from './feature/MagicType.js';\nimport DataView from './feature/DataView.js';\nimport Restore from './feature/Restore.js';\nimport DataZoom from './feature/DataZoom.js';\nexport function install(registers) {\n registers.registerComponentModel(ToolboxModel);\n registers.registerComponentView(ToolboxView);\n registerFeature('saveAsImage', SaveAsImage);\n registerFeature('magicType', MagicType);\n registerFeature('dataView', DataView);\n registerFeature('dataZoom', DataZoom);\n registerFeature('restore', Restore);\n use(installDataZoomSelect);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { isString, indexOf, each, bind, isArray, isDom } from 'zrender/lib/core/util.js';\nimport { normalizeEvent } from 'zrender/lib/core/event.js';\nimport { transformLocalCoord } from 'zrender/lib/core/dom.js';\nimport env from 'zrender/lib/core/env.js';\nimport { convertToColorString, toCamelCase, normalizeCssArray } from '../../util/format.js';\nimport { shouldTooltipConfine, toCSSVendorPrefix, getComputedStyle, TRANSFORM_VENDOR, TRANSITION_VENDOR } from './helper.js';\nimport { getPaddingFromTooltipModel } from './tooltipMarkup.js';\n/* global document, window */\n\nvar CSS_TRANSITION_VENDOR = toCSSVendorPrefix(TRANSITION_VENDOR, 'transition');\nvar CSS_TRANSFORM_VENDOR = toCSSVendorPrefix(TRANSFORM_VENDOR, 'transform'); // eslint-disable-next-line\n\nvar gCssText = \"position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;\" + (env.transform3dSupported ? 'will-change:transform;' : '');\n\nfunction mirrorPos(pos) {\n pos = pos === 'left' ? 'right' : pos === 'right' ? 'left' : pos === 'top' ? 'bottom' : 'top';\n return pos;\n}\n\nfunction assembleArrow(tooltipModel, borderColor, arrowPosition) {\n if (!isString(arrowPosition) || arrowPosition === 'inside') {\n return '';\n }\n\n var backgroundColor = tooltipModel.get('backgroundColor');\n var borderWidth = tooltipModel.get('borderWidth');\n borderColor = convertToColorString(borderColor);\n var arrowPos = mirrorPos(arrowPosition);\n var arrowSize = Math.max(Math.round(borderWidth) * 1.5, 6);\n var positionStyle = '';\n var transformStyle = CSS_TRANSFORM_VENDOR + ':';\n var rotateDeg;\n\n if (indexOf(['left', 'right'], arrowPos) > -1) {\n positionStyle += 'top:50%';\n transformStyle += \"translateY(-50%) rotate(\" + (rotateDeg = arrowPos === 'left' ? -225 : -45) + \"deg)\";\n } else {\n positionStyle += 'left:50%';\n transformStyle += \"translateX(-50%) rotate(\" + (rotateDeg = arrowPos === 'top' ? 225 : 45) + \"deg)\";\n }\n\n var rotateRadian = rotateDeg * Math.PI / 180;\n var arrowWH = arrowSize + borderWidth;\n var rotatedWH = arrowWH * Math.abs(Math.cos(rotateRadian)) + arrowWH * Math.abs(Math.sin(rotateRadian));\n var arrowOffset = Math.round(((rotatedWH - Math.SQRT2 * borderWidth) / 2 + Math.SQRT2 * borderWidth - (rotatedWH - arrowWH) / 2) * 100) / 100;\n positionStyle += \";\" + arrowPos + \":-\" + arrowOffset + \"px\";\n var borderStyle = borderColor + \" solid \" + borderWidth + \"px;\";\n var styleCss = [\"position:absolute;width:\" + arrowSize + \"px;height:\" + arrowSize + \"px;z-index:-1;\", positionStyle + \";\" + transformStyle + \";\", \"border-bottom:\" + borderStyle, \"border-right:\" + borderStyle, \"background-color:\" + backgroundColor + \";\"];\n return \"
\";\n}\n\nfunction assembleTransition(duration, onlyFade) {\n var transitionCurve = 'cubic-bezier(0.23,1,0.32,1)';\n var transitionOption = \" \" + duration / 2 + \"s \" + transitionCurve;\n var transitionText = \"opacity\" + transitionOption + \",visibility\" + transitionOption;\n\n if (!onlyFade) {\n transitionOption = \" \" + duration + \"s \" + transitionCurve;\n transitionText += env.transformSupported ? \",\" + CSS_TRANSFORM_VENDOR + transitionOption : \",left\" + transitionOption + \",top\" + transitionOption;\n }\n\n return CSS_TRANSITION_VENDOR + ':' + transitionText;\n}\n\nfunction assembleTransform(x, y, toString) {\n // If using float on style, the final width of the dom might\n // keep changing slightly while mouse move. So `toFixed(0)` them.\n var x0 = x.toFixed(0) + 'px';\n var y0 = y.toFixed(0) + 'px'; // not support transform, use `left` and `top` instead.\n\n if (!env.transformSupported) {\n return toString ? \"top:\" + y0 + \";left:\" + x0 + \";\" : [['top', y0], ['left', x0]];\n } // support transform\n\n\n var is3d = env.transform3dSupported;\n var translate = \"translate\" + (is3d ? '3d' : '') + \"(\" + x0 + \",\" + y0 + (is3d ? ',0' : '') + \")\";\n return toString ? 'top:0;left:0;' + CSS_TRANSFORM_VENDOR + ':' + translate + ';' : [['top', 0], ['left', 0], [TRANSFORM_VENDOR, translate]];\n}\n/**\n * @param {Object} textStyle\n * @return {string}\n * @inner\n */\n\n\nfunction assembleFont(textStyleModel) {\n var cssText = [];\n var fontSize = textStyleModel.get('fontSize');\n var color = textStyleModel.getTextColor();\n color && cssText.push('color:' + color);\n cssText.push('font:' + textStyleModel.getFont());\n fontSize // @ts-ignore, leave it to the tooltip refactor.\n && cssText.push('line-height:' + Math.round(fontSize * 3 / 2) + 'px');\n var shadowColor = textStyleModel.get('textShadowColor');\n var shadowBlur = textStyleModel.get('textShadowBlur') || 0;\n var shadowOffsetX = textStyleModel.get('textShadowOffsetX') || 0;\n var shadowOffsetY = textStyleModel.get('textShadowOffsetY') || 0;\n shadowColor && shadowBlur && cssText.push('text-shadow:' + shadowOffsetX + 'px ' + shadowOffsetY + 'px ' + shadowBlur + 'px ' + shadowColor);\n each(['decoration', 'align'], function (name) {\n var val = textStyleModel.get(name);\n val && cssText.push('text-' + name + ':' + val);\n });\n return cssText.join(';');\n}\n\nfunction assembleCssText(tooltipModel, enableTransition, onlyFade) {\n var cssText = [];\n var transitionDuration = tooltipModel.get('transitionDuration');\n var backgroundColor = tooltipModel.get('backgroundColor');\n var shadowBlur = tooltipModel.get('shadowBlur');\n var shadowColor = tooltipModel.get('shadowColor');\n var shadowOffsetX = tooltipModel.get('shadowOffsetX');\n var shadowOffsetY = tooltipModel.get('shadowOffsetY');\n var textStyleModel = tooltipModel.getModel('textStyle');\n var padding = getPaddingFromTooltipModel(tooltipModel, 'html');\n var boxShadow = shadowOffsetX + \"px \" + shadowOffsetY + \"px \" + shadowBlur + \"px \" + shadowColor;\n cssText.push('box-shadow:' + boxShadow); // Animation transition. Do not animate when transitionDuration is 0.\n\n enableTransition && transitionDuration && cssText.push(assembleTransition(transitionDuration, onlyFade));\n\n if (backgroundColor) {\n cssText.push('background-color:' + backgroundColor);\n } // Border style\n\n\n each(['width', 'color', 'radius'], function (name) {\n var borderName = 'border-' + name;\n var camelCase = toCamelCase(borderName);\n var val = tooltipModel.get(camelCase);\n val != null && cssText.push(borderName + ':' + val + (name === 'color' ? '' : 'px'));\n }); // Text style\n\n cssText.push(assembleFont(textStyleModel)); // Padding\n\n if (padding != null) {\n cssText.push('padding:' + normalizeCssArray(padding).join('px ') + 'px');\n }\n\n return cssText.join(';') + ';';\n} // If not able to make, do not modify the input `out`.\n\n\nfunction makeStyleCoord(out, zr, appendToBody, zrX, zrY) {\n var zrPainter = zr && zr.painter;\n\n if (appendToBody) {\n var zrViewportRoot = zrPainter && zrPainter.getViewportRoot();\n\n if (zrViewportRoot) {\n // Some APPs might use scale on body, so we support CSS transform here.\n transformLocalCoord(out, zrViewportRoot, document.body, zrX, zrY);\n }\n } else {\n out[0] = zrX;\n out[1] = zrY; // xy should be based on canvas root. But tooltipContent is\n // the sibling of canvas root. So padding of ec container\n // should be considered here.\n\n var viewportRootOffset = zrPainter && zrPainter.getViewportRootOffset();\n\n if (viewportRootOffset) {\n out[0] += viewportRootOffset.offsetLeft;\n out[1] += viewportRootOffset.offsetTop;\n }\n }\n\n out[2] = out[0] / zr.getWidth();\n out[3] = out[1] / zr.getHeight();\n}\n\nvar TooltipHTMLContent =\n/** @class */\nfunction () {\n function TooltipHTMLContent(container, api, opt) {\n this._show = false;\n this._styleCoord = [0, 0, 0, 0];\n this._enterable = true;\n this._alwaysShowContent = false;\n this._firstShow = true;\n this._longHide = true;\n\n if (env.wxa) {\n return null;\n }\n\n var el = document.createElement('div'); // TODO: TYPE\n\n el.domBelongToZr = true;\n this.el = el;\n var zr = this._zr = api.getZr();\n var appendToBody = this._appendToBody = opt && opt.appendToBody;\n makeStyleCoord(this._styleCoord, zr, appendToBody, api.getWidth() / 2, api.getHeight() / 2);\n\n if (appendToBody) {\n document.body.appendChild(el);\n } else {\n container.appendChild(el);\n }\n\n this._container = container; // FIXME\n // Is it needed to trigger zr event manually if\n // the browser do not support `pointer-events: none`.\n\n var self = this;\n\n el.onmouseenter = function () {\n // clear the timeout in hideLater and keep showing tooltip\n if (self._enterable) {\n clearTimeout(self._hideTimeout);\n self._show = true;\n }\n\n self._inContent = true;\n };\n\n el.onmousemove = function (e) {\n e = e || window.event;\n\n if (!self._enterable) {\n // `pointer-events: none` is set to tooltip content div\n // if `enterable` is set as `false`, and `el.onmousemove`\n // can not be triggered. But in browser that do not\n // support `pointer-events`, we need to do this:\n // Try trigger zrender event to avoid mouse\n // in and out shape too frequently\n var handler = zr.handler;\n var zrViewportRoot = zr.painter.getViewportRoot();\n normalizeEvent(zrViewportRoot, e, true);\n handler.dispatch('mousemove', e);\n }\n };\n\n el.onmouseleave = function () {\n // set `_inContent` to `false` before `hideLater`\n self._inContent = false;\n\n if (self._enterable) {\n if (self._show) {\n self.hideLater(self._hideDelay);\n }\n }\n };\n }\n /**\n * Update when tooltip is rendered\n */\n\n\n TooltipHTMLContent.prototype.update = function (tooltipModel) {\n // FIXME\n // Move this logic to ec main?\n var container = this._container;\n var position = getComputedStyle(container, 'position');\n var domStyle = container.style;\n\n if (domStyle.position !== 'absolute' && position !== 'absolute') {\n domStyle.position = 'relative';\n } // move tooltip if chart resized\n\n\n var alwaysShowContent = tooltipModel.get('alwaysShowContent');\n alwaysShowContent && this._moveIfResized(); // update alwaysShowContent\n\n this._alwaysShowContent = alwaysShowContent; // update className\n\n this.el.className = tooltipModel.get('className') || ''; // Hide the tooltip\n // PENDING\n // this.hide();\n };\n\n TooltipHTMLContent.prototype.show = function (tooltipModel, nearPointColor) {\n clearTimeout(this._hideTimeout);\n clearTimeout(this._longHideTimeout);\n var el = this.el;\n var style = el.style;\n var styleCoord = this._styleCoord;\n\n if (!el.innerHTML) {\n style.display = 'none';\n } else {\n style.cssText = gCssText + assembleCssText(tooltipModel, !this._firstShow, this._longHide) // initial transform\n + assembleTransform(styleCoord[0], styleCoord[1], true) + (\"border-color:\" + convertToColorString(nearPointColor) + \";\") + (tooltipModel.get('extraCssText') || '') // If mouse occasionally move over the tooltip, a mouseout event will be\n // triggered by canvas, and cause some unexpectable result like dragging\n // stop, \"unfocusAdjacency\". Here `pointer-events: none` is used to solve\n // it. Although it is not supported by IE8~IE10, fortunately it is a rare\n // scenario.\n + (\";pointer-events:\" + (this._enterable ? 'auto' : 'none'));\n }\n\n this._show = true;\n this._firstShow = false;\n this._longHide = false;\n };\n\n TooltipHTMLContent.prototype.setContent = function (content, markers, tooltipModel, borderColor, arrowPosition) {\n var el = this.el;\n\n if (content == null) {\n el.innerHTML = '';\n return;\n }\n\n var arrow = '';\n\n if (isString(arrowPosition) && tooltipModel.get('trigger') === 'item' && !shouldTooltipConfine(tooltipModel)) {\n arrow = assembleArrow(tooltipModel, borderColor, arrowPosition);\n }\n\n if (isString(content)) {\n el.innerHTML = content + arrow;\n } else if (content) {\n // Clear previous\n el.innerHTML = '';\n\n if (!isArray(content)) {\n content = [content];\n }\n\n for (var i = 0; i < content.length; i++) {\n if (isDom(content[i]) && content[i].parentNode !== el) {\n el.appendChild(content[i]);\n }\n } // no arrow if empty\n\n\n if (arrow && el.childNodes.length) {\n // no need to create a new parent element, but it's not supported by IE 10 and older.\n // const arrowEl = document.createRange().createContextualFragment(arrow);\n var arrowEl = document.createElement('div');\n arrowEl.innerHTML = arrow;\n el.appendChild(arrowEl);\n }\n }\n };\n\n TooltipHTMLContent.prototype.setEnterable = function (enterable) {\n this._enterable = enterable;\n };\n\n TooltipHTMLContent.prototype.getSize = function () {\n var el = this.el;\n return [el.offsetWidth, el.offsetHeight];\n };\n\n TooltipHTMLContent.prototype.moveTo = function (zrX, zrY) {\n var styleCoord = this._styleCoord;\n makeStyleCoord(styleCoord, this._zr, this._appendToBody, zrX, zrY);\n\n if (styleCoord[0] != null && styleCoord[1] != null) {\n var style_1 = this.el.style;\n var transforms = assembleTransform(styleCoord[0], styleCoord[1]);\n each(transforms, function (transform) {\n style_1[transform[0]] = transform[1];\n });\n }\n };\n /**\n * when `alwaysShowContent` is true,\n * move the tooltip after chart resized\n */\n\n\n TooltipHTMLContent.prototype._moveIfResized = function () {\n // The ratio of left to width\n var ratioX = this._styleCoord[2]; // The ratio of top to height\n\n var ratioY = this._styleCoord[3];\n this.moveTo(ratioX * this._zr.getWidth(), ratioY * this._zr.getHeight());\n };\n\n TooltipHTMLContent.prototype.hide = function () {\n var _this = this;\n\n var style = this.el.style;\n style.visibility = 'hidden';\n style.opacity = '0';\n env.transform3dSupported && (style.willChange = '');\n this._show = false;\n this._longHideTimeout = setTimeout(function () {\n return _this._longHide = true;\n }, 500);\n };\n\n TooltipHTMLContent.prototype.hideLater = function (time) {\n if (this._show && !(this._inContent && this._enterable) && !this._alwaysShowContent) {\n if (time) {\n this._hideDelay = time; // Set show false to avoid invoke hideLater multiple times\n\n this._show = false;\n this._hideTimeout = setTimeout(bind(this.hide, this), time);\n } else {\n this.hide();\n }\n }\n };\n\n TooltipHTMLContent.prototype.isShow = function () {\n return this._show;\n };\n\n TooltipHTMLContent.prototype.dispose = function () {\n this.el.parentNode.removeChild(this.el);\n };\n\n return TooltipHTMLContent;\n}();\n\nexport default TooltipHTMLContent;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component.js';\n\nvar TooltipModel =\n/** @class */\nfunction (_super) {\n __extends(TooltipModel, _super);\n\n function TooltipModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = TooltipModel.type;\n return _this;\n }\n\n TooltipModel.type = 'tooltip';\n TooltipModel.dependencies = ['axisPointer'];\n TooltipModel.defaultOption = {\n // zlevel: 0,\n z: 60,\n show: true,\n // tooltip main content\n showContent: true,\n // 'trigger' only works on coordinate system.\n // 'item' | 'axis' | 'none'\n trigger: 'item',\n // 'click' | 'mousemove' | 'none'\n triggerOn: 'mousemove|click',\n alwaysShowContent: false,\n displayMode: 'single',\n renderMode: 'auto',\n // whether restraint content inside viewRect.\n // If renderMode: 'richText', default true.\n // If renderMode: 'html', defaut false (for backward compat).\n confine: null,\n showDelay: 0,\n hideDelay: 100,\n // Animation transition time, unit is second\n transitionDuration: 0.4,\n enterable: false,\n backgroundColor: '#fff',\n // box shadow\n shadowBlur: 10,\n shadowColor: 'rgba(0, 0, 0, .2)',\n shadowOffsetX: 1,\n shadowOffsetY: 2,\n // tooltip border radius, unit is px, default is 4\n borderRadius: 4,\n // tooltip border width, unit is px, default is 0 (no border)\n borderWidth: 1,\n // Tooltip inside padding, default is 5 for all direction\n // Array is allowed to set up, right, bottom, left, same with css\n // The default value: See `tooltip/tooltipMarkup.ts#getPaddingFromTooltipModel`.\n padding: null,\n // Extra css text\n extraCssText: '',\n // axis indicator, trigger by axis\n axisPointer: {\n // default is line\n // legal values: 'line' | 'shadow' | 'cross'\n type: 'line',\n // Valid when type is line, appoint tooltip line locate on which line. Optional\n // legal values: 'x' | 'y' | 'angle' | 'radius' | 'auto'\n // default is 'auto', chose the axis which type is category.\n // for multiply y axis, cartesian coord chose x axis, polar chose angle axis\n axis: 'auto',\n animation: 'auto',\n animationDurationUpdate: 200,\n animationEasingUpdate: 'exponentialOut',\n crossStyle: {\n color: '#999',\n width: 1,\n type: 'dashed',\n // TODO formatter\n textStyle: {}\n } // lineStyle and shadowStyle should not be specified here,\n // otherwise it will always override those styles on option.axisPointer.\n\n },\n textStyle: {\n color: '#666',\n fontSize: 14\n }\n };\n return TooltipModel;\n}(ComponentModel);\n\nexport default TooltipModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport ZRText from 'zrender/lib/graphic/Text.js';\nimport { getPaddingFromTooltipModel } from './tooltipMarkup.js';\nimport { throwError } from '../../util/log.js';\n\nvar TooltipRichContent =\n/** @class */\nfunction () {\n function TooltipRichContent(api) {\n this._show = false;\n this._styleCoord = [0, 0, 0, 0];\n this._alwaysShowContent = false;\n this._enterable = true;\n this._zr = api.getZr();\n makeStyleCoord(this._styleCoord, this._zr, api.getWidth() / 2, api.getHeight() / 2);\n }\n /**\n * Update when tooltip is rendered\n */\n\n\n TooltipRichContent.prototype.update = function (tooltipModel) {\n var alwaysShowContent = tooltipModel.get('alwaysShowContent');\n alwaysShowContent && this._moveIfResized(); // update alwaysShowContent\n\n this._alwaysShowContent = alwaysShowContent;\n };\n\n TooltipRichContent.prototype.show = function () {\n if (this._hideTimeout) {\n clearTimeout(this._hideTimeout);\n }\n\n this.el.show();\n this._show = true;\n };\n /**\n * Set tooltip content\n */\n\n\n TooltipRichContent.prototype.setContent = function (content, markupStyleCreator, tooltipModel, borderColor, arrowPosition) {\n var _this = this;\n\n if (zrUtil.isObject(content)) {\n throwError(process.env.NODE_ENV !== 'production' ? 'Passing DOM nodes as content is not supported in richText tooltip!' : '');\n }\n\n if (this.el) {\n this._zr.remove(this.el);\n }\n\n var textStyleModel = tooltipModel.getModel('textStyle');\n this.el = new ZRText({\n style: {\n rich: markupStyleCreator.richTextStyles,\n text: content,\n lineHeight: 22,\n borderWidth: 1,\n borderColor: borderColor,\n textShadowColor: textStyleModel.get('textShadowColor'),\n fill: tooltipModel.get(['textStyle', 'color']),\n padding: getPaddingFromTooltipModel(tooltipModel, 'richText'),\n verticalAlign: 'top',\n align: 'left'\n },\n z: tooltipModel.get('z')\n });\n zrUtil.each(['backgroundColor', 'borderRadius', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY'], function (propName) {\n _this.el.style[propName] = tooltipModel.get(propName);\n });\n zrUtil.each(['textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY'], function (propName) {\n _this.el.style[propName] = textStyleModel.get(propName) || 0;\n });\n\n this._zr.add(this.el);\n\n var self = this;\n this.el.on('mouseover', function () {\n // clear the timeout in hideLater and keep showing tooltip\n if (self._enterable) {\n clearTimeout(self._hideTimeout);\n self._show = true;\n }\n\n self._inContent = true;\n });\n this.el.on('mouseout', function () {\n if (self._enterable) {\n if (self._show) {\n self.hideLater(self._hideDelay);\n }\n }\n\n self._inContent = false;\n });\n };\n\n TooltipRichContent.prototype.setEnterable = function (enterable) {\n this._enterable = enterable;\n };\n\n TooltipRichContent.prototype.getSize = function () {\n var el = this.el;\n var bounding = this.el.getBoundingRect(); // bounding rect does not include shadow. For renderMode richText,\n // if overflow, it will be cut. So calculate them accurately.\n\n var shadowOuterSize = calcShadowOuterSize(el.style);\n return [bounding.width + shadowOuterSize.left + shadowOuterSize.right, bounding.height + shadowOuterSize.top + shadowOuterSize.bottom];\n };\n\n TooltipRichContent.prototype.moveTo = function (x, y) {\n var el = this.el;\n\n if (el) {\n var styleCoord = this._styleCoord;\n makeStyleCoord(styleCoord, this._zr, x, y);\n x = styleCoord[0];\n y = styleCoord[1];\n var style = el.style;\n var borderWidth = mathMaxWith0(style.borderWidth || 0);\n var shadowOuterSize = calcShadowOuterSize(style); // rich text x, y do not include border.\n\n el.x = x + borderWidth + shadowOuterSize.left;\n el.y = y + borderWidth + shadowOuterSize.top;\n el.markRedraw();\n }\n };\n /**\n * when `alwaysShowContent` is true,\n * move the tooltip after chart resized\n */\n\n\n TooltipRichContent.prototype._moveIfResized = function () {\n // The ratio of left to width\n var ratioX = this._styleCoord[2]; // The ratio of top to height\n\n var ratioY = this._styleCoord[3];\n this.moveTo(ratioX * this._zr.getWidth(), ratioY * this._zr.getHeight());\n };\n\n TooltipRichContent.prototype.hide = function () {\n if (this.el) {\n this.el.hide();\n }\n\n this._show = false;\n };\n\n TooltipRichContent.prototype.hideLater = function (time) {\n if (this._show && !(this._inContent && this._enterable) && !this._alwaysShowContent) {\n if (time) {\n this._hideDelay = time; // Set show false to avoid invoke hideLater multiple times\n\n this._show = false;\n this._hideTimeout = setTimeout(zrUtil.bind(this.hide, this), time);\n } else {\n this.hide();\n }\n }\n };\n\n TooltipRichContent.prototype.isShow = function () {\n return this._show;\n };\n\n TooltipRichContent.prototype.dispose = function () {\n this._zr.remove(this.el);\n };\n\n return TooltipRichContent;\n}();\n\nfunction mathMaxWith0(val) {\n return Math.max(0, val);\n}\n\nfunction calcShadowOuterSize(style) {\n var shadowBlur = mathMaxWith0(style.shadowBlur || 0);\n var shadowOffsetX = mathMaxWith0(style.shadowOffsetX || 0);\n var shadowOffsetY = mathMaxWith0(style.shadowOffsetY || 0);\n return {\n left: mathMaxWith0(shadowBlur - shadowOffsetX),\n right: mathMaxWith0(shadowBlur + shadowOffsetX),\n top: mathMaxWith0(shadowBlur - shadowOffsetY),\n bottom: mathMaxWith0(shadowBlur + shadowOffsetY)\n };\n}\n\nfunction makeStyleCoord(out, zr, zrX, zrY) {\n out[0] = zrX;\n out[1] = zrY;\n out[2] = out[0] / zr.getWidth();\n out[3] = out[1] / zr.getHeight();\n}\n\nexport default TooltipRichContent;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nimport { bind, each, clone, trim, isString, isFunction, isArray, isObject, extend } from 'zrender/lib/core/util.js';\nimport env from 'zrender/lib/core/env.js';\nimport TooltipHTMLContent from './TooltipHTMLContent.js';\nimport TooltipRichContent from './TooltipRichContent.js';\nimport { convertToColorString, formatTpl } from '../../util/format.js';\nimport { parsePercent } from '../../util/number.js';\nimport { Rect } from '../../util/graphic.js';\nimport findPointFromSeries from '../axisPointer/findPointFromSeries.js';\nimport { getLayoutRect } from '../../util/layout.js';\nimport Model from '../../model/Model.js';\nimport * as globalListener from '../axisPointer/globalListener.js';\nimport * as axisHelper from '../../coord/axisHelper.js';\nimport * as axisPointerViewHelper from '../axisPointer/viewHelper.js';\nimport { getTooltipRenderMode, preParseFinder, queryReferringComponents } from '../../util/model.js';\nimport ComponentView from '../../view/Component.js';\nimport { format as timeFormat } from '../../util/time.js';\nimport { getECData } from '../../util/innerStore.js';\nimport { shouldTooltipConfine } from './helper.js';\nimport { normalizeTooltipFormatResult } from '../../model/mixin/dataFormat.js';\nimport { createTooltipMarkup, buildTooltipMarkup, TooltipMarkupStyleCreator } from './tooltipMarkup.js';\nimport { findEventDispatcher } from '../../util/event.js';\nimport { clear, createOrUpdate } from '../../util/throttle.js';\nvar proxyRect = new Rect({\n shape: {\n x: -1,\n y: -1,\n width: 2,\n height: 2\n }\n});\n\nvar TooltipView =\n/** @class */\nfunction (_super) {\n __extends(TooltipView, _super);\n\n function TooltipView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = TooltipView.type;\n return _this;\n }\n\n TooltipView.prototype.init = function (ecModel, api) {\n if (env.node || !api.getDom()) {\n return;\n }\n\n var tooltipModel = ecModel.getComponent('tooltip');\n var renderMode = this._renderMode = getTooltipRenderMode(tooltipModel.get('renderMode'));\n this._tooltipContent = renderMode === 'richText' ? new TooltipRichContent(api) : new TooltipHTMLContent(api.getDom(), api, {\n appendToBody: tooltipModel.get('appendToBody', true)\n });\n };\n\n TooltipView.prototype.render = function (tooltipModel, ecModel, api) {\n if (env.node || !api.getDom()) {\n return;\n } // Reset\n\n\n this.group.removeAll();\n this._tooltipModel = tooltipModel;\n this._ecModel = ecModel;\n this._api = api;\n var tooltipContent = this._tooltipContent;\n tooltipContent.update(tooltipModel);\n tooltipContent.setEnterable(tooltipModel.get('enterable'));\n\n this._initGlobalListener();\n\n this._keepShow(); // PENDING\n // `mousemove` event will be triggered very frequently when the mouse moves fast,\n // which causes that the `updatePosition` function was also called frequently.\n // In Chrome with devtools open and Firefox, tooltip looks laggy and shakes. See #14695 #16101\n // To avoid frequent triggering,\n // consider throttling it in 50ms when transition is enabled\n\n\n if (this._renderMode !== 'richText' && tooltipModel.get('transitionDuration')) {\n createOrUpdate(this, '_updatePosition', 50, 'fixRate');\n } else {\n clear(this, '_updatePosition');\n }\n };\n\n TooltipView.prototype._initGlobalListener = function () {\n var tooltipModel = this._tooltipModel;\n var triggerOn = tooltipModel.get('triggerOn');\n globalListener.register('itemTooltip', this._api, bind(function (currTrigger, e, dispatchAction) {\n // If 'none', it is not controlled by mouse totally.\n if (triggerOn !== 'none') {\n if (triggerOn.indexOf(currTrigger) >= 0) {\n this._tryShow(e, dispatchAction);\n } else if (currTrigger === 'leave') {\n this._hide(dispatchAction);\n }\n }\n }, this));\n };\n\n TooltipView.prototype._keepShow = function () {\n var tooltipModel = this._tooltipModel;\n var ecModel = this._ecModel;\n var api = this._api;\n var triggerOn = tooltipModel.get('triggerOn'); // Try to keep the tooltip show when refreshing\n\n if (this._lastX != null && this._lastY != null // When user is willing to control tooltip totally using API,\n // self.manuallyShowTip({x, y}) might cause tooltip hide,\n // which is not expected.\n && triggerOn !== 'none' && triggerOn !== 'click') {\n var self_1 = this;\n clearTimeout(this._refreshUpdateTimeout);\n this._refreshUpdateTimeout = setTimeout(function () {\n // Show tip next tick after other charts are rendered\n // In case highlight action has wrong result\n // FIXME\n !api.isDisposed() && self_1.manuallyShowTip(tooltipModel, ecModel, api, {\n x: self_1._lastX,\n y: self_1._lastY,\n dataByCoordSys: self_1._lastDataByCoordSys\n });\n });\n }\n };\n /**\n * Show tip manually by\n * dispatchAction({\n * type: 'showTip',\n * x: 10,\n * y: 10\n * });\n * Or\n * dispatchAction({\n * type: 'showTip',\n * seriesIndex: 0,\n * dataIndex or dataIndexInside or name\n * });\n *\n * TODO Batch\n */\n\n\n TooltipView.prototype.manuallyShowTip = function (tooltipModel, ecModel, api, payload) {\n if (payload.from === this.uid || env.node || !api.getDom()) {\n return;\n }\n\n var dispatchAction = makeDispatchAction(payload, api); // Reset ticket\n\n this._ticket = ''; // When triggered from axisPointer.\n\n var dataByCoordSys = payload.dataByCoordSys;\n var cmptRef = findComponentReference(payload, ecModel, api);\n\n if (cmptRef) {\n var rect = cmptRef.el.getBoundingRect().clone();\n rect.applyTransform(cmptRef.el.transform);\n\n this._tryShow({\n offsetX: rect.x + rect.width / 2,\n offsetY: rect.y + rect.height / 2,\n target: cmptRef.el,\n position: payload.position,\n // When manully trigger, the mouse is not on the el, so we'd better to\n // position tooltip on the bottom of the el and display arrow is possible.\n positionDefault: 'bottom'\n }, dispatchAction);\n } else if (payload.tooltip && payload.x != null && payload.y != null) {\n var el = proxyRect;\n el.x = payload.x;\n el.y = payload.y;\n el.update();\n getECData(el).tooltipConfig = {\n name: null,\n option: payload.tooltip\n }; // Manually show tooltip while view is not using zrender elements.\n\n this._tryShow({\n offsetX: payload.x,\n offsetY: payload.y,\n target: el\n }, dispatchAction);\n } else if (dataByCoordSys) {\n this._tryShow({\n offsetX: payload.x,\n offsetY: payload.y,\n position: payload.position,\n dataByCoordSys: dataByCoordSys,\n tooltipOption: payload.tooltipOption\n }, dispatchAction);\n } else if (payload.seriesIndex != null) {\n if (this._manuallyAxisShowTip(tooltipModel, ecModel, api, payload)) {\n return;\n }\n\n var pointInfo = findPointFromSeries(payload, ecModel);\n var cx = pointInfo.point[0];\n var cy = pointInfo.point[1];\n\n if (cx != null && cy != null) {\n this._tryShow({\n offsetX: cx,\n offsetY: cy,\n target: pointInfo.el,\n position: payload.position,\n // When manully trigger, the mouse is not on the el, so we'd better to\n // position tooltip on the bottom of the el and display arrow is possible.\n positionDefault: 'bottom'\n }, dispatchAction);\n }\n } else if (payload.x != null && payload.y != null) {\n // FIXME\n // should wrap dispatchAction like `axisPointer/globalListener` ?\n api.dispatchAction({\n type: 'updateAxisPointer',\n x: payload.x,\n y: payload.y\n });\n\n this._tryShow({\n offsetX: payload.x,\n offsetY: payload.y,\n position: payload.position,\n target: api.getZr().findHover(payload.x, payload.y).target\n }, dispatchAction);\n }\n };\n\n TooltipView.prototype.manuallyHideTip = function (tooltipModel, ecModel, api, payload) {\n var tooltipContent = this._tooltipContent;\n\n if (this._tooltipModel) {\n tooltipContent.hideLater(this._tooltipModel.get('hideDelay'));\n }\n\n this._lastX = this._lastY = this._lastDataByCoordSys = null;\n\n if (payload.from !== this.uid) {\n this._hide(makeDispatchAction(payload, api));\n }\n }; // Be compatible with previous design, that is, when tooltip.type is 'axis' and\n // dispatchAction 'showTip' with seriesIndex and dataIndex will trigger axis pointer\n // and tooltip.\n\n\n TooltipView.prototype._manuallyAxisShowTip = function (tooltipModel, ecModel, api, payload) {\n var seriesIndex = payload.seriesIndex;\n var dataIndex = payload.dataIndex; // @ts-ignore\n\n var coordSysAxesInfo = ecModel.getComponent('axisPointer').coordSysAxesInfo;\n\n if (seriesIndex == null || dataIndex == null || coordSysAxesInfo == null) {\n return;\n }\n\n var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\n\n if (!seriesModel) {\n return;\n }\n\n var data = seriesModel.getData();\n var tooltipCascadedModel = buildTooltipModel([data.getItemModel(dataIndex), seriesModel, (seriesModel.coordinateSystem || {}).model], this._tooltipModel);\n\n if (tooltipCascadedModel.get('trigger') !== 'axis') {\n return;\n }\n\n api.dispatchAction({\n type: 'updateAxisPointer',\n seriesIndex: seriesIndex,\n dataIndex: dataIndex,\n position: payload.position\n });\n return true;\n };\n\n TooltipView.prototype._tryShow = function (e, dispatchAction) {\n var el = e.target;\n var tooltipModel = this._tooltipModel;\n\n if (!tooltipModel) {\n return;\n } // Save mouse x, mouse y. So we can try to keep showing the tip if chart is refreshed\n\n\n this._lastX = e.offsetX;\n this._lastY = e.offsetY;\n var dataByCoordSys = e.dataByCoordSys;\n\n if (dataByCoordSys && dataByCoordSys.length) {\n this._showAxisTooltip(dataByCoordSys, e);\n } else if (el) {\n this._lastDataByCoordSys = null;\n var seriesDispatcher_1;\n var cmptDispatcher_1;\n findEventDispatcher(el, function (target) {\n // Always show item tooltip if mouse is on the element with dataIndex\n if (getECData(target).dataIndex != null) {\n seriesDispatcher_1 = target;\n return true;\n } // Tooltip provided directly. Like legend.\n\n\n if (getECData(target).tooltipConfig != null) {\n cmptDispatcher_1 = target;\n return true;\n }\n }, true);\n\n if (seriesDispatcher_1) {\n this._showSeriesItemTooltip(e, seriesDispatcher_1, dispatchAction);\n } else if (cmptDispatcher_1) {\n this._showComponentItemTooltip(e, cmptDispatcher_1, dispatchAction);\n } else {\n this._hide(dispatchAction);\n }\n } else {\n this._lastDataByCoordSys = null;\n\n this._hide(dispatchAction);\n }\n };\n\n TooltipView.prototype._showOrMove = function (tooltipModel, cb) {\n // showDelay is used in this case: tooltip.enterable is set\n // as true. User intent to move mouse into tooltip and click\n // something. `showDelay` makes it easier to enter the content\n // but tooltip do not move immediately.\n var delay = tooltipModel.get('showDelay');\n cb = bind(cb, this);\n clearTimeout(this._showTimout);\n delay > 0 ? this._showTimout = setTimeout(cb, delay) : cb();\n };\n\n TooltipView.prototype._showAxisTooltip = function (dataByCoordSys, e) {\n var ecModel = this._ecModel;\n var globalTooltipModel = this._tooltipModel;\n var point = [e.offsetX, e.offsetY];\n var singleTooltipModel = buildTooltipModel([e.tooltipOption], globalTooltipModel);\n var renderMode = this._renderMode;\n var cbParamsList = [];\n var articleMarkup = createTooltipMarkup('section', {\n blocks: [],\n noHeader: true\n }); // Only for legacy: `Serise['formatTooltip']` returns a string.\n\n var markupTextArrLegacy = [];\n var markupStyleCreator = new TooltipMarkupStyleCreator();\n each(dataByCoordSys, function (itemCoordSys) {\n each(itemCoordSys.dataByAxis, function (axisItem) {\n var axisModel = ecModel.getComponent(axisItem.axisDim + 'Axis', axisItem.axisIndex);\n var axisValue = axisItem.value;\n\n if (!axisModel || axisValue == null) {\n return;\n }\n\n var axisValueLabel = axisPointerViewHelper.getValueLabel(axisValue, axisModel.axis, ecModel, axisItem.seriesDataIndices, axisItem.valueLabelOpt);\n var axisSectionMarkup = createTooltipMarkup('section', {\n header: axisValueLabel,\n noHeader: !trim(axisValueLabel),\n sortBlocks: true,\n blocks: []\n });\n articleMarkup.blocks.push(axisSectionMarkup);\n each(axisItem.seriesDataIndices, function (idxItem) {\n var series = ecModel.getSeriesByIndex(idxItem.seriesIndex);\n var dataIndex = idxItem.dataIndexInside;\n var cbParams = series.getDataParams(dataIndex); // Can't find data.\n\n if (cbParams.dataIndex < 0) {\n return;\n }\n\n cbParams.axisDim = axisItem.axisDim;\n cbParams.axisIndex = axisItem.axisIndex;\n cbParams.axisType = axisItem.axisType;\n cbParams.axisId = axisItem.axisId;\n cbParams.axisValue = axisHelper.getAxisRawValue(axisModel.axis, {\n value: axisValue\n });\n cbParams.axisValueLabel = axisValueLabel; // Pre-create marker style for makers. Users can assemble richText\n // text in `formatter` callback and use those markers style.\n\n cbParams.marker = markupStyleCreator.makeTooltipMarker('item', convertToColorString(cbParams.color), renderMode);\n var seriesTooltipResult = normalizeTooltipFormatResult(series.formatTooltip(dataIndex, true, null));\n var frag = seriesTooltipResult.frag;\n\n if (frag) {\n var valueFormatter = buildTooltipModel([series], globalTooltipModel).get('valueFormatter');\n axisSectionMarkup.blocks.push(valueFormatter ? extend({\n valueFormatter: valueFormatter\n }, frag) : frag);\n }\n\n if (seriesTooltipResult.text) {\n markupTextArrLegacy.push(seriesTooltipResult.text);\n }\n\n cbParamsList.push(cbParams);\n });\n });\n }); // In most cases, the second axis is displays upper on the first one.\n // So we reverse it to look better.\n\n articleMarkup.blocks.reverse();\n markupTextArrLegacy.reverse();\n var positionExpr = e.position;\n var orderMode = singleTooltipModel.get('order');\n var builtMarkupText = buildTooltipMarkup(articleMarkup, markupStyleCreator, renderMode, orderMode, ecModel.get('useUTC'), singleTooltipModel.get('textStyle'));\n builtMarkupText && markupTextArrLegacy.unshift(builtMarkupText);\n var blockBreak = renderMode === 'richText' ? '\\n\\n' : '
';\n var allMarkupText = markupTextArrLegacy.join(blockBreak);\n\n this._showOrMove(singleTooltipModel, function () {\n if (this._updateContentNotChangedOnAxis(dataByCoordSys, cbParamsList)) {\n this._updatePosition(singleTooltipModel, positionExpr, point[0], point[1], this._tooltipContent, cbParamsList);\n } else {\n this._showTooltipContent(singleTooltipModel, allMarkupText, cbParamsList, Math.random() + '', point[0], point[1], positionExpr, null, markupStyleCreator);\n }\n }); // Do not trigger events here, because this branch only be entered\n // from dispatchAction.\n\n };\n\n TooltipView.prototype._showSeriesItemTooltip = function (e, dispatcher, dispatchAction) {\n var ecModel = this._ecModel;\n var ecData = getECData(dispatcher); // Use dataModel in element if possible\n // Used when mouseover on a element like markPoint or edge\n // In which case, the data is not main data in series.\n\n var seriesIndex = ecData.seriesIndex;\n var seriesModel = ecModel.getSeriesByIndex(seriesIndex); // For example, graph link.\n\n var dataModel = ecData.dataModel || seriesModel;\n var dataIndex = ecData.dataIndex;\n var dataType = ecData.dataType;\n var data = dataModel.getData(dataType);\n var renderMode = this._renderMode;\n var positionDefault = e.positionDefault;\n var tooltipModel = buildTooltipModel([data.getItemModel(dataIndex), dataModel, seriesModel && (seriesModel.coordinateSystem || {}).model], this._tooltipModel, positionDefault ? {\n position: positionDefault\n } : null);\n var tooltipTrigger = tooltipModel.get('trigger');\n\n if (tooltipTrigger != null && tooltipTrigger !== 'item') {\n return;\n }\n\n var params = dataModel.getDataParams(dataIndex, dataType);\n var markupStyleCreator = new TooltipMarkupStyleCreator(); // Pre-create marker style for makers. Users can assemble richText\n // text in `formatter` callback and use those markers style.\n\n params.marker = markupStyleCreator.makeTooltipMarker('item', convertToColorString(params.color), renderMode);\n var seriesTooltipResult = normalizeTooltipFormatResult(dataModel.formatTooltip(dataIndex, false, dataType));\n var orderMode = tooltipModel.get('order');\n var valueFormatter = tooltipModel.get('valueFormatter');\n var frag = seriesTooltipResult.frag;\n var markupText = frag ? buildTooltipMarkup(valueFormatter ? extend({\n valueFormatter: valueFormatter\n }, frag) : frag, markupStyleCreator, renderMode, orderMode, ecModel.get('useUTC'), tooltipModel.get('textStyle')) : seriesTooltipResult.text;\n var asyncTicket = 'item_' + dataModel.name + '_' + dataIndex;\n\n this._showOrMove(tooltipModel, function () {\n this._showTooltipContent(tooltipModel, markupText, params, asyncTicket, e.offsetX, e.offsetY, e.position, e.target, markupStyleCreator);\n }); // FIXME\n // duplicated showtip if manuallyShowTip is called from dispatchAction.\n\n\n dispatchAction({\n type: 'showTip',\n dataIndexInside: dataIndex,\n dataIndex: data.getRawIndex(dataIndex),\n seriesIndex: seriesIndex,\n from: this.uid\n });\n };\n\n TooltipView.prototype._showComponentItemTooltip = function (e, el, dispatchAction) {\n var ecData = getECData(el);\n var tooltipConfig = ecData.tooltipConfig;\n var tooltipOpt = tooltipConfig.option || {};\n\n if (isString(tooltipOpt)) {\n var content = tooltipOpt;\n tooltipOpt = {\n content: content,\n // Fixed formatter\n formatter: content\n };\n }\n\n var tooltipModelCascade = [tooltipOpt];\n\n var cmpt = this._ecModel.getComponent(ecData.componentMainType, ecData.componentIndex);\n\n if (cmpt) {\n tooltipModelCascade.push(cmpt);\n } // In most cases, component tooltip formatter has different params with series tooltip formatter,\n // so that they cannot share the same formatter. Since the global tooltip formatter is used for series\n // by convention, we do not use it as the default formatter for component.\n\n\n tooltipModelCascade.push({\n formatter: tooltipOpt.content\n });\n var positionDefault = e.positionDefault;\n var subTooltipModel = buildTooltipModel(tooltipModelCascade, this._tooltipModel, positionDefault ? {\n position: positionDefault\n } : null);\n var defaultHtml = subTooltipModel.get('content');\n var asyncTicket = Math.random() + ''; // PENDING: this case do not support richText style yet.\n\n var markupStyleCreator = new TooltipMarkupStyleCreator(); // Do not check whether `trigger` is 'none' here, because `trigger`\n // only works on coordinate system. In fact, we have not found case\n // that requires setting `trigger` nothing on component yet.\n\n this._showOrMove(subTooltipModel, function () {\n // Use formatterParams from element defined in component\n // Avoid users modify it.\n var formatterParams = clone(subTooltipModel.get('formatterParams') || {});\n\n this._showTooltipContent(subTooltipModel, defaultHtml, formatterParams, asyncTicket, e.offsetX, e.offsetY, e.position, el, markupStyleCreator);\n }); // If not dispatch showTip, tip may be hide triggered by axis.\n\n\n dispatchAction({\n type: 'showTip',\n from: this.uid\n });\n };\n\n TooltipView.prototype._showTooltipContent = function ( // Use Model insteadof TooltipModel because this model may be from series or other options.\n // Instead of top level tooltip.\n tooltipModel, defaultHtml, params, asyncTicket, x, y, positionExpr, el, markupStyleCreator) {\n // Reset ticket\n this._ticket = '';\n\n if (!tooltipModel.get('showContent') || !tooltipModel.get('show')) {\n return;\n }\n\n var tooltipContent = this._tooltipContent;\n tooltipContent.setEnterable(tooltipModel.get('enterable'));\n var formatter = tooltipModel.get('formatter');\n positionExpr = positionExpr || tooltipModel.get('position');\n var html = defaultHtml;\n\n var nearPoint = this._getNearestPoint([x, y], params, tooltipModel.get('trigger'), tooltipModel.get('borderColor'));\n\n var nearPointColor = nearPoint.color;\n\n if (formatter) {\n if (isString(formatter)) {\n var useUTC = tooltipModel.ecModel.get('useUTC');\n var params0 = isArray(params) ? params[0] : params;\n var isTimeAxis = params0 && params0.axisType && params0.axisType.indexOf('time') >= 0;\n html = formatter;\n\n if (isTimeAxis) {\n html = timeFormat(params0.axisValue, html, useUTC);\n }\n\n html = formatTpl(html, params, true);\n } else if (isFunction(formatter)) {\n var callback = bind(function (cbTicket, html) {\n if (cbTicket === this._ticket) {\n tooltipContent.setContent(html, markupStyleCreator, tooltipModel, nearPointColor, positionExpr);\n\n this._updatePosition(tooltipModel, positionExpr, x, y, tooltipContent, params, el);\n }\n }, this);\n this._ticket = asyncTicket;\n html = formatter(params, asyncTicket, callback);\n } else {\n html = formatter;\n }\n }\n\n tooltipContent.setContent(html, markupStyleCreator, tooltipModel, nearPointColor, positionExpr);\n tooltipContent.show(tooltipModel, nearPointColor);\n\n this._updatePosition(tooltipModel, positionExpr, x, y, tooltipContent, params, el);\n };\n\n TooltipView.prototype._getNearestPoint = function (point, tooltipDataParams, trigger, borderColor) {\n if (trigger === 'axis' || isArray(tooltipDataParams)) {\n return {\n color: borderColor || (this._renderMode === 'html' ? '#fff' : 'none')\n };\n }\n\n if (!isArray(tooltipDataParams)) {\n return {\n color: borderColor || tooltipDataParams.color || tooltipDataParams.borderColor\n };\n }\n };\n\n TooltipView.prototype._updatePosition = function (tooltipModel, positionExpr, x, // Mouse x\n y, // Mouse y\n content, params, el) {\n var viewWidth = this._api.getWidth();\n\n var viewHeight = this._api.getHeight();\n\n positionExpr = positionExpr || tooltipModel.get('position');\n var contentSize = content.getSize();\n var align = tooltipModel.get('align');\n var vAlign = tooltipModel.get('verticalAlign');\n var rect = el && el.getBoundingRect().clone();\n el && rect.applyTransform(el.transform);\n\n if (isFunction(positionExpr)) {\n // Callback of position can be an array or a string specify the position\n positionExpr = positionExpr([x, y], params, content.el, rect, {\n viewSize: [viewWidth, viewHeight],\n contentSize: contentSize.slice()\n });\n }\n\n if (isArray(positionExpr)) {\n x = parsePercent(positionExpr[0], viewWidth);\n y = parsePercent(positionExpr[1], viewHeight);\n } else if (isObject(positionExpr)) {\n var boxLayoutPosition = positionExpr;\n boxLayoutPosition.width = contentSize[0];\n boxLayoutPosition.height = contentSize[1];\n var layoutRect = getLayoutRect(boxLayoutPosition, {\n width: viewWidth,\n height: viewHeight\n });\n x = layoutRect.x;\n y = layoutRect.y;\n align = null; // When positionExpr is left/top/right/bottom,\n // align and verticalAlign will not work.\n\n vAlign = null;\n } // Specify tooltip position by string 'top' 'bottom' 'left' 'right' around graphic element\n else if (isString(positionExpr) && el) {\n var pos = calcTooltipPosition(positionExpr, rect, contentSize, tooltipModel.get('borderWidth'));\n x = pos[0];\n y = pos[1];\n } else {\n var pos = refixTooltipPosition(x, y, content, viewWidth, viewHeight, align ? null : 20, vAlign ? null : 20);\n x = pos[0];\n y = pos[1];\n }\n\n align && (x -= isCenterAlign(align) ? contentSize[0] / 2 : align === 'right' ? contentSize[0] : 0);\n vAlign && (y -= isCenterAlign(vAlign) ? contentSize[1] / 2 : vAlign === 'bottom' ? contentSize[1] : 0);\n\n if (shouldTooltipConfine(tooltipModel)) {\n var pos = confineTooltipPosition(x, y, content, viewWidth, viewHeight);\n x = pos[0];\n y = pos[1];\n }\n\n content.moveTo(x, y);\n }; // FIXME\n // Should we remove this but leave this to user?\n\n\n TooltipView.prototype._updateContentNotChangedOnAxis = function (dataByCoordSys, cbParamsList) {\n var lastCoordSys = this._lastDataByCoordSys;\n var lastCbParamsList = this._cbParamsList;\n var contentNotChanged = !!lastCoordSys && lastCoordSys.length === dataByCoordSys.length;\n contentNotChanged && each(lastCoordSys, function (lastItemCoordSys, indexCoordSys) {\n var lastDataByAxis = lastItemCoordSys.dataByAxis || [];\n var thisItemCoordSys = dataByCoordSys[indexCoordSys] || {};\n var thisDataByAxis = thisItemCoordSys.dataByAxis || [];\n contentNotChanged = contentNotChanged && lastDataByAxis.length === thisDataByAxis.length;\n contentNotChanged && each(lastDataByAxis, function (lastItem, indexAxis) {\n var thisItem = thisDataByAxis[indexAxis] || {};\n var lastIndices = lastItem.seriesDataIndices || [];\n var newIndices = thisItem.seriesDataIndices || [];\n contentNotChanged = contentNotChanged && lastItem.value === thisItem.value && lastItem.axisType === thisItem.axisType && lastItem.axisId === thisItem.axisId && lastIndices.length === newIndices.length;\n contentNotChanged && each(lastIndices, function (lastIdxItem, j) {\n var newIdxItem = newIndices[j];\n contentNotChanged = contentNotChanged && lastIdxItem.seriesIndex === newIdxItem.seriesIndex && lastIdxItem.dataIndex === newIdxItem.dataIndex;\n }); // check is cbParams data value changed\n\n lastCbParamsList && each(lastItem.seriesDataIndices, function (idxItem) {\n var seriesIdx = idxItem.seriesIndex;\n var cbParams = cbParamsList[seriesIdx];\n var lastCbParams = lastCbParamsList[seriesIdx];\n\n if (cbParams && lastCbParams && lastCbParams.data !== cbParams.data) {\n contentNotChanged = false;\n }\n });\n });\n });\n this._lastDataByCoordSys = dataByCoordSys;\n this._cbParamsList = cbParamsList;\n return !!contentNotChanged;\n };\n\n TooltipView.prototype._hide = function (dispatchAction) {\n // Do not directly hideLater here, because this behavior may be prevented\n // in dispatchAction when showTip is dispatched.\n // FIXME\n // duplicated hideTip if manuallyHideTip is called from dispatchAction.\n this._lastDataByCoordSys = null;\n dispatchAction({\n type: 'hideTip',\n from: this.uid\n });\n };\n\n TooltipView.prototype.dispose = function (ecModel, api) {\n if (env.node || !api.getDom()) {\n return;\n }\n\n clear(this, '_updatePosition');\n\n this._tooltipContent.dispose();\n\n globalListener.unregister('itemTooltip', api);\n };\n\n TooltipView.type = 'tooltip';\n return TooltipView;\n}(ComponentView);\n/**\n * From top to bottom. (the last one should be globalTooltipModel);\n */\n\n\nfunction buildTooltipModel(modelCascade, globalTooltipModel, defaultTooltipOption) {\n // Last is always tooltip model.\n var ecModel = globalTooltipModel.ecModel;\n var resultModel;\n\n if (defaultTooltipOption) {\n resultModel = new Model(defaultTooltipOption, ecModel, ecModel);\n resultModel = new Model(globalTooltipModel.option, resultModel, ecModel);\n } else {\n resultModel = globalTooltipModel;\n }\n\n for (var i = modelCascade.length - 1; i >= 0; i--) {\n var tooltipOpt = modelCascade[i];\n\n if (tooltipOpt) {\n if (tooltipOpt instanceof Model) {\n tooltipOpt = tooltipOpt.get('tooltip', true);\n } // In each data item tooltip can be simply write:\n // {\n // value: 10,\n // tooltip: 'Something you need to know'\n // }\n\n\n if (isString(tooltipOpt)) {\n tooltipOpt = {\n formatter: tooltipOpt\n };\n }\n\n if (tooltipOpt) {\n resultModel = new Model(tooltipOpt, resultModel, ecModel);\n }\n }\n }\n\n return resultModel;\n}\n\nfunction makeDispatchAction(payload, api) {\n return payload.dispatchAction || bind(api.dispatchAction, api);\n}\n\nfunction refixTooltipPosition(x, y, content, viewWidth, viewHeight, gapH, gapV) {\n var size = content.getSize();\n var width = size[0];\n var height = size[1];\n\n if (gapH != null) {\n // Add extra 2 pixels for this case:\n // At present the \"values\" in default tooltip are using CSS `float: right`.\n // When the right edge of the tooltip box is on the right side of the\n // viewport, the `float` layout might push the \"values\" to the second line.\n if (x + width + gapH + 2 > viewWidth) {\n x -= width + gapH;\n } else {\n x += gapH;\n }\n }\n\n if (gapV != null) {\n if (y + height + gapV > viewHeight) {\n y -= height + gapV;\n } else {\n y += gapV;\n }\n }\n\n return [x, y];\n}\n\nfunction confineTooltipPosition(x, y, content, viewWidth, viewHeight) {\n var size = content.getSize();\n var width = size[0];\n var height = size[1];\n x = Math.min(x + width, viewWidth) - width;\n y = Math.min(y + height, viewHeight) - height;\n x = Math.max(x, 0);\n y = Math.max(y, 0);\n return [x, y];\n}\n\nfunction calcTooltipPosition(position, rect, contentSize, borderWidth) {\n var domWidth = contentSize[0];\n var domHeight = contentSize[1];\n var offset = Math.ceil(Math.SQRT2 * borderWidth) + 8;\n var x = 0;\n var y = 0;\n var rectWidth = rect.width;\n var rectHeight = rect.height;\n\n switch (position) {\n case 'inside':\n x = rect.x + rectWidth / 2 - domWidth / 2;\n y = rect.y + rectHeight / 2 - domHeight / 2;\n break;\n\n case 'top':\n x = rect.x + rectWidth / 2 - domWidth / 2;\n y = rect.y - domHeight - offset;\n break;\n\n case 'bottom':\n x = rect.x + rectWidth / 2 - domWidth / 2;\n y = rect.y + rectHeight + offset;\n break;\n\n case 'left':\n x = rect.x - domWidth - offset;\n y = rect.y + rectHeight / 2 - domHeight / 2;\n break;\n\n case 'right':\n x = rect.x + rectWidth + offset;\n y = rect.y + rectHeight / 2 - domHeight / 2;\n }\n\n return [x, y];\n}\n\nfunction isCenterAlign(align) {\n return align === 'center' || align === 'middle';\n}\n/**\n * Find target component by payload like:\n * ```js\n * { legendId: 'some_id', name: 'xxx' }\n * { toolboxIndex: 1, name: 'xxx' }\n * { geoName: 'some_name', name: 'xxx' }\n * ```\n * PENDING: at present only\n *\n * If not found, return null/undefined.\n */\n\n\nfunction findComponentReference(payload, ecModel, api) {\n var queryOptionMap = preParseFinder(payload).queryOptionMap;\n var componentMainType = queryOptionMap.keys()[0];\n\n if (!componentMainType || componentMainType === 'series') {\n return;\n }\n\n var queryResult = queryReferringComponents(ecModel, componentMainType, queryOptionMap.get(componentMainType), {\n useDefault: false,\n enableAll: false,\n enableNone: false\n });\n var model = queryResult.models[0];\n\n if (!model) {\n return;\n }\n\n var view = api.getViewOfComponentModel(model);\n var el;\n view.group.traverse(function (subEl) {\n var tooltipConfig = getECData(subEl).tooltipConfig;\n\n if (tooltipConfig && tooltipConfig.name === payload.name) {\n el = subEl;\n return true; // stop\n }\n });\n\n if (el) {\n return {\n componentMainType: componentMainType,\n componentIndex: model.componentIndex,\n el: el\n };\n }\n}\n\nexport default TooltipView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { toCamelCase } from '../../util/format.js';\nimport env from 'zrender/lib/core/env.js';\n/* global document */\n\nexport function shouldTooltipConfine(tooltipModel) {\n var confineOption = tooltipModel.get('confine');\n return confineOption != null ? !!confineOption // In richText mode, the outside part can not be visible.\n : tooltipModel.get('renderMode') === 'richText';\n}\n\nfunction testStyle(styleProps) {\n if (!env.domSupported) {\n return;\n }\n\n var style = document.documentElement.style;\n\n for (var i = 0, len = styleProps.length; i < len; i++) {\n if (styleProps[i] in style) {\n return styleProps[i];\n }\n }\n}\n\nexport var TRANSFORM_VENDOR = testStyle(['transform', 'webkitTransform', 'OTransform', 'MozTransform', 'msTransform']);\nexport var TRANSITION_VENDOR = testStyle(['webkitTransition', 'transition', 'OTransition', 'MozTransition', 'msTransition']);\nexport function toCSSVendorPrefix(styleVendor, styleProp) {\n if (!styleVendor) {\n return styleProp;\n }\n\n styleProp = toCamelCase(styleProp, true);\n var idx = styleVendor.indexOf(styleProp);\n styleVendor = idx === -1 ? styleProp : \"-\" + styleVendor.slice(0, idx) + \"-\" + styleProp;\n return styleVendor.toLowerCase();\n}\nexport function getComputedStyle(el, style) {\n var stl = el.currentStyle || document.defaultView && document.defaultView.getComputedStyle(el);\n return stl ? style ? stl[style] : stl : null;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { install as installAxisPointer } from '../axisPointer/install.js';\nimport { use } from '../../extension.js';\nimport TooltipModel from './TooltipModel.js';\nimport TooltipView from './TooltipView.js';\nimport { noop } from 'zrender/lib/core/util.js';\nexport function install(registers) {\n use(installAxisPointer);\n registers.registerComponentModel(TooltipModel);\n registers.registerComponentView(TooltipView);\n /**\n * @action\n * @property {string} type\n * @property {number} seriesIndex\n * @property {number} dataIndex\n * @property {number} [x]\n * @property {number} [y]\n */\n\n registers.registerAction({\n type: 'showTip',\n event: 'showTip',\n update: 'tooltip:manuallyShowTip'\n }, noop);\n registers.registerAction({\n type: 'hideTip',\n event: 'hideTip',\n update: 'tooltip:manuallyHideTip'\n }, noop);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { trim, isArray, each, reduce } from 'zrender/lib/core/util.js';\nimport { retrieveVisualColorForTooltipMarker, createTooltipMarkup } from './tooltipMarkup.js';\nimport { retrieveRawValue } from '../../data/helper/dataProvider.js';\nimport { isNameSpecified } from '../../util/model.js';\nexport function defaultSeriesFormatTooltip(opt) {\n var series = opt.series;\n var dataIndex = opt.dataIndex;\n var multipleSeries = opt.multipleSeries;\n var data = series.getData();\n var tooltipDims = data.mapDimensionsAll('defaultedTooltip');\n var tooltipDimLen = tooltipDims.length;\n var value = series.getRawValue(dataIndex);\n var isValueArr = isArray(value);\n var markerColor = retrieveVisualColorForTooltipMarker(series, dataIndex); // Complicated rule for pretty tooltip.\n\n var inlineValue;\n var inlineValueType;\n var subBlocks;\n var sortParam;\n\n if (tooltipDimLen > 1 || isValueArr && !tooltipDimLen) {\n var formatArrResult = formatTooltipArrayValue(value, series, dataIndex, tooltipDims, markerColor);\n inlineValue = formatArrResult.inlineValues;\n inlineValueType = formatArrResult.inlineValueTypes;\n subBlocks = formatArrResult.blocks; // Only support tooltip sort by the first inline value. It's enough in most cases.\n\n sortParam = formatArrResult.inlineValues[0];\n } else if (tooltipDimLen) {\n var dimInfo = data.getDimensionInfo(tooltipDims[0]);\n sortParam = inlineValue = retrieveRawValue(data, dataIndex, tooltipDims[0]);\n inlineValueType = dimInfo.type;\n } else {\n sortParam = inlineValue = isValueArr ? value[0] : value;\n } // Do not show generated series name. It might not be readable.\n\n\n var seriesNameSpecified = isNameSpecified(series);\n var seriesName = seriesNameSpecified && series.name || '';\n var itemName = data.getName(dataIndex);\n var inlineName = multipleSeries ? seriesName : itemName;\n return createTooltipMarkup('section', {\n header: seriesName,\n // When series name is not specified, do not show a header line with only '-'.\n // This case always happens in tooltip.trigger: 'item'.\n noHeader: multipleSeries || !seriesNameSpecified,\n sortParam: sortParam,\n blocks: [createTooltipMarkup('nameValue', {\n markerType: 'item',\n markerColor: markerColor,\n // Do not mix display seriesName and itemName in one tooltip,\n // which might confuses users.\n name: inlineName,\n // name dimension might be auto assigned, where the name might\n // be not readable. So we check trim here.\n noName: !trim(inlineName),\n value: inlineValue,\n valueType: inlineValueType\n })].concat(subBlocks || [])\n });\n}\n\nfunction formatTooltipArrayValue(value, series, dataIndex, tooltipDims, colorStr) {\n // check: category-no-encode-has-axis-data in dataset.html\n var data = series.getData();\n var isValueMultipleLine = reduce(value, function (isValueMultipleLine, val, idx) {\n var dimItem = data.getDimensionInfo(idx);\n return isValueMultipleLine = isValueMultipleLine || dimItem && dimItem.tooltip !== false && dimItem.displayName != null;\n }, false);\n var inlineValues = [];\n var inlineValueTypes = [];\n var blocks = [];\n tooltipDims.length ? each(tooltipDims, function (dim) {\n setEachItem(retrieveRawValue(data, dataIndex, dim), dim);\n }) // By default, all dims is used on tooltip.\n : each(value, setEachItem);\n\n function setEachItem(val, dim) {\n var dimInfo = data.getDimensionInfo(dim); // If `dimInfo.tooltip` is not set, show tooltip.\n\n if (!dimInfo || dimInfo.otherDims.tooltip === false) {\n return;\n }\n\n if (isValueMultipleLine) {\n blocks.push(createTooltipMarkup('nameValue', {\n markerType: 'subItem',\n markerColor: colorStr,\n name: dimInfo.displayName,\n value: val,\n valueType: dimInfo.type\n }));\n } else {\n inlineValues.push(val);\n inlineValueTypes.push(dimInfo.type);\n }\n }\n\n return {\n inlineValues: inlineValues,\n inlineValueTypes: inlineValueTypes,\n blocks: blocks\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { getTooltipMarker, encodeHTML, makeValueReadable, convertToColorString } from '../../util/format.js';\nimport { isString, each, hasOwn, isArray, map, assert, extend } from 'zrender/lib/core/util.js';\nimport { SortOrderComparator } from '../../data/helper/dataValueHelper.js';\nimport { getRandomIdBase } from '../../util/number.js';\nvar TOOLTIP_LINE_HEIGHT_CSS = 'line-height:1'; // TODO: more textStyle option\n\nfunction getTooltipTextStyle(textStyle, renderMode) {\n var nameFontColor = textStyle.color || '#6e7079';\n var nameFontSize = textStyle.fontSize || 12;\n var nameFontWeight = textStyle.fontWeight || '400';\n var valueFontColor = textStyle.color || '#464646';\n var valueFontSize = textStyle.fontSize || 14;\n var valueFontWeight = textStyle.fontWeight || '900';\n\n if (renderMode === 'html') {\n // `textStyle` is probably from user input, should be encoded to reduce security risk.\n return {\n // eslint-disable-next-line max-len\n nameStyle: \"font-size:\" + encodeHTML(nameFontSize + '') + \"px;color:\" + encodeHTML(nameFontColor) + \";font-weight:\" + encodeHTML(nameFontWeight + ''),\n // eslint-disable-next-line max-len\n valueStyle: \"font-size:\" + encodeHTML(valueFontSize + '') + \"px;color:\" + encodeHTML(valueFontColor) + \";font-weight:\" + encodeHTML(valueFontWeight + '')\n };\n } else {\n return {\n nameStyle: {\n fontSize: nameFontSize,\n fill: nameFontColor,\n fontWeight: nameFontWeight\n },\n valueStyle: {\n fontSize: valueFontSize,\n fill: valueFontColor,\n fontWeight: valueFontWeight\n }\n };\n }\n} // See `TooltipMarkupLayoutIntent['innerGapLevel']`.\n// (value from UI design)\n\n\nvar HTML_GAPS = [0, 10, 20, 30];\nvar RICH_TEXT_GAPS = ['', '\\n', '\\n\\n', '\\n\\n\\n']; // eslint-disable-next-line max-len\n\nexport function createTooltipMarkup(type, option) {\n option.type = type;\n return option;\n}\n\nfunction isSectionFragment(frag) {\n return frag.type === 'section';\n}\n\nfunction getBuilder(frag) {\n return isSectionFragment(frag) ? buildSection : buildNameValue;\n}\n\nfunction getBlockGapLevel(frag) {\n if (isSectionFragment(frag)) {\n var gapLevel_1 = 0;\n var subBlockLen = frag.blocks.length;\n var hasInnerGap_1 = subBlockLen > 1 || subBlockLen > 0 && !frag.noHeader;\n each(frag.blocks, function (subBlock) {\n var subGapLevel = getBlockGapLevel(subBlock); // If the some of the sub-blocks have some gaps (like 10px) inside, this block\n // should use a larger gap (like 20px) to distinguish those sub-blocks.\n\n if (subGapLevel >= gapLevel_1) {\n gapLevel_1 = subGapLevel + +(hasInnerGap_1 && ( // 0 always can not be readable gap level.\n !subGapLevel // If no header, always keep the sub gap level. Otherwise\n // look weird in case `multipleSeries`.\n || isSectionFragment(subBlock) && !subBlock.noHeader));\n }\n });\n return gapLevel_1;\n }\n\n return 0;\n}\n\nfunction buildSection(ctx, fragment, topMarginForOuterGap, toolTipTextStyle) {\n var noHeader = fragment.noHeader;\n var gaps = getGap(getBlockGapLevel(fragment));\n var subMarkupTextList = [];\n var subBlocks = fragment.blocks || [];\n assert(!subBlocks || isArray(subBlocks));\n subBlocks = subBlocks || [];\n var orderMode = ctx.orderMode;\n\n if (fragment.sortBlocks && orderMode) {\n subBlocks = subBlocks.slice();\n var orderMap = {\n valueAsc: 'asc',\n valueDesc: 'desc'\n };\n\n if (hasOwn(orderMap, orderMode)) {\n var comparator_1 = new SortOrderComparator(orderMap[orderMode], null);\n subBlocks.sort(function (a, b) {\n return comparator_1.evaluate(a.sortParam, b.sortParam);\n });\n } // FIXME 'seriesDesc' necessary?\n else if (orderMode === 'seriesDesc') {\n subBlocks.reverse();\n }\n }\n\n each(subBlocks, function (subBlock, idx) {\n var valueFormatter = fragment.valueFormatter;\n var subMarkupText = getBuilder(subBlock)( // Inherit valueFormatter\n valueFormatter ? extend(extend({}, ctx), {\n valueFormatter: valueFormatter\n }) : ctx, subBlock, idx > 0 ? gaps.html : 0, toolTipTextStyle);\n subMarkupText != null && subMarkupTextList.push(subMarkupText);\n });\n var subMarkupText = ctx.renderMode === 'richText' ? subMarkupTextList.join(gaps.richText) : wrapBlockHTML(subMarkupTextList.join(''), noHeader ? topMarginForOuterGap : gaps.html);\n\n if (noHeader) {\n return subMarkupText;\n }\n\n var displayableHeader = makeValueReadable(fragment.header, 'ordinal', ctx.useUTC);\n var nameStyle = getTooltipTextStyle(toolTipTextStyle, ctx.renderMode).nameStyle;\n\n if (ctx.renderMode === 'richText') {\n return wrapInlineNameRichText(ctx, displayableHeader, nameStyle) + gaps.richText + subMarkupText;\n } else {\n return wrapBlockHTML(\"
\" + encodeHTML(displayableHeader) + '
' + subMarkupText, topMarginForOuterGap);\n }\n}\n\nfunction buildNameValue(ctx, fragment, topMarginForOuterGap, toolTipTextStyle) {\n var renderMode = ctx.renderMode;\n var noName = fragment.noName;\n var noValue = fragment.noValue;\n var noMarker = !fragment.markerType;\n var name = fragment.name;\n var useUTC = ctx.useUTC;\n\n var valueFormatter = fragment.valueFormatter || ctx.valueFormatter || function (value) {\n value = isArray(value) ? value : [value];\n return map(value, function (val, idx) {\n return makeValueReadable(val, isArray(valueTypeOption) ? valueTypeOption[idx] : valueTypeOption, useUTC);\n });\n };\n\n if (noName && noValue) {\n return;\n }\n\n var markerStr = noMarker ? '' : ctx.markupStyleCreator.makeTooltipMarker(fragment.markerType, fragment.markerColor || '#333', renderMode);\n var readableName = noName ? '' : makeValueReadable(name, 'ordinal', useUTC);\n var valueTypeOption = fragment.valueType;\n var readableValueList = noValue ? [] : valueFormatter(fragment.value);\n var valueAlignRight = !noMarker || !noName; // It little weird if only value next to marker but far from marker.\n\n var valueCloseToMarker = !noMarker && noName;\n\n var _a = getTooltipTextStyle(toolTipTextStyle, renderMode),\n nameStyle = _a.nameStyle,\n valueStyle = _a.valueStyle;\n\n return renderMode === 'richText' ? (noMarker ? '' : markerStr) + (noName ? '' : wrapInlineNameRichText(ctx, readableName, nameStyle)) // Value has commas inside, so use ' ' as delimiter for multiple values.\n + (noValue ? '' : wrapInlineValueRichText(ctx, readableValueList, valueAlignRight, valueCloseToMarker, valueStyle)) : wrapBlockHTML((noMarker ? '' : markerStr) + (noName ? '' : wrapInlineNameHTML(readableName, !noMarker, nameStyle)) + (noValue ? '' : wrapInlineValueHTML(readableValueList, valueAlignRight, valueCloseToMarker, valueStyle)), topMarginForOuterGap);\n}\n/**\n * @return markupText. null/undefined means no content.\n */\n\n\nexport function buildTooltipMarkup(fragment, markupStyleCreator, renderMode, orderMode, useUTC, toolTipTextStyle) {\n if (!fragment) {\n return;\n }\n\n var builder = getBuilder(fragment);\n var ctx = {\n useUTC: useUTC,\n renderMode: renderMode,\n orderMode: orderMode,\n markupStyleCreator: markupStyleCreator,\n valueFormatter: fragment.valueFormatter\n };\n return builder(ctx, fragment, 0, toolTipTextStyle);\n}\n\nfunction getGap(gapLevel) {\n return {\n html: HTML_GAPS[gapLevel],\n richText: RICH_TEXT_GAPS[gapLevel]\n };\n}\n\nfunction wrapBlockHTML(encodedContent, topGap) {\n var clearfix = '
';\n var marginCSS = \"margin: \" + topGap + \"px 0 0\";\n return \"
\" + encodedContent + clearfix + '
';\n}\n\nfunction wrapInlineNameHTML(name, leftHasMarker, style) {\n var marginCss = leftHasMarker ? 'margin-left:2px' : '';\n return \"\" + encodeHTML(name) + '';\n}\n\nfunction wrapInlineValueHTML(valueList, alignRight, valueCloseToMarker, style) {\n // Do not too close to marker, considering there are multiple values separated by spaces.\n var paddingStr = valueCloseToMarker ? '10px' : '20px';\n var alignCSS = alignRight ? \"float:right;margin-left:\" + paddingStr : '';\n valueList = isArray(valueList) ? valueList : [valueList];\n return \"\" // Value has commas inside, so use ' ' as delimiter for multiple values.\n + map(valueList, function (value) {\n return encodeHTML(value);\n }).join('  ') + '';\n}\n\nfunction wrapInlineNameRichText(ctx, name, style) {\n return ctx.markupStyleCreator.wrapRichTextStyle(name, style);\n}\n\nfunction wrapInlineValueRichText(ctx, values, alignRight, valueCloseToMarker, style) {\n var styles = [style];\n var paddingLeft = valueCloseToMarker ? 10 : 20;\n alignRight && styles.push({\n padding: [0, 0, 0, paddingLeft],\n align: 'right'\n }); // Value has commas inside, so use ' ' as delimiter for multiple values.\n\n return ctx.markupStyleCreator.wrapRichTextStyle(isArray(values) ? values.join(' ') : values, styles);\n}\n\nexport function retrieveVisualColorForTooltipMarker(series, dataIndex) {\n var style = series.getData().getItemVisual(dataIndex, 'style');\n var color = style[series.visualDrawType];\n return convertToColorString(color);\n}\nexport function getPaddingFromTooltipModel(model, renderMode) {\n var padding = model.get('padding');\n return padding != null ? padding // We give slightly different to look pretty.\n : renderMode === 'richText' ? [8, 10] : 10;\n}\n/**\n * The major feature is generate styles for `renderMode: 'richText'`.\n * But it also serves `renderMode: 'html'` to provide\n * \"renderMode-independent\" API.\n */\n\nvar TooltipMarkupStyleCreator =\n/** @class */\nfunction () {\n function TooltipMarkupStyleCreator() {\n this.richTextStyles = {}; // Notice that \"generate a style name\" usually happens repeatedly when mouse is moving and\n // a tooltip is displayed. So we put the `_nextStyleNameId` as a member of each creator\n // rather than static shared by all creators (which will cause it increase to fast).\n\n this._nextStyleNameId = getRandomIdBase();\n }\n\n TooltipMarkupStyleCreator.prototype._generateStyleName = function () {\n return '__EC_aUTo_' + this._nextStyleNameId++;\n };\n\n TooltipMarkupStyleCreator.prototype.makeTooltipMarker = function (markerType, colorStr, renderMode) {\n var markerId = renderMode === 'richText' ? this._generateStyleName() : null;\n var marker = getTooltipMarker({\n color: colorStr,\n type: markerType,\n renderMode: renderMode,\n markerId: markerId\n });\n\n if (isString(marker)) {\n return marker;\n } else {\n if (process.env.NODE_ENV !== 'production') {\n assert(markerId);\n }\n\n this.richTextStyles[markerId] = marker.style;\n return marker.content;\n }\n };\n /**\n * @usage\n * ```ts\n * const styledText = markupStyleCreator.wrapRichTextStyle([\n * // The styles will be auto merged.\n * {\n * fontSize: 12,\n * color: 'blue'\n * },\n * {\n * padding: 20\n * }\n * ]);\n * ```\n */\n\n\n TooltipMarkupStyleCreator.prototype.wrapRichTextStyle = function (text, styles) {\n var finalStl = {};\n\n if (isArray(styles)) {\n each(styles, function (stl) {\n return extend(finalStl, stl);\n });\n } else {\n extend(finalStl, styles);\n }\n\n var styleName = this._generateStyleName();\n\n this.richTextStyles[styleName] = finalStl;\n return \"{\" + styleName + \"|\" + text + \"}\";\n };\n\n return TooltipMarkupStyleCreator;\n}();\n\nexport { TooltipMarkupStyleCreator };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { parseConditionalExpression } from '../../util/conditionalExpression.js';\nimport { hasOwn, createHashMap } from 'zrender/lib/core/util.js';\nimport { makePrintable, throwError } from '../../util/log.js';\nexport var filterTransform = {\n type: 'echarts:filter',\n // PENDING: enhance to filter by index rather than create new data\n transform: function (params) {\n // [Caveat] Fail-Fast:\n // Do not return the whole dataset unless user config indicates it explicitly.\n // For example, if no condition is specified by mistake, returning an empty result\n // is better than returning the entire raw source for the user to find the mistake.\n var upstream = params.upstream;\n var rawItem;\n var condition = parseConditionalExpression(params.config, {\n valueGetterAttrMap: createHashMap({\n dimension: true\n }),\n prepareGetValue: function (exprOption) {\n var errMsg = '';\n var dimLoose = exprOption.dimension;\n\n if (!hasOwn(exprOption, 'dimension')) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = makePrintable('Relation condition must has prop \"dimension\" specified.', 'Illegal condition:', exprOption);\n }\n\n throwError(errMsg);\n }\n\n var dimInfo = upstream.getDimensionInfo(dimLoose);\n\n if (!dimInfo) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = makePrintable('Can not find dimension info via: ' + dimLoose + '.\\n', 'Existing dimensions: ', upstream.cloneAllDimensionInfo(), '.\\n', 'Illegal condition:', exprOption, '.\\n');\n }\n\n throwError(errMsg);\n }\n\n return {\n dimIdx: dimInfo.index\n };\n },\n getValue: function (param) {\n return upstream.retrieveValueFromItem(rawItem, param.dimIdx);\n }\n });\n var resultData = [];\n\n for (var i = 0, len = upstream.count(); i < len; i++) {\n rawItem = upstream.getRawDataItem(i);\n\n if (condition.evaluate()) {\n resultData.push(rawItem);\n }\n }\n\n return {\n data: resultData\n };\n }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { filterTransform } from './filterTransform.js';\nimport { sortTransform } from './sortTransform.js';\nexport function install(registers) {\n registers.registerTransform(filterTransform);\n registers.registerTransform(sortTransform);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { SOURCE_FORMAT_ARRAY_ROWS, SOURCE_FORMAT_OBJECT_ROWS } from '../../util/types.js';\nimport { makePrintable, throwError } from '../../util/log.js';\nimport { each } from 'zrender/lib/core/util.js';\nimport { normalizeToArray } from '../../util/model.js';\nimport { getRawValueParser, SortOrderComparator } from '../../data/helper/dataValueHelper.js';\nvar sampleLog = '';\n\nif (process.env.NODE_ENV !== 'production') {\n sampleLog = ['Valid config is like:', '{ dimension: \"age\", order: \"asc\" }', 'or [{ dimension: \"age\", order: \"asc\"], { dimension: \"date\", order: \"desc\" }]'].join(' ');\n}\n\nexport var sortTransform = {\n type: 'echarts:sort',\n transform: function (params) {\n var upstream = params.upstream;\n var config = params.config;\n var errMsg = ''; // Normalize\n // const orderExprList: OrderExpression[] = isArray(config[0])\n // ? config as OrderExpression[]\n // : [config as OrderExpression];\n\n var orderExprList = normalizeToArray(config);\n\n if (!orderExprList.length) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = 'Empty `config` in sort transform.';\n }\n\n throwError(errMsg);\n }\n\n var orderDefList = [];\n each(orderExprList, function (orderExpr) {\n var dimLoose = orderExpr.dimension;\n var order = orderExpr.order;\n var parserName = orderExpr.parser;\n var incomparable = orderExpr.incomparable;\n\n if (dimLoose == null) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = 'Sort transform config must has \"dimension\" specified.' + sampleLog;\n }\n\n throwError(errMsg);\n }\n\n if (order !== 'asc' && order !== 'desc') {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = 'Sort transform config must has \"order\" specified.' + sampleLog;\n }\n\n throwError(errMsg);\n }\n\n if (incomparable && incomparable !== 'min' && incomparable !== 'max') {\n var errMsg_1 = '';\n\n if (process.env.NODE_ENV !== 'production') {\n errMsg_1 = 'incomparable must be \"min\" or \"max\" rather than \"' + incomparable + '\".';\n }\n\n throwError(errMsg_1);\n }\n\n if (order !== 'asc' && order !== 'desc') {\n var errMsg_2 = '';\n\n if (process.env.NODE_ENV !== 'production') {\n errMsg_2 = 'order must be \"asc\" or \"desc\" rather than \"' + order + '\".';\n }\n\n throwError(errMsg_2);\n }\n\n var dimInfo = upstream.getDimensionInfo(dimLoose);\n\n if (!dimInfo) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = makePrintable('Can not find dimension info via: ' + dimLoose + '.\\n', 'Existing dimensions: ', upstream.cloneAllDimensionInfo(), '.\\n', 'Illegal config:', orderExpr, '.\\n');\n }\n\n throwError(errMsg);\n }\n\n var parser = parserName ? getRawValueParser(parserName) : null;\n\n if (parserName && !parser) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = makePrintable('Invalid parser name ' + parserName + '.\\n', 'Illegal config:', orderExpr, '.\\n');\n }\n\n throwError(errMsg);\n }\n\n orderDefList.push({\n dimIdx: dimInfo.index,\n parser: parser,\n comparator: new SortOrderComparator(order, incomparable)\n });\n }); // TODO: support it?\n\n var sourceFormat = upstream.sourceFormat;\n\n if (sourceFormat !== SOURCE_FORMAT_ARRAY_ROWS && sourceFormat !== SOURCE_FORMAT_OBJECT_ROWS) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = 'sourceFormat \"' + sourceFormat + '\" is not supported yet';\n }\n\n throwError(errMsg);\n } // Other upstream format are all array.\n\n\n var resultData = [];\n\n for (var i = 0, len = upstream.count(); i < len; i++) {\n resultData.push(upstream.getRawDataItem(i));\n }\n\n resultData.sort(function (item0, item1) {\n for (var i = 0; i < orderDefList.length; i++) {\n var orderDef = orderDefList[i];\n var val0 = upstream.retrieveValueFromItem(item0, orderDef.dimIdx);\n var val1 = upstream.retrieveValueFromItem(item1, orderDef.dimIdx);\n\n if (orderDef.parser) {\n val0 = orderDef.parser(val0);\n val1 = orderDef.parser(val1);\n }\n\n var result = orderDef.comparator.evaluate(val0, val1);\n\n if (result !== 0) {\n return result;\n }\n }\n\n return 0;\n });\n return {\n data: resultData\n };\n }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport VisualMapModel from './VisualMapModel.js';\nimport * as numberUtil from '../../util/number.js';\nimport { inheritDefaultOption } from '../../util/component.js'; // Constant\n\nvar DEFAULT_BAR_BOUND = [20, 140];\n\nvar ContinuousModel =\n/** @class */\nfunction (_super) {\n __extends(ContinuousModel, _super);\n\n function ContinuousModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = ContinuousModel.type;\n return _this;\n }\n /**\n * @override\n */\n\n\n ContinuousModel.prototype.optionUpdated = function (newOption, isInit) {\n _super.prototype.optionUpdated.apply(this, arguments);\n\n this.resetExtent();\n this.resetVisual(function (mappingOption) {\n mappingOption.mappingMethod = 'linear';\n mappingOption.dataExtent = this.getExtent();\n });\n\n this._resetRange();\n };\n /**\n * @protected\n * @override\n */\n\n\n ContinuousModel.prototype.resetItemSize = function () {\n _super.prototype.resetItemSize.apply(this, arguments);\n\n var itemSize = this.itemSize;\n (itemSize[0] == null || isNaN(itemSize[0])) && (itemSize[0] = DEFAULT_BAR_BOUND[0]);\n (itemSize[1] == null || isNaN(itemSize[1])) && (itemSize[1] = DEFAULT_BAR_BOUND[1]);\n };\n /**\n * @private\n */\n\n\n ContinuousModel.prototype._resetRange = function () {\n var dataExtent = this.getExtent();\n var range = this.option.range;\n\n if (!range || range.auto) {\n // `range` should always be array (so we don't use other\n // value like 'auto') for user-friend. (consider getOption).\n dataExtent.auto = 1;\n this.option.range = dataExtent;\n } else if (zrUtil.isArray(range)) {\n if (range[0] > range[1]) {\n range.reverse();\n }\n\n range[0] = Math.max(range[0], dataExtent[0]);\n range[1] = Math.min(range[1], dataExtent[1]);\n }\n };\n /**\n * @protected\n * @override\n */\n\n\n ContinuousModel.prototype.completeVisualOption = function () {\n _super.prototype.completeVisualOption.apply(this, arguments);\n\n zrUtil.each(this.stateList, function (state) {\n var symbolSize = this.option.controller[state].symbolSize;\n\n if (symbolSize && symbolSize[0] !== symbolSize[1]) {\n symbolSize[0] = symbolSize[1] / 3; // For good looking.\n }\n }, this);\n };\n /**\n * @override\n */\n\n\n ContinuousModel.prototype.setSelected = function (selected) {\n this.option.range = selected.slice();\n\n this._resetRange();\n };\n /**\n * @public\n */\n\n\n ContinuousModel.prototype.getSelected = function () {\n var dataExtent = this.getExtent();\n var dataInterval = numberUtil.asc((this.get('range') || []).slice()); // Clamp\n\n dataInterval[0] > dataExtent[1] && (dataInterval[0] = dataExtent[1]);\n dataInterval[1] > dataExtent[1] && (dataInterval[1] = dataExtent[1]);\n dataInterval[0] < dataExtent[0] && (dataInterval[0] = dataExtent[0]);\n dataInterval[1] < dataExtent[0] && (dataInterval[1] = dataExtent[0]);\n return dataInterval;\n };\n /**\n * @override\n */\n\n\n ContinuousModel.prototype.getValueState = function (value) {\n var range = this.option.range;\n var dataExtent = this.getExtent(); // When range[0] === dataExtent[0], any value larger than dataExtent[0] maps to 'inRange'.\n // range[1] is processed likewise.\n\n return (range[0] <= dataExtent[0] || range[0] <= value) && (range[1] >= dataExtent[1] || value <= range[1]) ? 'inRange' : 'outOfRange';\n };\n\n ContinuousModel.prototype.findTargetDataIndices = function (range) {\n var result = [];\n this.eachTargetSeries(function (seriesModel) {\n var dataIndices = [];\n var data = seriesModel.getData();\n data.each(this.getDataDimensionIndex(data), function (value, dataIndex) {\n range[0] <= value && value <= range[1] && dataIndices.push(dataIndex);\n }, this);\n result.push({\n seriesId: seriesModel.id,\n dataIndex: dataIndices\n });\n }, this);\n return result;\n };\n /**\n * @implement\n */\n\n\n ContinuousModel.prototype.getVisualMeta = function (getColorVisual) {\n var oVals = getColorStopValues(this, 'outOfRange', this.getExtent());\n var iVals = getColorStopValues(this, 'inRange', this.option.range.slice());\n var stops = [];\n\n function setStop(value, valueState) {\n stops.push({\n value: value,\n color: getColorVisual(value, valueState)\n });\n } // Format to: outOfRange -- inRange -- outOfRange.\n\n\n var iIdx = 0;\n var oIdx = 0;\n var iLen = iVals.length;\n var oLen = oVals.length;\n\n for (; oIdx < oLen && (!iVals.length || oVals[oIdx] <= iVals[0]); oIdx++) {\n // If oVal[oIdx] === iVals[iIdx], oVal[oIdx] should be ignored.\n if (oVals[oIdx] < iVals[iIdx]) {\n setStop(oVals[oIdx], 'outOfRange');\n }\n }\n\n for (var first = 1; iIdx < iLen; iIdx++, first = 0) {\n // If range is full, value beyond min, max will be clamped.\n // make a singularity\n first && stops.length && setStop(iVals[iIdx], 'outOfRange');\n setStop(iVals[iIdx], 'inRange');\n }\n\n for (var first = 1; oIdx < oLen; oIdx++) {\n if (!iVals.length || iVals[iVals.length - 1] < oVals[oIdx]) {\n // make a singularity\n if (first) {\n stops.length && setStop(stops[stops.length - 1].value, 'outOfRange');\n first = 0;\n }\n\n setStop(oVals[oIdx], 'outOfRange');\n }\n }\n\n var stopsLen = stops.length;\n return {\n stops: stops,\n outerColors: [stopsLen ? stops[0].color : 'transparent', stopsLen ? stops[stopsLen - 1].color : 'transparent']\n };\n };\n\n ContinuousModel.type = 'visualMap.continuous';\n ContinuousModel.defaultOption = inheritDefaultOption(VisualMapModel.defaultOption, {\n align: 'auto',\n calculable: false,\n hoverLink: true,\n realtime: true,\n handleIcon: 'path://M-11.39,9.77h0a3.5,3.5,0,0,1-3.5,3.5h-22a3.5,3.5,0,0,1-3.5-3.5h0a3.5,3.5,0,0,1,3.5-3.5h22A3.5,3.5,0,0,1-11.39,9.77Z',\n handleSize: '120%',\n handleStyle: {\n borderColor: '#fff',\n borderWidth: 1\n },\n indicatorIcon: 'circle',\n indicatorSize: '50%',\n indicatorStyle: {\n borderColor: '#fff',\n borderWidth: 2,\n shadowBlur: 2,\n shadowOffsetX: 1,\n shadowOffsetY: 1,\n shadowColor: 'rgba(0,0,0,0.2)'\n } // emphasis: {\n // handleStyle: {\n // shadowBlur: 3,\n // shadowOffsetX: 1,\n // shadowOffsetY: 1,\n // shadowColor: 'rgba(0,0,0,0.2)'\n // }\n // }\n\n });\n return ContinuousModel;\n}(VisualMapModel);\n\nfunction getColorStopValues(visualMapModel, valueState, dataExtent) {\n if (dataExtent[0] === dataExtent[1]) {\n return dataExtent.slice();\n } // When using colorHue mapping, it is not linear color any more.\n // Moreover, canvas gradient seems not to be accurate linear.\n // FIXME\n // Should be arbitrary value 100? or based on pixel size?\n\n\n var count = 200;\n var step = (dataExtent[1] - dataExtent[0]) / count;\n var value = dataExtent[0];\n var stopValues = [];\n\n for (var i = 0; i <= count && value < dataExtent[1]; i++) {\n stopValues.push(value);\n value += step;\n }\n\n stopValues.push(dataExtent[1]);\n return stopValues;\n}\n\nexport default ContinuousModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport LinearGradient from 'zrender/lib/graphic/LinearGradient.js';\nimport * as eventTool from 'zrender/lib/core/event.js';\nimport VisualMapView from './VisualMapView.js';\nimport * as graphic from '../../util/graphic.js';\nimport * as numberUtil from '../../util/number.js';\nimport sliderMove from '../helper/sliderMove.js';\nimport * as helper from './helper.js';\nimport * as modelUtil from '../../util/model.js';\nimport { parsePercent } from 'zrender/lib/contain/text.js';\nimport { setAsHighDownDispatcher } from '../../util/states.js';\nimport { createSymbol } from '../../util/symbol.js';\nimport ZRImage from 'zrender/lib/graphic/Image.js';\nimport { getECData } from '../../util/innerStore.js';\nimport { createTextStyle } from '../../label/labelStyle.js';\nimport { findEventDispatcher } from '../../util/event.js';\nvar linearMap = numberUtil.linearMap;\nvar each = zrUtil.each;\nvar mathMin = Math.min;\nvar mathMax = Math.max; // Arbitrary value\n\nvar HOVER_LINK_SIZE = 12;\nvar HOVER_LINK_OUT = 6; // Notice:\n// Any \"interval\" should be by the order of [low, high].\n// \"handle0\" (handleIndex === 0) maps to\n// low data value: this._dataInterval[0] and has low coord.\n// \"handle1\" (handleIndex === 1) maps to\n// high data value: this._dataInterval[1] and has high coord.\n// The logic of transform is implemented in this._createBarGroup.\n\nvar ContinuousView =\n/** @class */\nfunction (_super) {\n __extends(ContinuousView, _super);\n\n function ContinuousView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = ContinuousView.type;\n _this._shapes = {};\n _this._dataInterval = [];\n _this._handleEnds = [];\n _this._hoverLinkDataIndices = [];\n return _this;\n }\n\n ContinuousView.prototype.doRender = function (visualMapModel, ecModel, api, payload) {\n this._api = api;\n\n if (!payload || payload.type !== 'selectDataRange' || payload.from !== this.uid) {\n this._buildView();\n }\n };\n\n ContinuousView.prototype._buildView = function () {\n this.group.removeAll();\n var visualMapModel = this.visualMapModel;\n var thisGroup = this.group;\n this._orient = visualMapModel.get('orient');\n this._useHandle = visualMapModel.get('calculable');\n\n this._resetInterval();\n\n this._renderBar(thisGroup);\n\n var dataRangeText = visualMapModel.get('text');\n\n this._renderEndsText(thisGroup, dataRangeText, 0);\n\n this._renderEndsText(thisGroup, dataRangeText, 1); // Do this for background size calculation.\n\n\n this._updateView(true); // After updating view, inner shapes is built completely,\n // and then background can be rendered.\n\n\n this.renderBackground(thisGroup); // Real update view\n\n this._updateView();\n\n this._enableHoverLinkToSeries();\n\n this._enableHoverLinkFromSeries();\n\n this.positionGroup(thisGroup);\n };\n\n ContinuousView.prototype._renderEndsText = function (group, dataRangeText, endsIndex) {\n if (!dataRangeText) {\n return;\n } // Compatible with ec2, text[0] map to high value, text[1] map low value.\n\n\n var text = dataRangeText[1 - endsIndex];\n text = text != null ? text + '' : '';\n var visualMapModel = this.visualMapModel;\n var textGap = visualMapModel.get('textGap');\n var itemSize = visualMapModel.itemSize;\n var barGroup = this._shapes.mainGroup;\n\n var position = this._applyTransform([itemSize[0] / 2, endsIndex === 0 ? -textGap : itemSize[1] + textGap], barGroup);\n\n var align = this._applyTransform(endsIndex === 0 ? 'bottom' : 'top', barGroup);\n\n var orient = this._orient;\n var textStyleModel = this.visualMapModel.textStyleModel;\n this.group.add(new graphic.Text({\n style: createTextStyle(textStyleModel, {\n x: position[0],\n y: position[1],\n verticalAlign: orient === 'horizontal' ? 'middle' : align,\n align: orient === 'horizontal' ? align : 'center',\n text: text\n })\n }));\n };\n\n ContinuousView.prototype._renderBar = function (targetGroup) {\n var visualMapModel = this.visualMapModel;\n var shapes = this._shapes;\n var itemSize = visualMapModel.itemSize;\n var orient = this._orient;\n var useHandle = this._useHandle;\n var itemAlign = helper.getItemAlign(visualMapModel, this.api, itemSize);\n\n var mainGroup = shapes.mainGroup = this._createBarGroup(itemAlign);\n\n var gradientBarGroup = new graphic.Group();\n mainGroup.add(gradientBarGroup); // Bar\n\n gradientBarGroup.add(shapes.outOfRange = createPolygon());\n gradientBarGroup.add(shapes.inRange = createPolygon(null, useHandle ? getCursor(this._orient) : null, zrUtil.bind(this._dragHandle, this, 'all', false), zrUtil.bind(this._dragHandle, this, 'all', true))); // A border radius clip.\n\n gradientBarGroup.setClipPath(new graphic.Rect({\n shape: {\n x: 0,\n y: 0,\n width: itemSize[0],\n height: itemSize[1],\n r: 3\n }\n }));\n var textRect = visualMapModel.textStyleModel.getTextRect('国');\n var textSize = mathMax(textRect.width, textRect.height); // Handle\n\n if (useHandle) {\n shapes.handleThumbs = [];\n shapes.handleLabels = [];\n shapes.handleLabelPoints = [];\n\n this._createHandle(visualMapModel, mainGroup, 0, itemSize, textSize, orient);\n\n this._createHandle(visualMapModel, mainGroup, 1, itemSize, textSize, orient);\n }\n\n this._createIndicator(visualMapModel, mainGroup, itemSize, textSize, orient);\n\n targetGroup.add(mainGroup);\n };\n\n ContinuousView.prototype._createHandle = function (visualMapModel, mainGroup, handleIndex, itemSize, textSize, orient) {\n var onDrift = zrUtil.bind(this._dragHandle, this, handleIndex, false);\n var onDragEnd = zrUtil.bind(this._dragHandle, this, handleIndex, true);\n var handleSize = parsePercent(visualMapModel.get('handleSize'), itemSize[0]);\n var handleThumb = createSymbol(visualMapModel.get('handleIcon'), -handleSize / 2, -handleSize / 2, handleSize, handleSize, null, true);\n var cursor = getCursor(this._orient);\n handleThumb.attr({\n cursor: cursor,\n draggable: true,\n drift: onDrift,\n ondragend: onDragEnd,\n onmousemove: function (e) {\n eventTool.stop(e.event);\n }\n });\n handleThumb.x = itemSize[0] / 2;\n handleThumb.useStyle(visualMapModel.getModel('handleStyle').getItemStyle());\n handleThumb.setStyle({\n strokeNoScale: true,\n strokeFirst: true\n });\n handleThumb.style.lineWidth *= 2;\n handleThumb.ensureState('emphasis').style = visualMapModel.getModel(['emphasis', 'handleStyle']).getItemStyle();\n setAsHighDownDispatcher(handleThumb, true);\n mainGroup.add(handleThumb); // Text is always horizontal layout but should not be effected by\n // transform (orient/inverse). So label is built separately but not\n // use zrender/graphic/helper/RectText, and is located based on view\n // group (according to handleLabelPoint) but not barGroup.\n\n var textStyleModel = this.visualMapModel.textStyleModel;\n var handleLabel = new graphic.Text({\n cursor: cursor,\n draggable: true,\n drift: onDrift,\n onmousemove: function (e) {\n // For mobile device, prevent screen slider on the button.\n eventTool.stop(e.event);\n },\n ondragend: onDragEnd,\n style: createTextStyle(textStyleModel, {\n x: 0,\n y: 0,\n text: ''\n })\n });\n handleLabel.ensureState('blur').style = {\n opacity: 0.1\n };\n handleLabel.stateTransition = {\n duration: 200\n };\n this.group.add(handleLabel);\n var handleLabelPoint = [handleSize, 0];\n var shapes = this._shapes;\n shapes.handleThumbs[handleIndex] = handleThumb;\n shapes.handleLabelPoints[handleIndex] = handleLabelPoint;\n shapes.handleLabels[handleIndex] = handleLabel;\n };\n\n ContinuousView.prototype._createIndicator = function (visualMapModel, mainGroup, itemSize, textSize, orient) {\n var scale = parsePercent(visualMapModel.get('indicatorSize'), itemSize[0]);\n var indicator = createSymbol(visualMapModel.get('indicatorIcon'), -scale / 2, -scale / 2, scale, scale, null, true);\n indicator.attr({\n cursor: 'move',\n invisible: true,\n silent: true,\n x: itemSize[0] / 2\n });\n var indicatorStyle = visualMapModel.getModel('indicatorStyle').getItemStyle();\n\n if (indicator instanceof ZRImage) {\n var pathStyle = indicator.style;\n indicator.useStyle(zrUtil.extend({\n // TODO other properties like x, y ?\n image: pathStyle.image,\n x: pathStyle.x,\n y: pathStyle.y,\n width: pathStyle.width,\n height: pathStyle.height\n }, indicatorStyle));\n } else {\n indicator.useStyle(indicatorStyle);\n }\n\n mainGroup.add(indicator);\n var textStyleModel = this.visualMapModel.textStyleModel;\n var indicatorLabel = new graphic.Text({\n silent: true,\n invisible: true,\n style: createTextStyle(textStyleModel, {\n x: 0,\n y: 0,\n text: ''\n })\n });\n this.group.add(indicatorLabel);\n var indicatorLabelPoint = [(orient === 'horizontal' ? textSize / 2 : HOVER_LINK_OUT) + itemSize[0] / 2, 0];\n var shapes = this._shapes;\n shapes.indicator = indicator;\n shapes.indicatorLabel = indicatorLabel;\n shapes.indicatorLabelPoint = indicatorLabelPoint;\n this._firstShowIndicator = true;\n };\n\n ContinuousView.prototype._dragHandle = function (handleIndex, isEnd, // dx is event from ondragend if isEnd is true. It's not used\n dx, dy) {\n if (!this._useHandle) {\n return;\n }\n\n this._dragging = !isEnd;\n\n if (!isEnd) {\n // Transform dx, dy to bar coordination.\n var vertex = this._applyTransform([dx, dy], this._shapes.mainGroup, true);\n\n this._updateInterval(handleIndex, vertex[1]);\n\n this._hideIndicator(); // Considering realtime, update view should be executed\n // before dispatch action.\n\n\n this._updateView();\n } // dragEnd do not dispatch action when realtime.\n\n\n if (isEnd === !this.visualMapModel.get('realtime')) {\n // jshint ignore:line\n this.api.dispatchAction({\n type: 'selectDataRange',\n from: this.uid,\n visualMapId: this.visualMapModel.id,\n selected: this._dataInterval.slice()\n });\n }\n\n if (isEnd) {\n !this._hovering && this._clearHoverLinkToSeries();\n } else if (useHoverLinkOnHandle(this.visualMapModel)) {\n this._doHoverLinkToSeries(this._handleEnds[handleIndex], false);\n }\n };\n\n ContinuousView.prototype._resetInterval = function () {\n var visualMapModel = this.visualMapModel;\n var dataInterval = this._dataInterval = visualMapModel.getSelected();\n var dataExtent = visualMapModel.getExtent();\n var sizeExtent = [0, visualMapModel.itemSize[1]];\n this._handleEnds = [linearMap(dataInterval[0], dataExtent, sizeExtent, true), linearMap(dataInterval[1], dataExtent, sizeExtent, true)];\n };\n /**\n * @private\n * @param {(number|string)} handleIndex 0 or 1 or 'all'\n * @param {number} dx\n * @param {number} dy\n */\n\n\n ContinuousView.prototype._updateInterval = function (handleIndex, delta) {\n delta = delta || 0;\n var visualMapModel = this.visualMapModel;\n var handleEnds = this._handleEnds;\n var sizeExtent = [0, visualMapModel.itemSize[1]];\n sliderMove(delta, handleEnds, sizeExtent, handleIndex, // cross is forbidden\n 0);\n var dataExtent = visualMapModel.getExtent(); // Update data interval.\n\n this._dataInterval = [linearMap(handleEnds[0], sizeExtent, dataExtent, true), linearMap(handleEnds[1], sizeExtent, dataExtent, true)];\n };\n\n ContinuousView.prototype._updateView = function (forSketch) {\n var visualMapModel = this.visualMapModel;\n var dataExtent = visualMapModel.getExtent();\n var shapes = this._shapes;\n var outOfRangeHandleEnds = [0, visualMapModel.itemSize[1]];\n var inRangeHandleEnds = forSketch ? outOfRangeHandleEnds : this._handleEnds;\n\n var visualInRange = this._createBarVisual(this._dataInterval, dataExtent, inRangeHandleEnds, 'inRange');\n\n var visualOutOfRange = this._createBarVisual(dataExtent, dataExtent, outOfRangeHandleEnds, 'outOfRange');\n\n shapes.inRange.setStyle({\n fill: visualInRange.barColor // opacity: visualInRange.opacity\n\n }).setShape('points', visualInRange.barPoints);\n shapes.outOfRange.setStyle({\n fill: visualOutOfRange.barColor // opacity: visualOutOfRange.opacity\n\n }).setShape('points', visualOutOfRange.barPoints);\n\n this._updateHandle(inRangeHandleEnds, visualInRange);\n };\n\n ContinuousView.prototype._createBarVisual = function (dataInterval, dataExtent, handleEnds, forceState) {\n var opts = {\n forceState: forceState,\n convertOpacityToAlpha: true\n };\n\n var colorStops = this._makeColorGradient(dataInterval, opts);\n\n var symbolSizes = [this.getControllerVisual(dataInterval[0], 'symbolSize', opts), this.getControllerVisual(dataInterval[1], 'symbolSize', opts)];\n\n var barPoints = this._createBarPoints(handleEnds, symbolSizes);\n\n return {\n barColor: new LinearGradient(0, 0, 0, 1, colorStops),\n barPoints: barPoints,\n handlesColor: [colorStops[0].color, colorStops[colorStops.length - 1].color]\n };\n };\n\n ContinuousView.prototype._makeColorGradient = function (dataInterval, opts) {\n // Considering colorHue, which is not linear, so we have to sample\n // to calculate gradient color stops, but not only calculate head\n // and tail.\n var sampleNumber = 100; // Arbitrary value.\n\n var colorStops = [];\n var step = (dataInterval[1] - dataInterval[0]) / sampleNumber;\n colorStops.push({\n color: this.getControllerVisual(dataInterval[0], 'color', opts),\n offset: 0\n });\n\n for (var i = 1; i < sampleNumber; i++) {\n var currValue = dataInterval[0] + step * i;\n\n if (currValue > dataInterval[1]) {\n break;\n }\n\n colorStops.push({\n color: this.getControllerVisual(currValue, 'color', opts),\n offset: i / sampleNumber\n });\n }\n\n colorStops.push({\n color: this.getControllerVisual(dataInterval[1], 'color', opts),\n offset: 1\n });\n return colorStops;\n };\n\n ContinuousView.prototype._createBarPoints = function (handleEnds, symbolSizes) {\n var itemSize = this.visualMapModel.itemSize;\n return [[itemSize[0] - symbolSizes[0], handleEnds[0]], [itemSize[0], handleEnds[0]], [itemSize[0], handleEnds[1]], [itemSize[0] - symbolSizes[1], handleEnds[1]]];\n };\n\n ContinuousView.prototype._createBarGroup = function (itemAlign) {\n var orient = this._orient;\n var inverse = this.visualMapModel.get('inverse');\n return new graphic.Group(orient === 'horizontal' && !inverse ? {\n scaleX: itemAlign === 'bottom' ? 1 : -1,\n rotation: Math.PI / 2\n } : orient === 'horizontal' && inverse ? {\n scaleX: itemAlign === 'bottom' ? -1 : 1,\n rotation: -Math.PI / 2\n } : orient === 'vertical' && !inverse ? {\n scaleX: itemAlign === 'left' ? 1 : -1,\n scaleY: -1\n } : {\n scaleX: itemAlign === 'left' ? 1 : -1\n });\n };\n\n ContinuousView.prototype._updateHandle = function (handleEnds, visualInRange) {\n if (!this._useHandle) {\n return;\n }\n\n var shapes = this._shapes;\n var visualMapModel = this.visualMapModel;\n var handleThumbs = shapes.handleThumbs;\n var handleLabels = shapes.handleLabels;\n var itemSize = visualMapModel.itemSize;\n var dataExtent = visualMapModel.getExtent();\n each([0, 1], function (handleIndex) {\n var handleThumb = handleThumbs[handleIndex];\n handleThumb.setStyle('fill', visualInRange.handlesColor[handleIndex]);\n handleThumb.y = handleEnds[handleIndex];\n var val = linearMap(handleEnds[handleIndex], [0, itemSize[1]], dataExtent, true);\n var symbolSize = this.getControllerVisual(val, 'symbolSize');\n handleThumb.scaleX = handleThumb.scaleY = symbolSize / itemSize[0];\n handleThumb.x = itemSize[0] - symbolSize / 2; // Update handle label position.\n\n var textPoint = graphic.applyTransform(shapes.handleLabelPoints[handleIndex], graphic.getTransform(handleThumb, this.group));\n handleLabels[handleIndex].setStyle({\n x: textPoint[0],\n y: textPoint[1],\n text: visualMapModel.formatValueText(this._dataInterval[handleIndex]),\n verticalAlign: 'middle',\n align: this._orient === 'vertical' ? this._applyTransform('left', shapes.mainGroup) : 'center'\n });\n }, this);\n };\n\n ContinuousView.prototype._showIndicator = function (cursorValue, textValue, rangeSymbol, halfHoverLinkSize) {\n var visualMapModel = this.visualMapModel;\n var dataExtent = visualMapModel.getExtent();\n var itemSize = visualMapModel.itemSize;\n var sizeExtent = [0, itemSize[1]];\n var shapes = this._shapes;\n var indicator = shapes.indicator;\n\n if (!indicator) {\n return;\n }\n\n indicator.attr('invisible', false);\n var opts = {\n convertOpacityToAlpha: true\n };\n var color = this.getControllerVisual(cursorValue, 'color', opts);\n var symbolSize = this.getControllerVisual(cursorValue, 'symbolSize');\n var y = linearMap(cursorValue, dataExtent, sizeExtent, true);\n var x = itemSize[0] - symbolSize / 2;\n var oldIndicatorPos = {\n x: indicator.x,\n y: indicator.y\n }; // Update handle label position.\n\n indicator.y = y;\n indicator.x = x;\n var textPoint = graphic.applyTransform(shapes.indicatorLabelPoint, graphic.getTransform(indicator, this.group));\n var indicatorLabel = shapes.indicatorLabel;\n indicatorLabel.attr('invisible', false);\n\n var align = this._applyTransform('left', shapes.mainGroup);\n\n var orient = this._orient;\n var isHorizontal = orient === 'horizontal';\n indicatorLabel.setStyle({\n text: (rangeSymbol ? rangeSymbol : '') + visualMapModel.formatValueText(textValue),\n verticalAlign: isHorizontal ? align : 'middle',\n align: isHorizontal ? 'center' : align\n });\n var indicatorNewProps = {\n x: x,\n y: y,\n style: {\n fill: color\n }\n };\n var labelNewProps = {\n style: {\n x: textPoint[0],\n y: textPoint[1]\n }\n };\n\n if (visualMapModel.ecModel.isAnimationEnabled() && !this._firstShowIndicator) {\n var animationCfg = {\n duration: 100,\n easing: 'cubicInOut',\n additive: true\n };\n indicator.x = oldIndicatorPos.x;\n indicator.y = oldIndicatorPos.y;\n indicator.animateTo(indicatorNewProps, animationCfg);\n indicatorLabel.animateTo(labelNewProps, animationCfg);\n } else {\n indicator.attr(indicatorNewProps);\n indicatorLabel.attr(labelNewProps);\n }\n\n this._firstShowIndicator = false;\n var handleLabels = this._shapes.handleLabels;\n\n if (handleLabels) {\n for (var i = 0; i < handleLabels.length; i++) {\n // Fade out handle labels.\n // NOTE: Must use api enter/leave on emphasis/blur/select state. Or the global states manager will change it.\n this._api.enterBlur(handleLabels[i]);\n }\n }\n };\n\n ContinuousView.prototype._enableHoverLinkToSeries = function () {\n var self = this;\n\n this._shapes.mainGroup.on('mousemove', function (e) {\n self._hovering = true;\n\n if (!self._dragging) {\n var itemSize = self.visualMapModel.itemSize;\n\n var pos = self._applyTransform([e.offsetX, e.offsetY], self._shapes.mainGroup, true, true); // For hover link show when hover handle, which might be\n // below or upper than sizeExtent.\n\n\n pos[1] = mathMin(mathMax(0, pos[1]), itemSize[1]);\n\n self._doHoverLinkToSeries(pos[1], 0 <= pos[0] && pos[0] <= itemSize[0]);\n }\n }).on('mouseout', function () {\n // When mouse is out of handle, hoverLink still need\n // to be displayed when realtime is set as false.\n self._hovering = false;\n !self._dragging && self._clearHoverLinkToSeries();\n });\n };\n\n ContinuousView.prototype._enableHoverLinkFromSeries = function () {\n var zr = this.api.getZr();\n\n if (this.visualMapModel.option.hoverLink) {\n zr.on('mouseover', this._hoverLinkFromSeriesMouseOver, this);\n zr.on('mouseout', this._hideIndicator, this);\n } else {\n this._clearHoverLinkFromSeries();\n }\n };\n\n ContinuousView.prototype._doHoverLinkToSeries = function (cursorPos, hoverOnBar) {\n var visualMapModel = this.visualMapModel;\n var itemSize = visualMapModel.itemSize;\n\n if (!visualMapModel.option.hoverLink) {\n return;\n }\n\n var sizeExtent = [0, itemSize[1]];\n var dataExtent = visualMapModel.getExtent(); // For hover link show when hover handle, which might be below or upper than sizeExtent.\n\n cursorPos = mathMin(mathMax(sizeExtent[0], cursorPos), sizeExtent[1]);\n var halfHoverLinkSize = getHalfHoverLinkSize(visualMapModel, dataExtent, sizeExtent);\n var hoverRange = [cursorPos - halfHoverLinkSize, cursorPos + halfHoverLinkSize];\n var cursorValue = linearMap(cursorPos, sizeExtent, dataExtent, true);\n var valueRange = [linearMap(hoverRange[0], sizeExtent, dataExtent, true), linearMap(hoverRange[1], sizeExtent, dataExtent, true)]; // Consider data range is out of visualMap range, see test/visualMap-continuous.html,\n // where china and india has very large population.\n\n hoverRange[0] < sizeExtent[0] && (valueRange[0] = -Infinity);\n hoverRange[1] > sizeExtent[1] && (valueRange[1] = Infinity); // Do not show indicator when mouse is over handle,\n // otherwise labels overlap, especially when dragging.\n\n if (hoverOnBar) {\n if (valueRange[0] === -Infinity) {\n this._showIndicator(cursorValue, valueRange[1], '< ', halfHoverLinkSize);\n } else if (valueRange[1] === Infinity) {\n this._showIndicator(cursorValue, valueRange[0], '> ', halfHoverLinkSize);\n } else {\n this._showIndicator(cursorValue, cursorValue, '≈ ', halfHoverLinkSize);\n }\n } // When realtime is set as false, handles, which are in barGroup,\n // also trigger hoverLink, which help user to realize where they\n // focus on when dragging. (see test/heatmap-large.html)\n // When realtime is set as true, highlight will not show when hover\n // handle, because the label on handle, which displays a exact value\n // but not range, might mislead users.\n\n\n var oldBatch = this._hoverLinkDataIndices;\n var newBatch = [];\n\n if (hoverOnBar || useHoverLinkOnHandle(visualMapModel)) {\n newBatch = this._hoverLinkDataIndices = visualMapModel.findTargetDataIndices(valueRange);\n }\n\n var resultBatches = modelUtil.compressBatches(oldBatch, newBatch);\n\n this._dispatchHighDown('downplay', helper.makeHighDownBatch(resultBatches[0], visualMapModel));\n\n this._dispatchHighDown('highlight', helper.makeHighDownBatch(resultBatches[1], visualMapModel));\n };\n\n ContinuousView.prototype._hoverLinkFromSeriesMouseOver = function (e) {\n var ecData;\n findEventDispatcher(e.target, function (target) {\n var currECData = getECData(target);\n\n if (currECData.dataIndex != null) {\n ecData = currECData;\n return true;\n }\n }, true);\n\n if (!ecData) {\n return;\n }\n\n var dataModel = this.ecModel.getSeriesByIndex(ecData.seriesIndex);\n var visualMapModel = this.visualMapModel;\n\n if (!visualMapModel.isTargetSeries(dataModel)) {\n return;\n }\n\n var data = dataModel.getData(ecData.dataType);\n var value = data.getStore().get(visualMapModel.getDataDimensionIndex(data), ecData.dataIndex);\n\n if (!isNaN(value)) {\n this._showIndicator(value, value);\n }\n };\n\n ContinuousView.prototype._hideIndicator = function () {\n var shapes = this._shapes;\n shapes.indicator && shapes.indicator.attr('invisible', true);\n shapes.indicatorLabel && shapes.indicatorLabel.attr('invisible', true);\n var handleLabels = this._shapes.handleLabels;\n\n if (handleLabels) {\n for (var i = 0; i < handleLabels.length; i++) {\n // Fade out handle labels.\n // NOTE: Must use api enter/leave on emphasis/blur/select state. Or the global states manager will change it.\n this._api.leaveBlur(handleLabels[i]);\n }\n }\n };\n\n ContinuousView.prototype._clearHoverLinkToSeries = function () {\n this._hideIndicator();\n\n var indices = this._hoverLinkDataIndices;\n\n this._dispatchHighDown('downplay', helper.makeHighDownBatch(indices, this.visualMapModel));\n\n indices.length = 0;\n };\n\n ContinuousView.prototype._clearHoverLinkFromSeries = function () {\n this._hideIndicator();\n\n var zr = this.api.getZr();\n zr.off('mouseover', this._hoverLinkFromSeriesMouseOver);\n zr.off('mouseout', this._hideIndicator);\n };\n\n ContinuousView.prototype._applyTransform = function (vertex, element, inverse, global) {\n var transform = graphic.getTransform(element, global ? null : this.group);\n return zrUtil.isArray(vertex) ? graphic.applyTransform(vertex, transform, inverse) : graphic.transformDirection(vertex, transform, inverse);\n }; // TODO: TYPE more specified payload types.\n\n\n ContinuousView.prototype._dispatchHighDown = function (type, batch) {\n batch && batch.length && this.api.dispatchAction({\n type: type,\n batch: batch\n });\n };\n /**\n * @override\n */\n\n\n ContinuousView.prototype.dispose = function () {\n this._clearHoverLinkFromSeries();\n\n this._clearHoverLinkToSeries();\n };\n /**\n * @override\n */\n\n\n ContinuousView.prototype.remove = function () {\n this._clearHoverLinkFromSeries();\n\n this._clearHoverLinkToSeries();\n };\n\n ContinuousView.type = 'visualMap.continuous';\n return ContinuousView;\n}(VisualMapView);\n\nfunction createPolygon(points, cursor, onDrift, onDragEnd) {\n return new graphic.Polygon({\n shape: {\n points: points\n },\n draggable: !!onDrift,\n cursor: cursor,\n drift: onDrift,\n onmousemove: function (e) {\n // For mobile device, prevent screen slider on the button.\n eventTool.stop(e.event);\n },\n ondragend: onDragEnd\n });\n}\n\nfunction getHalfHoverLinkSize(visualMapModel, dataExtent, sizeExtent) {\n var halfHoverLinkSize = HOVER_LINK_SIZE / 2;\n var hoverLinkDataSize = visualMapModel.get('hoverLinkDataSize');\n\n if (hoverLinkDataSize) {\n halfHoverLinkSize = linearMap(hoverLinkDataSize, dataExtent, sizeExtent, true) / 2;\n }\n\n return halfHoverLinkSize;\n}\n\nfunction useHoverLinkOnHandle(visualMapModel) {\n var hoverLinkOnHandle = visualMapModel.get('hoverLinkOnHandle');\n return !!(hoverLinkOnHandle == null ? visualMapModel.get('realtime') : hoverLinkOnHandle);\n}\n\nfunction getCursor(orient) {\n return orient === 'vertical' ? 'ns-resize' : 'ew-resize';\n}\n\nexport default ContinuousView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport VisualMapModel from './VisualMapModel.js';\nimport VisualMapping from '../../visual/VisualMapping.js';\nimport visualDefault from '../../visual/visualDefault.js';\nimport { reformIntervals } from '../../util/number.js';\nimport { inheritDefaultOption } from '../../util/component.js';\n\nvar PiecewiseModel =\n/** @class */\nfunction (_super) {\n __extends(PiecewiseModel, _super);\n\n function PiecewiseModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = PiecewiseModel.type;\n /**\n * The order is always [low, ..., high].\n * [{text: string, interval: Array.}, ...]\n */\n\n _this._pieceList = [];\n return _this;\n }\n\n PiecewiseModel.prototype.optionUpdated = function (newOption, isInit) {\n _super.prototype.optionUpdated.apply(this, arguments);\n\n this.resetExtent();\n\n var mode = this._mode = this._determineMode();\n\n this._pieceList = [];\n\n resetMethods[this._mode].call(this, this._pieceList);\n\n this._resetSelected(newOption, isInit);\n\n var categories = this.option.categories;\n this.resetVisual(function (mappingOption, state) {\n if (mode === 'categories') {\n mappingOption.mappingMethod = 'category';\n mappingOption.categories = zrUtil.clone(categories);\n } else {\n mappingOption.dataExtent = this.getExtent();\n mappingOption.mappingMethod = 'piecewise';\n mappingOption.pieceList = zrUtil.map(this._pieceList, function (piece) {\n piece = zrUtil.clone(piece);\n\n if (state !== 'inRange') {\n // FIXME\n // outOfRange do not support special visual in pieces.\n piece.visual = null;\n }\n\n return piece;\n });\n }\n });\n };\n /**\n * @protected\n * @override\n */\n\n\n PiecewiseModel.prototype.completeVisualOption = function () {\n // Consider this case:\n // visualMap: {\n // pieces: [{symbol: 'circle', lt: 0}, {symbol: 'rect', gte: 0}]\n // }\n // where no inRange/outOfRange set but only pieces. So we should make\n // default inRange/outOfRange for this case, otherwise visuals that only\n // appear in `pieces` will not be taken into account in visual encoding.\n var option = this.option;\n var visualTypesInPieces = {};\n var visualTypes = VisualMapping.listVisualTypes();\n var isCategory = this.isCategory();\n zrUtil.each(option.pieces, function (piece) {\n zrUtil.each(visualTypes, function (visualType) {\n if (piece.hasOwnProperty(visualType)) {\n visualTypesInPieces[visualType] = 1;\n }\n });\n });\n zrUtil.each(visualTypesInPieces, function (v, visualType) {\n var exists = false;\n zrUtil.each(this.stateList, function (state) {\n exists = exists || has(option, state, visualType) || has(option.target, state, visualType);\n }, this);\n !exists && zrUtil.each(this.stateList, function (state) {\n (option[state] || (option[state] = {}))[visualType] = visualDefault.get(visualType, state === 'inRange' ? 'active' : 'inactive', isCategory);\n });\n }, this);\n\n function has(obj, state, visualType) {\n return obj && obj[state] && obj[state].hasOwnProperty(visualType);\n }\n\n _super.prototype.completeVisualOption.apply(this, arguments);\n };\n\n PiecewiseModel.prototype._resetSelected = function (newOption, isInit) {\n var thisOption = this.option;\n var pieceList = this._pieceList; // Selected do not merge but all override.\n\n var selected = (isInit ? thisOption : newOption).selected || {};\n thisOption.selected = selected; // Consider 'not specified' means true.\n\n zrUtil.each(pieceList, function (piece, index) {\n var key = this.getSelectedMapKey(piece);\n\n if (!selected.hasOwnProperty(key)) {\n selected[key] = true;\n }\n }, this);\n\n if (thisOption.selectedMode === 'single') {\n // Ensure there is only one selected.\n var hasSel_1 = false;\n zrUtil.each(pieceList, function (piece, index) {\n var key = this.getSelectedMapKey(piece);\n\n if (selected[key]) {\n hasSel_1 ? selected[key] = false : hasSel_1 = true;\n }\n }, this);\n } // thisOption.selectedMode === 'multiple', default: all selected.\n\n };\n /**\n * @public\n */\n\n\n PiecewiseModel.prototype.getItemSymbol = function () {\n return this.get('itemSymbol');\n };\n /**\n * @public\n */\n\n\n PiecewiseModel.prototype.getSelectedMapKey = function (piece) {\n return this._mode === 'categories' ? piece.value + '' : piece.index + '';\n };\n /**\n * @public\n */\n\n\n PiecewiseModel.prototype.getPieceList = function () {\n return this._pieceList;\n };\n /**\n * @return {string}\n */\n\n\n PiecewiseModel.prototype._determineMode = function () {\n var option = this.option;\n return option.pieces && option.pieces.length > 0 ? 'pieces' : this.option.categories ? 'categories' : 'splitNumber';\n };\n /**\n * @override\n */\n\n\n PiecewiseModel.prototype.setSelected = function (selected) {\n this.option.selected = zrUtil.clone(selected);\n };\n /**\n * @override\n */\n\n\n PiecewiseModel.prototype.getValueState = function (value) {\n var index = VisualMapping.findPieceIndex(value, this._pieceList);\n return index != null ? this.option.selected[this.getSelectedMapKey(this._pieceList[index])] ? 'inRange' : 'outOfRange' : 'outOfRange';\n };\n /**\n * @public\n * @param pieceIndex piece index in visualMapModel.getPieceList()\n */\n\n\n PiecewiseModel.prototype.findTargetDataIndices = function (pieceIndex) {\n var result = [];\n var pieceList = this._pieceList;\n this.eachTargetSeries(function (seriesModel) {\n var dataIndices = [];\n var data = seriesModel.getData();\n data.each(this.getDataDimensionIndex(data), function (value, dataIndex) {\n // Should always base on model pieceList, because it is order sensitive.\n var pIdx = VisualMapping.findPieceIndex(value, pieceList);\n pIdx === pieceIndex && dataIndices.push(dataIndex);\n }, this);\n result.push({\n seriesId: seriesModel.id,\n dataIndex: dataIndices\n });\n }, this);\n return result;\n };\n /**\n * @private\n * @param piece piece.value or piece.interval is required.\n * @return Can be Infinity or -Infinity\n */\n\n\n PiecewiseModel.prototype.getRepresentValue = function (piece) {\n var representValue;\n\n if (this.isCategory()) {\n representValue = piece.value;\n } else {\n if (piece.value != null) {\n representValue = piece.value;\n } else {\n var pieceInterval = piece.interval || [];\n representValue = pieceInterval[0] === -Infinity && pieceInterval[1] === Infinity ? 0 : (pieceInterval[0] + pieceInterval[1]) / 2;\n }\n }\n\n return representValue;\n };\n\n PiecewiseModel.prototype.getVisualMeta = function (getColorVisual) {\n // Do not support category. (category axis is ordinal, numerical)\n if (this.isCategory()) {\n return;\n }\n\n var stops = [];\n var outerColors = ['', ''];\n var visualMapModel = this;\n\n function setStop(interval, valueState) {\n var representValue = visualMapModel.getRepresentValue({\n interval: interval\n }); // Not category\n\n if (!valueState) {\n valueState = visualMapModel.getValueState(representValue);\n }\n\n var color = getColorVisual(representValue, valueState);\n\n if (interval[0] === -Infinity) {\n outerColors[0] = color;\n } else if (interval[1] === Infinity) {\n outerColors[1] = color;\n } else {\n stops.push({\n value: interval[0],\n color: color\n }, {\n value: interval[1],\n color: color\n });\n }\n } // Suplement\n\n\n var pieceList = this._pieceList.slice();\n\n if (!pieceList.length) {\n pieceList.push({\n interval: [-Infinity, Infinity]\n });\n } else {\n var edge = pieceList[0].interval[0];\n edge !== -Infinity && pieceList.unshift({\n interval: [-Infinity, edge]\n });\n edge = pieceList[pieceList.length - 1].interval[1];\n edge !== Infinity && pieceList.push({\n interval: [edge, Infinity]\n });\n }\n\n var curr = -Infinity;\n zrUtil.each(pieceList, function (piece) {\n var interval = piece.interval;\n\n if (interval) {\n // Fulfill gap.\n interval[0] > curr && setStop([curr, interval[0]], 'outOfRange');\n setStop(interval.slice());\n curr = interval[1];\n }\n }, this);\n return {\n stops: stops,\n outerColors: outerColors\n };\n };\n\n PiecewiseModel.type = 'visualMap.piecewise';\n PiecewiseModel.defaultOption = inheritDefaultOption(VisualMapModel.defaultOption, {\n selected: null,\n minOpen: false,\n maxOpen: false,\n align: 'auto',\n itemWidth: 20,\n itemHeight: 14,\n itemSymbol: 'roundRect',\n pieces: null,\n categories: null,\n splitNumber: 5,\n selectedMode: 'multiple',\n itemGap: 10,\n hoverLink: true // Enable hover highlight.\n\n });\n return PiecewiseModel;\n}(VisualMapModel);\n\n;\n/**\n * Key is this._mode\n * @type {Object}\n * @this {module:echarts/component/viusalMap/PiecewiseMode}\n */\n\nvar resetMethods = {\n splitNumber: function (outPieceList) {\n var thisOption = this.option;\n var precision = Math.min(thisOption.precision, 20);\n var dataExtent = this.getExtent();\n var splitNumber = thisOption.splitNumber;\n splitNumber = Math.max(parseInt(splitNumber, 10), 1);\n thisOption.splitNumber = splitNumber;\n var splitStep = (dataExtent[1] - dataExtent[0]) / splitNumber; // Precision auto-adaption\n\n while (+splitStep.toFixed(precision) !== splitStep && precision < 5) {\n precision++;\n }\n\n thisOption.precision = precision;\n splitStep = +splitStep.toFixed(precision);\n\n if (thisOption.minOpen) {\n outPieceList.push({\n interval: [-Infinity, dataExtent[0]],\n close: [0, 0]\n });\n }\n\n for (var index = 0, curr = dataExtent[0]; index < splitNumber; curr += splitStep, index++) {\n var max = index === splitNumber - 1 ? dataExtent[1] : curr + splitStep;\n outPieceList.push({\n interval: [curr, max],\n close: [1, 1]\n });\n }\n\n if (thisOption.maxOpen) {\n outPieceList.push({\n interval: [dataExtent[1], Infinity],\n close: [0, 0]\n });\n }\n\n reformIntervals(outPieceList);\n zrUtil.each(outPieceList, function (piece, index) {\n piece.index = index;\n piece.text = this.formatValueText(piece.interval);\n }, this);\n },\n categories: function (outPieceList) {\n var thisOption = this.option;\n zrUtil.each(thisOption.categories, function (cate) {\n // FIXME category模式也使用pieceList,但在visualMapping中不是使用pieceList。\n // 是否改一致。\n outPieceList.push({\n text: this.formatValueText(cate, true),\n value: cate\n });\n }, this); // See \"Order Rule\".\n\n normalizeReverse(thisOption, outPieceList);\n },\n pieces: function (outPieceList) {\n var thisOption = this.option;\n zrUtil.each(thisOption.pieces, function (pieceListItem, index) {\n if (!zrUtil.isObject(pieceListItem)) {\n pieceListItem = {\n value: pieceListItem\n };\n }\n\n var item = {\n text: '',\n index: index\n };\n\n if (pieceListItem.label != null) {\n item.text = pieceListItem.label;\n }\n\n if (pieceListItem.hasOwnProperty('value')) {\n var value = item.value = pieceListItem.value;\n item.interval = [value, value];\n item.close = [1, 1];\n } else {\n // `min` `max` is legacy option.\n // `lt` `gt` `lte` `gte` is recommended.\n var interval = item.interval = [];\n var close_1 = item.close = [0, 0];\n var closeList = [1, 0, 1];\n var infinityList = [-Infinity, Infinity];\n var useMinMax = [];\n\n for (var lg = 0; lg < 2; lg++) {\n var names = [['gte', 'gt', 'min'], ['lte', 'lt', 'max']][lg];\n\n for (var i = 0; i < 3 && interval[lg] == null; i++) {\n interval[lg] = pieceListItem[names[i]];\n close_1[lg] = closeList[i];\n useMinMax[lg] = i === 2;\n }\n\n interval[lg] == null && (interval[lg] = infinityList[lg]);\n }\n\n useMinMax[0] && interval[1] === Infinity && (close_1[0] = 0);\n useMinMax[1] && interval[0] === -Infinity && (close_1[1] = 0);\n\n if (process.env.NODE_ENV !== 'production') {\n if (interval[0] > interval[1]) {\n console.warn('Piece ' + index + 'is illegal: ' + interval + ' lower bound should not greater then uppper bound.');\n }\n }\n\n if (interval[0] === interval[1] && close_1[0] && close_1[1]) {\n // Consider: [{min: 5, max: 5, visual: {...}}, {min: 0, max: 5}],\n // we use value to lift the priority when min === max\n item.value = interval[0];\n }\n }\n\n item.visual = VisualMapping.retrieveVisuals(pieceListItem);\n outPieceList.push(item);\n }, this); // See \"Order Rule\".\n\n normalizeReverse(thisOption, outPieceList); // Only pieces\n\n reformIntervals(outPieceList);\n zrUtil.each(outPieceList, function (piece) {\n var close = piece.close;\n var edgeSymbols = [['<', '≤'][close[1]], ['>', '≥'][close[0]]];\n piece.text = piece.text || this.formatValueText(piece.value != null ? piece.value : piece.interval, false, edgeSymbols);\n }, this);\n }\n};\n\nfunction normalizeReverse(thisOption, pieceList) {\n var inverse = thisOption.inverse;\n\n if (thisOption.orient === 'vertical' ? !inverse : inverse) {\n pieceList.reverse();\n }\n}\n\nexport default PiecewiseModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport VisualMapView from './VisualMapView.js';\nimport * as graphic from '../../util/graphic.js';\nimport { createSymbol } from '../../util/symbol.js';\nimport * as layout from '../../util/layout.js';\nimport * as helper from './helper.js';\nimport { createTextStyle } from '../../label/labelStyle.js';\n\nvar PiecewiseVisualMapView =\n/** @class */\nfunction (_super) {\n __extends(PiecewiseVisualMapView, _super);\n\n function PiecewiseVisualMapView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = PiecewiseVisualMapView.type;\n return _this;\n }\n\n PiecewiseVisualMapView.prototype.doRender = function () {\n var thisGroup = this.group;\n thisGroup.removeAll();\n var visualMapModel = this.visualMapModel;\n var textGap = visualMapModel.get('textGap');\n var textStyleModel = visualMapModel.textStyleModel;\n var textFont = textStyleModel.getFont();\n var textFill = textStyleModel.getTextColor();\n\n var itemAlign = this._getItemAlign();\n\n var itemSize = visualMapModel.itemSize;\n\n var viewData = this._getViewData();\n\n var endsText = viewData.endsText;\n var showLabel = zrUtil.retrieve(visualMapModel.get('showLabel', true), !endsText);\n endsText && this._renderEndsText(thisGroup, endsText[0], itemSize, showLabel, itemAlign);\n zrUtil.each(viewData.viewPieceList, function (item) {\n var piece = item.piece;\n var itemGroup = new graphic.Group();\n itemGroup.onclick = zrUtil.bind(this._onItemClick, this, piece);\n\n this._enableHoverLink(itemGroup, item.indexInModelPieceList); // TODO Category\n\n\n var representValue = visualMapModel.getRepresentValue(piece);\n\n this._createItemSymbol(itemGroup, representValue, [0, 0, itemSize[0], itemSize[1]]);\n\n if (showLabel) {\n var visualState = this.visualMapModel.getValueState(representValue);\n itemGroup.add(new graphic.Text({\n style: {\n x: itemAlign === 'right' ? -textGap : itemSize[0] + textGap,\n y: itemSize[1] / 2,\n text: piece.text,\n verticalAlign: 'middle',\n align: itemAlign,\n font: textFont,\n fill: textFill,\n opacity: visualState === 'outOfRange' ? 0.5 : 1\n }\n }));\n }\n\n thisGroup.add(itemGroup);\n }, this);\n endsText && this._renderEndsText(thisGroup, endsText[1], itemSize, showLabel, itemAlign);\n layout.box(visualMapModel.get('orient'), thisGroup, visualMapModel.get('itemGap'));\n this.renderBackground(thisGroup);\n this.positionGroup(thisGroup);\n };\n\n PiecewiseVisualMapView.prototype._enableHoverLink = function (itemGroup, pieceIndex) {\n var _this = this;\n\n itemGroup.on('mouseover', function () {\n return onHoverLink('highlight');\n }).on('mouseout', function () {\n return onHoverLink('downplay');\n });\n\n var onHoverLink = function (method) {\n var visualMapModel = _this.visualMapModel; // TODO: TYPE More detailed action types\n\n visualMapModel.option.hoverLink && _this.api.dispatchAction({\n type: method,\n batch: helper.makeHighDownBatch(visualMapModel.findTargetDataIndices(pieceIndex), visualMapModel)\n });\n };\n };\n\n PiecewiseVisualMapView.prototype._getItemAlign = function () {\n var visualMapModel = this.visualMapModel;\n var modelOption = visualMapModel.option;\n\n if (modelOption.orient === 'vertical') {\n return helper.getItemAlign(visualMapModel, this.api, visualMapModel.itemSize);\n } else {\n // horizontal, most case left unless specifying right.\n var align = modelOption.align;\n\n if (!align || align === 'auto') {\n align = 'left';\n }\n\n return align;\n }\n };\n\n PiecewiseVisualMapView.prototype._renderEndsText = function (group, text, itemSize, showLabel, itemAlign) {\n if (!text) {\n return;\n }\n\n var itemGroup = new graphic.Group();\n var textStyleModel = this.visualMapModel.textStyleModel;\n itemGroup.add(new graphic.Text({\n style: createTextStyle(textStyleModel, {\n x: showLabel ? itemAlign === 'right' ? itemSize[0] : 0 : itemSize[0] / 2,\n y: itemSize[1] / 2,\n verticalAlign: 'middle',\n align: showLabel ? itemAlign : 'center',\n text: text\n })\n }));\n group.add(itemGroup);\n };\n /**\n * @private\n * @return {Object} {peiceList, endsText} The order is the same as screen pixel order.\n */\n\n\n PiecewiseVisualMapView.prototype._getViewData = function () {\n var visualMapModel = this.visualMapModel;\n var viewPieceList = zrUtil.map(visualMapModel.getPieceList(), function (piece, index) {\n return {\n piece: piece,\n indexInModelPieceList: index\n };\n });\n var endsText = visualMapModel.get('text'); // Consider orient and inverse.\n\n var orient = visualMapModel.get('orient');\n var inverse = visualMapModel.get('inverse'); // Order of model pieceList is always [low, ..., high]\n\n if (orient === 'horizontal' ? inverse : !inverse) {\n viewPieceList.reverse();\n } // Origin order of endsText is [high, low]\n else if (endsText) {\n endsText = endsText.slice().reverse();\n }\n\n return {\n viewPieceList: viewPieceList,\n endsText: endsText\n };\n };\n\n PiecewiseVisualMapView.prototype._createItemSymbol = function (group, representValue, shapeParam) {\n group.add(createSymbol( // symbol will be string\n this.getControllerVisual(representValue, 'symbol'), shapeParam[0], shapeParam[1], shapeParam[2], shapeParam[3], // color will be string\n this.getControllerVisual(representValue, 'color')));\n };\n\n PiecewiseVisualMapView.prototype._onItemClick = function (piece) {\n var visualMapModel = this.visualMapModel;\n var option = visualMapModel.option;\n var selectedMode = option.selectedMode;\n\n if (!selectedMode) {\n return;\n }\n\n var selected = zrUtil.clone(option.selected);\n var newKey = visualMapModel.getSelectedMapKey(piece);\n\n if (selectedMode === 'single' || selectedMode === true) {\n selected[newKey] = true;\n zrUtil.each(selected, function (o, key) {\n selected[key] = key === newKey;\n });\n } else {\n selected[newKey] = !selected[newKey];\n }\n\n this.api.dispatchAction({\n type: 'selectDataRange',\n from: this.uid,\n visualMapId: this.visualMapModel.id,\n selected: selected\n });\n };\n\n PiecewiseVisualMapView.type = 'visualMap.piecewise';\n return PiecewiseVisualMapView;\n}(VisualMapView);\n\nexport default PiecewiseVisualMapView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport visualDefault from '../../visual/visualDefault.js';\nimport VisualMapping from '../../visual/VisualMapping.js';\nimport * as visualSolution from '../../visual/visualSolution.js';\nimport * as modelUtil from '../../util/model.js';\nimport * as numberUtil from '../../util/number.js';\nimport ComponentModel from '../../model/Component.js';\nvar mapVisual = VisualMapping.mapVisual;\nvar eachVisual = VisualMapping.eachVisual;\nvar isArray = zrUtil.isArray;\nvar each = zrUtil.each;\nvar asc = numberUtil.asc;\nvar linearMap = numberUtil.linearMap;\n\nvar VisualMapModel =\n/** @class */\nfunction (_super) {\n __extends(VisualMapModel, _super);\n\n function VisualMapModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = VisualMapModel.type;\n _this.stateList = ['inRange', 'outOfRange'];\n _this.replacableOptionKeys = ['inRange', 'outOfRange', 'target', 'controller', 'color'];\n _this.layoutMode = {\n type: 'box',\n ignoreSize: true\n };\n /**\n * [lowerBound, upperBound]\n */\n\n _this.dataBound = [-Infinity, Infinity];\n _this.targetVisuals = {};\n _this.controllerVisuals = {};\n return _this;\n }\n\n VisualMapModel.prototype.init = function (option, parentModel, ecModel) {\n this.mergeDefaultAndTheme(option, ecModel);\n };\n /**\n * @protected\n */\n\n\n VisualMapModel.prototype.optionUpdated = function (newOption, isInit) {\n var thisOption = this.option;\n !isInit && visualSolution.replaceVisualOption(thisOption, newOption, this.replacableOptionKeys);\n this.textStyleModel = this.getModel('textStyle');\n this.resetItemSize();\n this.completeVisualOption();\n };\n /**\n * @protected\n */\n\n\n VisualMapModel.prototype.resetVisual = function (supplementVisualOption) {\n var stateList = this.stateList;\n supplementVisualOption = zrUtil.bind(supplementVisualOption, this);\n this.controllerVisuals = visualSolution.createVisualMappings(this.option.controller, stateList, supplementVisualOption);\n this.targetVisuals = visualSolution.createVisualMappings(this.option.target, stateList, supplementVisualOption);\n };\n /**\n * @public\n */\n\n\n VisualMapModel.prototype.getItemSymbol = function () {\n return null;\n };\n /**\n * @protected\n * @return {Array.} An array of series indices.\n */\n\n\n VisualMapModel.prototype.getTargetSeriesIndices = function () {\n var optionSeriesIndex = this.option.seriesIndex;\n var seriesIndices = [];\n\n if (optionSeriesIndex == null || optionSeriesIndex === 'all') {\n this.ecModel.eachSeries(function (seriesModel, index) {\n seriesIndices.push(index);\n });\n } else {\n seriesIndices = modelUtil.normalizeToArray(optionSeriesIndex);\n }\n\n return seriesIndices;\n };\n /**\n * @public\n */\n\n\n VisualMapModel.prototype.eachTargetSeries = function (callback, context) {\n zrUtil.each(this.getTargetSeriesIndices(), function (seriesIndex) {\n var seriesModel = this.ecModel.getSeriesByIndex(seriesIndex);\n\n if (seriesModel) {\n callback.call(context, seriesModel);\n }\n }, this);\n };\n /**\n * @pubilc\n */\n\n\n VisualMapModel.prototype.isTargetSeries = function (seriesModel) {\n var is = false;\n this.eachTargetSeries(function (model) {\n model === seriesModel && (is = true);\n });\n return is;\n };\n /**\n * @example\n * this.formatValueText(someVal); // format single numeric value to text.\n * this.formatValueText(someVal, true); // format single category value to text.\n * this.formatValueText([min, max]); // format numeric min-max to text.\n * this.formatValueText([this.dataBound[0], max]); // using data lower bound.\n * this.formatValueText([min, this.dataBound[1]]); // using data upper bound.\n *\n * @param value Real value, or this.dataBound[0 or 1].\n * @param isCategory Only available when value is number.\n * @param edgeSymbols Open-close symbol when value is interval.\n * @protected\n */\n\n\n VisualMapModel.prototype.formatValueText = function (value, isCategory, edgeSymbols) {\n var option = this.option;\n var precision = option.precision;\n var dataBound = this.dataBound;\n var formatter = option.formatter;\n var isMinMax;\n edgeSymbols = edgeSymbols || ['<', '>'];\n\n if (zrUtil.isArray(value)) {\n value = value.slice();\n isMinMax = true;\n }\n\n var textValue = isCategory ? value // Value is string when isCategory\n : isMinMax ? [toFixed(value[0]), toFixed(value[1])] : toFixed(value);\n\n if (zrUtil.isString(formatter)) {\n return formatter.replace('{value}', isMinMax ? textValue[0] : textValue).replace('{value2}', isMinMax ? textValue[1] : textValue);\n } else if (zrUtil.isFunction(formatter)) {\n return isMinMax ? formatter(value[0], value[1]) : formatter(value);\n }\n\n if (isMinMax) {\n if (value[0] === dataBound[0]) {\n return edgeSymbols[0] + ' ' + textValue[1];\n } else if (value[1] === dataBound[1]) {\n return edgeSymbols[1] + ' ' + textValue[0];\n } else {\n return textValue[0] + ' - ' + textValue[1];\n }\n } else {\n // Format single value (includes category case).\n return textValue;\n }\n\n function toFixed(val) {\n return val === dataBound[0] ? 'min' : val === dataBound[1] ? 'max' : (+val).toFixed(Math.min(precision, 20));\n }\n };\n /**\n * @protected\n */\n\n\n VisualMapModel.prototype.resetExtent = function () {\n var thisOption = this.option; // Can not calculate data extent by data here.\n // Because series and data may be modified in processing stage.\n // So we do not support the feature \"auto min/max\".\n\n var extent = asc([thisOption.min, thisOption.max]);\n this._dataExtent = extent;\n };\n /**\n * PENDING:\n * delete this method if no outer usage.\n *\n * Return Concrete dimension. If null/undefined is returned, no dimension is used.\n */\n // getDataDimension(data: SeriesData) {\n // const optDim = this.option.dimension;\n // if (optDim != null) {\n // return data.getDimension(optDim);\n // }\n // const dimNames = data.dimensions;\n // for (let i = dimNames.length - 1; i >= 0; i--) {\n // const dimName = dimNames[i];\n // const dimInfo = data.getDimensionInfo(dimName);\n // if (!dimInfo.isCalculationCoord) {\n // return dimName;\n // }\n // }\n // }\n\n\n VisualMapModel.prototype.getDataDimensionIndex = function (data) {\n var optDim = this.option.dimension;\n\n if (optDim != null) {\n return data.getDimensionIndex(optDim);\n }\n\n var dimNames = data.dimensions;\n\n for (var i = dimNames.length - 1; i >= 0; i--) {\n var dimName = dimNames[i];\n var dimInfo = data.getDimensionInfo(dimName);\n\n if (!dimInfo.isCalculationCoord) {\n return dimInfo.storeDimIndex;\n }\n }\n };\n\n VisualMapModel.prototype.getExtent = function () {\n return this._dataExtent.slice();\n };\n\n VisualMapModel.prototype.completeVisualOption = function () {\n var ecModel = this.ecModel;\n var thisOption = this.option;\n var base = {\n inRange: thisOption.inRange,\n outOfRange: thisOption.outOfRange\n };\n var target = thisOption.target || (thisOption.target = {});\n var controller = thisOption.controller || (thisOption.controller = {});\n zrUtil.merge(target, base); // Do not override\n\n zrUtil.merge(controller, base); // Do not override\n\n var isCategory = this.isCategory();\n completeSingle.call(this, target);\n completeSingle.call(this, controller);\n completeInactive.call(this, target, 'inRange', 'outOfRange'); // completeInactive.call(this, target, 'outOfRange', 'inRange');\n\n completeController.call(this, controller);\n\n function completeSingle(base) {\n // Compatible with ec2 dataRange.color.\n // The mapping order of dataRange.color is: [high value, ..., low value]\n // whereas inRange.color and outOfRange.color is [low value, ..., high value]\n // Notice: ec2 has no inverse.\n if (isArray(thisOption.color) // If there has been inRange: {symbol: ...}, adding color is a mistake.\n // So adding color only when no inRange defined.\n && !base.inRange) {\n base.inRange = {\n color: thisOption.color.slice().reverse()\n };\n } // Compatible with previous logic, always give a default color, otherwise\n // simple config with no inRange and outOfRange will not work.\n // Originally we use visualMap.color as the default color, but setOption at\n // the second time the default color will be erased. So we change to use\n // constant DEFAULT_COLOR.\n // If user do not want the default color, set inRange: {color: null}.\n\n\n base.inRange = base.inRange || {\n color: ecModel.get('gradientColor')\n };\n }\n\n function completeInactive(base, stateExist, stateAbsent) {\n var optExist = base[stateExist];\n var optAbsent = base[stateAbsent];\n\n if (optExist && !optAbsent) {\n optAbsent = base[stateAbsent] = {};\n each(optExist, function (visualData, visualType) {\n if (!VisualMapping.isValidType(visualType)) {\n return;\n }\n\n var defa = visualDefault.get(visualType, 'inactive', isCategory);\n\n if (defa != null) {\n optAbsent[visualType] = defa; // Compatibable with ec2:\n // Only inactive color to rgba(0,0,0,0) can not\n // make label transparent, so use opacity also.\n\n if (visualType === 'color' && !optAbsent.hasOwnProperty('opacity') && !optAbsent.hasOwnProperty('colorAlpha')) {\n optAbsent.opacity = [0, 0];\n }\n }\n });\n }\n }\n\n function completeController(controller) {\n var symbolExists = (controller.inRange || {}).symbol || (controller.outOfRange || {}).symbol;\n var symbolSizeExists = (controller.inRange || {}).symbolSize || (controller.outOfRange || {}).symbolSize;\n var inactiveColor = this.get('inactiveColor');\n var itemSymbol = this.getItemSymbol();\n var defaultSymbol = itemSymbol || 'roundRect';\n each(this.stateList, function (state) {\n var itemSize = this.itemSize;\n var visuals = controller[state]; // Set inactive color for controller if no other color\n // attr (like colorAlpha) specified.\n\n if (!visuals) {\n visuals = controller[state] = {\n color: isCategory ? inactiveColor : [inactiveColor]\n };\n } // Consistent symbol and symbolSize if not specified.\n\n\n if (visuals.symbol == null) {\n visuals.symbol = symbolExists && zrUtil.clone(symbolExists) || (isCategory ? defaultSymbol : [defaultSymbol]);\n }\n\n if (visuals.symbolSize == null) {\n visuals.symbolSize = symbolSizeExists && zrUtil.clone(symbolSizeExists) || (isCategory ? itemSize[0] : [itemSize[0], itemSize[0]]);\n } // Filter none\n\n\n visuals.symbol = mapVisual(visuals.symbol, function (symbol) {\n return symbol === 'none' ? defaultSymbol : symbol;\n }); // Normalize symbolSize\n\n var symbolSize = visuals.symbolSize;\n\n if (symbolSize != null) {\n var max_1 = -Infinity; // symbolSize can be object when categories defined.\n\n eachVisual(symbolSize, function (value) {\n value > max_1 && (max_1 = value);\n });\n visuals.symbolSize = mapVisual(symbolSize, function (value) {\n return linearMap(value, [0, max_1], [0, itemSize[0]], true);\n });\n }\n }, this);\n }\n };\n\n VisualMapModel.prototype.resetItemSize = function () {\n this.itemSize = [parseFloat(this.get('itemWidth')), parseFloat(this.get('itemHeight'))];\n };\n\n VisualMapModel.prototype.isCategory = function () {\n return !!this.option.categories;\n };\n /**\n * @public\n * @abstract\n */\n\n\n VisualMapModel.prototype.setSelected = function (selected) {};\n\n VisualMapModel.prototype.getSelected = function () {\n return null;\n };\n /**\n * @public\n * @abstract\n */\n\n\n VisualMapModel.prototype.getValueState = function (value) {\n return null;\n };\n /**\n * FIXME\n * Do not publish to thirt-part-dev temporarily\n * util the interface is stable. (Should it return\n * a function but not visual meta?)\n *\n * @pubilc\n * @abstract\n * @param getColorVisual\n * params: value, valueState\n * return: color\n * @return {Object} visualMeta\n * should includes {stops, outerColors}\n * outerColor means [colorBeyondMinValue, colorBeyondMaxValue]\n */\n\n\n VisualMapModel.prototype.getVisualMeta = function (getColorVisual) {\n return null;\n };\n\n VisualMapModel.type = 'visualMap';\n VisualMapModel.dependencies = ['series'];\n VisualMapModel.defaultOption = {\n show: true,\n // zlevel: 0,\n z: 4,\n seriesIndex: 'all',\n min: 0,\n max: 200,\n left: 0,\n right: null,\n top: null,\n bottom: 0,\n itemWidth: null,\n itemHeight: null,\n inverse: false,\n orient: 'vertical',\n backgroundColor: 'rgba(0,0,0,0)',\n borderColor: '#ccc',\n contentColor: '#5793f3',\n inactiveColor: '#aaa',\n borderWidth: 0,\n padding: 5,\n // 接受数组分别设定上右下左边距,同css\n textGap: 10,\n precision: 0,\n textStyle: {\n color: '#333' // 值域文字颜色\n\n }\n };\n return VisualMapModel;\n}(ComponentModel);\n\nexport default VisualMapModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { Rect } from '../../util/graphic.js';\nimport * as formatUtil from '../../util/format.js';\nimport * as layout from '../../util/layout.js';\nimport VisualMapping from '../../visual/VisualMapping.js';\nimport ComponentView from '../../view/Component.js';\n\nvar VisualMapView =\n/** @class */\nfunction (_super) {\n __extends(VisualMapView, _super);\n\n function VisualMapView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = VisualMapView.type;\n _this.autoPositionValues = {\n left: 1,\n right: 1,\n top: 1,\n bottom: 1\n };\n return _this;\n }\n\n VisualMapView.prototype.init = function (ecModel, api) {\n this.ecModel = ecModel;\n this.api = api;\n };\n /**\n * @protected\n */\n\n\n VisualMapView.prototype.render = function (visualMapModel, ecModel, api, payload // TODO: TYPE\n ) {\n this.visualMapModel = visualMapModel;\n\n if (visualMapModel.get('show') === false) {\n this.group.removeAll();\n return;\n }\n\n this.doRender(visualMapModel, ecModel, api, payload);\n };\n /**\n * @protected\n */\n\n\n VisualMapView.prototype.renderBackground = function (group) {\n var visualMapModel = this.visualMapModel;\n var padding = formatUtil.normalizeCssArray(visualMapModel.get('padding') || 0);\n var rect = group.getBoundingRect();\n group.add(new Rect({\n z2: -1,\n silent: true,\n shape: {\n x: rect.x - padding[3],\n y: rect.y - padding[0],\n width: rect.width + padding[3] + padding[1],\n height: rect.height + padding[0] + padding[2]\n },\n style: {\n fill: visualMapModel.get('backgroundColor'),\n stroke: visualMapModel.get('borderColor'),\n lineWidth: visualMapModel.get('borderWidth')\n }\n }));\n };\n /**\n * @protected\n * @param targetValue can be Infinity or -Infinity\n * @param visualCluster Only can be 'color' 'opacity' 'symbol' 'symbolSize'\n * @param opts\n * @param opts.forceState Specify state, instead of using getValueState method.\n * @param opts.convertOpacityToAlpha For color gradient in controller widget.\n * @return {*} Visual value.\n */\n\n\n VisualMapView.prototype.getControllerVisual = function (targetValue, visualCluster, opts) {\n opts = opts || {};\n var forceState = opts.forceState;\n var visualMapModel = this.visualMapModel;\n var visualObj = {}; // Default values.\n\n if (visualCluster === 'color') {\n var defaultColor = visualMapModel.get('contentColor');\n visualObj.color = defaultColor;\n }\n\n function getter(key) {\n return visualObj[key];\n }\n\n function setter(key, value) {\n visualObj[key] = value;\n }\n\n var mappings = visualMapModel.controllerVisuals[forceState || visualMapModel.getValueState(targetValue)];\n var visualTypes = VisualMapping.prepareVisualTypes(mappings);\n zrUtil.each(visualTypes, function (type) {\n var visualMapping = mappings[type];\n\n if (opts.convertOpacityToAlpha && type === 'opacity') {\n type = 'colorAlpha';\n visualMapping = mappings.__alphaForOpacity;\n }\n\n if (VisualMapping.dependsOn(type, visualCluster)) {\n visualMapping && visualMapping.applyVisual(targetValue, getter, setter);\n }\n });\n return visualObj[visualCluster];\n };\n\n VisualMapView.prototype.positionGroup = function (group) {\n var model = this.visualMapModel;\n var api = this.api;\n layout.positionElement(group, model.getBoxLayoutParams(), {\n width: api.getWidth(),\n height: api.getHeight()\n });\n };\n\n VisualMapView.prototype.doRender = function (visualMapModel, ecModel, api, payload) {};\n\n VisualMapView.type = 'visualMap';\n return VisualMapView;\n}(ComponentView);\n\nexport default VisualMapView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { getLayoutRect } from '../../util/layout.js';\nvar paramsSet = [['left', 'right', 'width'], ['top', 'bottom', 'height']];\n/**\n * @param visualMapModel\n * @param api\n * @param itemSize always [short, long]\n * @return {string} 'left' or 'right' or 'top' or 'bottom'\n */\n\nexport function getItemAlign(visualMapModel, api, itemSize) {\n var modelOption = visualMapModel.option;\n var itemAlign = modelOption.align;\n\n if (itemAlign != null && itemAlign !== 'auto') {\n return itemAlign;\n } // Auto decision align.\n\n\n var ecSize = {\n width: api.getWidth(),\n height: api.getHeight()\n };\n var realIndex = modelOption.orient === 'horizontal' ? 1 : 0;\n var reals = paramsSet[realIndex];\n var fakeValue = [0, null, 10];\n var layoutInput = {};\n\n for (var i = 0; i < 3; i++) {\n layoutInput[paramsSet[1 - realIndex][i]] = fakeValue[i];\n layoutInput[reals[i]] = i === 2 ? itemSize[0] : modelOption[reals[i]];\n }\n\n var rParam = [['x', 'width', 3], ['y', 'height', 0]][realIndex];\n var rect = getLayoutRect(layoutInput, ecSize, modelOption.padding);\n return reals[(rect.margin[rParam[2]] || 0) + rect[rParam[0]] + rect[rParam[1]] * 0.5 < ecSize[rParam[1]] * 0.5 ? 0 : 1];\n}\n/**\n * Prepare dataIndex for outside usage, where dataIndex means rawIndex, and\n * dataIndexInside means filtered index.\n */\n// TODO: TYPE more specified payload types.\n\nexport function makeHighDownBatch(batch, visualMapModel) {\n zrUtil.each(batch || [], function (batchItem) {\n if (batchItem.dataIndex != null) {\n batchItem.dataIndexInside = batchItem.dataIndex;\n batchItem.dataIndex = null;\n }\n\n batchItem.highlightKey = 'visualMap' + (visualMapModel ? visualMapModel.componentIndex : '');\n });\n return batch;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { use } from '../../extension.js';\nimport { install as installVisualMapContinuous } from './installVisualMapContinuous.js';\nimport { install as installVisualMapPiecewise } from './installVisualMapPiecewise.js';\nexport function install(registers) {\n use(installVisualMapContinuous);\n use(installVisualMapPiecewise); // Do not install './dataZoomSelect',\n // since it only work for toolbox dataZoom.\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { visualMapActionInfo, visualMapActionHander } from './visualMapAction.js';\nimport { visualMapEncodingHandlers } from './visualEncoding.js';\nimport { each } from 'zrender/lib/core/util.js';\nimport preprocessor from './preprocessor.js';\nvar installed = false;\nexport default function installCommon(registers) {\n if (installed) {\n return;\n }\n\n installed = true;\n registers.registerSubTypeDefaulter('visualMap', function (option) {\n // Compatible with ec2, when splitNumber === 0, continuous visualMap will be used.\n return !option.categories && (!(option.pieces ? option.pieces.length > 0 : option.splitNumber > 0) || option.calculable) ? 'continuous' : 'piecewise';\n });\n registers.registerAction(visualMapActionInfo, visualMapActionHander);\n each(visualMapEncodingHandlers, function (handler) {\n registers.registerVisual(registers.PRIORITY.VISUAL.COMPONENT, handler);\n });\n registers.registerPreprocessor(preprocessor);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport ContinuousModel from './ContinuousModel.js';\nimport ContinuousView from './ContinuousView.js';\nimport installCommon from './installCommon.js';\nexport function install(registers) {\n registers.registerComponentModel(ContinuousModel);\n registers.registerComponentView(ContinuousView);\n installCommon(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport PiecewiseModel from './PiecewiseModel.js';\nimport PiecewiseView from './PiecewiseView.js';\nimport installCommon from './installCommon.js';\nexport function install(registers) {\n registers.registerComponentModel(PiecewiseModel);\n registers.registerComponentView(PiecewiseView);\n installCommon(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// @ts-nocheck\nimport * as zrUtil from 'zrender/lib/core/util.js';\nvar each = zrUtil.each;\nexport default function visualMapPreprocessor(option) {\n var visualMap = option && option.visualMap;\n\n if (!zrUtil.isArray(visualMap)) {\n visualMap = visualMap ? [visualMap] : [];\n }\n\n each(visualMap, function (opt) {\n if (!opt) {\n return;\n } // rename splitList to pieces\n\n\n if (has(opt, 'splitList') && !has(opt, 'pieces')) {\n opt.pieces = opt.splitList;\n delete opt.splitList;\n }\n\n var pieces = opt.pieces;\n\n if (pieces && zrUtil.isArray(pieces)) {\n each(pieces, function (piece) {\n if (zrUtil.isObject(piece)) {\n if (has(piece, 'start') && !has(piece, 'min')) {\n piece.min = piece.start;\n }\n\n if (has(piece, 'end') && !has(piece, 'max')) {\n piece.max = piece.end;\n }\n }\n });\n }\n });\n}\n\nfunction has(obj, name) {\n return obj && obj.hasOwnProperty && obj.hasOwnProperty(name);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as visualSolution from '../../visual/visualSolution.js';\nimport VisualMapping from '../../visual/VisualMapping.js';\nimport { getVisualFromData } from '../../visual/helper.js';\nexport var visualMapEncodingHandlers = [{\n createOnAllSeries: true,\n reset: function (seriesModel, ecModel) {\n var resetDefines = [];\n ecModel.eachComponent('visualMap', function (visualMapModel) {\n var pipelineContext = seriesModel.pipelineContext;\n\n if (!visualMapModel.isTargetSeries(seriesModel) || pipelineContext && pipelineContext.large) {\n return;\n }\n\n resetDefines.push(visualSolution.incrementalApplyVisual(visualMapModel.stateList, visualMapModel.targetVisuals, zrUtil.bind(visualMapModel.getValueState, visualMapModel), visualMapModel.getDataDimensionIndex(seriesModel.getData())));\n });\n return resetDefines;\n }\n}, // Only support color.\n{\n createOnAllSeries: true,\n reset: function (seriesModel, ecModel) {\n var data = seriesModel.getData();\n var visualMetaList = [];\n ecModel.eachComponent('visualMap', function (visualMapModel) {\n if (visualMapModel.isTargetSeries(seriesModel)) {\n var visualMeta = visualMapModel.getVisualMeta(zrUtil.bind(getColorVisual, null, seriesModel, visualMapModel)) || {\n stops: [],\n outerColors: []\n };\n var dimIdx = visualMapModel.getDataDimensionIndex(data);\n\n if (dimIdx >= 0) {\n // visualMeta.dimension should be dimension index, but not concrete dimension.\n visualMeta.dimension = dimIdx;\n visualMetaList.push(visualMeta);\n }\n }\n }); // console.log(JSON.stringify(visualMetaList.map(a => a.stops)));\n\n seriesModel.getData().setVisual('visualMeta', visualMetaList);\n }\n}]; // FIXME\n// performance and export for heatmap?\n// value can be Infinity or -Infinity\n\nfunction getColorVisual(seriesModel, visualMapModel, value, valueState) {\n var mappings = visualMapModel.targetVisuals[valueState];\n var visualTypes = VisualMapping.prepareVisualTypes(mappings);\n var resultVisual = {\n color: getVisualFromData(seriesModel.getData(), 'color') // default color.\n\n };\n\n for (var i = 0, len = visualTypes.length; i < len; i++) {\n var type = visualTypes[i];\n var mapping = mappings[type === 'opacity' ? '__alphaForOpacity' : type];\n mapping && mapping.applyVisual(value, getVisual, setVisual);\n }\n\n return resultVisual.color;\n\n function getVisual(key) {\n return resultVisual[key];\n }\n\n function setVisual(key, value) {\n resultVisual[key] = value;\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nexport var visualMapActionInfo = {\n type: 'selectDataRange',\n event: 'dataRangeSelected',\n // FIXME use updateView appears wrong\n update: 'update'\n};\nexport var visualMapActionHander = function (payload, ecModel) {\n ecModel.eachComponent({\n mainType: 'visualMap',\n query: payload\n }, function (model) {\n model.setSelected(payload.selected);\n });\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { each, map } from 'zrender/lib/core/util.js';\nimport { linearMap, getPixelPrecision, round } from '../util/number.js';\nimport { createAxisTicks, createAxisLabels, calculateCategoryInterval } from './axisTickLabelBuilder.js';\nvar NORMALIZED_EXTENT = [0, 1];\n/**\n * Base class of Axis.\n */\n\nvar Axis =\n/** @class */\nfunction () {\n function Axis(dim, scale, extent) {\n this.onBand = false;\n this.inverse = false;\n this.dim = dim;\n this.scale = scale;\n this._extent = extent || [0, 0];\n }\n /**\n * If axis extent contain given coord\n */\n\n\n Axis.prototype.contain = function (coord) {\n var extent = this._extent;\n var min = Math.min(extent[0], extent[1]);\n var max = Math.max(extent[0], extent[1]);\n return coord >= min && coord <= max;\n };\n /**\n * If axis extent contain given data\n */\n\n\n Axis.prototype.containData = function (data) {\n return this.scale.contain(data);\n };\n /**\n * Get coord extent.\n */\n\n\n Axis.prototype.getExtent = function () {\n return this._extent.slice();\n };\n /**\n * Get precision used for formatting\n */\n\n\n Axis.prototype.getPixelPrecision = function (dataExtent) {\n return getPixelPrecision(dataExtent || this.scale.getExtent(), this._extent);\n };\n /**\n * Set coord extent\n */\n\n\n Axis.prototype.setExtent = function (start, end) {\n var extent = this._extent;\n extent[0] = start;\n extent[1] = end;\n };\n /**\n * Convert data to coord. Data is the rank if it has an ordinal scale\n */\n\n\n Axis.prototype.dataToCoord = function (data, clamp) {\n var extent = this._extent;\n var scale = this.scale;\n data = scale.normalize(data);\n\n if (this.onBand && scale.type === 'ordinal') {\n extent = extent.slice();\n fixExtentWithBands(extent, scale.count());\n }\n\n return linearMap(data, NORMALIZED_EXTENT, extent, clamp);\n };\n /**\n * Convert coord to data. Data is the rank if it has an ordinal scale\n */\n\n\n Axis.prototype.coordToData = function (coord, clamp) {\n var extent = this._extent;\n var scale = this.scale;\n\n if (this.onBand && scale.type === 'ordinal') {\n extent = extent.slice();\n fixExtentWithBands(extent, scale.count());\n }\n\n var t = linearMap(coord, extent, NORMALIZED_EXTENT, clamp);\n return this.scale.scale(t);\n };\n /**\n * Convert pixel point to data in axis\n */\n\n\n Axis.prototype.pointToData = function (point, clamp) {\n // Should be implemented in derived class if necessary.\n return;\n };\n /**\n * Different from `zrUtil.map(axis.getTicks(), axis.dataToCoord, axis)`,\n * `axis.getTicksCoords` considers `onBand`, which is used by\n * `boundaryGap:true` of category axis and splitLine and splitArea.\n * @param opt.tickModel default: axis.model.getModel('axisTick')\n * @param opt.clamp If `true`, the first and the last\n * tick must be at the axis end points. Otherwise, clip ticks\n * that outside the axis extent.\n */\n\n\n Axis.prototype.getTicksCoords = function (opt) {\n opt = opt || {};\n var tickModel = opt.tickModel || this.getTickModel();\n var result = createAxisTicks(this, tickModel);\n var ticks = result.ticks;\n var ticksCoords = map(ticks, function (tickVal) {\n return {\n coord: this.dataToCoord(this.scale.type === 'ordinal' ? this.scale.getRawOrdinalNumber(tickVal) : tickVal),\n tickValue: tickVal\n };\n }, this);\n var alignWithLabel = tickModel.get('alignWithLabel');\n fixOnBandTicksCoords(this, ticksCoords, alignWithLabel, opt.clamp);\n return ticksCoords;\n };\n\n Axis.prototype.getMinorTicksCoords = function () {\n if (this.scale.type === 'ordinal') {\n // Category axis doesn't support minor ticks\n return [];\n }\n\n var minorTickModel = this.model.getModel('minorTick');\n var splitNumber = minorTickModel.get('splitNumber'); // Protection.\n\n if (!(splitNumber > 0 && splitNumber < 100)) {\n splitNumber = 5;\n }\n\n var minorTicks = this.scale.getMinorTicks(splitNumber);\n var minorTicksCoords = map(minorTicks, function (minorTicksGroup) {\n return map(minorTicksGroup, function (minorTick) {\n return {\n coord: this.dataToCoord(minorTick),\n tickValue: minorTick\n };\n }, this);\n }, this);\n return minorTicksCoords;\n };\n\n Axis.prototype.getViewLabels = function () {\n return createAxisLabels(this).labels;\n };\n\n Axis.prototype.getLabelModel = function () {\n return this.model.getModel('axisLabel');\n };\n /**\n * Notice here we only get the default tick model. For splitLine\n * or splitArea, we should pass the splitLineModel or splitAreaModel\n * manually when calling `getTicksCoords`.\n * In GL, this method may be overridden to:\n * `axisModel.getModel('axisTick', grid3DModel.getModel('axisTick'));`\n */\n\n\n Axis.prototype.getTickModel = function () {\n return this.model.getModel('axisTick');\n };\n /**\n * Get width of band\n */\n\n\n Axis.prototype.getBandWidth = function () {\n var axisExtent = this._extent;\n var dataExtent = this.scale.getExtent();\n var len = dataExtent[1] - dataExtent[0] + (this.onBand ? 1 : 0); // Fix #2728, avoid NaN when only one data.\n\n len === 0 && (len = 1);\n var size = Math.abs(axisExtent[1] - axisExtent[0]);\n return Math.abs(size) / len;\n };\n /**\n * Only be called in category axis.\n * Can be overridden, consider other axes like in 3D.\n * @return Auto interval for cateogry axis tick and label\n */\n\n\n Axis.prototype.calculateCategoryInterval = function () {\n return calculateCategoryInterval(this);\n };\n\n return Axis;\n}();\n\nfunction fixExtentWithBands(extent, nTick) {\n var size = extent[1] - extent[0];\n var len = nTick;\n var margin = size / len / 2;\n extent[0] += margin;\n extent[1] -= margin;\n} // If axis has labels [1, 2, 3, 4]. Bands on the axis are\n// |---1---|---2---|---3---|---4---|.\n// So the displayed ticks and splitLine/splitArea should between\n// each data item, otherwise cause misleading (e.g., split tow bars\n// of a single data item when there are two bar series).\n// Also consider if tickCategoryInterval > 0 and onBand, ticks and\n// splitLine/spliteArea should layout appropriately corresponding\n// to displayed labels. (So we should not use `getBandWidth` in this\n// case).\n\n\nfunction fixOnBandTicksCoords(axis, ticksCoords, alignWithLabel, clamp) {\n var ticksLen = ticksCoords.length;\n\n if (!axis.onBand || alignWithLabel || !ticksLen) {\n return;\n }\n\n var axisExtent = axis.getExtent();\n var last;\n var diffSize;\n\n if (ticksLen === 1) {\n ticksCoords[0].coord = axisExtent[0];\n last = ticksCoords[1] = {\n coord: axisExtent[0]\n };\n } else {\n var crossLen = ticksCoords[ticksLen - 1].tickValue - ticksCoords[0].tickValue;\n var shift_1 = (ticksCoords[ticksLen - 1].coord - ticksCoords[0].coord) / crossLen;\n each(ticksCoords, function (ticksItem) {\n ticksItem.coord -= shift_1 / 2;\n });\n var dataExtent = axis.scale.getExtent();\n diffSize = 1 + dataExtent[1] - ticksCoords[ticksLen - 1].tickValue;\n last = {\n coord: ticksCoords[ticksLen - 1].coord + shift_1 * diffSize\n };\n ticksCoords.push(last);\n }\n\n var inverse = axisExtent[0] > axisExtent[1]; // Handling clamp.\n\n if (littleThan(ticksCoords[0].coord, axisExtent[0])) {\n clamp ? ticksCoords[0].coord = axisExtent[0] : ticksCoords.shift();\n }\n\n if (clamp && littleThan(axisExtent[0], ticksCoords[0].coord)) {\n ticksCoords.unshift({\n coord: axisExtent[0]\n });\n }\n\n if (littleThan(axisExtent[1], last.coord)) {\n clamp ? last.coord = axisExtent[1] : ticksCoords.pop();\n }\n\n if (clamp && littleThan(last.coord, axisExtent[1])) {\n ticksCoords.push({\n coord: axisExtent[1]\n });\n }\n\n function littleThan(a, b) {\n // Avoid rounding error cause calculated tick coord different with extent.\n // It may cause an extra unnecessary tick added.\n a = round(a);\n b = round(b);\n return inverse ? a > b : a < b;\n }\n}\n\nexport default Axis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nexport function isCoordinateSystemType(coordSys, type) {\n return coordSys.type === type;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\n/**\n * Simple view coordinate system\n * Mapping given x, y to transformd view x, y\n */\n\nimport * as vector from 'zrender/lib/core/vector.js';\nimport * as matrix from 'zrender/lib/core/matrix.js';\nimport BoundingRect from 'zrender/lib/core/BoundingRect.js';\nimport Transformable from 'zrender/lib/core/Transformable.js';\nimport { parsePercent } from '../util/number.js';\nvar v2ApplyTransform = vector.applyTransform;\n\nvar View =\n/** @class */\nfunction (_super) {\n __extends(View, _super);\n\n function View(name) {\n var _this = _super.call(this) || this;\n\n _this.type = 'view';\n _this.dimensions = ['x', 'y'];\n /**\n * Represents the transform brought by roam/zoom.\n * If `View['_viewRect']` applies roam transform,\n * we can get the final displayed rect.\n */\n\n _this._roamTransformable = new Transformable();\n /**\n * Represents the transform from `View['_rect']` to `View['_viewRect']`.\n */\n\n _this._rawTransformable = new Transformable();\n _this.name = name;\n return _this;\n }\n\n View.prototype.setBoundingRect = function (x, y, width, height) {\n this._rect = new BoundingRect(x, y, width, height);\n return this._rect;\n };\n /**\n * @return {module:zrender/core/BoundingRect}\n */\n\n\n View.prototype.getBoundingRect = function () {\n return this._rect;\n };\n\n View.prototype.setViewRect = function (x, y, width, height) {\n this._transformTo(x, y, width, height);\n\n this._viewRect = new BoundingRect(x, y, width, height);\n };\n /**\n * Transformed to particular position and size\n */\n\n\n View.prototype._transformTo = function (x, y, width, height) {\n var rect = this.getBoundingRect();\n var rawTransform = this._rawTransformable;\n rawTransform.transform = rect.calculateTransform(new BoundingRect(x, y, width, height));\n var rawParent = rawTransform.parent;\n rawTransform.parent = null;\n rawTransform.decomposeTransform();\n rawTransform.parent = rawParent;\n\n this._updateTransform();\n };\n /**\n * Set center of view\n */\n\n\n View.prototype.setCenter = function (centerCoord, api) {\n if (!centerCoord) {\n return;\n }\n\n this._center = [parsePercent(centerCoord[0], api.getWidth()), parsePercent(centerCoord[1], api.getHeight())];\n\n this._updateCenterAndZoom();\n };\n\n View.prototype.setZoom = function (zoom) {\n zoom = zoom || 1;\n var zoomLimit = this.zoomLimit;\n\n if (zoomLimit) {\n if (zoomLimit.max != null) {\n zoom = Math.min(zoomLimit.max, zoom);\n }\n\n if (zoomLimit.min != null) {\n zoom = Math.max(zoomLimit.min, zoom);\n }\n }\n\n this._zoom = zoom;\n\n this._updateCenterAndZoom();\n };\n /**\n * Get default center without roam\n */\n\n\n View.prototype.getDefaultCenter = function () {\n // Rect before any transform\n var rawRect = this.getBoundingRect();\n var cx = rawRect.x + rawRect.width / 2;\n var cy = rawRect.y + rawRect.height / 2;\n return [cx, cy];\n };\n\n View.prototype.getCenter = function () {\n return this._center || this.getDefaultCenter();\n };\n\n View.prototype.getZoom = function () {\n return this._zoom || 1;\n };\n\n View.prototype.getRoamTransform = function () {\n return this._roamTransformable.getLocalTransform();\n };\n /**\n * Remove roam\n */\n\n\n View.prototype._updateCenterAndZoom = function () {\n // Must update after view transform updated\n var rawTransformMatrix = this._rawTransformable.getLocalTransform();\n\n var roamTransform = this._roamTransformable;\n var defaultCenter = this.getDefaultCenter();\n var center = this.getCenter();\n var zoom = this.getZoom();\n center = vector.applyTransform([], center, rawTransformMatrix);\n defaultCenter = vector.applyTransform([], defaultCenter, rawTransformMatrix);\n roamTransform.originX = center[0];\n roamTransform.originY = center[1];\n roamTransform.x = defaultCenter[0] - center[0];\n roamTransform.y = defaultCenter[1] - center[1];\n roamTransform.scaleX = roamTransform.scaleY = zoom;\n\n this._updateTransform();\n };\n /**\n * Update transform props on `this` based on the current\n * `this._roamTransformable` and `this._rawTransformable`.\n */\n\n\n View.prototype._updateTransform = function () {\n var roamTransformable = this._roamTransformable;\n var rawTransformable = this._rawTransformable;\n rawTransformable.parent = roamTransformable;\n roamTransformable.updateTransform();\n rawTransformable.updateTransform();\n matrix.copy(this.transform || (this.transform = []), rawTransformable.transform || matrix.create());\n this._rawTransform = rawTransformable.getLocalTransform();\n this.invTransform = this.invTransform || [];\n matrix.invert(this.invTransform, this.transform);\n this.decomposeTransform();\n };\n\n View.prototype.getTransformInfo = function () {\n var rawTransformable = this._rawTransformable;\n var roamTransformable = this._roamTransformable; // Because roamTransformabel has `originX/originY` modified,\n // but the caller of `getTransformInfo` can not handle `originX/originY`,\n // so need to recalculate them.\n\n var dummyTransformable = new Transformable();\n dummyTransformable.transform = roamTransformable.transform;\n dummyTransformable.decomposeTransform();\n return {\n roam: {\n x: dummyTransformable.x,\n y: dummyTransformable.y,\n scaleX: dummyTransformable.scaleX,\n scaleY: dummyTransformable.scaleY\n },\n raw: {\n x: rawTransformable.x,\n y: rawTransformable.y,\n scaleX: rawTransformable.scaleX,\n scaleY: rawTransformable.scaleY\n }\n };\n };\n\n View.prototype.getViewRect = function () {\n return this._viewRect;\n };\n /**\n * Get view rect after roam transform\n */\n\n\n View.prototype.getViewRectAfterRoam = function () {\n var rect = this.getBoundingRect().clone();\n rect.applyTransform(this.transform);\n return rect;\n };\n /**\n * Convert a single (lon, lat) data item to (x, y) point.\n */\n\n\n View.prototype.dataToPoint = function (data, noRoam, out) {\n var transform = noRoam ? this._rawTransform : this.transform;\n out = out || [];\n return transform ? v2ApplyTransform(out, data, transform) : vector.copy(out, data);\n };\n /**\n * Convert a (x, y) point to (lon, lat) data\n */\n\n\n View.prototype.pointToData = function (point) {\n var invTransform = this.invTransform;\n return invTransform ? v2ApplyTransform([], point, invTransform) : [point[0], point[1]];\n };\n\n View.prototype.convertToPixel = function (ecModel, finder, value) {\n var coordSys = getCoordSys(finder);\n return coordSys === this ? coordSys.dataToPoint(value) : null;\n };\n\n View.prototype.convertFromPixel = function (ecModel, finder, pixel) {\n var coordSys = getCoordSys(finder);\n return coordSys === this ? coordSys.pointToData(pixel) : null;\n };\n /**\n * @implements\n */\n\n\n View.prototype.containPoint = function (point) {\n return this.getViewRectAfterRoam().contain(point[0], point[1]);\n };\n\n View.dimensions = ['x', 'y'];\n return View;\n}(Transformable);\n\nfunction getCoordSys(finder) {\n var seriesModel = finder.seriesModel;\n return seriesModel ? seriesModel.coordinateSystem : null; // e.g., graph.\n}\n\nexport default View;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { getPrecisionSafe, round } from '../util/number.js';\nimport IntervalScale from '../scale/Interval.js';\nimport { getScaleExtent } from './axisHelper.js';\nimport { warn } from '../util/log.js';\nimport { increaseInterval, isValueNice } from '../scale/helper.js';\nvar mathLog = Math.log;\nexport function alignScaleTicks(scale, axisModel, alignToScale) {\n var intervalScaleProto = IntervalScale.prototype; // NOTE: There is a precondition for log scale here:\n // In log scale we store _interval and _extent of exponent value.\n // So if we use the method of InternalScale to set/get these data.\n // It process the exponent value, which is linear and what we want here.\n\n var alignToTicks = intervalScaleProto.getTicks.call(alignToScale);\n var alignToNicedTicks = intervalScaleProto.getTicks.call(alignToScale, true);\n var alignToSplitNumber = alignToTicks.length - 1;\n var alignToInterval = intervalScaleProto.getInterval.call(alignToScale);\n var scaleExtent = getScaleExtent(scale, axisModel);\n var rawExtent = scaleExtent.extent;\n var isMinFixed = scaleExtent.fixMin;\n var isMaxFixed = scaleExtent.fixMax;\n\n if (scale.type === 'log') {\n var logBase = mathLog(scale.base);\n rawExtent = [mathLog(rawExtent[0]) / logBase, mathLog(rawExtent[1]) / logBase];\n }\n\n scale.setExtent(rawExtent[0], rawExtent[1]);\n scale.calcNiceExtent({\n splitNumber: alignToSplitNumber,\n fixMin: isMinFixed,\n fixMax: isMaxFixed\n });\n var extent = intervalScaleProto.getExtent.call(scale); // Need to update the rawExtent.\n // Because value in rawExtent may be not parsed. e.g. 'dataMin', 'dataMax'\n\n if (isMinFixed) {\n rawExtent[0] = extent[0];\n }\n\n if (isMaxFixed) {\n rawExtent[1] = extent[1];\n }\n\n var interval = intervalScaleProto.getInterval.call(scale);\n var min = rawExtent[0];\n var max = rawExtent[1];\n\n if (isMinFixed && isMaxFixed) {\n // User set min, max, divide to get new interval\n interval = (max - min) / alignToSplitNumber;\n } else if (isMinFixed) {\n max = rawExtent[0] + interval * alignToSplitNumber; // User set min, expand extent on the other side\n\n while (max < rawExtent[1] && isFinite(max) && isFinite(rawExtent[1])) {\n interval = increaseInterval(interval);\n max = rawExtent[0] + interval * alignToSplitNumber;\n }\n } else if (isMaxFixed) {\n // User set max, expand extent on the other side\n min = rawExtent[1] - interval * alignToSplitNumber;\n\n while (min > rawExtent[0] && isFinite(min) && isFinite(rawExtent[0])) {\n interval = increaseInterval(interval);\n min = rawExtent[1] - interval * alignToSplitNumber;\n }\n } else {\n var nicedSplitNumber = scale.getTicks().length - 1;\n\n if (nicedSplitNumber > alignToSplitNumber) {\n interval = increaseInterval(interval);\n }\n\n var range = interval * alignToSplitNumber;\n max = Math.ceil(rawExtent[1] / interval) * interval;\n min = round(max - range); // Not change the result that crossing zero.\n\n if (min < 0 && rawExtent[0] >= 0) {\n min = 0;\n max = round(range);\n } else if (max > 0 && rawExtent[1] <= 0) {\n max = 0;\n min = -round(range);\n }\n } // Adjust min, max based on the extent of alignTo. When min or max is set in alignTo scale\n\n\n var t0 = (alignToTicks[0].value - alignToNicedTicks[0].value) / alignToInterval;\n var t1 = (alignToTicks[alignToSplitNumber].value - alignToNicedTicks[alignToSplitNumber].value) / alignToInterval; // NOTE: Must in setExtent -> setInterval -> setNiceExtent order.\n\n intervalScaleProto.setExtent.call(scale, min + interval * t0, max + interval * t1);\n intervalScaleProto.setInterval.call(scale, interval);\n\n if (t0 || t1) {\n intervalScaleProto.setNiceExtent.call(scale, min + interval, max - interval);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var ticks = intervalScaleProto.getTicks.call(scale);\n\n if (ticks[1] && (!isValueNice(interval) || getPrecisionSafe(ticks[1].value) > getPrecisionSafe(interval))) {\n warn( // eslint-disable-next-line\n \"The ticks may be not readable when set min: \" + axisModel.get('min') + \", max: \" + axisModel.get('max') + \" and alignTicks: true\");\n }\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nexport var AXIS_TYPES = {\n value: 1,\n category: 1,\n time: 1,\n log: 1\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nvar defaultOption = {\n show: true,\n // zlevel: 0,\n z: 0,\n // Inverse the axis.\n inverse: false,\n // Axis name displayed.\n name: '',\n // 'start' | 'middle' | 'end'\n nameLocation: 'end',\n // By degree. By default auto rotate by nameLocation.\n nameRotate: null,\n nameTruncate: {\n maxWidth: null,\n ellipsis: '...',\n placeholder: '.'\n },\n // Use global text style by default.\n nameTextStyle: {},\n // The gap between axisName and axisLine.\n nameGap: 15,\n // Default `false` to support tooltip.\n silent: false,\n // Default `false` to avoid legacy user event listener fail.\n triggerEvent: false,\n tooltip: {\n show: false\n },\n axisPointer: {},\n axisLine: {\n show: true,\n onZero: true,\n onZeroAxisIndex: null,\n lineStyle: {\n color: '#6E7079',\n width: 1,\n type: 'solid'\n },\n // The arrow at both ends the the axis.\n symbol: ['none', 'none'],\n symbolSize: [10, 15]\n },\n axisTick: {\n show: true,\n // Whether axisTick is inside the grid or outside the grid.\n inside: false,\n // The length of axisTick.\n length: 5,\n lineStyle: {\n width: 1\n }\n },\n axisLabel: {\n show: true,\n // Whether axisLabel is inside the grid or outside the grid.\n inside: false,\n rotate: 0,\n // true | false | null/undefined (auto)\n showMinLabel: null,\n // true | false | null/undefined (auto)\n showMaxLabel: null,\n margin: 8,\n // formatter: null,\n fontSize: 12\n },\n splitLine: {\n show: true,\n lineStyle: {\n color: ['#E0E6F1'],\n width: 1,\n type: 'solid'\n }\n },\n splitArea: {\n show: false,\n areaStyle: {\n color: ['rgba(250,250,250,0.2)', 'rgba(210,219,238,0.2)']\n }\n }\n};\nvar categoryAxis = zrUtil.merge({\n // The gap at both ends of the axis. For categoryAxis, boolean.\n boundaryGap: true,\n // Set false to faster category collection.\n deduplication: null,\n // splitArea: {\n // show: false\n // },\n splitLine: {\n show: false\n },\n axisTick: {\n // If tick is align with label when boundaryGap is true\n alignWithLabel: false,\n interval: 'auto'\n },\n axisLabel: {\n interval: 'auto'\n }\n}, defaultOption);\nvar valueAxis = zrUtil.merge({\n boundaryGap: [0, 0],\n axisLine: {\n // Not shown when other axis is categoryAxis in cartesian\n show: 'auto'\n },\n axisTick: {\n // Not shown when other axis is categoryAxis in cartesian\n show: 'auto'\n },\n // TODO\n // min/max: [30, datamin, 60] or [20, datamin] or [datamin, 60]\n splitNumber: 5,\n minorTick: {\n // Minor tick, not available for cateogry axis.\n show: false,\n // Split number of minor ticks. The value should be in range of (0, 100)\n splitNumber: 5,\n // Length of minor tick\n length: 3,\n // Line style\n lineStyle: {// Default to be same with axisTick\n }\n },\n minorSplitLine: {\n show: false,\n lineStyle: {\n color: '#F4F7FD',\n width: 1\n }\n }\n}, defaultOption);\nvar timeAxis = zrUtil.merge({\n splitNumber: 6,\n axisLabel: {\n // To eliminate labels that are not nice\n showMinLabel: false,\n showMaxLabel: false,\n rich: {\n primary: {\n fontWeight: 'bold'\n }\n }\n },\n splitLine: {\n show: false\n }\n}, valueAxis);\nvar logAxis = zrUtil.defaults({\n logBase: 10\n}, valueAxis);\nexport default {\n category: categoryAxis,\n value: valueAxis,\n time: timeAxis,\n log: logAxis\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport OrdinalScale from '../scale/Ordinal.js';\nimport IntervalScale from '../scale/Interval.js';\nimport Scale from '../scale/Scale.js';\nimport { prepareLayoutBarSeries, makeColumnLayout, retrieveColumnLayout } from '../layout/barGrid.js';\nimport BoundingRect from 'zrender/lib/core/BoundingRect.js';\nimport TimeScale from '../scale/Time.js';\nimport LogScale from '../scale/Log.js';\nimport { getStackedDimension } from '../data/helper/dataStackHelper.js';\nimport { ensureScaleRawExtentInfo } from './scaleRawExtentInfo.js';\n/**\n * Get axis scale extent before niced.\n * Item of returned array can only be number (including Infinity and NaN).\n *\n * Caution:\n * Precondition of calling this method:\n * The scale extent has been initialized using series data extent via\n * `scale.setExtent` or `scale.unionExtentFromData`;\n */\n\nexport function getScaleExtent(scale, model) {\n var scaleType = scale.type;\n var rawExtentResult = ensureScaleRawExtentInfo(scale, model, scale.getExtent()).calculate();\n scale.setBlank(rawExtentResult.isBlank);\n var min = rawExtentResult.min;\n var max = rawExtentResult.max; // If bars are placed on a base axis of type time or interval account for axis boundary overflow and current axis\n // is base axis\n // FIXME\n // (1) Consider support value axis, where below zero and axis `onZero` should be handled properly.\n // (2) Refactor the logic with `barGrid`. Is it not need to `makeBarWidthAndOffsetInfo` twice with different extent?\n // Should not depend on series type `bar`?\n // (3) Fix that might overlap when using dataZoom.\n // (4) Consider other chart types using `barGrid`?\n // See #6728, #4862, `test/bar-overflow-time-plot.html`\n\n var ecModel = model.ecModel;\n\n if (ecModel && scaleType === 'time'\n /* || scaleType === 'interval' */\n ) {\n var barSeriesModels = prepareLayoutBarSeries('bar', ecModel);\n var isBaseAxisAndHasBarSeries_1 = false;\n zrUtil.each(barSeriesModels, function (seriesModel) {\n isBaseAxisAndHasBarSeries_1 = isBaseAxisAndHasBarSeries_1 || seriesModel.getBaseAxis() === model.axis;\n });\n\n if (isBaseAxisAndHasBarSeries_1) {\n // Calculate placement of bars on axis. TODO should be decoupled\n // with barLayout\n var barWidthAndOffset = makeColumnLayout(barSeriesModels); // Adjust axis min and max to account for overflow\n\n var adjustedScale = adjustScaleForOverflow(min, max, model, barWidthAndOffset);\n min = adjustedScale.min;\n max = adjustedScale.max;\n }\n }\n\n return {\n extent: [min, max],\n // \"fix\" means \"fixed\", the value should not be\n // changed in the subsequent steps.\n fixMin: rawExtentResult.minFixed,\n fixMax: rawExtentResult.maxFixed\n };\n}\n\nfunction adjustScaleForOverflow(min, max, model, // Only support cartesian coord yet.\nbarWidthAndOffset) {\n // Get Axis Length\n var axisExtent = model.axis.getExtent();\n var axisLength = axisExtent[1] - axisExtent[0]; // Get bars on current base axis and calculate min and max overflow\n\n var barsOnCurrentAxis = retrieveColumnLayout(barWidthAndOffset, model.axis);\n\n if (barsOnCurrentAxis === undefined) {\n return {\n min: min,\n max: max\n };\n }\n\n var minOverflow = Infinity;\n zrUtil.each(barsOnCurrentAxis, function (item) {\n minOverflow = Math.min(item.offset, minOverflow);\n });\n var maxOverflow = -Infinity;\n zrUtil.each(barsOnCurrentAxis, function (item) {\n maxOverflow = Math.max(item.offset + item.width, maxOverflow);\n });\n minOverflow = Math.abs(minOverflow);\n maxOverflow = Math.abs(maxOverflow);\n var totalOverFlow = minOverflow + maxOverflow; // Calculate required buffer based on old range and overflow\n\n var oldRange = max - min;\n var oldRangePercentOfNew = 1 - (minOverflow + maxOverflow) / axisLength;\n var overflowBuffer = oldRange / oldRangePercentOfNew - oldRange;\n max += overflowBuffer * (maxOverflow / totalOverFlow);\n min -= overflowBuffer * (minOverflow / totalOverFlow);\n return {\n min: min,\n max: max\n };\n} // Precondition of calling this method:\n// The scale extent has been initialized using series data extent via\n// `scale.setExtent` or `scale.unionExtentFromData`;\n\n\nexport function niceScaleExtent(scale, inModel) {\n var model = inModel;\n var extentInfo = getScaleExtent(scale, model);\n var extent = extentInfo.extent;\n var splitNumber = model.get('splitNumber');\n\n if (scale instanceof LogScale) {\n scale.base = model.get('logBase');\n }\n\n var scaleType = scale.type;\n var interval = model.get('interval');\n var isIntervalOrTime = scaleType === 'interval' || scaleType === 'time';\n scale.setExtent(extent[0], extent[1]);\n scale.calcNiceExtent({\n splitNumber: splitNumber,\n fixMin: extentInfo.fixMin,\n fixMax: extentInfo.fixMax,\n minInterval: isIntervalOrTime ? model.get('minInterval') : null,\n maxInterval: isIntervalOrTime ? model.get('maxInterval') : null\n }); // If some one specified the min, max. And the default calculated interval\n // is not good enough. He can specify the interval. It is often appeared\n // in angle axis with angle 0 - 360. Interval calculated in interval scale is hard\n // to be 60.\n // FIXME\n\n if (interval != null) {\n scale.setInterval && scale.setInterval(interval);\n }\n}\n/**\n * @param axisType Default retrieve from model.type\n */\n\nexport function createScaleByModel(model, axisType) {\n axisType = axisType || model.get('type');\n\n if (axisType) {\n switch (axisType) {\n // Buildin scale\n case 'category':\n return new OrdinalScale({\n ordinalMeta: model.getOrdinalMeta ? model.getOrdinalMeta() : model.getCategories(),\n extent: [Infinity, -Infinity]\n });\n\n case 'time':\n return new TimeScale({\n locale: model.ecModel.getLocaleModel(),\n useUTC: model.ecModel.get('useUTC')\n });\n\n default:\n // case 'value'/'interval', 'log', or others.\n return new (Scale.getClass(axisType) || IntervalScale)();\n }\n }\n}\n/**\n * Check if the axis cross 0\n */\n\nexport function ifAxisCrossZero(axis) {\n var dataExtent = axis.scale.getExtent();\n var min = dataExtent[0];\n var max = dataExtent[1];\n return !(min > 0 && max > 0 || min < 0 && max < 0);\n}\n/**\n * @param axis\n * @return Label formatter function.\n * param: {number} tickValue,\n * param: {number} idx, the index in all ticks.\n * If category axis, this param is not required.\n * return: {string} label string.\n */\n\nexport function makeLabelFormatter(axis) {\n var labelFormatter = axis.getLabelModel().get('formatter');\n var categoryTickStart = axis.type === 'category' ? axis.scale.getExtent()[0] : null;\n\n if (axis.scale.type === 'time') {\n return function (tpl) {\n return function (tick, idx) {\n return axis.scale.getFormattedLabel(tick, idx, tpl);\n };\n }(labelFormatter);\n } else if (zrUtil.isString(labelFormatter)) {\n return function (tpl) {\n return function (tick) {\n // For category axis, get raw value; for numeric axis,\n // get formatted label like '1,333,444'.\n var label = axis.scale.getLabel(tick);\n var text = tpl.replace('{value}', label != null ? label : '');\n return text;\n };\n }(labelFormatter);\n } else if (zrUtil.isFunction(labelFormatter)) {\n return function (cb) {\n return function (tick, idx) {\n // The original intention of `idx` is \"the index of the tick in all ticks\".\n // But the previous implementation of category axis do not consider the\n // `axisLabel.interval`, which cause that, for example, the `interval` is\n // `1`, then the ticks \"name5\", \"name7\", \"name9\" are displayed, where the\n // corresponding `idx` are `0`, `2`, `4`, but not `0`, `1`, `2`. So we keep\n // the definition here for back compatibility.\n if (categoryTickStart != null) {\n idx = tick.value - categoryTickStart;\n }\n\n return cb(getAxisRawValue(axis, tick), idx, tick.level != null ? {\n level: tick.level\n } : null);\n };\n }(labelFormatter);\n } else {\n return function (tick) {\n return axis.scale.getLabel(tick);\n };\n }\n}\nexport function getAxisRawValue(axis, tick) {\n // In category axis with data zoom, tick is not the original\n // index of axis.data. So tick should not be exposed to user\n // in category axis.\n return axis.type === 'category' ? axis.scale.getLabel(tick) : tick.value;\n}\n/**\n * @param axis\n * @return Be null/undefined if no labels.\n */\n\nexport function estimateLabelUnionRect(axis) {\n var axisModel = axis.model;\n var scale = axis.scale;\n\n if (!axisModel.get(['axisLabel', 'show']) || scale.isBlank()) {\n return;\n }\n\n var realNumberScaleTicks;\n var tickCount;\n var categoryScaleExtent = scale.getExtent(); // Optimize for large category data, avoid call `getTicks()`.\n\n if (scale instanceof OrdinalScale) {\n tickCount = scale.count();\n } else {\n realNumberScaleTicks = scale.getTicks();\n tickCount = realNumberScaleTicks.length;\n }\n\n var axisLabelModel = axis.getLabelModel();\n var labelFormatter = makeLabelFormatter(axis);\n var rect;\n var step = 1; // Simple optimization for large amount of labels\n\n if (tickCount > 40) {\n step = Math.ceil(tickCount / 40);\n }\n\n for (var i = 0; i < tickCount; i += step) {\n var tick = realNumberScaleTicks ? realNumberScaleTicks[i] : {\n value: categoryScaleExtent[0] + i\n };\n var label = labelFormatter(tick, i);\n var unrotatedSingleRect = axisLabelModel.getTextRect(label);\n var singleRect = rotateTextRect(unrotatedSingleRect, axisLabelModel.get('rotate') || 0);\n rect ? rect.union(singleRect) : rect = singleRect;\n }\n\n return rect;\n}\n\nfunction rotateTextRect(textRect, rotate) {\n var rotateRadians = rotate * Math.PI / 180;\n var beforeWidth = textRect.width;\n var beforeHeight = textRect.height;\n var afterWidth = beforeWidth * Math.abs(Math.cos(rotateRadians)) + Math.abs(beforeHeight * Math.sin(rotateRadians));\n var afterHeight = beforeWidth * Math.abs(Math.sin(rotateRadians)) + Math.abs(beforeHeight * Math.cos(rotateRadians));\n var rotatedRect = new BoundingRect(textRect.x, textRect.y, afterWidth, afterHeight);\n return rotatedRect;\n}\n/**\n * @param model axisLabelModel or axisTickModel\n * @return {number|String} Can be null|'auto'|number|function\n */\n\n\nexport function getOptionCategoryInterval(model) {\n var interval = model.get('interval');\n return interval == null ? 'auto' : interval;\n}\n/**\n * Set `categoryInterval` as 0 implicitly indicates that\n * show all labels regardless of overlap.\n * @param {Object} axis axisModel.axis\n */\n\nexport function shouldShowAllLabels(axis) {\n return axis.type === 'category' && getOptionCategoryInterval(axis.getLabelModel()) === 0;\n}\nexport function getDataDimensionsOnAxis(data, axisDim) {\n // Remove duplicated dat dimensions caused by `getStackedDimension`.\n var dataDimMap = {}; // Currently `mapDimensionsAll` will contain stack result dimension ('__\\0ecstackresult').\n // PENDING: is it reasonable? Do we need to remove the original dim from \"coord dim\" since\n // there has been stacked result dim?\n\n zrUtil.each(data.mapDimensionsAll(axisDim), function (dataDim) {\n // For example, the extent of the original dimension\n // is [0.1, 0.5], the extent of the `stackResultDimension`\n // is [7, 9], the final extent should NOT include [0.1, 0.5],\n // because there is no graphic corresponding to [0.1, 0.5].\n // See the case in `test/area-stack.html` `main1`, where area line\n // stack needs `yAxis` not start from 0.\n dataDimMap[getStackedDimension(data, dataDim)] = true;\n });\n return zrUtil.keys(dataDimMap);\n}\nexport function unionAxisExtentFromData(dataExtent, data, axisDim) {\n if (data) {\n zrUtil.each(getDataDimensionsOnAxis(data, axisDim), function (dim) {\n var seriesExtent = data.getApproximateExtent(dim);\n seriesExtent[0] < dataExtent[0] && (dataExtent[0] = seriesExtent[0]);\n seriesExtent[1] > dataExtent[1] && (dataExtent[1] = seriesExtent[1]);\n });\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nvar AxisModelCommonMixin =\n/** @class */\nfunction () {\n function AxisModelCommonMixin() {}\n\n AxisModelCommonMixin.prototype.getNeedCrossZero = function () {\n var option = this.option;\n return !option.scale;\n };\n /**\n * Should be implemented by each axis model if necessary.\n * @return coordinate system model\n */\n\n\n AxisModelCommonMixin.prototype.getCoordSysModel = function () {\n return;\n };\n\n return AxisModelCommonMixin;\n}();\n\nexport { AxisModelCommonMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport axisDefault from './axisDefault.js';\nimport { getLayoutParams, mergeLayoutParam, fetchLayoutMode } from '../util/layout.js';\nimport OrdinalMeta from '../data/OrdinalMeta.js';\nimport { AXIS_TYPES } from './axisCommonTypes.js';\nimport { each, merge } from 'zrender/lib/core/util.js';\n/**\n * Generate sub axis model class\n * @param axisName 'x' 'y' 'radius' 'angle' 'parallel' ...\n */\n\nexport default function axisModelCreator(registers, axisName, BaseAxisModelClass, extraDefaultOption) {\n each(AXIS_TYPES, function (v, axisType) {\n var defaultOption = merge(merge({}, axisDefault[axisType], true), extraDefaultOption, true);\n\n var AxisModel =\n /** @class */\n function (_super) {\n __extends(AxisModel, _super);\n\n function AxisModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = axisName + 'Axis.' + axisType;\n return _this;\n }\n\n AxisModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\n var layoutMode = fetchLayoutMode(this);\n var inputPositionParams = layoutMode ? getLayoutParams(option) : {};\n var themeModel = ecModel.getTheme();\n merge(option, themeModel.get(axisType + 'Axis'));\n merge(option, this.getDefaultOption());\n option.type = getAxisType(option);\n\n if (layoutMode) {\n mergeLayoutParam(option, inputPositionParams, layoutMode);\n }\n };\n\n AxisModel.prototype.optionUpdated = function () {\n var thisOption = this.option;\n\n if (thisOption.type === 'category') {\n this.__ordinalMeta = OrdinalMeta.createByAxisModel(this);\n }\n };\n /**\n * Should not be called before all of 'getInitailData' finished.\n * Because categories are collected during initializing data.\n */\n\n\n AxisModel.prototype.getCategories = function (rawData) {\n var option = this.option; // FIXME\n // warning if called before all of 'getInitailData' finished.\n\n if (option.type === 'category') {\n if (rawData) {\n return option.data;\n }\n\n return this.__ordinalMeta.categories;\n }\n };\n\n AxisModel.prototype.getOrdinalMeta = function () {\n return this.__ordinalMeta;\n };\n\n AxisModel.type = axisName + 'Axis.' + axisType;\n AxisModel.defaultOption = defaultOption;\n return AxisModel;\n }(BaseAxisModelClass);\n\n registers.registerComponentModel(AxisModel);\n });\n registers.registerSubTypeDefaulter(axisName + 'Axis', getAxisType);\n}\n\nfunction getAxisType(option) {\n // Default axis with data is category axis\n return option.type || (option.data ? 'category' : 'value');\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as textContain from 'zrender/lib/contain/text.js';\nimport { makeInner } from '../util/model.js';\nimport { makeLabelFormatter, getOptionCategoryInterval, shouldShowAllLabels } from './axisHelper.js';\nvar inner = makeInner();\nexport function createAxisLabels(axis) {\n // Only ordinal scale support tick interval\n return axis.type === 'category' ? makeCategoryLabels(axis) : makeRealNumberLabels(axis);\n}\n/**\n * @param {module:echats/coord/Axis} axis\n * @param {module:echarts/model/Model} tickModel For example, can be axisTick, splitLine, splitArea.\n * @return {Object} {\n * ticks: Array.\n * tickCategoryInterval: number\n * }\n */\n\nexport function createAxisTicks(axis, tickModel) {\n // Only ordinal scale support tick interval\n return axis.type === 'category' ? makeCategoryTicks(axis, tickModel) : {\n ticks: zrUtil.map(axis.scale.getTicks(), function (tick) {\n return tick.value;\n })\n };\n}\n\nfunction makeCategoryLabels(axis) {\n var labelModel = axis.getLabelModel();\n var result = makeCategoryLabelsActually(axis, labelModel);\n return !labelModel.get('show') || axis.scale.isBlank() ? {\n labels: [],\n labelCategoryInterval: result.labelCategoryInterval\n } : result;\n}\n\nfunction makeCategoryLabelsActually(axis, labelModel) {\n var labelsCache = getListCache(axis, 'labels');\n var optionLabelInterval = getOptionCategoryInterval(labelModel);\n var result = listCacheGet(labelsCache, optionLabelInterval);\n\n if (result) {\n return result;\n }\n\n var labels;\n var numericLabelInterval;\n\n if (zrUtil.isFunction(optionLabelInterval)) {\n labels = makeLabelsByCustomizedCategoryInterval(axis, optionLabelInterval);\n } else {\n numericLabelInterval = optionLabelInterval === 'auto' ? makeAutoCategoryInterval(axis) : optionLabelInterval;\n labels = makeLabelsByNumericCategoryInterval(axis, numericLabelInterval);\n } // Cache to avoid calling interval function repeatedly.\n\n\n return listCacheSet(labelsCache, optionLabelInterval, {\n labels: labels,\n labelCategoryInterval: numericLabelInterval\n });\n}\n\nfunction makeCategoryTicks(axis, tickModel) {\n var ticksCache = getListCache(axis, 'ticks');\n var optionTickInterval = getOptionCategoryInterval(tickModel);\n var result = listCacheGet(ticksCache, optionTickInterval);\n\n if (result) {\n return result;\n }\n\n var ticks;\n var tickCategoryInterval; // Optimize for the case that large category data and no label displayed,\n // we should not return all ticks.\n\n if (!tickModel.get('show') || axis.scale.isBlank()) {\n ticks = [];\n }\n\n if (zrUtil.isFunction(optionTickInterval)) {\n ticks = makeLabelsByCustomizedCategoryInterval(axis, optionTickInterval, true);\n } // Always use label interval by default despite label show. Consider this\n // scenario, Use multiple grid with the xAxis sync, and only one xAxis shows\n // labels. `splitLine` and `axisTick` should be consistent in this case.\n else if (optionTickInterval === 'auto') {\n var labelsResult = makeCategoryLabelsActually(axis, axis.getLabelModel());\n tickCategoryInterval = labelsResult.labelCategoryInterval;\n ticks = zrUtil.map(labelsResult.labels, function (labelItem) {\n return labelItem.tickValue;\n });\n } else {\n tickCategoryInterval = optionTickInterval;\n ticks = makeLabelsByNumericCategoryInterval(axis, tickCategoryInterval, true);\n } // Cache to avoid calling interval function repeatedly.\n\n\n return listCacheSet(ticksCache, optionTickInterval, {\n ticks: ticks,\n tickCategoryInterval: tickCategoryInterval\n });\n}\n\nfunction makeRealNumberLabels(axis) {\n var ticks = axis.scale.getTicks();\n var labelFormatter = makeLabelFormatter(axis);\n return {\n labels: zrUtil.map(ticks, function (tick, idx) {\n return {\n level: tick.level,\n formattedLabel: labelFormatter(tick, idx),\n rawLabel: axis.scale.getLabel(tick),\n tickValue: tick.value\n };\n })\n };\n}\n\nfunction getListCache(axis, prop) {\n // Because key can be a function, and cache size always is small, we use array cache.\n return inner(axis)[prop] || (inner(axis)[prop] = []);\n}\n\nfunction listCacheGet(cache, key) {\n for (var i = 0; i < cache.length; i++) {\n if (cache[i].key === key) {\n return cache[i].value;\n }\n }\n}\n\nfunction listCacheSet(cache, key, value) {\n cache.push({\n key: key,\n value: value\n });\n return value;\n}\n\nfunction makeAutoCategoryInterval(axis) {\n var result = inner(axis).autoInterval;\n return result != null ? result : inner(axis).autoInterval = axis.calculateCategoryInterval();\n}\n/**\n * Calculate interval for category axis ticks and labels.\n * To get precise result, at least one of `getRotate` and `isHorizontal`\n * should be implemented in axis.\n */\n\n\nexport function calculateCategoryInterval(axis) {\n var params = fetchAutoCategoryIntervalCalculationParams(axis);\n var labelFormatter = makeLabelFormatter(axis);\n var rotation = (params.axisRotate - params.labelRotate) / 180 * Math.PI;\n var ordinalScale = axis.scale;\n var ordinalExtent = ordinalScale.getExtent(); // Providing this method is for optimization:\n // avoid generating a long array by `getTicks`\n // in large category data case.\n\n var tickCount = ordinalScale.count();\n\n if (ordinalExtent[1] - ordinalExtent[0] < 1) {\n return 0;\n }\n\n var step = 1; // Simple optimization. Empirical value: tick count should less than 40.\n\n if (tickCount > 40) {\n step = Math.max(1, Math.floor(tickCount / 40));\n }\n\n var tickValue = ordinalExtent[0];\n var unitSpan = axis.dataToCoord(tickValue + 1) - axis.dataToCoord(tickValue);\n var unitW = Math.abs(unitSpan * Math.cos(rotation));\n var unitH = Math.abs(unitSpan * Math.sin(rotation));\n var maxW = 0;\n var maxH = 0; // Caution: Performance sensitive for large category data.\n // Consider dataZoom, we should make appropriate step to avoid O(n) loop.\n\n for (; tickValue <= ordinalExtent[1]; tickValue += step) {\n var width = 0;\n var height = 0; // Not precise, do not consider align and vertical align\n // and each distance from axis line yet.\n\n var rect = textContain.getBoundingRect(labelFormatter({\n value: tickValue\n }), params.font, 'center', 'top'); // Magic number\n\n width = rect.width * 1.3;\n height = rect.height * 1.3; // Min size, void long loop.\n\n maxW = Math.max(maxW, width, 7);\n maxH = Math.max(maxH, height, 7);\n }\n\n var dw = maxW / unitW;\n var dh = maxH / unitH; // 0/0 is NaN, 1/0 is Infinity.\n\n isNaN(dw) && (dw = Infinity);\n isNaN(dh) && (dh = Infinity);\n var interval = Math.max(0, Math.floor(Math.min(dw, dh)));\n var cache = inner(axis.model);\n var axisExtent = axis.getExtent();\n var lastAutoInterval = cache.lastAutoInterval;\n var lastTickCount = cache.lastTickCount; // Use cache to keep interval stable while moving zoom window,\n // otherwise the calculated interval might jitter when the zoom\n // window size is close to the interval-changing size.\n // For example, if all of the axis labels are `a, b, c, d, e, f, g`.\n // The jitter will cause that sometimes the displayed labels are\n // `a, d, g` (interval: 2) sometimes `a, c, e`(interval: 1).\n\n if (lastAutoInterval != null && lastTickCount != null && Math.abs(lastAutoInterval - interval) <= 1 && Math.abs(lastTickCount - tickCount) <= 1 // Always choose the bigger one, otherwise the critical\n // point is not the same when zooming in or zooming out.\n && lastAutoInterval > interval // If the axis change is caused by chart resize, the cache should not\n // be used. Otherwise some hidden labels might not be shown again.\n && cache.axisExtent0 === axisExtent[0] && cache.axisExtent1 === axisExtent[1]) {\n interval = lastAutoInterval;\n } // Only update cache if cache not used, otherwise the\n // changing of interval is too insensitive.\n else {\n cache.lastTickCount = tickCount;\n cache.lastAutoInterval = interval;\n cache.axisExtent0 = axisExtent[0];\n cache.axisExtent1 = axisExtent[1];\n }\n\n return interval;\n}\n\nfunction fetchAutoCategoryIntervalCalculationParams(axis) {\n var labelModel = axis.getLabelModel();\n return {\n axisRotate: axis.getRotate ? axis.getRotate() : axis.isHorizontal && !axis.isHorizontal() ? 90 : 0,\n labelRotate: labelModel.get('rotate') || 0,\n font: labelModel.getFont()\n };\n}\n\nfunction makeLabelsByNumericCategoryInterval(axis, categoryInterval, onlyTick) {\n var labelFormatter = makeLabelFormatter(axis);\n var ordinalScale = axis.scale;\n var ordinalExtent = ordinalScale.getExtent();\n var labelModel = axis.getLabelModel();\n var result = []; // TODO: axisType: ordinalTime, pick the tick from each month/day/year/...\n\n var step = Math.max((categoryInterval || 0) + 1, 1);\n var startTick = ordinalExtent[0];\n var tickCount = ordinalScale.count(); // Calculate start tick based on zero if possible to keep label consistent\n // while zooming and moving while interval > 0. Otherwise the selection\n // of displayable ticks and symbols probably keep changing.\n // 3 is empirical value.\n\n if (startTick !== 0 && step > 1 && tickCount / step > 2) {\n startTick = Math.round(Math.ceil(startTick / step) * step);\n } // (1) Only add min max label here but leave overlap checking\n // to render stage, which also ensure the returned list\n // suitable for splitLine and splitArea rendering.\n // (2) Scales except category always contain min max label so\n // do not need to perform this process.\n\n\n var showAllLabel = shouldShowAllLabels(axis);\n var includeMinLabel = labelModel.get('showMinLabel') || showAllLabel;\n var includeMaxLabel = labelModel.get('showMaxLabel') || showAllLabel;\n\n if (includeMinLabel && startTick !== ordinalExtent[0]) {\n addItem(ordinalExtent[0]);\n } // Optimize: avoid generating large array by `ordinalScale.getTicks()`.\n\n\n var tickValue = startTick;\n\n for (; tickValue <= ordinalExtent[1]; tickValue += step) {\n addItem(tickValue);\n }\n\n if (includeMaxLabel && tickValue - step !== ordinalExtent[1]) {\n addItem(ordinalExtent[1]);\n }\n\n function addItem(tickValue) {\n var tickObj = {\n value: tickValue\n };\n result.push(onlyTick ? tickValue : {\n formattedLabel: labelFormatter(tickObj),\n rawLabel: ordinalScale.getLabel(tickObj),\n tickValue: tickValue\n });\n }\n\n return result;\n}\n\nfunction makeLabelsByCustomizedCategoryInterval(axis, categoryInterval, onlyTick) {\n var ordinalScale = axis.scale;\n var labelFormatter = makeLabelFormatter(axis);\n var result = [];\n zrUtil.each(ordinalScale.getTicks(), function (tick) {\n var rawLabel = ordinalScale.getLabel(tick);\n var tickValue = tick.value;\n\n if (categoryInterval(tick.value, rawLabel)) {\n result.push(onlyTick ? tickValue : {\n formattedLabel: labelFormatter(tick),\n rawLabel: rawLabel,\n tickValue: tickValue\n });\n }\n });\n return result;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as layout from '../../util/layout.js';\nimport * as numberUtil from '../../util/number.js'; // (24*60*60*1000)\n\nvar PROXIMATE_ONE_DAY = 86400000;\n\nvar Calendar =\n/** @class */\nfunction () {\n function Calendar(calendarModel, ecModel, api) {\n this.type = 'calendar';\n this.dimensions = Calendar.dimensions; // Required in createListFromData\n\n this.getDimensionsInfo = Calendar.getDimensionsInfo;\n this._model = calendarModel;\n }\n\n Calendar.getDimensionsInfo = function () {\n return [{\n name: 'time',\n type: 'time'\n }, 'value'];\n };\n\n Calendar.prototype.getRangeInfo = function () {\n return this._rangeInfo;\n };\n\n Calendar.prototype.getModel = function () {\n return this._model;\n };\n\n Calendar.prototype.getRect = function () {\n return this._rect;\n };\n\n Calendar.prototype.getCellWidth = function () {\n return this._sw;\n };\n\n Calendar.prototype.getCellHeight = function () {\n return this._sh;\n };\n\n Calendar.prototype.getOrient = function () {\n return this._orient;\n };\n /**\n * getFirstDayOfWeek\n *\n * @example\n * 0 : start at Sunday\n * 1 : start at Monday\n *\n * @return {number}\n */\n\n\n Calendar.prototype.getFirstDayOfWeek = function () {\n return this._firstDayOfWeek;\n };\n /**\n * get date info\n * }\n */\n\n\n Calendar.prototype.getDateInfo = function (date) {\n date = numberUtil.parseDate(date);\n var y = date.getFullYear();\n var m = date.getMonth() + 1;\n var mStr = m < 10 ? '0' + m : '' + m;\n var d = date.getDate();\n var dStr = d < 10 ? '0' + d : '' + d;\n var day = date.getDay();\n day = Math.abs((day + 7 - this.getFirstDayOfWeek()) % 7);\n return {\n y: y + '',\n m: mStr,\n d: dStr,\n day: day,\n time: date.getTime(),\n formatedDate: y + '-' + mStr + '-' + dStr,\n date: date\n };\n };\n\n Calendar.prototype.getNextNDay = function (date, n) {\n n = n || 0;\n\n if (n === 0) {\n return this.getDateInfo(date);\n }\n\n date = new Date(this.getDateInfo(date).time);\n date.setDate(date.getDate() + n);\n return this.getDateInfo(date);\n };\n\n Calendar.prototype.update = function (ecModel, api) {\n this._firstDayOfWeek = +this._model.getModel('dayLabel').get('firstDay');\n this._orient = this._model.get('orient');\n this._lineWidth = this._model.getModel('itemStyle').getItemStyle().lineWidth || 0;\n this._rangeInfo = this._getRangeInfo(this._initRangeOption());\n var weeks = this._rangeInfo.weeks || 1;\n var whNames = ['width', 'height'];\n\n var cellSize = this._model.getCellSize().slice();\n\n var layoutParams = this._model.getBoxLayoutParams();\n\n var cellNumbers = this._orient === 'horizontal' ? [weeks, 7] : [7, weeks];\n zrUtil.each([0, 1], function (idx) {\n if (cellSizeSpecified(cellSize, idx)) {\n layoutParams[whNames[idx]] = cellSize[idx] * cellNumbers[idx];\n }\n });\n var whGlobal = {\n width: api.getWidth(),\n height: api.getHeight()\n };\n var calendarRect = this._rect = layout.getLayoutRect(layoutParams, whGlobal);\n zrUtil.each([0, 1], function (idx) {\n if (!cellSizeSpecified(cellSize, idx)) {\n cellSize[idx] = calendarRect[whNames[idx]] / cellNumbers[idx];\n }\n });\n\n function cellSizeSpecified(cellSize, idx) {\n return cellSize[idx] != null && cellSize[idx] !== 'auto';\n } // Has been calculated out number.\n\n\n this._sw = cellSize[0];\n this._sh = cellSize[1];\n };\n /**\n * Convert a time data(time, value) item to (x, y) point.\n */\n // TODO Clamp of calendar is not same with cartesian coordinate systems.\n // It will return NaN if data exceeds.\n\n\n Calendar.prototype.dataToPoint = function (data, clamp) {\n zrUtil.isArray(data) && (data = data[0]);\n clamp == null && (clamp = true);\n var dayInfo = this.getDateInfo(data);\n var range = this._rangeInfo;\n var date = dayInfo.formatedDate; // if not in range return [NaN, NaN]\n\n if (clamp && !(dayInfo.time >= range.start.time && dayInfo.time < range.end.time + PROXIMATE_ONE_DAY)) {\n return [NaN, NaN];\n }\n\n var week = dayInfo.day;\n\n var nthWeek = this._getRangeInfo([range.start.time, date]).nthWeek;\n\n if (this._orient === 'vertical') {\n return [this._rect.x + week * this._sw + this._sw / 2, this._rect.y + nthWeek * this._sh + this._sh / 2];\n }\n\n return [this._rect.x + nthWeek * this._sw + this._sw / 2, this._rect.y + week * this._sh + this._sh / 2];\n };\n /**\n * Convert a (x, y) point to time data\n */\n\n\n Calendar.prototype.pointToData = function (point) {\n var date = this.pointToDate(point);\n return date && date.time;\n };\n /**\n * Convert a time date item to (x, y) four point.\n */\n\n\n Calendar.prototype.dataToRect = function (data, clamp) {\n var point = this.dataToPoint(data, clamp);\n return {\n contentShape: {\n x: point[0] - (this._sw - this._lineWidth) / 2,\n y: point[1] - (this._sh - this._lineWidth) / 2,\n width: this._sw - this._lineWidth,\n height: this._sh - this._lineWidth\n },\n center: point,\n tl: [point[0] - this._sw / 2, point[1] - this._sh / 2],\n tr: [point[0] + this._sw / 2, point[1] - this._sh / 2],\n br: [point[0] + this._sw / 2, point[1] + this._sh / 2],\n bl: [point[0] - this._sw / 2, point[1] + this._sh / 2]\n };\n };\n /**\n * Convert a (x, y) point to time date\n *\n * @param {Array} point point\n * @return {Object} date\n */\n\n\n Calendar.prototype.pointToDate = function (point) {\n var nthX = Math.floor((point[0] - this._rect.x) / this._sw) + 1;\n var nthY = Math.floor((point[1] - this._rect.y) / this._sh) + 1;\n var range = this._rangeInfo.range;\n\n if (this._orient === 'vertical') {\n return this._getDateByWeeksAndDay(nthY, nthX - 1, range);\n }\n\n return this._getDateByWeeksAndDay(nthX, nthY - 1, range);\n };\n\n Calendar.prototype.convertToPixel = function (ecModel, finder, value) {\n var coordSys = getCoordSys(finder);\n return coordSys === this ? coordSys.dataToPoint(value) : null;\n };\n\n Calendar.prototype.convertFromPixel = function (ecModel, finder, pixel) {\n var coordSys = getCoordSys(finder);\n return coordSys === this ? coordSys.pointToData(pixel) : null;\n };\n\n Calendar.prototype.containPoint = function (point) {\n console.warn('Not implemented.');\n return false;\n };\n /**\n * initRange\n * Normalize to an [start, end] array\n */\n\n\n Calendar.prototype._initRangeOption = function () {\n var range = this._model.get('range');\n\n var normalizedRange; // Convert [1990] to 1990\n\n if (zrUtil.isArray(range) && range.length === 1) {\n range = range[0];\n }\n\n if (!zrUtil.isArray(range)) {\n var rangeStr = range.toString(); // One year.\n\n if (/^\\d{4}$/.test(rangeStr)) {\n normalizedRange = [rangeStr + '-01-01', rangeStr + '-12-31'];\n } // One month\n\n\n if (/^\\d{4}[\\/|-]\\d{1,2}$/.test(rangeStr)) {\n var start = this.getDateInfo(rangeStr);\n var firstDay = start.date;\n firstDay.setMonth(firstDay.getMonth() + 1);\n var end = this.getNextNDay(firstDay, -1);\n normalizedRange = [start.formatedDate, end.formatedDate];\n } // One day\n\n\n if (/^\\d{4}[\\/|-]\\d{1,2}[\\/|-]\\d{1,2}$/.test(rangeStr)) {\n normalizedRange = [rangeStr, rangeStr];\n }\n } else {\n normalizedRange = range;\n }\n\n if (!normalizedRange) {\n if (process.env.NODE_ENV !== 'production') {\n zrUtil.logError('Invalid date range.');\n } // Not handling it.\n\n\n return range;\n }\n\n var tmp = this._getRangeInfo(normalizedRange);\n\n if (tmp.start.time > tmp.end.time) {\n normalizedRange.reverse();\n }\n\n return normalizedRange;\n };\n /**\n * range info\n *\n * @private\n * @param {Array} range range ['2017-01-01', '2017-07-08']\n * If range[0] > range[1], they will not be reversed.\n * @return {Object} obj\n */\n\n\n Calendar.prototype._getRangeInfo = function (range) {\n var parsedRange = [this.getDateInfo(range[0]), this.getDateInfo(range[1])];\n var reversed;\n\n if (parsedRange[0].time > parsedRange[1].time) {\n reversed = true;\n parsedRange.reverse();\n }\n\n var allDay = Math.floor(parsedRange[1].time / PROXIMATE_ONE_DAY) - Math.floor(parsedRange[0].time / PROXIMATE_ONE_DAY) + 1; // Consider case1 (#11677 #10430):\n // Set the system timezone as \"UK\", set the range to `['2016-07-01', '2016-12-31']`\n // Consider case2:\n // Firstly set system timezone as \"Time Zone: America/Toronto\",\n // ```\n // let first = new Date(1478412000000 - 3600 * 1000 * 2.5);\n // let second = new Date(1478412000000);\n // let allDays = Math.floor(second / ONE_DAY) - Math.floor(first / ONE_DAY) + 1;\n // ```\n // will get wrong result because of DST. So we should fix it.\n\n var date = new Date(parsedRange[0].time);\n var startDateNum = date.getDate();\n var endDateNum = parsedRange[1].date.getDate();\n date.setDate(startDateNum + allDay - 1); // The bias can not over a month, so just compare date.\n\n var dateNum = date.getDate();\n\n if (dateNum !== endDateNum) {\n var sign = date.getTime() - parsedRange[1].time > 0 ? 1 : -1;\n\n while ((dateNum = date.getDate()) !== endDateNum && (date.getTime() - parsedRange[1].time) * sign > 0) {\n allDay -= sign;\n date.setDate(dateNum - sign);\n }\n }\n\n var weeks = Math.floor((allDay + parsedRange[0].day + 6) / 7);\n var nthWeek = reversed ? -weeks + 1 : weeks - 1;\n reversed && parsedRange.reverse();\n return {\n range: [parsedRange[0].formatedDate, parsedRange[1].formatedDate],\n start: parsedRange[0],\n end: parsedRange[1],\n allDay: allDay,\n weeks: weeks,\n // From 0.\n nthWeek: nthWeek,\n fweek: parsedRange[0].day,\n lweek: parsedRange[1].day\n };\n };\n /**\n * get date by nthWeeks and week day in range\n *\n * @private\n * @param {number} nthWeek the week\n * @param {number} day the week day\n * @param {Array} range [d1, d2]\n * @return {Object}\n */\n\n\n Calendar.prototype._getDateByWeeksAndDay = function (nthWeek, day, range) {\n var rangeInfo = this._getRangeInfo(range);\n\n if (nthWeek > rangeInfo.weeks || nthWeek === 0 && day < rangeInfo.fweek || nthWeek === rangeInfo.weeks && day > rangeInfo.lweek) {\n return null;\n }\n\n var nthDay = (nthWeek - 1) * 7 - rangeInfo.fweek + day;\n var date = new Date(rangeInfo.start.time);\n date.setDate(+rangeInfo.start.d + nthDay);\n return this.getDateInfo(date);\n };\n\n Calendar.create = function (ecModel, api) {\n var calendarList = [];\n ecModel.eachComponent('calendar', function (calendarModel) {\n var calendar = new Calendar(calendarModel, ecModel, api);\n calendarList.push(calendar);\n calendarModel.coordinateSystem = calendar;\n });\n ecModel.eachSeries(function (calendarSeries) {\n if (calendarSeries.get('coordinateSystem') === 'calendar') {\n // Inject coordinate system\n calendarSeries.coordinateSystem = calendarList[calendarSeries.get('calendarIndex') || 0];\n }\n });\n return calendarList;\n };\n\n Calendar.dimensions = ['time', 'value'];\n return Calendar;\n}();\n\nfunction getCoordSys(finder) {\n var calendarModel = finder.calendarModel;\n var seriesModel = finder.seriesModel;\n var coordSys = calendarModel ? calendarModel.coordinateSystem : seriesModel ? seriesModel.coordinateSystem : null;\n return coordSys;\n}\n\nexport default Calendar;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport ComponentModel from '../../model/Component.js';\nimport { getLayoutParams, sizeCalculable, mergeLayoutParam } from '../../util/layout.js';\n\nvar CalendarModel =\n/** @class */\nfunction (_super) {\n __extends(CalendarModel, _super);\n\n function CalendarModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = CalendarModel.type;\n return _this;\n }\n /**\n * @override\n */\n\n\n CalendarModel.prototype.init = function (option, parentModel, ecModel) {\n var inputPositionParams = getLayoutParams(option);\n\n _super.prototype.init.apply(this, arguments);\n\n mergeAndNormalizeLayoutParams(option, inputPositionParams);\n };\n /**\n * @override\n */\n\n\n CalendarModel.prototype.mergeOption = function (option) {\n _super.prototype.mergeOption.apply(this, arguments);\n\n mergeAndNormalizeLayoutParams(this.option, option);\n };\n\n CalendarModel.prototype.getCellSize = function () {\n // Has been normalized\n return this.option.cellSize;\n };\n\n CalendarModel.type = 'calendar';\n CalendarModel.defaultOption = {\n // zlevel: 0,\n z: 2,\n left: 80,\n top: 60,\n cellSize: 20,\n // horizontal vertical\n orient: 'horizontal',\n // month separate line style\n splitLine: {\n show: true,\n lineStyle: {\n color: '#000',\n width: 1,\n type: 'solid'\n }\n },\n // rect style temporarily unused emphasis\n itemStyle: {\n color: '#fff',\n borderWidth: 1,\n borderColor: '#ccc'\n },\n // week text style\n dayLabel: {\n show: true,\n firstDay: 0,\n // start end\n position: 'start',\n margin: '50%',\n color: '#000'\n },\n // month text style\n monthLabel: {\n show: true,\n // start end\n position: 'start',\n margin: 5,\n // center or left\n align: 'center',\n formatter: null,\n color: '#000'\n },\n // year text style\n yearLabel: {\n show: true,\n // top bottom left right\n position: null,\n margin: 30,\n formatter: null,\n color: '#ccc',\n fontFamily: 'sans-serif',\n fontWeight: 'bolder',\n fontSize: 20\n }\n };\n return CalendarModel;\n}(ComponentModel);\n\nfunction mergeAndNormalizeLayoutParams(target, raw) {\n // Normalize cellSize\n var cellSize = target.cellSize;\n var cellSizeArr;\n\n if (!zrUtil.isArray(cellSize)) {\n cellSizeArr = target.cellSize = [cellSize, cellSize];\n } else {\n cellSizeArr = cellSize;\n }\n\n if (cellSizeArr.length === 1) {\n cellSizeArr[1] = cellSizeArr[0];\n }\n\n var ignoreSize = zrUtil.map([0, 1], function (hvIdx) {\n // If user have set `width` or both `left` and `right`, cellSizeArr\n // will be automatically set to 'auto', otherwise the default\n // setting of cellSizeArr will make `width` setting not work.\n if (sizeCalculable(raw, hvIdx)) {\n cellSizeArr[hvIdx] = 'auto';\n }\n\n return cellSizeArr[hvIdx] != null && cellSizeArr[hvIdx] !== 'auto';\n });\n mergeLayoutParam(target, raw, {\n type: 'box',\n ignoreSize: ignoreSize\n });\n}\n\nexport default CalendarModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nexport default function calendarPrepareCustom(coordSys) {\n var rect = coordSys.getRect();\n var rangeInfo = coordSys.getRangeInfo();\n return {\n coordSys: {\n type: 'calendar',\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height,\n cellWidth: coordSys.getCellWidth(),\n cellHeight: coordSys.getCellHeight(),\n rangeInfo: {\n start: rangeInfo.start,\n end: rangeInfo.end,\n weeks: rangeInfo.weeks,\n dayCount: rangeInfo.allDay\n }\n },\n api: {\n coord: function (data, clamp) {\n return coordSys.dataToPoint(data, clamp);\n }\n }\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport Axis from '../Axis.js';\n\nvar Axis2D =\n/** @class */\nfunction (_super) {\n __extends(Axis2D, _super);\n\n function Axis2D(dim, scale, coordExtent, axisType, position) {\n var _this = _super.call(this, dim, scale, coordExtent) || this;\n /**\n * Index of axis, can be used as key\n * Injected outside.\n */\n\n\n _this.index = 0;\n _this.type = axisType || 'value';\n _this.position = position || 'bottom';\n return _this;\n }\n\n Axis2D.prototype.isHorizontal = function () {\n var position = this.position;\n return position === 'top' || position === 'bottom';\n };\n /**\n * Each item cooresponds to this.getExtent(), which\n * means globalExtent[0] may greater than globalExtent[1],\n * unless `asc` is input.\n *\n * @param {boolean} [asc]\n * @return {Array.}\n */\n\n\n Axis2D.prototype.getGlobalExtent = function (asc) {\n var ret = this.getExtent();\n ret[0] = this.toGlobalCoord(ret[0]);\n ret[1] = this.toGlobalCoord(ret[1]);\n asc && ret[0] > ret[1] && ret.reverse();\n return ret;\n };\n\n Axis2D.prototype.pointToData = function (point, clamp) {\n return this.coordToData(this.toLocalCoord(point[this.dim === 'x' ? 0 : 1]), clamp);\n };\n /**\n * Set ordinalSortInfo\n * @param info new OrdinalSortInfo\n */\n\n\n Axis2D.prototype.setCategorySortInfo = function (info) {\n if (this.type !== 'category') {\n return false;\n }\n\n this.model.option.categorySortInfo = info;\n this.scale.setSortInfo(info);\n };\n\n return Axis2D;\n}(Axis);\n\nexport default Axis2D;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport ComponentModel from '../../model/Component.js';\nimport { AxisModelCommonMixin } from '../axisModelCommonMixin.js';\nimport { SINGLE_REFERRING } from '../../util/model.js';\n\nvar CartesianAxisModel =\n/** @class */\nfunction (_super) {\n __extends(CartesianAxisModel, _super);\n\n function CartesianAxisModel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n CartesianAxisModel.prototype.getCoordSysModel = function () {\n return this.getReferringComponents('grid', SINGLE_REFERRING).models[0];\n };\n\n CartesianAxisModel.type = 'cartesian2dAxis';\n return CartesianAxisModel;\n}(ComponentModel);\n\nexport { CartesianAxisModel };\nzrUtil.mixin(CartesianAxisModel, AxisModelCommonMixin);\nexport default CartesianAxisModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\n\nvar Cartesian =\n/** @class */\nfunction () {\n function Cartesian(name) {\n this.type = 'cartesian';\n this._dimList = [];\n this._axes = {};\n this.name = name || '';\n }\n\n Cartesian.prototype.getAxis = function (dim) {\n return this._axes[dim];\n };\n\n Cartesian.prototype.getAxes = function () {\n return zrUtil.map(this._dimList, function (dim) {\n return this._axes[dim];\n }, this);\n };\n\n Cartesian.prototype.getAxesByScale = function (scaleType) {\n scaleType = scaleType.toLowerCase();\n return zrUtil.filter(this.getAxes(), function (axis) {\n return axis.scale.type === scaleType;\n });\n };\n\n Cartesian.prototype.addAxis = function (axis) {\n var dim = axis.dim;\n this._axes[dim] = axis;\n\n this._dimList.push(dim);\n };\n\n return Cartesian;\n}();\n\n;\nexport default Cartesian;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport BoundingRect from 'zrender/lib/core/BoundingRect.js';\nimport Cartesian from './Cartesian.js';\nimport { invert } from 'zrender/lib/core/matrix.js';\nimport { applyTransform } from 'zrender/lib/core/vector.js';\nexport var cartesian2DDimensions = ['x', 'y'];\n\nfunction canCalculateAffineTransform(scale) {\n return scale.type === 'interval' || scale.type === 'time';\n}\n\nvar Cartesian2D =\n/** @class */\nfunction (_super) {\n __extends(Cartesian2D, _super);\n\n function Cartesian2D() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = 'cartesian2d';\n _this.dimensions = cartesian2DDimensions;\n return _this;\n }\n /**\n * Calculate an affine transform matrix if two axes are time or value.\n * It's mainly for accelartion on the large time series data.\n */\n\n\n Cartesian2D.prototype.calcAffineTransform = function () {\n this._transform = this._invTransform = null;\n var xAxisScale = this.getAxis('x').scale;\n var yAxisScale = this.getAxis('y').scale;\n\n if (!canCalculateAffineTransform(xAxisScale) || !canCalculateAffineTransform(yAxisScale)) {\n return;\n }\n\n var xScaleExtent = xAxisScale.getExtent();\n var yScaleExtent = yAxisScale.getExtent();\n var start = this.dataToPoint([xScaleExtent[0], yScaleExtent[0]]);\n var end = this.dataToPoint([xScaleExtent[1], yScaleExtent[1]]);\n var xScaleSpan = xScaleExtent[1] - xScaleExtent[0];\n var yScaleSpan = yScaleExtent[1] - yScaleExtent[0];\n\n if (!xScaleSpan || !yScaleSpan) {\n return;\n } // Accelerate data to point calculation on the special large time series data.\n\n\n var scaleX = (end[0] - start[0]) / xScaleSpan;\n var scaleY = (end[1] - start[1]) / yScaleSpan;\n var translateX = start[0] - xScaleExtent[0] * scaleX;\n var translateY = start[1] - yScaleExtent[0] * scaleY;\n var m = this._transform = [scaleX, 0, 0, scaleY, translateX, translateY];\n this._invTransform = invert([], m);\n };\n /**\n * Base axis will be used on stacking.\n */\n\n\n Cartesian2D.prototype.getBaseAxis = function () {\n return this.getAxesByScale('ordinal')[0] || this.getAxesByScale('time')[0] || this.getAxis('x');\n };\n\n Cartesian2D.prototype.containPoint = function (point) {\n var axisX = this.getAxis('x');\n var axisY = this.getAxis('y');\n return axisX.contain(axisX.toLocalCoord(point[0])) && axisY.contain(axisY.toLocalCoord(point[1]));\n };\n\n Cartesian2D.prototype.containData = function (data) {\n return this.getAxis('x').containData(data[0]) && this.getAxis('y').containData(data[1]);\n };\n\n Cartesian2D.prototype.containZone = function (data1, data2) {\n var zoneDiag1 = this.dataToPoint(data1);\n var zoneDiag2 = this.dataToPoint(data2);\n var area = this.getArea();\n var zone = new BoundingRect(zoneDiag1[0], zoneDiag1[1], zoneDiag2[0] - zoneDiag1[0], zoneDiag2[1] - zoneDiag1[1]);\n return area.intersect(zone);\n };\n\n Cartesian2D.prototype.dataToPoint = function (data, clamp, out) {\n out = out || [];\n var xVal = data[0];\n var yVal = data[1]; // Fast path\n\n if (this._transform // It's supported that if data is like `[Inifity, 123]`, where only Y pixel calculated.\n && xVal != null && isFinite(xVal) && yVal != null && isFinite(yVal)) {\n return applyTransform(out, data, this._transform);\n }\n\n var xAxis = this.getAxis('x');\n var yAxis = this.getAxis('y');\n out[0] = xAxis.toGlobalCoord(xAxis.dataToCoord(xVal, clamp));\n out[1] = yAxis.toGlobalCoord(yAxis.dataToCoord(yVal, clamp));\n return out;\n };\n\n Cartesian2D.prototype.clampData = function (data, out) {\n var xScale = this.getAxis('x').scale;\n var yScale = this.getAxis('y').scale;\n var xAxisExtent = xScale.getExtent();\n var yAxisExtent = yScale.getExtent();\n var x = xScale.parse(data[0]);\n var y = yScale.parse(data[1]);\n out = out || [];\n out[0] = Math.min(Math.max(Math.min(xAxisExtent[0], xAxisExtent[1]), x), Math.max(xAxisExtent[0], xAxisExtent[1]));\n out[1] = Math.min(Math.max(Math.min(yAxisExtent[0], yAxisExtent[1]), y), Math.max(yAxisExtent[0], yAxisExtent[1]));\n return out;\n };\n\n Cartesian2D.prototype.pointToData = function (point, clamp) {\n var out = [];\n\n if (this._invTransform) {\n return applyTransform(out, point, this._invTransform);\n }\n\n var xAxis = this.getAxis('x');\n var yAxis = this.getAxis('y');\n out[0] = xAxis.coordToData(xAxis.toLocalCoord(point[0]), clamp);\n out[1] = yAxis.coordToData(yAxis.toLocalCoord(point[1]), clamp);\n return out;\n };\n\n Cartesian2D.prototype.getOtherAxis = function (axis) {\n return this.getAxis(axis.dim === 'x' ? 'y' : 'x');\n };\n /**\n * Get rect area of cartesian.\n * Area will have a contain function to determine if a point is in the coordinate system.\n */\n\n\n Cartesian2D.prototype.getArea = function () {\n var xExtent = this.getAxis('x').getGlobalExtent();\n var yExtent = this.getAxis('y').getGlobalExtent();\n var x = Math.min(xExtent[0], xExtent[1]);\n var y = Math.min(yExtent[0], yExtent[1]);\n var width = Math.max(xExtent[0], xExtent[1]) - x;\n var height = Math.max(yExtent[0], yExtent[1]) - y;\n return new BoundingRect(x, y, width, height);\n };\n\n return Cartesian2D;\n}(Cartesian);\n\n;\nexport default Cartesian2D;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Grid is a region which contains at most 4 cartesian systems\n *\n * TODO Default cartesian\n */\nimport { isObject, each, indexOf, retrieve3, keys } from 'zrender/lib/core/util.js';\nimport { getLayoutRect } from '../../util/layout.js';\nimport { createScaleByModel, ifAxisCrossZero, niceScaleExtent, estimateLabelUnionRect, getDataDimensionsOnAxis } from '../../coord/axisHelper.js';\nimport Cartesian2D, { cartesian2DDimensions } from './Cartesian2D.js';\nimport Axis2D from './Axis2D.js';\nimport { SINGLE_REFERRING } from '../../util/model.js';\nimport { isCartesian2DSeries, findAxisModels } from './cartesianAxisHelper.js';\nimport { isIntervalOrLogScale } from '../../scale/helper.js';\nimport { alignScaleTicks } from '../axisAlignTicks.js';\n\nvar Grid =\n/** @class */\nfunction () {\n function Grid(gridModel, ecModel, api) {\n // FIXME:TS where used (different from registered type 'cartesian2d')?\n this.type = 'grid';\n this._coordsMap = {};\n this._coordsList = [];\n this._axesMap = {};\n this._axesList = [];\n this.axisPointerEnabled = true;\n this.dimensions = cartesian2DDimensions;\n\n this._initCartesian(gridModel, ecModel, api);\n\n this.model = gridModel;\n }\n\n Grid.prototype.getRect = function () {\n return this._rect;\n };\n\n Grid.prototype.update = function (ecModel, api) {\n var axesMap = this._axesMap;\n\n this._updateScale(ecModel, this.model);\n\n function updateAxisTicks(axes) {\n var alignTo; // Axis is added in order of axisIndex.\n\n var axesIndices = keys(axes);\n var len = axesIndices.length;\n\n if (!len) {\n return;\n }\n\n var axisNeedsAlign = []; // Process once and calculate the ticks for those don't use alignTicks.\n\n for (var i = len - 1; i >= 0; i--) {\n var idx = +axesIndices[i]; // Convert to number.\n\n var axis = axes[idx];\n var model = axis.model;\n var scale = axis.scale;\n\n if ( // Only value and log axis without interval support alignTicks.\n isIntervalOrLogScale(scale) && model.get('alignTicks') && model.get('interval') == null) {\n axisNeedsAlign.push(axis);\n } else {\n niceScaleExtent(scale, model);\n\n if (isIntervalOrLogScale(scale)) {\n // Can only align to interval or log axis.\n alignTo = axis;\n }\n }\n }\n\n ; // All axes has set alignTicks. Pick the first one.\n // PENDING. Should we find the axis that both set interval, min, max and align to this one?\n\n if (axisNeedsAlign.length) {\n if (!alignTo) {\n alignTo = axisNeedsAlign.pop();\n niceScaleExtent(alignTo.scale, alignTo.model);\n }\n\n each(axisNeedsAlign, function (axis) {\n alignScaleTicks(axis.scale, axis.model, alignTo.scale);\n });\n }\n }\n\n updateAxisTicks(axesMap.x);\n updateAxisTicks(axesMap.y); // Key: axisDim_axisIndex, value: boolean, whether onZero target.\n\n var onZeroRecords = {};\n each(axesMap.x, function (xAxis) {\n fixAxisOnZero(axesMap, 'y', xAxis, onZeroRecords);\n });\n each(axesMap.y, function (yAxis) {\n fixAxisOnZero(axesMap, 'x', yAxis, onZeroRecords);\n }); // Resize again if containLabel is enabled\n // FIXME It may cause getting wrong grid size in data processing stage\n\n this.resize(this.model, api);\n };\n /**\n * Resize the grid\n */\n\n\n Grid.prototype.resize = function (gridModel, api, ignoreContainLabel) {\n var boxLayoutParams = gridModel.getBoxLayoutParams();\n var isContainLabel = !ignoreContainLabel && gridModel.get('containLabel');\n var gridRect = getLayoutRect(boxLayoutParams, {\n width: api.getWidth(),\n height: api.getHeight()\n });\n this._rect = gridRect;\n var axesList = this._axesList;\n adjustAxes(); // Minus label size\n\n if (isContainLabel) {\n each(axesList, function (axis) {\n if (!axis.model.get(['axisLabel', 'inside'])) {\n var labelUnionRect = estimateLabelUnionRect(axis);\n\n if (labelUnionRect) {\n var dim = axis.isHorizontal() ? 'height' : 'width';\n var margin = axis.model.get(['axisLabel', 'margin']);\n gridRect[dim] -= labelUnionRect[dim] + margin;\n\n if (axis.position === 'top') {\n gridRect.y += labelUnionRect.height + margin;\n } else if (axis.position === 'left') {\n gridRect.x += labelUnionRect.width + margin;\n }\n }\n }\n });\n adjustAxes();\n }\n\n each(this._coordsList, function (coord) {\n // Calculate affine matrix to accelerate the data to point transform.\n // If all the axes scales are time or value.\n coord.calcAffineTransform();\n });\n\n function adjustAxes() {\n each(axesList, function (axis) {\n var isHorizontal = axis.isHorizontal();\n var extent = isHorizontal ? [0, gridRect.width] : [0, gridRect.height];\n var idx = axis.inverse ? 1 : 0;\n axis.setExtent(extent[idx], extent[1 - idx]);\n updateAxisTransform(axis, isHorizontal ? gridRect.x : gridRect.y);\n });\n }\n };\n\n Grid.prototype.getAxis = function (dim, axisIndex) {\n var axesMapOnDim = this._axesMap[dim];\n\n if (axesMapOnDim != null) {\n return axesMapOnDim[axisIndex || 0];\n }\n };\n\n Grid.prototype.getAxes = function () {\n return this._axesList.slice();\n };\n\n Grid.prototype.getCartesian = function (xAxisIndex, yAxisIndex) {\n if (xAxisIndex != null && yAxisIndex != null) {\n var key = 'x' + xAxisIndex + 'y' + yAxisIndex;\n return this._coordsMap[key];\n }\n\n if (isObject(xAxisIndex)) {\n yAxisIndex = xAxisIndex.yAxisIndex;\n xAxisIndex = xAxisIndex.xAxisIndex;\n }\n\n for (var i = 0, coordList = this._coordsList; i < coordList.length; i++) {\n if (coordList[i].getAxis('x').index === xAxisIndex || coordList[i].getAxis('y').index === yAxisIndex) {\n return coordList[i];\n }\n }\n };\n\n Grid.prototype.getCartesians = function () {\n return this._coordsList.slice();\n };\n /**\n * @implements\n */\n\n\n Grid.prototype.convertToPixel = function (ecModel, finder, value) {\n var target = this._findConvertTarget(finder);\n\n return target.cartesian ? target.cartesian.dataToPoint(value) : target.axis ? target.axis.toGlobalCoord(target.axis.dataToCoord(value)) : null;\n };\n /**\n * @implements\n */\n\n\n Grid.prototype.convertFromPixel = function (ecModel, finder, value) {\n var target = this._findConvertTarget(finder);\n\n return target.cartesian ? target.cartesian.pointToData(value) : target.axis ? target.axis.coordToData(target.axis.toLocalCoord(value)) : null;\n };\n\n Grid.prototype._findConvertTarget = function (finder) {\n var seriesModel = finder.seriesModel;\n var xAxisModel = finder.xAxisModel || seriesModel && seriesModel.getReferringComponents('xAxis', SINGLE_REFERRING).models[0];\n var yAxisModel = finder.yAxisModel || seriesModel && seriesModel.getReferringComponents('yAxis', SINGLE_REFERRING).models[0];\n var gridModel = finder.gridModel;\n var coordsList = this._coordsList;\n var cartesian;\n var axis;\n\n if (seriesModel) {\n cartesian = seriesModel.coordinateSystem;\n indexOf(coordsList, cartesian) < 0 && (cartesian = null);\n } else if (xAxisModel && yAxisModel) {\n cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\n } else if (xAxisModel) {\n axis = this.getAxis('x', xAxisModel.componentIndex);\n } else if (yAxisModel) {\n axis = this.getAxis('y', yAxisModel.componentIndex);\n } // Lowest priority.\n else if (gridModel) {\n var grid = gridModel.coordinateSystem;\n\n if (grid === this) {\n cartesian = this._coordsList[0];\n }\n }\n\n return {\n cartesian: cartesian,\n axis: axis\n };\n };\n /**\n * @implements\n */\n\n\n Grid.prototype.containPoint = function (point) {\n var coord = this._coordsList[0];\n\n if (coord) {\n return coord.containPoint(point);\n }\n };\n /**\n * Initialize cartesian coordinate systems\n */\n\n\n Grid.prototype._initCartesian = function (gridModel, ecModel, api) {\n var _this = this;\n\n var grid = this;\n var axisPositionUsed = {\n left: false,\n right: false,\n top: false,\n bottom: false\n };\n var axesMap = {\n x: {},\n y: {}\n };\n var axesCount = {\n x: 0,\n y: 0\n }; // Create axis\n\n ecModel.eachComponent('xAxis', createAxisCreator('x'), this);\n ecModel.eachComponent('yAxis', createAxisCreator('y'), this);\n\n if (!axesCount.x || !axesCount.y) {\n // Roll back when there no either x or y axis\n this._axesMap = {};\n this._axesList = [];\n return;\n }\n\n this._axesMap = axesMap; // Create cartesian2d\n\n each(axesMap.x, function (xAxis, xAxisIndex) {\n each(axesMap.y, function (yAxis, yAxisIndex) {\n var key = 'x' + xAxisIndex + 'y' + yAxisIndex;\n var cartesian = new Cartesian2D(key);\n cartesian.master = _this;\n cartesian.model = gridModel;\n _this._coordsMap[key] = cartesian;\n\n _this._coordsList.push(cartesian);\n\n cartesian.addAxis(xAxis);\n cartesian.addAxis(yAxis);\n });\n });\n\n function createAxisCreator(dimName) {\n return function (axisModel, idx) {\n if (!isAxisUsedInTheGrid(axisModel, gridModel)) {\n return;\n }\n\n var axisPosition = axisModel.get('position');\n\n if (dimName === 'x') {\n // Fix position\n if (axisPosition !== 'top' && axisPosition !== 'bottom') {\n // Default bottom of X\n axisPosition = axisPositionUsed.bottom ? 'top' : 'bottom';\n }\n } else {\n // Fix position\n if (axisPosition !== 'left' && axisPosition !== 'right') {\n // Default left of Y\n axisPosition = axisPositionUsed.left ? 'right' : 'left';\n }\n }\n\n axisPositionUsed[axisPosition] = true;\n var axis = new Axis2D(dimName, createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisPosition);\n var isCategory = axis.type === 'category';\n axis.onBand = isCategory && axisModel.get('boundaryGap');\n axis.inverse = axisModel.get('inverse'); // Inject axis into axisModel\n\n axisModel.axis = axis; // Inject axisModel into axis\n\n axis.model = axisModel; // Inject grid info axis\n\n axis.grid = grid; // Index of axis, can be used as key\n\n axis.index = idx;\n\n grid._axesList.push(axis);\n\n axesMap[dimName][idx] = axis;\n axesCount[dimName]++;\n };\n }\n };\n /**\n * Update cartesian properties from series.\n */\n\n\n Grid.prototype._updateScale = function (ecModel, gridModel) {\n // Reset scale\n each(this._axesList, function (axis) {\n axis.scale.setExtent(Infinity, -Infinity);\n\n if (axis.type === 'category') {\n var categorySortInfo = axis.model.get('categorySortInfo');\n axis.scale.setSortInfo(categorySortInfo);\n }\n });\n ecModel.eachSeries(function (seriesModel) {\n if (isCartesian2DSeries(seriesModel)) {\n var axesModelMap = findAxisModels(seriesModel);\n var xAxisModel = axesModelMap.xAxisModel;\n var yAxisModel = axesModelMap.yAxisModel;\n\n if (!isAxisUsedInTheGrid(xAxisModel, gridModel) || !isAxisUsedInTheGrid(yAxisModel, gridModel)) {\n return;\n }\n\n var cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\n var data = seriesModel.getData();\n var xAxis = cartesian.getAxis('x');\n var yAxis = cartesian.getAxis('y');\n unionExtent(data, xAxis);\n unionExtent(data, yAxis);\n }\n }, this);\n\n function unionExtent(data, axis) {\n each(getDataDimensionsOnAxis(data, axis.dim), function (dim) {\n axis.scale.unionExtentFromData(data, dim);\n });\n }\n };\n /**\n * @param dim 'x' or 'y' or 'auto' or null/undefined\n */\n\n\n Grid.prototype.getTooltipAxes = function (dim) {\n var baseAxes = [];\n var otherAxes = [];\n each(this.getCartesians(), function (cartesian) {\n var baseAxis = dim != null && dim !== 'auto' ? cartesian.getAxis(dim) : cartesian.getBaseAxis();\n var otherAxis = cartesian.getOtherAxis(baseAxis);\n indexOf(baseAxes, baseAxis) < 0 && baseAxes.push(baseAxis);\n indexOf(otherAxes, otherAxis) < 0 && otherAxes.push(otherAxis);\n });\n return {\n baseAxes: baseAxes,\n otherAxes: otherAxes\n };\n };\n\n Grid.create = function (ecModel, api) {\n var grids = [];\n ecModel.eachComponent('grid', function (gridModel, idx) {\n var grid = new Grid(gridModel, ecModel, api);\n grid.name = 'grid_' + idx; // dataSampling requires axis extent, so resize\n // should be performed in create stage.\n\n grid.resize(gridModel, api, true);\n gridModel.coordinateSystem = grid;\n grids.push(grid);\n }); // Inject the coordinateSystems into seriesModel\n\n ecModel.eachSeries(function (seriesModel) {\n if (!isCartesian2DSeries(seriesModel)) {\n return;\n }\n\n var axesModelMap = findAxisModels(seriesModel);\n var xAxisModel = axesModelMap.xAxisModel;\n var yAxisModel = axesModelMap.yAxisModel;\n var gridModel = xAxisModel.getCoordSysModel();\n\n if (process.env.NODE_ENV !== 'production') {\n if (!gridModel) {\n throw new Error('Grid \"' + retrieve3(xAxisModel.get('gridIndex'), xAxisModel.get('gridId'), 0) + '\" not found');\n }\n\n if (xAxisModel.getCoordSysModel() !== yAxisModel.getCoordSysModel()) {\n throw new Error('xAxis and yAxis must use the same grid');\n }\n }\n\n var grid = gridModel.coordinateSystem;\n seriesModel.coordinateSystem = grid.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\n });\n return grids;\n }; // For deciding which dimensions to use when creating list data\n\n\n Grid.dimensions = cartesian2DDimensions;\n return Grid;\n}();\n/**\n * Check if the axis is used in the specified grid.\n */\n\n\nfunction isAxisUsedInTheGrid(axisModel, gridModel) {\n return axisModel.getCoordSysModel() === gridModel;\n}\n\nfunction fixAxisOnZero(axesMap, otherAxisDim, axis, // Key: see `getOnZeroRecordKey`\nonZeroRecords) {\n axis.getAxesOnZeroOf = function () {\n // TODO: onZero of multiple axes.\n return otherAxisOnZeroOf ? [otherAxisOnZeroOf] : [];\n }; // onZero can not be enabled in these two situations:\n // 1. When any other axis is a category axis.\n // 2. When no axis is cross 0 point.\n\n\n var otherAxes = axesMap[otherAxisDim];\n var otherAxisOnZeroOf;\n var axisModel = axis.model;\n var onZero = axisModel.get(['axisLine', 'onZero']);\n var onZeroAxisIndex = axisModel.get(['axisLine', 'onZeroAxisIndex']);\n\n if (!onZero) {\n return;\n } // If target axis is specified.\n\n\n if (onZeroAxisIndex != null) {\n if (canOnZeroToAxis(otherAxes[onZeroAxisIndex])) {\n otherAxisOnZeroOf = otherAxes[onZeroAxisIndex];\n }\n } else {\n // Find the first available other axis.\n for (var idx in otherAxes) {\n if (otherAxes.hasOwnProperty(idx) && canOnZeroToAxis(otherAxes[idx]) // Consider that two Y axes on one value axis,\n // if both onZero, the two Y axes overlap.\n && !onZeroRecords[getOnZeroRecordKey(otherAxes[idx])]) {\n otherAxisOnZeroOf = otherAxes[idx];\n break;\n }\n }\n }\n\n if (otherAxisOnZeroOf) {\n onZeroRecords[getOnZeroRecordKey(otherAxisOnZeroOf)] = true;\n }\n\n function getOnZeroRecordKey(axis) {\n return axis.dim + '_' + axis.index;\n }\n}\n\nfunction canOnZeroToAxis(axis) {\n return axis && axis.type !== 'category' && axis.type !== 'time' && ifAxisCrossZero(axis);\n}\n\nfunction updateAxisTransform(axis, coordBase) {\n var axisExtent = axis.getExtent();\n var axisExtentSum = axisExtent[0] + axisExtent[1]; // Fast transform\n\n axis.toGlobalCoord = axis.dim === 'x' ? function (coord) {\n return coord + coordBase;\n } : function (coord) {\n return axisExtentSum - coord + coordBase;\n };\n axis.toLocalCoord = axis.dim === 'x' ? function (coord) {\n return coord - coordBase;\n } : function (coord) {\n return axisExtentSum - coord + coordBase;\n };\n}\n\nexport default Grid;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component.js';\n\nvar GridModel =\n/** @class */\nfunction (_super) {\n __extends(GridModel, _super);\n\n function GridModel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n GridModel.type = 'grid';\n GridModel.dependencies = ['xAxis', 'yAxis'];\n GridModel.layoutMode = 'box';\n GridModel.defaultOption = {\n show: false,\n // zlevel: 0,\n z: 0,\n left: '10%',\n top: 60,\n right: '10%',\n bottom: 70,\n // If grid size contain label\n containLabel: false,\n // width: {totalWidth} - left - right,\n // height: {totalHeight} - top - bottom,\n backgroundColor: 'rgba(0,0,0,0)',\n borderWidth: 1,\n borderColor: '#ccc'\n };\n return GridModel;\n}(ComponentModel);\n\nexport default GridModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { SINGLE_REFERRING } from '../../util/model.js';\n/**\n * Can only be called after coordinate system creation stage.\n * (Can be called before coordinate system update stage).\n */\n\nexport function layout(gridModel, axisModel, opt) {\n opt = opt || {};\n var grid = gridModel.coordinateSystem;\n var axis = axisModel.axis;\n var layout = {};\n var otherAxisOnZeroOf = axis.getAxesOnZeroOf()[0];\n var rawAxisPosition = axis.position;\n var axisPosition = otherAxisOnZeroOf ? 'onZero' : rawAxisPosition;\n var axisDim = axis.dim;\n var rect = grid.getRect();\n var rectBound = [rect.x, rect.x + rect.width, rect.y, rect.y + rect.height];\n var idx = {\n left: 0,\n right: 1,\n top: 0,\n bottom: 1,\n onZero: 2\n };\n var axisOffset = axisModel.get('offset') || 0;\n var posBound = axisDim === 'x' ? [rectBound[2] - axisOffset, rectBound[3] + axisOffset] : [rectBound[0] - axisOffset, rectBound[1] + axisOffset];\n\n if (otherAxisOnZeroOf) {\n var onZeroCoord = otherAxisOnZeroOf.toGlobalCoord(otherAxisOnZeroOf.dataToCoord(0));\n posBound[idx.onZero] = Math.max(Math.min(onZeroCoord, posBound[1]), posBound[0]);\n } // Axis position\n\n\n layout.position = [axisDim === 'y' ? posBound[idx[axisPosition]] : rectBound[0], axisDim === 'x' ? posBound[idx[axisPosition]] : rectBound[3]]; // Axis rotation\n\n layout.rotation = Math.PI / 2 * (axisDim === 'x' ? 0 : 1); // Tick and label direction, x y is axisDim\n\n var dirMap = {\n top: -1,\n bottom: 1,\n left: -1,\n right: 1\n };\n layout.labelDirection = layout.tickDirection = layout.nameDirection = dirMap[rawAxisPosition];\n layout.labelOffset = otherAxisOnZeroOf ? posBound[idx[rawAxisPosition]] - posBound[idx.onZero] : 0;\n\n if (axisModel.get(['axisTick', 'inside'])) {\n layout.tickDirection = -layout.tickDirection;\n }\n\n if (zrUtil.retrieve(opt.labelInside, axisModel.get(['axisLabel', 'inside']))) {\n layout.labelDirection = -layout.labelDirection;\n } // Special label rotation\n\n\n var labelRotate = axisModel.get(['axisLabel', 'rotate']);\n layout.labelRotate = axisPosition === 'top' ? -labelRotate : labelRotate; // Over splitLine and splitArea\n\n layout.z2 = 1;\n return layout;\n}\nexport function isCartesian2DSeries(seriesModel) {\n return seriesModel.get('coordinateSystem') === 'cartesian2d';\n}\nexport function findAxisModels(seriesModel) {\n var axisModelMap = {\n xAxisModel: null,\n yAxisModel: null\n };\n zrUtil.each(axisModelMap, function (v, key) {\n var axisType = key.replace(/Model$/, '');\n var axisModel = seriesModel.getReferringComponents(axisType, SINGLE_REFERRING).models[0];\n\n if (process.env.NODE_ENV !== 'production') {\n if (!axisModel) {\n throw new Error(axisType + ' \"' + zrUtil.retrieve3(seriesModel.get(axisType + 'Index'), seriesModel.get(axisType + 'Id'), 0) + '\" not found');\n }\n }\n\n axisModelMap[key] = axisModel;\n });\n return axisModelMap;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\n\nfunction dataToCoordSize(dataSize, dataItem) {\n // dataItem is necessary in log axis.\n dataItem = dataItem || [0, 0];\n return zrUtil.map(['x', 'y'], function (dim, dimIdx) {\n var axis = this.getAxis(dim);\n var val = dataItem[dimIdx];\n var halfSize = dataSize[dimIdx] / 2;\n return axis.type === 'category' ? axis.getBandWidth() : Math.abs(axis.dataToCoord(val - halfSize) - axis.dataToCoord(val + halfSize));\n }, this);\n}\n\nexport default function cartesianPrepareCustom(coordSys) {\n var rect = coordSys.master.getRect();\n return {\n coordSys: {\n // The name exposed to user is always 'cartesian2d' but not 'grid'.\n type: 'cartesian2d',\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height\n },\n api: {\n coord: function (data) {\n // do not provide \"out\" param\n return coordSys.dataToPoint(data);\n },\n size: zrUtil.bind(dataToCoordSize, coordSys)\n }\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport BoundingRect from 'zrender/lib/core/BoundingRect.js';\nimport View from '../View.js';\nimport geoSourceManager from './geoSourceManager.js';\nimport { SINGLE_REFERRING } from '../../util/model.js';\nimport { warn } from '../../util/log.js';\nvar GEO_DEFAULT_PARAMS = {\n 'geoJSON': {\n aspectScale: 0.75,\n invertLongitute: true\n },\n 'geoSVG': {\n aspectScale: 1,\n invertLongitute: false\n }\n};\nexport var geo2DDimensions = ['lng', 'lat'];\n\nvar Geo =\n/** @class */\nfunction (_super) {\n __extends(Geo, _super);\n\n function Geo(name, map, opt) {\n var _this = _super.call(this, name) || this;\n\n _this.dimensions = geo2DDimensions;\n _this.type = 'geo'; // Only store specified name coord via `addGeoCoord`.\n\n _this._nameCoordMap = zrUtil.createHashMap();\n _this.map = map;\n var projection = opt.projection;\n var source = geoSourceManager.load(map, opt.nameMap, opt.nameProperty);\n var resource = geoSourceManager.getGeoResource(map);\n var resourceType = _this.resourceType = resource ? resource.type : null;\n var regions = _this.regions = source.regions;\n var defaultParams = GEO_DEFAULT_PARAMS[resource.type];\n _this._regionsMap = source.regionsMap;\n _this.regions = source.regions;\n\n if (process.env.NODE_ENV !== 'production' && projection) {\n // Do some check\n if (resourceType === 'geoSVG') {\n if (process.env.NODE_ENV !== 'production') {\n warn(\"Map \" + map + \" with SVG source can't use projection. Only GeoJSON source supports projection.\");\n }\n\n projection = null;\n }\n\n if (!(projection.project && projection.unproject)) {\n if (process.env.NODE_ENV !== 'production') {\n warn('project and unproject must be both provided in the projeciton.');\n }\n\n projection = null;\n }\n }\n\n _this.projection = projection;\n var boundingRect;\n\n if (projection) {\n // Can't reuse the raw bounding rect\n for (var i = 0; i < regions.length; i++) {\n var regionRect = regions[i].getBoundingRect(projection);\n boundingRect = boundingRect || regionRect.clone();\n boundingRect.union(regionRect);\n }\n } else {\n boundingRect = source.boundingRect;\n }\n\n _this.setBoundingRect(boundingRect.x, boundingRect.y, boundingRect.width, boundingRect.height); // aspectScale and invertLongitute actually is the parameters default raw projection.\n // So we ignore them if projection is given.\n // Ignore default aspect scale if projection exits.\n\n\n _this.aspectScale = projection ? 1 : zrUtil.retrieve2(opt.aspectScale, defaultParams.aspectScale); // Not invert longitude if projection exits.\n\n _this._invertLongitute = projection ? false : defaultParams.invertLongitute;\n return _this;\n }\n\n Geo.prototype._transformTo = function (x, y, width, height) {\n var rect = this.getBoundingRect();\n var invertLongitute = this._invertLongitute;\n rect = rect.clone();\n\n if (invertLongitute) {\n // Longitude is inverted.\n rect.y = -rect.y - rect.height;\n }\n\n var rawTransformable = this._rawTransformable;\n rawTransformable.transform = rect.calculateTransform(new BoundingRect(x, y, width, height));\n var rawParent = rawTransformable.parent;\n rawTransformable.parent = null;\n rawTransformable.decomposeTransform();\n rawTransformable.parent = rawParent;\n\n if (invertLongitute) {\n rawTransformable.scaleY = -rawTransformable.scaleY;\n }\n\n this._updateTransform();\n };\n\n Geo.prototype.getRegion = function (name) {\n return this._regionsMap.get(name);\n };\n\n Geo.prototype.getRegionByCoord = function (coord) {\n var regions = this.regions;\n\n for (var i = 0; i < regions.length; i++) {\n var region = regions[i];\n\n if (region.type === 'geoJSON' && region.contain(coord)) {\n return regions[i];\n }\n }\n };\n /**\n * Add geoCoord for indexing by name\n */\n\n\n Geo.prototype.addGeoCoord = function (name, geoCoord) {\n this._nameCoordMap.set(name, geoCoord);\n };\n /**\n * Get geoCoord by name\n */\n\n\n Geo.prototype.getGeoCoord = function (name) {\n var region = this._regionsMap.get(name); // Calculate center only on demand.\n\n\n return this._nameCoordMap.get(name) || region && region.getCenter();\n };\n\n Geo.prototype.dataToPoint = function (data, noRoam, out) {\n if (zrUtil.isString(data)) {\n // Map area name to geoCoord\n data = this.getGeoCoord(data);\n }\n\n if (data) {\n var projection = this.projection;\n\n if (projection) {\n // projection may return null point.\n data = projection.project(data);\n }\n\n return data && this.projectedToPoint(data, noRoam, out);\n }\n };\n\n Geo.prototype.pointToData = function (point) {\n var projection = this.projection;\n\n if (projection) {\n // projection may return null point.\n point = projection.unproject(point);\n }\n\n return point && this.pointToProjected(point);\n };\n /**\n * Point to projected data. Same with pointToData when projection is used.\n */\n\n\n Geo.prototype.pointToProjected = function (point) {\n return _super.prototype.pointToData.call(this, point);\n };\n\n Geo.prototype.projectedToPoint = function (projected, noRoam, out) {\n return _super.prototype.dataToPoint.call(this, projected, noRoam, out);\n };\n\n Geo.prototype.convertToPixel = function (ecModel, finder, value) {\n var coordSys = getCoordSys(finder);\n return coordSys === this ? coordSys.dataToPoint(value) : null;\n };\n\n Geo.prototype.convertFromPixel = function (ecModel, finder, pixel) {\n var coordSys = getCoordSys(finder);\n return coordSys === this ? coordSys.pointToData(pixel) : null;\n };\n\n return Geo;\n}(View);\n\n;\nzrUtil.mixin(Geo, View);\n\nfunction getCoordSys(finder) {\n var geoModel = finder.geoModel;\n var seriesModel = finder.seriesModel;\n return geoModel ? geoModel.coordinateSystem : seriesModel ? seriesModel.coordinateSystem // For map series.\n || (seriesModel.getReferringComponents('geo', SINGLE_REFERRING).models[0] || {}).coordinateSystem : null;\n}\n\nexport default Geo;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { each, isString, createHashMap, hasOwn } from 'zrender/lib/core/util.js';\nimport parseGeoJson from './parseGeoJson.js'; // Built-in GEO fixer.\n\nimport fixNanhai from './fix/nanhai.js';\nimport fixTextCoord from './fix/textCoord.js';\nimport fixDiaoyuIsland from './fix/diaoyuIsland.js';\nimport BoundingRect from 'zrender/lib/core/BoundingRect.js';\nvar DEFAULT_NAME_PROPERTY = 'name';\n\nvar GeoJSONResource =\n/** @class */\nfunction () {\n function GeoJSONResource(mapName, geoJSON, specialAreas) {\n this.type = 'geoJSON';\n this._parsedMap = createHashMap();\n this._mapName = mapName;\n this._specialAreas = specialAreas; // PENDING: delay the parse to the first usage to rapid up the FMP?\n\n this._geoJSON = parseInput(geoJSON);\n }\n /**\n * @param nameMap can be null/undefined\n * @param nameProperty can be null/undefined\n */\n\n\n GeoJSONResource.prototype.load = function (nameMap, nameProperty) {\n nameProperty = nameProperty || DEFAULT_NAME_PROPERTY;\n\n var parsed = this._parsedMap.get(nameProperty);\n\n if (!parsed) {\n var rawRegions = this._parseToRegions(nameProperty);\n\n parsed = this._parsedMap.set(nameProperty, {\n regions: rawRegions,\n boundingRect: calculateBoundingRect(rawRegions)\n });\n }\n\n var regionsMap = createHashMap();\n var finalRegions = [];\n each(parsed.regions, function (region) {\n var regionName = region.name; // Try use the alias in geoNameMap\n\n if (nameMap && hasOwn(nameMap, regionName)) {\n region = region.cloneShallow(regionName = nameMap[regionName]);\n }\n\n finalRegions.push(region);\n regionsMap.set(regionName, region);\n });\n return {\n regions: finalRegions,\n boundingRect: parsed.boundingRect || new BoundingRect(0, 0, 0, 0),\n regionsMap: regionsMap\n };\n };\n\n GeoJSONResource.prototype._parseToRegions = function (nameProperty) {\n var mapName = this._mapName;\n var geoJSON = this._geoJSON;\n var rawRegions; // https://jsperf.com/try-catch-performance-overhead\n\n try {\n rawRegions = geoJSON ? parseGeoJson(geoJSON, nameProperty) : [];\n } catch (e) {\n throw new Error('Invalid geoJson format\\n' + e.message);\n }\n\n fixNanhai(mapName, rawRegions);\n each(rawRegions, function (region) {\n var regionName = region.name;\n fixTextCoord(mapName, region);\n fixDiaoyuIsland(mapName, region); // Some area like Alaska in USA map needs to be tansformed\n // to look better\n\n var specialArea = this._specialAreas && this._specialAreas[regionName];\n\n if (specialArea) {\n region.transformTo(specialArea.left, specialArea.top, specialArea.width, specialArea.height);\n }\n }, this);\n return rawRegions;\n };\n /**\n * Only for exporting to users.\n * **MUST NOT** used internally.\n */\n\n\n GeoJSONResource.prototype.getMapForUser = function () {\n return {\n // For backward compatibility, use geoJson\n // PENDING: it has been returning them without clone.\n // do we need to avoid outsite modification?\n geoJson: this._geoJSON,\n geoJSON: this._geoJSON,\n specialAreas: this._specialAreas\n };\n };\n\n return GeoJSONResource;\n}();\n\nexport { GeoJSONResource };\n\nfunction calculateBoundingRect(regions) {\n var rect;\n\n for (var i = 0; i < regions.length; i++) {\n var regionRect = regions[i].getBoundingRect();\n rect = rect || regionRect.clone();\n rect.union(regionRect);\n }\n\n return rect;\n}\n\nfunction parseInput(source) {\n return !isString(source) ? source : typeof JSON !== 'undefined' && JSON.parse ? JSON.parse(source) : new Function('return (' + source + ');')();\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as modelUtil from '../../util/model.js';\nimport ComponentModel from '../../model/Component.js';\nimport Model from '../../model/Model.js';\nimport geoCreator from './geoCreator.js';\nimport geoSourceManager from './geoSourceManager.js';\n;\n\nvar GeoModel =\n/** @class */\nfunction (_super) {\n __extends(GeoModel, _super);\n\n function GeoModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = GeoModel.type;\n return _this;\n }\n\n GeoModel.prototype.init = function (option, parentModel, ecModel) {\n var source = geoSourceManager.getGeoResource(option.map);\n\n if (source && source.type === 'geoJSON') {\n var itemStyle = option.itemStyle = option.itemStyle || {};\n\n if (!('color' in itemStyle)) {\n itemStyle.color = '#eee';\n }\n }\n\n this.mergeDefaultAndTheme(option, ecModel); // Default label emphasis `show`\n\n modelUtil.defaultEmphasis(option, 'label', ['show']);\n };\n\n GeoModel.prototype.optionUpdated = function () {\n var _this = this;\n\n var option = this.option;\n option.regions = geoCreator.getFilledRegions(option.regions, option.map, option.nameMap, option.nameProperty);\n var selectedMap = {};\n this._optionModelMap = zrUtil.reduce(option.regions || [], function (optionModelMap, regionOpt) {\n var regionName = regionOpt.name;\n\n if (regionName) {\n optionModelMap.set(regionName, new Model(regionOpt, _this, _this.ecModel));\n\n if (regionOpt.selected) {\n selectedMap[regionName] = true;\n }\n }\n\n return optionModelMap;\n }, zrUtil.createHashMap());\n\n if (!option.selectedMap) {\n option.selectedMap = selectedMap;\n }\n };\n /**\n * Get model of region.\n */\n\n\n GeoModel.prototype.getRegionModel = function (name) {\n return this._optionModelMap.get(name) || new Model(null, this, this.ecModel);\n };\n /**\n * Format label\n * @param name Region name\n */\n\n\n GeoModel.prototype.getFormattedLabel = function (name, status) {\n var regionModel = this.getRegionModel(name);\n var formatter = status === 'normal' ? regionModel.get(['label', 'formatter']) : regionModel.get(['emphasis', 'label', 'formatter']);\n var params = {\n name: name\n };\n\n if (zrUtil.isFunction(formatter)) {\n params.status = status;\n return formatter(params);\n } else if (zrUtil.isString(formatter)) {\n return formatter.replace('{a}', name != null ? name : '');\n }\n };\n\n GeoModel.prototype.setZoom = function (zoom) {\n this.option.zoom = zoom;\n };\n\n GeoModel.prototype.setCenter = function (center) {\n this.option.center = center;\n }; // PENGING If selectedMode is null ?\n\n\n GeoModel.prototype.select = function (name) {\n var option = this.option;\n var selectedMode = option.selectedMode;\n\n if (!selectedMode) {\n return;\n }\n\n if (selectedMode !== 'multiple') {\n option.selectedMap = null;\n }\n\n var selectedMap = option.selectedMap || (option.selectedMap = {});\n selectedMap[name] = true;\n };\n\n GeoModel.prototype.unSelect = function (name) {\n var selectedMap = this.option.selectedMap;\n\n if (selectedMap) {\n selectedMap[name] = false;\n }\n };\n\n GeoModel.prototype.toggleSelected = function (name) {\n this[this.isSelected(name) ? 'unSelect' : 'select'](name);\n };\n\n GeoModel.prototype.isSelected = function (name) {\n var selectedMap = this.option.selectedMap;\n return !!(selectedMap && selectedMap[name]);\n };\n\n GeoModel.type = 'geo';\n GeoModel.layoutMode = 'box';\n GeoModel.defaultOption = {\n // zlevel: 0,\n z: 0,\n show: true,\n left: 'center',\n top: 'center',\n // Default value:\n // for geoSVG source: 1,\n // for geoJSON source: 0.75.\n aspectScale: null,\n // /// Layout with center and size\n // If you want to put map in a fixed size box with right aspect ratio\n // This two properties may be more convenient\n // layoutCenter: [50%, 50%]\n // layoutSize: 100\n silent: false,\n // Map type\n map: '',\n // Define left-top, right-bottom coords to control view\n // For example, [ [180, 90], [-180, -90] ]\n boundingCoords: null,\n // Default on center of map\n center: null,\n zoom: 1,\n scaleLimit: null,\n // selectedMode: false\n label: {\n show: false,\n color: '#000'\n },\n itemStyle: {\n borderWidth: 0.5,\n borderColor: '#444' // Default color:\n // + geoJSON: #eee\n // + geoSVG: null (use SVG original `fill`)\n // color: '#eee'\n\n },\n emphasis: {\n label: {\n show: true,\n color: 'rgb(100,0,0)'\n },\n itemStyle: {\n color: 'rgba(255,215,0,0.8)'\n }\n },\n select: {\n label: {\n show: true,\n color: 'rgb(100,0,0)'\n },\n itemStyle: {\n color: 'rgba(255,215,0,0.8)'\n }\n },\n regions: [] // tooltip: {\n // show: false\n // }\n\n };\n return GeoModel;\n}(ComponentModel);\n\nexport default GeoModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { parseSVG, makeViewBoxTransform } from 'zrender/lib/tool/parseSVG.js';\nimport Group from 'zrender/lib/graphic/Group.js';\nimport Rect from 'zrender/lib/graphic/shape/Rect.js';\nimport { assert, createHashMap, each } from 'zrender/lib/core/util.js';\nimport BoundingRect from 'zrender/lib/core/BoundingRect.js';\nimport { parseXML } from 'zrender/lib/tool/parseXML.js';\nimport { GeoSVGRegion } from './Region.js';\n/**\n * \"region available\" means that: enable users to set attribute `name=\"xxx\"` on those tags\n * to make it be a region.\n * 1. region styles and its label styles can be defined in echarts opton:\n * ```js\n * geo: {\n * regions: [{\n * name: 'xxx',\n * itemStyle: { ... },\n * label: { ... }\n * }, {\n * ...\n * },\n * ...]\n * };\n * ```\n * 2. name can be duplicated in different SVG tag. All of the tags with the same name share\n * a region option. For exampel if there are two representing two lung lobes. They have\n * no common parents but both of them need to display label \"lung\" inside.\n */\n\nvar REGION_AVAILABLE_SVG_TAG_MAP = createHashMap(['rect', 'circle', 'line', 'ellipse', 'polygon', 'polyline', 'path', // are also enabled because some SVG might paint text itself,\n// but still need to trigger events or tooltip.\n'text', 'tspan', // is also enabled because this case: if multiple tags share one name\n// and need label displayed, every tags will display the name, which is not\n// expected. So we can put them into a . Thereby only one label\n// displayed and located based on the bounding rect of the .\n'g']);\n\nvar GeoSVGResource =\n/** @class */\nfunction () {\n function GeoSVGResource(mapName, svg) {\n this.type = 'geoSVG'; // All used graphics. key: hostKey, value: root\n\n this._usedGraphicMap = createHashMap(); // All unused graphics.\n\n this._freedGraphics = [];\n this._mapName = mapName; // Only perform parse to XML object here, which might be time\n // consiming for large SVG.\n // Although convert XML to zrender element is also time consiming,\n // if we do it here, the clone of zrender elements has to be\n // required. So we do it once for each geo instance, util real\n // performance issues call for optimizing it.\n\n this._parsedXML = parseXML(svg);\n }\n\n GeoSVGResource.prototype.load = function ()\n /* nameMap: NameMap */\n {\n // In the \"load\" stage, graphic need to be built to\n // get boundingRect for geo coordinate system.\n var firstGraphic = this._firstGraphic; // Create the return data structure only when first graphic created.\n // Because they will be used in geo coordinate system update stage,\n // and `regions` will be mounted at `geo` coordinate system,\n // in which there is no \"view\" info, so that it should better not to\n // make references to graphic elements.\n\n if (!firstGraphic) {\n firstGraphic = this._firstGraphic = this._buildGraphic(this._parsedXML);\n\n this._freedGraphics.push(firstGraphic);\n\n this._boundingRect = this._firstGraphic.boundingRect.clone(); // PENDING: `nameMap` will not be supported until some real requirement come.\n // if (nameMap) {\n // named = applyNameMap(named, nameMap);\n // }\n\n var _a = createRegions(firstGraphic.named),\n regions = _a.regions,\n regionsMap = _a.regionsMap;\n\n this._regions = regions;\n this._regionsMap = regionsMap;\n }\n\n return {\n boundingRect: this._boundingRect,\n regions: this._regions,\n regionsMap: this._regionsMap\n };\n };\n\n GeoSVGResource.prototype._buildGraphic = function (svgXML) {\n var result;\n var rootFromParse;\n\n try {\n result = svgXML && parseSVG(svgXML, {\n ignoreViewBox: true,\n ignoreRootClip: true\n }) || {};\n rootFromParse = result.root;\n assert(rootFromParse != null);\n } catch (e) {\n throw new Error('Invalid svg format\\n' + e.message);\n } // Note: we keep the covenant that the root has no transform. So always add an extra root.\n\n\n var root = new Group();\n root.add(rootFromParse);\n root.isGeoSVGGraphicRoot = true; // [THE_RULE_OF_VIEWPORT_AND_VIEWBOX]\n //\n // Consider: ``\n // - the `width/height` we call it `svgWidth/svgHeight` for short.\n // - `(0, 0, svgWidth, svgHeight)` defines the viewport of the SVG, or say,\n // \"viewport boundingRect\", or `boundingRect` for short.\n // - `viewBox` defines the transform from the real content ot the viewport.\n // `viewBox` has the same unit as the content of SVG.\n // If `viewBox` exists, a transform is defined, so the unit of `svgWidth/svgHeight` become\n // different from the content of SVG. Otherwise, they are the same.\n //\n // If both `svgWidth/svgHeight/viewBox` are specified in a SVG file, the transform rule will be:\n // 0. `boundingRect` is `(0, 0, svgWidth, svgHeight)`. Set it to Geo['_rect'] (View['_rect']).\n // 1. Make a transform from `viewBox` to `boundingRect`.\n // Note: only support `preserveAspectRatio 'xMidYMid'` here. That is, this transform will preserve\n // the aspect ratio.\n // 2. Make a transform from boundingRect to Geo['_viewRect'] (View['_viewRect'])\n // (`Geo`/`View` will do this job).\n // Note: this transform might not preserve aspect radio, which depending on how users specify\n // viewRect in echarts option (e.g., `geo.left/top/width/height` will not preserve aspect ratio,\n // but `geo.layoutCenter/layoutSize` will preserve aspect ratio).\n //\n // If `svgWidth/svgHeight` not specified, we use `viewBox` as the `boundingRect` to make the SVG\n // layout look good.\n //\n // If neither `svgWidth/svgHeight` nor `viewBox` are not specified, we calculate the boundingRect\n // of the SVG content and use them to make SVG layout look good.\n\n var svgWidth = result.width;\n var svgHeight = result.height;\n var viewBoxRect = result.viewBoxRect;\n var boundingRect = this._boundingRect;\n\n if (!boundingRect) {\n var bRectX = void 0;\n var bRectY = void 0;\n var bRectWidth = void 0;\n var bRectHeight = void 0;\n\n if (svgWidth != null) {\n bRectX = 0;\n bRectWidth = svgWidth;\n } else if (viewBoxRect) {\n bRectX = viewBoxRect.x;\n bRectWidth = viewBoxRect.width;\n }\n\n if (svgHeight != null) {\n bRectY = 0;\n bRectHeight = svgHeight;\n } else if (viewBoxRect) {\n bRectY = viewBoxRect.y;\n bRectHeight = viewBoxRect.height;\n } // If both viewBox and svgWidth/svgHeight not specified,\n // we have to determine how to layout those element to make them look good.\n\n\n if (bRectX == null || bRectY == null) {\n var calculatedBoundingRect = rootFromParse.getBoundingRect();\n\n if (bRectX == null) {\n bRectX = calculatedBoundingRect.x;\n bRectWidth = calculatedBoundingRect.width;\n }\n\n if (bRectY == null) {\n bRectY = calculatedBoundingRect.y;\n bRectHeight = calculatedBoundingRect.height;\n }\n }\n\n boundingRect = this._boundingRect = new BoundingRect(bRectX, bRectY, bRectWidth, bRectHeight);\n }\n\n if (viewBoxRect) {\n var viewBoxTransform = makeViewBoxTransform(viewBoxRect, boundingRect); // Only support `preserveAspectRatio 'xMidYMid'`\n\n rootFromParse.scaleX = rootFromParse.scaleY = viewBoxTransform.scale;\n rootFromParse.x = viewBoxTransform.x;\n rootFromParse.y = viewBoxTransform.y;\n } // SVG needs to clip based on `viewBox`. And some SVG files really rely on this feature.\n // They do not strictly confine all of the content inside a display rect, but deliberately\n // use a `viewBox` to define a displayable rect.\n // PENDING:\n // The drawback of the `setClipPath` here is: the region label (genereted by echarts) near the\n // edge might also be clipped, because region labels are put as `textContent` of the SVG path.\n\n\n root.setClipPath(new Rect({\n shape: boundingRect.plain()\n }));\n var named = [];\n each(result.named, function (namedItem) {\n if (REGION_AVAILABLE_SVG_TAG_MAP.get(namedItem.svgNodeTagLower) != null) {\n named.push(namedItem);\n setSilent(namedItem.el);\n }\n });\n return {\n root: root,\n boundingRect: boundingRect,\n named: named\n };\n };\n /**\n * Consider:\n * (1) One graphic element can not be shared by different `geoView` running simultaneously.\n * Notice, also need to consider multiple echarts instances share a `mapRecord`.\n * (2) Converting SVG to graphic elements is time consuming.\n * (3) In the current architecture, `load` should be called frequently to get boundingRect,\n * and it is called without view info.\n * So we maintain graphic elements in this module, and enables `view` to use/return these\n * graphics from/to the pool with it's uid.\n */\n\n\n GeoSVGResource.prototype.useGraphic = function (hostKey\n /* , nameMap: NameMap */\n ) {\n var usedRootMap = this._usedGraphicMap;\n var svgGraphic = usedRootMap.get(hostKey);\n\n if (svgGraphic) {\n return svgGraphic;\n }\n\n svgGraphic = this._freedGraphics.pop() // use the first boundingRect to avoid duplicated boundingRect calculation.\n || this._buildGraphic(this._parsedXML);\n usedRootMap.set(hostKey, svgGraphic); // PENDING: `nameMap` will not be supported until some real requirement come.\n // `nameMap` can only be obtained from echarts option.\n // The original `named` must not be modified.\n // if (nameMap) {\n // svgGraphic = extend({}, svgGraphic);\n // svgGraphic.named = applyNameMap(svgGraphic.named, nameMap);\n // }\n\n return svgGraphic;\n };\n\n GeoSVGResource.prototype.freeGraphic = function (hostKey) {\n var usedRootMap = this._usedGraphicMap;\n var svgGraphic = usedRootMap.get(hostKey);\n\n if (svgGraphic) {\n usedRootMap.removeKey(hostKey);\n\n this._freedGraphics.push(svgGraphic);\n }\n };\n\n return GeoSVGResource;\n}();\n\nexport { GeoSVGResource };\n\nfunction setSilent(el) {\n // Only named element has silent: false, other elements should\n // act as background and has no user interaction.\n el.silent = false; // text|tspan will be converted to group.\n\n if (el.isGroup) {\n el.traverse(function (child) {\n child.silent = false;\n });\n }\n}\n\nfunction createRegions(named) {\n var regions = [];\n var regionsMap = createHashMap(); // Create resions only for the first graphic.\n\n each(named, function (namedItem) {\n // Region has feature to calculate center for tooltip or other features.\n // If there is a , the center should be the center of the\n // bounding rect of the g.\n if (namedItem.namedFrom != null) {\n return;\n }\n\n var region = new GeoSVGRegion(namedItem.name, namedItem.el); // PENDING: if `nameMap` supported, this region can not be mounted on\n // `this`, but can only be created each time `load()` called.\n\n regions.push(region); // PENDING: if multiple tag named with the same name, only one will be\n // found by `_regionsMap`. `_regionsMap` is used to find a coordinate\n // by name. We use `region.getCenter()` as the coordinate.\n\n regionsMap.set(namedItem.name, region);\n });\n return {\n regions: regions,\n regionsMap: regionsMap\n };\n} // PENDING: `nameMap` will not be supported until some real requirement come.\n// /**\n// * Use the alias in geoNameMap.\n// * The input `named` must not be modified.\n// */\n// function applyNameMap(\n// named: GeoSVGGraphicRecord['named'],\n// nameMap: NameMap\n// ): GeoSVGGraphicRecord['named'] {\n// const result = [] as GeoSVGGraphicRecord['named'];\n// for (let i = 0; i < named.length; i++) {\n// let regionGraphic = named[i];\n// const name = regionGraphic.name;\n// if (nameMap && nameMap.hasOwnProperty(name)) {\n// regionGraphic = extend({}, regionGraphic);\n// regionGraphic.name = name;\n// }\n// result.push(regionGraphic);\n// }\n// return result;\n// }","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport BoundingRect from 'zrender/lib/core/BoundingRect.js';\nimport * as vec2 from 'zrender/lib/core/vector.js';\nimport * as polygonContain from 'zrender/lib/contain/polygon.js';\nimport * as matrix from 'zrender/lib/core/matrix.js';\nimport { each } from 'zrender/lib/core/util.js';\nvar TMP_TRANSFORM = [];\n\nfunction transformPoints(points, transform) {\n for (var p = 0; p < points.length; p++) {\n vec2.applyTransform(points[p], points[p], transform);\n }\n}\n\nfunction updateBBoxFromPoints(points, min, max, projection) {\n for (var i = 0; i < points.length; i++) {\n var p = points[i];\n\n if (projection) {\n // projection may return null point.\n p = projection.project(p);\n }\n\n if (p && isFinite(p[0]) && isFinite(p[1])) {\n vec2.min(min, min, p);\n vec2.max(max, max, p);\n }\n }\n}\n\nfunction centroid(points) {\n var signedArea = 0;\n var cx = 0;\n var cy = 0;\n var len = points.length;\n var x0 = points[len - 1][0];\n var y0 = points[len - 1][1]; // Polygon should been closed.\n\n for (var i = 0; i < len; i++) {\n var x1 = points[i][0];\n var y1 = points[i][1];\n var a = x0 * y1 - x1 * y0;\n signedArea += a;\n cx += (x0 + x1) * a;\n cy += (y0 + y1) * a;\n x0 = x1;\n y0 = y1;\n }\n\n return signedArea ? [cx / signedArea / 3, cy / signedArea / 3, signedArea] : [points[0][0] || 0, points[0][1] || 0];\n}\n\nvar Region =\n/** @class */\nfunction () {\n function Region(name) {\n this.name = name;\n }\n\n Region.prototype.setCenter = function (center) {\n this._center = center;\n };\n /**\n * Get center point in data unit. That is,\n * for GeoJSONRegion, the unit is lat/lng,\n * for GeoSVGRegion, the unit is SVG local coord.\n */\n\n\n Region.prototype.getCenter = function () {\n var center = this._center;\n\n if (!center) {\n // In most cases there are no need to calculate this center.\n // So calculate only when called.\n center = this._center = this.calcCenter();\n }\n\n return center;\n };\n\n return Region;\n}();\n\nexport { Region };\n\nvar GeoJSONPolygonGeometry =\n/** @class */\nfunction () {\n function GeoJSONPolygonGeometry(exterior, interiors) {\n this.type = 'polygon';\n this.exterior = exterior;\n this.interiors = interiors;\n }\n\n return GeoJSONPolygonGeometry;\n}();\n\nexport { GeoJSONPolygonGeometry };\n\nvar GeoJSONLineStringGeometry =\n/** @class */\nfunction () {\n function GeoJSONLineStringGeometry(points) {\n this.type = 'linestring';\n this.points = points;\n }\n\n return GeoJSONLineStringGeometry;\n}();\n\nexport { GeoJSONLineStringGeometry };\n\nvar GeoJSONRegion =\n/** @class */\nfunction (_super) {\n __extends(GeoJSONRegion, _super);\n\n function GeoJSONRegion(name, geometries, cp) {\n var _this = _super.call(this, name) || this;\n\n _this.type = 'geoJSON';\n _this.geometries = geometries;\n _this._center = cp && [cp[0], cp[1]];\n return _this;\n }\n\n GeoJSONRegion.prototype.calcCenter = function () {\n var geometries = this.geometries;\n var largestGeo;\n var largestGeoSize = 0;\n\n for (var i = 0; i < geometries.length; i++) {\n var geo = geometries[i];\n var exterior = geo.exterior; // Simple trick to use points count instead of polygon area as region size.\n // Ignore linestring\n\n var size = exterior && exterior.length;\n\n if (size > largestGeoSize) {\n largestGeo = geo;\n largestGeoSize = size;\n }\n }\n\n if (largestGeo) {\n return centroid(largestGeo.exterior);\n } // from bounding rect by default.\n\n\n var rect = this.getBoundingRect();\n return [rect.x + rect.width / 2, rect.y + rect.height / 2];\n };\n\n GeoJSONRegion.prototype.getBoundingRect = function (projection) {\n var rect = this._rect; // Always recalculate if using projection.\n\n if (rect && !projection) {\n return rect;\n }\n\n var min = [Infinity, Infinity];\n var max = [-Infinity, -Infinity];\n var geometries = this.geometries;\n each(geometries, function (geo) {\n if (geo.type === 'polygon') {\n // Doesn't consider hole\n updateBBoxFromPoints(geo.exterior, min, max, projection);\n } else {\n each(geo.points, function (points) {\n updateBBoxFromPoints(points, min, max, projection);\n });\n }\n }); // Normalie invalid bounding.\n\n if (!(isFinite(min[0]) && isFinite(min[1]) && isFinite(max[0]) && isFinite(max[1]))) {\n min[0] = min[1] = max[0] = max[1] = 0;\n }\n\n rect = new BoundingRect(min[0], min[1], max[0] - min[0], max[1] - min[1]);\n\n if (!projection) {\n this._rect = rect;\n }\n\n return rect;\n };\n\n GeoJSONRegion.prototype.contain = function (coord) {\n var rect = this.getBoundingRect();\n var geometries = this.geometries;\n\n if (!rect.contain(coord[0], coord[1])) {\n return false;\n }\n\n loopGeo: for (var i = 0, len = geometries.length; i < len; i++) {\n var geo = geometries[i]; // Only support polygon.\n\n if (geo.type !== 'polygon') {\n continue;\n }\n\n var exterior = geo.exterior;\n var interiors = geo.interiors;\n\n if (polygonContain.contain(exterior, coord[0], coord[1])) {\n // Not in the region if point is in the hole.\n for (var k = 0; k < (interiors ? interiors.length : 0); k++) {\n if (polygonContain.contain(interiors[k], coord[0], coord[1])) {\n continue loopGeo;\n }\n }\n\n return true;\n }\n }\n\n return false;\n };\n /**\n * Transform the raw coords to target bounding.\n * @param x\n * @param y\n * @param width\n * @param height\n */\n\n\n GeoJSONRegion.prototype.transformTo = function (x, y, width, height) {\n var rect = this.getBoundingRect();\n var aspect = rect.width / rect.height;\n\n if (!width) {\n width = aspect * height;\n } else if (!height) {\n height = width / aspect;\n }\n\n var target = new BoundingRect(x, y, width, height);\n var transform = rect.calculateTransform(target);\n var geometries = this.geometries;\n\n for (var i = 0; i < geometries.length; i++) {\n var geo = geometries[i];\n\n if (geo.type === 'polygon') {\n transformPoints(geo.exterior, transform);\n each(geo.interiors, function (interior) {\n transformPoints(interior, transform);\n });\n } else {\n each(geo.points, function (points) {\n transformPoints(points, transform);\n });\n }\n }\n\n rect = this._rect;\n rect.copy(target); // Update center\n\n this._center = [rect.x + rect.width / 2, rect.y + rect.height / 2];\n };\n\n GeoJSONRegion.prototype.cloneShallow = function (name) {\n name == null && (name = this.name);\n var newRegion = new GeoJSONRegion(name, this.geometries, this._center);\n newRegion._rect = this._rect;\n newRegion.transformTo = null; // Simply avoid to be called.\n\n return newRegion;\n };\n\n return GeoJSONRegion;\n}(Region);\n\nexport { GeoJSONRegion };\n\nvar GeoSVGRegion =\n/** @class */\nfunction (_super) {\n __extends(GeoSVGRegion, _super);\n\n function GeoSVGRegion(name, elOnlyForCalculate) {\n var _this = _super.call(this, name) || this;\n\n _this.type = 'geoSVG';\n _this._elOnlyForCalculate = elOnlyForCalculate;\n return _this;\n }\n\n GeoSVGRegion.prototype.calcCenter = function () {\n var el = this._elOnlyForCalculate;\n var rect = el.getBoundingRect();\n var center = [rect.x + rect.width / 2, rect.y + rect.height / 2];\n var mat = matrix.identity(TMP_TRANSFORM);\n var target = el;\n\n while (target && !target.isGeoSVGGraphicRoot) {\n matrix.mul(mat, target.getLocalTransform(), mat);\n target = target.parent;\n }\n\n matrix.invert(mat, mat);\n vec2.applyTransform(center, center, mat);\n return center;\n };\n\n return GeoSVGRegion;\n}(Region);\n\nexport { GeoSVGRegion };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Fix for 钓鱼岛\n// let Region = require('../Region');\n// let zrUtil = require('zrender/lib/core/util');\n// let geoCoord = [126, 25];\nvar points = [[[123.45165252685547, 25.73527164402261], [123.49731445312499, 25.73527164402261], [123.49731445312499, 25.750734064600884], [123.45165252685547, 25.750734064600884], [123.45165252685547, 25.73527164402261]]];\nexport default function fixDiaoyuIsland(mapType, region) {\n if (mapType === 'china' && region.name === '台湾') {\n region.geometries.push({\n type: 'polygon',\n exterior: points[0]\n });\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Fix for 南海诸岛\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { GeoJSONRegion } from '../Region.js';\nvar geoCoord = [126, 25];\nvar nanhaiName = '南海诸岛';\nvar points = [[[0, 3.5], [7, 11.2], [15, 11.9], [30, 7], [42, 0.7], [52, 0.7], [56, 7.7], [59, 0.7], [64, 0.7], [64, 0], [5, 0], [0, 3.5]], [[13, 16.1], [19, 14.7], [16, 21.7], [11, 23.1], [13, 16.1]], [[12, 32.2], [14, 38.5], [15, 38.5], [13, 32.2], [12, 32.2]], [[16, 47.6], [12, 53.2], [13, 53.2], [18, 47.6], [16, 47.6]], [[6, 64.4], [8, 70], [9, 70], [8, 64.4], [6, 64.4]], [[23, 82.6], [29, 79.8], [30, 79.8], [25, 82.6], [23, 82.6]], [[37, 70.7], [43, 62.3], [44, 62.3], [39, 70.7], [37, 70.7]], [[48, 51.1], [51, 45.5], [53, 45.5], [50, 51.1], [48, 51.1]], [[51, 35], [51, 28.7], [53, 28.7], [53, 35], [51, 35]], [[52, 22.4], [55, 17.5], [56, 17.5], [53, 22.4], [52, 22.4]], [[58, 12.6], [62, 7], [63, 7], [60, 12.6], [58, 12.6]], [[0, 3.5], [0, 93.1], [64, 93.1], [64, 0], [63, 0], [63, 92.4], [1, 92.4], [1, 3.5], [0, 3.5]]];\n\nfor (var i = 0; i < points.length; i++) {\n for (var k = 0; k < points[i].length; k++) {\n points[i][k][0] /= 10.5;\n points[i][k][1] /= -10.5 / 0.75;\n points[i][k][0] += geoCoord[0];\n points[i][k][1] += geoCoord[1];\n }\n}\n\nexport default function fixNanhai(mapType, regions) {\n if (mapType === 'china') {\n for (var i = 0; i < regions.length; i++) {\n // Already exists.\n if (regions[i].name === nanhaiName) {\n return;\n }\n }\n\n regions.push(new GeoJSONRegion(nanhaiName, zrUtil.map(points, function (exterior) {\n return {\n type: 'polygon',\n exterior: exterior\n };\n }), geoCoord));\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar coordsOffsetMap = {\n '南海诸岛': [32, 80],\n // 全国\n '广东': [0, -10],\n '香港': [10, 5],\n '澳门': [-10, 10],\n // '北京': [-10, 0],\n '天津': [5, 5]\n};\nexport default function fixTextCoords(mapType, region) {\n if (mapType === 'china') {\n var coordFix = coordsOffsetMap[region.name];\n\n if (coordFix) {\n var cp = region.getCenter();\n cp[0] += coordFix[0] / 10.5;\n cp[1] += -coordFix[1] / (10.5 / 0.75);\n region.setCenter(cp);\n }\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport Geo, { geo2DDimensions } from './Geo.js';\nimport * as layout from '../../util/layout.js';\nimport * as numberUtil from '../../util/number.js';\nimport geoSourceManager from './geoSourceManager.js';\nimport * as vector from 'zrender/lib/core/vector.js';\n/**\n * Resize method bound to the geo\n */\n\nfunction resizeGeo(geoModel, api) {\n var boundingCoords = geoModel.get('boundingCoords');\n\n if (boundingCoords != null) {\n var leftTop_1 = boundingCoords[0];\n var rightBottom_1 = boundingCoords[1];\n\n if (!(isFinite(leftTop_1[0]) && isFinite(leftTop_1[1]) && isFinite(rightBottom_1[0]) && isFinite(rightBottom_1[1]))) {\n if (process.env.NODE_ENV !== 'production') {\n console.error('Invalid boundingCoords');\n }\n } else {\n // Sample around the lng/lat rect and use projection to calculate actual bounding rect.\n var projection_1 = this.projection;\n\n if (projection_1) {\n var xMin = leftTop_1[0];\n var yMin = leftTop_1[1];\n var xMax = rightBottom_1[0];\n var yMax = rightBottom_1[1];\n leftTop_1 = [Infinity, Infinity];\n rightBottom_1 = [-Infinity, -Infinity]; // TODO better way?\n\n var sampleLine = function (x0, y0, x1, y1) {\n var dx = x1 - x0;\n var dy = y1 - y0;\n\n for (var i = 0; i <= 100; i++) {\n var p = i / 100;\n var pt = projection_1.project([x0 + dx * p, y0 + dy * p]);\n vector.min(leftTop_1, leftTop_1, pt);\n vector.max(rightBottom_1, rightBottom_1, pt);\n }\n }; // Top\n\n\n sampleLine(xMin, yMin, xMax, yMin); // Right\n\n sampleLine(xMax, yMin, xMax, yMax); // Bottom\n\n sampleLine(xMax, yMax, xMin, yMax); // Left\n\n sampleLine(xMin, yMax, xMax, yMin);\n }\n\n this.setBoundingRect(leftTop_1[0], leftTop_1[1], rightBottom_1[0] - leftTop_1[0], rightBottom_1[1] - leftTop_1[1]);\n }\n }\n\n var rect = this.getBoundingRect();\n var centerOption = geoModel.get('layoutCenter');\n var sizeOption = geoModel.get('layoutSize');\n var viewWidth = api.getWidth();\n var viewHeight = api.getHeight();\n var aspect = rect.width / rect.height * this.aspectScale;\n var useCenterAndSize = false;\n var center;\n var size;\n\n if (centerOption && sizeOption) {\n center = [numberUtil.parsePercent(centerOption[0], viewWidth), numberUtil.parsePercent(centerOption[1], viewHeight)];\n size = numberUtil.parsePercent(sizeOption, Math.min(viewWidth, viewHeight));\n\n if (!isNaN(center[0]) && !isNaN(center[1]) && !isNaN(size)) {\n useCenterAndSize = true;\n } else {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('Given layoutCenter or layoutSize data are invalid. Use left/top/width/height instead.');\n }\n }\n }\n\n var viewRect;\n\n if (useCenterAndSize) {\n viewRect = {};\n\n if (aspect > 1) {\n // Width is same with size\n viewRect.width = size;\n viewRect.height = size / aspect;\n } else {\n viewRect.height = size;\n viewRect.width = size * aspect;\n }\n\n viewRect.y = center[1] - viewRect.height / 2;\n viewRect.x = center[0] - viewRect.width / 2;\n } else {\n // Use left/top/width/height\n var boxLayoutOption = geoModel.getBoxLayoutParams();\n boxLayoutOption.aspect = aspect;\n viewRect = layout.getLayoutRect(boxLayoutOption, {\n width: viewWidth,\n height: viewHeight\n });\n }\n\n this.setViewRect(viewRect.x, viewRect.y, viewRect.width, viewRect.height);\n this.setCenter(geoModel.get('center'), api);\n this.setZoom(geoModel.get('zoom'));\n} // Back compat for ECharts2, where the coord map is set on map series:\n// {type: 'map', geoCoord: {'cityA': [116.46,39.92], 'cityA': [119.12,24.61]}},\n\n\nfunction setGeoCoords(geo, model) {\n zrUtil.each(model.get('geoCoord'), function (geoCoord, name) {\n geo.addGeoCoord(name, geoCoord);\n });\n}\n\nvar GeoCreator =\n/** @class */\nfunction () {\n function GeoCreator() {\n // For deciding which dimensions to use when creating list data\n this.dimensions = geo2DDimensions;\n }\n\n GeoCreator.prototype.create = function (ecModel, api) {\n var geoList = [];\n\n function getCommonGeoProperties(model) {\n return {\n nameProperty: model.get('nameProperty'),\n aspectScale: model.get('aspectScale'),\n projection: model.get('projection')\n };\n } // FIXME Create each time may be slow\n\n\n ecModel.eachComponent('geo', function (geoModel, idx) {\n var mapName = geoModel.get('map');\n var geo = new Geo(mapName + idx, mapName, zrUtil.extend({\n nameMap: geoModel.get('nameMap')\n }, getCommonGeoProperties(geoModel)));\n geo.zoomLimit = geoModel.get('scaleLimit');\n geoList.push(geo); // setGeoCoords(geo, geoModel);\n\n geoModel.coordinateSystem = geo;\n geo.model = geoModel; // Inject resize method\n\n geo.resize = resizeGeo;\n geo.resize(geoModel, api);\n });\n ecModel.eachSeries(function (seriesModel) {\n var coordSys = seriesModel.get('coordinateSystem');\n\n if (coordSys === 'geo') {\n var geoIndex = seriesModel.get('geoIndex') || 0;\n seriesModel.coordinateSystem = geoList[geoIndex];\n }\n }); // If has map series\n\n var mapModelGroupBySeries = {};\n ecModel.eachSeriesByType('map', function (seriesModel) {\n if (!seriesModel.getHostGeoModel()) {\n var mapType = seriesModel.getMapType();\n mapModelGroupBySeries[mapType] = mapModelGroupBySeries[mapType] || [];\n mapModelGroupBySeries[mapType].push(seriesModel);\n }\n });\n zrUtil.each(mapModelGroupBySeries, function (mapSeries, mapType) {\n var nameMapList = zrUtil.map(mapSeries, function (singleMapSeries) {\n return singleMapSeries.get('nameMap');\n });\n var geo = new Geo(mapType, mapType, zrUtil.extend({\n nameMap: zrUtil.mergeAll(nameMapList)\n }, getCommonGeoProperties(mapSeries[0])));\n geo.zoomLimit = zrUtil.retrieve.apply(null, zrUtil.map(mapSeries, function (singleMapSeries) {\n return singleMapSeries.get('scaleLimit');\n }));\n geoList.push(geo); // Inject resize method\n\n geo.resize = resizeGeo;\n geo.resize(mapSeries[0], api);\n zrUtil.each(mapSeries, function (singleMapSeries) {\n singleMapSeries.coordinateSystem = geo;\n setGeoCoords(geo, singleMapSeries);\n });\n });\n return geoList;\n };\n /**\n * Fill given regions array\n */\n\n\n GeoCreator.prototype.getFilledRegions = function (originRegionArr, mapName, nameMap, nameProperty) {\n // Not use the original\n var regionsArr = (originRegionArr || []).slice();\n var dataNameMap = zrUtil.createHashMap();\n\n for (var i = 0; i < regionsArr.length; i++) {\n dataNameMap.set(regionsArr[i].name, regionsArr[i]);\n }\n\n var source = geoSourceManager.load(mapName, nameMap, nameProperty);\n zrUtil.each(source.regions, function (region) {\n var name = region.name;\n !dataNameMap.get(name) && regionsArr.push({\n name: name\n });\n });\n return regionsArr;\n };\n\n return GeoCreator;\n}();\n\nvar geoCreator = new GeoCreator();\nexport default geoCreator;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { createHashMap } from 'zrender/lib/core/util.js';\nimport { GeoSVGResource } from './GeoSVGResource.js';\nimport { GeoJSONResource } from './GeoJSONResource.js';\nvar storage = createHashMap();\nexport default {\n /**\n * Compatible with previous `echarts.registerMap`.\n *\n * @usage\n * ```js\n *\n * echarts.registerMap('USA', geoJson, specialAreas);\n *\n * echarts.registerMap('USA', {\n * geoJson: geoJson,\n * specialAreas: {...}\n * });\n * echarts.registerMap('USA', {\n * geoJSON: geoJson,\n * specialAreas: {...}\n * });\n *\n * echarts.registerMap('airport', {\n * svg: svg\n * }\n * ```\n *\n * Note:\n * Do not support that register multiple geoJSON or SVG\n * one map name. Because different geoJSON and SVG have\n * different unit. It's not easy to make sure how those\n * units are mapping/normalize.\n * If intending to use multiple geoJSON or SVG, we can\n * use multiple geo coordinate system.\n */\n registerMap: function (mapName, rawDef, rawSpecialAreas) {\n if (rawDef.svg) {\n var resource = new GeoSVGResource(mapName, rawDef.svg);\n storage.set(mapName, resource);\n } else {\n // Recommend:\n // echarts.registerMap('eu', { geoJSON: xxx, specialAreas: xxx });\n // Backward compatibility:\n // echarts.registerMap('eu', geoJSON, specialAreas);\n // echarts.registerMap('eu', { geoJson: xxx, specialAreas: xxx });\n var geoJSON = rawDef.geoJson || rawDef.geoJSON;\n\n if (geoJSON && !rawDef.features) {\n rawSpecialAreas = rawDef.specialAreas;\n } else {\n geoJSON = rawDef;\n }\n\n var resource = new GeoJSONResource(mapName, geoJSON, rawSpecialAreas);\n storage.set(mapName, resource);\n }\n },\n getGeoResource: function (mapName) {\n return storage.get(mapName);\n },\n\n /**\n * Only for exporting to users.\n * **MUST NOT** used internally.\n */\n getMapForUser: function (mapName) {\n var resource = storage.get(mapName); // Do not support return SVG until some real requirement come.\n\n return resource && resource.type === 'geoJSON' && resource.getMapForUser();\n },\n load: function (mapName, nameMap, nameProperty) {\n var resource = storage.get(mapName);\n\n if (!resource) {\n if (process.env.NODE_ENV !== 'production') {\n console.error('Map ' + mapName + ' not exists. The GeoJSON of the map must be provided.');\n }\n\n return;\n }\n\n return resource.load(nameMap, nameProperty);\n }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Parse and decode geo json\n */\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { GeoJSONLineStringGeometry, GeoJSONPolygonGeometry, GeoJSONRegion } from './Region.js';\n\nfunction decode(json) {\n if (!json.UTF8Encoding) {\n return json;\n }\n\n var jsonCompressed = json;\n var encodeScale = jsonCompressed.UTF8Scale;\n\n if (encodeScale == null) {\n encodeScale = 1024;\n }\n\n var features = jsonCompressed.features;\n zrUtil.each(features, function (feature) {\n var geometry = feature.geometry;\n var encodeOffsets = geometry.encodeOffsets;\n var coordinates = geometry.coordinates; // Geometry may be appeded manually in the script after json loaded.\n // In this case this geometry is usually not encoded.\n\n if (!encodeOffsets) {\n return;\n }\n\n switch (geometry.type) {\n case 'LineString':\n geometry.coordinates = decodeRing(coordinates, encodeOffsets, encodeScale);\n break;\n\n case 'Polygon':\n decodeRings(coordinates, encodeOffsets, encodeScale);\n break;\n\n case 'MultiLineString':\n decodeRings(coordinates, encodeOffsets, encodeScale);\n break;\n\n case 'MultiPolygon':\n zrUtil.each(coordinates, function (rings, idx) {\n return decodeRings(rings, encodeOffsets[idx], encodeScale);\n });\n }\n }); // Has been decoded\n\n jsonCompressed.UTF8Encoding = false;\n return jsonCompressed;\n}\n\nfunction decodeRings(rings, encodeOffsets, encodeScale) {\n for (var c = 0; c < rings.length; c++) {\n rings[c] = decodeRing(rings[c], encodeOffsets[c], encodeScale);\n }\n}\n\nfunction decodeRing(coordinate, encodeOffsets, encodeScale) {\n var result = [];\n var prevX = encodeOffsets[0];\n var prevY = encodeOffsets[1];\n\n for (var i = 0; i < coordinate.length; i += 2) {\n var x = coordinate.charCodeAt(i) - 64;\n var y = coordinate.charCodeAt(i + 1) - 64; // ZigZag decoding\n\n x = x >> 1 ^ -(x & 1);\n y = y >> 1 ^ -(y & 1); // Delta deocding\n\n x += prevX;\n y += prevY;\n prevX = x;\n prevY = y; // Dequantize\n\n result.push([x / encodeScale, y / encodeScale]);\n }\n\n return result;\n}\n\nexport default function parseGeoJSON(geoJson, nameProperty) {\n geoJson = decode(geoJson);\n return zrUtil.map(zrUtil.filter(geoJson.features, function (featureObj) {\n // Output of mapshaper may have geometry null\n return featureObj.geometry && featureObj.properties && featureObj.geometry.coordinates.length > 0;\n }), function (featureObj) {\n var properties = featureObj.properties;\n var geo = featureObj.geometry;\n var geometries = [];\n\n switch (geo.type) {\n case 'Polygon':\n var coordinates = geo.coordinates; // According to the GeoJSON specification.\n // First must be exterior, and the rest are all interior(holes).\n\n geometries.push(new GeoJSONPolygonGeometry(coordinates[0], coordinates.slice(1)));\n break;\n\n case 'MultiPolygon':\n zrUtil.each(geo.coordinates, function (item) {\n if (item[0]) {\n geometries.push(new GeoJSONPolygonGeometry(item[0], item.slice(1)));\n }\n });\n break;\n\n case 'LineString':\n geometries.push(new GeoJSONLineStringGeometry([geo.coordinates]));\n break;\n\n case 'MultiLineString':\n geometries.push(new GeoJSONLineStringGeometry(geo.coordinates));\n }\n\n var region = new GeoJSONRegion(properties[nameProperty || 'name'], geometries, properties.cp);\n region.properties = properties;\n return region;\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\n\nfunction dataToCoordSize(dataSize, dataItem) {\n dataItem = dataItem || [0, 0];\n return zrUtil.map([0, 1], function (dimIdx) {\n var val = dataItem[dimIdx];\n var halfSize = dataSize[dimIdx] / 2;\n var p1 = [];\n var p2 = [];\n p1[dimIdx] = val - halfSize;\n p2[dimIdx] = val + halfSize;\n p1[1 - dimIdx] = p2[1 - dimIdx] = dataItem[1 - dimIdx];\n return Math.abs(this.dataToPoint(p1)[dimIdx] - this.dataToPoint(p2)[dimIdx]);\n }, this);\n}\n\nexport default function geoPrepareCustom(coordSys) {\n var rect = coordSys.getBoundingRect();\n return {\n coordSys: {\n type: 'geo',\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height,\n zoom: coordSys.getZoom()\n },\n api: {\n coord: function (data) {\n // do not provide \"out\" and noRoam param,\n // Compatible with this usage:\n // echarts.util.map(item.points, api.coord)\n return coordSys.dataToPoint(data);\n },\n size: zrUtil.bind(dataToCoordSize, coordSys)\n }\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport ComponentModel from '../../model/Component.js';\nimport makeStyleMapper from '../../model/mixin/makeStyleMapper.js';\nimport * as numberUtil from '../../util/number.js';\nimport { AxisModelCommonMixin } from '../axisModelCommonMixin.js';\n\nvar ParallelAxisModel =\n/** @class */\nfunction (_super) {\n __extends(ParallelAxisModel, _super);\n\n function ParallelAxisModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = ParallelAxisModel.type;\n /**\n * @readOnly\n */\n\n _this.activeIntervals = [];\n return _this;\n }\n\n ParallelAxisModel.prototype.getAreaSelectStyle = function () {\n return makeStyleMapper([['fill', 'color'], ['lineWidth', 'borderWidth'], ['stroke', 'borderColor'], ['width', 'width'], ['opacity', 'opacity'] // Option decal is in `DecalObject` but style.decal is in `PatternObject`.\n // So do not transfer decal directly.\n ])(this.getModel('areaSelectStyle'));\n };\n /**\n * The code of this feature is put on AxisModel but not ParallelAxis,\n * because axisModel can be alive after echarts updating but instance of\n * ParallelAxis having been disposed. this._activeInterval should be kept\n * when action dispatched (i.e. legend click).\n *\n * @param intervals `interval.length === 0` means set all active.\n */\n\n\n ParallelAxisModel.prototype.setActiveIntervals = function (intervals) {\n var activeIntervals = this.activeIntervals = zrUtil.clone(intervals); // Normalize\n\n if (activeIntervals) {\n for (var i = activeIntervals.length - 1; i >= 0; i--) {\n numberUtil.asc(activeIntervals[i]);\n }\n }\n };\n /**\n * @param value When only attempting detect whether 'no activeIntervals set',\n * `value` is not needed to be input.\n */\n\n\n ParallelAxisModel.prototype.getActiveState = function (value) {\n var activeIntervals = this.activeIntervals;\n\n if (!activeIntervals.length) {\n return 'normal';\n }\n\n if (value == null || isNaN(+value)) {\n return 'inactive';\n } // Simple optimization\n\n\n if (activeIntervals.length === 1) {\n var interval = activeIntervals[0];\n\n if (interval[0] <= value && value <= interval[1]) {\n return 'active';\n }\n } else {\n for (var i = 0, len = activeIntervals.length; i < len; i++) {\n if (activeIntervals[i][0] <= value && value <= activeIntervals[i][1]) {\n return 'active';\n }\n }\n }\n\n return 'inactive';\n };\n\n return ParallelAxisModel;\n}(ComponentModel);\n\nzrUtil.mixin(ParallelAxisModel, AxisModelCommonMixin);\nexport default ParallelAxisModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Parallel Coordinates\n * \n */\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as matrix from 'zrender/lib/core/matrix.js';\nimport * as layoutUtil from '../../util/layout.js';\nimport * as axisHelper from '../../coord/axisHelper.js';\nimport ParallelAxis from './ParallelAxis.js';\nimport * as graphic from '../../util/graphic.js';\nimport * as numberUtil from '../../util/number.js';\nimport sliderMove from '../../component/helper/sliderMove.js';\nvar each = zrUtil.each;\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathFloor = Math.floor;\nvar mathCeil = Math.ceil;\nvar round = numberUtil.round;\nvar PI = Math.PI;\n\nvar Parallel =\n/** @class */\nfunction () {\n function Parallel(parallelModel, ecModel, api) {\n this.type = 'parallel';\n /**\n * key: dimension\n */\n\n this._axesMap = zrUtil.createHashMap();\n /**\n * key: dimension\n * value: {position: [], rotation, }\n */\n\n this._axesLayout = {};\n this.dimensions = parallelModel.dimensions;\n this._model = parallelModel;\n\n this._init(parallelModel, ecModel, api);\n }\n\n Parallel.prototype._init = function (parallelModel, ecModel, api) {\n var dimensions = parallelModel.dimensions;\n var parallelAxisIndex = parallelModel.parallelAxisIndex;\n each(dimensions, function (dim, idx) {\n var axisIndex = parallelAxisIndex[idx];\n var axisModel = ecModel.getComponent('parallelAxis', axisIndex);\n\n var axis = this._axesMap.set(dim, new ParallelAxis(dim, axisHelper.createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisIndex));\n\n var isCategory = axis.type === 'category';\n axis.onBand = isCategory && axisModel.get('boundaryGap');\n axis.inverse = axisModel.get('inverse'); // Injection\n\n axisModel.axis = axis;\n axis.model = axisModel;\n axis.coordinateSystem = axisModel.coordinateSystem = this;\n }, this);\n };\n /**\n * Update axis scale after data processed\n */\n\n\n Parallel.prototype.update = function (ecModel, api) {\n this._updateAxesFromSeries(this._model, ecModel);\n };\n\n Parallel.prototype.containPoint = function (point) {\n var layoutInfo = this._makeLayoutInfo();\n\n var axisBase = layoutInfo.axisBase;\n var layoutBase = layoutInfo.layoutBase;\n var pixelDimIndex = layoutInfo.pixelDimIndex;\n var pAxis = point[1 - pixelDimIndex];\n var pLayout = point[pixelDimIndex];\n return pAxis >= axisBase && pAxis <= axisBase + layoutInfo.axisLength && pLayout >= layoutBase && pLayout <= layoutBase + layoutInfo.layoutLength;\n };\n\n Parallel.prototype.getModel = function () {\n return this._model;\n };\n /**\n * Update properties from series\n */\n\n\n Parallel.prototype._updateAxesFromSeries = function (parallelModel, ecModel) {\n ecModel.eachSeries(function (seriesModel) {\n if (!parallelModel.contains(seriesModel, ecModel)) {\n return;\n }\n\n var data = seriesModel.getData();\n each(this.dimensions, function (dim) {\n var axis = this._axesMap.get(dim);\n\n axis.scale.unionExtentFromData(data, data.mapDimension(dim));\n axisHelper.niceScaleExtent(axis.scale, axis.model);\n }, this);\n }, this);\n };\n /**\n * Resize the parallel coordinate system.\n */\n\n\n Parallel.prototype.resize = function (parallelModel, api) {\n this._rect = layoutUtil.getLayoutRect(parallelModel.getBoxLayoutParams(), {\n width: api.getWidth(),\n height: api.getHeight()\n });\n\n this._layoutAxes();\n };\n\n Parallel.prototype.getRect = function () {\n return this._rect;\n };\n\n Parallel.prototype._makeLayoutInfo = function () {\n var parallelModel = this._model;\n var rect = this._rect;\n var xy = ['x', 'y'];\n var wh = ['width', 'height'];\n var layout = parallelModel.get('layout');\n var pixelDimIndex = layout === 'horizontal' ? 0 : 1;\n var layoutLength = rect[wh[pixelDimIndex]];\n var layoutExtent = [0, layoutLength];\n var axisCount = this.dimensions.length;\n var axisExpandWidth = restrict(parallelModel.get('axisExpandWidth'), layoutExtent);\n var axisExpandCount = restrict(parallelModel.get('axisExpandCount') || 0, [0, axisCount]);\n var axisExpandable = parallelModel.get('axisExpandable') && axisCount > 3 && axisCount > axisExpandCount && axisExpandCount > 1 && axisExpandWidth > 0 && layoutLength > 0; // `axisExpandWindow` is According to the coordinates of [0, axisExpandLength],\n // for sake of consider the case that axisCollapseWidth is 0 (when screen is narrow),\n // where collapsed axes should be overlapped.\n\n var axisExpandWindow = parallelModel.get('axisExpandWindow');\n var winSize;\n\n if (!axisExpandWindow) {\n winSize = restrict(axisExpandWidth * (axisExpandCount - 1), layoutExtent);\n var axisExpandCenter = parallelModel.get('axisExpandCenter') || mathFloor(axisCount / 2);\n axisExpandWindow = [axisExpandWidth * axisExpandCenter - winSize / 2];\n axisExpandWindow[1] = axisExpandWindow[0] + winSize;\n } else {\n winSize = restrict(axisExpandWindow[1] - axisExpandWindow[0], layoutExtent);\n axisExpandWindow[1] = axisExpandWindow[0] + winSize;\n }\n\n var axisCollapseWidth = (layoutLength - winSize) / (axisCount - axisExpandCount); // Avoid axisCollapseWidth is too small.\n\n axisCollapseWidth < 3 && (axisCollapseWidth = 0); // Find the first and last indices > ewin[0] and < ewin[1].\n\n var winInnerIndices = [mathFloor(round(axisExpandWindow[0] / axisExpandWidth, 1)) + 1, mathCeil(round(axisExpandWindow[1] / axisExpandWidth, 1)) - 1]; // Pos in ec coordinates.\n\n var axisExpandWindow0Pos = axisCollapseWidth / axisExpandWidth * axisExpandWindow[0];\n return {\n layout: layout,\n pixelDimIndex: pixelDimIndex,\n layoutBase: rect[xy[pixelDimIndex]],\n layoutLength: layoutLength,\n axisBase: rect[xy[1 - pixelDimIndex]],\n axisLength: rect[wh[1 - pixelDimIndex]],\n axisExpandable: axisExpandable,\n axisExpandWidth: axisExpandWidth,\n axisCollapseWidth: axisCollapseWidth,\n axisExpandWindow: axisExpandWindow,\n axisCount: axisCount,\n winInnerIndices: winInnerIndices,\n axisExpandWindow0Pos: axisExpandWindow0Pos\n };\n };\n\n Parallel.prototype._layoutAxes = function () {\n var rect = this._rect;\n var axes = this._axesMap;\n var dimensions = this.dimensions;\n\n var layoutInfo = this._makeLayoutInfo();\n\n var layout = layoutInfo.layout;\n axes.each(function (axis) {\n var axisExtent = [0, layoutInfo.axisLength];\n var idx = axis.inverse ? 1 : 0;\n axis.setExtent(axisExtent[idx], axisExtent[1 - idx]);\n });\n each(dimensions, function (dim, idx) {\n var posInfo = (layoutInfo.axisExpandable ? layoutAxisWithExpand : layoutAxisWithoutExpand)(idx, layoutInfo);\n var positionTable = {\n horizontal: {\n x: posInfo.position,\n y: layoutInfo.axisLength\n },\n vertical: {\n x: 0,\n y: posInfo.position\n }\n };\n var rotationTable = {\n horizontal: PI / 2,\n vertical: 0\n };\n var position = [positionTable[layout].x + rect.x, positionTable[layout].y + rect.y];\n var rotation = rotationTable[layout];\n var transform = matrix.create();\n matrix.rotate(transform, transform, rotation);\n matrix.translate(transform, transform, position); // TODO\n // tick layout info\n // TODO\n // update dimensions info based on axis order.\n\n this._axesLayout[dim] = {\n position: position,\n rotation: rotation,\n transform: transform,\n axisNameAvailableWidth: posInfo.axisNameAvailableWidth,\n axisLabelShow: posInfo.axisLabelShow,\n nameTruncateMaxWidth: posInfo.nameTruncateMaxWidth,\n tickDirection: 1,\n labelDirection: 1\n };\n }, this);\n };\n /**\n * Get axis by dim.\n */\n\n\n Parallel.prototype.getAxis = function (dim) {\n return this._axesMap.get(dim);\n };\n /**\n * Convert a dim value of a single item of series data to Point.\n */\n\n\n Parallel.prototype.dataToPoint = function (value, dim) {\n return this.axisCoordToPoint(this._axesMap.get(dim).dataToCoord(value), dim);\n };\n /**\n * Travel data for one time, get activeState of each data item.\n * @param start the start dataIndex that travel from.\n * @param end the next dataIndex of the last dataIndex will be travel.\n */\n\n\n Parallel.prototype.eachActiveState = function (data, callback, start, end) {\n start == null && (start = 0);\n end == null && (end = data.count());\n var axesMap = this._axesMap;\n var dimensions = this.dimensions;\n var dataDimensions = [];\n var axisModels = [];\n zrUtil.each(dimensions, function (axisDim) {\n dataDimensions.push(data.mapDimension(axisDim));\n axisModels.push(axesMap.get(axisDim).model);\n });\n var hasActiveSet = this.hasAxisBrushed();\n\n for (var dataIndex = start; dataIndex < end; dataIndex++) {\n var activeState = void 0;\n\n if (!hasActiveSet) {\n activeState = 'normal';\n } else {\n activeState = 'active';\n var values = data.getValues(dataDimensions, dataIndex);\n\n for (var j = 0, lenj = dimensions.length; j < lenj; j++) {\n var state = axisModels[j].getActiveState(values[j]);\n\n if (state === 'inactive') {\n activeState = 'inactive';\n break;\n }\n }\n }\n\n callback(activeState, dataIndex);\n }\n };\n /**\n * Whether has any activeSet.\n */\n\n\n Parallel.prototype.hasAxisBrushed = function () {\n var dimensions = this.dimensions;\n var axesMap = this._axesMap;\n var hasActiveSet = false;\n\n for (var j = 0, lenj = dimensions.length; j < lenj; j++) {\n if (axesMap.get(dimensions[j]).model.getActiveState() !== 'normal') {\n hasActiveSet = true;\n }\n }\n\n return hasActiveSet;\n };\n /**\n * Convert coords of each axis to Point.\n * Return point. For example: [10, 20]\n */\n\n\n Parallel.prototype.axisCoordToPoint = function (coord, dim) {\n var axisLayout = this._axesLayout[dim];\n return graphic.applyTransform([coord, 0], axisLayout.transform);\n };\n /**\n * Get axis layout.\n */\n\n\n Parallel.prototype.getAxisLayout = function (dim) {\n return zrUtil.clone(this._axesLayout[dim]);\n };\n /**\n * @return {Object} {axisExpandWindow, delta, behavior: 'jump' | 'slide' | 'none'}.\n */\n\n\n Parallel.prototype.getSlidedAxisExpandWindow = function (point) {\n var layoutInfo = this._makeLayoutInfo();\n\n var pixelDimIndex = layoutInfo.pixelDimIndex;\n var axisExpandWindow = layoutInfo.axisExpandWindow.slice();\n var winSize = axisExpandWindow[1] - axisExpandWindow[0];\n var extent = [0, layoutInfo.axisExpandWidth * (layoutInfo.axisCount - 1)]; // Out of the area of coordinate system.\n\n if (!this.containPoint(point)) {\n return {\n behavior: 'none',\n axisExpandWindow: axisExpandWindow\n };\n } // Convert the point from global to expand coordinates.\n\n\n var pointCoord = point[pixelDimIndex] - layoutInfo.layoutBase - layoutInfo.axisExpandWindow0Pos; // For dragging operation convenience, the window should not be\n // slided when mouse is the center area of the window.\n\n var delta;\n var behavior = 'slide';\n var axisCollapseWidth = layoutInfo.axisCollapseWidth;\n\n var triggerArea = this._model.get('axisExpandSlideTriggerArea'); // But consider touch device, jump is necessary.\n\n\n var useJump = triggerArea[0] != null;\n\n if (axisCollapseWidth) {\n if (useJump && axisCollapseWidth && pointCoord < winSize * triggerArea[0]) {\n behavior = 'jump';\n delta = pointCoord - winSize * triggerArea[2];\n } else if (useJump && axisCollapseWidth && pointCoord > winSize * (1 - triggerArea[0])) {\n behavior = 'jump';\n delta = pointCoord - winSize * (1 - triggerArea[2]);\n } else {\n (delta = pointCoord - winSize * triggerArea[1]) >= 0 && (delta = pointCoord - winSize * (1 - triggerArea[1])) <= 0 && (delta = 0);\n }\n\n delta *= layoutInfo.axisExpandWidth / axisCollapseWidth;\n delta ? sliderMove(delta, axisExpandWindow, extent, 'all') // Avoid nonsense triger on mousemove.\n : behavior = 'none';\n } // When screen is too narrow, make it visible and slidable, although it is hard to interact.\n else {\n var winSize2 = axisExpandWindow[1] - axisExpandWindow[0];\n var pos = extent[1] * pointCoord / winSize2;\n axisExpandWindow = [mathMax(0, pos - winSize2 / 2)];\n axisExpandWindow[1] = mathMin(extent[1], axisExpandWindow[0] + winSize2);\n axisExpandWindow[0] = axisExpandWindow[1] - winSize2;\n }\n\n return {\n axisExpandWindow: axisExpandWindow,\n behavior: behavior\n };\n };\n\n return Parallel;\n}();\n\nfunction restrict(len, extent) {\n return mathMin(mathMax(len, extent[0]), extent[1]);\n}\n\nfunction layoutAxisWithoutExpand(axisIndex, layoutInfo) {\n var step = layoutInfo.layoutLength / (layoutInfo.axisCount - 1);\n return {\n position: step * axisIndex,\n axisNameAvailableWidth: step,\n axisLabelShow: true\n };\n}\n\nfunction layoutAxisWithExpand(axisIndex, layoutInfo) {\n var layoutLength = layoutInfo.layoutLength;\n var axisExpandWidth = layoutInfo.axisExpandWidth;\n var axisCount = layoutInfo.axisCount;\n var axisCollapseWidth = layoutInfo.axisCollapseWidth;\n var winInnerIndices = layoutInfo.winInnerIndices;\n var position;\n var axisNameAvailableWidth = axisCollapseWidth;\n var axisLabelShow = false;\n var nameTruncateMaxWidth;\n\n if (axisIndex < winInnerIndices[0]) {\n position = axisIndex * axisCollapseWidth;\n nameTruncateMaxWidth = axisCollapseWidth;\n } else if (axisIndex <= winInnerIndices[1]) {\n position = layoutInfo.axisExpandWindow0Pos + axisIndex * axisExpandWidth - layoutInfo.axisExpandWindow[0];\n axisNameAvailableWidth = axisExpandWidth;\n axisLabelShow = true;\n } else {\n position = layoutLength - (axisCount - 1 - axisIndex) * axisCollapseWidth;\n nameTruncateMaxWidth = axisCollapseWidth;\n }\n\n return {\n position: position,\n axisNameAvailableWidth: axisNameAvailableWidth,\n axisLabelShow: axisLabelShow,\n nameTruncateMaxWidth: nameTruncateMaxWidth\n };\n}\n\nexport default Parallel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport Axis from '../Axis.js';\n\nvar ParallelAxis =\n/** @class */\nfunction (_super) {\n __extends(ParallelAxis, _super);\n\n function ParallelAxis(dim, scale, coordExtent, axisType, axisIndex) {\n var _this = _super.call(this, dim, scale, coordExtent) || this;\n\n _this.type = axisType || 'value';\n _this.axisIndex = axisIndex;\n return _this;\n }\n\n ParallelAxis.prototype.isHorizontal = function () {\n return this.coordinateSystem.getModel().get('layout') !== 'horizontal';\n };\n\n return ParallelAxis;\n}(Axis);\n\nexport default ParallelAxis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport ComponentModel from '../../model/Component.js';\n\nvar ParallelModel =\n/** @class */\nfunction (_super) {\n __extends(ParallelModel, _super);\n\n function ParallelModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = ParallelModel.type;\n return _this;\n }\n\n ParallelModel.prototype.init = function () {\n _super.prototype.init.apply(this, arguments);\n\n this.mergeOption({});\n };\n\n ParallelModel.prototype.mergeOption = function (newOption) {\n var thisOption = this.option;\n newOption && zrUtil.merge(thisOption, newOption, true);\n\n this._initDimensions();\n };\n /**\n * Whether series or axis is in this coordinate system.\n */\n\n\n ParallelModel.prototype.contains = function (model, ecModel) {\n var parallelIndex = model.get('parallelIndex');\n return parallelIndex != null && ecModel.getComponent('parallel', parallelIndex) === this;\n };\n\n ParallelModel.prototype.setAxisExpand = function (opt) {\n zrUtil.each(['axisExpandable', 'axisExpandCenter', 'axisExpandCount', 'axisExpandWidth', 'axisExpandWindow'], function (name) {\n if (opt.hasOwnProperty(name)) {\n // @ts-ignore FIXME: why \"never\" inferred in this.option[name]?\n this.option[name] = opt[name];\n }\n }, this);\n };\n\n ParallelModel.prototype._initDimensions = function () {\n var dimensions = this.dimensions = [];\n var parallelAxisIndex = this.parallelAxisIndex = [];\n var axisModels = zrUtil.filter(this.ecModel.queryComponents({\n mainType: 'parallelAxis'\n }), function (axisModel) {\n // Can not use this.contains here, because\n // initialization has not been completed yet.\n return (axisModel.get('parallelIndex') || 0) === this.componentIndex;\n }, this);\n zrUtil.each(axisModels, function (axisModel) {\n dimensions.push('dim' + axisModel.get('dim'));\n parallelAxisIndex.push(axisModel.componentIndex);\n });\n };\n\n ParallelModel.type = 'parallel';\n ParallelModel.dependencies = ['parallelAxis'];\n ParallelModel.layoutMode = 'box';\n ParallelModel.defaultOption = {\n // zlevel: 0,\n z: 0,\n left: 80,\n top: 60,\n right: 80,\n bottom: 60,\n // width: {totalWidth} - left - right,\n // height: {totalHeight} - top - bottom,\n layout: 'horizontal',\n // FIXME\n // naming?\n axisExpandable: false,\n axisExpandCenter: null,\n axisExpandCount: 0,\n axisExpandWidth: 50,\n axisExpandRate: 17,\n axisExpandDebounce: 50,\n // [out, in, jumpTarget]. In percentage. If use [null, 0.05], null means full.\n // Do not doc to user until necessary.\n axisExpandSlideTriggerArea: [-0.15, 0.05, 0.4],\n axisExpandTriggerOn: 'click',\n parallelAxisDefault: null\n };\n return ParallelModel;\n}(ComponentModel);\n\nexport default ParallelModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Parallel coordinate system creater.\n */\nimport Parallel from './Parallel.js';\nimport { SINGLE_REFERRING } from '../../util/model.js';\n\nfunction createParallelCoordSys(ecModel, api) {\n var coordSysList = [];\n ecModel.eachComponent('parallel', function (parallelModel, idx) {\n var coordSys = new Parallel(parallelModel, ecModel, api);\n coordSys.name = 'parallel_' + idx;\n coordSys.resize(parallelModel, api);\n parallelModel.coordinateSystem = coordSys;\n coordSys.model = parallelModel;\n coordSysList.push(coordSys);\n }); // Inject the coordinateSystems into seriesModel\n\n ecModel.eachSeries(function (seriesModel) {\n if (seriesModel.get('coordinateSystem') === 'parallel') {\n var parallelModel = seriesModel.getReferringComponents('parallel', SINGLE_REFERRING).models[0];\n seriesModel.coordinateSystem = parallelModel.coordinateSystem;\n }\n });\n return coordSysList;\n}\n\nvar parallelCoordSysCreator = {\n create: createParallelCoordSys\n};\nexport default parallelCoordSysCreator;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as modelUtil from '../../util/model.js';\nexport default function parallelPreprocessor(option) {\n createParallelIfNeeded(option);\n mergeAxisOptionFromParallel(option);\n}\n/**\n * Create a parallel coordinate if not exists.\n * @inner\n */\n\nfunction createParallelIfNeeded(option) {\n if (option.parallel) {\n return;\n }\n\n var hasParallelSeries = false;\n zrUtil.each(option.series, function (seriesOpt) {\n if (seriesOpt && seriesOpt.type === 'parallel') {\n hasParallelSeries = true;\n }\n });\n\n if (hasParallelSeries) {\n option.parallel = [{}];\n }\n}\n/**\n * Merge aixs definition from parallel option (if exists) to axis option.\n * @inner\n */\n\n\nfunction mergeAxisOptionFromParallel(option) {\n var axes = modelUtil.normalizeToArray(option.parallelAxis);\n zrUtil.each(axes, function (axisOption) {\n if (!zrUtil.isObject(axisOption)) {\n return;\n }\n\n var parallelIndex = axisOption.parallelIndex || 0;\n var parallelOption = modelUtil.normalizeToArray(option.parallel)[parallelIndex];\n\n if (parallelOption && parallelOption.parallelAxisDefault) {\n zrUtil.merge(axisOption, parallelOption.parallelAxisDefault, false);\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as textContain from 'zrender/lib/contain/text.js';\nimport Axis from '../Axis.js';\nimport { makeInner } from '../../util/model.js';\nvar inner = makeInner();\n\nvar AngleAxis =\n/** @class */\nfunction (_super) {\n __extends(AngleAxis, _super);\n\n function AngleAxis(scale, angleExtent) {\n return _super.call(this, 'angle', scale, angleExtent || [0, 360]) || this;\n }\n\n AngleAxis.prototype.pointToData = function (point, clamp) {\n return this.polar.pointToData(point, clamp)[this.dim === 'radius' ? 0 : 1];\n };\n /**\n * Only be called in category axis.\n * Angle axis uses text height to decide interval\n *\n * @override\n * @return {number} Auto interval for cateogry axis tick and label\n */\n\n\n AngleAxis.prototype.calculateCategoryInterval = function () {\n var axis = this;\n var labelModel = axis.getLabelModel();\n var ordinalScale = axis.scale;\n var ordinalExtent = ordinalScale.getExtent(); // Providing this method is for optimization:\n // avoid generating a long array by `getTicks`\n // in large category data case.\n\n var tickCount = ordinalScale.count();\n\n if (ordinalExtent[1] - ordinalExtent[0] < 1) {\n return 0;\n }\n\n var tickValue = ordinalExtent[0];\n var unitSpan = axis.dataToCoord(tickValue + 1) - axis.dataToCoord(tickValue);\n var unitH = Math.abs(unitSpan); // Not precise, just use height as text width\n // and each distance from axis line yet.\n\n var rect = textContain.getBoundingRect(tickValue == null ? '' : tickValue + '', labelModel.getFont(), 'center', 'top');\n var maxH = Math.max(rect.height, 7);\n var dh = maxH / unitH; // 0/0 is NaN, 1/0 is Infinity.\n\n isNaN(dh) && (dh = Infinity);\n var interval = Math.max(0, Math.floor(dh));\n var cache = inner(axis.model);\n var lastAutoInterval = cache.lastAutoInterval;\n var lastTickCount = cache.lastTickCount; // Use cache to keep interval stable while moving zoom window,\n // otherwise the calculated interval might jitter when the zoom\n // window size is close to the interval-changing size.\n\n if (lastAutoInterval != null && lastTickCount != null && Math.abs(lastAutoInterval - interval) <= 1 && Math.abs(lastTickCount - tickCount) <= 1 // Always choose the bigger one, otherwise the critical\n // point is not the same when zooming in or zooming out.\n && lastAutoInterval > interval) {\n interval = lastAutoInterval;\n } // Only update cache if cache not used, otherwise the\n // changing of interval is too insensitive.\n else {\n cache.lastTickCount = tickCount;\n cache.lastAutoInterval = interval;\n }\n\n return interval;\n };\n\n return AngleAxis;\n}(Axis);\n\nAngleAxis.prototype.dataToAngle = Axis.prototype.dataToCoord;\nAngleAxis.prototype.angleToData = Axis.prototype.coordToData;\nexport default AngleAxis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport ComponentModel from '../../model/Component.js';\nimport { AxisModelCommonMixin } from '../axisModelCommonMixin.js';\nimport { SINGLE_REFERRING } from '../../util/model.js';\n\nvar PolarAxisModel =\n/** @class */\nfunction (_super) {\n __extends(PolarAxisModel, _super);\n\n function PolarAxisModel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n PolarAxisModel.prototype.getCoordSysModel = function () {\n return this.getReferringComponents('polar', SINGLE_REFERRING).models[0];\n };\n\n PolarAxisModel.type = 'polarAxis';\n return PolarAxisModel;\n}(ComponentModel);\n\nzrUtil.mixin(PolarAxisModel, AxisModelCommonMixin);\nexport { PolarAxisModel };\n\nvar AngleAxisModel =\n/** @class */\nfunction (_super) {\n __extends(AngleAxisModel, _super);\n\n function AngleAxisModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = AngleAxisModel.type;\n return _this;\n }\n\n AngleAxisModel.type = 'angleAxis';\n return AngleAxisModel;\n}(PolarAxisModel);\n\nexport { AngleAxisModel };\n\nvar RadiusAxisModel =\n/** @class */\nfunction (_super) {\n __extends(RadiusAxisModel, _super);\n\n function RadiusAxisModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = RadiusAxisModel.type;\n return _this;\n }\n\n RadiusAxisModel.type = 'radiusAxis';\n return RadiusAxisModel;\n}(PolarAxisModel);\n\nexport { RadiusAxisModel };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport RadiusAxis from './RadiusAxis.js';\nimport AngleAxis from './AngleAxis.js';\nexport var polarDimensions = ['radius', 'angle'];\n\nvar Polar =\n/** @class */\nfunction () {\n function Polar(name) {\n this.dimensions = polarDimensions;\n this.type = 'polar';\n /**\n * x of polar center\n */\n\n this.cx = 0;\n /**\n * y of polar center\n */\n\n this.cy = 0;\n this._radiusAxis = new RadiusAxis();\n this._angleAxis = new AngleAxis();\n this.axisPointerEnabled = true;\n this.name = name || '';\n this._radiusAxis.polar = this._angleAxis.polar = this;\n }\n /**\n * If contain coord\n */\n\n\n Polar.prototype.containPoint = function (point) {\n var coord = this.pointToCoord(point);\n return this._radiusAxis.contain(coord[0]) && this._angleAxis.contain(coord[1]);\n };\n /**\n * If contain data\n */\n\n\n Polar.prototype.containData = function (data) {\n return this._radiusAxis.containData(data[0]) && this._angleAxis.containData(data[1]);\n };\n\n Polar.prototype.getAxis = function (dim) {\n var key = '_' + dim + 'Axis';\n return this[key];\n };\n\n Polar.prototype.getAxes = function () {\n return [this._radiusAxis, this._angleAxis];\n };\n /**\n * Get axes by type of scale\n */\n\n\n Polar.prototype.getAxesByScale = function (scaleType) {\n var axes = [];\n var angleAxis = this._angleAxis;\n var radiusAxis = this._radiusAxis;\n angleAxis.scale.type === scaleType && axes.push(angleAxis);\n radiusAxis.scale.type === scaleType && axes.push(radiusAxis);\n return axes;\n };\n\n Polar.prototype.getAngleAxis = function () {\n return this._angleAxis;\n };\n\n Polar.prototype.getRadiusAxis = function () {\n return this._radiusAxis;\n };\n\n Polar.prototype.getOtherAxis = function (axis) {\n var angleAxis = this._angleAxis;\n return axis === angleAxis ? this._radiusAxis : angleAxis;\n };\n /**\n * Base axis will be used on stacking.\n *\n */\n\n\n Polar.prototype.getBaseAxis = function () {\n return this.getAxesByScale('ordinal')[0] || this.getAxesByScale('time')[0] || this.getAngleAxis();\n };\n\n Polar.prototype.getTooltipAxes = function (dim) {\n var baseAxis = dim != null && dim !== 'auto' ? this.getAxis(dim) : this.getBaseAxis();\n return {\n baseAxes: [baseAxis],\n otherAxes: [this.getOtherAxis(baseAxis)]\n };\n };\n /**\n * Convert a single data item to (x, y) point.\n * Parameter data is an array which the first element is radius and the second is angle\n */\n\n\n Polar.prototype.dataToPoint = function (data, clamp) {\n return this.coordToPoint([this._radiusAxis.dataToRadius(data[0], clamp), this._angleAxis.dataToAngle(data[1], clamp)]);\n };\n /**\n * Convert a (x, y) point to data\n */\n\n\n Polar.prototype.pointToData = function (point, clamp) {\n var coord = this.pointToCoord(point);\n return [this._radiusAxis.radiusToData(coord[0], clamp), this._angleAxis.angleToData(coord[1], clamp)];\n };\n /**\n * Convert a (x, y) point to (radius, angle) coord\n */\n\n\n Polar.prototype.pointToCoord = function (point) {\n var dx = point[0] - this.cx;\n var dy = point[1] - this.cy;\n var angleAxis = this.getAngleAxis();\n var extent = angleAxis.getExtent();\n var minAngle = Math.min(extent[0], extent[1]);\n var maxAngle = Math.max(extent[0], extent[1]); // Fix fixed extent in polarCreator\n // FIXME\n\n angleAxis.inverse ? minAngle = maxAngle - 360 : maxAngle = minAngle + 360;\n var radius = Math.sqrt(dx * dx + dy * dy);\n dx /= radius;\n dy /= radius;\n var radian = Math.atan2(-dy, dx) / Math.PI * 180; // move to angleExtent\n\n var dir = radian < minAngle ? 1 : -1;\n\n while (radian < minAngle || radian > maxAngle) {\n radian += dir * 360;\n }\n\n return [radius, radian];\n };\n /**\n * Convert a (radius, angle) coord to (x, y) point\n */\n\n\n Polar.prototype.coordToPoint = function (coord) {\n var radius = coord[0];\n var radian = coord[1] / 180 * Math.PI;\n var x = Math.cos(radian) * radius + this.cx; // Inverse the y\n\n var y = -Math.sin(radian) * radius + this.cy;\n return [x, y];\n };\n /**\n * Get ring area of cartesian.\n * Area will have a contain function to determine if a point is in the coordinate system.\n */\n\n\n Polar.prototype.getArea = function () {\n var angleAxis = this.getAngleAxis();\n var radiusAxis = this.getRadiusAxis();\n var radiusExtent = radiusAxis.getExtent().slice();\n radiusExtent[0] > radiusExtent[1] && radiusExtent.reverse();\n var angleExtent = angleAxis.getExtent();\n var RADIAN = Math.PI / 180;\n return {\n cx: this.cx,\n cy: this.cy,\n r0: radiusExtent[0],\n r: radiusExtent[1],\n startAngle: -angleExtent[0] * RADIAN,\n endAngle: -angleExtent[1] * RADIAN,\n clockwise: angleAxis.inverse,\n contain: function (x, y) {\n // It's a ring shape.\n // Start angle and end angle don't matter\n var dx = x - this.cx;\n var dy = y - this.cy; // minus a tiny value 1e-4 to avoid being clipped unexpectedly\n\n var d2 = dx * dx + dy * dy - 1e-4;\n var r = this.r;\n var r0 = this.r0;\n return d2 <= r * r && d2 >= r0 * r0;\n }\n };\n };\n\n Polar.prototype.convertToPixel = function (ecModel, finder, value) {\n var coordSys = getCoordSys(finder);\n return coordSys === this ? this.dataToPoint(value) : null;\n };\n\n Polar.prototype.convertFromPixel = function (ecModel, finder, pixel) {\n var coordSys = getCoordSys(finder);\n return coordSys === this ? this.pointToData(pixel) : null;\n };\n\n return Polar;\n}();\n\nfunction getCoordSys(finder) {\n var seriesModel = finder.seriesModel;\n var polarModel = finder.polarModel;\n return polarModel && polarModel.coordinateSystem || seriesModel && seriesModel.coordinateSystem;\n}\n\nexport default Polar;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component.js';\n\nvar PolarModel =\n/** @class */\nfunction (_super) {\n __extends(PolarModel, _super);\n\n function PolarModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = PolarModel.type;\n return _this;\n }\n\n PolarModel.prototype.findAxisModel = function (axisType) {\n var foundAxisModel;\n var ecModel = this.ecModel;\n ecModel.eachComponent(axisType, function (axisModel) {\n if (axisModel.getCoordSysModel() === this) {\n foundAxisModel = axisModel;\n }\n }, this);\n return foundAxisModel;\n };\n\n PolarModel.type = 'polar';\n PolarModel.dependencies = ['radiusAxis', 'angleAxis'];\n PolarModel.defaultOption = {\n // zlevel: 0,\n z: 0,\n center: ['50%', '50%'],\n radius: '80%'\n };\n return PolarModel;\n}(ComponentModel);\n\nexport default PolarModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport Axis from '../Axis.js';\n\nvar RadiusAxis =\n/** @class */\nfunction (_super) {\n __extends(RadiusAxis, _super);\n\n function RadiusAxis(scale, radiusExtent) {\n return _super.call(this, 'radius', scale, radiusExtent) || this;\n }\n\n RadiusAxis.prototype.pointToData = function (point, clamp) {\n return this.polar.pointToData(point, clamp)[this.dim === 'radius' ? 0 : 1];\n };\n\n return RadiusAxis;\n}(Axis);\n\nRadiusAxis.prototype.dataToRadius = Axis.prototype.dataToCoord;\nRadiusAxis.prototype.radiusToData = Axis.prototype.coordToData;\nexport default RadiusAxis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// TODO Axis scale\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport Polar, { polarDimensions } from './Polar.js';\nimport { parsePercent } from '../../util/number.js';\nimport { createScaleByModel, niceScaleExtent, getDataDimensionsOnAxis } from '../../coord/axisHelper.js';\nimport { SINGLE_REFERRING } from '../../util/model.js';\n/**\n * Resize method bound to the polar\n */\n\nfunction resizePolar(polar, polarModel, api) {\n var center = polarModel.get('center');\n var width = api.getWidth();\n var height = api.getHeight();\n polar.cx = parsePercent(center[0], width);\n polar.cy = parsePercent(center[1], height);\n var radiusAxis = polar.getRadiusAxis();\n var size = Math.min(width, height) / 2;\n var radius = polarModel.get('radius');\n\n if (radius == null) {\n radius = [0, '100%'];\n } else if (!zrUtil.isArray(radius)) {\n // r0 = 0\n radius = [0, radius];\n }\n\n var parsedRadius = [parsePercent(radius[0], size), parsePercent(radius[1], size)];\n radiusAxis.inverse ? radiusAxis.setExtent(parsedRadius[1], parsedRadius[0]) : radiusAxis.setExtent(parsedRadius[0], parsedRadius[1]);\n}\n/**\n * Update polar\n */\n\n\nfunction updatePolarScale(ecModel, api) {\n var polar = this;\n var angleAxis = polar.getAngleAxis();\n var radiusAxis = polar.getRadiusAxis(); // Reset scale\n\n angleAxis.scale.setExtent(Infinity, -Infinity);\n radiusAxis.scale.setExtent(Infinity, -Infinity);\n ecModel.eachSeries(function (seriesModel) {\n if (seriesModel.coordinateSystem === polar) {\n var data_1 = seriesModel.getData();\n zrUtil.each(getDataDimensionsOnAxis(data_1, 'radius'), function (dim) {\n radiusAxis.scale.unionExtentFromData(data_1, dim);\n });\n zrUtil.each(getDataDimensionsOnAxis(data_1, 'angle'), function (dim) {\n angleAxis.scale.unionExtentFromData(data_1, dim);\n });\n }\n });\n niceScaleExtent(angleAxis.scale, angleAxis.model);\n niceScaleExtent(radiusAxis.scale, radiusAxis.model); // Fix extent of category angle axis\n\n if (angleAxis.type === 'category' && !angleAxis.onBand) {\n var extent = angleAxis.getExtent();\n var diff = 360 / angleAxis.scale.count();\n angleAxis.inverse ? extent[1] += diff : extent[1] -= diff;\n angleAxis.setExtent(extent[0], extent[1]);\n }\n}\n\nfunction isAngleAxisModel(axisModel) {\n return axisModel.mainType === 'angleAxis';\n}\n/**\n * Set common axis properties\n */\n\n\nfunction setAxis(axis, axisModel) {\n axis.type = axisModel.get('type');\n axis.scale = createScaleByModel(axisModel);\n axis.onBand = axisModel.get('boundaryGap') && axis.type === 'category';\n axis.inverse = axisModel.get('inverse');\n\n if (isAngleAxisModel(axisModel)) {\n axis.inverse = axis.inverse !== axisModel.get('clockwise');\n var startAngle = axisModel.get('startAngle');\n axis.setExtent(startAngle, startAngle + (axis.inverse ? -360 : 360));\n } // Inject axis instance\n\n\n axisModel.axis = axis;\n axis.model = axisModel;\n}\n\nvar polarCreator = {\n dimensions: polarDimensions,\n create: function (ecModel, api) {\n var polarList = [];\n ecModel.eachComponent('polar', function (polarModel, idx) {\n var polar = new Polar(idx + ''); // Inject resize and update method\n\n polar.update = updatePolarScale;\n var radiusAxis = polar.getRadiusAxis();\n var angleAxis = polar.getAngleAxis();\n var radiusAxisModel = polarModel.findAxisModel('radiusAxis');\n var angleAxisModel = polarModel.findAxisModel('angleAxis');\n setAxis(radiusAxis, radiusAxisModel);\n setAxis(angleAxis, angleAxisModel);\n resizePolar(polar, polarModel, api);\n polarList.push(polar);\n polarModel.coordinateSystem = polar;\n polar.model = polarModel;\n }); // Inject coordinateSystem to series\n\n ecModel.eachSeries(function (seriesModel) {\n if (seriesModel.get('coordinateSystem') === 'polar') {\n var polarModel = seriesModel.getReferringComponents('polar', SINGLE_REFERRING).models[0];\n\n if (process.env.NODE_ENV !== 'production') {\n if (!polarModel) {\n throw new Error('Polar \"' + zrUtil.retrieve(seriesModel.get('polarIndex'), seriesModel.get('polarId'), 0) + '\" not found');\n }\n }\n\n seriesModel.coordinateSystem = polarModel.coordinateSystem;\n }\n });\n return polarList;\n }\n};\nexport default polarCreator;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js'; // import AngleAxis from './AngleAxis.js';\n\nfunction dataToCoordSize(dataSize, dataItem) {\n // dataItem is necessary in log axis.\n dataItem = dataItem || [0, 0];\n return zrUtil.map(['Radius', 'Angle'], function (dim, dimIdx) {\n var getterName = 'get' + dim + 'Axis'; // TODO: TYPE Check Angle Axis\n\n var axis = this[getterName]();\n var val = dataItem[dimIdx];\n var halfSize = dataSize[dimIdx] / 2;\n var result = axis.type === 'category' ? axis.getBandWidth() : Math.abs(axis.dataToCoord(val - halfSize) - axis.dataToCoord(val + halfSize));\n\n if (dim === 'Angle') {\n result = result * Math.PI / 180;\n }\n\n return result;\n }, this);\n}\n\nexport default function polarPrepareCustom(coordSys) {\n var radiusAxis = coordSys.getRadiusAxis();\n var angleAxis = coordSys.getAngleAxis();\n var radius = radiusAxis.getExtent();\n radius[0] > radius[1] && radius.reverse();\n return {\n coordSys: {\n type: 'polar',\n cx: coordSys.cx,\n cy: coordSys.cy,\n r: radius[1],\n r0: radius[0]\n },\n api: {\n coord: function (data) {\n var radius = radiusAxis.dataToRadius(data[0]);\n var angle = angleAxis.dataToAngle(data[1]);\n var coord = coordSys.coordToPoint([radius, angle]);\n coord.push(radius, angle * Math.PI / 180);\n return coord;\n },\n size: zrUtil.bind(dataToCoordSize, coordSys)\n }\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport Axis from '../Axis.js';\n\nvar IndicatorAxis =\n/** @class */\nfunction (_super) {\n __extends(IndicatorAxis, _super);\n\n function IndicatorAxis(dim, scale, radiusExtent) {\n var _this = _super.call(this, dim, scale, radiusExtent) || this;\n\n _this.type = 'value';\n _this.angle = 0;\n _this.name = '';\n return _this;\n }\n\n return IndicatorAxis;\n}(Axis);\n\nexport default IndicatorAxis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// TODO clockwise\nimport IndicatorAxis from './IndicatorAxis.js';\nimport IntervalScale from '../../scale/Interval.js';\nimport * as numberUtil from '../../util/number.js';\nimport { map, each, isString, isNumber } from 'zrender/lib/core/util.js';\nimport { alignScaleTicks } from '../axisAlignTicks.js';\n\nvar Radar =\n/** @class */\nfunction () {\n function Radar(radarModel, ecModel, api) {\n /**\n *\n * Radar dimensions\n */\n this.dimensions = [];\n this._model = radarModel;\n this._indicatorAxes = map(radarModel.getIndicatorModels(), function (indicatorModel, idx) {\n var dim = 'indicator_' + idx;\n var indicatorAxis = new IndicatorAxis(dim, new IntervalScale() // (indicatorModel.get('axisType') === 'log') ? new LogScale() : new IntervalScale()\n );\n indicatorAxis.name = indicatorModel.get('name'); // Inject model and axis\n\n indicatorAxis.model = indicatorModel;\n indicatorModel.axis = indicatorAxis;\n this.dimensions.push(dim);\n return indicatorAxis;\n }, this);\n this.resize(radarModel, api);\n }\n\n Radar.prototype.getIndicatorAxes = function () {\n return this._indicatorAxes;\n };\n\n Radar.prototype.dataToPoint = function (value, indicatorIndex) {\n var indicatorAxis = this._indicatorAxes[indicatorIndex];\n return this.coordToPoint(indicatorAxis.dataToCoord(value), indicatorIndex);\n }; // TODO: API should be coordToPoint([coord, indicatorIndex])\n\n\n Radar.prototype.coordToPoint = function (coord, indicatorIndex) {\n var indicatorAxis = this._indicatorAxes[indicatorIndex];\n var angle = indicatorAxis.angle;\n var x = this.cx + coord * Math.cos(angle);\n var y = this.cy - coord * Math.sin(angle);\n return [x, y];\n };\n\n Radar.prototype.pointToData = function (pt) {\n var dx = pt[0] - this.cx;\n var dy = pt[1] - this.cy;\n var radius = Math.sqrt(dx * dx + dy * dy);\n dx /= radius;\n dy /= radius;\n var radian = Math.atan2(-dy, dx); // Find the closest angle\n // FIXME index can calculated directly\n\n var minRadianDiff = Infinity;\n var closestAxis;\n var closestAxisIdx = -1;\n\n for (var i = 0; i < this._indicatorAxes.length; i++) {\n var indicatorAxis = this._indicatorAxes[i];\n var diff = Math.abs(radian - indicatorAxis.angle);\n\n if (diff < minRadianDiff) {\n closestAxis = indicatorAxis;\n closestAxisIdx = i;\n minRadianDiff = diff;\n }\n }\n\n return [closestAxisIdx, +(closestAxis && closestAxis.coordToData(radius))];\n };\n\n Radar.prototype.resize = function (radarModel, api) {\n var center = radarModel.get('center');\n var viewWidth = api.getWidth();\n var viewHeight = api.getHeight();\n var viewSize = Math.min(viewWidth, viewHeight) / 2;\n this.cx = numberUtil.parsePercent(center[0], viewWidth);\n this.cy = numberUtil.parsePercent(center[1], viewHeight);\n this.startAngle = radarModel.get('startAngle') * Math.PI / 180; // radius may be single value like `20`, `'80%'`, or array like `[10, '80%']`\n\n var radius = radarModel.get('radius');\n\n if (isString(radius) || isNumber(radius)) {\n radius = [0, radius];\n }\n\n this.r0 = numberUtil.parsePercent(radius[0], viewSize);\n this.r = numberUtil.parsePercent(radius[1], viewSize);\n each(this._indicatorAxes, function (indicatorAxis, idx) {\n indicatorAxis.setExtent(this.r0, this.r);\n var angle = this.startAngle + idx * Math.PI * 2 / this._indicatorAxes.length; // Normalize to [-PI, PI]\n\n angle = Math.atan2(Math.sin(angle), Math.cos(angle));\n indicatorAxis.angle = angle;\n }, this);\n };\n\n Radar.prototype.update = function (ecModel, api) {\n var indicatorAxes = this._indicatorAxes;\n var radarModel = this._model;\n each(indicatorAxes, function (indicatorAxis) {\n indicatorAxis.scale.setExtent(Infinity, -Infinity);\n });\n ecModel.eachSeriesByType('radar', function (radarSeries, idx) {\n if (radarSeries.get('coordinateSystem') !== 'radar' // @ts-ignore\n || ecModel.getComponent('radar', radarSeries.get('radarIndex')) !== radarModel) {\n return;\n }\n\n var data = radarSeries.getData();\n each(indicatorAxes, function (indicatorAxis) {\n indicatorAxis.scale.unionExtentFromData(data, data.mapDimension(indicatorAxis.dim));\n });\n }, this);\n var splitNumber = radarModel.get('splitNumber');\n var dummyScale = new IntervalScale();\n dummyScale.setExtent(0, splitNumber);\n dummyScale.setInterval(1); // Force all the axis fixing the maxSplitNumber.\n\n each(indicatorAxes, function (indicatorAxis, idx) {\n alignScaleTicks(indicatorAxis.scale, indicatorAxis.model, dummyScale);\n });\n };\n\n Radar.prototype.convertToPixel = function (ecModel, finder, value) {\n console.warn('Not implemented.');\n return null;\n };\n\n Radar.prototype.convertFromPixel = function (ecModel, finder, pixel) {\n console.warn('Not implemented.');\n return null;\n };\n\n Radar.prototype.containPoint = function (point) {\n console.warn('Not implemented.');\n return false;\n };\n\n Radar.create = function (ecModel, api) {\n var radarList = [];\n ecModel.eachComponent('radar', function (radarModel) {\n var radar = new Radar(radarModel, ecModel, api);\n radarList.push(radar);\n radarModel.coordinateSystem = radar;\n });\n ecModel.eachSeriesByType('radar', function (radarSeries) {\n if (radarSeries.get('coordinateSystem') === 'radar') {\n // Inject coordinate system\n // @ts-ignore\n radarSeries.coordinateSystem = radarList[radarSeries.get('radarIndex') || 0];\n }\n });\n return radarList;\n };\n /**\n * Radar dimensions is based on the data\n */\n\n\n Radar.dimensions = [];\n return Radar;\n}();\n\nexport default Radar;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport axisDefault from '../axisDefault.js';\nimport Model from '../../model/Model.js';\nimport { AxisModelCommonMixin } from '../axisModelCommonMixin.js';\nimport ComponentModel from '../../model/Component.js';\nvar valueAxisDefault = axisDefault.value;\n\nfunction defaultsShow(opt, show) {\n return zrUtil.defaults({\n show: show\n }, opt);\n}\n\nvar RadarModel =\n/** @class */\nfunction (_super) {\n __extends(RadarModel, _super);\n\n function RadarModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = RadarModel.type;\n return _this;\n }\n\n RadarModel.prototype.optionUpdated = function () {\n var boundaryGap = this.get('boundaryGap');\n var splitNumber = this.get('splitNumber');\n var scale = this.get('scale');\n var axisLine = this.get('axisLine');\n var axisTick = this.get('axisTick'); // let axisType = this.get('axisType');\n\n var axisLabel = this.get('axisLabel');\n var nameTextStyle = this.get('axisName');\n var showName = this.get(['axisName', 'show']);\n var nameFormatter = this.get(['axisName', 'formatter']);\n var nameGap = this.get('axisNameGap');\n var triggerEvent = this.get('triggerEvent');\n var indicatorModels = zrUtil.map(this.get('indicator') || [], function (indicatorOpt) {\n // PENDING\n if (indicatorOpt.max != null && indicatorOpt.max > 0 && !indicatorOpt.min) {\n indicatorOpt.min = 0;\n } else if (indicatorOpt.min != null && indicatorOpt.min < 0 && !indicatorOpt.max) {\n indicatorOpt.max = 0;\n }\n\n var iNameTextStyle = nameTextStyle;\n\n if (indicatorOpt.color != null) {\n iNameTextStyle = zrUtil.defaults({\n color: indicatorOpt.color\n }, nameTextStyle);\n } // Use same configuration\n\n\n var innerIndicatorOpt = zrUtil.merge(zrUtil.clone(indicatorOpt), {\n boundaryGap: boundaryGap,\n splitNumber: splitNumber,\n scale: scale,\n axisLine: axisLine,\n axisTick: axisTick,\n // axisType: axisType,\n axisLabel: axisLabel,\n // Compatible with 2 and use text\n name: indicatorOpt.text,\n showName: showName,\n nameLocation: 'end',\n nameGap: nameGap,\n // min: 0,\n nameTextStyle: iNameTextStyle,\n triggerEvent: triggerEvent\n }, false);\n\n if (zrUtil.isString(nameFormatter)) {\n var indName = innerIndicatorOpt.name;\n innerIndicatorOpt.name = nameFormatter.replace('{value}', indName != null ? indName : '');\n } else if (zrUtil.isFunction(nameFormatter)) {\n innerIndicatorOpt.name = nameFormatter(innerIndicatorOpt.name, innerIndicatorOpt);\n }\n\n var model = new Model(innerIndicatorOpt, null, this.ecModel);\n zrUtil.mixin(model, AxisModelCommonMixin.prototype); // For triggerEvent.\n\n model.mainType = 'radar';\n model.componentIndex = this.componentIndex;\n return model;\n }, this);\n this._indicatorModels = indicatorModels;\n };\n\n RadarModel.prototype.getIndicatorModels = function () {\n return this._indicatorModels;\n };\n\n RadarModel.type = 'radar';\n RadarModel.defaultOption = {\n // zlevel: 0,\n z: 0,\n center: ['50%', '50%'],\n radius: '75%',\n startAngle: 90,\n axisName: {\n show: true // formatter: null\n // textStyle: {}\n\n },\n boundaryGap: [0, 0],\n splitNumber: 5,\n axisNameGap: 15,\n scale: false,\n // Polygon or circle\n shape: 'polygon',\n axisLine: zrUtil.merge({\n lineStyle: {\n color: '#bbb'\n }\n }, valueAxisDefault.axisLine),\n axisLabel: defaultsShow(valueAxisDefault.axisLabel, false),\n axisTick: defaultsShow(valueAxisDefault.axisTick, false),\n // axisType: 'value',\n splitLine: defaultsShow(valueAxisDefault.splitLine, true),\n splitArea: defaultsShow(valueAxisDefault.splitArea, true),\n // {text, min, max}\n indicator: []\n };\n return RadarModel;\n}(ComponentModel);\n\nexport default RadarModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { assert, isArray, eqNaN, isFunction } from 'zrender/lib/core/util.js';\nimport { parsePercent } from 'zrender/lib/contain/text.js';\n\nvar ScaleRawExtentInfo =\n/** @class */\nfunction () {\n function ScaleRawExtentInfo(scale, model, // Usually: data extent from all series on this axis.\n originalExtent) {\n this._prepareParams(scale, model, originalExtent);\n }\n /**\n * Parameters depending on outside (like model, user callback)\n * are prepared and fixed here.\n */\n\n\n ScaleRawExtentInfo.prototype._prepareParams = function (scale, model, // Usually: data extent from all series on this axis.\n dataExtent) {\n if (dataExtent[1] < dataExtent[0]) {\n dataExtent = [NaN, NaN];\n }\n\n this._dataMin = dataExtent[0];\n this._dataMax = dataExtent[1];\n var isOrdinal = this._isOrdinal = scale.type === 'ordinal';\n this._needCrossZero = scale.type === 'interval' && model.getNeedCrossZero && model.getNeedCrossZero();\n var modelMinRaw = this._modelMinRaw = model.get('min', true);\n\n if (isFunction(modelMinRaw)) {\n // This callback always provides users the full data extent (before data is filtered).\n this._modelMinNum = parseAxisModelMinMax(scale, modelMinRaw({\n min: dataExtent[0],\n max: dataExtent[1]\n }));\n } else if (modelMinRaw !== 'dataMin') {\n this._modelMinNum = parseAxisModelMinMax(scale, modelMinRaw);\n }\n\n var modelMaxRaw = this._modelMaxRaw = model.get('max', true);\n\n if (isFunction(modelMaxRaw)) {\n // This callback always provides users the full data extent (before data is filtered).\n this._modelMaxNum = parseAxisModelMinMax(scale, modelMaxRaw({\n min: dataExtent[0],\n max: dataExtent[1]\n }));\n } else if (modelMaxRaw !== 'dataMax') {\n this._modelMaxNum = parseAxisModelMinMax(scale, modelMaxRaw);\n }\n\n if (isOrdinal) {\n // FIXME: there is a flaw here: if there is no \"block\" data processor like `dataZoom`,\n // and progressive rendering is using, here the category result might just only contain\n // the processed chunk rather than the entire result.\n this._axisDataLen = model.getCategories().length;\n } else {\n var boundaryGap = model.get('boundaryGap');\n var boundaryGapArr = isArray(boundaryGap) ? boundaryGap : [boundaryGap || 0, boundaryGap || 0];\n\n if (typeof boundaryGapArr[0] === 'boolean' || typeof boundaryGapArr[1] === 'boolean') {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('Boolean type for boundaryGap is only ' + 'allowed for ordinal axis. Please use string in ' + 'percentage instead, e.g., \"20%\". Currently, ' + 'boundaryGap is set to be 0.');\n }\n\n this._boundaryGapInner = [0, 0];\n } else {\n this._boundaryGapInner = [parsePercent(boundaryGapArr[0], 1), parsePercent(boundaryGapArr[1], 1)];\n }\n }\n };\n /**\n * Calculate extent by prepared parameters.\n * This method has no external dependency and can be called duplicatedly,\n * getting the same result.\n * If parameters changed, should call this method to recalcuate.\n */\n\n\n ScaleRawExtentInfo.prototype.calculate = function () {\n // Notice: When min/max is not set (that is, when there are null/undefined,\n // which is the most common case), these cases should be ensured:\n // (1) For 'ordinal', show all axis.data.\n // (2) For others:\n // + `boundaryGap` is applied (if min/max set, boundaryGap is\n // disabled).\n // + If `needCrossZero`, min/max should be zero, otherwise, min/max should\n // be the result that originalExtent enlarged by boundaryGap.\n // (3) If no data, it should be ensured that `scale.setBlank` is set.\n var isOrdinal = this._isOrdinal;\n var dataMin = this._dataMin;\n var dataMax = this._dataMax;\n var axisDataLen = this._axisDataLen;\n var boundaryGapInner = this._boundaryGapInner;\n var span = !isOrdinal ? dataMax - dataMin || Math.abs(dataMin) : null; // Currently if a `'value'` axis model min is specified as 'dataMin'/'dataMax',\n // `boundaryGap` will not be used. It's the different from specifying as `null`/`undefined`.\n\n var min = this._modelMinRaw === 'dataMin' ? dataMin : this._modelMinNum;\n var max = this._modelMaxRaw === 'dataMax' ? dataMax : this._modelMaxNum; // If `_modelMinNum`/`_modelMaxNum` is `null`/`undefined`, should not be fixed.\n\n var minFixed = min != null;\n var maxFixed = max != null;\n\n if (min == null) {\n min = isOrdinal ? axisDataLen ? 0 : NaN : dataMin - boundaryGapInner[0] * span;\n }\n\n if (max == null) {\n max = isOrdinal ? axisDataLen ? axisDataLen - 1 : NaN : dataMax + boundaryGapInner[1] * span;\n }\n\n (min == null || !isFinite(min)) && (min = NaN);\n (max == null || !isFinite(max)) && (max = NaN);\n var isBlank = eqNaN(min) || eqNaN(max) || isOrdinal && !axisDataLen; // If data extent modified, need to recalculated to ensure cross zero.\n\n if (this._needCrossZero) {\n // Axis is over zero and min is not set\n if (min > 0 && max > 0 && !minFixed) {\n min = 0; // minFixed = true;\n } // Axis is under zero and max is not set\n\n\n if (min < 0 && max < 0 && !maxFixed) {\n max = 0; // maxFixed = true;\n } // PENDING:\n // When `needCrossZero` and all data is positive/negative, should it be ensured\n // that the results processed by boundaryGap are positive/negative?\n // If so, here `minFixed`/`maxFixed` need to be set.\n\n }\n\n var determinedMin = this._determinedMin;\n var determinedMax = this._determinedMax;\n\n if (determinedMin != null) {\n min = determinedMin;\n minFixed = true;\n }\n\n if (determinedMax != null) {\n max = determinedMax;\n maxFixed = true;\n } // Ensure min/max be finite number or NaN here. (not to be null/undefined)\n // `NaN` means min/max axis is blank.\n\n\n return {\n min: min,\n max: max,\n minFixed: minFixed,\n maxFixed: maxFixed,\n isBlank: isBlank\n };\n };\n\n ScaleRawExtentInfo.prototype.modifyDataMinMax = function (minMaxName, val) {\n if (process.env.NODE_ENV !== 'production') {\n assert(!this.frozen);\n }\n\n this[DATA_MIN_MAX_ATTR[minMaxName]] = val;\n };\n\n ScaleRawExtentInfo.prototype.setDeterminedMinMax = function (minMaxName, val) {\n var attr = DETERMINED_MIN_MAX_ATTR[minMaxName];\n\n if (process.env.NODE_ENV !== 'production') {\n assert(!this.frozen // Earse them usually means logic flaw.\n && this[attr] == null);\n }\n\n this[attr] = val;\n };\n\n ScaleRawExtentInfo.prototype.freeze = function () {\n // @ts-ignore\n this.frozen = true;\n };\n\n return ScaleRawExtentInfo;\n}();\n\nexport { ScaleRawExtentInfo };\nvar DETERMINED_MIN_MAX_ATTR = {\n min: '_determinedMin',\n max: '_determinedMax'\n};\nvar DATA_MIN_MAX_ATTR = {\n min: '_dataMin',\n max: '_dataMax'\n};\n/**\n * Get scale min max and related info only depends on model settings.\n * This method can be called after coordinate system created.\n * For example, in data processing stage.\n *\n * Scale extent info probably be required multiple times during a workflow.\n * For example:\n * (1) `dataZoom` depends it to get the axis extent in \"100%\" state.\n * (2) `processor/extentCalculator` depends it to make sure whether axis extent is specified.\n * (3) `coordSys.update` use it to finally decide the scale extent.\n * But the callback of `min`/`max` should not be called multiple times.\n * The code below should not be implemented repeatedly either.\n * So we cache the result in the scale instance, which will be recreated at the beginning\n * of the workflow (because `scale` instance will be recreated each round of the workflow).\n */\n\nexport function ensureScaleRawExtentInfo(scale, model, // Usually: data extent from all series on this axis.\noriginalExtent) {\n // Do not permit to recreate.\n var rawExtentInfo = scale.rawExtentInfo;\n\n if (rawExtentInfo) {\n return rawExtentInfo;\n }\n\n rawExtentInfo = new ScaleRawExtentInfo(scale, model, originalExtent); // @ts-ignore\n\n scale.rawExtentInfo = rawExtentInfo;\n return rawExtentInfo;\n}\nexport function parseAxisModelMinMax(scale, minMax) {\n return minMax == null ? null : eqNaN(minMax) ? NaN : scale.parse(minMax);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component.js';\nimport { AxisModelCommonMixin } from '../axisModelCommonMixin.js';\nimport { mixin } from 'zrender/lib/core/util.js';\n\nvar SingleAxisModel =\n/** @class */\nfunction (_super) {\n __extends(SingleAxisModel, _super);\n\n function SingleAxisModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = SingleAxisModel.type;\n return _this;\n }\n\n SingleAxisModel.prototype.getCoordSysModel = function () {\n return this;\n };\n\n SingleAxisModel.type = 'singleAxis';\n SingleAxisModel.layoutMode = 'box';\n SingleAxisModel.defaultOption = {\n left: '5%',\n top: '5%',\n right: '5%',\n bottom: '5%',\n type: 'value',\n position: 'bottom',\n orient: 'horizontal',\n axisLine: {\n show: true,\n lineStyle: {\n width: 1,\n type: 'solid'\n }\n },\n // Single coordinate system and single axis is the,\n // which is used as the parent tooltip model.\n // same model, so we set default tooltip show as true.\n tooltip: {\n show: true\n },\n axisTick: {\n show: true,\n length: 6,\n lineStyle: {\n width: 1\n }\n },\n axisLabel: {\n show: true,\n interval: 'auto'\n },\n splitLine: {\n show: true,\n lineStyle: {\n type: 'dashed',\n opacity: 0.2\n }\n }\n };\n return SingleAxisModel;\n}(ComponentModel);\n\nmixin(SingleAxisModel, AxisModelCommonMixin.prototype);\nexport default SingleAxisModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Single coordinates system.\n */\nimport SingleAxis from './SingleAxis.js';\nimport * as axisHelper from '../axisHelper.js';\nimport { getLayoutRect } from '../../util/layout.js';\nimport { each } from 'zrender/lib/core/util.js';\nexport var singleDimensions = ['single'];\n/**\n * Create a single coordinates system.\n */\n\nvar Single =\n/** @class */\nfunction () {\n function Single(axisModel, ecModel, api) {\n this.type = 'single';\n this.dimension = 'single';\n /**\n * Add it just for draw tooltip.\n */\n\n this.dimensions = singleDimensions;\n this.axisPointerEnabled = true;\n this.model = axisModel;\n\n this._init(axisModel, ecModel, api);\n }\n /**\n * Initialize single coordinate system.\n */\n\n\n Single.prototype._init = function (axisModel, ecModel, api) {\n var dim = this.dimension;\n var axis = new SingleAxis(dim, axisHelper.createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisModel.get('position'));\n var isCategory = axis.type === 'category';\n axis.onBand = isCategory && axisModel.get('boundaryGap');\n axis.inverse = axisModel.get('inverse');\n axis.orient = axisModel.get('orient');\n axisModel.axis = axis;\n axis.model = axisModel;\n axis.coordinateSystem = this;\n this._axis = axis;\n };\n /**\n * Update axis scale after data processed\n */\n\n\n Single.prototype.update = function (ecModel, api) {\n ecModel.eachSeries(function (seriesModel) {\n if (seriesModel.coordinateSystem === this) {\n var data_1 = seriesModel.getData();\n each(data_1.mapDimensionsAll(this.dimension), function (dim) {\n this._axis.scale.unionExtentFromData(data_1, dim);\n }, this);\n axisHelper.niceScaleExtent(this._axis.scale, this._axis.model);\n }\n }, this);\n };\n /**\n * Resize the single coordinate system.\n */\n\n\n Single.prototype.resize = function (axisModel, api) {\n this._rect = getLayoutRect({\n left: axisModel.get('left'),\n top: axisModel.get('top'),\n right: axisModel.get('right'),\n bottom: axisModel.get('bottom'),\n width: axisModel.get('width'),\n height: axisModel.get('height')\n }, {\n width: api.getWidth(),\n height: api.getHeight()\n });\n\n this._adjustAxis();\n };\n\n Single.prototype.getRect = function () {\n return this._rect;\n };\n\n Single.prototype._adjustAxis = function () {\n var rect = this._rect;\n var axis = this._axis;\n var isHorizontal = axis.isHorizontal();\n var extent = isHorizontal ? [0, rect.width] : [0, rect.height];\n var idx = axis.inverse ? 1 : 0;\n axis.setExtent(extent[idx], extent[1 - idx]);\n\n this._updateAxisTransform(axis, isHorizontal ? rect.x : rect.y);\n };\n\n Single.prototype._updateAxisTransform = function (axis, coordBase) {\n var axisExtent = axis.getExtent();\n var extentSum = axisExtent[0] + axisExtent[1];\n var isHorizontal = axis.isHorizontal();\n axis.toGlobalCoord = isHorizontal ? function (coord) {\n return coord + coordBase;\n } : function (coord) {\n return extentSum - coord + coordBase;\n };\n axis.toLocalCoord = isHorizontal ? function (coord) {\n return coord - coordBase;\n } : function (coord) {\n return extentSum - coord + coordBase;\n };\n };\n /**\n * Get axis.\n */\n\n\n Single.prototype.getAxis = function () {\n return this._axis;\n };\n /**\n * Get axis, add it just for draw tooltip.\n */\n\n\n Single.prototype.getBaseAxis = function () {\n return this._axis;\n };\n\n Single.prototype.getAxes = function () {\n return [this._axis];\n };\n\n Single.prototype.getTooltipAxes = function () {\n return {\n baseAxes: [this.getAxis()],\n // Empty otherAxes\n otherAxes: []\n };\n };\n /**\n * If contain point.\n */\n\n\n Single.prototype.containPoint = function (point) {\n var rect = this.getRect();\n var axis = this.getAxis();\n var orient = axis.orient;\n\n if (orient === 'horizontal') {\n return axis.contain(axis.toLocalCoord(point[0])) && point[1] >= rect.y && point[1] <= rect.y + rect.height;\n } else {\n return axis.contain(axis.toLocalCoord(point[1])) && point[0] >= rect.y && point[0] <= rect.y + rect.height;\n }\n };\n\n Single.prototype.pointToData = function (point) {\n var axis = this.getAxis();\n return [axis.coordToData(axis.toLocalCoord(point[axis.orient === 'horizontal' ? 0 : 1]))];\n };\n /**\n * Convert the series data to concrete point.\n * Can be [val] | val\n */\n\n\n Single.prototype.dataToPoint = function (val) {\n var axis = this.getAxis();\n var rect = this.getRect();\n var pt = [];\n var idx = axis.orient === 'horizontal' ? 0 : 1;\n\n if (val instanceof Array) {\n val = val[0];\n }\n\n pt[idx] = axis.toGlobalCoord(axis.dataToCoord(+val));\n pt[1 - idx] = idx === 0 ? rect.y + rect.height / 2 : rect.x + rect.width / 2;\n return pt;\n };\n\n Single.prototype.convertToPixel = function (ecModel, finder, value) {\n var coordSys = getCoordSys(finder);\n return coordSys === this ? this.dataToPoint(value) : null;\n };\n\n Single.prototype.convertFromPixel = function (ecModel, finder, pixel) {\n var coordSys = getCoordSys(finder);\n return coordSys === this ? this.pointToData(pixel) : null;\n };\n\n return Single;\n}();\n\nfunction getCoordSys(finder) {\n var seriesModel = finder.seriesModel;\n var singleModel = finder.singleAxisModel;\n return singleModel && singleModel.coordinateSystem || seriesModel && seriesModel.coordinateSystem;\n}\n\nexport default Single;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport Axis from '../Axis.js';\n\nvar SingleAxis =\n/** @class */\nfunction (_super) {\n __extends(SingleAxis, _super);\n\n function SingleAxis(dim, scale, coordExtent, axisType, position) {\n var _this = _super.call(this, dim, scale, coordExtent) || this;\n\n _this.type = axisType || 'value';\n _this.position = position || 'bottom';\n return _this;\n }\n /**\n * Judge the orient of the axis.\n */\n\n\n SingleAxis.prototype.isHorizontal = function () {\n var position = this.position;\n return position === 'top' || position === 'bottom';\n };\n\n SingleAxis.prototype.pointToData = function (point, clamp) {\n return this.coordinateSystem.pointToData(point)[0];\n };\n\n return SingleAxis;\n}(Axis);\n\nexport default SingleAxis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { bind } from 'zrender/lib/core/util.js';\n\nfunction dataToCoordSize(dataSize, dataItem) {\n // dataItem is necessary in log axis.\n var axis = this.getAxis();\n var val = dataItem instanceof Array ? dataItem[0] : dataItem;\n var halfSize = (dataSize instanceof Array ? dataSize[0] : dataSize) / 2;\n return axis.type === 'category' ? axis.getBandWidth() : Math.abs(axis.dataToCoord(val - halfSize) - axis.dataToCoord(val + halfSize));\n}\n\nexport default function singlePrepareCustom(coordSys) {\n var rect = coordSys.getRect();\n return {\n coordSys: {\n type: 'singleAxis',\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height\n },\n api: {\n coord: function (val) {\n // do not provide \"out\" param\n return coordSys.dataToPoint(val);\n },\n size: bind(dataToCoordSize, coordSys)\n }\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nexport function layout(axisModel, opt) {\n opt = opt || {};\n var single = axisModel.coordinateSystem;\n var axis = axisModel.axis;\n var layout = {};\n var axisPosition = axis.position;\n var orient = axis.orient;\n var rect = single.getRect();\n var rectBound = [rect.x, rect.x + rect.width, rect.y, rect.y + rect.height];\n var positionMap = {\n horizontal: {\n top: rectBound[2],\n bottom: rectBound[3]\n },\n vertical: {\n left: rectBound[0],\n right: rectBound[1]\n }\n };\n layout.position = [orient === 'vertical' ? positionMap.vertical[axisPosition] : rectBound[0], orient === 'horizontal' ? positionMap.horizontal[axisPosition] : rectBound[3]];\n var r = {\n horizontal: 0,\n vertical: 1\n };\n layout.rotation = Math.PI / 2 * r[orient];\n var directionMap = {\n top: -1,\n bottom: 1,\n right: 1,\n left: -1\n };\n layout.labelDirection = layout.tickDirection = layout.nameDirection = directionMap[axisPosition];\n\n if (axisModel.get(['axisTick', 'inside'])) {\n layout.tickDirection = -layout.tickDirection;\n }\n\n if (zrUtil.retrieve(opt.labelInside, axisModel.get(['axisLabel', 'inside']))) {\n layout.labelDirection = -layout.labelDirection;\n }\n\n var labelRotation = opt.rotate;\n labelRotation == null && (labelRotation = axisModel.get(['axisLabel', 'rotate']));\n layout.labelRotation = axisPosition === 'top' ? -labelRotation : labelRotation;\n layout.z2 = 1;\n return layout;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Single coordinate system creator.\n */\nimport Single, { singleDimensions } from './Single.js';\nimport { SINGLE_REFERRING } from '../../util/model.js';\n/**\n * Create single coordinate system and inject it into seriesModel.\n */\n\nfunction create(ecModel, api) {\n var singles = [];\n ecModel.eachComponent('singleAxis', function (axisModel, idx) {\n var single = new Single(axisModel, ecModel, api);\n single.name = 'single_' + idx;\n single.resize(axisModel, api);\n axisModel.coordinateSystem = single;\n singles.push(single);\n });\n ecModel.eachSeries(function (seriesModel) {\n if (seriesModel.get('coordinateSystem') === 'singleAxis') {\n var singleAxisModel = seriesModel.getReferringComponents('singleAxis', SINGLE_REFERRING).models[0];\n seriesModel.coordinateSystem = singleAxisModel && singleAxisModel.coordinateSystem;\n }\n });\n return singles;\n}\n\nvar singleCreator = {\n create: create,\n dimensions: singleDimensions\n};\nexport default singleCreator;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nvar coordinateSystemCreators = {};\n\nvar CoordinateSystemManager =\n/** @class */\nfunction () {\n function CoordinateSystemManager() {\n this._coordinateSystems = [];\n }\n\n CoordinateSystemManager.prototype.create = function (ecModel, api) {\n var coordinateSystems = [];\n zrUtil.each(coordinateSystemCreators, function (creator, type) {\n var list = creator.create(ecModel, api);\n coordinateSystems = coordinateSystems.concat(list || []);\n });\n this._coordinateSystems = coordinateSystems;\n };\n\n CoordinateSystemManager.prototype.update = function (ecModel, api) {\n zrUtil.each(this._coordinateSystems, function (coordSys) {\n coordSys.update && coordSys.update(ecModel, api);\n });\n };\n\n CoordinateSystemManager.prototype.getCoordinateSystems = function () {\n return this._coordinateSystems.slice();\n };\n\n CoordinateSystemManager.register = function (type, creator) {\n coordinateSystemCreators[type] = creator;\n };\n\n CoordinateSystemManager.get = function (type) {\n return coordinateSystemCreators[type];\n };\n\n return CoordinateSystemManager;\n}();\n\nexport default CoordinateSystemManager;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nvar availableMethods = ['getDom', 'getZr', 'getWidth', 'getHeight', 'getDevicePixelRatio', 'dispatchAction', 'isSSR', 'isDisposed', 'on', 'off', 'getDataURL', 'getConnectedDataURL', // 'getModel',\n'getOption', // 'getViewOfComponentModel',\n// 'getViewOfSeriesModel',\n'getId', 'updateLabelLayout'];\n\nvar ExtensionAPI =\n/** @class */\nfunction () {\n function ExtensionAPI(ecInstance) {\n zrUtil.each(availableMethods, function (methodName) {\n this[methodName] = zrUtil.bind(ecInstance[methodName], ecInstance);\n }, this);\n }\n\n return ExtensionAPI;\n}();\n\nexport default ExtensionAPI;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { each, map, isFunction, createHashMap, noop, assert } from 'zrender/lib/core/util.js';\nimport { createTask } from './task.js';\nimport { getUID } from '../util/component.js';\nimport GlobalModel from '../model/Global.js';\nimport ExtensionAPI from './ExtensionAPI.js';\nimport { normalizeToArray } from '../util/model.js';\n;\n\nvar Scheduler =\n/** @class */\nfunction () {\n function Scheduler(ecInstance, api, dataProcessorHandlers, visualHandlers) {\n // key: handlerUID\n this._stageTaskMap = createHashMap();\n this.ecInstance = ecInstance;\n this.api = api; // Fix current processors in case that in some rear cases that\n // processors might be registered after echarts instance created.\n // Register processors incrementally for a echarts instance is\n // not supported by this stream architecture.\n\n dataProcessorHandlers = this._dataProcessorHandlers = dataProcessorHandlers.slice();\n visualHandlers = this._visualHandlers = visualHandlers.slice();\n this._allHandlers = dataProcessorHandlers.concat(visualHandlers);\n }\n\n Scheduler.prototype.restoreData = function (ecModel, payload) {\n // TODO: Only restore needed series and components, but not all components.\n // Currently `restoreData` of all of the series and component will be called.\n // But some independent components like `title`, `legend`, `graphic`, `toolbox`,\n // `tooltip`, `axisPointer`, etc, do not need series refresh when `setOption`,\n // and some components like coordinate system, axes, dataZoom, visualMap only\n // need their target series refresh.\n // (1) If we are implementing this feature some day, we should consider these cases:\n // if a data processor depends on a component (e.g., dataZoomProcessor depends\n // on the settings of `dataZoom`), it should be re-performed if the component\n // is modified by `setOption`.\n // (2) If a processor depends on sevral series, speicified by its `getTargetSeries`,\n // it should be re-performed when the result array of `getTargetSeries` changed.\n // We use `dependencies` to cover these issues.\n // (3) How to update target series when coordinate system related components modified.\n // TODO: simply the dirty mechanism? Check whether only the case here can set tasks dirty,\n // and this case all of the tasks will be set as dirty.\n ecModel.restoreData(payload); // Theoretically an overall task not only depends on each of its target series, but also\n // depends on all of the series.\n // The overall task is not in pipeline, and `ecModel.restoreData` only set pipeline tasks\n // dirty. If `getTargetSeries` of an overall task returns nothing, we should also ensure\n // that the overall task is set as dirty and to be performed, otherwise it probably cause\n // state chaos. So we have to set dirty of all of the overall tasks manually, otherwise it\n // probably cause state chaos (consider `dataZoomProcessor`).\n\n this._stageTaskMap.each(function (taskRecord) {\n var overallTask = taskRecord.overallTask;\n overallTask && overallTask.dirty();\n });\n }; // If seriesModel provided, incremental threshold is check by series data.\n\n\n Scheduler.prototype.getPerformArgs = function (task, isBlock) {\n // For overall task\n if (!task.__pipeline) {\n return;\n }\n\n var pipeline = this._pipelineMap.get(task.__pipeline.id);\n\n var pCtx = pipeline.context;\n var incremental = !isBlock && pipeline.progressiveEnabled && (!pCtx || pCtx.progressiveRender) && task.__idxInPipeline > pipeline.blockIndex;\n var step = incremental ? pipeline.step : null;\n var modDataCount = pCtx && pCtx.modDataCount;\n var modBy = modDataCount != null ? Math.ceil(modDataCount / step) : null;\n return {\n step: step,\n modBy: modBy,\n modDataCount: modDataCount\n };\n };\n\n Scheduler.prototype.getPipeline = function (pipelineId) {\n return this._pipelineMap.get(pipelineId);\n };\n /**\n * Current, progressive rendering starts from visual and layout.\n * Always detect render mode in the same stage, avoiding that incorrect\n * detection caused by data filtering.\n * Caution:\n * `updateStreamModes` use `seriesModel.getData()`.\n */\n\n\n Scheduler.prototype.updateStreamModes = function (seriesModel, view) {\n var pipeline = this._pipelineMap.get(seriesModel.uid);\n\n var data = seriesModel.getData();\n var dataLen = data.count(); // `progressiveRender` means that can render progressively in each\n // animation frame. Note that some types of series do not provide\n // `view.incrementalPrepareRender` but support `chart.appendData`. We\n // use the term `incremental` but not `progressive` to describe the\n // case that `chart.appendData`.\n\n var progressiveRender = pipeline.progressiveEnabled && view.incrementalPrepareRender && dataLen >= pipeline.threshold;\n var large = seriesModel.get('large') && dataLen >= seriesModel.get('largeThreshold'); // TODO: modDataCount should not updated if `appendData`, otherwise cause whole repaint.\n // see `test/candlestick-large3.html`\n\n var modDataCount = seriesModel.get('progressiveChunkMode') === 'mod' ? dataLen : null;\n seriesModel.pipelineContext = pipeline.context = {\n progressiveRender: progressiveRender,\n modDataCount: modDataCount,\n large: large\n };\n };\n\n Scheduler.prototype.restorePipelines = function (ecModel) {\n var scheduler = this;\n var pipelineMap = scheduler._pipelineMap = createHashMap();\n ecModel.eachSeries(function (seriesModel) {\n var progressive = seriesModel.getProgressive();\n var pipelineId = seriesModel.uid;\n pipelineMap.set(pipelineId, {\n id: pipelineId,\n head: null,\n tail: null,\n threshold: seriesModel.getProgressiveThreshold(),\n progressiveEnabled: progressive && !(seriesModel.preventIncremental && seriesModel.preventIncremental()),\n blockIndex: -1,\n step: Math.round(progressive || 700),\n count: 0\n });\n\n scheduler._pipe(seriesModel, seriesModel.dataTask);\n });\n };\n\n Scheduler.prototype.prepareStageTasks = function () {\n var stageTaskMap = this._stageTaskMap;\n var ecModel = this.api.getModel();\n var api = this.api;\n each(this._allHandlers, function (handler) {\n var record = stageTaskMap.get(handler.uid) || stageTaskMap.set(handler.uid, {});\n var errMsg = '';\n\n if (process.env.NODE_ENV !== 'production') {\n // Currently do not need to support to sepecify them both.\n errMsg = '\"reset\" and \"overallReset\" must not be both specified.';\n }\n\n assert(!(handler.reset && handler.overallReset), errMsg);\n handler.reset && this._createSeriesStageTask(handler, record, ecModel, api);\n handler.overallReset && this._createOverallStageTask(handler, record, ecModel, api);\n }, this);\n };\n\n Scheduler.prototype.prepareView = function (view, model, ecModel, api) {\n var renderTask = view.renderTask;\n var context = renderTask.context;\n context.model = model;\n context.ecModel = ecModel;\n context.api = api;\n renderTask.__block = !view.incrementalPrepareRender;\n\n this._pipe(model, renderTask);\n };\n\n Scheduler.prototype.performDataProcessorTasks = function (ecModel, payload) {\n // If we do not use `block` here, it should be considered when to update modes.\n this._performStageTasks(this._dataProcessorHandlers, ecModel, payload, {\n block: true\n });\n };\n\n Scheduler.prototype.performVisualTasks = function (ecModel, payload, opt) {\n this._performStageTasks(this._visualHandlers, ecModel, payload, opt);\n };\n\n Scheduler.prototype._performStageTasks = function (stageHandlers, ecModel, payload, opt) {\n opt = opt || {};\n var unfinished = false;\n var scheduler = this;\n each(stageHandlers, function (stageHandler, idx) {\n if (opt.visualType && opt.visualType !== stageHandler.visualType) {\n return;\n }\n\n var stageHandlerRecord = scheduler._stageTaskMap.get(stageHandler.uid);\n\n var seriesTaskMap = stageHandlerRecord.seriesTaskMap;\n var overallTask = stageHandlerRecord.overallTask;\n\n if (overallTask) {\n var overallNeedDirty_1;\n var agentStubMap = overallTask.agentStubMap;\n agentStubMap.each(function (stub) {\n if (needSetDirty(opt, stub)) {\n stub.dirty();\n overallNeedDirty_1 = true;\n }\n });\n overallNeedDirty_1 && overallTask.dirty();\n scheduler.updatePayload(overallTask, payload);\n var performArgs_1 = scheduler.getPerformArgs(overallTask, opt.block); // Execute stubs firstly, which may set the overall task dirty,\n // then execute the overall task. And stub will call seriesModel.setData,\n // which ensures that in the overallTask seriesModel.getData() will not\n // return incorrect data.\n\n agentStubMap.each(function (stub) {\n stub.perform(performArgs_1);\n });\n\n if (overallTask.perform(performArgs_1)) {\n unfinished = true;\n }\n } else if (seriesTaskMap) {\n seriesTaskMap.each(function (task, pipelineId) {\n if (needSetDirty(opt, task)) {\n task.dirty();\n }\n\n var performArgs = scheduler.getPerformArgs(task, opt.block); // FIXME\n // if intending to declare `performRawSeries` in handlers, only\n // stream-independent (specifically, data item independent) operations can be\n // performed. Because if a series is filtered, most of the tasks will not\n // be performed. A stream-dependent operation probably cause wrong biz logic.\n // Perhaps we should not provide a separate callback for this case instead\n // of providing the config `performRawSeries`. The stream-dependent operations\n // and stream-independent operations should better not be mixed.\n\n performArgs.skip = !stageHandler.performRawSeries && ecModel.isSeriesFiltered(task.context.model);\n scheduler.updatePayload(task, payload);\n\n if (task.perform(performArgs)) {\n unfinished = true;\n }\n });\n }\n });\n\n function needSetDirty(opt, task) {\n return opt.setDirty && (!opt.dirtyMap || opt.dirtyMap.get(task.__pipeline.id));\n }\n\n this.unfinished = unfinished || this.unfinished;\n };\n\n Scheduler.prototype.performSeriesTasks = function (ecModel) {\n var unfinished;\n ecModel.eachSeries(function (seriesModel) {\n // Progress to the end for dataInit and dataRestore.\n unfinished = seriesModel.dataTask.perform() || unfinished;\n });\n this.unfinished = unfinished || this.unfinished;\n };\n\n Scheduler.prototype.plan = function () {\n // Travel pipelines, check block.\n this._pipelineMap.each(function (pipeline) {\n var task = pipeline.tail;\n\n do {\n if (task.__block) {\n pipeline.blockIndex = task.__idxInPipeline;\n break;\n }\n\n task = task.getUpstream();\n } while (task);\n });\n };\n\n Scheduler.prototype.updatePayload = function (task, payload) {\n payload !== 'remain' && (task.context.payload = payload);\n };\n\n Scheduler.prototype._createSeriesStageTask = function (stageHandler, stageHandlerRecord, ecModel, api) {\n var scheduler = this;\n var oldSeriesTaskMap = stageHandlerRecord.seriesTaskMap; // The count of stages are totally about only several dozen, so\n // do not need to reuse the map.\n\n var newSeriesTaskMap = stageHandlerRecord.seriesTaskMap = createHashMap();\n var seriesType = stageHandler.seriesType;\n var getTargetSeries = stageHandler.getTargetSeries; // If a stageHandler should cover all series, `createOnAllSeries` should be declared mandatorily,\n // to avoid some typo or abuse. Otherwise if an extension do not specify a `seriesType`,\n // it works but it may cause other irrelevant charts blocked.\n\n if (stageHandler.createOnAllSeries) {\n ecModel.eachRawSeries(create);\n } else if (seriesType) {\n ecModel.eachRawSeriesByType(seriesType, create);\n } else if (getTargetSeries) {\n getTargetSeries(ecModel, api).each(create);\n }\n\n function create(seriesModel) {\n var pipelineId = seriesModel.uid; // Init tasks for each seriesModel only once.\n // Reuse original task instance.\n\n var task = newSeriesTaskMap.set(pipelineId, oldSeriesTaskMap && oldSeriesTaskMap.get(pipelineId) || createTask({\n plan: seriesTaskPlan,\n reset: seriesTaskReset,\n count: seriesTaskCount\n }));\n task.context = {\n model: seriesModel,\n ecModel: ecModel,\n api: api,\n // PENDING: `useClearVisual` not used?\n useClearVisual: stageHandler.isVisual && !stageHandler.isLayout,\n plan: stageHandler.plan,\n reset: stageHandler.reset,\n scheduler: scheduler\n };\n\n scheduler._pipe(seriesModel, task);\n }\n };\n\n Scheduler.prototype._createOverallStageTask = function (stageHandler, stageHandlerRecord, ecModel, api) {\n var scheduler = this;\n var overallTask = stageHandlerRecord.overallTask = stageHandlerRecord.overallTask // For overall task, the function only be called on reset stage.\n || createTask({\n reset: overallTaskReset\n });\n overallTask.context = {\n ecModel: ecModel,\n api: api,\n overallReset: stageHandler.overallReset,\n scheduler: scheduler\n };\n var oldAgentStubMap = overallTask.agentStubMap; // The count of stages are totally about only several dozen, so\n // do not need to reuse the map.\n\n var newAgentStubMap = overallTask.agentStubMap = createHashMap();\n var seriesType = stageHandler.seriesType;\n var getTargetSeries = stageHandler.getTargetSeries;\n var overallProgress = true;\n var shouldOverallTaskDirty = false; // FIXME:TS never used, so comment it\n // let modifyOutputEnd = stageHandler.modifyOutputEnd;\n // An overall task with seriesType detected or has `getTargetSeries`, we add\n // stub in each pipelines, it will set the overall task dirty when the pipeline\n // progress. Moreover, to avoid call the overall task each frame (too frequent),\n // we set the pipeline block.\n\n var errMsg = '';\n\n if (process.env.NODE_ENV !== 'production') {\n errMsg = '\"createOnAllSeries\" is not supported for \"overallReset\", ' + 'because it will block all streams.';\n }\n\n assert(!stageHandler.createOnAllSeries, errMsg);\n\n if (seriesType) {\n ecModel.eachRawSeriesByType(seriesType, createStub);\n } else if (getTargetSeries) {\n getTargetSeries(ecModel, api).each(createStub);\n } // Otherwise, (usually it is legacy case), the overall task will only be\n // executed when upstream is dirty. Otherwise the progressive rendering of all\n // pipelines will be disabled unexpectedly. But it still needs stubs to receive\n // dirty info from upstream.\n else {\n overallProgress = false;\n each(ecModel.getSeries(), createStub);\n }\n\n function createStub(seriesModel) {\n var pipelineId = seriesModel.uid;\n var stub = newAgentStubMap.set(pipelineId, oldAgentStubMap && oldAgentStubMap.get(pipelineId) || ( // When the result of `getTargetSeries` changed, the overallTask\n // should be set as dirty and re-performed.\n shouldOverallTaskDirty = true, createTask({\n reset: stubReset,\n onDirty: stubOnDirty\n })));\n stub.context = {\n model: seriesModel,\n overallProgress: overallProgress // FIXME:TS never used, so comment it\n // modifyOutputEnd: modifyOutputEnd\n\n };\n stub.agent = overallTask;\n stub.__block = overallProgress;\n\n scheduler._pipe(seriesModel, stub);\n }\n\n if (shouldOverallTaskDirty) {\n overallTask.dirty();\n }\n };\n\n Scheduler.prototype._pipe = function (seriesModel, task) {\n var pipelineId = seriesModel.uid;\n\n var pipeline = this._pipelineMap.get(pipelineId);\n\n !pipeline.head && (pipeline.head = task);\n pipeline.tail && pipeline.tail.pipe(task);\n pipeline.tail = task;\n task.__idxInPipeline = pipeline.count++;\n task.__pipeline = pipeline;\n };\n\n Scheduler.wrapStageHandler = function (stageHandler, visualType) {\n if (isFunction(stageHandler)) {\n stageHandler = {\n overallReset: stageHandler,\n seriesType: detectSeriseType(stageHandler)\n };\n }\n\n stageHandler.uid = getUID('stageHandler');\n visualType && (stageHandler.visualType = visualType);\n return stageHandler;\n };\n\n ;\n return Scheduler;\n}();\n\nfunction overallTaskReset(context) {\n context.overallReset(context.ecModel, context.api, context.payload);\n}\n\nfunction stubReset(context) {\n return context.overallProgress && stubProgress;\n}\n\nfunction stubProgress() {\n this.agent.dirty();\n this.getDownstream().dirty();\n}\n\nfunction stubOnDirty() {\n this.agent && this.agent.dirty();\n}\n\nfunction seriesTaskPlan(context) {\n return context.plan ? context.plan(context.model, context.ecModel, context.api, context.payload) : null;\n}\n\nfunction seriesTaskReset(context) {\n if (context.useClearVisual) {\n context.data.clearAllVisual();\n }\n\n var resetDefines = context.resetDefines = normalizeToArray(context.reset(context.model, context.ecModel, context.api, context.payload));\n return resetDefines.length > 1 ? map(resetDefines, function (v, idx) {\n return makeSeriesTaskProgress(idx);\n }) : singleSeriesTaskProgress;\n}\n\nvar singleSeriesTaskProgress = makeSeriesTaskProgress(0);\n\nfunction makeSeriesTaskProgress(resetDefineIdx) {\n return function (params, context) {\n var data = context.data;\n var resetDefine = context.resetDefines[resetDefineIdx];\n\n if (resetDefine && resetDefine.dataEach) {\n for (var i = params.start; i < params.end; i++) {\n resetDefine.dataEach(data, i);\n }\n } else if (resetDefine && resetDefine.progress) {\n resetDefine.progress(params, data);\n }\n };\n}\n\nfunction seriesTaskCount(context) {\n return context.data.count();\n}\n/**\n * Only some legacy stage handlers (usually in echarts extensions) are pure function.\n * To ensure that they can work normally, they should work in block mode, that is,\n * they should not be started util the previous tasks finished. So they cause the\n * progressive rendering disabled. We try to detect the series type, to narrow down\n * the block range to only the series type they concern, but not all series.\n */\n\n\nfunction detectSeriseType(legacyFunc) {\n seriesType = null;\n\n try {\n // Assume there is no async when calling `eachSeriesByType`.\n legacyFunc(ecModelMock, apiMock);\n } catch (e) {}\n\n return seriesType;\n}\n\nvar ecModelMock = {};\nvar apiMock = {};\nvar seriesType;\nmockMethods(ecModelMock, GlobalModel);\nmockMethods(apiMock, ExtensionAPI);\n\necModelMock.eachSeriesByType = ecModelMock.eachRawSeriesByType = function (type) {\n seriesType = type;\n};\n\necModelMock.eachComponent = function (cond) {\n if (cond.mainType === 'series' && cond.subType) {\n seriesType = cond.subType;\n }\n};\n\nfunction mockMethods(target, Clz) {\n /* eslint-disable */\n for (var name_1 in Clz.prototype) {\n // Do not use hasOwnProperty\n target[name_1] = noop;\n }\n /* eslint-enable */\n\n}\n\nexport default Scheduler;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nimport * as zrender from 'zrender/lib/zrender.js';\nimport { assert, each, isFunction, isObject, indexOf, bind, clone, setAsPrimitive, extend, createHashMap, map, defaults, isDom, isArray, noop, isString, retrieve2 } from 'zrender/lib/core/util.js';\nimport env from 'zrender/lib/core/env.js';\nimport timsort from 'zrender/lib/core/timsort.js';\nimport Eventful from 'zrender/lib/core/Eventful.js';\nimport GlobalModel from '../model/Global.js';\nimport ExtensionAPI from './ExtensionAPI.js';\nimport CoordinateSystemManager from './CoordinateSystem.js';\nimport OptionManager from '../model/OptionManager.js';\nimport backwardCompat from '../preprocessor/backwardCompat.js';\nimport dataStack from '../processor/dataStack.js';\nimport SeriesModel from '../model/Series.js';\nimport ComponentView from '../view/Component.js';\nimport ChartView from '../view/Chart.js';\nimport * as graphic from '../util/graphic.js';\nimport { getECData } from '../util/innerStore.js';\nimport { isHighDownDispatcher, HOVER_STATE_EMPHASIS, HOVER_STATE_BLUR, blurSeriesFromHighlightPayload, toggleSelectionFromPayload, updateSeriesElementSelection, getAllSelectedIndices, isSelectChangePayload, isHighDownPayload, HIGHLIGHT_ACTION_TYPE, DOWNPLAY_ACTION_TYPE, SELECT_ACTION_TYPE, UNSELECT_ACTION_TYPE, TOGGLE_SELECT_ACTION_TYPE, savePathStates, enterEmphasis, leaveEmphasis, leaveBlur, enterSelect, leaveSelect, enterBlur, allLeaveBlur, findComponentHighDownDispatchers, blurComponent, handleGlobalMouseOverForHighDown, handleGlobalMouseOutForHighDown } from '../util/states.js';\nimport * as modelUtil from '../util/model.js';\nimport { throttle } from '../util/throttle.js';\nimport { seriesStyleTask, dataStyleTask, dataColorPaletteTask } from '../visual/style.js';\nimport loadingDefault from '../loading/default.js';\nimport Scheduler from './Scheduler.js';\nimport lightTheme from '../theme/light.js';\nimport darkTheme from '../theme/dark.js';\nimport { parseClassType } from '../util/clazz.js';\nimport { ECEventProcessor } from '../util/ECEventProcessor.js';\nimport { seriesSymbolTask, dataSymbolTask } from '../visual/symbol.js';\nimport { getVisualFromData, getItemVisualFromData } from '../visual/helper.js';\nimport { deprecateLog, deprecateReplaceLog, error, warn } from '../util/log.js';\nimport { handleLegacySelectEvents } from '../legacy/dataSelectAction.js';\nimport { registerExternalTransform } from '../data/helper/transform.js';\nimport { createLocaleObject, SYSTEM_LANG } from './locale.js';\nimport { findEventDispatcher } from '../util/event.js';\nimport decal from '../visual/decal.js';\nimport lifecycle from './lifecycle.js';\nimport { platformApi, setPlatformAPI } from 'zrender/lib/core/platform.js';\nimport { getImpl } from './impl.js';\nexport var version = '5.4.2';\nexport var dependencies = {\n zrender: '5.4.3'\n};\nvar TEST_FRAME_REMAIN_TIME = 1;\nvar PRIORITY_PROCESSOR_SERIES_FILTER = 800; // Some data processors depends on the stack result dimension (to calculate data extent).\n// So data stack stage should be in front of data processing stage.\n\nvar PRIORITY_PROCESSOR_DATASTACK = 900; // \"Data filter\" will block the stream, so it should be\n// put at the beginning of data processing.\n\nvar PRIORITY_PROCESSOR_FILTER = 1000;\nvar PRIORITY_PROCESSOR_DEFAULT = 2000;\nvar PRIORITY_PROCESSOR_STATISTIC = 5000;\nvar PRIORITY_VISUAL_LAYOUT = 1000;\nvar PRIORITY_VISUAL_PROGRESSIVE_LAYOUT = 1100;\nvar PRIORITY_VISUAL_GLOBAL = 2000;\nvar PRIORITY_VISUAL_CHART = 3000;\nvar PRIORITY_VISUAL_COMPONENT = 4000; // Visual property in data. Greater than `PRIORITY_VISUAL_COMPONENT` to enable to\n// overwrite the viusal result of component (like `visualMap`)\n// using data item specific setting (like itemStyle.xxx on data item)\n\nvar PRIORITY_VISUAL_CHART_DATA_CUSTOM = 4500; // Greater than `PRIORITY_VISUAL_CHART_DATA_CUSTOM` to enable to layout based on\n// visual result like `symbolSize`.\n\nvar PRIORITY_VISUAL_POST_CHART_LAYOUT = 4600;\nvar PRIORITY_VISUAL_BRUSH = 5000;\nvar PRIORITY_VISUAL_ARIA = 6000;\nvar PRIORITY_VISUAL_DECAL = 7000;\nexport var PRIORITY = {\n PROCESSOR: {\n FILTER: PRIORITY_PROCESSOR_FILTER,\n SERIES_FILTER: PRIORITY_PROCESSOR_SERIES_FILTER,\n STATISTIC: PRIORITY_PROCESSOR_STATISTIC\n },\n VISUAL: {\n LAYOUT: PRIORITY_VISUAL_LAYOUT,\n PROGRESSIVE_LAYOUT: PRIORITY_VISUAL_PROGRESSIVE_LAYOUT,\n GLOBAL: PRIORITY_VISUAL_GLOBAL,\n CHART: PRIORITY_VISUAL_CHART,\n POST_CHART_LAYOUT: PRIORITY_VISUAL_POST_CHART_LAYOUT,\n COMPONENT: PRIORITY_VISUAL_COMPONENT,\n BRUSH: PRIORITY_VISUAL_BRUSH,\n CHART_ITEM: PRIORITY_VISUAL_CHART_DATA_CUSTOM,\n ARIA: PRIORITY_VISUAL_ARIA,\n DECAL: PRIORITY_VISUAL_DECAL\n }\n}; // Main process have three entries: `setOption`, `dispatchAction` and `resize`,\n// where they must not be invoked nestedly, except the only case: invoke\n// dispatchAction with updateMethod \"none\" in main process.\n// This flag is used to carry out this rule.\n// All events will be triggered out side main process (i.e. when !this[IN_MAIN_PROCESS]).\n\nvar IN_MAIN_PROCESS_KEY = '__flagInMainProcess';\nvar PENDING_UPDATE = '__pendingUpdate';\nvar STATUS_NEEDS_UPDATE_KEY = '__needsUpdateStatus';\nvar ACTION_REG = /^[a-zA-Z0-9_]+$/;\nvar CONNECT_STATUS_KEY = '__connectUpdateStatus';\nvar CONNECT_STATUS_PENDING = 0;\nvar CONNECT_STATUS_UPDATING = 1;\nvar CONNECT_STATUS_UPDATED = 2;\n;\n;\n\nfunction createRegisterEventWithLowercaseECharts(method) {\n return function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n if (this.isDisposed()) {\n disposedWarning(this.id);\n return;\n }\n\n return toLowercaseNameAndCallEventful(this, method, args);\n };\n}\n\nfunction createRegisterEventWithLowercaseMessageCenter(method) {\n return function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n return toLowercaseNameAndCallEventful(this, method, args);\n };\n}\n\nfunction toLowercaseNameAndCallEventful(host, method, args) {\n // `args[0]` is event name. Event name is all lowercase.\n args[0] = args[0] && args[0].toLowerCase();\n return Eventful.prototype[method].apply(host, args);\n}\n\nvar MessageCenter =\n/** @class */\nfunction (_super) {\n __extends(MessageCenter, _super);\n\n function MessageCenter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n return MessageCenter;\n}(Eventful);\n\nvar messageCenterProto = MessageCenter.prototype;\nmessageCenterProto.on = createRegisterEventWithLowercaseMessageCenter('on');\nmessageCenterProto.off = createRegisterEventWithLowercaseMessageCenter('off'); // ---------------------------------------\n// Internal method names for class ECharts\n// ---------------------------------------\n\nvar prepare;\nvar prepareView;\nvar updateDirectly;\nvar updateMethods;\nvar doConvertPixel;\nvar updateStreamModes;\nvar doDispatchAction;\nvar flushPendingActions;\nvar triggerUpdatedEvent;\nvar bindRenderedEvent;\nvar bindMouseEvent;\nvar render;\nvar renderComponents;\nvar renderSeries;\nvar createExtensionAPI;\nvar enableConnect;\nvar markStatusToUpdate;\nvar applyChangedStates;\n\nvar ECharts =\n/** @class */\nfunction (_super) {\n __extends(ECharts, _super);\n\n function ECharts(dom, // Theme name or themeOption.\n theme, opts) {\n var _this = _super.call(this, new ECEventProcessor()) || this;\n\n _this._chartsViews = [];\n _this._chartsMap = {};\n _this._componentsViews = [];\n _this._componentsMap = {}; // Can't dispatch action during rendering procedure\n\n _this._pendingActions = [];\n opts = opts || {}; // Get theme by name\n\n if (isString(theme)) {\n theme = themeStorage[theme];\n }\n\n _this._dom = dom;\n var defaultRenderer = 'canvas';\n var defaultCoarsePointer = 'auto';\n var defaultUseDirtyRect = false;\n\n if (process.env.NODE_ENV !== 'production') {\n var root =\n /* eslint-disable-next-line */\n env.hasGlobalWindow ? window : global;\n defaultRenderer = root.__ECHARTS__DEFAULT__RENDERER__ || defaultRenderer;\n defaultCoarsePointer = retrieve2(root.__ECHARTS__DEFAULT__COARSE_POINTER, defaultCoarsePointer);\n var devUseDirtyRect = root.__ECHARTS__DEFAULT__USE_DIRTY_RECT__;\n defaultUseDirtyRect = devUseDirtyRect == null ? defaultUseDirtyRect : devUseDirtyRect;\n }\n\n var zr = _this._zr = zrender.init(dom, {\n renderer: opts.renderer || defaultRenderer,\n devicePixelRatio: opts.devicePixelRatio,\n width: opts.width,\n height: opts.height,\n ssr: opts.ssr,\n useDirtyRect: retrieve2(opts.useDirtyRect, defaultUseDirtyRect),\n useCoarsePointer: retrieve2(opts.useCoarsePointer, defaultCoarsePointer),\n pointerSize: opts.pointerSize\n });\n _this._ssr = opts.ssr; // Expect 60 fps.\n\n _this._throttledZrFlush = throttle(bind(zr.flush, zr), 17);\n theme = clone(theme);\n theme && backwardCompat(theme, true);\n _this._theme = theme;\n _this._locale = createLocaleObject(opts.locale || SYSTEM_LANG);\n _this._coordSysMgr = new CoordinateSystemManager();\n var api = _this._api = createExtensionAPI(_this); // Sort on demand\n\n function prioritySortFunc(a, b) {\n return a.__prio - b.__prio;\n }\n\n timsort(visualFuncs, prioritySortFunc);\n timsort(dataProcessorFuncs, prioritySortFunc);\n _this._scheduler = new Scheduler(_this, api, dataProcessorFuncs, visualFuncs);\n _this._messageCenter = new MessageCenter(); // Init mouse events\n\n _this._initEvents(); // In case some people write `window.onresize = chart.resize`\n\n\n _this.resize = bind(_this.resize, _this);\n zr.animation.on('frame', _this._onframe, _this);\n bindRenderedEvent(zr, _this);\n bindMouseEvent(zr, _this); // ECharts instance can be used as value.\n\n setAsPrimitive(_this);\n return _this;\n }\n\n ECharts.prototype._onframe = function () {\n if (this._disposed) {\n return;\n }\n\n applyChangedStates(this);\n var scheduler = this._scheduler; // Lazy update\n\n if (this[PENDING_UPDATE]) {\n var silent = this[PENDING_UPDATE].silent;\n this[IN_MAIN_PROCESS_KEY] = true;\n\n try {\n prepare(this);\n updateMethods.update.call(this, null, this[PENDING_UPDATE].updateParams);\n } catch (e) {\n this[IN_MAIN_PROCESS_KEY] = false;\n this[PENDING_UPDATE] = null;\n throw e;\n } // At present, in each frame, zrender performs:\n // (1) animation step forward.\n // (2) trigger('frame') (where this `_onframe` is called)\n // (3) zrender flush (render).\n // If we do nothing here, since we use `setToFinal: true`, the step (3) above\n // will render the final state of the elements before the real animation started.\n\n\n this._zr.flush();\n\n this[IN_MAIN_PROCESS_KEY] = false;\n this[PENDING_UPDATE] = null;\n flushPendingActions.call(this, silent);\n triggerUpdatedEvent.call(this, silent);\n } // Avoid do both lazy update and progress in one frame.\n else if (scheduler.unfinished) {\n // Stream progress.\n var remainTime = TEST_FRAME_REMAIN_TIME;\n var ecModel = this._model;\n var api = this._api;\n scheduler.unfinished = false;\n\n do {\n var startTime = +new Date();\n scheduler.performSeriesTasks(ecModel); // Currently dataProcessorFuncs do not check threshold.\n\n scheduler.performDataProcessorTasks(ecModel);\n updateStreamModes(this, ecModel); // Do not update coordinate system here. Because that coord system update in\n // each frame is not a good user experience. So we follow the rule that\n // the extent of the coordinate system is determined in the first frame (the\n // frame is executed immediately after task reset.\n // this._coordSysMgr.update(ecModel, api);\n // console.log('--- ec frame visual ---', remainTime);\n\n scheduler.performVisualTasks(ecModel);\n renderSeries(this, this._model, api, 'remain', {});\n remainTime -= +new Date() - startTime;\n } while (remainTime > 0 && scheduler.unfinished); // Call flush explicitly for trigger finished event.\n\n\n if (!scheduler.unfinished) {\n this._zr.flush();\n } // Else, zr flushing be ensue within the same frame,\n // because zr flushing is after onframe event.\n\n }\n };\n\n ECharts.prototype.getDom = function () {\n return this._dom;\n };\n\n ECharts.prototype.getId = function () {\n return this.id;\n };\n\n ECharts.prototype.getZr = function () {\n return this._zr;\n };\n\n ECharts.prototype.isSSR = function () {\n return this._ssr;\n };\n /* eslint-disable-next-line */\n\n\n ECharts.prototype.setOption = function (option, notMerge, lazyUpdate) {\n if (this[IN_MAIN_PROCESS_KEY]) {\n if (process.env.NODE_ENV !== 'production') {\n error('`setOption` should not be called during main process.');\n }\n\n return;\n }\n\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n var silent;\n var replaceMerge;\n var transitionOpt;\n\n if (isObject(notMerge)) {\n lazyUpdate = notMerge.lazyUpdate;\n silent = notMerge.silent;\n replaceMerge = notMerge.replaceMerge;\n transitionOpt = notMerge.transition;\n notMerge = notMerge.notMerge;\n }\n\n this[IN_MAIN_PROCESS_KEY] = true;\n\n if (!this._model || notMerge) {\n var optionManager = new OptionManager(this._api);\n var theme = this._theme;\n var ecModel = this._model = new GlobalModel();\n ecModel.scheduler = this._scheduler;\n ecModel.ssr = this._ssr;\n ecModel.init(null, null, null, theme, this._locale, optionManager);\n }\n\n this._model.setOption(option, {\n replaceMerge: replaceMerge\n }, optionPreprocessorFuncs);\n\n var updateParams = {\n seriesTransition: transitionOpt,\n optionChanged: true\n };\n\n if (lazyUpdate) {\n this[PENDING_UPDATE] = {\n silent: silent,\n updateParams: updateParams\n };\n this[IN_MAIN_PROCESS_KEY] = false; // `setOption(option, {lazyMode: true})` may be called when zrender has been slept.\n // It should wake it up to make sure zrender start to render at the next frame.\n\n this.getZr().wakeUp();\n } else {\n try {\n prepare(this);\n updateMethods.update.call(this, null, updateParams);\n } catch (e) {\n this[PENDING_UPDATE] = null;\n this[IN_MAIN_PROCESS_KEY] = false;\n throw e;\n } // Ensure zr refresh sychronously, and then pixel in canvas can be\n // fetched after `setOption`.\n\n\n if (!this._ssr) {\n // not use flush when using ssr mode.\n this._zr.flush();\n }\n\n this[PENDING_UPDATE] = null;\n this[IN_MAIN_PROCESS_KEY] = false;\n flushPendingActions.call(this, silent);\n triggerUpdatedEvent.call(this, silent);\n }\n };\n /**\n * @deprecated\n */\n\n\n ECharts.prototype.setTheme = function () {\n deprecateLog('ECharts#setTheme() is DEPRECATED in ECharts 3.0');\n }; // We don't want developers to use getModel directly.\n\n\n ECharts.prototype.getModel = function () {\n return this._model;\n };\n\n ECharts.prototype.getOption = function () {\n return this._model && this._model.getOption();\n };\n\n ECharts.prototype.getWidth = function () {\n return this._zr.getWidth();\n };\n\n ECharts.prototype.getHeight = function () {\n return this._zr.getHeight();\n };\n\n ECharts.prototype.getDevicePixelRatio = function () {\n return this._zr.painter.dpr\n /* eslint-disable-next-line */\n || env.hasGlobalWindow && window.devicePixelRatio || 1;\n };\n /**\n * Get canvas which has all thing rendered\n * @deprecated Use renderToCanvas instead.\n */\n\n\n ECharts.prototype.getRenderedCanvas = function (opts) {\n if (process.env.NODE_ENV !== 'production') {\n deprecateReplaceLog('getRenderedCanvas', 'renderToCanvas');\n }\n\n return this.renderToCanvas(opts);\n };\n\n ECharts.prototype.renderToCanvas = function (opts) {\n opts = opts || {};\n var painter = this._zr.painter;\n\n if (process.env.NODE_ENV !== 'production') {\n if (painter.type !== 'canvas') {\n throw new Error('renderToCanvas can only be used in the canvas renderer.');\n }\n }\n\n return painter.getRenderedCanvas({\n backgroundColor: opts.backgroundColor || this._model.get('backgroundColor'),\n pixelRatio: opts.pixelRatio || this.getDevicePixelRatio()\n });\n };\n\n ECharts.prototype.renderToSVGString = function (opts) {\n opts = opts || {};\n var painter = this._zr.painter;\n\n if (process.env.NODE_ENV !== 'production') {\n if (painter.type !== 'svg') {\n throw new Error('renderToSVGString can only be used in the svg renderer.');\n }\n }\n\n return painter.renderToString({\n useViewBox: opts.useViewBox\n });\n };\n /**\n * Get svg data url\n */\n\n\n ECharts.prototype.getSvgDataURL = function () {\n if (!env.svgSupported) {\n return;\n }\n\n var zr = this._zr;\n var list = zr.storage.getDisplayList(); // Stop animations\n\n each(list, function (el) {\n el.stopAnimation(null, true);\n });\n return zr.painter.toDataURL();\n };\n\n ECharts.prototype.getDataURL = function (opts) {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n opts = opts || {};\n var excludeComponents = opts.excludeComponents;\n var ecModel = this._model;\n var excludesComponentViews = [];\n var self = this;\n each(excludeComponents, function (componentType) {\n ecModel.eachComponent({\n mainType: componentType\n }, function (component) {\n var view = self._componentsMap[component.__viewId];\n\n if (!view.group.ignore) {\n excludesComponentViews.push(view);\n view.group.ignore = true;\n }\n });\n });\n var url = this._zr.painter.getType() === 'svg' ? this.getSvgDataURL() : this.renderToCanvas(opts).toDataURL('image/' + (opts && opts.type || 'png'));\n each(excludesComponentViews, function (view) {\n view.group.ignore = false;\n });\n return url;\n };\n\n ECharts.prototype.getConnectedDataURL = function (opts) {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n var isSvg = opts.type === 'svg';\n var groupId = this.group;\n var mathMin = Math.min;\n var mathMax = Math.max;\n var MAX_NUMBER = Infinity;\n\n if (connectedGroups[groupId]) {\n var left_1 = MAX_NUMBER;\n var top_1 = MAX_NUMBER;\n var right_1 = -MAX_NUMBER;\n var bottom_1 = -MAX_NUMBER;\n var canvasList_1 = [];\n var dpr_1 = opts && opts.pixelRatio || this.getDevicePixelRatio();\n each(instances, function (chart, id) {\n if (chart.group === groupId) {\n var canvas = isSvg ? chart.getZr().painter.getSvgDom().innerHTML : chart.renderToCanvas(clone(opts));\n var boundingRect = chart.getDom().getBoundingClientRect();\n left_1 = mathMin(boundingRect.left, left_1);\n top_1 = mathMin(boundingRect.top, top_1);\n right_1 = mathMax(boundingRect.right, right_1);\n bottom_1 = mathMax(boundingRect.bottom, bottom_1);\n canvasList_1.push({\n dom: canvas,\n left: boundingRect.left,\n top: boundingRect.top\n });\n }\n });\n left_1 *= dpr_1;\n top_1 *= dpr_1;\n right_1 *= dpr_1;\n bottom_1 *= dpr_1;\n var width = right_1 - left_1;\n var height = bottom_1 - top_1;\n var targetCanvas = platformApi.createCanvas();\n var zr_1 = zrender.init(targetCanvas, {\n renderer: isSvg ? 'svg' : 'canvas'\n });\n zr_1.resize({\n width: width,\n height: height\n });\n\n if (isSvg) {\n var content_1 = '';\n each(canvasList_1, function (item) {\n var x = item.left - left_1;\n var y = item.top - top_1;\n content_1 += '' + item.dom + '';\n });\n zr_1.painter.getSvgRoot().innerHTML = content_1;\n\n if (opts.connectedBackgroundColor) {\n zr_1.painter.setBackgroundColor(opts.connectedBackgroundColor);\n }\n\n zr_1.refreshImmediately();\n return zr_1.painter.toDataURL();\n } else {\n // Background between the charts\n if (opts.connectedBackgroundColor) {\n zr_1.add(new graphic.Rect({\n shape: {\n x: 0,\n y: 0,\n width: width,\n height: height\n },\n style: {\n fill: opts.connectedBackgroundColor\n }\n }));\n }\n\n each(canvasList_1, function (item) {\n var img = new graphic.Image({\n style: {\n x: item.left * dpr_1 - left_1,\n y: item.top * dpr_1 - top_1,\n image: item.dom\n }\n });\n zr_1.add(img);\n });\n zr_1.refreshImmediately();\n return targetCanvas.toDataURL('image/' + (opts && opts.type || 'png'));\n }\n } else {\n return this.getDataURL(opts);\n }\n };\n\n ECharts.prototype.convertToPixel = function (finder, value) {\n return doConvertPixel(this, 'convertToPixel', finder, value);\n };\n\n ECharts.prototype.convertFromPixel = function (finder, value) {\n return doConvertPixel(this, 'convertFromPixel', finder, value);\n };\n /**\n * Is the specified coordinate systems or components contain the given pixel point.\n * @param {Array|number} value\n * @return {boolean} result\n */\n\n\n ECharts.prototype.containPixel = function (finder, value) {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n var ecModel = this._model;\n var result;\n var findResult = modelUtil.parseFinder(ecModel, finder);\n each(findResult, function (models, key) {\n key.indexOf('Models') >= 0 && each(models, function (model) {\n var coordSys = model.coordinateSystem;\n\n if (coordSys && coordSys.containPoint) {\n result = result || !!coordSys.containPoint(value);\n } else if (key === 'seriesModels') {\n var view = this._chartsMap[model.__viewId];\n\n if (view && view.containPoint) {\n result = result || view.containPoint(value, model);\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(key + ': ' + (view ? 'The found component do not support containPoint.' : 'No view mapping to the found component.'));\n }\n }\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(key + ': containPoint is not supported');\n }\n }\n }, this);\n }, this);\n return !!result;\n };\n /**\n * Get visual from series or data.\n * @param finder\n * If string, e.g., 'series', means {seriesIndex: 0}.\n * If Object, could contain some of these properties below:\n * {\n * seriesIndex / seriesId / seriesName,\n * dataIndex / dataIndexInside\n * }\n * If dataIndex is not specified, series visual will be fetched,\n * but not data item visual.\n * If all of seriesIndex, seriesId, seriesName are not specified,\n * visual will be fetched from first series.\n * @param visualType 'color', 'symbol', 'symbolSize'\n */\n\n\n ECharts.prototype.getVisual = function (finder, visualType) {\n var ecModel = this._model;\n var parsedFinder = modelUtil.parseFinder(ecModel, finder, {\n defaultMainType: 'series'\n });\n var seriesModel = parsedFinder.seriesModel;\n\n if (process.env.NODE_ENV !== 'production') {\n if (!seriesModel) {\n warn('There is no specified series model');\n }\n }\n\n var data = seriesModel.getData();\n var dataIndexInside = parsedFinder.hasOwnProperty('dataIndexInside') ? parsedFinder.dataIndexInside : parsedFinder.hasOwnProperty('dataIndex') ? data.indexOfRawIndex(parsedFinder.dataIndex) : null;\n return dataIndexInside != null ? getItemVisualFromData(data, dataIndexInside, visualType) : getVisualFromData(data, visualType);\n };\n /**\n * Get view of corresponding component model\n */\n\n\n ECharts.prototype.getViewOfComponentModel = function (componentModel) {\n return this._componentsMap[componentModel.__viewId];\n };\n /**\n * Get view of corresponding series model\n */\n\n\n ECharts.prototype.getViewOfSeriesModel = function (seriesModel) {\n return this._chartsMap[seriesModel.__viewId];\n };\n\n ECharts.prototype._initEvents = function () {\n var _this = this;\n\n each(MOUSE_EVENT_NAMES, function (eveName) {\n var handler = function (e) {\n var ecModel = _this.getModel();\n\n var el = e.target;\n var params;\n var isGlobalOut = eveName === 'globalout'; // no e.target when 'globalout'.\n\n if (isGlobalOut) {\n params = {};\n } else {\n el && findEventDispatcher(el, function (parent) {\n var ecData = getECData(parent);\n\n if (ecData && ecData.dataIndex != null) {\n var dataModel = ecData.dataModel || ecModel.getSeriesByIndex(ecData.seriesIndex);\n params = dataModel && dataModel.getDataParams(ecData.dataIndex, ecData.dataType) || {};\n return true;\n } // If element has custom eventData of components\n else if (ecData.eventData) {\n params = extend({}, ecData.eventData);\n return true;\n }\n }, true);\n } // Contract: if params prepared in mouse event,\n // these properties must be specified:\n // {\n // componentType: string (component main type)\n // componentIndex: number\n // }\n // Otherwise event query can not work.\n\n\n if (params) {\n var componentType = params.componentType;\n var componentIndex = params.componentIndex; // Special handling for historic reason: when trigger by\n // markLine/markPoint/markArea, the componentType is\n // 'markLine'/'markPoint'/'markArea', but we should better\n // enable them to be queried by seriesIndex, since their\n // option is set in each series.\n\n if (componentType === 'markLine' || componentType === 'markPoint' || componentType === 'markArea') {\n componentType = 'series';\n componentIndex = params.seriesIndex;\n }\n\n var model = componentType && componentIndex != null && ecModel.getComponent(componentType, componentIndex);\n var view = model && _this[model.mainType === 'series' ? '_chartsMap' : '_componentsMap'][model.__viewId];\n\n if (process.env.NODE_ENV !== 'production') {\n // `event.componentType` and `event[componentTpype + 'Index']` must not\n // be missed, otherwise there is no way to distinguish source component.\n // See `dataFormat.getDataParams`.\n if (!isGlobalOut && !(model && view)) {\n warn('model or view can not be found by params');\n }\n }\n\n params.event = e;\n params.type = eveName;\n _this._$eventProcessor.eventInfo = {\n targetEl: el,\n packedEvent: params,\n model: model,\n view: view\n };\n\n _this.trigger(eveName, params);\n }\n }; // Consider that some component (like tooltip, brush, ...)\n // register zr event handler, but user event handler might\n // do anything, such as call `setOption` or `dispatchAction`,\n // which probably update any of the content and probably\n // cause problem if it is called previous other inner handlers.\n\n\n handler.zrEventfulCallAtLast = true;\n\n _this._zr.on(eveName, handler, _this);\n });\n each(eventActionMap, function (actionType, eventType) {\n _this._messageCenter.on(eventType, function (event) {\n this.trigger(eventType, event);\n }, _this);\n }); // Extra events\n // TODO register?\n\n each(['selectchanged'], function (eventType) {\n _this._messageCenter.on(eventType, function (event) {\n this.trigger(eventType, event);\n }, _this);\n });\n handleLegacySelectEvents(this._messageCenter, this, this._api);\n };\n\n ECharts.prototype.isDisposed = function () {\n return this._disposed;\n };\n\n ECharts.prototype.clear = function () {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n this.setOption({\n series: []\n }, true);\n };\n\n ECharts.prototype.dispose = function () {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n this._disposed = true;\n var dom = this.getDom();\n\n if (dom) {\n modelUtil.setAttribute(this.getDom(), DOM_ATTRIBUTE_KEY, '');\n }\n\n var chart = this;\n var api = chart._api;\n var ecModel = chart._model;\n each(chart._componentsViews, function (component) {\n component.dispose(ecModel, api);\n });\n each(chart._chartsViews, function (chart) {\n chart.dispose(ecModel, api);\n }); // Dispose after all views disposed\n\n chart._zr.dispose(); // Set properties to null.\n // To reduce the memory cost in case the top code still holds this instance unexpectedly.\n\n\n chart._dom = chart._model = chart._chartsMap = chart._componentsMap = chart._chartsViews = chart._componentsViews = chart._scheduler = chart._api = chart._zr = chart._throttledZrFlush = chart._theme = chart._coordSysMgr = chart._messageCenter = null;\n delete instances[chart.id];\n };\n /**\n * Resize the chart\n */\n\n\n ECharts.prototype.resize = function (opts) {\n if (this[IN_MAIN_PROCESS_KEY]) {\n if (process.env.NODE_ENV !== 'production') {\n error('`resize` should not be called during main process.');\n }\n\n return;\n }\n\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n this._zr.resize(opts);\n\n var ecModel = this._model; // Resize loading effect\n\n this._loadingFX && this._loadingFX.resize();\n\n if (!ecModel) {\n return;\n }\n\n var needPrepare = ecModel.resetOption('media');\n var silent = opts && opts.silent; // There is some real cases that:\n // chart.setOption(option, { lazyUpdate: true });\n // chart.resize();\n\n if (this[PENDING_UPDATE]) {\n if (silent == null) {\n silent = this[PENDING_UPDATE].silent;\n }\n\n needPrepare = true;\n this[PENDING_UPDATE] = null;\n }\n\n this[IN_MAIN_PROCESS_KEY] = true;\n\n try {\n needPrepare && prepare(this);\n updateMethods.update.call(this, {\n type: 'resize',\n animation: extend({\n // Disable animation\n duration: 0\n }, opts && opts.animation)\n });\n } catch (e) {\n this[IN_MAIN_PROCESS_KEY] = false;\n throw e;\n }\n\n this[IN_MAIN_PROCESS_KEY] = false;\n flushPendingActions.call(this, silent);\n triggerUpdatedEvent.call(this, silent);\n };\n\n ECharts.prototype.showLoading = function (name, cfg) {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n if (isObject(name)) {\n cfg = name;\n name = '';\n }\n\n name = name || 'default';\n this.hideLoading();\n\n if (!loadingEffects[name]) {\n if (process.env.NODE_ENV !== 'production') {\n warn('Loading effects ' + name + ' not exists.');\n }\n\n return;\n }\n\n var el = loadingEffects[name](this._api, cfg);\n var zr = this._zr;\n this._loadingFX = el;\n zr.add(el);\n };\n /**\n * Hide loading effect\n */\n\n\n ECharts.prototype.hideLoading = function () {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n this._loadingFX && this._zr.remove(this._loadingFX);\n this._loadingFX = null;\n };\n\n ECharts.prototype.makeActionFromEvent = function (eventObj) {\n var payload = extend({}, eventObj);\n payload.type = eventActionMap[eventObj.type];\n return payload;\n };\n /**\n * @param opt If pass boolean, means opt.silent\n * @param opt.silent Default `false`. Whether trigger events.\n * @param opt.flush Default `undefined`.\n * true: Flush immediately, and then pixel in canvas can be fetched\n * immediately. Caution: it might affect performance.\n * false: Not flush.\n * undefined: Auto decide whether perform flush.\n */\n\n\n ECharts.prototype.dispatchAction = function (payload, opt) {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n if (!isObject(opt)) {\n opt = {\n silent: !!opt\n };\n }\n\n if (!actions[payload.type]) {\n return;\n } // Avoid dispatch action before setOption. Especially in `connect`.\n\n\n if (!this._model) {\n return;\n } // May dispatchAction in rendering procedure\n\n\n if (this[IN_MAIN_PROCESS_KEY]) {\n this._pendingActions.push(payload);\n\n return;\n }\n\n var silent = opt.silent;\n doDispatchAction.call(this, payload, silent);\n var flush = opt.flush;\n\n if (flush) {\n this._zr.flush();\n } else if (flush !== false && env.browser.weChat) {\n // In WeChat embedded browser, `requestAnimationFrame` and `setInterval`\n // hang when sliding page (on touch event), which cause that zr does not\n // refresh until user interaction finished, which is not expected.\n // But `dispatchAction` may be called too frequently when pan on touch\n // screen, which impacts performance if do not throttle them.\n this._throttledZrFlush();\n }\n\n flushPendingActions.call(this, silent);\n triggerUpdatedEvent.call(this, silent);\n };\n\n ECharts.prototype.updateLabelLayout = function () {\n lifecycle.trigger('series:layoutlabels', this._model, this._api, {\n // Not adding series labels.\n // TODO\n updatedSeries: []\n });\n };\n\n ECharts.prototype.appendData = function (params) {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n var seriesIndex = params.seriesIndex;\n var ecModel = this.getModel();\n var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\n\n if (process.env.NODE_ENV !== 'production') {\n assert(params.data && seriesModel);\n }\n\n seriesModel.appendData(params); // Note: `appendData` does not support that update extent of coordinate\n // system, util some scenario require that. In the expected usage of\n // `appendData`, the initial extent of coordinate system should better\n // be fixed by axis `min`/`max` setting or initial data, otherwise if\n // the extent changed while `appendData`, the location of the painted\n // graphic elements have to be changed, which make the usage of\n // `appendData` meaningless.\n\n this._scheduler.unfinished = true;\n this.getZr().wakeUp();\n }; // A work around for no `internal` modifier in ts yet but\n // need to strictly hide private methods to JS users.\n\n\n ECharts.internalField = function () {\n prepare = function (ecIns) {\n var scheduler = ecIns._scheduler;\n scheduler.restorePipelines(ecIns._model);\n scheduler.prepareStageTasks();\n prepareView(ecIns, true);\n prepareView(ecIns, false);\n scheduler.plan();\n };\n /**\n * Prepare view instances of charts and components\n */\n\n\n prepareView = function (ecIns, isComponent) {\n var ecModel = ecIns._model;\n var scheduler = ecIns._scheduler;\n var viewList = isComponent ? ecIns._componentsViews : ecIns._chartsViews;\n var viewMap = isComponent ? ecIns._componentsMap : ecIns._chartsMap;\n var zr = ecIns._zr;\n var api = ecIns._api;\n\n for (var i = 0; i < viewList.length; i++) {\n viewList[i].__alive = false;\n }\n\n isComponent ? ecModel.eachComponent(function (componentType, model) {\n componentType !== 'series' && doPrepare(model);\n }) : ecModel.eachSeries(doPrepare);\n\n function doPrepare(model) {\n // By default view will be reused if possible for the case that `setOption` with \"notMerge\"\n // mode and need to enable transition animation. (Usually, when they have the same id, or\n // especially no id but have the same type & name & index. See the `model.id` generation\n // rule in `makeIdAndName` and `viewId` generation rule here).\n // But in `replaceMerge` mode, this feature should be able to disabled when it is clear that\n // the new model has nothing to do with the old model.\n var requireNewView = model.__requireNewView; // This command should not work twice.\n\n model.__requireNewView = false; // Consider: id same and type changed.\n\n var viewId = '_ec_' + model.id + '_' + model.type;\n var view = !requireNewView && viewMap[viewId];\n\n if (!view) {\n var classType = parseClassType(model.type);\n var Clazz = isComponent ? ComponentView.getClass(classType.main, classType.sub) : // FIXME:TS\n // (ChartView as ChartViewConstructor).getClass('series', classType.sub)\n // For backward compat, still support a chart type declared as only subType\n // like \"liquidfill\", but recommend \"series.liquidfill\"\n // But need a base class to make a type series.\n ChartView.getClass(classType.sub);\n\n if (process.env.NODE_ENV !== 'production') {\n assert(Clazz, classType.sub + ' does not exist.');\n }\n\n view = new Clazz();\n view.init(ecModel, api);\n viewMap[viewId] = view;\n viewList.push(view);\n zr.add(view.group);\n }\n\n model.__viewId = view.__id = viewId;\n view.__alive = true;\n view.__model = model;\n view.group.__ecComponentInfo = {\n mainType: model.mainType,\n index: model.componentIndex\n };\n !isComponent && scheduler.prepareView(view, model, ecModel, api);\n }\n\n for (var i = 0; i < viewList.length;) {\n var view = viewList[i];\n\n if (!view.__alive) {\n !isComponent && view.renderTask.dispose();\n zr.remove(view.group);\n view.dispose(ecModel, api);\n viewList.splice(i, 1);\n\n if (viewMap[view.__id] === view) {\n delete viewMap[view.__id];\n }\n\n view.__id = view.group.__ecComponentInfo = null;\n } else {\n i++;\n }\n }\n };\n\n updateDirectly = function (ecIns, method, payload, mainType, subType) {\n var ecModel = ecIns._model;\n ecModel.setUpdatePayload(payload); // broadcast\n\n if (!mainType) {\n // FIXME\n // Chart will not be update directly here, except set dirty.\n // But there is no such scenario now.\n each([].concat(ecIns._componentsViews).concat(ecIns._chartsViews), callView);\n return;\n }\n\n var query = {};\n query[mainType + 'Id'] = payload[mainType + 'Id'];\n query[mainType + 'Index'] = payload[mainType + 'Index'];\n query[mainType + 'Name'] = payload[mainType + 'Name'];\n var condition = {\n mainType: mainType,\n query: query\n };\n subType && (condition.subType = subType); // subType may be '' by parseClassType;\n\n var excludeSeriesId = payload.excludeSeriesId;\n var excludeSeriesIdMap;\n\n if (excludeSeriesId != null) {\n excludeSeriesIdMap = createHashMap();\n each(modelUtil.normalizeToArray(excludeSeriesId), function (id) {\n var modelId = modelUtil.convertOptionIdName(id, null);\n\n if (modelId != null) {\n excludeSeriesIdMap.set(modelId, true);\n }\n });\n } // If dispatchAction before setOption, do nothing.\n\n\n ecModel && ecModel.eachComponent(condition, function (model) {\n var isExcluded = excludeSeriesIdMap && excludeSeriesIdMap.get(model.id) != null;\n\n if (isExcluded) {\n return;\n }\n\n ;\n\n if (isHighDownPayload(payload)) {\n if (model instanceof SeriesModel) {\n if (payload.type === HIGHLIGHT_ACTION_TYPE && !payload.notBlur && !model.get(['emphasis', 'disabled'])) {\n blurSeriesFromHighlightPayload(model, payload, ecIns._api);\n }\n } else {\n var _a = findComponentHighDownDispatchers(model.mainType, model.componentIndex, payload.name, ecIns._api),\n focusSelf = _a.focusSelf,\n dispatchers = _a.dispatchers;\n\n if (payload.type === HIGHLIGHT_ACTION_TYPE && focusSelf && !payload.notBlur) {\n blurComponent(model.mainType, model.componentIndex, ecIns._api);\n } // PENDING:\n // Whether to put this \"enter emphasis\" code in `ComponentView`,\n // which will be the same as `ChartView` but might be not necessary\n // and will be far from this logic.\n\n\n if (dispatchers) {\n each(dispatchers, function (dispatcher) {\n payload.type === HIGHLIGHT_ACTION_TYPE ? enterEmphasis(dispatcher) : leaveEmphasis(dispatcher);\n });\n }\n }\n } else if (isSelectChangePayload(payload)) {\n // TODO geo\n if (model instanceof SeriesModel) {\n toggleSelectionFromPayload(model, payload, ecIns._api);\n updateSeriesElementSelection(model);\n markStatusToUpdate(ecIns);\n }\n }\n }, ecIns);\n ecModel && ecModel.eachComponent(condition, function (model) {\n var isExcluded = excludeSeriesIdMap && excludeSeriesIdMap.get(model.id) != null;\n\n if (isExcluded) {\n return;\n }\n\n ;\n callView(ecIns[mainType === 'series' ? '_chartsMap' : '_componentsMap'][model.__viewId]);\n }, ecIns);\n\n function callView(view) {\n view && view.__alive && view[method] && view[method](view.__model, ecModel, ecIns._api, payload);\n }\n };\n\n updateMethods = {\n prepareAndUpdate: function (payload) {\n prepare(this);\n updateMethods.update.call(this, payload, {\n // Needs to mark option changed if newOption is given.\n // It's from MagicType.\n // TODO If use a separate flag optionChanged in payload?\n optionChanged: payload.newOption != null\n });\n },\n update: function (payload, updateParams) {\n var ecModel = this._model;\n var api = this._api;\n var zr = this._zr;\n var coordSysMgr = this._coordSysMgr;\n var scheduler = this._scheduler; // update before setOption\n\n if (!ecModel) {\n return;\n }\n\n ecModel.setUpdatePayload(payload);\n scheduler.restoreData(ecModel, payload);\n scheduler.performSeriesTasks(ecModel); // TODO\n // Save total ecModel here for undo/redo (after restoring data and before processing data).\n // Undo (restoration of total ecModel) can be carried out in 'action' or outside API call.\n // Create new coordinate system each update\n // In LineView may save the old coordinate system and use it to get the original point.\n\n coordSysMgr.create(ecModel, api);\n scheduler.performDataProcessorTasks(ecModel, payload); // Current stream render is not supported in data process. So we can update\n // stream modes after data processing, where the filtered data is used to\n // determine whether to use progressive rendering.\n\n updateStreamModes(this, ecModel); // We update stream modes before coordinate system updated, then the modes info\n // can be fetched when coord sys updating (consider the barGrid extent fix). But\n // the drawback is the full coord info can not be fetched. Fortunately this full\n // coord is not required in stream mode updater currently.\n\n coordSysMgr.update(ecModel, api);\n clearColorPalette(ecModel);\n scheduler.performVisualTasks(ecModel, payload);\n render(this, ecModel, api, payload, updateParams); // Set background\n\n var backgroundColor = ecModel.get('backgroundColor') || 'transparent';\n var darkMode = ecModel.get('darkMode');\n zr.setBackgroundColor(backgroundColor); // Force set dark mode.\n\n if (darkMode != null && darkMode !== 'auto') {\n zr.setDarkMode(darkMode);\n }\n\n lifecycle.trigger('afterupdate', ecModel, api);\n },\n updateTransform: function (payload) {\n var _this = this;\n\n var ecModel = this._model;\n var api = this._api; // update before setOption\n\n if (!ecModel) {\n return;\n }\n\n ecModel.setUpdatePayload(payload); // ChartView.markUpdateMethod(payload, 'updateTransform');\n\n var componentDirtyList = [];\n ecModel.eachComponent(function (componentType, componentModel) {\n if (componentType === 'series') {\n return;\n }\n\n var componentView = _this.getViewOfComponentModel(componentModel);\n\n if (componentView && componentView.__alive) {\n if (componentView.updateTransform) {\n var result = componentView.updateTransform(componentModel, ecModel, api, payload);\n result && result.update && componentDirtyList.push(componentView);\n } else {\n componentDirtyList.push(componentView);\n }\n }\n });\n var seriesDirtyMap = createHashMap();\n ecModel.eachSeries(function (seriesModel) {\n var chartView = _this._chartsMap[seriesModel.__viewId];\n\n if (chartView.updateTransform) {\n var result = chartView.updateTransform(seriesModel, ecModel, api, payload);\n result && result.update && seriesDirtyMap.set(seriesModel.uid, 1);\n } else {\n seriesDirtyMap.set(seriesModel.uid, 1);\n }\n });\n clearColorPalette(ecModel); // Keep pipe to the exist pipeline because it depends on the render task of the full pipeline.\n // this._scheduler.performVisualTasks(ecModel, payload, 'layout', true);\n\n this._scheduler.performVisualTasks(ecModel, payload, {\n setDirty: true,\n dirtyMap: seriesDirtyMap\n }); // Currently, not call render of components. Geo render cost a lot.\n // renderComponents(ecIns, ecModel, api, payload, componentDirtyList);\n\n\n renderSeries(this, ecModel, api, payload, {}, seriesDirtyMap);\n lifecycle.trigger('afterupdate', ecModel, api);\n },\n updateView: function (payload) {\n var ecModel = this._model; // update before setOption\n\n if (!ecModel) {\n return;\n }\n\n ecModel.setUpdatePayload(payload);\n ChartView.markUpdateMethod(payload, 'updateView');\n clearColorPalette(ecModel); // Keep pipe to the exist pipeline because it depends on the render task of the full pipeline.\n\n this._scheduler.performVisualTasks(ecModel, payload, {\n setDirty: true\n });\n\n render(this, ecModel, this._api, payload, {});\n lifecycle.trigger('afterupdate', ecModel, this._api);\n },\n updateVisual: function (payload) {\n // updateMethods.update.call(this, payload);\n var _this = this;\n\n var ecModel = this._model; // update before setOption\n\n if (!ecModel) {\n return;\n }\n\n ecModel.setUpdatePayload(payload); // clear all visual\n\n ecModel.eachSeries(function (seriesModel) {\n seriesModel.getData().clearAllVisual();\n }); // Perform visual\n\n ChartView.markUpdateMethod(payload, 'updateVisual');\n clearColorPalette(ecModel); // Keep pipe to the exist pipeline because it depends on the render task of the full pipeline.\n\n this._scheduler.performVisualTasks(ecModel, payload, {\n visualType: 'visual',\n setDirty: true\n });\n\n ecModel.eachComponent(function (componentType, componentModel) {\n if (componentType !== 'series') {\n var componentView = _this.getViewOfComponentModel(componentModel);\n\n componentView && componentView.__alive && componentView.updateVisual(componentModel, ecModel, _this._api, payload);\n }\n });\n ecModel.eachSeries(function (seriesModel) {\n var chartView = _this._chartsMap[seriesModel.__viewId];\n chartView.updateVisual(seriesModel, ecModel, _this._api, payload);\n });\n lifecycle.trigger('afterupdate', ecModel, this._api);\n },\n updateLayout: function (payload) {\n updateMethods.update.call(this, payload);\n }\n };\n\n doConvertPixel = function (ecIns, methodName, finder, value) {\n if (ecIns._disposed) {\n disposedWarning(ecIns.id);\n return;\n }\n\n var ecModel = ecIns._model;\n\n var coordSysList = ecIns._coordSysMgr.getCoordinateSystems();\n\n var result;\n var parsedFinder = modelUtil.parseFinder(ecModel, finder);\n\n for (var i = 0; i < coordSysList.length; i++) {\n var coordSys = coordSysList[i];\n\n if (coordSys[methodName] && (result = coordSys[methodName](ecModel, parsedFinder, value)) != null) {\n return result;\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n warn('No coordinate system that supports ' + methodName + ' found by the given finder.');\n }\n };\n\n updateStreamModes = function (ecIns, ecModel) {\n var chartsMap = ecIns._chartsMap;\n var scheduler = ecIns._scheduler;\n ecModel.eachSeries(function (seriesModel) {\n scheduler.updateStreamModes(seriesModel, chartsMap[seriesModel.__viewId]);\n });\n };\n\n doDispatchAction = function (payload, silent) {\n var _this = this;\n\n var ecModel = this.getModel();\n var payloadType = payload.type;\n var escapeConnect = payload.escapeConnect;\n var actionWrap = actions[payloadType];\n var actionInfo = actionWrap.actionInfo;\n var cptTypeTmp = (actionInfo.update || 'update').split(':');\n var updateMethod = cptTypeTmp.pop();\n var cptType = cptTypeTmp[0] != null && parseClassType(cptTypeTmp[0]);\n this[IN_MAIN_PROCESS_KEY] = true;\n var payloads = [payload];\n var batched = false; // Batch action\n\n if (payload.batch) {\n batched = true;\n payloads = map(payload.batch, function (item) {\n item = defaults(extend({}, item), payload);\n item.batch = null;\n return item;\n });\n }\n\n var eventObjBatch = [];\n var eventObj;\n var isSelectChange = isSelectChangePayload(payload);\n var isHighDown = isHighDownPayload(payload); // Only leave blur once if there are multiple batches.\n\n if (isHighDown) {\n allLeaveBlur(this._api);\n }\n\n each(payloads, function (batchItem) {\n // Action can specify the event by return it.\n eventObj = actionWrap.action(batchItem, _this._model, _this._api); // Emit event outside\n\n eventObj = eventObj || extend({}, batchItem); // Convert type to eventType\n\n eventObj.type = actionInfo.event || eventObj.type;\n eventObjBatch.push(eventObj); // light update does not perform data process, layout and visual.\n\n if (isHighDown) {\n var _a = modelUtil.preParseFinder(payload),\n queryOptionMap = _a.queryOptionMap,\n mainTypeSpecified = _a.mainTypeSpecified;\n\n var componentMainType = mainTypeSpecified ? queryOptionMap.keys()[0] : 'series';\n updateDirectly(_this, updateMethod, batchItem, componentMainType);\n markStatusToUpdate(_this);\n } else if (isSelectChange) {\n // At present `dispatchAction({ type: 'select', ... })` is not supported on components.\n // geo still use 'geoselect'.\n updateDirectly(_this, updateMethod, batchItem, 'series');\n markStatusToUpdate(_this);\n } else if (cptType) {\n updateDirectly(_this, updateMethod, batchItem, cptType.main, cptType.sub);\n }\n });\n\n if (updateMethod !== 'none' && !isHighDown && !isSelectChange && !cptType) {\n try {\n // Still dirty\n if (this[PENDING_UPDATE]) {\n prepare(this);\n updateMethods.update.call(this, payload);\n this[PENDING_UPDATE] = null;\n } else {\n updateMethods[updateMethod].call(this, payload);\n }\n } catch (e) {\n this[IN_MAIN_PROCESS_KEY] = false;\n throw e;\n }\n } // Follow the rule of action batch\n\n\n if (batched) {\n eventObj = {\n type: actionInfo.event || payloadType,\n escapeConnect: escapeConnect,\n batch: eventObjBatch\n };\n } else {\n eventObj = eventObjBatch[0];\n }\n\n this[IN_MAIN_PROCESS_KEY] = false;\n\n if (!silent) {\n var messageCenter = this._messageCenter;\n messageCenter.trigger(eventObj.type, eventObj); // Extra triggered 'selectchanged' event\n\n if (isSelectChange) {\n var newObj = {\n type: 'selectchanged',\n escapeConnect: escapeConnect,\n selected: getAllSelectedIndices(ecModel),\n isFromClick: payload.isFromClick || false,\n fromAction: payload.type,\n fromActionPayload: payload\n };\n messageCenter.trigger(newObj.type, newObj);\n }\n }\n };\n\n flushPendingActions = function (silent) {\n var pendingActions = this._pendingActions;\n\n while (pendingActions.length) {\n var payload = pendingActions.shift();\n doDispatchAction.call(this, payload, silent);\n }\n };\n\n triggerUpdatedEvent = function (silent) {\n !silent && this.trigger('updated');\n };\n /**\n * Event `rendered` is triggered when zr\n * rendered. It is useful for realtime\n * snapshot (reflect animation).\n *\n * Event `finished` is triggered when:\n * (1) zrender rendering finished.\n * (2) initial animation finished.\n * (3) progressive rendering finished.\n * (4) no pending action.\n * (5) no delayed setOption needs to be processed.\n */\n\n\n bindRenderedEvent = function (zr, ecIns) {\n zr.on('rendered', function (params) {\n ecIns.trigger('rendered', params); // The `finished` event should not be triggered repeatedly,\n // so it should only be triggered when rendering indeed happens\n // in zrender. (Consider the case that dipatchAction is keep\n // triggering when mouse move).\n\n if ( // Although zr is dirty if initial animation is not finished\n // and this checking is called on frame, we also check\n // animation finished for robustness.\n zr.animation.isFinished() && !ecIns[PENDING_UPDATE] && !ecIns._scheduler.unfinished && !ecIns._pendingActions.length) {\n ecIns.trigger('finished');\n }\n });\n };\n\n bindMouseEvent = function (zr, ecIns) {\n zr.on('mouseover', function (e) {\n var el = e.target;\n var dispatcher = findEventDispatcher(el, isHighDownDispatcher);\n\n if (dispatcher) {\n handleGlobalMouseOverForHighDown(dispatcher, e, ecIns._api);\n markStatusToUpdate(ecIns);\n }\n }).on('mouseout', function (e) {\n var el = e.target;\n var dispatcher = findEventDispatcher(el, isHighDownDispatcher);\n\n if (dispatcher) {\n handleGlobalMouseOutForHighDown(dispatcher, e, ecIns._api);\n markStatusToUpdate(ecIns);\n }\n }).on('click', function (e) {\n var el = e.target;\n var dispatcher = findEventDispatcher(el, function (target) {\n return getECData(target).dataIndex != null;\n }, true);\n\n if (dispatcher) {\n var actionType = dispatcher.selected ? 'unselect' : 'select';\n var ecData = getECData(dispatcher);\n\n ecIns._api.dispatchAction({\n type: actionType,\n dataType: ecData.dataType,\n dataIndexInside: ecData.dataIndex,\n seriesIndex: ecData.seriesIndex,\n isFromClick: true\n });\n }\n });\n };\n\n function clearColorPalette(ecModel) {\n ecModel.clearColorPalette();\n ecModel.eachSeries(function (seriesModel) {\n seriesModel.clearColorPalette();\n });\n }\n\n ; // Allocate zlevels for series and components\n\n function allocateZlevels(ecModel) {\n ;\n var componentZLevels = [];\n var seriesZLevels = [];\n var hasSeperateZLevel = false;\n ecModel.eachComponent(function (componentType, componentModel) {\n var zlevel = componentModel.get('zlevel') || 0;\n var z = componentModel.get('z') || 0;\n var zlevelKey = componentModel.getZLevelKey();\n hasSeperateZLevel = hasSeperateZLevel || !!zlevelKey;\n (componentType === 'series' ? seriesZLevels : componentZLevels).push({\n zlevel: zlevel,\n z: z,\n idx: componentModel.componentIndex,\n type: componentType,\n key: zlevelKey\n });\n });\n\n if (hasSeperateZLevel) {\n // Series after component\n var zLevels = componentZLevels.concat(seriesZLevels);\n var lastSeriesZLevel_1;\n var lastSeriesKey_1;\n timsort(zLevels, function (a, b) {\n if (a.zlevel === b.zlevel) {\n return a.z - b.z;\n }\n\n return a.zlevel - b.zlevel;\n });\n each(zLevels, function (item) {\n var componentModel = ecModel.getComponent(item.type, item.idx);\n var zlevel = item.zlevel;\n var key = item.key;\n\n if (lastSeriesZLevel_1 != null) {\n zlevel = Math.max(lastSeriesZLevel_1, zlevel);\n }\n\n if (key) {\n if (zlevel === lastSeriesZLevel_1 && key !== lastSeriesKey_1) {\n zlevel++;\n }\n\n lastSeriesKey_1 = key;\n } else if (lastSeriesKey_1) {\n if (zlevel === lastSeriesZLevel_1) {\n zlevel++;\n }\n\n lastSeriesKey_1 = '';\n }\n\n lastSeriesZLevel_1 = zlevel;\n componentModel.setZLevel(zlevel);\n });\n }\n }\n\n render = function (ecIns, ecModel, api, payload, updateParams) {\n allocateZlevels(ecModel);\n renderComponents(ecIns, ecModel, api, payload, updateParams);\n each(ecIns._chartsViews, function (chart) {\n chart.__alive = false;\n });\n renderSeries(ecIns, ecModel, api, payload, updateParams); // Remove groups of unrendered charts\n\n each(ecIns._chartsViews, function (chart) {\n if (!chart.__alive) {\n chart.remove(ecModel, api);\n }\n });\n };\n\n renderComponents = function (ecIns, ecModel, api, payload, updateParams, dirtyList) {\n each(dirtyList || ecIns._componentsViews, function (componentView) {\n var componentModel = componentView.__model;\n clearStates(componentModel, componentView);\n componentView.render(componentModel, ecModel, api, payload);\n updateZ(componentModel, componentView);\n updateStates(componentModel, componentView);\n });\n };\n /**\n * Render each chart and component\n */\n\n\n renderSeries = function (ecIns, ecModel, api, payload, updateParams, dirtyMap) {\n // Render all charts\n var scheduler = ecIns._scheduler;\n updateParams = extend(updateParams || {}, {\n updatedSeries: ecModel.getSeries()\n }); // TODO progressive?\n\n lifecycle.trigger('series:beforeupdate', ecModel, api, updateParams);\n var unfinished = false;\n ecModel.eachSeries(function (seriesModel) {\n var chartView = ecIns._chartsMap[seriesModel.__viewId];\n chartView.__alive = true;\n var renderTask = chartView.renderTask;\n scheduler.updatePayload(renderTask, payload); // TODO states on marker.\n\n clearStates(seriesModel, chartView);\n\n if (dirtyMap && dirtyMap.get(seriesModel.uid)) {\n renderTask.dirty();\n }\n\n if (renderTask.perform(scheduler.getPerformArgs(renderTask))) {\n unfinished = true;\n }\n\n chartView.group.silent = !!seriesModel.get('silent'); // Should not call markRedraw on group, because it will disable zrender\n // incremental render (always render from the __startIndex each frame)\n // chartView.group.markRedraw();\n\n updateBlend(seriesModel, chartView);\n updateSeriesElementSelection(seriesModel);\n });\n scheduler.unfinished = unfinished || scheduler.unfinished;\n lifecycle.trigger('series:layoutlabels', ecModel, api, updateParams); // transition after label is layouted.\n\n lifecycle.trigger('series:transition', ecModel, api, updateParams);\n ecModel.eachSeries(function (seriesModel) {\n var chartView = ecIns._chartsMap[seriesModel.__viewId]; // Update Z after labels updated. Before applying states.\n\n updateZ(seriesModel, chartView); // NOTE: Update states after label is updated.\n // label should be in normal status when layouting.\n\n updateStates(seriesModel, chartView);\n }); // If use hover layer\n\n updateHoverLayerStatus(ecIns, ecModel);\n lifecycle.trigger('series:afterupdate', ecModel, api, updateParams);\n };\n\n markStatusToUpdate = function (ecIns) {\n ecIns[STATUS_NEEDS_UPDATE_KEY] = true; // Wake up zrender if it's sleep. Let it update states in the next frame.\n\n ecIns.getZr().wakeUp();\n };\n\n applyChangedStates = function (ecIns) {\n if (!ecIns[STATUS_NEEDS_UPDATE_KEY]) {\n return;\n }\n\n ecIns.getZr().storage.traverse(function (el) {\n // Not applied on removed elements, it may still in fading.\n if (graphic.isElementRemoved(el)) {\n return;\n }\n\n applyElementStates(el);\n });\n ecIns[STATUS_NEEDS_UPDATE_KEY] = false;\n };\n\n function applyElementStates(el) {\n var newStates = [];\n var oldStates = el.currentStates; // Keep other states.\n\n for (var i = 0; i < oldStates.length; i++) {\n var stateName = oldStates[i];\n\n if (!(stateName === 'emphasis' || stateName === 'blur' || stateName === 'select')) {\n newStates.push(stateName);\n }\n } // Only use states when it's exists.\n\n\n if (el.selected && el.states.select) {\n newStates.push('select');\n }\n\n if (el.hoverState === HOVER_STATE_EMPHASIS && el.states.emphasis) {\n newStates.push('emphasis');\n } else if (el.hoverState === HOVER_STATE_BLUR && el.states.blur) {\n newStates.push('blur');\n }\n\n el.useStates(newStates);\n }\n\n function updateHoverLayerStatus(ecIns, ecModel) {\n var zr = ecIns._zr;\n var storage = zr.storage;\n var elCount = 0;\n storage.traverse(function (el) {\n if (!el.isGroup) {\n elCount++;\n }\n });\n\n if (elCount > ecModel.get('hoverLayerThreshold') && !env.node && !env.worker) {\n ecModel.eachSeries(function (seriesModel) {\n if (seriesModel.preventUsingHoverLayer) {\n return;\n }\n\n var chartView = ecIns._chartsMap[seriesModel.__viewId];\n\n if (chartView.__alive) {\n chartView.eachRendered(function (el) {\n if (el.states.emphasis) {\n el.states.emphasis.hoverLayer = true;\n }\n });\n }\n });\n }\n }\n\n ;\n /**\n * Update chart and blend.\n */\n\n function updateBlend(seriesModel, chartView) {\n var blendMode = seriesModel.get('blendMode') || null;\n chartView.eachRendered(function (el) {\n // FIXME marker and other components\n if (!el.isGroup) {\n // DON'T mark the element dirty. In case element is incremental and don't want to rerender.\n el.style.blend = blendMode;\n }\n });\n }\n\n ;\n\n function updateZ(model, view) {\n if (model.preventAutoZ) {\n return;\n }\n\n var z = model.get('z') || 0;\n var zlevel = model.get('zlevel') || 0; // Set z and zlevel\n\n view.eachRendered(function (el) {\n doUpdateZ(el, z, zlevel, -Infinity); // Don't traverse the children because it has been traversed in _updateZ.\n\n return true;\n });\n }\n\n ;\n\n function doUpdateZ(el, z, zlevel, maxZ2) {\n // Group may also have textContent\n var label = el.getTextContent();\n var labelLine = el.getTextGuideLine();\n var isGroup = el.isGroup;\n\n if (isGroup) {\n // set z & zlevel of children elements of Group\n var children = el.childrenRef();\n\n for (var i = 0; i < children.length; i++) {\n maxZ2 = Math.max(doUpdateZ(children[i], z, zlevel, maxZ2), maxZ2);\n }\n } else {\n // not Group\n el.z = z;\n el.zlevel = zlevel;\n maxZ2 = Math.max(el.z2, maxZ2);\n } // always set z and zlevel if label/labelLine exists\n\n\n if (label) {\n label.z = z;\n label.zlevel = zlevel; // lift z2 of text content\n // TODO if el.emphasis.z2 is spcefied, what about textContent.\n\n isFinite(maxZ2) && (label.z2 = maxZ2 + 2);\n }\n\n if (labelLine) {\n var textGuideLineConfig = el.textGuideLineConfig;\n labelLine.z = z;\n labelLine.zlevel = zlevel;\n isFinite(maxZ2) && (labelLine.z2 = maxZ2 + (textGuideLineConfig && textGuideLineConfig.showAbove ? 1 : -1));\n }\n\n return maxZ2;\n } // Clear states without animation.\n // TODO States on component.\n\n\n function clearStates(model, view) {\n view.eachRendered(function (el) {\n // Not applied on removed elements, it may still in fading.\n if (graphic.isElementRemoved(el)) {\n return;\n }\n\n var textContent = el.getTextContent();\n var textGuide = el.getTextGuideLine();\n\n if (el.stateTransition) {\n el.stateTransition = null;\n }\n\n if (textContent && textContent.stateTransition) {\n textContent.stateTransition = null;\n }\n\n if (textGuide && textGuide.stateTransition) {\n textGuide.stateTransition = null;\n } // TODO If el is incremental.\n\n\n if (el.hasState()) {\n el.prevStates = el.currentStates;\n el.clearStates();\n } else if (el.prevStates) {\n el.prevStates = null;\n }\n });\n }\n\n function updateStates(model, view) {\n var stateAnimationModel = model.getModel('stateAnimation');\n var enableAnimation = model.isAnimationEnabled();\n var duration = stateAnimationModel.get('duration');\n var stateTransition = duration > 0 ? {\n duration: duration,\n delay: stateAnimationModel.get('delay'),\n easing: stateAnimationModel.get('easing') // additive: stateAnimationModel.get('additive')\n\n } : null;\n view.eachRendered(function (el) {\n if (el.states && el.states.emphasis) {\n // Not applied on removed elements, it may still in fading.\n if (graphic.isElementRemoved(el)) {\n return;\n }\n\n if (el instanceof graphic.Path) {\n savePathStates(el);\n } // Only updated on changed element. In case element is incremental and don't want to rerender.\n // TODO, a more proper way?\n\n\n if (el.__dirty) {\n var prevStates = el.prevStates; // Restore states without animation\n\n if (prevStates) {\n el.useStates(prevStates);\n }\n } // Update state transition and enable animation again.\n\n\n if (enableAnimation) {\n el.stateTransition = stateTransition;\n var textContent = el.getTextContent();\n var textGuide = el.getTextGuideLine(); // TODO Is it necessary to animate label?\n\n if (textContent) {\n textContent.stateTransition = stateTransition;\n }\n\n if (textGuide) {\n textGuide.stateTransition = stateTransition;\n }\n } // Use highlighted and selected flag to toggle states.\n\n\n if (el.__dirty) {\n applyElementStates(el);\n }\n }\n });\n }\n\n ;\n\n createExtensionAPI = function (ecIns) {\n return new (\n /** @class */\n function (_super) {\n __extends(class_1, _super);\n\n function class_1() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n class_1.prototype.getCoordinateSystems = function () {\n return ecIns._coordSysMgr.getCoordinateSystems();\n };\n\n class_1.prototype.getComponentByElement = function (el) {\n while (el) {\n var modelInfo = el.__ecComponentInfo;\n\n if (modelInfo != null) {\n return ecIns._model.getComponent(modelInfo.mainType, modelInfo.index);\n }\n\n el = el.parent;\n }\n };\n\n class_1.prototype.enterEmphasis = function (el, highlightDigit) {\n enterEmphasis(el, highlightDigit);\n markStatusToUpdate(ecIns);\n };\n\n class_1.prototype.leaveEmphasis = function (el, highlightDigit) {\n leaveEmphasis(el, highlightDigit);\n markStatusToUpdate(ecIns);\n };\n\n class_1.prototype.enterBlur = function (el) {\n enterBlur(el);\n markStatusToUpdate(ecIns);\n };\n\n class_1.prototype.leaveBlur = function (el) {\n leaveBlur(el);\n markStatusToUpdate(ecIns);\n };\n\n class_1.prototype.enterSelect = function (el) {\n enterSelect(el);\n markStatusToUpdate(ecIns);\n };\n\n class_1.prototype.leaveSelect = function (el) {\n leaveSelect(el);\n markStatusToUpdate(ecIns);\n };\n\n class_1.prototype.getModel = function () {\n return ecIns.getModel();\n };\n\n class_1.prototype.getViewOfComponentModel = function (componentModel) {\n return ecIns.getViewOfComponentModel(componentModel);\n };\n\n class_1.prototype.getViewOfSeriesModel = function (seriesModel) {\n return ecIns.getViewOfSeriesModel(seriesModel);\n };\n\n return class_1;\n }(ExtensionAPI))(ecIns);\n };\n\n enableConnect = function (chart) {\n function updateConnectedChartsStatus(charts, status) {\n for (var i = 0; i < charts.length; i++) {\n var otherChart = charts[i];\n otherChart[CONNECT_STATUS_KEY] = status;\n }\n }\n\n each(eventActionMap, function (actionType, eventType) {\n chart._messageCenter.on(eventType, function (event) {\n if (connectedGroups[chart.group] && chart[CONNECT_STATUS_KEY] !== CONNECT_STATUS_PENDING) {\n if (event && event.escapeConnect) {\n return;\n }\n\n var action_1 = chart.makeActionFromEvent(event);\n var otherCharts_1 = [];\n each(instances, function (otherChart) {\n if (otherChart !== chart && otherChart.group === chart.group) {\n otherCharts_1.push(otherChart);\n }\n });\n updateConnectedChartsStatus(otherCharts_1, CONNECT_STATUS_PENDING);\n each(otherCharts_1, function (otherChart) {\n if (otherChart[CONNECT_STATUS_KEY] !== CONNECT_STATUS_UPDATING) {\n otherChart.dispatchAction(action_1);\n }\n });\n updateConnectedChartsStatus(otherCharts_1, CONNECT_STATUS_UPDATED);\n }\n });\n });\n };\n }();\n\n return ECharts;\n}(Eventful);\n\nvar echartsProto = ECharts.prototype;\nechartsProto.on = createRegisterEventWithLowercaseECharts('on');\nechartsProto.off = createRegisterEventWithLowercaseECharts('off');\n/**\n * @deprecated\n */\n// @ts-ignore\n\nechartsProto.one = function (eventName, cb, ctx) {\n var self = this;\n deprecateLog('ECharts#one is deprecated.');\n\n function wrapped() {\n var args2 = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args2[_i] = arguments[_i];\n }\n\n cb && cb.apply && cb.apply(this, args2); // @ts-ignore\n\n self.off(eventName, wrapped);\n }\n\n ; // @ts-ignore\n\n this.on.call(this, eventName, wrapped, ctx);\n};\n\nvar MOUSE_EVENT_NAMES = ['click', 'dblclick', 'mouseover', 'mouseout', 'mousemove', 'mousedown', 'mouseup', 'globalout', 'contextmenu'];\n\nfunction disposedWarning(id) {\n if (process.env.NODE_ENV !== 'production') {\n warn('Instance ' + id + ' has been disposed');\n }\n}\n\nvar actions = {};\n/**\n * Map eventType to actionType\n */\n\nvar eventActionMap = {};\nvar dataProcessorFuncs = [];\nvar optionPreprocessorFuncs = [];\nvar visualFuncs = [];\nvar themeStorage = {};\nvar loadingEffects = {};\nvar instances = {};\nvar connectedGroups = {};\nvar idBase = +new Date() - 0;\nvar groupIdBase = +new Date() - 0;\nvar DOM_ATTRIBUTE_KEY = '_echarts_instance_';\n/**\n * @param opts.devicePixelRatio Use window.devicePixelRatio by default\n * @param opts.renderer Can choose 'canvas' or 'svg' to render the chart.\n * @param opts.width Use clientWidth of the input `dom` by default.\n * Can be 'auto' (the same as null/undefined)\n * @param opts.height Use clientHeight of the input `dom` by default.\n * Can be 'auto' (the same as null/undefined)\n * @param opts.locale Specify the locale.\n * @param opts.useDirtyRect Enable dirty rectangle rendering or not.\n */\n\nexport function init(dom, theme, opts) {\n var isClient = !(opts && opts.ssr);\n\n if (isClient) {\n if (process.env.NODE_ENV !== 'production') {\n if (!dom) {\n throw new Error('Initialize failed: invalid dom.');\n }\n }\n\n var existInstance = getInstanceByDom(dom);\n\n if (existInstance) {\n if (process.env.NODE_ENV !== 'production') {\n warn('There is a chart instance already initialized on the dom.');\n }\n\n return existInstance;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (isDom(dom) && dom.nodeName.toUpperCase() !== 'CANVAS' && (!dom.clientWidth && (!opts || opts.width == null) || !dom.clientHeight && (!opts || opts.height == null))) {\n warn('Can\\'t get DOM width or height. Please check ' + 'dom.clientWidth and dom.clientHeight. They should not be 0.' + 'For example, you may need to call this in the callback ' + 'of window.onload.');\n }\n }\n }\n\n var chart = new ECharts(dom, theme, opts);\n chart.id = 'ec_' + idBase++;\n instances[chart.id] = chart;\n isClient && modelUtil.setAttribute(dom, DOM_ATTRIBUTE_KEY, chart.id);\n enableConnect(chart);\n lifecycle.trigger('afterinit', chart);\n return chart;\n}\n/**\n * @usage\n * (A)\n * ```js\n * let chart1 = echarts.init(dom1);\n * let chart2 = echarts.init(dom2);\n * chart1.group = 'xxx';\n * chart2.group = 'xxx';\n * echarts.connect('xxx');\n * ```\n * (B)\n * ```js\n * let chart1 = echarts.init(dom1);\n * let chart2 = echarts.init(dom2);\n * echarts.connect('xxx', [chart1, chart2]);\n * ```\n */\n\nexport function connect(groupId) {\n // Is array of charts\n if (isArray(groupId)) {\n var charts = groupId;\n groupId = null; // If any chart has group\n\n each(charts, function (chart) {\n if (chart.group != null) {\n groupId = chart.group;\n }\n });\n groupId = groupId || 'g_' + groupIdBase++;\n each(charts, function (chart) {\n chart.group = groupId;\n });\n }\n\n connectedGroups[groupId] = true;\n return groupId;\n}\n/**\n * @deprecated\n */\n\nexport function disConnect(groupId) {\n connectedGroups[groupId] = false;\n}\n/**\n * Alias and backward compatibility\n */\n\nexport var disconnect = disConnect;\n/**\n * Dispose a chart instance\n */\n\nexport function dispose(chart) {\n if (isString(chart)) {\n chart = instances[chart];\n } else if (!(chart instanceof ECharts)) {\n // Try to treat as dom\n chart = getInstanceByDom(chart);\n }\n\n if (chart instanceof ECharts && !chart.isDisposed()) {\n chart.dispose();\n }\n}\nexport function getInstanceByDom(dom) {\n return instances[modelUtil.getAttribute(dom, DOM_ATTRIBUTE_KEY)];\n}\nexport function getInstanceById(key) {\n return instances[key];\n}\n/**\n * Register theme\n */\n\nexport function registerTheme(name, theme) {\n themeStorage[name] = theme;\n}\n/**\n * Register option preprocessor\n */\n\nexport function registerPreprocessor(preprocessorFunc) {\n if (indexOf(optionPreprocessorFuncs, preprocessorFunc) < 0) {\n optionPreprocessorFuncs.push(preprocessorFunc);\n }\n}\nexport function registerProcessor(priority, processor) {\n normalizeRegister(dataProcessorFuncs, priority, processor, PRIORITY_PROCESSOR_DEFAULT);\n}\n/**\n * Register postIniter\n * @param {Function} postInitFunc\n */\n\nexport function registerPostInit(postInitFunc) {\n registerUpdateLifecycle('afterinit', postInitFunc);\n}\n/**\n * Register postUpdater\n * @param {Function} postUpdateFunc\n */\n\nexport function registerPostUpdate(postUpdateFunc) {\n registerUpdateLifecycle('afterupdate', postUpdateFunc);\n}\nexport function registerUpdateLifecycle(name, cb) {\n lifecycle.on(name, cb);\n}\nexport function registerAction(actionInfo, eventName, action) {\n if (isFunction(eventName)) {\n action = eventName;\n eventName = '';\n }\n\n var actionType = isObject(actionInfo) ? actionInfo.type : [actionInfo, actionInfo = {\n event: eventName\n }][0]; // Event name is all lowercase\n\n actionInfo.event = (actionInfo.event || actionType).toLowerCase();\n eventName = actionInfo.event;\n\n if (eventActionMap[eventName]) {\n // Already registered.\n return;\n } // Validate action type and event name.\n\n\n assert(ACTION_REG.test(actionType) && ACTION_REG.test(eventName));\n\n if (!actions[actionType]) {\n actions[actionType] = {\n action: action,\n actionInfo: actionInfo\n };\n }\n\n eventActionMap[eventName] = actionType;\n}\nexport function registerCoordinateSystem(type, coordSysCreator) {\n CoordinateSystemManager.register(type, coordSysCreator);\n}\n/**\n * Get dimensions of specified coordinate system.\n * @param {string} type\n * @return {Array.}\n */\n\nexport function getCoordinateSystemDimensions(type) {\n var coordSysCreator = CoordinateSystemManager.get(type);\n\n if (coordSysCreator) {\n return coordSysCreator.getDimensionsInfo ? coordSysCreator.getDimensionsInfo() : coordSysCreator.dimensions.slice();\n }\n}\nexport { registerLocale } from './locale.js';\n\nfunction registerLayout(priority, layoutTask) {\n normalizeRegister(visualFuncs, priority, layoutTask, PRIORITY_VISUAL_LAYOUT, 'layout');\n}\n\nfunction registerVisual(priority, visualTask) {\n normalizeRegister(visualFuncs, priority, visualTask, PRIORITY_VISUAL_CHART, 'visual');\n}\n\nexport { registerLayout, registerVisual };\nvar registeredTasks = [];\n\nfunction normalizeRegister(targetList, priority, fn, defaultPriority, visualType) {\n if (isFunction(priority) || isObject(priority)) {\n fn = priority;\n priority = defaultPriority;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (isNaN(priority) || priority == null) {\n throw new Error('Illegal priority');\n } // Check duplicate\n\n\n each(targetList, function (wrap) {\n assert(wrap.__raw !== fn);\n });\n } // Already registered\n\n\n if (indexOf(registeredTasks, fn) >= 0) {\n return;\n }\n\n registeredTasks.push(fn);\n var stageHandler = Scheduler.wrapStageHandler(fn, visualType);\n stageHandler.__prio = priority;\n stageHandler.__raw = fn;\n targetList.push(stageHandler);\n}\n\nexport function registerLoading(name, loadingFx) {\n loadingEffects[name] = loadingFx;\n}\n/**\n * ZRender need a canvas context to do measureText.\n * But in node environment canvas may be created by node-canvas.\n * So we need to specify how to create a canvas instead of using document.createElement('canvas')\n *\n *\n * @deprecated use setPlatformAPI({ createCanvas }) instead.\n *\n * @example\n * let Canvas = require('canvas');\n * let echarts = require('echarts');\n * echarts.setCanvasCreator(function () {\n * // Small size is enough.\n * return new Canvas(32, 32);\n * });\n */\n\nexport function setCanvasCreator(creator) {\n if (process.env.NODE_ENV !== 'production') {\n deprecateLog('setCanvasCreator is deprecated. Use setPlatformAPI({ createCanvas }) instead.');\n }\n\n setPlatformAPI({\n createCanvas: creator\n });\n}\n/**\n * The parameters and usage: see `geoSourceManager.registerMap`.\n * Compatible with previous `echarts.registerMap`.\n */\n\nexport function registerMap(mapName, geoJson, specialAreas) {\n var registerMap = getImpl('registerMap');\n registerMap && registerMap(mapName, geoJson, specialAreas);\n}\nexport function getMap(mapName) {\n var getMap = getImpl('getMap');\n return getMap && getMap(mapName);\n}\nexport var registerTransform = registerExternalTransform;\n/**\n * Globa dispatchAction to a specified chart instance.\n */\n// export function dispatchAction(payload: { chartId: string } & Payload, opt?: Parameters[1]) {\n// if (!payload || !payload.chartId) {\n// // Must have chartId to find chart\n// return;\n// }\n// const chart = instances[payload.chartId];\n// if (chart) {\n// chart.dispatchAction(payload, opt);\n// }\n// }\n// Builtin global visual\n\nregisterVisual(PRIORITY_VISUAL_GLOBAL, seriesStyleTask);\nregisterVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataStyleTask);\nregisterVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataColorPaletteTask);\nregisterVisual(PRIORITY_VISUAL_GLOBAL, seriesSymbolTask);\nregisterVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataSymbolTask);\nregisterVisual(PRIORITY_VISUAL_DECAL, decal);\nregisterPreprocessor(backwardCompat);\nregisterProcessor(PRIORITY_PROCESSOR_DATASTACK, dataStack);\nregisterLoading('default', loadingDefault); // Default actions\n\nregisterAction({\n type: HIGHLIGHT_ACTION_TYPE,\n event: HIGHLIGHT_ACTION_TYPE,\n update: HIGHLIGHT_ACTION_TYPE\n}, noop);\nregisterAction({\n type: DOWNPLAY_ACTION_TYPE,\n event: DOWNPLAY_ACTION_TYPE,\n update: DOWNPLAY_ACTION_TYPE\n}, noop);\nregisterAction({\n type: SELECT_ACTION_TYPE,\n event: SELECT_ACTION_TYPE,\n update: SELECT_ACTION_TYPE\n}, noop);\nregisterAction({\n type: UNSELECT_ACTION_TYPE,\n event: UNSELECT_ACTION_TYPE,\n update: UNSELECT_ACTION_TYPE\n}, noop);\nregisterAction({\n type: TOGGLE_SELECT_ACTION_TYPE,\n event: TOGGLE_SELECT_ACTION_TYPE,\n update: TOGGLE_SELECT_ACTION_TYPE\n}, noop); // Default theme\n\nregisterTheme('light', lightTheme);\nregisterTheme('dark', darkTheme); // For backward compatibility, where the namespace `dataTool` will\n// be mounted on `echarts` is the extension `dataTool` is imported.\n\nexport var dataTool = {};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { error } from '../util/log.js'; // Implementation of exported APIs. For example registerMap, getMap.\n// The implementations will be registered when installing the component.\n// Avoid these code being bundled to the core module.\n\nvar implsStore = {}; // TODO Type\n\nexport function registerImpl(name, impl) {\n if (process.env.NODE_ENV !== 'production') {\n if (implsStore[name]) {\n error(\"Already has an implementation of \" + name + \".\");\n }\n }\n\n implsStore[name] = impl;\n}\nexport function getImpl(name) {\n if (process.env.NODE_ENV !== 'production') {\n if (!implsStore[name]) {\n error(\"Implementation of \" + name + \" doesn't exists.\");\n }\n }\n\n return implsStore[name];\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport Eventful from 'zrender/lib/core/Eventful.js';\n;\nvar lifecycle = new Eventful();\nexport default lifecycle;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport Model from '../model/Model.js';\nimport env from 'zrender/lib/core/env.js'; // default import ZH and EN lang\n\nimport langEN from '../i18n/langEN.js';\nimport langZH from '../i18n/langZH.js';\nimport { isString, clone, merge } from 'zrender/lib/core/util.js';\nvar LOCALE_ZH = 'ZH';\nvar LOCALE_EN = 'EN';\nvar DEFAULT_LOCALE = LOCALE_EN;\nvar localeStorage = {};\nvar localeModels = {};\nexport var SYSTEM_LANG = !env.domSupported ? DEFAULT_LOCALE : function () {\n var langStr = (\n /* eslint-disable-next-line */\n document.documentElement.lang || navigator.language || navigator.browserLanguage).toUpperCase();\n return langStr.indexOf(LOCALE_ZH) > -1 ? LOCALE_ZH : DEFAULT_LOCALE;\n}();\nexport function registerLocale(locale, localeObj) {\n locale = locale.toUpperCase();\n localeModels[locale] = new Model(localeObj);\n localeStorage[locale] = localeObj;\n} // export function getLocale(locale: string) {\n// return localeStorage[locale];\n// }\n\nexport function createLocaleObject(locale) {\n if (isString(locale)) {\n var localeObj = localeStorage[locale.toUpperCase()] || {};\n\n if (locale === LOCALE_ZH || locale === LOCALE_EN) {\n return clone(localeObj);\n } else {\n return merge(clone(localeObj), clone(localeStorage[DEFAULT_LOCALE]), false);\n }\n } else {\n return merge(clone(locale), clone(localeStorage[DEFAULT_LOCALE]), false);\n }\n}\nexport function getLocaleModel(lang) {\n return localeModels[lang];\n}\nexport function getDefaultLocaleModel() {\n return localeModels[DEFAULT_LOCALE];\n} // Default locale\n\nregisterLocale(LOCALE_EN, langEN);\nregisterLocale(LOCALE_ZH, langZH);","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { assert, isArray } from 'zrender/lib/core/util.js';\n;\n/**\n * @param {Object} define\n * @return See the return of `createTask`.\n */\n\nexport function createTask(define) {\n return new Task(define);\n}\n\nvar Task =\n/** @class */\nfunction () {\n function Task(define) {\n define = define || {};\n this._reset = define.reset;\n this._plan = define.plan;\n this._count = define.count;\n this._onDirty = define.onDirty;\n this._dirty = true;\n }\n /**\n * @param step Specified step.\n * @param skip Skip customer perform call.\n * @param modBy Sampling window size.\n * @param modDataCount Sampling count.\n * @return whether unfinished.\n */\n\n\n Task.prototype.perform = function (performArgs) {\n var upTask = this._upstream;\n var skip = performArgs && performArgs.skip; // TODO some refactor.\n // Pull data. Must pull data each time, because context.data\n // may be updated by Series.setData.\n\n if (this._dirty && upTask) {\n var context = this.context;\n context.data = context.outputData = upTask.context.outputData;\n }\n\n if (this.__pipeline) {\n this.__pipeline.currentTask = this;\n }\n\n var planResult;\n\n if (this._plan && !skip) {\n planResult = this._plan(this.context);\n } // Support sharding by mod, which changes the render sequence and makes the rendered graphic\n // elements uniformed distributed when progress, especially when moving or zooming.\n\n\n var lastModBy = normalizeModBy(this._modBy);\n var lastModDataCount = this._modDataCount || 0;\n var modBy = normalizeModBy(performArgs && performArgs.modBy);\n var modDataCount = performArgs && performArgs.modDataCount || 0;\n\n if (lastModBy !== modBy || lastModDataCount !== modDataCount) {\n planResult = 'reset';\n }\n\n function normalizeModBy(val) {\n !(val >= 1) && (val = 1); // jshint ignore:line\n\n return val;\n }\n\n var forceFirstProgress;\n\n if (this._dirty || planResult === 'reset') {\n this._dirty = false;\n forceFirstProgress = this._doReset(skip);\n }\n\n this._modBy = modBy;\n this._modDataCount = modDataCount;\n var step = performArgs && performArgs.step;\n\n if (upTask) {\n if (process.env.NODE_ENV !== 'production') {\n assert(upTask._outputDueEnd != null);\n }\n\n this._dueEnd = upTask._outputDueEnd;\n } // DataTask or overallTask\n else {\n if (process.env.NODE_ENV !== 'production') {\n assert(!this._progress || this._count);\n }\n\n this._dueEnd = this._count ? this._count(this.context) : Infinity;\n } // Note: Stubs, that its host overall task let it has progress, has progress.\n // If no progress, pass index from upstream to downstream each time plan called.\n\n\n if (this._progress) {\n var start = this._dueIndex;\n var end = Math.min(step != null ? this._dueIndex + step : Infinity, this._dueEnd);\n\n if (!skip && (forceFirstProgress || start < end)) {\n var progress = this._progress;\n\n if (isArray(progress)) {\n for (var i = 0; i < progress.length; i++) {\n this._doProgress(progress[i], start, end, modBy, modDataCount);\n }\n } else {\n this._doProgress(progress, start, end, modBy, modDataCount);\n }\n }\n\n this._dueIndex = end; // If no `outputDueEnd`, assume that output data and\n // input data is the same, so use `dueIndex` as `outputDueEnd`.\n\n var outputDueEnd = this._settedOutputEnd != null ? this._settedOutputEnd : end;\n\n if (process.env.NODE_ENV !== 'production') {\n // ??? Can not rollback.\n assert(outputDueEnd >= this._outputDueEnd);\n }\n\n this._outputDueEnd = outputDueEnd;\n } else {\n // (1) Some overall task has no progress.\n // (2) Stubs, that its host overall task do not let it has progress, has no progress.\n // This should always be performed so it can be passed to downstream.\n this._dueIndex = this._outputDueEnd = this._settedOutputEnd != null ? this._settedOutputEnd : this._dueEnd;\n }\n\n return this.unfinished();\n };\n\n Task.prototype.dirty = function () {\n this._dirty = true;\n this._onDirty && this._onDirty(this.context);\n };\n\n Task.prototype._doProgress = function (progress, start, end, modBy, modDataCount) {\n iterator.reset(start, end, modBy, modDataCount);\n this._callingProgress = progress;\n\n this._callingProgress({\n start: start,\n end: end,\n count: end - start,\n next: iterator.next\n }, this.context);\n };\n\n Task.prototype._doReset = function (skip) {\n this._dueIndex = this._outputDueEnd = this._dueEnd = 0;\n this._settedOutputEnd = null;\n var progress;\n var forceFirstProgress;\n\n if (!skip && this._reset) {\n progress = this._reset(this.context);\n\n if (progress && progress.progress) {\n forceFirstProgress = progress.forceFirstProgress;\n progress = progress.progress;\n } // To simplify no progress checking, array must has item.\n\n\n if (isArray(progress) && !progress.length) {\n progress = null;\n }\n }\n\n this._progress = progress;\n this._modBy = this._modDataCount = null;\n var downstream = this._downstream;\n downstream && downstream.dirty();\n return forceFirstProgress;\n };\n\n Task.prototype.unfinished = function () {\n return this._progress && this._dueIndex < this._dueEnd;\n };\n /**\n * @param downTask The downstream task.\n * @return The downstream task.\n */\n\n\n Task.prototype.pipe = function (downTask) {\n if (process.env.NODE_ENV !== 'production') {\n assert(downTask && !downTask._disposed && downTask !== this);\n } // If already downstream, do not dirty downTask.\n\n\n if (this._downstream !== downTask || this._dirty) {\n this._downstream = downTask;\n downTask._upstream = this;\n downTask.dirty();\n }\n };\n\n Task.prototype.dispose = function () {\n if (this._disposed) {\n return;\n }\n\n this._upstream && (this._upstream._downstream = null);\n this._downstream && (this._downstream._upstream = null);\n this._dirty = false;\n this._disposed = true;\n };\n\n Task.prototype.getUpstream = function () {\n return this._upstream;\n };\n\n Task.prototype.getDownstream = function () {\n return this._downstream;\n };\n\n Task.prototype.setOutputEnd = function (end) {\n // This only happens in dataTask, dataZoom, map, currently.\n // where dataZoom do not set end each time, but only set\n // when reset. So we should record the set end, in case\n // that the stub of dataZoom perform again and earse the\n // set end by upstream.\n this._outputDueEnd = this._settedOutputEnd = end;\n };\n\n return Task;\n}();\n\nexport { Task };\n\nvar iterator = function () {\n var end;\n var current;\n var modBy;\n var modDataCount;\n var winCount;\n var it = {\n reset: function (s, e, sStep, sCount) {\n current = s;\n end = e;\n modBy = sStep;\n modDataCount = sCount;\n winCount = Math.ceil(modDataCount / modBy);\n it.next = modBy > 1 && modDataCount > 0 ? modNext : sequentialNext;\n }\n };\n return it;\n\n function sequentialNext() {\n return current < end ? current++ : null;\n }\n\n function modNext() {\n var dataIndex = current % winCount * modBy + Math.ceil(current / winCount);\n var result = current >= end ? null : dataIndex < modDataCount ? dataIndex // If modDataCount is smaller than data.count() (consider `appendData` case),\n // Use normal linear rendering mode.\n : current;\n current++;\n return result;\n }\n}(); // -----------------------------------------------------------------------------\n// For stream debug (Should be commented out after used!)\n// @usage: printTask(this, 'begin');\n// @usage: printTask(this, null, {someExtraProp});\n// @usage: Use `__idxInPipeline` as conditional breakpiont.\n//\n// window.printTask = function (task: any, prefix: string, extra: { [key: string]: unknown }): void {\n// window.ecTaskUID == null && (window.ecTaskUID = 0);\n// task.uidDebug == null && (task.uidDebug = `task_${window.ecTaskUID++}`);\n// task.agent && task.agent.uidDebug == null && (task.agent.uidDebug = `task_${window.ecTaskUID++}`);\n// let props = [];\n// if (task.__pipeline) {\n// let val = `${task.__idxInPipeline}/${task.__pipeline.tail.__idxInPipeline} ${task.agent ? '(stub)' : ''}`;\n// props.push({text: '__idxInPipeline/total', value: val});\n// } else {\n// let stubCount = 0;\n// task.agentStubMap.each(() => stubCount++);\n// props.push({text: 'idx', value: `overall (stubs: ${stubCount})`});\n// }\n// props.push({text: 'uid', value: task.uidDebug});\n// if (task.__pipeline) {\n// props.push({text: 'pipelineId', value: task.__pipeline.id});\n// task.agent && props.push(\n// {text: 'stubFor', value: task.agent.uidDebug}\n// );\n// }\n// props.push(\n// {text: 'dirty', value: task._dirty},\n// {text: 'dueIndex', value: task._dueIndex},\n// {text: 'dueEnd', value: task._dueEnd},\n// {text: 'outputDueEnd', value: task._outputDueEnd}\n// );\n// if (extra) {\n// Object.keys(extra).forEach(key => {\n// props.push({text: key, value: extra[key]});\n// });\n// }\n// let args = ['color: blue'];\n// let msg = `%c[${prefix || 'T'}] %c` + props.map(item => (\n// args.push('color: green', 'color: red'),\n// `${item.text}: %c${item.value}`\n// )).join('%c, ');\n// console.log.apply(console, [msg].concat(args));\n// // console.log(this);\n// };\n// window.printPipeline = function (task: any, prefix: string) {\n// const pipeline = task.__pipeline;\n// let currTask = pipeline.head;\n// while (currTask) {\n// window.printTask(currTask, prefix);\n// currTask = currTask._downstream;\n// }\n// };\n// window.showChain = function (chainHeadTask) {\n// var chain = [];\n// var task = chainHeadTask;\n// while (task) {\n// chain.push({\n// task: task,\n// up: task._upstream,\n// down: task._downstream,\n// idxInPipeline: task.__idxInPipeline\n// });\n// task = task._downstream;\n// }\n// return chain;\n// };\n// window.findTaskInChain = function (task, chainHeadTask) {\n// let chain = window.showChain(chainHeadTask);\n// let result = [];\n// for (let i = 0; i < chain.length; i++) {\n// let chainItem = chain[i];\n// if (chainItem.task === task) {\n// result.push(i);\n// }\n// }\n// return result;\n// };\n// window.printChainAEachInChainB = function (chainHeadTaskA, chainHeadTaskB) {\n// let chainA = window.showChain(chainHeadTaskA);\n// for (let i = 0; i < chainA.length; i++) {\n// console.log('chainAIdx:', i, 'inChainB:', window.findTaskInChain(chainA[i].task, chainHeadTaskB));\n// }\n// };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction dataIndexMapValueLength(valNumOrArrLengthMoreThan2) {\n return valNumOrArrLengthMoreThan2 == null ? 0 : valNumOrArrLengthMoreThan2.length || 1;\n}\n\nfunction defaultKeyGetter(item) {\n return item;\n}\n\nvar DataDiffer =\n/** @class */\nfunction () {\n /**\n * @param context Can be visited by this.context in callback.\n */\n function DataDiffer(oldArr, newArr, oldKeyGetter, newKeyGetter, context, // By default: 'oneToOne'.\n diffMode) {\n this._old = oldArr;\n this._new = newArr;\n this._oldKeyGetter = oldKeyGetter || defaultKeyGetter;\n this._newKeyGetter = newKeyGetter || defaultKeyGetter; // Visible in callback via `this.context`;\n\n this.context = context;\n this._diffModeMultiple = diffMode === 'multiple';\n }\n /**\n * Callback function when add a data\n */\n\n\n DataDiffer.prototype.add = function (func) {\n this._add = func;\n return this;\n };\n /**\n * Callback function when update a data\n */\n\n\n DataDiffer.prototype.update = function (func) {\n this._update = func;\n return this;\n };\n /**\n * Callback function when update a data and only work in `cbMode: 'byKey'`.\n */\n\n\n DataDiffer.prototype.updateManyToOne = function (func) {\n this._updateManyToOne = func;\n return this;\n };\n /**\n * Callback function when update a data and only work in `cbMode: 'byKey'`.\n */\n\n\n DataDiffer.prototype.updateOneToMany = function (func) {\n this._updateOneToMany = func;\n return this;\n };\n /**\n * Callback function when update a data and only work in `cbMode: 'byKey'`.\n */\n\n\n DataDiffer.prototype.updateManyToMany = function (func) {\n this._updateManyToMany = func;\n return this;\n };\n /**\n * Callback function when remove a data\n */\n\n\n DataDiffer.prototype.remove = function (func) {\n this._remove = func;\n return this;\n };\n\n DataDiffer.prototype.execute = function () {\n this[this._diffModeMultiple ? '_executeMultiple' : '_executeOneToOne']();\n };\n\n DataDiffer.prototype._executeOneToOne = function () {\n var oldArr = this._old;\n var newArr = this._new;\n var newDataIndexMap = {};\n var oldDataKeyArr = new Array(oldArr.length);\n var newDataKeyArr = new Array(newArr.length);\n\n this._initIndexMap(oldArr, null, oldDataKeyArr, '_oldKeyGetter');\n\n this._initIndexMap(newArr, newDataIndexMap, newDataKeyArr, '_newKeyGetter');\n\n for (var i = 0; i < oldArr.length; i++) {\n var oldKey = oldDataKeyArr[i];\n var newIdxMapVal = newDataIndexMap[oldKey];\n var newIdxMapValLen = dataIndexMapValueLength(newIdxMapVal); // idx can never be empty array here. see 'set null' logic below.\n\n if (newIdxMapValLen > 1) {\n // Consider there is duplicate key (for example, use dataItem.name as key).\n // We should make sure every item in newArr and oldArr can be visited.\n var newIdx = newIdxMapVal.shift();\n\n if (newIdxMapVal.length === 1) {\n newDataIndexMap[oldKey] = newIdxMapVal[0];\n }\n\n this._update && this._update(newIdx, i);\n } else if (newIdxMapValLen === 1) {\n newDataIndexMap[oldKey] = null;\n this._update && this._update(newIdxMapVal, i);\n } else {\n this._remove && this._remove(i);\n }\n }\n\n this._performRestAdd(newDataKeyArr, newDataIndexMap);\n };\n /**\n * For example, consider the case:\n * oldData: [o0, o1, o2, o3, o4, o5, o6, o7],\n * newData: [n0, n1, n2, n3, n4, n5, n6, n7, n8],\n * Where:\n * o0, o1, n0 has key 'a' (many to one)\n * o5, n4, n5, n6 has key 'b' (one to many)\n * o2, n1 has key 'c' (one to one)\n * n2, n3 has key 'd' (add)\n * o3, o4 has key 'e' (remove)\n * o6, o7, n7, n8 has key 'f' (many to many, treated as add and remove)\n * Then:\n * (The order of the following directives are not ensured.)\n * this._updateManyToOne(n0, [o0, o1]);\n * this._updateOneToMany([n4, n5, n6], o5);\n * this._update(n1, o2);\n * this._remove(o3);\n * this._remove(o4);\n * this._remove(o6);\n * this._remove(o7);\n * this._add(n2);\n * this._add(n3);\n * this._add(n7);\n * this._add(n8);\n */\n\n\n DataDiffer.prototype._executeMultiple = function () {\n var oldArr = this._old;\n var newArr = this._new;\n var oldDataIndexMap = {};\n var newDataIndexMap = {};\n var oldDataKeyArr = [];\n var newDataKeyArr = [];\n\n this._initIndexMap(oldArr, oldDataIndexMap, oldDataKeyArr, '_oldKeyGetter');\n\n this._initIndexMap(newArr, newDataIndexMap, newDataKeyArr, '_newKeyGetter');\n\n for (var i = 0; i < oldDataKeyArr.length; i++) {\n var oldKey = oldDataKeyArr[i];\n var oldIdxMapVal = oldDataIndexMap[oldKey];\n var newIdxMapVal = newDataIndexMap[oldKey];\n var oldIdxMapValLen = dataIndexMapValueLength(oldIdxMapVal);\n var newIdxMapValLen = dataIndexMapValueLength(newIdxMapVal);\n\n if (oldIdxMapValLen > 1 && newIdxMapValLen === 1) {\n this._updateManyToOne && this._updateManyToOne(newIdxMapVal, oldIdxMapVal);\n newDataIndexMap[oldKey] = null;\n } else if (oldIdxMapValLen === 1 && newIdxMapValLen > 1) {\n this._updateOneToMany && this._updateOneToMany(newIdxMapVal, oldIdxMapVal);\n newDataIndexMap[oldKey] = null;\n } else if (oldIdxMapValLen === 1 && newIdxMapValLen === 1) {\n this._update && this._update(newIdxMapVal, oldIdxMapVal);\n newDataIndexMap[oldKey] = null;\n } else if (oldIdxMapValLen > 1 && newIdxMapValLen > 1) {\n this._updateManyToMany && this._updateManyToMany(newIdxMapVal, oldIdxMapVal);\n newDataIndexMap[oldKey] = null;\n } else if (oldIdxMapValLen > 1) {\n for (var i_1 = 0; i_1 < oldIdxMapValLen; i_1++) {\n this._remove && this._remove(oldIdxMapVal[i_1]);\n }\n } else {\n this._remove && this._remove(oldIdxMapVal);\n }\n }\n\n this._performRestAdd(newDataKeyArr, newDataIndexMap);\n };\n\n DataDiffer.prototype._performRestAdd = function (newDataKeyArr, newDataIndexMap) {\n for (var i = 0; i < newDataKeyArr.length; i++) {\n var newKey = newDataKeyArr[i];\n var newIdxMapVal = newDataIndexMap[newKey];\n var idxMapValLen = dataIndexMapValueLength(newIdxMapVal);\n\n if (idxMapValLen > 1) {\n for (var j = 0; j < idxMapValLen; j++) {\n this._add && this._add(newIdxMapVal[j]);\n }\n } else if (idxMapValLen === 1) {\n this._add && this._add(newIdxMapVal);\n } // Support both `newDataKeyArr` are duplication removed or not removed.\n\n\n newDataIndexMap[newKey] = null;\n }\n };\n\n DataDiffer.prototype._initIndexMap = function (arr, // Can be null.\n map, // In 'byKey', the output `keyArr` is duplication removed.\n // In 'byIndex', the output `keyArr` is not duplication removed and\n // its indices are accurately corresponding to `arr`.\n keyArr, keyGetterName) {\n var cbModeMultiple = this._diffModeMultiple;\n\n for (var i = 0; i < arr.length; i++) {\n // Add prefix to avoid conflict with Object.prototype.\n var key = '_ec_' + this[keyGetterName](arr[i], i);\n\n if (!cbModeMultiple) {\n keyArr[i] = key;\n }\n\n if (!map) {\n continue;\n }\n\n var idxMapVal = map[key];\n var idxMapValLen = dataIndexMapValueLength(idxMapVal);\n\n if (idxMapValLen === 0) {\n // Simple optimize: in most cases, one index has one key,\n // do not need array.\n map[key] = i;\n\n if (cbModeMultiple) {\n keyArr.push(key);\n }\n } else if (idxMapValLen === 1) {\n map[key] = [idxMapVal, i];\n } else {\n idxMapVal.push(i);\n }\n }\n };\n\n return DataDiffer;\n}();\n\nexport default DataDiffer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { assert, clone, createHashMap, isFunction, keys, map, reduce } from 'zrender/lib/core/util.js';\nimport { parseDataValue } from './helper/dataValueHelper.js';\nimport { shouldRetrieveDataByName } from './Source.js';\nvar UNDEFINED = 'undefined';\n/* global Float64Array, Int32Array, Uint32Array, Uint16Array */\n// Caution: MUST not use `new CtorUint32Array(arr, 0, len)`, because the Ctor of array is\n// different from the Ctor of typed array.\n\nexport var CtorUint32Array = typeof Uint32Array === UNDEFINED ? Array : Uint32Array;\nexport var CtorUint16Array = typeof Uint16Array === UNDEFINED ? Array : Uint16Array;\nexport var CtorInt32Array = typeof Int32Array === UNDEFINED ? Array : Int32Array;\nexport var CtorFloat64Array = typeof Float64Array === UNDEFINED ? Array : Float64Array;\n/**\n * Multi dimensional data store\n */\n\nvar dataCtors = {\n 'float': CtorFloat64Array,\n 'int': CtorInt32Array,\n // Ordinal data type can be string or int\n 'ordinal': Array,\n 'number': Array,\n 'time': CtorFloat64Array\n};\nvar defaultDimValueGetters;\n\nfunction getIndicesCtor(rawCount) {\n // The possible max value in this._indicies is always this._rawCount despite of filtering.\n return rawCount > 65535 ? CtorUint32Array : CtorUint16Array;\n}\n\n;\n\nfunction getInitialExtent() {\n return [Infinity, -Infinity];\n}\n\n;\n\nfunction cloneChunk(originalChunk) {\n var Ctor = originalChunk.constructor; // Only shallow clone is enough when Array.\n\n return Ctor === Array ? originalChunk.slice() : new Ctor(originalChunk);\n}\n\nfunction prepareStore(store, dimIdx, dimType, end, append) {\n var DataCtor = dataCtors[dimType || 'float'];\n\n if (append) {\n var oldStore = store[dimIdx];\n var oldLen = oldStore && oldStore.length;\n\n if (!(oldLen === end)) {\n var newStore = new DataCtor(end); // The cost of the copy is probably inconsiderable\n // within the initial chunkSize.\n\n for (var j = 0; j < oldLen; j++) {\n newStore[j] = oldStore[j];\n }\n\n store[dimIdx] = newStore;\n }\n } else {\n store[dimIdx] = new DataCtor(end);\n }\n}\n\n;\n/**\n * Basically, DataStore API keep immutable.\n */\n\nvar DataStore =\n/** @class */\nfunction () {\n function DataStore() {\n this._chunks = []; // It will not be calculated until needed.\n\n this._rawExtent = [];\n this._extent = [];\n this._count = 0;\n this._rawCount = 0;\n this._calcDimNameToIdx = createHashMap();\n }\n /**\n * Initialize from data\n */\n\n\n DataStore.prototype.initData = function (provider, inputDimensions, dimValueGetter) {\n if (process.env.NODE_ENV !== 'production') {\n assert(isFunction(provider.getItem) && isFunction(provider.count), 'Invalid data provider.');\n }\n\n this._provider = provider; // Clear\n\n this._chunks = [];\n this._indices = null;\n this.getRawIndex = this._getRawIdxIdentity;\n var source = provider.getSource();\n var defaultGetter = this.defaultDimValueGetter = defaultDimValueGetters[source.sourceFormat]; // Default dim value getter\n\n this._dimValueGetter = dimValueGetter || defaultGetter; // Reset raw extent.\n\n this._rawExtent = [];\n var willRetrieveDataByName = shouldRetrieveDataByName(source);\n this._dimensions = map(inputDimensions, function (dim) {\n if (process.env.NODE_ENV !== 'production') {\n if (willRetrieveDataByName) {\n assert(dim.property != null);\n }\n }\n\n return {\n // Only pick these two props. Not leak other properties like orderMeta.\n type: dim.type,\n property: dim.property\n };\n });\n\n this._initDataFromProvider(0, provider.count());\n };\n\n DataStore.prototype.getProvider = function () {\n return this._provider;\n };\n /**\n * Caution: even when a `source` instance owned by a series, the created data store\n * may still be shared by different sereis (the source hash does not use all `source`\n * props, see `sourceManager`). In this case, the `source` props that are not used in\n * hash (like `source.dimensionDefine`) probably only belongs to a certain series and\n * thus should not be fetch here.\n */\n\n\n DataStore.prototype.getSource = function () {\n return this._provider.getSource();\n };\n /**\n * @caution Only used in dataStack.\n */\n\n\n DataStore.prototype.ensureCalculationDimension = function (dimName, type) {\n var calcDimNameToIdx = this._calcDimNameToIdx;\n var dimensions = this._dimensions;\n var calcDimIdx = calcDimNameToIdx.get(dimName);\n\n if (calcDimIdx != null) {\n if (dimensions[calcDimIdx].type === type) {\n return calcDimIdx;\n }\n } else {\n calcDimIdx = dimensions.length;\n }\n\n dimensions[calcDimIdx] = {\n type: type\n };\n calcDimNameToIdx.set(dimName, calcDimIdx);\n this._chunks[calcDimIdx] = new dataCtors[type || 'float'](this._rawCount);\n this._rawExtent[calcDimIdx] = getInitialExtent();\n return calcDimIdx;\n };\n\n DataStore.prototype.collectOrdinalMeta = function (dimIdx, ordinalMeta) {\n var chunk = this._chunks[dimIdx];\n var dim = this._dimensions[dimIdx];\n var rawExtents = this._rawExtent;\n var offset = dim.ordinalOffset || 0;\n var len = chunk.length;\n\n if (offset === 0) {\n // We need to reset the rawExtent if collect is from start.\n // Because this dimension may be guessed as number and calcuating a wrong extent.\n rawExtents[dimIdx] = getInitialExtent();\n }\n\n var dimRawExtent = rawExtents[dimIdx]; // Parse from previous data offset. len may be changed after appendData\n\n for (var i = offset; i < len; i++) {\n var val = chunk[i] = ordinalMeta.parseAndCollect(chunk[i]);\n\n if (!isNaN(val)) {\n dimRawExtent[0] = Math.min(val, dimRawExtent[0]);\n dimRawExtent[1] = Math.max(val, dimRawExtent[1]);\n }\n }\n\n dim.ordinalMeta = ordinalMeta;\n dim.ordinalOffset = len;\n dim.type = 'ordinal'; // Force to be ordinal\n };\n\n DataStore.prototype.getOrdinalMeta = function (dimIdx) {\n var dimInfo = this._dimensions[dimIdx];\n var ordinalMeta = dimInfo.ordinalMeta;\n return ordinalMeta;\n };\n\n DataStore.prototype.getDimensionProperty = function (dimIndex) {\n var item = this._dimensions[dimIndex];\n return item && item.property;\n };\n /**\n * Caution: Can be only called on raw data (before `this._indices` created).\n */\n\n\n DataStore.prototype.appendData = function (data) {\n if (process.env.NODE_ENV !== 'production') {\n assert(!this._indices, 'appendData can only be called on raw data.');\n }\n\n var provider = this._provider;\n var start = this.count();\n provider.appendData(data);\n var end = provider.count();\n\n if (!provider.persistent) {\n end += start;\n }\n\n if (start < end) {\n this._initDataFromProvider(start, end, true);\n }\n\n return [start, end];\n };\n\n DataStore.prototype.appendValues = function (values, minFillLen) {\n var chunks = this._chunks;\n var dimensions = this._dimensions;\n var dimLen = dimensions.length;\n var rawExtent = this._rawExtent;\n var start = this.count();\n var end = start + Math.max(values.length, minFillLen || 0);\n\n for (var i = 0; i < dimLen; i++) {\n var dim = dimensions[i];\n prepareStore(chunks, i, dim.type, end, true);\n }\n\n var emptyDataItem = [];\n\n for (var idx = start; idx < end; idx++) {\n var sourceIdx = idx - start; // Store the data by dimensions\n\n for (var dimIdx = 0; dimIdx < dimLen; dimIdx++) {\n var dim = dimensions[dimIdx];\n var val = defaultDimValueGetters.arrayRows.call(this, values[sourceIdx] || emptyDataItem, dim.property, sourceIdx, dimIdx);\n chunks[dimIdx][idx] = val;\n var dimRawExtent = rawExtent[dimIdx];\n val < dimRawExtent[0] && (dimRawExtent[0] = val);\n val > dimRawExtent[1] && (dimRawExtent[1] = val);\n }\n }\n\n this._rawCount = this._count = end;\n return {\n start: start,\n end: end\n };\n };\n\n DataStore.prototype._initDataFromProvider = function (start, end, append) {\n var provider = this._provider;\n var chunks = this._chunks;\n var dimensions = this._dimensions;\n var dimLen = dimensions.length;\n var rawExtent = this._rawExtent;\n var dimNames = map(dimensions, function (dim) {\n return dim.property;\n });\n\n for (var i = 0; i < dimLen; i++) {\n var dim = dimensions[i];\n\n if (!rawExtent[i]) {\n rawExtent[i] = getInitialExtent();\n }\n\n prepareStore(chunks, i, dim.type, end, append);\n }\n\n if (provider.fillStorage) {\n provider.fillStorage(start, end, chunks, rawExtent);\n } else {\n var dataItem = [];\n\n for (var idx = start; idx < end; idx++) {\n // NOTICE: Try not to write things into dataItem\n dataItem = provider.getItem(idx, dataItem); // Each data item is value\n // [1, 2]\n // 2\n // Bar chart, line chart which uses category axis\n // only gives the 'y' value. 'x' value is the indices of category\n // Use a tempValue to normalize the value to be a (x, y) value\n // Store the data by dimensions\n\n for (var dimIdx = 0; dimIdx < dimLen; dimIdx++) {\n var dimStorage = chunks[dimIdx]; // PENDING NULL is empty or zero\n\n var val = this._dimValueGetter(dataItem, dimNames[dimIdx], idx, dimIdx);\n\n dimStorage[idx] = val;\n var dimRawExtent = rawExtent[dimIdx];\n val < dimRawExtent[0] && (dimRawExtent[0] = val);\n val > dimRawExtent[1] && (dimRawExtent[1] = val);\n }\n }\n }\n\n if (!provider.persistent && provider.clean) {\n // Clean unused data if data source is typed array.\n provider.clean();\n }\n\n this._rawCount = this._count = end; // Reset data extent\n\n this._extent = [];\n };\n\n DataStore.prototype.count = function () {\n return this._count;\n };\n /**\n * Get value. Return NaN if idx is out of range.\n */\n\n\n DataStore.prototype.get = function (dim, idx) {\n if (!(idx >= 0 && idx < this._count)) {\n return NaN;\n }\n\n var dimStore = this._chunks[dim];\n return dimStore ? dimStore[this.getRawIndex(idx)] : NaN;\n };\n\n DataStore.prototype.getValues = function (dimensions, idx) {\n var values = [];\n var dimArr = [];\n\n if (idx == null) {\n idx = dimensions; // TODO get all from store?\n\n dimensions = []; // All dimensions\n\n for (var i = 0; i < this._dimensions.length; i++) {\n dimArr.push(i);\n }\n } else {\n dimArr = dimensions;\n }\n\n for (var i = 0, len = dimArr.length; i < len; i++) {\n values.push(this.get(dimArr[i], idx));\n }\n\n return values;\n };\n /**\n * @param dim concrete dim\n */\n\n\n DataStore.prototype.getByRawIndex = function (dim, rawIdx) {\n if (!(rawIdx >= 0 && rawIdx < this._rawCount)) {\n return NaN;\n }\n\n var dimStore = this._chunks[dim];\n return dimStore ? dimStore[rawIdx] : NaN;\n };\n /**\n * Get sum of data in one dimension\n */\n\n\n DataStore.prototype.getSum = function (dim) {\n var dimData = this._chunks[dim];\n var sum = 0;\n\n if (dimData) {\n for (var i = 0, len = this.count(); i < len; i++) {\n var value = this.get(dim, i);\n\n if (!isNaN(value)) {\n sum += value;\n }\n }\n }\n\n return sum;\n };\n /**\n * Get median of data in one dimension\n */\n\n\n DataStore.prototype.getMedian = function (dim) {\n var dimDataArray = []; // map all data of one dimension\n\n this.each([dim], function (val) {\n if (!isNaN(val)) {\n dimDataArray.push(val);\n }\n }); // TODO\n // Use quick select?\n\n var sortedDimDataArray = dimDataArray.sort(function (a, b) {\n return a - b;\n });\n var len = this.count(); // calculate median\n\n return len === 0 ? 0 : len % 2 === 1 ? sortedDimDataArray[(len - 1) / 2] : (sortedDimDataArray[len / 2] + sortedDimDataArray[len / 2 - 1]) / 2;\n };\n /**\n * Retrieve the index with given raw data index.\n */\n\n\n DataStore.prototype.indexOfRawIndex = function (rawIndex) {\n if (rawIndex >= this._rawCount || rawIndex < 0) {\n return -1;\n }\n\n if (!this._indices) {\n return rawIndex;\n } // Indices are ascending\n\n\n var indices = this._indices; // If rawIndex === dataIndex\n\n var rawDataIndex = indices[rawIndex];\n\n if (rawDataIndex != null && rawDataIndex < this._count && rawDataIndex === rawIndex) {\n return rawIndex;\n }\n\n var left = 0;\n var right = this._count - 1;\n\n while (left <= right) {\n var mid = (left + right) / 2 | 0;\n\n if (indices[mid] < rawIndex) {\n left = mid + 1;\n } else if (indices[mid] > rawIndex) {\n right = mid - 1;\n } else {\n return mid;\n }\n }\n\n return -1;\n };\n /**\n * Retrieve the index of nearest value.\n * @param dim\n * @param value\n * @param [maxDistance=Infinity]\n * @return If and only if multiple indices have\n * the same value, they are put to the result.\n */\n\n\n DataStore.prototype.indicesOfNearest = function (dim, value, maxDistance) {\n var chunks = this._chunks;\n var dimData = chunks[dim];\n var nearestIndices = [];\n\n if (!dimData) {\n return nearestIndices;\n }\n\n if (maxDistance == null) {\n maxDistance = Infinity;\n }\n\n var minDist = Infinity;\n var minDiff = -1;\n var nearestIndicesLen = 0; // Check the test case of `test/ut/spec/data/SeriesData.js`.\n\n for (var i = 0, len = this.count(); i < len; i++) {\n var dataIndex = this.getRawIndex(i);\n var diff = value - dimData[dataIndex];\n var dist = Math.abs(diff);\n\n if (dist <= maxDistance) {\n // When the `value` is at the middle of `this.get(dim, i)` and `this.get(dim, i+1)`,\n // we'd better not push both of them to `nearestIndices`, otherwise it is easy to\n // get more than one item in `nearestIndices` (more specifically, in `tooltip`).\n // So we choose the one that `diff >= 0` in this case.\n // But if `this.get(dim, i)` and `this.get(dim, j)` get the same value, both of them\n // should be push to `nearestIndices`.\n if (dist < minDist || dist === minDist && diff >= 0 && minDiff < 0) {\n minDist = dist;\n minDiff = diff;\n nearestIndicesLen = 0;\n }\n\n if (diff === minDiff) {\n nearestIndices[nearestIndicesLen++] = i;\n }\n }\n }\n\n nearestIndices.length = nearestIndicesLen;\n return nearestIndices;\n };\n\n DataStore.prototype.getIndices = function () {\n var newIndices;\n var indices = this._indices;\n\n if (indices) {\n var Ctor = indices.constructor;\n var thisCount = this._count; // `new Array(a, b, c)` is different from `new Uint32Array(a, b, c)`.\n\n if (Ctor === Array) {\n newIndices = new Ctor(thisCount);\n\n for (var i = 0; i < thisCount; i++) {\n newIndices[i] = indices[i];\n }\n } else {\n newIndices = new Ctor(indices.buffer, 0, thisCount);\n }\n } else {\n var Ctor = getIndicesCtor(this._rawCount);\n newIndices = new Ctor(this.count());\n\n for (var i = 0; i < newIndices.length; i++) {\n newIndices[i] = i;\n }\n }\n\n return newIndices;\n };\n /**\n * Data filter.\n */\n\n\n DataStore.prototype.filter = function (dims, cb) {\n if (!this._count) {\n return this;\n }\n\n var newStore = this.clone();\n var count = newStore.count();\n var Ctor = getIndicesCtor(newStore._rawCount);\n var newIndices = new Ctor(count);\n var value = [];\n var dimSize = dims.length;\n var offset = 0;\n var dim0 = dims[0];\n var chunks = newStore._chunks;\n\n for (var i = 0; i < count; i++) {\n var keep = void 0;\n var rawIdx = newStore.getRawIndex(i); // Simple optimization\n\n if (dimSize === 0) {\n keep = cb(i);\n } else if (dimSize === 1) {\n var val = chunks[dim0][rawIdx];\n keep = cb(val, i);\n } else {\n var k = 0;\n\n for (; k < dimSize; k++) {\n value[k] = chunks[dims[k]][rawIdx];\n }\n\n value[k] = i;\n keep = cb.apply(null, value);\n }\n\n if (keep) {\n newIndices[offset++] = rawIdx;\n }\n } // Set indices after filtered.\n\n\n if (offset < count) {\n newStore._indices = newIndices;\n }\n\n newStore._count = offset; // Reset data extent\n\n newStore._extent = [];\n\n newStore._updateGetRawIdx();\n\n return newStore;\n };\n /**\n * Select data in range. (For optimization of filter)\n * (Manually inline code, support 5 million data filtering in data zoom.)\n */\n\n\n DataStore.prototype.selectRange = function (range) {\n var newStore = this.clone();\n var len = newStore._count;\n\n if (!len) {\n return this;\n }\n\n var dims = keys(range);\n var dimSize = dims.length;\n\n if (!dimSize) {\n return this;\n }\n\n var originalCount = newStore.count();\n var Ctor = getIndicesCtor(newStore._rawCount);\n var newIndices = new Ctor(originalCount);\n var offset = 0;\n var dim0 = dims[0];\n var min = range[dim0][0];\n var max = range[dim0][1];\n var storeArr = newStore._chunks;\n var quickFinished = false;\n\n if (!newStore._indices) {\n // Extreme optimization for common case. About 2x faster in chrome.\n var idx = 0;\n\n if (dimSize === 1) {\n var dimStorage = storeArr[dims[0]];\n\n for (var i = 0; i < len; i++) {\n var val = dimStorage[i]; // NaN will not be filtered. Consider the case, in line chart, empty\n // value indicates the line should be broken. But for the case like\n // scatter plot, a data item with empty value will not be rendered,\n // but the axis extent may be effected if some other dim of the data\n // item has value. Fortunately it is not a significant negative effect.\n\n if (val >= min && val <= max || isNaN(val)) {\n newIndices[offset++] = idx;\n }\n\n idx++;\n }\n\n quickFinished = true;\n } else if (dimSize === 2) {\n var dimStorage = storeArr[dims[0]];\n var dimStorage2 = storeArr[dims[1]];\n var min2 = range[dims[1]][0];\n var max2 = range[dims[1]][1];\n\n for (var i = 0; i < len; i++) {\n var val = dimStorage[i];\n var val2 = dimStorage2[i]; // Do not filter NaN, see comment above.\n\n if ((val >= min && val <= max || isNaN(val)) && (val2 >= min2 && val2 <= max2 || isNaN(val2))) {\n newIndices[offset++] = idx;\n }\n\n idx++;\n }\n\n quickFinished = true;\n }\n }\n\n if (!quickFinished) {\n if (dimSize === 1) {\n for (var i = 0; i < originalCount; i++) {\n var rawIndex = newStore.getRawIndex(i);\n var val = storeArr[dims[0]][rawIndex]; // Do not filter NaN, see comment above.\n\n if (val >= min && val <= max || isNaN(val)) {\n newIndices[offset++] = rawIndex;\n }\n }\n } else {\n for (var i = 0; i < originalCount; i++) {\n var keep = true;\n var rawIndex = newStore.getRawIndex(i);\n\n for (var k = 0; k < dimSize; k++) {\n var dimk = dims[k];\n var val = storeArr[dimk][rawIndex]; // Do not filter NaN, see comment above.\n\n if (val < range[dimk][0] || val > range[dimk][1]) {\n keep = false;\n }\n }\n\n if (keep) {\n newIndices[offset++] = newStore.getRawIndex(i);\n }\n }\n }\n } // Set indices after filtered.\n\n\n if (offset < originalCount) {\n newStore._indices = newIndices;\n }\n\n newStore._count = offset; // Reset data extent\n\n newStore._extent = [];\n\n newStore._updateGetRawIdx();\n\n return newStore;\n }; // /**\n // * Data mapping to a plain array\n // */\n // mapArray(dims: DimensionIndex[], cb: MapArrayCb): any[] {\n // const result: any[] = [];\n // this.each(dims, function () {\n // result.push(cb && (cb as MapArrayCb).apply(null, arguments));\n // });\n // return result;\n // }\n\n /**\n * Data mapping to a new List with given dimensions\n */\n\n\n DataStore.prototype.map = function (dims, cb) {\n // TODO only clone picked chunks.\n var target = this.clone(dims);\n\n this._updateDims(target, dims, cb);\n\n return target;\n };\n /**\n * @caution Danger!! Only used in dataStack.\n */\n\n\n DataStore.prototype.modify = function (dims, cb) {\n this._updateDims(this, dims, cb);\n };\n\n DataStore.prototype._updateDims = function (target, dims, cb) {\n var targetChunks = target._chunks;\n var tmpRetValue = [];\n var dimSize = dims.length;\n var dataCount = target.count();\n var values = [];\n var rawExtent = target._rawExtent;\n\n for (var i = 0; i < dims.length; i++) {\n rawExtent[dims[i]] = getInitialExtent();\n }\n\n for (var dataIndex = 0; dataIndex < dataCount; dataIndex++) {\n var rawIndex = target.getRawIndex(dataIndex);\n\n for (var k = 0; k < dimSize; k++) {\n values[k] = targetChunks[dims[k]][rawIndex];\n }\n\n values[dimSize] = dataIndex;\n var retValue = cb && cb.apply(null, values);\n\n if (retValue != null) {\n // a number or string (in oridinal dimension)?\n if (typeof retValue !== 'object') {\n tmpRetValue[0] = retValue;\n retValue = tmpRetValue;\n }\n\n for (var i = 0; i < retValue.length; i++) {\n var dim = dims[i];\n var val = retValue[i];\n var rawExtentOnDim = rawExtent[dim];\n var dimStore = targetChunks[dim];\n\n if (dimStore) {\n dimStore[rawIndex] = val;\n }\n\n if (val < rawExtentOnDim[0]) {\n rawExtentOnDim[0] = val;\n }\n\n if (val > rawExtentOnDim[1]) {\n rawExtentOnDim[1] = val;\n }\n }\n }\n }\n };\n /**\n * Large data down sampling using largest-triangle-three-buckets\n * @param {string} valueDimension\n * @param {number} targetCount\n */\n\n\n DataStore.prototype.lttbDownSample = function (valueDimension, rate) {\n var target = this.clone([valueDimension], true);\n var targetStorage = target._chunks;\n var dimStore = targetStorage[valueDimension];\n var len = this.count();\n var sampledIndex = 0;\n var frameSize = Math.floor(1 / rate);\n var currentRawIndex = this.getRawIndex(0);\n var maxArea;\n var area;\n var nextRawIndex;\n var newIndices = new (getIndicesCtor(this._rawCount))(Math.min((Math.ceil(len / frameSize) + 2) * 2, len)); // First frame use the first data.\n\n newIndices[sampledIndex++] = currentRawIndex;\n\n for (var i = 1; i < len - 1; i += frameSize) {\n var nextFrameStart = Math.min(i + frameSize, len - 1);\n var nextFrameEnd = Math.min(i + frameSize * 2, len);\n var avgX = (nextFrameEnd + nextFrameStart) / 2;\n var avgY = 0;\n\n for (var idx = nextFrameStart; idx < nextFrameEnd; idx++) {\n var rawIndex = this.getRawIndex(idx);\n var y = dimStore[rawIndex];\n\n if (isNaN(y)) {\n continue;\n }\n\n avgY += y;\n }\n\n avgY /= nextFrameEnd - nextFrameStart;\n var frameStart = i;\n var frameEnd = Math.min(i + frameSize, len);\n var pointAX = i - 1;\n var pointAY = dimStore[currentRawIndex];\n maxArea = -1;\n nextRawIndex = frameStart;\n var firstNaNIndex = -1;\n var countNaN = 0; // Find a point from current frame that construct a triangle with largest area with previous selected point\n // And the average of next frame.\n\n for (var idx = frameStart; idx < frameEnd; idx++) {\n var rawIndex = this.getRawIndex(idx);\n var y = dimStore[rawIndex];\n\n if (isNaN(y)) {\n countNaN++;\n\n if (firstNaNIndex < 0) {\n firstNaNIndex = rawIndex;\n }\n\n continue;\n } // Calculate triangle area over three buckets\n\n\n area = Math.abs((pointAX - avgX) * (y - pointAY) - (pointAX - idx) * (avgY - pointAY));\n\n if (area > maxArea) {\n maxArea = area;\n nextRawIndex = rawIndex; // Next a is this b\n }\n }\n\n if (countNaN > 0 && countNaN < frameEnd - frameStart) {\n // Append first NaN point in every bucket.\n // It is necessary to ensure the correct order of indices.\n newIndices[sampledIndex++] = Math.min(firstNaNIndex, nextRawIndex);\n nextRawIndex = Math.max(firstNaNIndex, nextRawIndex);\n }\n\n newIndices[sampledIndex++] = nextRawIndex;\n currentRawIndex = nextRawIndex; // This a is the next a (chosen b)\n } // First frame use the last data.\n\n\n newIndices[sampledIndex++] = this.getRawIndex(len - 1);\n target._count = sampledIndex;\n target._indices = newIndices;\n target.getRawIndex = this._getRawIdx;\n return target;\n };\n /**\n * Large data down sampling on given dimension\n * @param sampleIndex Sample index for name and id\n */\n\n\n DataStore.prototype.downSample = function (dimension, rate, sampleValue, sampleIndex) {\n var target = this.clone([dimension], true);\n var targetStorage = target._chunks;\n var frameValues = [];\n var frameSize = Math.floor(1 / rate);\n var dimStore = targetStorage[dimension];\n var len = this.count();\n var rawExtentOnDim = target._rawExtent[dimension] = getInitialExtent();\n var newIndices = new (getIndicesCtor(this._rawCount))(Math.ceil(len / frameSize));\n var offset = 0;\n\n for (var i = 0; i < len; i += frameSize) {\n // Last frame\n if (frameSize > len - i) {\n frameSize = len - i;\n frameValues.length = frameSize;\n }\n\n for (var k = 0; k < frameSize; k++) {\n var dataIdx = this.getRawIndex(i + k);\n frameValues[k] = dimStore[dataIdx];\n }\n\n var value = sampleValue(frameValues);\n var sampleFrameIdx = this.getRawIndex(Math.min(i + sampleIndex(frameValues, value) || 0, len - 1)); // Only write value on the filtered data\n\n dimStore[sampleFrameIdx] = value;\n\n if (value < rawExtentOnDim[0]) {\n rawExtentOnDim[0] = value;\n }\n\n if (value > rawExtentOnDim[1]) {\n rawExtentOnDim[1] = value;\n }\n\n newIndices[offset++] = sampleFrameIdx;\n }\n\n target._count = offset;\n target._indices = newIndices;\n\n target._updateGetRawIdx();\n\n return target;\n };\n /**\n * Data iteration\n * @param ctx default this\n * @example\n * list.each('x', function (x, idx) {});\n * list.each(['x', 'y'], function (x, y, idx) {});\n * list.each(function (idx) {})\n */\n\n\n DataStore.prototype.each = function (dims, cb) {\n if (!this._count) {\n return;\n }\n\n var dimSize = dims.length;\n var chunks = this._chunks;\n\n for (var i = 0, len = this.count(); i < len; i++) {\n var rawIdx = this.getRawIndex(i); // Simple optimization\n\n switch (dimSize) {\n case 0:\n cb(i);\n break;\n\n case 1:\n cb(chunks[dims[0]][rawIdx], i);\n break;\n\n case 2:\n cb(chunks[dims[0]][rawIdx], chunks[dims[1]][rawIdx], i);\n break;\n\n default:\n var k = 0;\n var value = [];\n\n for (; k < dimSize; k++) {\n value[k] = chunks[dims[k]][rawIdx];\n } // Index\n\n\n value[k] = i;\n cb.apply(null, value);\n }\n }\n };\n /**\n * Get extent of data in one dimension\n */\n\n\n DataStore.prototype.getDataExtent = function (dim) {\n // Make sure use concrete dim as cache name.\n var dimData = this._chunks[dim];\n var initialExtent = getInitialExtent();\n\n if (!dimData) {\n return initialExtent;\n } // Make more strict checkings to ensure hitting cache.\n\n\n var currEnd = this.count(); // Consider the most cases when using data zoom, `getDataExtent`\n // happened before filtering. We cache raw extent, which is not\n // necessary to be cleared and recalculated when restore data.\n\n var useRaw = !this._indices;\n var dimExtent;\n\n if (useRaw) {\n return this._rawExtent[dim].slice();\n }\n\n dimExtent = this._extent[dim];\n\n if (dimExtent) {\n return dimExtent.slice();\n }\n\n dimExtent = initialExtent;\n var min = dimExtent[0];\n var max = dimExtent[1];\n\n for (var i = 0; i < currEnd; i++) {\n var rawIdx = this.getRawIndex(i);\n var value = dimData[rawIdx];\n value < min && (min = value);\n value > max && (max = value);\n }\n\n dimExtent = [min, max];\n this._extent[dim] = dimExtent;\n return dimExtent;\n };\n /**\n * Get raw data item\n */\n\n\n DataStore.prototype.getRawDataItem = function (idx) {\n var rawIdx = this.getRawIndex(idx);\n\n if (!this._provider.persistent) {\n var val = [];\n var chunks = this._chunks;\n\n for (var i = 0; i < chunks.length; i++) {\n val.push(chunks[i][rawIdx]);\n }\n\n return val;\n } else {\n return this._provider.getItem(rawIdx);\n }\n };\n /**\n * Clone shallow.\n *\n * @param clonedDims Determine which dims to clone. Will share the data if not specified.\n */\n\n\n DataStore.prototype.clone = function (clonedDims, ignoreIndices) {\n var target = new DataStore();\n var chunks = this._chunks;\n var clonedDimsMap = clonedDims && reduce(clonedDims, function (obj, dimIdx) {\n obj[dimIdx] = true;\n return obj;\n }, {});\n\n if (clonedDimsMap) {\n for (var i = 0; i < chunks.length; i++) {\n // Not clone if dim is not picked.\n target._chunks[i] = !clonedDimsMap[i] ? chunks[i] : cloneChunk(chunks[i]);\n }\n } else {\n target._chunks = chunks;\n }\n\n this._copyCommonProps(target);\n\n if (!ignoreIndices) {\n target._indices = this._cloneIndices();\n }\n\n target._updateGetRawIdx();\n\n return target;\n };\n\n DataStore.prototype._copyCommonProps = function (target) {\n target._count = this._count;\n target._rawCount = this._rawCount;\n target._provider = this._provider;\n target._dimensions = this._dimensions;\n target._extent = clone(this._extent);\n target._rawExtent = clone(this._rawExtent);\n };\n\n DataStore.prototype._cloneIndices = function () {\n if (this._indices) {\n var Ctor = this._indices.constructor;\n var indices = void 0;\n\n if (Ctor === Array) {\n var thisCount = this._indices.length;\n indices = new Ctor(thisCount);\n\n for (var i = 0; i < thisCount; i++) {\n indices[i] = this._indices[i];\n }\n } else {\n indices = new Ctor(this._indices);\n }\n\n return indices;\n }\n\n return null;\n };\n\n DataStore.prototype._getRawIdxIdentity = function (idx) {\n return idx;\n };\n\n DataStore.prototype._getRawIdx = function (idx) {\n if (idx < this._count && idx >= 0) {\n return this._indices[idx];\n }\n\n return -1;\n };\n\n DataStore.prototype._updateGetRawIdx = function () {\n this.getRawIndex = this._indices ? this._getRawIdx : this._getRawIdxIdentity;\n };\n\n DataStore.internalField = function () {\n function getDimValueSimply(dataItem, property, dataIndex, dimIndex) {\n return parseDataValue(dataItem[dimIndex], this._dimensions[dimIndex]);\n }\n\n defaultDimValueGetters = {\n arrayRows: getDimValueSimply,\n objectRows: function (dataItem, property, dataIndex, dimIndex) {\n return parseDataValue(dataItem[property], this._dimensions[dimIndex]);\n },\n keyedColumns: getDimValueSimply,\n original: function (dataItem, property, dataIndex, dimIndex) {\n // Performance sensitive, do not use modelUtil.getDataItemValue.\n // If dataItem is an plain object with no value field, the let `value`\n // will be assigned with the object, but it will be tread correctly\n // in the `convertValue`.\n var value = dataItem && (dataItem.value == null ? dataItem : dataItem.value);\n return parseDataValue(value instanceof Array ? value[dimIndex] // If value is a single number or something else not array.\n : value, this._dimensions[dimIndex]);\n },\n typedArray: function (dataItem, property, dataIndex, dimIndex) {\n return dataItem[dimIndex];\n }\n };\n }();\n\n return DataStore;\n}();\n\nexport default DataStore;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js'; // id may be function name of Object, add a prefix to avoid this problem.\n\nfunction generateNodeKey(id) {\n return '_EC_' + id;\n}\n\nvar Graph =\n/** @class */\nfunction () {\n function Graph(directed) {\n this.type = 'graph';\n this.nodes = [];\n this.edges = [];\n this._nodesMap = {};\n /**\n * @type {Object.}\n * @private\n */\n\n this._edgesMap = {};\n this._directed = directed || false;\n }\n /**\n * If is directed graph\n */\n\n\n Graph.prototype.isDirected = function () {\n return this._directed;\n };\n\n ;\n /**\n * Add a new node\n */\n\n Graph.prototype.addNode = function (id, dataIndex) {\n id = id == null ? '' + dataIndex : '' + id;\n var nodesMap = this._nodesMap;\n\n if (nodesMap[generateNodeKey(id)]) {\n if (process.env.NODE_ENV !== 'production') {\n console.error('Graph nodes have duplicate name or id');\n }\n\n return;\n }\n\n var node = new GraphNode(id, dataIndex);\n node.hostGraph = this;\n this.nodes.push(node);\n nodesMap[generateNodeKey(id)] = node;\n return node;\n };\n\n ;\n /**\n * Get node by data index\n */\n\n Graph.prototype.getNodeByIndex = function (dataIndex) {\n var rawIdx = this.data.getRawIndex(dataIndex);\n return this.nodes[rawIdx];\n };\n\n ;\n /**\n * Get node by id\n */\n\n Graph.prototype.getNodeById = function (id) {\n return this._nodesMap[generateNodeKey(id)];\n };\n\n ;\n /**\n * Add a new edge\n */\n\n Graph.prototype.addEdge = function (n1, n2, dataIndex) {\n var nodesMap = this._nodesMap;\n var edgesMap = this._edgesMap; // PENDING\n\n if (zrUtil.isNumber(n1)) {\n n1 = this.nodes[n1];\n }\n\n if (zrUtil.isNumber(n2)) {\n n2 = this.nodes[n2];\n }\n\n if (!(n1 instanceof GraphNode)) {\n n1 = nodesMap[generateNodeKey(n1)];\n }\n\n if (!(n2 instanceof GraphNode)) {\n n2 = nodesMap[generateNodeKey(n2)];\n }\n\n if (!n1 || !n2) {\n return;\n }\n\n var key = n1.id + '-' + n2.id;\n var edge = new GraphEdge(n1, n2, dataIndex);\n edge.hostGraph = this;\n\n if (this._directed) {\n n1.outEdges.push(edge);\n n2.inEdges.push(edge);\n }\n\n n1.edges.push(edge);\n\n if (n1 !== n2) {\n n2.edges.push(edge);\n }\n\n this.edges.push(edge);\n edgesMap[key] = edge;\n return edge;\n };\n\n ;\n /**\n * Get edge by data index\n */\n\n Graph.prototype.getEdgeByIndex = function (dataIndex) {\n var rawIdx = this.edgeData.getRawIndex(dataIndex);\n return this.edges[rawIdx];\n };\n\n ;\n /**\n * Get edge by two linked nodes\n */\n\n Graph.prototype.getEdge = function (n1, n2) {\n if (n1 instanceof GraphNode) {\n n1 = n1.id;\n }\n\n if (n2 instanceof GraphNode) {\n n2 = n2.id;\n }\n\n var edgesMap = this._edgesMap;\n\n if (this._directed) {\n return edgesMap[n1 + '-' + n2];\n } else {\n return edgesMap[n1 + '-' + n2] || edgesMap[n2 + '-' + n1];\n }\n };\n\n ;\n /**\n * Iterate all nodes\n */\n\n Graph.prototype.eachNode = function (cb, context) {\n var nodes = this.nodes;\n var len = nodes.length;\n\n for (var i = 0; i < len; i++) {\n if (nodes[i].dataIndex >= 0) {\n cb.call(context, nodes[i], i);\n }\n }\n };\n\n ;\n /**\n * Iterate all edges\n */\n\n Graph.prototype.eachEdge = function (cb, context) {\n var edges = this.edges;\n var len = edges.length;\n\n for (var i = 0; i < len; i++) {\n if (edges[i].dataIndex >= 0 && edges[i].node1.dataIndex >= 0 && edges[i].node2.dataIndex >= 0) {\n cb.call(context, edges[i], i);\n }\n }\n };\n\n ;\n /**\n * Breadth first traverse\n * Return true to stop traversing\n */\n\n Graph.prototype.breadthFirstTraverse = function (cb, startNode, direction, context) {\n if (!(startNode instanceof GraphNode)) {\n startNode = this._nodesMap[generateNodeKey(startNode)];\n }\n\n if (!startNode) {\n return;\n }\n\n var edgeType = direction === 'out' ? 'outEdges' : direction === 'in' ? 'inEdges' : 'edges';\n\n for (var i = 0; i < this.nodes.length; i++) {\n this.nodes[i].__visited = false;\n }\n\n if (cb.call(context, startNode, null)) {\n return;\n }\n\n var queue = [startNode];\n\n while (queue.length) {\n var currentNode = queue.shift();\n var edges = currentNode[edgeType];\n\n for (var i = 0; i < edges.length; i++) {\n var e = edges[i];\n var otherNode = e.node1 === currentNode ? e.node2 : e.node1;\n\n if (!otherNode.__visited) {\n if (cb.call(context, otherNode, currentNode)) {\n // Stop traversing\n return;\n }\n\n queue.push(otherNode);\n otherNode.__visited = true;\n }\n }\n }\n };\n\n ; // TODO\n // depthFirstTraverse(\n // cb, startNode, direction, context\n // ) {\n // };\n // Filter update\n\n Graph.prototype.update = function () {\n var data = this.data;\n var edgeData = this.edgeData;\n var nodes = this.nodes;\n var edges = this.edges;\n\n for (var i = 0, len = nodes.length; i < len; i++) {\n nodes[i].dataIndex = -1;\n }\n\n for (var i = 0, len = data.count(); i < len; i++) {\n nodes[data.getRawIndex(i)].dataIndex = i;\n }\n\n edgeData.filterSelf(function (idx) {\n var edge = edges[edgeData.getRawIndex(idx)];\n return edge.node1.dataIndex >= 0 && edge.node2.dataIndex >= 0;\n }); // Update edge\n\n for (var i = 0, len = edges.length; i < len; i++) {\n edges[i].dataIndex = -1;\n }\n\n for (var i = 0, len = edgeData.count(); i < len; i++) {\n edges[edgeData.getRawIndex(i)].dataIndex = i;\n }\n };\n\n ;\n /**\n * @return {module:echarts/data/Graph}\n */\n\n Graph.prototype.clone = function () {\n var graph = new Graph(this._directed);\n var nodes = this.nodes;\n var edges = this.edges;\n\n for (var i = 0; i < nodes.length; i++) {\n graph.addNode(nodes[i].id, nodes[i].dataIndex);\n }\n\n for (var i = 0; i < edges.length; i++) {\n var e = edges[i];\n graph.addEdge(e.node1.id, e.node2.id, e.dataIndex);\n }\n\n return graph;\n };\n\n ;\n return Graph;\n}();\n\nvar GraphNode =\n/** @class */\nfunction () {\n function GraphNode(id, dataIndex) {\n this.inEdges = [];\n this.outEdges = [];\n this.edges = [];\n this.dataIndex = -1;\n this.id = id == null ? '' : id;\n this.dataIndex = dataIndex == null ? -1 : dataIndex;\n }\n /**\n * @return {number}\n */\n\n\n GraphNode.prototype.degree = function () {\n return this.edges.length;\n };\n /**\n * @return {number}\n */\n\n\n GraphNode.prototype.inDegree = function () {\n return this.inEdges.length;\n };\n /**\n * @return {number}\n */\n\n\n GraphNode.prototype.outDegree = function () {\n return this.outEdges.length;\n };\n\n GraphNode.prototype.getModel = function (path) {\n if (this.dataIndex < 0) {\n return;\n }\n\n var graph = this.hostGraph;\n var itemModel = graph.data.getItemModel(this.dataIndex);\n return itemModel.getModel(path);\n };\n\n GraphNode.prototype.getAdjacentDataIndices = function () {\n var dataIndices = {\n edge: [],\n node: []\n };\n\n for (var i = 0; i < this.edges.length; i++) {\n var adjacentEdge = this.edges[i];\n\n if (adjacentEdge.dataIndex < 0) {\n continue;\n }\n\n dataIndices.edge.push(adjacentEdge.dataIndex);\n dataIndices.node.push(adjacentEdge.node1.dataIndex, adjacentEdge.node2.dataIndex);\n }\n\n return dataIndices;\n };\n\n return GraphNode;\n}();\n\nvar GraphEdge =\n/** @class */\nfunction () {\n function GraphEdge(n1, n2, dataIndex) {\n this.dataIndex = -1;\n this.node1 = n1;\n this.node2 = n2;\n this.dataIndex = dataIndex == null ? -1 : dataIndex;\n } // eslint-disable-next-line @typescript-eslint/no-unused-vars\n\n\n GraphEdge.prototype.getModel = function (path) {\n if (this.dataIndex < 0) {\n return;\n }\n\n var graph = this.hostGraph;\n var itemModel = graph.edgeData.getItemModel(this.dataIndex);\n return itemModel.getModel(path);\n };\n\n GraphEdge.prototype.getAdjacentDataIndices = function () {\n return {\n edge: [this.dataIndex],\n node: [this.node1.dataIndex, this.node2.dataIndex]\n };\n };\n\n return GraphEdge;\n}();\n\nfunction createGraphDataProxyMixin(hostName, dataName) {\n return {\n /**\n * @param Default 'value'. can be 'a', 'b', 'c', 'd', 'e'.\n */\n getValue: function (dimension) {\n var data = this[hostName][dataName];\n return data.getStore().get(data.getDimensionIndex(dimension || 'value'), this.dataIndex);\n },\n // TODO: TYPE stricter type.\n setVisual: function (key, value) {\n this.dataIndex >= 0 && this[hostName][dataName].setItemVisual(this.dataIndex, key, value);\n },\n getVisual: function (key) {\n return this[hostName][dataName].getItemVisual(this.dataIndex, key);\n },\n setLayout: function (layout, merge) {\n this.dataIndex >= 0 && this[hostName][dataName].setItemLayout(this.dataIndex, layout, merge);\n },\n getLayout: function () {\n return this[hostName][dataName].getItemLayout(this.dataIndex);\n },\n getGraphicEl: function () {\n return this[hostName][dataName].getItemGraphicEl(this.dataIndex);\n },\n getRawIndex: function () {\n return this[hostName][dataName].getRawIndex(this.dataIndex);\n }\n };\n}\n\n;\n;\n;\nzrUtil.mixin(GraphNode, createGraphDataProxyMixin('hostGraph', 'data'));\nzrUtil.mixin(GraphEdge, createGraphDataProxyMixin('hostGraph', 'edgeData'));\nexport default Graph;\nexport { GraphNode, GraphEdge };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { createHashMap, isObject, map, isString } from 'zrender/lib/core/util.js';\nvar uidBase = 0;\n\nvar OrdinalMeta =\n/** @class */\nfunction () {\n function OrdinalMeta(opt) {\n this.categories = opt.categories || [];\n this._needCollect = opt.needCollect;\n this._deduplication = opt.deduplication;\n this.uid = ++uidBase;\n }\n\n OrdinalMeta.createByAxisModel = function (axisModel) {\n var option = axisModel.option;\n var data = option.data;\n var categories = data && map(data, getName);\n return new OrdinalMeta({\n categories: categories,\n needCollect: !categories,\n // deduplication is default in axis.\n deduplication: option.dedplication !== false\n });\n };\n\n ;\n\n OrdinalMeta.prototype.getOrdinal = function (category) {\n // @ts-ignore\n return this._getOrCreateMap().get(category);\n };\n /**\n * @return The ordinal. If not found, return NaN.\n */\n\n\n OrdinalMeta.prototype.parseAndCollect = function (category) {\n var index;\n var needCollect = this._needCollect; // The value of category dim can be the index of the given category set.\n // This feature is only supported when !needCollect, because we should\n // consider a common case: a value is 2017, which is a number but is\n // expected to be tread as a category. This case usually happen in dataset,\n // where it happent to be no need of the index feature.\n\n if (!isString(category) && !needCollect) {\n return category;\n } // Optimize for the scenario:\n // category is ['2012-01-01', '2012-01-02', ...], where the input\n // data has been ensured not duplicate and is large data.\n // Notice, if a dataset dimension provide categroies, usually echarts\n // should remove duplication except user tell echarts dont do that\n // (set axis.deduplication = false), because echarts do not know whether\n // the values in the category dimension has duplication (consider the\n // parallel-aqi example)\n\n\n if (needCollect && !this._deduplication) {\n index = this.categories.length;\n this.categories[index] = category;\n return index;\n }\n\n var map = this._getOrCreateMap(); // @ts-ignore\n\n\n index = map.get(category);\n\n if (index == null) {\n if (needCollect) {\n index = this.categories.length;\n this.categories[index] = category; // @ts-ignore\n\n map.set(category, index);\n } else {\n index = NaN;\n }\n }\n\n return index;\n }; // Consider big data, do not create map until needed.\n\n\n OrdinalMeta.prototype._getOrCreateMap = function () {\n return this._map || (this._map = createHashMap(this.categories));\n };\n\n return OrdinalMeta;\n}();\n\nfunction getName(obj) {\n if (isObject(obj) && obj.value != null) {\n return obj.value;\n } else {\n return obj + '';\n }\n}\n\nexport default OrdinalMeta;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/* global Int32Array */\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport Model from '../model/Model.js';\nimport DataDiffer from './DataDiffer.js';\nimport { DefaultDataProvider } from './helper/dataProvider.js';\nimport { summarizeDimensions } from './helper/dimensionHelper.js';\nimport SeriesDimensionDefine from './SeriesDimensionDefine.js';\nimport { SOURCE_FORMAT_TYPED_ARRAY, SOURCE_FORMAT_ORIGINAL } from '../util/types.js';\nimport { convertOptionIdName, isDataItemOption } from '../util/model.js';\nimport { setCommonECData } from '../util/innerStore.js';\nimport { isSourceInstance } from './Source.js';\nimport DataStore from './DataStore.js';\nimport { isSeriesDataSchema } from './helper/SeriesDataSchema.js';\nvar isObject = zrUtil.isObject;\nvar map = zrUtil.map;\nvar CtorInt32Array = typeof Int32Array === 'undefined' ? Array : Int32Array; // Use prefix to avoid index to be the same as otherIdList[idx],\n// which will cause weird update animation.\n\nvar ID_PREFIX = 'e\\0\\0';\nvar INDEX_NOT_FOUND = -1; // type SeriesDimensionIndex = DimensionIndex;\n\nvar TRANSFERABLE_PROPERTIES = ['hasItemOption', '_nameList', '_idList', '_invertedIndicesMap', '_dimSummary', 'userOutput', '_rawData', '_dimValueGetter', '_nameDimIdx', '_idDimIdx', '_nameRepeatCount'];\nvar CLONE_PROPERTIES = ['_approximateExtent']; // -----------------------------\n// Internal method declarations:\n// -----------------------------\n\nvar prepareInvertedIndex;\nvar getId;\nvar getIdNameFromStore;\nvar normalizeDimensions;\nvar transferProperties;\nvar cloneListForMapAndSample;\nvar makeIdFromName;\n\nvar SeriesData =\n/** @class */\nfunction () {\n /**\n * @param dimensionsInput.dimensions\n * For example, ['someDimName', {name: 'someDimName', type: 'someDimType'}, ...].\n * Dimensions should be concrete names like x, y, z, lng, lat, angle, radius\n */\n function SeriesData(dimensionsInput, hostModel) {\n this.type = 'list';\n this._dimOmitted = false;\n this._nameList = [];\n this._idList = []; // Models of data option is stored sparse for optimizing memory cost\n // Never used yet (not used yet).\n // private _optionModels: Model[] = [];\n // Global visual properties after visual coding\n\n this._visual = {}; // Global layout properties.\n\n this._layout = {}; // Item visual properties after visual coding\n\n this._itemVisuals = []; // Item layout properties after layout\n\n this._itemLayouts = []; // Graphic elements\n\n this._graphicEls = []; // key: dim, value: extent\n\n this._approximateExtent = {};\n this._calculationInfo = {}; // Having detected that there is data item is non primitive type\n // (in type `OptionDataItemObject`).\n // Like `data: [ { value: xx, itemStyle: {...} }, ...]`\n // At present it only happen in `SOURCE_FORMAT_ORIGINAL`.\n\n this.hasItemOption = false; // Methods that create a new list based on this list should be listed here.\n // Notice that those method should `RETURN` the new list.\n\n this.TRANSFERABLE_METHODS = ['cloneShallow', 'downSample', 'lttbDownSample', 'map']; // Methods that change indices of this list should be listed here.\n\n this.CHANGABLE_METHODS = ['filterSelf', 'selectRange'];\n this.DOWNSAMPLE_METHODS = ['downSample', 'lttbDownSample'];\n var dimensions;\n var assignStoreDimIdx = false;\n\n if (isSeriesDataSchema(dimensionsInput)) {\n dimensions = dimensionsInput.dimensions;\n this._dimOmitted = dimensionsInput.isDimensionOmitted();\n this._schema = dimensionsInput;\n } else {\n assignStoreDimIdx = true;\n dimensions = dimensionsInput;\n }\n\n dimensions = dimensions || ['x', 'y'];\n var dimensionInfos = {};\n var dimensionNames = [];\n var invertedIndicesMap = {};\n var needsHasOwn = false;\n var emptyObj = {};\n\n for (var i = 0; i < dimensions.length; i++) {\n // Use the original dimensions[i], where other flag props may exists.\n var dimInfoInput = dimensions[i];\n var dimensionInfo = zrUtil.isString(dimInfoInput) ? new SeriesDimensionDefine({\n name: dimInfoInput\n }) : !(dimInfoInput instanceof SeriesDimensionDefine) ? new SeriesDimensionDefine(dimInfoInput) : dimInfoInput;\n var dimensionName = dimensionInfo.name;\n dimensionInfo.type = dimensionInfo.type || 'float';\n\n if (!dimensionInfo.coordDim) {\n dimensionInfo.coordDim = dimensionName;\n dimensionInfo.coordDimIndex = 0;\n }\n\n var otherDims = dimensionInfo.otherDims = dimensionInfo.otherDims || {};\n dimensionNames.push(dimensionName);\n dimensionInfos[dimensionName] = dimensionInfo;\n\n if (emptyObj[dimensionName] != null) {\n needsHasOwn = true;\n }\n\n if (dimensionInfo.createInvertedIndices) {\n invertedIndicesMap[dimensionName] = [];\n }\n\n if (otherDims.itemName === 0) {\n this._nameDimIdx = i;\n }\n\n if (otherDims.itemId === 0) {\n this._idDimIdx = i;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n zrUtil.assert(assignStoreDimIdx || dimensionInfo.storeDimIndex >= 0);\n }\n\n if (assignStoreDimIdx) {\n dimensionInfo.storeDimIndex = i;\n }\n }\n\n this.dimensions = dimensionNames;\n this._dimInfos = dimensionInfos;\n\n this._initGetDimensionInfo(needsHasOwn);\n\n this.hostModel = hostModel;\n this._invertedIndicesMap = invertedIndicesMap;\n\n if (this._dimOmitted) {\n var dimIdxToName_1 = this._dimIdxToName = zrUtil.createHashMap();\n zrUtil.each(dimensionNames, function (dimName) {\n dimIdxToName_1.set(dimensionInfos[dimName].storeDimIndex, dimName);\n });\n }\n }\n /**\n *\n * Get concrete dimension name by dimension name or dimension index.\n * If input a dimension name, do not validate whether the dimension name exits.\n *\n * @caution\n * @param dim Must make sure the dimension is `SeriesDimensionLoose`.\n * Because only those dimensions will have auto-generated dimension names if not\n * have a user-specified name, and other dimensions will get a return of null/undefined.\n *\n * @notice Because of this reason, should better use `getDimensionIndex` instead, for examples:\n * ```js\n * const val = data.getStore().get(data.getDimensionIndex(dim), dataIdx);\n * ```\n *\n * @return Concrete dim name.\n */\n\n\n SeriesData.prototype.getDimension = function (dim) {\n var dimIdx = this._recognizeDimIndex(dim);\n\n if (dimIdx == null) {\n return dim;\n }\n\n dimIdx = dim;\n\n if (!this._dimOmitted) {\n return this.dimensions[dimIdx];\n } // Retrieve from series dimension definition because it probably contains\n // generated dimension name (like 'x', 'y').\n\n\n var dimName = this._dimIdxToName.get(dimIdx);\n\n if (dimName != null) {\n return dimName;\n }\n\n var sourceDimDef = this._schema.getSourceDimension(dimIdx);\n\n if (sourceDimDef) {\n return sourceDimDef.name;\n }\n };\n /**\n * Get dimension index in data store. Return -1 if not found.\n * Can be used to index value from getRawValue.\n */\n\n\n SeriesData.prototype.getDimensionIndex = function (dim) {\n var dimIdx = this._recognizeDimIndex(dim);\n\n if (dimIdx != null) {\n return dimIdx;\n }\n\n if (dim == null) {\n return -1;\n }\n\n var dimInfo = this._getDimInfo(dim);\n\n return dimInfo ? dimInfo.storeDimIndex : this._dimOmitted ? this._schema.getSourceDimensionIndex(dim) : -1;\n };\n /**\n * The meanings of the input parameter `dim`:\n *\n * + If dim is a number (e.g., `1`), it means the index of the dimension.\n * For example, `getDimension(0)` will return 'x' or 'lng' or 'radius'.\n * + If dim is a number-like string (e.g., `\"1\"`):\n * + If there is the same concrete dim name defined in `series.dimensions` or `dataset.dimensions`,\n * it means that concrete name.\n * + If not, it will be converted to a number, which means the index of the dimension.\n * (why? because of the backward compatibility. We have been tolerating number-like string in\n * dimension setting, although now it seems that it is not a good idea.)\n * For example, `visualMap[i].dimension: \"1\"` is the same meaning as `visualMap[i].dimension: 1`,\n * if no dimension name is defined as `\"1\"`.\n * + If dim is a not-number-like string, it means the concrete dim name.\n * For example, it can be be default name `\"x\"`, `\"y\"`, `\"z\"`, `\"lng\"`, `\"lat\"`, `\"angle\"`, `\"radius\"`,\n * or customized in `dimensions` property of option like `\"age\"`.\n *\n * @return recognized `DimensionIndex`. Otherwise return null/undefined (means that dim is `DimensionName`).\n */\n\n\n SeriesData.prototype._recognizeDimIndex = function (dim) {\n if (zrUtil.isNumber(dim) // If being a number-like string but not being defined as a dimension name.\n || dim != null && !isNaN(dim) && !this._getDimInfo(dim) && (!this._dimOmitted || this._schema.getSourceDimensionIndex(dim) < 0)) {\n return +dim;\n }\n };\n\n SeriesData.prototype._getStoreDimIndex = function (dim) {\n var dimIdx = this.getDimensionIndex(dim);\n\n if (process.env.NODE_ENV !== 'production') {\n if (dimIdx == null) {\n throw new Error('Unknown dimension ' + dim);\n }\n }\n\n return dimIdx;\n };\n /**\n * Get type and calculation info of particular dimension\n * @param dim\n * Dimension can be concrete names like x, y, z, lng, lat, angle, radius\n * Or a ordinal number. For example getDimensionInfo(0) will return 'x' or 'lng' or 'radius'\n */\n\n\n SeriesData.prototype.getDimensionInfo = function (dim) {\n // Do not clone, because there may be categories in dimInfo.\n return this._getDimInfo(this.getDimension(dim));\n };\n\n SeriesData.prototype._initGetDimensionInfo = function (needsHasOwn) {\n var dimensionInfos = this._dimInfos;\n this._getDimInfo = needsHasOwn ? function (dimName) {\n return dimensionInfos.hasOwnProperty(dimName) ? dimensionInfos[dimName] : undefined;\n } : function (dimName) {\n return dimensionInfos[dimName];\n };\n };\n /**\n * concrete dimension name list on coord.\n */\n\n\n SeriesData.prototype.getDimensionsOnCoord = function () {\n return this._dimSummary.dataDimsOnCoord.slice();\n };\n\n SeriesData.prototype.mapDimension = function (coordDim, idx) {\n var dimensionsSummary = this._dimSummary;\n\n if (idx == null) {\n return dimensionsSummary.encodeFirstDimNotExtra[coordDim];\n }\n\n var dims = dimensionsSummary.encode[coordDim];\n return dims ? dims[idx] : null;\n };\n\n SeriesData.prototype.mapDimensionsAll = function (coordDim) {\n var dimensionsSummary = this._dimSummary;\n var dims = dimensionsSummary.encode[coordDim];\n return (dims || []).slice();\n };\n\n SeriesData.prototype.getStore = function () {\n return this._store;\n };\n /**\n * Initialize from data\n * @param data source or data or data store.\n * @param nameList The name of a datum is used on data diff and\n * default label/tooltip.\n * A name can be specified in encode.itemName,\n * or dataItem.name (only for series option data),\n * or provided in nameList from outside.\n */\n\n\n SeriesData.prototype.initData = function (data, nameList, dimValueGetter) {\n var _this = this;\n\n var store;\n\n if (data instanceof DataStore) {\n store = data;\n }\n\n if (!store) {\n var dimensions = this.dimensions;\n var provider = isSourceInstance(data) || zrUtil.isArrayLike(data) ? new DefaultDataProvider(data, dimensions.length) : data;\n store = new DataStore();\n var dimensionInfos = map(dimensions, function (dimName) {\n return {\n type: _this._dimInfos[dimName].type,\n property: dimName\n };\n });\n store.initData(provider, dimensionInfos, dimValueGetter);\n }\n\n this._store = store; // Reset\n\n this._nameList = (nameList || []).slice();\n this._idList = [];\n this._nameRepeatCount = {};\n\n this._doInit(0, store.count()); // Cache summary info for fast visit. See \"dimensionHelper\".\n // Needs to be initialized after store is prepared.\n\n\n this._dimSummary = summarizeDimensions(this, this._schema);\n this.userOutput = this._dimSummary.userOutput;\n };\n /**\n * Caution: Can be only called on raw data (before `this._indices` created).\n */\n\n\n SeriesData.prototype.appendData = function (data) {\n var range = this._store.appendData(data);\n\n this._doInit(range[0], range[1]);\n };\n /**\n * Caution: Can be only called on raw data (before `this._indices` created).\n * This method does not modify `rawData` (`dataProvider`), but only\n * add values to store.\n *\n * The final count will be increased by `Math.max(values.length, names.length)`.\n *\n * @param values That is the SourceType: 'arrayRows', like\n * [\n * [12, 33, 44],\n * [NaN, 43, 1],\n * ['-', 'asdf', 0]\n * ]\n * Each item is exactly corresponding to a dimension.\n */\n\n\n SeriesData.prototype.appendValues = function (values, names) {\n var _a = this._store.appendValues(values, names.length),\n start = _a.start,\n end = _a.end;\n\n var shouldMakeIdFromName = this._shouldMakeIdFromName();\n\n this._updateOrdinalMeta();\n\n if (names) {\n for (var idx = start; idx < end; idx++) {\n var sourceIdx = idx - start;\n this._nameList[idx] = names[sourceIdx];\n\n if (shouldMakeIdFromName) {\n makeIdFromName(this, idx);\n }\n }\n }\n };\n\n SeriesData.prototype._updateOrdinalMeta = function () {\n var store = this._store;\n var dimensions = this.dimensions;\n\n for (var i = 0; i < dimensions.length; i++) {\n var dimInfo = this._dimInfos[dimensions[i]];\n\n if (dimInfo.ordinalMeta) {\n store.collectOrdinalMeta(dimInfo.storeDimIndex, dimInfo.ordinalMeta);\n }\n }\n };\n\n SeriesData.prototype._shouldMakeIdFromName = function () {\n var provider = this._store.getProvider();\n\n return this._idDimIdx == null && provider.getSource().sourceFormat !== SOURCE_FORMAT_TYPED_ARRAY && !provider.fillStorage;\n };\n\n SeriesData.prototype._doInit = function (start, end) {\n if (start >= end) {\n return;\n }\n\n var store = this._store;\n var provider = store.getProvider();\n\n this._updateOrdinalMeta();\n\n var nameList = this._nameList;\n var idList = this._idList;\n var sourceFormat = provider.getSource().sourceFormat;\n var isFormatOriginal = sourceFormat === SOURCE_FORMAT_ORIGINAL; // Each data item is value\n // [1, 2]\n // 2\n // Bar chart, line chart which uses category axis\n // only gives the 'y' value. 'x' value is the indices of category\n // Use a tempValue to normalize the value to be a (x, y) value\n // If dataItem is {name: ...} or {id: ...}, it has highest priority.\n // This kind of ids and names are always stored `_nameList` and `_idList`.\n\n if (isFormatOriginal && !provider.pure) {\n var sharedDataItem = [];\n\n for (var idx = start; idx < end; idx++) {\n // NOTICE: Try not to write things into dataItem\n var dataItem = provider.getItem(idx, sharedDataItem);\n\n if (!this.hasItemOption && isDataItemOption(dataItem)) {\n this.hasItemOption = true;\n }\n\n if (dataItem) {\n var itemName = dataItem.name;\n\n if (nameList[idx] == null && itemName != null) {\n nameList[idx] = convertOptionIdName(itemName, null);\n }\n\n var itemId = dataItem.id;\n\n if (idList[idx] == null && itemId != null) {\n idList[idx] = convertOptionIdName(itemId, null);\n }\n }\n }\n }\n\n if (this._shouldMakeIdFromName()) {\n for (var idx = start; idx < end; idx++) {\n makeIdFromName(this, idx);\n }\n }\n\n prepareInvertedIndex(this);\n };\n /**\n * PENDING: In fact currently this function is only used to short-circuit\n * the calling of `scale.unionExtentFromData` when data have been filtered by modules\n * like \"dataZoom\". `scale.unionExtentFromData` is used to calculate data extent for series on\n * an axis, but if a \"axis related data filter module\" is used, the extent of the axis have\n * been fixed and no need to calling `scale.unionExtentFromData` actually.\n * But if we add \"custom data filter\" in future, which is not \"axis related\", this method may\n * be still needed.\n *\n * Optimize for the scenario that data is filtered by a given extent.\n * Consider that if data amount is more than hundreds of thousand,\n * extent calculation will cost more than 10ms and the cache will\n * be erased because of the filtering.\n */\n\n\n SeriesData.prototype.getApproximateExtent = function (dim) {\n return this._approximateExtent[dim] || this._store.getDataExtent(this._getStoreDimIndex(dim));\n };\n /**\n * Calculate extent on a filtered data might be time consuming.\n * Approximate extent is only used for: calculate extent of filtered data outside.\n */\n\n\n SeriesData.prototype.setApproximateExtent = function (extent, dim) {\n dim = this.getDimension(dim);\n this._approximateExtent[dim] = extent.slice();\n };\n\n SeriesData.prototype.getCalculationInfo = function (key) {\n return this._calculationInfo[key];\n };\n\n SeriesData.prototype.setCalculationInfo = function (key, value) {\n isObject(key) ? zrUtil.extend(this._calculationInfo, key) : this._calculationInfo[key] = value;\n };\n /**\n * @return Never be null/undefined. `number` will be converted to string. Because:\n * In most cases, name is used in display, where returning a string is more convenient.\n * In other cases, name is used in query (see `indexOfName`), where we can keep the\n * rule that name `2` equals to name `'2'`.\n */\n\n\n SeriesData.prototype.getName = function (idx) {\n var rawIndex = this.getRawIndex(idx);\n var name = this._nameList[rawIndex];\n\n if (name == null && this._nameDimIdx != null) {\n name = getIdNameFromStore(this, this._nameDimIdx, rawIndex);\n }\n\n if (name == null) {\n name = '';\n }\n\n return name;\n };\n\n SeriesData.prototype._getCategory = function (dimIdx, idx) {\n var ordinal = this._store.get(dimIdx, idx);\n\n var ordinalMeta = this._store.getOrdinalMeta(dimIdx);\n\n if (ordinalMeta) {\n return ordinalMeta.categories[ordinal];\n }\n\n return ordinal;\n };\n /**\n * @return Never null/undefined. `number` will be converted to string. Because:\n * In all cases having encountered at present, id is used in making diff comparison, which\n * are usually based on hash map. We can keep the rule that the internal id are always string\n * (treat `2` is the same as `'2'`) to make the related logic simple.\n */\n\n\n SeriesData.prototype.getId = function (idx) {\n return getId(this, this.getRawIndex(idx));\n };\n\n SeriesData.prototype.count = function () {\n return this._store.count();\n };\n /**\n * Get value. Return NaN if idx is out of range.\n *\n * @notice Should better to use `data.getStore().get(dimIndex, dataIdx)` instead.\n */\n\n\n SeriesData.prototype.get = function (dim, idx) {\n var store = this._store;\n var dimInfo = this._dimInfos[dim];\n\n if (dimInfo) {\n return store.get(dimInfo.storeDimIndex, idx);\n }\n };\n /**\n * @notice Should better to use `data.getStore().getByRawIndex(dimIndex, dataIdx)` instead.\n */\n\n\n SeriesData.prototype.getByRawIndex = function (dim, rawIdx) {\n var store = this._store;\n var dimInfo = this._dimInfos[dim];\n\n if (dimInfo) {\n return store.getByRawIndex(dimInfo.storeDimIndex, rawIdx);\n }\n };\n\n SeriesData.prototype.getIndices = function () {\n return this._store.getIndices();\n };\n\n SeriesData.prototype.getDataExtent = function (dim) {\n return this._store.getDataExtent(this._getStoreDimIndex(dim));\n };\n\n SeriesData.prototype.getSum = function (dim) {\n return this._store.getSum(this._getStoreDimIndex(dim));\n };\n\n SeriesData.prototype.getMedian = function (dim) {\n return this._store.getMedian(this._getStoreDimIndex(dim));\n };\n\n SeriesData.prototype.getValues = function (dimensions, idx) {\n var _this = this;\n\n var store = this._store;\n return zrUtil.isArray(dimensions) ? store.getValues(map(dimensions, function (dim) {\n return _this._getStoreDimIndex(dim);\n }), idx) : store.getValues(dimensions);\n };\n /**\n * If value is NaN. Including '-'\n * Only check the coord dimensions.\n */\n\n\n SeriesData.prototype.hasValue = function (idx) {\n var dataDimIndicesOnCoord = this._dimSummary.dataDimIndicesOnCoord;\n\n for (var i = 0, len = dataDimIndicesOnCoord.length; i < len; i++) {\n // Ordinal type originally can be string or number.\n // But when an ordinal type is used on coord, it can\n // not be string but only number. So we can also use isNaN.\n if (isNaN(this._store.get(dataDimIndicesOnCoord[i], idx))) {\n return false;\n }\n }\n\n return true;\n };\n /**\n * Retrieve the index with given name\n */\n\n\n SeriesData.prototype.indexOfName = function (name) {\n for (var i = 0, len = this._store.count(); i < len; i++) {\n if (this.getName(i) === name) {\n return i;\n }\n }\n\n return -1;\n };\n\n SeriesData.prototype.getRawIndex = function (idx) {\n return this._store.getRawIndex(idx);\n };\n\n SeriesData.prototype.indexOfRawIndex = function (rawIndex) {\n return this._store.indexOfRawIndex(rawIndex);\n };\n /**\n * Only support the dimension which inverted index created.\n * Do not support other cases until required.\n * @param dim concrete dim\n * @param value ordinal index\n * @return rawIndex\n */\n\n\n SeriesData.prototype.rawIndexOf = function (dim, value) {\n var invertedIndices = dim && this._invertedIndicesMap[dim];\n\n if (process.env.NODE_ENV !== 'production') {\n if (!invertedIndices) {\n throw new Error('Do not supported yet');\n }\n }\n\n var rawIndex = invertedIndices[value];\n\n if (rawIndex == null || isNaN(rawIndex)) {\n return INDEX_NOT_FOUND;\n }\n\n return rawIndex;\n };\n /**\n * Retrieve the index of nearest value\n * @param dim\n * @param value\n * @param [maxDistance=Infinity]\n * @return If and only if multiple indices has\n * the same value, they are put to the result.\n */\n\n\n SeriesData.prototype.indicesOfNearest = function (dim, value, maxDistance) {\n return this._store.indicesOfNearest(this._getStoreDimIndex(dim), value, maxDistance);\n };\n\n SeriesData.prototype.each = function (dims, cb, ctx) {\n 'use strict';\n\n if (zrUtil.isFunction(dims)) {\n ctx = cb;\n cb = dims;\n dims = [];\n } // ctxCompat just for compat echarts3\n\n\n var fCtx = ctx || this;\n var dimIndices = map(normalizeDimensions(dims), this._getStoreDimIndex, this);\n\n this._store.each(dimIndices, fCtx ? zrUtil.bind(cb, fCtx) : cb);\n };\n\n SeriesData.prototype.filterSelf = function (dims, cb, ctx) {\n 'use strict';\n\n if (zrUtil.isFunction(dims)) {\n ctx = cb;\n cb = dims;\n dims = [];\n } // ctxCompat just for compat echarts3\n\n\n var fCtx = ctx || this;\n var dimIndices = map(normalizeDimensions(dims), this._getStoreDimIndex, this);\n this._store = this._store.filter(dimIndices, fCtx ? zrUtil.bind(cb, fCtx) : cb);\n return this;\n };\n /**\n * Select data in range. (For optimization of filter)\n * (Manually inline code, support 5 million data filtering in data zoom.)\n */\n\n\n SeriesData.prototype.selectRange = function (range) {\n 'use strict';\n\n var _this = this;\n\n var innerRange = {};\n var dims = zrUtil.keys(range);\n var dimIndices = [];\n zrUtil.each(dims, function (dim) {\n var dimIdx = _this._getStoreDimIndex(dim);\n\n innerRange[dimIdx] = range[dim];\n dimIndices.push(dimIdx);\n });\n this._store = this._store.selectRange(innerRange);\n return this;\n };\n /* eslint-enable max-len */\n\n\n SeriesData.prototype.mapArray = function (dims, cb, ctx) {\n 'use strict';\n\n if (zrUtil.isFunction(dims)) {\n ctx = cb;\n cb = dims;\n dims = [];\n } // ctxCompat just for compat echarts3\n\n\n ctx = ctx || this;\n var result = [];\n this.each(dims, function () {\n result.push(cb && cb.apply(this, arguments));\n }, ctx);\n return result;\n };\n\n SeriesData.prototype.map = function (dims, cb, ctx, ctxCompat) {\n 'use strict'; // ctxCompat just for compat echarts3\n\n var fCtx = ctx || ctxCompat || this;\n var dimIndices = map(normalizeDimensions(dims), this._getStoreDimIndex, this);\n var list = cloneListForMapAndSample(this);\n list._store = this._store.map(dimIndices, fCtx ? zrUtil.bind(cb, fCtx) : cb);\n return list;\n };\n\n SeriesData.prototype.modify = function (dims, cb, ctx, ctxCompat) {\n var _this = this; // ctxCompat just for compat echarts3\n\n\n var fCtx = ctx || ctxCompat || this;\n\n if (process.env.NODE_ENV !== 'production') {\n zrUtil.each(normalizeDimensions(dims), function (dim) {\n var dimInfo = _this.getDimensionInfo(dim);\n\n if (!dimInfo.isCalculationCoord) {\n console.error('Danger: only stack dimension can be modified');\n }\n });\n }\n\n var dimIndices = map(normalizeDimensions(dims), this._getStoreDimIndex, this); // If do shallow clone here, if there are too many stacked series,\n // it still cost lots of memory, because `_store.dimensions` are not shared.\n // We should consider there probably be shallow clone happen in each series\n // in consequent filter/map.\n\n this._store.modify(dimIndices, fCtx ? zrUtil.bind(cb, fCtx) : cb);\n };\n /**\n * Large data down sampling on given dimension\n * @param sampleIndex Sample index for name and id\n */\n\n\n SeriesData.prototype.downSample = function (dimension, rate, sampleValue, sampleIndex) {\n var list = cloneListForMapAndSample(this);\n list._store = this._store.downSample(this._getStoreDimIndex(dimension), rate, sampleValue, sampleIndex);\n return list;\n };\n /**\n * Large data down sampling using largest-triangle-three-buckets\n * @param {string} valueDimension\n * @param {number} targetCount\n */\n\n\n SeriesData.prototype.lttbDownSample = function (valueDimension, rate) {\n var list = cloneListForMapAndSample(this);\n list._store = this._store.lttbDownSample(this._getStoreDimIndex(valueDimension), rate);\n return list;\n };\n\n SeriesData.prototype.getRawDataItem = function (idx) {\n return this._store.getRawDataItem(idx);\n };\n /**\n * Get model of one data item.\n */\n // TODO: Type of data item\n\n\n SeriesData.prototype.getItemModel = function (idx) {\n var hostModel = this.hostModel;\n var dataItem = this.getRawDataItem(idx);\n return new Model(dataItem, hostModel, hostModel && hostModel.ecModel);\n };\n /**\n * Create a data differ\n */\n\n\n SeriesData.prototype.diff = function (otherList) {\n var thisList = this;\n return new DataDiffer(otherList ? otherList.getStore().getIndices() : [], this.getStore().getIndices(), function (idx) {\n return getId(otherList, idx);\n }, function (idx) {\n return getId(thisList, idx);\n });\n };\n /**\n * Get visual property.\n */\n\n\n SeriesData.prototype.getVisual = function (key) {\n var visual = this._visual;\n return visual && visual[key];\n };\n\n SeriesData.prototype.setVisual = function (kvObj, val) {\n this._visual = this._visual || {};\n\n if (isObject(kvObj)) {\n zrUtil.extend(this._visual, kvObj);\n } else {\n this._visual[kvObj] = val;\n }\n };\n /**\n * Get visual property of single data item\n */\n // eslint-disable-next-line\n\n\n SeriesData.prototype.getItemVisual = function (idx, key) {\n var itemVisual = this._itemVisuals[idx];\n var val = itemVisual && itemVisual[key];\n\n if (val == null) {\n // Use global visual property\n return this.getVisual(key);\n }\n\n return val;\n };\n /**\n * If exists visual property of single data item\n */\n\n\n SeriesData.prototype.hasItemVisual = function () {\n return this._itemVisuals.length > 0;\n };\n /**\n * Make sure itemVisual property is unique\n */\n // TODO: use key to save visual to reduce memory.\n\n\n SeriesData.prototype.ensureUniqueItemVisual = function (idx, key) {\n var itemVisuals = this._itemVisuals;\n var itemVisual = itemVisuals[idx];\n\n if (!itemVisual) {\n itemVisual = itemVisuals[idx] = {};\n }\n\n var val = itemVisual[key];\n\n if (val == null) {\n val = this.getVisual(key); // TODO Performance?\n\n if (zrUtil.isArray(val)) {\n val = val.slice();\n } else if (isObject(val)) {\n val = zrUtil.extend({}, val);\n }\n\n itemVisual[key] = val;\n }\n\n return val;\n }; // eslint-disable-next-line\n\n\n SeriesData.prototype.setItemVisual = function (idx, key, value) {\n var itemVisual = this._itemVisuals[idx] || {};\n this._itemVisuals[idx] = itemVisual;\n\n if (isObject(key)) {\n zrUtil.extend(itemVisual, key);\n } else {\n itemVisual[key] = value;\n }\n };\n /**\n * Clear itemVisuals and list visual.\n */\n\n\n SeriesData.prototype.clearAllVisual = function () {\n this._visual = {};\n this._itemVisuals = [];\n };\n\n SeriesData.prototype.setLayout = function (key, val) {\n isObject(key) ? zrUtil.extend(this._layout, key) : this._layout[key] = val;\n };\n /**\n * Get layout property.\n */\n\n\n SeriesData.prototype.getLayout = function (key) {\n return this._layout[key];\n };\n /**\n * Get layout of single data item\n */\n\n\n SeriesData.prototype.getItemLayout = function (idx) {\n return this._itemLayouts[idx];\n };\n /**\n * Set layout of single data item\n */\n\n\n SeriesData.prototype.setItemLayout = function (idx, layout, merge) {\n this._itemLayouts[idx] = merge ? zrUtil.extend(this._itemLayouts[idx] || {}, layout) : layout;\n };\n /**\n * Clear all layout of single data item\n */\n\n\n SeriesData.prototype.clearItemLayouts = function () {\n this._itemLayouts.length = 0;\n };\n /**\n * Set graphic element relative to data. It can be set as null\n */\n\n\n SeriesData.prototype.setItemGraphicEl = function (idx, el) {\n var seriesIndex = this.hostModel && this.hostModel.seriesIndex;\n setCommonECData(seriesIndex, this.dataType, idx, el);\n this._graphicEls[idx] = el;\n };\n\n SeriesData.prototype.getItemGraphicEl = function (idx) {\n return this._graphicEls[idx];\n };\n\n SeriesData.prototype.eachItemGraphicEl = function (cb, context) {\n zrUtil.each(this._graphicEls, function (el, idx) {\n if (el) {\n cb && cb.call(context, el, idx);\n }\n });\n };\n /**\n * Shallow clone a new list except visual and layout properties, and graph elements.\n * New list only change the indices.\n */\n\n\n SeriesData.prototype.cloneShallow = function (list) {\n if (!list) {\n list = new SeriesData(this._schema ? this._schema : map(this.dimensions, this._getDimInfo, this), this.hostModel);\n }\n\n transferProperties(list, this);\n list._store = this._store;\n return list;\n };\n /**\n * Wrap some method to add more feature\n */\n\n\n SeriesData.prototype.wrapMethod = function (methodName, injectFunction) {\n var originalMethod = this[methodName];\n\n if (!zrUtil.isFunction(originalMethod)) {\n return;\n }\n\n this.__wrappedMethods = this.__wrappedMethods || [];\n\n this.__wrappedMethods.push(methodName);\n\n this[methodName] = function () {\n var res = originalMethod.apply(this, arguments);\n return injectFunction.apply(this, [res].concat(zrUtil.slice(arguments)));\n };\n }; // ----------------------------------------------------------\n // A work around for internal method visiting private member.\n // ----------------------------------------------------------\n\n\n SeriesData.internalField = function () {\n prepareInvertedIndex = function (data) {\n var invertedIndicesMap = data._invertedIndicesMap;\n zrUtil.each(invertedIndicesMap, function (invertedIndices, dim) {\n var dimInfo = data._dimInfos[dim]; // Currently, only dimensions that has ordinalMeta can create inverted indices.\n\n var ordinalMeta = dimInfo.ordinalMeta;\n var store = data._store;\n\n if (ordinalMeta) {\n invertedIndices = invertedIndicesMap[dim] = new CtorInt32Array(ordinalMeta.categories.length); // The default value of TypedArray is 0. To avoid miss\n // mapping to 0, we should set it as INDEX_NOT_FOUND.\n\n for (var i = 0; i < invertedIndices.length; i++) {\n invertedIndices[i] = INDEX_NOT_FOUND;\n }\n\n for (var i = 0; i < store.count(); i++) {\n // Only support the case that all values are distinct.\n invertedIndices[store.get(dimInfo.storeDimIndex, i)] = i;\n }\n }\n });\n };\n\n getIdNameFromStore = function (data, dimIdx, idx) {\n return convertOptionIdName(data._getCategory(dimIdx, idx), null);\n };\n /**\n * @see the comment of `List['getId']`.\n */\n\n\n getId = function (data, rawIndex) {\n var id = data._idList[rawIndex];\n\n if (id == null && data._idDimIdx != null) {\n id = getIdNameFromStore(data, data._idDimIdx, rawIndex);\n }\n\n if (id == null) {\n id = ID_PREFIX + rawIndex;\n }\n\n return id;\n };\n\n normalizeDimensions = function (dimensions) {\n if (!zrUtil.isArray(dimensions)) {\n dimensions = dimensions != null ? [dimensions] : [];\n }\n\n return dimensions;\n };\n /**\n * Data in excludeDimensions is copied, otherwise transferred.\n */\n\n\n cloneListForMapAndSample = function (original) {\n var list = new SeriesData(original._schema ? original._schema : map(original.dimensions, original._getDimInfo, original), original.hostModel); // FIXME If needs stackedOn, value may already been stacked\n\n transferProperties(list, original);\n return list;\n };\n\n transferProperties = function (target, source) {\n zrUtil.each(TRANSFERABLE_PROPERTIES.concat(source.__wrappedMethods || []), function (propName) {\n if (source.hasOwnProperty(propName)) {\n target[propName] = source[propName];\n }\n });\n target.__wrappedMethods = source.__wrappedMethods;\n zrUtil.each(CLONE_PROPERTIES, function (propName) {\n target[propName] = zrUtil.clone(source[propName]);\n });\n target._calculationInfo = zrUtil.extend({}, source._calculationInfo);\n };\n\n makeIdFromName = function (data, idx) {\n var nameList = data._nameList;\n var idList = data._idList;\n var nameDimIdx = data._nameDimIdx;\n var idDimIdx = data._idDimIdx;\n var name = nameList[idx];\n var id = idList[idx];\n\n if (name == null && nameDimIdx != null) {\n nameList[idx] = name = getIdNameFromStore(data, nameDimIdx, idx);\n }\n\n if (id == null && idDimIdx != null) {\n idList[idx] = id = getIdNameFromStore(data, idDimIdx, idx);\n }\n\n if (id == null && name != null) {\n var nameRepeatCount = data._nameRepeatCount;\n var nmCnt = nameRepeatCount[name] = (nameRepeatCount[name] || 0) + 1;\n id = name;\n\n if (nmCnt > 1) {\n id += '__ec__' + nmCnt;\n }\n\n idList[idx] = id;\n }\n };\n }();\n\n return SeriesData;\n}();\n\nexport default SeriesData;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\n\nvar SeriesDimensionDefine =\n/** @class */\nfunction () {\n /**\n * @param opt All of the fields will be shallow copied.\n */\n function SeriesDimensionDefine(opt) {\n /**\n * The format of `otherDims` is:\n * ```js\n * {\n * tooltip?: number\n * label?: number\n * itemName?: number\n * seriesName?: number\n * }\n * ```\n *\n * A `series.encode` can specified these fields:\n * ```js\n * encode: {\n * // \"3, 1, 5\" is the index of data dimension.\n * tooltip: [3, 1, 5],\n * label: [0, 3],\n * ...\n * }\n * ```\n * `otherDims` is the parse result of the `series.encode` above, like:\n * ```js\n * // Suppose the index of this data dimension is `3`.\n * this.otherDims = {\n * // `3` is at the index `0` of the `encode.tooltip`\n * tooltip: 0,\n * // `3` is at the index `1` of the `encode.label`\n * label: 1\n * };\n * ```\n *\n * This prop should never be `null`/`undefined` after initialized.\n */\n this.otherDims = {};\n\n if (opt != null) {\n zrUtil.extend(this, opt);\n }\n }\n\n return SeriesDimensionDefine;\n}();\n\n;\nexport default SeriesDimensionDefine;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { isTypedArray, clone, createHashMap, isArray, isObject, isArrayLike, hasOwn, assert, each, map, isNumber, isString, keys } from 'zrender/lib/core/util.js';\nimport { SOURCE_FORMAT_ORIGINAL, SERIES_LAYOUT_BY_COLUMN, SOURCE_FORMAT_UNKNOWN, SOURCE_FORMAT_KEYED_COLUMNS, SOURCE_FORMAT_TYPED_ARRAY, SOURCE_FORMAT_ARRAY_ROWS, SOURCE_FORMAT_OBJECT_ROWS, SERIES_LAYOUT_BY_ROW } from '../util/types.js';\nimport { getDataItemValue } from '../util/model.js';\nimport { BE_ORDINAL, guessOrdinal } from './helper/sourceHelper.js';\n; // @inner\n\nvar SourceImpl =\n/** @class */\nfunction () {\n function SourceImpl(fields) {\n this.data = fields.data || (fields.sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS ? {} : []);\n this.sourceFormat = fields.sourceFormat || SOURCE_FORMAT_UNKNOWN; // Visit config\n\n this.seriesLayoutBy = fields.seriesLayoutBy || SERIES_LAYOUT_BY_COLUMN;\n this.startIndex = fields.startIndex || 0;\n this.dimensionsDetectedCount = fields.dimensionsDetectedCount;\n this.metaRawOption = fields.metaRawOption;\n var dimensionsDefine = this.dimensionsDefine = fields.dimensionsDefine;\n\n if (dimensionsDefine) {\n for (var i = 0; i < dimensionsDefine.length; i++) {\n var dim = dimensionsDefine[i];\n\n if (dim.type == null) {\n if (guessOrdinal(this, i) === BE_ORDINAL.Must) {\n dim.type = 'ordinal';\n }\n }\n }\n }\n }\n\n return SourceImpl;\n}();\n\nexport function isSourceInstance(val) {\n return val instanceof SourceImpl;\n}\n/**\n * Create a source from option.\n * NOTE: Created source is immutable. Don't change any properties in it.\n */\n\nexport function createSource(sourceData, thisMetaRawOption, // can be null. If not provided, auto detect it from `sourceData`.\nsourceFormat) {\n sourceFormat = sourceFormat || detectSourceFormat(sourceData);\n var seriesLayoutBy = thisMetaRawOption.seriesLayoutBy;\n var determined = determineSourceDimensions(sourceData, sourceFormat, seriesLayoutBy, thisMetaRawOption.sourceHeader, thisMetaRawOption.dimensions);\n var source = new SourceImpl({\n data: sourceData,\n sourceFormat: sourceFormat,\n seriesLayoutBy: seriesLayoutBy,\n dimensionsDefine: determined.dimensionsDefine,\n startIndex: determined.startIndex,\n dimensionsDetectedCount: determined.dimensionsDetectedCount,\n metaRawOption: clone(thisMetaRawOption)\n });\n return source;\n}\n/**\n * Wrap original series data for some compatibility cases.\n */\n\nexport function createSourceFromSeriesDataOption(data) {\n return new SourceImpl({\n data: data,\n sourceFormat: isTypedArray(data) ? SOURCE_FORMAT_TYPED_ARRAY : SOURCE_FORMAT_ORIGINAL\n });\n}\n/**\n * Clone source but excludes source data.\n */\n\nexport function cloneSourceShallow(source) {\n return new SourceImpl({\n data: source.data,\n sourceFormat: source.sourceFormat,\n seriesLayoutBy: source.seriesLayoutBy,\n dimensionsDefine: clone(source.dimensionsDefine),\n startIndex: source.startIndex,\n dimensionsDetectedCount: source.dimensionsDetectedCount\n });\n}\n/**\n * Note: An empty array will be detected as `SOURCE_FORMAT_ARRAY_ROWS`.\n */\n\nexport function detectSourceFormat(data) {\n var sourceFormat = SOURCE_FORMAT_UNKNOWN;\n\n if (isTypedArray(data)) {\n sourceFormat = SOURCE_FORMAT_TYPED_ARRAY;\n } else if (isArray(data)) {\n // FIXME Whether tolerate null in top level array?\n if (data.length === 0) {\n sourceFormat = SOURCE_FORMAT_ARRAY_ROWS;\n }\n\n for (var i = 0, len = data.length; i < len; i++) {\n var item = data[i];\n\n if (item == null) {\n continue;\n } else if (isArray(item)) {\n sourceFormat = SOURCE_FORMAT_ARRAY_ROWS;\n break;\n } else if (isObject(item)) {\n sourceFormat = SOURCE_FORMAT_OBJECT_ROWS;\n break;\n }\n }\n } else if (isObject(data)) {\n for (var key in data) {\n if (hasOwn(data, key) && isArrayLike(data[key])) {\n sourceFormat = SOURCE_FORMAT_KEYED_COLUMNS;\n break;\n }\n }\n }\n\n return sourceFormat;\n}\n/**\n * Determine the source definitions from data standalone dimensions definitions\n * are not specified.\n */\n\nfunction determineSourceDimensions(data, sourceFormat, seriesLayoutBy, sourceHeader, // standalone raw dimensions definition, like:\n// {\n// dimensions: ['aa', 'bb', { name: 'cc', type: 'time' }]\n// }\n// in `dataset` or `series`\ndimensionsDefine) {\n var dimensionsDetectedCount;\n var startIndex; // PENDING: Could data be null/undefined here?\n // currently, if `dataset.source` not specified, error thrown.\n // if `series.data` not specified, nothing rendered without error thrown.\n // Should test these cases.\n\n if (!data) {\n return {\n dimensionsDefine: normalizeDimensionsOption(dimensionsDefine),\n startIndex: startIndex,\n dimensionsDetectedCount: dimensionsDetectedCount\n };\n }\n\n if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\n var dataArrayRows = data; // Rule: Most of the first line are string: it is header.\n // Caution: consider a line with 5 string and 1 number,\n // it still can not be sure it is a head, because the\n // 5 string may be 5 values of category columns.\n\n if (sourceHeader === 'auto' || sourceHeader == null) {\n arrayRowsTravelFirst(function (val) {\n // '-' is regarded as null/undefined.\n if (val != null && val !== '-') {\n if (isString(val)) {\n startIndex == null && (startIndex = 1);\n } else {\n startIndex = 0;\n }\n } // 10 is an experience number, avoid long loop.\n\n }, seriesLayoutBy, dataArrayRows, 10);\n } else {\n startIndex = isNumber(sourceHeader) ? sourceHeader : sourceHeader ? 1 : 0;\n }\n\n if (!dimensionsDefine && startIndex === 1) {\n dimensionsDefine = [];\n arrayRowsTravelFirst(function (val, index) {\n dimensionsDefine[index] = val != null ? val + '' : '';\n }, seriesLayoutBy, dataArrayRows, Infinity);\n }\n\n dimensionsDetectedCount = dimensionsDefine ? dimensionsDefine.length : seriesLayoutBy === SERIES_LAYOUT_BY_ROW ? dataArrayRows.length : dataArrayRows[0] ? dataArrayRows[0].length : null;\n } else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\n if (!dimensionsDefine) {\n dimensionsDefine = objectRowsCollectDimensions(data);\n }\n } else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\n if (!dimensionsDefine) {\n dimensionsDefine = [];\n each(data, function (colArr, key) {\n dimensionsDefine.push(key);\n });\n }\n } else if (sourceFormat === SOURCE_FORMAT_ORIGINAL) {\n var value0 = getDataItemValue(data[0]);\n dimensionsDetectedCount = isArray(value0) && value0.length || 1;\n } else if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\n if (process.env.NODE_ENV !== 'production') {\n assert(!!dimensionsDefine, 'dimensions must be given if data is TypedArray.');\n }\n }\n\n return {\n startIndex: startIndex,\n dimensionsDefine: normalizeDimensionsOption(dimensionsDefine),\n dimensionsDetectedCount: dimensionsDetectedCount\n };\n}\n\nfunction objectRowsCollectDimensions(data) {\n var firstIndex = 0;\n var obj;\n\n while (firstIndex < data.length && !(obj = data[firstIndex++])) {} // jshint ignore: line\n\n\n if (obj) {\n return keys(obj);\n }\n} // Consider dimensions defined like ['A', 'price', 'B', 'price', 'C', 'price'],\n// which is reasonable. But dimension name is duplicated.\n// Returns undefined or an array contains only object without null/undefined or string.\n\n\nfunction normalizeDimensionsOption(dimensionsDefine) {\n if (!dimensionsDefine) {\n // The meaning of null/undefined is different from empty array.\n return;\n }\n\n var nameMap = createHashMap();\n return map(dimensionsDefine, function (rawItem, index) {\n rawItem = isObject(rawItem) ? rawItem : {\n name: rawItem\n }; // Other fields will be discarded.\n\n var item = {\n name: rawItem.name,\n displayName: rawItem.displayName,\n type: rawItem.type\n }; // User can set null in dimensions.\n // We don't auto specify name, otherwise a given name may\n // cause it to be referred unexpectedly.\n\n if (item.name == null) {\n return item;\n } // Also consider number form like 2012.\n\n\n item.name += ''; // User may also specify displayName.\n // displayName will always exists except user not\n // specified or dim name is not specified or detected.\n // (A auto generated dim name will not be used as\n // displayName).\n\n if (item.displayName == null) {\n item.displayName = item.name;\n }\n\n var exist = nameMap.get(item.name);\n\n if (!exist) {\n nameMap.set(item.name, {\n count: 1\n });\n } else {\n item.name += '-' + exist.count++;\n }\n\n return item;\n });\n}\n\nfunction arrayRowsTravelFirst(cb, seriesLayoutBy, data, maxLoop) {\n if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) {\n for (var i = 0; i < data.length && i < maxLoop; i++) {\n cb(data[i] ? data[i][0] : null, i);\n }\n } else {\n var value0 = data[0] || [];\n\n for (var i = 0; i < value0.length && i < maxLoop; i++) {\n cb(value0[i], i);\n }\n }\n}\n\nexport function shouldRetrieveDataByName(source) {\n var sourceFormat = source.sourceFormat;\n return sourceFormat === SOURCE_FORMAT_OBJECT_ROWS || sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Tree data structure\n */\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport linkSeriesData from './helper/linkSeriesData.js';\nimport SeriesData from './SeriesData.js';\nimport prepareSeriesDataSchema from './helper/createDimensions.js';\nimport { convertOptionIdName } from '../util/model.js';\n\nvar TreeNode =\n/** @class */\nfunction () {\n function TreeNode(name, hostTree) {\n this.depth = 0;\n this.height = 0;\n /**\n * Reference to list item.\n * Do not persistent dataIndex outside,\n * besause it may be changed by list.\n * If dataIndex -1,\n * this node is logical deleted (filtered) in list.\n */\n\n this.dataIndex = -1;\n this.children = [];\n this.viewChildren = [];\n this.isExpand = false;\n this.name = name || '';\n this.hostTree = hostTree;\n }\n /**\n * The node is removed.\n */\n\n\n TreeNode.prototype.isRemoved = function () {\n return this.dataIndex < 0;\n };\n\n TreeNode.prototype.eachNode = function (options, cb, context) {\n if (zrUtil.isFunction(options)) {\n context = cb;\n cb = options;\n options = null;\n }\n\n options = options || {};\n\n if (zrUtil.isString(options)) {\n options = {\n order: options\n };\n }\n\n var order = options.order || 'preorder';\n var children = this[options.attr || 'children'];\n var suppressVisitSub;\n order === 'preorder' && (suppressVisitSub = cb.call(context, this));\n\n for (var i = 0; !suppressVisitSub && i < children.length; i++) {\n children[i].eachNode(options, cb, context);\n }\n\n order === 'postorder' && cb.call(context, this);\n };\n /**\n * Update depth and height of this subtree.\n */\n\n\n TreeNode.prototype.updateDepthAndHeight = function (depth) {\n var height = 0;\n this.depth = depth;\n\n for (var i = 0; i < this.children.length; i++) {\n var child = this.children[i];\n child.updateDepthAndHeight(depth + 1);\n\n if (child.height > height) {\n height = child.height;\n }\n }\n\n this.height = height + 1;\n };\n\n TreeNode.prototype.getNodeById = function (id) {\n if (this.getId() === id) {\n return this;\n }\n\n for (var i = 0, children = this.children, len = children.length; i < len; i++) {\n var res = children[i].getNodeById(id);\n\n if (res) {\n return res;\n }\n }\n };\n\n TreeNode.prototype.contains = function (node) {\n if (node === this) {\n return true;\n }\n\n for (var i = 0, children = this.children, len = children.length; i < len; i++) {\n var res = children[i].contains(node);\n\n if (res) {\n return res;\n }\n }\n };\n /**\n * @param includeSelf Default false.\n * @return order: [root, child, grandchild, ...]\n */\n\n\n TreeNode.prototype.getAncestors = function (includeSelf) {\n var ancestors = [];\n var node = includeSelf ? this : this.parentNode;\n\n while (node) {\n ancestors.push(node);\n node = node.parentNode;\n }\n\n ancestors.reverse();\n return ancestors;\n };\n\n TreeNode.prototype.getAncestorsIndices = function () {\n var indices = [];\n var currNode = this;\n\n while (currNode) {\n indices.push(currNode.dataIndex);\n currNode = currNode.parentNode;\n }\n\n indices.reverse();\n return indices;\n };\n\n TreeNode.prototype.getDescendantIndices = function () {\n var indices = [];\n this.eachNode(function (childNode) {\n indices.push(childNode.dataIndex);\n });\n return indices;\n };\n\n TreeNode.prototype.getValue = function (dimension) {\n var data = this.hostTree.data;\n return data.getStore().get(data.getDimensionIndex(dimension || 'value'), this.dataIndex);\n };\n\n TreeNode.prototype.setLayout = function (layout, merge) {\n this.dataIndex >= 0 && this.hostTree.data.setItemLayout(this.dataIndex, layout, merge);\n };\n /**\n * @return {Object} layout\n */\n\n\n TreeNode.prototype.getLayout = function () {\n return this.hostTree.data.getItemLayout(this.dataIndex);\n }; // @depcrecated\n // getModel(path: S): Model\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n\n\n TreeNode.prototype.getModel = function (path) {\n if (this.dataIndex < 0) {\n return;\n }\n\n var hostTree = this.hostTree;\n var itemModel = hostTree.data.getItemModel(this.dataIndex);\n return itemModel.getModel(path);\n }; // TODO: TYPE More specific model\n\n\n TreeNode.prototype.getLevelModel = function () {\n return (this.hostTree.levelModels || [])[this.depth];\n };\n\n TreeNode.prototype.setVisual = function (key, value) {\n this.dataIndex >= 0 && this.hostTree.data.setItemVisual(this.dataIndex, key, value);\n };\n /**\n * Get item visual\n * FIXME: make return type better\n */\n\n\n TreeNode.prototype.getVisual = function (key) {\n return this.hostTree.data.getItemVisual(this.dataIndex, key);\n };\n\n TreeNode.prototype.getRawIndex = function () {\n return this.hostTree.data.getRawIndex(this.dataIndex);\n };\n\n TreeNode.prototype.getId = function () {\n return this.hostTree.data.getId(this.dataIndex);\n };\n /**\n * index in parent's children\n */\n\n\n TreeNode.prototype.getChildIndex = function () {\n if (this.parentNode) {\n var children = this.parentNode.children;\n\n for (var i = 0; i < children.length; ++i) {\n if (children[i] === this) {\n return i;\n }\n }\n\n return -1;\n }\n\n return -1;\n };\n /**\n * if this is an ancestor of another node\n *\n * @param node another node\n * @return if is ancestor\n */\n\n\n TreeNode.prototype.isAncestorOf = function (node) {\n var parent = node.parentNode;\n\n while (parent) {\n if (parent === this) {\n return true;\n }\n\n parent = parent.parentNode;\n }\n\n return false;\n };\n /**\n * if this is an descendant of another node\n *\n * @param node another node\n * @return if is descendant\n */\n\n\n TreeNode.prototype.isDescendantOf = function (node) {\n return node !== this && node.isAncestorOf(this);\n };\n\n return TreeNode;\n}();\n\nexport { TreeNode };\n;\n\nvar Tree =\n/** @class */\nfunction () {\n function Tree(hostModel) {\n this.type = 'tree';\n this._nodes = [];\n this.hostModel = hostModel;\n }\n\n Tree.prototype.eachNode = function (options, cb, context) {\n this.root.eachNode(options, cb, context);\n };\n\n Tree.prototype.getNodeByDataIndex = function (dataIndex) {\n var rawIndex = this.data.getRawIndex(dataIndex);\n return this._nodes[rawIndex];\n };\n\n Tree.prototype.getNodeById = function (name) {\n return this.root.getNodeById(name);\n };\n /**\n * Update item available by list,\n * when list has been performed options like 'filterSelf' or 'map'.\n */\n\n\n Tree.prototype.update = function () {\n var data = this.data;\n var nodes = this._nodes;\n\n for (var i = 0, len = nodes.length; i < len; i++) {\n nodes[i].dataIndex = -1;\n }\n\n for (var i = 0, len = data.count(); i < len; i++) {\n nodes[data.getRawIndex(i)].dataIndex = i;\n }\n };\n /**\n * Clear all layouts\n */\n\n\n Tree.prototype.clearLayouts = function () {\n this.data.clearItemLayouts();\n };\n /**\n * data node format:\n * {\n * name: ...\n * value: ...\n * children: [\n * {\n * name: ...\n * value: ...\n * children: ...\n * },\n * ...\n * ]\n * }\n */\n\n\n Tree.createTree = function (dataRoot, hostModel, beforeLink) {\n var tree = new Tree(hostModel);\n var listData = [];\n var dimMax = 1;\n buildHierarchy(dataRoot);\n\n function buildHierarchy(dataNode, parentNode) {\n var value = dataNode.value;\n dimMax = Math.max(dimMax, zrUtil.isArray(value) ? value.length : 1);\n listData.push(dataNode);\n var node = new TreeNode(convertOptionIdName(dataNode.name, ''), tree);\n parentNode ? addChild(node, parentNode) : tree.root = node;\n\n tree._nodes.push(node);\n\n var children = dataNode.children;\n\n if (children) {\n for (var i = 0; i < children.length; i++) {\n buildHierarchy(children[i], node);\n }\n }\n }\n\n tree.root.updateDepthAndHeight(0);\n var dimensions = prepareSeriesDataSchema(listData, {\n coordDimensions: ['value'],\n dimensionsCount: dimMax\n }).dimensions;\n var list = new SeriesData(dimensions, hostModel);\n list.initData(listData);\n beforeLink && beforeLink(list);\n linkSeriesData({\n mainData: list,\n struct: tree,\n structAttr: 'tree'\n });\n tree.update();\n return tree;\n };\n\n return Tree;\n}();\n/**\n * It is needed to consider the mess of 'list', 'hostModel' when creating a TreeNote,\n * so this function is not ready and not necessary to be public.\n */\n\n\nfunction addChild(child, node) {\n var children = node.children;\n\n if (child.parentNode === node) {\n return;\n }\n\n children.push(child);\n child.parentNode = node;\n}\n\nexport default Tree;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { createHashMap, isObject, retrieve2 } from 'zrender/lib/core/util.js';\nimport { makeInner } from '../../util/model.js';\nimport { shouldRetrieveDataByName } from '../Source.js';\nvar inner = makeInner();\nvar dimTypeShort = {\n float: 'f',\n int: 'i',\n ordinal: 'o',\n number: 'n',\n time: 't'\n};\n/**\n * Represents the dimension requirement of a series.\n *\n * NOTICE:\n * When there are too many dimensions in dataset and many series, only the used dimensions\n * (i.e., used by coord sys and declared in `series.encode`) are add to `dimensionDefineList`.\n * But users may query data by other unused dimension names.\n * In this case, users can only query data if and only if they have defined dimension names\n * via ec option, so we provide `getDimensionIndexFromSource`, which only query them from\n * `source` dimensions.\n */\n\nvar SeriesDataSchema =\n/** @class */\nfunction () {\n function SeriesDataSchema(opt) {\n this.dimensions = opt.dimensions;\n this._dimOmitted = opt.dimensionOmitted;\n this.source = opt.source;\n this._fullDimCount = opt.fullDimensionCount;\n\n this._updateDimOmitted(opt.dimensionOmitted);\n }\n\n SeriesDataSchema.prototype.isDimensionOmitted = function () {\n return this._dimOmitted;\n };\n\n SeriesDataSchema.prototype._updateDimOmitted = function (dimensionOmitted) {\n this._dimOmitted = dimensionOmitted;\n\n if (!dimensionOmitted) {\n return;\n }\n\n if (!this._dimNameMap) {\n this._dimNameMap = ensureSourceDimNameMap(this.source);\n }\n };\n /**\n * @caution Can only be used when `dimensionOmitted: true`.\n *\n * Get index by user defined dimension name (i.e., not internal generate name).\n * That is, get index from `dimensionsDefine`.\n * If no `dimensionsDefine`, or no name get, return -1.\n */\n\n\n SeriesDataSchema.prototype.getSourceDimensionIndex = function (dimName) {\n return retrieve2(this._dimNameMap.get(dimName), -1);\n };\n /**\n * @caution Can only be used when `dimensionOmitted: true`.\n *\n * Notice: may return `null`/`undefined` if user not specify dimension names.\n */\n\n\n SeriesDataSchema.prototype.getSourceDimension = function (dimIndex) {\n var dimensionsDefine = this.source.dimensionsDefine;\n\n if (dimensionsDefine) {\n return dimensionsDefine[dimIndex];\n }\n };\n\n SeriesDataSchema.prototype.makeStoreSchema = function () {\n var dimCount = this._fullDimCount;\n var willRetrieveDataByName = shouldRetrieveDataByName(this.source);\n var makeHashStrict = !shouldOmitUnusedDimensions(dimCount); // If source don't have dimensions or series don't omit unsed dimensions.\n // Generate from seriesDimList directly\n\n var dimHash = '';\n var dims = [];\n\n for (var fullDimIdx = 0, seriesDimIdx = 0; fullDimIdx < dimCount; fullDimIdx++) {\n var property = void 0;\n var type = void 0;\n var ordinalMeta = void 0;\n var seriesDimDef = this.dimensions[seriesDimIdx]; // The list has been sorted by `storeDimIndex` asc.\n\n if (seriesDimDef && seriesDimDef.storeDimIndex === fullDimIdx) {\n property = willRetrieveDataByName ? seriesDimDef.name : null;\n type = seriesDimDef.type;\n ordinalMeta = seriesDimDef.ordinalMeta;\n seriesDimIdx++;\n } else {\n var sourceDimDef = this.getSourceDimension(fullDimIdx);\n\n if (sourceDimDef) {\n property = willRetrieveDataByName ? sourceDimDef.name : null;\n type = sourceDimDef.type;\n }\n }\n\n dims.push({\n property: property,\n type: type,\n ordinalMeta: ordinalMeta\n }); // If retrieving data by index,\n // use to determine whether data can be shared.\n // (Because in this case there might be no dimension name defined in dataset, but indices always exists).\n // (Indices are always 0, 1, 2, ..., so we can ignore them to shorten the hash).\n // Otherwise if retrieving data by property name (like `data: [{aa: 123, bb: 765}, ...]`),\n // use in hash.\n\n if (willRetrieveDataByName && property != null // For data stack, we have make sure each series has its own dim on this store.\n // So we do not add property to hash to make sure they can share this store.\n && (!seriesDimDef || !seriesDimDef.isCalculationCoord)) {\n dimHash += makeHashStrict // Use escape character '`' in case that property name contains '$'.\n ? property.replace(/\\`/g, '`1').replace(/\\$/g, '`2') // For better performance, when there are large dimensions, tolerant this defects that hardly meet.\n : property;\n }\n\n dimHash += '$';\n dimHash += dimTypeShort[type] || 'f';\n\n if (ordinalMeta) {\n dimHash += ordinalMeta.uid;\n }\n\n dimHash += '$';\n } // Source from endpoint(usually series) will be read differently\n // when seriesLayoutBy or startIndex(which is affected by sourceHeader) are different.\n // So we use this three props as key.\n\n\n var source = this.source;\n var hash = [source.seriesLayoutBy, source.startIndex, dimHash].join('$$');\n return {\n dimensions: dims,\n hash: hash\n };\n };\n\n SeriesDataSchema.prototype.makeOutputDimensionNames = function () {\n var result = [];\n\n for (var fullDimIdx = 0, seriesDimIdx = 0; fullDimIdx < this._fullDimCount; fullDimIdx++) {\n var name_1 = void 0;\n var seriesDimDef = this.dimensions[seriesDimIdx]; // The list has been sorted by `storeDimIndex` asc.\n\n if (seriesDimDef && seriesDimDef.storeDimIndex === fullDimIdx) {\n if (!seriesDimDef.isCalculationCoord) {\n name_1 = seriesDimDef.name;\n }\n\n seriesDimIdx++;\n } else {\n var sourceDimDef = this.getSourceDimension(fullDimIdx);\n\n if (sourceDimDef) {\n name_1 = sourceDimDef.name;\n }\n }\n\n result.push(name_1);\n }\n\n return result;\n };\n\n SeriesDataSchema.prototype.appendCalculationDimension = function (dimDef) {\n this.dimensions.push(dimDef);\n dimDef.isCalculationCoord = true;\n this._fullDimCount++; // If append dimension on a data store, consider the store\n // might be shared by different series, series dimensions not\n // really map to store dimensions.\n\n this._updateDimOmitted(true);\n };\n\n return SeriesDataSchema;\n}();\n\nexport { SeriesDataSchema };\nexport function isSeriesDataSchema(schema) {\n return schema instanceof SeriesDataSchema;\n}\nexport function createDimNameMap(dimsDef) {\n var dataDimNameMap = createHashMap();\n\n for (var i = 0; i < (dimsDef || []).length; i++) {\n var dimDefItemRaw = dimsDef[i];\n var userDimName = isObject(dimDefItemRaw) ? dimDefItemRaw.name : dimDefItemRaw;\n\n if (userDimName != null && dataDimNameMap.get(userDimName) == null) {\n dataDimNameMap.set(userDimName, i);\n }\n }\n\n return dataDimNameMap;\n}\nexport function ensureSourceDimNameMap(source) {\n var innerSource = inner(source);\n return innerSource.dimNameMap || (innerSource.dimNameMap = createDimNameMap(source.dimensionsDefine));\n}\nexport function shouldOmitUnusedDimensions(dimCount) {\n return dimCount > 30;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { VISUAL_DIMENSIONS } from '../../util/types.js';\nimport SeriesDimensionDefine from '../SeriesDimensionDefine.js';\nimport { createHashMap, defaults, each, extend, isObject, isString } from 'zrender/lib/core/util.js';\nimport { createSourceFromSeriesDataOption, isSourceInstance } from '../Source.js';\nimport { CtorInt32Array } from '../DataStore.js';\nimport { normalizeToArray } from '../../util/model.js';\nimport { BE_ORDINAL, guessOrdinal } from './sourceHelper.js';\nimport { createDimNameMap, ensureSourceDimNameMap, SeriesDataSchema, shouldOmitUnusedDimensions } from './SeriesDataSchema.js';\n/**\n * For outside usage compat (like echarts-gl are using it).\n */\n\nexport function createDimensions(source, opt) {\n return prepareSeriesDataSchema(source, opt).dimensions;\n}\n/**\n * This method builds the relationship between:\n * + \"what the coord sys or series requires (see `coordDimensions`)\",\n * + \"what the user defines (in `encode` and `dimensions`, see `opt.dimensionsDefine` and `opt.encodeDefine`)\"\n * + \"what the data source provids (see `source`)\".\n *\n * Some guess strategy will be adapted if user does not define something.\n * If no 'value' dimension specified, the first no-named dimension will be\n * named as 'value'.\n *\n * @return The results are always sorted by `storeDimIndex` asc.\n */\n\nexport default function prepareSeriesDataSchema( // TODO: TYPE completeDimensions type\nsource, opt) {\n if (!isSourceInstance(source)) {\n source = createSourceFromSeriesDataOption(source);\n }\n\n opt = opt || {};\n var sysDims = opt.coordDimensions || [];\n var dimsDef = opt.dimensionsDefine || source.dimensionsDefine || [];\n var coordDimNameMap = createHashMap();\n var resultList = [];\n var dimCount = getDimCount(source, sysDims, dimsDef, opt.dimensionsCount); // Try to ignore unused dimensions if sharing a high dimension datastore\n // 30 is an experience value.\n\n var omitUnusedDimensions = opt.canOmitUnusedDimensions && shouldOmitUnusedDimensions(dimCount);\n var isUsingSourceDimensionsDef = dimsDef === source.dimensionsDefine;\n var dataDimNameMap = isUsingSourceDimensionsDef ? ensureSourceDimNameMap(source) : createDimNameMap(dimsDef);\n var encodeDef = opt.encodeDefine;\n\n if (!encodeDef && opt.encodeDefaulter) {\n encodeDef = opt.encodeDefaulter(source, dimCount);\n }\n\n var encodeDefMap = createHashMap(encodeDef);\n var indicesMap = new CtorInt32Array(dimCount);\n\n for (var i = 0; i < indicesMap.length; i++) {\n indicesMap[i] = -1;\n }\n\n function getResultItem(dimIdx) {\n var idx = indicesMap[dimIdx];\n\n if (idx < 0) {\n var dimDefItemRaw = dimsDef[dimIdx];\n var dimDefItem = isObject(dimDefItemRaw) ? dimDefItemRaw : {\n name: dimDefItemRaw\n };\n var resultItem = new SeriesDimensionDefine();\n var userDimName = dimDefItem.name;\n\n if (userDimName != null && dataDimNameMap.get(userDimName) != null) {\n // Only if `series.dimensions` is defined in option\n // displayName, will be set, and dimension will be displayed vertically in\n // tooltip by default.\n resultItem.name = resultItem.displayName = userDimName;\n }\n\n dimDefItem.type != null && (resultItem.type = dimDefItem.type);\n dimDefItem.displayName != null && (resultItem.displayName = dimDefItem.displayName);\n var newIdx = resultList.length;\n indicesMap[dimIdx] = newIdx;\n resultItem.storeDimIndex = dimIdx;\n resultList.push(resultItem);\n return resultItem;\n }\n\n return resultList[idx];\n }\n\n if (!omitUnusedDimensions) {\n for (var i = 0; i < dimCount; i++) {\n getResultItem(i);\n }\n } // Set `coordDim` and `coordDimIndex` by `encodeDefMap` and normalize `encodeDefMap`.\n\n\n encodeDefMap.each(function (dataDimsRaw, coordDim) {\n var dataDims = normalizeToArray(dataDimsRaw).slice(); // Note: It is allowed that `dataDims.length` is `0`, e.g., options is\n // `{encode: {x: -1, y: 1}}`. Should not filter anything in\n // this case.\n\n if (dataDims.length === 1 && !isString(dataDims[0]) && dataDims[0] < 0) {\n encodeDefMap.set(coordDim, false);\n return;\n }\n\n var validDataDims = encodeDefMap.set(coordDim, []);\n each(dataDims, function (resultDimIdxOrName, idx) {\n // The input resultDimIdx can be dim name or index.\n var resultDimIdx = isString(resultDimIdxOrName) ? dataDimNameMap.get(resultDimIdxOrName) : resultDimIdxOrName;\n\n if (resultDimIdx != null && resultDimIdx < dimCount) {\n validDataDims[idx] = resultDimIdx;\n applyDim(getResultItem(resultDimIdx), coordDim, idx);\n }\n });\n }); // Apply templates and default order from `sysDims`.\n\n var availDimIdx = 0;\n each(sysDims, function (sysDimItemRaw) {\n var coordDim;\n var sysDimItemDimsDef;\n var sysDimItemOtherDims;\n var sysDimItem;\n\n if (isString(sysDimItemRaw)) {\n coordDim = sysDimItemRaw;\n sysDimItem = {};\n } else {\n sysDimItem = sysDimItemRaw;\n coordDim = sysDimItem.name;\n var ordinalMeta = sysDimItem.ordinalMeta;\n sysDimItem.ordinalMeta = null;\n sysDimItem = extend({}, sysDimItem);\n sysDimItem.ordinalMeta = ordinalMeta; // `coordDimIndex` should not be set directly.\n\n sysDimItemDimsDef = sysDimItem.dimsDef;\n sysDimItemOtherDims = sysDimItem.otherDims;\n sysDimItem.name = sysDimItem.coordDim = sysDimItem.coordDimIndex = sysDimItem.dimsDef = sysDimItem.otherDims = null;\n }\n\n var dataDims = encodeDefMap.get(coordDim); // negative resultDimIdx means no need to mapping.\n\n if (dataDims === false) {\n return;\n }\n\n dataDims = normalizeToArray(dataDims); // dimensions provides default dim sequences.\n\n if (!dataDims.length) {\n for (var i = 0; i < (sysDimItemDimsDef && sysDimItemDimsDef.length || 1); i++) {\n while (availDimIdx < dimCount && getResultItem(availDimIdx).coordDim != null) {\n availDimIdx++;\n }\n\n availDimIdx < dimCount && dataDims.push(availDimIdx++);\n }\n } // Apply templates.\n\n\n each(dataDims, function (resultDimIdx, coordDimIndex) {\n var resultItem = getResultItem(resultDimIdx); // Coordinate system has a higher priority on dim type than source.\n\n if (isUsingSourceDimensionsDef && sysDimItem.type != null) {\n resultItem.type = sysDimItem.type;\n }\n\n applyDim(defaults(resultItem, sysDimItem), coordDim, coordDimIndex);\n\n if (resultItem.name == null && sysDimItemDimsDef) {\n var sysDimItemDimsDefItem = sysDimItemDimsDef[coordDimIndex];\n !isObject(sysDimItemDimsDefItem) && (sysDimItemDimsDefItem = {\n name: sysDimItemDimsDefItem\n });\n resultItem.name = resultItem.displayName = sysDimItemDimsDefItem.name;\n resultItem.defaultTooltip = sysDimItemDimsDefItem.defaultTooltip;\n } // FIXME refactor, currently only used in case: {otherDims: {tooltip: false}}\n\n\n sysDimItemOtherDims && defaults(resultItem.otherDims, sysDimItemOtherDims);\n });\n });\n\n function applyDim(resultItem, coordDim, coordDimIndex) {\n if (VISUAL_DIMENSIONS.get(coordDim) != null) {\n resultItem.otherDims[coordDim] = coordDimIndex;\n } else {\n resultItem.coordDim = coordDim;\n resultItem.coordDimIndex = coordDimIndex;\n coordDimNameMap.set(coordDim, true);\n }\n } // Make sure the first extra dim is 'value'.\n\n\n var generateCoord = opt.generateCoord;\n var generateCoordCount = opt.generateCoordCount;\n var fromZero = generateCoordCount != null;\n generateCoordCount = generateCoord ? generateCoordCount || 1 : 0;\n var extra = generateCoord || 'value';\n\n function ifNoNameFillWithCoordName(resultItem) {\n if (resultItem.name == null) {\n // Duplication will be removed in the next step.\n resultItem.name = resultItem.coordDim;\n }\n } // Set dim `name` and other `coordDim` and other props.\n\n\n if (!omitUnusedDimensions) {\n for (var resultDimIdx = 0; resultDimIdx < dimCount; resultDimIdx++) {\n var resultItem = getResultItem(resultDimIdx);\n var coordDim = resultItem.coordDim;\n\n if (coordDim == null) {\n // TODO no need to generate coordDim for isExtraCoord?\n resultItem.coordDim = genCoordDimName(extra, coordDimNameMap, fromZero);\n resultItem.coordDimIndex = 0; // Series specified generateCoord is using out.\n\n if (!generateCoord || generateCoordCount <= 0) {\n resultItem.isExtraCoord = true;\n }\n\n generateCoordCount--;\n }\n\n ifNoNameFillWithCoordName(resultItem);\n\n if (resultItem.type == null && (guessOrdinal(source, resultDimIdx) === BE_ORDINAL.Must // Consider the case:\n // {\n // dataset: {source: [\n // ['2001', 123],\n // ['2002', 456],\n // ...\n // ['The others', 987],\n // ]},\n // series: {type: 'pie'}\n // }\n // The first column should better be treated as a \"ordinal\" although it\n // might not be detected as an \"ordinal\" by `guessOrdinal`.\n || resultItem.isExtraCoord && (resultItem.otherDims.itemName != null || resultItem.otherDims.seriesName != null))) {\n resultItem.type = 'ordinal';\n }\n }\n } else {\n each(resultList, function (resultItem) {\n // PENDING: guessOrdinal or let user specify type: 'ordinal' manually?\n ifNoNameFillWithCoordName(resultItem);\n }); // Sort dimensions: there are some rule that use the last dim as label,\n // and for some latter travel process easier.\n\n resultList.sort(function (item0, item1) {\n return item0.storeDimIndex - item1.storeDimIndex;\n });\n }\n\n removeDuplication(resultList);\n return new SeriesDataSchema({\n source: source,\n dimensions: resultList,\n fullDimensionCount: dimCount,\n dimensionOmitted: omitUnusedDimensions\n });\n}\n\nfunction removeDuplication(result) {\n var duplicationMap = createHashMap();\n\n for (var i = 0; i < result.length; i++) {\n var dim = result[i];\n var dimOriginalName = dim.name;\n var count = duplicationMap.get(dimOriginalName) || 0;\n\n if (count > 0) {\n // Starts from 0.\n dim.name = dimOriginalName + (count - 1);\n }\n\n count++;\n duplicationMap.set(dimOriginalName, count);\n }\n} // ??? TODO\n// Originally detect dimCount by data[0]. Should we\n// optimize it to only by sysDims and dimensions and encode.\n// So only necessary dims will be initialized.\n// But\n// (1) custom series should be considered. where other dims\n// may be visited.\n// (2) sometimes user need to calculate bubble size or use visualMap\n// on other dimensions besides coordSys needed.\n// So, dims that is not used by system, should be shared in data store?\n\n\nfunction getDimCount(source, sysDims, dimsDef, optDimCount) {\n // Note that the result dimCount should not small than columns count\n // of data, otherwise `dataDimNameMap` checking will be incorrect.\n var dimCount = Math.max(source.dimensionsDetectedCount || 1, sysDims.length, dimsDef.length, optDimCount || 0);\n each(sysDims, function (sysDimItem) {\n var sysDimItemDimsDef;\n\n if (isObject(sysDimItem) && (sysDimItemDimsDef = sysDimItem.dimsDef)) {\n dimCount = Math.max(dimCount, sysDimItemDimsDef.length);\n }\n });\n return dimCount;\n}\n\nfunction genCoordDimName(name, map, fromZero) {\n if (fromZero || map.hasKey(name)) {\n var i = 0;\n\n while (map.hasKey(name + i)) {\n i++;\n }\n\n name += i;\n }\n\n map.set(name, true);\n return name;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _a, _b, _c; // TODO\n// ??? refactor? check the outer usage of data provider.\n// merge with defaultDimValueGetter?\n\n\nimport { isTypedArray, extend, assert, each, isObject, bind } from 'zrender/lib/core/util.js';\nimport { getDataItemValue } from '../../util/model.js';\nimport { createSourceFromSeriesDataOption, isSourceInstance } from '../Source.js';\nimport { SOURCE_FORMAT_ORIGINAL, SOURCE_FORMAT_OBJECT_ROWS, SOURCE_FORMAT_KEYED_COLUMNS, SOURCE_FORMAT_TYPED_ARRAY, SOURCE_FORMAT_ARRAY_ROWS, SERIES_LAYOUT_BY_COLUMN, SERIES_LAYOUT_BY_ROW } from '../../util/types.js';\nvar providerMethods;\nvar mountMethods;\n/**\n * If normal array used, mutable chunk size is supported.\n * If typed array used, chunk size must be fixed.\n */\n\nvar DefaultDataProvider =\n/** @class */\nfunction () {\n function DefaultDataProvider(sourceParam, dimSize) {\n // let source: Source;\n var source = !isSourceInstance(sourceParam) ? createSourceFromSeriesDataOption(sourceParam) : sourceParam; // declare source is Source;\n\n this._source = source;\n var data = this._data = source.data; // Typed array. TODO IE10+?\n\n if (source.sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\n if (process.env.NODE_ENV !== 'production') {\n if (dimSize == null) {\n throw new Error('Typed array data must specify dimension size');\n }\n }\n\n this._offset = 0;\n this._dimSize = dimSize;\n this._data = data;\n }\n\n mountMethods(this, data, source);\n }\n\n DefaultDataProvider.prototype.getSource = function () {\n return this._source;\n };\n\n DefaultDataProvider.prototype.count = function () {\n return 0;\n };\n\n DefaultDataProvider.prototype.getItem = function (idx, out) {\n return;\n };\n\n DefaultDataProvider.prototype.appendData = function (newData) {};\n\n DefaultDataProvider.prototype.clean = function () {};\n\n DefaultDataProvider.protoInitialize = function () {\n // PENDING: To avoid potential incompat (e.g., prototype\n // is visited somewhere), still init them on prototype.\n var proto = DefaultDataProvider.prototype;\n proto.pure = false;\n proto.persistent = true;\n }();\n\n DefaultDataProvider.internalField = function () {\n var _a;\n\n mountMethods = function (provider, data, source) {\n var sourceFormat = source.sourceFormat;\n var seriesLayoutBy = source.seriesLayoutBy;\n var startIndex = source.startIndex;\n var dimsDef = source.dimensionsDefine;\n var methods = providerMethods[getMethodMapKey(sourceFormat, seriesLayoutBy)];\n\n if (process.env.NODE_ENV !== 'production') {\n assert(methods, 'Invalide sourceFormat: ' + sourceFormat);\n }\n\n extend(provider, methods);\n\n if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\n provider.getItem = getItemForTypedArray;\n provider.count = countForTypedArray;\n provider.fillStorage = fillStorageForTypedArray;\n } else {\n var rawItemGetter = getRawSourceItemGetter(sourceFormat, seriesLayoutBy);\n provider.getItem = bind(rawItemGetter, null, data, startIndex, dimsDef);\n var rawCounter = getRawSourceDataCounter(sourceFormat, seriesLayoutBy);\n provider.count = bind(rawCounter, null, data, startIndex, dimsDef);\n }\n };\n\n var getItemForTypedArray = function (idx, out) {\n idx = idx - this._offset;\n out = out || [];\n var data = this._data;\n var dimSize = this._dimSize;\n var offset = dimSize * idx;\n\n for (var i = 0; i < dimSize; i++) {\n out[i] = data[offset + i];\n }\n\n return out;\n };\n\n var fillStorageForTypedArray = function (start, end, storage, extent) {\n var data = this._data;\n var dimSize = this._dimSize;\n\n for (var dim = 0; dim < dimSize; dim++) {\n var dimExtent = extent[dim];\n var min = dimExtent[0] == null ? Infinity : dimExtent[0];\n var max = dimExtent[1] == null ? -Infinity : dimExtent[1];\n var count = end - start;\n var arr = storage[dim];\n\n for (var i = 0; i < count; i++) {\n // appendData with TypedArray will always do replace in provider.\n var val = data[i * dimSize + dim];\n arr[start + i] = val;\n val < min && (min = val);\n val > max && (max = val);\n }\n\n dimExtent[0] = min;\n dimExtent[1] = max;\n }\n };\n\n var countForTypedArray = function () {\n return this._data ? this._data.length / this._dimSize : 0;\n };\n\n providerMethods = (_a = {}, _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = {\n pure: true,\n appendData: appendDataSimply\n }, _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = {\n pure: true,\n appendData: function () {\n throw new Error('Do not support appendData when set seriesLayoutBy: \"row\".');\n }\n }, _a[SOURCE_FORMAT_OBJECT_ROWS] = {\n pure: true,\n appendData: appendDataSimply\n }, _a[SOURCE_FORMAT_KEYED_COLUMNS] = {\n pure: true,\n appendData: function (newData) {\n var data = this._data;\n each(newData, function (newCol, key) {\n var oldCol = data[key] || (data[key] = []);\n\n for (var i = 0; i < (newCol || []).length; i++) {\n oldCol.push(newCol[i]);\n }\n });\n }\n }, _a[SOURCE_FORMAT_ORIGINAL] = {\n appendData: appendDataSimply\n }, _a[SOURCE_FORMAT_TYPED_ARRAY] = {\n persistent: false,\n pure: true,\n appendData: function (newData) {\n if (process.env.NODE_ENV !== 'production') {\n assert(isTypedArray(newData), 'Added data must be TypedArray if data in initialization is TypedArray');\n }\n\n this._data = newData;\n },\n // Clean self if data is already used.\n clean: function () {\n // PENDING\n this._offset += this.count();\n this._data = null;\n }\n }, _a);\n\n function appendDataSimply(newData) {\n for (var i = 0; i < newData.length; i++) {\n this._data.push(newData[i]);\n }\n }\n }();\n\n return DefaultDataProvider;\n}();\n\nexport { DefaultDataProvider };\n\nvar getItemSimply = function (rawData, startIndex, dimsDef, idx) {\n return rawData[idx];\n};\n\nvar rawSourceItemGetterMap = (_a = {}, _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = function (rawData, startIndex, dimsDef, idx) {\n return rawData[idx + startIndex];\n}, _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = function (rawData, startIndex, dimsDef, idx, out) {\n idx += startIndex;\n var item = out || [];\n var data = rawData;\n\n for (var i = 0; i < data.length; i++) {\n var row = data[i];\n item[i] = row ? row[idx] : null;\n }\n\n return item;\n}, _a[SOURCE_FORMAT_OBJECT_ROWS] = getItemSimply, _a[SOURCE_FORMAT_KEYED_COLUMNS] = function (rawData, startIndex, dimsDef, idx, out) {\n var item = out || [];\n\n for (var i = 0; i < dimsDef.length; i++) {\n var dimName = dimsDef[i].name;\n\n if (process.env.NODE_ENV !== 'production') {\n if (dimName == null) {\n throw new Error();\n }\n }\n\n var col = rawData[dimName];\n item[i] = col ? col[idx] : null;\n }\n\n return item;\n}, _a[SOURCE_FORMAT_ORIGINAL] = getItemSimply, _a);\nexport function getRawSourceItemGetter(sourceFormat, seriesLayoutBy) {\n var method = rawSourceItemGetterMap[getMethodMapKey(sourceFormat, seriesLayoutBy)];\n\n if (process.env.NODE_ENV !== 'production') {\n assert(method, 'Do not support get item on \"' + sourceFormat + '\", \"' + seriesLayoutBy + '\".');\n }\n\n return method;\n}\n\nvar countSimply = function (rawData, startIndex, dimsDef) {\n return rawData.length;\n};\n\nvar rawSourceDataCounterMap = (_b = {}, _b[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = function (rawData, startIndex, dimsDef) {\n return Math.max(0, rawData.length - startIndex);\n}, _b[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = function (rawData, startIndex, dimsDef) {\n var row = rawData[0];\n return row ? Math.max(0, row.length - startIndex) : 0;\n}, _b[SOURCE_FORMAT_OBJECT_ROWS] = countSimply, _b[SOURCE_FORMAT_KEYED_COLUMNS] = function (rawData, startIndex, dimsDef) {\n var dimName = dimsDef[0].name;\n\n if (process.env.NODE_ENV !== 'production') {\n if (dimName == null) {\n throw new Error();\n }\n }\n\n var col = rawData[dimName];\n return col ? col.length : 0;\n}, _b[SOURCE_FORMAT_ORIGINAL] = countSimply, _b);\nexport function getRawSourceDataCounter(sourceFormat, seriesLayoutBy) {\n var method = rawSourceDataCounterMap[getMethodMapKey(sourceFormat, seriesLayoutBy)];\n\n if (process.env.NODE_ENV !== 'production') {\n assert(method, 'Do not support count on \"' + sourceFormat + '\", \"' + seriesLayoutBy + '\".');\n }\n\n return method;\n}\n\nvar getRawValueSimply = function (dataItem, dimIndex, property) {\n return dataItem[dimIndex];\n};\n\nvar rawSourceValueGetterMap = (_c = {}, _c[SOURCE_FORMAT_ARRAY_ROWS] = getRawValueSimply, _c[SOURCE_FORMAT_OBJECT_ROWS] = function (dataItem, dimIndex, property) {\n return dataItem[property];\n}, _c[SOURCE_FORMAT_KEYED_COLUMNS] = getRawValueSimply, _c[SOURCE_FORMAT_ORIGINAL] = function (dataItem, dimIndex, property) {\n // FIXME: In some case (markpoint in geo (geo-map.html)),\n // dataItem is {coord: [...]}\n var value = getDataItemValue(dataItem);\n return !(value instanceof Array) ? value : value[dimIndex];\n}, _c[SOURCE_FORMAT_TYPED_ARRAY] = getRawValueSimply, _c);\nexport function getRawSourceValueGetter(sourceFormat) {\n var method = rawSourceValueGetterMap[sourceFormat];\n\n if (process.env.NODE_ENV !== 'production') {\n assert(method, 'Do not support get value on \"' + sourceFormat + '\".');\n }\n\n return method;\n}\n\nfunction getMethodMapKey(sourceFormat, seriesLayoutBy) {\n return sourceFormat === SOURCE_FORMAT_ARRAY_ROWS ? sourceFormat + '_' + seriesLayoutBy : sourceFormat;\n} // ??? FIXME can these logic be more neat: getRawValue, getRawDataItem,\n// Consider persistent.\n// Caution: why use raw value to display on label or tooltip?\n// A reason is to avoid format. For example time value we do not know\n// how to format is expected. More over, if stack is used, calculated\n// value may be 0.91000000001, which have brings trouble to display.\n// TODO: consider how to treat null/undefined/NaN when display?\n\n\nexport function retrieveRawValue(data, dataIndex, // If dimIndex is null/undefined, return OptionDataItem.\n// Otherwise, return OptionDataValue.\ndim) {\n if (!data) {\n return;\n } // Consider data may be not persistent.\n\n\n var dataItem = data.getRawDataItem(dataIndex);\n\n if (dataItem == null) {\n return;\n }\n\n var store = data.getStore();\n var sourceFormat = store.getSource().sourceFormat;\n\n if (dim != null) {\n var dimIndex = data.getDimensionIndex(dim);\n var property = store.getDimensionProperty(dimIndex);\n return getRawSourceValueGetter(sourceFormat)(dataItem, dimIndex, property);\n } else {\n var result = dataItem;\n\n if (sourceFormat === SOURCE_FORMAT_ORIGINAL) {\n result = getDataItemValue(dataItem);\n }\n\n return result;\n }\n}\n/**\n * Compatible with some cases (in pie, map) like:\n * data: [{name: 'xx', value: 5, selected: true}, ...]\n * where only sourceFormat is 'original' and 'objectRows' supported.\n *\n * // TODO\n * Supported detail options in data item when using 'arrayRows'.\n *\n * @param data\n * @param dataIndex\n * @param attr like 'selected'\n */\n\nexport function retrieveRawAttr(data, dataIndex, attr) {\n if (!data) {\n return;\n }\n\n var sourceFormat = data.getStore().getSource().sourceFormat;\n\n if (sourceFormat !== SOURCE_FORMAT_ORIGINAL && sourceFormat !== SOURCE_FORMAT_OBJECT_ROWS) {\n return;\n }\n\n var dataItem = data.getRawDataItem(dataIndex);\n\n if (sourceFormat === SOURCE_FORMAT_ORIGINAL && !isObject(dataItem)) {\n dataItem = null;\n }\n\n if (dataItem) {\n return dataItem[attr];\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { each, isString } from 'zrender/lib/core/util.js';\nimport { isSeriesDataSchema } from './SeriesDataSchema.js';\n/**\n * Note that it is too complicated to support 3d stack by value\n * (have to create two-dimension inverted index), so in 3d case\n * we just support that stacked by index.\n *\n * @param seriesModel\n * @param dimensionsInput The same as the input of .\n * The input will be modified.\n * @param opt\n * @param opt.stackedCoordDimension Specify a coord dimension if needed.\n * @param opt.byIndex=false\n * @return calculationInfo\n * {\n * stackedDimension: string\n * stackedByDimension: string\n * isStackedByIndex: boolean\n * stackedOverDimension: string\n * stackResultDimension: string\n * }\n */\n\nexport function enableDataStack(seriesModel, dimensionsInput, opt) {\n opt = opt || {};\n var byIndex = opt.byIndex;\n var stackedCoordDimension = opt.stackedCoordDimension;\n var dimensionDefineList;\n var schema;\n var store;\n\n if (isLegacyDimensionsInput(dimensionsInput)) {\n dimensionDefineList = dimensionsInput;\n } else {\n schema = dimensionsInput.schema;\n dimensionDefineList = schema.dimensions;\n store = dimensionsInput.store;\n } // Compatibal: when `stack` is set as '', do not stack.\n\n\n var mayStack = !!(seriesModel && seriesModel.get('stack'));\n var stackedByDimInfo;\n var stackedDimInfo;\n var stackResultDimension;\n var stackedOverDimension;\n each(dimensionDefineList, function (dimensionInfo, index) {\n if (isString(dimensionInfo)) {\n dimensionDefineList[index] = dimensionInfo = {\n name: dimensionInfo\n };\n }\n\n if (mayStack && !dimensionInfo.isExtraCoord) {\n // Find the first ordinal dimension as the stackedByDimInfo.\n if (!byIndex && !stackedByDimInfo && dimensionInfo.ordinalMeta) {\n stackedByDimInfo = dimensionInfo;\n } // Find the first stackable dimension as the stackedDimInfo.\n\n\n if (!stackedDimInfo && dimensionInfo.type !== 'ordinal' && dimensionInfo.type !== 'time' && (!stackedCoordDimension || stackedCoordDimension === dimensionInfo.coordDim)) {\n stackedDimInfo = dimensionInfo;\n }\n }\n });\n\n if (stackedDimInfo && !byIndex && !stackedByDimInfo) {\n // Compatible with previous design, value axis (time axis) only stack by index.\n // It may make sense if the user provides elaborately constructed data.\n byIndex = true;\n } // Add stack dimension, they can be both calculated by coordinate system in `unionExtent`.\n // That put stack logic in List is for using conveniently in echarts extensions, but it\n // might not be a good way.\n\n\n if (stackedDimInfo) {\n // Use a weird name that not duplicated with other names.\n // Also need to use seriesModel.id as postfix because different\n // series may share same data store. The stack dimension needs to be distinguished.\n stackResultDimension = '__\\0ecstackresult_' + seriesModel.id;\n stackedOverDimension = '__\\0ecstackedover_' + seriesModel.id; // Create inverted index to fast query index by value.\n\n if (stackedByDimInfo) {\n stackedByDimInfo.createInvertedIndices = true;\n }\n\n var stackedDimCoordDim_1 = stackedDimInfo.coordDim;\n var stackedDimType = stackedDimInfo.type;\n var stackedDimCoordIndex_1 = 0;\n each(dimensionDefineList, function (dimensionInfo) {\n if (dimensionInfo.coordDim === stackedDimCoordDim_1) {\n stackedDimCoordIndex_1++;\n }\n });\n var stackedOverDimensionDefine = {\n name: stackResultDimension,\n coordDim: stackedDimCoordDim_1,\n coordDimIndex: stackedDimCoordIndex_1,\n type: stackedDimType,\n isExtraCoord: true,\n isCalculationCoord: true,\n storeDimIndex: dimensionDefineList.length\n };\n var stackResultDimensionDefine = {\n name: stackedOverDimension,\n // This dimension contains stack base (generally, 0), so do not set it as\n // `stackedDimCoordDim` to avoid extent calculation, consider log scale.\n coordDim: stackedOverDimension,\n coordDimIndex: stackedDimCoordIndex_1 + 1,\n type: stackedDimType,\n isExtraCoord: true,\n isCalculationCoord: true,\n storeDimIndex: dimensionDefineList.length + 1\n };\n\n if (schema) {\n if (store) {\n stackedOverDimensionDefine.storeDimIndex = store.ensureCalculationDimension(stackedOverDimension, stackedDimType);\n stackResultDimensionDefine.storeDimIndex = store.ensureCalculationDimension(stackResultDimension, stackedDimType);\n }\n\n schema.appendCalculationDimension(stackedOverDimensionDefine);\n schema.appendCalculationDimension(stackResultDimensionDefine);\n } else {\n dimensionDefineList.push(stackedOverDimensionDefine);\n dimensionDefineList.push(stackResultDimensionDefine);\n }\n }\n\n return {\n stackedDimension: stackedDimInfo && stackedDimInfo.name,\n stackedByDimension: stackedByDimInfo && stackedByDimInfo.name,\n isStackedByIndex: byIndex,\n stackedOverDimension: stackedOverDimension,\n stackResultDimension: stackResultDimension\n };\n}\n\nfunction isLegacyDimensionsInput(dimensionsInput) {\n return !isSeriesDataSchema(dimensionsInput.schema);\n}\n\nexport function isDimensionStacked(data, stackedDim) {\n // Each single series only maps to one pair of axis. So we do not need to\n // check stackByDim, whatever stacked by a dimension or stacked by index.\n return !!stackedDim && stackedDim === data.getCalculationInfo('stackedDimension');\n}\nexport function getStackedDimension(data, targetDim) {\n return isDimensionStacked(data, targetDim) ? data.getCalculationInfo('stackResultDimension') : targetDim;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { parseDate, numericToNumber } from '../../util/number.js';\nimport { createHashMap, trim, hasOwn, isString, isNumber } from 'zrender/lib/core/util.js';\nimport { throwError } from '../../util/log.js';\n/**\n * Convert raw the value in to inner value in List.\n *\n * [Performance sensitive]\n *\n * [Caution]: this is the key logic of user value parser.\n * For backward compatibility, do not modify it until you have to!\n */\n\nexport function parseDataValue(value, // For high performance, do not omit the second param.\nopt) {\n // Performance sensitive.\n var dimType = opt && opt.type;\n\n if (dimType === 'ordinal') {\n // If given value is a category string\n return value;\n }\n\n if (dimType === 'time' // spead up when using timestamp\n && !isNumber(value) && value != null && value !== '-') {\n value = +parseDate(value);\n } // dimType defaults 'number'.\n // If dimType is not ordinal and value is null or undefined or NaN or '-',\n // parse to NaN.\n // number-like string (like ' 123 ') can be converted to a number.\n // where null/undefined or other string will be converted to NaN.\n\n\n return value == null || value === '' ? NaN // If string (like '-'), using '+' parse to NaN\n // If object, also parse to NaN\n : +value;\n}\n;\nvar valueParserMap = createHashMap({\n 'number': function (val) {\n // Do not use `numericToNumber` here. We have `numericToNumber` by default.\n // Here the number parser can have loose rule:\n // enable to cut suffix: \"120px\" => 120, \"14%\" => 14.\n return parseFloat(val);\n },\n 'time': function (val) {\n // return timestamp.\n return +parseDate(val);\n },\n 'trim': function (val) {\n return isString(val) ? trim(val) : val;\n }\n});\nexport function getRawValueParser(type) {\n return valueParserMap.get(type);\n}\nvar ORDER_COMPARISON_OP_MAP = {\n lt: function (lval, rval) {\n return lval < rval;\n },\n lte: function (lval, rval) {\n return lval <= rval;\n },\n gt: function (lval, rval) {\n return lval > rval;\n },\n gte: function (lval, rval) {\n return lval >= rval;\n }\n};\n\nvar FilterOrderComparator =\n/** @class */\nfunction () {\n function FilterOrderComparator(op, rval) {\n if (!isNumber(rval)) {\n var errMsg = '';\n\n if (process.env.NODE_ENV !== 'production') {\n errMsg = 'rvalue of \"<\", \">\", \"<=\", \">=\" can only be number in filter.';\n }\n\n throwError(errMsg);\n }\n\n this._opFn = ORDER_COMPARISON_OP_MAP[op];\n this._rvalFloat = numericToNumber(rval);\n } // Performance sensitive.\n\n\n FilterOrderComparator.prototype.evaluate = function (lval) {\n // Most cases is 'number', and typeof maybe 10 times faseter than parseFloat.\n return isNumber(lval) ? this._opFn(lval, this._rvalFloat) : this._opFn(numericToNumber(lval), this._rvalFloat);\n };\n\n return FilterOrderComparator;\n}();\n\nvar SortOrderComparator =\n/** @class */\nfunction () {\n /**\n * @param order by default: 'asc'\n * @param incomparable by default: Always on the tail.\n * That is, if 'asc' => 'max', if 'desc' => 'min'\n * See the definition of \"incomparable\" in [SORT_COMPARISON_RULE].\n */\n function SortOrderComparator(order, incomparable) {\n var isDesc = order === 'desc';\n this._resultLT = isDesc ? 1 : -1;\n\n if (incomparable == null) {\n incomparable = isDesc ? 'min' : 'max';\n }\n\n this._incomparable = incomparable === 'min' ? -Infinity : Infinity;\n } // See [SORT_COMPARISON_RULE].\n // Performance sensitive.\n\n\n SortOrderComparator.prototype.evaluate = function (lval, rval) {\n // Most cases is 'number', and typeof maybe 10 times faseter than parseFloat.\n var lvalFloat = isNumber(lval) ? lval : numericToNumber(lval);\n var rvalFloat = isNumber(rval) ? rval : numericToNumber(rval);\n var lvalNotNumeric = isNaN(lvalFloat);\n var rvalNotNumeric = isNaN(rvalFloat);\n\n if (lvalNotNumeric) {\n lvalFloat = this._incomparable;\n }\n\n if (rvalNotNumeric) {\n rvalFloat = this._incomparable;\n }\n\n if (lvalNotNumeric && rvalNotNumeric) {\n var lvalIsStr = isString(lval);\n var rvalIsStr = isString(rval);\n\n if (lvalIsStr) {\n lvalFloat = rvalIsStr ? lval : 0;\n }\n\n if (rvalIsStr) {\n rvalFloat = lvalIsStr ? rval : 0;\n }\n }\n\n return lvalFloat < rvalFloat ? this._resultLT : lvalFloat > rvalFloat ? -this._resultLT : 0;\n };\n\n return SortOrderComparator;\n}();\n\nexport { SortOrderComparator };\n\nvar FilterEqualityComparator =\n/** @class */\nfunction () {\n function FilterEqualityComparator(isEq, rval) {\n this._rval = rval;\n this._isEQ = isEq;\n this._rvalTypeof = typeof rval;\n this._rvalFloat = numericToNumber(rval);\n } // Performance sensitive.\n\n\n FilterEqualityComparator.prototype.evaluate = function (lval) {\n var eqResult = lval === this._rval;\n\n if (!eqResult) {\n var lvalTypeof = typeof lval;\n\n if (lvalTypeof !== this._rvalTypeof && (lvalTypeof === 'number' || this._rvalTypeof === 'number')) {\n eqResult = numericToNumber(lval) === this._rvalFloat;\n }\n }\n\n return this._isEQ ? eqResult : !eqResult;\n };\n\n return FilterEqualityComparator;\n}();\n/**\n * [FILTER_COMPARISON_RULE]\n * `lt`|`lte`|`gt`|`gte`:\n * + rval must be a number. And lval will be converted to number (`numericToNumber`) to compare.\n * `eq`:\n * + If same type, compare with `===`.\n * + If there is one number, convert to number (`numericToNumber`) to compare.\n * + Else return `false`.\n * `ne`:\n * + Not `eq`.\n *\n *\n * [SORT_COMPARISON_RULE]\n * All the values are grouped into three categories:\n * + \"numeric\" (number and numeric string)\n * + \"non-numeric-string\" (string that excluding numeric string)\n * + \"others\"\n * \"numeric\" vs \"numeric\": values are ordered by number order.\n * \"non-numeric-string\" vs \"non-numeric-string\": values are ordered by ES spec (#sec-abstract-relational-comparison).\n * \"others\" vs \"others\": do not change order (always return 0).\n * \"numeric\" vs \"non-numeric-string\": \"non-numeric-string\" is treated as \"incomparable\".\n * \"number\" vs \"others\": \"others\" is treated as \"incomparable\".\n * \"non-numeric-string\" vs \"others\": \"others\" is treated as \"incomparable\".\n * \"incomparable\" will be seen as -Infinity or Infinity (depends on the settings).\n * MEMO:\n * Non-numeric string sort makes sense when we need to put the items with the same tag together.\n * But if we support string sort, we still need to avoid the misleading like `'2' > '12'`,\n * So we treat \"numeric-string\" sorted by number order rather than string comparison.\n *\n *\n * [CHECK_LIST_OF_THE_RULE_DESIGN]\n * + Do not support string comparison until required. And also need to\n * avoid the misleading of \"2\" > \"12\".\n * + Should avoid the misleading case:\n * `\" 22 \" gte \"22\"` is `true` but `\" 22 \" eq \"22\"` is `false`.\n * + JS bad case should be avoided: null <= 0, [] <= 0, ' ' <= 0, ...\n * + Only \"numeric\" can be converted to comparable number, otherwise converted to NaN.\n * See `util/number.ts#numericToNumber`.\n *\n * @return If `op` is not `RelationalOperator`, return null;\n */\n\n\nexport function createFilterComparator(op, rval) {\n return op === 'eq' || op === 'ne' ? new FilterEqualityComparator(op === 'eq', rval) : hasOwn(ORDER_COMPARISON_OP_MAP, op) ? new FilterOrderComparator(op, rval) : null;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { each, createHashMap, assert, map } from 'zrender/lib/core/util.js';\nimport { VISUAL_DIMENSIONS } from '../../util/types.js';\n\nvar DimensionUserOuput =\n/** @class */\nfunction () {\n function DimensionUserOuput(encode, dimRequest) {\n this._encode = encode;\n this._schema = dimRequest;\n }\n\n DimensionUserOuput.prototype.get = function () {\n return {\n // Do not generate full dimension name until fist used.\n fullDimensions: this._getFullDimensionNames(),\n encode: this._encode\n };\n };\n /**\n * Get all data store dimension names.\n * Theoretically a series data store is defined both by series and used dataset (if any).\n * If some dimensions are omitted for performance reason in `this.dimensions`,\n * the dimension name may not be auto-generated if user does not specify a dimension name.\n * In this case, the dimension name is `null`/`undefined`.\n */\n\n\n DimensionUserOuput.prototype._getFullDimensionNames = function () {\n if (!this._cachedDimNames) {\n this._cachedDimNames = this._schema ? this._schema.makeOutputDimensionNames() : [];\n }\n\n return this._cachedDimNames;\n };\n\n return DimensionUserOuput;\n}();\n\n;\nexport function summarizeDimensions(data, schema) {\n var summary = {};\n var encode = summary.encode = {};\n var notExtraCoordDimMap = createHashMap();\n var defaultedLabel = [];\n var defaultedTooltip = [];\n var userOutputEncode = {};\n each(data.dimensions, function (dimName) {\n var dimItem = data.getDimensionInfo(dimName);\n var coordDim = dimItem.coordDim;\n\n if (coordDim) {\n if (process.env.NODE_ENV !== 'production') {\n assert(VISUAL_DIMENSIONS.get(coordDim) == null);\n }\n\n var coordDimIndex = dimItem.coordDimIndex;\n getOrCreateEncodeArr(encode, coordDim)[coordDimIndex] = dimName;\n\n if (!dimItem.isExtraCoord) {\n notExtraCoordDimMap.set(coordDim, 1); // Use the last coord dim (and label friendly) as default label,\n // because when dataset is used, it is hard to guess which dimension\n // can be value dimension. If both show x, y on label is not look good,\n // and conventionally y axis is focused more.\n\n if (mayLabelDimType(dimItem.type)) {\n defaultedLabel[0] = dimName;\n } // User output encode do not contain generated coords.\n // And it only has index. User can use index to retrieve value from the raw item array.\n\n\n getOrCreateEncodeArr(userOutputEncode, coordDim)[coordDimIndex] = data.getDimensionIndex(dimItem.name);\n }\n\n if (dimItem.defaultTooltip) {\n defaultedTooltip.push(dimName);\n }\n }\n\n VISUAL_DIMENSIONS.each(function (v, otherDim) {\n var encodeArr = getOrCreateEncodeArr(encode, otherDim);\n var dimIndex = dimItem.otherDims[otherDim];\n\n if (dimIndex != null && dimIndex !== false) {\n encodeArr[dimIndex] = dimItem.name;\n }\n });\n });\n var dataDimsOnCoord = [];\n var encodeFirstDimNotExtra = {};\n notExtraCoordDimMap.each(function (v, coordDim) {\n var dimArr = encode[coordDim];\n encodeFirstDimNotExtra[coordDim] = dimArr[0]; // Not necessary to remove duplicate, because a data\n // dim canot on more than one coordDim.\n\n dataDimsOnCoord = dataDimsOnCoord.concat(dimArr);\n });\n summary.dataDimsOnCoord = dataDimsOnCoord;\n summary.dataDimIndicesOnCoord = map(dataDimsOnCoord, function (dimName) {\n return data.getDimensionInfo(dimName).storeDimIndex;\n });\n summary.encodeFirstDimNotExtra = encodeFirstDimNotExtra;\n var encodeLabel = encode.label; // FIXME `encode.label` is not recommended, because formatter cannot be set\n // in this way. Use label.formatter instead. Maybe remove this approach someday.\n\n if (encodeLabel && encodeLabel.length) {\n defaultedLabel = encodeLabel.slice();\n }\n\n var encodeTooltip = encode.tooltip;\n\n if (encodeTooltip && encodeTooltip.length) {\n defaultedTooltip = encodeTooltip.slice();\n } else if (!defaultedTooltip.length) {\n defaultedTooltip = defaultedLabel.slice();\n }\n\n encode.defaultedLabel = defaultedLabel;\n encode.defaultedTooltip = defaultedTooltip;\n summary.userOutput = new DimensionUserOuput(userOutputEncode, schema);\n return summary;\n}\n\nfunction getOrCreateEncodeArr(encode, dim) {\n if (!encode.hasOwnProperty(dim)) {\n encode[dim] = [];\n }\n\n return encode[dim];\n} // FIXME:TS should be type `AxisType`\n\n\nexport function getDimensionTypeByAxis(axisType) {\n return axisType === 'category' ? 'ordinal' : axisType === 'time' ? 'time' : 'float';\n}\n\nfunction mayLabelDimType(dimType) {\n // In most cases, ordinal and time do not suitable for label.\n // Ordinal info can be displayed on axis. Time is too long.\n return !(dimType === 'ordinal' || dimType === 'time');\n} // function findTheLastDimMayLabel(data) {\n// // Get last value dim\n// let dimensions = data.dimensions.slice();\n// let valueType;\n// let valueDim;\n// while (dimensions.length && (\n// valueDim = dimensions.pop(),\n// valueType = data.getDimensionInfo(valueDim).type,\n// valueType === 'ordinal' || valueType === 'time'\n// )) {} // jshint ignore:line\n// return valueDim;\n// }","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Link lists and struct (graph or tree)\n */\nimport { curry, each, assert, extend, map, keys } from 'zrender/lib/core/util.js';\nimport { makeInner } from '../../util/model.js';\nvar inner = makeInner();\n\nfunction linkSeriesData(opt) {\n var mainData = opt.mainData;\n var datas = opt.datas;\n\n if (!datas) {\n datas = {\n main: mainData\n };\n opt.datasAttr = {\n main: 'data'\n };\n }\n\n opt.datas = opt.mainData = null;\n linkAll(mainData, datas, opt); // Porxy data original methods.\n\n each(datas, function (data) {\n each(mainData.TRANSFERABLE_METHODS, function (methodName) {\n data.wrapMethod(methodName, curry(transferInjection, opt));\n });\n }); // Beyond transfer, additional features should be added to `cloneShallow`.\n\n mainData.wrapMethod('cloneShallow', curry(cloneShallowInjection, opt)); // Only mainData trigger change, because struct.update may trigger\n // another changable methods, which may bring about dead lock.\n\n each(mainData.CHANGABLE_METHODS, function (methodName) {\n mainData.wrapMethod(methodName, curry(changeInjection, opt));\n }); // Make sure datas contains mainData.\n\n assert(datas[mainData.dataType] === mainData);\n}\n\nfunction transferInjection(opt, res) {\n if (isMainData(this)) {\n // Transfer datas to new main data.\n var datas = extend({}, inner(this).datas);\n datas[this.dataType] = res;\n linkAll(res, datas, opt);\n } else {\n // Modify the reference in main data to point newData.\n linkSingle(res, this.dataType, inner(this).mainData, opt);\n }\n\n return res;\n}\n\nfunction changeInjection(opt, res) {\n opt.struct && opt.struct.update();\n return res;\n}\n\nfunction cloneShallowInjection(opt, res) {\n // cloneShallow, which brings about some fragilities, may be inappropriate\n // to be exposed as an API. So for implementation simplicity we can make\n // the restriction that cloneShallow of not-mainData should not be invoked\n // outside, but only be invoked here.\n each(inner(res).datas, function (data, dataType) {\n data !== res && linkSingle(data.cloneShallow(), dataType, res, opt);\n });\n return res;\n}\n/**\n * Supplement method to List.\n *\n * @public\n * @param [dataType] If not specified, return mainData.\n */\n\n\nfunction getLinkedData(dataType) {\n var mainData = inner(this).mainData;\n return dataType == null || mainData == null ? mainData : inner(mainData).datas[dataType];\n}\n/**\n * Get list of all linked data\n */\n\n\nfunction getLinkedDataAll() {\n var mainData = inner(this).mainData;\n return mainData == null ? [{\n data: mainData\n }] : map(keys(inner(mainData).datas), function (type) {\n return {\n type: type,\n data: inner(mainData).datas[type]\n };\n });\n}\n\nfunction isMainData(data) {\n return inner(data).mainData === data;\n}\n\nfunction linkAll(mainData, datas, opt) {\n inner(mainData).datas = {};\n each(datas, function (data, dataType) {\n linkSingle(data, dataType, mainData, opt);\n });\n}\n\nfunction linkSingle(data, dataType, mainData, opt) {\n inner(mainData).datas[dataType] = data;\n inner(data).mainData = mainData;\n data.dataType = dataType;\n\n if (opt.struct) {\n data[opt.structAttr] = opt.struct;\n opt.struct[opt.datasAttr[dataType]] = data;\n } // Supplement method.\n\n\n data.getLinkedData = getLinkedData;\n data.getLinkedDataAll = getLinkedDataAll;\n}\n\nexport default linkSeriesData;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { makeInner, getDataItemValue, queryReferringComponents, SINGLE_REFERRING } from '../../util/model.js';\nimport { createHashMap, each, isArray, isString, isObject, isTypedArray } from 'zrender/lib/core/util.js';\nimport { SOURCE_FORMAT_ORIGINAL, SOURCE_FORMAT_ARRAY_ROWS, SOURCE_FORMAT_OBJECT_ROWS, SERIES_LAYOUT_BY_ROW, SOURCE_FORMAT_KEYED_COLUMNS } from '../../util/types.js'; // The result of `guessOrdinal`.\n\nexport var BE_ORDINAL = {\n Must: 1,\n Might: 2,\n Not: 3 // Other cases\n\n};\nvar innerGlobalModel = makeInner();\n/**\n * MUST be called before mergeOption of all series.\n */\n\nexport function resetSourceDefaulter(ecModel) {\n // `datasetMap` is used to make default encode.\n innerGlobalModel(ecModel).datasetMap = createHashMap();\n}\n/**\n * [The strategy of the arrengment of data dimensions for dataset]:\n * \"value way\": all axes are non-category axes. So series one by one take\n * several (the number is coordSysDims.length) dimensions from dataset.\n * The result of data arrengment of data dimensions like:\n * | ser0_x | ser0_y | ser1_x | ser1_y | ser2_x | ser2_y |\n * \"category way\": at least one axis is category axis. So the the first data\n * dimension is always mapped to the first category axis and shared by\n * all of the series. The other data dimensions are taken by series like\n * \"value way\" does.\n * The result of data arrengment of data dimensions like:\n * | ser_shared_x | ser0_y | ser1_y | ser2_y |\n *\n * @return encode Never be `null/undefined`.\n */\n\nexport function makeSeriesEncodeForAxisCoordSys(coordDimensions, seriesModel, source) {\n var encode = {};\n var datasetModel = querySeriesUpstreamDatasetModel(seriesModel); // Currently only make default when using dataset, util more reqirements occur.\n\n if (!datasetModel || !coordDimensions) {\n return encode;\n }\n\n var encodeItemName = [];\n var encodeSeriesName = [];\n var ecModel = seriesModel.ecModel;\n var datasetMap = innerGlobalModel(ecModel).datasetMap;\n var key = datasetModel.uid + '_' + source.seriesLayoutBy;\n var baseCategoryDimIndex;\n var categoryWayValueDimStart;\n coordDimensions = coordDimensions.slice();\n each(coordDimensions, function (coordDimInfoLoose, coordDimIdx) {\n var coordDimInfo = isObject(coordDimInfoLoose) ? coordDimInfoLoose : coordDimensions[coordDimIdx] = {\n name: coordDimInfoLoose\n };\n\n if (coordDimInfo.type === 'ordinal' && baseCategoryDimIndex == null) {\n baseCategoryDimIndex = coordDimIdx;\n categoryWayValueDimStart = getDataDimCountOnCoordDim(coordDimInfo);\n }\n\n encode[coordDimInfo.name] = [];\n });\n var datasetRecord = datasetMap.get(key) || datasetMap.set(key, {\n categoryWayDim: categoryWayValueDimStart,\n valueWayDim: 0\n }); // TODO\n // Auto detect first time axis and do arrangement.\n\n each(coordDimensions, function (coordDimInfo, coordDimIdx) {\n var coordDimName = coordDimInfo.name;\n var count = getDataDimCountOnCoordDim(coordDimInfo); // In value way.\n\n if (baseCategoryDimIndex == null) {\n var start = datasetRecord.valueWayDim;\n pushDim(encode[coordDimName], start, count);\n pushDim(encodeSeriesName, start, count);\n datasetRecord.valueWayDim += count; // ??? TODO give a better default series name rule?\n // especially when encode x y specified.\n // consider: when multiple series share one dimension\n // category axis, series name should better use\n // the other dimension name. On the other hand, use\n // both dimensions name.\n } // In category way, the first category axis.\n else if (baseCategoryDimIndex === coordDimIdx) {\n pushDim(encode[coordDimName], 0, count);\n pushDim(encodeItemName, 0, count);\n } // In category way, the other axis.\n else {\n var start = datasetRecord.categoryWayDim;\n pushDim(encode[coordDimName], start, count);\n pushDim(encodeSeriesName, start, count);\n datasetRecord.categoryWayDim += count;\n }\n });\n\n function pushDim(dimIdxArr, idxFrom, idxCount) {\n for (var i = 0; i < idxCount; i++) {\n dimIdxArr.push(idxFrom + i);\n }\n }\n\n function getDataDimCountOnCoordDim(coordDimInfo) {\n var dimsDef = coordDimInfo.dimsDef;\n return dimsDef ? dimsDef.length : 1;\n }\n\n encodeItemName.length && (encode.itemName = encodeItemName);\n encodeSeriesName.length && (encode.seriesName = encodeSeriesName);\n return encode;\n}\n/**\n * Work for data like [{name: ..., value: ...}, ...].\n *\n * @return encode Never be `null/undefined`.\n */\n\nexport function makeSeriesEncodeForNameBased(seriesModel, source, dimCount) {\n var encode = {};\n var datasetModel = querySeriesUpstreamDatasetModel(seriesModel); // Currently only make default when using dataset, util more reqirements occur.\n\n if (!datasetModel) {\n return encode;\n }\n\n var sourceFormat = source.sourceFormat;\n var dimensionsDefine = source.dimensionsDefine;\n var potentialNameDimIndex;\n\n if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS || sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\n each(dimensionsDefine, function (dim, idx) {\n if ((isObject(dim) ? dim.name : dim) === 'name') {\n potentialNameDimIndex = idx;\n }\n });\n }\n\n var idxResult = function () {\n var idxRes0 = {};\n var idxRes1 = {};\n var guessRecords = []; // 5 is an experience value.\n\n for (var i = 0, len = Math.min(5, dimCount); i < len; i++) {\n var guessResult = doGuessOrdinal(source.data, sourceFormat, source.seriesLayoutBy, dimensionsDefine, source.startIndex, i);\n guessRecords.push(guessResult);\n var isPureNumber = guessResult === BE_ORDINAL.Not; // [Strategy of idxRes0]: find the first BE_ORDINAL.Not as the value dim,\n // and then find a name dim with the priority:\n // \"BE_ORDINAL.Might|BE_ORDINAL.Must\" > \"other dim\" > \"the value dim itself\".\n\n if (isPureNumber && idxRes0.v == null && i !== potentialNameDimIndex) {\n idxRes0.v = i;\n }\n\n if (idxRes0.n == null || idxRes0.n === idxRes0.v || !isPureNumber && guessRecords[idxRes0.n] === BE_ORDINAL.Not) {\n idxRes0.n = i;\n }\n\n if (fulfilled(idxRes0) && guessRecords[idxRes0.n] !== BE_ORDINAL.Not) {\n return idxRes0;\n } // [Strategy of idxRes1]: if idxRes0 not satisfied (that is, no BE_ORDINAL.Not),\n // find the first BE_ORDINAL.Might as the value dim,\n // and then find a name dim with the priority:\n // \"other dim\" > \"the value dim itself\".\n // That is for backward compat: number-like (e.g., `'3'`, `'55'`) can be\n // treated as number.\n\n\n if (!isPureNumber) {\n if (guessResult === BE_ORDINAL.Might && idxRes1.v == null && i !== potentialNameDimIndex) {\n idxRes1.v = i;\n }\n\n if (idxRes1.n == null || idxRes1.n === idxRes1.v) {\n idxRes1.n = i;\n }\n }\n }\n\n function fulfilled(idxResult) {\n return idxResult.v != null && idxResult.n != null;\n }\n\n return fulfilled(idxRes0) ? idxRes0 : fulfilled(idxRes1) ? idxRes1 : null;\n }();\n\n if (idxResult) {\n encode.value = [idxResult.v]; // `potentialNameDimIndex` has highest priority.\n\n var nameDimIndex = potentialNameDimIndex != null ? potentialNameDimIndex : idxResult.n; // By default, label uses itemName in charts.\n // So we don't set encodeLabel here.\n\n encode.itemName = [nameDimIndex];\n encode.seriesName = [nameDimIndex];\n }\n\n return encode;\n}\n/**\n * @return If return null/undefined, indicate that should not use datasetModel.\n */\n\nexport function querySeriesUpstreamDatasetModel(seriesModel) {\n // Caution: consider the scenario:\n // A dataset is declared and a series is not expected to use the dataset,\n // and at the beginning `setOption({series: { noData })` (just prepare other\n // option but no data), then `setOption({series: {data: [...]}); In this case,\n // the user should set an empty array to avoid that dataset is used by default.\n var thisData = seriesModel.get('data', true);\n\n if (!thisData) {\n return queryReferringComponents(seriesModel.ecModel, 'dataset', {\n index: seriesModel.get('datasetIndex', true),\n id: seriesModel.get('datasetId', true)\n }, SINGLE_REFERRING).models[0];\n }\n}\n/**\n * @return Always return an array event empty.\n */\n\nexport function queryDatasetUpstreamDatasetModels(datasetModel) {\n // Only these attributes declared, we by defualt reference to `datasetIndex: 0`.\n // Otherwise, no reference.\n if (!datasetModel.get('transform', true) && !datasetModel.get('fromTransformResult', true)) {\n return [];\n }\n\n return queryReferringComponents(datasetModel.ecModel, 'dataset', {\n index: datasetModel.get('fromDatasetIndex', true),\n id: datasetModel.get('fromDatasetId', true)\n }, SINGLE_REFERRING).models;\n}\n/**\n * The rule should not be complex, otherwise user might not\n * be able to known where the data is wrong.\n * The code is ugly, but how to make it neat?\n */\n\nexport function guessOrdinal(source, dimIndex) {\n return doGuessOrdinal(source.data, source.sourceFormat, source.seriesLayoutBy, source.dimensionsDefine, source.startIndex, dimIndex);\n} // dimIndex may be overflow source data.\n// return {BE_ORDINAL}\n\nfunction doGuessOrdinal(data, sourceFormat, seriesLayoutBy, dimensionsDefine, startIndex, dimIndex) {\n var result; // Experience value.\n\n var maxLoop = 5;\n\n if (isTypedArray(data)) {\n return BE_ORDINAL.Not;\n } // When sourceType is 'objectRows' or 'keyedColumns', dimensionsDefine\n // always exists in source.\n\n\n var dimName;\n var dimType;\n\n if (dimensionsDefine) {\n var dimDefItem = dimensionsDefine[dimIndex];\n\n if (isObject(dimDefItem)) {\n dimName = dimDefItem.name;\n dimType = dimDefItem.type;\n } else if (isString(dimDefItem)) {\n dimName = dimDefItem;\n }\n }\n\n if (dimType != null) {\n return dimType === 'ordinal' ? BE_ORDINAL.Must : BE_ORDINAL.Not;\n }\n\n if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\n var dataArrayRows = data;\n\n if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) {\n var sample = dataArrayRows[dimIndex];\n\n for (var i = 0; i < (sample || []).length && i < maxLoop; i++) {\n if ((result = detectValue(sample[startIndex + i])) != null) {\n return result;\n }\n }\n } else {\n for (var i = 0; i < dataArrayRows.length && i < maxLoop; i++) {\n var row = dataArrayRows[startIndex + i];\n\n if (row && (result = detectValue(row[dimIndex])) != null) {\n return result;\n }\n }\n }\n } else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\n var dataObjectRows = data;\n\n if (!dimName) {\n return BE_ORDINAL.Not;\n }\n\n for (var i = 0; i < dataObjectRows.length && i < maxLoop; i++) {\n var item = dataObjectRows[i];\n\n if (item && (result = detectValue(item[dimName])) != null) {\n return result;\n }\n }\n } else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\n var dataKeyedColumns = data;\n\n if (!dimName) {\n return BE_ORDINAL.Not;\n }\n\n var sample = dataKeyedColumns[dimName];\n\n if (!sample || isTypedArray(sample)) {\n return BE_ORDINAL.Not;\n }\n\n for (var i = 0; i < sample.length && i < maxLoop; i++) {\n if ((result = detectValue(sample[i])) != null) {\n return result;\n }\n }\n } else if (sourceFormat === SOURCE_FORMAT_ORIGINAL) {\n var dataOriginal = data;\n\n for (var i = 0; i < dataOriginal.length && i < maxLoop; i++) {\n var item = dataOriginal[i];\n var val = getDataItemValue(item);\n\n if (!isArray(val)) {\n return BE_ORDINAL.Not;\n }\n\n if ((result = detectValue(val[dimIndex])) != null) {\n return result;\n }\n }\n }\n\n function detectValue(val) {\n var beStr = isString(val); // Consider usage convenience, '1', '2' will be treated as \"number\".\n // `isFinit('')` get `true`.\n\n if (val != null && isFinite(val) && val !== '') {\n return beStr ? BE_ORDINAL.Might : BE_ORDINAL.Not;\n } else if (beStr && val !== '-') {\n return BE_ORDINAL.Must;\n }\n }\n\n return BE_ORDINAL.Not;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { setAsPrimitive, map, isTypedArray, assert, each, retrieve2 } from 'zrender/lib/core/util.js';\nimport { createSource, cloneSourceShallow } from '../Source.js';\nimport { SOURCE_FORMAT_TYPED_ARRAY, SOURCE_FORMAT_ORIGINAL } from '../../util/types.js';\nimport { querySeriesUpstreamDatasetModel, queryDatasetUpstreamDatasetModels } from './sourceHelper.js';\nimport { applyDataTransform } from './transform.js';\nimport DataStore from '../DataStore.js';\nimport { DefaultDataProvider } from './dataProvider.js';\n/**\n * [REQUIREMENT_MEMO]:\n * (0) `metaRawOption` means `dimensions`/`sourceHeader`/`seriesLayoutBy` in raw option.\n * (1) Keep support the feature: `metaRawOption` can be specified both on `series` and\n * `root-dataset`. Them on `series` has higher priority.\n * (2) Do not support to set `metaRawOption` on a `non-root-dataset`, because it might\n * confuse users: whether those props indicate how to visit the upstream source or visit\n * the transform result source, and some transforms has nothing to do with these props,\n * and some transforms might have multiple upstream.\n * (3) Transforms should specify `metaRawOption` in each output, just like they can be\n * declared in `root-dataset`.\n * (4) At present only support visit source in `SERIES_LAYOUT_BY_COLUMN` in transforms.\n * That is for reducing complexity in transforms.\n * PENDING: Whether to provide transposition transform?\n *\n * [IMPLEMENTAION_MEMO]:\n * \"sourceVisitConfig\" are calculated from `metaRawOption` and `data`.\n * They will not be calculated until `source` is about to be visited (to prevent from\n * duplicate calcuation). `source` is visited only in series and input to transforms.\n *\n * [DIMENSION_INHERIT_RULE]:\n * By default the dimensions are inherited from ancestors, unless a transform return\n * a new dimensions definition.\n * Consider the case:\n * ```js\n * dataset: [{\n * source: [ ['Product', 'Sales', 'Prise'], ['Cookies', 321, 44.21], ...]\n * }, {\n * transform: { type: 'filter', ... }\n * }]\n * dataset: [{\n * dimension: ['Product', 'Sales', 'Prise'],\n * source: [ ['Cookies', 321, 44.21], ...]\n * }, {\n * transform: { type: 'filter', ... }\n * }]\n * ```\n * The two types of option should have the same behavior after transform.\n *\n *\n * [SCENARIO]:\n * (1) Provide source data directly:\n * ```js\n * series: {\n * encode: {...},\n * dimensions: [...]\n * seriesLayoutBy: 'row',\n * data: [[...]]\n * }\n * ```\n * (2) Series refer to dataset.\n * ```js\n * series: [{\n * encode: {...}\n * // Ignore datasetIndex means `datasetIndex: 0`\n * // and the dimensions defination in dataset is used\n * }, {\n * encode: {...},\n * seriesLayoutBy: 'column',\n * datasetIndex: 1\n * }]\n * ```\n * (3) dataset transform\n * ```js\n * dataset: [{\n * source: [...]\n * }, {\n * source: [...]\n * }, {\n * // By default from 0.\n * transform: { type: 'filter', config: {...} }\n * }, {\n * // Piped.\n * transform: [\n * { type: 'filter', config: {...} },\n * { type: 'sort', config: {...} }\n * ]\n * }, {\n * id: 'regressionData',\n * fromDatasetIndex: 1,\n * // Third-party transform\n * transform: { type: 'ecStat:regression', config: {...} }\n * }, {\n * // retrieve the extra result.\n * id: 'regressionFormula',\n * fromDatasetId: 'regressionData',\n * fromTransformResult: 1\n * }]\n * ```\n */\n\nvar SourceManager =\n/** @class */\nfunction () {\n function SourceManager(sourceHost) {\n // Cached source. Do not repeat calculating if not dirty.\n this._sourceList = [];\n this._storeList = []; // version sign of each upstream source manager.\n\n this._upstreamSignList = [];\n this._versionSignBase = 0;\n this._dirty = true;\n this._sourceHost = sourceHost;\n }\n /**\n * Mark dirty.\n */\n\n\n SourceManager.prototype.dirty = function () {\n this._setLocalSource([], []);\n\n this._storeList = [];\n this._dirty = true;\n };\n\n SourceManager.prototype._setLocalSource = function (sourceList, upstreamSignList) {\n this._sourceList = sourceList;\n this._upstreamSignList = upstreamSignList;\n this._versionSignBase++;\n\n if (this._versionSignBase > 9e10) {\n this._versionSignBase = 0;\n }\n };\n /**\n * For detecting whether the upstream source is dirty, so that\n * the local cached source (in `_sourceList`) should be discarded.\n */\n\n\n SourceManager.prototype._getVersionSign = function () {\n return this._sourceHost.uid + '_' + this._versionSignBase;\n };\n /**\n * Always return a source instance. Otherwise throw error.\n */\n\n\n SourceManager.prototype.prepareSource = function () {\n // For the case that call `setOption` multiple time but no data changed,\n // cache the result source to prevent from repeating transform.\n if (this._isDirty()) {\n this._createSource();\n\n this._dirty = false;\n }\n };\n\n SourceManager.prototype._createSource = function () {\n this._setLocalSource([], []);\n\n var sourceHost = this._sourceHost;\n\n var upSourceMgrList = this._getUpstreamSourceManagers();\n\n var hasUpstream = !!upSourceMgrList.length;\n var resultSourceList;\n var upstreamSignList;\n\n if (isSeries(sourceHost)) {\n var seriesModel = sourceHost;\n var data = void 0;\n var sourceFormat = void 0;\n var upSource = void 0; // Has upstream dataset\n\n if (hasUpstream) {\n var upSourceMgr = upSourceMgrList[0];\n upSourceMgr.prepareSource();\n upSource = upSourceMgr.getSource();\n data = upSource.data;\n sourceFormat = upSource.sourceFormat;\n upstreamSignList = [upSourceMgr._getVersionSign()];\n } // Series data is from own.\n else {\n data = seriesModel.get('data', true);\n sourceFormat = isTypedArray(data) ? SOURCE_FORMAT_TYPED_ARRAY : SOURCE_FORMAT_ORIGINAL;\n upstreamSignList = [];\n } // See [REQUIREMENT_MEMO], merge settings on series and parent dataset if it is root.\n\n\n var newMetaRawOption = this._getSourceMetaRawOption() || {};\n var upMetaRawOption = upSource && upSource.metaRawOption || {};\n var seriesLayoutBy = retrieve2(newMetaRawOption.seriesLayoutBy, upMetaRawOption.seriesLayoutBy) || null;\n var sourceHeader = retrieve2(newMetaRawOption.sourceHeader, upMetaRawOption.sourceHeader); // Note here we should not use `upSource.dimensionsDefine`. Consider the case:\n // `upSource.dimensionsDefine` is detected by `seriesLayoutBy: 'column'`,\n // but series need `seriesLayoutBy: 'row'`.\n\n var dimensions = retrieve2(newMetaRawOption.dimensions, upMetaRawOption.dimensions); // We share source with dataset as much as possible\n // to avoid extra memory cost of high dimensional data.\n\n var needsCreateSource = seriesLayoutBy !== upMetaRawOption.seriesLayoutBy || !!sourceHeader !== !!upMetaRawOption.sourceHeader || dimensions;\n resultSourceList = needsCreateSource ? [createSource(data, {\n seriesLayoutBy: seriesLayoutBy,\n sourceHeader: sourceHeader,\n dimensions: dimensions\n }, sourceFormat)] : [];\n } else {\n var datasetModel = sourceHost; // Has upstream dataset.\n\n if (hasUpstream) {\n var result = this._applyTransform(upSourceMgrList);\n\n resultSourceList = result.sourceList;\n upstreamSignList = result.upstreamSignList;\n } // Is root dataset.\n else {\n var sourceData = datasetModel.get('source', true);\n resultSourceList = [createSource(sourceData, this._getSourceMetaRawOption(), null)];\n upstreamSignList = [];\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n assert(resultSourceList && upstreamSignList);\n }\n\n this._setLocalSource(resultSourceList, upstreamSignList);\n };\n\n SourceManager.prototype._applyTransform = function (upMgrList) {\n var datasetModel = this._sourceHost;\n var transformOption = datasetModel.get('transform', true);\n var fromTransformResult = datasetModel.get('fromTransformResult', true);\n\n if (process.env.NODE_ENV !== 'production') {\n assert(fromTransformResult != null || transformOption != null);\n }\n\n if (fromTransformResult != null) {\n var errMsg = '';\n\n if (upMgrList.length !== 1) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = 'When using `fromTransformResult`, there should be only one upstream dataset';\n }\n\n doThrow(errMsg);\n }\n }\n\n var sourceList;\n var upSourceList = [];\n var upstreamSignList = [];\n each(upMgrList, function (upMgr) {\n upMgr.prepareSource();\n var upSource = upMgr.getSource(fromTransformResult || 0);\n var errMsg = '';\n\n if (fromTransformResult != null && !upSource) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = 'Can not retrieve result by `fromTransformResult`: ' + fromTransformResult;\n }\n\n doThrow(errMsg);\n }\n\n upSourceList.push(upSource);\n upstreamSignList.push(upMgr._getVersionSign());\n });\n\n if (transformOption) {\n sourceList = applyDataTransform(transformOption, upSourceList, {\n datasetIndex: datasetModel.componentIndex\n });\n } else if (fromTransformResult != null) {\n sourceList = [cloneSourceShallow(upSourceList[0])];\n }\n\n return {\n sourceList: sourceList,\n upstreamSignList: upstreamSignList\n };\n };\n\n SourceManager.prototype._isDirty = function () {\n if (this._dirty) {\n return true;\n } // All sourceList is from the some upstream.\n\n\n var upSourceMgrList = this._getUpstreamSourceManagers();\n\n for (var i = 0; i < upSourceMgrList.length; i++) {\n var upSrcMgr = upSourceMgrList[i];\n\n if ( // Consider the case that there is ancestor diry, call it recursively.\n // The performance is probably not an issue because usually the chain is not long.\n upSrcMgr._isDirty() || this._upstreamSignList[i] !== upSrcMgr._getVersionSign()) {\n return true;\n }\n }\n };\n /**\n * @param sourceIndex By default 0, means \"main source\".\n * In most cases there is only one source.\n */\n\n\n SourceManager.prototype.getSource = function (sourceIndex) {\n sourceIndex = sourceIndex || 0;\n var source = this._sourceList[sourceIndex];\n\n if (!source) {\n // Series may share source instance with dataset.\n var upSourceMgrList = this._getUpstreamSourceManagers();\n\n return upSourceMgrList[0] && upSourceMgrList[0].getSource(sourceIndex);\n }\n\n return source;\n };\n /**\n *\n * Get a data store which can be shared across series.\n * Only available for series.\n *\n * @param seriesDimRequest Dimensions that are generated in series.\n * Should have been sorted by `storeDimIndex` asc.\n */\n\n\n SourceManager.prototype.getSharedDataStore = function (seriesDimRequest) {\n if (process.env.NODE_ENV !== 'production') {\n assert(isSeries(this._sourceHost), 'Can only call getDataStore on series source manager.');\n }\n\n var schema = seriesDimRequest.makeStoreSchema();\n return this._innerGetDataStore(schema.dimensions, seriesDimRequest.source, schema.hash);\n };\n\n SourceManager.prototype._innerGetDataStore = function (storeDims, seriesSource, sourceReadKey) {\n // TODO Can use other sourceIndex?\n var sourceIndex = 0;\n var storeList = this._storeList;\n var cachedStoreMap = storeList[sourceIndex];\n\n if (!cachedStoreMap) {\n cachedStoreMap = storeList[sourceIndex] = {};\n }\n\n var cachedStore = cachedStoreMap[sourceReadKey];\n\n if (!cachedStore) {\n var upSourceMgr = this._getUpstreamSourceManagers()[0];\n\n if (isSeries(this._sourceHost) && upSourceMgr) {\n cachedStore = upSourceMgr._innerGetDataStore(storeDims, seriesSource, sourceReadKey);\n } else {\n cachedStore = new DataStore(); // Always create store from source of series.\n\n cachedStore.initData(new DefaultDataProvider(seriesSource, storeDims.length), storeDims);\n }\n\n cachedStoreMap[sourceReadKey] = cachedStore;\n }\n\n return cachedStore;\n };\n /**\n * PENDING: Is it fast enough?\n * If no upstream, return empty array.\n */\n\n\n SourceManager.prototype._getUpstreamSourceManagers = function () {\n // Always get the relationship from the raw option.\n // Do not cache the link of the dependency graph, so that\n // there is no need to update them when change happens.\n var sourceHost = this._sourceHost;\n\n if (isSeries(sourceHost)) {\n var datasetModel = querySeriesUpstreamDatasetModel(sourceHost);\n return !datasetModel ? [] : [datasetModel.getSourceManager()];\n } else {\n return map(queryDatasetUpstreamDatasetModels(sourceHost), function (datasetModel) {\n return datasetModel.getSourceManager();\n });\n }\n };\n\n SourceManager.prototype._getSourceMetaRawOption = function () {\n var sourceHost = this._sourceHost;\n var seriesLayoutBy;\n var sourceHeader;\n var dimensions;\n\n if (isSeries(sourceHost)) {\n seriesLayoutBy = sourceHost.get('seriesLayoutBy', true);\n sourceHeader = sourceHost.get('sourceHeader', true);\n dimensions = sourceHost.get('dimensions', true);\n } // See [REQUIREMENT_MEMO], `non-root-dataset` do not support them.\n else if (!this._getUpstreamSourceManagers().length) {\n var model = sourceHost;\n seriesLayoutBy = model.get('seriesLayoutBy', true);\n sourceHeader = model.get('sourceHeader', true);\n dimensions = model.get('dimensions', true);\n }\n\n return {\n seriesLayoutBy: seriesLayoutBy,\n sourceHeader: sourceHeader,\n dimensions: dimensions\n };\n };\n\n return SourceManager;\n}();\n\nexport { SourceManager }; // Call this method after `super.init` and `super.mergeOption` to\n// disable the transform merge, but do not disable transform clone from rawOption.\n\nexport function disableTransformOptionMerge(datasetModel) {\n var transformOption = datasetModel.option.transform;\n transformOption && setAsPrimitive(datasetModel.option.transform);\n}\n\nfunction isSeries(sourceHost) {\n // Avoid circular dependency with Series.ts\n return sourceHost.mainType === 'series';\n}\n\nfunction doThrow(errMsg) {\n throw new Error(errMsg);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { SERIES_LAYOUT_BY_COLUMN, SOURCE_FORMAT_OBJECT_ROWS, SOURCE_FORMAT_ARRAY_ROWS } from '../../util/types.js';\nimport { normalizeToArray } from '../../util/model.js';\nimport { createHashMap, bind, each, hasOwn, map, clone, isObject, extend, isNumber } from 'zrender/lib/core/util.js';\nimport { getRawSourceItemGetter, getRawSourceDataCounter, getRawSourceValueGetter } from './dataProvider.js';\nimport { parseDataValue } from './dataValueHelper.js';\nimport { log, makePrintable, throwError } from '../../util/log.js';\nimport { createSource, detectSourceFormat } from '../Source.js';\n/**\n * TODO: disable writable.\n * This structure will be exposed to users.\n */\n\nvar ExternalSource =\n/** @class */\nfunction () {\n function ExternalSource() {}\n\n ExternalSource.prototype.getRawData = function () {\n // Only built-in transform available.\n throw new Error('not supported');\n };\n\n ExternalSource.prototype.getRawDataItem = function (dataIndex) {\n // Only built-in transform available.\n throw new Error('not supported');\n };\n\n ExternalSource.prototype.cloneRawData = function () {\n return;\n };\n /**\n * @return If dimension not found, return null/undefined.\n */\n\n\n ExternalSource.prototype.getDimensionInfo = function (dim) {\n return;\n };\n /**\n * dimensions defined if and only if either:\n * (a) dataset.dimensions are declared.\n * (b) dataset data include dimensions definitions in data (detected or via specified `sourceHeader`).\n * If dimensions are defined, `dimensionInfoAll` is corresponding to\n * the defined dimensions.\n * Otherwise, `dimensionInfoAll` is determined by data columns.\n * @return Always return an array (even empty array).\n */\n\n\n ExternalSource.prototype.cloneAllDimensionInfo = function () {\n return;\n };\n\n ExternalSource.prototype.count = function () {\n return;\n };\n /**\n * Only support by dimension index.\n * No need to support by dimension name in transform function,\n * because transform function is not case-specific, no need to use name literally.\n */\n\n\n ExternalSource.prototype.retrieveValue = function (dataIndex, dimIndex) {\n return;\n };\n\n ExternalSource.prototype.retrieveValueFromItem = function (dataItem, dimIndex) {\n return;\n };\n\n ExternalSource.prototype.convertValue = function (rawVal, dimInfo) {\n return parseDataValue(rawVal, dimInfo);\n };\n\n return ExternalSource;\n}();\n\nexport { ExternalSource };\n\nfunction createExternalSource(internalSource, externalTransform) {\n var extSource = new ExternalSource();\n var data = internalSource.data;\n var sourceFormat = extSource.sourceFormat = internalSource.sourceFormat;\n var sourceHeaderCount = internalSource.startIndex;\n var errMsg = '';\n\n if (internalSource.seriesLayoutBy !== SERIES_LAYOUT_BY_COLUMN) {\n // For the logic simplicity in transformer, only 'culumn' is\n // supported in data transform. Otherwise, the `dimensionsDefine`\n // might be detected by 'row', which probably confuses users.\n if (process.env.NODE_ENV !== 'production') {\n errMsg = '`seriesLayoutBy` of upstream dataset can only be \"column\" in data transform.';\n }\n\n throwError(errMsg);\n } // [MEMO]\n // Create a new dimensions structure for exposing.\n // Do not expose all dimension info to users directly.\n // Because the dimension is probably auto detected from data and not might reliable.\n // Should not lead the transformers to think that is reliable and return it.\n // See [DIMENSION_INHERIT_RULE] in `sourceManager.ts`.\n\n\n var dimensions = [];\n var dimsByName = {};\n var dimsDef = internalSource.dimensionsDefine;\n\n if (dimsDef) {\n each(dimsDef, function (dimDef, idx) {\n var name = dimDef.name;\n var dimDefExt = {\n index: idx,\n name: name,\n displayName: dimDef.displayName\n };\n dimensions.push(dimDefExt); // Users probably do not specify dimension name. For simplicity, data transform\n // does not generate dimension name.\n\n if (name != null) {\n // Dimension name should not be duplicated.\n // For simplicity, data transform forbids name duplication, do not generate\n // new name like module `completeDimensions.ts` did, but just tell users.\n var errMsg_1 = '';\n\n if (hasOwn(dimsByName, name)) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg_1 = 'dimension name \"' + name + '\" duplicated.';\n }\n\n throwError(errMsg_1);\n }\n\n dimsByName[name] = dimDefExt;\n }\n });\n } // If dimension definitions are not defined and can not be detected.\n // e.g., pure data `[[11, 22], ...]`.\n else {\n for (var i = 0; i < internalSource.dimensionsDetectedCount || 0; i++) {\n // Do not generete name or anything others. The consequence process in\n // `transform` or `series` probably have there own name generation strategry.\n dimensions.push({\n index: i\n });\n }\n } // Implement public methods:\n\n\n var rawItemGetter = getRawSourceItemGetter(sourceFormat, SERIES_LAYOUT_BY_COLUMN);\n\n if (externalTransform.__isBuiltIn) {\n extSource.getRawDataItem = function (dataIndex) {\n return rawItemGetter(data, sourceHeaderCount, dimensions, dataIndex);\n };\n\n extSource.getRawData = bind(getRawData, null, internalSource);\n }\n\n extSource.cloneRawData = bind(cloneRawData, null, internalSource);\n var rawCounter = getRawSourceDataCounter(sourceFormat, SERIES_LAYOUT_BY_COLUMN);\n extSource.count = bind(rawCounter, null, data, sourceHeaderCount, dimensions);\n var rawValueGetter = getRawSourceValueGetter(sourceFormat);\n\n extSource.retrieveValue = function (dataIndex, dimIndex) {\n var rawItem = rawItemGetter(data, sourceHeaderCount, dimensions, dataIndex);\n return retrieveValueFromItem(rawItem, dimIndex);\n };\n\n var retrieveValueFromItem = extSource.retrieveValueFromItem = function (dataItem, dimIndex) {\n if (dataItem == null) {\n return;\n }\n\n var dimDef = dimensions[dimIndex]; // When `dimIndex` is `null`, `rawValueGetter` return the whole item.\n\n if (dimDef) {\n return rawValueGetter(dataItem, dimIndex, dimDef.name);\n }\n };\n\n extSource.getDimensionInfo = bind(getDimensionInfo, null, dimensions, dimsByName);\n extSource.cloneAllDimensionInfo = bind(cloneAllDimensionInfo, null, dimensions);\n return extSource;\n}\n\nfunction getRawData(upstream) {\n var sourceFormat = upstream.sourceFormat;\n\n if (!isSupportedSourceFormat(sourceFormat)) {\n var errMsg = '';\n\n if (process.env.NODE_ENV !== 'production') {\n errMsg = '`getRawData` is not supported in source format ' + sourceFormat;\n }\n\n throwError(errMsg);\n }\n\n return upstream.data;\n}\n\nfunction cloneRawData(upstream) {\n var sourceFormat = upstream.sourceFormat;\n var data = upstream.data;\n\n if (!isSupportedSourceFormat(sourceFormat)) {\n var errMsg = '';\n\n if (process.env.NODE_ENV !== 'production') {\n errMsg = '`cloneRawData` is not supported in source format ' + sourceFormat;\n }\n\n throwError(errMsg);\n }\n\n if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\n var result = [];\n\n for (var i = 0, len = data.length; i < len; i++) {\n // Not strictly clone for performance\n result.push(data[i].slice());\n }\n\n return result;\n } else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\n var result = [];\n\n for (var i = 0, len = data.length; i < len; i++) {\n // Not strictly clone for performance\n result.push(extend({}, data[i]));\n }\n\n return result;\n }\n}\n\nfunction getDimensionInfo(dimensions, dimsByName, dim) {\n if (dim == null) {\n return;\n } // Keep the same logic as `List::getDimension` did.\n\n\n if (isNumber(dim) // If being a number-like string but not being defined a dimension name.\n || !isNaN(dim) && !hasOwn(dimsByName, dim)) {\n return dimensions[dim];\n } else if (hasOwn(dimsByName, dim)) {\n return dimsByName[dim];\n }\n}\n\nfunction cloneAllDimensionInfo(dimensions) {\n return clone(dimensions);\n}\n\nvar externalTransformMap = createHashMap();\nexport function registerExternalTransform(externalTransform) {\n externalTransform = clone(externalTransform);\n var type = externalTransform.type;\n var errMsg = '';\n\n if (!type) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = 'Must have a `type` when `registerTransform`.';\n }\n\n throwError(errMsg);\n }\n\n var typeParsed = type.split(':');\n\n if (typeParsed.length !== 2) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = 'Name must include namespace like \"ns:regression\".';\n }\n\n throwError(errMsg);\n } // Namespace 'echarts:xxx' is official namespace, where the transforms should\n // be called directly via 'xxx' rather than 'echarts:xxx'.\n\n\n var isBuiltIn = false;\n\n if (typeParsed[0] === 'echarts') {\n type = typeParsed[1];\n isBuiltIn = true;\n }\n\n externalTransform.__isBuiltIn = isBuiltIn;\n externalTransformMap.set(type, externalTransform);\n}\nexport function applyDataTransform(rawTransOption, sourceList, infoForPrint) {\n var pipedTransOption = normalizeToArray(rawTransOption);\n var pipeLen = pipedTransOption.length;\n var errMsg = '';\n\n if (!pipeLen) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = 'If `transform` declared, it should at least contain one transform.';\n }\n\n throwError(errMsg);\n }\n\n for (var i = 0, len = pipeLen; i < len; i++) {\n var transOption = pipedTransOption[i];\n sourceList = applySingleDataTransform(transOption, sourceList, infoForPrint, pipeLen === 1 ? null : i); // piped transform only support single input, except the fist one.\n // piped transform only support single output, except the last one.\n\n if (i !== len - 1) {\n sourceList.length = Math.max(sourceList.length, 1);\n }\n }\n\n return sourceList;\n}\n\nfunction applySingleDataTransform(transOption, upSourceList, infoForPrint, // If `pipeIndex` is null/undefined, no piped transform.\npipeIndex) {\n var errMsg = '';\n\n if (!upSourceList.length) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = 'Must have at least one upstream dataset.';\n }\n\n throwError(errMsg);\n }\n\n if (!isObject(transOption)) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = 'transform declaration must be an object rather than ' + typeof transOption + '.';\n }\n\n throwError(errMsg);\n }\n\n var transType = transOption.type;\n var externalTransform = externalTransformMap.get(transType);\n\n if (!externalTransform) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = 'Can not find transform on type \"' + transType + '\".';\n }\n\n throwError(errMsg);\n } // Prepare source\n\n\n var extUpSourceList = map(upSourceList, function (upSource) {\n return createExternalSource(upSource, externalTransform);\n });\n var resultList = normalizeToArray(externalTransform.transform({\n upstream: extUpSourceList[0],\n upstreamList: extUpSourceList,\n config: clone(transOption.config)\n }));\n\n if (process.env.NODE_ENV !== 'production') {\n if (transOption.print) {\n var printStrArr = map(resultList, function (extSource) {\n var pipeIndexStr = pipeIndex != null ? ' === pipe index: ' + pipeIndex : '';\n return ['=== dataset index: ' + infoForPrint.datasetIndex + pipeIndexStr + ' ===', '- transform result data:', makePrintable(extSource.data), '- transform result dimensions:', makePrintable(extSource.dimensions)].join('\\n');\n }).join('\\n');\n log(printStrArr);\n }\n }\n\n return map(resultList, function (result, resultIndex) {\n var errMsg = '';\n\n if (!isObject(result)) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = 'A transform should not return some empty results.';\n }\n\n throwError(errMsg);\n }\n\n if (!result.data) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = 'Transform result data should be not be null or undefined';\n }\n\n throwError(errMsg);\n }\n\n var sourceFormat = detectSourceFormat(result.data);\n\n if (!isSupportedSourceFormat(sourceFormat)) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = 'Transform result data should be array rows or object rows.';\n }\n\n throwError(errMsg);\n }\n\n var resultMetaRawOption;\n var firstUpSource = upSourceList[0];\n /**\n * Intuitively, the end users known the content of the original `dataset.source`,\n * calucating the transform result in mind.\n * Suppose the original `dataset.source` is:\n * ```js\n * [\n * ['product', '2012', '2013', '2014', '2015'],\n * ['AAA', 41.1, 30.4, 65.1, 53.3],\n * ['BBB', 86.5, 92.1, 85.7, 83.1],\n * ['CCC', 24.1, 67.2, 79.5, 86.4]\n * ]\n * ```\n * The dimension info have to be detected from the source data.\n * Some of the transformers (like filter, sort) will follow the dimension info\n * of upstream, while others use new dimensions (like aggregate).\n * Transformer can output a field `dimensions` to define the its own output dimensions.\n * We also allow transformers to ignore the output `dimensions` field, and\n * inherit the upstream dimensions definition. It can reduce the burden of handling\n * dimensions in transformers.\n *\n * See also [DIMENSION_INHERIT_RULE] in `sourceManager.ts`.\n */\n\n if (firstUpSource && resultIndex === 0 // If transformer returns `dimensions`, it means that the transformer has different\n // dimensions definitions. We do not inherit anything from upstream.\n && !result.dimensions) {\n var startIndex = firstUpSource.startIndex; // We copy the header of upstream to the result, because:\n // (1) The returned data always does not contain header line and can not be used\n // as dimension-detection. In this case we can not use \"detected dimensions\" of\n // upstream directly, because it might be detected based on different `seriesLayoutBy`.\n // (2) We should support that the series read the upstream source in `seriesLayoutBy: 'row'`.\n // So the original detected header should be add to the result, otherwise they can not be read.\n\n if (startIndex) {\n result.data = firstUpSource.data.slice(0, startIndex).concat(result.data);\n }\n\n resultMetaRawOption = {\n seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN,\n sourceHeader: startIndex,\n dimensions: firstUpSource.metaRawOption.dimensions\n };\n } else {\n resultMetaRawOption = {\n seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN,\n sourceHeader: 0,\n dimensions: result.dimensions\n };\n }\n\n return createSource(result.data, resultMetaRawOption, null);\n });\n}\n\nfunction isSupportedSourceFormat(sourceFormat) {\n return sourceFormat === SOURCE_FORMAT_ARRAY_ROWS || sourceFormat === SOURCE_FORMAT_OBJECT_ROWS;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// These APIs are for more advanced usages\n// For example extend charts and components, creating graphic elements, formatting.\nimport ComponentModel from '../model/Component.js';\nimport ComponentView from '../view/Component.js';\nimport SeriesModel from '../model/Series.js';\nimport ChartView from '../view/Chart.js';\nimport SeriesData from '../data/SeriesData.js';\nimport * as zrender_1 from 'zrender/lib/zrender.js';\nexport { zrender_1 as zrender };\nimport * as matrix_1 from 'zrender/lib/core/matrix.js';\nexport { matrix_1 as matrix };\nimport * as vector_1 from 'zrender/lib/core/vector.js';\nexport { vector_1 as vector };\nimport * as zrUtil_1 from 'zrender/lib/core/util.js';\nexport { zrUtil_1 as zrUtil };\nimport * as color_1 from 'zrender/lib/tool/color.js';\nexport { color_1 as color };\nexport { throttle } from '../util/throttle.js';\nimport * as helper_1 from './api/helper.js';\nexport { helper_1 as helper };\nexport { use } from '../extension.js';\nexport { setPlatformAPI } from 'zrender/lib/core/platform.js'; // --------------------- Helper Methods ---------------------\n\nexport { default as parseGeoJSON } from '../coord/geo/parseGeoJson.js';\nexport { default as parseGeoJson } from '../coord/geo/parseGeoJson.js';\nimport * as number_1 from './api/number.js';\nexport { number_1 as number };\nimport * as time_1 from './api/time.js';\nexport { time_1 as time };\nimport * as graphic_1 from './api/graphic.js';\nexport { graphic_1 as graphic };\nimport * as format_1 from './api/format.js';\nexport { format_1 as format };\nimport * as util_1 from './api/util.js';\nexport { util_1 as util };\nexport { default as env } from 'zrender/lib/core/env.js'; // --------------------- Export for Extension Usage ---------------------\n// export {SeriesData};\n\nexport { SeriesData as List }; // TODO: Compatitable with exists echarts-gl code\n\nexport { default as Model } from '../model/Model.js';\nexport { default as Axis } from '../coord/Axis.js';\nexport { ComponentModel, ComponentView, SeriesModel, ChartView }; // Only for GL\n\nexport { brushSingle as innerDrawElementOnCanvas } from 'zrender/lib/canvas/graphic.js'; // --------------------- Deprecated Extension Methods ---------------------\n// Should use `ComponentModel.extend` or `class XXXX extend ComponentModel` to create class.\n// Then use `registerComponentModel` in `install` parameter when `use` this extension. For example:\n// class Bar3DModel extends ComponentModel {}\n// export function install(registers) { registers.registerComponentModel(Bar3DModel); }\n// echarts.use(install);\n\nexport function extendComponentModel(proto) {\n var Model = ComponentModel.extend(proto);\n ComponentModel.registerClass(Model);\n return Model;\n}\nexport function extendComponentView(proto) {\n var View = ComponentView.extend(proto);\n ComponentView.registerClass(View);\n return View;\n}\nexport function extendSeriesModel(proto) {\n var Model = SeriesModel.extend(proto);\n SeriesModel.registerClass(Model);\n return Model;\n}\nexport function extendChartView(proto) {\n var View = ChartView.extend(proto);\n ChartView.registerClass(View);\n return View;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nexport { addCommas, toCamelCase, normalizeCssArray, encodeHTML, formatTpl, getTooltipMarker, formatTime, capitalFirst, truncateText, getTextRect } from '../../util/format.js';","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nexport { extendShape, extendPath, makePath, makeImage, mergePath, resizePath, createIcon, updateProps, initProps, getTransform, clipPointsByRect, clipRectByRect, registerShape, getShapeClass, Group, Image, Text, Circle, Ellipse, Sector, Ring, Polygon, Polyline, Rect, Line, BezierCurve, Arc, IncrementalDisplayable, CompoundPath, LinearGradient, RadialGradient, BoundingRect } from '../../util/graphic.js';","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * This module exposes helper functions for developing extensions.\n */\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport createSeriesData from '../../chart/helper/createSeriesData.js'; // import createGraphFromNodeEdge from './chart/helper/createGraphFromNodeEdge.js';\n\nimport * as axisHelper from '../../coord/axisHelper.js';\nimport { AxisModelCommonMixin } from '../../coord/axisModelCommonMixin.js';\nimport Model from '../../model/Model.js';\nimport { getLayoutRect } from '../../util/layout.js';\nimport { enableDataStack, isDimensionStacked, getStackedDimension } from '../../data/helper/dataStackHelper.js';\nimport { getECData } from '../../util/innerStore.js';\nimport { createTextStyle as innerCreateTextStyle } from '../../label/labelStyle.js';\n/**\n * Create a multi dimension List structure from seriesModel.\n */\n\nexport function createList(seriesModel) {\n return createSeriesData(null, seriesModel);\n} // export function createGraph(seriesModel) {\n// let nodes = seriesModel.get('data');\n// let links = seriesModel.get('links');\n// return createGraphFromNodeEdge(nodes, links, seriesModel);\n// }\n\nexport { getLayoutRect };\nexport { createDimensions } from '../../data/helper/createDimensions.js';\nexport var dataStack = {\n isDimensionStacked: isDimensionStacked,\n enableDataStack: enableDataStack,\n getStackedDimension: getStackedDimension\n};\n/**\n * Create a symbol element with given symbol configuration: shape, x, y, width, height, color\n * @param {string} symbolDesc\n * @param {number} x\n * @param {number} y\n * @param {number} w\n * @param {number} h\n * @param {string} color\n */\n\nexport { createSymbol } from '../../util/symbol.js';\n/**\n * Create scale\n * @param {Array.} dataExtent\n * @param {Object|module:echarts/Model} option If `optoin.type`\n * is secified, it can only be `'value'` currently.\n */\n\nexport function createScale(dataExtent, option) {\n var axisModel = option;\n\n if (!(option instanceof Model)) {\n axisModel = new Model(option); // FIXME\n // Currently AxisModelCommonMixin has nothing to do with the\n // the requirements of `axisHelper.createScaleByModel`. For\n // example the methods `getCategories` and `getOrdinalMeta`\n // are required for `'category'` axis, and ecModel is required\n // for `'time'` axis. But occasionally echarts-gl happened\n // to only use `'value'` axis.\n // zrUtil.mixin(axisModel, AxisModelCommonMixin);\n }\n\n var scale = axisHelper.createScaleByModel(axisModel);\n scale.setExtent(dataExtent[0], dataExtent[1]);\n axisHelper.niceScaleExtent(scale, axisModel);\n return scale;\n}\n/**\n * Mixin common methods to axis model,\n *\n * Include methods\n * `getFormattedLabels() => Array.`\n * `getCategories() => Array.`\n * `getMin(origin: boolean) => number`\n * `getMax(origin: boolean) => number`\n * `getNeedCrossZero() => boolean`\n */\n\nexport function mixinAxisModelCommonMethods(Model) {\n zrUtil.mixin(Model, AxisModelCommonMixin);\n}\nexport { getECData };\nexport { enableHoverEmphasis } from '../../util/states.js';\nexport function createTextStyle(textStyleModel, opts) {\n opts = opts || {};\n return innerCreateTextStyle(textStyleModel, null, null, opts.state !== 'normal');\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nexport { linearMap, round, asc, getPrecision, getPrecisionSafe, getPixelPrecision, getPercentWithPrecision, MAX_SAFE_INTEGER, remRadian, isRadianAroundZero, parseDate, quantity, quantityExponent, nice, quantile, reformIntervals, isNumeric, numericToNumber } from '../../util/number.js';","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nexport { parseDate as parse } from '../../util/number.js';\nexport { format } from '../../util/time.js';","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nexport { map, each, indexOf, inherits, reduce, filter, bind, curry, isArray, isString, isObject, isFunction, extend, defaults, clone, merge } from 'zrender/lib/core/util.js';","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Core API from echarts/src/echarts\nexport * from '../core/echarts.js';\nexport * from './api.js';\nimport { use } from '../extension.js'; // Import label layout by default.\n// TODO will be treeshaked.\n\nimport { installLabelLayout } from '../label/installLabelLayout.js';\nuse(installLabelLayout);","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { registerPreprocessor, registerProcessor, registerPostInit, registerPostUpdate, registerAction, registerCoordinateSystem, registerLayout, registerVisual, registerTransform, registerLoading, registerMap, registerUpdateLifecycle, PRIORITY } from './core/echarts.js';\nimport ComponentView from './view/Component.js';\nimport ChartView from './view/Chart.js';\nimport ComponentModel from './model/Component.js';\nimport SeriesModel from './model/Series.js';\nimport { isFunction, indexOf, isArray, each } from 'zrender/lib/core/util.js';\nimport { registerImpl } from './core/impl.js';\nimport { registerPainter } from 'zrender/lib/zrender.js';\nvar extensions = [];\nvar extensionRegisters = {\n registerPreprocessor: registerPreprocessor,\n registerProcessor: registerProcessor,\n registerPostInit: registerPostInit,\n registerPostUpdate: registerPostUpdate,\n registerUpdateLifecycle: registerUpdateLifecycle,\n registerAction: registerAction,\n registerCoordinateSystem: registerCoordinateSystem,\n registerLayout: registerLayout,\n registerVisual: registerVisual,\n registerTransform: registerTransform,\n registerLoading: registerLoading,\n registerMap: registerMap,\n registerImpl: registerImpl,\n PRIORITY: PRIORITY,\n ComponentModel: ComponentModel,\n ComponentView: ComponentView,\n SeriesModel: SeriesModel,\n ChartView: ChartView,\n // TODO Use ComponentModel and SeriesModel instead of Constructor\n registerComponentModel: function (ComponentModelClass) {\n ComponentModel.registerClass(ComponentModelClass);\n },\n registerComponentView: function (ComponentViewClass) {\n ComponentView.registerClass(ComponentViewClass);\n },\n registerSeriesModel: function (SeriesModelClass) {\n SeriesModel.registerClass(SeriesModelClass);\n },\n registerChartView: function (ChartViewClass) {\n ChartView.registerClass(ChartViewClass);\n },\n registerSubTypeDefaulter: function (componentType, defaulter) {\n ComponentModel.registerSubTypeDefaulter(componentType, defaulter);\n },\n registerPainter: function (painterType, PainterCtor) {\n registerPainter(painterType, PainterCtor);\n }\n};\nexport function use(ext) {\n if (isArray(ext)) {\n // use([ChartLine, ChartBar]);\n each(ext, function (singleExt) {\n use(singleExt);\n });\n return;\n }\n\n if (indexOf(extensions, ext) >= 0) {\n return;\n }\n\n extensions.push(ext);\n\n if (isFunction(ext)) {\n ext = {\n install: ext\n };\n }\n\n ext.install(extensionRegisters);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\n/**\n * Language: English.\n */\nexport default {\n time: {\n month: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n monthAbbr: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n dayOfWeek: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n dayOfWeekAbbr: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']\n },\n legend: {\n selector: {\n all: 'All',\n inverse: 'Inv'\n }\n },\n toolbox: {\n brush: {\n title: {\n rect: 'Box Select',\n polygon: 'Lasso Select',\n lineX: 'Horizontally Select',\n lineY: 'Vertically Select',\n keep: 'Keep Selections',\n clear: 'Clear Selections'\n }\n },\n dataView: {\n title: 'Data View',\n lang: ['Data View', 'Close', 'Refresh']\n },\n dataZoom: {\n title: {\n zoom: 'Zoom',\n back: 'Zoom Reset'\n }\n },\n magicType: {\n title: {\n line: 'Switch to Line Chart',\n bar: 'Switch to Bar Chart',\n stack: 'Stack',\n tiled: 'Tile'\n }\n },\n restore: {\n title: 'Restore'\n },\n saveAsImage: {\n title: 'Save as Image',\n lang: ['Right Click to Save Image']\n }\n },\n series: {\n typeNames: {\n pie: 'Pie chart',\n bar: 'Bar chart',\n line: 'Line chart',\n scatter: 'Scatter plot',\n effectScatter: 'Ripple scatter plot',\n radar: 'Radar chart',\n tree: 'Tree',\n treemap: 'Treemap',\n boxplot: 'Boxplot',\n candlestick: 'Candlestick',\n k: 'K line chart',\n heatmap: 'Heat map',\n map: 'Map',\n parallel: 'Parallel coordinate map',\n lines: 'Line graph',\n graph: 'Relationship graph',\n sankey: 'Sankey diagram',\n funnel: 'Funnel chart',\n gauge: 'Gauge',\n pictorialBar: 'Pictorial bar',\n themeRiver: 'Theme River Map',\n sunburst: 'Sunburst'\n }\n },\n aria: {\n general: {\n withTitle: 'This is a chart about \"{title}\"',\n withoutTitle: 'This is a chart'\n },\n series: {\n single: {\n prefix: '',\n withName: ' with type {seriesType} named {seriesName}.',\n withoutName: ' with type {seriesType}.'\n },\n multiple: {\n prefix: '. It consists of {seriesCount} series count.',\n withName: ' The {seriesId} series is a {seriesType} representing {seriesName}.',\n withoutName: ' The {seriesId} series is a {seriesType}.',\n separator: {\n middle: '',\n end: ''\n }\n }\n },\n data: {\n allData: 'The data is as follows: ',\n partialData: 'The first {displayCnt} items are: ',\n withName: 'the data for {name} is {value}',\n withoutName: '{value}',\n separator: {\n middle: ', ',\n end: '. '\n }\n }\n }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\nexport default {\n time: {\n month: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],\n monthAbbr: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],\n dayOfWeek: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],\n dayOfWeekAbbr: ['日', '一', '二', '三', '四', '五', '六']\n },\n legend: {\n selector: {\n all: '全选',\n inverse: '反选'\n }\n },\n toolbox: {\n brush: {\n title: {\n rect: '矩形选择',\n polygon: '圈选',\n lineX: '横向选择',\n lineY: '纵向选择',\n keep: '保持选择',\n clear: '清除选择'\n }\n },\n dataView: {\n title: '数据视图',\n lang: ['数据视图', '关闭', '刷新']\n },\n dataZoom: {\n title: {\n zoom: '区域缩放',\n back: '区域缩放还原'\n }\n },\n magicType: {\n title: {\n line: '切换为折线图',\n bar: '切换为柱状图',\n stack: '切换为堆叠',\n tiled: '切换为平铺'\n }\n },\n restore: {\n title: '还原'\n },\n saveAsImage: {\n title: '保存为图片',\n lang: ['右键另存为图片']\n }\n },\n series: {\n typeNames: {\n pie: '饼图',\n bar: '柱状图',\n line: '折线图',\n scatter: '散点图',\n effectScatter: '涟漪散点图',\n radar: '雷达图',\n tree: '树图',\n treemap: '矩形树图',\n boxplot: '箱型图',\n candlestick: 'K线图',\n k: 'K线图',\n heatmap: '热力图',\n map: '地图',\n parallel: '平行坐标图',\n lines: '线图',\n graph: '关系图',\n sankey: '桑基图',\n funnel: '漏斗图',\n gauge: '仪表盘图',\n pictorialBar: '象形柱图',\n themeRiver: '主题河流图',\n sunburst: '旭日图'\n }\n },\n aria: {\n general: {\n withTitle: '这是一个关于“{title}”的图表。',\n withoutTitle: '这是一个图表,'\n },\n series: {\n single: {\n prefix: '',\n withName: '图表类型是{seriesType},表示{seriesName}。',\n withoutName: '图表类型是{seriesType}。'\n },\n multiple: {\n prefix: '它由{seriesCount}个图表系列组成。',\n withName: '第{seriesId}个系列是一个表示{seriesName}的{seriesType},',\n withoutName: '第{seriesId}个系列是一个{seriesType},',\n separator: {\n middle: ';',\n end: '。'\n }\n }\n },\n data: {\n allData: '其数据是——',\n partialData: '其中,前{displayCnt}项是——',\n withName: '{name}的数据是{value}',\n withoutName: '{value}',\n separator: {\n middle: ',',\n end: ''\n }\n }\n }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// TODO: move labels out of viewport.\nimport { BoundingRect, updateProps, initProps, isElementRemoved } from '../util/graphic.js';\nimport { getECData } from '../util/innerStore.js';\nimport { parsePercent } from '../util/number.js';\nimport Transformable from 'zrender/lib/core/Transformable.js';\nimport { updateLabelLinePoints, setLabelLineStyle, getLabelLineStatesModels } from './labelGuideHelper.js';\nimport { makeInner } from '../util/model.js';\nimport { retrieve2, each, keys, isFunction, filter, indexOf } from 'zrender/lib/core/util.js';\nimport { prepareLayoutList, hideOverlap, shiftLayoutOnX, shiftLayoutOnY } from './labelLayoutHelper.js';\nimport { labelInner, animateLabelValue } from './labelStyle.js';\n\nfunction cloneArr(points) {\n if (points) {\n var newPoints = [];\n\n for (var i = 0; i < points.length; i++) {\n newPoints.push(points[i].slice());\n }\n\n return newPoints;\n }\n}\n\nfunction prepareLayoutCallbackParams(labelItem, hostEl) {\n var label = labelItem.label;\n var labelLine = hostEl && hostEl.getTextGuideLine();\n return {\n dataIndex: labelItem.dataIndex,\n dataType: labelItem.dataType,\n seriesIndex: labelItem.seriesModel.seriesIndex,\n text: labelItem.label.style.text,\n rect: labelItem.hostRect,\n labelRect: labelItem.rect,\n // x: labelAttr.x,\n // y: labelAttr.y,\n align: label.style.align,\n verticalAlign: label.style.verticalAlign,\n labelLinePoints: cloneArr(labelLine && labelLine.shape.points)\n };\n}\n\nvar LABEL_OPTION_TO_STYLE_KEYS = ['align', 'verticalAlign', 'width', 'height', 'fontSize'];\nvar dummyTransformable = new Transformable();\nvar labelLayoutInnerStore = makeInner();\nvar labelLineAnimationStore = makeInner();\n\nfunction extendWithKeys(target, source, keys) {\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n\n if (source[key] != null) {\n target[key] = source[key];\n }\n }\n}\n\nvar LABEL_LAYOUT_PROPS = ['x', 'y', 'rotation'];\n\nvar LabelManager =\n/** @class */\nfunction () {\n function LabelManager() {\n this._labelList = [];\n this._chartViewList = [];\n }\n\n LabelManager.prototype.clearLabels = function () {\n this._labelList = [];\n this._chartViewList = [];\n };\n /**\n * Add label to manager\n */\n\n\n LabelManager.prototype._addLabel = function (dataIndex, dataType, seriesModel, label, layoutOption) {\n var labelStyle = label.style;\n var hostEl = label.__hostTarget;\n var textConfig = hostEl.textConfig || {}; // TODO: If label is in other state.\n\n var labelTransform = label.getComputedTransform();\n var labelRect = label.getBoundingRect().plain();\n BoundingRect.applyTransform(labelRect, labelRect, labelTransform);\n\n if (labelTransform) {\n dummyTransformable.setLocalTransform(labelTransform);\n } else {\n // Identity transform.\n dummyTransformable.x = dummyTransformable.y = dummyTransformable.rotation = dummyTransformable.originX = dummyTransformable.originY = 0;\n dummyTransformable.scaleX = dummyTransformable.scaleY = 1;\n }\n\n var host = label.__hostTarget;\n var hostRect;\n\n if (host) {\n hostRect = host.getBoundingRect().plain();\n var transform = host.getComputedTransform();\n BoundingRect.applyTransform(hostRect, hostRect, transform);\n }\n\n var labelGuide = hostRect && host.getTextGuideLine();\n\n this._labelList.push({\n label: label,\n labelLine: labelGuide,\n seriesModel: seriesModel,\n dataIndex: dataIndex,\n dataType: dataType,\n layoutOption: layoutOption,\n computedLayoutOption: null,\n rect: labelRect,\n hostRect: hostRect,\n // Label with lower priority will be hidden when overlapped\n // Use rect size as default priority\n priority: hostRect ? hostRect.width * hostRect.height : 0,\n // Save default label attributes.\n // For restore if developers want get back to default value in callback.\n defaultAttr: {\n ignore: label.ignore,\n labelGuideIgnore: labelGuide && labelGuide.ignore,\n x: dummyTransformable.x,\n y: dummyTransformable.y,\n scaleX: dummyTransformable.scaleX,\n scaleY: dummyTransformable.scaleY,\n rotation: dummyTransformable.rotation,\n style: {\n x: labelStyle.x,\n y: labelStyle.y,\n align: labelStyle.align,\n verticalAlign: labelStyle.verticalAlign,\n width: labelStyle.width,\n height: labelStyle.height,\n fontSize: labelStyle.fontSize\n },\n cursor: label.cursor,\n attachedPos: textConfig.position,\n attachedRot: textConfig.rotation\n }\n });\n };\n\n LabelManager.prototype.addLabelsOfSeries = function (chartView) {\n var _this = this;\n\n this._chartViewList.push(chartView);\n\n var seriesModel = chartView.__model;\n var layoutOption = seriesModel.get('labelLayout');\n /**\n * Ignore layouting if it's not specified anything.\n */\n\n if (!(isFunction(layoutOption) || keys(layoutOption).length)) {\n return;\n }\n\n chartView.group.traverse(function (child) {\n if (child.ignore) {\n return true; // Stop traverse descendants.\n } // Only support label being hosted on graphic elements.\n\n\n var textEl = child.getTextContent();\n var ecData = getECData(child); // Can only attach the text on the element with dataIndex\n\n if (textEl && !textEl.disableLabelLayout) {\n _this._addLabel(ecData.dataIndex, ecData.dataType, seriesModel, textEl, layoutOption);\n }\n });\n };\n\n LabelManager.prototype.updateLayoutConfig = function (api) {\n var width = api.getWidth();\n var height = api.getHeight();\n\n function createDragHandler(el, labelLineModel) {\n return function () {\n updateLabelLinePoints(el, labelLineModel);\n };\n }\n\n for (var i = 0; i < this._labelList.length; i++) {\n var labelItem = this._labelList[i];\n var label = labelItem.label;\n var hostEl = label.__hostTarget;\n var defaultLabelAttr = labelItem.defaultAttr;\n var layoutOption = void 0; // TODO A global layout option?\n\n if (isFunction(labelItem.layoutOption)) {\n layoutOption = labelItem.layoutOption(prepareLayoutCallbackParams(labelItem, hostEl));\n } else {\n layoutOption = labelItem.layoutOption;\n }\n\n layoutOption = layoutOption || {};\n labelItem.computedLayoutOption = layoutOption;\n var degreeToRadian = Math.PI / 180; // TODO hostEl should always exists.\n // Or label should not have parent because the x, y is all in global space.\n\n if (hostEl) {\n hostEl.setTextConfig({\n // Force to set local false.\n local: false,\n // Ignore position and rotation config on the host el if x or y is changed.\n position: layoutOption.x != null || layoutOption.y != null ? null : defaultLabelAttr.attachedPos,\n // Ignore rotation config on the host el if rotation is changed.\n rotation: layoutOption.rotate != null ? layoutOption.rotate * degreeToRadian : defaultLabelAttr.attachedRot,\n offset: [layoutOption.dx || 0, layoutOption.dy || 0]\n });\n }\n\n var needsUpdateLabelLine = false;\n\n if (layoutOption.x != null) {\n // TODO width of chart view.\n label.x = parsePercent(layoutOption.x, width);\n label.setStyle('x', 0); // Ignore movement in style. TODO: origin.\n\n needsUpdateLabelLine = true;\n } else {\n label.x = defaultLabelAttr.x;\n label.setStyle('x', defaultLabelAttr.style.x);\n }\n\n if (layoutOption.y != null) {\n // TODO height of chart view.\n label.y = parsePercent(layoutOption.y, height);\n label.setStyle('y', 0); // Ignore movement in style.\n\n needsUpdateLabelLine = true;\n } else {\n label.y = defaultLabelAttr.y;\n label.setStyle('y', defaultLabelAttr.style.y);\n }\n\n if (layoutOption.labelLinePoints) {\n var guideLine = hostEl.getTextGuideLine();\n\n if (guideLine) {\n guideLine.setShape({\n points: layoutOption.labelLinePoints\n }); // Not update\n\n needsUpdateLabelLine = false;\n }\n }\n\n var labelLayoutStore = labelLayoutInnerStore(label);\n labelLayoutStore.needsUpdateLabelLine = needsUpdateLabelLine;\n label.rotation = layoutOption.rotate != null ? layoutOption.rotate * degreeToRadian : defaultLabelAttr.rotation;\n label.scaleX = defaultLabelAttr.scaleX;\n label.scaleY = defaultLabelAttr.scaleY;\n\n for (var k = 0; k < LABEL_OPTION_TO_STYLE_KEYS.length; k++) {\n var key = LABEL_OPTION_TO_STYLE_KEYS[k];\n label.setStyle(key, layoutOption[key] != null ? layoutOption[key] : defaultLabelAttr.style[key]);\n }\n\n if (layoutOption.draggable) {\n label.draggable = true;\n label.cursor = 'move';\n\n if (hostEl) {\n var hostModel = labelItem.seriesModel;\n\n if (labelItem.dataIndex != null) {\n var data = labelItem.seriesModel.getData(labelItem.dataType);\n hostModel = data.getItemModel(labelItem.dataIndex);\n }\n\n label.on('drag', createDragHandler(hostEl, hostModel.getModel('labelLine')));\n }\n } else {\n // TODO Other drag functions?\n label.off('drag');\n label.cursor = defaultLabelAttr.cursor;\n }\n }\n };\n\n LabelManager.prototype.layout = function (api) {\n var width = api.getWidth();\n var height = api.getHeight();\n var labelList = prepareLayoutList(this._labelList);\n var labelsNeedsAdjustOnX = filter(labelList, function (item) {\n return item.layoutOption.moveOverlap === 'shiftX';\n });\n var labelsNeedsAdjustOnY = filter(labelList, function (item) {\n return item.layoutOption.moveOverlap === 'shiftY';\n });\n shiftLayoutOnX(labelsNeedsAdjustOnX, 0, width);\n shiftLayoutOnY(labelsNeedsAdjustOnY, 0, height);\n var labelsNeedsHideOverlap = filter(labelList, function (item) {\n return item.layoutOption.hideOverlap;\n });\n hideOverlap(labelsNeedsHideOverlap);\n };\n /**\n * Process all labels. Not only labels with layoutOption.\n */\n\n\n LabelManager.prototype.processLabelsOverall = function () {\n var _this = this;\n\n each(this._chartViewList, function (chartView) {\n var seriesModel = chartView.__model;\n var ignoreLabelLineUpdate = chartView.ignoreLabelLineUpdate;\n var animationEnabled = seriesModel.isAnimationEnabled();\n chartView.group.traverse(function (child) {\n if (child.ignore && !child.forceLabelAnimation) {\n return true; // Stop traverse descendants.\n }\n\n var needsUpdateLabelLine = !ignoreLabelLineUpdate;\n var label = child.getTextContent();\n\n if (!needsUpdateLabelLine && label) {\n needsUpdateLabelLine = labelLayoutInnerStore(label).needsUpdateLabelLine;\n }\n\n if (needsUpdateLabelLine) {\n _this._updateLabelLine(child, seriesModel);\n }\n\n if (animationEnabled) {\n _this._animateLabels(child, seriesModel);\n }\n });\n });\n };\n\n LabelManager.prototype._updateLabelLine = function (el, seriesModel) {\n // Only support label being hosted on graphic elements.\n var textEl = el.getTextContent(); // Update label line style.\n\n var ecData = getECData(el);\n var dataIndex = ecData.dataIndex; // Only support labelLine on the labels represent data.\n\n if (textEl && dataIndex != null) {\n var data = seriesModel.getData(ecData.dataType);\n var itemModel = data.getItemModel(dataIndex);\n var defaultStyle = {};\n var visualStyle = data.getItemVisual(dataIndex, 'style');\n var visualType = data.getVisual('drawType'); // Default to be same with main color\n\n defaultStyle.stroke = visualStyle[visualType];\n var labelLineModel = itemModel.getModel('labelLine');\n setLabelLineStyle(el, getLabelLineStatesModels(itemModel), defaultStyle);\n updateLabelLinePoints(el, labelLineModel);\n }\n };\n\n LabelManager.prototype._animateLabels = function (el, seriesModel) {\n var textEl = el.getTextContent();\n var guideLine = el.getTextGuideLine(); // Animate\n\n if (textEl // `forceLabelAnimation` has the highest priority\n && (el.forceLabelAnimation || !textEl.ignore && !textEl.invisible && !el.disableLabelAnimation && !isElementRemoved(el))) {\n var layoutStore = labelLayoutInnerStore(textEl);\n var oldLayout = layoutStore.oldLayout;\n var ecData = getECData(el);\n var dataIndex = ecData.dataIndex;\n var newProps = {\n x: textEl.x,\n y: textEl.y,\n rotation: textEl.rotation\n };\n var data = seriesModel.getData(ecData.dataType);\n\n if (!oldLayout) {\n textEl.attr(newProps); // Disable fade in animation if value animation is enabled.\n\n if (!labelInner(textEl).valueAnimation) {\n var oldOpacity = retrieve2(textEl.style.opacity, 1); // Fade in animation\n\n textEl.style.opacity = 0;\n initProps(textEl, {\n style: {\n opacity: oldOpacity\n }\n }, seriesModel, dataIndex);\n }\n } else {\n textEl.attr(oldLayout); // Make sure the animation from is in the right status.\n\n var prevStates = el.prevStates;\n\n if (prevStates) {\n if (indexOf(prevStates, 'select') >= 0) {\n textEl.attr(layoutStore.oldLayoutSelect);\n }\n\n if (indexOf(prevStates, 'emphasis') >= 0) {\n textEl.attr(layoutStore.oldLayoutEmphasis);\n }\n }\n\n updateProps(textEl, newProps, seriesModel, dataIndex);\n }\n\n layoutStore.oldLayout = newProps;\n\n if (textEl.states.select) {\n var layoutSelect = layoutStore.oldLayoutSelect = {};\n extendWithKeys(layoutSelect, newProps, LABEL_LAYOUT_PROPS);\n extendWithKeys(layoutSelect, textEl.states.select, LABEL_LAYOUT_PROPS);\n }\n\n if (textEl.states.emphasis) {\n var layoutEmphasis = layoutStore.oldLayoutEmphasis = {};\n extendWithKeys(layoutEmphasis, newProps, LABEL_LAYOUT_PROPS);\n extendWithKeys(layoutEmphasis, textEl.states.emphasis, LABEL_LAYOUT_PROPS);\n }\n\n animateLabelValue(textEl, dataIndex, data, seriesModel, seriesModel);\n }\n\n if (guideLine && !guideLine.ignore && !guideLine.invisible) {\n var layoutStore = labelLineAnimationStore(guideLine);\n var oldLayout = layoutStore.oldLayout;\n var newLayout = {\n points: guideLine.shape.points\n };\n\n if (!oldLayout) {\n guideLine.setShape(newLayout);\n guideLine.style.strokePercent = 0;\n initProps(guideLine, {\n style: {\n strokePercent: 1\n }\n }, seriesModel);\n } else {\n guideLine.attr({\n shape: oldLayout\n });\n updateProps(guideLine, {\n shape: newLayout\n }, seriesModel);\n }\n\n layoutStore.oldLayout = newLayout;\n }\n };\n\n return LabelManager;\n}();\n\nexport default LabelManager;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { makeInner } from '../util/model.js';\nimport LabelManager from './LabelManager.js';\nvar getLabelManager = makeInner();\nexport function installLabelLayout(registers) {\n registers.registerUpdateLifecycle('series:beforeupdate', function (ecModel, api, params) {\n // TODO api provide an namespace that can save stuff per instance\n var labelManager = getLabelManager(api).labelManager;\n\n if (!labelManager) {\n labelManager = getLabelManager(api).labelManager = new LabelManager();\n }\n\n labelManager.clearLabels();\n });\n registers.registerUpdateLifecycle('series:layoutlabels', function (ecModel, api, params) {\n var labelManager = getLabelManager(api).labelManager;\n params.updatedSeries.forEach(function (series) {\n labelManager.addLabelsOfSeries(api.getViewOfSeriesModel(series));\n });\n labelManager.updateLayoutConfig(api);\n labelManager.layout(api);\n labelManager.processLabelsOverall();\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { Point, Path, Polyline } from '../util/graphic.js';\nimport PathProxy from 'zrender/lib/core/PathProxy.js';\nimport { normalizeRadian } from 'zrender/lib/contain/util.js';\nimport { cubicProjectPoint, quadraticProjectPoint } from 'zrender/lib/core/curve.js';\nimport { defaults, retrieve2 } from 'zrender/lib/core/util.js';\nimport { invert } from 'zrender/lib/core/matrix.js';\nimport * as vector from 'zrender/lib/core/vector.js';\nimport { DISPLAY_STATES, SPECIAL_STATES } from '../util/states.js';\nvar PI2 = Math.PI * 2;\nvar CMD = PathProxy.CMD;\nvar DEFAULT_SEARCH_SPACE = ['top', 'right', 'bottom', 'left'];\n\nfunction getCandidateAnchor(pos, distance, rect, outPt, outDir) {\n var width = rect.width;\n var height = rect.height;\n\n switch (pos) {\n case 'top':\n outPt.set(rect.x + width / 2, rect.y - distance);\n outDir.set(0, -1);\n break;\n\n case 'bottom':\n outPt.set(rect.x + width / 2, rect.y + height + distance);\n outDir.set(0, 1);\n break;\n\n case 'left':\n outPt.set(rect.x - distance, rect.y + height / 2);\n outDir.set(-1, 0);\n break;\n\n case 'right':\n outPt.set(rect.x + width + distance, rect.y + height / 2);\n outDir.set(1, 0);\n break;\n }\n}\n\nfunction projectPointToArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y, out) {\n x -= cx;\n y -= cy;\n var d = Math.sqrt(x * x + y * y);\n x /= d;\n y /= d; // Intersect point.\n\n var ox = x * r + cx;\n var oy = y * r + cy;\n\n if (Math.abs(startAngle - endAngle) % PI2 < 1e-4) {\n // Is a circle\n out[0] = ox;\n out[1] = oy;\n return d - r;\n }\n\n if (anticlockwise) {\n var tmp = startAngle;\n startAngle = normalizeRadian(endAngle);\n endAngle = normalizeRadian(tmp);\n } else {\n startAngle = normalizeRadian(startAngle);\n endAngle = normalizeRadian(endAngle);\n }\n\n if (startAngle > endAngle) {\n endAngle += PI2;\n }\n\n var angle = Math.atan2(y, x);\n\n if (angle < 0) {\n angle += PI2;\n }\n\n if (angle >= startAngle && angle <= endAngle || angle + PI2 >= startAngle && angle + PI2 <= endAngle) {\n // Project point is on the arc.\n out[0] = ox;\n out[1] = oy;\n return d - r;\n }\n\n var x1 = r * Math.cos(startAngle) + cx;\n var y1 = r * Math.sin(startAngle) + cy;\n var x2 = r * Math.cos(endAngle) + cx;\n var y2 = r * Math.sin(endAngle) + cy;\n var d1 = (x1 - x) * (x1 - x) + (y1 - y) * (y1 - y);\n var d2 = (x2 - x) * (x2 - x) + (y2 - y) * (y2 - y);\n\n if (d1 < d2) {\n out[0] = x1;\n out[1] = y1;\n return Math.sqrt(d1);\n } else {\n out[0] = x2;\n out[1] = y2;\n return Math.sqrt(d2);\n }\n}\n\nfunction projectPointToLine(x1, y1, x2, y2, x, y, out, limitToEnds) {\n var dx = x - x1;\n var dy = y - y1;\n var dx1 = x2 - x1;\n var dy1 = y2 - y1;\n var lineLen = Math.sqrt(dx1 * dx1 + dy1 * dy1);\n dx1 /= lineLen;\n dy1 /= lineLen; // dot product\n\n var projectedLen = dx * dx1 + dy * dy1;\n var t = projectedLen / lineLen;\n\n if (limitToEnds) {\n t = Math.min(Math.max(t, 0), 1);\n }\n\n t *= lineLen;\n var ox = out[0] = x1 + t * dx1;\n var oy = out[1] = y1 + t * dy1;\n return Math.sqrt((ox - x) * (ox - x) + (oy - y) * (oy - y));\n}\n\nfunction projectPointToRect(x1, y1, width, height, x, y, out) {\n if (width < 0) {\n x1 = x1 + width;\n width = -width;\n }\n\n if (height < 0) {\n y1 = y1 + height;\n height = -height;\n }\n\n var x2 = x1 + width;\n var y2 = y1 + height;\n var ox = out[0] = Math.min(Math.max(x, x1), x2);\n var oy = out[1] = Math.min(Math.max(y, y1), y2);\n return Math.sqrt((ox - x) * (ox - x) + (oy - y) * (oy - y));\n}\n\nvar tmpPt = [];\n\nfunction nearestPointOnRect(pt, rect, out) {\n var dist = projectPointToRect(rect.x, rect.y, rect.width, rect.height, pt.x, pt.y, tmpPt);\n out.set(tmpPt[0], tmpPt[1]);\n return dist;\n}\n/**\n * Calculate min distance corresponding point.\n * This method won't evaluate if point is in the path.\n */\n\n\nfunction nearestPointOnPath(pt, path, out) {\n var xi = 0;\n var yi = 0;\n var x0 = 0;\n var y0 = 0;\n var x1;\n var y1;\n var minDist = Infinity;\n var data = path.data;\n var x = pt.x;\n var y = pt.y;\n\n for (var i = 0; i < data.length;) {\n var cmd = data[i++];\n\n if (i === 1) {\n xi = data[i];\n yi = data[i + 1];\n x0 = xi;\n y0 = yi;\n }\n\n var d = minDist;\n\n switch (cmd) {\n case CMD.M:\n // moveTo 命令重新创建一个新的 subpath, 并且更新新的起点\n // 在 closePath 的时候使用\n x0 = data[i++];\n y0 = data[i++];\n xi = x0;\n yi = y0;\n break;\n\n case CMD.L:\n d = projectPointToLine(xi, yi, data[i], data[i + 1], x, y, tmpPt, true);\n xi = data[i++];\n yi = data[i++];\n break;\n\n case CMD.C:\n d = cubicProjectPoint(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], x, y, tmpPt);\n xi = data[i++];\n yi = data[i++];\n break;\n\n case CMD.Q:\n d = quadraticProjectPoint(xi, yi, data[i++], data[i++], data[i], data[i + 1], x, y, tmpPt);\n xi = data[i++];\n yi = data[i++];\n break;\n\n case CMD.A:\n // TODO Arc 判断的开销比较大\n var cx = data[i++];\n var cy = data[i++];\n var rx = data[i++];\n var ry = data[i++];\n var theta = data[i++];\n var dTheta = data[i++]; // TODO Arc 旋转\n\n i += 1;\n var anticlockwise = !!(1 - data[i++]);\n x1 = Math.cos(theta) * rx + cx;\n y1 = Math.sin(theta) * ry + cy; // 不是直接使用 arc 命令\n\n if (i <= 1) {\n // 第一个命令起点还未定义\n x0 = x1;\n y0 = y1;\n } // zr 使用scale来模拟椭圆, 这里也对x做一定的缩放\n\n\n var _x = (x - cx) * ry / rx + cx;\n\n d = projectPointToArc(cx, cy, ry, theta, theta + dTheta, anticlockwise, _x, y, tmpPt);\n xi = Math.cos(theta + dTheta) * rx + cx;\n yi = Math.sin(theta + dTheta) * ry + cy;\n break;\n\n case CMD.R:\n x0 = xi = data[i++];\n y0 = yi = data[i++];\n var width = data[i++];\n var height = data[i++];\n d = projectPointToRect(x0, y0, width, height, x, y, tmpPt);\n break;\n\n case CMD.Z:\n d = projectPointToLine(xi, yi, x0, y0, x, y, tmpPt, true);\n xi = x0;\n yi = y0;\n break;\n }\n\n if (d < minDist) {\n minDist = d;\n out.set(tmpPt[0], tmpPt[1]);\n }\n }\n\n return minDist;\n} // Temporal variable for intermediate usage.\n\n\nvar pt0 = new Point();\nvar pt1 = new Point();\nvar pt2 = new Point();\nvar dir = new Point();\nvar dir2 = new Point();\n/**\n * Calculate a proper guide line based on the label position and graphic element definition\n * @param label\n * @param labelRect\n * @param target\n * @param targetRect\n */\n\nexport function updateLabelLinePoints(target, labelLineModel) {\n if (!target) {\n return;\n }\n\n var labelLine = target.getTextGuideLine();\n var label = target.getTextContent(); // Needs to create text guide in each charts.\n\n if (!(label && labelLine)) {\n return;\n }\n\n var labelGuideConfig = target.textGuideLineConfig || {};\n var points = [[0, 0], [0, 0], [0, 0]];\n var searchSpace = labelGuideConfig.candidates || DEFAULT_SEARCH_SPACE;\n var labelRect = label.getBoundingRect().clone();\n labelRect.applyTransform(label.getComputedTransform());\n var minDist = Infinity;\n var anchorPoint = labelGuideConfig.anchor;\n var targetTransform = target.getComputedTransform();\n var targetInversedTransform = targetTransform && invert([], targetTransform);\n var len = labelLineModel.get('length2') || 0;\n\n if (anchorPoint) {\n pt2.copy(anchorPoint);\n }\n\n for (var i = 0; i < searchSpace.length; i++) {\n var candidate = searchSpace[i];\n getCandidateAnchor(candidate, 0, labelRect, pt0, dir);\n Point.scaleAndAdd(pt1, pt0, dir, len); // Transform to target coord space.\n\n pt1.transform(targetInversedTransform); // Note: getBoundingRect will ensure the `path` being created.\n\n var boundingRect = target.getBoundingRect();\n var dist = anchorPoint ? anchorPoint.distance(pt1) : target instanceof Path ? nearestPointOnPath(pt1, target.path, pt2) : nearestPointOnRect(pt1, boundingRect, pt2); // TODO pt2 is in the path\n\n if (dist < minDist) {\n minDist = dist; // Transform back to global space.\n\n pt1.transform(targetTransform);\n pt2.transform(targetTransform);\n pt2.toArray(points[0]);\n pt1.toArray(points[1]);\n pt0.toArray(points[2]);\n }\n }\n\n limitTurnAngle(points, labelLineModel.get('minTurnAngle'));\n labelLine.setShape({\n points: points\n });\n} // Temporal variable for the limitTurnAngle function\n\nvar tmpArr = [];\nvar tmpProjPoint = new Point();\n/**\n * Reduce the line segment attached to the label to limit the turn angle between two segments.\n * @param linePoints\n * @param minTurnAngle Radian of minimum turn angle. 0 - 180\n */\n\nexport function limitTurnAngle(linePoints, minTurnAngle) {\n if (!(minTurnAngle <= 180 && minTurnAngle > 0)) {\n return;\n }\n\n minTurnAngle = minTurnAngle / 180 * Math.PI; // The line points can be\n // /pt1----pt2 (label)\n // /\n // pt0/\n\n pt0.fromArray(linePoints[0]);\n pt1.fromArray(linePoints[1]);\n pt2.fromArray(linePoints[2]);\n Point.sub(dir, pt0, pt1);\n Point.sub(dir2, pt2, pt1);\n var len1 = dir.len();\n var len2 = dir2.len();\n\n if (len1 < 1e-3 || len2 < 1e-3) {\n return;\n }\n\n dir.scale(1 / len1);\n dir2.scale(1 / len2);\n var angleCos = dir.dot(dir2);\n var minTurnAngleCos = Math.cos(minTurnAngle);\n\n if (minTurnAngleCos < angleCos) {\n // Smaller than minTurnAngle\n // Calculate project point of pt0 on pt1-pt2\n var d = projectPointToLine(pt1.x, pt1.y, pt2.x, pt2.y, pt0.x, pt0.y, tmpArr, false);\n tmpProjPoint.fromArray(tmpArr); // Calculate new projected length with limited minTurnAngle and get the new connect point\n\n tmpProjPoint.scaleAndAdd(dir2, d / Math.tan(Math.PI - minTurnAngle)); // Limit the new calculated connect point between pt1 and pt2.\n\n var t = pt2.x !== pt1.x ? (tmpProjPoint.x - pt1.x) / (pt2.x - pt1.x) : (tmpProjPoint.y - pt1.y) / (pt2.y - pt1.y);\n\n if (isNaN(t)) {\n return;\n }\n\n if (t < 0) {\n Point.copy(tmpProjPoint, pt1);\n } else if (t > 1) {\n Point.copy(tmpProjPoint, pt2);\n }\n\n tmpProjPoint.toArray(linePoints[1]);\n }\n}\n/**\n * Limit the angle of line and the surface\n * @param maxSurfaceAngle Radian of minimum turn angle. 0 - 180. 0 is same direction to normal. 180 is opposite\n */\n\nexport function limitSurfaceAngle(linePoints, surfaceNormal, maxSurfaceAngle) {\n if (!(maxSurfaceAngle <= 180 && maxSurfaceAngle > 0)) {\n return;\n }\n\n maxSurfaceAngle = maxSurfaceAngle / 180 * Math.PI;\n pt0.fromArray(linePoints[0]);\n pt1.fromArray(linePoints[1]);\n pt2.fromArray(linePoints[2]);\n Point.sub(dir, pt1, pt0);\n Point.sub(dir2, pt2, pt1);\n var len1 = dir.len();\n var len2 = dir2.len();\n\n if (len1 < 1e-3 || len2 < 1e-3) {\n return;\n }\n\n dir.scale(1 / len1);\n dir2.scale(1 / len2);\n var angleCos = dir.dot(surfaceNormal);\n var maxSurfaceAngleCos = Math.cos(maxSurfaceAngle);\n\n if (angleCos < maxSurfaceAngleCos) {\n // Calculate project point of pt0 on pt1-pt2\n var d = projectPointToLine(pt1.x, pt1.y, pt2.x, pt2.y, pt0.x, pt0.y, tmpArr, false);\n tmpProjPoint.fromArray(tmpArr);\n var HALF_PI = Math.PI / 2;\n var angle2 = Math.acos(dir2.dot(surfaceNormal));\n var newAngle = HALF_PI + angle2 - maxSurfaceAngle;\n\n if (newAngle >= HALF_PI) {\n // parallel\n Point.copy(tmpProjPoint, pt2);\n } else {\n // Calculate new projected length with limited minTurnAngle and get the new connect point\n tmpProjPoint.scaleAndAdd(dir2, d / Math.tan(Math.PI / 2 - newAngle)); // Limit the new calculated connect point between pt1 and pt2.\n\n var t = pt2.x !== pt1.x ? (tmpProjPoint.x - pt1.x) / (pt2.x - pt1.x) : (tmpProjPoint.y - pt1.y) / (pt2.y - pt1.y);\n\n if (isNaN(t)) {\n return;\n }\n\n if (t < 0) {\n Point.copy(tmpProjPoint, pt1);\n } else if (t > 1) {\n Point.copy(tmpProjPoint, pt2);\n }\n }\n\n tmpProjPoint.toArray(linePoints[1]);\n }\n}\n\nfunction setLabelLineState(labelLine, ignore, stateName, stateModel) {\n var isNormal = stateName === 'normal';\n var stateObj = isNormal ? labelLine : labelLine.ensureState(stateName); // Make sure display.\n\n stateObj.ignore = ignore; // Set smooth\n\n var smooth = stateModel.get('smooth');\n\n if (smooth && smooth === true) {\n smooth = 0.3;\n }\n\n stateObj.shape = stateObj.shape || {};\n\n if (smooth > 0) {\n stateObj.shape.smooth = smooth;\n }\n\n var styleObj = stateModel.getModel('lineStyle').getLineStyle();\n isNormal ? labelLine.useStyle(styleObj) : stateObj.style = styleObj;\n}\n\nfunction buildLabelLinePath(path, shape) {\n var smooth = shape.smooth;\n var points = shape.points;\n\n if (!points) {\n return;\n }\n\n path.moveTo(points[0][0], points[0][1]);\n\n if (smooth > 0 && points.length >= 3) {\n var len1 = vector.dist(points[0], points[1]);\n var len2 = vector.dist(points[1], points[2]);\n\n if (!len1 || !len2) {\n path.lineTo(points[1][0], points[1][1]);\n path.lineTo(points[2][0], points[2][1]);\n return;\n }\n\n var moveLen = Math.min(len1, len2) * smooth;\n var midPoint0 = vector.lerp([], points[1], points[0], moveLen / len1);\n var midPoint2 = vector.lerp([], points[1], points[2], moveLen / len2);\n var midPoint1 = vector.lerp([], midPoint0, midPoint2, 0.5);\n path.bezierCurveTo(midPoint0[0], midPoint0[1], midPoint0[0], midPoint0[1], midPoint1[0], midPoint1[1]);\n path.bezierCurveTo(midPoint2[0], midPoint2[1], midPoint2[0], midPoint2[1], points[2][0], points[2][1]);\n } else {\n for (var i = 1; i < points.length; i++) {\n path.lineTo(points[i][0], points[i][1]);\n }\n }\n}\n/**\n * Create a label line if necessary and set it's style.\n */\n\n\nexport function setLabelLineStyle(targetEl, statesModels, defaultStyle) {\n var labelLine = targetEl.getTextGuideLine();\n var label = targetEl.getTextContent();\n\n if (!label) {\n // Not show label line if there is no label.\n if (labelLine) {\n targetEl.removeTextGuideLine();\n }\n\n return;\n }\n\n var normalModel = statesModels.normal;\n var showNormal = normalModel.get('show');\n var labelIgnoreNormal = label.ignore;\n\n for (var i = 0; i < DISPLAY_STATES.length; i++) {\n var stateName = DISPLAY_STATES[i];\n var stateModel = statesModels[stateName];\n var isNormal = stateName === 'normal';\n\n if (stateModel) {\n var stateShow = stateModel.get('show');\n var isLabelIgnored = isNormal ? labelIgnoreNormal : retrieve2(label.states[stateName] && label.states[stateName].ignore, labelIgnoreNormal);\n\n if (isLabelIgnored // Not show when label is not shown in this state.\n || !retrieve2(stateShow, showNormal) // Use normal state by default if not set.\n ) {\n var stateObj = isNormal ? labelLine : labelLine && labelLine.states[stateName];\n\n if (stateObj) {\n stateObj.ignore = true;\n }\n\n continue;\n } // Create labelLine if not exists\n\n\n if (!labelLine) {\n labelLine = new Polyline();\n targetEl.setTextGuideLine(labelLine); // Reset state of normal because it's new created.\n // NOTE: NORMAL should always been the first!\n\n if (!isNormal && (labelIgnoreNormal || !showNormal)) {\n setLabelLineState(labelLine, true, 'normal', statesModels.normal);\n } // Use same state proxy.\n\n\n if (targetEl.stateProxy) {\n labelLine.stateProxy = targetEl.stateProxy;\n }\n }\n\n setLabelLineState(labelLine, false, stateName, stateModel);\n }\n }\n\n if (labelLine) {\n defaults(labelLine.style, defaultStyle); // Not fill.\n\n labelLine.style.fill = null;\n var showAbove = normalModel.get('showAbove');\n var labelLineConfig = targetEl.textGuideLineConfig = targetEl.textGuideLineConfig || {};\n labelLineConfig.showAbove = showAbove || false; // Custom the buildPath.\n\n labelLine.buildPath = buildLabelLinePath;\n }\n}\nexport function getLabelLineStatesModels(itemModel, labelLineName) {\n labelLineName = labelLineName || 'labelLine';\n var statesModels = {\n normal: itemModel.getModel(labelLineName)\n };\n\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\n var stateName = SPECIAL_STATES[i];\n statesModels[stateName] = itemModel.getModel([stateName, labelLineName]);\n }\n\n return statesModels;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { BoundingRect, OrientedBoundingRect } from '../util/graphic.js';\nexport function prepareLayoutList(input) {\n var list = [];\n\n for (var i = 0; i < input.length; i++) {\n var rawItem = input[i];\n\n if (rawItem.defaultAttr.ignore) {\n continue;\n }\n\n var label = rawItem.label;\n var transform = label.getComputedTransform(); // NOTE: Get bounding rect after getComputedTransform, or label may not been updated by the host el.\n\n var localRect = label.getBoundingRect();\n var isAxisAligned = !transform || transform[1] < 1e-5 && transform[2] < 1e-5;\n var minMargin = label.style.margin || 0;\n var globalRect = localRect.clone();\n globalRect.applyTransform(transform);\n globalRect.x -= minMargin / 2;\n globalRect.y -= minMargin / 2;\n globalRect.width += minMargin;\n globalRect.height += minMargin;\n var obb = isAxisAligned ? new OrientedBoundingRect(localRect, transform) : null;\n list.push({\n label: label,\n labelLine: rawItem.labelLine,\n rect: globalRect,\n localRect: localRect,\n obb: obb,\n priority: rawItem.priority,\n defaultAttr: rawItem.defaultAttr,\n layoutOption: rawItem.computedLayoutOption,\n axisAligned: isAxisAligned,\n transform: transform\n });\n }\n\n return list;\n}\n\nfunction shiftLayout(list, xyDim, sizeDim, minBound, maxBound, balanceShift) {\n var len = list.length;\n\n if (len < 2) {\n return;\n }\n\n list.sort(function (a, b) {\n return a.rect[xyDim] - b.rect[xyDim];\n });\n var lastPos = 0;\n var delta;\n var adjusted = false;\n var shifts = [];\n var totalShifts = 0;\n\n for (var i = 0; i < len; i++) {\n var item = list[i];\n var rect = item.rect;\n delta = rect[xyDim] - lastPos;\n\n if (delta < 0) {\n // shiftForward(i, len, -delta);\n rect[xyDim] -= delta;\n item.label[xyDim] -= delta;\n adjusted = true;\n }\n\n var shift = Math.max(-delta, 0);\n shifts.push(shift);\n totalShifts += shift;\n lastPos = rect[xyDim] + rect[sizeDim];\n }\n\n if (totalShifts > 0 && balanceShift) {\n // Shift back to make the distribution more equally.\n shiftList(-totalShifts / len, 0, len);\n } // TODO bleedMargin?\n\n\n var first = list[0];\n var last = list[len - 1];\n var minGap;\n var maxGap;\n updateMinMaxGap(); // If ends exceed two bounds, squeeze at most 80%, then take the gap of two bounds.\n\n minGap < 0 && squeezeGaps(-minGap, 0.8);\n maxGap < 0 && squeezeGaps(maxGap, 0.8);\n updateMinMaxGap();\n takeBoundsGap(minGap, maxGap, 1);\n takeBoundsGap(maxGap, minGap, -1); // Handle bailout when there is not enough space.\n\n updateMinMaxGap();\n\n if (minGap < 0) {\n squeezeWhenBailout(-minGap);\n }\n\n if (maxGap < 0) {\n squeezeWhenBailout(maxGap);\n }\n\n function updateMinMaxGap() {\n minGap = first.rect[xyDim] - minBound;\n maxGap = maxBound - last.rect[xyDim] - last.rect[sizeDim];\n }\n\n function takeBoundsGap(gapThisBound, gapOtherBound, moveDir) {\n if (gapThisBound < 0) {\n // Move from other gap if can.\n var moveFromMaxGap = Math.min(gapOtherBound, -gapThisBound);\n\n if (moveFromMaxGap > 0) {\n shiftList(moveFromMaxGap * moveDir, 0, len);\n var remained = moveFromMaxGap + gapThisBound;\n\n if (remained < 0) {\n squeezeGaps(-remained * moveDir, 1);\n }\n } else {\n squeezeGaps(-gapThisBound * moveDir, 1);\n }\n }\n }\n\n function shiftList(delta, start, end) {\n if (delta !== 0) {\n adjusted = true;\n }\n\n for (var i = start; i < end; i++) {\n var item = list[i];\n var rect = item.rect;\n rect[xyDim] += delta;\n item.label[xyDim] += delta;\n }\n } // Squeeze gaps if the labels exceed margin.\n\n\n function squeezeGaps(delta, maxSqeezePercent) {\n var gaps = [];\n var totalGaps = 0;\n\n for (var i = 1; i < len; i++) {\n var prevItemRect = list[i - 1].rect;\n var gap = Math.max(list[i].rect[xyDim] - prevItemRect[xyDim] - prevItemRect[sizeDim], 0);\n gaps.push(gap);\n totalGaps += gap;\n }\n\n if (!totalGaps) {\n return;\n }\n\n var squeezePercent = Math.min(Math.abs(delta) / totalGaps, maxSqeezePercent);\n\n if (delta > 0) {\n for (var i = 0; i < len - 1; i++) {\n // Distribute the shift delta to all gaps.\n var movement = gaps[i] * squeezePercent; // Forward\n\n shiftList(movement, 0, i + 1);\n }\n } else {\n // Backward\n for (var i = len - 1; i > 0; i--) {\n // Distribute the shift delta to all gaps.\n var movement = gaps[i - 1] * squeezePercent;\n shiftList(-movement, i, len);\n }\n }\n }\n /**\n * Squeeze to allow overlap if there is no more space available.\n * Let other overlapping strategy like hideOverlap do the job instead of keep exceeding the bounds.\n */\n\n\n function squeezeWhenBailout(delta) {\n var dir = delta < 0 ? -1 : 1;\n delta = Math.abs(delta);\n var moveForEachLabel = Math.ceil(delta / (len - 1));\n\n for (var i = 0; i < len - 1; i++) {\n if (dir > 0) {\n // Forward\n shiftList(moveForEachLabel, 0, i + 1);\n } else {\n // Backward\n shiftList(-moveForEachLabel, len - i - 1, len);\n }\n\n delta -= moveForEachLabel;\n\n if (delta <= 0) {\n return;\n }\n }\n }\n\n return adjusted;\n}\n/**\n * Adjust labels on x direction to avoid overlap.\n */\n\n\nexport function shiftLayoutOnX(list, leftBound, rightBound, // If average the shifts on all labels and add them to 0\n// TODO: Not sure if should enable it.\n// Pros: The angle of lines will distribute more equally\n// Cons: In some layout. It may not what user wanted. like in pie. the label of last sector is usually changed unexpectedly.\nbalanceShift) {\n return shiftLayout(list, 'x', 'width', leftBound, rightBound, balanceShift);\n}\n/**\n * Adjust labels on y direction to avoid overlap.\n */\n\nexport function shiftLayoutOnY(list, topBound, bottomBound, // If average the shifts on all labels and add them to 0\nbalanceShift) {\n return shiftLayout(list, 'y', 'height', topBound, bottomBound, balanceShift);\n}\nexport function hideOverlap(labelList) {\n var displayedLabels = []; // TODO, render overflow visible first, put in the displayedLabels.\n\n labelList.sort(function (a, b) {\n return b.priority - a.priority;\n });\n var globalRect = new BoundingRect(0, 0, 0, 0);\n\n function hideEl(el) {\n if (!el.ignore) {\n // Show on emphasis.\n var emphasisState = el.ensureState('emphasis');\n\n if (emphasisState.ignore == null) {\n emphasisState.ignore = false;\n }\n }\n\n el.ignore = true;\n }\n\n for (var i = 0; i < labelList.length; i++) {\n var labelItem = labelList[i];\n var isAxisAligned = labelItem.axisAligned;\n var localRect = labelItem.localRect;\n var transform = labelItem.transform;\n var label = labelItem.label;\n var labelLine = labelItem.labelLine;\n globalRect.copy(labelItem.rect); // Add a threshold because layout may be aligned precisely.\n\n globalRect.width -= 0.1;\n globalRect.height -= 0.1;\n globalRect.x += 0.05;\n globalRect.y += 0.05;\n var obb = labelItem.obb;\n var overlapped = false;\n\n for (var j = 0; j < displayedLabels.length; j++) {\n var existsTextCfg = displayedLabels[j]; // Fast rejection.\n\n if (!globalRect.intersect(existsTextCfg.rect)) {\n continue;\n }\n\n if (isAxisAligned && existsTextCfg.axisAligned) {\n // Is overlapped\n overlapped = true;\n break;\n }\n\n if (!existsTextCfg.obb) {\n // If self is not axis aligned. But other is.\n existsTextCfg.obb = new OrientedBoundingRect(existsTextCfg.localRect, existsTextCfg.transform);\n }\n\n if (!obb) {\n // If self is axis aligned. But other is not.\n obb = new OrientedBoundingRect(localRect, transform);\n }\n\n if (obb.intersect(existsTextCfg.obb)) {\n overlapped = true;\n break;\n }\n } // TODO Callback to determine if this overlap should be handled?\n\n\n if (overlapped) {\n hideEl(label);\n labelLine && hideEl(labelLine);\n } else {\n label.attr('ignore', labelItem.defaultAttr.ignore);\n labelLine && labelLine.attr('ignore', labelItem.defaultAttr.labelGuideIgnore);\n displayedLabels.push(labelItem);\n }\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport ZRText from 'zrender/lib/graphic/Text.js';\nimport { isFunction, retrieve2, extend, keys, trim } from 'zrender/lib/core/util.js';\nimport { SPECIAL_STATES, DISPLAY_STATES } from '../util/states.js';\nimport { deprecateReplaceLog } from '../util/log.js';\nimport { makeInner, interpolateRawValues } from '../util/model.js';\nimport { initProps, updateProps } from '../util/graphic.js';\nvar EMPTY_OBJ = {};\nexport function setLabelText(label, labelTexts) {\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\n var stateName = SPECIAL_STATES[i];\n var text = labelTexts[stateName];\n var state = label.ensureState(stateName);\n state.style = state.style || {};\n state.style.text = text;\n }\n\n var oldStates = label.currentStates.slice();\n label.clearStates(true);\n label.setStyle({\n text: labelTexts.normal\n });\n label.useStates(oldStates, true);\n}\n\nfunction getLabelText(opt, stateModels, interpolatedValue) {\n var labelFetcher = opt.labelFetcher;\n var labelDataIndex = opt.labelDataIndex;\n var labelDimIndex = opt.labelDimIndex;\n var normalModel = stateModels.normal;\n var baseText;\n\n if (labelFetcher) {\n baseText = labelFetcher.getFormattedLabel(labelDataIndex, 'normal', null, labelDimIndex, normalModel && normalModel.get('formatter'), interpolatedValue != null ? {\n interpolatedValue: interpolatedValue\n } : null);\n }\n\n if (baseText == null) {\n baseText = isFunction(opt.defaultText) ? opt.defaultText(labelDataIndex, opt, interpolatedValue) : opt.defaultText;\n }\n\n var statesText = {\n normal: baseText\n };\n\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\n var stateName = SPECIAL_STATES[i];\n var stateModel = stateModels[stateName];\n statesText[stateName] = retrieve2(labelFetcher ? labelFetcher.getFormattedLabel(labelDataIndex, stateName, null, labelDimIndex, stateModel && stateModel.get('formatter')) : null, baseText);\n }\n\n return statesText;\n}\n\nfunction setLabelStyle(targetEl, labelStatesModels, opt, stateSpecified // TODO specified position?\n) {\n opt = opt || EMPTY_OBJ;\n var isSetOnText = targetEl instanceof ZRText;\n var needsCreateText = false;\n\n for (var i = 0; i < DISPLAY_STATES.length; i++) {\n var stateModel = labelStatesModels[DISPLAY_STATES[i]];\n\n if (stateModel && stateModel.getShallow('show')) {\n needsCreateText = true;\n break;\n }\n }\n\n var textContent = isSetOnText ? targetEl : targetEl.getTextContent();\n\n if (needsCreateText) {\n if (!isSetOnText) {\n // Reuse the previous\n if (!textContent) {\n textContent = new ZRText();\n targetEl.setTextContent(textContent);\n } // Use same state proxy\n\n\n if (targetEl.stateProxy) {\n textContent.stateProxy = targetEl.stateProxy;\n }\n }\n\n var labelStatesTexts = getLabelText(opt, labelStatesModels);\n var normalModel = labelStatesModels.normal;\n var showNormal = !!normalModel.getShallow('show');\n var normalStyle = createTextStyle(normalModel, stateSpecified && stateSpecified.normal, opt, false, !isSetOnText);\n normalStyle.text = labelStatesTexts.normal;\n\n if (!isSetOnText) {\n // Always create new\n targetEl.setTextConfig(createTextConfig(normalModel, opt, false));\n }\n\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\n var stateName = SPECIAL_STATES[i];\n var stateModel = labelStatesModels[stateName];\n\n if (stateModel) {\n var stateObj = textContent.ensureState(stateName);\n var stateShow = !!retrieve2(stateModel.getShallow('show'), showNormal);\n\n if (stateShow !== showNormal) {\n stateObj.ignore = !stateShow;\n }\n\n stateObj.style = createTextStyle(stateModel, stateSpecified && stateSpecified[stateName], opt, true, !isSetOnText);\n stateObj.style.text = labelStatesTexts[stateName];\n\n if (!isSetOnText) {\n var targetElEmphasisState = targetEl.ensureState(stateName);\n targetElEmphasisState.textConfig = createTextConfig(stateModel, opt, true);\n }\n }\n } // PENDING: if there is many requirements that emphasis position\n // need to be different from normal position, we might consider\n // auto silent is those cases.\n\n\n textContent.silent = !!normalModel.getShallow('silent'); // Keep x and y\n\n if (textContent.style.x != null) {\n normalStyle.x = textContent.style.x;\n }\n\n if (textContent.style.y != null) {\n normalStyle.y = textContent.style.y;\n }\n\n textContent.ignore = !showNormal; // Always create new style.\n\n textContent.useStyle(normalStyle);\n textContent.dirty();\n\n if (opt.enableTextSetter) {\n labelInner(textContent).setLabelText = function (interpolatedValue) {\n var labelStatesTexts = getLabelText(opt, labelStatesModels, interpolatedValue);\n setLabelText(textContent, labelStatesTexts);\n };\n }\n } else if (textContent) {\n // Not display rich text.\n textContent.ignore = true;\n }\n\n targetEl.dirty();\n}\n\nexport { setLabelStyle };\nexport function getLabelStatesModels(itemModel, labelName) {\n labelName = labelName || 'label';\n var statesModels = {\n normal: itemModel.getModel(labelName)\n };\n\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\n var stateName = SPECIAL_STATES[i];\n statesModels[stateName] = itemModel.getModel([stateName, labelName]);\n }\n\n return statesModels;\n}\n/**\n * Set basic textStyle properties.\n */\n\nexport function createTextStyle(textStyleModel, specifiedTextStyle, // Fixed style in the code. Can't be set by model.\nopt, isNotNormal, isAttached // If text is attached on an element. If so, auto color will handling in zrender.\n) {\n var textStyle = {};\n setTextStyleCommon(textStyle, textStyleModel, opt, isNotNormal, isAttached);\n specifiedTextStyle && extend(textStyle, specifiedTextStyle); // textStyle.host && textStyle.host.dirty && textStyle.host.dirty(false);\n\n return textStyle;\n}\nexport function createTextConfig(textStyleModel, opt, isNotNormal) {\n opt = opt || {};\n var textConfig = {};\n var labelPosition;\n var labelRotate = textStyleModel.getShallow('rotate');\n var labelDistance = retrieve2(textStyleModel.getShallow('distance'), isNotNormal ? null : 5);\n var labelOffset = textStyleModel.getShallow('offset');\n labelPosition = textStyleModel.getShallow('position') || (isNotNormal ? null : 'inside'); // 'outside' is not a valid zr textPostion value, but used\n // in bar series, and magric type should be considered.\n\n labelPosition === 'outside' && (labelPosition = opt.defaultOutsidePosition || 'top');\n\n if (labelPosition != null) {\n textConfig.position = labelPosition;\n }\n\n if (labelOffset != null) {\n textConfig.offset = labelOffset;\n }\n\n if (labelRotate != null) {\n labelRotate *= Math.PI / 180;\n textConfig.rotation = labelRotate;\n }\n\n if (labelDistance != null) {\n textConfig.distance = labelDistance;\n } // fill and auto is determined by the color of path fill if it's not specified by developers.\n\n\n textConfig.outsideFill = textStyleModel.get('color') === 'inherit' ? opt.inheritColor || null : 'auto';\n return textConfig;\n}\n/**\n * The uniform entry of set text style, that is, retrieve style definitions\n * from `model` and set to `textStyle` object.\n *\n * Never in merge mode, but in overwrite mode, that is, all of the text style\n * properties will be set. (Consider the states of normal and emphasis and\n * default value can be adopted, merge would make the logic too complicated\n * to manage.)\n */\n\nfunction setTextStyleCommon(textStyle, textStyleModel, opt, isNotNormal, isAttached) {\n // Consider there will be abnormal when merge hover style to normal style if given default value.\n opt = opt || EMPTY_OBJ;\n var ecModel = textStyleModel.ecModel;\n var globalTextStyle = ecModel && ecModel.option.textStyle; // Consider case:\n // {\n // data: [{\n // value: 12,\n // label: {\n // rich: {\n // // no 'a' here but using parent 'a'.\n // }\n // }\n // }],\n // rich: {\n // a: { ... }\n // }\n // }\n\n var richItemNames = getRichItemNames(textStyleModel);\n var richResult;\n\n if (richItemNames) {\n richResult = {};\n\n for (var name_1 in richItemNames) {\n if (richItemNames.hasOwnProperty(name_1)) {\n // Cascade is supported in rich.\n var richTextStyle = textStyleModel.getModel(['rich', name_1]); // In rich, never `disableBox`.\n // FIXME: consider `label: {formatter: '{a|xx}', color: 'blue', rich: {a: {}}}`,\n // the default color `'blue'` will not be adopted if no color declared in `rich`.\n // That might confuses users. So probably we should put `textStyleModel` as the\n // root ancestor of the `richTextStyle`. But that would be a break change.\n\n setTokenTextStyle(richResult[name_1] = {}, richTextStyle, globalTextStyle, opt, isNotNormal, isAttached, false, true);\n }\n }\n }\n\n if (richResult) {\n textStyle.rich = richResult;\n }\n\n var overflow = textStyleModel.get('overflow');\n\n if (overflow) {\n textStyle.overflow = overflow;\n }\n\n var margin = textStyleModel.get('minMargin');\n\n if (margin != null) {\n textStyle.margin = margin;\n }\n\n setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isNotNormal, isAttached, true, false);\n} // Consider case:\n// {\n// data: [{\n// value: 12,\n// label: {\n// rich: {\n// // no 'a' here but using parent 'a'.\n// }\n// }\n// }],\n// rich: {\n// a: { ... }\n// }\n// }\n// TODO TextStyleModel\n\n\nfunction getRichItemNames(textStyleModel) {\n // Use object to remove duplicated names.\n var richItemNameMap;\n\n while (textStyleModel && textStyleModel !== textStyleModel.ecModel) {\n var rich = (textStyleModel.option || EMPTY_OBJ).rich;\n\n if (rich) {\n richItemNameMap = richItemNameMap || {};\n var richKeys = keys(rich);\n\n for (var i = 0; i < richKeys.length; i++) {\n var richKey = richKeys[i];\n richItemNameMap[richKey] = 1;\n }\n }\n\n textStyleModel = textStyleModel.parentModel;\n }\n\n return richItemNameMap;\n}\n\nvar TEXT_PROPS_WITH_GLOBAL = ['fontStyle', 'fontWeight', 'fontSize', 'fontFamily', 'textShadowColor', 'textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY'];\nvar TEXT_PROPS_SELF = ['align', 'lineHeight', 'width', 'height', 'tag', 'verticalAlign'];\nvar TEXT_PROPS_BOX = ['padding', 'borderWidth', 'borderRadius', 'borderDashOffset', 'backgroundColor', 'borderColor', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY'];\n\nfunction setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isNotNormal, isAttached, isBlock, inRich) {\n // In merge mode, default value should not be given.\n globalTextStyle = !isNotNormal && globalTextStyle || EMPTY_OBJ;\n var inheritColor = opt && opt.inheritColor;\n var fillColor = textStyleModel.getShallow('color');\n var strokeColor = textStyleModel.getShallow('textBorderColor');\n var opacity = retrieve2(textStyleModel.getShallow('opacity'), globalTextStyle.opacity);\n\n if (fillColor === 'inherit' || fillColor === 'auto') {\n if (process.env.NODE_ENV !== 'production') {\n if (fillColor === 'auto') {\n deprecateReplaceLog('color: \\'auto\\'', 'color: \\'inherit\\'');\n }\n }\n\n if (inheritColor) {\n fillColor = inheritColor;\n } else {\n fillColor = null;\n }\n }\n\n if (strokeColor === 'inherit' || strokeColor === 'auto') {\n if (process.env.NODE_ENV !== 'production') {\n if (strokeColor === 'auto') {\n deprecateReplaceLog('color: \\'auto\\'', 'color: \\'inherit\\'');\n }\n }\n\n if (inheritColor) {\n strokeColor = inheritColor;\n } else {\n strokeColor = null;\n }\n }\n\n if (!isAttached) {\n // Only use default global textStyle.color if text is individual.\n // Otherwise it will use the strategy of attached text color because text may be on a path.\n fillColor = fillColor || globalTextStyle.color;\n strokeColor = strokeColor || globalTextStyle.textBorderColor;\n }\n\n if (fillColor != null) {\n textStyle.fill = fillColor;\n }\n\n if (strokeColor != null) {\n textStyle.stroke = strokeColor;\n }\n\n var textBorderWidth = retrieve2(textStyleModel.getShallow('textBorderWidth'), globalTextStyle.textBorderWidth);\n\n if (textBorderWidth != null) {\n textStyle.lineWidth = textBorderWidth;\n }\n\n var textBorderType = retrieve2(textStyleModel.getShallow('textBorderType'), globalTextStyle.textBorderType);\n\n if (textBorderType != null) {\n textStyle.lineDash = textBorderType;\n }\n\n var textBorderDashOffset = retrieve2(textStyleModel.getShallow('textBorderDashOffset'), globalTextStyle.textBorderDashOffset);\n\n if (textBorderDashOffset != null) {\n textStyle.lineDashOffset = textBorderDashOffset;\n }\n\n if (!isNotNormal && opacity == null && !inRich) {\n opacity = opt && opt.defaultOpacity;\n }\n\n if (opacity != null) {\n textStyle.opacity = opacity;\n } // TODO\n\n\n if (!isNotNormal && !isAttached) {\n // Set default finally.\n if (textStyle.fill == null && opt.inheritColor) {\n textStyle.fill = opt.inheritColor;\n }\n } // Do not use `getFont` here, because merge should be supported, where\n // part of these properties may be changed in emphasis style, and the\n // others should remain their original value got from normal style.\n\n\n for (var i = 0; i < TEXT_PROPS_WITH_GLOBAL.length; i++) {\n var key = TEXT_PROPS_WITH_GLOBAL[i];\n var val = retrieve2(textStyleModel.getShallow(key), globalTextStyle[key]);\n\n if (val != null) {\n textStyle[key] = val;\n }\n }\n\n for (var i = 0; i < TEXT_PROPS_SELF.length; i++) {\n var key = TEXT_PROPS_SELF[i];\n var val = textStyleModel.getShallow(key);\n\n if (val != null) {\n textStyle[key] = val;\n }\n }\n\n if (textStyle.verticalAlign == null) {\n var baseline = textStyleModel.getShallow('baseline');\n\n if (baseline != null) {\n textStyle.verticalAlign = baseline;\n }\n }\n\n if (!isBlock || !opt.disableBox) {\n for (var i = 0; i < TEXT_PROPS_BOX.length; i++) {\n var key = TEXT_PROPS_BOX[i];\n var val = textStyleModel.getShallow(key);\n\n if (val != null) {\n textStyle[key] = val;\n }\n }\n\n var borderType = textStyleModel.getShallow('borderType');\n\n if (borderType != null) {\n textStyle.borderDash = borderType;\n }\n\n if ((textStyle.backgroundColor === 'auto' || textStyle.backgroundColor === 'inherit') && inheritColor) {\n if (process.env.NODE_ENV !== 'production') {\n if (textStyle.backgroundColor === 'auto') {\n deprecateReplaceLog('backgroundColor: \\'auto\\'', 'backgroundColor: \\'inherit\\'');\n }\n }\n\n textStyle.backgroundColor = inheritColor;\n }\n\n if ((textStyle.borderColor === 'auto' || textStyle.borderColor === 'inherit') && inheritColor) {\n if (process.env.NODE_ENV !== 'production') {\n if (textStyle.borderColor === 'auto') {\n deprecateReplaceLog('borderColor: \\'auto\\'', 'borderColor: \\'inherit\\'');\n }\n }\n\n textStyle.borderColor = inheritColor;\n }\n }\n}\n\nexport function getFont(opt, ecModel) {\n var gTextStyleModel = ecModel && ecModel.getModel('textStyle');\n return trim([// FIXME in node-canvas fontWeight is before fontStyle\n opt.fontStyle || gTextStyleModel && gTextStyleModel.getShallow('fontStyle') || '', opt.fontWeight || gTextStyleModel && gTextStyleModel.getShallow('fontWeight') || '', (opt.fontSize || gTextStyleModel && gTextStyleModel.getShallow('fontSize') || 12) + 'px', opt.fontFamily || gTextStyleModel && gTextStyleModel.getShallow('fontFamily') || 'sans-serif'].join(' '));\n}\nexport var labelInner = makeInner();\nexport function setLabelValueAnimation(label, labelStatesModels, value, getDefaultText) {\n if (!label) {\n return;\n }\n\n var obj = labelInner(label);\n obj.prevValue = obj.value;\n obj.value = value;\n var normalLabelModel = labelStatesModels.normal;\n obj.valueAnimation = normalLabelModel.get('valueAnimation');\n\n if (obj.valueAnimation) {\n obj.precision = normalLabelModel.get('precision');\n obj.defaultInterpolatedText = getDefaultText;\n obj.statesModels = labelStatesModels;\n }\n}\nexport function animateLabelValue(textEl, dataIndex, data, animatableModel, labelFetcher) {\n var labelInnerStore = labelInner(textEl);\n\n if (!labelInnerStore.valueAnimation || labelInnerStore.prevValue === labelInnerStore.value) {\n // Value not changed, no new label animation\n return;\n }\n\n var defaultInterpolatedText = labelInnerStore.defaultInterpolatedText; // Consider the case that being animating, do not use the `obj.value`,\n // Otherwise it will jump to the `obj.value` when this new animation started.\n\n var currValue = retrieve2(labelInnerStore.interpolatedValue, labelInnerStore.prevValue);\n var targetValue = labelInnerStore.value;\n\n function during(percent) {\n var interpolated = interpolateRawValues(data, labelInnerStore.precision, currValue, targetValue, percent);\n labelInnerStore.interpolatedValue = percent === 1 ? null : interpolated;\n var labelText = getLabelText({\n labelDataIndex: dataIndex,\n labelFetcher: labelFetcher,\n defaultText: defaultInterpolatedText ? defaultInterpolatedText(interpolated) : interpolated + ''\n }, labelInnerStore.statesModels, interpolated);\n setLabelText(textEl, labelText);\n }\n\n textEl.percent = 0;\n (labelInnerStore.prevValue == null ? initProps : updateProps)(textEl, {\n // percent is used to prevent animation from being aborted #15916\n percent: 1\n }, animatableModel, dataIndex, null, during);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { calculateTextPosition } from 'zrender/lib/contain/text.js';\nimport { isArray, isNumber } from 'zrender/lib/core/util.js';\nexport function createSectorCalculateTextPosition(positionMapping, opts) {\n opts = opts || {};\n var isRoundCap = opts.isRoundCap;\n return function (out, opts, boundingRect) {\n var textPosition = opts.position;\n\n if (!textPosition || textPosition instanceof Array) {\n return calculateTextPosition(out, opts, boundingRect);\n }\n\n var mappedSectorPosition = positionMapping(textPosition);\n var distance = opts.distance != null ? opts.distance : 5;\n var sector = this.shape;\n var cx = sector.cx;\n var cy = sector.cy;\n var r = sector.r;\n var r0 = sector.r0;\n var middleR = (r + r0) / 2;\n var startAngle = sector.startAngle;\n var endAngle = sector.endAngle;\n var middleAngle = (startAngle + endAngle) / 2;\n var extraDist = isRoundCap ? Math.abs(r - r0) / 2 : 0;\n var mathCos = Math.cos;\n var mathSin = Math.sin; // base position: top-left\n\n var x = cx + r * mathCos(startAngle);\n var y = cy + r * mathSin(startAngle);\n var textAlign = 'left';\n var textVerticalAlign = 'top';\n\n switch (mappedSectorPosition) {\n case 'startArc':\n x = cx + (r0 - distance) * mathCos(middleAngle);\n y = cy + (r0 - distance) * mathSin(middleAngle);\n textAlign = 'center';\n textVerticalAlign = 'top';\n break;\n\n case 'insideStartArc':\n x = cx + (r0 + distance) * mathCos(middleAngle);\n y = cy + (r0 + distance) * mathSin(middleAngle);\n textAlign = 'center';\n textVerticalAlign = 'bottom';\n break;\n\n case 'startAngle':\n x = cx + middleR * mathCos(startAngle) + adjustAngleDistanceX(startAngle, distance + extraDist, false);\n y = cy + middleR * mathSin(startAngle) + adjustAngleDistanceY(startAngle, distance + extraDist, false);\n textAlign = 'right';\n textVerticalAlign = 'middle';\n break;\n\n case 'insideStartAngle':\n x = cx + middleR * mathCos(startAngle) + adjustAngleDistanceX(startAngle, -distance + extraDist, false);\n y = cy + middleR * mathSin(startAngle) + adjustAngleDistanceY(startAngle, -distance + extraDist, false);\n textAlign = 'left';\n textVerticalAlign = 'middle';\n break;\n\n case 'middle':\n x = cx + middleR * mathCos(middleAngle);\n y = cy + middleR * mathSin(middleAngle);\n textAlign = 'center';\n textVerticalAlign = 'middle';\n break;\n\n case 'endArc':\n x = cx + (r + distance) * mathCos(middleAngle);\n y = cy + (r + distance) * mathSin(middleAngle);\n textAlign = 'center';\n textVerticalAlign = 'bottom';\n break;\n\n case 'insideEndArc':\n x = cx + (r - distance) * mathCos(middleAngle);\n y = cy + (r - distance) * mathSin(middleAngle);\n textAlign = 'center';\n textVerticalAlign = 'top';\n break;\n\n case 'endAngle':\n x = cx + middleR * mathCos(endAngle) + adjustAngleDistanceX(endAngle, distance + extraDist, true);\n y = cy + middleR * mathSin(endAngle) + adjustAngleDistanceY(endAngle, distance + extraDist, true);\n textAlign = 'left';\n textVerticalAlign = 'middle';\n break;\n\n case 'insideEndAngle':\n x = cx + middleR * mathCos(endAngle) + adjustAngleDistanceX(endAngle, -distance + extraDist, true);\n y = cy + middleR * mathSin(endAngle) + adjustAngleDistanceY(endAngle, -distance + extraDist, true);\n textAlign = 'right';\n textVerticalAlign = 'middle';\n break;\n\n default:\n return calculateTextPosition(out, opts, boundingRect);\n }\n\n out = out || {};\n out.x = x;\n out.y = y;\n out.align = textAlign;\n out.verticalAlign = textVerticalAlign;\n return out;\n };\n}\nexport function setSectorTextRotation(sector, textPosition, positionMapping, rotateType) {\n if (isNumber(rotateType)) {\n // user-set rotation\n sector.setTextConfig({\n rotation: rotateType\n });\n return;\n } else if (isArray(textPosition)) {\n // user-set position, use 0 as auto rotation\n sector.setTextConfig({\n rotation: 0\n });\n return;\n }\n\n var shape = sector.shape;\n var startAngle = shape.clockwise ? shape.startAngle : shape.endAngle;\n var endAngle = shape.clockwise ? shape.endAngle : shape.startAngle;\n var middleAngle = (startAngle + endAngle) / 2;\n var anchorAngle;\n var mappedSectorPosition = positionMapping(textPosition);\n\n switch (mappedSectorPosition) {\n case 'startArc':\n case 'insideStartArc':\n case 'middle':\n case 'insideEndArc':\n case 'endArc':\n anchorAngle = middleAngle;\n break;\n\n case 'startAngle':\n case 'insideStartAngle':\n anchorAngle = startAngle;\n break;\n\n case 'endAngle':\n case 'insideEndAngle':\n anchorAngle = endAngle;\n break;\n\n default:\n sector.setTextConfig({\n rotation: 0\n });\n return;\n }\n\n var rotate = Math.PI * 1.5 - anchorAngle;\n /**\n * TODO: labels with rotate > Math.PI / 2 should be rotate another\n * half round flipped to increase readability. However, only middle\n * position supports this for now, because in other positions, the\n * anchor point is not at the center of the text, so the positions\n * after rotating is not as expected.\n */\n\n if (mappedSectorPosition === 'middle' && rotate > Math.PI / 2 && rotate < Math.PI * 1.5) {\n rotate -= Math.PI;\n }\n\n sector.setTextConfig({\n rotation: rotate\n });\n}\n\nfunction adjustAngleDistanceX(angle, distance, isEnd) {\n return distance * Math.sin(angle) * (isEnd ? -1 : 1);\n}\n\nfunction adjustAngleDistanceY(angle, distance, isEnd) {\n return distance * Math.cos(angle) * (isEnd ? 1 : -1);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { each, defaults, keys } from 'zrender/lib/core/util.js';\nimport { parsePercent } from '../util/number.js';\nimport { isDimensionStacked } from '../data/helper/dataStackHelper.js';\nimport createRenderPlanner from '../chart/helper/createRenderPlanner.js';\nimport { createFloat32Array } from '../util/vendor.js';\nvar STACK_PREFIX = '__ec_stack_';\n\nfunction getSeriesStackId(seriesModel) {\n return seriesModel.get('stack') || STACK_PREFIX + seriesModel.seriesIndex;\n}\n\nfunction getAxisKey(axis) {\n return axis.dim + axis.index;\n}\n/**\n * @return {Object} {width, offset, offsetCenter} If axis.type is not 'category', return undefined.\n */\n\n\nexport function getLayoutOnAxis(opt) {\n var params = [];\n var baseAxis = opt.axis;\n var axisKey = 'axis0';\n\n if (baseAxis.type !== 'category') {\n return;\n }\n\n var bandWidth = baseAxis.getBandWidth();\n\n for (var i = 0; i < opt.count || 0; i++) {\n params.push(defaults({\n bandWidth: bandWidth,\n axisKey: axisKey,\n stackId: STACK_PREFIX + i\n }, opt));\n }\n\n var widthAndOffsets = doCalBarWidthAndOffset(params);\n var result = [];\n\n for (var i = 0; i < opt.count; i++) {\n var item = widthAndOffsets[axisKey][STACK_PREFIX + i];\n item.offsetCenter = item.offset + item.width / 2;\n result.push(item);\n }\n\n return result;\n}\nexport function prepareLayoutBarSeries(seriesType, ecModel) {\n var seriesModels = [];\n ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n // Check series coordinate, do layout for cartesian2d only\n if (isOnCartesian(seriesModel)) {\n seriesModels.push(seriesModel);\n }\n });\n return seriesModels;\n}\n/**\n * Map from (baseAxis.dim + '_' + baseAxis.index) to min gap of two adjacent\n * values.\n * This works for time axes, value axes, and log axes.\n * For a single time axis, return value is in the form like\n * {'x_0': [1000000]}.\n * The value of 1000000 is in milliseconds.\n */\n\nfunction getValueAxesMinGaps(barSeries) {\n /**\n * Map from axis.index to values.\n * For a single time axis, axisValues is in the form like\n * {'x_0': [1495555200000, 1495641600000, 1495728000000]}.\n * Items in axisValues[x], e.g. 1495555200000, are time values of all\n * series.\n */\n var axisValues = {};\n each(barSeries, function (seriesModel) {\n var cartesian = seriesModel.coordinateSystem;\n var baseAxis = cartesian.getBaseAxis();\n\n if (baseAxis.type !== 'time' && baseAxis.type !== 'value') {\n return;\n }\n\n var data = seriesModel.getData();\n var key = baseAxis.dim + '_' + baseAxis.index;\n var dimIdx = data.getDimensionIndex(data.mapDimension(baseAxis.dim));\n var store = data.getStore();\n\n for (var i = 0, cnt = store.count(); i < cnt; ++i) {\n var value = store.get(dimIdx, i);\n\n if (!axisValues[key]) {\n // No previous data for the axis\n axisValues[key] = [value];\n } else {\n // No value in previous series\n axisValues[key].push(value);\n } // Ignore duplicated time values in the same axis\n\n }\n });\n var axisMinGaps = {};\n\n for (var key in axisValues) {\n if (axisValues.hasOwnProperty(key)) {\n var valuesInAxis = axisValues[key];\n\n if (valuesInAxis) {\n // Sort axis values into ascending order to calculate gaps\n valuesInAxis.sort(function (a, b) {\n return a - b;\n });\n var min = null;\n\n for (var j = 1; j < valuesInAxis.length; ++j) {\n var delta = valuesInAxis[j] - valuesInAxis[j - 1];\n\n if (delta > 0) {\n // Ignore 0 delta because they are of the same axis value\n min = min === null ? delta : Math.min(min, delta);\n }\n } // Set to null if only have one data\n\n\n axisMinGaps[key] = min;\n }\n }\n }\n\n return axisMinGaps;\n}\n\nexport function makeColumnLayout(barSeries) {\n var axisMinGaps = getValueAxesMinGaps(barSeries);\n var seriesInfoList = [];\n each(barSeries, function (seriesModel) {\n var cartesian = seriesModel.coordinateSystem;\n var baseAxis = cartesian.getBaseAxis();\n var axisExtent = baseAxis.getExtent();\n var bandWidth;\n\n if (baseAxis.type === 'category') {\n bandWidth = baseAxis.getBandWidth();\n } else if (baseAxis.type === 'value' || baseAxis.type === 'time') {\n var key = baseAxis.dim + '_' + baseAxis.index;\n var minGap = axisMinGaps[key];\n var extentSpan = Math.abs(axisExtent[1] - axisExtent[0]);\n var scale = baseAxis.scale.getExtent();\n var scaleSpan = Math.abs(scale[1] - scale[0]);\n bandWidth = minGap ? extentSpan / scaleSpan * minGap : extentSpan; // When there is only one data value\n } else {\n var data = seriesModel.getData();\n bandWidth = Math.abs(axisExtent[1] - axisExtent[0]) / data.count();\n }\n\n var barWidth = parsePercent(seriesModel.get('barWidth'), bandWidth);\n var barMaxWidth = parsePercent(seriesModel.get('barMaxWidth'), bandWidth);\n var barMinWidth = parsePercent( // barMinWidth by default is 0.5 / 1 in cartesian. Because in value axis,\n // the auto-calculated bar width might be less than 0.5 / 1.\n seriesModel.get('barMinWidth') || (isInLargeMode(seriesModel) ? 0.5 : 1), bandWidth);\n var barGap = seriesModel.get('barGap');\n var barCategoryGap = seriesModel.get('barCategoryGap');\n seriesInfoList.push({\n bandWidth: bandWidth,\n barWidth: barWidth,\n barMaxWidth: barMaxWidth,\n barMinWidth: barMinWidth,\n barGap: barGap,\n barCategoryGap: barCategoryGap,\n axisKey: getAxisKey(baseAxis),\n stackId: getSeriesStackId(seriesModel)\n });\n });\n return doCalBarWidthAndOffset(seriesInfoList);\n}\n\nfunction doCalBarWidthAndOffset(seriesInfoList) {\n // Columns info on each category axis. Key is cartesian name\n var columnsMap = {};\n each(seriesInfoList, function (seriesInfo, idx) {\n var axisKey = seriesInfo.axisKey;\n var bandWidth = seriesInfo.bandWidth;\n var columnsOnAxis = columnsMap[axisKey] || {\n bandWidth: bandWidth,\n remainedWidth: bandWidth,\n autoWidthCount: 0,\n categoryGap: null,\n gap: '20%',\n stacks: {}\n };\n var stacks = columnsOnAxis.stacks;\n columnsMap[axisKey] = columnsOnAxis;\n var stackId = seriesInfo.stackId;\n\n if (!stacks[stackId]) {\n columnsOnAxis.autoWidthCount++;\n }\n\n stacks[stackId] = stacks[stackId] || {\n width: 0,\n maxWidth: 0\n }; // Caution: In a single coordinate system, these barGrid attributes\n // will be shared by series. Consider that they have default values,\n // only the attributes set on the last series will work.\n // Do not change this fact unless there will be a break change.\n\n var barWidth = seriesInfo.barWidth;\n\n if (barWidth && !stacks[stackId].width) {\n // See #6312, do not restrict width.\n stacks[stackId].width = barWidth;\n barWidth = Math.min(columnsOnAxis.remainedWidth, barWidth);\n columnsOnAxis.remainedWidth -= barWidth;\n }\n\n var barMaxWidth = seriesInfo.barMaxWidth;\n barMaxWidth && (stacks[stackId].maxWidth = barMaxWidth);\n var barMinWidth = seriesInfo.barMinWidth;\n barMinWidth && (stacks[stackId].minWidth = barMinWidth);\n var barGap = seriesInfo.barGap;\n barGap != null && (columnsOnAxis.gap = barGap);\n var barCategoryGap = seriesInfo.barCategoryGap;\n barCategoryGap != null && (columnsOnAxis.categoryGap = barCategoryGap);\n });\n var result = {};\n each(columnsMap, function (columnsOnAxis, coordSysName) {\n result[coordSysName] = {};\n var stacks = columnsOnAxis.stacks;\n var bandWidth = columnsOnAxis.bandWidth;\n var categoryGapPercent = columnsOnAxis.categoryGap;\n\n if (categoryGapPercent == null) {\n var columnCount = keys(stacks).length; // More columns in one group\n // the spaces between group is smaller. Or the column will be too thin.\n\n categoryGapPercent = Math.max(35 - columnCount * 4, 15) + '%';\n }\n\n var categoryGap = parsePercent(categoryGapPercent, bandWidth);\n var barGapPercent = parsePercent(columnsOnAxis.gap, 1);\n var remainedWidth = columnsOnAxis.remainedWidth;\n var autoWidthCount = columnsOnAxis.autoWidthCount;\n var autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n autoWidth = Math.max(autoWidth, 0); // Find if any auto calculated bar exceeded maxBarWidth\n\n each(stacks, function (column) {\n var maxWidth = column.maxWidth;\n var minWidth = column.minWidth;\n\n if (!column.width) {\n var finalWidth = autoWidth;\n\n if (maxWidth && maxWidth < finalWidth) {\n finalWidth = Math.min(maxWidth, remainedWidth);\n } // `minWidth` has higher priority. `minWidth` decide that whether the\n // bar is able to be visible. So `minWidth` should not be restricted\n // by `maxWidth` or `remainedWidth` (which is from `bandWidth`). In\n // the extreme cases for `value` axis, bars are allowed to overlap\n // with each other if `minWidth` specified.\n\n\n if (minWidth && minWidth > finalWidth) {\n finalWidth = minWidth;\n }\n\n if (finalWidth !== autoWidth) {\n column.width = finalWidth;\n remainedWidth -= finalWidth + barGapPercent * finalWidth;\n autoWidthCount--;\n }\n } else {\n // `barMinWidth/barMaxWidth` has higher priority than `barWidth`, as\n // CSS does. Because barWidth can be a percent value, where\n // `barMaxWidth` can be used to restrict the final width.\n var finalWidth = column.width;\n\n if (maxWidth) {\n finalWidth = Math.min(finalWidth, maxWidth);\n } // `minWidth` has higher priority, as described above\n\n\n if (minWidth) {\n finalWidth = Math.max(finalWidth, minWidth);\n }\n\n column.width = finalWidth;\n remainedWidth -= finalWidth + barGapPercent * finalWidth;\n autoWidthCount--;\n }\n }); // Recalculate width again\n\n autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n autoWidth = Math.max(autoWidth, 0);\n var widthSum = 0;\n var lastColumn;\n each(stacks, function (column, idx) {\n if (!column.width) {\n column.width = autoWidth;\n }\n\n lastColumn = column;\n widthSum += column.width * (1 + barGapPercent);\n });\n\n if (lastColumn) {\n widthSum -= lastColumn.width * barGapPercent;\n }\n\n var offset = -widthSum / 2;\n each(stacks, function (column, stackId) {\n result[coordSysName][stackId] = result[coordSysName][stackId] || {\n bandWidth: bandWidth,\n offset: offset,\n width: column.width\n };\n offset += column.width * (1 + barGapPercent);\n });\n });\n return result;\n}\n\nfunction retrieveColumnLayout(barWidthAndOffset, axis, seriesModel) {\n if (barWidthAndOffset && axis) {\n var result = barWidthAndOffset[getAxisKey(axis)];\n\n if (result != null && seriesModel != null) {\n return result[getSeriesStackId(seriesModel)];\n }\n\n return result;\n }\n}\n\nexport { retrieveColumnLayout };\nexport function layout(seriesType, ecModel) {\n var seriesModels = prepareLayoutBarSeries(seriesType, ecModel);\n var barWidthAndOffset = makeColumnLayout(seriesModels);\n each(seriesModels, function (seriesModel) {\n var data = seriesModel.getData();\n var cartesian = seriesModel.coordinateSystem;\n var baseAxis = cartesian.getBaseAxis();\n var stackId = getSeriesStackId(seriesModel);\n var columnLayoutInfo = barWidthAndOffset[getAxisKey(baseAxis)][stackId];\n var columnOffset = columnLayoutInfo.offset;\n var columnWidth = columnLayoutInfo.width;\n data.setLayout({\n bandWidth: columnLayoutInfo.bandWidth,\n offset: columnOffset,\n size: columnWidth\n });\n });\n} // TODO: Do not support stack in large mode yet.\n\nexport function createProgressiveLayout(seriesType) {\n return {\n seriesType: seriesType,\n plan: createRenderPlanner(),\n reset: function (seriesModel) {\n if (!isOnCartesian(seriesModel)) {\n return;\n }\n\n var data = seriesModel.getData();\n var cartesian = seriesModel.coordinateSystem;\n var baseAxis = cartesian.getBaseAxis();\n var valueAxis = cartesian.getOtherAxis(baseAxis);\n var valueDimIdx = data.getDimensionIndex(data.mapDimension(valueAxis.dim));\n var baseDimIdx = data.getDimensionIndex(data.mapDimension(baseAxis.dim));\n var drawBackground = seriesModel.get('showBackground', true);\n var valueDim = data.mapDimension(valueAxis.dim);\n var stackResultDim = data.getCalculationInfo('stackResultDimension');\n var stacked = isDimensionStacked(data, valueDim) && !!data.getCalculationInfo('stackedOnSeries');\n var isValueAxisH = valueAxis.isHorizontal();\n var valueAxisStart = getValueAxisStart(baseAxis, valueAxis);\n var isLarge = isInLargeMode(seriesModel);\n var barMinHeight = seriesModel.get('barMinHeight') || 0;\n var stackedDimIdx = stackResultDim && data.getDimensionIndex(stackResultDim); // Layout info.\n\n var columnWidth = data.getLayout('size');\n var columnOffset = data.getLayout('offset');\n return {\n progress: function (params, data) {\n var count = params.count;\n var largePoints = isLarge && createFloat32Array(count * 3);\n var largeBackgroundPoints = isLarge && drawBackground && createFloat32Array(count * 3);\n var largeDataIndices = isLarge && createFloat32Array(count);\n var coordLayout = cartesian.master.getRect();\n var bgSize = isValueAxisH ? coordLayout.width : coordLayout.height;\n var dataIndex;\n var store = data.getStore();\n var idxOffset = 0;\n\n while ((dataIndex = params.next()) != null) {\n var value = store.get(stacked ? stackedDimIdx : valueDimIdx, dataIndex);\n var baseValue = store.get(baseDimIdx, dataIndex);\n var baseCoord = valueAxisStart;\n var startValue = void 0; // Because of the barMinHeight, we can not use the value in\n // stackResultDimension directly.\n\n if (stacked) {\n startValue = +value - store.get(valueDimIdx, dataIndex);\n }\n\n var x = void 0;\n var y = void 0;\n var width = void 0;\n var height = void 0;\n\n if (isValueAxisH) {\n var coord = cartesian.dataToPoint([value, baseValue]);\n\n if (stacked) {\n var startCoord = cartesian.dataToPoint([startValue, baseValue]);\n baseCoord = startCoord[0];\n }\n\n x = baseCoord;\n y = coord[1] + columnOffset;\n width = coord[0] - baseCoord;\n height = columnWidth;\n\n if (Math.abs(width) < barMinHeight) {\n width = (width < 0 ? -1 : 1) * barMinHeight;\n }\n } else {\n var coord = cartesian.dataToPoint([baseValue, value]);\n\n if (stacked) {\n var startCoord = cartesian.dataToPoint([baseValue, startValue]);\n baseCoord = startCoord[1];\n }\n\n x = coord[0] + columnOffset;\n y = baseCoord;\n width = columnWidth;\n height = coord[1] - baseCoord;\n\n if (Math.abs(height) < barMinHeight) {\n // Include zero to has a positive bar\n height = (height <= 0 ? -1 : 1) * barMinHeight;\n }\n }\n\n if (!isLarge) {\n data.setItemLayout(dataIndex, {\n x: x,\n y: y,\n width: width,\n height: height\n });\n } else {\n largePoints[idxOffset] = x;\n largePoints[idxOffset + 1] = y;\n largePoints[idxOffset + 2] = isValueAxisH ? width : height;\n\n if (largeBackgroundPoints) {\n largeBackgroundPoints[idxOffset] = isValueAxisH ? coordLayout.x : x;\n largeBackgroundPoints[idxOffset + 1] = isValueAxisH ? y : coordLayout.y;\n largeBackgroundPoints[idxOffset + 2] = bgSize;\n }\n\n largeDataIndices[dataIndex] = dataIndex;\n }\n\n idxOffset += 3;\n }\n\n if (isLarge) {\n data.setLayout({\n largePoints: largePoints,\n largeDataIndices: largeDataIndices,\n largeBackgroundPoints: largeBackgroundPoints,\n valueAxisHorizontal: isValueAxisH\n });\n }\n }\n };\n }\n };\n}\n\nfunction isOnCartesian(seriesModel) {\n return seriesModel.coordinateSystem && seriesModel.coordinateSystem.type === 'cartesian2d';\n}\n\nfunction isInLargeMode(seriesModel) {\n return seriesModel.pipelineContext && seriesModel.pipelineContext.large;\n} // See cases in `test/bar-start.html` and `#7412`, `#8747`.\n\n\nfunction getValueAxisStart(baseAxis, valueAxis) {\n return valueAxis.toGlobalCoord(valueAxis.dataToCoord(valueAxis.type === 'log' ? 1 : 0));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { parsePercent } from '../util/number.js';\nimport { isDimensionStacked } from '../data/helper/dataStackHelper.js';\n\nfunction getSeriesStackId(seriesModel) {\n return seriesModel.get('stack') || '__ec_stack_' + seriesModel.seriesIndex;\n}\n\nfunction getAxisKey(polar, axis) {\n return axis.dim + polar.model.componentIndex;\n}\n\nfunction barLayoutPolar(seriesType, ecModel, api) {\n var lastStackCoords = {};\n var barWidthAndOffset = calRadialBar(zrUtil.filter(ecModel.getSeriesByType(seriesType), function (seriesModel) {\n return !ecModel.isSeriesFiltered(seriesModel) && seriesModel.coordinateSystem && seriesModel.coordinateSystem.type === 'polar';\n }));\n ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n // Check series coordinate, do layout for polar only\n if (seriesModel.coordinateSystem.type !== 'polar') {\n return;\n }\n\n var data = seriesModel.getData();\n var polar = seriesModel.coordinateSystem;\n var baseAxis = polar.getBaseAxis();\n var axisKey = getAxisKey(polar, baseAxis);\n var stackId = getSeriesStackId(seriesModel);\n var columnLayoutInfo = barWidthAndOffset[axisKey][stackId];\n var columnOffset = columnLayoutInfo.offset;\n var columnWidth = columnLayoutInfo.width;\n var valueAxis = polar.getOtherAxis(baseAxis);\n var cx = seriesModel.coordinateSystem.cx;\n var cy = seriesModel.coordinateSystem.cy;\n var barMinHeight = seriesModel.get('barMinHeight') || 0;\n var barMinAngle = seriesModel.get('barMinAngle') || 0;\n lastStackCoords[stackId] = lastStackCoords[stackId] || [];\n var valueDim = data.mapDimension(valueAxis.dim);\n var baseDim = data.mapDimension(baseAxis.dim);\n var stacked = isDimensionStacked(data, valueDim\n /* , baseDim */\n );\n var clampLayout = baseAxis.dim !== 'radius' || !seriesModel.get('roundCap', true);\n var valueAxisStart = valueAxis.dataToCoord(0);\n\n for (var idx = 0, len = data.count(); idx < len; idx++) {\n var value = data.get(valueDim, idx);\n var baseValue = data.get(baseDim, idx);\n var sign = value >= 0 ? 'p' : 'n';\n var baseCoord = valueAxisStart; // Because of the barMinHeight, we can not use the value in\n // stackResultDimension directly.\n // Only ordinal axis can be stacked.\n\n if (stacked) {\n if (!lastStackCoords[stackId][baseValue]) {\n lastStackCoords[stackId][baseValue] = {\n p: valueAxisStart,\n n: valueAxisStart // Negative stack\n\n };\n } // Should also consider #4243\n\n\n baseCoord = lastStackCoords[stackId][baseValue][sign];\n }\n\n var r0 = void 0;\n var r = void 0;\n var startAngle = void 0;\n var endAngle = void 0; // radial sector\n\n if (valueAxis.dim === 'radius') {\n var radiusSpan = valueAxis.dataToCoord(value) - valueAxisStart;\n var angle = baseAxis.dataToCoord(baseValue);\n\n if (Math.abs(radiusSpan) < barMinHeight) {\n radiusSpan = (radiusSpan < 0 ? -1 : 1) * barMinHeight;\n }\n\n r0 = baseCoord;\n r = baseCoord + radiusSpan;\n startAngle = angle - columnOffset;\n endAngle = startAngle - columnWidth;\n stacked && (lastStackCoords[stackId][baseValue][sign] = r);\n } // tangential sector\n else {\n var angleSpan = valueAxis.dataToCoord(value, clampLayout) - valueAxisStart;\n var radius = baseAxis.dataToCoord(baseValue);\n\n if (Math.abs(angleSpan) < barMinAngle) {\n angleSpan = (angleSpan < 0 ? -1 : 1) * barMinAngle;\n }\n\n r0 = radius + columnOffset;\n r = r0 + columnWidth;\n startAngle = baseCoord;\n endAngle = baseCoord + angleSpan; // if the previous stack is at the end of the ring,\n // add a round to differentiate it from origin\n // let extent = angleAxis.getExtent();\n // let stackCoord = angle;\n // if (stackCoord === extent[0] && value > 0) {\n // stackCoord = extent[1];\n // }\n // else if (stackCoord === extent[1] && value < 0) {\n // stackCoord = extent[0];\n // }\n\n stacked && (lastStackCoords[stackId][baseValue][sign] = endAngle);\n }\n\n data.setItemLayout(idx, {\n cx: cx,\n cy: cy,\n r0: r0,\n r: r,\n // Consider that positive angle is anti-clockwise,\n // while positive radian of sector is clockwise\n startAngle: -startAngle * Math.PI / 180,\n endAngle: -endAngle * Math.PI / 180,\n\n /**\n * Keep the same logic with bar in catesion: use end value to\n * control direction. Notice that if clockwise is true (by\n * default), the sector will always draw clockwisely, no matter\n * whether endAngle is greater or less than startAngle.\n */\n clockwise: startAngle >= endAngle\n });\n }\n });\n}\n/**\n * Calculate bar width and offset for radial bar charts\n */\n\n\nfunction calRadialBar(barSeries) {\n // Columns info on each category axis. Key is polar name\n var columnsMap = {};\n zrUtil.each(barSeries, function (seriesModel, idx) {\n var data = seriesModel.getData();\n var polar = seriesModel.coordinateSystem;\n var baseAxis = polar.getBaseAxis();\n var axisKey = getAxisKey(polar, baseAxis);\n var axisExtent = baseAxis.getExtent();\n var bandWidth = baseAxis.type === 'category' ? baseAxis.getBandWidth() : Math.abs(axisExtent[1] - axisExtent[0]) / data.count();\n var columnsOnAxis = columnsMap[axisKey] || {\n bandWidth: bandWidth,\n remainedWidth: bandWidth,\n autoWidthCount: 0,\n categoryGap: '20%',\n gap: '30%',\n stacks: {}\n };\n var stacks = columnsOnAxis.stacks;\n columnsMap[axisKey] = columnsOnAxis;\n var stackId = getSeriesStackId(seriesModel);\n\n if (!stacks[stackId]) {\n columnsOnAxis.autoWidthCount++;\n }\n\n stacks[stackId] = stacks[stackId] || {\n width: 0,\n maxWidth: 0\n };\n var barWidth = parsePercent(seriesModel.get('barWidth'), bandWidth);\n var barMaxWidth = parsePercent(seriesModel.get('barMaxWidth'), bandWidth);\n var barGap = seriesModel.get('barGap');\n var barCategoryGap = seriesModel.get('barCategoryGap');\n\n if (barWidth && !stacks[stackId].width) {\n barWidth = Math.min(columnsOnAxis.remainedWidth, barWidth);\n stacks[stackId].width = barWidth;\n columnsOnAxis.remainedWidth -= barWidth;\n }\n\n barMaxWidth && (stacks[stackId].maxWidth = barMaxWidth);\n barGap != null && (columnsOnAxis.gap = barGap);\n barCategoryGap != null && (columnsOnAxis.categoryGap = barCategoryGap);\n });\n var result = {};\n zrUtil.each(columnsMap, function (columnsOnAxis, coordSysName) {\n result[coordSysName] = {};\n var stacks = columnsOnAxis.stacks;\n var bandWidth = columnsOnAxis.bandWidth;\n var categoryGap = parsePercent(columnsOnAxis.categoryGap, bandWidth);\n var barGapPercent = parsePercent(columnsOnAxis.gap, 1);\n var remainedWidth = columnsOnAxis.remainedWidth;\n var autoWidthCount = columnsOnAxis.autoWidthCount;\n var autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n autoWidth = Math.max(autoWidth, 0); // Find if any auto calculated bar exceeded maxBarWidth\n\n zrUtil.each(stacks, function (column, stack) {\n var maxWidth = column.maxWidth;\n\n if (maxWidth && maxWidth < autoWidth) {\n maxWidth = Math.min(maxWidth, remainedWidth);\n\n if (column.width) {\n maxWidth = Math.min(maxWidth, column.width);\n }\n\n remainedWidth -= maxWidth;\n column.width = maxWidth;\n autoWidthCount--;\n }\n }); // Recalculate width again\n\n autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n autoWidth = Math.max(autoWidth, 0);\n var widthSum = 0;\n var lastColumn;\n zrUtil.each(stacks, function (column, idx) {\n if (!column.width) {\n column.width = autoWidth;\n }\n\n lastColumn = column;\n widthSum += column.width * (1 + barGapPercent);\n });\n\n if (lastColumn) {\n widthSum -= lastColumn.width * barGapPercent;\n }\n\n var offset = -widthSum / 2;\n zrUtil.each(stacks, function (column, stackId) {\n result[coordSysName][stackId] = result[coordSysName][stackId] || {\n offset: offset,\n width: column.width\n };\n offset += column.width * (1 + barGapPercent);\n });\n });\n return result;\n}\n\nexport default barLayoutPolar;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { map } from 'zrender/lib/core/util.js';\nimport createRenderPlanner from '../chart/helper/createRenderPlanner.js';\nimport { isDimensionStacked } from '../data/helper/dataStackHelper.js';\nimport { createFloat32Array } from '../util/vendor.js';\nexport default function pointsLayout(seriesType, forceStoreInTypedArray) {\n return {\n seriesType: seriesType,\n plan: createRenderPlanner(),\n reset: function (seriesModel) {\n var data = seriesModel.getData();\n var coordSys = seriesModel.coordinateSystem;\n var pipelineContext = seriesModel.pipelineContext;\n var useTypedArray = forceStoreInTypedArray || pipelineContext.large;\n\n if (!coordSys) {\n return;\n }\n\n var dims = map(coordSys.dimensions, function (dim) {\n return data.mapDimension(dim);\n }).slice(0, 2);\n var dimLen = dims.length;\n var stackResultDim = data.getCalculationInfo('stackResultDimension');\n\n if (isDimensionStacked(data, dims[0])) {\n dims[0] = stackResultDim;\n }\n\n if (isDimensionStacked(data, dims[1])) {\n dims[1] = stackResultDim;\n }\n\n var store = data.getStore();\n var dimIdx0 = data.getDimensionIndex(dims[0]);\n var dimIdx1 = data.getDimensionIndex(dims[1]);\n return dimLen && {\n progress: function (params, data) {\n var segCount = params.end - params.start;\n var points = useTypedArray && createFloat32Array(segCount * dimLen);\n var tmpIn = [];\n var tmpOut = [];\n\n for (var i = params.start, offset = 0; i < params.end; i++) {\n var point = void 0;\n\n if (dimLen === 1) {\n var x = store.get(dimIdx0, i); // NOTE: Make sure the second parameter is null to use default strategy.\n\n point = coordSys.dataToPoint(x, null, tmpOut);\n } else {\n tmpIn[0] = store.get(dimIdx0, i);\n tmpIn[1] = store.get(dimIdx1, i); // Let coordinate system to handle the NaN data.\n\n point = coordSys.dataToPoint(tmpIn, null, tmpOut);\n }\n\n if (useTypedArray) {\n points[offset++] = point[0];\n points[offset++] = point[1];\n } else {\n data.setItemLayout(i, point.slice());\n }\n }\n\n useTypedArray && data.setLayout('points', points);\n }\n };\n }\n };\n}\n;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { extend, each, isArray, isString } from 'zrender/lib/core/util.js';\nimport { deprecateReplaceLog, deprecateLog } from '../util/log.js';\nimport { queryDataIndex } from '../util/model.js'; // Legacy data selection action.\n// Includes: pieSelect, pieUnSelect, pieToggleSelect, mapSelect, mapUnSelect, mapToggleSelect\n\nexport function createLegacyDataSelectAction(seriesType, ecRegisterAction) {\n function getSeriesIndices(ecModel, payload) {\n var seriesIndices = [];\n ecModel.eachComponent({\n mainType: 'series',\n subType: seriesType,\n query: payload\n }, function (seriesModel) {\n seriesIndices.push(seriesModel.seriesIndex);\n });\n return seriesIndices;\n }\n\n each([[seriesType + 'ToggleSelect', 'toggleSelect'], [seriesType + 'Select', 'select'], [seriesType + 'UnSelect', 'unselect']], function (eventsMap) {\n ecRegisterAction(eventsMap[0], function (payload, ecModel, api) {\n payload = extend({}, payload);\n\n if (process.env.NODE_ENV !== 'production') {\n deprecateReplaceLog(payload.type, eventsMap[1]);\n }\n\n api.dispatchAction(extend(payload, {\n type: eventsMap[1],\n seriesIndex: getSeriesIndices(ecModel, payload)\n }));\n });\n });\n}\n\nfunction handleSeriesLegacySelectEvents(type, eventPostfix, ecIns, ecModel, payload) {\n var legacyEventName = type + eventPostfix;\n\n if (!ecIns.isSilent(legacyEventName)) {\n if (process.env.NODE_ENV !== 'production') {\n deprecateLog(\"event \" + legacyEventName + \" is deprecated.\");\n }\n\n ecModel.eachComponent({\n mainType: 'series',\n subType: 'pie'\n }, function (seriesModel) {\n var seriesIndex = seriesModel.seriesIndex;\n var selectedMap = seriesModel.option.selectedMap;\n var selected = payload.selected;\n\n for (var i = 0; i < selected.length; i++) {\n if (selected[i].seriesIndex === seriesIndex) {\n var data = seriesModel.getData();\n var dataIndex = queryDataIndex(data, payload.fromActionPayload);\n ecIns.trigger(legacyEventName, {\n type: legacyEventName,\n seriesId: seriesModel.id,\n name: isArray(dataIndex) ? data.getName(dataIndex[0]) : data.getName(dataIndex),\n selected: isString(selectedMap) ? selectedMap : extend({}, selectedMap)\n });\n }\n }\n });\n }\n}\n\nexport function handleLegacySelectEvents(messageCenter, ecIns, api) {\n messageCenter.on('selectchanged', function (params) {\n var ecModel = api.getModel();\n\n if (params.isFromClick) {\n handleSeriesLegacySelectEvents('map', 'selectchanged', ecIns, ecModel, params);\n handleSeriesLegacySelectEvents('pie', 'selectchanged', ecIns, ecModel, params);\n } else if (params.fromAction === 'select') {\n handleSeriesLegacySelectEvents('map', 'selected', ecIns, ecModel, params);\n handleSeriesLegacySelectEvents('pie', 'selected', ecIns, ecModel, params);\n } else if (params.fromAction === 'unselect') {\n handleSeriesLegacySelectEvents('map', 'unselected', ecIns, ecModel, params);\n handleSeriesLegacySelectEvents('pie', 'unselected', ecIns, ecModel, params);\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { Text } from '../util/graphic.js';\nexport function getTextRect(text, font, align, verticalAlign, padding, rich, truncate, lineHeight) {\n var textEl = new Text({\n style: {\n text: text,\n font: font,\n align: align,\n verticalAlign: verticalAlign,\n padding: padding,\n rich: rich,\n overflow: truncate ? 'truncate' : null,\n lineHeight: lineHeight\n }\n });\n return textEl.getBoundingRect();\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as graphic from '../util/graphic.js';\nvar PI = Math.PI;\n/**\n * @param {module:echarts/ExtensionAPI} api\n * @param {Object} [opts]\n * @param {string} [opts.text]\n * @param {string} [opts.color]\n * @param {string} [opts.textColor]\n * @return {module:zrender/Element}\n */\n\nexport default function defaultLoading(api, opts) {\n opts = opts || {};\n zrUtil.defaults(opts, {\n text: 'loading',\n textColor: '#000',\n fontSize: 12,\n fontWeight: 'normal',\n fontStyle: 'normal',\n fontFamily: 'sans-serif',\n maskColor: 'rgba(255, 255, 255, 0.8)',\n showSpinner: true,\n color: '#5470c6',\n spinnerRadius: 10,\n lineWidth: 5,\n zlevel: 0\n });\n var group = new graphic.Group();\n var mask = new graphic.Rect({\n style: {\n fill: opts.maskColor\n },\n zlevel: opts.zlevel,\n z: 10000\n });\n group.add(mask);\n var textContent = new graphic.Text({\n style: {\n text: opts.text,\n fill: opts.textColor,\n fontSize: opts.fontSize,\n fontWeight: opts.fontWeight,\n fontStyle: opts.fontStyle,\n fontFamily: opts.fontFamily\n },\n zlevel: opts.zlevel,\n z: 10001\n });\n var labelRect = new graphic.Rect({\n style: {\n fill: 'none'\n },\n textContent: textContent,\n textConfig: {\n position: 'right',\n distance: 10\n },\n zlevel: opts.zlevel,\n z: 10001\n });\n group.add(labelRect);\n var arc;\n\n if (opts.showSpinner) {\n arc = new graphic.Arc({\n shape: {\n startAngle: -PI / 2,\n endAngle: -PI / 2 + 0.1,\n r: opts.spinnerRadius\n },\n style: {\n stroke: opts.color,\n lineCap: 'round',\n lineWidth: opts.lineWidth\n },\n zlevel: opts.zlevel,\n z: 10001\n });\n arc.animateShape(true).when(1000, {\n endAngle: PI * 3 / 2\n }).start('circularInOut');\n arc.animateShape(true).when(1000, {\n startAngle: PI * 3 / 2\n }).delay(300).start('circularInOut');\n group.add(arc);\n } // Inject resize\n\n\n group.resize = function () {\n var textWidth = textContent.getBoundingRect().width;\n var r = opts.showSpinner ? opts.spinnerRadius : 0; // cx = (containerWidth - arcDiameter - textDistance - textWidth) / 2\n // textDistance needs to be calculated when both animation and text exist\n\n var cx = (api.getWidth() - r * 2 - (opts.showSpinner && textWidth ? 10 : 0) - textWidth) / 2 - (opts.showSpinner && textWidth ? 0 : 5 + textWidth / 2) // only show the text\n + (opts.showSpinner ? 0 : textWidth / 2) // only show the spinner\n + (textWidth ? 0 : r);\n var cy = api.getHeight() / 2;\n opts.showSpinner && arc.setShape({\n cx: cx,\n cy: cy\n });\n labelRect.setShape({\n x: cx - r,\n y: cy - r,\n width: r * 2,\n height: r * 2\n });\n mask.setShape({\n x: 0,\n y: 0,\n width: api.getWidth(),\n height: api.getHeight()\n });\n };\n\n group.resize();\n return group;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport Model from './Model.js';\nimport * as componentUtil from '../util/component.js';\nimport { enableClassManagement, parseClassType, isExtendedClass, mountExtend } from '../util/clazz.js';\nimport { makeInner, queryReferringComponents } from '../util/model.js';\nimport * as layout from '../util/layout.js';\nvar inner = makeInner();\n\nvar ComponentModel =\n/** @class */\nfunction (_super) {\n __extends(ComponentModel, _super);\n\n function ComponentModel(option, parentModel, ecModel) {\n var _this = _super.call(this, option, parentModel, ecModel) || this;\n\n _this.uid = componentUtil.getUID('ec_cpt_model');\n return _this;\n }\n\n ComponentModel.prototype.init = function (option, parentModel, ecModel) {\n this.mergeDefaultAndTheme(option, ecModel);\n };\n\n ComponentModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\n var layoutMode = layout.fetchLayoutMode(this);\n var inputPositionParams = layoutMode ? layout.getLayoutParams(option) : {};\n var themeModel = ecModel.getTheme();\n zrUtil.merge(option, themeModel.get(this.mainType));\n zrUtil.merge(option, this.getDefaultOption());\n\n if (layoutMode) {\n layout.mergeLayoutParam(option, inputPositionParams, layoutMode);\n }\n };\n\n ComponentModel.prototype.mergeOption = function (option, ecModel) {\n zrUtil.merge(this.option, option, true);\n var layoutMode = layout.fetchLayoutMode(this);\n\n if (layoutMode) {\n layout.mergeLayoutParam(this.option, option, layoutMode);\n }\n };\n /**\n * Called immediately after `init` or `mergeOption` of this instance called.\n */\n\n\n ComponentModel.prototype.optionUpdated = function (newCptOption, isInit) {};\n /**\n * [How to declare defaultOption]:\n *\n * (A) If using class declaration in typescript (since echarts 5):\n * ```ts\n * import {ComponentOption} from '../model/option.js';\n * export interface XxxOption extends ComponentOption {\n * aaa: number\n * }\n * export class XxxModel extends Component {\n * static type = 'xxx';\n * static defaultOption: XxxOption = {\n * aaa: 123\n * }\n * }\n * Component.registerClass(XxxModel);\n * ```\n * ```ts\n * import {inheritDefaultOption} from '../util/component.js';\n * import {XxxModel, XxxOption} from './XxxModel.js';\n * export interface XxxSubOption extends XxxOption {\n * bbb: number\n * }\n * class XxxSubModel extends XxxModel {\n * static defaultOption: XxxSubOption = inheritDefaultOption(XxxModel.defaultOption, {\n * bbb: 456\n * })\n * fn() {\n * let opt = this.getDefaultOption();\n * // opt is {aaa: 123, bbb: 456}\n * }\n * }\n * ```\n *\n * (B) If using class extend (previous approach in echarts 3 & 4):\n * ```js\n * let XxxComponent = Component.extend({\n * defaultOption: {\n * xx: 123\n * }\n * })\n * ```\n * ```js\n * let XxxSubComponent = XxxComponent.extend({\n * defaultOption: {\n * yy: 456\n * },\n * fn: function () {\n * let opt = this.getDefaultOption();\n * // opt is {xx: 123, yy: 456}\n * }\n * })\n * ```\n */\n\n\n ComponentModel.prototype.getDefaultOption = function () {\n var ctor = this.constructor; // If using class declaration, it is different to travel super class\n // in legacy env and auto merge defaultOption. So if using class\n // declaration, defaultOption should be merged manually.\n\n if (!isExtendedClass(ctor)) {\n // When using ts class, defaultOption must be declared as static.\n return ctor.defaultOption;\n } // FIXME: remove this approach?\n\n\n var fields = inner(this);\n\n if (!fields.defaultOption) {\n var optList = [];\n var clz = ctor;\n\n while (clz) {\n var opt = clz.prototype.defaultOption;\n opt && optList.push(opt);\n clz = clz.superClass;\n }\n\n var defaultOption = {};\n\n for (var i = optList.length - 1; i >= 0; i--) {\n defaultOption = zrUtil.merge(defaultOption, optList[i], true);\n }\n\n fields.defaultOption = defaultOption;\n }\n\n return fields.defaultOption;\n };\n /**\n * Notice: always force to input param `useDefault` in case that forget to consider it.\n * The same behavior as `modelUtil.parseFinder`.\n *\n * @param useDefault In many cases like series refer axis and axis refer grid,\n * If axis index / axis id not specified, use the first target as default.\n * In other cases like dataZoom refer axis, if not specified, measn no refer.\n */\n\n\n ComponentModel.prototype.getReferringComponents = function (mainType, opt) {\n var indexKey = mainType + 'Index';\n var idKey = mainType + 'Id';\n return queryReferringComponents(this.ecModel, mainType, {\n index: this.get(indexKey, true),\n id: this.get(idKey, true)\n }, opt);\n };\n\n ComponentModel.prototype.getBoxLayoutParams = function () {\n // Consider itself having box layout configs.\n var boxLayoutModel = this;\n return {\n left: boxLayoutModel.get('left'),\n top: boxLayoutModel.get('top'),\n right: boxLayoutModel.get('right'),\n bottom: boxLayoutModel.get('bottom'),\n width: boxLayoutModel.get('width'),\n height: boxLayoutModel.get('height')\n };\n };\n /**\n * Get key for zlevel.\n * If developers don't configure zlevel. We will assign zlevel to series based on the key.\n * For example, lines with trail effect and progressive series will in an individual zlevel.\n */\n\n\n ComponentModel.prototype.getZLevelKey = function () {\n return '';\n };\n\n ComponentModel.prototype.setZLevel = function (zlevel) {\n this.option.zlevel = zlevel;\n };\n\n ComponentModel.protoInitialize = function () {\n var proto = ComponentModel.prototype;\n proto.type = 'component';\n proto.id = '';\n proto.name = '';\n proto.mainType = '';\n proto.subType = '';\n proto.componentIndex = 0;\n }();\n\n return ComponentModel;\n}(Model);\n\nmountExtend(ComponentModel, Model);\nenableClassManagement(ComponentModel);\ncomponentUtil.enableSubTypeDefaulter(ComponentModel);\ncomponentUtil.enableTopologicalTravel(ComponentModel, getDependencies);\n\nfunction getDependencies(componentType) {\n var deps = [];\n zrUtil.each(ComponentModel.getClassesByMainType(componentType), function (clz) {\n deps = deps.concat(clz.dependencies || clz.prototype.dependencies || []);\n }); // Ensure main type.\n\n deps = zrUtil.map(deps, function (type) {\n return parseClassType(type).main;\n }); // Hack dataset for convenience.\n\n if (componentType !== 'dataset' && zrUtil.indexOf(deps, 'dataset') <= 0) {\n deps.unshift('dataset');\n }\n\n return deps;\n}\n\nexport default ComponentModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\n/**\n * Caution: If the mechanism should be changed some day, these cases\n * should be considered:\n *\n * (1) In `merge option` mode, if using the same option to call `setOption`\n * many times, the result should be the same (try our best to ensure that).\n * (2) In `merge option` mode, if a component has no id/name specified, it\n * will be merged by index, and the result sequence of the components is\n * consistent to the original sequence.\n * (3) In `replaceMerge` mode, keep the result sequence of the components is\n * consistent to the original sequence, even though there might result in \"hole\".\n * (4) `reset` feature (in toolbox). Find detailed info in comments about\n * `mergeOption` in module:echarts/model/OptionManager.\n */\n\nimport { each, filter, isArray, isObject, isString, createHashMap, assert, clone, merge, extend, mixin, isFunction } from 'zrender/lib/core/util.js';\nimport * as modelUtil from '../util/model.js';\nimport Model from './Model.js';\nimport ComponentModel from './Component.js';\nimport globalDefault from './globalDefault.js';\nimport { resetSourceDefaulter } from '../data/helper/sourceHelper.js';\nimport { concatInternalOptions } from './internalComponentCreator.js';\nimport { PaletteMixin } from './mixin/palette.js';\nimport { error, warn } from '../util/log.js'; // -----------------------\n// Internal method names:\n// -----------------------\n\nvar reCreateSeriesIndices;\nvar assertSeriesInitialized;\nvar initBase;\nvar OPTION_INNER_KEY = '\\0_ec_inner';\nvar OPTION_INNER_VALUE = 1;\nvar BUITIN_COMPONENTS_MAP = {\n grid: 'GridComponent',\n polar: 'PolarComponent',\n geo: 'GeoComponent',\n singleAxis: 'SingleAxisComponent',\n parallel: 'ParallelComponent',\n calendar: 'CalendarComponent',\n graphic: 'GraphicComponent',\n toolbox: 'ToolboxComponent',\n tooltip: 'TooltipComponent',\n axisPointer: 'AxisPointerComponent',\n brush: 'BrushComponent',\n title: 'TitleComponent',\n timeline: 'TimelineComponent',\n markPoint: 'MarkPointComponent',\n markLine: 'MarkLineComponent',\n markArea: 'MarkAreaComponent',\n legend: 'LegendComponent',\n dataZoom: 'DataZoomComponent',\n visualMap: 'VisualMapComponent',\n // aria: 'AriaComponent',\n // dataset: 'DatasetComponent',\n // Dependencies\n xAxis: 'GridComponent',\n yAxis: 'GridComponent',\n angleAxis: 'PolarComponent',\n radiusAxis: 'PolarComponent'\n};\nvar BUILTIN_CHARTS_MAP = {\n line: 'LineChart',\n bar: 'BarChart',\n pie: 'PieChart',\n scatter: 'ScatterChart',\n radar: 'RadarChart',\n map: 'MapChart',\n tree: 'TreeChart',\n treemap: 'TreemapChart',\n graph: 'GraphChart',\n gauge: 'GaugeChart',\n funnel: 'FunnelChart',\n parallel: 'ParallelChart',\n sankey: 'SankeyChart',\n boxplot: 'BoxplotChart',\n candlestick: 'CandlestickChart',\n effectScatter: 'EffectScatterChart',\n lines: 'LinesChart',\n heatmap: 'HeatmapChart',\n pictorialBar: 'PictorialBarChart',\n themeRiver: 'ThemeRiverChart',\n sunburst: 'SunburstChart',\n custom: 'CustomChart'\n};\nvar componetsMissingLogPrinted = {};\n\nfunction checkMissingComponents(option) {\n each(option, function (componentOption, mainType) {\n if (!ComponentModel.hasClass(mainType)) {\n var componentImportName = BUITIN_COMPONENTS_MAP[mainType];\n\n if (componentImportName && !componetsMissingLogPrinted[componentImportName]) {\n error(\"Component \" + mainType + \" is used but not imported.\\nimport { \" + componentImportName + \" } from 'echarts/components';\\necharts.use([\" + componentImportName + \"]);\");\n componetsMissingLogPrinted[componentImportName] = true;\n }\n }\n });\n}\n\nvar GlobalModel =\n/** @class */\nfunction (_super) {\n __extends(GlobalModel, _super);\n\n function GlobalModel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n GlobalModel.prototype.init = function (option, parentModel, ecModel, theme, locale, optionManager) {\n theme = theme || {};\n this.option = null; // Mark as not initialized.\n\n this._theme = new Model(theme);\n this._locale = new Model(locale);\n this._optionManager = optionManager;\n };\n\n GlobalModel.prototype.setOption = function (option, opts, optionPreprocessorFuncs) {\n if (process.env.NODE_ENV !== 'production') {\n assert(option != null, 'option is null/undefined');\n assert(option[OPTION_INNER_KEY] !== OPTION_INNER_VALUE, 'please use chart.getOption()');\n }\n\n var innerOpt = normalizeSetOptionInput(opts);\n\n this._optionManager.setOption(option, optionPreprocessorFuncs, innerOpt);\n\n this._resetOption(null, innerOpt);\n };\n /**\n * @param type null/undefined: reset all.\n * 'recreate': force recreate all.\n * 'timeline': only reset timeline option\n * 'media': only reset media query option\n * @return Whether option changed.\n */\n\n\n GlobalModel.prototype.resetOption = function (type, opt) {\n return this._resetOption(type, normalizeSetOptionInput(opt));\n };\n\n GlobalModel.prototype._resetOption = function (type, opt) {\n var optionChanged = false;\n var optionManager = this._optionManager;\n\n if (!type || type === 'recreate') {\n var baseOption = optionManager.mountOption(type === 'recreate');\n\n if (process.env.NODE_ENV !== 'production') {\n checkMissingComponents(baseOption);\n }\n\n if (!this.option || type === 'recreate') {\n initBase(this, baseOption);\n } else {\n this.restoreData();\n\n this._mergeOption(baseOption, opt);\n }\n\n optionChanged = true;\n }\n\n if (type === 'timeline' || type === 'media') {\n this.restoreData();\n } // By design, if `setOption(option2)` at the second time, and `option2` is a `ECUnitOption`,\n // it should better not have the same props with `MediaUnit['option']`.\n // Because either `option2` or `MediaUnit['option']` will be always merged to \"current option\"\n // rather than original \"baseOption\". If they both override a prop, the result might be\n // unexpected when media state changed after `setOption` called.\n // If we really need to modify a props in each `MediaUnit['option']`, use the full version\n // (`{baseOption, media}`) in `setOption`.\n // For `timeline`, the case is the same.\n\n\n if (!type || type === 'recreate' || type === 'timeline') {\n var timelineOption = optionManager.getTimelineOption(this);\n\n if (timelineOption) {\n optionChanged = true;\n\n this._mergeOption(timelineOption, opt);\n }\n }\n\n if (!type || type === 'recreate' || type === 'media') {\n var mediaOptions = optionManager.getMediaOption(this);\n\n if (mediaOptions.length) {\n each(mediaOptions, function (mediaOption) {\n optionChanged = true;\n\n this._mergeOption(mediaOption, opt);\n }, this);\n }\n }\n\n return optionChanged;\n };\n\n GlobalModel.prototype.mergeOption = function (option) {\n this._mergeOption(option, null);\n };\n\n GlobalModel.prototype._mergeOption = function (newOption, opt) {\n var option = this.option;\n var componentsMap = this._componentsMap;\n var componentsCount = this._componentsCount;\n var newCmptTypes = [];\n var newCmptTypeMap = createHashMap();\n var replaceMergeMainTypeMap = opt && opt.replaceMergeMainTypeMap;\n resetSourceDefaulter(this); // If no component class, merge directly.\n // For example: color, animaiton options, etc.\n\n each(newOption, function (componentOption, mainType) {\n if (componentOption == null) {\n return;\n }\n\n if (!ComponentModel.hasClass(mainType)) {\n // globalSettingTask.dirty();\n option[mainType] = option[mainType] == null ? clone(componentOption) : merge(option[mainType], componentOption, true);\n } else if (mainType) {\n newCmptTypes.push(mainType);\n newCmptTypeMap.set(mainType, true);\n }\n });\n\n if (replaceMergeMainTypeMap) {\n // If there is a mainType `xxx` in `replaceMerge` but not declared in option,\n // we trade it as it is declared in option as `{xxx: []}`. Because:\n // (1) for normal merge, `{xxx: null/undefined}` are the same meaning as `{xxx: []}`.\n // (2) some preprocessor may convert some of `{xxx: null/undefined}` to `{xxx: []}`.\n replaceMergeMainTypeMap.each(function (val, mainTypeInReplaceMerge) {\n if (ComponentModel.hasClass(mainTypeInReplaceMerge) && !newCmptTypeMap.get(mainTypeInReplaceMerge)) {\n newCmptTypes.push(mainTypeInReplaceMerge);\n newCmptTypeMap.set(mainTypeInReplaceMerge, true);\n }\n });\n }\n\n ComponentModel.topologicalTravel(newCmptTypes, ComponentModel.getAllClassMainTypes(), visitComponent, this);\n\n function visitComponent(mainType) {\n var newCmptOptionList = concatInternalOptions(this, mainType, modelUtil.normalizeToArray(newOption[mainType]));\n var oldCmptList = componentsMap.get(mainType);\n var mergeMode = // `!oldCmptList` means init. See the comment in `mappingToExists`\n !oldCmptList ? 'replaceAll' : replaceMergeMainTypeMap && replaceMergeMainTypeMap.get(mainType) ? 'replaceMerge' : 'normalMerge';\n var mappingResult = modelUtil.mappingToExists(oldCmptList, newCmptOptionList, mergeMode); // Set mainType and complete subType.\n\n modelUtil.setComponentTypeToKeyInfo(mappingResult, mainType, ComponentModel); // Empty it before the travel, in order to prevent `this._componentsMap`\n // from being used in the `init`/`mergeOption`/`optionUpdated` of some\n // components, which is probably incorrect logic.\n\n option[mainType] = null;\n componentsMap.set(mainType, null);\n componentsCount.set(mainType, 0);\n var optionsByMainType = [];\n var cmptsByMainType = [];\n var cmptsCountByMainType = 0;\n var tooltipExists;\n var tooltipWarningLogged;\n each(mappingResult, function (resultItem, index) {\n var componentModel = resultItem.existing;\n var newCmptOption = resultItem.newOption;\n\n if (!newCmptOption) {\n if (componentModel) {\n // Consider where is no new option and should be merged using {},\n // see removeEdgeAndAdd in topologicalTravel and\n // ComponentModel.getAllClassMainTypes.\n componentModel.mergeOption({}, this);\n componentModel.optionUpdated({}, false);\n } // If no both `resultItem.exist` and `resultItem.option`,\n // either it is in `replaceMerge` and not matched by any id,\n // or it has been removed in previous `replaceMerge` and left a \"hole\" in this component index.\n\n } else {\n var isSeriesType = mainType === 'series';\n var ComponentModelClass = ComponentModel.getClass(mainType, resultItem.keyInfo.subType, !isSeriesType // Give a more detailed warn later if series don't exists\n );\n\n if (!ComponentModelClass) {\n if (process.env.NODE_ENV !== 'production') {\n var subType = resultItem.keyInfo.subType;\n var seriesImportName = BUILTIN_CHARTS_MAP[subType];\n\n if (!componetsMissingLogPrinted[subType]) {\n componetsMissingLogPrinted[subType] = true;\n\n if (seriesImportName) {\n error(\"Series \" + subType + \" is used but not imported.\\nimport { \" + seriesImportName + \" } from 'echarts/charts';\\necharts.use([\" + seriesImportName + \"]);\");\n } else {\n error(\"Unknown series \" + subType);\n }\n }\n }\n\n return;\n } // TODO Before multiple tooltips get supported, we do this check to avoid unexpected exception.\n\n\n if (mainType === 'tooltip') {\n if (tooltipExists) {\n if (process.env.NODE_ENV !== 'production') {\n if (!tooltipWarningLogged) {\n warn('Currently only one tooltip component is allowed.');\n tooltipWarningLogged = true;\n }\n }\n\n return;\n }\n\n tooltipExists = true;\n }\n\n if (componentModel && componentModel.constructor === ComponentModelClass) {\n componentModel.name = resultItem.keyInfo.name; // componentModel.settingTask && componentModel.settingTask.dirty();\n\n componentModel.mergeOption(newCmptOption, this);\n componentModel.optionUpdated(newCmptOption, false);\n } else {\n // PENDING Global as parent ?\n var extraOpt = extend({\n componentIndex: index\n }, resultItem.keyInfo);\n componentModel = new ComponentModelClass(newCmptOption, this, this, extraOpt); // Assign `keyInfo`\n\n extend(componentModel, extraOpt);\n\n if (resultItem.brandNew) {\n componentModel.__requireNewView = true;\n }\n\n componentModel.init(newCmptOption, this, this); // Call optionUpdated after init.\n // newCmptOption has been used as componentModel.option\n // and may be merged with theme and default, so pass null\n // to avoid confusion.\n\n componentModel.optionUpdated(null, true);\n }\n }\n\n if (componentModel) {\n optionsByMainType.push(componentModel.option);\n cmptsByMainType.push(componentModel);\n cmptsCountByMainType++;\n } else {\n // Always do assign to avoid elided item in array.\n optionsByMainType.push(void 0);\n cmptsByMainType.push(void 0);\n }\n }, this);\n option[mainType] = optionsByMainType;\n componentsMap.set(mainType, cmptsByMainType);\n componentsCount.set(mainType, cmptsCountByMainType); // Backup series for filtering.\n\n if (mainType === 'series') {\n reCreateSeriesIndices(this);\n }\n } // If no series declared, ensure `_seriesIndices` initialized.\n\n\n if (!this._seriesIndices) {\n reCreateSeriesIndices(this);\n }\n };\n /**\n * Get option for output (cloned option and inner info removed)\n */\n\n\n GlobalModel.prototype.getOption = function () {\n var option = clone(this.option);\n each(option, function (optInMainType, mainType) {\n if (ComponentModel.hasClass(mainType)) {\n var opts = modelUtil.normalizeToArray(optInMainType); // Inner cmpts need to be removed.\n // Inner cmpts might not be at last since ec5.0, but still\n // compatible for users: if inner cmpt at last, splice the returned array.\n\n var realLen = opts.length;\n var metNonInner = false;\n\n for (var i = realLen - 1; i >= 0; i--) {\n // Remove options with inner id.\n if (opts[i] && !modelUtil.isComponentIdInternal(opts[i])) {\n metNonInner = true;\n } else {\n opts[i] = null;\n !metNonInner && realLen--;\n }\n }\n\n opts.length = realLen;\n option[mainType] = opts;\n }\n });\n delete option[OPTION_INNER_KEY];\n return option;\n };\n\n GlobalModel.prototype.getTheme = function () {\n return this._theme;\n };\n\n GlobalModel.prototype.getLocaleModel = function () {\n return this._locale;\n };\n\n GlobalModel.prototype.setUpdatePayload = function (payload) {\n this._payload = payload;\n };\n\n GlobalModel.prototype.getUpdatePayload = function () {\n return this._payload;\n };\n /**\n * @param idx If not specified, return the first one.\n */\n\n\n GlobalModel.prototype.getComponent = function (mainType, idx) {\n var list = this._componentsMap.get(mainType);\n\n if (list) {\n var cmpt = list[idx || 0];\n\n if (cmpt) {\n return cmpt;\n } else if (idx == null) {\n for (var i = 0; i < list.length; i++) {\n if (list[i]) {\n return list[i];\n }\n }\n }\n }\n };\n /**\n * @return Never be null/undefined.\n */\n\n\n GlobalModel.prototype.queryComponents = function (condition) {\n var mainType = condition.mainType;\n\n if (!mainType) {\n return [];\n }\n\n var index = condition.index;\n var id = condition.id;\n var name = condition.name;\n\n var cmpts = this._componentsMap.get(mainType);\n\n if (!cmpts || !cmpts.length) {\n return [];\n }\n\n var result;\n\n if (index != null) {\n result = [];\n each(modelUtil.normalizeToArray(index), function (idx) {\n cmpts[idx] && result.push(cmpts[idx]);\n });\n } else if (id != null) {\n result = queryByIdOrName('id', id, cmpts);\n } else if (name != null) {\n result = queryByIdOrName('name', name, cmpts);\n } else {\n // Return all non-empty components in that mainType\n result = filter(cmpts, function (cmpt) {\n return !!cmpt;\n });\n }\n\n return filterBySubType(result, condition);\n };\n /**\n * The interface is different from queryComponents,\n * which is convenient for inner usage.\n *\n * @usage\n * let result = findComponents(\n * {mainType: 'dataZoom', query: {dataZoomId: 'abc'}}\n * );\n * let result = findComponents(\n * {mainType: 'series', subType: 'pie', query: {seriesName: 'uio'}}\n * );\n * let result = findComponents(\n * {mainType: 'series',\n * filter: function (model, index) {...}}\n * );\n * // result like [component0, componnet1, ...]\n */\n\n\n GlobalModel.prototype.findComponents = function (condition) {\n var query = condition.query;\n var mainType = condition.mainType;\n var queryCond = getQueryCond(query);\n var result = queryCond ? this.queryComponents(queryCond) // Retrieve all non-empty components.\n : filter(this._componentsMap.get(mainType), function (cmpt) {\n return !!cmpt;\n });\n return doFilter(filterBySubType(result, condition));\n\n function getQueryCond(q) {\n var indexAttr = mainType + 'Index';\n var idAttr = mainType + 'Id';\n var nameAttr = mainType + 'Name';\n return q && (q[indexAttr] != null || q[idAttr] != null || q[nameAttr] != null) ? {\n mainType: mainType,\n // subType will be filtered finally.\n index: q[indexAttr],\n id: q[idAttr],\n name: q[nameAttr]\n } : null;\n }\n\n function doFilter(res) {\n return condition.filter ? filter(res, condition.filter) : res;\n }\n };\n\n GlobalModel.prototype.eachComponent = function (mainType, cb, context) {\n var componentsMap = this._componentsMap;\n\n if (isFunction(mainType)) {\n var ctxForAll_1 = cb;\n var cbForAll_1 = mainType;\n componentsMap.each(function (cmpts, componentType) {\n for (var i = 0; cmpts && i < cmpts.length; i++) {\n var cmpt = cmpts[i];\n cmpt && cbForAll_1.call(ctxForAll_1, componentType, cmpt, cmpt.componentIndex);\n }\n });\n } else {\n var cmpts = isString(mainType) ? componentsMap.get(mainType) : isObject(mainType) ? this.findComponents(mainType) : null;\n\n for (var i = 0; cmpts && i < cmpts.length; i++) {\n var cmpt = cmpts[i];\n cmpt && cb.call(context, cmpt, cmpt.componentIndex);\n }\n }\n };\n /**\n * Get series list before filtered by name.\n */\n\n\n GlobalModel.prototype.getSeriesByName = function (name) {\n var nameStr = modelUtil.convertOptionIdName(name, null);\n return filter(this._componentsMap.get('series'), function (oneSeries) {\n return !!oneSeries && nameStr != null && oneSeries.name === nameStr;\n });\n };\n /**\n * Get series list before filtered by index.\n */\n\n\n GlobalModel.prototype.getSeriesByIndex = function (seriesIndex) {\n return this._componentsMap.get('series')[seriesIndex];\n };\n /**\n * Get series list before filtered by type.\n * FIXME: rename to getRawSeriesByType?\n */\n\n\n GlobalModel.prototype.getSeriesByType = function (subType) {\n return filter(this._componentsMap.get('series'), function (oneSeries) {\n return !!oneSeries && oneSeries.subType === subType;\n });\n };\n /**\n * Get all series before filtered.\n */\n\n\n GlobalModel.prototype.getSeries = function () {\n return filter(this._componentsMap.get('series'), function (oneSeries) {\n return !!oneSeries;\n });\n };\n /**\n * Count series before filtered.\n */\n\n\n GlobalModel.prototype.getSeriesCount = function () {\n return this._componentsCount.get('series');\n };\n /**\n * After filtering, series may be different\n * from raw series.\n */\n\n\n GlobalModel.prototype.eachSeries = function (cb, context) {\n assertSeriesInitialized(this);\n each(this._seriesIndices, function (rawSeriesIndex) {\n var series = this._componentsMap.get('series')[rawSeriesIndex];\n\n cb.call(context, series, rawSeriesIndex);\n }, this);\n };\n /**\n * Iterate raw series before filtered.\n *\n * @param {Function} cb\n * @param {*} context\n */\n\n\n GlobalModel.prototype.eachRawSeries = function (cb, context) {\n each(this._componentsMap.get('series'), function (series) {\n series && cb.call(context, series, series.componentIndex);\n });\n };\n /**\n * After filtering, series may be different.\n * from raw series.\n */\n\n\n GlobalModel.prototype.eachSeriesByType = function (subType, cb, context) {\n assertSeriesInitialized(this);\n each(this._seriesIndices, function (rawSeriesIndex) {\n var series = this._componentsMap.get('series')[rawSeriesIndex];\n\n if (series.subType === subType) {\n cb.call(context, series, rawSeriesIndex);\n }\n }, this);\n };\n /**\n * Iterate raw series before filtered of given type.\n */\n\n\n GlobalModel.prototype.eachRawSeriesByType = function (subType, cb, context) {\n return each(this.getSeriesByType(subType), cb, context);\n };\n\n GlobalModel.prototype.isSeriesFiltered = function (seriesModel) {\n assertSeriesInitialized(this);\n return this._seriesIndicesMap.get(seriesModel.componentIndex) == null;\n };\n\n GlobalModel.prototype.getCurrentSeriesIndices = function () {\n return (this._seriesIndices || []).slice();\n };\n\n GlobalModel.prototype.filterSeries = function (cb, context) {\n assertSeriesInitialized(this);\n var newSeriesIndices = [];\n each(this._seriesIndices, function (seriesRawIdx) {\n var series = this._componentsMap.get('series')[seriesRawIdx];\n\n cb.call(context, series, seriesRawIdx) && newSeriesIndices.push(seriesRawIdx);\n }, this);\n this._seriesIndices = newSeriesIndices;\n this._seriesIndicesMap = createHashMap(newSeriesIndices);\n };\n\n GlobalModel.prototype.restoreData = function (payload) {\n reCreateSeriesIndices(this);\n var componentsMap = this._componentsMap;\n var componentTypes = [];\n componentsMap.each(function (components, componentType) {\n if (ComponentModel.hasClass(componentType)) {\n componentTypes.push(componentType);\n }\n });\n ComponentModel.topologicalTravel(componentTypes, ComponentModel.getAllClassMainTypes(), function (componentType) {\n each(componentsMap.get(componentType), function (component) {\n if (component && (componentType !== 'series' || !isNotTargetSeries(component, payload))) {\n component.restoreData();\n }\n });\n });\n };\n\n GlobalModel.internalField = function () {\n reCreateSeriesIndices = function (ecModel) {\n var seriesIndices = ecModel._seriesIndices = [];\n each(ecModel._componentsMap.get('series'), function (series) {\n // series may have been removed by `replaceMerge`.\n series && seriesIndices.push(series.componentIndex);\n });\n ecModel._seriesIndicesMap = createHashMap(seriesIndices);\n };\n\n assertSeriesInitialized = function (ecModel) {\n // Components that use _seriesIndices should depends on series component,\n // which make sure that their initialization is after series.\n if (process.env.NODE_ENV !== 'production') {\n if (!ecModel._seriesIndices) {\n throw new Error('Option should contains series.');\n }\n }\n };\n\n initBase = function (ecModel, baseOption) {\n // Using OPTION_INNER_KEY to mark that this option cannot be used outside,\n // i.e. `chart.setOption(chart.getModel().option);` is forbidden.\n ecModel.option = {};\n ecModel.option[OPTION_INNER_KEY] = OPTION_INNER_VALUE; // Init with series: [], in case of calling findSeries method\n // before series initialized.\n\n ecModel._componentsMap = createHashMap({\n series: []\n });\n ecModel._componentsCount = createHashMap(); // If user spefied `option.aria`, aria will be enable. This detection should be\n // performed before theme and globalDefault merge.\n\n var airaOption = baseOption.aria;\n\n if (isObject(airaOption) && airaOption.enabled == null) {\n airaOption.enabled = true;\n }\n\n mergeTheme(baseOption, ecModel._theme.option); // TODO Needs clone when merging to the unexisted property\n\n merge(baseOption, globalDefault, false);\n\n ecModel._mergeOption(baseOption, null);\n };\n }();\n\n return GlobalModel;\n}(Model);\n\nfunction isNotTargetSeries(seriesModel, payload) {\n if (payload) {\n var index = payload.seriesIndex;\n var id = payload.seriesId;\n var name_1 = payload.seriesName;\n return index != null && seriesModel.componentIndex !== index || id != null && seriesModel.id !== id || name_1 != null && seriesModel.name !== name_1;\n }\n}\n\nfunction mergeTheme(option, theme) {\n // PENDING\n // NOT use `colorLayer` in theme if option has `color`\n var notMergeColorLayer = option.color && !option.colorLayer;\n each(theme, function (themeItem, name) {\n if (name === 'colorLayer' && notMergeColorLayer) {\n return;\n } // If it is component model mainType, the model handles that merge later.\n // otherwise, merge them here.\n\n\n if (!ComponentModel.hasClass(name)) {\n if (typeof themeItem === 'object') {\n option[name] = !option[name] ? clone(themeItem) : merge(option[name], themeItem, false);\n } else {\n if (option[name] == null) {\n option[name] = themeItem;\n }\n }\n }\n });\n}\n\nfunction queryByIdOrName(attr, idOrName, cmpts) {\n // Here is a break from echarts4: string and number are\n // treated as equal.\n if (isArray(idOrName)) {\n var keyMap_1 = createHashMap();\n each(idOrName, function (idOrNameItem) {\n if (idOrNameItem != null) {\n var idName = modelUtil.convertOptionIdName(idOrNameItem, null);\n idName != null && keyMap_1.set(idOrNameItem, true);\n }\n });\n return filter(cmpts, function (cmpt) {\n return cmpt && keyMap_1.get(cmpt[attr]);\n });\n } else {\n var idName_1 = modelUtil.convertOptionIdName(idOrName, null);\n return filter(cmpts, function (cmpt) {\n return cmpt && idName_1 != null && cmpt[attr] === idName_1;\n });\n }\n}\n\nfunction filterBySubType(components, condition) {\n // Using hasOwnProperty for restrict. Consider\n // subType is undefined in user payload.\n return condition.hasOwnProperty('subType') ? filter(components, function (cmpt) {\n return cmpt && cmpt.subType === condition.subType;\n }) : components;\n}\n\nfunction normalizeSetOptionInput(opts) {\n var replaceMergeMainTypeMap = createHashMap();\n opts && each(modelUtil.normalizeToArray(opts.replaceMerge), function (mainType) {\n if (process.env.NODE_ENV !== 'production') {\n assert(ComponentModel.hasClass(mainType), '\"' + mainType + '\" is not valid component main type in \"replaceMerge\"');\n }\n\n replaceMergeMainTypeMap.set(mainType, true);\n });\n return {\n replaceMergeMainTypeMap: replaceMergeMainTypeMap\n };\n}\n\nmixin(GlobalModel, PaletteMixin);\nexport default GlobalModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport env from 'zrender/lib/core/env.js';\nimport { enableClassExtend, enableClassCheck } from '../util/clazz.js';\nimport { AreaStyleMixin } from './mixin/areaStyle.js';\nimport TextStyleMixin from './mixin/textStyle.js';\nimport { LineStyleMixin } from './mixin/lineStyle.js';\nimport { ItemStyleMixin } from './mixin/itemStyle.js';\nimport { mixin, clone, merge } from 'zrender/lib/core/util.js';\n\nvar Model =\n/** @class */\nfunction () {\n function Model(option, parentModel, ecModel) {\n this.parentModel = parentModel;\n this.ecModel = ecModel;\n this.option = option; // Simple optimization\n // if (this.init) {\n // if (arguments.length <= 4) {\n // this.init(option, parentModel, ecModel, extraOpt);\n // }\n // else {\n // this.init.apply(this, arguments);\n // }\n // }\n }\n\n Model.prototype.init = function (option, parentModel, ecModel) {\n var rest = [];\n\n for (var _i = 3; _i < arguments.length; _i++) {\n rest[_i - 3] = arguments[_i];\n }\n };\n /**\n * Merge the input option to me.\n */\n\n\n Model.prototype.mergeOption = function (option, ecModel) {\n merge(this.option, option, true);\n }; // `path` can be 'a.b.c', so the return value type have to be `ModelOption`\n // TODO: TYPE strict key check?\n // get(path: string | string[], ignoreParent?: boolean): ModelOption;\n\n\n Model.prototype.get = function (path, ignoreParent) {\n if (path == null) {\n return this.option;\n }\n\n return this._doGet(this.parsePath(path), !ignoreParent && this.parentModel);\n };\n\n Model.prototype.getShallow = function (key, ignoreParent) {\n var option = this.option;\n var val = option == null ? option : option[key];\n\n if (val == null && !ignoreParent) {\n var parentModel = this.parentModel;\n\n if (parentModel) {\n // FIXME:TS do not know how to make it works\n val = parentModel.getShallow(key);\n }\n }\n\n return val;\n }; // `path` can be 'a.b.c', so the return value type have to be `Model`\n // getModel(path: string | string[], parentModel?: Model): Model;\n // TODO 'a.b.c' is deprecated\n\n\n Model.prototype.getModel = function (path, parentModel) {\n var hasPath = path != null;\n var pathFinal = hasPath ? this.parsePath(path) : null;\n var obj = hasPath ? this._doGet(pathFinal) : this.option;\n parentModel = parentModel || this.parentModel && this.parentModel.getModel(this.resolveParentPath(pathFinal));\n return new Model(obj, parentModel, this.ecModel);\n };\n /**\n * If model has option\n */\n\n\n Model.prototype.isEmpty = function () {\n return this.option == null;\n };\n\n Model.prototype.restoreData = function () {}; // Pending\n\n\n Model.prototype.clone = function () {\n var Ctor = this.constructor;\n return new Ctor(clone(this.option));\n }; // setReadOnly(properties): void {\n // clazzUtil.setReadOnly(this, properties);\n // }\n // If path is null/undefined, return null/undefined.\n\n\n Model.prototype.parsePath = function (path) {\n if (typeof path === 'string') {\n return path.split('.');\n }\n\n return path;\n }; // Resolve path for parent. Perhaps useful when parent use a different property.\n // Default to be a identity resolver.\n // Can be modified to a different resolver.\n\n\n Model.prototype.resolveParentPath = function (path) {\n return path;\n }; // FIXME:TS check whether put this method here\n\n\n Model.prototype.isAnimationEnabled = function () {\n if (!env.node && this.option) {\n if (this.option.animation != null) {\n return !!this.option.animation;\n } else if (this.parentModel) {\n return this.parentModel.isAnimationEnabled();\n }\n }\n };\n\n Model.prototype._doGet = function (pathArr, parentModel) {\n var obj = this.option;\n\n if (!pathArr) {\n return obj;\n }\n\n for (var i = 0; i < pathArr.length; i++) {\n // Ignore empty\n if (!pathArr[i]) {\n continue;\n } // obj could be number/string/... (like 0)\n\n\n obj = obj && typeof obj === 'object' ? obj[pathArr[i]] : null;\n\n if (obj == null) {\n break;\n }\n }\n\n if (obj == null && parentModel) {\n obj = parentModel._doGet(this.resolveParentPath(pathArr), parentModel.parentModel);\n }\n\n return obj;\n };\n\n return Model;\n}();\n\n; // Enable Model.extend.\n\nenableClassExtend(Model);\nenableClassCheck(Model);\nmixin(Model, LineStyleMixin);\nmixin(Model, ItemStyleMixin);\nmixin(Model, AreaStyleMixin);\nmixin(Model, TextStyleMixin);\nexport default Model;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { normalizeToArray // , MappingExistingItem, setComponentTypeToKeyInfo, mappingToExists\n} from '../util/model.js';\nimport { each, clone, map, isTypedArray, setAsPrimitive, isArray, isObject // , HashMap , createHashMap, extend, merge,\n} from 'zrender/lib/core/util.js';\nimport { error } from '../util/log.js';\nvar QUERY_REG = /^(min|max)?(.+)$/; // Key: mainType\n// type FakeComponentsMap = HashMap<(MappingExistingItem & { subType: string })[]>;\n\n/**\n * TERM EXPLANATIONS:\n * See `ECOption` and `ECUnitOption` in `src/util/types.ts`.\n */\n\nvar OptionManager =\n/** @class */\nfunction () {\n // timeline.notMerge is not supported in ec3. Firstly there is rearly\n // case that notMerge is needed. Secondly supporting 'notMerge' requires\n // rawOption cloned and backuped when timeline changed, which does no\n // good to performance. What's more, that both timeline and setOption\n // method supply 'notMerge' brings complex and some problems.\n // Consider this case:\n // (step1) chart.setOption({timeline: {notMerge: false}, ...}, false);\n // (step2) chart.setOption({timeline: {notMerge: true}, ...}, false);\n function OptionManager(api) {\n this._timelineOptions = [];\n this._mediaList = [];\n /**\n * -1, means default.\n * empty means no media.\n */\n\n this._currentMediaIndices = [];\n this._api = api;\n }\n\n OptionManager.prototype.setOption = function (rawOption, optionPreprocessorFuncs, opt) {\n if (rawOption) {\n // That set dat primitive is dangerous if user reuse the data when setOption again.\n each(normalizeToArray(rawOption.series), function (series) {\n series && series.data && isTypedArray(series.data) && setAsPrimitive(series.data);\n });\n each(normalizeToArray(rawOption.dataset), function (dataset) {\n dataset && dataset.source && isTypedArray(dataset.source) && setAsPrimitive(dataset.source);\n });\n } // Caution: some series modify option data, if do not clone,\n // it should ensure that the repeat modify correctly\n // (create a new object when modify itself).\n\n\n rawOption = clone(rawOption); // FIXME\n // If some property is set in timeline options or media option but\n // not set in baseOption, a warning should be given.\n\n var optionBackup = this._optionBackup;\n var newParsedOption = parseRawOption(rawOption, optionPreprocessorFuncs, !optionBackup);\n this._newBaseOption = newParsedOption.baseOption; // For setOption at second time (using merge mode);\n\n if (optionBackup) {\n // FIXME\n // the restore merge solution is essentially incorrect.\n // the mapping can not be 100% consistent with ecModel, which probably brings\n // potential bug!\n // The first merge is delayed, because in most cases, users do not call `setOption` twice.\n // let fakeCmptsMap = this._fakeCmptsMap;\n // if (!fakeCmptsMap) {\n // fakeCmptsMap = this._fakeCmptsMap = createHashMap();\n // mergeToBackupOption(fakeCmptsMap, null, optionBackup.baseOption, null);\n // }\n // mergeToBackupOption(\n // fakeCmptsMap, optionBackup.baseOption, newParsedOption.baseOption, opt\n // );\n // For simplicity, timeline options and media options do not support merge,\n // that is, if you `setOption` twice and both has timeline options, the latter\n // timeline options will not be merged to the former, but just substitute them.\n if (newParsedOption.timelineOptions.length) {\n optionBackup.timelineOptions = newParsedOption.timelineOptions;\n }\n\n if (newParsedOption.mediaList.length) {\n optionBackup.mediaList = newParsedOption.mediaList;\n }\n\n if (newParsedOption.mediaDefault) {\n optionBackup.mediaDefault = newParsedOption.mediaDefault;\n }\n } else {\n this._optionBackup = newParsedOption;\n }\n };\n\n OptionManager.prototype.mountOption = function (isRecreate) {\n var optionBackup = this._optionBackup;\n this._timelineOptions = optionBackup.timelineOptions;\n this._mediaList = optionBackup.mediaList;\n this._mediaDefault = optionBackup.mediaDefault;\n this._currentMediaIndices = [];\n return clone(isRecreate // this._optionBackup.baseOption, which is created at the first `setOption`\n // called, and is merged into every new option by inner method `mergeToBackupOption`\n // each time `setOption` called, can be only used in `isRecreate`, because\n // its reliability is under suspicion. In other cases option merge is\n // performed by `model.mergeOption`.\n ? optionBackup.baseOption : this._newBaseOption);\n };\n\n OptionManager.prototype.getTimelineOption = function (ecModel) {\n var option;\n var timelineOptions = this._timelineOptions;\n\n if (timelineOptions.length) {\n // getTimelineOption can only be called after ecModel inited,\n // so we can get currentIndex from timelineModel.\n var timelineModel = ecModel.getComponent('timeline');\n\n if (timelineModel) {\n option = clone( // FIXME:TS as TimelineModel or quivlant interface\n timelineOptions[timelineModel.getCurrentIndex()]);\n }\n }\n\n return option;\n };\n\n OptionManager.prototype.getMediaOption = function (ecModel) {\n var ecWidth = this._api.getWidth();\n\n var ecHeight = this._api.getHeight();\n\n var mediaList = this._mediaList;\n var mediaDefault = this._mediaDefault;\n var indices = [];\n var result = []; // No media defined.\n\n if (!mediaList.length && !mediaDefault) {\n return result;\n } // Multi media may be applied, the latter defined media has higher priority.\n\n\n for (var i = 0, len = mediaList.length; i < len; i++) {\n if (applyMediaQuery(mediaList[i].query, ecWidth, ecHeight)) {\n indices.push(i);\n }\n } // FIXME\n // Whether mediaDefault should force users to provide? Otherwise\n // the change by media query can not be recorvered.\n\n\n if (!indices.length && mediaDefault) {\n indices = [-1];\n }\n\n if (indices.length && !indicesEquals(indices, this._currentMediaIndices)) {\n result = map(indices, function (index) {\n return clone(index === -1 ? mediaDefault.option : mediaList[index].option);\n });\n } // Otherwise return nothing.\n\n\n this._currentMediaIndices = indices;\n return result;\n };\n\n return OptionManager;\n}();\n/**\n * [RAW_OPTION_PATTERNS]\n * (Note: \"series: []\" represents all other props in `ECUnitOption`)\n *\n * (1) No prop \"baseOption\" declared:\n * Root option is used as \"baseOption\" (except prop \"options\" and \"media\").\n * ```js\n * option = {\n * series: [],\n * timeline: {},\n * options: [],\n * };\n * option = {\n * series: [],\n * media: {},\n * };\n * option = {\n * series: [],\n * timeline: {},\n * options: [],\n * media: {},\n * }\n * ```\n *\n * (2) Prop \"baseOption\" declared:\n * If \"baseOption\" declared, `ECUnitOption` props can only be declared\n * inside \"baseOption\" except prop \"timeline\" (compat ec2).\n * ```js\n * option = {\n * baseOption: {\n * timeline: {},\n * series: [],\n * },\n * options: []\n * };\n * option = {\n * baseOption: {\n * series: [],\n * },\n * media: []\n * };\n * option = {\n * baseOption: {\n * timeline: {},\n * series: [],\n * },\n * options: []\n * media: []\n * };\n * option = {\n * // ec3 compat ec2: allow (only) `timeline` declared\n * // outside baseOption. Keep this setting for compat.\n * timeline: {},\n * baseOption: {\n * series: [],\n * },\n * options: [],\n * media: []\n * };\n * ```\n */\n\n\nfunction parseRawOption( // `rawOption` May be modified\nrawOption, optionPreprocessorFuncs, isNew) {\n var mediaList = [];\n var mediaDefault;\n var baseOption;\n var declaredBaseOption = rawOption.baseOption; // Compatible with ec2, [RAW_OPTION_PATTERNS] above.\n\n var timelineOnRoot = rawOption.timeline;\n var timelineOptionsOnRoot = rawOption.options;\n var mediaOnRoot = rawOption.media;\n var hasMedia = !!rawOption.media;\n var hasTimeline = !!(timelineOptionsOnRoot || timelineOnRoot || declaredBaseOption && declaredBaseOption.timeline);\n\n if (declaredBaseOption) {\n baseOption = declaredBaseOption; // For merge option.\n\n if (!baseOption.timeline) {\n baseOption.timeline = timelineOnRoot;\n }\n } // For convenience, enable to use the root option as the `baseOption`:\n // `{ ...normalOptionProps, media: [{ ... }, { ... }] }`\n else {\n if (hasTimeline || hasMedia) {\n rawOption.options = rawOption.media = null;\n }\n\n baseOption = rawOption;\n }\n\n if (hasMedia) {\n if (isArray(mediaOnRoot)) {\n each(mediaOnRoot, function (singleMedia) {\n if (process.env.NODE_ENV !== 'production') {\n // Real case of wrong config.\n if (singleMedia && !singleMedia.option && isObject(singleMedia.query) && isObject(singleMedia.query.option)) {\n error('Illegal media option. Must be like { media: [ { query: {}, option: {} } ] }');\n }\n }\n\n if (singleMedia && singleMedia.option) {\n if (singleMedia.query) {\n mediaList.push(singleMedia);\n } else if (!mediaDefault) {\n // Use the first media default.\n mediaDefault = singleMedia;\n }\n }\n });\n } else {\n if (process.env.NODE_ENV !== 'production') {\n // Real case of wrong config.\n error('Illegal media option. Must be an array. Like { media: [ {...}, {...} ] }');\n }\n }\n }\n\n doPreprocess(baseOption);\n each(timelineOptionsOnRoot, function (option) {\n return doPreprocess(option);\n });\n each(mediaList, function (media) {\n return doPreprocess(media.option);\n });\n\n function doPreprocess(option) {\n each(optionPreprocessorFuncs, function (preProcess) {\n preProcess(option, isNew);\n });\n }\n\n return {\n baseOption: baseOption,\n timelineOptions: timelineOptionsOnRoot || [],\n mediaDefault: mediaDefault,\n mediaList: mediaList\n };\n}\n/**\n * @see \n * Support: width, height, aspectRatio\n * Can use max or min as prefix.\n */\n\n\nfunction applyMediaQuery(query, ecWidth, ecHeight) {\n var realMap = {\n width: ecWidth,\n height: ecHeight,\n aspectratio: ecWidth / ecHeight // lower case for convenience.\n\n };\n var applicable = true;\n each(query, function (value, attr) {\n var matched = attr.match(QUERY_REG);\n\n if (!matched || !matched[1] || !matched[2]) {\n return;\n }\n\n var operator = matched[1];\n var realAttr = matched[2].toLowerCase();\n\n if (!compare(realMap[realAttr], value, operator)) {\n applicable = false;\n }\n });\n return applicable;\n}\n\nfunction compare(real, expect, operator) {\n if (operator === 'min') {\n return real >= expect;\n } else if (operator === 'max') {\n return real <= expect;\n } else {\n // Equals\n return real === expect;\n }\n}\n\nfunction indicesEquals(indices1, indices2) {\n // indices is always order by asc and has only finite number.\n return indices1.join(',') === indices2.join(',');\n}\n/**\n * Consider case:\n * `chart.setOption(opt1);`\n * Then user do some interaction like dataZoom, dataView changing.\n * `chart.setOption(opt2);`\n * Then user press 'reset button' in toolbox.\n *\n * After doing that all of the interaction effects should be reset, the\n * chart should be the same as the result of invoke\n * `chart.setOption(opt1); chart.setOption(opt2);`.\n *\n * Although it is not able ensure that\n * `chart.setOption(opt1); chart.setOption(opt2);` is equivalents to\n * `chart.setOption(merge(opt1, opt2));` exactly,\n * this might be the only simple way to implement that feature.\n *\n * MEMO: We've considered some other approaches:\n * 1. Each model handles its self restoration but not uniform treatment.\n * (Too complex in logic and error-prone)\n * 2. Use a shadow ecModel. (Performance expensive)\n *\n * FIXME: A possible solution:\n * Add a extra level of model for each component model. The inheritance chain would be:\n * ecModel <- componentModel <- componentActionModel <- dataItemModel\n * And all of the actions can only modify the `componentActionModel` rather than\n * `componentModel`. `setOption` will only modify the `ecModel` and `componentModel`.\n * When \"resotre\" action triggered, model from `componentActionModel` will be discarded\n * instead of recreating the \"ecModel\" from the \"_optionBackup\".\n */\n// function mergeToBackupOption(\n// fakeCmptsMap: FakeComponentsMap,\n// // `tarOption` Can be null/undefined, means init\n// tarOption: ECUnitOption,\n// newOption: ECUnitOption,\n// // Can be null/undefined\n// opt: InnerSetOptionOpts\n// ): void {\n// newOption = newOption || {} as ECUnitOption;\n// const notInit = !!tarOption;\n// each(newOption, function (newOptsInMainType, mainType) {\n// if (newOptsInMainType == null) {\n// return;\n// }\n// if (!ComponentModel.hasClass(mainType)) {\n// if (tarOption) {\n// tarOption[mainType] = merge(tarOption[mainType], newOptsInMainType, true);\n// }\n// }\n// else {\n// const oldTarOptsInMainType = notInit ? normalizeToArray(tarOption[mainType]) : null;\n// const oldFakeCmptsInMainType = fakeCmptsMap.get(mainType) || [];\n// const resultTarOptsInMainType = notInit ? (tarOption[mainType] = [] as ComponentOption[]) : null;\n// const resultFakeCmptsInMainType = fakeCmptsMap.set(mainType, []);\n// const mappingResult = mappingToExists(\n// oldFakeCmptsInMainType,\n// normalizeToArray(newOptsInMainType),\n// (opt && opt.replaceMergeMainTypeMap.get(mainType)) ? 'replaceMerge' : 'normalMerge'\n// );\n// setComponentTypeToKeyInfo(mappingResult, mainType, ComponentModel as ComponentModelConstructor);\n// each(mappingResult, function (resultItem, index) {\n// // The same logic as `Global.ts#_mergeOption`.\n// let fakeCmpt = resultItem.existing;\n// const newOption = resultItem.newOption;\n// const keyInfo = resultItem.keyInfo;\n// let fakeCmptOpt;\n// if (!newOption) {\n// fakeCmptOpt = oldTarOptsInMainType[index];\n// }\n// else {\n// if (fakeCmpt && fakeCmpt.subType === keyInfo.subType) {\n// fakeCmpt.name = keyInfo.name;\n// if (notInit) {\n// fakeCmptOpt = merge(oldTarOptsInMainType[index], newOption, true);\n// }\n// }\n// else {\n// fakeCmpt = extend({}, keyInfo);\n// if (notInit) {\n// fakeCmptOpt = clone(newOption);\n// }\n// }\n// }\n// if (fakeCmpt) {\n// notInit && resultTarOptsInMainType.push(fakeCmptOpt);\n// resultFakeCmptsInMainType.push(fakeCmpt);\n// }\n// else {\n// notInit && resultTarOptsInMainType.push(void 0);\n// resultFakeCmptsInMainType.push(void 0);\n// }\n// });\n// }\n// });\n// }\n\n\nexport default OptionManager;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport env from 'zrender/lib/core/env.js';\nimport * as modelUtil from '../util/model.js';\nimport ComponentModel from './Component.js';\nimport { PaletteMixin } from './mixin/palette.js';\nimport { DataFormatMixin } from '../model/mixin/dataFormat.js';\nimport { getLayoutParams, mergeLayoutParam, fetchLayoutMode } from '../util/layout.js';\nimport { createTask } from '../core/task.js';\nimport { mountExtend } from '../util/clazz.js';\nimport { SourceManager } from '../data/helper/sourceManager.js';\nimport { defaultSeriesFormatTooltip } from '../component/tooltip/seriesFormatTooltip.js';\nvar inner = modelUtil.makeInner();\n\nfunction getSelectionKey(data, dataIndex) {\n return data.getName(dataIndex) || data.getId(dataIndex);\n}\n\nexport var SERIES_UNIVERSAL_TRANSITION_PROP = '__universalTransitionEnabled';\n\nvar SeriesModel =\n/** @class */\nfunction (_super) {\n __extends(SeriesModel, _super);\n\n function SeriesModel() {\n // [Caution]: Because this class or desecendants can be used as `XXX.extend(subProto)`,\n // the class members must not be initialized in constructor or declaration place.\n // Otherwise there is bad case:\n // class A {xxx = 1;}\n // enableClassExtend(A);\n // class B extends A {}\n // var C = B.extend({xxx: 5});\n // var c = new C();\n // console.log(c.xxx); // expect 5 but always 1.\n var _this = _super !== null && _super.apply(this, arguments) || this; // ---------------------------------------\n // Props about data selection\n // ---------------------------------------\n\n\n _this._selectedDataIndicesMap = {};\n return _this;\n }\n\n SeriesModel.prototype.init = function (option, parentModel, ecModel) {\n this.seriesIndex = this.componentIndex;\n this.dataTask = createTask({\n count: dataTaskCount,\n reset: dataTaskReset\n });\n this.dataTask.context = {\n model: this\n };\n this.mergeDefaultAndTheme(option, ecModel);\n var sourceManager = inner(this).sourceManager = new SourceManager(this);\n sourceManager.prepareSource();\n var data = this.getInitialData(option, ecModel);\n wrapData(data, this);\n this.dataTask.context.data = data;\n\n if (process.env.NODE_ENV !== 'production') {\n zrUtil.assert(data, 'getInitialData returned invalid data.');\n }\n\n inner(this).dataBeforeProcessed = data; // If we reverse the order (make data firstly, and then make\n // dataBeforeProcessed by cloneShallow), cloneShallow will\n // cause data.graph.data !== data when using\n // module:echarts/data/Graph or module:echarts/data/Tree.\n // See module:echarts/data/helper/linkSeriesData\n // Theoretically, it is unreasonable to call `seriesModel.getData()` in the model\n // init or merge stage, because the data can be restored. So we do not `restoreData`\n // and `setData` here, which forbids calling `seriesModel.getData()` in this stage.\n // Call `seriesModel.getRawData()` instead.\n // this.restoreData();\n\n autoSeriesName(this);\n\n this._initSelectedMapFromData(data);\n };\n /**\n * Util for merge default and theme to option\n */\n\n\n SeriesModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\n var layoutMode = fetchLayoutMode(this);\n var inputPositionParams = layoutMode ? getLayoutParams(option) : {}; // Backward compat: using subType on theme.\n // But if name duplicate between series subType\n // (for example: parallel) add component mainType,\n // add suffix 'Series'.\n\n var themeSubType = this.subType;\n\n if (ComponentModel.hasClass(themeSubType)) {\n themeSubType += 'Series';\n }\n\n zrUtil.merge(option, ecModel.getTheme().get(this.subType));\n zrUtil.merge(option, this.getDefaultOption()); // Default label emphasis `show`\n\n modelUtil.defaultEmphasis(option, 'label', ['show']);\n this.fillDataTextStyle(option.data);\n\n if (layoutMode) {\n mergeLayoutParam(option, inputPositionParams, layoutMode);\n }\n };\n\n SeriesModel.prototype.mergeOption = function (newSeriesOption, ecModel) {\n // this.settingTask.dirty();\n newSeriesOption = zrUtil.merge(this.option, newSeriesOption, true);\n this.fillDataTextStyle(newSeriesOption.data);\n var layoutMode = fetchLayoutMode(this);\n\n if (layoutMode) {\n mergeLayoutParam(this.option, newSeriesOption, layoutMode);\n }\n\n var sourceManager = inner(this).sourceManager;\n sourceManager.dirty();\n sourceManager.prepareSource();\n var data = this.getInitialData(newSeriesOption, ecModel);\n wrapData(data, this);\n this.dataTask.dirty();\n this.dataTask.context.data = data;\n inner(this).dataBeforeProcessed = data;\n autoSeriesName(this);\n\n this._initSelectedMapFromData(data);\n };\n\n SeriesModel.prototype.fillDataTextStyle = function (data) {\n // Default data label emphasis `show`\n // FIXME Tree structure data ?\n // FIXME Performance ?\n if (data && !zrUtil.isTypedArray(data)) {\n var props = ['show'];\n\n for (var i = 0; i < data.length; i++) {\n if (data[i] && data[i].label) {\n modelUtil.defaultEmphasis(data[i], 'label', props);\n }\n }\n }\n };\n /**\n * Init a data structure from data related option in series\n * Must be overridden.\n */\n\n\n SeriesModel.prototype.getInitialData = function (option, ecModel) {\n return;\n };\n /**\n * Append data to list\n */\n\n\n SeriesModel.prototype.appendData = function (params) {\n // FIXME ???\n // (1) If data from dataset, forbidden append.\n // (2) support append data of dataset.\n var data = this.getRawData();\n data.appendData(params.data);\n };\n /**\n * Consider some method like `filter`, `map` need make new data,\n * We should make sure that `seriesModel.getData()` get correct\n * data in the stream procedure. So we fetch data from upstream\n * each time `task.perform` called.\n */\n\n\n SeriesModel.prototype.getData = function (dataType) {\n var task = getCurrentTask(this);\n\n if (task) {\n var data = task.context.data;\n return dataType == null ? data : data.getLinkedData(dataType);\n } else {\n // When series is not alive (that may happen when click toolbox\n // restore or setOption with not merge mode), series data may\n // be still need to judge animation or something when graphic\n // elements want to know whether fade out.\n return inner(this).data;\n }\n };\n\n SeriesModel.prototype.getAllData = function () {\n var mainData = this.getData();\n return mainData && mainData.getLinkedDataAll ? mainData.getLinkedDataAll() : [{\n data: mainData\n }];\n };\n\n SeriesModel.prototype.setData = function (data) {\n var task = getCurrentTask(this);\n\n if (task) {\n var context = task.context; // Consider case: filter, data sample.\n // FIXME:TS never used, so comment it\n // if (context.data !== data && task.modifyOutputEnd) {\n // task.setOutputEnd(data.count());\n // }\n\n context.outputData = data; // Caution: setData should update context.data,\n // Because getData may be called multiply in a\n // single stage and expect to get the data just\n // set. (For example, AxisProxy, x y both call\n // getData and setDate sequentially).\n // So the context.data should be fetched from\n // upstream each time when a stage starts to be\n // performed.\n\n if (task !== this.dataTask) {\n context.data = data;\n }\n }\n\n inner(this).data = data;\n };\n\n SeriesModel.prototype.getEncode = function () {\n var encode = this.get('encode', true);\n\n if (encode) {\n return zrUtil.createHashMap(encode);\n }\n };\n\n SeriesModel.prototype.getSourceManager = function () {\n return inner(this).sourceManager;\n };\n\n SeriesModel.prototype.getSource = function () {\n return this.getSourceManager().getSource();\n };\n /**\n * Get data before processed\n */\n\n\n SeriesModel.prototype.getRawData = function () {\n return inner(this).dataBeforeProcessed;\n };\n\n SeriesModel.prototype.getColorBy = function () {\n var colorBy = this.get('colorBy');\n return colorBy || 'series';\n };\n\n SeriesModel.prototype.isColorBySeries = function () {\n return this.getColorBy() === 'series';\n };\n /**\n * Get base axis if has coordinate system and has axis.\n * By default use coordSys.getBaseAxis();\n * Can be overridden for some chart.\n * @return {type} description\n */\n\n\n SeriesModel.prototype.getBaseAxis = function () {\n var coordSys = this.coordinateSystem; // @ts-ignore\n\n return coordSys && coordSys.getBaseAxis && coordSys.getBaseAxis();\n };\n /**\n * Default tooltip formatter\n *\n * @param dataIndex\n * @param multipleSeries\n * @param dataType\n * @param renderMode valid values: 'html'(by default) and 'richText'.\n * 'html' is used for rendering tooltip in extra DOM form, and the result\n * string is used as DOM HTML content.\n * 'richText' is used for rendering tooltip in rich text form, for those where\n * DOM operation is not supported.\n * @return formatted tooltip with `html` and `markers`\n * Notice: The override method can also return string\n */\n\n\n SeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n return defaultSeriesFormatTooltip({\n series: this,\n dataIndex: dataIndex,\n multipleSeries: multipleSeries\n });\n };\n\n SeriesModel.prototype.isAnimationEnabled = function () {\n var ecModel = this.ecModel; // Disable animation if using echarts in node but not give ssr flag.\n // In ssr mode, renderToString will generate svg with css animation.\n\n if (env.node && !(ecModel && ecModel.ssr)) {\n return false;\n }\n\n var animationEnabled = this.getShallow('animation');\n\n if (animationEnabled) {\n if (this.getData().count() > this.getShallow('animationThreshold')) {\n animationEnabled = false;\n }\n }\n\n return !!animationEnabled;\n };\n\n SeriesModel.prototype.restoreData = function () {\n this.dataTask.dirty();\n };\n\n SeriesModel.prototype.getColorFromPalette = function (name, scope, requestColorNum) {\n var ecModel = this.ecModel; // PENDING\n\n var color = PaletteMixin.prototype.getColorFromPalette.call(this, name, scope, requestColorNum);\n\n if (!color) {\n color = ecModel.getColorFromPalette(name, scope, requestColorNum);\n }\n\n return color;\n };\n /**\n * Use `data.mapDimensionsAll(coordDim)` instead.\n * @deprecated\n */\n\n\n SeriesModel.prototype.coordDimToDataDim = function (coordDim) {\n return this.getRawData().mapDimensionsAll(coordDim);\n };\n /**\n * Get progressive rendering count each step\n */\n\n\n SeriesModel.prototype.getProgressive = function () {\n return this.get('progressive');\n };\n /**\n * Get progressive rendering count each step\n */\n\n\n SeriesModel.prototype.getProgressiveThreshold = function () {\n return this.get('progressiveThreshold');\n }; // PENGING If selectedMode is null ?\n\n\n SeriesModel.prototype.select = function (innerDataIndices, dataType) {\n this._innerSelect(this.getData(dataType), innerDataIndices);\n };\n\n SeriesModel.prototype.unselect = function (innerDataIndices, dataType) {\n var selectedMap = this.option.selectedMap;\n\n if (!selectedMap) {\n return;\n }\n\n var selectedMode = this.option.selectedMode;\n var data = this.getData(dataType);\n\n if (selectedMode === 'series' || selectedMap === 'all') {\n this.option.selectedMap = {};\n this._selectedDataIndicesMap = {};\n return;\n }\n\n for (var i = 0; i < innerDataIndices.length; i++) {\n var dataIndex = innerDataIndices[i];\n var nameOrId = getSelectionKey(data, dataIndex);\n selectedMap[nameOrId] = false;\n this._selectedDataIndicesMap[nameOrId] = -1;\n }\n };\n\n SeriesModel.prototype.toggleSelect = function (innerDataIndices, dataType) {\n var tmpArr = [];\n\n for (var i = 0; i < innerDataIndices.length; i++) {\n tmpArr[0] = innerDataIndices[i];\n this.isSelected(innerDataIndices[i], dataType) ? this.unselect(tmpArr, dataType) : this.select(tmpArr, dataType);\n }\n };\n\n SeriesModel.prototype.getSelectedDataIndices = function () {\n if (this.option.selectedMap === 'all') {\n return [].slice.call(this.getData().getIndices());\n }\n\n var selectedDataIndicesMap = this._selectedDataIndicesMap;\n var nameOrIds = zrUtil.keys(selectedDataIndicesMap);\n var dataIndices = [];\n\n for (var i = 0; i < nameOrIds.length; i++) {\n var dataIndex = selectedDataIndicesMap[nameOrIds[i]];\n\n if (dataIndex >= 0) {\n dataIndices.push(dataIndex);\n }\n }\n\n return dataIndices;\n };\n\n SeriesModel.prototype.isSelected = function (dataIndex, dataType) {\n var selectedMap = this.option.selectedMap;\n\n if (!selectedMap) {\n return false;\n }\n\n var data = this.getData(dataType);\n return (selectedMap === 'all' || selectedMap[getSelectionKey(data, dataIndex)]) && !data.getItemModel(dataIndex).get(['select', 'disabled']);\n };\n\n SeriesModel.prototype.isUniversalTransitionEnabled = function () {\n if (this[SERIES_UNIVERSAL_TRANSITION_PROP]) {\n return true;\n }\n\n var universalTransitionOpt = this.option.universalTransition; // Quick reject\n\n if (!universalTransitionOpt) {\n return false;\n }\n\n if (universalTransitionOpt === true) {\n return true;\n } // Can be simply 'universalTransition: true'\n\n\n return universalTransitionOpt && universalTransitionOpt.enabled;\n };\n\n SeriesModel.prototype._innerSelect = function (data, innerDataIndices) {\n var _a, _b;\n\n var option = this.option;\n var selectedMode = option.selectedMode;\n var len = innerDataIndices.length;\n\n if (!selectedMode || !len) {\n return;\n }\n\n if (selectedMode === 'series') {\n option.selectedMap = 'all';\n } else if (selectedMode === 'multiple') {\n if (!zrUtil.isObject(option.selectedMap)) {\n option.selectedMap = {};\n }\n\n var selectedMap = option.selectedMap;\n\n for (var i = 0; i < len; i++) {\n var dataIndex = innerDataIndices[i]; // TODO different types of data share same object.\n\n var nameOrId = getSelectionKey(data, dataIndex);\n selectedMap[nameOrId] = true;\n this._selectedDataIndicesMap[nameOrId] = data.getRawIndex(dataIndex);\n }\n } else if (selectedMode === 'single' || selectedMode === true) {\n var lastDataIndex = innerDataIndices[len - 1];\n var nameOrId = getSelectionKey(data, lastDataIndex);\n option.selectedMap = (_a = {}, _a[nameOrId] = true, _a);\n this._selectedDataIndicesMap = (_b = {}, _b[nameOrId] = data.getRawIndex(lastDataIndex), _b);\n }\n };\n\n SeriesModel.prototype._initSelectedMapFromData = function (data) {\n // Ignore select info in data if selectedMap exists.\n // NOTE It's only for legacy usage. edge data is not supported.\n if (this.option.selectedMap) {\n return;\n }\n\n var dataIndices = [];\n\n if (data.hasItemOption) {\n data.each(function (idx) {\n var rawItem = data.getRawDataItem(idx);\n\n if (rawItem && rawItem.selected) {\n dataIndices.push(idx);\n }\n });\n }\n\n if (dataIndices.length > 0) {\n this._innerSelect(data, dataIndices);\n }\n }; // /**\n // * @see {module:echarts/stream/Scheduler}\n // */\n // abstract pipeTask: null\n\n\n SeriesModel.registerClass = function (clz) {\n return ComponentModel.registerClass(clz);\n };\n\n SeriesModel.protoInitialize = function () {\n var proto = SeriesModel.prototype;\n proto.type = 'series.__base__';\n proto.seriesIndex = 0;\n proto.ignoreStyleOnData = false;\n proto.hasSymbolVisual = false;\n proto.defaultSymbol = 'circle'; // Make sure the values can be accessed!\n\n proto.visualStyleAccessPath = 'itemStyle';\n proto.visualDrawType = 'fill';\n }();\n\n return SeriesModel;\n}(ComponentModel);\n\nzrUtil.mixin(SeriesModel, DataFormatMixin);\nzrUtil.mixin(SeriesModel, PaletteMixin);\nmountExtend(SeriesModel, ComponentModel);\n/**\n * MUST be called after `prepareSource` called\n * Here we need to make auto series, especially for auto legend. But we\n * do not modify series.name in option to avoid side effects.\n */\n\nfunction autoSeriesName(seriesModel) {\n // User specified name has higher priority, otherwise it may cause\n // series can not be queried unexpectedly.\n var name = seriesModel.name;\n\n if (!modelUtil.isNameSpecified(seriesModel)) {\n seriesModel.name = getSeriesAutoName(seriesModel) || name;\n }\n}\n\nfunction getSeriesAutoName(seriesModel) {\n var data = seriesModel.getRawData();\n var dataDims = data.mapDimensionsAll('seriesName');\n var nameArr = [];\n zrUtil.each(dataDims, function (dataDim) {\n var dimInfo = data.getDimensionInfo(dataDim);\n dimInfo.displayName && nameArr.push(dimInfo.displayName);\n });\n return nameArr.join(' ');\n}\n\nfunction dataTaskCount(context) {\n return context.model.getRawData().count();\n}\n\nfunction dataTaskReset(context) {\n var seriesModel = context.model;\n seriesModel.setData(seriesModel.getRawData().cloneShallow());\n return dataTaskProgress;\n}\n\nfunction dataTaskProgress(param, context) {\n // Avoid repeat cloneShallow when data just created in reset.\n if (context.outputData && param.end > context.outputData.count()) {\n context.model.getRawData().cloneShallow(context.outputData);\n }\n} // TODO refactor\n\n\nfunction wrapData(data, seriesModel) {\n zrUtil.each(zrUtil.concatArray(data.CHANGABLE_METHODS, data.DOWNSAMPLE_METHODS), function (methodName) {\n data.wrapMethod(methodName, zrUtil.curry(onDataChange, seriesModel));\n });\n}\n\nfunction onDataChange(seriesModel, newList) {\n var task = getCurrentTask(seriesModel);\n\n if (task) {\n // Consider case: filter, selectRange\n task.setOutputEnd((newList || this).count());\n }\n\n return newList;\n}\n\nfunction getCurrentTask(seriesModel) {\n var scheduler = (seriesModel.ecModel || {}).scheduler;\n var pipeline = scheduler && scheduler.getPipeline(seriesModel.uid);\n\n if (pipeline) {\n // When pipline finished, the currrentTask keep the last\n // task (renderTask).\n var task = pipeline.currentTask;\n\n if (task) {\n var agentStubMap = task.agentStubMap;\n\n if (agentStubMap) {\n task = agentStubMap.get(seriesModel.uid);\n }\n }\n\n return task;\n }\n}\n\nexport default SeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar platform = ''; // Navigator not exists in node\n\nif (typeof navigator !== 'undefined') {\n /* global navigator */\n platform = navigator.platform || '';\n}\n\nvar decalColor = 'rgba(0, 0, 0, 0.2)';\nexport default {\n darkMode: 'auto',\n // backgroundColor: 'rgba(0,0,0,0)',\n colorBy: 'series',\n color: ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'],\n gradientColor: ['#f6efa6', '#d88273', '#bf444c'],\n aria: {\n decal: {\n decals: [{\n color: decalColor,\n dashArrayX: [1, 0],\n dashArrayY: [2, 5],\n symbolSize: 1,\n rotation: Math.PI / 6\n }, {\n color: decalColor,\n symbol: 'circle',\n dashArrayX: [[8, 8], [0, 8, 8, 0]],\n dashArrayY: [6, 0],\n symbolSize: 0.8\n }, {\n color: decalColor,\n dashArrayX: [1, 0],\n dashArrayY: [4, 3],\n rotation: -Math.PI / 4\n }, {\n color: decalColor,\n dashArrayX: [[6, 6], [0, 6, 6, 0]],\n dashArrayY: [6, 0]\n }, {\n color: decalColor,\n dashArrayX: [[1, 0], [1, 6]],\n dashArrayY: [1, 0, 6, 0],\n rotation: Math.PI / 4\n }, {\n color: decalColor,\n symbol: 'triangle',\n dashArrayX: [[9, 9], [0, 9, 9, 0]],\n dashArrayY: [7, 2],\n symbolSize: 0.75\n }]\n }\n },\n // If xAxis and yAxis declared, grid is created by default.\n // grid: {},\n textStyle: {\n // color: '#000',\n // decoration: 'none',\n // PENDING\n fontFamily: platform.match(/^Win/) ? 'Microsoft YaHei' : 'sans-serif',\n // fontFamily: 'Arial, Verdana, sans-serif',\n fontSize: 12,\n fontStyle: 'normal',\n fontWeight: 'normal'\n },\n // http://blogs.adobe.com/webplatform/2014/02/24/using-blend-modes-in-html-canvas/\n // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/globalCompositeOperation\n // Default is source-over\n blendMode: null,\n stateAnimation: {\n duration: 300,\n easing: 'cubicOut'\n },\n animation: 'auto',\n animationDuration: 1000,\n animationDurationUpdate: 500,\n animationEasing: 'cubicInOut',\n animationEasingUpdate: 'cubicInOut',\n animationThreshold: 2000,\n // Configuration for progressive/incremental rendering\n progressiveThreshold: 3000,\n progressive: 400,\n // Threshold of if use single hover layer to optimize.\n // It is recommended that `hoverLayerThreshold` is equivalent to or less than\n // `progressiveThreshold`, otherwise hover will cause restart of progressive,\n // which is unexpected.\n // see example .\n hoverLayerThreshold: 3000,\n // See: module:echarts/scale/Time\n useUTC: false\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { createHashMap, assert } from 'zrender/lib/core/util.js';\nimport { isComponentIdInternal } from '../util/model.js';\nvar internalOptionCreatorMap = createHashMap();\nexport function registerInternalOptionCreator(mainType, creator) {\n assert(internalOptionCreatorMap.get(mainType) == null && creator);\n internalOptionCreatorMap.set(mainType, creator);\n}\nexport function concatInternalOptions(ecModel, mainType, newCmptOptionList) {\n var internalOptionCreator = internalOptionCreatorMap.get(mainType);\n\n if (!internalOptionCreator) {\n return newCmptOptionList;\n }\n\n var internalOptions = internalOptionCreator(ecModel);\n\n if (!internalOptions) {\n return newCmptOptionList;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n for (var i = 0; i < internalOptions.length; i++) {\n assert(isComponentIdInternal(internalOptions[i]));\n }\n }\n\n return newCmptOptionList.concat(internalOptions);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport makeStyleMapper from './makeStyleMapper.js';\nexport var AREA_STYLE_KEY_MAP = [['fill', 'color'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['opacity'], ['shadowColor'] // Option decal is in `DecalObject` but style.decal is in `PatternObject`.\n// So do not transfer decal directly.\n];\nvar getAreaStyle = makeStyleMapper(AREA_STYLE_KEY_MAP);\n\nvar AreaStyleMixin =\n/** @class */\nfunction () {\n function AreaStyleMixin() {}\n\n AreaStyleMixin.prototype.getAreaStyle = function (excludes, includes) {\n return getAreaStyle(this, excludes, includes);\n };\n\n return AreaStyleMixin;\n}();\n\n;\nexport { AreaStyleMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { retrieveRawValue } from '../../data/helper/dataProvider.js';\nimport { formatTpl } from '../../util/format.js';\nimport { error, makePrintable } from '../../util/log.js';\nvar DIMENSION_LABEL_REG = /\\{@(.+?)\\}/g;\n\nvar DataFormatMixin =\n/** @class */\nfunction () {\n function DataFormatMixin() {}\n /**\n * Get params for formatter\n */\n\n\n DataFormatMixin.prototype.getDataParams = function (dataIndex, dataType) {\n var data = this.getData(dataType);\n var rawValue = this.getRawValue(dataIndex, dataType);\n var rawDataIndex = data.getRawIndex(dataIndex);\n var name = data.getName(dataIndex);\n var itemOpt = data.getRawDataItem(dataIndex);\n var style = data.getItemVisual(dataIndex, 'style');\n var color = style && style[data.getItemVisual(dataIndex, 'drawType') || 'fill'];\n var borderColor = style && style.stroke;\n var mainType = this.mainType;\n var isSeries = mainType === 'series';\n var userOutput = data.userOutput && data.userOutput.get();\n return {\n componentType: mainType,\n componentSubType: this.subType,\n componentIndex: this.componentIndex,\n seriesType: isSeries ? this.subType : null,\n seriesIndex: this.seriesIndex,\n seriesId: isSeries ? this.id : null,\n seriesName: isSeries ? this.name : null,\n name: name,\n dataIndex: rawDataIndex,\n data: itemOpt,\n dataType: dataType,\n value: rawValue,\n color: color,\n borderColor: borderColor,\n dimensionNames: userOutput ? userOutput.fullDimensions : null,\n encode: userOutput ? userOutput.encode : null,\n // Param name list for mapping `a`, `b`, `c`, `d`, `e`\n $vars: ['seriesName', 'name', 'value']\n };\n };\n /**\n * Format label\n * @param dataIndex\n * @param status 'normal' by default\n * @param dataType\n * @param labelDimIndex Only used in some chart that\n * use formatter in different dimensions, like radar.\n * @param formatter Formatter given outside.\n * @return return null/undefined if no formatter\n */\n\n\n DataFormatMixin.prototype.getFormattedLabel = function (dataIndex, status, dataType, labelDimIndex, formatter, extendParams) {\n status = status || 'normal';\n var data = this.getData(dataType);\n var params = this.getDataParams(dataIndex, dataType);\n\n if (extendParams) {\n params.value = extendParams.interpolatedValue;\n }\n\n if (labelDimIndex != null && zrUtil.isArray(params.value)) {\n params.value = params.value[labelDimIndex];\n }\n\n if (!formatter) {\n var itemModel = data.getItemModel(dataIndex); // @ts-ignore\n\n formatter = itemModel.get(status === 'normal' ? ['label', 'formatter'] : [status, 'label', 'formatter']);\n }\n\n if (zrUtil.isFunction(formatter)) {\n params.status = status;\n params.dimensionIndex = labelDimIndex;\n return formatter(params);\n } else if (zrUtil.isString(formatter)) {\n var str = formatTpl(formatter, params); // Support 'aaa{@[3]}bbb{@product}ccc'.\n // Do not support '}' in dim name util have to.\n\n return str.replace(DIMENSION_LABEL_REG, function (origin, dimStr) {\n var len = dimStr.length;\n var dimLoose = dimStr;\n\n if (dimLoose.charAt(0) === '[' && dimLoose.charAt(len - 1) === ']') {\n dimLoose = +dimLoose.slice(1, len - 1); // Also support: '[]' => 0\n\n if (process.env.NODE_ENV !== 'production') {\n if (isNaN(dimLoose)) {\n error(\"Invalide label formatter: @\" + dimStr + \", only support @[0], @[1], @[2], ...\");\n }\n }\n }\n\n var val = retrieveRawValue(data, dataIndex, dimLoose);\n\n if (extendParams && zrUtil.isArray(extendParams.interpolatedValue)) {\n var dimIndex = data.getDimensionIndex(dimLoose);\n\n if (dimIndex >= 0) {\n val = extendParams.interpolatedValue[dimIndex];\n }\n }\n\n return val != null ? val + '' : '';\n });\n }\n };\n /**\n * Get raw value in option\n */\n\n\n DataFormatMixin.prototype.getRawValue = function (idx, dataType) {\n return retrieveRawValue(this.getData(dataType), idx);\n };\n /**\n * Should be implemented.\n * @param {number} dataIndex\n * @param {boolean} [multipleSeries=false]\n * @param {string} [dataType]\n */\n\n\n DataFormatMixin.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n // Empty function\n return;\n };\n\n return DataFormatMixin;\n}();\n\nexport { DataFormatMixin };\n; // PENDING: previously we accept this type when calling `formatTooltip`,\n// but guess little chance has been used outside. Do we need to backward\n// compat it?\n// type TooltipFormatResultLegacyObject = {\n// // `html` means the markup language text, either in 'html' or 'richText'.\n// // The name `html` is not appropriate because in 'richText' it is not a HTML\n// // string. But still support it for backward compatibility.\n// html: string;\n// markers: Dictionary;\n// };\n\n/**\n * For backward compat, normalize the return from `formatTooltip`.\n */\n\nexport function normalizeTooltipFormatResult(result) {\n var markupText; // let markers: Dictionary;\n\n var markupFragment;\n\n if (zrUtil.isObject(result)) {\n if (result.type) {\n markupFragment = result;\n } else {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('The return type of `formatTooltip` is not supported: ' + makePrintable(result));\n }\n } // else {\n // markupText = (result as TooltipFormatResultLegacyObject).html;\n // markers = (result as TooltipFormatResultLegacyObject).markers;\n // if (markersExisting) {\n // markers = zrUtil.merge(markersExisting, markers);\n // }\n // }\n\n } else {\n markupText = result;\n }\n\n return {\n text: markupText,\n // markers: markers || markersExisting,\n frag: markupFragment\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport makeStyleMapper from './makeStyleMapper.js';\nexport var ITEM_STYLE_KEY_MAP = [['fill', 'color'], ['stroke', 'borderColor'], ['lineWidth', 'borderWidth'], ['opacity'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor'], ['lineDash', 'borderType'], ['lineDashOffset', 'borderDashOffset'], ['lineCap', 'borderCap'], ['lineJoin', 'borderJoin'], ['miterLimit', 'borderMiterLimit'] // Option decal is in `DecalObject` but style.decal is in `PatternObject`.\n// So do not transfer decal directly.\n];\nvar getItemStyle = makeStyleMapper(ITEM_STYLE_KEY_MAP);\n\nvar ItemStyleMixin =\n/** @class */\nfunction () {\n function ItemStyleMixin() {}\n\n ItemStyleMixin.prototype.getItemStyle = function (excludes, includes) {\n return getItemStyle(this, excludes, includes);\n };\n\n return ItemStyleMixin;\n}();\n\nexport { ItemStyleMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport makeStyleMapper from './makeStyleMapper.js';\nexport var LINE_STYLE_KEY_MAP = [['lineWidth', 'width'], ['stroke', 'color'], ['opacity'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor'], ['lineDash', 'type'], ['lineDashOffset', 'dashOffset'], ['lineCap', 'cap'], ['lineJoin', 'join'], ['miterLimit'] // Option decal is in `DecalObject` but style.decal is in `PatternObject`.\n// So do not transfer decal directly.\n];\nvar getLineStyle = makeStyleMapper(LINE_STYLE_KEY_MAP);\n\nvar LineStyleMixin =\n/** @class */\nfunction () {\n function LineStyleMixin() {}\n\n LineStyleMixin.prototype.getLineStyle = function (excludes) {\n return getLineStyle(this, excludes);\n };\n\n return LineStyleMixin;\n}();\n\n;\nexport { LineStyleMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// TODO Parse shadow style\n// TODO Only shallow path support\nimport * as zrUtil from 'zrender/lib/core/util.js';\nexport default function makeStyleMapper(properties, ignoreParent) {\n // Normalize\n for (var i = 0; i < properties.length; i++) {\n if (!properties[i][1]) {\n properties[i][1] = properties[i][0];\n }\n }\n\n ignoreParent = ignoreParent || false;\n return function (model, excludes, includes) {\n var style = {};\n\n for (var i = 0; i < properties.length; i++) {\n var propName = properties[i][1];\n\n if (excludes && zrUtil.indexOf(excludes, propName) >= 0 || includes && zrUtil.indexOf(includes, propName) < 0) {\n continue;\n }\n\n var val = model.getShallow(propName, ignoreParent);\n\n if (val != null) {\n style[properties[i][0]] = val;\n }\n } // TODO Text or image?\n\n\n return style;\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { makeInner, normalizeToArray } from '../../util/model.js';\nvar innerColor = makeInner();\nvar innerDecal = makeInner();\n\nvar PaletteMixin =\n/** @class */\nfunction () {\n function PaletteMixin() {}\n\n PaletteMixin.prototype.getColorFromPalette = function (name, scope, requestNum) {\n var defaultPalette = normalizeToArray(this.get('color', true));\n var layeredPalette = this.get('colorLayer', true);\n return getFromPalette(this, innerColor, defaultPalette, layeredPalette, name, scope, requestNum);\n };\n\n PaletteMixin.prototype.clearColorPalette = function () {\n clearPalette(this, innerColor);\n };\n\n return PaletteMixin;\n}();\n\nexport function getDecalFromPalette(ecModel, name, scope, requestNum) {\n var defaultDecals = normalizeToArray(ecModel.get(['aria', 'decal', 'decals']));\n return getFromPalette(ecModel, innerDecal, defaultDecals, null, name, scope, requestNum);\n}\n\nfunction getNearestPalette(palettes, requestColorNum) {\n var paletteNum = palettes.length; // TODO palettes must be in order\n\n for (var i = 0; i < paletteNum; i++) {\n if (palettes[i].length > requestColorNum) {\n return palettes[i];\n }\n }\n\n return palettes[paletteNum - 1];\n}\n/**\n * @param name MUST NOT be null/undefined. Otherwise call this function\n * twise with the same parameters will get different result.\n * @param scope default this.\n * @return Can be null/undefined\n */\n\n\nfunction getFromPalette(that, inner, defaultPalette, layeredPalette, name, scope, requestNum) {\n scope = scope || that;\n var scopeFields = inner(scope);\n var paletteIdx = scopeFields.paletteIdx || 0;\n var paletteNameMap = scopeFields.paletteNameMap = scopeFields.paletteNameMap || {}; // Use `hasOwnProperty` to avoid conflict with Object.prototype.\n\n if (paletteNameMap.hasOwnProperty(name)) {\n return paletteNameMap[name];\n }\n\n var palette = requestNum == null || !layeredPalette ? defaultPalette : getNearestPalette(layeredPalette, requestNum); // In case can't find in layered color palette.\n\n palette = palette || defaultPalette;\n\n if (!palette || !palette.length) {\n return;\n }\n\n var pickedPaletteItem = palette[paletteIdx];\n\n if (name) {\n paletteNameMap[name] = pickedPaletteItem;\n }\n\n scopeFields.paletteIdx = (paletteIdx + 1) % palette.length;\n return pickedPaletteItem;\n}\n\nfunction clearPalette(that, inner) {\n inner(that).paletteIdx = 0;\n inner(that).paletteNameMap = {};\n}\n\nexport { PaletteMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { getFont } from '../../label/labelStyle.js';\nimport ZRText from 'zrender/lib/graphic/Text.js';\nvar PATH_COLOR = ['textStyle', 'color'];\nvar textStyleParams = ['fontStyle', 'fontWeight', 'fontSize', 'fontFamily', 'padding', 'lineHeight', 'rich', 'width', 'height', 'overflow']; // TODO Performance improvement?\n\nvar tmpText = new ZRText();\n\nvar TextStyleMixin =\n/** @class */\nfunction () {\n function TextStyleMixin() {}\n /**\n * Get color property or get color from option.textStyle.color\n */\n // TODO Callback\n\n\n TextStyleMixin.prototype.getTextColor = function (isEmphasis) {\n var ecModel = this.ecModel;\n return this.getShallow('color') || (!isEmphasis && ecModel ? ecModel.get(PATH_COLOR) : null);\n };\n /**\n * Create font string from fontStyle, fontWeight, fontSize, fontFamily\n * @return {string}\n */\n\n\n TextStyleMixin.prototype.getFont = function () {\n return getFont({\n fontStyle: this.getShallow('fontStyle'),\n fontWeight: this.getShallow('fontWeight'),\n fontSize: this.getShallow('fontSize'),\n fontFamily: this.getShallow('fontFamily')\n }, this.ecModel);\n };\n\n TextStyleMixin.prototype.getTextRect = function (text) {\n var style = {\n text: text,\n verticalAlign: this.getShallow('verticalAlign') || this.getShallow('baseline')\n };\n\n for (var i = 0; i < textStyleParams.length; i++) {\n style[textStyleParams[i]] = this.getShallow(textStyleParams[i]);\n }\n\n tmpText.useStyle(style);\n tmpText.update();\n return tmpText.getBoundingRect();\n };\n\n return TextStyleMixin;\n}();\n\n;\nexport default TextStyleMixin;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Helper for model references.\n * There are many manners to refer axis/coordSys.\n */\n// TODO\n// merge relevant logic to this file?\n// check: \"modelHelper\" of tooltip and \"BrushTargetManager\".\nimport { createHashMap, retrieve, each } from 'zrender/lib/core/util.js';\nimport { SINGLE_REFERRING } from '../util/model.js';\n/**\n * @class\n * For example:\n * {\n * coordSysName: 'cartesian2d',\n * coordSysDims: ['x', 'y', ...],\n * axisMap: HashMap({\n * x: xAxisModel,\n * y: yAxisModel\n * }),\n * categoryAxisMap: HashMap({\n * x: xAxisModel,\n * y: undefined\n * }),\n * // The index of the first category axis in `coordSysDims`.\n * // `null/undefined` means no category axis exists.\n * firstCategoryDimIndex: 1,\n * // To replace user specified encode.\n * }\n */\n\nvar CoordSysInfo =\n/** @class */\nfunction () {\n function CoordSysInfo(coordSysName) {\n this.coordSysDims = [];\n this.axisMap = createHashMap();\n this.categoryAxisMap = createHashMap();\n this.coordSysName = coordSysName;\n }\n\n return CoordSysInfo;\n}();\n\nexport function getCoordSysInfoBySeries(seriesModel) {\n var coordSysName = seriesModel.get('coordinateSystem');\n var result = new CoordSysInfo(coordSysName);\n var fetch = fetchers[coordSysName];\n\n if (fetch) {\n fetch(seriesModel, result, result.axisMap, result.categoryAxisMap);\n return result;\n }\n}\nvar fetchers = {\n cartesian2d: function (seriesModel, result, axisMap, categoryAxisMap) {\n var xAxisModel = seriesModel.getReferringComponents('xAxis', SINGLE_REFERRING).models[0];\n var yAxisModel = seriesModel.getReferringComponents('yAxis', SINGLE_REFERRING).models[0];\n\n if (process.env.NODE_ENV !== 'production') {\n if (!xAxisModel) {\n throw new Error('xAxis \"' + retrieve(seriesModel.get('xAxisIndex'), seriesModel.get('xAxisId'), 0) + '\" not found');\n }\n\n if (!yAxisModel) {\n throw new Error('yAxis \"' + retrieve(seriesModel.get('xAxisIndex'), seriesModel.get('yAxisId'), 0) + '\" not found');\n }\n }\n\n result.coordSysDims = ['x', 'y'];\n axisMap.set('x', xAxisModel);\n axisMap.set('y', yAxisModel);\n\n if (isCategory(xAxisModel)) {\n categoryAxisMap.set('x', xAxisModel);\n result.firstCategoryDimIndex = 0;\n }\n\n if (isCategory(yAxisModel)) {\n categoryAxisMap.set('y', yAxisModel);\n result.firstCategoryDimIndex == null && (result.firstCategoryDimIndex = 1);\n }\n },\n singleAxis: function (seriesModel, result, axisMap, categoryAxisMap) {\n var singleAxisModel = seriesModel.getReferringComponents('singleAxis', SINGLE_REFERRING).models[0];\n\n if (process.env.NODE_ENV !== 'production') {\n if (!singleAxisModel) {\n throw new Error('singleAxis should be specified.');\n }\n }\n\n result.coordSysDims = ['single'];\n axisMap.set('single', singleAxisModel);\n\n if (isCategory(singleAxisModel)) {\n categoryAxisMap.set('single', singleAxisModel);\n result.firstCategoryDimIndex = 0;\n }\n },\n polar: function (seriesModel, result, axisMap, categoryAxisMap) {\n var polarModel = seriesModel.getReferringComponents('polar', SINGLE_REFERRING).models[0];\n var radiusAxisModel = polarModel.findAxisModel('radiusAxis');\n var angleAxisModel = polarModel.findAxisModel('angleAxis');\n\n if (process.env.NODE_ENV !== 'production') {\n if (!angleAxisModel) {\n throw new Error('angleAxis option not found');\n }\n\n if (!radiusAxisModel) {\n throw new Error('radiusAxis option not found');\n }\n }\n\n result.coordSysDims = ['radius', 'angle'];\n axisMap.set('radius', radiusAxisModel);\n axisMap.set('angle', angleAxisModel);\n\n if (isCategory(radiusAxisModel)) {\n categoryAxisMap.set('radius', radiusAxisModel);\n result.firstCategoryDimIndex = 0;\n }\n\n if (isCategory(angleAxisModel)) {\n categoryAxisMap.set('angle', angleAxisModel);\n result.firstCategoryDimIndex == null && (result.firstCategoryDimIndex = 1);\n }\n },\n geo: function (seriesModel, result, axisMap, categoryAxisMap) {\n result.coordSysDims = ['lng', 'lat'];\n },\n parallel: function (seriesModel, result, axisMap, categoryAxisMap) {\n var ecModel = seriesModel.ecModel;\n var parallelModel = ecModel.getComponent('parallel', seriesModel.get('parallelIndex'));\n var coordSysDims = result.coordSysDims = parallelModel.dimensions.slice();\n each(parallelModel.parallelAxisIndex, function (axisIndex, index) {\n var axisModel = ecModel.getComponent('parallelAxis', axisIndex);\n var axisDim = coordSysDims[index];\n axisMap.set(axisDim, axisModel);\n\n if (isCategory(axisModel)) {\n categoryAxisMap.set(axisDim, axisModel);\n\n if (result.firstCategoryDimIndex == null) {\n result.firstCategoryDimIndex = index;\n }\n }\n });\n }\n};\n\nfunction isCategory(axisModel) {\n return axisModel.get('type') === 'category';\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { each, isArray, isObject, isTypedArray, defaults } from 'zrender/lib/core/util.js';\nimport compatStyle from './helper/compatStyle.js';\nimport { normalizeToArray } from '../util/model.js';\nimport { deprecateLog, deprecateReplaceLog } from '../util/log.js';\n\nfunction get(opt, path) {\n var pathArr = path.split(',');\n var obj = opt;\n\n for (var i = 0; i < pathArr.length; i++) {\n obj = obj && obj[pathArr[i]];\n\n if (obj == null) {\n break;\n }\n }\n\n return obj;\n}\n\nfunction set(opt, path, val, overwrite) {\n var pathArr = path.split(',');\n var obj = opt;\n var key;\n var i = 0;\n\n for (; i < pathArr.length - 1; i++) {\n key = pathArr[i];\n\n if (obj[key] == null) {\n obj[key] = {};\n }\n\n obj = obj[key];\n }\n\n if (overwrite || obj[pathArr[i]] == null) {\n obj[pathArr[i]] = val;\n }\n}\n\nfunction compatLayoutProperties(option) {\n option && each(LAYOUT_PROPERTIES, function (prop) {\n if (prop[0] in option && !(prop[1] in option)) {\n option[prop[1]] = option[prop[0]];\n }\n });\n}\n\nvar LAYOUT_PROPERTIES = [['x', 'left'], ['y', 'top'], ['x2', 'right'], ['y2', 'bottom']];\nvar COMPATITABLE_COMPONENTS = ['grid', 'geo', 'parallel', 'legend', 'toolbox', 'title', 'visualMap', 'dataZoom', 'timeline'];\nvar BAR_ITEM_STYLE_MAP = [['borderRadius', 'barBorderRadius'], ['borderColor', 'barBorderColor'], ['borderWidth', 'barBorderWidth']];\n\nfunction compatBarItemStyle(option) {\n var itemStyle = option && option.itemStyle;\n\n if (itemStyle) {\n for (var i = 0; i < BAR_ITEM_STYLE_MAP.length; i++) {\n var oldName = BAR_ITEM_STYLE_MAP[i][1];\n var newName = BAR_ITEM_STYLE_MAP[i][0];\n\n if (itemStyle[oldName] != null) {\n itemStyle[newName] = itemStyle[oldName];\n\n if (process.env.NODE_ENV !== 'production') {\n deprecateReplaceLog(oldName, newName);\n }\n }\n }\n }\n}\n\nfunction compatPieLabel(option) {\n if (!option) {\n return;\n }\n\n if (option.alignTo === 'edge' && option.margin != null && option.edgeDistance == null) {\n if (process.env.NODE_ENV !== 'production') {\n deprecateReplaceLog('label.margin', 'label.edgeDistance', 'pie');\n }\n\n option.edgeDistance = option.margin;\n }\n}\n\nfunction compatSunburstState(option) {\n if (!option) {\n return;\n }\n\n if (option.downplay && !option.blur) {\n option.blur = option.downplay;\n\n if (process.env.NODE_ENV !== 'production') {\n deprecateReplaceLog('downplay', 'blur', 'sunburst');\n }\n }\n}\n\nfunction compatGraphFocus(option) {\n if (!option) {\n return;\n }\n\n if (option.focusNodeAdjacency != null) {\n option.emphasis = option.emphasis || {};\n\n if (option.emphasis.focus == null) {\n if (process.env.NODE_ENV !== 'production') {\n deprecateReplaceLog('focusNodeAdjacency', 'emphasis: { focus: \\'adjacency\\'}', 'graph/sankey');\n }\n\n option.emphasis.focus = 'adjacency';\n }\n }\n}\n\nfunction traverseTree(data, cb) {\n if (data) {\n for (var i = 0; i < data.length; i++) {\n cb(data[i]);\n data[i] && traverseTree(data[i].children, cb);\n }\n }\n}\n\nexport default function globalBackwardCompat(option, isTheme) {\n compatStyle(option, isTheme); // Make sure series array for model initialization.\n\n option.series = normalizeToArray(option.series);\n each(option.series, function (seriesOpt) {\n if (!isObject(seriesOpt)) {\n return;\n }\n\n var seriesType = seriesOpt.type;\n\n if (seriesType === 'line') {\n if (seriesOpt.clipOverflow != null) {\n seriesOpt.clip = seriesOpt.clipOverflow;\n\n if (process.env.NODE_ENV !== 'production') {\n deprecateReplaceLog('clipOverflow', 'clip', 'line');\n }\n }\n } else if (seriesType === 'pie' || seriesType === 'gauge') {\n if (seriesOpt.clockWise != null) {\n seriesOpt.clockwise = seriesOpt.clockWise;\n\n if (process.env.NODE_ENV !== 'production') {\n deprecateReplaceLog('clockWise', 'clockwise');\n }\n }\n\n compatPieLabel(seriesOpt.label);\n var data = seriesOpt.data;\n\n if (data && !isTypedArray(data)) {\n for (var i = 0; i < data.length; i++) {\n compatPieLabel(data[i]);\n }\n }\n\n if (seriesOpt.hoverOffset != null) {\n seriesOpt.emphasis = seriesOpt.emphasis || {};\n\n if (seriesOpt.emphasis.scaleSize = null) {\n if (process.env.NODE_ENV !== 'production') {\n deprecateReplaceLog('hoverOffset', 'emphasis.scaleSize');\n }\n\n seriesOpt.emphasis.scaleSize = seriesOpt.hoverOffset;\n }\n }\n } else if (seriesType === 'gauge') {\n var pointerColor = get(seriesOpt, 'pointer.color');\n pointerColor != null && set(seriesOpt, 'itemStyle.color', pointerColor);\n } else if (seriesType === 'bar') {\n compatBarItemStyle(seriesOpt);\n compatBarItemStyle(seriesOpt.backgroundStyle);\n compatBarItemStyle(seriesOpt.emphasis);\n var data = seriesOpt.data;\n\n if (data && !isTypedArray(data)) {\n for (var i = 0; i < data.length; i++) {\n if (typeof data[i] === 'object') {\n compatBarItemStyle(data[i]);\n compatBarItemStyle(data[i] && data[i].emphasis);\n }\n }\n }\n } else if (seriesType === 'sunburst') {\n var highlightPolicy = seriesOpt.highlightPolicy;\n\n if (highlightPolicy) {\n seriesOpt.emphasis = seriesOpt.emphasis || {};\n\n if (!seriesOpt.emphasis.focus) {\n seriesOpt.emphasis.focus = highlightPolicy;\n\n if (process.env.NODE_ENV !== 'production') {\n deprecateReplaceLog('highlightPolicy', 'emphasis.focus', 'sunburst');\n }\n }\n }\n\n compatSunburstState(seriesOpt);\n traverseTree(seriesOpt.data, compatSunburstState);\n } else if (seriesType === 'graph' || seriesType === 'sankey') {\n compatGraphFocus(seriesOpt); // TODO nodes, edges?\n } else if (seriesType === 'map') {\n if (seriesOpt.mapType && !seriesOpt.map) {\n if (process.env.NODE_ENV !== 'production') {\n deprecateReplaceLog('mapType', 'map', 'map');\n }\n\n seriesOpt.map = seriesOpt.mapType;\n }\n\n if (seriesOpt.mapLocation) {\n if (process.env.NODE_ENV !== 'production') {\n deprecateLog('`mapLocation` is not used anymore.');\n }\n\n defaults(seriesOpt, seriesOpt.mapLocation);\n }\n }\n\n if (seriesOpt.hoverAnimation != null) {\n seriesOpt.emphasis = seriesOpt.emphasis || {};\n\n if (seriesOpt.emphasis && seriesOpt.emphasis.scale == null) {\n if (process.env.NODE_ENV !== 'production') {\n deprecateReplaceLog('hoverAnimation', 'emphasis.scale');\n }\n\n seriesOpt.emphasis.scale = seriesOpt.hoverAnimation;\n }\n }\n\n compatLayoutProperties(seriesOpt);\n }); // dataRange has changed to visualMap\n\n if (option.dataRange) {\n option.visualMap = option.dataRange;\n }\n\n each(COMPATITABLE_COMPONENTS, function (componentName) {\n var options = option[componentName];\n\n if (options) {\n if (!isArray(options)) {\n options = [options];\n }\n\n each(options, function (option) {\n compatLayoutProperties(option);\n });\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as modelUtil from '../../util/model.js';\nimport { deprecateLog, deprecateReplaceLog } from '../../util/log.js';\nvar each = zrUtil.each;\nvar isObject = zrUtil.isObject;\nvar POSSIBLE_STYLES = ['areaStyle', 'lineStyle', 'nodeStyle', 'linkStyle', 'chordStyle', 'label', 'labelLine'];\n\nfunction compatEC2ItemStyle(opt) {\n var itemStyleOpt = opt && opt.itemStyle;\n\n if (!itemStyleOpt) {\n return;\n }\n\n for (var i = 0, len = POSSIBLE_STYLES.length; i < len; i++) {\n var styleName = POSSIBLE_STYLES[i];\n var normalItemStyleOpt = itemStyleOpt.normal;\n var emphasisItemStyleOpt = itemStyleOpt.emphasis;\n\n if (normalItemStyleOpt && normalItemStyleOpt[styleName]) {\n if (process.env.NODE_ENV !== 'production') {\n deprecateReplaceLog(\"itemStyle.normal.\" + styleName, styleName);\n }\n\n opt[styleName] = opt[styleName] || {};\n\n if (!opt[styleName].normal) {\n opt[styleName].normal = normalItemStyleOpt[styleName];\n } else {\n zrUtil.merge(opt[styleName].normal, normalItemStyleOpt[styleName]);\n }\n\n normalItemStyleOpt[styleName] = null;\n }\n\n if (emphasisItemStyleOpt && emphasisItemStyleOpt[styleName]) {\n if (process.env.NODE_ENV !== 'production') {\n deprecateReplaceLog(\"itemStyle.emphasis.\" + styleName, \"emphasis.\" + styleName);\n }\n\n opt[styleName] = opt[styleName] || {};\n\n if (!opt[styleName].emphasis) {\n opt[styleName].emphasis = emphasisItemStyleOpt[styleName];\n } else {\n zrUtil.merge(opt[styleName].emphasis, emphasisItemStyleOpt[styleName]);\n }\n\n emphasisItemStyleOpt[styleName] = null;\n }\n }\n}\n\nfunction convertNormalEmphasis(opt, optType, useExtend) {\n if (opt && opt[optType] && (opt[optType].normal || opt[optType].emphasis)) {\n var normalOpt = opt[optType].normal;\n var emphasisOpt = opt[optType].emphasis;\n\n if (normalOpt) {\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line max-len\n deprecateLog(\"'normal' hierarchy in \" + optType + \" has been removed since 4.0. All style properties are configured in \" + optType + \" directly now.\");\n } // Timeline controlStyle has other properties besides normal and emphasis\n\n\n if (useExtend) {\n opt[optType].normal = opt[optType].emphasis = null;\n zrUtil.defaults(opt[optType], normalOpt);\n } else {\n opt[optType] = normalOpt;\n }\n }\n\n if (emphasisOpt) {\n if (process.env.NODE_ENV !== 'production') {\n deprecateLog(optType + \".emphasis has been changed to emphasis.\" + optType + \" since 4.0\");\n }\n\n opt.emphasis = opt.emphasis || {};\n opt.emphasis[optType] = emphasisOpt; // Also compat the case user mix the style and focus together in ec3 style\n // for example: { itemStyle: { normal: {}, emphasis: {focus, shadowBlur} } }\n\n if (emphasisOpt.focus) {\n opt.emphasis.focus = emphasisOpt.focus;\n }\n\n if (emphasisOpt.blurScope) {\n opt.emphasis.blurScope = emphasisOpt.blurScope;\n }\n }\n }\n}\n\nfunction removeEC3NormalStatus(opt) {\n convertNormalEmphasis(opt, 'itemStyle');\n convertNormalEmphasis(opt, 'lineStyle');\n convertNormalEmphasis(opt, 'areaStyle');\n convertNormalEmphasis(opt, 'label');\n convertNormalEmphasis(opt, 'labelLine'); // treemap\n\n convertNormalEmphasis(opt, 'upperLabel'); // graph\n\n convertNormalEmphasis(opt, 'edgeLabel');\n}\n\nfunction compatTextStyle(opt, propName) {\n // Check whether is not object (string\\null\\undefined ...)\n var labelOptSingle = isObject(opt) && opt[propName];\n var textStyle = isObject(labelOptSingle) && labelOptSingle.textStyle;\n\n if (textStyle) {\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line max-len\n deprecateLog(\"textStyle hierarchy in \" + propName + \" has been removed since 4.0. All textStyle properties are configured in \" + propName + \" directly now.\");\n }\n\n for (var i = 0, len = modelUtil.TEXT_STYLE_OPTIONS.length; i < len; i++) {\n var textPropName = modelUtil.TEXT_STYLE_OPTIONS[i];\n\n if (textStyle.hasOwnProperty(textPropName)) {\n labelOptSingle[textPropName] = textStyle[textPropName];\n }\n }\n }\n}\n\nfunction compatEC3CommonStyles(opt) {\n if (opt) {\n removeEC3NormalStatus(opt);\n compatTextStyle(opt, 'label');\n opt.emphasis && compatTextStyle(opt.emphasis, 'label');\n }\n}\n\nfunction processSeries(seriesOpt) {\n if (!isObject(seriesOpt)) {\n return;\n }\n\n compatEC2ItemStyle(seriesOpt);\n removeEC3NormalStatus(seriesOpt);\n compatTextStyle(seriesOpt, 'label'); // treemap\n\n compatTextStyle(seriesOpt, 'upperLabel'); // graph\n\n compatTextStyle(seriesOpt, 'edgeLabel');\n\n if (seriesOpt.emphasis) {\n compatTextStyle(seriesOpt.emphasis, 'label'); // treemap\n\n compatTextStyle(seriesOpt.emphasis, 'upperLabel'); // graph\n\n compatTextStyle(seriesOpt.emphasis, 'edgeLabel');\n }\n\n var markPoint = seriesOpt.markPoint;\n\n if (markPoint) {\n compatEC2ItemStyle(markPoint);\n compatEC3CommonStyles(markPoint);\n }\n\n var markLine = seriesOpt.markLine;\n\n if (markLine) {\n compatEC2ItemStyle(markLine);\n compatEC3CommonStyles(markLine);\n }\n\n var markArea = seriesOpt.markArea;\n\n if (markArea) {\n compatEC3CommonStyles(markArea);\n }\n\n var data = seriesOpt.data; // Break with ec3: if `setOption` again, there may be no `type` in option,\n // then the backward compat based on option type will not be performed.\n\n if (seriesOpt.type === 'graph') {\n data = data || seriesOpt.nodes;\n var edgeData = seriesOpt.links || seriesOpt.edges;\n\n if (edgeData && !zrUtil.isTypedArray(edgeData)) {\n for (var i = 0; i < edgeData.length; i++) {\n compatEC3CommonStyles(edgeData[i]);\n }\n }\n\n zrUtil.each(seriesOpt.categories, function (opt) {\n removeEC3NormalStatus(opt);\n });\n }\n\n if (data && !zrUtil.isTypedArray(data)) {\n for (var i = 0; i < data.length; i++) {\n compatEC3CommonStyles(data[i]);\n }\n } // mark point data\n\n\n markPoint = seriesOpt.markPoint;\n\n if (markPoint && markPoint.data) {\n var mpData = markPoint.data;\n\n for (var i = 0; i < mpData.length; i++) {\n compatEC3CommonStyles(mpData[i]);\n }\n } // mark line data\n\n\n markLine = seriesOpt.markLine;\n\n if (markLine && markLine.data) {\n var mlData = markLine.data;\n\n for (var i = 0; i < mlData.length; i++) {\n if (zrUtil.isArray(mlData[i])) {\n compatEC3CommonStyles(mlData[i][0]);\n compatEC3CommonStyles(mlData[i][1]);\n } else {\n compatEC3CommonStyles(mlData[i]);\n }\n }\n } // Series\n\n\n if (seriesOpt.type === 'gauge') {\n compatTextStyle(seriesOpt, 'axisLabel');\n compatTextStyle(seriesOpt, 'title');\n compatTextStyle(seriesOpt, 'detail');\n } else if (seriesOpt.type === 'treemap') {\n convertNormalEmphasis(seriesOpt.breadcrumb, 'itemStyle');\n zrUtil.each(seriesOpt.levels, function (opt) {\n removeEC3NormalStatus(opt);\n });\n } else if (seriesOpt.type === 'tree') {\n removeEC3NormalStatus(seriesOpt.leaves);\n } // sunburst starts from ec4, so it does not need to compat levels.\n\n}\n\nfunction toArr(o) {\n return zrUtil.isArray(o) ? o : o ? [o] : [];\n}\n\nfunction toObj(o) {\n return (zrUtil.isArray(o) ? o[0] : o) || {};\n}\n\nexport default function globalCompatStyle(option, isTheme) {\n each(toArr(option.series), function (seriesOpt) {\n isObject(seriesOpt) && processSeries(seriesOpt);\n });\n var axes = ['xAxis', 'yAxis', 'radiusAxis', 'angleAxis', 'singleAxis', 'parallelAxis', 'radar'];\n isTheme && axes.push('valueAxis', 'categoryAxis', 'logAxis', 'timeAxis');\n each(axes, function (axisName) {\n each(toArr(option[axisName]), function (axisOpt) {\n if (axisOpt) {\n compatTextStyle(axisOpt, 'axisLabel');\n compatTextStyle(axisOpt.axisPointer, 'label');\n }\n });\n });\n each(toArr(option.parallel), function (parallelOpt) {\n var parallelAxisDefault = parallelOpt && parallelOpt.parallelAxisDefault;\n compatTextStyle(parallelAxisDefault, 'axisLabel');\n compatTextStyle(parallelAxisDefault && parallelAxisDefault.axisPointer, 'label');\n });\n each(toArr(option.calendar), function (calendarOpt) {\n convertNormalEmphasis(calendarOpt, 'itemStyle');\n compatTextStyle(calendarOpt, 'dayLabel');\n compatTextStyle(calendarOpt, 'monthLabel');\n compatTextStyle(calendarOpt, 'yearLabel');\n }); // radar.name.textStyle\n\n each(toArr(option.radar), function (radarOpt) {\n compatTextStyle(radarOpt, 'name'); // Use axisName instead of name because component has name property\n\n if (radarOpt.name && radarOpt.axisName == null) {\n radarOpt.axisName = radarOpt.name;\n delete radarOpt.name;\n\n if (process.env.NODE_ENV !== 'production') {\n deprecateLog('name property in radar component has been changed to axisName');\n }\n }\n\n if (radarOpt.nameGap != null && radarOpt.axisNameGap == null) {\n radarOpt.axisNameGap = radarOpt.nameGap;\n delete radarOpt.nameGap;\n\n if (process.env.NODE_ENV !== 'production') {\n deprecateLog('nameGap property in radar component has been changed to axisNameGap');\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n each(radarOpt.indicator, function (indicatorOpt) {\n if (indicatorOpt.text) {\n deprecateReplaceLog('text', 'name', 'radar.indicator');\n }\n });\n }\n });\n each(toArr(option.geo), function (geoOpt) {\n if (isObject(geoOpt)) {\n compatEC3CommonStyles(geoOpt);\n each(toArr(geoOpt.regions), function (regionObj) {\n compatEC3CommonStyles(regionObj);\n });\n }\n });\n each(toArr(option.timeline), function (timelineOpt) {\n compatEC3CommonStyles(timelineOpt);\n convertNormalEmphasis(timelineOpt, 'label');\n convertNormalEmphasis(timelineOpt, 'itemStyle');\n convertNormalEmphasis(timelineOpt, 'controlStyle', true);\n var data = timelineOpt.data;\n zrUtil.isArray(data) && zrUtil.each(data, function (item) {\n if (zrUtil.isObject(item)) {\n convertNormalEmphasis(item, 'label');\n convertNormalEmphasis(item, 'itemStyle');\n }\n });\n });\n each(toArr(option.toolbox), function (toolboxOpt) {\n convertNormalEmphasis(toolboxOpt, 'iconStyle');\n each(toolboxOpt.feature, function (featureOpt) {\n convertNormalEmphasis(featureOpt, 'iconStyle');\n });\n });\n compatTextStyle(toObj(option.axisPointer), 'label');\n compatTextStyle(toObj(option.tooltip).axisPointer, 'label'); // Clean logs\n // storedLogs = {};\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nexport default function dataFilter(seriesType) {\n return {\n seriesType: seriesType,\n reset: function (seriesModel, ecModel) {\n var legendModels = ecModel.findComponents({\n mainType: 'legend'\n });\n\n if (!legendModels || !legendModels.length) {\n return;\n }\n\n var data = seriesModel.getData();\n data.filterSelf(function (idx) {\n var name = data.getName(idx); // If in any legend component the status is not selected.\n\n for (var i = 0; i < legendModels.length; i++) {\n // @ts-ignore FIXME: LegendModel\n if (!legendModels[i].isSelected(name)) {\n return false;\n }\n }\n\n return true;\n });\n }\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { isFunction, isString } from 'zrender/lib/core/util.js';\nvar samplers = {\n average: function (frame) {\n var sum = 0;\n var count = 0;\n\n for (var i = 0; i < frame.length; i++) {\n if (!isNaN(frame[i])) {\n sum += frame[i];\n count++;\n }\n } // Return NaN if count is 0\n\n\n return count === 0 ? NaN : sum / count;\n },\n sum: function (frame) {\n var sum = 0;\n\n for (var i = 0; i < frame.length; i++) {\n // Ignore NaN\n sum += frame[i] || 0;\n }\n\n return sum;\n },\n max: function (frame) {\n var max = -Infinity;\n\n for (var i = 0; i < frame.length; i++) {\n frame[i] > max && (max = frame[i]);\n } // NaN will cause illegal axis extent.\n\n\n return isFinite(max) ? max : NaN;\n },\n min: function (frame) {\n var min = Infinity;\n\n for (var i = 0; i < frame.length; i++) {\n frame[i] < min && (min = frame[i]);\n } // NaN will cause illegal axis extent.\n\n\n return isFinite(min) ? min : NaN;\n },\n // TODO\n // Median\n nearest: function (frame) {\n return frame[0];\n }\n};\n\nvar indexSampler = function (frame) {\n return Math.round(frame.length / 2);\n};\n\nexport default function dataSample(seriesType) {\n return {\n seriesType: seriesType,\n // FIXME:TS never used, so comment it\n // modifyOutputEnd: true,\n reset: function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n var sampling = seriesModel.get('sampling');\n var coordSys = seriesModel.coordinateSystem;\n var count = data.count(); // Only cartesian2d support down sampling. Disable it when there is few data.\n\n if (count > 10 && coordSys.type === 'cartesian2d' && sampling) {\n var baseAxis = coordSys.getBaseAxis();\n var valueAxis = coordSys.getOtherAxis(baseAxis);\n var extent = baseAxis.getExtent();\n var dpr = api.getDevicePixelRatio(); // Coordinste system has been resized\n\n var size = Math.abs(extent[1] - extent[0]) * (dpr || 1);\n var rate = Math.round(count / size);\n\n if (isFinite(rate) && rate > 1) {\n if (sampling === 'lttb') {\n seriesModel.setData(data.lttbDownSample(data.mapDimension(valueAxis.dim), 1 / rate));\n }\n\n var sampler = void 0;\n\n if (isString(sampling)) {\n sampler = samplers[sampling];\n } else if (isFunction(sampling)) {\n sampler = sampling;\n }\n\n if (sampler) {\n // Only support sample the first dim mapped from value axis.\n seriesModel.setData(data.downSample(data.mapDimension(valueAxis.dim), 1 / rate, sampler, indexSampler));\n }\n }\n }\n }\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { createHashMap, each } from 'zrender/lib/core/util.js';\nimport { addSafe } from '../util/number.js'; // (1) [Caution]: the logic is correct based on the premises:\n// data processing stage is blocked in stream.\n// See \n// (2) Only register once when import repeatedly.\n// Should be executed after series is filtered and before stack calculation.\n\nexport default function dataStack(ecModel) {\n var stackInfoMap = createHashMap();\n ecModel.eachSeries(function (seriesModel) {\n var stack = seriesModel.get('stack'); // Compatible: when `stack` is set as '', do not stack.\n\n if (stack) {\n var stackInfoList = stackInfoMap.get(stack) || stackInfoMap.set(stack, []);\n var data = seriesModel.getData();\n var stackInfo = {\n // Used for calculate axis extent automatically.\n // TODO: Type getCalculationInfo return more specific type?\n stackResultDimension: data.getCalculationInfo('stackResultDimension'),\n stackedOverDimension: data.getCalculationInfo('stackedOverDimension'),\n stackedDimension: data.getCalculationInfo('stackedDimension'),\n stackedByDimension: data.getCalculationInfo('stackedByDimension'),\n isStackedByIndex: data.getCalculationInfo('isStackedByIndex'),\n data: data,\n seriesModel: seriesModel\n }; // If stacked on axis that do not support data stack.\n\n if (!stackInfo.stackedDimension || !(stackInfo.isStackedByIndex || stackInfo.stackedByDimension)) {\n return;\n }\n\n stackInfoList.length && data.setCalculationInfo('stackedOnSeries', stackInfoList[stackInfoList.length - 1].seriesModel);\n stackInfoList.push(stackInfo);\n }\n });\n stackInfoMap.each(calculateStack);\n}\n\nfunction calculateStack(stackInfoList) {\n each(stackInfoList, function (targetStackInfo, idxInStack) {\n var resultVal = [];\n var resultNaN = [NaN, NaN];\n var dims = [targetStackInfo.stackResultDimension, targetStackInfo.stackedOverDimension];\n var targetData = targetStackInfo.data;\n var isStackedByIndex = targetStackInfo.isStackedByIndex;\n var stackStrategy = targetStackInfo.seriesModel.get('stackStrategy') || 'samesign'; // Should not write on raw data, because stack series model list changes\n // depending on legend selection.\n\n targetData.modify(dims, function (v0, v1, dataIndex) {\n var sum = targetData.get(targetStackInfo.stackedDimension, dataIndex); // Consider `connectNulls` of line area, if value is NaN, stackedOver\n // should also be NaN, to draw a appropriate belt area.\n\n if (isNaN(sum)) {\n return resultNaN;\n }\n\n var byValue;\n var stackedDataRawIndex;\n\n if (isStackedByIndex) {\n stackedDataRawIndex = targetData.getRawIndex(dataIndex);\n } else {\n byValue = targetData.get(targetStackInfo.stackedByDimension, dataIndex);\n } // If stackOver is NaN, chart view will render point on value start.\n\n\n var stackedOver = NaN;\n\n for (var j = idxInStack - 1; j >= 0; j--) {\n var stackInfo = stackInfoList[j]; // Has been optimized by inverted indices on `stackedByDimension`.\n\n if (!isStackedByIndex) {\n stackedDataRawIndex = stackInfo.data.rawIndexOf(stackInfo.stackedByDimension, byValue);\n }\n\n if (stackedDataRawIndex >= 0) {\n var val = stackInfo.data.getByRawIndex(stackInfo.stackResultDimension, stackedDataRawIndex); // Considering positive stack, negative stack and empty data\n\n if (stackStrategy === 'all' // single stack group\n || stackStrategy === 'positive' && val > 0 || stackStrategy === 'negative' && val < 0 || stackStrategy === 'samesign' && sum >= 0 && val > 0 // All positive stack\n || stackStrategy === 'samesign' && sum <= 0 && val < 0 // All negative stack\n ) {\n // The sum has to be very small to be affected by the\n // floating arithmetic problem. An incorrect result will probably\n // cause axis min/max to be filtered incorrectly.\n sum = addSafe(sum, val);\n stackedOver = val;\n break;\n }\n }\n }\n\n resultVal[0] = sum;\n resultVal[1] = stackedOver;\n return resultVal;\n });\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { isNumber } from 'zrender/lib/core/util.js';\nexport default function negativeDataFilter(seriesType) {\n return {\n seriesType: seriesType,\n reset: function (seriesModel, ecModel) {\n var data = seriesModel.getData();\n data.filterSelf(function (idx) {\n // handle negative value condition\n var valueDim = data.mapDimension('value');\n var curValue = data.get(valueDim, idx);\n\n if (isNumber(curValue) && !isNaN(curValue) && curValue < 0) {\n return false;\n }\n\n return true;\n });\n }\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport CanvasPainter from 'zrender/lib/canvas/Painter.js';\nexport function install(registers) {\n registers.registerPainter('canvas', CanvasPainter);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport SVGPainter from 'zrender/lib/svg/Painter.js';\nexport function install(registers) {\n registers.registerPainter('svg', SVGPainter);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as numberUtil from '../util/number.js';\nimport * as formatUtil from '../util/format.js';\nimport Scale from './Scale.js';\nimport * as helper from './helper.js';\nvar roundNumber = numberUtil.round;\n\nvar IntervalScale =\n/** @class */\nfunction (_super) {\n __extends(IntervalScale, _super);\n\n function IntervalScale() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = 'interval'; // Step is calculated in adjustExtent.\n\n _this._interval = 0;\n _this._intervalPrecision = 2;\n return _this;\n }\n\n IntervalScale.prototype.parse = function (val) {\n return val;\n };\n\n IntervalScale.prototype.contain = function (val) {\n return helper.contain(val, this._extent);\n };\n\n IntervalScale.prototype.normalize = function (val) {\n return helper.normalize(val, this._extent);\n };\n\n IntervalScale.prototype.scale = function (val) {\n return helper.scale(val, this._extent);\n };\n\n IntervalScale.prototype.setExtent = function (start, end) {\n var thisExtent = this._extent; // start,end may be a Number like '25',so...\n\n if (!isNaN(start)) {\n thisExtent[0] = parseFloat(start);\n }\n\n if (!isNaN(end)) {\n thisExtent[1] = parseFloat(end);\n }\n };\n\n IntervalScale.prototype.unionExtent = function (other) {\n var extent = this._extent;\n other[0] < extent[0] && (extent[0] = other[0]);\n other[1] > extent[1] && (extent[1] = other[1]); // unionExtent may called by it's sub classes\n\n this.setExtent(extent[0], extent[1]);\n };\n\n IntervalScale.prototype.getInterval = function () {\n return this._interval;\n };\n\n IntervalScale.prototype.setInterval = function (interval) {\n this._interval = interval; // Dropped auto calculated niceExtent and use user-set extent.\n // We assume user wants to set both interval, min, max to get a better result.\n\n this._niceExtent = this._extent.slice();\n this._intervalPrecision = helper.getIntervalPrecision(interval);\n };\n /**\n * @param expandToNicedExtent Whether expand the ticks to niced extent.\n */\n\n\n IntervalScale.prototype.getTicks = function (expandToNicedExtent) {\n var interval = this._interval;\n var extent = this._extent;\n var niceTickExtent = this._niceExtent;\n var intervalPrecision = this._intervalPrecision;\n var ticks = []; // If interval is 0, return [];\n\n if (!interval) {\n return ticks;\n } // Consider this case: using dataZoom toolbox, zoom and zoom.\n\n\n var safeLimit = 10000;\n\n if (extent[0] < niceTickExtent[0]) {\n if (expandToNicedExtent) {\n ticks.push({\n value: roundNumber(niceTickExtent[0] - interval, intervalPrecision)\n });\n } else {\n ticks.push({\n value: extent[0]\n });\n }\n }\n\n var tick = niceTickExtent[0];\n\n while (tick <= niceTickExtent[1]) {\n ticks.push({\n value: tick\n }); // Avoid rounding error\n\n tick = roundNumber(tick + interval, intervalPrecision);\n\n if (tick === ticks[ticks.length - 1].value) {\n // Consider out of safe float point, e.g.,\n // -3711126.9907707 + 2e-10 === -3711126.9907707\n break;\n }\n\n if (ticks.length > safeLimit) {\n return [];\n }\n } // Consider this case: the last item of ticks is smaller\n // than niceTickExtent[1] and niceTickExtent[1] === extent[1].\n\n\n var lastNiceTick = ticks.length ? ticks[ticks.length - 1].value : niceTickExtent[1];\n\n if (extent[1] > lastNiceTick) {\n if (expandToNicedExtent) {\n ticks.push({\n value: roundNumber(lastNiceTick + interval, intervalPrecision)\n });\n } else {\n ticks.push({\n value: extent[1]\n });\n }\n }\n\n return ticks;\n };\n\n IntervalScale.prototype.getMinorTicks = function (splitNumber) {\n var ticks = this.getTicks(true);\n var minorTicks = [];\n var extent = this.getExtent();\n\n for (var i = 1; i < ticks.length; i++) {\n var nextTick = ticks[i];\n var prevTick = ticks[i - 1];\n var count = 0;\n var minorTicksGroup = [];\n var interval = nextTick.value - prevTick.value;\n var minorInterval = interval / splitNumber;\n\n while (count < splitNumber - 1) {\n var minorTick = roundNumber(prevTick.value + (count + 1) * minorInterval); // For the first and last interval. The count may be less than splitNumber.\n\n if (minorTick > extent[0] && minorTick < extent[1]) {\n minorTicksGroup.push(minorTick);\n }\n\n count++;\n }\n\n minorTicks.push(minorTicksGroup);\n }\n\n return minorTicks;\n };\n /**\n * @param opt.precision If 'auto', use nice presision.\n * @param opt.pad returns 1.50 but not 1.5 if precision is 2.\n */\n\n\n IntervalScale.prototype.getLabel = function (data, opt) {\n if (data == null) {\n return '';\n }\n\n var precision = opt && opt.precision;\n\n if (precision == null) {\n precision = numberUtil.getPrecision(data.value) || 0;\n } else if (precision === 'auto') {\n // Should be more precise then tick.\n precision = this._intervalPrecision;\n } // (1) If `precision` is set, 12.005 should be display as '12.00500'.\n // (2) Use roundNumber (toFixed) to avoid scientific notation like '3.5e-7'.\n\n\n var dataNum = roundNumber(data.value, precision, true);\n return formatUtil.addCommas(dataNum);\n };\n /**\n * @param splitNumber By default `5`.\n */\n\n\n IntervalScale.prototype.calcNiceTicks = function (splitNumber, minInterval, maxInterval) {\n splitNumber = splitNumber || 5;\n var extent = this._extent;\n var span = extent[1] - extent[0];\n\n if (!isFinite(span)) {\n return;\n } // User may set axis min 0 and data are all negative\n // FIXME If it needs to reverse ?\n\n\n if (span < 0) {\n span = -span;\n extent.reverse();\n }\n\n var result = helper.intervalScaleNiceTicks(extent, splitNumber, minInterval, maxInterval);\n this._intervalPrecision = result.intervalPrecision;\n this._interval = result.interval;\n this._niceExtent = result.niceTickExtent;\n };\n\n IntervalScale.prototype.calcNiceExtent = function (opt) {\n var extent = this._extent; // If extent start and end are same, expand them\n\n if (extent[0] === extent[1]) {\n if (extent[0] !== 0) {\n // Expand extent\n // Note that extents can be both negative. See #13154\n var expandSize = Math.abs(extent[0]); // In the fowllowing case\n // Axis has been fixed max 100\n // Plus data are all 100 and axis extent are [100, 100].\n // Extend to the both side will cause expanded max is larger than fixed max.\n // So only expand to the smaller side.\n\n if (!opt.fixMax) {\n extent[1] += expandSize / 2;\n extent[0] -= expandSize / 2;\n } else {\n extent[0] -= expandSize / 2;\n }\n } else {\n extent[1] = 1;\n }\n }\n\n var span = extent[1] - extent[0]; // If there are no data and extent are [Infinity, -Infinity]\n\n if (!isFinite(span)) {\n extent[0] = 0;\n extent[1] = 1;\n }\n\n this.calcNiceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval); // let extent = this._extent;\n\n var interval = this._interval;\n\n if (!opt.fixMin) {\n extent[0] = roundNumber(Math.floor(extent[0] / interval) * interval);\n }\n\n if (!opt.fixMax) {\n extent[1] = roundNumber(Math.ceil(extent[1] / interval) * interval);\n }\n };\n\n IntervalScale.prototype.setNiceExtent = function (min, max) {\n this._niceExtent = [min, max];\n };\n\n IntervalScale.type = 'interval';\n return IntervalScale;\n}(Scale);\n\nScale.registerClass(IntervalScale);\nexport default IntervalScale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport Scale from './Scale.js';\nimport * as numberUtil from '../util/number.js';\nimport * as scaleHelper from './helper.js'; // Use some method of IntervalScale\n\nimport IntervalScale from './Interval.js';\nvar scaleProto = Scale.prototype; // FIXME:TS refactor: not good to call it directly with `this`?\n\nvar intervalScaleProto = IntervalScale.prototype;\nvar roundingErrorFix = numberUtil.round;\nvar mathFloor = Math.floor;\nvar mathCeil = Math.ceil;\nvar mathPow = Math.pow;\nvar mathLog = Math.log;\n\nvar LogScale =\n/** @class */\nfunction (_super) {\n __extends(LogScale, _super);\n\n function LogScale() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = 'log';\n _this.base = 10;\n _this._originalScale = new IntervalScale(); // FIXME:TS actually used by `IntervalScale`\n\n _this._interval = 0;\n return _this;\n }\n /**\n * @param Whether expand the ticks to niced extent.\n */\n\n\n LogScale.prototype.getTicks = function (expandToNicedExtent) {\n var originalScale = this._originalScale;\n var extent = this._extent;\n var originalExtent = originalScale.getExtent();\n var ticks = intervalScaleProto.getTicks.call(this, expandToNicedExtent);\n return zrUtil.map(ticks, function (tick) {\n var val = tick.value;\n var powVal = numberUtil.round(mathPow(this.base, val)); // Fix #4158\n\n powVal = val === extent[0] && this._fixMin ? fixRoundingError(powVal, originalExtent[0]) : powVal;\n powVal = val === extent[1] && this._fixMax ? fixRoundingError(powVal, originalExtent[1]) : powVal;\n return {\n value: powVal\n };\n }, this);\n };\n\n LogScale.prototype.setExtent = function (start, end) {\n var base = mathLog(this.base); // log(-Infinity) is NaN, so safe guard here\n\n start = mathLog(Math.max(0, start)) / base;\n end = mathLog(Math.max(0, end)) / base;\n intervalScaleProto.setExtent.call(this, start, end);\n };\n /**\n * @return {number} end\n */\n\n\n LogScale.prototype.getExtent = function () {\n var base = this.base;\n var extent = scaleProto.getExtent.call(this);\n extent[0] = mathPow(base, extent[0]);\n extent[1] = mathPow(base, extent[1]); // Fix #4158\n\n var originalScale = this._originalScale;\n var originalExtent = originalScale.getExtent();\n this._fixMin && (extent[0] = fixRoundingError(extent[0], originalExtent[0]));\n this._fixMax && (extent[1] = fixRoundingError(extent[1], originalExtent[1]));\n return extent;\n };\n\n LogScale.prototype.unionExtent = function (extent) {\n this._originalScale.unionExtent(extent);\n\n var base = this.base;\n extent[0] = mathLog(extent[0]) / mathLog(base);\n extent[1] = mathLog(extent[1]) / mathLog(base);\n scaleProto.unionExtent.call(this, extent);\n };\n\n LogScale.prototype.unionExtentFromData = function (data, dim) {\n // TODO\n // filter value that <= 0\n this.unionExtent(data.getApproximateExtent(dim));\n };\n /**\n * Update interval and extent of intervals for nice ticks\n * @param approxTickNum default 10 Given approx tick number\n */\n\n\n LogScale.prototype.calcNiceTicks = function (approxTickNum) {\n approxTickNum = approxTickNum || 10;\n var extent = this._extent;\n var span = extent[1] - extent[0];\n\n if (span === Infinity || span <= 0) {\n return;\n }\n\n var interval = numberUtil.quantity(span);\n var err = approxTickNum / span * interval; // Filter ticks to get closer to the desired count.\n\n if (err <= 0.5) {\n interval *= 10;\n } // Interval should be integer\n\n\n while (!isNaN(interval) && Math.abs(interval) < 1 && Math.abs(interval) > 0) {\n interval *= 10;\n }\n\n var niceExtent = [numberUtil.round(mathCeil(extent[0] / interval) * interval), numberUtil.round(mathFloor(extent[1] / interval) * interval)];\n this._interval = interval;\n this._niceExtent = niceExtent;\n };\n\n LogScale.prototype.calcNiceExtent = function (opt) {\n intervalScaleProto.calcNiceExtent.call(this, opt);\n this._fixMin = opt.fixMin;\n this._fixMax = opt.fixMax;\n };\n\n LogScale.prototype.parse = function (val) {\n return val;\n };\n\n LogScale.prototype.contain = function (val) {\n val = mathLog(val) / mathLog(this.base);\n return scaleHelper.contain(val, this._extent);\n };\n\n LogScale.prototype.normalize = function (val) {\n val = mathLog(val) / mathLog(this.base);\n return scaleHelper.normalize(val, this._extent);\n };\n\n LogScale.prototype.scale = function (val) {\n val = scaleHelper.scale(val, this._extent);\n return mathPow(this.base, val);\n };\n\n LogScale.type = 'log';\n return LogScale;\n}(Scale);\n\nvar proto = LogScale.prototype;\nproto.getMinorTicks = intervalScaleProto.getMinorTicks;\nproto.getLabel = intervalScaleProto.getLabel;\n\nfunction fixRoundingError(val, originalVal) {\n return roundingErrorFix(val, numberUtil.getPrecision(originalVal));\n}\n\nScale.registerClass(LogScale);\nexport default LogScale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\n/**\n * Linear continuous scale\n * http://en.wikipedia.org/wiki/Level_of_measurement\n */\n// FIXME only one data\n\nimport Scale from './Scale.js';\nimport OrdinalMeta from '../data/OrdinalMeta.js';\nimport * as scaleHelper from './helper.js';\nimport { isArray, map, isObject, isString } from 'zrender/lib/core/util.js';\n\nvar OrdinalScale =\n/** @class */\nfunction (_super) {\n __extends(OrdinalScale, _super);\n\n function OrdinalScale(setting) {\n var _this = _super.call(this, setting) || this;\n\n _this.type = 'ordinal';\n\n var ordinalMeta = _this.getSetting('ordinalMeta'); // Caution: Should not use instanceof, consider ec-extensions using\n // import approach to get OrdinalMeta class.\n\n\n if (!ordinalMeta) {\n ordinalMeta = new OrdinalMeta({});\n }\n\n if (isArray(ordinalMeta)) {\n ordinalMeta = new OrdinalMeta({\n categories: map(ordinalMeta, function (item) {\n return isObject(item) ? item.value : item;\n })\n });\n }\n\n _this._ordinalMeta = ordinalMeta;\n _this._extent = _this.getSetting('extent') || [0, ordinalMeta.categories.length - 1];\n return _this;\n }\n\n OrdinalScale.prototype.parse = function (val) {\n // Caution: Math.round(null) will return `0` rather than `NaN`\n if (val == null) {\n return NaN;\n }\n\n return isString(val) ? this._ordinalMeta.getOrdinal(val) // val might be float.\n : Math.round(val);\n };\n\n OrdinalScale.prototype.contain = function (rank) {\n rank = this.parse(rank);\n return scaleHelper.contain(rank, this._extent) && this._ordinalMeta.categories[rank] != null;\n };\n /**\n * Normalize given rank or name to linear [0, 1]\n * @param val raw ordinal number.\n * @return normalized value in [0, 1].\n */\n\n\n OrdinalScale.prototype.normalize = function (val) {\n val = this._getTickNumber(this.parse(val));\n return scaleHelper.normalize(val, this._extent);\n };\n /**\n * @param val normalized value in [0, 1].\n * @return raw ordinal number.\n */\n\n\n OrdinalScale.prototype.scale = function (val) {\n val = Math.round(scaleHelper.scale(val, this._extent));\n return this.getRawOrdinalNumber(val);\n };\n\n OrdinalScale.prototype.getTicks = function () {\n var ticks = [];\n var extent = this._extent;\n var rank = extent[0];\n\n while (rank <= extent[1]) {\n ticks.push({\n value: rank\n });\n rank++;\n }\n\n return ticks;\n };\n\n OrdinalScale.prototype.getMinorTicks = function (splitNumber) {\n // Not support.\n return;\n };\n /**\n * @see `Ordinal['_ordinalNumbersByTick']`\n */\n\n\n OrdinalScale.prototype.setSortInfo = function (info) {\n if (info == null) {\n this._ordinalNumbersByTick = this._ticksByOrdinalNumber = null;\n return;\n }\n\n var infoOrdinalNumbers = info.ordinalNumbers;\n var ordinalsByTick = this._ordinalNumbersByTick = [];\n var ticksByOrdinal = this._ticksByOrdinalNumber = []; // Unnecessary support negative tick in `realtimeSort`.\n\n var tickNum = 0;\n var allCategoryLen = this._ordinalMeta.categories.length;\n\n for (var len = Math.min(allCategoryLen, infoOrdinalNumbers.length); tickNum < len; ++tickNum) {\n var ordinalNumber = infoOrdinalNumbers[tickNum];\n ordinalsByTick[tickNum] = ordinalNumber;\n ticksByOrdinal[ordinalNumber] = tickNum;\n } // Handle that `series.data` only covers part of the `axis.category.data`.\n\n\n var unusedOrdinal = 0;\n\n for (; tickNum < allCategoryLen; ++tickNum) {\n while (ticksByOrdinal[unusedOrdinal] != null) {\n unusedOrdinal++;\n }\n\n ;\n ordinalsByTick.push(unusedOrdinal);\n ticksByOrdinal[unusedOrdinal] = tickNum;\n }\n };\n\n OrdinalScale.prototype._getTickNumber = function (ordinal) {\n var ticksByOrdinalNumber = this._ticksByOrdinalNumber; // also support ordinal out of range of `ordinalMeta.categories.length`,\n // where ordinal numbers are used as tick value directly.\n\n return ticksByOrdinalNumber && ordinal >= 0 && ordinal < ticksByOrdinalNumber.length ? ticksByOrdinalNumber[ordinal] : ordinal;\n };\n /**\n * @usage\n * ```js\n * const ordinalNumber = ordinalScale.getRawOrdinalNumber(tickVal);\n *\n * // case0\n * const rawOrdinalValue = axisModel.getCategories()[ordinalNumber];\n * // case1\n * const rawOrdinalValue = this._ordinalMeta.categories[ordinalNumber];\n * // case2\n * const coord = axis.dataToCoord(ordinalNumber);\n * ```\n *\n * @param {OrdinalNumber} tickNumber index of display\n */\n\n\n OrdinalScale.prototype.getRawOrdinalNumber = function (tickNumber) {\n var ordinalNumbersByTick = this._ordinalNumbersByTick; // tickNumber may be out of range, e.g., when axis max is larger than `ordinalMeta.categories.length`.,\n // where ordinal numbers are used as tick value directly.\n\n return ordinalNumbersByTick && tickNumber >= 0 && tickNumber < ordinalNumbersByTick.length ? ordinalNumbersByTick[tickNumber] : tickNumber;\n };\n /**\n * Get item on tick\n */\n\n\n OrdinalScale.prototype.getLabel = function (tick) {\n if (!this.isBlank()) {\n var ordinalNumber = this.getRawOrdinalNumber(tick.value);\n var cateogry = this._ordinalMeta.categories[ordinalNumber]; // Note that if no data, ordinalMeta.categories is an empty array.\n // Return empty if it's not exist.\n\n return cateogry == null ? '' : cateogry + '';\n }\n };\n\n OrdinalScale.prototype.count = function () {\n return this._extent[1] - this._extent[0] + 1;\n };\n\n OrdinalScale.prototype.unionExtentFromData = function (data, dim) {\n this.unionExtent(data.getApproximateExtent(dim));\n };\n /**\n * @override\n * If value is in extent range\n */\n\n\n OrdinalScale.prototype.isInExtentRange = function (value) {\n value = this._getTickNumber(value);\n return this._extent[0] <= value && this._extent[1] >= value;\n };\n\n OrdinalScale.prototype.getOrdinalMeta = function () {\n return this._ordinalMeta;\n };\n\n OrdinalScale.prototype.calcNiceTicks = function () {};\n\n OrdinalScale.prototype.calcNiceExtent = function () {};\n\n OrdinalScale.type = 'ordinal';\n return OrdinalScale;\n}(Scale);\n\nScale.registerClass(OrdinalScale);\nexport default OrdinalScale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as clazzUtil from '../util/clazz.js';\n\nvar Scale =\n/** @class */\nfunction () {\n function Scale(setting) {\n this._setting = setting || {};\n this._extent = [Infinity, -Infinity];\n }\n\n Scale.prototype.getSetting = function (name) {\n return this._setting[name];\n };\n /**\n * Set extent from data\n */\n\n\n Scale.prototype.unionExtent = function (other) {\n var extent = this._extent;\n other[0] < extent[0] && (extent[0] = other[0]);\n other[1] > extent[1] && (extent[1] = other[1]); // not setExtent because in log axis it may transformed to power\n // this.setExtent(extent[0], extent[1]);\n };\n /**\n * Set extent from data\n */\n\n\n Scale.prototype.unionExtentFromData = function (data, dim) {\n this.unionExtent(data.getApproximateExtent(dim));\n };\n /**\n * Get extent\n *\n * Extent is always in increase order.\n */\n\n\n Scale.prototype.getExtent = function () {\n return this._extent.slice();\n };\n /**\n * Set extent\n */\n\n\n Scale.prototype.setExtent = function (start, end) {\n var thisExtent = this._extent;\n\n if (!isNaN(start)) {\n thisExtent[0] = start;\n }\n\n if (!isNaN(end)) {\n thisExtent[1] = end;\n }\n };\n /**\n * If value is in extent range\n */\n\n\n Scale.prototype.isInExtentRange = function (value) {\n return this._extent[0] <= value && this._extent[1] >= value;\n };\n /**\n * When axis extent depends on data and no data exists,\n * axis ticks should not be drawn, which is named 'blank'.\n */\n\n\n Scale.prototype.isBlank = function () {\n return this._isBlank;\n };\n /**\n * When axis extent depends on data and no data exists,\n * axis ticks should not be drawn, which is named 'blank'.\n */\n\n\n Scale.prototype.setBlank = function (isBlank) {\n this._isBlank = isBlank;\n };\n\n return Scale;\n}();\n\nclazzUtil.enableClassManagement(Scale);\nexport default Scale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\n/*\n* A third-party license is embedded for some of the code in this file:\n* The \"scaleLevels\" was originally copied from \"d3.js\" with some\n* modifications made for this project.\n* (See more details in the comment on the definition of \"scaleLevels\" below.)\n* The use of the source code of this file is also subject to the terms\n* and consitions of the license of \"d3.js\" (BSD-3Clause, see\n* ).\n*/\n// [About UTC and local time zone]:\n// In most cases, `number.parseDate` will treat input data string as local time\n// (except time zone is specified in time string). And `format.formateTime` returns\n// local time by default. option.useUTC is false by default. This design has\n// considered these common cases:\n// (1) Time that is persistent in server is in UTC, but it is needed to be displayed\n// in local time by default.\n// (2) By default, the input data string (e.g., '2011-01-02') should be displayed\n// as its original time, without any time difference.\n\nimport * as numberUtil from '../util/number.js';\nimport { ONE_SECOND, ONE_MINUTE, ONE_HOUR, ONE_DAY, ONE_YEAR, format, leveledFormat, getUnitValue, timeUnits, fullLeveledFormatter, getPrimaryTimeUnit, isPrimaryTimeUnit, getDefaultFormatPrecisionOfInterval, fullYearGetterName, monthSetterName, fullYearSetterName, dateSetterName, hoursGetterName, hoursSetterName, minutesSetterName, secondsSetterName, millisecondsSetterName, monthGetterName, dateGetterName, minutesGetterName, secondsGetterName, millisecondsGetterName } from '../util/time.js';\nimport * as scaleHelper from './helper.js';\nimport IntervalScale from './Interval.js';\nimport Scale from './Scale.js';\nimport { warn } from '../util/log.js';\nimport { filter, isNumber, map } from 'zrender/lib/core/util.js'; // FIXME 公用?\n\nvar bisect = function (a, x, lo, hi) {\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n\n if (a[mid][1] < x) {\n lo = mid + 1;\n } else {\n hi = mid;\n }\n }\n\n return lo;\n};\n\nvar TimeScale =\n/** @class */\nfunction (_super) {\n __extends(TimeScale, _super);\n\n function TimeScale(settings) {\n var _this = _super.call(this, settings) || this;\n\n _this.type = 'time';\n return _this;\n }\n /**\n * Get label is mainly for other components like dataZoom, tooltip.\n */\n\n\n TimeScale.prototype.getLabel = function (tick) {\n var useUTC = this.getSetting('useUTC');\n return format(tick.value, fullLeveledFormatter[getDefaultFormatPrecisionOfInterval(getPrimaryTimeUnit(this._minLevelUnit))] || fullLeveledFormatter.second, useUTC, this.getSetting('locale'));\n };\n\n TimeScale.prototype.getFormattedLabel = function (tick, idx, labelFormatter) {\n var isUTC = this.getSetting('useUTC');\n var lang = this.getSetting('locale');\n return leveledFormat(tick, idx, labelFormatter, lang, isUTC);\n };\n /**\n * @override\n */\n\n\n TimeScale.prototype.getTicks = function () {\n var interval = this._interval;\n var extent = this._extent;\n var ticks = []; // If interval is 0, return [];\n\n if (!interval) {\n return ticks;\n }\n\n ticks.push({\n value: extent[0],\n level: 0\n });\n var useUTC = this.getSetting('useUTC');\n var innerTicks = getIntervalTicks(this._minLevelUnit, this._approxInterval, useUTC, extent);\n ticks = ticks.concat(innerTicks);\n ticks.push({\n value: extent[1],\n level: 0\n });\n return ticks;\n };\n\n TimeScale.prototype.calcNiceExtent = function (opt) {\n var extent = this._extent; // If extent start and end are same, expand them\n\n if (extent[0] === extent[1]) {\n // Expand extent\n extent[0] -= ONE_DAY;\n extent[1] += ONE_DAY;\n } // If there are no data and extent are [Infinity, -Infinity]\n\n\n if (extent[1] === -Infinity && extent[0] === Infinity) {\n var d = new Date();\n extent[1] = +new Date(d.getFullYear(), d.getMonth(), d.getDate());\n extent[0] = extent[1] - ONE_DAY;\n }\n\n this.calcNiceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval);\n };\n\n TimeScale.prototype.calcNiceTicks = function (approxTickNum, minInterval, maxInterval) {\n approxTickNum = approxTickNum || 10;\n var extent = this._extent;\n var span = extent[1] - extent[0];\n this._approxInterval = span / approxTickNum;\n\n if (minInterval != null && this._approxInterval < minInterval) {\n this._approxInterval = minInterval;\n }\n\n if (maxInterval != null && this._approxInterval > maxInterval) {\n this._approxInterval = maxInterval;\n }\n\n var scaleIntervalsLen = scaleIntervals.length;\n var idx = Math.min(bisect(scaleIntervals, this._approxInterval, 0, scaleIntervalsLen), scaleIntervalsLen - 1); // Interval that can be used to calculate ticks\n\n this._interval = scaleIntervals[idx][1]; // Min level used when picking ticks from top down.\n // We check one more level to avoid the ticks are to sparse in some case.\n\n this._minLevelUnit = scaleIntervals[Math.max(idx - 1, 0)][0];\n };\n\n TimeScale.prototype.parse = function (val) {\n // val might be float.\n return isNumber(val) ? val : +numberUtil.parseDate(val);\n };\n\n TimeScale.prototype.contain = function (val) {\n return scaleHelper.contain(this.parse(val), this._extent);\n };\n\n TimeScale.prototype.normalize = function (val) {\n return scaleHelper.normalize(this.parse(val), this._extent);\n };\n\n TimeScale.prototype.scale = function (val) {\n return scaleHelper.scale(val, this._extent);\n };\n\n TimeScale.type = 'time';\n return TimeScale;\n}(IntervalScale);\n/**\n * This implementation was originally copied from \"d3.js\"\n * \n * with some modifications made for this program.\n * See the license statement at the head of this file.\n */\n\n\nvar scaleIntervals = [// Format interval\n['second', ONE_SECOND], ['minute', ONE_MINUTE], ['hour', ONE_HOUR], ['quarter-day', ONE_HOUR * 6], ['half-day', ONE_HOUR * 12], ['day', ONE_DAY * 1.2], ['half-week', ONE_DAY * 3.5], ['week', ONE_DAY * 7], ['month', ONE_DAY * 31], ['quarter', ONE_DAY * 95], ['half-year', ONE_YEAR / 2], ['year', ONE_YEAR] // 1Y\n];\n\nfunction isUnitValueSame(unit, valueA, valueB, isUTC) {\n var dateA = numberUtil.parseDate(valueA);\n var dateB = numberUtil.parseDate(valueB);\n\n var isSame = function (unit) {\n return getUnitValue(dateA, unit, isUTC) === getUnitValue(dateB, unit, isUTC);\n };\n\n var isSameYear = function () {\n return isSame('year');\n }; // const isSameHalfYear = () => isSameYear() && isSame('half-year');\n // const isSameQuater = () => isSameYear() && isSame('quarter');\n\n\n var isSameMonth = function () {\n return isSameYear() && isSame('month');\n };\n\n var isSameDay = function () {\n return isSameMonth() && isSame('day');\n }; // const isSameHalfDay = () => isSameDay() && isSame('half-day');\n\n\n var isSameHour = function () {\n return isSameDay() && isSame('hour');\n };\n\n var isSameMinute = function () {\n return isSameHour() && isSame('minute');\n };\n\n var isSameSecond = function () {\n return isSameMinute() && isSame('second');\n };\n\n var isSameMilliSecond = function () {\n return isSameSecond() && isSame('millisecond');\n };\n\n switch (unit) {\n case 'year':\n return isSameYear();\n\n case 'month':\n return isSameMonth();\n\n case 'day':\n return isSameDay();\n\n case 'hour':\n return isSameHour();\n\n case 'minute':\n return isSameMinute();\n\n case 'second':\n return isSameSecond();\n\n case 'millisecond':\n return isSameMilliSecond();\n }\n} // const primaryUnitGetters = {\n// year: fullYearGetterName(),\n// month: monthGetterName(),\n// day: dateGetterName(),\n// hour: hoursGetterName(),\n// minute: minutesGetterName(),\n// second: secondsGetterName(),\n// millisecond: millisecondsGetterName()\n// };\n// const primaryUnitUTCGetters = {\n// year: fullYearGetterName(true),\n// month: monthGetterName(true),\n// day: dateGetterName(true),\n// hour: hoursGetterName(true),\n// minute: minutesGetterName(true),\n// second: secondsGetterName(true),\n// millisecond: millisecondsGetterName(true)\n// };\n// function moveTick(date: Date, unitName: TimeUnit, step: number, isUTC: boolean) {\n// step = step || 1;\n// switch (getPrimaryTimeUnit(unitName)) {\n// case 'year':\n// date[fullYearSetterName(isUTC)](date[fullYearGetterName(isUTC)]() + step);\n// break;\n// case 'month':\n// date[monthSetterName(isUTC)](date[monthGetterName(isUTC)]() + step);\n// break;\n// case 'day':\n// date[dateSetterName(isUTC)](date[dateGetterName(isUTC)]() + step);\n// break;\n// case 'hour':\n// date[hoursSetterName(isUTC)](date[hoursGetterName(isUTC)]() + step);\n// break;\n// case 'minute':\n// date[minutesSetterName(isUTC)](date[minutesGetterName(isUTC)]() + step);\n// break;\n// case 'second':\n// date[secondsSetterName(isUTC)](date[secondsGetterName(isUTC)]() + step);\n// break;\n// case 'millisecond':\n// date[millisecondsSetterName(isUTC)](date[millisecondsGetterName(isUTC)]() + step);\n// break;\n// }\n// return date.getTime();\n// }\n// const DATE_INTERVALS = [[8, 7.5], [4, 3.5], [2, 1.5]];\n// const MONTH_INTERVALS = [[6, 5.5], [3, 2.5], [2, 1.5]];\n// const MINUTES_SECONDS_INTERVALS = [[30, 30], [20, 20], [15, 15], [10, 10], [5, 5], [2, 2]];\n\n\nfunction getDateInterval(approxInterval, daysInMonth) {\n approxInterval /= ONE_DAY;\n return approxInterval > 16 ? 16 // Math.floor(daysInMonth / 2) + 1 // In this case we only want one tick between two months.\n : approxInterval > 7.5 ? 7 // TODO week 7 or day 8?\n : approxInterval > 3.5 ? 4 : approxInterval > 1.5 ? 2 : 1;\n}\n\nfunction getMonthInterval(approxInterval) {\n var APPROX_ONE_MONTH = 30 * ONE_DAY;\n approxInterval /= APPROX_ONE_MONTH;\n return approxInterval > 6 ? 6 : approxInterval > 3 ? 3 : approxInterval > 2 ? 2 : 1;\n}\n\nfunction getHourInterval(approxInterval) {\n approxInterval /= ONE_HOUR;\n return approxInterval > 12 ? 12 : approxInterval > 6 ? 6 : approxInterval > 3.5 ? 4 : approxInterval > 2 ? 2 : 1;\n}\n\nfunction getMinutesAndSecondsInterval(approxInterval, isMinutes) {\n approxInterval /= isMinutes ? ONE_MINUTE : ONE_SECOND;\n return approxInterval > 30 ? 30 : approxInterval > 20 ? 20 : approxInterval > 15 ? 15 : approxInterval > 10 ? 10 : approxInterval > 5 ? 5 : approxInterval > 2 ? 2 : 1;\n}\n\nfunction getMillisecondsInterval(approxInterval) {\n return numberUtil.nice(approxInterval, true);\n}\n\nfunction getFirstTimestampOfUnit(date, unitName, isUTC) {\n var outDate = new Date(date);\n\n switch (getPrimaryTimeUnit(unitName)) {\n case 'year':\n case 'month':\n outDate[monthSetterName(isUTC)](0);\n\n case 'day':\n outDate[dateSetterName(isUTC)](1);\n\n case 'hour':\n outDate[hoursSetterName(isUTC)](0);\n\n case 'minute':\n outDate[minutesSetterName(isUTC)](0);\n\n case 'second':\n outDate[secondsSetterName(isUTC)](0);\n outDate[millisecondsSetterName(isUTC)](0);\n }\n\n return outDate.getTime();\n}\n\nfunction getIntervalTicks(bottomUnitName, approxInterval, isUTC, extent) {\n var safeLimit = 10000;\n var unitNames = timeUnits;\n var iter = 0;\n\n function addTicksInSpan(interval, minTimestamp, maxTimestamp, getMethodName, setMethodName, isDate, out) {\n var date = new Date(minTimestamp);\n var dateTime = minTimestamp;\n var d = date[getMethodName](); // if (isDate) {\n // d -= 1; // Starts with 0; PENDING\n // }\n\n while (dateTime < maxTimestamp && dateTime <= extent[1]) {\n out.push({\n value: dateTime\n });\n d += interval;\n date[setMethodName](d);\n dateTime = date.getTime();\n } // This extra tick is for calcuating ticks of next level. Will not been added to the final result\n\n\n out.push({\n value: dateTime,\n notAdd: true\n });\n }\n\n function addLevelTicks(unitName, lastLevelTicks, levelTicks) {\n var newAddedTicks = [];\n var isFirstLevel = !lastLevelTicks.length;\n\n if (isUnitValueSame(getPrimaryTimeUnit(unitName), extent[0], extent[1], isUTC)) {\n return;\n }\n\n if (isFirstLevel) {\n lastLevelTicks = [{\n // TODO Optimize. Not include so may ticks.\n value: getFirstTimestampOfUnit(new Date(extent[0]), unitName, isUTC)\n }, {\n value: extent[1]\n }];\n }\n\n for (var i = 0; i < lastLevelTicks.length - 1; i++) {\n var startTick = lastLevelTicks[i].value;\n var endTick = lastLevelTicks[i + 1].value;\n\n if (startTick === endTick) {\n continue;\n }\n\n var interval = void 0;\n var getterName = void 0;\n var setterName = void 0;\n var isDate = false;\n\n switch (unitName) {\n case 'year':\n interval = Math.max(1, Math.round(approxInterval / ONE_DAY / 365));\n getterName = fullYearGetterName(isUTC);\n setterName = fullYearSetterName(isUTC);\n break;\n\n case 'half-year':\n case 'quarter':\n case 'month':\n interval = getMonthInterval(approxInterval);\n getterName = monthGetterName(isUTC);\n setterName = monthSetterName(isUTC);\n break;\n\n case 'week': // PENDING If week is added. Ignore day.\n\n case 'half-week':\n case 'day':\n interval = getDateInterval(approxInterval, 31); // Use 32 days and let interval been 16\n\n getterName = dateGetterName(isUTC);\n setterName = dateSetterName(isUTC);\n isDate = true;\n break;\n\n case 'half-day':\n case 'quarter-day':\n case 'hour':\n interval = getHourInterval(approxInterval);\n getterName = hoursGetterName(isUTC);\n setterName = hoursSetterName(isUTC);\n break;\n\n case 'minute':\n interval = getMinutesAndSecondsInterval(approxInterval, true);\n getterName = minutesGetterName(isUTC);\n setterName = minutesSetterName(isUTC);\n break;\n\n case 'second':\n interval = getMinutesAndSecondsInterval(approxInterval, false);\n getterName = secondsGetterName(isUTC);\n setterName = secondsSetterName(isUTC);\n break;\n\n case 'millisecond':\n interval = getMillisecondsInterval(approxInterval);\n getterName = millisecondsGetterName(isUTC);\n setterName = millisecondsSetterName(isUTC);\n break;\n }\n\n addTicksInSpan(interval, startTick, endTick, getterName, setterName, isDate, newAddedTicks);\n\n if (unitName === 'year' && levelTicks.length > 1 && i === 0) {\n // Add nearest years to the left extent.\n levelTicks.unshift({\n value: levelTicks[0].value - interval\n });\n }\n }\n\n for (var i = 0; i < newAddedTicks.length; i++) {\n levelTicks.push(newAddedTicks[i]);\n } // newAddedTicks.length && console.log(unitName, newAddedTicks);\n\n\n return newAddedTicks;\n }\n\n var levelsTicks = [];\n var currentLevelTicks = [];\n var tickCount = 0;\n var lastLevelTickCount = 0;\n\n for (var i = 0; i < unitNames.length && iter++ < safeLimit; ++i) {\n var primaryTimeUnit = getPrimaryTimeUnit(unitNames[i]);\n\n if (!isPrimaryTimeUnit(unitNames[i])) {\n // TODO\n continue;\n }\n\n addLevelTicks(unitNames[i], levelsTicks[levelsTicks.length - 1] || [], currentLevelTicks);\n var nextPrimaryTimeUnit = unitNames[i + 1] ? getPrimaryTimeUnit(unitNames[i + 1]) : null;\n\n if (primaryTimeUnit !== nextPrimaryTimeUnit) {\n if (currentLevelTicks.length) {\n lastLevelTickCount = tickCount; // Remove the duplicate so the tick count can be precisely.\n\n currentLevelTicks.sort(function (a, b) {\n return a.value - b.value;\n });\n var levelTicksRemoveDuplicated = [];\n\n for (var i_1 = 0; i_1 < currentLevelTicks.length; ++i_1) {\n var tickValue = currentLevelTicks[i_1].value;\n\n if (i_1 === 0 || currentLevelTicks[i_1 - 1].value !== tickValue) {\n levelTicksRemoveDuplicated.push(currentLevelTicks[i_1]);\n\n if (tickValue >= extent[0] && tickValue <= extent[1]) {\n tickCount++;\n }\n }\n }\n\n var targetTickNum = (extent[1] - extent[0]) / approxInterval; // Added too much in this level and not too less in last level\n\n if (tickCount > targetTickNum * 1.5 && lastLevelTickCount > targetTickNum / 1.5) {\n break;\n } // Only treat primary time unit as one level.\n\n\n levelsTicks.push(levelTicksRemoveDuplicated);\n\n if (tickCount > targetTickNum || bottomUnitName === unitNames[i]) {\n break;\n }\n } // Reset if next unitName is primary\n\n\n currentLevelTicks = [];\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (iter >= safeLimit) {\n warn('Exceed safe limit.');\n }\n }\n\n var levelsTicksInExtent = filter(map(levelsTicks, function (levelTicks) {\n return filter(levelTicks, function (tick) {\n return tick.value >= extent[0] && tick.value <= extent[1] && !tick.notAdd;\n });\n }), function (levelTicks) {\n return levelTicks.length > 0;\n });\n var ticks = [];\n var maxLevel = levelsTicksInExtent.length - 1;\n\n for (var i = 0; i < levelsTicksInExtent.length; ++i) {\n var levelTicks = levelsTicksInExtent[i];\n\n for (var k = 0; k < levelTicks.length; ++k) {\n ticks.push({\n value: levelTicks[k].value,\n level: maxLevel - i\n });\n }\n }\n\n ticks.sort(function (a, b) {\n return a.value - b.value;\n }); // Remove duplicates\n\n var result = [];\n\n for (var i = 0; i < ticks.length; ++i) {\n if (i === 0 || ticks[i].value !== ticks[i - 1].value) {\n result.push(ticks[i]);\n }\n }\n\n return result;\n}\n\nScale.registerClass(TimeScale);\nexport default TimeScale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { getPrecision, round, nice, quantityExponent } from '../util/number.js';\nexport function isValueNice(val) {\n var exp10 = Math.pow(10, quantityExponent(Math.abs(val)));\n var f = Math.abs(val / exp10);\n return f === 0 || f === 1 || f === 2 || f === 3 || f === 5;\n}\nexport function isIntervalOrLogScale(scale) {\n return scale.type === 'interval' || scale.type === 'log';\n}\n/**\n * @param extent Both extent[0] and extent[1] should be valid number.\n * Should be extent[0] < extent[1].\n * @param splitNumber splitNumber should be >= 1.\n */\n\nexport function intervalScaleNiceTicks(extent, splitNumber, minInterval, maxInterval) {\n var result = {};\n var span = extent[1] - extent[0];\n var interval = result.interval = nice(span / splitNumber, true);\n\n if (minInterval != null && interval < minInterval) {\n interval = result.interval = minInterval;\n }\n\n if (maxInterval != null && interval > maxInterval) {\n interval = result.interval = maxInterval;\n } // Tow more digital for tick.\n\n\n var precision = result.intervalPrecision = getIntervalPrecision(interval); // Niced extent inside original extent\n\n var niceTickExtent = result.niceTickExtent = [round(Math.ceil(extent[0] / interval) * interval, precision), round(Math.floor(extent[1] / interval) * interval, precision)];\n fixExtent(niceTickExtent, extent);\n return result;\n}\nexport function increaseInterval(interval) {\n var exp10 = Math.pow(10, quantityExponent(interval)); // Increase interval\n\n var f = interval / exp10;\n\n if (!f) {\n f = 1;\n } else if (f === 2) {\n f = 3;\n } else if (f === 3) {\n f = 5;\n } else {\n // f is 1 or 5\n f *= 2;\n }\n\n return round(f * exp10);\n}\n/**\n * @return interval precision\n */\n\nexport function getIntervalPrecision(interval) {\n // Tow more digital for tick.\n return getPrecision(interval) + 2;\n}\n\nfunction clamp(niceTickExtent, idx, extent) {\n niceTickExtent[idx] = Math.max(Math.min(niceTickExtent[idx], extent[1]), extent[0]);\n} // In some cases (e.g., splitNumber is 1), niceTickExtent may be out of extent.\n\n\nexport function fixExtent(niceTickExtent, extent) {\n !isFinite(niceTickExtent[0]) && (niceTickExtent[0] = extent[0]);\n !isFinite(niceTickExtent[1]) && (niceTickExtent[1] = extent[1]);\n clamp(niceTickExtent, 0, extent);\n clamp(niceTickExtent, 1, extent);\n\n if (niceTickExtent[0] > niceTickExtent[1]) {\n niceTickExtent[0] = niceTickExtent[1];\n }\n}\nexport function contain(val, extent) {\n return val >= extent[0] && val <= extent[1];\n}\nexport function normalize(val, extent) {\n if (extent[1] === extent[0]) {\n return 0.5;\n }\n\n return (val - extent[0]) / (extent[1] - extent[0]);\n}\nexport function scale(val, extent) {\n return val * (extent[1] - extent[0]) + extent[0];\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar contrastColor = '#B9B8CE';\nvar backgroundColor = '#100C2A';\n\nvar axisCommon = function () {\n return {\n axisLine: {\n lineStyle: {\n color: contrastColor\n }\n },\n splitLine: {\n lineStyle: {\n color: '#484753'\n }\n },\n splitArea: {\n areaStyle: {\n color: ['rgba(255,255,255,0.02)', 'rgba(255,255,255,0.05)']\n }\n },\n minorSplitLine: {\n lineStyle: {\n color: '#20203B'\n }\n }\n };\n};\n\nvar colorPalette = ['#4992ff', '#7cffb2', '#fddd60', '#ff6e76', '#58d9f9', '#05c091', '#ff8a45', '#8d48e3', '#dd79ff'];\nvar theme = {\n darkMode: true,\n color: colorPalette,\n backgroundColor: backgroundColor,\n axisPointer: {\n lineStyle: {\n color: '#817f91'\n },\n crossStyle: {\n color: '#817f91'\n },\n label: {\n // TODO Contrast of label backgorundColor\n color: '#fff'\n }\n },\n legend: {\n textStyle: {\n color: contrastColor\n }\n },\n textStyle: {\n color: contrastColor\n },\n title: {\n textStyle: {\n color: '#EEF1FA'\n },\n subtextStyle: {\n color: '#B9B8CE'\n }\n },\n toolbox: {\n iconStyle: {\n borderColor: contrastColor\n }\n },\n dataZoom: {\n borderColor: '#71708A',\n textStyle: {\n color: contrastColor\n },\n brushStyle: {\n color: 'rgba(135,163,206,0.3)'\n },\n handleStyle: {\n color: '#353450',\n borderColor: '#C5CBE3'\n },\n moveHandleStyle: {\n color: '#B0B6C3',\n opacity: 0.3\n },\n fillerColor: 'rgba(135,163,206,0.2)',\n emphasis: {\n handleStyle: {\n borderColor: '#91B7F2',\n color: '#4D587D'\n },\n moveHandleStyle: {\n color: '#636D9A',\n opacity: 0.7\n }\n },\n dataBackground: {\n lineStyle: {\n color: '#71708A',\n width: 1\n },\n areaStyle: {\n color: '#71708A'\n }\n },\n selectedDataBackground: {\n lineStyle: {\n color: '#87A3CE'\n },\n areaStyle: {\n color: '#87A3CE'\n }\n }\n },\n visualMap: {\n textStyle: {\n color: contrastColor\n }\n },\n timeline: {\n lineStyle: {\n color: contrastColor\n },\n label: {\n color: contrastColor\n },\n controlStyle: {\n color: contrastColor,\n borderColor: contrastColor\n }\n },\n calendar: {\n itemStyle: {\n color: backgroundColor\n },\n dayLabel: {\n color: contrastColor\n },\n monthLabel: {\n color: contrastColor\n },\n yearLabel: {\n color: contrastColor\n }\n },\n timeAxis: axisCommon(),\n logAxis: axisCommon(),\n valueAxis: axisCommon(),\n categoryAxis: axisCommon(),\n line: {\n symbol: 'circle'\n },\n graph: {\n color: colorPalette\n },\n gauge: {\n title: {\n color: contrastColor\n },\n axisLine: {\n lineStyle: {\n color: [[1, 'rgba(207,212,219,0.2)']]\n }\n },\n axisLabel: {\n color: contrastColor\n },\n detail: {\n color: '#EEF1FA'\n }\n },\n candlestick: {\n itemStyle: {\n color: '#f64e56',\n color0: '#54ea92',\n borderColor: '#f64e56',\n borderColor0: '#54ea92' // borderColor: '#ca2824',\n // borderColor0: '#09a443'\n\n }\n }\n};\ntheme.categoryAxis.splitLine.show = false;\nexport default theme;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar colorAll = ['#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'];\nexport default {\n color: colorAll,\n colorLayer: [['#37A2DA', '#ffd85c', '#fd7b5f'], ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'], ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'], colorAll]\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { parseClassType } from './clazz.js';\n/**\n * Usage of query:\n * `chart.on('click', query, handler);`\n * The `query` can be:\n * + The component type query string, only `mainType` or `mainType.subType`,\n * like: 'xAxis', 'series', 'xAxis.category' or 'series.line'.\n * + The component query object, like:\n * `{seriesIndex: 2}`, `{seriesName: 'xx'}`, `{seriesId: 'some'}`,\n * `{xAxisIndex: 2}`, `{xAxisName: 'xx'}`, `{xAxisId: 'some'}`.\n * + The data query object, like:\n * `{dataIndex: 123}`, `{dataType: 'link'}`, `{name: 'some'}`.\n * + The other query object (cmponent customized query), like:\n * `{element: 'some'}` (only available in custom series).\n *\n * Caveat: If a prop in the `query` object is `null/undefined`, it is the\n * same as there is no such prop in the `query` object.\n */\n\nvar ECEventProcessor =\n/** @class */\nfunction () {\n function ECEventProcessor() {}\n\n ECEventProcessor.prototype.normalizeQuery = function (query) {\n var cptQuery = {};\n var dataQuery = {};\n var otherQuery = {}; // `query` is `mainType` or `mainType.subType` of component.\n\n if (zrUtil.isString(query)) {\n var condCptType = parseClassType(query); // `.main` and `.sub` may be ''.\n\n cptQuery.mainType = condCptType.main || null;\n cptQuery.subType = condCptType.sub || null;\n } // `query` is an object, convert to {mainType, index, name, id}.\n else {\n // `xxxIndex`, `xxxName`, `xxxId`, `name`, `dataIndex`, `dataType` is reserved,\n // can not be used in `compomentModel.filterForExposedEvent`.\n var suffixes_1 = ['Index', 'Name', 'Id'];\n var dataKeys_1 = {\n name: 1,\n dataIndex: 1,\n dataType: 1\n };\n zrUtil.each(query, function (val, key) {\n var reserved = false;\n\n for (var i = 0; i < suffixes_1.length; i++) {\n var propSuffix = suffixes_1[i];\n var suffixPos = key.lastIndexOf(propSuffix);\n\n if (suffixPos > 0 && suffixPos === key.length - propSuffix.length) {\n var mainType = key.slice(0, suffixPos); // Consider `dataIndex`.\n\n if (mainType !== 'data') {\n cptQuery.mainType = mainType;\n cptQuery[propSuffix.toLowerCase()] = val;\n reserved = true;\n }\n }\n }\n\n if (dataKeys_1.hasOwnProperty(key)) {\n dataQuery[key] = val;\n reserved = true;\n }\n\n if (!reserved) {\n otherQuery[key] = val;\n }\n });\n }\n\n return {\n cptQuery: cptQuery,\n dataQuery: dataQuery,\n otherQuery: otherQuery\n };\n };\n\n ECEventProcessor.prototype.filter = function (eventType, query) {\n // They should be assigned before each trigger call.\n var eventInfo = this.eventInfo;\n\n if (!eventInfo) {\n return true;\n }\n\n var targetEl = eventInfo.targetEl;\n var packedEvent = eventInfo.packedEvent;\n var model = eventInfo.model;\n var view = eventInfo.view; // For event like 'globalout'.\n\n if (!model || !view) {\n return true;\n }\n\n var cptQuery = query.cptQuery;\n var dataQuery = query.dataQuery;\n return check(cptQuery, model, 'mainType') && check(cptQuery, model, 'subType') && check(cptQuery, model, 'index', 'componentIndex') && check(cptQuery, model, 'name') && check(cptQuery, model, 'id') && check(dataQuery, packedEvent, 'name') && check(dataQuery, packedEvent, 'dataIndex') && check(dataQuery, packedEvent, 'dataType') && (!view.filterForExposedEvent || view.filterForExposedEvent(eventType, query.otherQuery, targetEl, packedEvent));\n\n function check(query, host, prop, propOnHost) {\n return query[prop] == null || host[propOnHost || prop] === query[prop];\n }\n };\n\n ECEventProcessor.prototype.afterTrigger = function () {\n // Make sure the eventInfo won't be used in next trigger.\n this.eventInfo = null;\n };\n\n return ECEventProcessor;\n}();\n\nexport { ECEventProcessor };\n;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Animate multiple elements with a single done-callback.\n *\n * @example\n * animation\n * .createWrap()\n * .add(el1, {x: 10, y: 10})\n * .add(el2, {shape: {width: 500}, style: {fill: 'red'}}, 400)\n * .done(function () { // done })\n * .start('cubicOut');\n */\nvar AnimationWrap =\n/** @class */\nfunction () {\n function AnimationWrap() {\n this._storage = [];\n this._elExistsMap = {};\n }\n /**\n * Caution: a el can only be added once, otherwise 'done'\n * might not be called. This method checks this (by el.id),\n * suppresses adding and returns false when existing el found.\n *\n * @return Whether adding succeeded.\n */\n\n\n AnimationWrap.prototype.add = function (el, target, duration, delay, easing) {\n if (this._elExistsMap[el.id]) {\n return false;\n }\n\n this._elExistsMap[el.id] = true;\n\n this._storage.push({\n el: el,\n target: target,\n duration: duration,\n delay: delay,\n easing: easing\n });\n\n return true;\n };\n /**\n * Only execute when animation done/aborted.\n */\n\n\n AnimationWrap.prototype.finished = function (callback) {\n this._finishedCallback = callback;\n return this;\n };\n /**\n * Will stop exist animation firstly.\n */\n\n\n AnimationWrap.prototype.start = function () {\n var _this = this;\n\n var count = this._storage.length;\n\n var checkTerminate = function () {\n count--;\n\n if (count <= 0) {\n // Guard.\n _this._storage.length = 0;\n _this._elExistsMap = {};\n _this._finishedCallback && _this._finishedCallback();\n }\n };\n\n for (var i = 0, len = this._storage.length; i < len; i++) {\n var item = this._storage[i];\n item.el.animateTo(item.target, {\n duration: item.duration,\n delay: item.delay,\n easing: item.easing,\n setToFinal: true,\n done: checkTerminate,\n aborted: checkTerminate\n });\n }\n\n return this;\n };\n\n return AnimationWrap;\n}();\n\nexport function createWrap() {\n return new AnimationWrap();\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nvar TYPE_DELIMITER = '.';\nvar IS_CONTAINER = '___EC__COMPONENT__CONTAINER___';\nvar IS_EXTENDED_CLASS = '___EC__EXTENDED_CLASS___';\n/**\n * Notice, parseClassType('') should returns {main: '', sub: ''}\n * @public\n */\n\nexport function parseClassType(componentType) {\n var ret = {\n main: '',\n sub: ''\n };\n\n if (componentType) {\n var typeArr = componentType.split(TYPE_DELIMITER);\n ret.main = typeArr[0] || '';\n ret.sub = typeArr[1] || '';\n }\n\n return ret;\n}\n/**\n * @public\n */\n\nfunction checkClassType(componentType) {\n zrUtil.assert(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(componentType), 'componentType \"' + componentType + '\" illegal');\n}\n\nexport function isExtendedClass(clz) {\n return !!(clz && clz[IS_EXTENDED_CLASS]);\n}\n/**\n * Implements `ExtendableConstructor` for `rootClz`.\n *\n * @usage\n * ```ts\n * class Xxx {}\n * type XxxConstructor = typeof Xxx & ExtendableConstructor\n * enableClassExtend(Xxx as XxxConstructor);\n * ```\n */\n\nexport function enableClassExtend(rootClz, mandatoryMethods) {\n rootClz.$constructor = rootClz; // FIXME: not necessary?\n\n rootClz.extend = function (proto) {\n if (process.env.NODE_ENV !== 'production') {\n zrUtil.each(mandatoryMethods, function (method) {\n if (!proto[method]) {\n console.warn('Method `' + method + '` should be implemented' + (proto.type ? ' in ' + proto.type : '') + '.');\n }\n });\n }\n\n var superClass = this;\n var ExtendedClass;\n\n if (isESClass(superClass)) {\n ExtendedClass =\n /** @class */\n function (_super) {\n __extends(class_1, _super);\n\n function class_1() {\n return _super.apply(this, arguments) || this;\n }\n\n return class_1;\n }(superClass);\n } else {\n // For backward compat, we both support ts class inheritance and this\n // \"extend\" approach.\n // The constructor should keep the same behavior as ts class inheritance:\n // If this constructor/$constructor is not declared, auto invoke the super\n // constructor.\n // If this constructor/$constructor is declared, it is responsible for\n // calling the super constructor.\n ExtendedClass = function () {\n (proto.$constructor || superClass).apply(this, arguments);\n };\n\n zrUtil.inherits(ExtendedClass, this);\n }\n\n zrUtil.extend(ExtendedClass.prototype, proto);\n ExtendedClass[IS_EXTENDED_CLASS] = true;\n ExtendedClass.extend = this.extend;\n ExtendedClass.superCall = superCall;\n ExtendedClass.superApply = superApply;\n ExtendedClass.superClass = superClass;\n return ExtendedClass;\n };\n}\n\nfunction isESClass(fn) {\n return zrUtil.isFunction(fn) && /^class\\s/.test(Function.prototype.toString.call(fn));\n}\n/**\n * A work around to both support ts extend and this extend mechanism.\n * on sub-class.\n * @usage\n * ```ts\n * class Component { ... }\n * classUtil.enableClassExtend(Component);\n * classUtil.enableClassManagement(Component, {registerWhenExtend: true});\n *\n * class Series extends Component { ... }\n * // Without calling `markExtend`, `registerWhenExtend` will not work.\n * Component.markExtend(Series);\n * ```\n */\n\n\nexport function mountExtend(SubClz, SupperClz) {\n SubClz.extend = SupperClz.extend;\n} // A random offset.\n\nvar classBase = Math.round(Math.random() * 10);\n/**\n * Implements `CheckableConstructor` for `target`.\n * Can not use instanceof, consider different scope by\n * cross domain or es module import in ec extensions.\n * Mount a method \"isInstance()\" to Clz.\n *\n * @usage\n * ```ts\n * class Xxx {}\n * type XxxConstructor = typeof Xxx & CheckableConstructor;\n * enableClassCheck(Xxx as XxxConstructor)\n * ```\n */\n\nexport function enableClassCheck(target) {\n var classAttr = ['__\\0is_clz', classBase++].join('_');\n target.prototype[classAttr] = true;\n\n if (process.env.NODE_ENV !== 'production') {\n zrUtil.assert(!target.isInstance, 'The method \"is\" can not be defined.');\n }\n\n target.isInstance = function (obj) {\n return !!(obj && obj[classAttr]);\n };\n} // superCall should have class info, which can not be fetched from 'this'.\n// Consider this case:\n// class A has method f,\n// class B inherits class A, overrides method f, f call superApply('f'),\n// class C inherits class B, does not override method f,\n// then when method of class C is called, dead loop occurred.\n\nfunction superCall(context, methodName) {\n var args = [];\n\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n\n return this.superClass.prototype[methodName].apply(context, args);\n}\n\nfunction superApply(context, methodName, args) {\n return this.superClass.prototype[methodName].apply(context, args);\n}\n/**\n * Implements `ClassManager` for `target`\n *\n * @usage\n * ```ts\n * class Xxx {}\n * type XxxConstructor = typeof Xxx & ClassManager\n * enableClassManagement(Xxx as XxxConstructor);\n * ```\n */\n\n\nexport function enableClassManagement(target) {\n /**\n * Component model classes\n * key: componentType,\n * value:\n * componentClass, when componentType is 'a'\n * or Object., when componentType is 'a.b'\n */\n var storage = {};\n\n target.registerClass = function (clz) {\n // `type` should not be a \"instance member\".\n // If using TS class, should better declared as `static type = 'series.pie'`.\n // otherwise users have to mount `type` on prototype manually.\n // For backward compat and enable instance visit type via `this.type`,\n // we still support fetch `type` from prototype.\n var componentFullType = clz.type || clz.prototype.type;\n\n if (componentFullType) {\n checkClassType(componentFullType); // If only static type declared, we assign it to prototype mandatorily.\n\n clz.prototype.type = componentFullType;\n var componentTypeInfo = parseClassType(componentFullType);\n\n if (!componentTypeInfo.sub) {\n if (process.env.NODE_ENV !== 'production') {\n if (storage[componentTypeInfo.main]) {\n console.warn(componentTypeInfo.main + ' exists.');\n }\n }\n\n storage[componentTypeInfo.main] = clz;\n } else if (componentTypeInfo.sub !== IS_CONTAINER) {\n var container = makeContainer(componentTypeInfo);\n container[componentTypeInfo.sub] = clz;\n }\n }\n\n return clz;\n };\n\n target.getClass = function (mainType, subType, throwWhenNotFound) {\n var clz = storage[mainType];\n\n if (clz && clz[IS_CONTAINER]) {\n clz = subType ? clz[subType] : null;\n }\n\n if (throwWhenNotFound && !clz) {\n throw new Error(!subType ? mainType + '.' + 'type should be specified.' : 'Component ' + mainType + '.' + (subType || '') + ' is used but not imported.');\n }\n\n return clz;\n };\n\n target.getClassesByMainType = function (componentType) {\n var componentTypeInfo = parseClassType(componentType);\n var result = [];\n var obj = storage[componentTypeInfo.main];\n\n if (obj && obj[IS_CONTAINER]) {\n zrUtil.each(obj, function (o, type) {\n type !== IS_CONTAINER && result.push(o);\n });\n } else {\n result.push(obj);\n }\n\n return result;\n };\n\n target.hasClass = function (componentType) {\n // Just consider componentType.main.\n var componentTypeInfo = parseClassType(componentType);\n return !!storage[componentTypeInfo.main];\n };\n /**\n * @return Like ['aa', 'bb'], but can not be ['aa.xx']\n */\n\n\n target.getAllClassMainTypes = function () {\n var types = [];\n zrUtil.each(storage, function (obj, type) {\n types.push(type);\n });\n return types;\n };\n /**\n * If a main type is container and has sub types\n */\n\n\n target.hasSubTypes = function (componentType) {\n var componentTypeInfo = parseClassType(componentType);\n var obj = storage[componentTypeInfo.main];\n return obj && obj[IS_CONTAINER];\n };\n\n function makeContainer(componentTypeInfo) {\n var container = storage[componentTypeInfo.main];\n\n if (!container || !container[IS_CONTAINER]) {\n container = storage[componentTypeInfo.main] = {};\n container[IS_CONTAINER] = true;\n }\n\n return container;\n }\n} // /**\n// * @param {string|Array.} properties\n// */\n// export function setReadOnly(obj, properties) {\n// FIXME It seems broken in IE8 simulation of IE11\n// if (!zrUtil.isArray(properties)) {\n// properties = properties != null ? [properties] : [];\n// }\n// zrUtil.each(properties, function (prop) {\n// let value = obj[prop];\n// Object.defineProperty\n// && Object.defineProperty(obj, prop, {\n// value: value, writable: false\n// });\n// zrUtil.isArray(obj[prop])\n// && Object.freeze\n// && Object.freeze(obj[prop]);\n// });\n// }","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { parseClassType } from './clazz.js';\nimport { makePrintable } from './log.js'; // A random offset\n\nvar base = Math.round(Math.random() * 10);\n/**\n * @public\n * @param {string} type\n * @return {string}\n */\n\nexport function getUID(type) {\n // Considering the case of crossing js context,\n // use Math.random to make id as unique as possible.\n return [type || '', base++].join('_');\n}\n/**\n * Implements `SubTypeDefaulterManager` for `target`.\n */\n\nexport function enableSubTypeDefaulter(target) {\n var subTypeDefaulters = {};\n\n target.registerSubTypeDefaulter = function (componentType, defaulter) {\n var componentTypeInfo = parseClassType(componentType);\n subTypeDefaulters[componentTypeInfo.main] = defaulter;\n };\n\n target.determineSubType = function (componentType, option) {\n var type = option.type;\n\n if (!type) {\n var componentTypeMain = parseClassType(componentType).main;\n\n if (target.hasSubTypes(componentType) && subTypeDefaulters[componentTypeMain]) {\n type = subTypeDefaulters[componentTypeMain](option);\n }\n }\n\n return type;\n };\n}\n/**\n * Implements `TopologicalTravelable` for `entity`.\n *\n * Topological travel on Activity Network (Activity On Vertices).\n * Dependencies is defined in Model.prototype.dependencies, like ['xAxis', 'yAxis'].\n * If 'xAxis' or 'yAxis' is absent in componentTypeList, just ignore it in topology.\n * If there is circular dependencey, Error will be thrown.\n */\n\nexport function enableTopologicalTravel(entity, dependencyGetter) {\n /**\n * @param targetNameList Target Component type list.\n * Can be ['aa', 'bb', 'aa.xx']\n * @param fullNameList By which we can build dependency graph.\n * @param callback Params: componentType, dependencies.\n * @param context Scope of callback.\n */\n entity.topologicalTravel = function (targetNameList, fullNameList, callback, context) {\n if (!targetNameList.length) {\n return;\n }\n\n var result = makeDepndencyGraph(fullNameList);\n var graph = result.graph;\n var noEntryList = result.noEntryList;\n var targetNameSet = {};\n zrUtil.each(targetNameList, function (name) {\n targetNameSet[name] = true;\n });\n\n while (noEntryList.length) {\n var currComponentType = noEntryList.pop();\n var currVertex = graph[currComponentType];\n var isInTargetNameSet = !!targetNameSet[currComponentType];\n\n if (isInTargetNameSet) {\n callback.call(context, currComponentType, currVertex.originalDeps.slice());\n delete targetNameSet[currComponentType];\n }\n\n zrUtil.each(currVertex.successor, isInTargetNameSet ? removeEdgeAndAdd : removeEdge);\n }\n\n zrUtil.each(targetNameSet, function () {\n var errMsg = '';\n\n if (process.env.NODE_ENV !== 'production') {\n errMsg = makePrintable('Circular dependency may exists: ', targetNameSet, targetNameList, fullNameList);\n }\n\n throw new Error(errMsg);\n });\n\n function removeEdge(succComponentType) {\n graph[succComponentType].entryCount--;\n\n if (graph[succComponentType].entryCount === 0) {\n noEntryList.push(succComponentType);\n }\n } // Consider this case: legend depends on series, and we call\n // chart.setOption({series: [...]}), where only series is in option.\n // If we do not have 'removeEdgeAndAdd', legendModel.mergeOption will\n // not be called, but only sereis.mergeOption is called. Thus legend\n // have no chance to update its local record about series (like which\n // name of series is available in legend).\n\n\n function removeEdgeAndAdd(succComponentType) {\n targetNameSet[succComponentType] = true;\n removeEdge(succComponentType);\n }\n };\n\n function makeDepndencyGraph(fullNameList) {\n var graph = {};\n var noEntryList = [];\n zrUtil.each(fullNameList, function (name) {\n var thisItem = createDependencyGraphItem(graph, name);\n var originalDeps = thisItem.originalDeps = dependencyGetter(name);\n var availableDeps = getAvailableDependencies(originalDeps, fullNameList);\n thisItem.entryCount = availableDeps.length;\n\n if (thisItem.entryCount === 0) {\n noEntryList.push(name);\n }\n\n zrUtil.each(availableDeps, function (dependentName) {\n if (zrUtil.indexOf(thisItem.predecessor, dependentName) < 0) {\n thisItem.predecessor.push(dependentName);\n }\n\n var thatItem = createDependencyGraphItem(graph, dependentName);\n\n if (zrUtil.indexOf(thatItem.successor, dependentName) < 0) {\n thatItem.successor.push(name);\n }\n });\n });\n return {\n graph: graph,\n noEntryList: noEntryList\n };\n }\n\n function createDependencyGraphItem(graph, name) {\n if (!graph[name]) {\n graph[name] = {\n predecessor: [],\n successor: []\n };\n }\n\n return graph[name];\n }\n\n function getAvailableDependencies(originalDeps, fullNameList) {\n var availableDeps = [];\n zrUtil.each(originalDeps, function (dep) {\n zrUtil.indexOf(fullNameList, dep) >= 0 && availableDeps.push(dep);\n });\n return availableDeps;\n }\n}\nexport function inheritDefaultOption(superOption, subOption) {\n // See also `model/Component.ts#getDefaultOption`\n return zrUtil.merge(zrUtil.merge({}, superOption, true), subOption, true);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { keys, isArray, map, isObject, isString, isRegExp, isArrayLike, hasOwn, isNumber } from 'zrender/lib/core/util.js';\nimport { throwError, makePrintable } from './log.js';\nimport { getRawValueParser, createFilterComparator } from '../data/helper/dataValueHelper.js';\n;\nvar RELATIONAL_EXPRESSION_OP_ALIAS_MAP = {\n value: 'eq',\n // PENDING: not good for literal semantic?\n '<': 'lt',\n '<=': 'lte',\n '>': 'gt',\n '>=': 'gte',\n '=': 'eq',\n '!=': 'ne',\n '<>': 'ne' // Might be misleading for sake of the difference between '==' and '===',\n // so don't support them.\n // '==': 'eq',\n // '===': 'seq',\n // '!==': 'sne'\n // PENDING: Whether support some common alias \"ge\", \"le\", \"neq\"?\n // ge: 'gte',\n // le: 'lte',\n // neq: 'ne',\n\n}; // type RelationalExpressionOpEvaluate = (tarVal: unknown, condVal: unknown) => boolean;\n\nvar RegExpEvaluator =\n/** @class */\nfunction () {\n function RegExpEvaluator(rVal) {\n // Support condVal: RegExp | string\n var condValue = this._condVal = isString(rVal) ? new RegExp(rVal) : isRegExp(rVal) ? rVal : null;\n\n if (condValue == null) {\n var errMsg = '';\n\n if (process.env.NODE_ENV !== 'production') {\n errMsg = makePrintable('Illegal regexp', rVal, 'in');\n }\n\n throwError(errMsg);\n }\n }\n\n RegExpEvaluator.prototype.evaluate = function (lVal) {\n var type = typeof lVal;\n return isString(type) ? this._condVal.test(lVal) : isNumber(type) ? this._condVal.test(lVal + '') : false;\n };\n\n return RegExpEvaluator;\n}();\n\nvar ConstConditionInternal =\n/** @class */\nfunction () {\n function ConstConditionInternal() {}\n\n ConstConditionInternal.prototype.evaluate = function () {\n return this.value;\n };\n\n return ConstConditionInternal;\n}();\n\nvar AndConditionInternal =\n/** @class */\nfunction () {\n function AndConditionInternal() {}\n\n AndConditionInternal.prototype.evaluate = function () {\n var children = this.children;\n\n for (var i = 0; i < children.length; i++) {\n if (!children[i].evaluate()) {\n return false;\n }\n }\n\n return true;\n };\n\n return AndConditionInternal;\n}();\n\nvar OrConditionInternal =\n/** @class */\nfunction () {\n function OrConditionInternal() {}\n\n OrConditionInternal.prototype.evaluate = function () {\n var children = this.children;\n\n for (var i = 0; i < children.length; i++) {\n if (children[i].evaluate()) {\n return true;\n }\n }\n\n return false;\n };\n\n return OrConditionInternal;\n}();\n\nvar NotConditionInternal =\n/** @class */\nfunction () {\n function NotConditionInternal() {}\n\n NotConditionInternal.prototype.evaluate = function () {\n return !this.child.evaluate();\n };\n\n return NotConditionInternal;\n}();\n\nvar RelationalConditionInternal =\n/** @class */\nfunction () {\n function RelationalConditionInternal() {}\n\n RelationalConditionInternal.prototype.evaluate = function () {\n var needParse = !!this.valueParser; // Call getValue with no `this`.\n\n var getValue = this.getValue;\n var tarValRaw = getValue(this.valueGetterParam);\n var tarValParsed = needParse ? this.valueParser(tarValRaw) : null; // Relational cond follow \"and\" logic internally.\n\n for (var i = 0; i < this.subCondList.length; i++) {\n if (!this.subCondList[i].evaluate(needParse ? tarValParsed : tarValRaw)) {\n return false;\n }\n }\n\n return true;\n };\n\n return RelationalConditionInternal;\n}();\n\nfunction parseOption(exprOption, getters) {\n if (exprOption === true || exprOption === false) {\n var cond = new ConstConditionInternal();\n cond.value = exprOption;\n return cond;\n }\n\n var errMsg = '';\n\n if (!isObjectNotArray(exprOption)) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = makePrintable('Illegal config. Expect a plain object but actually', exprOption);\n }\n\n throwError(errMsg);\n }\n\n if (exprOption.and) {\n return parseAndOrOption('and', exprOption, getters);\n } else if (exprOption.or) {\n return parseAndOrOption('or', exprOption, getters);\n } else if (exprOption.not) {\n return parseNotOption(exprOption, getters);\n }\n\n return parseRelationalOption(exprOption, getters);\n}\n\nfunction parseAndOrOption(op, exprOption, getters) {\n var subOptionArr = exprOption[op];\n var errMsg = '';\n\n if (process.env.NODE_ENV !== 'production') {\n errMsg = makePrintable('\"and\"/\"or\" condition should only be `' + op + ': [...]` and must not be empty array.', 'Illegal condition:', exprOption);\n }\n\n if (!isArray(subOptionArr)) {\n throwError(errMsg);\n }\n\n if (!subOptionArr.length) {\n throwError(errMsg);\n }\n\n var cond = op === 'and' ? new AndConditionInternal() : new OrConditionInternal();\n cond.children = map(subOptionArr, function (subOption) {\n return parseOption(subOption, getters);\n });\n\n if (!cond.children.length) {\n throwError(errMsg);\n }\n\n return cond;\n}\n\nfunction parseNotOption(exprOption, getters) {\n var subOption = exprOption.not;\n var errMsg = '';\n\n if (process.env.NODE_ENV !== 'production') {\n errMsg = makePrintable('\"not\" condition should only be `not: {}`.', 'Illegal condition:', exprOption);\n }\n\n if (!isObjectNotArray(subOption)) {\n throwError(errMsg);\n }\n\n var cond = new NotConditionInternal();\n cond.child = parseOption(subOption, getters);\n\n if (!cond.child) {\n throwError(errMsg);\n }\n\n return cond;\n}\n\nfunction parseRelationalOption(exprOption, getters) {\n var errMsg = '';\n var valueGetterParam = getters.prepareGetValue(exprOption);\n var subCondList = [];\n var exprKeys = keys(exprOption);\n var parserName = exprOption.parser;\n var valueParser = parserName ? getRawValueParser(parserName) : null;\n\n for (var i = 0; i < exprKeys.length; i++) {\n var keyRaw = exprKeys[i];\n\n if (keyRaw === 'parser' || getters.valueGetterAttrMap.get(keyRaw)) {\n continue;\n }\n\n var op = hasOwn(RELATIONAL_EXPRESSION_OP_ALIAS_MAP, keyRaw) ? RELATIONAL_EXPRESSION_OP_ALIAS_MAP[keyRaw] : keyRaw;\n var condValueRaw = exprOption[keyRaw];\n var condValueParsed = valueParser ? valueParser(condValueRaw) : condValueRaw;\n var evaluator = createFilterComparator(op, condValueParsed) || op === 'reg' && new RegExpEvaluator(condValueParsed);\n\n if (!evaluator) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = makePrintable('Illegal relational operation: \"' + keyRaw + '\" in condition:', exprOption);\n }\n\n throwError(errMsg);\n }\n\n subCondList.push(evaluator);\n }\n\n if (!subCondList.length) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = makePrintable('Relational condition must have at least one operator.', 'Illegal condition:', exprOption);\n } // No relational operator always disabled in case of dangers result.\n\n\n throwError(errMsg);\n }\n\n var cond = new RelationalConditionInternal();\n cond.valueGetterParam = valueGetterParam;\n cond.valueParser = valueParser;\n cond.getValue = getters.getValue;\n cond.subCondList = subCondList;\n return cond;\n}\n\nfunction isObjectNotArray(val) {\n return isObject(val) && !isArrayLike(val);\n}\n\nvar ConditionalExpressionParsed =\n/** @class */\nfunction () {\n function ConditionalExpressionParsed(exprOption, getters) {\n this._cond = parseOption(exprOption, getters);\n }\n\n ConditionalExpressionParsed.prototype.evaluate = function () {\n return this._cond.evaluate();\n };\n\n return ConditionalExpressionParsed;\n}();\n\n;\nexport function parseConditionalExpression(exprOption, getters) {\n return new ConditionalExpressionParsed(exprOption, getters);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport WeakMap from 'zrender/lib/core/WeakMap.js';\nimport LRU from 'zrender/lib/core/LRU.js';\nimport { defaults, map, isArray, isString, isNumber } from 'zrender/lib/core/util.js';\nimport { getLeastCommonMultiple } from './number.js';\nimport { createSymbol } from './symbol.js';\nimport { brushSingle } from 'zrender/lib/canvas/graphic.js';\nimport { platformApi } from 'zrender/lib/core/platform.js';\nvar decalMap = new WeakMap();\nvar decalCache = new LRU(100);\nvar decalKeys = ['symbol', 'symbolSize', 'symbolKeepAspect', 'color', 'backgroundColor', 'dashArrayX', 'dashArrayY', 'maxTileWidth', 'maxTileHeight'];\n/**\n * Create or update pattern image from decal options\n *\n * @param {InnerDecalObject | 'none'} decalObject decal options, 'none' if no decal\n * @return {Pattern} pattern with generated image, null if no decal\n */\n\nexport function createOrUpdatePatternFromDecal(decalObject, api) {\n if (decalObject === 'none') {\n return null;\n }\n\n var dpr = api.getDevicePixelRatio();\n var zr = api.getZr();\n var isSVG = zr.painter.type === 'svg';\n\n if (decalObject.dirty) {\n decalMap[\"delete\"](decalObject);\n }\n\n var oldPattern = decalMap.get(decalObject);\n\n if (oldPattern) {\n return oldPattern;\n }\n\n var decalOpt = defaults(decalObject, {\n symbol: 'rect',\n symbolSize: 1,\n symbolKeepAspect: true,\n color: 'rgba(0, 0, 0, 0.2)',\n backgroundColor: null,\n dashArrayX: 5,\n dashArrayY: 5,\n rotation: 0,\n maxTileWidth: 512,\n maxTileHeight: 512\n });\n\n if (decalOpt.backgroundColor === 'none') {\n decalOpt.backgroundColor = null;\n }\n\n var pattern = {\n repeat: 'repeat'\n };\n setPatternnSource(pattern);\n pattern.rotation = decalOpt.rotation;\n pattern.scaleX = pattern.scaleY = isSVG ? 1 : 1 / dpr;\n decalMap.set(decalObject, pattern);\n decalObject.dirty = false;\n return pattern;\n\n function setPatternnSource(pattern) {\n var keys = [dpr];\n var isValidKey = true;\n\n for (var i = 0; i < decalKeys.length; ++i) {\n var value = decalOpt[decalKeys[i]];\n\n if (value != null && !isArray(value) && !isString(value) && !isNumber(value) && typeof value !== 'boolean') {\n isValidKey = false;\n break;\n }\n\n keys.push(value);\n }\n\n var cacheKey;\n\n if (isValidKey) {\n cacheKey = keys.join(',') + (isSVG ? '-svg' : '');\n var cache = decalCache.get(cacheKey);\n\n if (cache) {\n isSVG ? pattern.svgElement = cache : pattern.image = cache;\n }\n }\n\n var dashArrayX = normalizeDashArrayX(decalOpt.dashArrayX);\n var dashArrayY = normalizeDashArrayY(decalOpt.dashArrayY);\n var symbolArray = normalizeSymbolArray(decalOpt.symbol);\n var lineBlockLengthsX = getLineBlockLengthX(dashArrayX);\n var lineBlockLengthY = getLineBlockLengthY(dashArrayY);\n var canvas = !isSVG && platformApi.createCanvas();\n var svgRoot = isSVG && {\n tag: 'g',\n attrs: {},\n key: 'dcl',\n children: []\n };\n var pSize = getPatternSize();\n var ctx;\n\n if (canvas) {\n canvas.width = pSize.width * dpr;\n canvas.height = pSize.height * dpr;\n ctx = canvas.getContext('2d');\n }\n\n brushDecal();\n\n if (isValidKey) {\n decalCache.put(cacheKey, canvas || svgRoot);\n }\n\n pattern.image = canvas;\n pattern.svgElement = svgRoot;\n pattern.svgWidth = pSize.width;\n pattern.svgHeight = pSize.height;\n /**\n * Get minimum length that can make a repeatable pattern.\n *\n * @return {Object} pattern width and height\n */\n\n function getPatternSize() {\n /**\n * For example, if dash is [[3, 2], [2, 1]] for X, it looks like\n * |--- --- --- --- --- ...\n * |-- -- -- -- -- -- -- -- ...\n * |--- --- --- --- --- ...\n * |-- -- -- -- -- -- -- -- ...\n * So the minimum length of X is 15,\n * which is the least common multiple of `3 + 2` and `2 + 1`\n * |--- --- --- |--- --- ...\n * |-- -- -- -- -- |-- -- -- ...\n */\n var width = 1;\n\n for (var i = 0, xlen = lineBlockLengthsX.length; i < xlen; ++i) {\n width = getLeastCommonMultiple(width, lineBlockLengthsX[i]);\n }\n\n var symbolRepeats = 1;\n\n for (var i = 0, xlen = symbolArray.length; i < xlen; ++i) {\n symbolRepeats = getLeastCommonMultiple(symbolRepeats, symbolArray[i].length);\n }\n\n width *= symbolRepeats;\n var height = lineBlockLengthY * lineBlockLengthsX.length * symbolArray.length;\n\n if (process.env.NODE_ENV !== 'production') {\n var warn = function (attrName) {\n /* eslint-disable-next-line */\n console.warn(\"Calculated decal size is greater than \" + attrName + \" due to decal option settings so \" + attrName + \" is used for the decal size. Please consider changing the decal option to make a smaller decal or set \" + attrName + \" to be larger to avoid incontinuity.\");\n };\n\n if (width > decalOpt.maxTileWidth) {\n warn('maxTileWidth');\n }\n\n if (height > decalOpt.maxTileHeight) {\n warn('maxTileHeight');\n }\n }\n\n return {\n width: Math.max(1, Math.min(width, decalOpt.maxTileWidth)),\n height: Math.max(1, Math.min(height, decalOpt.maxTileHeight))\n };\n }\n\n function brushDecal() {\n if (ctx) {\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n\n if (decalOpt.backgroundColor) {\n ctx.fillStyle = decalOpt.backgroundColor;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n }\n }\n\n var ySum = 0;\n\n for (var i = 0; i < dashArrayY.length; ++i) {\n ySum += dashArrayY[i];\n }\n\n if (ySum <= 0) {\n // dashArrayY is 0, draw nothing\n return;\n }\n\n var y = -lineBlockLengthY;\n var yId = 0;\n var yIdTotal = 0;\n var xId0 = 0;\n\n while (y < pSize.height) {\n if (yId % 2 === 0) {\n var symbolYId = yIdTotal / 2 % symbolArray.length;\n var x = 0;\n var xId1 = 0;\n var xId1Total = 0;\n\n while (x < pSize.width * 2) {\n var xSum = 0;\n\n for (var i = 0; i < dashArrayX[xId0].length; ++i) {\n xSum += dashArrayX[xId0][i];\n }\n\n if (xSum <= 0) {\n // Skip empty line\n break;\n } // E.g., [15, 5, 20, 5] draws only for 15 and 20\n\n\n if (xId1 % 2 === 0) {\n var size = (1 - decalOpt.symbolSize) * 0.5;\n var left = x + dashArrayX[xId0][xId1] * size;\n var top_1 = y + dashArrayY[yId] * size;\n var width = dashArrayX[xId0][xId1] * decalOpt.symbolSize;\n var height = dashArrayY[yId] * decalOpt.symbolSize;\n var symbolXId = xId1Total / 2 % symbolArray[symbolYId].length;\n brushSymbol(left, top_1, width, height, symbolArray[symbolYId][symbolXId]);\n }\n\n x += dashArrayX[xId0][xId1];\n ++xId1Total;\n ++xId1;\n\n if (xId1 === dashArrayX[xId0].length) {\n xId1 = 0;\n }\n }\n\n ++xId0;\n\n if (xId0 === dashArrayX.length) {\n xId0 = 0;\n }\n }\n\n y += dashArrayY[yId];\n ++yIdTotal;\n ++yId;\n\n if (yId === dashArrayY.length) {\n yId = 0;\n }\n }\n\n function brushSymbol(x, y, width, height, symbolType) {\n var scale = isSVG ? 1 : dpr;\n var symbol = createSymbol(symbolType, x * scale, y * scale, width * scale, height * scale, decalOpt.color, decalOpt.symbolKeepAspect);\n\n if (isSVG) {\n var symbolVNode = zr.painter.renderOneToVNode(symbol);\n\n if (symbolVNode) {\n svgRoot.children.push(symbolVNode);\n }\n } else {\n // Paint to canvas for all other renderers.\n brushSingle(ctx, symbol);\n }\n }\n }\n }\n}\n/**\n * Convert symbol array into normalized array\n *\n * @param {string | (string | string[])[]} symbol symbol input\n * @return {string[][]} normolized symbol array\n */\n\nfunction normalizeSymbolArray(symbol) {\n if (!symbol || symbol.length === 0) {\n return [['rect']];\n }\n\n if (isString(symbol)) {\n return [[symbol]];\n }\n\n var isAllString = true;\n\n for (var i = 0; i < symbol.length; ++i) {\n if (!isString(symbol[i])) {\n isAllString = false;\n break;\n }\n }\n\n if (isAllString) {\n return normalizeSymbolArray([symbol]);\n }\n\n var result = [];\n\n for (var i = 0; i < symbol.length; ++i) {\n if (isString(symbol[i])) {\n result.push([symbol[i]]);\n } else {\n result.push(symbol[i]);\n }\n }\n\n return result;\n}\n/**\n * Convert dash input into dashArray\n *\n * @param {DecalDashArrayX} dash dash input\n * @return {number[][]} normolized dash array\n */\n\n\nfunction normalizeDashArrayX(dash) {\n if (!dash || dash.length === 0) {\n return [[0, 0]];\n }\n\n if (isNumber(dash)) {\n var dashValue = Math.ceil(dash);\n return [[dashValue, dashValue]];\n }\n /**\n * [20, 5] should be normalized into [[20, 5]],\n * while [20, [5, 10]] should be normalized into [[20, 20], [5, 10]]\n */\n\n\n var isAllNumber = true;\n\n for (var i = 0; i < dash.length; ++i) {\n if (!isNumber(dash[i])) {\n isAllNumber = false;\n break;\n }\n }\n\n if (isAllNumber) {\n return normalizeDashArrayX([dash]);\n }\n\n var result = [];\n\n for (var i = 0; i < dash.length; ++i) {\n if (isNumber(dash[i])) {\n var dashValue = Math.ceil(dash[i]);\n result.push([dashValue, dashValue]);\n } else {\n var dashValue = map(dash[i], function (n) {\n return Math.ceil(n);\n });\n\n if (dashValue.length % 2 === 1) {\n // [4, 2, 1] means |---- - -- |---- - -- |\n // so normalize it to be [4, 2, 1, 4, 2, 1]\n result.push(dashValue.concat(dashValue));\n } else {\n result.push(dashValue);\n }\n }\n }\n\n return result;\n}\n/**\n * Convert dash input into dashArray\n *\n * @param {DecalDashArrayY} dash dash input\n * @return {number[]} normolized dash array\n */\n\n\nfunction normalizeDashArrayY(dash) {\n if (!dash || typeof dash === 'object' && dash.length === 0) {\n return [0, 0];\n }\n\n if (isNumber(dash)) {\n var dashValue_1 = Math.ceil(dash);\n return [dashValue_1, dashValue_1];\n }\n\n var dashValue = map(dash, function (n) {\n return Math.ceil(n);\n });\n return dash.length % 2 ? dashValue.concat(dashValue) : dashValue;\n}\n/**\n * Get block length of each line. A block is the length of dash line and space.\n * For example, a line with [4, 1] has a dash line of 4 and a space of 1 after\n * that, so the block length of this line is 5.\n *\n * @param {number[][]} dash dash array of X or Y\n * @return {number[]} block length of each line\n */\n\n\nfunction getLineBlockLengthX(dash) {\n return map(dash, function (line) {\n return getLineBlockLengthY(line);\n });\n}\n\nfunction getLineBlockLengthY(dash) {\n var blockLength = 0;\n\n for (var i = 0; i < dash.length; ++i) {\n blockLength += dash[i];\n }\n\n if (dash.length % 2 === 1) {\n // [4, 2, 1] means |---- - -- |---- - -- |\n // So total length is (4 + 2 + 1) * 2\n return blockLength * 2;\n }\n\n return blockLength;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nexport function findEventDispatcher(target, det, returnFirstMatch) {\n var found;\n\n while (target) {\n if (det(target)) {\n found = target;\n\n if (returnFirstMatch) {\n break;\n }\n }\n\n target = target.__hostTarget || target.parent;\n }\n\n return found;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { encodeHTML } from 'zrender/lib/core/dom.js';\nimport { parseDate, isNumeric, numericToNumber } from './number.js';\nimport { format as timeFormat, pad } from './time.js';\nimport { deprecateReplaceLog } from './log.js';\n/**\n * Add a comma each three digit.\n */\n\nexport function addCommas(x) {\n if (!isNumeric(x)) {\n return zrUtil.isString(x) ? x : '-';\n }\n\n var parts = (x + '').split('.');\n return parts[0].replace(/(\\d{1,3})(?=(?:\\d{3})+(?!\\d))/g, '$1,') + (parts.length > 1 ? '.' + parts[1] : '');\n}\nexport function toCamelCase(str, upperCaseFirst) {\n str = (str || '').toLowerCase().replace(/-(.)/g, function (match, group1) {\n return group1.toUpperCase();\n });\n\n if (upperCaseFirst && str) {\n str = str.charAt(0).toUpperCase() + str.slice(1);\n }\n\n return str;\n}\nexport var normalizeCssArray = zrUtil.normalizeCssArray;\nexport { encodeHTML };\n/**\n * Make value user readable for tooltip and label.\n * \"User readable\":\n * Try to not print programmer-specific text like NaN, Infinity, null, undefined.\n * Avoid to display an empty string, which users can not recognize there is\n * a value and it might look like a bug.\n */\n\nexport function makeValueReadable(value, valueType, useUTC) {\n var USER_READABLE_DEFUALT_TIME_PATTERN = '{yyyy}-{MM}-{dd} {HH}:{mm}:{ss}';\n\n function stringToUserReadable(str) {\n return str && zrUtil.trim(str) ? str : '-';\n }\n\n function isNumberUserReadable(num) {\n return !!(num != null && !isNaN(num) && isFinite(num));\n }\n\n var isTypeTime = valueType === 'time';\n var isValueDate = value instanceof Date;\n\n if (isTypeTime || isValueDate) {\n var date = isTypeTime ? parseDate(value) : value;\n\n if (!isNaN(+date)) {\n return timeFormat(date, USER_READABLE_DEFUALT_TIME_PATTERN, useUTC);\n } else if (isValueDate) {\n return '-';\n } // In other cases, continue to try to display the value in the following code.\n\n }\n\n if (valueType === 'ordinal') {\n return zrUtil.isStringSafe(value) ? stringToUserReadable(value) : zrUtil.isNumber(value) ? isNumberUserReadable(value) ? value + '' : '-' : '-';\n } // By default.\n\n\n var numericResult = numericToNumber(value);\n return isNumberUserReadable(numericResult) ? addCommas(numericResult) : zrUtil.isStringSafe(value) ? stringToUserReadable(value) : typeof value === 'boolean' ? value + '' : '-';\n}\nvar TPL_VAR_ALIAS = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];\n\nvar wrapVar = function (varName, seriesIdx) {\n return '{' + varName + (seriesIdx == null ? '' : seriesIdx) + '}';\n};\n/**\n * Template formatter\n * @param {Array.|Object} paramsList\n */\n\n\nexport function formatTpl(tpl, paramsList, encode) {\n if (!zrUtil.isArray(paramsList)) {\n paramsList = [paramsList];\n }\n\n var seriesLen = paramsList.length;\n\n if (!seriesLen) {\n return '';\n }\n\n var $vars = paramsList[0].$vars || [];\n\n for (var i = 0; i < $vars.length; i++) {\n var alias = TPL_VAR_ALIAS[i];\n tpl = tpl.replace(wrapVar(alias), wrapVar(alias, 0));\n }\n\n for (var seriesIdx = 0; seriesIdx < seriesLen; seriesIdx++) {\n for (var k = 0; k < $vars.length; k++) {\n var val = paramsList[seriesIdx][$vars[k]];\n tpl = tpl.replace(wrapVar(TPL_VAR_ALIAS[k], seriesIdx), encode ? encodeHTML(val) : val);\n }\n }\n\n return tpl;\n}\n/**\n * simple Template formatter\n */\n\nexport function formatTplSimple(tpl, param, encode) {\n zrUtil.each(param, function (value, key) {\n tpl = tpl.replace('{' + key + '}', encode ? encodeHTML(value) : value);\n });\n return tpl;\n}\nexport function getTooltipMarker(inOpt, extraCssText) {\n var opt = zrUtil.isString(inOpt) ? {\n color: inOpt,\n extraCssText: extraCssText\n } : inOpt || {};\n var color = opt.color;\n var type = opt.type;\n extraCssText = opt.extraCssText;\n var renderMode = opt.renderMode || 'html';\n\n if (!color) {\n return '';\n }\n\n if (renderMode === 'html') {\n return type === 'subItem' ? '' : '';\n } else {\n // Should better not to auto generate style name by auto-increment number here.\n // Because this util is usually called in tooltip formatter, which is probably\n // called repeatedly when mouse move and the auto-increment number increases fast.\n // Users can make their own style name by theirselves, make it unique and readable.\n var markerId = opt.markerId || 'markerX';\n return {\n renderMode: renderMode,\n content: '{' + markerId + '|} ',\n style: type === 'subItem' ? {\n width: 4,\n height: 4,\n borderRadius: 2,\n backgroundColor: color\n } : {\n width: 10,\n height: 10,\n borderRadius: 5,\n backgroundColor: color\n }\n };\n }\n}\n/**\n * @deprecated Use `time/format` instead.\n * ISO Date format\n * @param {string} tpl\n * @param {number} value\n * @param {boolean} [isUTC=false] Default in local time.\n * see `module:echarts/scale/Time`\n * and `module:echarts/util/number#parseDate`.\n * @inner\n */\n\nexport function formatTime(tpl, value, isUTC) {\n if (process.env.NODE_ENV !== 'production') {\n deprecateReplaceLog('echarts.format.formatTime', 'echarts.time.format');\n }\n\n if (tpl === 'week' || tpl === 'month' || tpl === 'quarter' || tpl === 'half-year' || tpl === 'year') {\n tpl = 'MM-dd\\nyyyy';\n }\n\n var date = parseDate(value);\n var getUTC = isUTC ? 'getUTC' : 'get';\n var y = date[getUTC + 'FullYear']();\n var M = date[getUTC + 'Month']() + 1;\n var d = date[getUTC + 'Date']();\n var h = date[getUTC + 'Hours']();\n var m = date[getUTC + 'Minutes']();\n var s = date[getUTC + 'Seconds']();\n var S = date[getUTC + 'Milliseconds']();\n tpl = tpl.replace('MM', pad(M, 2)).replace('M', M).replace('yyyy', y).replace('yy', pad(y % 100 + '', 2)).replace('dd', pad(d, 2)).replace('d', d).replace('hh', pad(h, 2)).replace('h', h).replace('mm', pad(m, 2)).replace('m', m).replace('ss', pad(s, 2)).replace('s', s).replace('SSS', pad(S, 3));\n return tpl;\n}\n/**\n * Capital first\n * @param {string} str\n * @return {string}\n */\n\nexport function capitalFirst(str) {\n return str ? str.charAt(0).toUpperCase() + str.substr(1) : str;\n}\n/**\n * @return Never be null/undefined.\n */\n\nexport function convertToColorString(color, defaultColor) {\n defaultColor = defaultColor || 'transparent';\n return zrUtil.isString(color) ? color : zrUtil.isObject(color) ? color.colorStops && (color.colorStops[0] || {}).color || defaultColor : defaultColor;\n}\nexport { truncateText } from 'zrender/lib/graphic/helper/parseText.js';\n/**\n * open new tab\n * @param link url\n * @param target blank or self\n */\n\nexport function windowOpen(link, target) {\n /* global window */\n if (target === '_blank' || target === 'blank') {\n var blank = window.open();\n blank.opener = null;\n blank.location.href = link;\n } else {\n window.open(link, target);\n }\n}\nexport { getTextRect } from '../legacy/getTextRect.js';","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as pathTool from 'zrender/lib/tool/path.js';\nimport * as matrix from 'zrender/lib/core/matrix.js';\nimport * as vector from 'zrender/lib/core/vector.js';\nimport Path from 'zrender/lib/graphic/Path.js';\nimport Transformable from 'zrender/lib/core/Transformable.js';\nimport ZRImage from 'zrender/lib/graphic/Image.js';\nimport Group from 'zrender/lib/graphic/Group.js';\nimport ZRText from 'zrender/lib/graphic/Text.js';\nimport Circle from 'zrender/lib/graphic/shape/Circle.js';\nimport Ellipse from 'zrender/lib/graphic/shape/Ellipse.js';\nimport Sector from 'zrender/lib/graphic/shape/Sector.js';\nimport Ring from 'zrender/lib/graphic/shape/Ring.js';\nimport Polygon from 'zrender/lib/graphic/shape/Polygon.js';\nimport Polyline from 'zrender/lib/graphic/shape/Polyline.js';\nimport Rect from 'zrender/lib/graphic/shape/Rect.js';\nimport Line from 'zrender/lib/graphic/shape/Line.js';\nimport BezierCurve from 'zrender/lib/graphic/shape/BezierCurve.js';\nimport Arc from 'zrender/lib/graphic/shape/Arc.js';\nimport CompoundPath from 'zrender/lib/graphic/CompoundPath.js';\nimport LinearGradient from 'zrender/lib/graphic/LinearGradient.js';\nimport RadialGradient from 'zrender/lib/graphic/RadialGradient.js';\nimport BoundingRect from 'zrender/lib/core/BoundingRect.js';\nimport OrientedBoundingRect from 'zrender/lib/core/OrientedBoundingRect.js';\nimport Point from 'zrender/lib/core/Point.js';\nimport IncrementalDisplayable from 'zrender/lib/graphic/IncrementalDisplayable.js';\nimport * as subPixelOptimizeUtil from 'zrender/lib/graphic/helper/subPixelOptimize.js';\nimport { extend, isArrayLike, map, defaults, isString, keys, each, hasOwn, isArray } from 'zrender/lib/core/util.js';\nimport { getECData } from './innerStore.js';\nimport { updateProps, initProps, removeElement, removeElementWithFadeOut, isElementRemoved } from '../animation/basicTransition.js';\n/**\n * @deprecated export for compatitable reason\n */\n\nexport { updateProps, initProps, removeElement, removeElementWithFadeOut, isElementRemoved };\nvar mathMax = Math.max;\nvar mathMin = Math.min;\nvar _customShapeMap = {};\n/**\n * Extend shape with parameters\n */\n\nexport function extendShape(opts) {\n return Path.extend(opts);\n}\nvar extendPathFromString = pathTool.extendFromString;\n/**\n * Extend path\n */\n\nexport function extendPath(pathData, opts) {\n return extendPathFromString(pathData, opts);\n}\n/**\n * Register a user defined shape.\n * The shape class can be fetched by `getShapeClass`\n * This method will overwrite the registered shapes, including\n * the registered built-in shapes, if using the same `name`.\n * The shape can be used in `custom series` and\n * `graphic component` by declaring `{type: name}`.\n *\n * @param name\n * @param ShapeClass Can be generated by `extendShape`.\n */\n\nexport function registerShape(name, ShapeClass) {\n _customShapeMap[name] = ShapeClass;\n}\n/**\n * Find shape class registered by `registerShape`. Usually used in\n * fetching user defined shape.\n *\n * [Caution]:\n * (1) This method **MUST NOT be used inside echarts !!!**, unless it is prepared\n * to use user registered shapes.\n * Because the built-in shape (see `getBuiltInShape`) will be registered by\n * `registerShape` by default. That enables users to get both built-in\n * shapes as well as the shapes belonging to themsleves. But users can overwrite\n * the built-in shapes by using names like 'circle', 'rect' via calling\n * `registerShape`. So the echarts inner featrues should not fetch shapes from here\n * in case that it is overwritten by users, except that some features, like\n * `custom series`, `graphic component`, do it deliberately.\n *\n * (2) In the features like `custom series`, `graphic component`, the user input\n * `{tpye: 'xxx'}` does not only specify shapes but also specify other graphic\n * elements like `'group'`, `'text'`, `'image'` or event `'path'`. Those names\n * are reserved names, that is, if some user registers a shape named `'image'`,\n * the shape will not be used. If we intending to add some more reserved names\n * in feature, that might bring break changes (disable some existing user shape\n * names). But that case probably rarely happens. So we don't make more mechanism\n * to resolve this issue here.\n *\n * @param name\n * @return The shape class. If not found, return nothing.\n */\n\nexport function getShapeClass(name) {\n if (_customShapeMap.hasOwnProperty(name)) {\n return _customShapeMap[name];\n }\n}\n/**\n * Create a path element from path data string\n * @param pathData\n * @param opts\n * @param rect\n * @param layout 'center' or 'cover' default to be cover\n */\n\nexport function makePath(pathData, opts, rect, layout) {\n var path = pathTool.createFromString(pathData, opts);\n\n if (rect) {\n if (layout === 'center') {\n rect = centerGraphic(rect, path.getBoundingRect());\n }\n\n resizePath(path, rect);\n }\n\n return path;\n}\n/**\n * Create a image element from image url\n * @param imageUrl image url\n * @param opts options\n * @param rect constrain rect\n * @param layout 'center' or 'cover'. Default to be 'cover'\n */\n\nexport function makeImage(imageUrl, rect, layout) {\n var zrImg = new ZRImage({\n style: {\n image: imageUrl,\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height\n },\n onload: function (img) {\n if (layout === 'center') {\n var boundingRect = {\n width: img.width,\n height: img.height\n };\n zrImg.setStyle(centerGraphic(rect, boundingRect));\n }\n }\n });\n return zrImg;\n}\n/**\n * Get position of centered element in bounding box.\n *\n * @param rect element local bounding box\n * @param boundingRect constraint bounding box\n * @return element position containing x, y, width, and height\n */\n\nfunction centerGraphic(rect, boundingRect) {\n // Set rect to center, keep width / height ratio.\n var aspect = boundingRect.width / boundingRect.height;\n var width = rect.height * aspect;\n var height;\n\n if (width <= rect.width) {\n height = rect.height;\n } else {\n width = rect.width;\n height = width / aspect;\n }\n\n var cx = rect.x + rect.width / 2;\n var cy = rect.y + rect.height / 2;\n return {\n x: cx - width / 2,\n y: cy - height / 2,\n width: width,\n height: height\n };\n}\n\nexport var mergePath = pathTool.mergePath;\n/**\n * Resize a path to fit the rect\n * @param path\n * @param rect\n */\n\nexport function resizePath(path, rect) {\n if (!path.applyTransform) {\n return;\n }\n\n var pathRect = path.getBoundingRect();\n var m = pathRect.calculateTransform(rect);\n path.applyTransform(m);\n}\n/**\n * Sub pixel optimize line for canvas\n */\n\nexport function subPixelOptimizeLine(shape, lineWidth) {\n subPixelOptimizeUtil.subPixelOptimizeLine(shape, shape, {\n lineWidth: lineWidth\n });\n return shape;\n}\n/**\n * Sub pixel optimize rect for canvas\n */\n\nexport function subPixelOptimizeRect(param) {\n subPixelOptimizeUtil.subPixelOptimizeRect(param.shape, param.shape, param.style);\n return param;\n}\n/**\n * Sub pixel optimize for canvas\n *\n * @param position Coordinate, such as x, y\n * @param lineWidth Should be nonnegative integer.\n * @param positiveOrNegative Default false (negative).\n * @return Optimized position.\n */\n\nexport var subPixelOptimize = subPixelOptimizeUtil.subPixelOptimize;\n/**\n * Get transform matrix of target (param target),\n * in coordinate of its ancestor (param ancestor)\n *\n * @param target\n * @param [ancestor]\n */\n\nexport function getTransform(target, ancestor) {\n var mat = matrix.identity([]);\n\n while (target && target !== ancestor) {\n matrix.mul(mat, target.getLocalTransform(), mat);\n target = target.parent;\n }\n\n return mat;\n}\n/**\n * Apply transform to an vertex.\n * @param target [x, y]\n * @param transform Can be:\n * + Transform matrix: like [1, 0, 0, 1, 0, 0]\n * + {position, rotation, scale}, the same as `zrender/Transformable`.\n * @param invert Whether use invert matrix.\n * @return [x, y]\n */\n\nexport function applyTransform(target, transform, invert) {\n if (transform && !isArrayLike(transform)) {\n transform = Transformable.getLocalTransform(transform);\n }\n\n if (invert) {\n transform = matrix.invert([], transform);\n }\n\n return vector.applyTransform([], target, transform);\n}\n/**\n * @param direction 'left' 'right' 'top' 'bottom'\n * @param transform Transform matrix: like [1, 0, 0, 1, 0, 0]\n * @param invert Whether use invert matrix.\n * @return Transformed direction. 'left' 'right' 'top' 'bottom'\n */\n\nexport function transformDirection(direction, transform, invert) {\n // Pick a base, ensure that transform result will not be (0, 0).\n var hBase = transform[4] === 0 || transform[5] === 0 || transform[0] === 0 ? 1 : Math.abs(2 * transform[4] / transform[0]);\n var vBase = transform[4] === 0 || transform[5] === 0 || transform[2] === 0 ? 1 : Math.abs(2 * transform[4] / transform[2]);\n var vertex = [direction === 'left' ? -hBase : direction === 'right' ? hBase : 0, direction === 'top' ? -vBase : direction === 'bottom' ? vBase : 0];\n vertex = applyTransform(vertex, transform, invert);\n return Math.abs(vertex[0]) > Math.abs(vertex[1]) ? vertex[0] > 0 ? 'right' : 'left' : vertex[1] > 0 ? 'bottom' : 'top';\n}\n\nfunction isNotGroup(el) {\n return !el.isGroup;\n}\n\nfunction isPath(el) {\n return el.shape != null;\n}\n/**\n * Apply group transition animation from g1 to g2.\n * If no animatableModel, no animation.\n */\n\n\nexport function groupTransition(g1, g2, animatableModel) {\n if (!g1 || !g2) {\n return;\n }\n\n function getElMap(g) {\n var elMap = {};\n g.traverse(function (el) {\n if (isNotGroup(el) && el.anid) {\n elMap[el.anid] = el;\n }\n });\n return elMap;\n }\n\n function getAnimatableProps(el) {\n var obj = {\n x: el.x,\n y: el.y,\n rotation: el.rotation\n };\n\n if (isPath(el)) {\n obj.shape = extend({}, el.shape);\n }\n\n return obj;\n }\n\n var elMap1 = getElMap(g1);\n g2.traverse(function (el) {\n if (isNotGroup(el) && el.anid) {\n var oldEl = elMap1[el.anid];\n\n if (oldEl) {\n var newProp = getAnimatableProps(el);\n el.attr(getAnimatableProps(oldEl));\n updateProps(el, newProp, animatableModel, getECData(el).dataIndex);\n }\n }\n });\n}\nexport function clipPointsByRect(points, rect) {\n // FIXME: This way might be incorrect when graphic clipped by a corner\n // and when element has a border.\n return map(points, function (point) {\n var x = point[0];\n x = mathMax(x, rect.x);\n x = mathMin(x, rect.x + rect.width);\n var y = point[1];\n y = mathMax(y, rect.y);\n y = mathMin(y, rect.y + rect.height);\n return [x, y];\n });\n}\n/**\n * Return a new clipped rect. If rect size are negative, return undefined.\n */\n\nexport function clipRectByRect(targetRect, rect) {\n var x = mathMax(targetRect.x, rect.x);\n var x2 = mathMin(targetRect.x + targetRect.width, rect.x + rect.width);\n var y = mathMax(targetRect.y, rect.y);\n var y2 = mathMin(targetRect.y + targetRect.height, rect.y + rect.height); // If the total rect is cliped, nothing, including the border,\n // should be painted. So return undefined.\n\n if (x2 >= x && y2 >= y) {\n return {\n x: x,\n y: y,\n width: x2 - x,\n height: y2 - y\n };\n }\n}\nexport function createIcon(iconStr, // Support 'image://' or 'path://' or direct svg path.\nopt, rect) {\n var innerOpts = extend({\n rectHover: true\n }, opt);\n var style = innerOpts.style = {\n strokeNoScale: true\n };\n rect = rect || {\n x: -1,\n y: -1,\n width: 2,\n height: 2\n };\n\n if (iconStr) {\n return iconStr.indexOf('image://') === 0 ? (style.image = iconStr.slice(8), defaults(style, rect), new ZRImage(innerOpts)) : makePath(iconStr.replace('path://', ''), innerOpts, rect, 'center');\n }\n}\n/**\n * Return `true` if the given line (line `a`) and the given polygon\n * are intersect.\n * Note that we do not count colinear as intersect here because no\n * requirement for that. We could do that if required in future.\n */\n\nexport function linePolygonIntersect(a1x, a1y, a2x, a2y, points) {\n for (var i = 0, p2 = points[points.length - 1]; i < points.length; i++) {\n var p = points[i];\n\n if (lineLineIntersect(a1x, a1y, a2x, a2y, p[0], p[1], p2[0], p2[1])) {\n return true;\n }\n\n p2 = p;\n }\n}\n/**\n * Return `true` if the given two lines (line `a` and line `b`)\n * are intersect.\n * Note that we do not count colinear as intersect here because no\n * requirement for that. We could do that if required in future.\n */\n\nexport function lineLineIntersect(a1x, a1y, a2x, a2y, b1x, b1y, b2x, b2y) {\n // let `vec_m` to be `vec_a2 - vec_a1` and `vec_n` to be `vec_b2 - vec_b1`.\n var mx = a2x - a1x;\n var my = a2y - a1y;\n var nx = b2x - b1x;\n var ny = b2y - b1y; // `vec_m` and `vec_n` are parallel iff\n // existing `k` such that `vec_m = k · vec_n`, equivalent to `vec_m X vec_n = 0`.\n\n var nmCrossProduct = crossProduct2d(nx, ny, mx, my);\n\n if (nearZero(nmCrossProduct)) {\n return false;\n } // `vec_m` and `vec_n` are intersect iff\n // existing `p` and `q` in [0, 1] such that `vec_a1 + p * vec_m = vec_b1 + q * vec_n`,\n // such that `q = ((vec_a1 - vec_b1) X vec_m) / (vec_n X vec_m)`\n // and `p = ((vec_a1 - vec_b1) X vec_n) / (vec_n X vec_m)`.\n\n\n var b1a1x = a1x - b1x;\n var b1a1y = a1y - b1y;\n var q = crossProduct2d(b1a1x, b1a1y, mx, my) / nmCrossProduct;\n\n if (q < 0 || q > 1) {\n return false;\n }\n\n var p = crossProduct2d(b1a1x, b1a1y, nx, ny) / nmCrossProduct;\n\n if (p < 0 || p > 1) {\n return false;\n }\n\n return true;\n}\n/**\n * Cross product of 2-dimension vector.\n */\n\nfunction crossProduct2d(x1, y1, x2, y2) {\n return x1 * y2 - x2 * y1;\n}\n\nfunction nearZero(val) {\n return val <= 1e-6 && val >= -1e-6;\n}\n\nexport function setTooltipConfig(opt) {\n var itemTooltipOption = opt.itemTooltipOption;\n var componentModel = opt.componentModel;\n var itemName = opt.itemName;\n var itemTooltipOptionObj = isString(itemTooltipOption) ? {\n formatter: itemTooltipOption\n } : itemTooltipOption;\n var mainType = componentModel.mainType;\n var componentIndex = componentModel.componentIndex;\n var formatterParams = {\n componentType: mainType,\n name: itemName,\n $vars: ['name']\n };\n formatterParams[mainType + 'Index'] = componentIndex;\n var formatterParamsExtra = opt.formatterParamsExtra;\n\n if (formatterParamsExtra) {\n each(keys(formatterParamsExtra), function (key) {\n if (!hasOwn(formatterParams, key)) {\n formatterParams[key] = formatterParamsExtra[key];\n formatterParams.$vars.push(key);\n }\n });\n }\n\n var ecData = getECData(opt.el);\n ecData.componentMainType = mainType;\n ecData.componentIndex = componentIndex;\n ecData.tooltipConfig = {\n name: itemName,\n option: defaults({\n content: itemName,\n formatterParams: formatterParams\n }, itemTooltipOptionObj)\n };\n}\n\nfunction traverseElement(el, cb) {\n var stopped; // TODO\n // Polyfill for fixing zrender group traverse don't visit it's root issue.\n\n if (el.isGroup) {\n stopped = cb(el);\n }\n\n if (!stopped) {\n el.traverse(cb);\n }\n}\n\nexport function traverseElements(els, cb) {\n if (els) {\n if (isArray(els)) {\n for (var i = 0; i < els.length; i++) {\n traverseElement(els[i], cb);\n }\n } else {\n traverseElement(els, cb);\n }\n }\n} // Register built-in shapes. These shapes might be overwritten\n// by users, although we do not recommend that.\n\nregisterShape('circle', Circle);\nregisterShape('ellipse', Ellipse);\nregisterShape('sector', Sector);\nregisterShape('ring', Ring);\nregisterShape('polygon', Polygon);\nregisterShape('polyline', Polyline);\nregisterShape('rect', Rect);\nregisterShape('line', Line);\nregisterShape('bezierCurve', BezierCurve);\nregisterShape('arc', Arc);\nexport { Group, ZRImage as Image, ZRText as Text, Circle, Ellipse, Sector, Ring, Polygon, Polyline, Rect, Line, BezierCurve, Arc, IncrementalDisplayable, CompoundPath, LinearGradient, RadialGradient, BoundingRect, OrientedBoundingRect, Point, Path };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { makeInner } from './model.js';\nexport var getECData = makeInner();\nexport var setCommonECData = function (seriesIndex, dataType, dataIdx, el) {\n if (el) {\n var ecData = getECData(el); // Add data index and series index for indexing the data by element\n // Useful in tooltip\n\n ecData.dataIndex = dataIdx;\n ecData.dataType = dataType;\n ecData.seriesIndex = seriesIndex; // TODO: not store dataIndex on children.\n\n if (el.type === 'group') {\n el.traverse(function (child) {\n var childECData = getECData(child);\n childECData.seriesIndex = seriesIndex;\n childECData.dataIndex = dataIdx;\n childECData.dataType = dataType;\n });\n }\n }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Layout helpers for each component positioning\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport BoundingRect from 'zrender/lib/core/BoundingRect.js';\nimport { parsePercent } from './number.js';\nimport * as formatUtil from './format.js';\nvar each = zrUtil.each;\n/**\n * @public\n */\n\nexport var LOCATION_PARAMS = ['left', 'right', 'top', 'bottom', 'width', 'height'];\n/**\n * @public\n */\n\nexport var HV_NAMES = [['width', 'left', 'right'], ['height', 'top', 'bottom']];\n\nfunction boxLayout(orient, group, gap, maxWidth, maxHeight) {\n var x = 0;\n var y = 0;\n\n if (maxWidth == null) {\n maxWidth = Infinity;\n }\n\n if (maxHeight == null) {\n maxHeight = Infinity;\n }\n\n var currentLineMaxSize = 0;\n group.eachChild(function (child, idx) {\n var rect = child.getBoundingRect();\n var nextChild = group.childAt(idx + 1);\n var nextChildRect = nextChild && nextChild.getBoundingRect();\n var nextX;\n var nextY;\n\n if (orient === 'horizontal') {\n var moveX = rect.width + (nextChildRect ? -nextChildRect.x + rect.x : 0);\n nextX = x + moveX; // Wrap when width exceeds maxWidth or meet a `newline` group\n // FIXME compare before adding gap?\n\n if (nextX > maxWidth || child.newline) {\n x = 0;\n nextX = moveX;\n y += currentLineMaxSize + gap;\n currentLineMaxSize = rect.height;\n } else {\n // FIXME: consider rect.y is not `0`?\n currentLineMaxSize = Math.max(currentLineMaxSize, rect.height);\n }\n } else {\n var moveY = rect.height + (nextChildRect ? -nextChildRect.y + rect.y : 0);\n nextY = y + moveY; // Wrap when width exceeds maxHeight or meet a `newline` group\n\n if (nextY > maxHeight || child.newline) {\n x += currentLineMaxSize + gap;\n y = 0;\n nextY = moveY;\n currentLineMaxSize = rect.width;\n } else {\n currentLineMaxSize = Math.max(currentLineMaxSize, rect.width);\n }\n }\n\n if (child.newline) {\n return;\n }\n\n child.x = x;\n child.y = y;\n child.markRedraw();\n orient === 'horizontal' ? x = nextX + gap : y = nextY + gap;\n });\n}\n/**\n * VBox or HBox layouting\n * @param {string} orient\n * @param {module:zrender/graphic/Group} group\n * @param {number} gap\n * @param {number} [width=Infinity]\n * @param {number} [height=Infinity]\n */\n\n\nexport var box = boxLayout;\n/**\n * VBox layouting\n * @param {module:zrender/graphic/Group} group\n * @param {number} gap\n * @param {number} [width=Infinity]\n * @param {number} [height=Infinity]\n */\n\nexport var vbox = zrUtil.curry(boxLayout, 'vertical');\n/**\n * HBox layouting\n * @param {module:zrender/graphic/Group} group\n * @param {number} gap\n * @param {number} [width=Infinity]\n * @param {number} [height=Infinity]\n */\n\nexport var hbox = zrUtil.curry(boxLayout, 'horizontal');\n/**\n * If x or x2 is not specified or 'center' 'left' 'right',\n * the width would be as long as possible.\n * If y or y2 is not specified or 'middle' 'top' 'bottom',\n * the height would be as long as possible.\n */\n\nexport function getAvailableSize(positionInfo, containerRect, margin) {\n var containerWidth = containerRect.width;\n var containerHeight = containerRect.height;\n var x = parsePercent(positionInfo.left, containerWidth);\n var y = parsePercent(positionInfo.top, containerHeight);\n var x2 = parsePercent(positionInfo.right, containerWidth);\n var y2 = parsePercent(positionInfo.bottom, containerHeight);\n (isNaN(x) || isNaN(parseFloat(positionInfo.left))) && (x = 0);\n (isNaN(x2) || isNaN(parseFloat(positionInfo.right))) && (x2 = containerWidth);\n (isNaN(y) || isNaN(parseFloat(positionInfo.top))) && (y = 0);\n (isNaN(y2) || isNaN(parseFloat(positionInfo.bottom))) && (y2 = containerHeight);\n margin = formatUtil.normalizeCssArray(margin || 0);\n return {\n width: Math.max(x2 - x - margin[1] - margin[3], 0),\n height: Math.max(y2 - y - margin[0] - margin[2], 0)\n };\n}\n/**\n * Parse position info.\n */\n\nexport function getLayoutRect(positionInfo, containerRect, margin) {\n margin = formatUtil.normalizeCssArray(margin || 0);\n var containerWidth = containerRect.width;\n var containerHeight = containerRect.height;\n var left = parsePercent(positionInfo.left, containerWidth);\n var top = parsePercent(positionInfo.top, containerHeight);\n var right = parsePercent(positionInfo.right, containerWidth);\n var bottom = parsePercent(positionInfo.bottom, containerHeight);\n var width = parsePercent(positionInfo.width, containerWidth);\n var height = parsePercent(positionInfo.height, containerHeight);\n var verticalMargin = margin[2] + margin[0];\n var horizontalMargin = margin[1] + margin[3];\n var aspect = positionInfo.aspect; // If width is not specified, calculate width from left and right\n\n if (isNaN(width)) {\n width = containerWidth - right - horizontalMargin - left;\n }\n\n if (isNaN(height)) {\n height = containerHeight - bottom - verticalMargin - top;\n }\n\n if (aspect != null) {\n // If width and height are not given\n // 1. Graph should not exceeds the container\n // 2. Aspect must be keeped\n // 3. Graph should take the space as more as possible\n // FIXME\n // Margin is not considered, because there is no case that both\n // using margin and aspect so far.\n if (isNaN(width) && isNaN(height)) {\n if (aspect > containerWidth / containerHeight) {\n width = containerWidth * 0.8;\n } else {\n height = containerHeight * 0.8;\n }\n } // Calculate width or height with given aspect\n\n\n if (isNaN(width)) {\n width = aspect * height;\n }\n\n if (isNaN(height)) {\n height = width / aspect;\n }\n } // If left is not specified, calculate left from right and width\n\n\n if (isNaN(left)) {\n left = containerWidth - right - width - horizontalMargin;\n }\n\n if (isNaN(top)) {\n top = containerHeight - bottom - height - verticalMargin;\n } // Align left and top\n\n\n switch (positionInfo.left || positionInfo.right) {\n case 'center':\n left = containerWidth / 2 - width / 2 - margin[3];\n break;\n\n case 'right':\n left = containerWidth - width - horizontalMargin;\n break;\n }\n\n switch (positionInfo.top || positionInfo.bottom) {\n case 'middle':\n case 'center':\n top = containerHeight / 2 - height / 2 - margin[0];\n break;\n\n case 'bottom':\n top = containerHeight - height - verticalMargin;\n break;\n } // If something is wrong and left, top, width, height are calculated as NaN\n\n\n left = left || 0;\n top = top || 0;\n\n if (isNaN(width)) {\n // Width may be NaN if only one value is given except width\n width = containerWidth - horizontalMargin - left - (right || 0);\n }\n\n if (isNaN(height)) {\n // Height may be NaN if only one value is given except height\n height = containerHeight - verticalMargin - top - (bottom || 0);\n }\n\n var rect = new BoundingRect(left + margin[3], top + margin[0], width, height);\n rect.margin = margin;\n return rect;\n}\n/**\n * Position a zr element in viewport\n * Group position is specified by either\n * {left, top}, {right, bottom}\n * If all properties exists, right and bottom will be igonred.\n *\n * Logic:\n * 1. Scale (against origin point in parent coord)\n * 2. Rotate (against origin point in parent coord)\n * 3. Translate (with el.position by this method)\n * So this method only fixes the last step 'Translate', which does not affect\n * scaling and rotating.\n *\n * If be called repeatedly with the same input el, the same result will be gotten.\n *\n * Return true if the layout happened.\n *\n * @param el Should have `getBoundingRect` method.\n * @param positionInfo\n * @param positionInfo.left\n * @param positionInfo.top\n * @param positionInfo.right\n * @param positionInfo.bottom\n * @param positionInfo.width Only for opt.boundingModel: 'raw'\n * @param positionInfo.height Only for opt.boundingModel: 'raw'\n * @param containerRect\n * @param margin\n * @param opt\n * @param opt.hv Only horizontal or only vertical. Default to be [1, 1]\n * @param opt.boundingMode\n * Specify how to calculate boundingRect when locating.\n * 'all': Position the boundingRect that is transformed and uioned\n * both itself and its descendants.\n * This mode simplies confine the elements in the bounding\n * of their container (e.g., using 'right: 0').\n * 'raw': Position the boundingRect that is not transformed and only itself.\n * This mode is useful when you want a element can overflow its\n * container. (Consider a rotated circle needs to be located in a corner.)\n * In this mode positionInfo.width/height can only be number.\n */\n\nexport function positionElement(el, positionInfo, containerRect, margin, opt, out) {\n var h = !opt || !opt.hv || opt.hv[0];\n var v = !opt || !opt.hv || opt.hv[1];\n var boundingMode = opt && opt.boundingMode || 'all';\n out = out || el;\n out.x = el.x;\n out.y = el.y;\n\n if (!h && !v) {\n return false;\n }\n\n var rect;\n\n if (boundingMode === 'raw') {\n rect = el.type === 'group' ? new BoundingRect(0, 0, +positionInfo.width || 0, +positionInfo.height || 0) : el.getBoundingRect();\n } else {\n rect = el.getBoundingRect();\n\n if (el.needLocalTransform()) {\n var transform = el.getLocalTransform(); // Notice: raw rect may be inner object of el,\n // which should not be modified.\n\n rect = rect.clone();\n rect.applyTransform(transform);\n }\n } // The real width and height can not be specified but calculated by the given el.\n\n\n var layoutRect = getLayoutRect(zrUtil.defaults({\n width: rect.width,\n height: rect.height\n }, positionInfo), containerRect, margin); // Because 'tranlate' is the last step in transform\n // (see zrender/core/Transformable#getLocalTransform),\n // we can just only modify el.position to get final result.\n\n var dx = h ? layoutRect.x - rect.x : 0;\n var dy = v ? layoutRect.y - rect.y : 0;\n\n if (boundingMode === 'raw') {\n out.x = dx;\n out.y = dy;\n } else {\n out.x += dx;\n out.y += dy;\n }\n\n if (out === el) {\n el.markRedraw();\n }\n\n return true;\n}\n/**\n * @param option Contains some of the properties in HV_NAMES.\n * @param hvIdx 0: horizontal; 1: vertical.\n */\n\nexport function sizeCalculable(option, hvIdx) {\n return option[HV_NAMES[hvIdx][0]] != null || option[HV_NAMES[hvIdx][1]] != null && option[HV_NAMES[hvIdx][2]] != null;\n}\nexport function fetchLayoutMode(ins) {\n var layoutMode = ins.layoutMode || ins.constructor.layoutMode;\n return zrUtil.isObject(layoutMode) ? layoutMode : layoutMode ? {\n type: layoutMode\n } : null;\n}\n/**\n * Consider Case:\n * When default option has {left: 0, width: 100}, and we set {right: 0}\n * through setOption or media query, using normal zrUtil.merge will cause\n * {right: 0} does not take effect.\n *\n * @example\n * ComponentModel.extend({\n * init: function () {\n * ...\n * let inputPositionParams = layout.getLayoutParams(option);\n * this.mergeOption(inputPositionParams);\n * },\n * mergeOption: function (newOption) {\n * newOption && zrUtil.merge(thisOption, newOption, true);\n * layout.mergeLayoutParam(thisOption, newOption);\n * }\n * });\n *\n * @param targetOption\n * @param newOption\n * @param opt\n */\n\nexport function mergeLayoutParam(targetOption, newOption, opt) {\n var ignoreSize = opt && opt.ignoreSize;\n !zrUtil.isArray(ignoreSize) && (ignoreSize = [ignoreSize, ignoreSize]);\n var hResult = merge(HV_NAMES[0], 0);\n var vResult = merge(HV_NAMES[1], 1);\n copy(HV_NAMES[0], targetOption, hResult);\n copy(HV_NAMES[1], targetOption, vResult);\n\n function merge(names, hvIdx) {\n var newParams = {};\n var newValueCount = 0;\n var merged = {};\n var mergedValueCount = 0;\n var enoughParamNumber = 2;\n each(names, function (name) {\n merged[name] = targetOption[name];\n });\n each(names, function (name) {\n // Consider case: newOption.width is null, which is\n // set by user for removing width setting.\n hasProp(newOption, name) && (newParams[name] = merged[name] = newOption[name]);\n hasValue(newParams, name) && newValueCount++;\n hasValue(merged, name) && mergedValueCount++;\n });\n\n if (ignoreSize[hvIdx]) {\n // Only one of left/right is premitted to exist.\n if (hasValue(newOption, names[1])) {\n merged[names[2]] = null;\n } else if (hasValue(newOption, names[2])) {\n merged[names[1]] = null;\n }\n\n return merged;\n } // Case: newOption: {width: ..., right: ...},\n // or targetOption: {right: ...} and newOption: {width: ...},\n // There is no conflict when merged only has params count\n // little than enoughParamNumber.\n\n\n if (mergedValueCount === enoughParamNumber || !newValueCount) {\n return merged;\n } // Case: newOption: {width: ..., right: ...},\n // Than we can make sure user only want those two, and ignore\n // all origin params in targetOption.\n else if (newValueCount >= enoughParamNumber) {\n return newParams;\n } else {\n // Chose another param from targetOption by priority.\n for (var i = 0; i < names.length; i++) {\n var name_1 = names[i];\n\n if (!hasProp(newParams, name_1) && hasProp(targetOption, name_1)) {\n newParams[name_1] = targetOption[name_1];\n break;\n }\n }\n\n return newParams;\n }\n }\n\n function hasProp(obj, name) {\n return obj.hasOwnProperty(name);\n }\n\n function hasValue(obj, name) {\n return obj[name] != null && obj[name] !== 'auto';\n }\n\n function copy(names, target, source) {\n each(names, function (name) {\n target[name] = source[name];\n });\n }\n}\n/**\n * Retrieve 'left', 'right', 'top', 'bottom', 'width', 'height' from object.\n */\n\nexport function getLayoutParams(source) {\n return copyLayoutParams({}, source);\n}\n/**\n * Retrieve 'left', 'right', 'top', 'bottom', 'width', 'height' from object.\n * @param {Object} source\n * @return {Object} Result contains those props.\n */\n\nexport function copyLayoutParams(target, source) {\n source && target && each(LOCATION_PARAMS, function (name) {\n source.hasOwnProperty(name) && (target[name] = source[name]);\n });\n return target;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { map, isString, isFunction, eqNaN, isRegExp } from 'zrender/lib/core/util.js';\nvar ECHARTS_PREFIX = '[ECharts] ';\nvar storedLogs = {};\nvar hasConsole = typeof console !== 'undefined' // eslint-disable-next-line\n&& console.warn && console.log;\n\nfunction outputLog(type, str, onlyOnce) {\n if (hasConsole) {\n if (onlyOnce) {\n if (storedLogs[str]) {\n return;\n }\n\n storedLogs[str] = true;\n } // eslint-disable-next-line\n\n\n console[type](ECHARTS_PREFIX + str);\n }\n}\n\nexport function log(str, onlyOnce) {\n outputLog('log', str, onlyOnce);\n}\nexport function warn(str, onlyOnce) {\n outputLog('warn', str, onlyOnce);\n}\nexport function error(str, onlyOnce) {\n outputLog('error', str, onlyOnce);\n}\nexport function deprecateLog(str) {\n if (process.env.NODE_ENV !== 'production') {\n // Not display duplicate message.\n outputLog('warn', 'DEPRECATED: ' + str, true);\n }\n}\nexport function deprecateReplaceLog(oldOpt, newOpt, scope) {\n if (process.env.NODE_ENV !== 'production') {\n deprecateLog((scope ? \"[\" + scope + \"]\" : '') + (oldOpt + \" is deprecated, use \" + newOpt + \" instead.\"));\n }\n}\n/**\n * If in __DEV__ environment, get console printable message for users hint.\n * Parameters are separated by ' '.\n * @usage\n * makePrintable('This is an error on', someVar, someObj);\n *\n * @param hintInfo anything about the current execution context to hint users.\n * @throws Error\n */\n\nexport function makePrintable() {\n var hintInfo = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n hintInfo[_i] = arguments[_i];\n }\n\n var msg = '';\n\n if (process.env.NODE_ENV !== 'production') {\n // Fuzzy stringify for print.\n // This code only exist in dev environment.\n var makePrintableStringIfPossible_1 = function (val) {\n return val === void 0 ? 'undefined' : val === Infinity ? 'Infinity' : val === -Infinity ? '-Infinity' : eqNaN(val) ? 'NaN' : val instanceof Date ? 'Date(' + val.toISOString() + ')' : isFunction(val) ? 'function () { ... }' : isRegExp(val) ? val + '' : null;\n };\n\n msg = map(hintInfo, function (arg) {\n if (isString(arg)) {\n // Print without quotation mark for some statement.\n return arg;\n } else {\n var printableStr = makePrintableStringIfPossible_1(arg);\n\n if (printableStr != null) {\n return printableStr;\n } else if (typeof JSON !== 'undefined' && JSON.stringify) {\n try {\n return JSON.stringify(arg, function (n, val) {\n var printableStr = makePrintableStringIfPossible_1(val);\n return printableStr == null ? val : printableStr;\n }); // In most cases the info object is small, so do not line break.\n } catch (err) {\n return '?';\n }\n } else {\n return '?';\n }\n }\n }).join(' ');\n }\n\n return msg;\n}\n/**\n * @throws Error\n */\n\nexport function throwError(msg) {\n throw new Error(msg);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { each, isObject, isArray, createHashMap, map, assert, isString, indexOf, isStringSafe, isNumber } from 'zrender/lib/core/util.js';\nimport env from 'zrender/lib/core/env.js';\nimport { isNumeric, getRandomIdBase, getPrecision, round } from './number.js';\nimport { warn } from './log.js';\n\nfunction interpolateNumber(p0, p1, percent) {\n return (p1 - p0) * percent + p0;\n}\n/**\n * Make the name displayable. But we should\n * make sure it is not duplicated with user\n * specified name, so use '\\0';\n */\n\n\nvar DUMMY_COMPONENT_NAME_PREFIX = 'series\\0';\nvar INTERNAL_COMPONENT_ID_PREFIX = '\\0_ec_\\0';\n/**\n * If value is not array, then translate it to array.\n * @param {*} value\n * @return {Array} [value] or value\n */\n\nexport function normalizeToArray(value) {\n return value instanceof Array ? value : value == null ? [] : [value];\n}\n/**\n * Sync default option between normal and emphasis like `position` and `show`\n * In case some one will write code like\n * label: {\n * show: false,\n * position: 'outside',\n * fontSize: 18\n * },\n * emphasis: {\n * label: { show: true }\n * }\n */\n\nexport function defaultEmphasis(opt, key, subOpts) {\n // Caution: performance sensitive.\n if (opt) {\n opt[key] = opt[key] || {};\n opt.emphasis = opt.emphasis || {};\n opt.emphasis[key] = opt.emphasis[key] || {}; // Default emphasis option from normal\n\n for (var i = 0, len = subOpts.length; i < len; i++) {\n var subOptName = subOpts[i];\n\n if (!opt.emphasis[key].hasOwnProperty(subOptName) && opt[key].hasOwnProperty(subOptName)) {\n opt.emphasis[key][subOptName] = opt[key][subOptName];\n }\n }\n }\n}\nexport var TEXT_STYLE_OPTIONS = ['fontStyle', 'fontWeight', 'fontSize', 'fontFamily', 'rich', 'tag', 'color', 'textBorderColor', 'textBorderWidth', 'width', 'height', 'lineHeight', 'align', 'verticalAlign', 'baseline', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY', 'textShadowColor', 'textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY', 'backgroundColor', 'borderColor', 'borderWidth', 'borderRadius', 'padding']; // modelUtil.LABEL_OPTIONS = modelUtil.TEXT_STYLE_OPTIONS.concat([\n// 'position', 'offset', 'rotate', 'origin', 'show', 'distance', 'formatter',\n// 'fontStyle', 'fontWeight', 'fontSize', 'fontFamily',\n// // FIXME: deprecated, check and remove it.\n// 'textStyle'\n// ]);\n\n/**\n * The method does not ensure performance.\n * data could be [12, 2323, {value: 223}, [1221, 23], {value: [2, 23]}]\n * This helper method retrieves value from data.\n */\n\nexport function getDataItemValue(dataItem) {\n return isObject(dataItem) && !isArray(dataItem) && !(dataItem instanceof Date) ? dataItem.value : dataItem;\n}\n/**\n * data could be [12, 2323, {value: 223}, [1221, 23], {value: [2, 23]}]\n * This helper method determine if dataItem has extra option besides value\n */\n\nexport function isDataItemOption(dataItem) {\n return isObject(dataItem) && !(dataItem instanceof Array); // // markLine data can be array\n // && !(dataItem[0] && isObject(dataItem[0]) && !(dataItem[0] instanceof Array));\n}\n;\n/**\n * Mapping to existings for merge.\n *\n * Mode \"normalMege\":\n * The mapping result (merge result) will keep the order of the existing\n * component, rather than the order of new option. Because we should ensure\n * some specified index reference (like xAxisIndex) keep work.\n * And in most cases, \"merge option\" is used to update partial option but not\n * be expected to change the order.\n *\n * Mode \"replaceMege\":\n * (1) Only the id mapped components will be merged.\n * (2) Other existing components (except internal components) will be removed.\n * (3) Other new options will be used to create new component.\n * (4) The index of the existing components will not be modified.\n * That means their might be \"hole\" after the removal.\n * The new components are created first at those available index.\n *\n * Mode \"replaceAll\":\n * This mode try to support that reproduce an echarts instance from another\n * echarts instance (via `getOption`) in some simple cases.\n * In this scenario, the `result` index are exactly the consistent with the `newCmptOptions`,\n * which ensures the component index referring (like `xAxisIndex: ?`) corrent. That is,\n * the \"hole\" in `newCmptOptions` will also be kept.\n * On the contrary, other modes try best to eliminate holes.\n * PENDING: This is an experimental mode yet.\n *\n * @return See the comment of .\n */\n\nexport function mappingToExists(existings, newCmptOptions, mode) {\n var isNormalMergeMode = mode === 'normalMerge';\n var isReplaceMergeMode = mode === 'replaceMerge';\n var isReplaceAllMode = mode === 'replaceAll';\n existings = existings || [];\n newCmptOptions = (newCmptOptions || []).slice();\n var existingIdIdxMap = createHashMap(); // Validate id and name on user input option.\n\n each(newCmptOptions, function (cmptOption, index) {\n if (!isObject(cmptOption)) {\n newCmptOptions[index] = null;\n return;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // There is some legacy case that name is set as `false`.\n // But should work normally rather than throw error.\n if (cmptOption.id != null && !isValidIdOrName(cmptOption.id)) {\n warnInvalidateIdOrName(cmptOption.id);\n }\n\n if (cmptOption.name != null && !isValidIdOrName(cmptOption.name)) {\n warnInvalidateIdOrName(cmptOption.name);\n }\n }\n });\n var result = prepareResult(existings, existingIdIdxMap, mode);\n\n if (isNormalMergeMode || isReplaceMergeMode) {\n mappingById(result, existings, existingIdIdxMap, newCmptOptions);\n }\n\n if (isNormalMergeMode) {\n mappingByName(result, newCmptOptions);\n }\n\n if (isNormalMergeMode || isReplaceMergeMode) {\n mappingByIndex(result, newCmptOptions, isReplaceMergeMode);\n } else if (isReplaceAllMode) {\n mappingInReplaceAllMode(result, newCmptOptions);\n }\n\n makeIdAndName(result); // The array `result` MUST NOT contain elided items, otherwise the\n // forEach will omit those items and result in incorrect result.\n\n return result;\n}\n\nfunction prepareResult(existings, existingIdIdxMap, mode) {\n var result = [];\n\n if (mode === 'replaceAll') {\n return result;\n } // Do not use native `map` to in case that the array `existings`\n // contains elided items, which will be omitted.\n\n\n for (var index = 0; index < existings.length; index++) {\n var existing = existings[index]; // Because of replaceMerge, `existing` may be null/undefined.\n\n if (existing && existing.id != null) {\n existingIdIdxMap.set(existing.id, index);\n } // For non-internal-componnets:\n // Mode \"normalMerge\": all existings kept.\n // Mode \"replaceMerge\": all existing removed unless mapped by id.\n // For internal-components:\n // go with \"replaceMerge\" approach in both mode.\n\n\n result.push({\n existing: mode === 'replaceMerge' || isComponentIdInternal(existing) ? null : existing,\n newOption: null,\n keyInfo: null,\n brandNew: null\n });\n }\n\n return result;\n}\n\nfunction mappingById(result, existings, existingIdIdxMap, newCmptOptions) {\n // Mapping by id if specified.\n each(newCmptOptions, function (cmptOption, index) {\n if (!cmptOption || cmptOption.id == null) {\n return;\n }\n\n var optionId = makeComparableKey(cmptOption.id);\n var existingIdx = existingIdIdxMap.get(optionId);\n\n if (existingIdx != null) {\n var resultItem = result[existingIdx];\n assert(!resultItem.newOption, 'Duplicated option on id \"' + optionId + '\".');\n resultItem.newOption = cmptOption; // In both mode, if id matched, new option will be merged to\n // the existings rather than creating new component model.\n\n resultItem.existing = existings[existingIdx];\n newCmptOptions[index] = null;\n }\n });\n}\n\nfunction mappingByName(result, newCmptOptions) {\n // Mapping by name if specified.\n each(newCmptOptions, function (cmptOption, index) {\n if (!cmptOption || cmptOption.name == null) {\n return;\n }\n\n for (var i = 0; i < result.length; i++) {\n var existing = result[i].existing;\n\n if (!result[i].newOption // Consider name: two map to one.\n // Can not match when both ids existing but different.\n && existing && (existing.id == null || cmptOption.id == null) && !isComponentIdInternal(cmptOption) && !isComponentIdInternal(existing) && keyExistAndEqual('name', existing, cmptOption)) {\n result[i].newOption = cmptOption;\n newCmptOptions[index] = null;\n return;\n }\n }\n });\n}\n\nfunction mappingByIndex(result, newCmptOptions, brandNew) {\n each(newCmptOptions, function (cmptOption) {\n if (!cmptOption) {\n return;\n } // Find the first place that not mapped by id and not internal component (consider the \"hole\").\n\n\n var resultItem;\n var nextIdx = 0;\n\n while ( // Be `!resultItem` only when `nextIdx >= result.length`.\n (resultItem = result[nextIdx]) && ( // (1) Existing models that already have id should be able to mapped to. Because\n // after mapping performed, model will always be assigned with an id if user not given.\n // After that all models have id.\n // (2) If new option has id, it can only set to a hole or append to the last. It should\n // not be merged to the existings with different id. Because id should not be overwritten.\n // (3) Name can be overwritten, because axis use name as 'show label text'.\n resultItem.newOption || isComponentIdInternal(resultItem.existing) || // In mode \"replaceMerge\", here no not-mapped-non-internal-existing.\n resultItem.existing && cmptOption.id != null && !keyExistAndEqual('id', cmptOption, resultItem.existing))) {\n nextIdx++;\n }\n\n if (resultItem) {\n resultItem.newOption = cmptOption;\n resultItem.brandNew = brandNew;\n } else {\n result.push({\n newOption: cmptOption,\n brandNew: brandNew,\n existing: null,\n keyInfo: null\n });\n }\n\n nextIdx++;\n });\n}\n\nfunction mappingInReplaceAllMode(result, newCmptOptions) {\n each(newCmptOptions, function (cmptOption) {\n // The feature \"reproduce\" requires \"hole\" will also reproduced\n // in case that component index referring are broken.\n result.push({\n newOption: cmptOption,\n brandNew: true,\n existing: null,\n keyInfo: null\n });\n });\n}\n/**\n * Make id and name for mapping result (result of mappingToExists)\n * into `keyInfo` field.\n */\n\n\nfunction makeIdAndName(mapResult) {\n // We use this id to hash component models and view instances\n // in echarts. id can be specified by user, or auto generated.\n // The id generation rule ensures new view instance are able\n // to mapped to old instance when setOption are called in\n // no-merge mode. So we generate model id by name and plus\n // type in view id.\n // name can be duplicated among components, which is convenient\n // to specify multi components (like series) by one name.\n // Ensure that each id is distinct.\n var idMap = createHashMap();\n each(mapResult, function (item) {\n var existing = item.existing;\n existing && idMap.set(existing.id, item);\n });\n each(mapResult, function (item) {\n var opt = item.newOption; // Force ensure id not duplicated.\n\n assert(!opt || opt.id == null || !idMap.get(opt.id) || idMap.get(opt.id) === item, 'id duplicates: ' + (opt && opt.id));\n opt && opt.id != null && idMap.set(opt.id, item);\n !item.keyInfo && (item.keyInfo = {});\n }); // Make name and id.\n\n each(mapResult, function (item, index) {\n var existing = item.existing;\n var opt = item.newOption;\n var keyInfo = item.keyInfo;\n\n if (!isObject(opt)) {\n return;\n } // Name can be overwritten. Consider case: axis.name = '20km'.\n // But id generated by name will not be changed, which affect\n // only in that case: setOption with 'not merge mode' and view\n // instance will be recreated, which can be accepted.\n\n\n keyInfo.name = opt.name != null ? makeComparableKey(opt.name) : existing ? existing.name // Avoid that different series has the same name,\n // because name may be used like in color pallet.\n : DUMMY_COMPONENT_NAME_PREFIX + index;\n\n if (existing) {\n keyInfo.id = makeComparableKey(existing.id);\n } else if (opt.id != null) {\n keyInfo.id = makeComparableKey(opt.id);\n } else {\n // Consider this situatoin:\n // optionA: [{name: 'a'}, {name: 'a'}, {..}]\n // optionB [{..}, {name: 'a'}, {name: 'a'}]\n // Series with the same name between optionA and optionB\n // should be mapped.\n var idNum = 0;\n\n do {\n keyInfo.id = '\\0' + keyInfo.name + '\\0' + idNum++;\n } while (idMap.get(keyInfo.id));\n }\n\n idMap.set(keyInfo.id, item);\n });\n}\n\nfunction keyExistAndEqual(attr, obj1, obj2) {\n var key1 = convertOptionIdName(obj1[attr], null);\n var key2 = convertOptionIdName(obj2[attr], null); // See `MappingExistingItem`. `id` and `name` trade string equals to number.\n\n return key1 != null && key2 != null && key1 === key2;\n}\n/**\n * @return return null if not exist.\n */\n\n\nfunction makeComparableKey(val) {\n if (process.env.NODE_ENV !== 'production') {\n if (val == null) {\n throw new Error();\n }\n }\n\n return convertOptionIdName(val, '');\n}\n\nexport function convertOptionIdName(idOrName, defaultValue) {\n if (idOrName == null) {\n return defaultValue;\n }\n\n return isString(idOrName) ? idOrName : isNumber(idOrName) || isStringSafe(idOrName) ? idOrName + '' : defaultValue;\n}\n\nfunction warnInvalidateIdOrName(idOrName) {\n if (process.env.NODE_ENV !== 'production') {\n warn('`' + idOrName + '` is invalid id or name. Must be a string or number.');\n }\n}\n\nfunction isValidIdOrName(idOrName) {\n return isStringSafe(idOrName) || isNumeric(idOrName);\n}\n\nexport function isNameSpecified(componentModel) {\n var name = componentModel.name; // Is specified when `indexOf` get -1 or > 0.\n\n return !!(name && name.indexOf(DUMMY_COMPONENT_NAME_PREFIX));\n}\n/**\n * @public\n * @param {Object} cmptOption\n * @return {boolean}\n */\n\nexport function isComponentIdInternal(cmptOption) {\n return cmptOption && cmptOption.id != null && makeComparableKey(cmptOption.id).indexOf(INTERNAL_COMPONENT_ID_PREFIX) === 0;\n}\nexport function makeInternalComponentId(idSuffix) {\n return INTERNAL_COMPONENT_ID_PREFIX + idSuffix;\n}\nexport function setComponentTypeToKeyInfo(mappingResult, mainType, componentModelCtor) {\n // Set mainType and complete subType.\n each(mappingResult, function (item) {\n var newOption = item.newOption;\n\n if (isObject(newOption)) {\n item.keyInfo.mainType = mainType;\n item.keyInfo.subType = determineSubType(mainType, newOption, item.existing, componentModelCtor);\n }\n });\n}\n\nfunction determineSubType(mainType, newCmptOption, existComponent, componentModelCtor) {\n var subType = newCmptOption.type ? newCmptOption.type : existComponent ? existComponent.subType // Use determineSubType only when there is no existComponent.\n : componentModelCtor.determineSubType(mainType, newCmptOption); // tooltip, markline, markpoint may always has no subType\n\n return subType;\n}\n/**\n * A helper for removing duplicate items between batchA and batchB,\n * and in themselves, and categorize by series.\n *\n * @param batchA Like: [{seriesId: 2, dataIndex: [32, 4, 5]}, ...]\n * @param batchB Like: [{seriesId: 2, dataIndex: [32, 4, 5]}, ...]\n * @return result: [resultBatchA, resultBatchB]\n */\n\n\nexport function compressBatches(batchA, batchB) {\n var mapA = {};\n var mapB = {};\n makeMap(batchA || [], mapA);\n makeMap(batchB || [], mapB, mapA);\n return [mapToArray(mapA), mapToArray(mapB)];\n\n function makeMap(sourceBatch, map, otherMap) {\n for (var i = 0, len = sourceBatch.length; i < len; i++) {\n var seriesId = convertOptionIdName(sourceBatch[i].seriesId, null);\n\n if (seriesId == null) {\n return;\n }\n\n var dataIndices = normalizeToArray(sourceBatch[i].dataIndex);\n var otherDataIndices = otherMap && otherMap[seriesId];\n\n for (var j = 0, lenj = dataIndices.length; j < lenj; j++) {\n var dataIndex = dataIndices[j];\n\n if (otherDataIndices && otherDataIndices[dataIndex]) {\n otherDataIndices[dataIndex] = null;\n } else {\n (map[seriesId] || (map[seriesId] = {}))[dataIndex] = 1;\n }\n }\n }\n }\n\n function mapToArray(map, isData) {\n var result = [];\n\n for (var i in map) {\n if (map.hasOwnProperty(i) && map[i] != null) {\n if (isData) {\n result.push(+i);\n } else {\n var dataIndices = mapToArray(map[i], true);\n dataIndices.length && result.push({\n seriesId: i,\n dataIndex: dataIndices\n });\n }\n }\n }\n\n return result;\n }\n}\n/**\n * @param payload Contains dataIndex (means rawIndex) / dataIndexInside / name\n * each of which can be Array or primary type.\n * @return dataIndex If not found, return undefined/null.\n */\n\nexport function queryDataIndex(data, payload) {\n if (payload.dataIndexInside != null) {\n return payload.dataIndexInside;\n } else if (payload.dataIndex != null) {\n return isArray(payload.dataIndex) ? map(payload.dataIndex, function (value) {\n return data.indexOfRawIndex(value);\n }) : data.indexOfRawIndex(payload.dataIndex);\n } else if (payload.name != null) {\n return isArray(payload.name) ? map(payload.name, function (value) {\n return data.indexOfName(value);\n }) : data.indexOfName(payload.name);\n }\n}\n/**\n * Enable property storage to any host object.\n * Notice: Serialization is not supported.\n *\n * For example:\n * let inner = zrUitl.makeInner();\n *\n * function some1(hostObj) {\n * inner(hostObj).someProperty = 1212;\n * ...\n * }\n * function some2() {\n * let fields = inner(this);\n * fields.someProperty1 = 1212;\n * fields.someProperty2 = 'xx';\n * ...\n * }\n *\n * @return {Function}\n */\n\nexport function makeInner() {\n var key = '__ec_inner_' + innerUniqueIndex++;\n return function (hostObj) {\n return hostObj[key] || (hostObj[key] = {});\n };\n}\nvar innerUniqueIndex = getRandomIdBase();\n/**\n * The same behavior as `component.getReferringComponents`.\n */\n\nexport function parseFinder(ecModel, finderInput, opt) {\n var _a = preParseFinder(finderInput, opt),\n mainTypeSpecified = _a.mainTypeSpecified,\n queryOptionMap = _a.queryOptionMap,\n others = _a.others;\n\n var result = others;\n var defaultMainType = opt ? opt.defaultMainType : null;\n\n if (!mainTypeSpecified && defaultMainType) {\n queryOptionMap.set(defaultMainType, {});\n }\n\n queryOptionMap.each(function (queryOption, mainType) {\n var queryResult = queryReferringComponents(ecModel, mainType, queryOption, {\n useDefault: defaultMainType === mainType,\n enableAll: opt && opt.enableAll != null ? opt.enableAll : true,\n enableNone: opt && opt.enableNone != null ? opt.enableNone : true\n });\n result[mainType + 'Models'] = queryResult.models;\n result[mainType + 'Model'] = queryResult.models[0];\n });\n return result;\n}\nexport function preParseFinder(finderInput, opt) {\n var finder;\n\n if (isString(finderInput)) {\n var obj = {};\n obj[finderInput + 'Index'] = 0;\n finder = obj;\n } else {\n finder = finderInput;\n }\n\n var queryOptionMap = createHashMap();\n var others = {};\n var mainTypeSpecified = false;\n each(finder, function (value, key) {\n // Exclude 'dataIndex' and other illgal keys.\n if (key === 'dataIndex' || key === 'dataIndexInside') {\n others[key] = value;\n return;\n }\n\n var parsedKey = key.match(/^(\\w+)(Index|Id|Name)$/) || [];\n var mainType = parsedKey[1];\n var queryType = (parsedKey[2] || '').toLowerCase();\n\n if (!mainType || !queryType || opt && opt.includeMainTypes && indexOf(opt.includeMainTypes, mainType) < 0) {\n return;\n }\n\n mainTypeSpecified = mainTypeSpecified || !!mainType;\n var queryOption = queryOptionMap.get(mainType) || queryOptionMap.set(mainType, {});\n queryOption[queryType] = value;\n });\n return {\n mainTypeSpecified: mainTypeSpecified,\n queryOptionMap: queryOptionMap,\n others: others\n };\n}\nexport var SINGLE_REFERRING = {\n useDefault: true,\n enableAll: false,\n enableNone: false\n};\nexport var MULTIPLE_REFERRING = {\n useDefault: false,\n enableAll: true,\n enableNone: true\n};\nexport function queryReferringComponents(ecModel, mainType, userOption, opt) {\n opt = opt || SINGLE_REFERRING;\n var indexOption = userOption.index;\n var idOption = userOption.id;\n var nameOption = userOption.name;\n var result = {\n models: null,\n specified: indexOption != null || idOption != null || nameOption != null\n };\n\n if (!result.specified) {\n // Use the first as default if `useDefault`.\n var firstCmpt = void 0;\n result.models = opt.useDefault && (firstCmpt = ecModel.getComponent(mainType)) ? [firstCmpt] : [];\n return result;\n }\n\n if (indexOption === 'none' || indexOption === false) {\n assert(opt.enableNone, '`\"none\"` or `false` is not a valid value on index option.');\n result.models = [];\n return result;\n } // `queryComponents` will return all components if\n // both all of index/id/name are null/undefined.\n\n\n if (indexOption === 'all') {\n assert(opt.enableAll, '`\"all\"` is not a valid value on index option.');\n indexOption = idOption = nameOption = null;\n }\n\n result.models = ecModel.queryComponents({\n mainType: mainType,\n index: indexOption,\n id: idOption,\n name: nameOption\n });\n return result;\n}\nexport function setAttribute(dom, key, value) {\n dom.setAttribute ? dom.setAttribute(key, value) : dom[key] = value;\n}\nexport function getAttribute(dom, key) {\n return dom.getAttribute ? dom.getAttribute(key) : dom[key];\n}\nexport function getTooltipRenderMode(renderModeOption) {\n if (renderModeOption === 'auto') {\n // Using html when `document` exists, use richText otherwise\n return env.domSupported ? 'html' : 'richText';\n } else {\n return renderModeOption || 'html';\n }\n}\n/**\n * Group a list by key.\n */\n\nexport function groupData(array, getKey // return key\n) {\n var buckets = createHashMap();\n var keys = [];\n each(array, function (item) {\n var key = getKey(item);\n (buckets.get(key) || (keys.push(key), buckets.set(key, []))).push(item);\n });\n return {\n keys: keys,\n buckets: buckets\n };\n}\n/**\n * Interpolate raw values of a series with percent\n *\n * @param data data\n * @param labelModel label model of the text element\n * @param sourceValue start value. May be null/undefined when init.\n * @param targetValue end value\n * @param percent 0~1 percentage; 0 uses start value while 1 uses end value\n * @return interpolated values\n * If `sourceValue` and `targetValue` are `number`, return `number`.\n * If `sourceValue` and `targetValue` are `string`, return `string`.\n * If `sourceValue` and `targetValue` are `(string | number)[]`, return `(string | number)[]`.\n * Other cases do not supported.\n */\n\nexport function interpolateRawValues(data, precision, sourceValue, targetValue, percent) {\n var isAutoPrecision = precision == null || precision === 'auto';\n\n if (targetValue == null) {\n return targetValue;\n }\n\n if (isNumber(targetValue)) {\n var value = interpolateNumber(sourceValue || 0, targetValue, percent);\n return round(value, isAutoPrecision ? Math.max(getPrecision(sourceValue || 0), getPrecision(targetValue)) : precision);\n } else if (isString(targetValue)) {\n return percent < 1 ? sourceValue : targetValue;\n } else {\n var interpolated = [];\n var leftArr = sourceValue;\n var rightArr = targetValue;\n var length_1 = Math.max(leftArr ? leftArr.length : 0, rightArr.length);\n\n for (var i = 0; i < length_1; ++i) {\n var info = data.getDimensionInfo(i); // Don't interpolate ordinal dims\n\n if (info && info.type === 'ordinal') {\n // In init, there is no `sourceValue`, but should better not to get undefined result.\n interpolated[i] = (percent < 1 && leftArr ? leftArr : rightArr)[i];\n } else {\n var leftVal = leftArr && leftArr[i] ? leftArr[i] : 0;\n var rightVal = rightArr[i];\n var value = interpolateNumber(leftVal, rightVal, percent);\n interpolated[i] = round(value, isAutoPrecision ? Math.max(getPrecision(leftVal), getPrecision(rightVal)) : precision);\n }\n }\n\n return interpolated;\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/*\n* A third-party license is embedded for some of the code in this file:\n* The method \"quantile\" was copied from \"d3.js\".\n* (See more details in the comment of the method below.)\n* The use of the source code of this file is also subject to the terms\n* and consitions of the license of \"d3.js\" (BSD-3Clause, see\n* ).\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nvar RADIAN_EPSILON = 1e-4; // Although chrome already enlarge this number to 100 for `toFixed`, but\n// we sill follow the spec for compatibility.\n\nvar ROUND_SUPPORTED_PRECISION_MAX = 20;\n\nfunction _trim(str) {\n return str.replace(/^\\s+|\\s+$/g, '');\n}\n/**\n * Linear mapping a value from domain to range\n * @param val\n * @param domain Domain extent domain[0] can be bigger than domain[1]\n * @param range Range extent range[0] can be bigger than range[1]\n * @param clamp Default to be false\n */\n\n\nexport function linearMap(val, domain, range, clamp) {\n var d0 = domain[0];\n var d1 = domain[1];\n var r0 = range[0];\n var r1 = range[1];\n var subDomain = d1 - d0;\n var subRange = r1 - r0;\n\n if (subDomain === 0) {\n return subRange === 0 ? r0 : (r0 + r1) / 2;\n } // Avoid accuracy problem in edge, such as\n // 146.39 - 62.83 === 83.55999999999999.\n // See echarts/test/ut/spec/util/number.js#linearMap#accuracyError\n // It is a little verbose for efficiency considering this method\n // is a hotspot.\n\n\n if (clamp) {\n if (subDomain > 0) {\n if (val <= d0) {\n return r0;\n } else if (val >= d1) {\n return r1;\n }\n } else {\n if (val >= d0) {\n return r0;\n } else if (val <= d1) {\n return r1;\n }\n }\n } else {\n if (val === d0) {\n return r0;\n }\n\n if (val === d1) {\n return r1;\n }\n }\n\n return (val - d0) / subDomain * subRange + r0;\n}\n/**\n * Convert a percent string to absolute number.\n * Returns NaN if percent is not a valid string or number\n */\n\nexport function parsePercent(percent, all) {\n switch (percent) {\n case 'center':\n case 'middle':\n percent = '50%';\n break;\n\n case 'left':\n case 'top':\n percent = '0%';\n break;\n\n case 'right':\n case 'bottom':\n percent = '100%';\n break;\n }\n\n if (zrUtil.isString(percent)) {\n if (_trim(percent).match(/%$/)) {\n return parseFloat(percent) / 100 * all;\n }\n\n return parseFloat(percent);\n }\n\n return percent == null ? NaN : +percent;\n}\nexport function round(x, precision, returnStr) {\n if (precision == null) {\n precision = 10;\n } // Avoid range error\n\n\n precision = Math.min(Math.max(0, precision), ROUND_SUPPORTED_PRECISION_MAX); // PENDING: 1.005.toFixed(2) is '1.00' rather than '1.01'\n\n x = (+x).toFixed(precision);\n return returnStr ? x : +x;\n}\n/**\n * Inplacd asc sort arr.\n * The input arr will be modified.\n */\n\nexport function asc(arr) {\n arr.sort(function (a, b) {\n return a - b;\n });\n return arr;\n}\n/**\n * Get precision.\n */\n\nexport function getPrecision(val) {\n val = +val;\n\n if (isNaN(val)) {\n return 0;\n } // It is much faster than methods converting number to string as follows\n // let tmp = val.toString();\n // return tmp.length - 1 - tmp.indexOf('.');\n // especially when precision is low\n // Notice:\n // (1) If the loop count is over about 20, it is slower than `getPrecisionSafe`.\n // (see https://jsbench.me/2vkpcekkvw/1)\n // (2) If the val is less than for example 1e-15, the result may be incorrect.\n // (see test/ut/spec/util/number.test.ts `getPrecision_equal_random`)\n\n\n if (val > 1e-14) {\n var e = 1;\n\n for (var i = 0; i < 15; i++, e *= 10) {\n if (Math.round(val * e) / e === val) {\n return i;\n }\n }\n }\n\n return getPrecisionSafe(val);\n}\n/**\n * Get precision with slow but safe method\n */\n\nexport function getPrecisionSafe(val) {\n // toLowerCase for: '3.4E-12'\n var str = val.toString().toLowerCase(); // Consider scientific notation: '3.4e-12' '3.4e+12'\n\n var eIndex = str.indexOf('e');\n var exp = eIndex > 0 ? +str.slice(eIndex + 1) : 0;\n var significandPartLen = eIndex > 0 ? eIndex : str.length;\n var dotIndex = str.indexOf('.');\n var decimalPartLen = dotIndex < 0 ? 0 : significandPartLen - 1 - dotIndex;\n return Math.max(0, decimalPartLen - exp);\n}\n/**\n * Minimal dicernible data precisioin according to a single pixel.\n */\n\nexport function getPixelPrecision(dataExtent, pixelExtent) {\n var log = Math.log;\n var LN10 = Math.LN10;\n var dataQuantity = Math.floor(log(dataExtent[1] - dataExtent[0]) / LN10);\n var sizeQuantity = Math.round(log(Math.abs(pixelExtent[1] - pixelExtent[0])) / LN10); // toFixed() digits argument must be between 0 and 20.\n\n var precision = Math.min(Math.max(-dataQuantity + sizeQuantity, 0), 20);\n return !isFinite(precision) ? 20 : precision;\n}\n/**\n * Get a data of given precision, assuring the sum of percentages\n * in valueList is 1.\n * The largest remainder method is used.\n * https://en.wikipedia.org/wiki/Largest_remainder_method\n *\n * @param valueList a list of all data\n * @param idx index of the data to be processed in valueList\n * @param precision integer number showing digits of precision\n * @return percent ranging from 0 to 100\n */\n\nexport function getPercentWithPrecision(valueList, idx, precision) {\n if (!valueList[idx]) {\n return 0;\n }\n\n var seats = getPercentSeats(valueList, precision);\n return seats[idx] || 0;\n}\n/**\n * Get a data of given precision, assuring the sum of percentages\n * in valueList is 1.\n * The largest remainder method is used.\n * https://en.wikipedia.org/wiki/Largest_remainder_method\n *\n * @param valueList a list of all data\n * @param precision integer number showing digits of precision\n * @return {Array}\n */\n\nexport function getPercentSeats(valueList, precision) {\n var sum = zrUtil.reduce(valueList, function (acc, val) {\n return acc + (isNaN(val) ? 0 : val);\n }, 0);\n\n if (sum === 0) {\n return [];\n }\n\n var digits = Math.pow(10, precision);\n var votesPerQuota = zrUtil.map(valueList, function (val) {\n return (isNaN(val) ? 0 : val) / sum * digits * 100;\n });\n var targetSeats = digits * 100;\n var seats = zrUtil.map(votesPerQuota, function (votes) {\n // Assign automatic seats.\n return Math.floor(votes);\n });\n var currentSum = zrUtil.reduce(seats, function (acc, val) {\n return acc + val;\n }, 0);\n var remainder = zrUtil.map(votesPerQuota, function (votes, idx) {\n return votes - seats[idx];\n }); // Has remainding votes.\n\n while (currentSum < targetSeats) {\n // Find next largest remainder.\n var max = Number.NEGATIVE_INFINITY;\n var maxId = null;\n\n for (var i = 0, len = remainder.length; i < len; ++i) {\n if (remainder[i] > max) {\n max = remainder[i];\n maxId = i;\n }\n } // Add a vote to max remainder.\n\n\n ++seats[maxId];\n remainder[maxId] = 0;\n ++currentSum;\n }\n\n return zrUtil.map(seats, function (seat) {\n return seat / digits;\n });\n}\n/**\n * Solve the floating point adding problem like 0.1 + 0.2 === 0.30000000000000004\n * See \n */\n\nexport function addSafe(val0, val1) {\n var maxPrecision = Math.max(getPrecision(val0), getPrecision(val1)); // const multiplier = Math.pow(10, maxPrecision);\n // return (Math.round(val0 * multiplier) + Math.round(val1 * multiplier)) / multiplier;\n\n var sum = val0 + val1; // // PENDING: support more?\n\n return maxPrecision > ROUND_SUPPORTED_PRECISION_MAX ? sum : round(sum, maxPrecision);\n} // Number.MAX_SAFE_INTEGER, ie do not support.\n\nexport var MAX_SAFE_INTEGER = 9007199254740991;\n/**\n * To 0 - 2 * PI, considering negative radian.\n */\n\nexport function remRadian(radian) {\n var pi2 = Math.PI * 2;\n return (radian % pi2 + pi2) % pi2;\n}\n/**\n * @param {type} radian\n * @return {boolean}\n */\n\nexport function isRadianAroundZero(val) {\n return val > -RADIAN_EPSILON && val < RADIAN_EPSILON;\n} // eslint-disable-next-line\n\nvar TIME_REG = /^(?:(\\d{4})(?:[-\\/](\\d{1,2})(?:[-\\/](\\d{1,2})(?:[T ](\\d{1,2})(?::(\\d{1,2})(?::(\\d{1,2})(?:[.,](\\d+))?)?)?(Z|[\\+\\-]\\d\\d:?\\d\\d)?)?)?)?)?$/; // jshint ignore:line\n\n/**\n * @param value valid type: number | string | Date, otherwise return `new Date(NaN)`\n * These values can be accepted:\n * + An instance of Date, represent a time in its own time zone.\n * + Or string in a subset of ISO 8601, only including:\n * + only year, month, date: '2012-03', '2012-03-01', '2012-03-01 05', '2012-03-01 05:06',\n * + separated with T or space: '2012-03-01T12:22:33.123', '2012-03-01 12:22:33.123',\n * + time zone: '2012-03-01T12:22:33Z', '2012-03-01T12:22:33+8000', '2012-03-01T12:22:33-05:00',\n * all of which will be treated as local time if time zone is not specified\n * (see ).\n * + Or other string format, including (all of which will be treated as local time):\n * '2012', '2012-3-1', '2012/3/1', '2012/03/01',\n * '2009/6/12 2:00', '2009/6/12 2:05:08', '2009/6/12 2:05:08.123'\n * + a timestamp, which represent a time in UTC.\n * @return date Never be null/undefined. If invalid, return `new Date(NaN)`.\n */\n\nexport function parseDate(value) {\n if (value instanceof Date) {\n return value;\n } else if (zrUtil.isString(value)) {\n // Different browsers parse date in different way, so we parse it manually.\n // Some other issues:\n // new Date('1970-01-01') is UTC,\n // new Date('1970/01/01') and new Date('1970-1-01') is local.\n // See issue #3623\n var match = TIME_REG.exec(value);\n\n if (!match) {\n // return Invalid Date.\n return new Date(NaN);\n } // Use local time when no timezone offset is specified.\n\n\n if (!match[8]) {\n // match[n] can only be string or undefined.\n // But take care of '12' + 1 => '121'.\n return new Date(+match[1], +(match[2] || 1) - 1, +match[3] || 1, +match[4] || 0, +(match[5] || 0), +match[6] || 0, match[7] ? +match[7].substring(0, 3) : 0);\n } // Timezoneoffset of Javascript Date has considered DST (Daylight Saving Time,\n // https://tc39.github.io/ecma262/#sec-daylight-saving-time-adjustment).\n // For example, system timezone is set as \"Time Zone: America/Toronto\",\n // then these code will get different result:\n // `new Date(1478411999999).getTimezoneOffset(); // get 240`\n // `new Date(1478412000000).getTimezoneOffset(); // get 300`\n // So we should not use `new Date`, but use `Date.UTC`.\n else {\n var hour = +match[4] || 0;\n\n if (match[8].toUpperCase() !== 'Z') {\n hour -= +match[8].slice(0, 3);\n }\n\n return new Date(Date.UTC(+match[1], +(match[2] || 1) - 1, +match[3] || 1, hour, +(match[5] || 0), +match[6] || 0, match[7] ? +match[7].substring(0, 3) : 0));\n }\n } else if (value == null) {\n return new Date(NaN);\n }\n\n return new Date(Math.round(value));\n}\n/**\n * Quantity of a number. e.g. 0.1, 1, 10, 100\n *\n * @param val\n * @return\n */\n\nexport function quantity(val) {\n return Math.pow(10, quantityExponent(val));\n}\n/**\n * Exponent of the quantity of a number\n * e.g., 1234 equals to 1.234*10^3, so quantityExponent(1234) is 3\n *\n * @param val non-negative value\n * @return\n */\n\nexport function quantityExponent(val) {\n if (val === 0) {\n return 0;\n }\n\n var exp = Math.floor(Math.log(val) / Math.LN10);\n /**\n * exp is expected to be the rounded-down result of the base-10 log of val.\n * But due to the precision loss with Math.log(val), we need to restore it\n * using 10^exp to make sure we can get val back from exp. #11249\n */\n\n if (val / Math.pow(10, exp) >= 10) {\n exp++;\n }\n\n return exp;\n}\n/**\n * find a “nice” number approximately equal to x. Round the number if round = true,\n * take ceiling if round = false. The primary observation is that the “nicest”\n * numbers in decimal are 1, 2, and 5, and all power-of-ten multiples of these numbers.\n *\n * See \"Nice Numbers for Graph Labels\" of Graphic Gems.\n *\n * @param val Non-negative value.\n * @param round\n * @return Niced number\n */\n\nexport function nice(val, round) {\n var exponent = quantityExponent(val);\n var exp10 = Math.pow(10, exponent);\n var f = val / exp10; // 1 <= f < 10\n\n var nf;\n\n if (round) {\n if (f < 1.5) {\n nf = 1;\n } else if (f < 2.5) {\n nf = 2;\n } else if (f < 4) {\n nf = 3;\n } else if (f < 7) {\n nf = 5;\n } else {\n nf = 10;\n }\n } else {\n if (f < 1) {\n nf = 1;\n } else if (f < 2) {\n nf = 2;\n } else if (f < 3) {\n nf = 3;\n } else if (f < 5) {\n nf = 5;\n } else {\n nf = 10;\n }\n }\n\n val = nf * exp10; // Fix 3 * 0.1 === 0.30000000000000004 issue (see IEEE 754).\n // 20 is the uppper bound of toFixed.\n\n return exponent >= -20 ? +val.toFixed(exponent < 0 ? -exponent : 0) : val;\n}\n/**\n * This code was copied from \"d3.js\"\n * .\n * See the license statement at the head of this file.\n * @param ascArr\n */\n\nexport function quantile(ascArr, p) {\n var H = (ascArr.length - 1) * p + 1;\n var h = Math.floor(H);\n var v = +ascArr[h - 1];\n var e = H - h;\n return e ? v + e * (ascArr[h] - v) : v;\n}\n/**\n * Order intervals asc, and split them when overlap.\n * expect(numberUtil.reformIntervals([\n * {interval: [18, 62], close: [1, 1]},\n * {interval: [-Infinity, -70], close: [0, 0]},\n * {interval: [-70, -26], close: [1, 1]},\n * {interval: [-26, 18], close: [1, 1]},\n * {interval: [62, 150], close: [1, 1]},\n * {interval: [106, 150], close: [1, 1]},\n * {interval: [150, Infinity], close: [0, 0]}\n * ])).toEqual([\n * {interval: [-Infinity, -70], close: [0, 0]},\n * {interval: [-70, -26], close: [1, 1]},\n * {interval: [-26, 18], close: [0, 1]},\n * {interval: [18, 62], close: [0, 1]},\n * {interval: [62, 150], close: [0, 1]},\n * {interval: [150, Infinity], close: [0, 0]}\n * ]);\n * @param list, where `close` mean open or close\n * of the interval, and Infinity can be used.\n * @return The origin list, which has been reformed.\n */\n\nexport function reformIntervals(list) {\n list.sort(function (a, b) {\n return littleThan(a, b, 0) ? -1 : 1;\n });\n var curr = -Infinity;\n var currClose = 1;\n\n for (var i = 0; i < list.length;) {\n var interval = list[i].interval;\n var close_1 = list[i].close;\n\n for (var lg = 0; lg < 2; lg++) {\n if (interval[lg] <= curr) {\n interval[lg] = curr;\n close_1[lg] = !lg ? 1 - currClose : 1;\n }\n\n curr = interval[lg];\n currClose = close_1[lg];\n }\n\n if (interval[0] === interval[1] && close_1[0] * close_1[1] !== 1) {\n list.splice(i, 1);\n } else {\n i++;\n }\n }\n\n return list;\n\n function littleThan(a, b, lg) {\n return a.interval[lg] < b.interval[lg] || a.interval[lg] === b.interval[lg] && (a.close[lg] - b.close[lg] === (!lg ? 1 : -1) || !lg && littleThan(a, b, 1));\n }\n}\n/**\n * [Numeric is defined as]:\n * `parseFloat(val) == val`\n * For example:\n * numeric:\n * typeof number except NaN, '-123', '123', '2e3', '-2e3', '011', 'Infinity', Infinity,\n * and they rounded by white-spaces or line-terminal like ' -123 \\n ' (see es spec)\n * not-numeric:\n * null, undefined, [], {}, true, false, 'NaN', NaN, '123ab',\n * empty string, string with only white-spaces or line-terminal (see es spec),\n * 0x12, '0x12', '-0x12', 012, '012', '-012',\n * non-string, ...\n *\n * @test See full test cases in `test/ut/spec/util/number.js`.\n * @return Must be a typeof number. If not numeric, return NaN.\n */\n\nexport function numericToNumber(val) {\n var valFloat = parseFloat(val);\n return valFloat == val // eslint-disable-line eqeqeq\n && (valFloat !== 0 || !zrUtil.isString(val) || val.indexOf('x') <= 0) // For case ' 0x0 '.\n ? valFloat : NaN;\n}\n/**\n * Definition of \"numeric\": see `numericToNumber`.\n */\n\nexport function isNumeric(val) {\n return !isNaN(numericToNumber(val));\n}\n/**\n * Use random base to prevent users hard code depending on\n * this auto generated marker id.\n * @return An positive integer.\n */\n\nexport function getRandomIdBase() {\n return Math.round(Math.random() * 9);\n}\n/**\n * Get the greatest common divisor.\n *\n * @param {number} a one number\n * @param {number} b the other number\n */\n\nexport function getGreatestCommonDividor(a, b) {\n if (b === 0) {\n return a;\n }\n\n return getGreatestCommonDividor(b, a % b);\n}\n/**\n * Get the least common multiple.\n *\n * @param {number} a one number\n * @param {number} b the other number\n */\n\nexport function getLeastCommonMultiple(a, b) {\n if (a == null) {\n return b;\n }\n\n if (b == null) {\n return a;\n }\n\n return a * b / getGreatestCommonDividor(a, b);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport { Path } from '../graphic.js';\n/**\n * Sausage: similar to sector, but have half circle on both sides\n */\n\nvar SausageShape =\n/** @class */\nfunction () {\n function SausageShape() {\n this.cx = 0;\n this.cy = 0;\n this.r0 = 0;\n this.r = 0;\n this.startAngle = 0;\n this.endAngle = Math.PI * 2;\n this.clockwise = true;\n }\n\n return SausageShape;\n}();\n\nvar SausagePath =\n/** @class */\nfunction (_super) {\n __extends(SausagePath, _super);\n\n function SausagePath(opts) {\n var _this = _super.call(this, opts) || this;\n\n _this.type = 'sausage';\n return _this;\n }\n\n SausagePath.prototype.getDefaultShape = function () {\n return new SausageShape();\n };\n\n SausagePath.prototype.buildPath = function (ctx, shape) {\n var cx = shape.cx;\n var cy = shape.cy;\n var r0 = Math.max(shape.r0 || 0, 0);\n var r = Math.max(shape.r, 0);\n var dr = (r - r0) * 0.5;\n var rCenter = r0 + dr;\n var startAngle = shape.startAngle;\n var endAngle = shape.endAngle;\n var clockwise = shape.clockwise;\n var PI2 = Math.PI * 2;\n var lessThanCircle = clockwise ? endAngle - startAngle < PI2 : startAngle - endAngle < PI2;\n\n if (!lessThanCircle) {\n // Normalize angles\n startAngle = endAngle - (clockwise ? PI2 : -PI2);\n }\n\n var unitStartX = Math.cos(startAngle);\n var unitStartY = Math.sin(startAngle);\n var unitEndX = Math.cos(endAngle);\n var unitEndY = Math.sin(endAngle);\n\n if (lessThanCircle) {\n ctx.moveTo(unitStartX * r0 + cx, unitStartY * r0 + cy);\n ctx.arc(unitStartX * rCenter + cx, unitStartY * rCenter + cy, dr, -Math.PI + startAngle, startAngle, !clockwise);\n } else {\n ctx.moveTo(unitStartX * r + cx, unitStartY * r + cy);\n }\n\n ctx.arc(cx, cy, r, startAngle, endAngle, !clockwise);\n ctx.arc(unitEndX * rCenter + cx, unitEndY * rCenter + cy, dr, endAngle - Math.PI * 2, endAngle - Math.PI, !clockwise);\n\n if (r0 !== 0) {\n ctx.arc(cx, cy, r0, endAngle, startAngle, clockwise);\n } // ctx.closePath();\n\n };\n\n return SausagePath;\n}(Path);\n\nexport default SausagePath;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport LRU from 'zrender/lib/core/LRU.js';\nimport { extend, indexOf, isArrayLike, isObject, keys, isArray, each, isString, isGradientObject, map } from 'zrender/lib/core/util.js';\nimport { getECData } from './innerStore.js';\nimport * as colorTool from 'zrender/lib/tool/color.js';\nimport { queryDataIndex, makeInner } from './model.js';\nimport Path from 'zrender/lib/graphic/Path.js';\nimport { error } from './log.js'; // Reserve 0 as default.\n\nvar _highlightNextDigit = 1;\nvar _highlightKeyMap = {};\nvar getSavedStates = makeInner();\nvar getComponentStates = makeInner();\nexport var HOVER_STATE_NORMAL = 0;\nexport var HOVER_STATE_BLUR = 1;\nexport var HOVER_STATE_EMPHASIS = 2;\nexport var SPECIAL_STATES = ['emphasis', 'blur', 'select'];\nexport var DISPLAY_STATES = ['normal', 'emphasis', 'blur', 'select'];\nexport var Z2_EMPHASIS_LIFT = 10;\nexport var Z2_SELECT_LIFT = 9;\nexport var HIGHLIGHT_ACTION_TYPE = 'highlight';\nexport var DOWNPLAY_ACTION_TYPE = 'downplay';\nexport var SELECT_ACTION_TYPE = 'select';\nexport var UNSELECT_ACTION_TYPE = 'unselect';\nexport var TOGGLE_SELECT_ACTION_TYPE = 'toggleSelect';\n\nfunction hasFillOrStroke(fillOrStroke) {\n return fillOrStroke != null && fillOrStroke !== 'none';\n} // Most lifted color are duplicated.\n\n\nvar liftedColorCache = new LRU(100);\n\nfunction liftColor(color) {\n if (isString(color)) {\n var liftedColor = liftedColorCache.get(color);\n\n if (!liftedColor) {\n liftedColor = colorTool.lift(color, -0.1);\n liftedColorCache.put(color, liftedColor);\n }\n\n return liftedColor;\n } else if (isGradientObject(color)) {\n var ret = extend({}, color);\n ret.colorStops = map(color.colorStops, function (stop) {\n return {\n offset: stop.offset,\n color: colorTool.lift(stop.color, -0.1)\n };\n });\n return ret;\n } // Change nothing.\n\n\n return color;\n}\n\nfunction doChangeHoverState(el, stateName, hoverStateEnum) {\n if (el.onHoverStateChange && (el.hoverState || 0) !== hoverStateEnum) {\n el.onHoverStateChange(stateName);\n }\n\n el.hoverState = hoverStateEnum;\n}\n\nfunction singleEnterEmphasis(el) {\n // Only mark the flag.\n // States will be applied in the echarts.ts in next frame.\n doChangeHoverState(el, 'emphasis', HOVER_STATE_EMPHASIS);\n}\n\nfunction singleLeaveEmphasis(el) {\n // Only mark the flag.\n // States will be applied in the echarts.ts in next frame.\n if (el.hoverState === HOVER_STATE_EMPHASIS) {\n doChangeHoverState(el, 'normal', HOVER_STATE_NORMAL);\n }\n}\n\nfunction singleEnterBlur(el) {\n doChangeHoverState(el, 'blur', HOVER_STATE_BLUR);\n}\n\nfunction singleLeaveBlur(el) {\n if (el.hoverState === HOVER_STATE_BLUR) {\n doChangeHoverState(el, 'normal', HOVER_STATE_NORMAL);\n }\n}\n\nfunction singleEnterSelect(el) {\n el.selected = true;\n}\n\nfunction singleLeaveSelect(el) {\n el.selected = false;\n}\n\nfunction updateElementState(el, updater, commonParam) {\n updater(el, commonParam);\n}\n\nfunction traverseUpdateState(el, updater, commonParam) {\n updateElementState(el, updater, commonParam);\n el.isGroup && el.traverse(function (child) {\n updateElementState(child, updater, commonParam);\n });\n}\n\nexport function setStatesFlag(el, stateName) {\n switch (stateName) {\n case 'emphasis':\n el.hoverState = HOVER_STATE_EMPHASIS;\n break;\n\n case 'normal':\n el.hoverState = HOVER_STATE_NORMAL;\n break;\n\n case 'blur':\n el.hoverState = HOVER_STATE_BLUR;\n break;\n\n case 'select':\n el.selected = true;\n }\n}\n/**\n * If we reuse elements when rerender.\n * DON'T forget to clearStates before we update the style and shape.\n * Or we may update on the wrong state instead of normal state.\n */\n\nexport function clearStates(el) {\n if (el.isGroup) {\n el.traverse(function (child) {\n child.clearStates();\n });\n } else {\n el.clearStates();\n }\n}\n\nfunction getFromStateStyle(el, props, toStateName, defaultValue) {\n var style = el.style;\n var fromState = {};\n\n for (var i = 0; i < props.length; i++) {\n var propName = props[i];\n var val = style[propName];\n fromState[propName] = val == null ? defaultValue && defaultValue[propName] : val;\n }\n\n for (var i = 0; i < el.animators.length; i++) {\n var animator = el.animators[i];\n\n if (animator.__fromStateTransition // Don't consider the animation to emphasis state.\n && animator.__fromStateTransition.indexOf(toStateName) < 0 && animator.targetName === 'style') {\n animator.saveTo(fromState, props);\n }\n }\n\n return fromState;\n}\n\nfunction createEmphasisDefaultState(el, stateName, targetStates, state) {\n var hasSelect = targetStates && indexOf(targetStates, 'select') >= 0;\n var cloned = false;\n\n if (el instanceof Path) {\n var store = getSavedStates(el);\n var fromFill = hasSelect ? store.selectFill || store.normalFill : store.normalFill;\n var fromStroke = hasSelect ? store.selectStroke || store.normalStroke : store.normalStroke;\n\n if (hasFillOrStroke(fromFill) || hasFillOrStroke(fromStroke)) {\n state = state || {};\n var emphasisStyle = state.style || {}; // inherit case\n\n if (emphasisStyle.fill === 'inherit') {\n cloned = true;\n state = extend({}, state);\n emphasisStyle = extend({}, emphasisStyle);\n emphasisStyle.fill = fromFill;\n } // Apply default color lift\n else if (!hasFillOrStroke(emphasisStyle.fill) && hasFillOrStroke(fromFill)) {\n cloned = true; // Not modify the original value.\n\n state = extend({}, state);\n emphasisStyle = extend({}, emphasisStyle); // Already being applied 'emphasis'. DON'T lift color multiple times.\n\n emphasisStyle.fill = liftColor(fromFill);\n } // Not highlight stroke if fill has been highlighted.\n else if (!hasFillOrStroke(emphasisStyle.stroke) && hasFillOrStroke(fromStroke)) {\n if (!cloned) {\n state = extend({}, state);\n emphasisStyle = extend({}, emphasisStyle);\n }\n\n emphasisStyle.stroke = liftColor(fromStroke);\n }\n\n state.style = emphasisStyle;\n }\n }\n\n if (state) {\n // TODO Share with textContent?\n if (state.z2 == null) {\n if (!cloned) {\n state = extend({}, state);\n }\n\n var z2EmphasisLift = el.z2EmphasisLift;\n state.z2 = el.z2 + (z2EmphasisLift != null ? z2EmphasisLift : Z2_EMPHASIS_LIFT);\n }\n }\n\n return state;\n}\n\nfunction createSelectDefaultState(el, stateName, state) {\n // const hasSelect = indexOf(el.currentStates, stateName) >= 0;\n if (state) {\n // TODO Share with textContent?\n if (state.z2 == null) {\n state = extend({}, state);\n var z2SelectLift = el.z2SelectLift;\n state.z2 = el.z2 + (z2SelectLift != null ? z2SelectLift : Z2_SELECT_LIFT);\n }\n }\n\n return state;\n}\n\nfunction createBlurDefaultState(el, stateName, state) {\n var hasBlur = indexOf(el.currentStates, stateName) >= 0;\n var currentOpacity = el.style.opacity;\n var fromState = !hasBlur ? getFromStateStyle(el, ['opacity'], stateName, {\n opacity: 1\n }) : null;\n state = state || {};\n var blurStyle = state.style || {};\n\n if (blurStyle.opacity == null) {\n // clone state\n state = extend({}, state);\n blurStyle = extend({\n // Already being applied 'emphasis'. DON'T mul opacity multiple times.\n opacity: hasBlur ? currentOpacity : fromState.opacity * 0.1\n }, blurStyle);\n state.style = blurStyle;\n }\n\n return state;\n}\n\nfunction elementStateProxy(stateName, targetStates) {\n var state = this.states[stateName];\n\n if (this.style) {\n if (stateName === 'emphasis') {\n return createEmphasisDefaultState(this, stateName, targetStates, state);\n } else if (stateName === 'blur') {\n return createBlurDefaultState(this, stateName, state);\n } else if (stateName === 'select') {\n return createSelectDefaultState(this, stateName, state);\n }\n }\n\n return state;\n}\n/**\n * Set hover style (namely \"emphasis style\") of element.\n * @param el Should not be `zrender/graphic/Group`.\n * @param focus 'self' | 'selfInSeries' | 'series'\n */\n\n\nexport function setDefaultStateProxy(el) {\n el.stateProxy = elementStateProxy;\n var textContent = el.getTextContent();\n var textGuide = el.getTextGuideLine();\n\n if (textContent) {\n textContent.stateProxy = elementStateProxy;\n }\n\n if (textGuide) {\n textGuide.stateProxy = elementStateProxy;\n }\n}\nexport function enterEmphasisWhenMouseOver(el, e) {\n !shouldSilent(el, e) // \"emphasis\" event highlight has higher priority than mouse highlight.\n && !el.__highByOuter && traverseUpdateState(el, singleEnterEmphasis);\n}\nexport function leaveEmphasisWhenMouseOut(el, e) {\n !shouldSilent(el, e) // \"emphasis\" event highlight has higher priority than mouse highlight.\n && !el.__highByOuter && traverseUpdateState(el, singleLeaveEmphasis);\n}\nexport function enterEmphasis(el, highlightDigit) {\n el.__highByOuter |= 1 << (highlightDigit || 0);\n traverseUpdateState(el, singleEnterEmphasis);\n}\nexport function leaveEmphasis(el, highlightDigit) {\n !(el.__highByOuter &= ~(1 << (highlightDigit || 0))) && traverseUpdateState(el, singleLeaveEmphasis);\n}\nexport function enterBlur(el) {\n traverseUpdateState(el, singleEnterBlur);\n}\nexport function leaveBlur(el) {\n traverseUpdateState(el, singleLeaveBlur);\n}\nexport function enterSelect(el) {\n traverseUpdateState(el, singleEnterSelect);\n}\nexport function leaveSelect(el) {\n traverseUpdateState(el, singleLeaveSelect);\n}\n\nfunction shouldSilent(el, e) {\n return el.__highDownSilentOnTouch && e.zrByTouch;\n}\n\nexport function allLeaveBlur(api) {\n var model = api.getModel();\n var leaveBlurredSeries = [];\n var allComponentViews = [];\n model.eachComponent(function (componentType, componentModel) {\n var componentStates = getComponentStates(componentModel);\n var isSeries = componentType === 'series';\n var view = isSeries ? api.getViewOfSeriesModel(componentModel) : api.getViewOfComponentModel(componentModel);\n !isSeries && allComponentViews.push(view);\n\n if (componentStates.isBlured) {\n // Leave blur anyway\n view.group.traverse(function (child) {\n singleLeaveBlur(child);\n });\n isSeries && leaveBlurredSeries.push(componentModel);\n }\n\n componentStates.isBlured = false;\n });\n each(allComponentViews, function (view) {\n if (view && view.toggleBlurSeries) {\n view.toggleBlurSeries(leaveBlurredSeries, false, model);\n }\n });\n}\nexport function blurSeries(targetSeriesIndex, focus, blurScope, api) {\n var ecModel = api.getModel();\n blurScope = blurScope || 'coordinateSystem';\n\n function leaveBlurOfIndices(data, dataIndices) {\n for (var i = 0; i < dataIndices.length; i++) {\n var itemEl = data.getItemGraphicEl(dataIndices[i]);\n itemEl && leaveBlur(itemEl);\n }\n }\n\n if (targetSeriesIndex == null) {\n return;\n }\n\n if (!focus || focus === 'none') {\n return;\n }\n\n var targetSeriesModel = ecModel.getSeriesByIndex(targetSeriesIndex);\n var targetCoordSys = targetSeriesModel.coordinateSystem;\n\n if (targetCoordSys && targetCoordSys.master) {\n targetCoordSys = targetCoordSys.master;\n }\n\n var blurredSeries = [];\n ecModel.eachSeries(function (seriesModel) {\n var sameSeries = targetSeriesModel === seriesModel;\n var coordSys = seriesModel.coordinateSystem;\n\n if (coordSys && coordSys.master) {\n coordSys = coordSys.master;\n }\n\n var sameCoordSys = coordSys && targetCoordSys ? coordSys === targetCoordSys : sameSeries; // If there is no coordinate system. use sameSeries instead.\n\n if (!( // Not blur other series if blurScope series\n blurScope === 'series' && !sameSeries // Not blur other coordinate system if blurScope is coordinateSystem\n || blurScope === 'coordinateSystem' && !sameCoordSys // Not blur self series if focus is series.\n || focus === 'series' && sameSeries // TODO blurScope: coordinate system\n )) {\n var view = api.getViewOfSeriesModel(seriesModel);\n view.group.traverse(function (child) {\n singleEnterBlur(child);\n });\n\n if (isArrayLike(focus)) {\n leaveBlurOfIndices(seriesModel.getData(), focus);\n } else if (isObject(focus)) {\n var dataTypes = keys(focus);\n\n for (var d = 0; d < dataTypes.length; d++) {\n leaveBlurOfIndices(seriesModel.getData(dataTypes[d]), focus[dataTypes[d]]);\n }\n }\n\n blurredSeries.push(seriesModel);\n getComponentStates(seriesModel).isBlured = true;\n }\n });\n ecModel.eachComponent(function (componentType, componentModel) {\n if (componentType === 'series') {\n return;\n }\n\n var view = api.getViewOfComponentModel(componentModel);\n\n if (view && view.toggleBlurSeries) {\n view.toggleBlurSeries(blurredSeries, true, ecModel);\n }\n });\n}\nexport function blurComponent(componentMainType, componentIndex, api) {\n if (componentMainType == null || componentIndex == null) {\n return;\n }\n\n var componentModel = api.getModel().getComponent(componentMainType, componentIndex);\n\n if (!componentModel) {\n return;\n }\n\n getComponentStates(componentModel).isBlured = true;\n var view = api.getViewOfComponentModel(componentModel);\n\n if (!view || !view.focusBlurEnabled) {\n return;\n }\n\n view.group.traverse(function (child) {\n singleEnterBlur(child);\n });\n}\nexport function blurSeriesFromHighlightPayload(seriesModel, payload, api) {\n var seriesIndex = seriesModel.seriesIndex;\n var data = seriesModel.getData(payload.dataType);\n\n if (!data) {\n if (process.env.NODE_ENV !== 'production') {\n error(\"Unknown dataType \" + payload.dataType);\n }\n\n return;\n }\n\n var dataIndex = queryDataIndex(data, payload); // Pick the first one if there is multiple/none exists.\n\n dataIndex = (isArray(dataIndex) ? dataIndex[0] : dataIndex) || 0;\n var el = data.getItemGraphicEl(dataIndex);\n\n if (!el) {\n var count = data.count();\n var current = 0; // If data on dataIndex is NaN.\n\n while (!el && current < count) {\n el = data.getItemGraphicEl(current++);\n }\n }\n\n if (el) {\n var ecData = getECData(el);\n blurSeries(seriesIndex, ecData.focus, ecData.blurScope, api);\n } else {\n // If there is no element put on the data. Try getting it from raw option\n // TODO Should put it on seriesModel?\n var focus_1 = seriesModel.get(['emphasis', 'focus']);\n var blurScope = seriesModel.get(['emphasis', 'blurScope']);\n\n if (focus_1 != null) {\n blurSeries(seriesIndex, focus_1, blurScope, api);\n }\n }\n}\nexport function findComponentHighDownDispatchers(componentMainType, componentIndex, name, api) {\n var ret = {\n focusSelf: false,\n dispatchers: null\n };\n\n if (componentMainType == null || componentMainType === 'series' || componentIndex == null || name == null) {\n return ret;\n }\n\n var componentModel = api.getModel().getComponent(componentMainType, componentIndex);\n\n if (!componentModel) {\n return ret;\n }\n\n var view = api.getViewOfComponentModel(componentModel);\n\n if (!view || !view.findHighDownDispatchers) {\n return ret;\n }\n\n var dispatchers = view.findHighDownDispatchers(name); // At presnet, the component (like Geo) only blur inside itself.\n // So we do not use `blurScope` in component.\n\n var focusSelf;\n\n for (var i = 0; i < dispatchers.length; i++) {\n if (process.env.NODE_ENV !== 'production' && !isHighDownDispatcher(dispatchers[i])) {\n error('param should be highDownDispatcher');\n }\n\n if (getECData(dispatchers[i]).focus === 'self') {\n focusSelf = true;\n break;\n }\n }\n\n return {\n focusSelf: focusSelf,\n dispatchers: dispatchers\n };\n}\nexport function handleGlobalMouseOverForHighDown(dispatcher, e, api) {\n if (process.env.NODE_ENV !== 'production' && !isHighDownDispatcher(dispatcher)) {\n error('param should be highDownDispatcher');\n }\n\n var ecData = getECData(dispatcher);\n\n var _a = findComponentHighDownDispatchers(ecData.componentMainType, ecData.componentIndex, ecData.componentHighDownName, api),\n dispatchers = _a.dispatchers,\n focusSelf = _a.focusSelf; // If `findHighDownDispatchers` is supported on the component,\n // highlight/downplay elements with the same name.\n\n\n if (dispatchers) {\n if (focusSelf) {\n blurComponent(ecData.componentMainType, ecData.componentIndex, api);\n }\n\n each(dispatchers, function (dispatcher) {\n return enterEmphasisWhenMouseOver(dispatcher, e);\n });\n } else {\n // Try blur all in the related series. Then emphasis the hoverred.\n // TODO. progressive mode.\n blurSeries(ecData.seriesIndex, ecData.focus, ecData.blurScope, api);\n\n if (ecData.focus === 'self') {\n blurComponent(ecData.componentMainType, ecData.componentIndex, api);\n } // Other than series, component that not support `findHighDownDispatcher` will\n // also use it. But in this case, highlight/downplay are only supported in\n // mouse hover but not in dispatchAction.\n\n\n enterEmphasisWhenMouseOver(dispatcher, e);\n }\n}\nexport function handleGlobalMouseOutForHighDown(dispatcher, e, api) {\n if (process.env.NODE_ENV !== 'production' && !isHighDownDispatcher(dispatcher)) {\n error('param should be highDownDispatcher');\n }\n\n allLeaveBlur(api);\n var ecData = getECData(dispatcher);\n var dispatchers = findComponentHighDownDispatchers(ecData.componentMainType, ecData.componentIndex, ecData.componentHighDownName, api).dispatchers;\n\n if (dispatchers) {\n each(dispatchers, function (dispatcher) {\n return leaveEmphasisWhenMouseOut(dispatcher, e);\n });\n } else {\n leaveEmphasisWhenMouseOut(dispatcher, e);\n }\n}\nexport function toggleSelectionFromPayload(seriesModel, payload, api) {\n if (!isSelectChangePayload(payload)) {\n return;\n }\n\n var dataType = payload.dataType;\n var data = seriesModel.getData(dataType);\n var dataIndex = queryDataIndex(data, payload);\n\n if (!isArray(dataIndex)) {\n dataIndex = [dataIndex];\n }\n\n seriesModel[payload.type === TOGGLE_SELECT_ACTION_TYPE ? 'toggleSelect' : payload.type === SELECT_ACTION_TYPE ? 'select' : 'unselect'](dataIndex, dataType);\n}\nexport function updateSeriesElementSelection(seriesModel) {\n var allData = seriesModel.getAllData();\n each(allData, function (_a) {\n var data = _a.data,\n type = _a.type;\n data.eachItemGraphicEl(function (el, idx) {\n seriesModel.isSelected(idx, type) ? enterSelect(el) : leaveSelect(el);\n });\n });\n}\nexport function getAllSelectedIndices(ecModel) {\n var ret = [];\n ecModel.eachSeries(function (seriesModel) {\n var allData = seriesModel.getAllData();\n each(allData, function (_a) {\n var data = _a.data,\n type = _a.type;\n var dataIndices = seriesModel.getSelectedDataIndices();\n\n if (dataIndices.length > 0) {\n var item = {\n dataIndex: dataIndices,\n seriesIndex: seriesModel.seriesIndex\n };\n\n if (type != null) {\n item.dataType = type;\n }\n\n ret.push(item);\n }\n });\n });\n return ret;\n}\n/**\n * Enable the function that mouseover will trigger the emphasis state.\n *\n * NOTE:\n * This function should be used on the element with dataIndex, seriesIndex.\n *\n */\n\nexport function enableHoverEmphasis(el, focus, blurScope) {\n setAsHighDownDispatcher(el, true);\n traverseUpdateState(el, setDefaultStateProxy);\n enableHoverFocus(el, focus, blurScope);\n}\nexport function disableHoverEmphasis(el) {\n setAsHighDownDispatcher(el, false);\n}\nexport function toggleHoverEmphasis(el, focus, blurScope, isDisabled) {\n isDisabled ? disableHoverEmphasis(el) : enableHoverEmphasis(el, focus, blurScope);\n}\nexport function enableHoverFocus(el, focus, blurScope) {\n var ecData = getECData(el);\n\n if (focus != null) {\n // TODO dataIndex may be set after this function. This check is not useful.\n // if (ecData.dataIndex == null) {\n // if (__DEV__) {\n // console.warn('focus can only been set on element with dataIndex');\n // }\n // }\n // else {\n ecData.focus = focus;\n ecData.blurScope = blurScope; // }\n } else if (ecData.focus) {\n ecData.focus = null;\n }\n}\nvar OTHER_STATES = ['emphasis', 'blur', 'select'];\nvar defaultStyleGetterMap = {\n itemStyle: 'getItemStyle',\n lineStyle: 'getLineStyle',\n areaStyle: 'getAreaStyle'\n};\n/**\n * Set emphasis/blur/selected states of element.\n */\n\nexport function setStatesStylesFromModel(el, itemModel, styleType, // default itemStyle\ngetter) {\n styleType = styleType || 'itemStyle';\n\n for (var i = 0; i < OTHER_STATES.length; i++) {\n var stateName = OTHER_STATES[i];\n var model = itemModel.getModel([stateName, styleType]);\n var state = el.ensureState(stateName); // Let it throw error if getterType is not found.\n\n state.style = getter ? getter(model) : model[defaultStyleGetterMap[styleType]]();\n }\n}\n/**\n *\n * Set element as highlight / downplay dispatcher.\n * It will be checked when element received mouseover event or from highlight action.\n * It's in change of all highlight/downplay behavior of it's children.\n *\n * @param el\n * @param el.highDownSilentOnTouch\n * In touch device, mouseover event will be trigger on touchstart event\n * (see module:zrender/dom/HandlerProxy). By this mechanism, we can\n * conveniently use hoverStyle when tap on touch screen without additional\n * code for compatibility.\n * But if the chart/component has select feature, which usually also use\n * hoverStyle, there might be conflict between 'select-highlight' and\n * 'hover-highlight' especially when roam is enabled (see geo for example).\n * In this case, `highDownSilentOnTouch` should be used to disable\n * hover-highlight on touch device.\n * @param asDispatcher If `false`, do not set as \"highDownDispatcher\".\n */\n\nexport function setAsHighDownDispatcher(el, asDispatcher) {\n var disable = asDispatcher === false;\n var extendedEl = el; // Make `highDownSilentOnTouch` and `onStateChange` only work after\n // `setAsHighDownDispatcher` called. Avoid it is modified by user unexpectedly.\n\n if (el.highDownSilentOnTouch) {\n extendedEl.__highDownSilentOnTouch = el.highDownSilentOnTouch;\n } // Simple optimize, since this method might be\n // called for each elements of a group in some cases.\n\n\n if (!disable || extendedEl.__highDownDispatcher) {\n // Emphasis, normal can be triggered manually by API or other components like hover link.\n // el[method]('emphasis', onElementEmphasisEvent)[method]('normal', onElementNormalEvent);\n // Also keep previous record.\n extendedEl.__highByOuter = extendedEl.__highByOuter || 0;\n extendedEl.__highDownDispatcher = !disable;\n }\n}\nexport function isHighDownDispatcher(el) {\n return !!(el && el.__highDownDispatcher);\n}\n/**\n * Enable component highlight/downplay features:\n * + hover link (within the same name)\n * + focus blur in component\n */\n\nexport function enableComponentHighDownFeatures(el, componentModel, componentHighDownName) {\n var ecData = getECData(el);\n ecData.componentMainType = componentModel.mainType;\n ecData.componentIndex = componentModel.componentIndex;\n ecData.componentHighDownName = componentHighDownName;\n}\n/**\n * Support highlight/downplay record on each elements.\n * For the case: hover highlight/downplay (legend, visualMap, ...) and\n * user triggered highlight/downplay should not conflict.\n * Only all of the highlightDigit cleared, return to normal.\n * @param {string} highlightKey\n * @return {number} highlightDigit\n */\n\nexport function getHighlightDigit(highlightKey) {\n var highlightDigit = _highlightKeyMap[highlightKey];\n\n if (highlightDigit == null && _highlightNextDigit <= 32) {\n highlightDigit = _highlightKeyMap[highlightKey] = _highlightNextDigit++;\n }\n\n return highlightDigit;\n}\nexport function isSelectChangePayload(payload) {\n var payloadType = payload.type;\n return payloadType === SELECT_ACTION_TYPE || payloadType === UNSELECT_ACTION_TYPE || payloadType === TOGGLE_SELECT_ACTION_TYPE;\n}\nexport function isHighDownPayload(payload) {\n var payloadType = payload.type;\n return payloadType === HIGHLIGHT_ACTION_TYPE || payloadType === DOWNPLAY_ACTION_TYPE;\n}\nexport function savePathStates(el) {\n var store = getSavedStates(el);\n store.normalFill = el.style.fill;\n store.normalStroke = el.style.stroke;\n var selectState = el.states.select || {};\n store.selectFill = selectState.style && selectState.style.fill || null;\n store.selectStroke = selectState.style && selectState.style.stroke || null;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { each, hasOwn } from 'zrender/lib/core/util.js';\nvar deprecatedLogs = {};\n/**\n * Whether need to call `convertEC4CompatibleStyle`.\n */\n\nexport function isEC4CompatibleStyle(style, elType, hasOwnTextContentOption, hasOwnTextConfig) {\n // Since echarts5, `RectText` is separated from its host element and style.text\n // does not exist any more. The compat work brings some extra burden on performance.\n // So we provide:\n // `legacy: true` force make compat.\n // `legacy: false`, force do not compat.\n // `legacy` not set: auto detect whether legacy.\n // But in this case we do not compat (difficult to detect and rare case):\n // Becuse custom series and graphic component support \"merge\", users may firstly\n // only set `textStrokeWidth` style or secondly only set `text`.\n return style && (style.legacy || style.legacy !== false && !hasOwnTextContentOption && !hasOwnTextConfig && elType !== 'tspan' // Difficult to detect whether legacy for a \"text\" el.\n && (elType === 'text' || hasOwn(style, 'text')));\n}\n/**\n * `EC4CompatibleStyle` is style that might be in echarts4 format or echarts5 format.\n * @param hostStyle The properties might be modified.\n * @return If be text el, `textContentStyle` and `textConfig` will not be returned.\n * Otherwise a `textContentStyle` and `textConfig` will be created, whose props area\n * retried from the `hostStyle`.\n */\n\nexport function convertFromEC4CompatibleStyle(hostStyle, elType, isNormal) {\n var srcStyle = hostStyle;\n var textConfig;\n var textContent;\n var textContentStyle;\n\n if (elType === 'text') {\n textContentStyle = srcStyle;\n } else {\n textContentStyle = {};\n hasOwn(srcStyle, 'text') && (textContentStyle.text = srcStyle.text);\n hasOwn(srcStyle, 'rich') && (textContentStyle.rich = srcStyle.rich);\n hasOwn(srcStyle, 'textFill') && (textContentStyle.fill = srcStyle.textFill);\n hasOwn(srcStyle, 'textStroke') && (textContentStyle.stroke = srcStyle.textStroke);\n hasOwn(srcStyle, 'fontFamily') && (textContentStyle.fontFamily = srcStyle.fontFamily);\n hasOwn(srcStyle, 'fontSize') && (textContentStyle.fontSize = srcStyle.fontSize);\n hasOwn(srcStyle, 'fontStyle') && (textContentStyle.fontStyle = srcStyle.fontStyle);\n hasOwn(srcStyle, 'fontWeight') && (textContentStyle.fontWeight = srcStyle.fontWeight);\n textContent = {\n type: 'text',\n style: textContentStyle,\n // ec4 does not support rectText trigger.\n // And when text position is different in normal and emphasis\n // => hover text trigger emphasis;\n // => text position changed, leave mouse pointer immediately;\n // That might cause incorrect state.\n silent: true\n };\n textConfig = {};\n var hasOwnPos = hasOwn(srcStyle, 'textPosition');\n\n if (isNormal) {\n textConfig.position = hasOwnPos ? srcStyle.textPosition : 'inside';\n } else {\n hasOwnPos && (textConfig.position = srcStyle.textPosition);\n }\n\n hasOwn(srcStyle, 'textPosition') && (textConfig.position = srcStyle.textPosition);\n hasOwn(srcStyle, 'textOffset') && (textConfig.offset = srcStyle.textOffset);\n hasOwn(srcStyle, 'textRotation') && (textConfig.rotation = srcStyle.textRotation);\n hasOwn(srcStyle, 'textDistance') && (textConfig.distance = srcStyle.textDistance);\n }\n\n convertEC4CompatibleRichItem(textContentStyle, hostStyle);\n each(textContentStyle.rich, function (richItem) {\n convertEC4CompatibleRichItem(richItem, richItem);\n });\n return {\n textConfig: textConfig,\n textContent: textContent\n };\n}\n/**\n * The result will be set to `out`.\n */\n\nfunction convertEC4CompatibleRichItem(out, richItem) {\n if (!richItem) {\n return;\n } // (1) For simplicity, make textXXX properties (deprecated since ec5) has\n // higher priority. For example, consider in ec4 `borderColor: 5, textBorderColor: 10`\n // on a rect means `borderColor: 4` on the rect and `borderColor: 10` on an attached\n // richText in ec5.\n // (2) `out === richItem` if and only if `out` is text el or rich item.\n // So we can overwrite existing props in `out` since textXXX has higher priority.\n\n\n richItem.font = richItem.textFont || richItem.font;\n hasOwn(richItem, 'textStrokeWidth') && (out.lineWidth = richItem.textStrokeWidth);\n hasOwn(richItem, 'textAlign') && (out.align = richItem.textAlign);\n hasOwn(richItem, 'textVerticalAlign') && (out.verticalAlign = richItem.textVerticalAlign);\n hasOwn(richItem, 'textLineHeight') && (out.lineHeight = richItem.textLineHeight);\n hasOwn(richItem, 'textWidth') && (out.width = richItem.textWidth);\n hasOwn(richItem, 'textHeight') && (out.height = richItem.textHeight);\n hasOwn(richItem, 'textBackgroundColor') && (out.backgroundColor = richItem.textBackgroundColor);\n hasOwn(richItem, 'textPadding') && (out.padding = richItem.textPadding);\n hasOwn(richItem, 'textBorderColor') && (out.borderColor = richItem.textBorderColor);\n hasOwn(richItem, 'textBorderWidth') && (out.borderWidth = richItem.textBorderWidth);\n hasOwn(richItem, 'textBorderRadius') && (out.borderRadius = richItem.textBorderRadius);\n hasOwn(richItem, 'textBoxShadowColor') && (out.shadowColor = richItem.textBoxShadowColor);\n hasOwn(richItem, 'textBoxShadowBlur') && (out.shadowBlur = richItem.textBoxShadowBlur);\n hasOwn(richItem, 'textBoxShadowOffsetX') && (out.shadowOffsetX = richItem.textBoxShadowOffsetX);\n hasOwn(richItem, 'textBoxShadowOffsetY') && (out.shadowOffsetY = richItem.textBoxShadowOffsetY);\n}\n/**\n * Convert to pure echarts4 format style.\n * `itemStyle` will be modified, added with ec4 style properties from\n * `textStyle` and `textConfig`.\n *\n * [Caveat]: For simplicity, `insideRollback` in ec4 does not compat, where\n * `styleEmphasis: {textFill: 'red'}` will remove the normal auto added stroke.\n */\n\n\nexport function convertToEC4StyleForCustomSerise(itemStl, txStl, txCfg) {\n var out = itemStl; // See `custom.ts`, a trick to set extra `textPosition` firstly.\n\n out.textPosition = out.textPosition || txCfg.position || 'inside';\n txCfg.offset != null && (out.textOffset = txCfg.offset);\n txCfg.rotation != null && (out.textRotation = txCfg.rotation);\n txCfg.distance != null && (out.textDistance = txCfg.distance);\n var isInside = out.textPosition.indexOf('inside') >= 0;\n var hostFill = itemStl.fill || '#000';\n convertToEC4RichItem(out, txStl);\n var textFillNotSet = out.textFill == null;\n\n if (isInside) {\n if (textFillNotSet) {\n out.textFill = txCfg.insideFill || '#fff';\n !out.textStroke && txCfg.insideStroke && (out.textStroke = txCfg.insideStroke);\n !out.textStroke && (out.textStroke = hostFill);\n out.textStrokeWidth == null && (out.textStrokeWidth = 2);\n }\n } else {\n if (textFillNotSet) {\n out.textFill = itemStl.fill || txCfg.outsideFill || '#000';\n }\n\n !out.textStroke && txCfg.outsideStroke && (out.textStroke = txCfg.outsideStroke);\n }\n\n out.text = txStl.text;\n out.rich = txStl.rich;\n each(txStl.rich, function (richItem) {\n convertToEC4RichItem(richItem, richItem);\n });\n return out;\n}\n\nfunction convertToEC4RichItem(out, richItem) {\n if (!richItem) {\n return;\n }\n\n hasOwn(richItem, 'fill') && (out.textFill = richItem.fill);\n hasOwn(richItem, 'stroke') && (out.textStroke = richItem.fill);\n hasOwn(richItem, 'lineWidth') && (out.textStrokeWidth = richItem.lineWidth);\n hasOwn(richItem, 'font') && (out.font = richItem.font);\n hasOwn(richItem, 'fontStyle') && (out.fontStyle = richItem.fontStyle);\n hasOwn(richItem, 'fontWeight') && (out.fontWeight = richItem.fontWeight);\n hasOwn(richItem, 'fontSize') && (out.fontSize = richItem.fontSize);\n hasOwn(richItem, 'fontFamily') && (out.fontFamily = richItem.fontFamily);\n hasOwn(richItem, 'align') && (out.textAlign = richItem.align);\n hasOwn(richItem, 'verticalAlign') && (out.textVerticalAlign = richItem.verticalAlign);\n hasOwn(richItem, 'lineHeight') && (out.textLineHeight = richItem.lineHeight);\n hasOwn(richItem, 'width') && (out.textWidth = richItem.width);\n hasOwn(richItem, 'height') && (out.textHeight = richItem.height);\n hasOwn(richItem, 'backgroundColor') && (out.textBackgroundColor = richItem.backgroundColor);\n hasOwn(richItem, 'padding') && (out.textPadding = richItem.padding);\n hasOwn(richItem, 'borderColor') && (out.textBorderColor = richItem.borderColor);\n hasOwn(richItem, 'borderWidth') && (out.textBorderWidth = richItem.borderWidth);\n hasOwn(richItem, 'borderRadius') && (out.textBorderRadius = richItem.borderRadius);\n hasOwn(richItem, 'shadowColor') && (out.textBoxShadowColor = richItem.shadowColor);\n hasOwn(richItem, 'shadowBlur') && (out.textBoxShadowBlur = richItem.shadowBlur);\n hasOwn(richItem, 'shadowOffsetX') && (out.textBoxShadowOffsetX = richItem.shadowOffsetX);\n hasOwn(richItem, 'shadowOffsetY') && (out.textBoxShadowOffsetY = richItem.shadowOffsetY);\n hasOwn(richItem, 'textShadowColor') && (out.textShadowColor = richItem.textShadowColor);\n hasOwn(richItem, 'textShadowBlur') && (out.textShadowBlur = richItem.textShadowBlur);\n hasOwn(richItem, 'textShadowOffsetX') && (out.textShadowOffsetX = richItem.textShadowOffsetX);\n hasOwn(richItem, 'textShadowOffsetY') && (out.textShadowOffsetY = richItem.textShadowOffsetY);\n}\n\nexport function warnDeprecated(deprecated, insteadApproach) {\n if (process.env.NODE_ENV !== 'production') {\n var key = deprecated + '^_^' + insteadApproach;\n\n if (!deprecatedLogs[key]) {\n console.warn(\"[ECharts] DEPRECATED: \\\"\" + deprecated + \"\\\" has been deprecated. \" + insteadApproach);\n deprecatedLogs[key] = true;\n }\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Symbol factory\nimport { each, isArray, retrieve2 } from 'zrender/lib/core/util.js';\nimport * as graphic from './graphic.js';\nimport BoundingRect from 'zrender/lib/core/BoundingRect.js';\nimport { calculateTextPosition } from 'zrender/lib/contain/text.js';\nimport { parsePercent } from './number.js';\n/**\n * Triangle shape\n * @inner\n */\n\nvar Triangle = graphic.Path.extend({\n type: 'triangle',\n shape: {\n cx: 0,\n cy: 0,\n width: 0,\n height: 0\n },\n buildPath: function (path, shape) {\n var cx = shape.cx;\n var cy = shape.cy;\n var width = shape.width / 2;\n var height = shape.height / 2;\n path.moveTo(cx, cy - height);\n path.lineTo(cx + width, cy + height);\n path.lineTo(cx - width, cy + height);\n path.closePath();\n }\n});\n/**\n * Diamond shape\n * @inner\n */\n\nvar Diamond = graphic.Path.extend({\n type: 'diamond',\n shape: {\n cx: 0,\n cy: 0,\n width: 0,\n height: 0\n },\n buildPath: function (path, shape) {\n var cx = shape.cx;\n var cy = shape.cy;\n var width = shape.width / 2;\n var height = shape.height / 2;\n path.moveTo(cx, cy - height);\n path.lineTo(cx + width, cy);\n path.lineTo(cx, cy + height);\n path.lineTo(cx - width, cy);\n path.closePath();\n }\n});\n/**\n * Pin shape\n * @inner\n */\n\nvar Pin = graphic.Path.extend({\n type: 'pin',\n shape: {\n // x, y on the cusp\n x: 0,\n y: 0,\n width: 0,\n height: 0\n },\n buildPath: function (path, shape) {\n var x = shape.x;\n var y = shape.y;\n var w = shape.width / 5 * 3; // Height must be larger than width\n\n var h = Math.max(w, shape.height);\n var r = w / 2; // Dist on y with tangent point and circle center\n\n var dy = r * r / (h - r);\n var cy = y - h + r + dy;\n var angle = Math.asin(dy / r); // Dist on x with tangent point and circle center\n\n var dx = Math.cos(angle) * r;\n var tanX = Math.sin(angle);\n var tanY = Math.cos(angle);\n var cpLen = r * 0.6;\n var cpLen2 = r * 0.7;\n path.moveTo(x - dx, cy + dy);\n path.arc(x, cy, r, Math.PI - angle, Math.PI * 2 + angle);\n path.bezierCurveTo(x + dx - tanX * cpLen, cy + dy + tanY * cpLen, x, y - cpLen2, x, y);\n path.bezierCurveTo(x, y - cpLen2, x - dx + tanX * cpLen, cy + dy + tanY * cpLen, x - dx, cy + dy);\n path.closePath();\n }\n});\n/**\n * Arrow shape\n * @inner\n */\n\nvar Arrow = graphic.Path.extend({\n type: 'arrow',\n shape: {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n },\n buildPath: function (ctx, shape) {\n var height = shape.height;\n var width = shape.width;\n var x = shape.x;\n var y = shape.y;\n var dx = width / 3 * 2;\n ctx.moveTo(x, y);\n ctx.lineTo(x + dx, y + height);\n ctx.lineTo(x, y + height / 4 * 3);\n ctx.lineTo(x - dx, y + height);\n ctx.lineTo(x, y);\n ctx.closePath();\n }\n});\n/**\n * Map of path constructors\n */\n// TODO Use function to build symbol path.\n\nvar symbolCtors = {\n line: graphic.Line,\n rect: graphic.Rect,\n roundRect: graphic.Rect,\n square: graphic.Rect,\n circle: graphic.Circle,\n diamond: Diamond,\n pin: Pin,\n arrow: Arrow,\n triangle: Triangle\n};\nvar symbolShapeMakers = {\n line: function (x, y, w, h, shape) {\n shape.x1 = x;\n shape.y1 = y + h / 2;\n shape.x2 = x + w;\n shape.y2 = y + h / 2;\n },\n rect: function (x, y, w, h, shape) {\n shape.x = x;\n shape.y = y;\n shape.width = w;\n shape.height = h;\n },\n roundRect: function (x, y, w, h, shape) {\n shape.x = x;\n shape.y = y;\n shape.width = w;\n shape.height = h;\n shape.r = Math.min(w, h) / 4;\n },\n square: function (x, y, w, h, shape) {\n var size = Math.min(w, h);\n shape.x = x;\n shape.y = y;\n shape.width = size;\n shape.height = size;\n },\n circle: function (x, y, w, h, shape) {\n // Put circle in the center of square\n shape.cx = x + w / 2;\n shape.cy = y + h / 2;\n shape.r = Math.min(w, h) / 2;\n },\n diamond: function (x, y, w, h, shape) {\n shape.cx = x + w / 2;\n shape.cy = y + h / 2;\n shape.width = w;\n shape.height = h;\n },\n pin: function (x, y, w, h, shape) {\n shape.x = x + w / 2;\n shape.y = y + h / 2;\n shape.width = w;\n shape.height = h;\n },\n arrow: function (x, y, w, h, shape) {\n shape.x = x + w / 2;\n shape.y = y + h / 2;\n shape.width = w;\n shape.height = h;\n },\n triangle: function (x, y, w, h, shape) {\n shape.cx = x + w / 2;\n shape.cy = y + h / 2;\n shape.width = w;\n shape.height = h;\n }\n};\nexport var symbolBuildProxies = {};\neach(symbolCtors, function (Ctor, name) {\n symbolBuildProxies[name] = new Ctor();\n});\nvar SymbolClz = graphic.Path.extend({\n type: 'symbol',\n shape: {\n symbolType: '',\n x: 0,\n y: 0,\n width: 0,\n height: 0\n },\n calculateTextPosition: function (out, config, rect) {\n var res = calculateTextPosition(out, config, rect);\n var shape = this.shape;\n\n if (shape && shape.symbolType === 'pin' && config.position === 'inside') {\n res.y = rect.y + rect.height * 0.4;\n }\n\n return res;\n },\n buildPath: function (ctx, shape, inBundle) {\n var symbolType = shape.symbolType;\n\n if (symbolType !== 'none') {\n var proxySymbol = symbolBuildProxies[symbolType];\n\n if (!proxySymbol) {\n // Default rect\n symbolType = 'rect';\n proxySymbol = symbolBuildProxies[symbolType];\n }\n\n symbolShapeMakers[symbolType](shape.x, shape.y, shape.width, shape.height, proxySymbol.shape);\n proxySymbol.buildPath(ctx, proxySymbol.shape, inBundle);\n }\n }\n}); // Provide setColor helper method to avoid determine if set the fill or stroke outside\n\nfunction symbolPathSetColor(color, innerColor) {\n if (this.type !== 'image') {\n var symbolStyle = this.style;\n\n if (this.__isEmptyBrush) {\n symbolStyle.stroke = color;\n symbolStyle.fill = innerColor || '#fff'; // TODO Same width with lineStyle in LineView\n\n symbolStyle.lineWidth = 2;\n } else if (this.shape.symbolType === 'line') {\n symbolStyle.stroke = color;\n } else {\n symbolStyle.fill = color;\n }\n\n this.markRedraw();\n }\n}\n/**\n * Create a symbol element with given symbol configuration: shape, x, y, width, height, color\n */\n\n\nexport function createSymbol(symbolType, x, y, w, h, color, // whether to keep the ratio of w/h,\nkeepAspect) {\n // TODO Support image object, DynamicImage.\n var isEmpty = symbolType.indexOf('empty') === 0;\n\n if (isEmpty) {\n symbolType = symbolType.substr(5, 1).toLowerCase() + symbolType.substr(6);\n }\n\n var symbolPath;\n\n if (symbolType.indexOf('image://') === 0) {\n symbolPath = graphic.makeImage(symbolType.slice(8), new BoundingRect(x, y, w, h), keepAspect ? 'center' : 'cover');\n } else if (symbolType.indexOf('path://') === 0) {\n symbolPath = graphic.makePath(symbolType.slice(7), {}, new BoundingRect(x, y, w, h), keepAspect ? 'center' : 'cover');\n } else {\n symbolPath = new SymbolClz({\n shape: {\n symbolType: symbolType,\n x: x,\n y: y,\n width: w,\n height: h\n }\n });\n }\n\n symbolPath.__isEmptyBrush = isEmpty; // TODO Should deprecate setColor\n\n symbolPath.setColor = symbolPathSetColor;\n\n if (color) {\n symbolPath.setColor(color);\n }\n\n return symbolPath;\n}\nexport function normalizeSymbolSize(symbolSize) {\n if (!isArray(symbolSize)) {\n symbolSize = [+symbolSize, +symbolSize];\n }\n\n return [symbolSize[0] || 0, symbolSize[1] || 0];\n}\nexport function normalizeSymbolOffset(symbolOffset, symbolSize) {\n if (symbolOffset == null) {\n return;\n }\n\n if (!isArray(symbolOffset)) {\n symbolOffset = [symbolOffset, symbolOffset];\n }\n\n return [parsePercent(symbolOffset[0], symbolSize[0]) || 0, parsePercent(retrieve2(symbolOffset[1], symbolOffset[0]), symbolSize[1]) || 0];\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar ORIGIN_METHOD = '\\0__throttleOriginMethod';\nvar RATE = '\\0__throttleRate';\nvar THROTTLE_TYPE = '\\0__throttleType';\n;\n/**\n * @public\n * @param {(Function)} fn\n * @param {number} [delay=0] Unit: ms.\n * @param {boolean} [debounce=false]\n * true: If call interval less than `delay`, only the last call works.\n * false: If call interval less than `delay, call works on fixed rate.\n * @return {(Function)} throttled fn.\n */\n\nexport function throttle(fn, delay, debounce) {\n var currCall;\n var lastCall = 0;\n var lastExec = 0;\n var timer = null;\n var diff;\n var scope;\n var args;\n var debounceNextCall;\n delay = delay || 0;\n\n function exec() {\n lastExec = new Date().getTime();\n timer = null;\n fn.apply(scope, args || []);\n }\n\n var cb = function () {\n var cbArgs = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n cbArgs[_i] = arguments[_i];\n }\n\n currCall = new Date().getTime();\n scope = this;\n args = cbArgs;\n var thisDelay = debounceNextCall || delay;\n var thisDebounce = debounceNextCall || debounce;\n debounceNextCall = null;\n diff = currCall - (thisDebounce ? lastCall : lastExec) - thisDelay;\n clearTimeout(timer); // Here we should make sure that: the `exec` SHOULD NOT be called later\n // than a new call of `cb`, that is, preserving the command order. Consider\n // calculating \"scale rate\" when roaming as an example. When a call of `cb`\n // happens, either the `exec` is called dierectly, or the call is delayed.\n // But the delayed call should never be later than next call of `cb`. Under\n // this assurance, we can simply update view state each time `dispatchAction`\n // triggered by user roaming, but not need to add extra code to avoid the\n // state being \"rolled-back\".\n\n if (thisDebounce) {\n timer = setTimeout(exec, thisDelay);\n } else {\n if (diff >= 0) {\n exec();\n } else {\n timer = setTimeout(exec, -diff);\n }\n }\n\n lastCall = currCall;\n };\n /**\n * Clear throttle.\n * @public\n */\n\n\n cb.clear = function () {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n };\n /**\n * Enable debounce once.\n */\n\n\n cb.debounceNextCall = function (debounceDelay) {\n debounceNextCall = debounceDelay;\n };\n\n return cb;\n}\n/**\n * Create throttle method or update throttle rate.\n *\n * @example\n * ComponentView.prototype.render = function () {\n * ...\n * throttle.createOrUpdate(\n * this,\n * '_dispatchAction',\n * this.model.get('throttle'),\n * 'fixRate'\n * );\n * };\n * ComponentView.prototype.remove = function () {\n * throttle.clear(this, '_dispatchAction');\n * };\n * ComponentView.prototype.dispose = function () {\n * throttle.clear(this, '_dispatchAction');\n * };\n *\n */\n\nexport function createOrUpdate(obj, fnAttr, rate, throttleType) {\n var fn = obj[fnAttr];\n\n if (!fn) {\n return;\n }\n\n var originFn = fn[ORIGIN_METHOD] || fn;\n var lastThrottleType = fn[THROTTLE_TYPE];\n var lastRate = fn[RATE];\n\n if (lastRate !== rate || lastThrottleType !== throttleType) {\n if (rate == null || !throttleType) {\n return obj[fnAttr] = originFn;\n }\n\n fn = obj[fnAttr] = throttle(originFn, rate, throttleType === 'debounce');\n fn[ORIGIN_METHOD] = originFn;\n fn[THROTTLE_TYPE] = throttleType;\n fn[RATE] = rate;\n }\n\n return fn;\n}\n/**\n * Clear throttle. Example see throttle.createOrUpdate.\n */\n\nexport function clear(obj, fnAttr) {\n var fn = obj[fnAttr];\n\n if (fn && fn[ORIGIN_METHOD]) {\n // Clear throttle\n fn.clear && fn.clear();\n obj[fnAttr] = fn[ORIGIN_METHOD];\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as numberUtil from './number.js';\nimport { getDefaultLocaleModel, getLocaleModel, SYSTEM_LANG } from '../core/locale.js';\nimport Model from '../model/Model.js';\nexport var ONE_SECOND = 1000;\nexport var ONE_MINUTE = ONE_SECOND * 60;\nexport var ONE_HOUR = ONE_MINUTE * 60;\nexport var ONE_DAY = ONE_HOUR * 24;\nexport var ONE_YEAR = ONE_DAY * 365;\nexport var defaultLeveledFormatter = {\n year: '{yyyy}',\n month: '{MMM}',\n day: '{d}',\n hour: '{HH}:{mm}',\n minute: '{HH}:{mm}',\n second: '{HH}:{mm}:{ss}',\n millisecond: '{HH}:{mm}:{ss} {SSS}',\n none: '{yyyy}-{MM}-{dd} {HH}:{mm}:{ss} {SSS}'\n};\nvar fullDayFormatter = '{yyyy}-{MM}-{dd}';\nexport var fullLeveledFormatter = {\n year: '{yyyy}',\n month: '{yyyy}-{MM}',\n day: fullDayFormatter,\n hour: fullDayFormatter + ' ' + defaultLeveledFormatter.hour,\n minute: fullDayFormatter + ' ' + defaultLeveledFormatter.minute,\n second: fullDayFormatter + ' ' + defaultLeveledFormatter.second,\n millisecond: defaultLeveledFormatter.none\n};\nexport var primaryTimeUnits = ['year', 'month', 'day', 'hour', 'minute', 'second', 'millisecond'];\nexport var timeUnits = ['year', 'half-year', 'quarter', 'month', 'week', 'half-week', 'day', 'half-day', 'quarter-day', 'hour', 'minute', 'second', 'millisecond'];\nexport function pad(str, len) {\n str += '';\n return '0000'.substr(0, len - str.length) + str;\n}\nexport function getPrimaryTimeUnit(timeUnit) {\n switch (timeUnit) {\n case 'half-year':\n case 'quarter':\n return 'month';\n\n case 'week':\n case 'half-week':\n return 'day';\n\n case 'half-day':\n case 'quarter-day':\n return 'hour';\n\n default:\n // year, minutes, second, milliseconds\n return timeUnit;\n }\n}\nexport function isPrimaryTimeUnit(timeUnit) {\n return timeUnit === getPrimaryTimeUnit(timeUnit);\n}\nexport function getDefaultFormatPrecisionOfInterval(timeUnit) {\n switch (timeUnit) {\n case 'year':\n case 'month':\n return 'day';\n\n case 'millisecond':\n return 'millisecond';\n\n default:\n // Also for day, hour, minute, second\n return 'second';\n }\n}\nexport function format( // Note: The result based on `isUTC` are totally different, which can not be just simply\n// substituted by the result without `isUTC`. So we make the param `isUTC` mandatory.\ntime, template, isUTC, lang) {\n var date = numberUtil.parseDate(time);\n var y = date[fullYearGetterName(isUTC)]();\n var M = date[monthGetterName(isUTC)]() + 1;\n var q = Math.floor((M - 1) / 3) + 1;\n var d = date[dateGetterName(isUTC)]();\n var e = date['get' + (isUTC ? 'UTC' : '') + 'Day']();\n var H = date[hoursGetterName(isUTC)]();\n var h = (H - 1) % 12 + 1;\n var m = date[minutesGetterName(isUTC)]();\n var s = date[secondsGetterName(isUTC)]();\n var S = date[millisecondsGetterName(isUTC)]();\n var localeModel = lang instanceof Model ? lang : getLocaleModel(lang || SYSTEM_LANG) || getDefaultLocaleModel();\n var timeModel = localeModel.getModel('time');\n var month = timeModel.get('month');\n var monthAbbr = timeModel.get('monthAbbr');\n var dayOfWeek = timeModel.get('dayOfWeek');\n var dayOfWeekAbbr = timeModel.get('dayOfWeekAbbr');\n return (template || '').replace(/{yyyy}/g, y + '').replace(/{yy}/g, y % 100 + '').replace(/{Q}/g, q + '').replace(/{MMMM}/g, month[M - 1]).replace(/{MMM}/g, monthAbbr[M - 1]).replace(/{MM}/g, pad(M, 2)).replace(/{M}/g, M + '').replace(/{dd}/g, pad(d, 2)).replace(/{d}/g, d + '').replace(/{eeee}/g, dayOfWeek[e]).replace(/{ee}/g, dayOfWeekAbbr[e]).replace(/{e}/g, e + '').replace(/{HH}/g, pad(H, 2)).replace(/{H}/g, H + '').replace(/{hh}/g, pad(h + '', 2)).replace(/{h}/g, h + '').replace(/{mm}/g, pad(m, 2)).replace(/{m}/g, m + '').replace(/{ss}/g, pad(s, 2)).replace(/{s}/g, s + '').replace(/{SSS}/g, pad(S, 3)).replace(/{S}/g, S + '');\n}\nexport function leveledFormat(tick, idx, formatter, lang, isUTC) {\n var template = null;\n\n if (zrUtil.isString(formatter)) {\n // Single formatter for all units at all levels\n template = formatter;\n } else if (zrUtil.isFunction(formatter)) {\n // Callback formatter\n template = formatter(tick.value, idx, {\n level: tick.level\n });\n } else {\n var defaults = zrUtil.extend({}, defaultLeveledFormatter);\n\n if (tick.level > 0) {\n for (var i = 0; i < primaryTimeUnits.length; ++i) {\n defaults[primaryTimeUnits[i]] = \"{primary|\" + defaults[primaryTimeUnits[i]] + \"}\";\n }\n }\n\n var mergedFormatter = formatter ? formatter.inherit === false ? formatter // Use formatter with bigger units\n : zrUtil.defaults(formatter, defaults) : defaults;\n var unit = getUnitFromValue(tick.value, isUTC);\n\n if (mergedFormatter[unit]) {\n template = mergedFormatter[unit];\n } else if (mergedFormatter.inherit) {\n // Unit formatter is not defined and should inherit from bigger units\n var targetId = timeUnits.indexOf(unit);\n\n for (var i = targetId - 1; i >= 0; --i) {\n if (mergedFormatter[unit]) {\n template = mergedFormatter[unit];\n break;\n }\n }\n\n template = template || defaults.none;\n }\n\n if (zrUtil.isArray(template)) {\n var levelId = tick.level == null ? 0 : tick.level >= 0 ? tick.level : template.length + tick.level;\n levelId = Math.min(levelId, template.length - 1);\n template = template[levelId];\n }\n }\n\n return format(new Date(tick.value), template, isUTC, lang);\n}\nexport function getUnitFromValue(value, isUTC) {\n var date = numberUtil.parseDate(value);\n var M = date[monthGetterName(isUTC)]() + 1;\n var d = date[dateGetterName(isUTC)]();\n var h = date[hoursGetterName(isUTC)]();\n var m = date[minutesGetterName(isUTC)]();\n var s = date[secondsGetterName(isUTC)]();\n var S = date[millisecondsGetterName(isUTC)]();\n var isSecond = S === 0;\n var isMinute = isSecond && s === 0;\n var isHour = isMinute && m === 0;\n var isDay = isHour && h === 0;\n var isMonth = isDay && d === 1;\n var isYear = isMonth && M === 1;\n\n if (isYear) {\n return 'year';\n } else if (isMonth) {\n return 'month';\n } else if (isDay) {\n return 'day';\n } else if (isHour) {\n return 'hour';\n } else if (isMinute) {\n return 'minute';\n } else if (isSecond) {\n return 'second';\n } else {\n return 'millisecond';\n }\n}\nexport function getUnitValue(value, unit, isUTC) {\n var date = zrUtil.isNumber(value) ? numberUtil.parseDate(value) : value;\n unit = unit || getUnitFromValue(value, isUTC);\n\n switch (unit) {\n case 'year':\n return date[fullYearGetterName(isUTC)]();\n\n case 'half-year':\n return date[monthGetterName(isUTC)]() >= 6 ? 1 : 0;\n\n case 'quarter':\n return Math.floor((date[monthGetterName(isUTC)]() + 1) / 4);\n\n case 'month':\n return date[monthGetterName(isUTC)]();\n\n case 'day':\n return date[dateGetterName(isUTC)]();\n\n case 'half-day':\n return date[hoursGetterName(isUTC)]() / 24;\n\n case 'hour':\n return date[hoursGetterName(isUTC)]();\n\n case 'minute':\n return date[minutesGetterName(isUTC)]();\n\n case 'second':\n return date[secondsGetterName(isUTC)]();\n\n case 'millisecond':\n return date[millisecondsGetterName(isUTC)]();\n }\n}\nexport function fullYearGetterName(isUTC) {\n return isUTC ? 'getUTCFullYear' : 'getFullYear';\n}\nexport function monthGetterName(isUTC) {\n return isUTC ? 'getUTCMonth' : 'getMonth';\n}\nexport function dateGetterName(isUTC) {\n return isUTC ? 'getUTCDate' : 'getDate';\n}\nexport function hoursGetterName(isUTC) {\n return isUTC ? 'getUTCHours' : 'getHours';\n}\nexport function minutesGetterName(isUTC) {\n return isUTC ? 'getUTCMinutes' : 'getMinutes';\n}\nexport function secondsGetterName(isUTC) {\n return isUTC ? 'getUTCSeconds' : 'getSeconds';\n}\nexport function millisecondsGetterName(isUTC) {\n return isUTC ? 'getUTCMilliseconds' : 'getMilliseconds';\n}\nexport function fullYearSetterName(isUTC) {\n return isUTC ? 'setUTCFullYear' : 'setFullYear';\n}\nexport function monthSetterName(isUTC) {\n return isUTC ? 'setUTCMonth' : 'setMonth';\n}\nexport function dateSetterName(isUTC) {\n return isUTC ? 'setUTCDate' : 'setDate';\n}\nexport function hoursSetterName(isUTC) {\n return isUTC ? 'setUTCHours' : 'setHours';\n}\nexport function minutesSetterName(isUTC) {\n return isUTC ? 'setUTCMinutes' : 'setMinutes';\n}\nexport function secondsSetterName(isUTC) {\n return isUTC ? 'setUTCSeconds' : 'setSeconds';\n}\nexport function millisecondsSetterName(isUTC) {\n return isUTC ? 'setUTCMilliseconds' : 'setMilliseconds';\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { createHashMap } from 'zrender/lib/core/util.js';\n;\n;\n;\nexport var VISUAL_DIMENSIONS = createHashMap(['tooltip', 'label', 'itemName', 'itemId', 'itemGroupId', 'seriesName']);\nexport var SOURCE_FORMAT_ORIGINAL = 'original';\nexport var SOURCE_FORMAT_ARRAY_ROWS = 'arrayRows';\nexport var SOURCE_FORMAT_OBJECT_ROWS = 'objectRows';\nexport var SOURCE_FORMAT_KEYED_COLUMNS = 'keyedColumns';\nexport var SOURCE_FORMAT_TYPED_ARRAY = 'typedArray';\nexport var SOURCE_FORMAT_UNKNOWN = 'unknown';\nexport var SERIES_LAYOUT_BY_COLUMN = 'column';\nexport var SERIES_LAYOUT_BY_ROW = 'row';\n;\n;\n;\n;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { isArray } from 'zrender/lib/core/util.js';\n/* global Float32Array */\n\nvar supportFloat32Array = typeof Float32Array !== 'undefined';\nvar Float32ArrayCtor = !supportFloat32Array ? Array : Float32Array;\nexport function createFloat32Array(arg) {\n if (isArray(arg)) {\n // Return self directly if don't support TypedArray.\n return supportFloat32Array ? new Float32Array(arg) : arg;\n } // Else is number\n\n\n return new Float32ArrayCtor(arg);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { each } from 'zrender/lib/core/util.js';\nimport Group from 'zrender/lib/graphic/Group.js';\nimport * as componentUtil from '../util/component.js';\nimport * as clazzUtil from '../util/clazz.js';\nimport * as modelUtil from '../util/model.js';\nimport { enterEmphasis, leaveEmphasis, getHighlightDigit, isHighDownDispatcher } from '../util/states.js';\nimport { createTask } from '../core/task.js';\nimport createRenderPlanner from '../chart/helper/createRenderPlanner.js';\nimport { traverseElements } from '../util/graphic.js';\nimport { error } from '../util/log.js';\nvar inner = modelUtil.makeInner();\nvar renderPlanner = createRenderPlanner();\n\nvar ChartView =\n/** @class */\nfunction () {\n function ChartView() {\n this.group = new Group();\n this.uid = componentUtil.getUID('viewChart');\n this.renderTask = createTask({\n plan: renderTaskPlan,\n reset: renderTaskReset\n });\n this.renderTask.context = {\n view: this\n };\n }\n\n ChartView.prototype.init = function (ecModel, api) {};\n\n ChartView.prototype.render = function (seriesModel, ecModel, api, payload) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error('render method must been implemented');\n }\n };\n /**\n * Highlight series or specified data item.\n */\n\n\n ChartView.prototype.highlight = function (seriesModel, ecModel, api, payload) {\n var data = seriesModel.getData(payload && payload.dataType);\n\n if (!data) {\n if (process.env.NODE_ENV !== 'production') {\n error(\"Unknown dataType \" + payload.dataType);\n }\n\n return;\n }\n\n toggleHighlight(data, payload, 'emphasis');\n };\n /**\n * Downplay series or specified data item.\n */\n\n\n ChartView.prototype.downplay = function (seriesModel, ecModel, api, payload) {\n var data = seriesModel.getData(payload && payload.dataType);\n\n if (!data) {\n if (process.env.NODE_ENV !== 'production') {\n error(\"Unknown dataType \" + payload.dataType);\n }\n\n return;\n }\n\n toggleHighlight(data, payload, 'normal');\n };\n /**\n * Remove self.\n */\n\n\n ChartView.prototype.remove = function (ecModel, api) {\n this.group.removeAll();\n };\n /**\n * Dispose self.\n */\n\n\n ChartView.prototype.dispose = function (ecModel, api) {};\n\n ChartView.prototype.updateView = function (seriesModel, ecModel, api, payload) {\n this.render(seriesModel, ecModel, api, payload);\n }; // FIXME never used?\n\n\n ChartView.prototype.updateLayout = function (seriesModel, ecModel, api, payload) {\n this.render(seriesModel, ecModel, api, payload);\n }; // FIXME never used?\n\n\n ChartView.prototype.updateVisual = function (seriesModel, ecModel, api, payload) {\n this.render(seriesModel, ecModel, api, payload);\n };\n /**\n * Traverse the new rendered elements.\n *\n * It will traverse the new added element in progressive rendering.\n * And traverse all in normal rendering.\n */\n\n\n ChartView.prototype.eachRendered = function (cb) {\n traverseElements(this.group, cb);\n };\n\n ChartView.markUpdateMethod = function (payload, methodName) {\n inner(payload).updateMethod = methodName;\n };\n\n ChartView.protoInitialize = function () {\n var proto = ChartView.prototype;\n proto.type = 'chart';\n }();\n\n return ChartView;\n}();\n\n;\n/**\n * Set state of single element\n */\n\nfunction elSetState(el, state, highlightDigit) {\n if (el && isHighDownDispatcher(el)) {\n (state === 'emphasis' ? enterEmphasis : leaveEmphasis)(el, highlightDigit);\n }\n}\n\nfunction toggleHighlight(data, payload, state) {\n var dataIndex = modelUtil.queryDataIndex(data, payload);\n var highlightDigit = payload && payload.highlightKey != null ? getHighlightDigit(payload.highlightKey) : null;\n\n if (dataIndex != null) {\n each(modelUtil.normalizeToArray(dataIndex), function (dataIdx) {\n elSetState(data.getItemGraphicEl(dataIdx), state, highlightDigit);\n });\n } else {\n data.eachItemGraphicEl(function (el) {\n elSetState(el, state, highlightDigit);\n });\n }\n}\n\nclazzUtil.enableClassExtend(ChartView, ['dispose']);\nclazzUtil.enableClassManagement(ChartView);\n\nfunction renderTaskPlan(context) {\n return renderPlanner(context.model);\n}\n\nfunction renderTaskReset(context) {\n var seriesModel = context.model;\n var ecModel = context.ecModel;\n var api = context.api;\n var payload = context.payload; // FIXME: remove updateView updateVisual\n\n var progressiveRender = seriesModel.pipelineContext.progressiveRender;\n var view = context.view;\n var updateMethod = payload && inner(payload).updateMethod;\n var methodName = progressiveRender ? 'incrementalPrepareRender' : updateMethod && view[updateMethod] ? updateMethod // `appendData` is also supported when data amount\n // is less than progressive threshold.\n : 'render';\n\n if (methodName !== 'render') {\n view[methodName](seriesModel, ecModel, api, payload);\n }\n\n return progressMethodMap[methodName];\n}\n\nvar progressMethodMap = {\n incrementalPrepareRender: {\n progress: function (params, context) {\n context.view.incrementalRender(params, context.model, context.ecModel, context.api, context.payload);\n }\n },\n render: {\n // Put view.render in `progress` to support appendData. But in this case\n // view.render should not be called in reset, otherwise it will be called\n // twise. Use `forceFirstProgress` to make sure that view.render is called\n // in any cases.\n forceFirstProgress: true,\n progress: function (params, context) {\n context.view.render(context.model, context.ecModel, context.api, context.payload);\n }\n }\n};\nexport default ChartView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport Group from 'zrender/lib/graphic/Group.js';\nimport * as componentUtil from '../util/component.js';\nimport * as clazzUtil from '../util/clazz.js';\n\nvar ComponentView =\n/** @class */\nfunction () {\n function ComponentView() {\n this.group = new Group();\n this.uid = componentUtil.getUID('viewComponent');\n }\n\n ComponentView.prototype.init = function (ecModel, api) {};\n\n ComponentView.prototype.render = function (model, ecModel, api, payload) {};\n\n ComponentView.prototype.dispose = function (ecModel, api) {};\n\n ComponentView.prototype.updateView = function (model, ecModel, api, payload) {// Do nothing;\n };\n\n ComponentView.prototype.updateLayout = function (model, ecModel, api, payload) {// Do nothing;\n };\n\n ComponentView.prototype.updateVisual = function (model, ecModel, api, payload) {// Do nothing;\n };\n /**\n * Hook for toggle blur target series.\n * Can be used in marker for blur or leave blur the markers\n */\n\n\n ComponentView.prototype.toggleBlurSeries = function (seriesModels, isBlur, ecModel) {// Do nothing;\n };\n /**\n * Traverse the new rendered elements.\n *\n * It will traverse the new added element in progressive rendering.\n * And traverse all in normal rendering.\n */\n\n\n ComponentView.prototype.eachRendered = function (cb) {\n var group = this.group;\n\n if (group) {\n group.traverse(cb);\n }\n };\n\n return ComponentView;\n}();\n\n;\nclazzUtil.enableClassExtend(ComponentView);\nclazzUtil.enableClassManagement(ComponentView);\nexport default ComponentView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * LegendVisualProvider is an bridge that pick encoded color from data and\n * provide to the legend component.\n */\nvar LegendVisualProvider =\n/** @class */\nfunction () {\n function LegendVisualProvider( // Function to get data after filtered. It stores all the encoding info\n getDataWithEncodedVisual, // Function to get raw data before filtered.\n getRawData) {\n this._getDataWithEncodedVisual = getDataWithEncodedVisual;\n this._getRawData = getRawData;\n }\n\n LegendVisualProvider.prototype.getAllNames = function () {\n var rawData = this._getRawData(); // We find the name from the raw data. In case it's filtered by the legend component.\n // Normally, the name can be found in rawData, but can't be found in filtered data will display as gray.\n\n\n return rawData.mapArray(rawData.getName);\n };\n\n LegendVisualProvider.prototype.containName = function (name) {\n var rawData = this._getRawData();\n\n return rawData.indexOfName(name) >= 0;\n };\n\n LegendVisualProvider.prototype.indexOfName = function (name) {\n // Only get data when necessary.\n // Because LegendVisualProvider constructor may be new in the stage that data is not prepared yet.\n // Invoking Series#getData immediately will throw an error.\n var dataWithEncodedVisual = this._getDataWithEncodedVisual();\n\n return dataWithEncodedVisual.indexOfName(name);\n };\n\n LegendVisualProvider.prototype.getItemVisual = function (dataIndex, key) {\n // Get encoded visual properties from final filtered data.\n var dataWithEncodedVisual = this._getDataWithEncodedVisual();\n\n return dataWithEncodedVisual.getItemVisual(dataIndex, key);\n };\n\n return LegendVisualProvider;\n}();\n\nexport default LegendVisualProvider;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as zrColor from 'zrender/lib/tool/color.js';\nimport { linearMap } from '../util/number.js';\nimport { warn } from '../util/log.js';\nvar each = zrUtil.each;\nvar isObject = zrUtil.isObject;\nvar CATEGORY_DEFAULT_VISUAL_INDEX = -1;\n\nvar VisualMapping =\n/** @class */\nfunction () {\n function VisualMapping(option) {\n var mappingMethod = option.mappingMethod;\n var visualType = option.type;\n var thisOption = this.option = zrUtil.clone(option);\n this.type = visualType;\n this.mappingMethod = mappingMethod;\n this._normalizeData = normalizers[mappingMethod];\n var visualHandler = VisualMapping.visualHandlers[visualType];\n this.applyVisual = visualHandler.applyVisual;\n this.getColorMapper = visualHandler.getColorMapper;\n this._normalizedToVisual = visualHandler._normalizedToVisual[mappingMethod];\n\n if (mappingMethod === 'piecewise') {\n normalizeVisualRange(thisOption);\n preprocessForPiecewise(thisOption);\n } else if (mappingMethod === 'category') {\n thisOption.categories ? preprocessForSpecifiedCategory(thisOption) // categories is ordinal when thisOption.categories not specified,\n // which need no more preprocess except normalize visual.\n : normalizeVisualRange(thisOption, true);\n } else {\n // mappingMethod === 'linear' or 'fixed'\n zrUtil.assert(mappingMethod !== 'linear' || thisOption.dataExtent);\n normalizeVisualRange(thisOption);\n }\n }\n\n VisualMapping.prototype.mapValueToVisual = function (value) {\n var normalized = this._normalizeData(value);\n\n return this._normalizedToVisual(normalized, value);\n };\n\n VisualMapping.prototype.getNormalizer = function () {\n return zrUtil.bind(this._normalizeData, this);\n };\n /**\n * List available visual types.\n *\n * @public\n * @return {Array.}\n */\n\n\n VisualMapping.listVisualTypes = function () {\n return zrUtil.keys(VisualMapping.visualHandlers);\n }; // /**\n // * @public\n // */\n // static addVisualHandler(name, handler) {\n // visualHandlers[name] = handler;\n // }\n\n /**\n * @public\n */\n\n\n VisualMapping.isValidType = function (visualType) {\n return VisualMapping.visualHandlers.hasOwnProperty(visualType);\n };\n /**\n * Convenient method.\n * Visual can be Object or Array or primary type.\n */\n\n\n VisualMapping.eachVisual = function (visual, callback, context) {\n if (zrUtil.isObject(visual)) {\n zrUtil.each(visual, callback, context);\n } else {\n callback.call(context, visual);\n }\n };\n\n VisualMapping.mapVisual = function (visual, callback, context) {\n var isPrimary;\n var newVisual = zrUtil.isArray(visual) ? [] : zrUtil.isObject(visual) ? {} : (isPrimary = true, null);\n VisualMapping.eachVisual(visual, function (v, key) {\n var newVal = callback.call(context, v, key);\n isPrimary ? newVisual = newVal : newVisual[key] = newVal;\n });\n return newVisual;\n };\n /**\n * Retrieve visual properties from given object.\n */\n\n\n VisualMapping.retrieveVisuals = function (obj) {\n var ret = {};\n var hasVisual;\n obj && each(VisualMapping.visualHandlers, function (h, visualType) {\n if (obj.hasOwnProperty(visualType)) {\n ret[visualType] = obj[visualType];\n hasVisual = true;\n }\n });\n return hasVisual ? ret : null;\n };\n /**\n * Give order to visual types, considering colorSaturation, colorAlpha depends on color.\n *\n * @public\n * @param {(Object|Array)} visualTypes If Object, like: {color: ..., colorSaturation: ...}\n * IF Array, like: ['color', 'symbol', 'colorSaturation']\n * @return {Array.} Sorted visual types.\n */\n\n\n VisualMapping.prepareVisualTypes = function (visualTypes) {\n if (zrUtil.isArray(visualTypes)) {\n visualTypes = visualTypes.slice();\n } else if (isObject(visualTypes)) {\n var types_1 = [];\n each(visualTypes, function (item, type) {\n types_1.push(type);\n });\n visualTypes = types_1;\n } else {\n return [];\n }\n\n visualTypes.sort(function (type1, type2) {\n // color should be front of colorSaturation, colorAlpha, ...\n // symbol and symbolSize do not matter.\n return type2 === 'color' && type1 !== 'color' && type1.indexOf('color') === 0 ? 1 : -1;\n });\n return visualTypes;\n };\n /**\n * 'color', 'colorSaturation', 'colorAlpha', ... are depends on 'color'.\n * Other visuals are only depends on themself.\n */\n\n\n VisualMapping.dependsOn = function (visualType1, visualType2) {\n return visualType2 === 'color' ? !!(visualType1 && visualType1.indexOf(visualType2) === 0) : visualType1 === visualType2;\n };\n /**\n * @param value\n * @param pieceList [{value: ..., interval: [min, max]}, ...]\n * Always from small to big.\n * @param findClosestWhenOutside Default to be false\n * @return index\n */\n\n\n VisualMapping.findPieceIndex = function (value, pieceList, findClosestWhenOutside) {\n var possibleI;\n var abs = Infinity; // value has the higher priority.\n\n for (var i = 0, len = pieceList.length; i < len; i++) {\n var pieceValue = pieceList[i].value;\n\n if (pieceValue != null) {\n if (pieceValue === value // FIXME\n // It is supposed to compare value according to value type of dimension,\n // but currently value type can exactly be string or number.\n // Compromise for numeric-like string (like '12'), especially\n // in the case that visualMap.categories is ['22', '33'].\n || zrUtil.isString(pieceValue) && pieceValue === value + '') {\n return i;\n }\n\n findClosestWhenOutside && updatePossible(pieceValue, i);\n }\n }\n\n for (var i = 0, len = pieceList.length; i < len; i++) {\n var piece = pieceList[i];\n var interval = piece.interval;\n var close_1 = piece.close;\n\n if (interval) {\n if (interval[0] === -Infinity) {\n if (littleThan(close_1[1], value, interval[1])) {\n return i;\n }\n } else if (interval[1] === Infinity) {\n if (littleThan(close_1[0], interval[0], value)) {\n return i;\n }\n } else if (littleThan(close_1[0], interval[0], value) && littleThan(close_1[1], value, interval[1])) {\n return i;\n }\n\n findClosestWhenOutside && updatePossible(interval[0], i);\n findClosestWhenOutside && updatePossible(interval[1], i);\n }\n }\n\n if (findClosestWhenOutside) {\n return value === Infinity ? pieceList.length - 1 : value === -Infinity ? 0 : possibleI;\n }\n\n function updatePossible(val, index) {\n var newAbs = Math.abs(val - value);\n\n if (newAbs < abs) {\n abs = newAbs;\n possibleI = index;\n }\n }\n };\n\n VisualMapping.visualHandlers = {\n color: {\n applyVisual: makeApplyVisual('color'),\n getColorMapper: function () {\n var thisOption = this.option;\n return zrUtil.bind(thisOption.mappingMethod === 'category' ? function (value, isNormalized) {\n !isNormalized && (value = this._normalizeData(value));\n return doMapCategory.call(this, value);\n } : function (value, isNormalized, out) {\n // If output rgb array\n // which will be much faster and useful in pixel manipulation\n var returnRGBArray = !!out;\n !isNormalized && (value = this._normalizeData(value));\n out = zrColor.fastLerp(value, thisOption.parsedVisual, out);\n return returnRGBArray ? out : zrColor.stringify(out, 'rgba');\n }, this);\n },\n _normalizedToVisual: {\n linear: function (normalized) {\n return zrColor.stringify(zrColor.fastLerp(normalized, this.option.parsedVisual), 'rgba');\n },\n category: doMapCategory,\n piecewise: function (normalized, value) {\n var result = getSpecifiedVisual.call(this, value);\n\n if (result == null) {\n result = zrColor.stringify(zrColor.fastLerp(normalized, this.option.parsedVisual), 'rgba');\n }\n\n return result;\n },\n fixed: doMapFixed\n }\n },\n colorHue: makePartialColorVisualHandler(function (color, value) {\n return zrColor.modifyHSL(color, value);\n }),\n colorSaturation: makePartialColorVisualHandler(function (color, value) {\n return zrColor.modifyHSL(color, null, value);\n }),\n colorLightness: makePartialColorVisualHandler(function (color, value) {\n return zrColor.modifyHSL(color, null, null, value);\n }),\n colorAlpha: makePartialColorVisualHandler(function (color, value) {\n return zrColor.modifyAlpha(color, value);\n }),\n decal: {\n applyVisual: makeApplyVisual('decal'),\n _normalizedToVisual: {\n linear: null,\n category: doMapCategory,\n piecewise: null,\n fixed: null\n }\n },\n opacity: {\n applyVisual: makeApplyVisual('opacity'),\n _normalizedToVisual: createNormalizedToNumericVisual([0, 1])\n },\n liftZ: {\n applyVisual: makeApplyVisual('liftZ'),\n _normalizedToVisual: {\n linear: doMapFixed,\n category: doMapFixed,\n piecewise: doMapFixed,\n fixed: doMapFixed\n }\n },\n symbol: {\n applyVisual: function (value, getter, setter) {\n var symbolCfg = this.mapValueToVisual(value);\n setter('symbol', symbolCfg);\n },\n _normalizedToVisual: {\n linear: doMapToArray,\n category: doMapCategory,\n piecewise: function (normalized, value) {\n var result = getSpecifiedVisual.call(this, value);\n\n if (result == null) {\n result = doMapToArray.call(this, normalized);\n }\n\n return result;\n },\n fixed: doMapFixed\n }\n },\n symbolSize: {\n applyVisual: makeApplyVisual('symbolSize'),\n _normalizedToVisual: createNormalizedToNumericVisual([0, 1])\n }\n };\n return VisualMapping;\n}();\n\nfunction preprocessForPiecewise(thisOption) {\n var pieceList = thisOption.pieceList;\n thisOption.hasSpecialVisual = false;\n zrUtil.each(pieceList, function (piece, index) {\n piece.originIndex = index; // piece.visual is \"result visual value\" but not\n // a visual range, so it does not need to be normalized.\n\n if (piece.visual != null) {\n thisOption.hasSpecialVisual = true;\n }\n });\n}\n\nfunction preprocessForSpecifiedCategory(thisOption) {\n // Hash categories.\n var categories = thisOption.categories;\n var categoryMap = thisOption.categoryMap = {};\n var visual = thisOption.visual;\n each(categories, function (cate, index) {\n categoryMap[cate] = index;\n }); // Process visual map input.\n\n if (!zrUtil.isArray(visual)) {\n var visualArr_1 = [];\n\n if (zrUtil.isObject(visual)) {\n each(visual, function (v, cate) {\n var index = categoryMap[cate];\n visualArr_1[index != null ? index : CATEGORY_DEFAULT_VISUAL_INDEX] = v;\n });\n } else {\n // Is primary type, represents default visual.\n visualArr_1[CATEGORY_DEFAULT_VISUAL_INDEX] = visual;\n }\n\n visual = setVisualToOption(thisOption, visualArr_1);\n } // Remove categories that has no visual,\n // then we can mapping them to CATEGORY_DEFAULT_VISUAL_INDEX.\n\n\n for (var i = categories.length - 1; i >= 0; i--) {\n if (visual[i] == null) {\n delete categoryMap[categories[i]];\n categories.pop();\n }\n }\n}\n\nfunction normalizeVisualRange(thisOption, isCategory) {\n var visual = thisOption.visual;\n var visualArr = [];\n\n if (zrUtil.isObject(visual)) {\n each(visual, function (v) {\n visualArr.push(v);\n });\n } else if (visual != null) {\n visualArr.push(visual);\n }\n\n var doNotNeedPair = {\n color: 1,\n symbol: 1\n };\n\n if (!isCategory && visualArr.length === 1 && !doNotNeedPair.hasOwnProperty(thisOption.type)) {\n // Do not care visualArr.length === 0, which is illegal.\n visualArr[1] = visualArr[0];\n }\n\n setVisualToOption(thisOption, visualArr);\n}\n\nfunction makePartialColorVisualHandler(applyValue) {\n return {\n applyVisual: function (value, getter, setter) {\n // Only used in HSL\n var colorChannel = this.mapValueToVisual(value); // Must not be array value\n\n setter('color', applyValue(getter('color'), colorChannel));\n },\n _normalizedToVisual: createNormalizedToNumericVisual([0, 1])\n };\n}\n\nfunction doMapToArray(normalized) {\n var visual = this.option.visual;\n return visual[Math.round(linearMap(normalized, [0, 1], [0, visual.length - 1], true))] || {}; // TODO {}?\n}\n\nfunction makeApplyVisual(visualType) {\n return function (value, getter, setter) {\n setter(visualType, this.mapValueToVisual(value));\n };\n}\n\nfunction doMapCategory(normalized) {\n var visual = this.option.visual;\n return visual[this.option.loop && normalized !== CATEGORY_DEFAULT_VISUAL_INDEX ? normalized % visual.length : normalized];\n}\n\nfunction doMapFixed() {\n // visual will be convert to array.\n return this.option.visual[0];\n}\n/**\n * Create mapped to numeric visual\n */\n\n\nfunction createNormalizedToNumericVisual(sourceExtent) {\n return {\n linear: function (normalized) {\n return linearMap(normalized, sourceExtent, this.option.visual, true);\n },\n category: doMapCategory,\n piecewise: function (normalized, value) {\n var result = getSpecifiedVisual.call(this, value);\n\n if (result == null) {\n result = linearMap(normalized, sourceExtent, this.option.visual, true);\n }\n\n return result;\n },\n fixed: doMapFixed\n };\n}\n\nfunction getSpecifiedVisual(value) {\n var thisOption = this.option;\n var pieceList = thisOption.pieceList;\n\n if (thisOption.hasSpecialVisual) {\n var pieceIndex = VisualMapping.findPieceIndex(value, pieceList);\n var piece = pieceList[pieceIndex];\n\n if (piece && piece.visual) {\n return piece.visual[this.type];\n }\n }\n}\n\nfunction setVisualToOption(thisOption, visualArr) {\n thisOption.visual = visualArr;\n\n if (thisOption.type === 'color') {\n thisOption.parsedVisual = zrUtil.map(visualArr, function (item) {\n var color = zrColor.parse(item);\n\n if (!color && process.env.NODE_ENV !== 'production') {\n warn(\"'\" + item + \"' is an illegal color, fallback to '#000000'\", true);\n }\n\n return color || [0, 0, 0, 1];\n });\n }\n\n return visualArr;\n}\n/**\n * Normalizers by mapping methods.\n */\n\n\nvar normalizers = {\n linear: function (value) {\n return linearMap(value, this.option.dataExtent, [0, 1], true);\n },\n piecewise: function (value) {\n var pieceList = this.option.pieceList;\n var pieceIndex = VisualMapping.findPieceIndex(value, pieceList, true);\n\n if (pieceIndex != null) {\n return linearMap(pieceIndex, [0, pieceList.length - 1], [0, 1], true);\n }\n },\n category: function (value) {\n var index = this.option.categories ? this.option.categoryMap[value] : value; // ordinal value\n\n return index == null ? CATEGORY_DEFAULT_VISUAL_INDEX : index;\n },\n fixed: zrUtil.noop\n};\n\nfunction littleThan(close, a, b) {\n return close ? a <= b : a < b;\n}\n\nexport default VisualMapping;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { makeInner } from '../util/model.js';\nimport { getDecalFromPalette } from '../model/mixin/palette.js';\nvar DEFAULT_OPTION = {\n label: {\n enabled: true\n },\n decal: {\n show: false\n }\n};\nvar inner = makeInner();\nvar decalPaletteScope = {};\nexport default function ariaVisual(ecModel, api) {\n var ariaModel = ecModel.getModel('aria'); // See \"area enabled\" detection code in `GlobalModel.ts`.\n\n if (!ariaModel.get('enabled')) {\n return;\n }\n\n var defaultOption = zrUtil.clone(DEFAULT_OPTION);\n zrUtil.merge(defaultOption.label, ecModel.getLocaleModel().get('aria'), false);\n zrUtil.merge(ariaModel.option, defaultOption, false);\n setDecal();\n setLabel();\n\n function setDecal() {\n var decalModel = ariaModel.getModel('decal');\n var useDecal = decalModel.get('show');\n\n if (useDecal) {\n // Each type of series use one scope.\n // Pie and funnel are using different scopes.\n var paletteScopeGroupByType_1 = zrUtil.createHashMap();\n ecModel.eachSeries(function (seriesModel) {\n if (seriesModel.isColorBySeries()) {\n return;\n }\n\n var decalScope = paletteScopeGroupByType_1.get(seriesModel.type);\n\n if (!decalScope) {\n decalScope = {};\n paletteScopeGroupByType_1.set(seriesModel.type, decalScope);\n }\n\n inner(seriesModel).scope = decalScope;\n });\n ecModel.eachRawSeries(function (seriesModel) {\n if (ecModel.isSeriesFiltered(seriesModel)) {\n return;\n }\n\n if (zrUtil.isFunction(seriesModel.enableAriaDecal)) {\n // Let series define how to use decal palette on data\n seriesModel.enableAriaDecal();\n return;\n }\n\n var data = seriesModel.getData();\n\n if (!seriesModel.isColorBySeries()) {\n var dataAll_1 = seriesModel.getRawData();\n var idxMap_1 = {};\n var decalScope_1 = inner(seriesModel).scope;\n data.each(function (idx) {\n var rawIdx = data.getRawIndex(idx);\n idxMap_1[rawIdx] = idx;\n });\n var dataCount_1 = dataAll_1.count();\n dataAll_1.each(function (rawIdx) {\n var idx = idxMap_1[rawIdx];\n var name = dataAll_1.getName(rawIdx) || rawIdx + '';\n var paletteDecal = getDecalFromPalette(seriesModel.ecModel, name, decalScope_1, dataCount_1);\n var specifiedDecal = data.getItemVisual(idx, 'decal');\n data.setItemVisual(idx, 'decal', mergeDecal(specifiedDecal, paletteDecal));\n });\n } else {\n var paletteDecal = getDecalFromPalette(seriesModel.ecModel, seriesModel.name, decalPaletteScope, ecModel.getSeriesCount());\n var specifiedDecal = data.getVisual('decal');\n data.setVisual('decal', mergeDecal(specifiedDecal, paletteDecal));\n }\n\n function mergeDecal(specifiedDecal, paletteDecal) {\n // Merge decal from palette to decal from itemStyle.\n // User do not need to specify all of the decal props.\n var resultDecal = specifiedDecal ? zrUtil.extend(zrUtil.extend({}, paletteDecal), specifiedDecal) : paletteDecal;\n resultDecal.dirty = true;\n return resultDecal;\n }\n });\n }\n }\n\n function setLabel() {\n var labelLocale = ecModel.getLocaleModel().get('aria');\n var labelModel = ariaModel.getModel('label');\n labelModel.option = zrUtil.defaults(labelModel.option, labelLocale);\n\n if (!labelModel.get('enabled')) {\n return;\n }\n\n var dom = api.getZr().dom;\n\n if (labelModel.get('description')) {\n dom.setAttribute('aria-label', labelModel.get('description'));\n return;\n }\n\n var seriesCnt = ecModel.getSeriesCount();\n var maxDataCnt = labelModel.get(['data', 'maxCount']) || 10;\n var maxSeriesCnt = labelModel.get(['series', 'maxCount']) || 10;\n var displaySeriesCnt = Math.min(seriesCnt, maxSeriesCnt);\n var ariaLabel;\n\n if (seriesCnt < 1) {\n // No series, no aria label\n return;\n } else {\n var title = getTitle();\n\n if (title) {\n var withTitle = labelModel.get(['general', 'withTitle']);\n ariaLabel = replace(withTitle, {\n title: title\n });\n } else {\n ariaLabel = labelModel.get(['general', 'withoutTitle']);\n }\n\n var seriesLabels_1 = [];\n var prefix = seriesCnt > 1 ? labelModel.get(['series', 'multiple', 'prefix']) : labelModel.get(['series', 'single', 'prefix']);\n ariaLabel += replace(prefix, {\n seriesCount: seriesCnt\n });\n ecModel.eachSeries(function (seriesModel, idx) {\n if (idx < displaySeriesCnt) {\n var seriesLabel = void 0;\n var seriesName = seriesModel.get('name');\n var withName = seriesName ? 'withName' : 'withoutName';\n seriesLabel = seriesCnt > 1 ? labelModel.get(['series', 'multiple', withName]) : labelModel.get(['series', 'single', withName]);\n seriesLabel = replace(seriesLabel, {\n seriesId: seriesModel.seriesIndex,\n seriesName: seriesModel.get('name'),\n seriesType: getSeriesTypeName(seriesModel.subType)\n });\n var data = seriesModel.getData();\n\n if (data.count() > maxDataCnt) {\n // Show part of data\n var partialLabel = labelModel.get(['data', 'partialData']);\n seriesLabel += replace(partialLabel, {\n displayCnt: maxDataCnt\n });\n } else {\n seriesLabel += labelModel.get(['data', 'allData']);\n }\n\n var middleSeparator_1 = labelModel.get(['data', 'separator', 'middle']);\n var endSeparator_1 = labelModel.get(['data', 'separator', 'end']);\n var dataLabels = [];\n\n for (var i = 0; i < data.count(); i++) {\n if (i < maxDataCnt) {\n var name_1 = data.getName(i);\n var value = data.getValues(i);\n var dataLabel = labelModel.get(['data', name_1 ? 'withName' : 'withoutName']);\n dataLabels.push(replace(dataLabel, {\n name: name_1,\n value: value.join(middleSeparator_1)\n }));\n }\n }\n\n seriesLabel += dataLabels.join(middleSeparator_1) + endSeparator_1;\n seriesLabels_1.push(seriesLabel);\n }\n });\n var separatorModel = labelModel.getModel(['series', 'multiple', 'separator']);\n var middleSeparator = separatorModel.get('middle');\n var endSeparator = separatorModel.get('end');\n ariaLabel += seriesLabels_1.join(middleSeparator) + endSeparator;\n dom.setAttribute('aria-label', ariaLabel);\n }\n }\n\n function replace(str, keyValues) {\n if (!zrUtil.isString(str)) {\n return str;\n }\n\n var result = str;\n zrUtil.each(keyValues, function (value, key) {\n result = result.replace(new RegExp('\\\\{\\\\s*' + key + '\\\\s*\\\\}', 'g'), value);\n });\n return result;\n }\n\n function getTitle() {\n var title = ecModel.get('title');\n\n if (title && title.length) {\n title = title[0];\n }\n\n return title && title.text;\n }\n\n function getSeriesTypeName(type) {\n return ecModel.getLocaleModel().get(['series', 'typeNames'])[type] || '自定义图';\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { createOrUpdatePatternFromDecal } from '../util/decal.js';\nexport default function decalVisual(ecModel, api) {\n ecModel.eachRawSeries(function (seriesModel) {\n if (ecModel.isSeriesFiltered(seriesModel)) {\n return;\n }\n\n var data = seriesModel.getData();\n\n if (data.hasItemVisual()) {\n data.each(function (idx) {\n var decal = data.getItemVisual(idx, 'decal');\n\n if (decal) {\n var itemStyle = data.ensureUniqueItemVisual(idx, 'style');\n itemStyle.decal = createOrUpdatePatternFromDecal(decal, api);\n }\n });\n }\n\n var decal = data.getVisual('decal');\n\n if (decal) {\n var style = data.getVisual('style');\n style.decal = createOrUpdatePatternFromDecal(decal, api);\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nexport function getItemVisualFromData(data, dataIndex, key) {\n switch (key) {\n case 'color':\n var style = data.getItemVisual(dataIndex, 'style');\n return style[data.getVisual('drawType')];\n\n case 'opacity':\n return data.getItemVisual(dataIndex, 'style').opacity;\n\n case 'symbol':\n case 'symbolSize':\n case 'liftZ':\n return data.getItemVisual(dataIndex, key);\n\n default:\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\"Unknown visual type \" + key);\n }\n\n }\n}\nexport function getVisualFromData(data, key) {\n switch (key) {\n case 'color':\n var style = data.getVisual('style');\n return style[data.getVisual('drawType')];\n\n case 'opacity':\n return data.getVisual('style').opacity;\n\n case 'symbol':\n case 'symbolSize':\n case 'liftZ':\n return data.getVisual(key);\n\n default:\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\"Unknown visual type \" + key);\n }\n\n }\n}\nexport function setItemVisualFromData(data, dataIndex, key, value) {\n switch (key) {\n case 'color':\n // Make sure not sharing style object.\n var style = data.ensureUniqueItemVisual(dataIndex, 'style');\n style[data.getVisual('drawType')] = value; // Mark the color has been changed, not from palette anymore\n\n data.setItemVisual(dataIndex, 'colorFromPalette', false);\n break;\n\n case 'opacity':\n data.ensureUniqueItemVisual(dataIndex, 'style').opacity = value;\n break;\n\n case 'symbol':\n case 'symbolSize':\n case 'liftZ':\n data.setItemVisual(dataIndex, key, value);\n break;\n\n default:\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\"Unknown visual type \" + key);\n }\n\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { isFunction, extend, createHashMap } from 'zrender/lib/core/util.js';\nimport makeStyleMapper from '../model/mixin/makeStyleMapper.js';\nimport { ITEM_STYLE_KEY_MAP } from '../model/mixin/itemStyle.js';\nimport { LINE_STYLE_KEY_MAP } from '../model/mixin/lineStyle.js';\nimport Model from '../model/Model.js';\nimport { makeInner } from '../util/model.js';\nvar inner = makeInner();\nvar defaultStyleMappers = {\n itemStyle: makeStyleMapper(ITEM_STYLE_KEY_MAP, true),\n lineStyle: makeStyleMapper(LINE_STYLE_KEY_MAP, true)\n};\nvar defaultColorKey = {\n lineStyle: 'stroke',\n itemStyle: 'fill'\n};\n\nfunction getStyleMapper(seriesModel, stylePath) {\n var styleMapper = seriesModel.visualStyleMapper || defaultStyleMappers[stylePath];\n\n if (!styleMapper) {\n console.warn(\"Unknown style type '\" + stylePath + \"'.\");\n return defaultStyleMappers.itemStyle;\n }\n\n return styleMapper;\n}\n\nfunction getDefaultColorKey(seriesModel, stylePath) {\n // return defaultColorKey[stylePath] ||\n var colorKey = seriesModel.visualDrawType || defaultColorKey[stylePath];\n\n if (!colorKey) {\n console.warn(\"Unknown style type '\" + stylePath + \"'.\");\n return 'fill';\n }\n\n return colorKey;\n}\n\nvar seriesStyleTask = {\n createOnAllSeries: true,\n performRawSeries: true,\n reset: function (seriesModel, ecModel) {\n var data = seriesModel.getData();\n var stylePath = seriesModel.visualStyleAccessPath || 'itemStyle'; // Set in itemStyle\n\n var styleModel = seriesModel.getModel(stylePath);\n var getStyle = getStyleMapper(seriesModel, stylePath);\n var globalStyle = getStyle(styleModel);\n var decalOption = styleModel.getShallow('decal');\n\n if (decalOption) {\n data.setVisual('decal', decalOption);\n decalOption.dirty = true;\n } // TODO\n\n\n var colorKey = getDefaultColorKey(seriesModel, stylePath);\n var color = globalStyle[colorKey]; // TODO style callback\n\n var colorCallback = isFunction(color) ? color : null;\n var hasAutoColor = globalStyle.fill === 'auto' || globalStyle.stroke === 'auto'; // Get from color palette by default.\n\n if (!globalStyle[colorKey] || colorCallback || hasAutoColor) {\n // Note: If some series has color specified (e.g., by itemStyle.color), we DO NOT\n // make it effect palette. Because some scenarios users need to make some series\n // transparent or as background, which should better not effect the palette.\n var colorPalette = seriesModel.getColorFromPalette( // TODO series count changed.\n seriesModel.name, null, ecModel.getSeriesCount());\n\n if (!globalStyle[colorKey]) {\n globalStyle[colorKey] = colorPalette;\n data.setVisual('colorFromPalette', true);\n }\n\n globalStyle.fill = globalStyle.fill === 'auto' || isFunction(globalStyle.fill) ? colorPalette : globalStyle.fill;\n globalStyle.stroke = globalStyle.stroke === 'auto' || isFunction(globalStyle.stroke) ? colorPalette : globalStyle.stroke;\n }\n\n data.setVisual('style', globalStyle);\n data.setVisual('drawType', colorKey); // Only visible series has each data be visual encoded\n\n if (!ecModel.isSeriesFiltered(seriesModel) && colorCallback) {\n data.setVisual('colorFromPalette', false);\n return {\n dataEach: function (data, idx) {\n var dataParams = seriesModel.getDataParams(idx);\n var itemStyle = extend({}, globalStyle);\n itemStyle[colorKey] = colorCallback(dataParams);\n data.setItemVisual(idx, 'style', itemStyle);\n }\n };\n }\n }\n};\nvar sharedModel = new Model();\nvar dataStyleTask = {\n createOnAllSeries: true,\n performRawSeries: true,\n reset: function (seriesModel, ecModel) {\n if (seriesModel.ignoreStyleOnData || ecModel.isSeriesFiltered(seriesModel)) {\n return;\n }\n\n var data = seriesModel.getData();\n var stylePath = seriesModel.visualStyleAccessPath || 'itemStyle'; // Set in itemStyle\n\n var getStyle = getStyleMapper(seriesModel, stylePath);\n var colorKey = data.getVisual('drawType');\n return {\n dataEach: data.hasItemOption ? function (data, idx) {\n // Not use getItemModel for performance considuration\n var rawItem = data.getRawDataItem(idx);\n\n if (rawItem && rawItem[stylePath]) {\n sharedModel.option = rawItem[stylePath];\n var style = getStyle(sharedModel);\n var existsStyle = data.ensureUniqueItemVisual(idx, 'style');\n extend(existsStyle, style);\n\n if (sharedModel.option.decal) {\n data.setItemVisual(idx, 'decal', sharedModel.option.decal);\n sharedModel.option.decal.dirty = true;\n }\n\n if (colorKey in style) {\n data.setItemVisual(idx, 'colorFromPalette', false);\n }\n }\n } : null\n };\n }\n}; // Pick color from palette for the data which has not been set with color yet.\n// Note: do not support stream rendering. No such cases yet.\n\nvar dataColorPaletteTask = {\n performRawSeries: true,\n overallReset: function (ecModel) {\n // Each type of series uses one scope.\n // Pie and funnel are using different scopes.\n var paletteScopeGroupByType = createHashMap();\n ecModel.eachSeries(function (seriesModel) {\n var colorBy = seriesModel.getColorBy();\n\n if (seriesModel.isColorBySeries()) {\n return;\n }\n\n var key = seriesModel.type + '-' + colorBy;\n var colorScope = paletteScopeGroupByType.get(key);\n\n if (!colorScope) {\n colorScope = {};\n paletteScopeGroupByType.set(key, colorScope);\n }\n\n inner(seriesModel).scope = colorScope;\n });\n ecModel.eachSeries(function (seriesModel) {\n if (seriesModel.isColorBySeries() || ecModel.isSeriesFiltered(seriesModel)) {\n return;\n }\n\n var dataAll = seriesModel.getRawData();\n var idxMap = {};\n var data = seriesModel.getData();\n var colorScope = inner(seriesModel).scope;\n var stylePath = seriesModel.visualStyleAccessPath || 'itemStyle';\n var colorKey = getDefaultColorKey(seriesModel, stylePath);\n data.each(function (idx) {\n var rawIdx = data.getRawIndex(idx);\n idxMap[rawIdx] = idx;\n }); // Iterate on data before filtered. To make sure color from palette can be\n // Consistent when toggling legend.\n\n dataAll.each(function (rawIdx) {\n var idx = idxMap[rawIdx];\n var fromPalette = data.getItemVisual(idx, 'colorFromPalette'); // Get color from palette for each data only when the color is inherited from series color, which is\n // also picked from color palette. So following situation is not in the case:\n // 1. series.itemStyle.color is set\n // 2. color is encoded by visualMap\n\n if (fromPalette) {\n var itemStyle = data.ensureUniqueItemVisual(idx, 'style');\n var name_1 = dataAll.getName(rawIdx) || rawIdx + '';\n var dataCount = dataAll.count();\n itemStyle[colorKey] = seriesModel.getColorFromPalette(name_1, colorScope, dataCount);\n }\n });\n });\n }\n};\nexport { seriesStyleTask, dataStyleTask, dataColorPaletteTask };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { extend, isFunction, keys } from 'zrender/lib/core/util.js';\nvar SYMBOL_PROPS_WITH_CB = ['symbol', 'symbolSize', 'symbolRotate', 'symbolOffset'];\nvar SYMBOL_PROPS = SYMBOL_PROPS_WITH_CB.concat(['symbolKeepAspect']); // Encoding visual for all series include which is filtered for legend drawing\n\nvar seriesSymbolTask = {\n createOnAllSeries: true,\n // For legend.\n performRawSeries: true,\n reset: function (seriesModel, ecModel) {\n var data = seriesModel.getData();\n\n if (seriesModel.legendIcon) {\n data.setVisual('legendIcon', seriesModel.legendIcon);\n }\n\n if (!seriesModel.hasSymbolVisual) {\n return;\n }\n\n var symbolOptions = {};\n var symbolOptionsCb = {};\n var hasCallback = false;\n\n for (var i = 0; i < SYMBOL_PROPS_WITH_CB.length; i++) {\n var symbolPropName = SYMBOL_PROPS_WITH_CB[i];\n var val = seriesModel.get(symbolPropName);\n\n if (isFunction(val)) {\n hasCallback = true;\n symbolOptionsCb[symbolPropName] = val;\n } else {\n symbolOptions[symbolPropName] = val;\n }\n }\n\n symbolOptions.symbol = symbolOptions.symbol || seriesModel.defaultSymbol;\n data.setVisual(extend({\n legendIcon: seriesModel.legendIcon || symbolOptions.symbol,\n symbolKeepAspect: seriesModel.get('symbolKeepAspect')\n }, symbolOptions)); // Only visible series has each data be visual encoded\n\n if (ecModel.isSeriesFiltered(seriesModel)) {\n return;\n }\n\n var symbolPropsCb = keys(symbolOptionsCb);\n\n function dataEach(data, idx) {\n var rawValue = seriesModel.getRawValue(idx);\n var params = seriesModel.getDataParams(idx);\n\n for (var i = 0; i < symbolPropsCb.length; i++) {\n var symbolPropName = symbolPropsCb[i];\n data.setItemVisual(idx, symbolPropName, symbolOptionsCb[symbolPropName](rawValue, params));\n }\n }\n\n return {\n dataEach: hasCallback ? dataEach : null\n };\n }\n};\nvar dataSymbolTask = {\n createOnAllSeries: true,\n // For legend.\n performRawSeries: true,\n reset: function (seriesModel, ecModel) {\n if (!seriesModel.hasSymbolVisual) {\n return;\n } // Only visible series has each data be visual encoded\n\n\n if (ecModel.isSeriesFiltered(seriesModel)) {\n return;\n }\n\n var data = seriesModel.getData();\n\n function dataEach(data, idx) {\n var itemModel = data.getItemModel(idx);\n\n for (var i = 0; i < SYMBOL_PROPS.length; i++) {\n var symbolPropName = SYMBOL_PROPS[i];\n var val = itemModel.getShallow(symbolPropName, true);\n\n if (val != null) {\n data.setItemVisual(idx, symbolPropName, val);\n }\n }\n }\n\n return {\n dataEach: data.hasItemOption ? dataEach : null\n };\n }\n};\nexport { seriesSymbolTask, dataSymbolTask };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @file Visual mapping.\n */\nimport * as zrUtil from 'zrender/lib/core/util.js';\nvar visualDefault = {\n /**\n * @public\n */\n get: function (visualType, key, isCategory) {\n var value = zrUtil.clone((defaultOption[visualType] || {})[key]);\n return isCategory ? zrUtil.isArray(value) ? value[value.length - 1] : value : value;\n }\n};\nvar defaultOption = {\n color: {\n active: ['#006edd', '#e0ffff'],\n inactive: ['rgba(0,0,0,0)']\n },\n colorHue: {\n active: [0, 360],\n inactive: [0, 0]\n },\n colorSaturation: {\n active: [0.3, 1],\n inactive: [0, 0]\n },\n colorLightness: {\n active: [0.9, 0.5],\n inactive: [0, 0]\n },\n colorAlpha: {\n active: [0.3, 1],\n inactive: [0, 0]\n },\n opacity: {\n active: [0.3, 1],\n inactive: [0, 0]\n },\n symbol: {\n active: ['circle', 'roundRect', 'diamond'],\n inactive: ['none']\n },\n symbolSize: {\n active: [10, 50],\n inactive: [0, 0]\n }\n};\nexport default visualDefault;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @file Visual solution, for consistent option specification.\n */\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport VisualMapping from './VisualMapping.js';\nimport { getItemVisualFromData, setItemVisualFromData } from './helper.js';\nvar each = zrUtil.each;\n\nfunction hasKeys(obj) {\n if (obj) {\n for (var name_1 in obj) {\n if (obj.hasOwnProperty(name_1)) {\n return true;\n }\n }\n }\n}\n\nexport function createVisualMappings(option, stateList, supplementVisualOption) {\n var visualMappings = {};\n each(stateList, function (state) {\n var mappings = visualMappings[state] = createMappings();\n each(option[state], function (visualData, visualType) {\n if (!VisualMapping.isValidType(visualType)) {\n return;\n }\n\n var mappingOption = {\n type: visualType,\n visual: visualData\n };\n supplementVisualOption && supplementVisualOption(mappingOption, state);\n mappings[visualType] = new VisualMapping(mappingOption); // Prepare a alpha for opacity, for some case that opacity\n // is not supported, such as rendering using gradient color.\n\n if (visualType === 'opacity') {\n mappingOption = zrUtil.clone(mappingOption);\n mappingOption.type = 'colorAlpha';\n mappings.__hidden.__alphaForOpacity = new VisualMapping(mappingOption);\n }\n });\n });\n return visualMappings;\n\n function createMappings() {\n var Creater = function () {}; // Make sure hidden fields will not be visited by\n // object iteration (with hasOwnProperty checking).\n\n\n Creater.prototype.__hidden = Creater.prototype;\n var obj = new Creater();\n return obj;\n }\n}\nexport function replaceVisualOption(thisOption, newOption, keys) {\n // Visual attributes merge is not supported, otherwise it\n // brings overcomplicated merge logic. See #2853. So if\n // newOption has anyone of these keys, all of these keys\n // will be reset. Otherwise, all keys remain.\n var has;\n zrUtil.each(keys, function (key) {\n if (newOption.hasOwnProperty(key) && hasKeys(newOption[key])) {\n has = true;\n }\n });\n has && zrUtil.each(keys, function (key) {\n if (newOption.hasOwnProperty(key) && hasKeys(newOption[key])) {\n thisOption[key] = zrUtil.clone(newOption[key]);\n } else {\n delete thisOption[key];\n }\n });\n}\n/**\n * @param stateList\n * @param visualMappings\n * @param list\n * @param getValueState param: valueOrIndex, return: state.\n * @param scope Scope for getValueState\n * @param dimension Concrete dimension, if used.\n */\n// ???! handle brush?\n\nexport function applyVisual(stateList, visualMappings, data, getValueState, scope, dimension) {\n var visualTypesMap = {};\n zrUtil.each(stateList, function (state) {\n var visualTypes = VisualMapping.prepareVisualTypes(visualMappings[state]);\n visualTypesMap[state] = visualTypes;\n });\n var dataIndex;\n\n function getVisual(key) {\n return getItemVisualFromData(data, dataIndex, key);\n }\n\n function setVisual(key, value) {\n setItemVisualFromData(data, dataIndex, key, value);\n }\n\n if (dimension == null) {\n data.each(eachItem);\n } else {\n data.each([dimension], eachItem);\n }\n\n function eachItem(valueOrIndex, index) {\n dataIndex = dimension == null ? valueOrIndex // First argument is index\n : index;\n var rawDataItem = data.getRawDataItem(dataIndex); // Consider performance\n // @ts-ignore\n\n if (rawDataItem && rawDataItem.visualMap === false) {\n return;\n }\n\n var valueState = getValueState.call(scope, valueOrIndex);\n var mappings = visualMappings[valueState];\n var visualTypes = visualTypesMap[valueState];\n\n for (var i = 0, len = visualTypes.length; i < len; i++) {\n var type = visualTypes[i];\n mappings[type] && mappings[type].applyVisual(valueOrIndex, getVisual, setVisual);\n }\n }\n}\n/**\n * @param data\n * @param stateList\n * @param visualMappings >\n * @param getValueState param: valueOrIndex, return: state.\n * @param dim dimension or dimension index.\n */\n\nexport function incrementalApplyVisual(stateList, visualMappings, getValueState, dim) {\n var visualTypesMap = {};\n zrUtil.each(stateList, function (state) {\n var visualTypes = VisualMapping.prepareVisualTypes(visualMappings[state]);\n visualTypesMap[state] = visualTypes;\n });\n return {\n progress: function progress(params, data) {\n var dimIndex;\n\n if (dim != null) {\n dimIndex = data.getDimensionIndex(dim);\n }\n\n function getVisual(key) {\n return getItemVisualFromData(data, dataIndex, key);\n }\n\n function setVisual(key, value) {\n setItemVisualFromData(data, dataIndex, key, value);\n }\n\n var dataIndex;\n var store = data.getStore();\n\n while ((dataIndex = params.next()) != null) {\n var rawDataItem = data.getRawDataItem(dataIndex); // Consider performance\n // @ts-ignore\n\n if (rawDataItem && rawDataItem.visualMap === false) {\n continue;\n }\n\n var value = dim != null ? store.get(dimIndex, dataIndex) : dataIndex;\n var valueState = getValueState(value);\n var mappings = visualMappings[valueState];\n var visualTypes = visualTypesMap[valueState];\n\n for (var i = 0, len = visualTypes.length; i < len; i++) {\n var type = visualTypes[i];\n mappings[type] && mappings[type].applyVisual(value, getVisual, setVisual);\n }\n }\n }\n };\n}","/*!\n * html2canvas 1.0.0-rc.7 \n * Copyright (c) 2020 Niklas von Hertzen \n * Released under MIT License\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.html2canvas = factory());\n}(this, function () { 'use strict';\n\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation. All rights reserved.\r\n Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\n this file except in compliance with the License. You may obtain a copy of the\r\n License at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\n WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\n MERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\n See the Apache Version 2.0 License for specific language governing permissions\r\n and limitations under the License.\r\n ***************************************************************************** */\r\n /* global Reflect, Promise */\r\n\r\n var 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 (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n\r\n function __extends(d, b) {\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\n 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\n function __awaiter(thisArg, _arguments, P, generator) {\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) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n }\r\n\r\n function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n }\n\n var Bounds = /** @class */ (function () {\r\n function Bounds(x, y, w, h) {\r\n this.left = x;\r\n this.top = y;\r\n this.width = w;\r\n this.height = h;\r\n }\r\n Bounds.prototype.add = function (x, y, w, h) {\r\n return new Bounds(this.left + x, this.top + y, this.width + w, this.height + h);\r\n };\r\n Bounds.fromClientRect = function (clientRect) {\r\n return new Bounds(clientRect.left, clientRect.top, clientRect.width, clientRect.height);\r\n };\r\n return Bounds;\r\n }());\r\n var parseBounds = function (node) {\r\n return Bounds.fromClientRect(node.getBoundingClientRect());\r\n };\r\n var parseDocumentSize = function (document) {\r\n var body = document.body;\r\n var documentElement = document.documentElement;\r\n if (!body || !documentElement) {\r\n throw new Error(\"Unable to get document size\");\r\n }\r\n var width = Math.max(Math.max(body.scrollWidth, documentElement.scrollWidth), Math.max(body.offsetWidth, documentElement.offsetWidth), Math.max(body.clientWidth, documentElement.clientWidth));\r\n var height = Math.max(Math.max(body.scrollHeight, documentElement.scrollHeight), Math.max(body.offsetHeight, documentElement.offsetHeight), Math.max(body.clientHeight, documentElement.clientHeight));\r\n return new Bounds(0, 0, width, height);\r\n };\n\n /*\n * css-line-break 1.1.1 \n * Copyright (c) 2019 Niklas von Hertzen \n * Released under MIT License\n */\n var toCodePoints = function (str) {\r\n var codePoints = [];\r\n var i = 0;\r\n var length = str.length;\r\n while (i < length) {\r\n var value = str.charCodeAt(i++);\r\n if (value >= 0xd800 && value <= 0xdbff && i < length) {\r\n var extra = str.charCodeAt(i++);\r\n if ((extra & 0xfc00) === 0xdc00) {\r\n codePoints.push(((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000);\r\n }\r\n else {\r\n codePoints.push(value);\r\n i--;\r\n }\r\n }\r\n else {\r\n codePoints.push(value);\r\n }\r\n }\r\n return codePoints;\r\n };\r\n var fromCodePoint = function () {\r\n var codePoints = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n codePoints[_i] = arguments[_i];\r\n }\r\n if (String.fromCodePoint) {\r\n return String.fromCodePoint.apply(String, codePoints);\r\n }\r\n var length = codePoints.length;\r\n if (!length) {\r\n return '';\r\n }\r\n var codeUnits = [];\r\n var index = -1;\r\n var result = '';\r\n while (++index < length) {\r\n var codePoint = codePoints[index];\r\n if (codePoint <= 0xffff) {\r\n codeUnits.push(codePoint);\r\n }\r\n else {\r\n codePoint -= 0x10000;\r\n codeUnits.push((codePoint >> 10) + 0xd800, codePoint % 0x400 + 0xdc00);\r\n }\r\n if (index + 1 === length || codeUnits.length > 0x4000) {\r\n result += String.fromCharCode.apply(String, codeUnits);\r\n codeUnits.length = 0;\r\n }\r\n }\r\n return result;\r\n };\r\n var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\r\n // Use a lookup table to find the index.\r\n var lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\r\n for (var i = 0; i < chars.length; i++) {\r\n lookup[chars.charCodeAt(i)] = i;\r\n }\r\n var decode = function (base64) {\r\n var bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\r\n if (base64[base64.length - 1] === '=') {\r\n bufferLength--;\r\n if (base64[base64.length - 2] === '=') {\r\n bufferLength--;\r\n }\r\n }\r\n var buffer = typeof ArrayBuffer !== 'undefined' &&\r\n typeof Uint8Array !== 'undefined' &&\r\n typeof Uint8Array.prototype.slice !== 'undefined'\r\n ? new ArrayBuffer(bufferLength)\r\n : new Array(bufferLength);\r\n var bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer);\r\n for (i = 0; i < len; i += 4) {\r\n encoded1 = lookup[base64.charCodeAt(i)];\r\n encoded2 = lookup[base64.charCodeAt(i + 1)];\r\n encoded3 = lookup[base64.charCodeAt(i + 2)];\r\n encoded4 = lookup[base64.charCodeAt(i + 3)];\r\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\r\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\r\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\r\n }\r\n return buffer;\r\n };\r\n var polyUint16Array = function (buffer) {\r\n var length = buffer.length;\r\n var bytes = [];\r\n for (var i = 0; i < length; i += 2) {\r\n bytes.push((buffer[i + 1] << 8) | buffer[i]);\r\n }\r\n return bytes;\r\n };\r\n var polyUint32Array = function (buffer) {\r\n var length = buffer.length;\r\n var bytes = [];\r\n for (var i = 0; i < length; i += 4) {\r\n bytes.push((buffer[i + 3] << 24) | (buffer[i + 2] << 16) | (buffer[i + 1] << 8) | buffer[i]);\r\n }\r\n return bytes;\r\n };\n\n /** Shift size for getting the index-2 table offset. */\r\n var UTRIE2_SHIFT_2 = 5;\r\n /** Shift size for getting the index-1 table offset. */\r\n var UTRIE2_SHIFT_1 = 6 + 5;\r\n /**\r\n * Shift size for shifting left the index array values.\r\n * Increases possible data size with 16-bit index values at the cost\r\n * of compactability.\r\n * This requires data blocks to be aligned by UTRIE2_DATA_GRANULARITY.\r\n */\r\n var UTRIE2_INDEX_SHIFT = 2;\r\n /**\r\n * Difference between the two shift sizes,\r\n * for getting an index-1 offset from an index-2 offset. 6=11-5\r\n */\r\n var UTRIE2_SHIFT_1_2 = UTRIE2_SHIFT_1 - UTRIE2_SHIFT_2;\r\n /**\r\n * The part of the index-2 table for U+D800..U+DBFF stores values for\r\n * lead surrogate code _units_ not code _points_.\r\n * Values for lead surrogate code _points_ are indexed with this portion of the table.\r\n * Length=32=0x20=0x400>>UTRIE2_SHIFT_2. (There are 1024=0x400 lead surrogates.)\r\n */\r\n var UTRIE2_LSCP_INDEX_2_OFFSET = 0x10000 >> UTRIE2_SHIFT_2;\r\n /** Number of entries in a data block. 32=0x20 */\r\n var UTRIE2_DATA_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_2;\r\n /** Mask for getting the lower bits for the in-data-block offset. */\r\n var UTRIE2_DATA_MASK = UTRIE2_DATA_BLOCK_LENGTH - 1;\r\n var UTRIE2_LSCP_INDEX_2_LENGTH = 0x400 >> UTRIE2_SHIFT_2;\r\n /** Count the lengths of both BMP pieces. 2080=0x820 */\r\n var UTRIE2_INDEX_2_BMP_LENGTH = UTRIE2_LSCP_INDEX_2_OFFSET + UTRIE2_LSCP_INDEX_2_LENGTH;\r\n /**\r\n * The 2-byte UTF-8 version of the index-2 table follows at offset 2080=0x820.\r\n * Length 32=0x20 for lead bytes C0..DF, regardless of UTRIE2_SHIFT_2.\r\n */\r\n var UTRIE2_UTF8_2B_INDEX_2_OFFSET = UTRIE2_INDEX_2_BMP_LENGTH;\r\n var UTRIE2_UTF8_2B_INDEX_2_LENGTH = 0x800 >> 6; /* U+0800 is the first code point after 2-byte UTF-8 */\r\n /**\r\n * The index-1 table, only used for supplementary code points, at offset 2112=0x840.\r\n * Variable length, for code points up to highStart, where the last single-value range starts.\r\n * Maximum length 512=0x200=0x100000>>UTRIE2_SHIFT_1.\r\n * (For 0x100000 supplementary code points U+10000..U+10ffff.)\r\n *\r\n * The part of the index-2 table for supplementary code points starts\r\n * after this index-1 table.\r\n *\r\n * Both the index-1 table and the following part of the index-2 table\r\n * are omitted completely if there is only BMP data.\r\n */\r\n var UTRIE2_INDEX_1_OFFSET = UTRIE2_UTF8_2B_INDEX_2_OFFSET + UTRIE2_UTF8_2B_INDEX_2_LENGTH;\r\n /**\r\n * Number of index-1 entries for the BMP. 32=0x20\r\n * This part of the index-1 table is omitted from the serialized form.\r\n */\r\n var UTRIE2_OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> UTRIE2_SHIFT_1;\r\n /** Number of entries in an index-2 block. 64=0x40 */\r\n var UTRIE2_INDEX_2_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_1_2;\r\n /** Mask for getting the lower bits for the in-index-2-block offset. */\r\n var UTRIE2_INDEX_2_MASK = UTRIE2_INDEX_2_BLOCK_LENGTH - 1;\r\n var slice16 = function (view, start, end) {\r\n if (view.slice) {\r\n return view.slice(start, end);\r\n }\r\n return new Uint16Array(Array.prototype.slice.call(view, start, end));\r\n };\r\n var slice32 = function (view, start, end) {\r\n if (view.slice) {\r\n return view.slice(start, end);\r\n }\r\n return new Uint32Array(Array.prototype.slice.call(view, start, end));\r\n };\r\n var createTrieFromBase64 = function (base64) {\r\n var buffer = decode(base64);\r\n var view32 = Array.isArray(buffer) ? polyUint32Array(buffer) : new Uint32Array(buffer);\r\n var view16 = Array.isArray(buffer) ? polyUint16Array(buffer) : new Uint16Array(buffer);\r\n var headerLength = 24;\r\n var index = slice16(view16, headerLength / 2, view32[4] / 2);\r\n var data = view32[5] === 2\r\n ? slice16(view16, (headerLength + view32[4]) / 2)\r\n : slice32(view32, Math.ceil((headerLength + view32[4]) / 4));\r\n return new Trie(view32[0], view32[1], view32[2], view32[3], index, data);\r\n };\r\n var Trie = /** @class */ (function () {\r\n function Trie(initialValue, errorValue, highStart, highValueIndex, index, data) {\r\n this.initialValue = initialValue;\r\n this.errorValue = errorValue;\r\n this.highStart = highStart;\r\n this.highValueIndex = highValueIndex;\r\n this.index = index;\r\n this.data = data;\r\n }\r\n /**\r\n * Get the value for a code point as stored in the Trie.\r\n *\r\n * @param codePoint the code point\r\n * @return the value\r\n */\r\n Trie.prototype.get = function (codePoint) {\r\n var ix;\r\n if (codePoint >= 0) {\r\n if (codePoint < 0x0d800 || (codePoint > 0x0dbff && codePoint <= 0x0ffff)) {\r\n // Ordinary BMP code point, excluding leading surrogates.\r\n // BMP uses a single level lookup. BMP index starts at offset 0 in the Trie2 index.\r\n // 16 bit data is stored in the index array itself.\r\n ix = this.index[codePoint >> UTRIE2_SHIFT_2];\r\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\r\n return this.data[ix];\r\n }\r\n if (codePoint <= 0xffff) {\r\n // Lead Surrogate Code Point. A Separate index section is stored for\r\n // lead surrogate code units and code points.\r\n // The main index has the code unit data.\r\n // For this function, we need the code point data.\r\n // Note: this expression could be refactored for slightly improved efficiency, but\r\n // surrogate code points will be so rare in practice that it's not worth it.\r\n ix = this.index[UTRIE2_LSCP_INDEX_2_OFFSET + ((codePoint - 0xd800) >> UTRIE2_SHIFT_2)];\r\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\r\n return this.data[ix];\r\n }\r\n if (codePoint < this.highStart) {\r\n // Supplemental code point, use two-level lookup.\r\n ix = UTRIE2_INDEX_1_OFFSET - UTRIE2_OMITTED_BMP_INDEX_1_LENGTH + (codePoint >> UTRIE2_SHIFT_1);\r\n ix = this.index[ix];\r\n ix += (codePoint >> UTRIE2_SHIFT_2) & UTRIE2_INDEX_2_MASK;\r\n ix = this.index[ix];\r\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\r\n return this.data[ix];\r\n }\r\n if (codePoint <= 0x10ffff) {\r\n return this.data[this.highValueIndex];\r\n }\r\n }\r\n // Fall through. The code point is outside of the legal range of 0..0x10ffff.\r\n return this.errorValue;\r\n };\r\n return Trie;\r\n }());\n\n var base64 = 'KwAAAAAAAAAACA4AIDoAAPAfAAACAAAAAAAIABAAGABAAEgAUABYAF4AZgBeAGYAYABoAHAAeABeAGYAfACEAIAAiACQAJgAoACoAK0AtQC9AMUAXgBmAF4AZgBeAGYAzQDVAF4AZgDRANkA3gDmAOwA9AD8AAQBDAEUARoBIgGAAIgAJwEvATcBPwFFAU0BTAFUAVwBZAFsAXMBewGDATAAiwGTAZsBogGkAawBtAG8AcIBygHSAdoB4AHoAfAB+AH+AQYCDgIWAv4BHgImAi4CNgI+AkUCTQJTAlsCYwJrAnECeQKBAk0CiQKRApkCoQKoArACuALAAsQCzAIwANQC3ALkAjAA7AL0AvwCAQMJAxADGAMwACADJgMuAzYDPgOAAEYDSgNSA1IDUgNaA1oDYANiA2IDgACAAGoDgAByA3YDfgOAAIQDgACKA5IDmgOAAIAAogOqA4AAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAK8DtwOAAIAAvwPHA88D1wPfAyAD5wPsA/QD/AOAAIAABAQMBBIEgAAWBB4EJgQuBDMEIAM7BEEEXgBJBCADUQRZBGEEaQQwADAAcQQ+AXkEgQSJBJEEgACYBIAAoASoBK8EtwQwAL8ExQSAAIAAgACAAIAAgACgAM0EXgBeAF4AXgBeAF4AXgBeANUEXgDZBOEEXgDpBPEE+QQBBQkFEQUZBSEFKQUxBTUFPQVFBUwFVAVcBV4AYwVeAGsFcwV7BYMFiwWSBV4AmgWgBacFXgBeAF4AXgBeAKsFXgCyBbEFugW7BcIFwgXIBcIFwgXQBdQF3AXkBesF8wX7BQMGCwYTBhsGIwYrBjMGOwZeAD8GRwZNBl4AVAZbBl4AXgBeAF4AXgBeAF4AXgBeAF4AXgBeAGMGXgBqBnEGXgBeAF4AXgBeAF4AXgBeAF4AXgB5BoAG4wSGBo4GkwaAAIADHgR5AF4AXgBeAJsGgABGA4AAowarBrMGswagALsGwwbLBjAA0wbaBtoG3QbaBtoG2gbaBtoG2gblBusG8wb7BgMHCwcTBxsHCwcjBysHMAc1BzUHOgdCB9oGSgdSB1oHYAfaBloHaAfaBlIH2gbaBtoG2gbaBtoG2gbaBjUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHbQdeAF4ANQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQd1B30HNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1B4MH2gaKB68EgACAAIAAgACAAIAAgACAAI8HlwdeAJ8HpweAAIAArwe3B14AXgC/B8UHygcwANAH2AfgB4AA6AfwBz4B+AcACFwBCAgPCBcIogEYAR8IJwiAAC8INwg/CCADRwhPCFcIXwhnCEoDGgSAAIAAgABvCHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIhAiLCI4IMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlggwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAANQc1BzUHNQc1BzUHNQc1BzUHNQc1B54INQc1B6II2gaqCLIIugiAAIAAvgjGCIAAgACAAIAAgACAAIAAgACAAIAAywiHAYAA0wiAANkI3QjlCO0I9Aj8CIAAgACAAAIJCgkSCRoJIgknCTYHLwk3CZYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiAAIAAAAFAAXgBeAGAAcABeAHwAQACQAKAArQC9AJ4AXgBeAE0A3gBRAN4A7AD8AMwBGgEAAKcBNwEFAUwBXAF4QkhCmEKnArcCgAHHAsABz4LAAcABwAHAAd+C6ABoAG+C/4LAAcABwAHAAc+DF4MAAcAB54M3gweDV4Nng3eDaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAEeDqABVg6WDqABoQ6gAaABoAHXDvcONw/3DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DncPAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcAB7cPPwlGCU4JMACAAIAAgABWCV4JYQmAAGkJcAl4CXwJgAkwADAAMAAwAIgJgACLCZMJgACZCZ8JowmrCYAAswkwAF4AXgB8AIAAuwkABMMJyQmAAM4JgADVCTAAMAAwADAAgACAAIAAgACAAIAAgACAAIAAqwYWBNkIMAAwADAAMADdCeAJ6AnuCR4E9gkwAP4JBQoNCjAAMACAABUK0wiAAB0KJAosCjQKgAAwADwKQwqAAEsKvQmdCVMKWwowADAAgACAALcEMACAAGMKgABrCjAAMAAwADAAMAAwADAAMAAwADAAMAAeBDAAMAAwADAAMAAwADAAMAAwADAAMAAwAIkEPQFzCnoKiQSCCooKkAqJBJgKoAqkCokEGAGsCrQKvArBCjAAMADJCtEKFQHZCuEK/gHpCvEKMAAwADAAMACAAIwE+QowAIAAPwEBCzAAMAAwADAAMACAAAkLEQswAIAAPwEZCyELgAAOCCkLMAAxCzkLMAAwADAAMAAwADAAXgBeAEELMAAwADAAMAAwADAAMAAwAEkLTQtVC4AAXAtkC4AAiQkwADAAMAAwADAAMAAwADAAbAtxC3kLgAuFC4sLMAAwAJMLlwufCzAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAApwswADAAMACAAIAAgACvC4AAgACAAIAAgACAALcLMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAvwuAAMcLgACAAIAAgACAAIAAyguAAIAAgACAAIAA0QswADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAANkLgACAAIAA4AswADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACJCR4E6AswADAAhwHwC4AA+AsADAgMEAwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMACAAIAAGAwdDCUMMAAwAC0MNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQw1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHPQwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADUHNQc1BzUHNQc1BzUHNQc2BzAAMAA5DDUHNQc1BzUHNQc1BzUHNQc1BzUHNQdFDDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAgACAAIAATQxSDFoMMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAF4AXgBeAF4AXgBeAF4AYgxeAGoMXgBxDHkMfwxeAIUMXgBeAI0MMAAwADAAMAAwAF4AXgCVDJ0MMAAwADAAMABeAF4ApQxeAKsMswy7DF4Awgy9DMoMXgBeAF4AXgBeAF4AXgBeAF4AXgDRDNkMeQBqCeAM3Ax8AOYM7Az0DPgMXgBeAF4AXgBeAF4AXgBeAF4AXgBeAF4AXgBeAF4AXgCgAAANoAAHDQ4NFg0wADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAeDSYNMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIAAgACAAIAAgACAAC4NMABeAF4ANg0wADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAD4NRg1ODVYNXg1mDTAAbQ0wADAAMAAwADAAMAAwADAA2gbaBtoG2gbaBtoG2gbaBnUNeg3CBYANwgWFDdoGjA3aBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gaUDZwNpA2oDdoG2gawDbcNvw3HDdoG2gbPDdYN3A3fDeYN2gbsDfMN2gbaBvoN/g3aBgYODg7aBl4AXgBeABYOXgBeACUG2gYeDl4AJA5eACwO2w3aBtoGMQ45DtoG2gbaBtoGQQ7aBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gZJDjUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1B1EO2gY1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQdZDjUHNQc1BzUHNQc1B2EONQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHaA41BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1B3AO2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gY1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1B2EO2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gZJDtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBkkOeA6gAKAAoAAwADAAMAAwAKAAoACgAKAAoACgAKAAgA4wADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAD//wQABAAEAAQABAAEAAQABAAEAA0AAwABAAEAAgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAKABMAFwAeABsAGgAeABcAFgASAB4AGwAYAA8AGAAcAEsASwBLAEsASwBLAEsASwBLAEsAGAAYAB4AHgAeABMAHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAFgAbABIAHgAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYADQARAB4ABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAUABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkAFgAaABsAGwAbAB4AHQAdAB4ATwAXAB4ADQAeAB4AGgAbAE8ATwAOAFAAHQAdAB0ATwBPABcATwBPAE8AFgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAFAATwBAAE8ATwBPAEAATwBQAFAATwBQAB4AHgAeAB4AHgAeAB0AHQAdAB0AHgAdAB4ADgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgBQAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkACQAJAAkACQAJAAkABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAFAAHgAeAB4AKwArAFAAUABQAFAAGABQACsAKwArACsAHgAeAFAAHgBQAFAAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUAAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAYAA0AKwArAB4AHgAbACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAB4ABAAEAB4ABAAEABMABAArACsAKwArACsAKwArACsAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAKwArACsAKwArAFYAVgBWAB4AHgArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AGgAaABoAGAAYAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQAEwAEACsAEwATAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABLAEsASwBLAEsASwBLAEsASwBLABoAGQAZAB4AUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABMAUAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABABQAFAABAAEAB4ABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUAAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAFAABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQAUABQAB4AHgAYABMAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAFAABAAEAAQABAAEAFAABAAEAAQAUAAEAAQABAAEAAQAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArACsAHgArAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAAQABAANAA0ASwBLAEsASwBLAEsASwBLAEsASwAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAKwArACsAUABQAFAAUAArACsABABQAAQABAAEAAQABAAEAAQAKwArAAQABAArACsABAAEAAQAUAArACsAKwArACsAKwArACsABAArACsAKwArAFAAUAArAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAGgAaAFAAUABQAFAAUABMAB4AGwBQAB4AKwArACsABAAEAAQAKwBQAFAAUABQAFAAUAArACsAKwArAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUAArAFAAUAArACsABAArAAQABAAEAAQABAArACsAKwArAAQABAArACsABAAEAAQAKwArACsABAArACsAKwArACsAKwArAFAAUABQAFAAKwBQACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwAEAAQAUABQAFAABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUABQAFAAUAArACsABABQAAQABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQAKwArAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwAeABsAKwArACsAKwArACsAKwBQAAQABAAEAAQABAAEACsABAAEAAQAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwArAAQABAArACsABAAEAAQAKwArACsAKwArACsAKwArAAQABAArACsAKwArAFAAUAArAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwAeAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwAEAFAAKwBQAFAAUABQAFAAUAArACsAKwBQAFAAUAArAFAAUABQAFAAKwArACsAUABQACsAUAArAFAAUAArACsAKwBQAFAAKwArACsAUABQAFAAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAAQABAAEAAQAKwArACsABAAEAAQAKwAEAAQABAAEACsAKwBQACsAKwArACsAKwArAAQAKwArACsAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAB4AHgAeAB4AHgAeABsAHgArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABAArACsAKwArACsAKwArAAQABAArAFAAUABQACsAKwArACsAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAB4AUAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABAArACsAKwArACsAKwArAAQABAArACsAKwArACsAKwArAFAAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABABQAB4AKwArACsAKwBQAFAAUAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQABoAUABQAFAAUABQAFAAKwArAAQABAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQACsAUAArACsAUABQAFAAUABQAFAAUAArACsAKwAEACsAKwArACsABAAEAAQABAAEAAQAKwAEACsABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgAqACsAKwArACsAGwBcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAeAEsASwBLAEsASwBLAEsASwBLAEsADQANACsAKwArACsAKwBcAFwAKwBcACsAKwBcAFwAKwBcACsAKwBcACsAKwArACsAKwArAFwAXABcAFwAKwBcAFwAXABcAFwAXABcACsAXABcAFwAKwBcACsAXAArACsAXABcACsAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgArACoAKgBcACsAKwBcAFwAXABcAFwAKwBcACsAKgAqACoAKgAqACoAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAFwAXABcAFwAUAAOAA4ADgAOAB4ADgAOAAkADgAOAA0ACQATABMAEwATABMACQAeABMAHgAeAB4ABAAEAB4AHgAeAB4AHgAeAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUAANAAQAHgAEAB4ABAAWABEAFgARAAQABABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAAQABAAEAAQABAANAAQABABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsADQANAB4AHgAeAB4AHgAeAAQAHgAeAB4AHgAeAB4AKwAeAB4ADgAOAA0ADgAeAB4AHgAeAB4ACQAJACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqAFwASwBLAEsASwBLAEsASwBLAEsASwANAA0AHgAeAB4AHgBcAFwAXABcAFwAXAAqACoAKgAqAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAKgAqACoAKgAqACoAKgBcAFwAXAAqACoAKgAqAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAXAAqAEsASwBLAEsASwBLAEsASwBLAEsAKgAqACoAKgAqACoAUABQAFAAUABQAFAAKwBQACsAKwArACsAKwBQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQACsAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwAEAAQABAAeAA0AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYAEQArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAADQANAA0AUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAA0ADQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQACsABAAEACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoADQANABUAXAANAB4ADQAbAFwAKgArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAB4AHgATABMADQANAA4AHgATABMAHgAEAAQABAAJACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAUABQAFAAUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwAeACsAKwArABMAEwBLAEsASwBLAEsASwBLAEsASwBLAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwBcAFwAXABcAFwAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBcACsAKwArACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEACsAKwAeAB4AXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgArACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgArACsABABLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKgAqACoAKgAqACoAKgBcACoAKgAqACoAKgAqACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAUABQAFAAUABQAFAAUAArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsADQANAB4ADQANAA0ADQAeAB4AHgAeAB4AHgAeAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAHgAeAB4AHgBQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwANAA0ADQANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwBQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAA0AUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsABAAEAAQAHgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAUABQAFAABABQAFAAUABQAAQABAAEAFAAUAAEAAQABAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAKwBQACsAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAHgAeAB4AHgAeAB4AHgAeAFAAHgAeAB4AUABQAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAKwArAB4AHgAeAB4AHgAeACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAUABQAFAAKwAeAB4AHgAeAB4AHgAeAA4AHgArAA0ADQANAA0ADQANAA0ACQANAA0ADQAIAAQACwAEAAQADQAJAA0ADQAMAB0AHQAeABcAFwAWABcAFwAXABYAFwAdAB0AHgAeABQAFAAUAA0AAQABAAQABAAEAAQABAAJABoAGgAaABoAGgAaABoAGgAeABcAFwAdABUAFQAeAB4AHgAeAB4AHgAYABYAEQAVABUAFQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgANAB4ADQANAA0ADQAeAA0ADQANAAcAHgAeAB4AHgArAAQABAAEAAQABAAEAAQABAAEAAQAUABQACsAKwBPAFAAUABQAFAAUAAeAB4AHgAWABEATwBQAE8ATwBPAE8AUABQAFAAUABQAB4AHgAeABYAEQArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAGwAbABsAGwAbABsAGwAaABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAaABsAGwAbABsAGgAbABsAGgAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgBQABoAHgAdAB4AUAAeABoAHgAeAB4AHgAeAB4AHgAeAB4ATwAeAFAAGwAeAB4AUABQAFAAUABQAB4AHgAeAB0AHQAeAFAAHgBQAB4AUAAeAFAATwBQAFAAHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AUABQAFAAUABPAE8AUABQAFAAUABQAE8AUABQAE8AUABPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBQAFAAUABQAE8ATwBPAE8ATwBPAE8ATwBPAE8AUABQAFAAUABQAFAAUABQAFAAHgAeAFAAUABQAFAATwAeAB4AKwArACsAKwAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB0AHQAeAB4AHgAdAB0AHgAeAB0AHgAeAB4AHQAeAB0AGwAbAB4AHQAeAB4AHgAeAB0AHgAeAB0AHQAdAB0AHgAeAB0AHgAdAB4AHQAdAB0AHQAdAB0AHgAdAB4AHgAeAB4AHgAdAB0AHQAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAdAB4AHgAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHgAdAB0AHQAdAB4AHgAdAB0AHgAeAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHQAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABQAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAlACUAHgAeAB4AHgAeAB4AHgAeAB4AFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBQAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeAB4AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAdAB0AHQAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAeAB4AHgAeAB0AHQAeAB4AHgAeAB0AHQAdAB4AHgAdAB4AHgAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB0AHQAeAB4AHQAeAB4AHgAeAB0AHQAeAB4AHgAeACUAJQAdAB0AJQAeACUAJQAlACAAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAHgAeAB4AHgAdAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHQAdAB0AHgAdACUAHQAdAB4AHQAdAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAHQAdAB0AHQAlAB4AJQAlACUAHQAlACUAHQAdAB0AJQAlAB0AHQAlAB0AHQAlACUAJQAeAB0AHgAeAB4AHgAdAB0AJQAdAB0AHQAdAB0AHQAlACUAJQAlACUAHQAlACUAIAAlAB0AHQAlACUAJQAlACUAJQAlACUAHgAeAB4AJQAlACAAIAAgACAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeABcAFwAXABcAFwAXAB4AEwATACUAHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAWABEAFgARAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAeAB4AKwArACsAKwArABMADQANAA0AUAATAA0AUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUAANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAA0ADQANAA0ADQANAA0ADQAeAA0AFgANAB4AHgAXABcAHgAeABcAFwAWABEAFgARABYAEQAWABEADQANAA0ADQATAFAADQANAB4ADQANAB4AHgAeAB4AHgAMAAwADQANAA0AHgANAA0AFgANAA0ADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArAA0AEQARACUAJQBHAFcAVwAWABEAFgARABYAEQAWABEAFgARACUAJQAWABEAFgARABYAEQAWABEAFQAWABEAEQAlAFcAVwBXAFcAVwBXAFcAVwBXAAQABAAEAAQABAAEACUAVwBXAFcAVwA2ACUAJQBXAFcAVwBHAEcAJQAlACUAKwBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBRAFcAUQBXAFEAVwBXAFcAVwBXAFcAUQBXAFcAVwBXAFcAVwBRAFEAKwArAAQABAAVABUARwBHAFcAFQBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBRAFcAVwBXAFcAVwBXAFEAUQBXAFcAVwBXABUAUQBHAEcAVwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwArACUAJQBXAFcAVwBXACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAKwArACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAE8ATwBPAE8ATwBPAE8ATwAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADQATAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQAHgBQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAeAA0ADQANAA0ADQArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAAQAUABQAFAABABQAFAAUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAeAB4AHgAeACsAKwArACsAUABQAFAAUABQAFAAHgAeABoAHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADgAOABMAEwArACsAKwArACsAKwArACsABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUAAeAB4AHgBQAA4AUAArACsAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAB4AWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYACsAKwArAAQAHgAeAB4AHgAeAB4ADQANAA0AHgAeAB4AHgArAFAASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArAB4AHgBcAFwAXABcAFwAKgBcAFwAXABcAFwAXABcAFwAXABcAEsASwBLAEsASwBLAEsASwBLAEsAXABcAFwAXABcACsAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAFAAUABQAAQAUABQAFAAUABQAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAHgANAA0ADQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAKgAqACoAXABcACoAKgBcAFwAXABcAFwAKgAqAFwAKgBcACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAA0ADQBQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQADQAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAVABVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBUAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVACsAKwArACsAKwArACsAKwArACsAKwArAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAKwArACsAKwBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAKwArACsAKwAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArACsAKwArAFYABABWAFYAVgBWAFYAVgBWAFYAVgBWAB4AVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgArAFYAVgBWAFYAVgArAFYAKwBWAFYAKwBWAFYAKwBWAFYAVgBWAFYAVgBWAFYAVgBWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAEQAWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAaAB4AKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAGAARABEAGAAYABMAEwAWABEAFAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACUAJQAlACUAJQAWABEAFgARABYAEQAWABEAFgARABYAEQAlACUAFgARACUAJQAlACUAJQAlACUAEQAlABEAKwAVABUAEwATACUAFgARABYAEQAWABEAJQAlACUAJQAlACUAJQAlACsAJQAbABoAJQArACsAKwArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAcAKwATACUAJQAbABoAJQAlABYAEQAlACUAEQAlABEAJQBXAFcAVwBXAFcAVwBXAFcAVwBXABUAFQAlACUAJQATACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXABYAJQARACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAWACUAEQAlABYAEQARABYAEQARABUAVwBRAFEAUQBRAFEAUQBRAFEAUQBRAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcARwArACsAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXACsAKwBXAFcAVwBXAFcAVwArACsAVwBXAFcAKwArACsAGgAbACUAJQAlABsAGwArAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAAQAB0AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsADQANAA0AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQBQAFAAUABQACsAKwArACsAUABQAFAAUABQAFAAUABQAA0AUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQACsAKwArAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgBQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwBQAFAAUABQAFAABAAEAAQAKwAEAAQAKwArACsAKwArAAQABAAEAAQAUABQAFAAUAArAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsABAAEAAQAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsADQANAA0ADQANAA0ADQANAB4AKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AUABQAFAAUABQAFAAUABQAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwArACsAUABQAFAAUABQAA0ADQANAA0ADQANABQAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwANAA0ADQANAA0ADQANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQAeAB4AHgAeAB4AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsASwBLAEsASwBLAEsASwBLAEsASwANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAeAA4AUAArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAADQANAB4ADQAeAAQABAAEAB4AKwArAEsASwBLAEsASwBLAEsASwBLAEsAUAAOAFAADQANAA0AKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAA0AHgANAA0AHgAEACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAA0AKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAUAArACsAKwArACsAKwAEACsAKwArACsAKwBQAFAAUABQAFAABAAEACsAKwAEAAQABAAEAAQABAAEACsAKwArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABABQAFAAUABQAA0ADQANAA0AHgBLAEsASwBLAEsASwBLAEsASwBLACsADQArAB4AKwArAAQABAAEAAQAUABQAB4AUAArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEACsAKwAEAAQABAAEAAQABAAEAAQABAAOAA0ADQATABMAHgAeAB4ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0AUABQAFAAUAAEAAQAKwArAAQADQANAB4AUAArACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAKwAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAXABcAA0ADQANACoASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAOAB4ADQANAA0ADQAOAB4ABAArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAFAAUAArACsAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAA0ADQANACsADgAOAA4ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAFAADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAOABMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAArACsAKwAEACsABAAEACsABAAEAAQABAAEAAQABABQAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABIAEgAQwBDAEMAUABQAFAAUABDAFAAUABQAEgAQwBIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABDAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwANAA0AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAANACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQANAB4AHgAeAB4AHgAeAFAAUABQAFAADQAeACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEcARwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwArACsAKwArACsAKwArACsAKwArACsAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQACsAKwAeAAQABAANAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAHgAeAAQABAAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAEAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUAArACsAUAArACsAUABQACsAKwBQAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQACsAUABQAFAAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwAeAB4AUABQAFAAUABQACsAUAArACsAKwBQAFAAUABQAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AKwArAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAEAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAeAB4ADQANAA0ADQAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABAArAAQABAArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAEAAQABAAEAAQABAAEACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAFgAWAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArAFAAKwArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArAFAAKwBQACsAKwArACsAKwArAFAAKwArACsAKwBQACsAUAArAFAAKwBQAFAAUAArAFAAUAArAFAAKwArAFAAKwBQACsAUAArAFAAKwBQACsAUABQACsAUAArACsAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAUABQAFAAUAArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwBQAFAAUAArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAlACUAJQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeACUAJQAlACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeACUAJQAlACUAJQAeACUAJQAlACUAJQAgACAAIAAlACUAIAAlACUAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAIQAhACEAIQAhACUAJQAgACAAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAIAAgACAAIAAlACUAJQAlACAAJQAgACAAIAAgACAAIAAgACAAIAAlACUAJQAgACUAJQAlACUAIAAgACAAJQAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeACUAHgAlAB4AJQAlACUAJQAlACAAJQAlACUAJQAeACUAHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAIAAgACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAIAAlACUAJQAlACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAIAAgACAAJQAlACUAIAAgACAAIAAgAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFwAXABcAFQAVABUAHgAeAB4AHgAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAIAAgACAAJQAlACUAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAlACAAIAAlACUAJQAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAIAAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsA';\n\n /* @flow */\r\n var LETTER_NUMBER_MODIFIER = 50;\r\n // Non-tailorable Line Breaking Classes\r\n var BK = 1; // Cause a line break (after)\r\n var CR = 2; // Cause a line break (after), except between CR and LF\r\n var LF = 3; // Cause a line break (after)\r\n var CM = 4; // Prohibit a line break between the character and the preceding character\r\n var NL = 5; // Cause a line break (after)\r\n var WJ = 7; // Prohibit line breaks before and after\r\n var ZW = 8; // Provide a break opportunity\r\n var GL = 9; // Prohibit line breaks before and after\r\n var SP = 10; // Enable indirect line breaks\r\n var ZWJ = 11; // Prohibit line breaks within joiner sequences\r\n // Break Opportunities\r\n var B2 = 12; // Provide a line break opportunity before and after the character\r\n var BA = 13; // Generally provide a line break opportunity after the character\r\n var BB = 14; // Generally provide a line break opportunity before the character\r\n var HY = 15; // Provide a line break opportunity after the character, except in numeric context\r\n var CB = 16; // Provide a line break opportunity contingent on additional information\r\n // Characters Prohibiting Certain Breaks\r\n var CL = 17; // Prohibit line breaks before\r\n var CP = 18; // Prohibit line breaks before\r\n var EX = 19; // Prohibit line breaks before\r\n var IN = 20; // Allow only indirect line breaks between pairs\r\n var NS = 21; // Allow only indirect line breaks before\r\n var OP = 22; // Prohibit line breaks after\r\n var QU = 23; // Act like they are both opening and closing\r\n // Numeric Context\r\n var IS = 24; // Prevent breaks after any and before numeric\r\n var NU = 25; // Form numeric expressions for line breaking purposes\r\n var PO = 26; // Do not break following a numeric expression\r\n var PR = 27; // Do not break in front of a numeric expression\r\n var SY = 28; // Prevent a break before; and allow a break after\r\n // Other Characters\r\n var AI = 29; // Act like AL when the resolvedEAW is N; otherwise; act as ID\r\n var AL = 30; // Are alphabetic characters or symbols that are used with alphabetic characters\r\n var CJ = 31; // Treat as NS or ID for strict or normal breaking.\r\n var EB = 32; // Do not break from following Emoji Modifier\r\n var EM = 33; // Do not break from preceding Emoji Base\r\n var H2 = 34; // Form Korean syllable blocks\r\n var H3 = 35; // Form Korean syllable blocks\r\n var HL = 36; // Do not break around a following hyphen; otherwise act as Alphabetic\r\n var ID = 37; // Break before or after; except in some numeric context\r\n var JL = 38; // Form Korean syllable blocks\r\n var JV = 39; // Form Korean syllable blocks\r\n var JT = 40; // Form Korean syllable blocks\r\n var RI = 41; // Keep pairs together. For pairs; break before and after other classes\r\n var SA = 42; // Provide a line break opportunity contingent on additional, language-specific context analysis\r\n var XX = 43; // Have as yet unknown line breaking behavior or unassigned code positions\r\n var BREAK_MANDATORY = '!';\r\n var BREAK_NOT_ALLOWED = '×';\r\n var BREAK_ALLOWED = '÷';\r\n var UnicodeTrie = createTrieFromBase64(base64);\r\n var ALPHABETICS = [AL, HL];\r\n var HARD_LINE_BREAKS = [BK, CR, LF, NL];\r\n var SPACE = [SP, ZW];\r\n var PREFIX_POSTFIX = [PR, PO];\r\n var LINE_BREAKS = HARD_LINE_BREAKS.concat(SPACE);\r\n var KOREAN_SYLLABLE_BLOCK = [JL, JV, JT, H2, H3];\r\n var HYPHEN = [HY, BA];\r\n var codePointsToCharacterClasses = function (codePoints, lineBreak) {\r\n if (lineBreak === void 0) { lineBreak = 'strict'; }\r\n var types = [];\r\n var indicies = [];\r\n var categories = [];\r\n codePoints.forEach(function (codePoint, index) {\r\n var classType = UnicodeTrie.get(codePoint);\r\n if (classType > LETTER_NUMBER_MODIFIER) {\r\n categories.push(true);\r\n classType -= LETTER_NUMBER_MODIFIER;\r\n }\r\n else {\r\n categories.push(false);\r\n }\r\n if (['normal', 'auto', 'loose'].indexOf(lineBreak) !== -1) {\r\n // U+2010, – U+2013, 〜 U+301C, ゠ U+30A0\r\n if ([0x2010, 0x2013, 0x301c, 0x30a0].indexOf(codePoint) !== -1) {\r\n indicies.push(index);\r\n return types.push(CB);\r\n }\r\n }\r\n if (classType === CM || classType === ZWJ) {\r\n // LB10 Treat any remaining combining mark or ZWJ as AL.\r\n if (index === 0) {\r\n indicies.push(index);\r\n return types.push(AL);\r\n }\r\n // LB9 Do not break a combining character sequence; treat it as if it has the line breaking class of\r\n // the base character in all of the following rules. Treat ZWJ as if it were CM.\r\n var prev = types[index - 1];\r\n if (LINE_BREAKS.indexOf(prev) === -1) {\r\n indicies.push(indicies[index - 1]);\r\n return types.push(prev);\r\n }\r\n indicies.push(index);\r\n return types.push(AL);\r\n }\r\n indicies.push(index);\r\n if (classType === CJ) {\r\n return types.push(lineBreak === 'strict' ? NS : ID);\r\n }\r\n if (classType === SA) {\r\n return types.push(AL);\r\n }\r\n if (classType === AI) {\r\n return types.push(AL);\r\n }\r\n // For supplementary characters, a useful default is to treat characters in the range 10000..1FFFD as AL\r\n // and characters in the ranges 20000..2FFFD and 30000..3FFFD as ID, until the implementation can be revised\r\n // to take into account the actual line breaking properties for these characters.\r\n if (classType === XX) {\r\n if ((codePoint >= 0x20000 && codePoint <= 0x2fffd) || (codePoint >= 0x30000 && codePoint <= 0x3fffd)) {\r\n return types.push(ID);\r\n }\r\n else {\r\n return types.push(AL);\r\n }\r\n }\r\n types.push(classType);\r\n });\r\n return [indicies, types, categories];\r\n };\r\n var isAdjacentWithSpaceIgnored = function (a, b, currentIndex, classTypes) {\r\n var current = classTypes[currentIndex];\r\n if (Array.isArray(a) ? a.indexOf(current) !== -1 : a === current) {\r\n var i = currentIndex;\r\n while (i <= classTypes.length) {\r\n i++;\r\n var next = classTypes[i];\r\n if (next === b) {\r\n return true;\r\n }\r\n if (next !== SP) {\r\n break;\r\n }\r\n }\r\n }\r\n if (current === SP) {\r\n var i = currentIndex;\r\n while (i > 0) {\r\n i--;\r\n var prev = classTypes[i];\r\n if (Array.isArray(a) ? a.indexOf(prev) !== -1 : a === prev) {\r\n var n = currentIndex;\r\n while (n <= classTypes.length) {\r\n n++;\r\n var next = classTypes[n];\r\n if (next === b) {\r\n return true;\r\n }\r\n if (next !== SP) {\r\n break;\r\n }\r\n }\r\n }\r\n if (prev !== SP) {\r\n break;\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n var previousNonSpaceClassType = function (currentIndex, classTypes) {\r\n var i = currentIndex;\r\n while (i >= 0) {\r\n var type = classTypes[i];\r\n if (type === SP) {\r\n i--;\r\n }\r\n else {\r\n return type;\r\n }\r\n }\r\n return 0;\r\n };\r\n var _lineBreakAtIndex = function (codePoints, classTypes, indicies, index, forbiddenBreaks) {\r\n if (indicies[index] === 0) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n var currentIndex = index - 1;\r\n if (Array.isArray(forbiddenBreaks) && forbiddenBreaks[currentIndex] === true) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n var beforeIndex = currentIndex - 1;\r\n var afterIndex = currentIndex + 1;\r\n var current = classTypes[currentIndex];\r\n // LB4 Always break after hard line breaks.\r\n // LB5 Treat CR followed by LF, as well as CR, LF, and NL as hard line breaks.\r\n var before = beforeIndex >= 0 ? classTypes[beforeIndex] : 0;\r\n var next = classTypes[afterIndex];\r\n if (current === CR && next === LF) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n if (HARD_LINE_BREAKS.indexOf(current) !== -1) {\r\n return BREAK_MANDATORY;\r\n }\r\n // LB6 Do not break before hard line breaks.\r\n if (HARD_LINE_BREAKS.indexOf(next) !== -1) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB7 Do not break before spaces or zero width space.\r\n if (SPACE.indexOf(next) !== -1) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB8 Break before any character following a zero-width space, even if one or more spaces intervene.\r\n if (previousNonSpaceClassType(currentIndex, classTypes) === ZW) {\r\n return BREAK_ALLOWED;\r\n }\r\n // LB8a Do not break between a zero width joiner and an ideograph, emoji base or emoji modifier.\r\n if (UnicodeTrie.get(codePoints[currentIndex]) === ZWJ && (next === ID || next === EB || next === EM)) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB11 Do not break before or after Word joiner and related characters.\r\n if (current === WJ || next === WJ) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB12 Do not break after NBSP and related characters.\r\n if (current === GL) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB12a Do not break before NBSP and related characters, except after spaces and hyphens.\r\n if ([SP, BA, HY].indexOf(current) === -1 && next === GL) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB13 Do not break before ‘]’ or ‘!’ or ‘;’ or ‘/’, even after spaces.\r\n if ([CL, CP, EX, IS, SY].indexOf(next) !== -1) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB14 Do not break after ‘[’, even after spaces.\r\n if (previousNonSpaceClassType(currentIndex, classTypes) === OP) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB15 Do not break within ‘”[’, even with intervening spaces.\r\n if (isAdjacentWithSpaceIgnored(QU, OP, currentIndex, classTypes)) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB16 Do not break between closing punctuation and a nonstarter (lb=NS), even with intervening spaces.\r\n if (isAdjacentWithSpaceIgnored([CL, CP], NS, currentIndex, classTypes)) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB17 Do not break within ‘——’, even with intervening spaces.\r\n if (isAdjacentWithSpaceIgnored(B2, B2, currentIndex, classTypes)) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB18 Break after spaces.\r\n if (current === SP) {\r\n return BREAK_ALLOWED;\r\n }\r\n // LB19 Do not break before or after quotation marks, such as ‘ ” ’.\r\n if (current === QU || next === QU) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB20 Break before and after unresolved CB.\r\n if (next === CB || current === CB) {\r\n return BREAK_ALLOWED;\r\n }\r\n // LB21 Do not break before hyphen-minus, other hyphens, fixed-width spaces, small kana, and other non-starters, or after acute accents.\r\n if ([BA, HY, NS].indexOf(next) !== -1 || current === BB) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB21a Don't break after Hebrew + Hyphen.\r\n if (before === HL && HYPHEN.indexOf(current) !== -1) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB21b Don’t break between Solidus and Hebrew letters.\r\n if (current === SY && next === HL) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB22 Do not break between two ellipses, or between letters, numbers or exclamations and ellipsis.\r\n if (next === IN && ALPHABETICS.concat(IN, EX, NU, ID, EB, EM).indexOf(current) !== -1) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB23 Do not break between digits and letters.\r\n if ((ALPHABETICS.indexOf(next) !== -1 && current === NU) || (ALPHABETICS.indexOf(current) !== -1 && next === NU)) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB23a Do not break between numeric prefixes and ideographs, or between ideographs and numeric postfixes.\r\n if ((current === PR && [ID, EB, EM].indexOf(next) !== -1) ||\r\n ([ID, EB, EM].indexOf(current) !== -1 && next === PO)) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB24 Do not break between numeric prefix/postfix and letters, or between letters and prefix/postfix.\r\n if ((ALPHABETICS.indexOf(current) !== -1 && PREFIX_POSTFIX.indexOf(next) !== -1) ||\r\n (PREFIX_POSTFIX.indexOf(current) !== -1 && ALPHABETICS.indexOf(next) !== -1)) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB25 Do not break between the following pairs of classes relevant to numbers:\r\n if (\r\n // (PR | PO) × ( OP | HY )? NU\r\n ([PR, PO].indexOf(current) !== -1 &&\r\n (next === NU || ([OP, HY].indexOf(next) !== -1 && classTypes[afterIndex + 1] === NU))) ||\r\n // ( OP | HY ) × NU\r\n ([OP, HY].indexOf(current) !== -1 && next === NU) ||\r\n // NU ×\t(NU | SY | IS)\r\n (current === NU && [NU, SY, IS].indexOf(next) !== -1)) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // NU (NU | SY | IS)* × (NU | SY | IS | CL | CP)\r\n if ([NU, SY, IS, CL, CP].indexOf(next) !== -1) {\r\n var prevIndex = currentIndex;\r\n while (prevIndex >= 0) {\r\n var type = classTypes[prevIndex];\r\n if (type === NU) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n else if ([SY, IS].indexOf(type) !== -1) {\r\n prevIndex--;\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n }\r\n // NU (NU | SY | IS)* (CL | CP)? × (PO | PR))\r\n if ([PR, PO].indexOf(next) !== -1) {\r\n var prevIndex = [CL, CP].indexOf(current) !== -1 ? beforeIndex : currentIndex;\r\n while (prevIndex >= 0) {\r\n var type = classTypes[prevIndex];\r\n if (type === NU) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n else if ([SY, IS].indexOf(type) !== -1) {\r\n prevIndex--;\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n }\r\n // LB26 Do not break a Korean syllable.\r\n if ((JL === current && [JL, JV, H2, H3].indexOf(next) !== -1) ||\r\n ([JV, H2].indexOf(current) !== -1 && [JV, JT].indexOf(next) !== -1) ||\r\n ([JT, H3].indexOf(current) !== -1 && next === JT)) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB27 Treat a Korean Syllable Block the same as ID.\r\n if ((KOREAN_SYLLABLE_BLOCK.indexOf(current) !== -1 && [IN, PO].indexOf(next) !== -1) ||\r\n (KOREAN_SYLLABLE_BLOCK.indexOf(next) !== -1 && current === PR)) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB28 Do not break between alphabetics (“at”).\r\n if (ALPHABETICS.indexOf(current) !== -1 && ALPHABETICS.indexOf(next) !== -1) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB29 Do not break between numeric punctuation and alphabetics (“e.g.”).\r\n if (current === IS && ALPHABETICS.indexOf(next) !== -1) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB30 Do not break between letters, numbers, or ordinary symbols and opening or closing parentheses.\r\n if ((ALPHABETICS.concat(NU).indexOf(current) !== -1 && next === OP) ||\r\n (ALPHABETICS.concat(NU).indexOf(next) !== -1 && current === CP)) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB30a Break between two regional indicator symbols if and only if there are an even number of regional\r\n // indicators preceding the position of the break.\r\n if (current === RI && next === RI) {\r\n var i = indicies[currentIndex];\r\n var count = 1;\r\n while (i > 0) {\r\n i--;\r\n if (classTypes[i] === RI) {\r\n count++;\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n if (count % 2 !== 0) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n }\r\n // LB30b Do not break between an emoji base and an emoji modifier.\r\n if (current === EB && next === EM) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n return BREAK_ALLOWED;\r\n };\r\n var cssFormattedClasses = function (codePoints, options) {\r\n if (!options) {\r\n options = { lineBreak: 'normal', wordBreak: 'normal' };\r\n }\r\n var _a = codePointsToCharacterClasses(codePoints, options.lineBreak), indicies = _a[0], classTypes = _a[1], isLetterNumber = _a[2];\r\n if (options.wordBreak === 'break-all' || options.wordBreak === 'break-word') {\r\n classTypes = classTypes.map(function (type) { return ([NU, AL, SA].indexOf(type) !== -1 ? ID : type); });\r\n }\r\n var forbiddenBreakpoints = options.wordBreak === 'keep-all'\r\n ? isLetterNumber.map(function (letterNumber, i) {\r\n return letterNumber && codePoints[i] >= 0x4e00 && codePoints[i] <= 0x9fff;\r\n })\r\n : undefined;\r\n return [indicies, classTypes, forbiddenBreakpoints];\r\n };\r\n var Break = /** @class */ (function () {\r\n function Break(codePoints, lineBreak, start, end) {\r\n this.codePoints = codePoints;\r\n this.required = lineBreak === BREAK_MANDATORY;\r\n this.start = start;\r\n this.end = end;\r\n }\r\n Break.prototype.slice = function () {\r\n return fromCodePoint.apply(void 0, this.codePoints.slice(this.start, this.end));\r\n };\r\n return Break;\r\n }());\r\n var LineBreaker = function (str, options) {\r\n var codePoints = toCodePoints(str);\r\n var _a = cssFormattedClasses(codePoints, options), indicies = _a[0], classTypes = _a[1], forbiddenBreakpoints = _a[2];\r\n var length = codePoints.length;\r\n var lastEnd = 0;\r\n var nextIndex = 0;\r\n return {\r\n next: function () {\r\n if (nextIndex >= length) {\r\n return { done: true, value: null };\r\n }\r\n var lineBreak = BREAK_NOT_ALLOWED;\r\n while (nextIndex < length &&\r\n (lineBreak = _lineBreakAtIndex(codePoints, classTypes, indicies, ++nextIndex, forbiddenBreakpoints)) ===\r\n BREAK_NOT_ALLOWED) { }\r\n if (lineBreak !== BREAK_NOT_ALLOWED || nextIndex === length) {\r\n var value = new Break(codePoints, lineBreak, lastEnd, nextIndex);\r\n lastEnd = nextIndex;\r\n return { value: value, done: false };\r\n }\r\n return { done: true, value: null };\r\n },\r\n };\r\n };\n\n // https://www.w3.org/TR/css-syntax-3\r\n var TokenType;\r\n (function (TokenType) {\r\n TokenType[TokenType[\"STRING_TOKEN\"] = 0] = \"STRING_TOKEN\";\r\n TokenType[TokenType[\"BAD_STRING_TOKEN\"] = 1] = \"BAD_STRING_TOKEN\";\r\n TokenType[TokenType[\"LEFT_PARENTHESIS_TOKEN\"] = 2] = \"LEFT_PARENTHESIS_TOKEN\";\r\n TokenType[TokenType[\"RIGHT_PARENTHESIS_TOKEN\"] = 3] = \"RIGHT_PARENTHESIS_TOKEN\";\r\n TokenType[TokenType[\"COMMA_TOKEN\"] = 4] = \"COMMA_TOKEN\";\r\n TokenType[TokenType[\"HASH_TOKEN\"] = 5] = \"HASH_TOKEN\";\r\n TokenType[TokenType[\"DELIM_TOKEN\"] = 6] = \"DELIM_TOKEN\";\r\n TokenType[TokenType[\"AT_KEYWORD_TOKEN\"] = 7] = \"AT_KEYWORD_TOKEN\";\r\n TokenType[TokenType[\"PREFIX_MATCH_TOKEN\"] = 8] = \"PREFIX_MATCH_TOKEN\";\r\n TokenType[TokenType[\"DASH_MATCH_TOKEN\"] = 9] = \"DASH_MATCH_TOKEN\";\r\n TokenType[TokenType[\"INCLUDE_MATCH_TOKEN\"] = 10] = \"INCLUDE_MATCH_TOKEN\";\r\n TokenType[TokenType[\"LEFT_CURLY_BRACKET_TOKEN\"] = 11] = \"LEFT_CURLY_BRACKET_TOKEN\";\r\n TokenType[TokenType[\"RIGHT_CURLY_BRACKET_TOKEN\"] = 12] = \"RIGHT_CURLY_BRACKET_TOKEN\";\r\n TokenType[TokenType[\"SUFFIX_MATCH_TOKEN\"] = 13] = \"SUFFIX_MATCH_TOKEN\";\r\n TokenType[TokenType[\"SUBSTRING_MATCH_TOKEN\"] = 14] = \"SUBSTRING_MATCH_TOKEN\";\r\n TokenType[TokenType[\"DIMENSION_TOKEN\"] = 15] = \"DIMENSION_TOKEN\";\r\n TokenType[TokenType[\"PERCENTAGE_TOKEN\"] = 16] = \"PERCENTAGE_TOKEN\";\r\n TokenType[TokenType[\"NUMBER_TOKEN\"] = 17] = \"NUMBER_TOKEN\";\r\n TokenType[TokenType[\"FUNCTION\"] = 18] = \"FUNCTION\";\r\n TokenType[TokenType[\"FUNCTION_TOKEN\"] = 19] = \"FUNCTION_TOKEN\";\r\n TokenType[TokenType[\"IDENT_TOKEN\"] = 20] = \"IDENT_TOKEN\";\r\n TokenType[TokenType[\"COLUMN_TOKEN\"] = 21] = \"COLUMN_TOKEN\";\r\n TokenType[TokenType[\"URL_TOKEN\"] = 22] = \"URL_TOKEN\";\r\n TokenType[TokenType[\"BAD_URL_TOKEN\"] = 23] = \"BAD_URL_TOKEN\";\r\n TokenType[TokenType[\"CDC_TOKEN\"] = 24] = \"CDC_TOKEN\";\r\n TokenType[TokenType[\"CDO_TOKEN\"] = 25] = \"CDO_TOKEN\";\r\n TokenType[TokenType[\"COLON_TOKEN\"] = 26] = \"COLON_TOKEN\";\r\n TokenType[TokenType[\"SEMICOLON_TOKEN\"] = 27] = \"SEMICOLON_TOKEN\";\r\n TokenType[TokenType[\"LEFT_SQUARE_BRACKET_TOKEN\"] = 28] = \"LEFT_SQUARE_BRACKET_TOKEN\";\r\n TokenType[TokenType[\"RIGHT_SQUARE_BRACKET_TOKEN\"] = 29] = \"RIGHT_SQUARE_BRACKET_TOKEN\";\r\n TokenType[TokenType[\"UNICODE_RANGE_TOKEN\"] = 30] = \"UNICODE_RANGE_TOKEN\";\r\n TokenType[TokenType[\"WHITESPACE_TOKEN\"] = 31] = \"WHITESPACE_TOKEN\";\r\n TokenType[TokenType[\"EOF_TOKEN\"] = 32] = \"EOF_TOKEN\";\r\n })(TokenType || (TokenType = {}));\r\n var FLAG_UNRESTRICTED = 1 << 0;\r\n var FLAG_ID = 1 << 1;\r\n var FLAG_INTEGER = 1 << 2;\r\n var FLAG_NUMBER = 1 << 3;\r\n var LINE_FEED = 0x000a;\r\n var SOLIDUS = 0x002f;\r\n var REVERSE_SOLIDUS = 0x005c;\r\n var CHARACTER_TABULATION = 0x0009;\r\n var SPACE$1 = 0x0020;\r\n var QUOTATION_MARK = 0x0022;\r\n var EQUALS_SIGN = 0x003d;\r\n var NUMBER_SIGN = 0x0023;\r\n var DOLLAR_SIGN = 0x0024;\r\n var PERCENTAGE_SIGN = 0x0025;\r\n var APOSTROPHE = 0x0027;\r\n var LEFT_PARENTHESIS = 0x0028;\r\n var RIGHT_PARENTHESIS = 0x0029;\r\n var LOW_LINE = 0x005f;\r\n var HYPHEN_MINUS = 0x002d;\r\n var EXCLAMATION_MARK = 0x0021;\r\n var LESS_THAN_SIGN = 0x003c;\r\n var GREATER_THAN_SIGN = 0x003e;\r\n var COMMERCIAL_AT = 0x0040;\r\n var LEFT_SQUARE_BRACKET = 0x005b;\r\n var RIGHT_SQUARE_BRACKET = 0x005d;\r\n var CIRCUMFLEX_ACCENT = 0x003d;\r\n var LEFT_CURLY_BRACKET = 0x007b;\r\n var QUESTION_MARK = 0x003f;\r\n var RIGHT_CURLY_BRACKET = 0x007d;\r\n var VERTICAL_LINE = 0x007c;\r\n var TILDE = 0x007e;\r\n var CONTROL = 0x0080;\r\n var REPLACEMENT_CHARACTER = 0xfffd;\r\n var ASTERISK = 0x002a;\r\n var PLUS_SIGN = 0x002b;\r\n var COMMA = 0x002c;\r\n var COLON = 0x003a;\r\n var SEMICOLON = 0x003b;\r\n var FULL_STOP = 0x002e;\r\n var NULL = 0x0000;\r\n var BACKSPACE = 0x0008;\r\n var LINE_TABULATION = 0x000b;\r\n var SHIFT_OUT = 0x000e;\r\n var INFORMATION_SEPARATOR_ONE = 0x001f;\r\n var DELETE = 0x007f;\r\n var EOF = -1;\r\n var ZERO = 0x0030;\r\n var a = 0x0061;\r\n var e = 0x0065;\r\n var f = 0x0066;\r\n var u = 0x0075;\r\n var z = 0x007a;\r\n var A = 0x0041;\r\n var E = 0x0045;\r\n var F = 0x0046;\r\n var U = 0x0055;\r\n var Z = 0x005a;\r\n var isDigit = function (codePoint) { return codePoint >= ZERO && codePoint <= 0x0039; };\r\n var isSurrogateCodePoint = function (codePoint) { return codePoint >= 0xd800 && codePoint <= 0xdfff; };\r\n var isHex = function (codePoint) {\r\n return isDigit(codePoint) || (codePoint >= A && codePoint <= F) || (codePoint >= a && codePoint <= f);\r\n };\r\n var isLowerCaseLetter = function (codePoint) { return codePoint >= a && codePoint <= z; };\r\n var isUpperCaseLetter = function (codePoint) { return codePoint >= A && codePoint <= Z; };\r\n var isLetter = function (codePoint) { return isLowerCaseLetter(codePoint) || isUpperCaseLetter(codePoint); };\r\n var isNonASCIICodePoint = function (codePoint) { return codePoint >= CONTROL; };\r\n var isWhiteSpace = function (codePoint) {\r\n return codePoint === LINE_FEED || codePoint === CHARACTER_TABULATION || codePoint === SPACE$1;\r\n };\r\n var isNameStartCodePoint = function (codePoint) {\r\n return isLetter(codePoint) || isNonASCIICodePoint(codePoint) || codePoint === LOW_LINE;\r\n };\r\n var isNameCodePoint = function (codePoint) {\r\n return isNameStartCodePoint(codePoint) || isDigit(codePoint) || codePoint === HYPHEN_MINUS;\r\n };\r\n var isNonPrintableCodePoint = function (codePoint) {\r\n return ((codePoint >= NULL && codePoint <= BACKSPACE) ||\r\n codePoint === LINE_TABULATION ||\r\n (codePoint >= SHIFT_OUT && codePoint <= INFORMATION_SEPARATOR_ONE) ||\r\n codePoint === DELETE);\r\n };\r\n var isValidEscape = function (c1, c2) {\r\n if (c1 !== REVERSE_SOLIDUS) {\r\n return false;\r\n }\r\n return c2 !== LINE_FEED;\r\n };\r\n var isIdentifierStart = function (c1, c2, c3) {\r\n if (c1 === HYPHEN_MINUS) {\r\n return isNameStartCodePoint(c2) || isValidEscape(c2, c3);\r\n }\r\n else if (isNameStartCodePoint(c1)) {\r\n return true;\r\n }\r\n else if (c1 === REVERSE_SOLIDUS && isValidEscape(c1, c2)) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n var isNumberStart = function (c1, c2, c3) {\r\n if (c1 === PLUS_SIGN || c1 === HYPHEN_MINUS) {\r\n if (isDigit(c2)) {\r\n return true;\r\n }\r\n return c2 === FULL_STOP && isDigit(c3);\r\n }\r\n if (c1 === FULL_STOP) {\r\n return isDigit(c2);\r\n }\r\n return isDigit(c1);\r\n };\r\n var stringToNumber = function (codePoints) {\r\n var c = 0;\r\n var sign = 1;\r\n if (codePoints[c] === PLUS_SIGN || codePoints[c] === HYPHEN_MINUS) {\r\n if (codePoints[c] === HYPHEN_MINUS) {\r\n sign = -1;\r\n }\r\n c++;\r\n }\r\n var integers = [];\r\n while (isDigit(codePoints[c])) {\r\n integers.push(codePoints[c++]);\r\n }\r\n var int = integers.length ? parseInt(fromCodePoint.apply(void 0, integers), 10) : 0;\r\n if (codePoints[c] === FULL_STOP) {\r\n c++;\r\n }\r\n var fraction = [];\r\n while (isDigit(codePoints[c])) {\r\n fraction.push(codePoints[c++]);\r\n }\r\n var fracd = fraction.length;\r\n var frac = fracd ? parseInt(fromCodePoint.apply(void 0, fraction), 10) : 0;\r\n if (codePoints[c] === E || codePoints[c] === e) {\r\n c++;\r\n }\r\n var expsign = 1;\r\n if (codePoints[c] === PLUS_SIGN || codePoints[c] === HYPHEN_MINUS) {\r\n if (codePoints[c] === HYPHEN_MINUS) {\r\n expsign = -1;\r\n }\r\n c++;\r\n }\r\n var exponent = [];\r\n while (isDigit(codePoints[c])) {\r\n exponent.push(codePoints[c++]);\r\n }\r\n var exp = exponent.length ? parseInt(fromCodePoint.apply(void 0, exponent), 10) : 0;\r\n return sign * (int + frac * Math.pow(10, -fracd)) * Math.pow(10, expsign * exp);\r\n };\r\n var LEFT_PARENTHESIS_TOKEN = {\r\n type: TokenType.LEFT_PARENTHESIS_TOKEN\r\n };\r\n var RIGHT_PARENTHESIS_TOKEN = {\r\n type: TokenType.RIGHT_PARENTHESIS_TOKEN\r\n };\r\n var COMMA_TOKEN = { type: TokenType.COMMA_TOKEN };\r\n var SUFFIX_MATCH_TOKEN = { type: TokenType.SUFFIX_MATCH_TOKEN };\r\n var PREFIX_MATCH_TOKEN = { type: TokenType.PREFIX_MATCH_TOKEN };\r\n var COLUMN_TOKEN = { type: TokenType.COLUMN_TOKEN };\r\n var DASH_MATCH_TOKEN = { type: TokenType.DASH_MATCH_TOKEN };\r\n var INCLUDE_MATCH_TOKEN = { type: TokenType.INCLUDE_MATCH_TOKEN };\r\n var LEFT_CURLY_BRACKET_TOKEN = {\r\n type: TokenType.LEFT_CURLY_BRACKET_TOKEN\r\n };\r\n var RIGHT_CURLY_BRACKET_TOKEN = {\r\n type: TokenType.RIGHT_CURLY_BRACKET_TOKEN\r\n };\r\n var SUBSTRING_MATCH_TOKEN = { type: TokenType.SUBSTRING_MATCH_TOKEN };\r\n var BAD_URL_TOKEN = { type: TokenType.BAD_URL_TOKEN };\r\n var BAD_STRING_TOKEN = { type: TokenType.BAD_STRING_TOKEN };\r\n var CDO_TOKEN = { type: TokenType.CDO_TOKEN };\r\n var CDC_TOKEN = { type: TokenType.CDC_TOKEN };\r\n var COLON_TOKEN = { type: TokenType.COLON_TOKEN };\r\n var SEMICOLON_TOKEN = { type: TokenType.SEMICOLON_TOKEN };\r\n var LEFT_SQUARE_BRACKET_TOKEN = {\r\n type: TokenType.LEFT_SQUARE_BRACKET_TOKEN\r\n };\r\n var RIGHT_SQUARE_BRACKET_TOKEN = {\r\n type: TokenType.RIGHT_SQUARE_BRACKET_TOKEN\r\n };\r\n var WHITESPACE_TOKEN = { type: TokenType.WHITESPACE_TOKEN };\r\n var EOF_TOKEN = { type: TokenType.EOF_TOKEN };\r\n var Tokenizer = /** @class */ (function () {\r\n function Tokenizer() {\r\n this._value = [];\r\n }\r\n Tokenizer.prototype.write = function (chunk) {\r\n this._value = this._value.concat(toCodePoints(chunk));\r\n };\r\n Tokenizer.prototype.read = function () {\r\n var tokens = [];\r\n var token = this.consumeToken();\r\n while (token !== EOF_TOKEN) {\r\n tokens.push(token);\r\n token = this.consumeToken();\r\n }\r\n return tokens;\r\n };\r\n Tokenizer.prototype.consumeToken = function () {\r\n var codePoint = this.consumeCodePoint();\r\n switch (codePoint) {\r\n case QUOTATION_MARK:\r\n return this.consumeStringToken(QUOTATION_MARK);\r\n case NUMBER_SIGN:\r\n var c1 = this.peekCodePoint(0);\r\n var c2 = this.peekCodePoint(1);\r\n var c3 = this.peekCodePoint(2);\r\n if (isNameCodePoint(c1) || isValidEscape(c2, c3)) {\r\n var flags = isIdentifierStart(c1, c2, c3) ? FLAG_ID : FLAG_UNRESTRICTED;\r\n var value = this.consumeName();\r\n return { type: TokenType.HASH_TOKEN, value: value, flags: flags };\r\n }\r\n break;\r\n case DOLLAR_SIGN:\r\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\r\n this.consumeCodePoint();\r\n return SUFFIX_MATCH_TOKEN;\r\n }\r\n break;\r\n case APOSTROPHE:\r\n return this.consumeStringToken(APOSTROPHE);\r\n case LEFT_PARENTHESIS:\r\n return LEFT_PARENTHESIS_TOKEN;\r\n case RIGHT_PARENTHESIS:\r\n return RIGHT_PARENTHESIS_TOKEN;\r\n case ASTERISK:\r\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\r\n this.consumeCodePoint();\r\n return SUBSTRING_MATCH_TOKEN;\r\n }\r\n break;\r\n case PLUS_SIGN:\r\n if (isNumberStart(codePoint, this.peekCodePoint(0), this.peekCodePoint(1))) {\r\n this.reconsumeCodePoint(codePoint);\r\n return this.consumeNumericToken();\r\n }\r\n break;\r\n case COMMA:\r\n return COMMA_TOKEN;\r\n case HYPHEN_MINUS:\r\n var e1 = codePoint;\r\n var e2 = this.peekCodePoint(0);\r\n var e3 = this.peekCodePoint(1);\r\n if (isNumberStart(e1, e2, e3)) {\r\n this.reconsumeCodePoint(codePoint);\r\n return this.consumeNumericToken();\r\n }\r\n if (isIdentifierStart(e1, e2, e3)) {\r\n this.reconsumeCodePoint(codePoint);\r\n return this.consumeIdentLikeToken();\r\n }\r\n if (e2 === HYPHEN_MINUS && e3 === GREATER_THAN_SIGN) {\r\n this.consumeCodePoint();\r\n this.consumeCodePoint();\r\n return CDC_TOKEN;\r\n }\r\n break;\r\n case FULL_STOP:\r\n if (isNumberStart(codePoint, this.peekCodePoint(0), this.peekCodePoint(1))) {\r\n this.reconsumeCodePoint(codePoint);\r\n return this.consumeNumericToken();\r\n }\r\n break;\r\n case SOLIDUS:\r\n if (this.peekCodePoint(0) === ASTERISK) {\r\n this.consumeCodePoint();\r\n while (true) {\r\n var c = this.consumeCodePoint();\r\n if (c === ASTERISK) {\r\n c = this.consumeCodePoint();\r\n if (c === SOLIDUS) {\r\n return this.consumeToken();\r\n }\r\n }\r\n if (c === EOF) {\r\n return this.consumeToken();\r\n }\r\n }\r\n }\r\n break;\r\n case COLON:\r\n return COLON_TOKEN;\r\n case SEMICOLON:\r\n return SEMICOLON_TOKEN;\r\n case LESS_THAN_SIGN:\r\n if (this.peekCodePoint(0) === EXCLAMATION_MARK &&\r\n this.peekCodePoint(1) === HYPHEN_MINUS &&\r\n this.peekCodePoint(2) === HYPHEN_MINUS) {\r\n this.consumeCodePoint();\r\n this.consumeCodePoint();\r\n return CDO_TOKEN;\r\n }\r\n break;\r\n case COMMERCIAL_AT:\r\n var a1 = this.peekCodePoint(0);\r\n var a2 = this.peekCodePoint(1);\r\n var a3 = this.peekCodePoint(2);\r\n if (isIdentifierStart(a1, a2, a3)) {\r\n var value = this.consumeName();\r\n return { type: TokenType.AT_KEYWORD_TOKEN, value: value };\r\n }\r\n break;\r\n case LEFT_SQUARE_BRACKET:\r\n return LEFT_SQUARE_BRACKET_TOKEN;\r\n case REVERSE_SOLIDUS:\r\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\r\n this.reconsumeCodePoint(codePoint);\r\n return this.consumeIdentLikeToken();\r\n }\r\n break;\r\n case RIGHT_SQUARE_BRACKET:\r\n return RIGHT_SQUARE_BRACKET_TOKEN;\r\n case CIRCUMFLEX_ACCENT:\r\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\r\n this.consumeCodePoint();\r\n return PREFIX_MATCH_TOKEN;\r\n }\r\n break;\r\n case LEFT_CURLY_BRACKET:\r\n return LEFT_CURLY_BRACKET_TOKEN;\r\n case RIGHT_CURLY_BRACKET:\r\n return RIGHT_CURLY_BRACKET_TOKEN;\r\n case u:\r\n case U:\r\n var u1 = this.peekCodePoint(0);\r\n var u2 = this.peekCodePoint(1);\r\n if (u1 === PLUS_SIGN && (isHex(u2) || u2 === QUESTION_MARK)) {\r\n this.consumeCodePoint();\r\n this.consumeUnicodeRangeToken();\r\n }\r\n this.reconsumeCodePoint(codePoint);\r\n return this.consumeIdentLikeToken();\r\n case VERTICAL_LINE:\r\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\r\n this.consumeCodePoint();\r\n return DASH_MATCH_TOKEN;\r\n }\r\n if (this.peekCodePoint(0) === VERTICAL_LINE) {\r\n this.consumeCodePoint();\r\n return COLUMN_TOKEN;\r\n }\r\n break;\r\n case TILDE:\r\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\r\n this.consumeCodePoint();\r\n return INCLUDE_MATCH_TOKEN;\r\n }\r\n break;\r\n case EOF:\r\n return EOF_TOKEN;\r\n }\r\n if (isWhiteSpace(codePoint)) {\r\n this.consumeWhiteSpace();\r\n return WHITESPACE_TOKEN;\r\n }\r\n if (isDigit(codePoint)) {\r\n this.reconsumeCodePoint(codePoint);\r\n return this.consumeNumericToken();\r\n }\r\n if (isNameStartCodePoint(codePoint)) {\r\n this.reconsumeCodePoint(codePoint);\r\n return this.consumeIdentLikeToken();\r\n }\r\n return { type: TokenType.DELIM_TOKEN, value: fromCodePoint(codePoint) };\r\n };\r\n Tokenizer.prototype.consumeCodePoint = function () {\r\n var value = this._value.shift();\r\n return typeof value === 'undefined' ? -1 : value;\r\n };\r\n Tokenizer.prototype.reconsumeCodePoint = function (codePoint) {\r\n this._value.unshift(codePoint);\r\n };\r\n Tokenizer.prototype.peekCodePoint = function (delta) {\r\n if (delta >= this._value.length) {\r\n return -1;\r\n }\r\n return this._value[delta];\r\n };\r\n Tokenizer.prototype.consumeUnicodeRangeToken = function () {\r\n var digits = [];\r\n var codePoint = this.consumeCodePoint();\r\n while (isHex(codePoint) && digits.length < 6) {\r\n digits.push(codePoint);\r\n codePoint = this.consumeCodePoint();\r\n }\r\n var questionMarks = false;\r\n while (codePoint === QUESTION_MARK && digits.length < 6) {\r\n digits.push(codePoint);\r\n codePoint = this.consumeCodePoint();\r\n questionMarks = true;\r\n }\r\n if (questionMarks) {\r\n var start_1 = parseInt(fromCodePoint.apply(void 0, digits.map(function (digit) { return (digit === QUESTION_MARK ? ZERO : digit); })), 16);\r\n var end = parseInt(fromCodePoint.apply(void 0, digits.map(function (digit) { return (digit === QUESTION_MARK ? F : digit); })), 16);\r\n return { type: TokenType.UNICODE_RANGE_TOKEN, start: start_1, end: end };\r\n }\r\n var start = parseInt(fromCodePoint.apply(void 0, digits), 16);\r\n if (this.peekCodePoint(0) === HYPHEN_MINUS && isHex(this.peekCodePoint(1))) {\r\n this.consumeCodePoint();\r\n codePoint = this.consumeCodePoint();\r\n var endDigits = [];\r\n while (isHex(codePoint) && endDigits.length < 6) {\r\n endDigits.push(codePoint);\r\n codePoint = this.consumeCodePoint();\r\n }\r\n var end = parseInt(fromCodePoint.apply(void 0, endDigits), 16);\r\n return { type: TokenType.UNICODE_RANGE_TOKEN, start: start, end: end };\r\n }\r\n else {\r\n return { type: TokenType.UNICODE_RANGE_TOKEN, start: start, end: start };\r\n }\r\n };\r\n Tokenizer.prototype.consumeIdentLikeToken = function () {\r\n var value = this.consumeName();\r\n if (value.toLowerCase() === 'url' && this.peekCodePoint(0) === LEFT_PARENTHESIS) {\r\n this.consumeCodePoint();\r\n return this.consumeUrlToken();\r\n }\r\n else if (this.peekCodePoint(0) === LEFT_PARENTHESIS) {\r\n this.consumeCodePoint();\r\n return { type: TokenType.FUNCTION_TOKEN, value: value };\r\n }\r\n return { type: TokenType.IDENT_TOKEN, value: value };\r\n };\r\n Tokenizer.prototype.consumeUrlToken = function () {\r\n var value = [];\r\n this.consumeWhiteSpace();\r\n if (this.peekCodePoint(0) === EOF) {\r\n return { type: TokenType.URL_TOKEN, value: '' };\r\n }\r\n var next = this.peekCodePoint(0);\r\n if (next === APOSTROPHE || next === QUOTATION_MARK) {\r\n var stringToken = this.consumeStringToken(this.consumeCodePoint());\r\n if (stringToken.type === TokenType.STRING_TOKEN) {\r\n this.consumeWhiteSpace();\r\n if (this.peekCodePoint(0) === EOF || this.peekCodePoint(0) === RIGHT_PARENTHESIS) {\r\n this.consumeCodePoint();\r\n return { type: TokenType.URL_TOKEN, value: stringToken.value };\r\n }\r\n }\r\n this.consumeBadUrlRemnants();\r\n return BAD_URL_TOKEN;\r\n }\r\n while (true) {\r\n var codePoint = this.consumeCodePoint();\r\n if (codePoint === EOF || codePoint === RIGHT_PARENTHESIS) {\r\n return { type: TokenType.URL_TOKEN, value: fromCodePoint.apply(void 0, value) };\r\n }\r\n else if (isWhiteSpace(codePoint)) {\r\n this.consumeWhiteSpace();\r\n if (this.peekCodePoint(0) === EOF || this.peekCodePoint(0) === RIGHT_PARENTHESIS) {\r\n this.consumeCodePoint();\r\n return { type: TokenType.URL_TOKEN, value: fromCodePoint.apply(void 0, value) };\r\n }\r\n this.consumeBadUrlRemnants();\r\n return BAD_URL_TOKEN;\r\n }\r\n else if (codePoint === QUOTATION_MARK ||\r\n codePoint === APOSTROPHE ||\r\n codePoint === LEFT_PARENTHESIS ||\r\n isNonPrintableCodePoint(codePoint)) {\r\n this.consumeBadUrlRemnants();\r\n return BAD_URL_TOKEN;\r\n }\r\n else if (codePoint === REVERSE_SOLIDUS) {\r\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\r\n value.push(this.consumeEscapedCodePoint());\r\n }\r\n else {\r\n this.consumeBadUrlRemnants();\r\n return BAD_URL_TOKEN;\r\n }\r\n }\r\n else {\r\n value.push(codePoint);\r\n }\r\n }\r\n };\r\n Tokenizer.prototype.consumeWhiteSpace = function () {\r\n while (isWhiteSpace(this.peekCodePoint(0))) {\r\n this.consumeCodePoint();\r\n }\r\n };\r\n Tokenizer.prototype.consumeBadUrlRemnants = function () {\r\n while (true) {\r\n var codePoint = this.consumeCodePoint();\r\n if (codePoint === RIGHT_PARENTHESIS || codePoint === EOF) {\r\n return;\r\n }\r\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\r\n this.consumeEscapedCodePoint();\r\n }\r\n }\r\n };\r\n Tokenizer.prototype.consumeStringSlice = function (count) {\r\n var SLICE_STACK_SIZE = 60000;\r\n var value = '';\r\n while (count > 0) {\r\n var amount = Math.min(SLICE_STACK_SIZE, count);\r\n value += fromCodePoint.apply(void 0, this._value.splice(0, amount));\r\n count -= amount;\r\n }\r\n this._value.shift();\r\n return value;\r\n };\r\n Tokenizer.prototype.consumeStringToken = function (endingCodePoint) {\r\n var value = '';\r\n var i = 0;\r\n do {\r\n var codePoint = this._value[i];\r\n if (codePoint === EOF || codePoint === undefined || codePoint === endingCodePoint) {\r\n value += this.consumeStringSlice(i);\r\n return { type: TokenType.STRING_TOKEN, value: value };\r\n }\r\n if (codePoint === LINE_FEED) {\r\n this._value.splice(0, i);\r\n return BAD_STRING_TOKEN;\r\n }\r\n if (codePoint === REVERSE_SOLIDUS) {\r\n var next = this._value[i + 1];\r\n if (next !== EOF && next !== undefined) {\r\n if (next === LINE_FEED) {\r\n value += this.consumeStringSlice(i);\r\n i = -1;\r\n this._value.shift();\r\n }\r\n else if (isValidEscape(codePoint, next)) {\r\n value += this.consumeStringSlice(i);\r\n value += fromCodePoint(this.consumeEscapedCodePoint());\r\n i = -1;\r\n }\r\n }\r\n }\r\n i++;\r\n } while (true);\r\n };\r\n Tokenizer.prototype.consumeNumber = function () {\r\n var repr = [];\r\n var type = FLAG_INTEGER;\r\n var c1 = this.peekCodePoint(0);\r\n if (c1 === PLUS_SIGN || c1 === HYPHEN_MINUS) {\r\n repr.push(this.consumeCodePoint());\r\n }\r\n while (isDigit(this.peekCodePoint(0))) {\r\n repr.push(this.consumeCodePoint());\r\n }\r\n c1 = this.peekCodePoint(0);\r\n var c2 = this.peekCodePoint(1);\r\n if (c1 === FULL_STOP && isDigit(c2)) {\r\n repr.push(this.consumeCodePoint(), this.consumeCodePoint());\r\n type = FLAG_NUMBER;\r\n while (isDigit(this.peekCodePoint(0))) {\r\n repr.push(this.consumeCodePoint());\r\n }\r\n }\r\n c1 = this.peekCodePoint(0);\r\n c2 = this.peekCodePoint(1);\r\n var c3 = this.peekCodePoint(2);\r\n if ((c1 === E || c1 === e) && (((c2 === PLUS_SIGN || c2 === HYPHEN_MINUS) && isDigit(c3)) || isDigit(c2))) {\r\n repr.push(this.consumeCodePoint(), this.consumeCodePoint());\r\n type = FLAG_NUMBER;\r\n while (isDigit(this.peekCodePoint(0))) {\r\n repr.push(this.consumeCodePoint());\r\n }\r\n }\r\n return [stringToNumber(repr), type];\r\n };\r\n Tokenizer.prototype.consumeNumericToken = function () {\r\n var _a = this.consumeNumber(), number = _a[0], flags = _a[1];\r\n var c1 = this.peekCodePoint(0);\r\n var c2 = this.peekCodePoint(1);\r\n var c3 = this.peekCodePoint(2);\r\n if (isIdentifierStart(c1, c2, c3)) {\r\n var unit = this.consumeName();\r\n return { type: TokenType.DIMENSION_TOKEN, number: number, flags: flags, unit: unit };\r\n }\r\n if (c1 === PERCENTAGE_SIGN) {\r\n this.consumeCodePoint();\r\n return { type: TokenType.PERCENTAGE_TOKEN, number: number, flags: flags };\r\n }\r\n return { type: TokenType.NUMBER_TOKEN, number: number, flags: flags };\r\n };\r\n Tokenizer.prototype.consumeEscapedCodePoint = function () {\r\n var codePoint = this.consumeCodePoint();\r\n if (isHex(codePoint)) {\r\n var hex = fromCodePoint(codePoint);\r\n while (isHex(this.peekCodePoint(0)) && hex.length < 6) {\r\n hex += fromCodePoint(this.consumeCodePoint());\r\n }\r\n if (isWhiteSpace(this.peekCodePoint(0))) {\r\n this.consumeCodePoint();\r\n }\r\n var hexCodePoint = parseInt(hex, 16);\r\n if (hexCodePoint === 0 || isSurrogateCodePoint(hexCodePoint) || hexCodePoint > 0x10ffff) {\r\n return REPLACEMENT_CHARACTER;\r\n }\r\n return hexCodePoint;\r\n }\r\n if (codePoint === EOF) {\r\n return REPLACEMENT_CHARACTER;\r\n }\r\n return codePoint;\r\n };\r\n Tokenizer.prototype.consumeName = function () {\r\n var result = '';\r\n while (true) {\r\n var codePoint = this.consumeCodePoint();\r\n if (isNameCodePoint(codePoint)) {\r\n result += fromCodePoint(codePoint);\r\n }\r\n else if (isValidEscape(codePoint, this.peekCodePoint(0))) {\r\n result += fromCodePoint(this.consumeEscapedCodePoint());\r\n }\r\n else {\r\n this.reconsumeCodePoint(codePoint);\r\n return result;\r\n }\r\n }\r\n };\r\n return Tokenizer;\r\n }());\n\n var Parser = /** @class */ (function () {\r\n function Parser(tokens) {\r\n this._tokens = tokens;\r\n }\r\n Parser.create = function (value) {\r\n var tokenizer = new Tokenizer();\r\n tokenizer.write(value);\r\n return new Parser(tokenizer.read());\r\n };\r\n Parser.parseValue = function (value) {\r\n return Parser.create(value).parseComponentValue();\r\n };\r\n Parser.parseValues = function (value) {\r\n return Parser.create(value).parseComponentValues();\r\n };\r\n Parser.prototype.parseComponentValue = function () {\r\n var token = this.consumeToken();\r\n while (token.type === TokenType.WHITESPACE_TOKEN) {\r\n token = this.consumeToken();\r\n }\r\n if (token.type === TokenType.EOF_TOKEN) {\r\n throw new SyntaxError(\"Error parsing CSS component value, unexpected EOF\");\r\n }\r\n this.reconsumeToken(token);\r\n var value = this.consumeComponentValue();\r\n do {\r\n token = this.consumeToken();\r\n } while (token.type === TokenType.WHITESPACE_TOKEN);\r\n if (token.type === TokenType.EOF_TOKEN) {\r\n return value;\r\n }\r\n throw new SyntaxError(\"Error parsing CSS component value, multiple values found when expecting only one\");\r\n };\r\n Parser.prototype.parseComponentValues = function () {\r\n var values = [];\r\n while (true) {\r\n var value = this.consumeComponentValue();\r\n if (value.type === TokenType.EOF_TOKEN) {\r\n return values;\r\n }\r\n values.push(value);\r\n values.push();\r\n }\r\n };\r\n Parser.prototype.consumeComponentValue = function () {\r\n var token = this.consumeToken();\r\n switch (token.type) {\r\n case TokenType.LEFT_CURLY_BRACKET_TOKEN:\r\n case TokenType.LEFT_SQUARE_BRACKET_TOKEN:\r\n case TokenType.LEFT_PARENTHESIS_TOKEN:\r\n return this.consumeSimpleBlock(token.type);\r\n case TokenType.FUNCTION_TOKEN:\r\n return this.consumeFunction(token);\r\n }\r\n return token;\r\n };\r\n Parser.prototype.consumeSimpleBlock = function (type) {\r\n var block = { type: type, values: [] };\r\n var token = this.consumeToken();\r\n while (true) {\r\n if (token.type === TokenType.EOF_TOKEN || isEndingTokenFor(token, type)) {\r\n return block;\r\n }\r\n this.reconsumeToken(token);\r\n block.values.push(this.consumeComponentValue());\r\n token = this.consumeToken();\r\n }\r\n };\r\n Parser.prototype.consumeFunction = function (functionToken) {\r\n var cssFunction = {\r\n name: functionToken.value,\r\n values: [],\r\n type: TokenType.FUNCTION\r\n };\r\n while (true) {\r\n var token = this.consumeToken();\r\n if (token.type === TokenType.EOF_TOKEN || token.type === TokenType.RIGHT_PARENTHESIS_TOKEN) {\r\n return cssFunction;\r\n }\r\n this.reconsumeToken(token);\r\n cssFunction.values.push(this.consumeComponentValue());\r\n }\r\n };\r\n Parser.prototype.consumeToken = function () {\r\n var token = this._tokens.shift();\r\n return typeof token === 'undefined' ? EOF_TOKEN : token;\r\n };\r\n Parser.prototype.reconsumeToken = function (token) {\r\n this._tokens.unshift(token);\r\n };\r\n return Parser;\r\n }());\r\n var isDimensionToken = function (token) { return token.type === TokenType.DIMENSION_TOKEN; };\r\n var isNumberToken = function (token) { return token.type === TokenType.NUMBER_TOKEN; };\r\n var isIdentToken = function (token) { return token.type === TokenType.IDENT_TOKEN; };\r\n var isStringToken = function (token) { return token.type === TokenType.STRING_TOKEN; };\r\n var isIdentWithValue = function (token, value) {\r\n return isIdentToken(token) && token.value === value;\r\n };\r\n var nonWhiteSpace = function (token) { return token.type !== TokenType.WHITESPACE_TOKEN; };\r\n var nonFunctionArgSeparator = function (token) {\r\n return token.type !== TokenType.WHITESPACE_TOKEN && token.type !== TokenType.COMMA_TOKEN;\r\n };\r\n var parseFunctionArgs = function (tokens) {\r\n var args = [];\r\n var arg = [];\r\n tokens.forEach(function (token) {\r\n if (token.type === TokenType.COMMA_TOKEN) {\r\n if (arg.length === 0) {\r\n throw new Error(\"Error parsing function args, zero tokens for arg\");\r\n }\r\n args.push(arg);\r\n arg = [];\r\n return;\r\n }\r\n if (token.type !== TokenType.WHITESPACE_TOKEN) {\r\n arg.push(token);\r\n }\r\n });\r\n if (arg.length) {\r\n args.push(arg);\r\n }\r\n return args;\r\n };\r\n var isEndingTokenFor = function (token, type) {\r\n if (type === TokenType.LEFT_CURLY_BRACKET_TOKEN && token.type === TokenType.RIGHT_CURLY_BRACKET_TOKEN) {\r\n return true;\r\n }\r\n if (type === TokenType.LEFT_SQUARE_BRACKET_TOKEN && token.type === TokenType.RIGHT_SQUARE_BRACKET_TOKEN) {\r\n return true;\r\n }\r\n return type === TokenType.LEFT_PARENTHESIS_TOKEN && token.type === TokenType.RIGHT_PARENTHESIS_TOKEN;\r\n };\n\n var isLength = function (token) {\r\n return token.type === TokenType.NUMBER_TOKEN || token.type === TokenType.DIMENSION_TOKEN;\r\n };\n\n var isLengthPercentage = function (token) {\r\n return token.type === TokenType.PERCENTAGE_TOKEN || isLength(token);\r\n };\r\n var parseLengthPercentageTuple = function (tokens) {\r\n return tokens.length > 1 ? [tokens[0], tokens[1]] : [tokens[0]];\r\n };\r\n var ZERO_LENGTH = {\r\n type: TokenType.NUMBER_TOKEN,\r\n number: 0,\r\n flags: FLAG_INTEGER\r\n };\r\n var FIFTY_PERCENT = {\r\n type: TokenType.PERCENTAGE_TOKEN,\r\n number: 50,\r\n flags: FLAG_INTEGER\r\n };\r\n var HUNDRED_PERCENT = {\r\n type: TokenType.PERCENTAGE_TOKEN,\r\n number: 100,\r\n flags: FLAG_INTEGER\r\n };\r\n var getAbsoluteValueForTuple = function (tuple, width, height) {\r\n var x = tuple[0], y = tuple[1];\r\n return [getAbsoluteValue(x, width), getAbsoluteValue(typeof y !== 'undefined' ? y : x, height)];\r\n };\r\n var getAbsoluteValue = function (token, parent) {\r\n if (token.type === TokenType.PERCENTAGE_TOKEN) {\r\n return (token.number / 100) * parent;\r\n }\r\n if (isDimensionToken(token)) {\r\n switch (token.unit) {\r\n case 'rem':\r\n case 'em':\r\n return 16 * token.number; // TODO use correct font-size\r\n case 'px':\r\n default:\r\n return token.number;\r\n }\r\n }\r\n return token.number;\r\n };\n\n var DEG = 'deg';\r\n var GRAD = 'grad';\r\n var RAD = 'rad';\r\n var TURN = 'turn';\r\n var angle = {\r\n name: 'angle',\r\n parse: function (value) {\r\n if (value.type === TokenType.DIMENSION_TOKEN) {\r\n switch (value.unit) {\r\n case DEG:\r\n return (Math.PI * value.number) / 180;\r\n case GRAD:\r\n return (Math.PI / 200) * value.number;\r\n case RAD:\r\n return value.number;\r\n case TURN:\r\n return Math.PI * 2 * value.number;\r\n }\r\n }\r\n throw new Error(\"Unsupported angle type\");\r\n }\r\n };\r\n var isAngle = function (value) {\r\n if (value.type === TokenType.DIMENSION_TOKEN) {\r\n if (value.unit === DEG || value.unit === GRAD || value.unit === RAD || value.unit === TURN) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n var parseNamedSide = function (tokens) {\r\n var sideOrCorner = tokens\r\n .filter(isIdentToken)\r\n .map(function (ident) { return ident.value; })\r\n .join(' ');\r\n switch (sideOrCorner) {\r\n case 'to bottom right':\r\n case 'to right bottom':\r\n case 'left top':\r\n case 'top left':\r\n return [ZERO_LENGTH, ZERO_LENGTH];\r\n case 'to top':\r\n case 'bottom':\r\n return deg(0);\r\n case 'to bottom left':\r\n case 'to left bottom':\r\n case 'right top':\r\n case 'top right':\r\n return [ZERO_LENGTH, HUNDRED_PERCENT];\r\n case 'to right':\r\n case 'left':\r\n return deg(90);\r\n case 'to top left':\r\n case 'to left top':\r\n case 'right bottom':\r\n case 'bottom right':\r\n return [HUNDRED_PERCENT, HUNDRED_PERCENT];\r\n case 'to bottom':\r\n case 'top':\r\n return deg(180);\r\n case 'to top right':\r\n case 'to right top':\r\n case 'left bottom':\r\n case 'bottom left':\r\n return [HUNDRED_PERCENT, ZERO_LENGTH];\r\n case 'to left':\r\n case 'right':\r\n return deg(270);\r\n }\r\n return 0;\r\n };\r\n var deg = function (deg) { return (Math.PI * deg) / 180; };\n\n var color = {\r\n name: 'color',\r\n parse: function (value) {\r\n if (value.type === TokenType.FUNCTION) {\r\n var colorFunction = SUPPORTED_COLOR_FUNCTIONS[value.name];\r\n if (typeof colorFunction === 'undefined') {\r\n throw new Error(\"Attempting to parse an unsupported color function \\\"\" + value.name + \"\\\"\");\r\n }\r\n return colorFunction(value.values);\r\n }\r\n if (value.type === TokenType.HASH_TOKEN) {\r\n if (value.value.length === 3) {\r\n var r = value.value.substring(0, 1);\r\n var g = value.value.substring(1, 2);\r\n var b = value.value.substring(2, 3);\r\n return pack(parseInt(r + r, 16), parseInt(g + g, 16), parseInt(b + b, 16), 1);\r\n }\r\n if (value.value.length === 4) {\r\n var r = value.value.substring(0, 1);\r\n var g = value.value.substring(1, 2);\r\n var b = value.value.substring(2, 3);\r\n var a = value.value.substring(3, 4);\r\n return pack(parseInt(r + r, 16), parseInt(g + g, 16), parseInt(b + b, 16), parseInt(a + a, 16) / 255);\r\n }\r\n if (value.value.length === 6) {\r\n var r = value.value.substring(0, 2);\r\n var g = value.value.substring(2, 4);\r\n var b = value.value.substring(4, 6);\r\n return pack(parseInt(r, 16), parseInt(g, 16), parseInt(b, 16), 1);\r\n }\r\n if (value.value.length === 8) {\r\n var r = value.value.substring(0, 2);\r\n var g = value.value.substring(2, 4);\r\n var b = value.value.substring(4, 6);\r\n var a = value.value.substring(6, 8);\r\n return pack(parseInt(r, 16), parseInt(g, 16), parseInt(b, 16), parseInt(a, 16) / 255);\r\n }\r\n }\r\n if (value.type === TokenType.IDENT_TOKEN) {\r\n var namedColor = COLORS[value.value.toUpperCase()];\r\n if (typeof namedColor !== 'undefined') {\r\n return namedColor;\r\n }\r\n }\r\n return COLORS.TRANSPARENT;\r\n }\r\n };\r\n var isTransparent = function (color) { return (0xff & color) === 0; };\r\n var asString = function (color) {\r\n var alpha = 0xff & color;\r\n var blue = 0xff & (color >> 8);\r\n var green = 0xff & (color >> 16);\r\n var red = 0xff & (color >> 24);\r\n return alpha < 255 ? \"rgba(\" + red + \",\" + green + \",\" + blue + \",\" + alpha / 255 + \")\" : \"rgb(\" + red + \",\" + green + \",\" + blue + \")\";\r\n };\r\n var pack = function (r, g, b, a) {\r\n return ((r << 24) | (g << 16) | (b << 8) | (Math.round(a * 255) << 0)) >>> 0;\r\n };\r\n var getTokenColorValue = function (token, i) {\r\n if (token.type === TokenType.NUMBER_TOKEN) {\r\n return token.number;\r\n }\r\n if (token.type === TokenType.PERCENTAGE_TOKEN) {\r\n var max = i === 3 ? 1 : 255;\r\n return i === 3 ? (token.number / 100) * max : Math.round((token.number / 100) * max);\r\n }\r\n return 0;\r\n };\r\n var rgb = function (args) {\r\n var tokens = args.filter(nonFunctionArgSeparator);\r\n if (tokens.length === 3) {\r\n var _a = tokens.map(getTokenColorValue), r = _a[0], g = _a[1], b = _a[2];\r\n return pack(r, g, b, 1);\r\n }\r\n if (tokens.length === 4) {\r\n var _b = tokens.map(getTokenColorValue), r = _b[0], g = _b[1], b = _b[2], a = _b[3];\r\n return pack(r, g, b, a);\r\n }\r\n return 0;\r\n };\r\n function hue2rgb(t1, t2, hue) {\r\n if (hue < 0) {\r\n hue += 1;\r\n }\r\n if (hue >= 1) {\r\n hue -= 1;\r\n }\r\n if (hue < 1 / 6) {\r\n return (t2 - t1) * hue * 6 + t1;\r\n }\r\n else if (hue < 1 / 2) {\r\n return t2;\r\n }\r\n else if (hue < 2 / 3) {\r\n return (t2 - t1) * 6 * (2 / 3 - hue) + t1;\r\n }\r\n else {\r\n return t1;\r\n }\r\n }\r\n var hsl = function (args) {\r\n var tokens = args.filter(nonFunctionArgSeparator);\r\n var hue = tokens[0], saturation = tokens[1], lightness = tokens[2], alpha = tokens[3];\r\n var h = (hue.type === TokenType.NUMBER_TOKEN ? deg(hue.number) : angle.parse(hue)) / (Math.PI * 2);\r\n var s = isLengthPercentage(saturation) ? saturation.number / 100 : 0;\r\n var l = isLengthPercentage(lightness) ? lightness.number / 100 : 0;\r\n var a = typeof alpha !== 'undefined' && isLengthPercentage(alpha) ? getAbsoluteValue(alpha, 1) : 1;\r\n if (s === 0) {\r\n return pack(l * 255, l * 255, l * 255, 1);\r\n }\r\n var t2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\r\n var t1 = l * 2 - t2;\r\n var r = hue2rgb(t1, t2, h + 1 / 3);\r\n var g = hue2rgb(t1, t2, h);\r\n var b = hue2rgb(t1, t2, h - 1 / 3);\r\n return pack(r * 255, g * 255, b * 255, a);\r\n };\r\n var SUPPORTED_COLOR_FUNCTIONS = {\r\n hsl: hsl,\r\n hsla: hsl,\r\n rgb: rgb,\r\n rgba: rgb\r\n };\r\n var COLORS = {\r\n ALICEBLUE: 0xf0f8ffff,\r\n ANTIQUEWHITE: 0xfaebd7ff,\r\n AQUA: 0x00ffffff,\r\n AQUAMARINE: 0x7fffd4ff,\r\n AZURE: 0xf0ffffff,\r\n BEIGE: 0xf5f5dcff,\r\n BISQUE: 0xffe4c4ff,\r\n BLACK: 0x000000ff,\r\n BLANCHEDALMOND: 0xffebcdff,\r\n BLUE: 0x0000ffff,\r\n BLUEVIOLET: 0x8a2be2ff,\r\n BROWN: 0xa52a2aff,\r\n BURLYWOOD: 0xdeb887ff,\r\n CADETBLUE: 0x5f9ea0ff,\r\n CHARTREUSE: 0x7fff00ff,\r\n CHOCOLATE: 0xd2691eff,\r\n CORAL: 0xff7f50ff,\r\n CORNFLOWERBLUE: 0x6495edff,\r\n CORNSILK: 0xfff8dcff,\r\n CRIMSON: 0xdc143cff,\r\n CYAN: 0x00ffffff,\r\n DARKBLUE: 0x00008bff,\r\n DARKCYAN: 0x008b8bff,\r\n DARKGOLDENROD: 0xb886bbff,\r\n DARKGRAY: 0xa9a9a9ff,\r\n DARKGREEN: 0x006400ff,\r\n DARKGREY: 0xa9a9a9ff,\r\n DARKKHAKI: 0xbdb76bff,\r\n DARKMAGENTA: 0x8b008bff,\r\n DARKOLIVEGREEN: 0x556b2fff,\r\n DARKORANGE: 0xff8c00ff,\r\n DARKORCHID: 0x9932ccff,\r\n DARKRED: 0x8b0000ff,\r\n DARKSALMON: 0xe9967aff,\r\n DARKSEAGREEN: 0x8fbc8fff,\r\n DARKSLATEBLUE: 0x483d8bff,\r\n DARKSLATEGRAY: 0x2f4f4fff,\r\n DARKSLATEGREY: 0x2f4f4fff,\r\n DARKTURQUOISE: 0x00ced1ff,\r\n DARKVIOLET: 0x9400d3ff,\r\n DEEPPINK: 0xff1493ff,\r\n DEEPSKYBLUE: 0x00bfffff,\r\n DIMGRAY: 0x696969ff,\r\n DIMGREY: 0x696969ff,\r\n DODGERBLUE: 0x1e90ffff,\r\n FIREBRICK: 0xb22222ff,\r\n FLORALWHITE: 0xfffaf0ff,\r\n FORESTGREEN: 0x228b22ff,\r\n FUCHSIA: 0xff00ffff,\r\n GAINSBORO: 0xdcdcdcff,\r\n GHOSTWHITE: 0xf8f8ffff,\r\n GOLD: 0xffd700ff,\r\n GOLDENROD: 0xdaa520ff,\r\n GRAY: 0x808080ff,\r\n GREEN: 0x008000ff,\r\n GREENYELLOW: 0xadff2fff,\r\n GREY: 0x808080ff,\r\n HONEYDEW: 0xf0fff0ff,\r\n HOTPINK: 0xff69b4ff,\r\n INDIANRED: 0xcd5c5cff,\r\n INDIGO: 0x4b0082ff,\r\n IVORY: 0xfffff0ff,\r\n KHAKI: 0xf0e68cff,\r\n LAVENDER: 0xe6e6faff,\r\n LAVENDERBLUSH: 0xfff0f5ff,\r\n LAWNGREEN: 0x7cfc00ff,\r\n LEMONCHIFFON: 0xfffacdff,\r\n LIGHTBLUE: 0xadd8e6ff,\r\n LIGHTCORAL: 0xf08080ff,\r\n LIGHTCYAN: 0xe0ffffff,\r\n LIGHTGOLDENRODYELLOW: 0xfafad2ff,\r\n LIGHTGRAY: 0xd3d3d3ff,\r\n LIGHTGREEN: 0x90ee90ff,\r\n LIGHTGREY: 0xd3d3d3ff,\r\n LIGHTPINK: 0xffb6c1ff,\r\n LIGHTSALMON: 0xffa07aff,\r\n LIGHTSEAGREEN: 0x20b2aaff,\r\n LIGHTSKYBLUE: 0x87cefaff,\r\n LIGHTSLATEGRAY: 0x778899ff,\r\n LIGHTSLATEGREY: 0x778899ff,\r\n LIGHTSTEELBLUE: 0xb0c4deff,\r\n LIGHTYELLOW: 0xffffe0ff,\r\n LIME: 0x00ff00ff,\r\n LIMEGREEN: 0x32cd32ff,\r\n LINEN: 0xfaf0e6ff,\r\n MAGENTA: 0xff00ffff,\r\n MAROON: 0x800000ff,\r\n MEDIUMAQUAMARINE: 0x66cdaaff,\r\n MEDIUMBLUE: 0x0000cdff,\r\n MEDIUMORCHID: 0xba55d3ff,\r\n MEDIUMPURPLE: 0x9370dbff,\r\n MEDIUMSEAGREEN: 0x3cb371ff,\r\n MEDIUMSLATEBLUE: 0x7b68eeff,\r\n MEDIUMSPRINGGREEN: 0x00fa9aff,\r\n MEDIUMTURQUOISE: 0x48d1ccff,\r\n MEDIUMVIOLETRED: 0xc71585ff,\r\n MIDNIGHTBLUE: 0x191970ff,\r\n MINTCREAM: 0xf5fffaff,\r\n MISTYROSE: 0xffe4e1ff,\r\n MOCCASIN: 0xffe4b5ff,\r\n NAVAJOWHITE: 0xffdeadff,\r\n NAVY: 0x000080ff,\r\n OLDLACE: 0xfdf5e6ff,\r\n OLIVE: 0x808000ff,\r\n OLIVEDRAB: 0x6b8e23ff,\r\n ORANGE: 0xffa500ff,\r\n ORANGERED: 0xff4500ff,\r\n ORCHID: 0xda70d6ff,\r\n PALEGOLDENROD: 0xeee8aaff,\r\n PALEGREEN: 0x98fb98ff,\r\n PALETURQUOISE: 0xafeeeeff,\r\n PALEVIOLETRED: 0xdb7093ff,\r\n PAPAYAWHIP: 0xffefd5ff,\r\n PEACHPUFF: 0xffdab9ff,\r\n PERU: 0xcd853fff,\r\n PINK: 0xffc0cbff,\r\n PLUM: 0xdda0ddff,\r\n POWDERBLUE: 0xb0e0e6ff,\r\n PURPLE: 0x800080ff,\r\n REBECCAPURPLE: 0x663399ff,\r\n RED: 0xff0000ff,\r\n ROSYBROWN: 0xbc8f8fff,\r\n ROYALBLUE: 0x4169e1ff,\r\n SADDLEBROWN: 0x8b4513ff,\r\n SALMON: 0xfa8072ff,\r\n SANDYBROWN: 0xf4a460ff,\r\n SEAGREEN: 0x2e8b57ff,\r\n SEASHELL: 0xfff5eeff,\r\n SIENNA: 0xa0522dff,\r\n SILVER: 0xc0c0c0ff,\r\n SKYBLUE: 0x87ceebff,\r\n SLATEBLUE: 0x6a5acdff,\r\n SLATEGRAY: 0x708090ff,\r\n SLATEGREY: 0x708090ff,\r\n SNOW: 0xfffafaff,\r\n SPRINGGREEN: 0x00ff7fff,\r\n STEELBLUE: 0x4682b4ff,\r\n TAN: 0xd2b48cff,\r\n TEAL: 0x008080ff,\r\n THISTLE: 0xd8bfd8ff,\r\n TOMATO: 0xff6347ff,\r\n TRANSPARENT: 0x00000000,\r\n TURQUOISE: 0x40e0d0ff,\r\n VIOLET: 0xee82eeff,\r\n WHEAT: 0xf5deb3ff,\r\n WHITE: 0xffffffff,\r\n WHITESMOKE: 0xf5f5f5ff,\r\n YELLOW: 0xffff00ff,\r\n YELLOWGREEN: 0x9acd32ff\r\n };\n\n var PropertyDescriptorParsingType;\r\n (function (PropertyDescriptorParsingType) {\r\n PropertyDescriptorParsingType[PropertyDescriptorParsingType[\"VALUE\"] = 0] = \"VALUE\";\r\n PropertyDescriptorParsingType[PropertyDescriptorParsingType[\"LIST\"] = 1] = \"LIST\";\r\n PropertyDescriptorParsingType[PropertyDescriptorParsingType[\"IDENT_VALUE\"] = 2] = \"IDENT_VALUE\";\r\n PropertyDescriptorParsingType[PropertyDescriptorParsingType[\"TYPE_VALUE\"] = 3] = \"TYPE_VALUE\";\r\n PropertyDescriptorParsingType[PropertyDescriptorParsingType[\"TOKEN_VALUE\"] = 4] = \"TOKEN_VALUE\";\r\n })(PropertyDescriptorParsingType || (PropertyDescriptorParsingType = {}));\n\n var BACKGROUND_CLIP;\r\n (function (BACKGROUND_CLIP) {\r\n BACKGROUND_CLIP[BACKGROUND_CLIP[\"BORDER_BOX\"] = 0] = \"BORDER_BOX\";\r\n BACKGROUND_CLIP[BACKGROUND_CLIP[\"PADDING_BOX\"] = 1] = \"PADDING_BOX\";\r\n BACKGROUND_CLIP[BACKGROUND_CLIP[\"CONTENT_BOX\"] = 2] = \"CONTENT_BOX\";\r\n })(BACKGROUND_CLIP || (BACKGROUND_CLIP = {}));\r\n var backgroundClip = {\r\n name: 'background-clip',\r\n initialValue: 'border-box',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) {\r\n return tokens.map(function (token) {\r\n if (isIdentToken(token)) {\r\n switch (token.value) {\r\n case 'padding-box':\r\n return BACKGROUND_CLIP.PADDING_BOX;\r\n case 'content-box':\r\n return BACKGROUND_CLIP.CONTENT_BOX;\r\n }\r\n }\r\n return BACKGROUND_CLIP.BORDER_BOX;\r\n });\r\n }\r\n };\n\n var backgroundColor = {\r\n name: \"background-color\",\r\n initialValue: 'transparent',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.TYPE_VALUE,\r\n format: 'color'\r\n };\n\n var parseColorStop = function (args) {\r\n var color$1 = color.parse(args[0]);\r\n var stop = args[1];\r\n return stop && isLengthPercentage(stop) ? { color: color$1, stop: stop } : { color: color$1, stop: null };\r\n };\r\n var processColorStops = function (stops, lineLength) {\r\n var first = stops[0];\r\n var last = stops[stops.length - 1];\r\n if (first.stop === null) {\r\n first.stop = ZERO_LENGTH;\r\n }\r\n if (last.stop === null) {\r\n last.stop = HUNDRED_PERCENT;\r\n }\r\n var processStops = [];\r\n var previous = 0;\r\n for (var i = 0; i < stops.length; i++) {\r\n var stop_1 = stops[i].stop;\r\n if (stop_1 !== null) {\r\n var absoluteValue = getAbsoluteValue(stop_1, lineLength);\r\n if (absoluteValue > previous) {\r\n processStops.push(absoluteValue);\r\n }\r\n else {\r\n processStops.push(previous);\r\n }\r\n previous = absoluteValue;\r\n }\r\n else {\r\n processStops.push(null);\r\n }\r\n }\r\n var gapBegin = null;\r\n for (var i = 0; i < processStops.length; i++) {\r\n var stop_2 = processStops[i];\r\n if (stop_2 === null) {\r\n if (gapBegin === null) {\r\n gapBegin = i;\r\n }\r\n }\r\n else if (gapBegin !== null) {\r\n var gapLength = i - gapBegin;\r\n var beforeGap = processStops[gapBegin - 1];\r\n var gapValue = (stop_2 - beforeGap) / (gapLength + 1);\r\n for (var g = 1; g <= gapLength; g++) {\r\n processStops[gapBegin + g - 1] = gapValue * g;\r\n }\r\n gapBegin = null;\r\n }\r\n }\r\n return stops.map(function (_a, i) {\r\n var color = _a.color;\r\n return { color: color, stop: Math.max(Math.min(1, processStops[i] / lineLength), 0) };\r\n });\r\n };\r\n var getAngleFromCorner = function (corner, width, height) {\r\n var centerX = width / 2;\r\n var centerY = height / 2;\r\n var x = getAbsoluteValue(corner[0], width) - centerX;\r\n var y = centerY - getAbsoluteValue(corner[1], height);\r\n return (Math.atan2(y, x) + Math.PI * 2) % (Math.PI * 2);\r\n };\r\n var calculateGradientDirection = function (angle, width, height) {\r\n var radian = typeof angle === 'number' ? angle : getAngleFromCorner(angle, width, height);\r\n var lineLength = Math.abs(width * Math.sin(radian)) + Math.abs(height * Math.cos(radian));\r\n var halfWidth = width / 2;\r\n var halfHeight = height / 2;\r\n var halfLineLength = lineLength / 2;\r\n var yDiff = Math.sin(radian - Math.PI / 2) * halfLineLength;\r\n var xDiff = Math.cos(radian - Math.PI / 2) * halfLineLength;\r\n return [lineLength, halfWidth - xDiff, halfWidth + xDiff, halfHeight - yDiff, halfHeight + yDiff];\r\n };\r\n var distance = function (a, b) { return Math.sqrt(a * a + b * b); };\r\n var findCorner = function (width, height, x, y, closest) {\r\n var corners = [[0, 0], [0, height], [width, 0], [width, height]];\r\n return corners.reduce(function (stat, corner) {\r\n var cx = corner[0], cy = corner[1];\r\n var d = distance(x - cx, y - cy);\r\n if (closest ? d < stat.optimumDistance : d > stat.optimumDistance) {\r\n return {\r\n optimumCorner: corner,\r\n optimumDistance: d\r\n };\r\n }\r\n return stat;\r\n }, {\r\n optimumDistance: closest ? Infinity : -Infinity,\r\n optimumCorner: null\r\n }).optimumCorner;\r\n };\r\n var calculateRadius = function (gradient, x, y, width, height) {\r\n var rx = 0;\r\n var ry = 0;\r\n switch (gradient.size) {\r\n case CSSRadialExtent.CLOSEST_SIDE:\r\n // The ending shape is sized so that that it exactly meets the side of the gradient box closest to the gradient’s center.\r\n // If the shape is an ellipse, it exactly meets the closest side in each dimension.\r\n if (gradient.shape === CSSRadialShape.CIRCLE) {\r\n rx = ry = Math.min(Math.abs(x), Math.abs(x - width), Math.abs(y), Math.abs(y - height));\r\n }\r\n else if (gradient.shape === CSSRadialShape.ELLIPSE) {\r\n rx = Math.min(Math.abs(x), Math.abs(x - width));\r\n ry = Math.min(Math.abs(y), Math.abs(y - height));\r\n }\r\n break;\r\n case CSSRadialExtent.CLOSEST_CORNER:\r\n // The ending shape is sized so that that it passes through the corner of the gradient box closest to the gradient’s center.\r\n // If the shape is an ellipse, the ending shape is given the same aspect-ratio it would have if closest-side were specified.\r\n if (gradient.shape === CSSRadialShape.CIRCLE) {\r\n rx = ry = Math.min(distance(x, y), distance(x, y - height), distance(x - width, y), distance(x - width, y - height));\r\n }\r\n else if (gradient.shape === CSSRadialShape.ELLIPSE) {\r\n // Compute the ratio ry/rx (which is to be the same as for \"closest-side\")\r\n var c = Math.min(Math.abs(y), Math.abs(y - height)) / Math.min(Math.abs(x), Math.abs(x - width));\r\n var _a = findCorner(width, height, x, y, true), cx = _a[0], cy = _a[1];\r\n rx = distance(cx - x, (cy - y) / c);\r\n ry = c * rx;\r\n }\r\n break;\r\n case CSSRadialExtent.FARTHEST_SIDE:\r\n // Same as closest-side, except the ending shape is sized based on the farthest side(s)\r\n if (gradient.shape === CSSRadialShape.CIRCLE) {\r\n rx = ry = Math.max(Math.abs(x), Math.abs(x - width), Math.abs(y), Math.abs(y - height));\r\n }\r\n else if (gradient.shape === CSSRadialShape.ELLIPSE) {\r\n rx = Math.max(Math.abs(x), Math.abs(x - width));\r\n ry = Math.max(Math.abs(y), Math.abs(y - height));\r\n }\r\n break;\r\n case CSSRadialExtent.FARTHEST_CORNER:\r\n // Same as closest-corner, except the ending shape is sized based on the farthest corner.\r\n // If the shape is an ellipse, the ending shape is given the same aspect ratio it would have if farthest-side were specified.\r\n if (gradient.shape === CSSRadialShape.CIRCLE) {\r\n rx = ry = Math.max(distance(x, y), distance(x, y - height), distance(x - width, y), distance(x - width, y - height));\r\n }\r\n else if (gradient.shape === CSSRadialShape.ELLIPSE) {\r\n // Compute the ratio ry/rx (which is to be the same as for \"farthest-side\")\r\n var c = Math.max(Math.abs(y), Math.abs(y - height)) / Math.max(Math.abs(x), Math.abs(x - width));\r\n var _b = findCorner(width, height, x, y, false), cx = _b[0], cy = _b[1];\r\n rx = distance(cx - x, (cy - y) / c);\r\n ry = c * rx;\r\n }\r\n break;\r\n }\r\n if (Array.isArray(gradient.size)) {\r\n rx = getAbsoluteValue(gradient.size[0], width);\r\n ry = gradient.size.length === 2 ? getAbsoluteValue(gradient.size[1], height) : rx;\r\n }\r\n return [rx, ry];\r\n };\n\n var linearGradient = function (tokens) {\r\n var angle$1 = deg(180);\r\n var stops = [];\r\n parseFunctionArgs(tokens).forEach(function (arg, i) {\r\n if (i === 0) {\r\n var firstToken = arg[0];\r\n if (firstToken.type === TokenType.IDENT_TOKEN && firstToken.value === 'to') {\r\n angle$1 = parseNamedSide(arg);\r\n return;\r\n }\r\n else if (isAngle(firstToken)) {\r\n angle$1 = angle.parse(firstToken);\r\n return;\r\n }\r\n }\r\n var colorStop = parseColorStop(arg);\r\n stops.push(colorStop);\r\n });\r\n return { angle: angle$1, stops: stops, type: CSSImageType.LINEAR_GRADIENT };\r\n };\n\n var prefixLinearGradient = function (tokens) {\r\n var angle$1 = deg(180);\r\n var stops = [];\r\n parseFunctionArgs(tokens).forEach(function (arg, i) {\r\n if (i === 0) {\r\n var firstToken = arg[0];\r\n if (firstToken.type === TokenType.IDENT_TOKEN &&\r\n ['top', 'left', 'right', 'bottom'].indexOf(firstToken.value) !== -1) {\r\n angle$1 = parseNamedSide(arg);\r\n return;\r\n }\r\n else if (isAngle(firstToken)) {\r\n angle$1 = (angle.parse(firstToken) + deg(270)) % deg(360);\r\n return;\r\n }\r\n }\r\n var colorStop = parseColorStop(arg);\r\n stops.push(colorStop);\r\n });\r\n return {\r\n angle: angle$1,\r\n stops: stops,\r\n type: CSSImageType.LINEAR_GRADIENT\r\n };\r\n };\n\n var testRangeBounds = function (document) {\r\n var TEST_HEIGHT = 123;\r\n if (document.createRange) {\r\n var range = document.createRange();\r\n if (range.getBoundingClientRect) {\r\n var testElement = document.createElement('boundtest');\r\n testElement.style.height = TEST_HEIGHT + \"px\";\r\n testElement.style.display = 'block';\r\n document.body.appendChild(testElement);\r\n range.selectNode(testElement);\r\n var rangeBounds = range.getBoundingClientRect();\r\n var rangeHeight = Math.round(rangeBounds.height);\r\n document.body.removeChild(testElement);\r\n if (rangeHeight === TEST_HEIGHT) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n var testCORS = function () { return typeof new Image().crossOrigin !== 'undefined'; };\r\n var testResponseType = function () { return typeof new XMLHttpRequest().responseType === 'string'; };\r\n var testSVG = function (document) {\r\n var img = new Image();\r\n var canvas = document.createElement('canvas');\r\n var ctx = canvas.getContext('2d');\r\n if (!ctx) {\r\n return false;\r\n }\r\n img.src = \"data:image/svg+xml,\";\r\n try {\r\n ctx.drawImage(img, 0, 0);\r\n canvas.toDataURL();\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n var isGreenPixel = function (data) {\r\n return data[0] === 0 && data[1] === 255 && data[2] === 0 && data[3] === 255;\r\n };\r\n var testForeignObject = function (document) {\r\n var canvas = document.createElement('canvas');\r\n var size = 100;\r\n canvas.width = size;\r\n canvas.height = size;\r\n var ctx = canvas.getContext('2d');\r\n if (!ctx) {\r\n return Promise.reject(false);\r\n }\r\n ctx.fillStyle = 'rgb(0, 255, 0)';\r\n ctx.fillRect(0, 0, size, size);\r\n var img = new Image();\r\n var greenImageSrc = canvas.toDataURL();\r\n img.src = greenImageSrc;\r\n var svg = createForeignObjectSVG(size, size, 0, 0, img);\r\n ctx.fillStyle = 'red';\r\n ctx.fillRect(0, 0, size, size);\r\n return loadSerializedSVG(svg)\r\n .then(function (img) {\r\n ctx.drawImage(img, 0, 0);\r\n var data = ctx.getImageData(0, 0, size, size).data;\r\n ctx.fillStyle = 'red';\r\n ctx.fillRect(0, 0, size, size);\r\n var node = document.createElement('div');\r\n node.style.backgroundImage = \"url(\" + greenImageSrc + \")\";\r\n node.style.height = size + \"px\";\r\n // Firefox 55 does not render inline tags\r\n return isGreenPixel(data)\r\n ? loadSerializedSVG(createForeignObjectSVG(size, size, 0, 0, node))\r\n : Promise.reject(false);\r\n })\r\n .then(function (img) {\r\n ctx.drawImage(img, 0, 0);\r\n // Edge does not render background-images\r\n return isGreenPixel(ctx.getImageData(0, 0, size, size).data);\r\n })\r\n .catch(function () { return false; });\r\n };\r\n var createForeignObjectSVG = function (width, height, x, y, node) {\r\n var xmlns = 'http://www.w3.org/2000/svg';\r\n var svg = document.createElementNS(xmlns, 'svg');\r\n var foreignObject = document.createElementNS(xmlns, 'foreignObject');\r\n svg.setAttributeNS(null, 'width', width.toString());\r\n svg.setAttributeNS(null, 'height', height.toString());\r\n foreignObject.setAttributeNS(null, 'width', '100%');\r\n foreignObject.setAttributeNS(null, 'height', '100%');\r\n foreignObject.setAttributeNS(null, 'x', x.toString());\r\n foreignObject.setAttributeNS(null, 'y', y.toString());\r\n foreignObject.setAttributeNS(null, 'externalResourcesRequired', 'true');\r\n svg.appendChild(foreignObject);\r\n foreignObject.appendChild(node);\r\n return svg;\r\n };\r\n var loadSerializedSVG = function (svg) {\r\n return new Promise(function (resolve, reject) {\r\n var img = new Image();\r\n img.onload = function () { return resolve(img); };\r\n img.onerror = reject;\r\n img.src = \"data:image/svg+xml;charset=utf-8,\" + encodeURIComponent(new XMLSerializer().serializeToString(svg));\r\n });\r\n };\r\n var FEATURES = {\r\n get SUPPORT_RANGE_BOUNDS() {\r\n var value = testRangeBounds(document);\r\n Object.defineProperty(FEATURES, 'SUPPORT_RANGE_BOUNDS', { value: value });\r\n return value;\r\n },\r\n get SUPPORT_SVG_DRAWING() {\r\n var value = testSVG(document);\r\n Object.defineProperty(FEATURES, 'SUPPORT_SVG_DRAWING', { value: value });\r\n return value;\r\n },\r\n get SUPPORT_FOREIGNOBJECT_DRAWING() {\r\n var value = typeof Array.from === 'function' && typeof window.fetch === 'function'\r\n ? testForeignObject(document)\r\n : Promise.resolve(false);\r\n Object.defineProperty(FEATURES, 'SUPPORT_FOREIGNOBJECT_DRAWING', { value: value });\r\n return value;\r\n },\r\n get SUPPORT_CORS_IMAGES() {\r\n var value = testCORS();\r\n Object.defineProperty(FEATURES, 'SUPPORT_CORS_IMAGES', { value: value });\r\n return value;\r\n },\r\n get SUPPORT_RESPONSE_TYPE() {\r\n var value = testResponseType();\r\n Object.defineProperty(FEATURES, 'SUPPORT_RESPONSE_TYPE', { value: value });\r\n return value;\r\n },\r\n get SUPPORT_CORS_XHR() {\r\n var value = 'withCredentials' in new XMLHttpRequest();\r\n Object.defineProperty(FEATURES, 'SUPPORT_CORS_XHR', { value: value });\r\n return value;\r\n }\r\n };\n\n var Logger = /** @class */ (function () {\r\n function Logger(_a) {\r\n var id = _a.id, enabled = _a.enabled;\r\n this.id = id;\r\n this.enabled = enabled;\r\n this.start = Date.now();\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n Logger.prototype.debug = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (this.enabled) {\r\n // eslint-disable-next-line no-console\r\n if (typeof window !== 'undefined' && window.console && typeof console.debug === 'function') {\r\n // eslint-disable-next-line no-console\r\n console.debug.apply(console, [this.id, this.getTime() + \"ms\"].concat(args));\r\n }\r\n else {\r\n this.info.apply(this, args);\r\n }\r\n }\r\n };\r\n Logger.prototype.getTime = function () {\r\n return Date.now() - this.start;\r\n };\r\n Logger.create = function (options) {\r\n Logger.instances[options.id] = new Logger(options);\r\n };\r\n Logger.destroy = function (id) {\r\n delete Logger.instances[id];\r\n };\r\n Logger.getInstance = function (id) {\r\n var instance = Logger.instances[id];\r\n if (typeof instance === 'undefined') {\r\n throw new Error(\"No logger instance found with id \" + id);\r\n }\r\n return instance;\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n Logger.prototype.info = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (this.enabled) {\r\n // eslint-disable-next-line no-console\r\n if (typeof window !== 'undefined' && window.console && typeof console.info === 'function') {\r\n // eslint-disable-next-line no-console\r\n console.info.apply(console, [this.id, this.getTime() + \"ms\"].concat(args));\r\n }\r\n }\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n Logger.prototype.error = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (this.enabled) {\r\n // eslint-disable-next-line no-console\r\n if (typeof window !== 'undefined' && window.console && typeof console.error === 'function') {\r\n // eslint-disable-next-line no-console\r\n console.error.apply(console, [this.id, this.getTime() + \"ms\"].concat(args));\r\n }\r\n else {\r\n this.info.apply(this, args);\r\n }\r\n }\r\n };\r\n Logger.instances = {};\r\n return Logger;\r\n }());\n\n var CacheStorage = /** @class */ (function () {\r\n function CacheStorage() {\r\n }\r\n CacheStorage.create = function (name, options) {\r\n return (CacheStorage._caches[name] = new Cache(name, options));\r\n };\r\n CacheStorage.destroy = function (name) {\r\n delete CacheStorage._caches[name];\r\n };\r\n CacheStorage.open = function (name) {\r\n var cache = CacheStorage._caches[name];\r\n if (typeof cache !== 'undefined') {\r\n return cache;\r\n }\r\n throw new Error(\"Cache with key \\\"\" + name + \"\\\" not found\");\r\n };\r\n CacheStorage.getOrigin = function (url) {\r\n var link = CacheStorage._link;\r\n if (!link) {\r\n return 'about:blank';\r\n }\r\n link.href = url;\r\n link.href = link.href; // IE9, LOL! - http://jsfiddle.net/niklasvh/2e48b/\r\n return link.protocol + link.hostname + link.port;\r\n };\r\n CacheStorage.isSameOrigin = function (src) {\r\n return CacheStorage.getOrigin(src) === CacheStorage._origin;\r\n };\r\n CacheStorage.setContext = function (window) {\r\n CacheStorage._link = window.document.createElement('a');\r\n CacheStorage._origin = CacheStorage.getOrigin(window.location.href);\r\n };\r\n CacheStorage.getInstance = function () {\r\n var current = CacheStorage._current;\r\n if (current === null) {\r\n throw new Error(\"No cache instance attached\");\r\n }\r\n return current;\r\n };\r\n CacheStorage.attachInstance = function (cache) {\r\n CacheStorage._current = cache;\r\n };\r\n CacheStorage.detachInstance = function () {\r\n CacheStorage._current = null;\r\n };\r\n CacheStorage._caches = {};\r\n CacheStorage._origin = 'about:blank';\r\n CacheStorage._current = null;\r\n return CacheStorage;\r\n }());\r\n var Cache = /** @class */ (function () {\r\n function Cache(id, options) {\r\n this.id = id;\r\n this._options = options;\r\n this._cache = {};\r\n }\r\n Cache.prototype.addImage = function (src) {\r\n var result = Promise.resolve();\r\n if (this.has(src)) {\r\n return result;\r\n }\r\n if (isBlobImage(src) || isRenderable(src)) {\r\n this._cache[src] = this.loadImage(src);\r\n return result;\r\n }\r\n return result;\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n Cache.prototype.match = function (src) {\r\n return this._cache[src];\r\n };\r\n Cache.prototype.loadImage = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var isSameOrigin, useCORS, useProxy, src;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n isSameOrigin = CacheStorage.isSameOrigin(key);\r\n useCORS = !isInlineImage(key) && this._options.useCORS === true && FEATURES.SUPPORT_CORS_IMAGES && !isSameOrigin;\r\n useProxy = !isInlineImage(key) &&\r\n !isSameOrigin &&\r\n typeof this._options.proxy === 'string' &&\r\n FEATURES.SUPPORT_CORS_XHR &&\r\n !useCORS;\r\n if (!isSameOrigin && this._options.allowTaint === false && !isInlineImage(key) && !useProxy && !useCORS) {\r\n return [2 /*return*/];\r\n }\r\n src = key;\r\n if (!useProxy) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.proxy(src)];\r\n case 1:\r\n src = _a.sent();\r\n _a.label = 2;\r\n case 2:\r\n Logger.getInstance(this.id).debug(\"Added image \" + key.substring(0, 256));\r\n return [4 /*yield*/, new Promise(function (resolve, reject) {\r\n var img = new Image();\r\n img.onload = function () { return resolve(img); };\r\n img.onerror = reject;\r\n //ios safari 10.3 taints canvas with data urls unless crossOrigin is set to anonymous\r\n if (isInlineBase64Image(src) || useCORS) {\r\n img.crossOrigin = 'anonymous';\r\n }\r\n img.src = src;\r\n if (img.complete === true) {\r\n // Inline XML images may fail to parse, throwing an Error later on\r\n setTimeout(function () { return resolve(img); }, 500);\r\n }\r\n if (_this._options.imageTimeout > 0) {\r\n setTimeout(function () { return reject(\"Timed out (\" + _this._options.imageTimeout + \"ms) loading image\"); }, _this._options.imageTimeout);\r\n }\r\n })];\r\n case 3: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n };\r\n Cache.prototype.has = function (key) {\r\n return typeof this._cache[key] !== 'undefined';\r\n };\r\n Cache.prototype.keys = function () {\r\n return Promise.resolve(Object.keys(this._cache));\r\n };\r\n Cache.prototype.proxy = function (src) {\r\n var _this = this;\r\n var proxy = this._options.proxy;\r\n if (!proxy) {\r\n throw new Error('No proxy defined');\r\n }\r\n var key = src.substring(0, 256);\r\n return new Promise(function (resolve, reject) {\r\n var responseType = FEATURES.SUPPORT_RESPONSE_TYPE ? 'blob' : 'text';\r\n var xhr = new XMLHttpRequest();\r\n xhr.onload = function () {\r\n if (xhr.status === 200) {\r\n if (responseType === 'text') {\r\n resolve(xhr.response);\r\n }\r\n else {\r\n var reader_1 = new FileReader();\r\n reader_1.addEventListener('load', function () { return resolve(reader_1.result); }, false);\r\n reader_1.addEventListener('error', function (e) { return reject(e); }, false);\r\n reader_1.readAsDataURL(xhr.response);\r\n }\r\n }\r\n else {\r\n reject(\"Failed to proxy resource \" + key + \" with status code \" + xhr.status);\r\n }\r\n };\r\n xhr.onerror = reject;\r\n xhr.open('GET', proxy + \"?url=\" + encodeURIComponent(src) + \"&responseType=\" + responseType);\r\n if (responseType !== 'text' && xhr instanceof XMLHttpRequest) {\r\n xhr.responseType = responseType;\r\n }\r\n if (_this._options.imageTimeout) {\r\n var timeout_1 = _this._options.imageTimeout;\r\n xhr.timeout = timeout_1;\r\n xhr.ontimeout = function () { return reject(\"Timed out (\" + timeout_1 + \"ms) proxying \" + key); };\r\n }\r\n xhr.send();\r\n });\r\n };\r\n return Cache;\r\n }());\r\n var INLINE_SVG = /^data:image\\/svg\\+xml/i;\r\n var INLINE_BASE64 = /^data:image\\/.*;base64,/i;\r\n var INLINE_IMG = /^data:image\\/.*/i;\r\n var isRenderable = function (src) { return FEATURES.SUPPORT_SVG_DRAWING || !isSVG(src); };\r\n var isInlineImage = function (src) { return INLINE_IMG.test(src); };\r\n var isInlineBase64Image = function (src) { return INLINE_BASE64.test(src); };\r\n var isBlobImage = function (src) { return src.substr(0, 4) === 'blob'; };\r\n var isSVG = function (src) { return src.substr(-3).toLowerCase() === 'svg' || INLINE_SVG.test(src); };\n\n var webkitGradient = function (tokens) {\r\n var angle = deg(180);\r\n var stops = [];\r\n var type = CSSImageType.LINEAR_GRADIENT;\r\n var shape = CSSRadialShape.CIRCLE;\r\n var size = CSSRadialExtent.FARTHEST_CORNER;\r\n var position = [];\r\n parseFunctionArgs(tokens).forEach(function (arg, i) {\r\n var firstToken = arg[0];\r\n if (i === 0) {\r\n if (isIdentToken(firstToken) && firstToken.value === 'linear') {\r\n type = CSSImageType.LINEAR_GRADIENT;\r\n return;\r\n }\r\n else if (isIdentToken(firstToken) && firstToken.value === 'radial') {\r\n type = CSSImageType.RADIAL_GRADIENT;\r\n return;\r\n }\r\n }\r\n if (firstToken.type === TokenType.FUNCTION) {\r\n if (firstToken.name === 'from') {\r\n var color$1 = color.parse(firstToken.values[0]);\r\n stops.push({ stop: ZERO_LENGTH, color: color$1 });\r\n }\r\n else if (firstToken.name === 'to') {\r\n var color$1 = color.parse(firstToken.values[0]);\r\n stops.push({ stop: HUNDRED_PERCENT, color: color$1 });\r\n }\r\n else if (firstToken.name === 'color-stop') {\r\n var values = firstToken.values.filter(nonFunctionArgSeparator);\r\n if (values.length === 2) {\r\n var color$1 = color.parse(values[1]);\r\n var stop_1 = values[0];\r\n if (isNumberToken(stop_1)) {\r\n stops.push({\r\n stop: { type: TokenType.PERCENTAGE_TOKEN, number: stop_1.number * 100, flags: stop_1.flags },\r\n color: color$1\r\n });\r\n }\r\n }\r\n }\r\n }\r\n });\r\n return type === CSSImageType.LINEAR_GRADIENT\r\n ? {\r\n angle: (angle + deg(180)) % deg(360),\r\n stops: stops,\r\n type: type\r\n }\r\n : { size: size, shape: shape, stops: stops, position: position, type: type };\r\n };\n\n var CLOSEST_SIDE = 'closest-side';\r\n var FARTHEST_SIDE = 'farthest-side';\r\n var CLOSEST_CORNER = 'closest-corner';\r\n var FARTHEST_CORNER = 'farthest-corner';\r\n var CIRCLE = 'circle';\r\n var ELLIPSE = 'ellipse';\r\n var COVER = 'cover';\r\n var CONTAIN = 'contain';\r\n var radialGradient = function (tokens) {\r\n var shape = CSSRadialShape.CIRCLE;\r\n var size = CSSRadialExtent.FARTHEST_CORNER;\r\n var stops = [];\r\n var position = [];\r\n parseFunctionArgs(tokens).forEach(function (arg, i) {\r\n var isColorStop = true;\r\n if (i === 0) {\r\n var isAtPosition_1 = false;\r\n isColorStop = arg.reduce(function (acc, token) {\r\n if (isAtPosition_1) {\r\n if (isIdentToken(token)) {\r\n switch (token.value) {\r\n case 'center':\r\n position.push(FIFTY_PERCENT);\r\n return acc;\r\n case 'top':\r\n case 'left':\r\n position.push(ZERO_LENGTH);\r\n return acc;\r\n case 'right':\r\n case 'bottom':\r\n position.push(HUNDRED_PERCENT);\r\n return acc;\r\n }\r\n }\r\n else if (isLengthPercentage(token) || isLength(token)) {\r\n position.push(token);\r\n }\r\n }\r\n else if (isIdentToken(token)) {\r\n switch (token.value) {\r\n case CIRCLE:\r\n shape = CSSRadialShape.CIRCLE;\r\n return false;\r\n case ELLIPSE:\r\n shape = CSSRadialShape.ELLIPSE;\r\n return false;\r\n case 'at':\r\n isAtPosition_1 = true;\r\n return false;\r\n case CLOSEST_SIDE:\r\n size = CSSRadialExtent.CLOSEST_SIDE;\r\n return false;\r\n case COVER:\r\n case FARTHEST_SIDE:\r\n size = CSSRadialExtent.FARTHEST_SIDE;\r\n return false;\r\n case CONTAIN:\r\n case CLOSEST_CORNER:\r\n size = CSSRadialExtent.CLOSEST_CORNER;\r\n return false;\r\n case FARTHEST_CORNER:\r\n size = CSSRadialExtent.FARTHEST_CORNER;\r\n return false;\r\n }\r\n }\r\n else if (isLength(token) || isLengthPercentage(token)) {\r\n if (!Array.isArray(size)) {\r\n size = [];\r\n }\r\n size.push(token);\r\n return false;\r\n }\r\n return acc;\r\n }, isColorStop);\r\n }\r\n if (isColorStop) {\r\n var colorStop = parseColorStop(arg);\r\n stops.push(colorStop);\r\n }\r\n });\r\n return { size: size, shape: shape, stops: stops, position: position, type: CSSImageType.RADIAL_GRADIENT };\r\n };\n\n var prefixRadialGradient = function (tokens) {\r\n var shape = CSSRadialShape.CIRCLE;\r\n var size = CSSRadialExtent.FARTHEST_CORNER;\r\n var stops = [];\r\n var position = [];\r\n parseFunctionArgs(tokens).forEach(function (arg, i) {\r\n var isColorStop = true;\r\n if (i === 0) {\r\n isColorStop = arg.reduce(function (acc, token) {\r\n if (isIdentToken(token)) {\r\n switch (token.value) {\r\n case 'center':\r\n position.push(FIFTY_PERCENT);\r\n return false;\r\n case 'top':\r\n case 'left':\r\n position.push(ZERO_LENGTH);\r\n return false;\r\n case 'right':\r\n case 'bottom':\r\n position.push(HUNDRED_PERCENT);\r\n return false;\r\n }\r\n }\r\n else if (isLengthPercentage(token) || isLength(token)) {\r\n position.push(token);\r\n return false;\r\n }\r\n return acc;\r\n }, isColorStop);\r\n }\r\n else if (i === 1) {\r\n isColorStop = arg.reduce(function (acc, token) {\r\n if (isIdentToken(token)) {\r\n switch (token.value) {\r\n case CIRCLE:\r\n shape = CSSRadialShape.CIRCLE;\r\n return false;\r\n case ELLIPSE:\r\n shape = CSSRadialShape.ELLIPSE;\r\n return false;\r\n case CONTAIN:\r\n case CLOSEST_SIDE:\r\n size = CSSRadialExtent.CLOSEST_SIDE;\r\n return false;\r\n case FARTHEST_SIDE:\r\n size = CSSRadialExtent.FARTHEST_SIDE;\r\n return false;\r\n case CLOSEST_CORNER:\r\n size = CSSRadialExtent.CLOSEST_CORNER;\r\n return false;\r\n case COVER:\r\n case FARTHEST_CORNER:\r\n size = CSSRadialExtent.FARTHEST_CORNER;\r\n return false;\r\n }\r\n }\r\n else if (isLength(token) || isLengthPercentage(token)) {\r\n if (!Array.isArray(size)) {\r\n size = [];\r\n }\r\n size.push(token);\r\n return false;\r\n }\r\n return acc;\r\n }, isColorStop);\r\n }\r\n if (isColorStop) {\r\n var colorStop = parseColorStop(arg);\r\n stops.push(colorStop);\r\n }\r\n });\r\n return { size: size, shape: shape, stops: stops, position: position, type: CSSImageType.RADIAL_GRADIENT };\r\n };\n\n var CSSImageType;\r\n (function (CSSImageType) {\r\n CSSImageType[CSSImageType[\"URL\"] = 0] = \"URL\";\r\n CSSImageType[CSSImageType[\"LINEAR_GRADIENT\"] = 1] = \"LINEAR_GRADIENT\";\r\n CSSImageType[CSSImageType[\"RADIAL_GRADIENT\"] = 2] = \"RADIAL_GRADIENT\";\r\n })(CSSImageType || (CSSImageType = {}));\r\n var isLinearGradient = function (background) {\r\n return background.type === CSSImageType.LINEAR_GRADIENT;\r\n };\r\n var isRadialGradient = function (background) {\r\n return background.type === CSSImageType.RADIAL_GRADIENT;\r\n };\r\n var CSSRadialShape;\r\n (function (CSSRadialShape) {\r\n CSSRadialShape[CSSRadialShape[\"CIRCLE\"] = 0] = \"CIRCLE\";\r\n CSSRadialShape[CSSRadialShape[\"ELLIPSE\"] = 1] = \"ELLIPSE\";\r\n })(CSSRadialShape || (CSSRadialShape = {}));\r\n var CSSRadialExtent;\r\n (function (CSSRadialExtent) {\r\n CSSRadialExtent[CSSRadialExtent[\"CLOSEST_SIDE\"] = 0] = \"CLOSEST_SIDE\";\r\n CSSRadialExtent[CSSRadialExtent[\"FARTHEST_SIDE\"] = 1] = \"FARTHEST_SIDE\";\r\n CSSRadialExtent[CSSRadialExtent[\"CLOSEST_CORNER\"] = 2] = \"CLOSEST_CORNER\";\r\n CSSRadialExtent[CSSRadialExtent[\"FARTHEST_CORNER\"] = 3] = \"FARTHEST_CORNER\";\r\n })(CSSRadialExtent || (CSSRadialExtent = {}));\r\n var image = {\r\n name: 'image',\r\n parse: function (value) {\r\n if (value.type === TokenType.URL_TOKEN) {\r\n var image_1 = { url: value.value, type: CSSImageType.URL };\r\n CacheStorage.getInstance().addImage(value.value);\r\n return image_1;\r\n }\r\n if (value.type === TokenType.FUNCTION) {\r\n var imageFunction = SUPPORTED_IMAGE_FUNCTIONS[value.name];\r\n if (typeof imageFunction === 'undefined') {\r\n throw new Error(\"Attempting to parse an unsupported image function \\\"\" + value.name + \"\\\"\");\r\n }\r\n return imageFunction(value.values);\r\n }\r\n throw new Error(\"Unsupported image type\");\r\n }\r\n };\r\n function isSupportedImage(value) {\r\n return value.type !== TokenType.FUNCTION || SUPPORTED_IMAGE_FUNCTIONS[value.name];\r\n }\r\n var SUPPORTED_IMAGE_FUNCTIONS = {\r\n 'linear-gradient': linearGradient,\r\n '-moz-linear-gradient': prefixLinearGradient,\r\n '-ms-linear-gradient': prefixLinearGradient,\r\n '-o-linear-gradient': prefixLinearGradient,\r\n '-webkit-linear-gradient': prefixLinearGradient,\r\n 'radial-gradient': radialGradient,\r\n '-moz-radial-gradient': prefixRadialGradient,\r\n '-ms-radial-gradient': prefixRadialGradient,\r\n '-o-radial-gradient': prefixRadialGradient,\r\n '-webkit-radial-gradient': prefixRadialGradient,\r\n '-webkit-gradient': webkitGradient\r\n };\n\n var backgroundImage = {\r\n name: 'background-image',\r\n initialValue: 'none',\r\n type: PropertyDescriptorParsingType.LIST,\r\n prefix: false,\r\n parse: function (tokens) {\r\n if (tokens.length === 0) {\r\n return [];\r\n }\r\n var first = tokens[0];\r\n if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {\r\n return [];\r\n }\r\n return tokens.filter(function (value) { return nonFunctionArgSeparator(value) && isSupportedImage(value); }).map(image.parse);\r\n }\r\n };\n\n var backgroundOrigin = {\r\n name: 'background-origin',\r\n initialValue: 'border-box',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) {\r\n return tokens.map(function (token) {\r\n if (isIdentToken(token)) {\r\n switch (token.value) {\r\n case 'padding-box':\r\n return 1 /* PADDING_BOX */;\r\n case 'content-box':\r\n return 2 /* CONTENT_BOX */;\r\n }\r\n }\r\n return 0 /* BORDER_BOX */;\r\n });\r\n }\r\n };\n\n var backgroundPosition = {\r\n name: 'background-position',\r\n initialValue: '0% 0%',\r\n type: PropertyDescriptorParsingType.LIST,\r\n prefix: false,\r\n parse: function (tokens) {\r\n return parseFunctionArgs(tokens)\r\n .map(function (values) { return values.filter(isLengthPercentage); })\r\n .map(parseLengthPercentageTuple);\r\n }\r\n };\n\n var BACKGROUND_REPEAT;\r\n (function (BACKGROUND_REPEAT) {\r\n BACKGROUND_REPEAT[BACKGROUND_REPEAT[\"REPEAT\"] = 0] = \"REPEAT\";\r\n BACKGROUND_REPEAT[BACKGROUND_REPEAT[\"NO_REPEAT\"] = 1] = \"NO_REPEAT\";\r\n BACKGROUND_REPEAT[BACKGROUND_REPEAT[\"REPEAT_X\"] = 2] = \"REPEAT_X\";\r\n BACKGROUND_REPEAT[BACKGROUND_REPEAT[\"REPEAT_Y\"] = 3] = \"REPEAT_Y\";\r\n })(BACKGROUND_REPEAT || (BACKGROUND_REPEAT = {}));\r\n var backgroundRepeat = {\r\n name: 'background-repeat',\r\n initialValue: 'repeat',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) {\r\n return parseFunctionArgs(tokens)\r\n .map(function (values) {\r\n return values\r\n .filter(isIdentToken)\r\n .map(function (token) { return token.value; })\r\n .join(' ');\r\n })\r\n .map(parseBackgroundRepeat);\r\n }\r\n };\r\n var parseBackgroundRepeat = function (value) {\r\n switch (value) {\r\n case 'no-repeat':\r\n return BACKGROUND_REPEAT.NO_REPEAT;\r\n case 'repeat-x':\r\n case 'repeat no-repeat':\r\n return BACKGROUND_REPEAT.REPEAT_X;\r\n case 'repeat-y':\r\n case 'no-repeat repeat':\r\n return BACKGROUND_REPEAT.REPEAT_Y;\r\n case 'repeat':\r\n default:\r\n return BACKGROUND_REPEAT.REPEAT;\r\n }\r\n };\n\n var BACKGROUND_SIZE;\r\n (function (BACKGROUND_SIZE) {\r\n BACKGROUND_SIZE[\"AUTO\"] = \"auto\";\r\n BACKGROUND_SIZE[\"CONTAIN\"] = \"contain\";\r\n BACKGROUND_SIZE[\"COVER\"] = \"cover\";\r\n })(BACKGROUND_SIZE || (BACKGROUND_SIZE = {}));\r\n var backgroundSize = {\r\n name: 'background-size',\r\n initialValue: '0',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) {\r\n return parseFunctionArgs(tokens).map(function (values) { return values.filter(isBackgroundSizeInfoToken); });\r\n }\r\n };\r\n var isBackgroundSizeInfoToken = function (value) {\r\n return isIdentToken(value) || isLengthPercentage(value);\r\n };\n\n var borderColorForSide = function (side) { return ({\r\n name: \"border-\" + side + \"-color\",\r\n initialValue: 'transparent',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.TYPE_VALUE,\r\n format: 'color'\r\n }); };\r\n var borderTopColor = borderColorForSide('top');\r\n var borderRightColor = borderColorForSide('right');\r\n var borderBottomColor = borderColorForSide('bottom');\r\n var borderLeftColor = borderColorForSide('left');\n\n var borderRadiusForSide = function (side) { return ({\r\n name: \"border-radius-\" + side,\r\n initialValue: '0 0',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) { return parseLengthPercentageTuple(tokens.filter(isLengthPercentage)); }\r\n }); };\r\n var borderTopLeftRadius = borderRadiusForSide('top-left');\r\n var borderTopRightRadius = borderRadiusForSide('top-right');\r\n var borderBottomRightRadius = borderRadiusForSide('bottom-right');\r\n var borderBottomLeftRadius = borderRadiusForSide('bottom-left');\n\n var BORDER_STYLE;\r\n (function (BORDER_STYLE) {\r\n BORDER_STYLE[BORDER_STYLE[\"NONE\"] = 0] = \"NONE\";\r\n BORDER_STYLE[BORDER_STYLE[\"SOLID\"] = 1] = \"SOLID\";\r\n })(BORDER_STYLE || (BORDER_STYLE = {}));\r\n var borderStyleForSide = function (side) { return ({\r\n name: \"border-\" + side + \"-style\",\r\n initialValue: 'solid',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.IDENT_VALUE,\r\n parse: function (style) {\r\n switch (style) {\r\n case 'none':\r\n return BORDER_STYLE.NONE;\r\n }\r\n return BORDER_STYLE.SOLID;\r\n }\r\n }); };\r\n var borderTopStyle = borderStyleForSide('top');\r\n var borderRightStyle = borderStyleForSide('right');\r\n var borderBottomStyle = borderStyleForSide('bottom');\r\n var borderLeftStyle = borderStyleForSide('left');\n\n var borderWidthForSide = function (side) { return ({\r\n name: \"border-\" + side + \"-width\",\r\n initialValue: '0',\r\n type: PropertyDescriptorParsingType.VALUE,\r\n prefix: false,\r\n parse: function (token) {\r\n if (isDimensionToken(token)) {\r\n return token.number;\r\n }\r\n return 0;\r\n }\r\n }); };\r\n var borderTopWidth = borderWidthForSide('top');\r\n var borderRightWidth = borderWidthForSide('right');\r\n var borderBottomWidth = borderWidthForSide('bottom');\r\n var borderLeftWidth = borderWidthForSide('left');\n\n var color$1 = {\r\n name: \"color\",\r\n initialValue: 'transparent',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.TYPE_VALUE,\r\n format: 'color'\r\n };\n\n var display = {\r\n name: 'display',\r\n initialValue: 'inline-block',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) {\r\n return tokens.filter(isIdentToken).reduce(function (bit, token) {\r\n return bit | parseDisplayValue(token.value);\r\n }, 0 /* NONE */);\r\n }\r\n };\r\n var parseDisplayValue = function (display) {\r\n switch (display) {\r\n case 'block':\r\n return 2 /* BLOCK */;\r\n case 'inline':\r\n return 4 /* INLINE */;\r\n case 'run-in':\r\n return 8 /* RUN_IN */;\r\n case 'flow':\r\n return 16 /* FLOW */;\r\n case 'flow-root':\r\n return 32 /* FLOW_ROOT */;\r\n case 'table':\r\n return 64 /* TABLE */;\r\n case 'flex':\r\n case '-webkit-flex':\r\n return 128 /* FLEX */;\r\n case 'grid':\r\n case '-ms-grid':\r\n return 256 /* GRID */;\r\n case 'ruby':\r\n return 512 /* RUBY */;\r\n case 'subgrid':\r\n return 1024 /* SUBGRID */;\r\n case 'list-item':\r\n return 2048 /* LIST_ITEM */;\r\n case 'table-row-group':\r\n return 4096 /* TABLE_ROW_GROUP */;\r\n case 'table-header-group':\r\n return 8192 /* TABLE_HEADER_GROUP */;\r\n case 'table-footer-group':\r\n return 16384 /* TABLE_FOOTER_GROUP */;\r\n case 'table-row':\r\n return 32768 /* TABLE_ROW */;\r\n case 'table-cell':\r\n return 65536 /* TABLE_CELL */;\r\n case 'table-column-group':\r\n return 131072 /* TABLE_COLUMN_GROUP */;\r\n case 'table-column':\r\n return 262144 /* TABLE_COLUMN */;\r\n case 'table-caption':\r\n return 524288 /* TABLE_CAPTION */;\r\n case 'ruby-base':\r\n return 1048576 /* RUBY_BASE */;\r\n case 'ruby-text':\r\n return 2097152 /* RUBY_TEXT */;\r\n case 'ruby-base-container':\r\n return 4194304 /* RUBY_BASE_CONTAINER */;\r\n case 'ruby-text-container':\r\n return 8388608 /* RUBY_TEXT_CONTAINER */;\r\n case 'contents':\r\n return 16777216 /* CONTENTS */;\r\n case 'inline-block':\r\n return 33554432 /* INLINE_BLOCK */;\r\n case 'inline-list-item':\r\n return 67108864 /* INLINE_LIST_ITEM */;\r\n case 'inline-table':\r\n return 134217728 /* INLINE_TABLE */;\r\n case 'inline-flex':\r\n return 268435456 /* INLINE_FLEX */;\r\n case 'inline-grid':\r\n return 536870912 /* INLINE_GRID */;\r\n }\r\n return 0 /* NONE */;\r\n };\n\n var FLOAT;\r\n (function (FLOAT) {\r\n FLOAT[FLOAT[\"NONE\"] = 0] = \"NONE\";\r\n FLOAT[FLOAT[\"LEFT\"] = 1] = \"LEFT\";\r\n FLOAT[FLOAT[\"RIGHT\"] = 2] = \"RIGHT\";\r\n FLOAT[FLOAT[\"INLINE_START\"] = 3] = \"INLINE_START\";\r\n FLOAT[FLOAT[\"INLINE_END\"] = 4] = \"INLINE_END\";\r\n })(FLOAT || (FLOAT = {}));\r\n var float = {\r\n name: 'float',\r\n initialValue: 'none',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.IDENT_VALUE,\r\n parse: function (float) {\r\n switch (float) {\r\n case 'left':\r\n return FLOAT.LEFT;\r\n case 'right':\r\n return FLOAT.RIGHT;\r\n case 'inline-start':\r\n return FLOAT.INLINE_START;\r\n case 'inline-end':\r\n return FLOAT.INLINE_END;\r\n }\r\n return FLOAT.NONE;\r\n }\r\n };\n\n var letterSpacing = {\r\n name: 'letter-spacing',\r\n initialValue: '0',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.VALUE,\r\n parse: function (token) {\r\n if (token.type === TokenType.IDENT_TOKEN && token.value === 'normal') {\r\n return 0;\r\n }\r\n if (token.type === TokenType.NUMBER_TOKEN) {\r\n return token.number;\r\n }\r\n if (token.type === TokenType.DIMENSION_TOKEN) {\r\n return token.number;\r\n }\r\n return 0;\r\n }\r\n };\n\n var LINE_BREAK;\r\n (function (LINE_BREAK) {\r\n LINE_BREAK[\"NORMAL\"] = \"normal\";\r\n LINE_BREAK[\"STRICT\"] = \"strict\";\r\n })(LINE_BREAK || (LINE_BREAK = {}));\r\n var lineBreak = {\r\n name: 'line-break',\r\n initialValue: 'normal',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.IDENT_VALUE,\r\n parse: function (lineBreak) {\r\n switch (lineBreak) {\r\n case 'strict':\r\n return LINE_BREAK.STRICT;\r\n case 'normal':\r\n default:\r\n return LINE_BREAK.NORMAL;\r\n }\r\n }\r\n };\n\n var lineHeight = {\r\n name: 'line-height',\r\n initialValue: 'normal',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.TOKEN_VALUE\r\n };\r\n var computeLineHeight = function (token, fontSize) {\r\n if (isIdentToken(token) && token.value === 'normal') {\r\n return 1.2 * fontSize;\r\n }\r\n else if (token.type === TokenType.NUMBER_TOKEN) {\r\n return fontSize * token.number;\r\n }\r\n else if (isLengthPercentage(token)) {\r\n return getAbsoluteValue(token, fontSize);\r\n }\r\n return fontSize;\r\n };\n\n var listStyleImage = {\r\n name: 'list-style-image',\r\n initialValue: 'none',\r\n type: PropertyDescriptorParsingType.VALUE,\r\n prefix: false,\r\n parse: function (token) {\r\n if (token.type === TokenType.IDENT_TOKEN && token.value === 'none') {\r\n return null;\r\n }\r\n return image.parse(token);\r\n }\r\n };\n\n var LIST_STYLE_POSITION;\r\n (function (LIST_STYLE_POSITION) {\r\n LIST_STYLE_POSITION[LIST_STYLE_POSITION[\"INSIDE\"] = 0] = \"INSIDE\";\r\n LIST_STYLE_POSITION[LIST_STYLE_POSITION[\"OUTSIDE\"] = 1] = \"OUTSIDE\";\r\n })(LIST_STYLE_POSITION || (LIST_STYLE_POSITION = {}));\r\n var listStylePosition = {\r\n name: 'list-style-position',\r\n initialValue: 'outside',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.IDENT_VALUE,\r\n parse: function (position) {\r\n switch (position) {\r\n case 'inside':\r\n return LIST_STYLE_POSITION.INSIDE;\r\n case 'outside':\r\n default:\r\n return LIST_STYLE_POSITION.OUTSIDE;\r\n }\r\n }\r\n };\n\n var LIST_STYLE_TYPE;\r\n (function (LIST_STYLE_TYPE) {\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"NONE\"] = -1] = \"NONE\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"DISC\"] = 0] = \"DISC\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"CIRCLE\"] = 1] = \"CIRCLE\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"SQUARE\"] = 2] = \"SQUARE\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"DECIMAL\"] = 3] = \"DECIMAL\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"CJK_DECIMAL\"] = 4] = \"CJK_DECIMAL\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"DECIMAL_LEADING_ZERO\"] = 5] = \"DECIMAL_LEADING_ZERO\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"LOWER_ROMAN\"] = 6] = \"LOWER_ROMAN\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"UPPER_ROMAN\"] = 7] = \"UPPER_ROMAN\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"LOWER_GREEK\"] = 8] = \"LOWER_GREEK\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"LOWER_ALPHA\"] = 9] = \"LOWER_ALPHA\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"UPPER_ALPHA\"] = 10] = \"UPPER_ALPHA\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"ARABIC_INDIC\"] = 11] = \"ARABIC_INDIC\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"ARMENIAN\"] = 12] = \"ARMENIAN\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"BENGALI\"] = 13] = \"BENGALI\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"CAMBODIAN\"] = 14] = \"CAMBODIAN\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"CJK_EARTHLY_BRANCH\"] = 15] = \"CJK_EARTHLY_BRANCH\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"CJK_HEAVENLY_STEM\"] = 16] = \"CJK_HEAVENLY_STEM\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"CJK_IDEOGRAPHIC\"] = 17] = \"CJK_IDEOGRAPHIC\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"DEVANAGARI\"] = 18] = \"DEVANAGARI\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"ETHIOPIC_NUMERIC\"] = 19] = \"ETHIOPIC_NUMERIC\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"GEORGIAN\"] = 20] = \"GEORGIAN\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"GUJARATI\"] = 21] = \"GUJARATI\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"GURMUKHI\"] = 22] = \"GURMUKHI\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"HEBREW\"] = 22] = \"HEBREW\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"HIRAGANA\"] = 23] = \"HIRAGANA\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"HIRAGANA_IROHA\"] = 24] = \"HIRAGANA_IROHA\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"JAPANESE_FORMAL\"] = 25] = \"JAPANESE_FORMAL\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"JAPANESE_INFORMAL\"] = 26] = \"JAPANESE_INFORMAL\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"KANNADA\"] = 27] = \"KANNADA\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"KATAKANA\"] = 28] = \"KATAKANA\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"KATAKANA_IROHA\"] = 29] = \"KATAKANA_IROHA\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"KHMER\"] = 30] = \"KHMER\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"KOREAN_HANGUL_FORMAL\"] = 31] = \"KOREAN_HANGUL_FORMAL\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"KOREAN_HANJA_FORMAL\"] = 32] = \"KOREAN_HANJA_FORMAL\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"KOREAN_HANJA_INFORMAL\"] = 33] = \"KOREAN_HANJA_INFORMAL\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"LAO\"] = 34] = \"LAO\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"LOWER_ARMENIAN\"] = 35] = \"LOWER_ARMENIAN\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"MALAYALAM\"] = 36] = \"MALAYALAM\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"MONGOLIAN\"] = 37] = \"MONGOLIAN\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"MYANMAR\"] = 38] = \"MYANMAR\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"ORIYA\"] = 39] = \"ORIYA\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"PERSIAN\"] = 40] = \"PERSIAN\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"SIMP_CHINESE_FORMAL\"] = 41] = \"SIMP_CHINESE_FORMAL\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"SIMP_CHINESE_INFORMAL\"] = 42] = \"SIMP_CHINESE_INFORMAL\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"TAMIL\"] = 43] = \"TAMIL\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"TELUGU\"] = 44] = \"TELUGU\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"THAI\"] = 45] = \"THAI\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"TIBETAN\"] = 46] = \"TIBETAN\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"TRAD_CHINESE_FORMAL\"] = 47] = \"TRAD_CHINESE_FORMAL\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"TRAD_CHINESE_INFORMAL\"] = 48] = \"TRAD_CHINESE_INFORMAL\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"UPPER_ARMENIAN\"] = 49] = \"UPPER_ARMENIAN\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"DISCLOSURE_OPEN\"] = 50] = \"DISCLOSURE_OPEN\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"DISCLOSURE_CLOSED\"] = 51] = \"DISCLOSURE_CLOSED\";\r\n })(LIST_STYLE_TYPE || (LIST_STYLE_TYPE = {}));\r\n var listStyleType = {\r\n name: 'list-style-type',\r\n initialValue: 'none',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.IDENT_VALUE,\r\n parse: function (type) {\r\n switch (type) {\r\n case 'disc':\r\n return LIST_STYLE_TYPE.DISC;\r\n case 'circle':\r\n return LIST_STYLE_TYPE.CIRCLE;\r\n case 'square':\r\n return LIST_STYLE_TYPE.SQUARE;\r\n case 'decimal':\r\n return LIST_STYLE_TYPE.DECIMAL;\r\n case 'cjk-decimal':\r\n return LIST_STYLE_TYPE.CJK_DECIMAL;\r\n case 'decimal-leading-zero':\r\n return LIST_STYLE_TYPE.DECIMAL_LEADING_ZERO;\r\n case 'lower-roman':\r\n return LIST_STYLE_TYPE.LOWER_ROMAN;\r\n case 'upper-roman':\r\n return LIST_STYLE_TYPE.UPPER_ROMAN;\r\n case 'lower-greek':\r\n return LIST_STYLE_TYPE.LOWER_GREEK;\r\n case 'lower-alpha':\r\n return LIST_STYLE_TYPE.LOWER_ALPHA;\r\n case 'upper-alpha':\r\n return LIST_STYLE_TYPE.UPPER_ALPHA;\r\n case 'arabic-indic':\r\n return LIST_STYLE_TYPE.ARABIC_INDIC;\r\n case 'armenian':\r\n return LIST_STYLE_TYPE.ARMENIAN;\r\n case 'bengali':\r\n return LIST_STYLE_TYPE.BENGALI;\r\n case 'cambodian':\r\n return LIST_STYLE_TYPE.CAMBODIAN;\r\n case 'cjk-earthly-branch':\r\n return LIST_STYLE_TYPE.CJK_EARTHLY_BRANCH;\r\n case 'cjk-heavenly-stem':\r\n return LIST_STYLE_TYPE.CJK_HEAVENLY_STEM;\r\n case 'cjk-ideographic':\r\n return LIST_STYLE_TYPE.CJK_IDEOGRAPHIC;\r\n case 'devanagari':\r\n return LIST_STYLE_TYPE.DEVANAGARI;\r\n case 'ethiopic-numeric':\r\n return LIST_STYLE_TYPE.ETHIOPIC_NUMERIC;\r\n case 'georgian':\r\n return LIST_STYLE_TYPE.GEORGIAN;\r\n case 'gujarati':\r\n return LIST_STYLE_TYPE.GUJARATI;\r\n case 'gurmukhi':\r\n return LIST_STYLE_TYPE.GURMUKHI;\r\n case 'hebrew':\r\n return LIST_STYLE_TYPE.HEBREW;\r\n case 'hiragana':\r\n return LIST_STYLE_TYPE.HIRAGANA;\r\n case 'hiragana-iroha':\r\n return LIST_STYLE_TYPE.HIRAGANA_IROHA;\r\n case 'japanese-formal':\r\n return LIST_STYLE_TYPE.JAPANESE_FORMAL;\r\n case 'japanese-informal':\r\n return LIST_STYLE_TYPE.JAPANESE_INFORMAL;\r\n case 'kannada':\r\n return LIST_STYLE_TYPE.KANNADA;\r\n case 'katakana':\r\n return LIST_STYLE_TYPE.KATAKANA;\r\n case 'katakana-iroha':\r\n return LIST_STYLE_TYPE.KATAKANA_IROHA;\r\n case 'khmer':\r\n return LIST_STYLE_TYPE.KHMER;\r\n case 'korean-hangul-formal':\r\n return LIST_STYLE_TYPE.KOREAN_HANGUL_FORMAL;\r\n case 'korean-hanja-formal':\r\n return LIST_STYLE_TYPE.KOREAN_HANJA_FORMAL;\r\n case 'korean-hanja-informal':\r\n return LIST_STYLE_TYPE.KOREAN_HANJA_INFORMAL;\r\n case 'lao':\r\n return LIST_STYLE_TYPE.LAO;\r\n case 'lower-armenian':\r\n return LIST_STYLE_TYPE.LOWER_ARMENIAN;\r\n case 'malayalam':\r\n return LIST_STYLE_TYPE.MALAYALAM;\r\n case 'mongolian':\r\n return LIST_STYLE_TYPE.MONGOLIAN;\r\n case 'myanmar':\r\n return LIST_STYLE_TYPE.MYANMAR;\r\n case 'oriya':\r\n return LIST_STYLE_TYPE.ORIYA;\r\n case 'persian':\r\n return LIST_STYLE_TYPE.PERSIAN;\r\n case 'simp-chinese-formal':\r\n return LIST_STYLE_TYPE.SIMP_CHINESE_FORMAL;\r\n case 'simp-chinese-informal':\r\n return LIST_STYLE_TYPE.SIMP_CHINESE_INFORMAL;\r\n case 'tamil':\r\n return LIST_STYLE_TYPE.TAMIL;\r\n case 'telugu':\r\n return LIST_STYLE_TYPE.TELUGU;\r\n case 'thai':\r\n return LIST_STYLE_TYPE.THAI;\r\n case 'tibetan':\r\n return LIST_STYLE_TYPE.TIBETAN;\r\n case 'trad-chinese-formal':\r\n return LIST_STYLE_TYPE.TRAD_CHINESE_FORMAL;\r\n case 'trad-chinese-informal':\r\n return LIST_STYLE_TYPE.TRAD_CHINESE_INFORMAL;\r\n case 'upper-armenian':\r\n return LIST_STYLE_TYPE.UPPER_ARMENIAN;\r\n case 'disclosure-open':\r\n return LIST_STYLE_TYPE.DISCLOSURE_OPEN;\r\n case 'disclosure-closed':\r\n return LIST_STYLE_TYPE.DISCLOSURE_CLOSED;\r\n case 'none':\r\n default:\r\n return LIST_STYLE_TYPE.NONE;\r\n }\r\n }\r\n };\n\n var marginForSide = function (side) { return ({\r\n name: \"margin-\" + side,\r\n initialValue: '0',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.TOKEN_VALUE\r\n }); };\r\n var marginTop = marginForSide('top');\r\n var marginRight = marginForSide('right');\r\n var marginBottom = marginForSide('bottom');\r\n var marginLeft = marginForSide('left');\n\n var OVERFLOW;\r\n (function (OVERFLOW) {\r\n OVERFLOW[OVERFLOW[\"VISIBLE\"] = 0] = \"VISIBLE\";\r\n OVERFLOW[OVERFLOW[\"HIDDEN\"] = 1] = \"HIDDEN\";\r\n OVERFLOW[OVERFLOW[\"SCROLL\"] = 2] = \"SCROLL\";\r\n OVERFLOW[OVERFLOW[\"AUTO\"] = 3] = \"AUTO\";\r\n })(OVERFLOW || (OVERFLOW = {}));\r\n var overflow = {\r\n name: 'overflow',\r\n initialValue: 'visible',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) {\r\n return tokens.filter(isIdentToken).map(function (overflow) {\r\n switch (overflow.value) {\r\n case 'hidden':\r\n return OVERFLOW.HIDDEN;\r\n case 'scroll':\r\n return OVERFLOW.SCROLL;\r\n case 'auto':\r\n return OVERFLOW.AUTO;\r\n case 'visible':\r\n default:\r\n return OVERFLOW.VISIBLE;\r\n }\r\n });\r\n }\r\n };\n\n var OVERFLOW_WRAP;\r\n (function (OVERFLOW_WRAP) {\r\n OVERFLOW_WRAP[\"NORMAL\"] = \"normal\";\r\n OVERFLOW_WRAP[\"BREAK_WORD\"] = \"break-word\";\r\n })(OVERFLOW_WRAP || (OVERFLOW_WRAP = {}));\r\n var overflowWrap = {\r\n name: 'overflow-wrap',\r\n initialValue: 'normal',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.IDENT_VALUE,\r\n parse: function (overflow) {\r\n switch (overflow) {\r\n case 'break-word':\r\n return OVERFLOW_WRAP.BREAK_WORD;\r\n case 'normal':\r\n default:\r\n return OVERFLOW_WRAP.NORMAL;\r\n }\r\n }\r\n };\n\n var paddingForSide = function (side) { return ({\r\n name: \"padding-\" + side,\r\n initialValue: '0',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.TYPE_VALUE,\r\n format: 'length-percentage'\r\n }); };\r\n var paddingTop = paddingForSide('top');\r\n var paddingRight = paddingForSide('right');\r\n var paddingBottom = paddingForSide('bottom');\r\n var paddingLeft = paddingForSide('left');\n\n var TEXT_ALIGN;\r\n (function (TEXT_ALIGN) {\r\n TEXT_ALIGN[TEXT_ALIGN[\"LEFT\"] = 0] = \"LEFT\";\r\n TEXT_ALIGN[TEXT_ALIGN[\"CENTER\"] = 1] = \"CENTER\";\r\n TEXT_ALIGN[TEXT_ALIGN[\"RIGHT\"] = 2] = \"RIGHT\";\r\n })(TEXT_ALIGN || (TEXT_ALIGN = {}));\r\n var textAlign = {\r\n name: 'text-align',\r\n initialValue: 'left',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.IDENT_VALUE,\r\n parse: function (textAlign) {\r\n switch (textAlign) {\r\n case 'right':\r\n return TEXT_ALIGN.RIGHT;\r\n case 'center':\r\n case 'justify':\r\n return TEXT_ALIGN.CENTER;\r\n case 'left':\r\n default:\r\n return TEXT_ALIGN.LEFT;\r\n }\r\n }\r\n };\n\n var POSITION;\r\n (function (POSITION) {\r\n POSITION[POSITION[\"STATIC\"] = 0] = \"STATIC\";\r\n POSITION[POSITION[\"RELATIVE\"] = 1] = \"RELATIVE\";\r\n POSITION[POSITION[\"ABSOLUTE\"] = 2] = \"ABSOLUTE\";\r\n POSITION[POSITION[\"FIXED\"] = 3] = \"FIXED\";\r\n POSITION[POSITION[\"STICKY\"] = 4] = \"STICKY\";\r\n })(POSITION || (POSITION = {}));\r\n var position = {\r\n name: 'position',\r\n initialValue: 'static',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.IDENT_VALUE,\r\n parse: function (position) {\r\n switch (position) {\r\n case 'relative':\r\n return POSITION.RELATIVE;\r\n case 'absolute':\r\n return POSITION.ABSOLUTE;\r\n case 'fixed':\r\n return POSITION.FIXED;\r\n case 'sticky':\r\n return POSITION.STICKY;\r\n }\r\n return POSITION.STATIC;\r\n }\r\n };\n\n var textShadow = {\r\n name: 'text-shadow',\r\n initialValue: 'none',\r\n type: PropertyDescriptorParsingType.LIST,\r\n prefix: false,\r\n parse: function (tokens) {\r\n if (tokens.length === 1 && isIdentWithValue(tokens[0], 'none')) {\r\n return [];\r\n }\r\n return parseFunctionArgs(tokens).map(function (values) {\r\n var shadow = {\r\n color: COLORS.TRANSPARENT,\r\n offsetX: ZERO_LENGTH,\r\n offsetY: ZERO_LENGTH,\r\n blur: ZERO_LENGTH\r\n };\r\n var c = 0;\r\n for (var i = 0; i < values.length; i++) {\r\n var token = values[i];\r\n if (isLength(token)) {\r\n if (c === 0) {\r\n shadow.offsetX = token;\r\n }\r\n else if (c === 1) {\r\n shadow.offsetY = token;\r\n }\r\n else {\r\n shadow.blur = token;\r\n }\r\n c++;\r\n }\r\n else {\r\n shadow.color = color.parse(token);\r\n }\r\n }\r\n return shadow;\r\n });\r\n }\r\n };\n\n var TEXT_TRANSFORM;\r\n (function (TEXT_TRANSFORM) {\r\n TEXT_TRANSFORM[TEXT_TRANSFORM[\"NONE\"] = 0] = \"NONE\";\r\n TEXT_TRANSFORM[TEXT_TRANSFORM[\"LOWERCASE\"] = 1] = \"LOWERCASE\";\r\n TEXT_TRANSFORM[TEXT_TRANSFORM[\"UPPERCASE\"] = 2] = \"UPPERCASE\";\r\n TEXT_TRANSFORM[TEXT_TRANSFORM[\"CAPITALIZE\"] = 3] = \"CAPITALIZE\";\r\n })(TEXT_TRANSFORM || (TEXT_TRANSFORM = {}));\r\n var textTransform = {\r\n name: 'text-transform',\r\n initialValue: 'none',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.IDENT_VALUE,\r\n parse: function (textTransform) {\r\n switch (textTransform) {\r\n case 'uppercase':\r\n return TEXT_TRANSFORM.UPPERCASE;\r\n case 'lowercase':\r\n return TEXT_TRANSFORM.LOWERCASE;\r\n case 'capitalize':\r\n return TEXT_TRANSFORM.CAPITALIZE;\r\n }\r\n return TEXT_TRANSFORM.NONE;\r\n }\r\n };\n\n var transform = {\r\n name: 'transform',\r\n initialValue: 'none',\r\n prefix: true,\r\n type: PropertyDescriptorParsingType.VALUE,\r\n parse: function (token) {\r\n if (token.type === TokenType.IDENT_TOKEN && token.value === 'none') {\r\n return null;\r\n }\r\n if (token.type === TokenType.FUNCTION) {\r\n var transformFunction = SUPPORTED_TRANSFORM_FUNCTIONS[token.name];\r\n if (typeof transformFunction === 'undefined') {\r\n throw new Error(\"Attempting to parse an unsupported transform function \\\"\" + token.name + \"\\\"\");\r\n }\r\n return transformFunction(token.values);\r\n }\r\n return null;\r\n }\r\n };\r\n var matrix = function (args) {\r\n var values = args.filter(function (arg) { return arg.type === TokenType.NUMBER_TOKEN; }).map(function (arg) { return arg.number; });\r\n return values.length === 6 ? values : null;\r\n };\r\n // doesn't support 3D transforms at the moment\r\n var matrix3d = function (args) {\r\n var values = args.filter(function (arg) { return arg.type === TokenType.NUMBER_TOKEN; }).map(function (arg) { return arg.number; });\r\n var a1 = values[0], b1 = values[1], _a = values[2], _b = values[3], a2 = values[4], b2 = values[5], _c = values[6], _d = values[7], _e = values[8], _f = values[9], _g = values[10], _h = values[11], a4 = values[12], b4 = values[13], _j = values[14], _k = values[15];\r\n return values.length === 16 ? [a1, b1, a2, b2, a4, b4] : null;\r\n };\r\n var SUPPORTED_TRANSFORM_FUNCTIONS = {\r\n matrix: matrix,\r\n matrix3d: matrix3d\r\n };\n\n var DEFAULT_VALUE = {\r\n type: TokenType.PERCENTAGE_TOKEN,\r\n number: 50,\r\n flags: FLAG_INTEGER\r\n };\r\n var DEFAULT = [DEFAULT_VALUE, DEFAULT_VALUE];\r\n var transformOrigin = {\r\n name: 'transform-origin',\r\n initialValue: '50% 50%',\r\n prefix: true,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) {\r\n var origins = tokens.filter(isLengthPercentage);\r\n if (origins.length !== 2) {\r\n return DEFAULT;\r\n }\r\n return [origins[0], origins[1]];\r\n }\r\n };\n\n var VISIBILITY;\r\n (function (VISIBILITY) {\r\n VISIBILITY[VISIBILITY[\"VISIBLE\"] = 0] = \"VISIBLE\";\r\n VISIBILITY[VISIBILITY[\"HIDDEN\"] = 1] = \"HIDDEN\";\r\n VISIBILITY[VISIBILITY[\"COLLAPSE\"] = 2] = \"COLLAPSE\";\r\n })(VISIBILITY || (VISIBILITY = {}));\r\n var visibility = {\r\n name: 'visible',\r\n initialValue: 'none',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.IDENT_VALUE,\r\n parse: function (visibility) {\r\n switch (visibility) {\r\n case 'hidden':\r\n return VISIBILITY.HIDDEN;\r\n case 'collapse':\r\n return VISIBILITY.COLLAPSE;\r\n case 'visible':\r\n default:\r\n return VISIBILITY.VISIBLE;\r\n }\r\n }\r\n };\n\n var WORD_BREAK;\r\n (function (WORD_BREAK) {\r\n WORD_BREAK[\"NORMAL\"] = \"normal\";\r\n WORD_BREAK[\"BREAK_ALL\"] = \"break-all\";\r\n WORD_BREAK[\"KEEP_ALL\"] = \"keep-all\";\r\n })(WORD_BREAK || (WORD_BREAK = {}));\r\n var wordBreak = {\r\n name: 'word-break',\r\n initialValue: 'normal',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.IDENT_VALUE,\r\n parse: function (wordBreak) {\r\n switch (wordBreak) {\r\n case 'break-all':\r\n return WORD_BREAK.BREAK_ALL;\r\n case 'keep-all':\r\n return WORD_BREAK.KEEP_ALL;\r\n case 'normal':\r\n default:\r\n return WORD_BREAK.NORMAL;\r\n }\r\n }\r\n };\n\n var zIndex = {\r\n name: 'z-index',\r\n initialValue: 'auto',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.VALUE,\r\n parse: function (token) {\r\n if (token.type === TokenType.IDENT_TOKEN) {\r\n return { auto: true, order: 0 };\r\n }\r\n if (isNumberToken(token)) {\r\n return { auto: false, order: token.number };\r\n }\r\n throw new Error(\"Invalid z-index number parsed\");\r\n }\r\n };\n\n var opacity = {\r\n name: 'opacity',\r\n initialValue: '1',\r\n type: PropertyDescriptorParsingType.VALUE,\r\n prefix: false,\r\n parse: function (token) {\r\n if (isNumberToken(token)) {\r\n return token.number;\r\n }\r\n return 1;\r\n }\r\n };\n\n var textDecorationColor = {\r\n name: \"text-decoration-color\",\r\n initialValue: 'transparent',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.TYPE_VALUE,\r\n format: 'color'\r\n };\n\n var textDecorationLine = {\r\n name: 'text-decoration-line',\r\n initialValue: 'none',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) {\r\n return tokens\r\n .filter(isIdentToken)\r\n .map(function (token) {\r\n switch (token.value) {\r\n case 'underline':\r\n return 1 /* UNDERLINE */;\r\n case 'overline':\r\n return 2 /* OVERLINE */;\r\n case 'line-through':\r\n return 3 /* LINE_THROUGH */;\r\n case 'none':\r\n return 4 /* BLINK */;\r\n }\r\n return 0 /* NONE */;\r\n })\r\n .filter(function (line) { return line !== 0 /* NONE */; });\r\n }\r\n };\n\n var fontFamily = {\r\n name: \"font-family\",\r\n initialValue: '',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) {\r\n var accumulator = [];\r\n var results = [];\r\n tokens.forEach(function (token) {\r\n switch (token.type) {\r\n case TokenType.IDENT_TOKEN:\r\n case TokenType.STRING_TOKEN:\r\n accumulator.push(token.value);\r\n break;\r\n case TokenType.NUMBER_TOKEN:\r\n accumulator.push(token.number.toString());\r\n break;\r\n case TokenType.COMMA_TOKEN:\r\n results.push(accumulator.join(' '));\r\n accumulator.length = 0;\r\n break;\r\n }\r\n });\r\n if (accumulator.length) {\r\n results.push(accumulator.join(' '));\r\n }\r\n return results.map(function (result) { return (result.indexOf(' ') === -1 ? result : \"'\" + result + \"'\"); });\r\n }\r\n };\n\n var fontSize = {\r\n name: \"font-size\",\r\n initialValue: '0',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.TYPE_VALUE,\r\n format: 'length'\r\n };\n\n var fontWeight = {\r\n name: 'font-weight',\r\n initialValue: 'normal',\r\n type: PropertyDescriptorParsingType.VALUE,\r\n prefix: false,\r\n parse: function (token) {\r\n if (isNumberToken(token)) {\r\n return token.number;\r\n }\r\n if (isIdentToken(token)) {\r\n switch (token.value) {\r\n case 'bold':\r\n return 700;\r\n case 'normal':\r\n default:\r\n return 400;\r\n }\r\n }\r\n return 400;\r\n }\r\n };\n\n var fontVariant = {\r\n name: 'font-variant',\r\n initialValue: 'none',\r\n type: PropertyDescriptorParsingType.LIST,\r\n prefix: false,\r\n parse: function (tokens) {\r\n return tokens.filter(isIdentToken).map(function (token) { return token.value; });\r\n }\r\n };\n\n var FONT_STYLE;\r\n (function (FONT_STYLE) {\r\n FONT_STYLE[\"NORMAL\"] = \"normal\";\r\n FONT_STYLE[\"ITALIC\"] = \"italic\";\r\n FONT_STYLE[\"OBLIQUE\"] = \"oblique\";\r\n })(FONT_STYLE || (FONT_STYLE = {}));\r\n var fontStyle = {\r\n name: 'font-style',\r\n initialValue: 'normal',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.IDENT_VALUE,\r\n parse: function (overflow) {\r\n switch (overflow) {\r\n case 'oblique':\r\n return FONT_STYLE.OBLIQUE;\r\n case 'italic':\r\n return FONT_STYLE.ITALIC;\r\n case 'normal':\r\n default:\r\n return FONT_STYLE.NORMAL;\r\n }\r\n }\r\n };\n\n var contains = function (bit, value) { return (bit & value) !== 0; };\n\n var content = {\r\n name: 'content',\r\n initialValue: 'none',\r\n type: PropertyDescriptorParsingType.LIST,\r\n prefix: false,\r\n parse: function (tokens) {\r\n if (tokens.length === 0) {\r\n return [];\r\n }\r\n var first = tokens[0];\r\n if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {\r\n return [];\r\n }\r\n return tokens;\r\n }\r\n };\n\n var counterIncrement = {\r\n name: 'counter-increment',\r\n initialValue: 'none',\r\n prefix: true,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) {\r\n if (tokens.length === 0) {\r\n return null;\r\n }\r\n var first = tokens[0];\r\n if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {\r\n return null;\r\n }\r\n var increments = [];\r\n var filtered = tokens.filter(nonWhiteSpace);\r\n for (var i = 0; i < filtered.length; i++) {\r\n var counter = filtered[i];\r\n var next = filtered[i + 1];\r\n if (counter.type === TokenType.IDENT_TOKEN) {\r\n var increment = next && isNumberToken(next) ? next.number : 1;\r\n increments.push({ counter: counter.value, increment: increment });\r\n }\r\n }\r\n return increments;\r\n }\r\n };\n\n var counterReset = {\r\n name: 'counter-reset',\r\n initialValue: 'none',\r\n prefix: true,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) {\r\n if (tokens.length === 0) {\r\n return [];\r\n }\r\n var resets = [];\r\n var filtered = tokens.filter(nonWhiteSpace);\r\n for (var i = 0; i < filtered.length; i++) {\r\n var counter = filtered[i];\r\n var next = filtered[i + 1];\r\n if (isIdentToken(counter) && counter.value !== 'none') {\r\n var reset = next && isNumberToken(next) ? next.number : 0;\r\n resets.push({ counter: counter.value, reset: reset });\r\n }\r\n }\r\n return resets;\r\n }\r\n };\n\n var quotes = {\r\n name: 'quotes',\r\n initialValue: 'none',\r\n prefix: true,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) {\r\n if (tokens.length === 0) {\r\n return null;\r\n }\r\n var first = tokens[0];\r\n if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {\r\n return null;\r\n }\r\n var quotes = [];\r\n var filtered = tokens.filter(isStringToken);\r\n if (filtered.length % 2 !== 0) {\r\n return null;\r\n }\r\n for (var i = 0; i < filtered.length; i += 2) {\r\n var open_1 = filtered[i].value;\r\n var close_1 = filtered[i + 1].value;\r\n quotes.push({ open: open_1, close: close_1 });\r\n }\r\n return quotes;\r\n }\r\n };\r\n var getQuote = function (quotes, depth, open) {\r\n if (!quotes) {\r\n return '';\r\n }\r\n var quote = quotes[Math.min(depth, quotes.length - 1)];\r\n if (!quote) {\r\n return '';\r\n }\r\n return open ? quote.open : quote.close;\r\n };\n\n var boxShadow = {\r\n name: 'box-shadow',\r\n initialValue: 'none',\r\n type: PropertyDescriptorParsingType.LIST,\r\n prefix: false,\r\n parse: function (tokens) {\r\n if (tokens.length === 1 && isIdentWithValue(tokens[0], 'none')) {\r\n return [];\r\n }\r\n return parseFunctionArgs(tokens).map(function (values) {\r\n var shadow = {\r\n color: 0x000000ff,\r\n offsetX: ZERO_LENGTH,\r\n offsetY: ZERO_LENGTH,\r\n blur: ZERO_LENGTH,\r\n spread: ZERO_LENGTH,\r\n inset: false\r\n };\r\n var c = 0;\r\n for (var i = 0; i < values.length; i++) {\r\n var token = values[i];\r\n if (isIdentWithValue(token, 'inset')) {\r\n shadow.inset = true;\r\n }\r\n else if (isLength(token)) {\r\n if (c === 0) {\r\n shadow.offsetX = token;\r\n }\r\n else if (c === 1) {\r\n shadow.offsetY = token;\r\n }\r\n else if (c === 2) {\r\n shadow.blur = token;\r\n }\r\n else {\r\n shadow.spread = token;\r\n }\r\n c++;\r\n }\r\n else {\r\n shadow.color = color.parse(token);\r\n }\r\n }\r\n return shadow;\r\n });\r\n }\r\n };\n\n var CSSParsedDeclaration = /** @class */ (function () {\r\n function CSSParsedDeclaration(declaration) {\r\n this.backgroundClip = parse(backgroundClip, declaration.backgroundClip);\r\n this.backgroundColor = parse(backgroundColor, declaration.backgroundColor);\r\n this.backgroundImage = parse(backgroundImage, declaration.backgroundImage);\r\n this.backgroundOrigin = parse(backgroundOrigin, declaration.backgroundOrigin);\r\n this.backgroundPosition = parse(backgroundPosition, declaration.backgroundPosition);\r\n this.backgroundRepeat = parse(backgroundRepeat, declaration.backgroundRepeat);\r\n this.backgroundSize = parse(backgroundSize, declaration.backgroundSize);\r\n this.borderTopColor = parse(borderTopColor, declaration.borderTopColor);\r\n this.borderRightColor = parse(borderRightColor, declaration.borderRightColor);\r\n this.borderBottomColor = parse(borderBottomColor, declaration.borderBottomColor);\r\n this.borderLeftColor = parse(borderLeftColor, declaration.borderLeftColor);\r\n this.borderTopLeftRadius = parse(borderTopLeftRadius, declaration.borderTopLeftRadius);\r\n this.borderTopRightRadius = parse(borderTopRightRadius, declaration.borderTopRightRadius);\r\n this.borderBottomRightRadius = parse(borderBottomRightRadius, declaration.borderBottomRightRadius);\r\n this.borderBottomLeftRadius = parse(borderBottomLeftRadius, declaration.borderBottomLeftRadius);\r\n this.borderTopStyle = parse(borderTopStyle, declaration.borderTopStyle);\r\n this.borderRightStyle = parse(borderRightStyle, declaration.borderRightStyle);\r\n this.borderBottomStyle = parse(borderBottomStyle, declaration.borderBottomStyle);\r\n this.borderLeftStyle = parse(borderLeftStyle, declaration.borderLeftStyle);\r\n this.borderTopWidth = parse(borderTopWidth, declaration.borderTopWidth);\r\n this.borderRightWidth = parse(borderRightWidth, declaration.borderRightWidth);\r\n this.borderBottomWidth = parse(borderBottomWidth, declaration.borderBottomWidth);\r\n this.borderLeftWidth = parse(borderLeftWidth, declaration.borderLeftWidth);\r\n this.boxShadow = parse(boxShadow, declaration.boxShadow);\r\n this.color = parse(color$1, declaration.color);\r\n this.display = parse(display, declaration.display);\r\n this.float = parse(float, declaration.cssFloat);\r\n this.fontFamily = parse(fontFamily, declaration.fontFamily);\r\n this.fontSize = parse(fontSize, declaration.fontSize);\r\n this.fontStyle = parse(fontStyle, declaration.fontStyle);\r\n this.fontVariant = parse(fontVariant, declaration.fontVariant);\r\n this.fontWeight = parse(fontWeight, declaration.fontWeight);\r\n this.letterSpacing = parse(letterSpacing, declaration.letterSpacing);\r\n this.lineBreak = parse(lineBreak, declaration.lineBreak);\r\n this.lineHeight = parse(lineHeight, declaration.lineHeight);\r\n this.listStyleImage = parse(listStyleImage, declaration.listStyleImage);\r\n this.listStylePosition = parse(listStylePosition, declaration.listStylePosition);\r\n this.listStyleType = parse(listStyleType, declaration.listStyleType);\r\n this.marginTop = parse(marginTop, declaration.marginTop);\r\n this.marginRight = parse(marginRight, declaration.marginRight);\r\n this.marginBottom = parse(marginBottom, declaration.marginBottom);\r\n this.marginLeft = parse(marginLeft, declaration.marginLeft);\r\n this.opacity = parse(opacity, declaration.opacity);\r\n var overflowTuple = parse(overflow, declaration.overflow);\r\n this.overflowX = overflowTuple[0];\r\n this.overflowY = overflowTuple[overflowTuple.length > 1 ? 1 : 0];\r\n this.overflowWrap = parse(overflowWrap, declaration.overflowWrap);\r\n this.paddingTop = parse(paddingTop, declaration.paddingTop);\r\n this.paddingRight = parse(paddingRight, declaration.paddingRight);\r\n this.paddingBottom = parse(paddingBottom, declaration.paddingBottom);\r\n this.paddingLeft = parse(paddingLeft, declaration.paddingLeft);\r\n this.position = parse(position, declaration.position);\r\n this.textAlign = parse(textAlign, declaration.textAlign);\r\n this.textDecorationColor = parse(textDecorationColor, declaration.textDecorationColor || declaration.color);\r\n this.textDecorationLine = parse(textDecorationLine, declaration.textDecorationLine);\r\n this.textShadow = parse(textShadow, declaration.textShadow);\r\n this.textTransform = parse(textTransform, declaration.textTransform);\r\n this.transform = parse(transform, declaration.transform);\r\n this.transformOrigin = parse(transformOrigin, declaration.transformOrigin);\r\n this.visibility = parse(visibility, declaration.visibility);\r\n this.wordBreak = parse(wordBreak, declaration.wordBreak);\r\n this.zIndex = parse(zIndex, declaration.zIndex);\r\n }\r\n CSSParsedDeclaration.prototype.isVisible = function () {\r\n return this.display > 0 && this.opacity > 0 && this.visibility === VISIBILITY.VISIBLE;\r\n };\r\n CSSParsedDeclaration.prototype.isTransparent = function () {\r\n return isTransparent(this.backgroundColor);\r\n };\r\n CSSParsedDeclaration.prototype.isTransformed = function () {\r\n return this.transform !== null;\r\n };\r\n CSSParsedDeclaration.prototype.isPositioned = function () {\r\n return this.position !== POSITION.STATIC;\r\n };\r\n CSSParsedDeclaration.prototype.isPositionedWithZIndex = function () {\r\n return this.isPositioned() && !this.zIndex.auto;\r\n };\r\n CSSParsedDeclaration.prototype.isFloating = function () {\r\n return this.float !== FLOAT.NONE;\r\n };\r\n CSSParsedDeclaration.prototype.isInlineLevel = function () {\r\n return (contains(this.display, 4 /* INLINE */) ||\r\n contains(this.display, 33554432 /* INLINE_BLOCK */) ||\r\n contains(this.display, 268435456 /* INLINE_FLEX */) ||\r\n contains(this.display, 536870912 /* INLINE_GRID */) ||\r\n contains(this.display, 67108864 /* INLINE_LIST_ITEM */) ||\r\n contains(this.display, 134217728 /* INLINE_TABLE */));\r\n };\r\n return CSSParsedDeclaration;\r\n }());\r\n var CSSParsedPseudoDeclaration = /** @class */ (function () {\r\n function CSSParsedPseudoDeclaration(declaration) {\r\n this.content = parse(content, declaration.content);\r\n this.quotes = parse(quotes, declaration.quotes);\r\n }\r\n return CSSParsedPseudoDeclaration;\r\n }());\r\n var CSSParsedCounterDeclaration = /** @class */ (function () {\r\n function CSSParsedCounterDeclaration(declaration) {\r\n this.counterIncrement = parse(counterIncrement, declaration.counterIncrement);\r\n this.counterReset = parse(counterReset, declaration.counterReset);\r\n }\r\n return CSSParsedCounterDeclaration;\r\n }());\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n var parse = function (descriptor, style) {\r\n var tokenizer = new Tokenizer();\r\n var value = style !== null && typeof style !== 'undefined' ? style.toString() : descriptor.initialValue;\r\n tokenizer.write(value);\r\n var parser = new Parser(tokenizer.read());\r\n switch (descriptor.type) {\r\n case PropertyDescriptorParsingType.IDENT_VALUE:\r\n var token = parser.parseComponentValue();\r\n return descriptor.parse(isIdentToken(token) ? token.value : descriptor.initialValue);\r\n case PropertyDescriptorParsingType.VALUE:\r\n return descriptor.parse(parser.parseComponentValue());\r\n case PropertyDescriptorParsingType.LIST:\r\n return descriptor.parse(parser.parseComponentValues());\r\n case PropertyDescriptorParsingType.TOKEN_VALUE:\r\n return parser.parseComponentValue();\r\n case PropertyDescriptorParsingType.TYPE_VALUE:\r\n switch (descriptor.format) {\r\n case 'angle':\r\n return angle.parse(parser.parseComponentValue());\r\n case 'color':\r\n return color.parse(parser.parseComponentValue());\r\n case 'image':\r\n return image.parse(parser.parseComponentValue());\r\n case 'length':\r\n var length_1 = parser.parseComponentValue();\r\n return isLength(length_1) ? length_1 : ZERO_LENGTH;\r\n case 'length-percentage':\r\n var value_1 = parser.parseComponentValue();\r\n return isLengthPercentage(value_1) ? value_1 : ZERO_LENGTH;\r\n }\r\n }\r\n throw new Error(\"Attempting to parse unsupported css format type \" + descriptor.format);\r\n };\n\n var ElementContainer = /** @class */ (function () {\r\n function ElementContainer(element) {\r\n this.styles = new CSSParsedDeclaration(window.getComputedStyle(element, null));\r\n this.textNodes = [];\r\n this.elements = [];\r\n if (this.styles.transform !== null && isHTMLElementNode(element)) {\r\n // getBoundingClientRect takes transforms into account\r\n element.style.transform = 'none';\r\n }\r\n this.bounds = parseBounds(element);\r\n this.flags = 0;\r\n }\r\n return ElementContainer;\r\n }());\n\n var TextBounds = /** @class */ (function () {\r\n function TextBounds(text, bounds) {\r\n this.text = text;\r\n this.bounds = bounds;\r\n }\r\n return TextBounds;\r\n }());\r\n var parseTextBounds = function (value, styles, node) {\r\n var textList = breakText(value, styles);\r\n var textBounds = [];\r\n var offset = 0;\r\n textList.forEach(function (text) {\r\n if (styles.textDecorationLine.length || text.trim().length > 0) {\r\n if (FEATURES.SUPPORT_RANGE_BOUNDS) {\r\n textBounds.push(new TextBounds(text, getRangeBounds(node, offset, text.length)));\r\n }\r\n else {\r\n var replacementNode = node.splitText(text.length);\r\n textBounds.push(new TextBounds(text, getWrapperBounds(node)));\r\n node = replacementNode;\r\n }\r\n }\r\n else if (!FEATURES.SUPPORT_RANGE_BOUNDS) {\r\n node = node.splitText(text.length);\r\n }\r\n offset += text.length;\r\n });\r\n return textBounds;\r\n };\r\n var getWrapperBounds = function (node) {\r\n var ownerDocument = node.ownerDocument;\r\n if (ownerDocument) {\r\n var wrapper = ownerDocument.createElement('html2canvaswrapper');\r\n wrapper.appendChild(node.cloneNode(true));\r\n var parentNode = node.parentNode;\r\n if (parentNode) {\r\n parentNode.replaceChild(wrapper, node);\r\n var bounds = parseBounds(wrapper);\r\n if (wrapper.firstChild) {\r\n parentNode.replaceChild(wrapper.firstChild, wrapper);\r\n }\r\n return bounds;\r\n }\r\n }\r\n return new Bounds(0, 0, 0, 0);\r\n };\r\n var getRangeBounds = function (node, offset, length) {\r\n var ownerDocument = node.ownerDocument;\r\n if (!ownerDocument) {\r\n throw new Error('Node has no owner document');\r\n }\r\n var range = ownerDocument.createRange();\r\n range.setStart(node, offset);\r\n range.setEnd(node, offset + length);\r\n return Bounds.fromClientRect(range.getBoundingClientRect());\r\n };\r\n var breakText = function (value, styles) {\r\n return styles.letterSpacing !== 0 ? toCodePoints(value).map(function (i) { return fromCodePoint(i); }) : breakWords(value, styles);\r\n };\r\n var breakWords = function (str, styles) {\r\n var breaker = LineBreaker(str, {\r\n lineBreak: styles.lineBreak,\r\n wordBreak: styles.overflowWrap === OVERFLOW_WRAP.BREAK_WORD ? 'break-word' : styles.wordBreak\r\n });\r\n var words = [];\r\n var bk;\r\n while (!(bk = breaker.next()).done) {\r\n if (bk.value) {\r\n words.push(bk.value.slice());\r\n }\r\n }\r\n return words;\r\n };\n\n var TextContainer = /** @class */ (function () {\r\n function TextContainer(node, styles) {\r\n this.text = transform$1(node.data, styles.textTransform);\r\n this.textBounds = parseTextBounds(this.text, styles, node);\r\n }\r\n return TextContainer;\r\n }());\r\n var transform$1 = function (text, transform) {\r\n switch (transform) {\r\n case TEXT_TRANSFORM.LOWERCASE:\r\n return text.toLowerCase();\r\n case TEXT_TRANSFORM.CAPITALIZE:\r\n return text.replace(CAPITALIZE, capitalize);\r\n case TEXT_TRANSFORM.UPPERCASE:\r\n return text.toUpperCase();\r\n default:\r\n return text;\r\n }\r\n };\r\n var CAPITALIZE = /(^|\\s|:|-|\\(|\\))([a-z])/g;\r\n var capitalize = function (m, p1, p2) {\r\n if (m.length > 0) {\r\n return p1 + p2.toUpperCase();\r\n }\r\n return m;\r\n };\n\n var ImageElementContainer = /** @class */ (function (_super) {\r\n __extends(ImageElementContainer, _super);\r\n function ImageElementContainer(img) {\r\n var _this = _super.call(this, img) || this;\r\n _this.src = img.currentSrc || img.src;\r\n _this.intrinsicWidth = img.naturalWidth;\r\n _this.intrinsicHeight = img.naturalHeight;\r\n CacheStorage.getInstance().addImage(_this.src);\r\n return _this;\r\n }\r\n return ImageElementContainer;\r\n }(ElementContainer));\n\n var CanvasElementContainer = /** @class */ (function (_super) {\r\n __extends(CanvasElementContainer, _super);\r\n function CanvasElementContainer(canvas) {\r\n var _this = _super.call(this, canvas) || this;\r\n _this.canvas = canvas;\r\n _this.intrinsicWidth = canvas.width;\r\n _this.intrinsicHeight = canvas.height;\r\n return _this;\r\n }\r\n return CanvasElementContainer;\r\n }(ElementContainer));\n\n var SVGElementContainer = /** @class */ (function (_super) {\r\n __extends(SVGElementContainer, _super);\r\n function SVGElementContainer(img) {\r\n var _this = _super.call(this, img) || this;\r\n var s = new XMLSerializer();\r\n _this.svg = \"data:image/svg+xml,\" + encodeURIComponent(s.serializeToString(img));\r\n _this.intrinsicWidth = img.width.baseVal.value;\r\n _this.intrinsicHeight = img.height.baseVal.value;\r\n CacheStorage.getInstance().addImage(_this.svg);\r\n return _this;\r\n }\r\n return SVGElementContainer;\r\n }(ElementContainer));\n\n var LIElementContainer = /** @class */ (function (_super) {\r\n __extends(LIElementContainer, _super);\r\n function LIElementContainer(element) {\r\n var _this = _super.call(this, element) || this;\r\n _this.value = element.value;\r\n return _this;\r\n }\r\n return LIElementContainer;\r\n }(ElementContainer));\n\n var OLElementContainer = /** @class */ (function (_super) {\r\n __extends(OLElementContainer, _super);\r\n function OLElementContainer(element) {\r\n var _this = _super.call(this, element) || this;\r\n _this.start = element.start;\r\n _this.reversed = typeof element.reversed === 'boolean' && element.reversed === true;\r\n return _this;\r\n }\r\n return OLElementContainer;\r\n }(ElementContainer));\n\n var CHECKBOX_BORDER_RADIUS = [\r\n {\r\n type: TokenType.DIMENSION_TOKEN,\r\n flags: 0,\r\n unit: 'px',\r\n number: 3\r\n }\r\n ];\r\n var RADIO_BORDER_RADIUS = [\r\n {\r\n type: TokenType.PERCENTAGE_TOKEN,\r\n flags: 0,\r\n number: 50\r\n }\r\n ];\r\n var reformatInputBounds = function (bounds) {\r\n if (bounds.width > bounds.height) {\r\n return new Bounds(bounds.left + (bounds.width - bounds.height) / 2, bounds.top, bounds.height, bounds.height);\r\n }\r\n else if (bounds.width < bounds.height) {\r\n return new Bounds(bounds.left, bounds.top + (bounds.height - bounds.width) / 2, bounds.width, bounds.width);\r\n }\r\n return bounds;\r\n };\r\n var getInputValue = function (node) {\r\n var value = node.type === PASSWORD ? new Array(node.value.length + 1).join('\\u2022') : node.value;\r\n return value.length === 0 ? node.placeholder || '' : value;\r\n };\r\n var CHECKBOX = 'checkbox';\r\n var RADIO = 'radio';\r\n var PASSWORD = 'password';\r\n var INPUT_COLOR = 0x2a2a2aff;\r\n var InputElementContainer = /** @class */ (function (_super) {\r\n __extends(InputElementContainer, _super);\r\n function InputElementContainer(input) {\r\n var _this = _super.call(this, input) || this;\r\n _this.type = input.type.toLowerCase();\r\n _this.checked = input.checked;\r\n _this.value = getInputValue(input);\r\n if (_this.type === CHECKBOX || _this.type === RADIO) {\r\n _this.styles.backgroundColor = 0xdededeff;\r\n _this.styles.borderTopColor = _this.styles.borderRightColor = _this.styles.borderBottomColor = _this.styles.borderLeftColor = 0xa5a5a5ff;\r\n _this.styles.borderTopWidth = _this.styles.borderRightWidth = _this.styles.borderBottomWidth = _this.styles.borderLeftWidth = 1;\r\n _this.styles.borderTopStyle = _this.styles.borderRightStyle = _this.styles.borderBottomStyle = _this.styles.borderLeftStyle =\r\n BORDER_STYLE.SOLID;\r\n _this.styles.backgroundClip = [BACKGROUND_CLIP.BORDER_BOX];\r\n _this.styles.backgroundOrigin = [0 /* BORDER_BOX */];\r\n _this.bounds = reformatInputBounds(_this.bounds);\r\n }\r\n switch (_this.type) {\r\n case CHECKBOX:\r\n _this.styles.borderTopRightRadius = _this.styles.borderTopLeftRadius = _this.styles.borderBottomRightRadius = _this.styles.borderBottomLeftRadius = CHECKBOX_BORDER_RADIUS;\r\n break;\r\n case RADIO:\r\n _this.styles.borderTopRightRadius = _this.styles.borderTopLeftRadius = _this.styles.borderBottomRightRadius = _this.styles.borderBottomLeftRadius = RADIO_BORDER_RADIUS;\r\n break;\r\n }\r\n return _this;\r\n }\r\n return InputElementContainer;\r\n }(ElementContainer));\n\n var SelectElementContainer = /** @class */ (function (_super) {\r\n __extends(SelectElementContainer, _super);\r\n function SelectElementContainer(element) {\r\n var _this = _super.call(this, element) || this;\r\n var option = element.options[element.selectedIndex || 0];\r\n _this.value = option ? option.text || '' : '';\r\n return _this;\r\n }\r\n return SelectElementContainer;\r\n }(ElementContainer));\n\n var TextareaElementContainer = /** @class */ (function (_super) {\r\n __extends(TextareaElementContainer, _super);\r\n function TextareaElementContainer(element) {\r\n var _this = _super.call(this, element) || this;\r\n _this.value = element.value;\r\n return _this;\r\n }\r\n return TextareaElementContainer;\r\n }(ElementContainer));\n\n var parseColor = function (value) { return color.parse(Parser.create(value).parseComponentValue()); };\r\n var IFrameElementContainer = /** @class */ (function (_super) {\r\n __extends(IFrameElementContainer, _super);\r\n function IFrameElementContainer(iframe) {\r\n var _this = _super.call(this, iframe) || this;\r\n _this.src = iframe.src;\r\n _this.width = parseInt(iframe.width, 10) || 0;\r\n _this.height = parseInt(iframe.height, 10) || 0;\r\n _this.backgroundColor = _this.styles.backgroundColor;\r\n try {\r\n if (iframe.contentWindow &&\r\n iframe.contentWindow.document &&\r\n iframe.contentWindow.document.documentElement) {\r\n _this.tree = parseTree(iframe.contentWindow.document.documentElement);\r\n // http://www.w3.org/TR/css3-background/#special-backgrounds\r\n var documentBackgroundColor = iframe.contentWindow.document.documentElement\r\n ? parseColor(getComputedStyle(iframe.contentWindow.document.documentElement)\r\n .backgroundColor)\r\n : COLORS.TRANSPARENT;\r\n var bodyBackgroundColor = iframe.contentWindow.document.body\r\n ? parseColor(getComputedStyle(iframe.contentWindow.document.body).backgroundColor)\r\n : COLORS.TRANSPARENT;\r\n _this.backgroundColor = isTransparent(documentBackgroundColor)\r\n ? isTransparent(bodyBackgroundColor)\r\n ? _this.styles.backgroundColor\r\n : bodyBackgroundColor\r\n : documentBackgroundColor;\r\n }\r\n }\r\n catch (e) { }\r\n return _this;\r\n }\r\n return IFrameElementContainer;\r\n }(ElementContainer));\n\n var LIST_OWNERS = ['OL', 'UL', 'MENU'];\r\n var parseNodeTree = function (node, parent, root) {\r\n for (var childNode = node.firstChild, nextNode = void 0; childNode; childNode = nextNode) {\r\n nextNode = childNode.nextSibling;\r\n if (isTextNode(childNode) && childNode.data.trim().length > 0) {\r\n parent.textNodes.push(new TextContainer(childNode, parent.styles));\r\n }\r\n else if (isElementNode(childNode)) {\r\n var container = createContainer(childNode);\r\n if (container.styles.isVisible()) {\r\n if (createsRealStackingContext(childNode, container, root)) {\r\n container.flags |= 4 /* CREATES_REAL_STACKING_CONTEXT */;\r\n }\r\n else if (createsStackingContext(container.styles)) {\r\n container.flags |= 2 /* CREATES_STACKING_CONTEXT */;\r\n }\r\n if (LIST_OWNERS.indexOf(childNode.tagName) !== -1) {\r\n container.flags |= 8 /* IS_LIST_OWNER */;\r\n }\r\n parent.elements.push(container);\r\n if (!isTextareaElement(childNode) && !isSVGElement(childNode) && !isSelectElement(childNode)) {\r\n parseNodeTree(childNode, container, root);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n var createContainer = function (element) {\r\n if (isImageElement(element)) {\r\n return new ImageElementContainer(element);\r\n }\r\n if (isCanvasElement(element)) {\r\n return new CanvasElementContainer(element);\r\n }\r\n if (isSVGElement(element)) {\r\n return new SVGElementContainer(element);\r\n }\r\n if (isLIElement(element)) {\r\n return new LIElementContainer(element);\r\n }\r\n if (isOLElement(element)) {\r\n return new OLElementContainer(element);\r\n }\r\n if (isInputElement(element)) {\r\n return new InputElementContainer(element);\r\n }\r\n if (isSelectElement(element)) {\r\n return new SelectElementContainer(element);\r\n }\r\n if (isTextareaElement(element)) {\r\n return new TextareaElementContainer(element);\r\n }\r\n if (isIFrameElement(element)) {\r\n return new IFrameElementContainer(element);\r\n }\r\n return new ElementContainer(element);\r\n };\r\n var parseTree = function (element) {\r\n var container = createContainer(element);\r\n container.flags |= 4 /* CREATES_REAL_STACKING_CONTEXT */;\r\n parseNodeTree(element, container, container);\r\n return container;\r\n };\r\n var createsRealStackingContext = function (node, container, root) {\r\n return (container.styles.isPositionedWithZIndex() ||\r\n container.styles.opacity < 1 ||\r\n container.styles.isTransformed() ||\r\n (isBodyElement(node) && root.styles.isTransparent()));\r\n };\r\n var createsStackingContext = function (styles) { return styles.isPositioned() || styles.isFloating(); };\r\n var isTextNode = function (node) { return node.nodeType === Node.TEXT_NODE; };\r\n var isElementNode = function (node) { return node.nodeType === Node.ELEMENT_NODE; };\r\n var isHTMLElementNode = function (node) {\r\n return isElementNode(node) && typeof node.style !== 'undefined' && !isSVGElementNode(node);\r\n };\r\n var isSVGElementNode = function (element) {\r\n return typeof element.className === 'object';\r\n };\r\n var isLIElement = function (node) { return node.tagName === 'LI'; };\r\n var isOLElement = function (node) { return node.tagName === 'OL'; };\r\n var isInputElement = function (node) { return node.tagName === 'INPUT'; };\r\n var isHTMLElement = function (node) { return node.tagName === 'HTML'; };\r\n var isSVGElement = function (node) { return node.tagName === 'svg'; };\r\n var isBodyElement = function (node) { return node.tagName === 'BODY'; };\r\n var isCanvasElement = function (node) { return node.tagName === 'CANVAS'; };\r\n var isImageElement = function (node) { return node.tagName === 'IMG'; };\r\n var isIFrameElement = function (node) { return node.tagName === 'IFRAME'; };\r\n var isStyleElement = function (node) { return node.tagName === 'STYLE'; };\r\n var isScriptElement = function (node) { return node.tagName === 'SCRIPT'; };\r\n var isTextareaElement = function (node) { return node.tagName === 'TEXTAREA'; };\r\n var isSelectElement = function (node) { return node.tagName === 'SELECT'; };\n\n var CounterState = /** @class */ (function () {\r\n function CounterState() {\r\n this.counters = {};\r\n }\r\n CounterState.prototype.getCounterValue = function (name) {\r\n var counter = this.counters[name];\r\n if (counter && counter.length) {\r\n return counter[counter.length - 1];\r\n }\r\n return 1;\r\n };\r\n CounterState.prototype.getCounterValues = function (name) {\r\n var counter = this.counters[name];\r\n return counter ? counter : [];\r\n };\r\n CounterState.prototype.pop = function (counters) {\r\n var _this = this;\r\n counters.forEach(function (counter) { return _this.counters[counter].pop(); });\r\n };\r\n CounterState.prototype.parse = function (style) {\r\n var _this = this;\r\n var counterIncrement = style.counterIncrement;\r\n var counterReset = style.counterReset;\r\n var canReset = true;\r\n if (counterIncrement !== null) {\r\n counterIncrement.forEach(function (entry) {\r\n var counter = _this.counters[entry.counter];\r\n if (counter && entry.increment !== 0) {\r\n canReset = false;\r\n counter[Math.max(0, counter.length - 1)] += entry.increment;\r\n }\r\n });\r\n }\r\n var counterNames = [];\r\n if (canReset) {\r\n counterReset.forEach(function (entry) {\r\n var counter = _this.counters[entry.counter];\r\n counterNames.push(entry.counter);\r\n if (!counter) {\r\n counter = _this.counters[entry.counter] = [];\r\n }\r\n counter.push(entry.reset);\r\n });\r\n }\r\n return counterNames;\r\n };\r\n return CounterState;\r\n }());\r\n var ROMAN_UPPER = {\r\n integers: [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1],\r\n values: ['M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I']\r\n };\r\n var ARMENIAN = {\r\n integers: [\r\n 9000,\r\n 8000,\r\n 7000,\r\n 6000,\r\n 5000,\r\n 4000,\r\n 3000,\r\n 2000,\r\n 1000,\r\n 900,\r\n 800,\r\n 700,\r\n 600,\r\n 500,\r\n 400,\r\n 300,\r\n 200,\r\n 100,\r\n 90,\r\n 80,\r\n 70,\r\n 60,\r\n 50,\r\n 40,\r\n 30,\r\n 20,\r\n 10,\r\n 9,\r\n 8,\r\n 7,\r\n 6,\r\n 5,\r\n 4,\r\n 3,\r\n 2,\r\n 1\r\n ],\r\n values: [\r\n 'Ք',\r\n 'Փ',\r\n 'Ւ',\r\n 'Ց',\r\n 'Ր',\r\n 'Տ',\r\n 'Վ',\r\n 'Ս',\r\n 'Ռ',\r\n 'Ջ',\r\n 'Պ',\r\n 'Չ',\r\n 'Ո',\r\n 'Շ',\r\n 'Ն',\r\n 'Յ',\r\n 'Մ',\r\n 'Ճ',\r\n 'Ղ',\r\n 'Ձ',\r\n 'Հ',\r\n 'Կ',\r\n 'Ծ',\r\n 'Խ',\r\n 'Լ',\r\n 'Ի',\r\n 'Ժ',\r\n 'Թ',\r\n 'Ը',\r\n 'Է',\r\n 'Զ',\r\n 'Ե',\r\n 'Դ',\r\n 'Գ',\r\n 'Բ',\r\n 'Ա'\r\n ]\r\n };\r\n var HEBREW = {\r\n integers: [\r\n 10000,\r\n 9000,\r\n 8000,\r\n 7000,\r\n 6000,\r\n 5000,\r\n 4000,\r\n 3000,\r\n 2000,\r\n 1000,\r\n 400,\r\n 300,\r\n 200,\r\n 100,\r\n 90,\r\n 80,\r\n 70,\r\n 60,\r\n 50,\r\n 40,\r\n 30,\r\n 20,\r\n 19,\r\n 18,\r\n 17,\r\n 16,\r\n 15,\r\n 10,\r\n 9,\r\n 8,\r\n 7,\r\n 6,\r\n 5,\r\n 4,\r\n 3,\r\n 2,\r\n 1\r\n ],\r\n values: [\r\n 'י׳',\r\n 'ט׳',\r\n 'ח׳',\r\n 'ז׳',\r\n 'ו׳',\r\n 'ה׳',\r\n 'ד׳',\r\n 'ג׳',\r\n 'ב׳',\r\n 'א׳',\r\n 'ת',\r\n 'ש',\r\n 'ר',\r\n 'ק',\r\n 'צ',\r\n 'פ',\r\n 'ע',\r\n 'ס',\r\n 'נ',\r\n 'מ',\r\n 'ל',\r\n 'כ',\r\n 'יט',\r\n 'יח',\r\n 'יז',\r\n 'טז',\r\n 'טו',\r\n 'י',\r\n 'ט',\r\n 'ח',\r\n 'ז',\r\n 'ו',\r\n 'ה',\r\n 'ד',\r\n 'ג',\r\n 'ב',\r\n 'א'\r\n ]\r\n };\r\n var GEORGIAN = {\r\n integers: [\r\n 10000,\r\n 9000,\r\n 8000,\r\n 7000,\r\n 6000,\r\n 5000,\r\n 4000,\r\n 3000,\r\n 2000,\r\n 1000,\r\n 900,\r\n 800,\r\n 700,\r\n 600,\r\n 500,\r\n 400,\r\n 300,\r\n 200,\r\n 100,\r\n 90,\r\n 80,\r\n 70,\r\n 60,\r\n 50,\r\n 40,\r\n 30,\r\n 20,\r\n 10,\r\n 9,\r\n 8,\r\n 7,\r\n 6,\r\n 5,\r\n 4,\r\n 3,\r\n 2,\r\n 1\r\n ],\r\n values: [\r\n 'ჵ',\r\n 'ჰ',\r\n 'ჯ',\r\n 'ჴ',\r\n 'ხ',\r\n 'ჭ',\r\n 'წ',\r\n 'ძ',\r\n 'ც',\r\n 'ჩ',\r\n 'შ',\r\n 'ყ',\r\n 'ღ',\r\n 'ქ',\r\n 'ფ',\r\n 'ჳ',\r\n 'ტ',\r\n 'ს',\r\n 'რ',\r\n 'ჟ',\r\n 'პ',\r\n 'ო',\r\n 'ჲ',\r\n 'ნ',\r\n 'მ',\r\n 'ლ',\r\n 'კ',\r\n 'ი',\r\n 'თ',\r\n 'ჱ',\r\n 'ზ',\r\n 'ვ',\r\n 'ე',\r\n 'დ',\r\n 'გ',\r\n 'ბ',\r\n 'ა'\r\n ]\r\n };\r\n var createAdditiveCounter = function (value, min, max, symbols, fallback, suffix) {\r\n if (value < min || value > max) {\r\n return createCounterText(value, fallback, suffix.length > 0);\r\n }\r\n return (symbols.integers.reduce(function (string, integer, index) {\r\n while (value >= integer) {\r\n value -= integer;\r\n string += symbols.values[index];\r\n }\r\n return string;\r\n }, '') + suffix);\r\n };\r\n var createCounterStyleWithSymbolResolver = function (value, codePointRangeLength, isNumeric, resolver) {\r\n var string = '';\r\n do {\r\n if (!isNumeric) {\r\n value--;\r\n }\r\n string = resolver(value) + string;\r\n value /= codePointRangeLength;\r\n } while (value * codePointRangeLength >= codePointRangeLength);\r\n return string;\r\n };\r\n var createCounterStyleFromRange = function (value, codePointRangeStart, codePointRangeEnd, isNumeric, suffix) {\r\n var codePointRangeLength = codePointRangeEnd - codePointRangeStart + 1;\r\n return ((value < 0 ? '-' : '') +\r\n (createCounterStyleWithSymbolResolver(Math.abs(value), codePointRangeLength, isNumeric, function (codePoint) {\r\n return fromCodePoint(Math.floor(codePoint % codePointRangeLength) + codePointRangeStart);\r\n }) +\r\n suffix));\r\n };\r\n var createCounterStyleFromSymbols = function (value, symbols, suffix) {\r\n if (suffix === void 0) { suffix = '. '; }\r\n var codePointRangeLength = symbols.length;\r\n return (createCounterStyleWithSymbolResolver(Math.abs(value), codePointRangeLength, false, function (codePoint) { return symbols[Math.floor(codePoint % codePointRangeLength)]; }) + suffix);\r\n };\r\n var CJK_ZEROS = 1 << 0;\r\n var CJK_TEN_COEFFICIENTS = 1 << 1;\r\n var CJK_TEN_HIGH_COEFFICIENTS = 1 << 2;\r\n var CJK_HUNDRED_COEFFICIENTS = 1 << 3;\r\n var createCJKCounter = function (value, numbers, multipliers, negativeSign, suffix, flags) {\r\n if (value < -9999 || value > 9999) {\r\n return createCounterText(value, LIST_STYLE_TYPE.CJK_DECIMAL, suffix.length > 0);\r\n }\r\n var tmp = Math.abs(value);\r\n var string = suffix;\r\n if (tmp === 0) {\r\n return numbers[0] + string;\r\n }\r\n for (var digit = 0; tmp > 0 && digit <= 4; digit++) {\r\n var coefficient = tmp % 10;\r\n if (coefficient === 0 && contains(flags, CJK_ZEROS) && string !== '') {\r\n string = numbers[coefficient] + string;\r\n }\r\n else if (coefficient > 1 ||\r\n (coefficient === 1 && digit === 0) ||\r\n (coefficient === 1 && digit === 1 && contains(flags, CJK_TEN_COEFFICIENTS)) ||\r\n (coefficient === 1 && digit === 1 && contains(flags, CJK_TEN_HIGH_COEFFICIENTS) && value > 100) ||\r\n (coefficient === 1 && digit > 1 && contains(flags, CJK_HUNDRED_COEFFICIENTS))) {\r\n string = numbers[coefficient] + (digit > 0 ? multipliers[digit - 1] : '') + string;\r\n }\r\n else if (coefficient === 1 && digit > 0) {\r\n string = multipliers[digit - 1] + string;\r\n }\r\n tmp = Math.floor(tmp / 10);\r\n }\r\n return (value < 0 ? negativeSign : '') + string;\r\n };\r\n var CHINESE_INFORMAL_MULTIPLIERS = '十百千萬';\r\n var CHINESE_FORMAL_MULTIPLIERS = '拾佰仟萬';\r\n var JAPANESE_NEGATIVE = 'マイナス';\r\n var KOREAN_NEGATIVE = '마이너스';\r\n var createCounterText = function (value, type, appendSuffix) {\r\n var defaultSuffix = appendSuffix ? '. ' : '';\r\n var cjkSuffix = appendSuffix ? '、' : '';\r\n var koreanSuffix = appendSuffix ? ', ' : '';\r\n var spaceSuffix = appendSuffix ? ' ' : '';\r\n switch (type) {\r\n case LIST_STYLE_TYPE.DISC:\r\n return '•' + spaceSuffix;\r\n case LIST_STYLE_TYPE.CIRCLE:\r\n return '◦' + spaceSuffix;\r\n case LIST_STYLE_TYPE.SQUARE:\r\n return '◾' + spaceSuffix;\r\n case LIST_STYLE_TYPE.DECIMAL_LEADING_ZERO:\r\n var string = createCounterStyleFromRange(value, 48, 57, true, defaultSuffix);\r\n return string.length < 4 ? \"0\" + string : string;\r\n case LIST_STYLE_TYPE.CJK_DECIMAL:\r\n return createCounterStyleFromSymbols(value, '〇一二三四五六七八九', cjkSuffix);\r\n case LIST_STYLE_TYPE.LOWER_ROMAN:\r\n return createAdditiveCounter(value, 1, 3999, ROMAN_UPPER, LIST_STYLE_TYPE.DECIMAL, defaultSuffix).toLowerCase();\r\n case LIST_STYLE_TYPE.UPPER_ROMAN:\r\n return createAdditiveCounter(value, 1, 3999, ROMAN_UPPER, LIST_STYLE_TYPE.DECIMAL, defaultSuffix);\r\n case LIST_STYLE_TYPE.LOWER_GREEK:\r\n return createCounterStyleFromRange(value, 945, 969, false, defaultSuffix);\r\n case LIST_STYLE_TYPE.LOWER_ALPHA:\r\n return createCounterStyleFromRange(value, 97, 122, false, defaultSuffix);\r\n case LIST_STYLE_TYPE.UPPER_ALPHA:\r\n return createCounterStyleFromRange(value, 65, 90, false, defaultSuffix);\r\n case LIST_STYLE_TYPE.ARABIC_INDIC:\r\n return createCounterStyleFromRange(value, 1632, 1641, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.ARMENIAN:\r\n case LIST_STYLE_TYPE.UPPER_ARMENIAN:\r\n return createAdditiveCounter(value, 1, 9999, ARMENIAN, LIST_STYLE_TYPE.DECIMAL, defaultSuffix);\r\n case LIST_STYLE_TYPE.LOWER_ARMENIAN:\r\n return createAdditiveCounter(value, 1, 9999, ARMENIAN, LIST_STYLE_TYPE.DECIMAL, defaultSuffix).toLowerCase();\r\n case LIST_STYLE_TYPE.BENGALI:\r\n return createCounterStyleFromRange(value, 2534, 2543, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.CAMBODIAN:\r\n case LIST_STYLE_TYPE.KHMER:\r\n return createCounterStyleFromRange(value, 6112, 6121, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.CJK_EARTHLY_BRANCH:\r\n return createCounterStyleFromSymbols(value, '子丑寅卯辰巳午未申酉戌亥', cjkSuffix);\r\n case LIST_STYLE_TYPE.CJK_HEAVENLY_STEM:\r\n return createCounterStyleFromSymbols(value, '甲乙丙丁戊己庚辛壬癸', cjkSuffix);\r\n case LIST_STYLE_TYPE.CJK_IDEOGRAPHIC:\r\n case LIST_STYLE_TYPE.TRAD_CHINESE_INFORMAL:\r\n return createCJKCounter(value, '零一二三四五六七八九', CHINESE_INFORMAL_MULTIPLIERS, '負', cjkSuffix, CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS);\r\n case LIST_STYLE_TYPE.TRAD_CHINESE_FORMAL:\r\n return createCJKCounter(value, '零壹貳參肆伍陸柒捌玖', CHINESE_FORMAL_MULTIPLIERS, '負', cjkSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS);\r\n case LIST_STYLE_TYPE.SIMP_CHINESE_INFORMAL:\r\n return createCJKCounter(value, '零一二三四五六七八九', CHINESE_INFORMAL_MULTIPLIERS, '负', cjkSuffix, CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS);\r\n case LIST_STYLE_TYPE.SIMP_CHINESE_FORMAL:\r\n return createCJKCounter(value, '零壹贰叁肆伍陆柒捌玖', CHINESE_FORMAL_MULTIPLIERS, '负', cjkSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS);\r\n case LIST_STYLE_TYPE.JAPANESE_INFORMAL:\r\n return createCJKCounter(value, '〇一二三四五六七八九', '十百千万', JAPANESE_NEGATIVE, cjkSuffix, 0);\r\n case LIST_STYLE_TYPE.JAPANESE_FORMAL:\r\n return createCJKCounter(value, '零壱弐参四伍六七八九', '拾百千万', JAPANESE_NEGATIVE, cjkSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS);\r\n case LIST_STYLE_TYPE.KOREAN_HANGUL_FORMAL:\r\n return createCJKCounter(value, '영일이삼사오육칠팔구', '십백천만', KOREAN_NEGATIVE, koreanSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS);\r\n case LIST_STYLE_TYPE.KOREAN_HANJA_INFORMAL:\r\n return createCJKCounter(value, '零一二三四五六七八九', '十百千萬', KOREAN_NEGATIVE, koreanSuffix, 0);\r\n case LIST_STYLE_TYPE.KOREAN_HANJA_FORMAL:\r\n return createCJKCounter(value, '零壹貳參四五六七八九', '拾百千', KOREAN_NEGATIVE, koreanSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS);\r\n case LIST_STYLE_TYPE.DEVANAGARI:\r\n return createCounterStyleFromRange(value, 0x966, 0x96f, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.GEORGIAN:\r\n return createAdditiveCounter(value, 1, 19999, GEORGIAN, LIST_STYLE_TYPE.DECIMAL, defaultSuffix);\r\n case LIST_STYLE_TYPE.GUJARATI:\r\n return createCounterStyleFromRange(value, 0xae6, 0xaef, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.GURMUKHI:\r\n return createCounterStyleFromRange(value, 0xa66, 0xa6f, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.HEBREW:\r\n return createAdditiveCounter(value, 1, 10999, HEBREW, LIST_STYLE_TYPE.DECIMAL, defaultSuffix);\r\n case LIST_STYLE_TYPE.HIRAGANA:\r\n return createCounterStyleFromSymbols(value, 'あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん');\r\n case LIST_STYLE_TYPE.HIRAGANA_IROHA:\r\n return createCounterStyleFromSymbols(value, 'いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす');\r\n case LIST_STYLE_TYPE.KANNADA:\r\n return createCounterStyleFromRange(value, 0xce6, 0xcef, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.KATAKANA:\r\n return createCounterStyleFromSymbols(value, 'アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン', cjkSuffix);\r\n case LIST_STYLE_TYPE.KATAKANA_IROHA:\r\n return createCounterStyleFromSymbols(value, 'イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス', cjkSuffix);\r\n case LIST_STYLE_TYPE.LAO:\r\n return createCounterStyleFromRange(value, 0xed0, 0xed9, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.MONGOLIAN:\r\n return createCounterStyleFromRange(value, 0x1810, 0x1819, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.MYANMAR:\r\n return createCounterStyleFromRange(value, 0x1040, 0x1049, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.ORIYA:\r\n return createCounterStyleFromRange(value, 0xb66, 0xb6f, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.PERSIAN:\r\n return createCounterStyleFromRange(value, 0x6f0, 0x6f9, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.TAMIL:\r\n return createCounterStyleFromRange(value, 0xbe6, 0xbef, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.TELUGU:\r\n return createCounterStyleFromRange(value, 0xc66, 0xc6f, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.THAI:\r\n return createCounterStyleFromRange(value, 0xe50, 0xe59, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.TIBETAN:\r\n return createCounterStyleFromRange(value, 0xf20, 0xf29, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.DECIMAL:\r\n default:\r\n return createCounterStyleFromRange(value, 48, 57, true, defaultSuffix);\r\n }\r\n };\n\n var IGNORE_ATTRIBUTE = 'data-html2canvas-ignore';\r\n var DocumentCloner = /** @class */ (function () {\r\n function DocumentCloner(element, options) {\r\n this.options = options;\r\n this.scrolledElements = [];\r\n this.referenceElement = element;\r\n this.counters = new CounterState();\r\n this.quoteDepth = 0;\r\n if (!element.ownerDocument) {\r\n throw new Error('Cloned element does not have an owner document');\r\n }\r\n this.documentElement = this.cloneNode(element.ownerDocument.documentElement);\r\n }\r\n DocumentCloner.prototype.toIFrame = function (ownerDocument, windowSize) {\r\n var _this = this;\r\n var iframe = createIFrameContainer(ownerDocument, windowSize);\r\n if (!iframe.contentWindow) {\r\n return Promise.reject(\"Unable to find iframe window\");\r\n }\r\n var scrollX = ownerDocument.defaultView.pageXOffset;\r\n var scrollY = ownerDocument.defaultView.pageYOffset;\r\n var cloneWindow = iframe.contentWindow;\r\n var documentClone = cloneWindow.document;\r\n /* Chrome doesn't detect relative background-images assigned in inline '];\n\topts.cellXfs.forEach(function(xf, id) {\n\t\tvar payload = [];\n\t\tpayload.push(writextag('NumberFormat', null, {\"ss:Format\": escapexml(SSF._table[xf.numFmtId])}));\n\n\t\tvar o = {\"ss:ID\": \"s\" + (21+id)};\n\t\tstyles.push(writextag('Style', payload.join(\"\"), o));\n\t});\n\treturn writextag(\"Styles\", styles.join(\"\"));\n}\nfunction write_name_xlml(n) { return writextag(\"NamedRange\", null, {\"ss:Name\": n.Name, \"ss:RefersTo\":\"=\" + a1_to_rc(n.Ref, {r:0,c:0})}); }\nfunction write_names_xlml(wb) {\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\nvar names = wb.Workbook.Names;\n\tvar out = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != null) continue;\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn writextag(\"Names\", out.join(\"\"));\n}\nfunction write_ws_xlml_names(ws, opts, idx, wb) {\n\tif(!ws) return \"\";\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\nvar names = wb.Workbook.Names;\n\tvar out = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != idx) continue;\n\t\t/*switch(n.Name) {\n\t\t\tcase \"_\": continue;\n\t\t}*/\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn out.join(\"\");\n}\n/* WorksheetOptions */\nfunction write_ws_xlml_wsopts(ws, opts, idx, wb) {\n\tif(!ws) return \"\";\n\tvar o = [];\n\t/* NOTE: spec technically allows any order, but stick with implied order */\n\n\t/* FitToPage */\n\t/* DoNotDisplayColHeaders */\n\t/* DoNotDisplayRowHeaders */\n\t/* ViewableRange */\n\t/* Selection */\n\t/* GridlineColor */\n\t/* Name */\n\t/* ExcelWorksheetType */\n\t/* IntlMacro */\n\t/* Unsynced */\n\t/* Selected */\n\t/* CodeName */\n\n\tif(ws['!margins']) {\n\t\to.push(\"\");\n\t\tif(ws['!margins'].header) o.push(writextag(\"Header\", null, {'x:Margin':ws['!margins'].header}));\n\t\tif(ws['!margins'].footer) o.push(writextag(\"Footer\", null, {'x:Margin':ws['!margins'].footer}));\n\t\to.push(writextag(\"PageMargins\", null, {\n\t\t\t'x:Bottom': ws['!margins'].bottom || \"0.75\",\n\t\t\t'x:Left': ws['!margins'].left || \"0.7\",\n\t\t\t'x:Right': ws['!margins'].right || \"0.7\",\n\t\t\t'x:Top': ws['!margins'].top || \"0.75\"\n\t\t}));\n\t\to.push(\"\");\n\t}\n\n\t/* PageSetup */\n\t/* DisplayPageBreak */\n\t/* TransitionExpressionEvaluation */\n\t/* TransitionFormulaEntry */\n\t/* Print */\n\t/* Zoom */\n\t/* PageLayoutZoom */\n\t/* PageBreakZoom */\n\t/* ShowPageBreakZoom */\n\t/* DefaultRowHeight */\n\t/* DefaultColumnWidth */\n\t/* StandardWidth */\n\n\tif(wb && wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx]) {\n\t\t/* Visible */\n\t\tif(wb.Workbook.Sheets[idx].Hidden) o.push(writextag(\"Visible\", (wb.Workbook.Sheets[idx].Hidden == 1 ? \"SheetHidden\" : \"SheetVeryHidden\"), {}));\n\t\telse {\n\t\t\t/* Selected */\n\t\t\tfor(var i = 0; i < idx; ++i) if(wb.Workbook.Sheets[i] && !wb.Workbook.Sheets[i].Hidden) break;\n\t\t\tif(i == idx) o.push(\"\");\n\t\t}\n\t}\n\n\t/* LeftColumnVisible */\n\n\tif(((((wb||{}).Workbook||{}).Views||[])[0]||{}).RTL) o.push(\"\");\n\n\t/* GridlineColorIndex */\n\t/* DisplayFormulas */\n\t/* DoNotDisplayGridlines */\n\t/* DoNotDisplayHeadings */\n\t/* DoNotDisplayOutline */\n\t/* ApplyAutomaticOutlineStyles */\n\t/* NoSummaryRowsBelowDetail */\n\t/* NoSummaryColumnsRightDetail */\n\t/* DoNotDisplayZeros */\n\t/* ActiveRow */\n\t/* ActiveColumn */\n\t/* FilterOn */\n\t/* RangeSelection */\n\t/* TopRowVisible */\n\t/* TopRowBottomPane */\n\t/* LeftColumnRightPane */\n\t/* ActivePane */\n\t/* SplitHorizontal */\n\t/* SplitVertical */\n\t/* FreezePanes */\n\t/* FrozenNoSplit */\n\t/* TabColorIndex */\n\t/* Panes */\n\n\t/* NOTE: Password not supported in XLML Format */\n\tif(ws['!protect']) {\n\t\to.push(writetag(\"ProtectContents\", \"True\"));\n\t\tif(ws['!protect'].objects) o.push(writetag(\"ProtectObjects\", \"True\"));\n\t\tif(ws['!protect'].scenarios) o.push(writetag(\"ProtectScenarios\", \"True\"));\n\t\tif(ws['!protect'].selectLockedCells != null && !ws['!protect'].selectLockedCells) o.push(writetag(\"EnableSelection\", \"NoSelection\"));\n\t\telse if(ws['!protect'].selectUnlockedCells != null && !ws['!protect'].selectUnlockedCells) o.push(writetag(\"EnableSelection\", \"UnlockedCells\"));\n\t[\n\t\t[ \"formatCells\", \"AllowFormatCells\" ],\n\t\t[ \"formatColumns\", \"AllowSizeCols\" ],\n\t\t[ \"formatRows\", \"AllowSizeRows\" ],\n\t\t[ \"insertColumns\", \"AllowInsertCols\" ],\n\t\t[ \"insertRows\", \"AllowInsertRows\" ],\n\t\t[ \"insertHyperlinks\", \"AllowInsertHyperlinks\" ],\n\t\t[ \"deleteColumns\", \"AllowDeleteCols\" ],\n\t\t[ \"deleteRows\", \"AllowDeleteRows\" ],\n\t\t[ \"sort\", \"AllowSort\" ],\n\t\t[ \"autoFilter\", \"AllowFilter\" ],\n\t\t[ \"pivotTables\", \"AllowUsePivotTables\" ]\n\t].forEach(function(x) { if(ws['!protect'][x[0]]) o.push(\"<\"+x[1]+\"/>\"); });\n\t}\n\n\tif(o.length == 0) return \"\";\n\treturn writextag(\"WorksheetOptions\", o.join(\"\"), {xmlns:XLMLNS.x});\n}\nfunction write_ws_xlml_comment(comments) {\n\treturn comments.map(function(c) {\n\t\t// TODO: formatted text\n\t\tvar t = xlml_unfixstr(c.t||\"\");\n\t\tvar d =writextag(\"ss:Data\", t, {\"xmlns\":\"http://www.w3.org/TR/REC-html40\"});\n\t\treturn writextag(\"Comment\", d, {\"ss:Author\":c.a});\n\t}).join(\"\");\n}\nfunction write_ws_xlml_cell(cell, ref, ws, opts, idx, wb, addr){\n\tif(!cell || (cell.v == undefined && cell.f == undefined)) return \"\";\n\n\tvar attr = {};\n\tif(cell.f) attr[\"ss:Formula\"] = \"=\" + escapexml(a1_to_rc(cell.f, addr));\n\tif(cell.F && cell.F.slice(0, ref.length) == ref) {\n\t\tvar end = decode_cell(cell.F.slice(ref.length + 1));\n\t\tattr[\"ss:ArrayRange\"] = \"RC:R\" + (end.r == addr.r ? \"\" : \"[\" + (end.r - addr.r) + \"]\") + \"C\" + (end.c == addr.c ? \"\" : \"[\" + (end.c - addr.c) + \"]\");\n\t}\n\n\tif(cell.l && cell.l.Target) {\n\t\tattr[\"ss:HRef\"] = escapexml(cell.l.Target);\n\t\tif(cell.l.Tooltip) attr[\"x:HRefScreenTip\"] = escapexml(cell.l.Tooltip);\n\t}\n\n\tif(ws['!merges']) {\n\t\tvar marr = ws['!merges'];\n\t\tfor(var mi = 0; mi != marr.length; ++mi) {\n\t\t\tif(marr[mi].s.c != addr.c || marr[mi].s.r != addr.r) continue;\n\t\t\tif(marr[mi].e.c > marr[mi].s.c) attr['ss:MergeAcross'] = marr[mi].e.c - marr[mi].s.c;\n\t\t\tif(marr[mi].e.r > marr[mi].s.r) attr['ss:MergeDown'] = marr[mi].e.r - marr[mi].s.r;\n\t\t}\n\t}\n\n\tvar t = \"\", p = \"\";\n\tswitch(cell.t) {\n\t\tcase 'z': if(!opts.sheetStubs) return \"\"; break;\n\t\tcase 'n': t = 'Number'; p = String(cell.v); break;\n\t\tcase 'b': t = 'Boolean'; p = (cell.v ? \"1\" : \"0\"); break;\n\t\tcase 'e': t = 'Error'; p = BErr[cell.v]; break;\n\t\tcase 'd': t = 'DateTime'; p = new Date(cell.v).toISOString(); if(cell.z == null) cell.z = cell.z || SSF._table[14]; break;\n\t\tcase 's': t = 'String'; p = escapexlml(cell.v||\"\"); break;\n\t}\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tattr[\"ss:StyleID\"] = \"s\" + (21+os);\n\tattr[\"ss:Index\"] = addr.c + 1;\n\tvar _v = (cell.v != null ? p : \"\");\n\tvar m = cell.t == 'z' ? \"\" : ('' + _v + '');\n\n\tif((cell.c||[]).length > 0) m += write_ws_xlml_comment(cell.c);\n\n\treturn writextag(\"Cell\", m, attr);\n}\nfunction write_ws_xlml_row(R, row) {\n\tvar o = '';\n}\n/* TODO */\nfunction write_ws_xlml_table(ws, opts, idx, wb) {\n\tif(!ws['!ref']) return \"\";\n\tvar range = safe_decode_range(ws['!ref']);\n\tvar marr = ws['!merges'] || [], mi = 0;\n\tvar o = [];\n\tif(ws['!cols']) ws['!cols'].forEach(function(n, i) {\n\t\tprocess_col(n);\n\t\tvar w = !!n.width;\n\t\tvar p = col_obj_w(i, n);\n\t\tvar k = {\"ss:Index\":i+1};\n\t\tif(w) k['ss:Width'] = width2px(p.width);\n\t\tif(n.hidden) k['ss:Hidden']=\"1\";\n\t\to.push(writextag(\"Column\",null,k));\n\t});\n\tvar dense = Array.isArray(ws);\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\tvar row = [write_ws_xlml_row(R, (ws['!rows']||[])[R])];\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tvar skip = false;\n\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(skip) continue;\n\t\t\tvar addr = {r:R,c:C};\n\t\t\tvar ref = encode_cell(addr), cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\trow.push(write_ws_xlml_cell(cell, ref, ws, opts, idx, wb, addr));\n\t\t}\n\t\trow.push(\"\");\n\t\tif(row.length > 2) o.push(row.join(\"\"));\n\t}\n\treturn o.join(\"\");\n}\nfunction write_ws_xlml(idx, opts, wb) {\n\tvar o = [];\n\tvar s = wb.SheetNames[idx];\n\tvar ws = wb.Sheets[s];\n\n\tvar t = ws ? write_ws_xlml_names(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"\" + t + \"\");\n\n\t/* Table */\n\tt = ws ? write_ws_xlml_table(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"\" + t + \"
\");\n\n\t/* WorksheetOptions */\n\to.push(write_ws_xlml_wsopts(ws, opts, idx, wb));\n\n\treturn o.join(\"\");\n}\nfunction write_xlml(wb, opts) {\n\tif(!opts) opts = {};\n\tif(!wb.SSF) wb.SSF = SSF.get_table();\n\tif(wb.SSF) {\n\t\tmake_ssf(SSF); SSF.load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t\topts.cellXfs = [];\n\t\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\t}\n\tvar d = [];\n\td.push(write_props_xlml(wb, opts));\n\td.push(write_wb_xlml(wb, opts));\n\td.push(\"\");\n\td.push(\"\");\n\tfor(var i = 0; i < wb.SheetNames.length; ++i)\n\t\td.push(writextag(\"Worksheet\", write_ws_xlml(i, opts, wb), {\"ss:Name\":escapexml(wb.SheetNames[i])}));\n\td[2] = write_sty_xlml(wb, opts);\n\td[3] = write_names_xlml(wb, opts);\n\treturn XML_HEADER + writextag(\"Workbook\", d.join(\"\"), {\n\t\t'xmlns': XLMLNS.ss,\n\t\t'xmlns:o': XLMLNS.o,\n\t\t'xmlns:x': XLMLNS.x,\n\t\t'xmlns:ss': XLMLNS.ss,\n\t\t'xmlns:dt': XLMLNS.dt,\n\t\t'xmlns:html': XLMLNS.html\n\t});\n}\n/* [MS-OLEDS] 2.3.8 CompObjStream */\nfunction parse_compobj(obj) {\n\tvar v = {};\n\tvar o = obj.content;\n/* [MS-OLEDS] 2.3.7 CompObjHeader -- All fields MUST be ignored */\n\to.l = 28;\n\n\tv.AnsiUserType = o.read_shift(0, \"lpstr-ansi\");\n\tv.AnsiClipboardFormat = parse_ClipboardFormatOrAnsiString(o);\n\n\tif(o.length - o.l <= 4) return v;\n\n\tvar m = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved1 = o.read_shift(0, \"lpstr-ansi\");\n\n\tif(o.length - o.l <= 4) return v;\n\tm = o.read_shift(4);\n\tif(m !== 0x71b239f4) return v;\n\tv.UnicodeClipboardFormat = parse_ClipboardFormatOrUnicodeString(o);\n\n\tm = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved2 = o.read_shift(0, \"lpwstr\");\n}\n\n/*\n\tContinue logic for:\n\t- 2.4.58 Continue\n\t- 2.4.59 ContinueBigName\n\t- 2.4.60 ContinueFrt\n\t- 2.4.61 ContinueFrt11\n\t- 2.4.62 ContinueFrt12\n*/\nfunction slurp(R, blob, length, opts) {\n\tvar l = length;\n\tvar bufs = [];\n\tvar d = blob.slice(blob.l,blob.l+l);\n\tif(opts && opts.enc && opts.enc.insitu) switch(R.n) {\n\tcase 'BOF': case 'FilePass': case 'FileLock': case 'InterfaceHdr': case 'RRDInfo': case 'RRDHead': case 'UsrExcl': break;\n\tdefault:\n\t\tif(d.length === 0) break;\n\t\topts.enc.insitu(d);\n\t}\n\tbufs.push(d);\n\tblob.l += l;\n\tvar next = (XLSRecordEnum[__readUInt16LE(blob,blob.l)]);\n\tvar start = 0;\n\twhile(next != null && next.n.slice(0,8) === 'Continue') {\n\t\tl = __readUInt16LE(blob,blob.l+2);\n\t\tstart = blob.l + 4;\n\t\tif(next.n == 'ContinueFrt') start += 4;\n\t\telse if(next.n.slice(0,11) == 'ContinueFrt') start += 12;\n\t\tbufs.push(blob.slice(start,blob.l+4+l));\n\t\tblob.l += 4+l;\n\t\tnext = (XLSRecordEnum[__readUInt16LE(blob, blob.l)]);\n\t}\n\tvar b = (bconcat(bufs));\n\tprep_blob(b, 0);\n\tvar ll = 0; b.lens = [];\n\tfor(var j = 0; j < bufs.length; ++j) { b.lens.push(ll); ll += bufs[j].length; }\n\treturn R.f(b, b.length, opts);\n}\n\nfunction safe_format_xf(p, opts, date1904) {\n\tif(p.t === 'z') return;\n\tif(!p.XF) return;\n\tvar fmtid = 0;\n\ttry {\n\t\tfmtid = p.z || p.XF.numFmtId || 0;\n\t\tif(opts.cellNF) p.z = SSF._table[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts || opts.cellText !== false) try {\n\t\tif(p.t === 'e') { p.w = p.w || BErr[p.v]; }\n\t\telse if(fmtid === 0 || fmtid == \"General\") {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = SSF._general_int(p.v);\n\t\t\t\telse p.w = SSF._general_num(p.v);\n\t\t\t}\n\t\t\telse p.w = SSF._general(p.v);\n\t\t}\n\t\telse p.w = SSF.format(fmtid,p.v, {date1904:!!date1904});\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(opts.cellDates && fmtid && p.t == 'n' && SSF.is_date(SSF._table[fmtid] || String(fmtid))) {\n\t\tvar _d = SSF.parse_date_code(p.v); if(_d) { p.t = 'd'; p.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t}\n}\n\nfunction make_cell(val, ixfe, t) {\n\treturn ({v:val, ixfe:ixfe, t:t});\n}\n\n// 2.3.2\nfunction parse_workbook(blob, options) {\n\tvar wb = ({opts:{}});\n\tvar Sheets = {};\n\tif(DENSE != null && options.dense == null) options.dense = DENSE;\n\tvar out = ((options.dense ? [] : {}));\n\tvar Directory = {};\n\tvar range = ({});\n\tvar last_formula = null;\n\tvar sst = ([]);\n\tvar cur_sheet = \"\";\n\tvar Preamble = {};\n\tvar lastcell, last_cell = \"\", cc, cmnt, rngC, rngR;\n\tvar sharedf = {};\n\tvar arrayf = [];\n\tvar temp_val;\n\tvar country;\n\tvar cell_valid = true;\n\tvar XFs = []; /* XF records */\n\tvar palette = [];\n\tvar Workbook = ({ Sheets:[], WBProps:{date1904:false}, Views:[{}] }), wsprops = {};\n\tvar get_rgb = function getrgb(icv) {\n\t\tif(icv < 8) return XLSIcv[icv];\n\t\tif(icv < 64) return palette[icv-8] || XLSIcv[icv];\n\t\treturn XLSIcv[icv];\n\t};\n\tvar process_cell_style = function pcs(cell, line, options) {\n\t\tvar xfd = line.XF.data;\n\t\tif(!xfd || !xfd.patternType || !options || !options.cellStyles) return;\n\t\tline.s = ({});\n\t\tline.s.patternType = xfd.patternType;\n\t\tvar t;\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvFore)))) { line.s.fgColor = {rgb:t}; }\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvBack)))) { line.s.bgColor = {rgb:t}; }\n\t};\n\tvar addcell = function addcell(cell, line, options) {\n\t\tif(file_depth > 1) return;\n\t\tif(options.sheetRows && cell.r >= options.sheetRows) cell_valid = false;\n\t\tif(!cell_valid) return;\n\t\tif(options.cellStyles && line.XF && line.XF.data) process_cell_style(cell, line, options);\n\t\tdelete line.ixfe; delete line.XF;\n\t\tlastcell = cell;\n\t\tlast_cell = encode_cell(cell);\n\t\tif(!range || !range.s || !range.e) range = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\tif(cell.r < range.s.r) range.s.r = cell.r;\n\t\tif(cell.c < range.s.c) range.s.c = cell.c;\n\t\tif(cell.r + 1 > range.e.r) range.e.r = cell.r + 1;\n\t\tif(cell.c + 1 > range.e.c) range.e.c = cell.c + 1;\n\t\tif(options.cellFormula && line.f) {\n\t\t\tfor(var afi = 0; afi < arrayf.length; ++afi) {\n\t\t\t\tif(arrayf[afi][0].s.c > cell.c || arrayf[afi][0].s.r > cell.r) continue;\n\t\t\t\tif(arrayf[afi][0].e.c < cell.c || arrayf[afi][0].e.r < cell.r) continue;\n\t\t\t\tline.F = encode_range(arrayf[afi][0]);\n\t\t\t\tif(arrayf[afi][0].s.c != cell.c || arrayf[afi][0].s.r != cell.r) delete line.f;\n\t\t\t\tif(line.f) line.f = \"\" + stringify_formula(arrayf[afi][1], range, cell, supbooks, opts);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\tif(options.dense) {\n\t\t\t\tif(!out[cell.r]) out[cell.r] = [];\n\t\t\t\tout[cell.r][cell.c] = line;\n\t\t\t} else out[last_cell] = line;\n\t\t}\n\t};\n\tvar opts = ({\n\t\tenc: false, // encrypted\n\t\tsbcch: 0, // cch in the preceding SupBook\n\t\tsnames: [], // sheetnames\n\t\tsharedf: sharedf, // shared formulae by address\n\t\tarrayf: arrayf, // array formulae array\n\t\trrtabid: [], // RRTabId\n\t\tlastuser: \"\", // Last User from WriteAccess\n\t\tbiff: 8, // BIFF version\n\t\tcodepage: 0, // CP from CodePage record\n\t\twinlocked: 0, // fLockWn from WinProtect\n\t\tcellStyles: !!options && !!options.cellStyles,\n\t\tWTF: !!options && !!options.wtf\n\t});\n\tif(options.password) opts.password = options.password;\n\tvar themes;\n\tvar merges = [];\n\tvar objects = [];\n\tvar colinfo = [], rowinfo = [];\n\t// eslint-disable-next-line no-unused-vars\n\tvar defwidth = 0, defheight = 0; // twips / MDW respectively\n\tvar seencol = false;\n\tvar supbooks = ([]); // 1-indexed, will hold extern names\n\tsupbooks.SheetNames = opts.snames;\n\tsupbooks.sharedf = opts.sharedf;\n\tsupbooks.arrayf = opts.arrayf;\n\tsupbooks.names = [];\n\tsupbooks.XTI = [];\n\tvar last_Rn = '';\n\tvar file_depth = 0; /* TODO: make a real stack */\n\tvar BIFF2Fmt = 0, BIFF2FmtTable = [];\n\tvar FilterDatabases = []; /* TODO: sort out supbooks and process elsewhere */\n\tvar last_lbl;\n\n\t/* explicit override for some broken writers */\n\topts.codepage = 1200;\n\tset_cp(1200);\n\tvar seen_codepage = false;\n\twhile(blob.l < blob.length - 1) {\n\t\tvar s = blob.l;\n\t\tvar RecordType = blob.read_shift(2);\n\t\tif(RecordType === 0 && last_Rn === 'EOF') break;\n\t\tvar length = (blob.l === blob.length ? 0 : blob.read_shift(2));\n\t\tvar R = XLSRecordEnum[RecordType];\n\t\t//console.log(RecordType.toString(16), RecordType, R, blob.l, length, blob.length);\n\t\t//if(!R) console.log(blob.slice(blob.l, blob.l + length));\n\t\tif(R && R.f) {\n\t\t\tif(options.bookSheets) {\n\t\t\t\tif(last_Rn === 'BoundSheet8' && R.n !== 'BoundSheet8') break;\n\t\t\t}\n\t\t\tlast_Rn = R.n;\n\t\t\tif(R.r === 2 || R.r == 12) {\n\t\t\t\tvar rt = blob.read_shift(2); length -= 2;\n\t\t\t\tif(!opts.enc && rt !== RecordType && (((rt&0xFF)<<8)|(rt>>8)) !== RecordType) throw new Error(\"rt mismatch: \" + rt + \"!=\" + RecordType);\n\t\t\t\tif(R.r == 12){ blob.l += 10; length -= 10; } // skip FRT\n\t\t\t}\n\t\t\t//console.error(R,blob.l,length,blob.length);\n\t\t\tvar val = ({});\n\t\t\tif(R.n === 'EOF') val = R.f(blob, length, opts);\n\t\t\telse val = slurp(R, blob, length, opts);\n\t\t\tvar Rn = R.n;\nif(file_depth == 0 && Rn != 'BOF') continue;\n\t\t\t/* nested switch statements to workaround V8 128 limit */\n\t\t\tswitch(Rn) {\n\t\t\t\t/* Workbook Options */\n\t\t\t\tcase 'Date1904':\nwb.opts.Date1904 = Workbook.WBProps.date1904 = val; break;\n\t\t\t\tcase 'WriteProtect': wb.opts.WriteProtect = true; break;\n\t\t\t\tcase 'FilePass':\n\t\t\t\t\tif(!opts.enc) blob.l = 0;\n\t\t\t\t\topts.enc = val;\n\t\t\t\t\tif(!options.password) throw new Error(\"File is password-protected\");\n\t\t\t\t\tif(val.valid == null) throw new Error(\"Encryption scheme unsupported\");\n\t\t\t\t\tif(!val.valid) throw new Error(\"Password is incorrect\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'WriteAccess': opts.lastuser = val; break;\n\t\t\t\tcase 'FileSharing': break; //TODO\n\t\t\t\tcase 'CodePage':\n\t\t\t\t\tvar cpval = Number(val);\n\t\t\t\t\t/* overrides based on test cases */\n\t\t\t\t\tswitch(cpval) {\n\t\t\t\t\t\tcase 0x5212: cpval = 1200; break;\n\t\t\t\t\t\tcase 0x8000: cpval = 10000; break;\n\t\t\t\t\t\tcase 0x8001: cpval = 1252; break;\n\t\t\t\t\t}\n\t\t\t\t\tset_cp(opts.codepage = cpval);\n\t\t\t\t\tseen_codepage = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'RRTabId': opts.rrtabid = val; break;\n\t\t\t\tcase 'WinProtect': opts.winlocked = val; break;\n\t\t\t\tcase 'Template': break; // TODO\n\t\t\t\tcase 'BookBool': break; // TODO\n\t\t\t\tcase 'UsesELFs': break;\n\t\t\t\tcase 'MTRSettings': break;\n\t\t\t\tcase 'RefreshAll':\n\t\t\t\tcase 'CalcCount':\n\t\t\t\tcase 'CalcDelta':\n\t\t\t\tcase 'CalcIter':\n\t\t\t\tcase 'CalcMode':\n\t\t\t\tcase 'CalcPrecision':\n\t\t\t\tcase 'CalcSaveRecalc':\n\t\t\t\t\twb.opts[Rn] = val; break;\n\t\t\t\tcase 'CalcRefMode': opts.CalcRefMode = val; break; // TODO: implement R1C1\n\t\t\t\tcase 'Uncalced': break;\n\t\t\t\tcase 'ForceFullCalculation': wb.opts.FullCalc = val; break;\n\t\t\t\tcase 'WsBool':\n\t\t\t\t\tif(val.fDialog) out[\"!type\"] = \"dialog\";\n\t\t\t\t\tbreak; // TODO\n\t\t\t\tcase 'XF':\n\t\t\t\t\tXFs.push(val); break;\n\t\t\t\tcase 'ExtSST': break; // TODO\n\t\t\t\tcase 'BookExt': break; // TODO\n\t\t\t\tcase 'RichTextStream': break;\n\t\t\t\tcase 'BkHim': break;\n\n\t\t\t\tcase 'SupBook':\n\t\t\t\t\tsupbooks.push([val]);\n\t\t\t\t\tsupbooks[supbooks.length-1].XTI = [];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ExternName':\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Index': break; // TODO\n\t\t\t\tcase 'Lbl':\n\t\t\t\t\tlast_lbl = ({\n\t\t\t\t\t\tName: val.Name,\n\t\t\t\t\t\tRef: stringify_formula(val.rgce,range,null,supbooks,opts)\n\t\t\t\t\t});\n\t\t\t\t\tif(val.itab > 0) last_lbl.Sheet = val.itab - 1;\n\t\t\t\t\tsupbooks.names.push(last_lbl);\n\t\t\t\t\tif(!supbooks[0]) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tif(val.Name == \"_xlnm._FilterDatabase\" && val.itab > 0)\n\t\t\t\t\t\tif(val.rgce && val.rgce[0] && val.rgce[0][0] && val.rgce[0][0][0] == 'PtgArea3d')\n\t\t\t\t\t\t\tFilterDatabases[val.itab - 1] = { ref: encode_range(val.rgce[0][0][1][2]) };\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ExternCount': opts.ExternCount = val; break;\n\t\t\t\tcase 'ExternSheet':\n\t\t\t\t\tif(supbooks.length == 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val); supbooks.XTI = supbooks.XTI.concat(val); break;\n\t\t\t\tcase 'NameCmt':\n\t\t\t\t\t/* TODO: search for correct name */\n\t\t\t\t\tif(opts.biff < 8) break;\n\t\t\t\t\tif(last_lbl != null) last_lbl.Comment = val[1];\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Protect': out[\"!protect\"] = val; break; /* for sheet or book */\n\t\t\t\tcase 'Password': if(val !== 0 && opts.WTF) console.error(\"Password verifier: \" + val); break;\n\t\t\t\tcase 'Prot4Rev': case 'Prot4RevPass': break; /*TODO: Revision Control*/\n\n\t\t\t\tcase 'BoundSheet8': {\n\t\t\t\t\tDirectory[val.pos] = val;\n\t\t\t\t\topts.snames.push(val.name);\n\t\t\t\t} break;\n\t\t\t\tcase 'EOF': {\n\t\t\t\t\tif(--file_depth) break;\n\t\t\t\t\tif(range.e) {\n\t\t\t\t\t\tif(range.e.r > 0 && range.e.c > 0) {\n\t\t\t\t\t\t\trange.e.r--; range.e.c--;\n\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\tif(options.sheetRows && options.sheetRows <= range.e.r) {\n\t\t\t\t\t\t\t\tvar tmpri = range.e.r;\n\t\t\t\t\t\t\t\trange.e.r = options.sheetRows - 1;\n\t\t\t\t\t\t\t\tout[\"!fullref\"] = out[\"!ref\"];\n\t\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\t\trange.e.r = tmpri;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\trange.e.r++; range.e.c++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(merges.length > 0) out[\"!merges\"] = merges;\n\t\t\t\t\t\tif(objects.length > 0) out[\"!objects\"] = objects;\n\t\t\t\t\t\tif(colinfo.length > 0) out[\"!cols\"] = colinfo;\n\t\t\t\t\t\tif(rowinfo.length > 0) out[\"!rows\"] = rowinfo;\n\t\t\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t\t\t}\n\t\t\t\t\tif(cur_sheet === \"\") Preamble = out; else Sheets[cur_sheet] = out;\n\t\t\t\t\tout = ((options.dense ? [] : {}));\n\t\t\t\t} break;\n\t\t\t\tcase 'BOF': {\n\t\t\t\t\tif(opts.biff === 8) opts.biff = {\n0x0009:2,\n0x0209:3,\n0x0409:4\n\t\t\t\t\t}[RecordType] || {\n0x0200:2,\n0x0300:3,\n0x0400:4,\n0x0500:5,\n0x0600:8,\n0x0002:2,\n0x0007:2\n\t\t\t\t\t}[val.BIFFVer] || 8;\n\t\t\t\t\tif(opts.biff == 8 && val.BIFFVer == 0 && val.dt == 16) opts.biff = 2;\n\t\t\t\t\tif(file_depth++) break;\n\t\t\t\t\tcell_valid = true;\n\t\t\t\t\tout = ((options.dense ? [] : {}));\n\n\t\t\t\t\tif(opts.biff < 8 && !seen_codepage) { seen_codepage = true; set_cp(opts.codepage = options.codepage || 1252); }\n\t\t\t\t\tif(opts.biff < 5) {\n\t\t\t\t\t\tif(cur_sheet === \"\") cur_sheet = \"Sheet1\";\n\t\t\t\t\t\trange = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\t\t\t\t\t/* fake BoundSheet8 */\n\t\t\t\t\t\tvar fakebs8 = {pos: blob.l - length, name:cur_sheet};\n\t\t\t\t\t\tDirectory[fakebs8.pos] = fakebs8;\n\t\t\t\t\t\topts.snames.push(cur_sheet);\n\t\t\t\t\t}\n\t\t\t\t\telse cur_sheet = (Directory[s] || {name:\"\"}).name;\n\t\t\t\t\tif(val.dt == 0x20) out[\"!type\"] = \"chart\";\n\t\t\t\t\tif(val.dt == 0x40) out[\"!type\"] = \"macro\";\n\t\t\t\t\tmerges = [];\n\t\t\t\t\tobjects = [];\n\t\t\t\t\topts.arrayf = arrayf = [];\n\t\t\t\t\tcolinfo = []; rowinfo = [];\n\t\t\t\t\tdefwidth = defheight = 0;\n\t\t\t\t\tseencol = false;\n\t\t\t\t\twsprops = {Hidden:(Directory[s]||{hs:0}).hs, name:cur_sheet };\n\t\t\t\t} break;\n\n\t\t\t\tcase 'Number': case 'BIFF2NUM': case 'BIFF2INT': {\n\t\t\t\t\tif(out[\"!type\"] == \"chart\") if(options.dense ? (out[val.r]||[])[val.c]: out[encode_cell({c:val.c, r:val.r})]) ++val.c;\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe]||{}, v:val.val, t:'n'});\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'BoolErr': {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.val, t:val.t});\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'RK': {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.rknum, t:'n'});\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'MulRk': {\n\t\t\t\t\tfor(var j = val.c; j <= val.C; ++j) {\n\t\t\t\t\t\tvar ixfe = val.rkrec[j-val.c][0];\n\t\t\t\t\t\ttemp_val= ({ixfe:ixfe, XF:XFs[ixfe], v:val.rkrec[j-val.c][1], t:'n'});\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'Formula': {\n\t\t\t\t\tif(val.val == 'String') { last_formula = val; break; }\n\t\t\t\t\ttemp_val = make_cell(val.val, val.cell.ixfe, val.tt);\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\tvar _f = val.formula;\n\t\t\t\t\t\tif(_f && _f[0] && _f[0][0] && _f[0][0][0] == 'PtgExp') {\n\t\t\t\t\t\t\tvar _fr = _f[0][0][1][0], _fc = _f[0][0][1][1];\n\t\t\t\t\t\t\tvar _fe = encode_cell({r:_fr, c:_fc});\n\t\t\t\t\t\t\tif(sharedf[_fe]) temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t\t\telse temp_val.F = ((options.dense ? (out[_fr]||[])[_fc]: out[_fe]) || {}).F;\n\t\t\t\t\t\t} else temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell(val.cell, temp_val, options);\n\t\t\t\t\tlast_formula = val;\n\t\t\t\t} break;\n\t\t\t\tcase 'String': {\n\t\t\t\t\tif(last_formula) { /* technically always true */\n\t\t\t\t\t\tlast_formula.val = val;\n\t\t\t\t\t\ttemp_val = make_cell(val, last_formula.cell.ixfe, 's');\n\t\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\t\ttemp_val.f = \"\"+stringify_formula(last_formula.formula, range, last_formula.cell, supbooks, opts);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell(last_formula.cell, temp_val, options);\n\t\t\t\t\t\tlast_formula = null;\n\t\t\t\t\t} else throw new Error(\"String record expects Formula\");\n\t\t\t\t} break;\n\t\t\t\tcase 'Array': {\n\t\t\t\t\tarrayf.push(val);\n\t\t\t\t\tvar _arraystart = encode_cell(val[0].s);\n\t\t\t\t\tcc = options.dense ? (out[val[0].s.r]||[])[val[0].s.c] : out[_arraystart];\n\t\t\t\t\tif(options.cellFormula && cc) {\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tif(!_arraystart || !cc) break;\n\t\t\t\t\t\tcc.f = \"\"+stringify_formula(val[1], range, val[0], supbooks, opts);\n\t\t\t\t\t\tcc.F = encode_range(val[0]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'ShrFmla': {\n\t\t\t\t\tif(!cell_valid) break;\n\t\t\t\t\tif(!options.cellFormula) break;\n\t\t\t\t\tif(last_cell) {\n\t\t\t\t\t\t/* TODO: capture range */\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tsharedf[encode_cell(last_formula.cell)]= val[0];\n\t\t\t\t\t\tcc = options.dense ? (out[last_formula.cell.r]||[])[last_formula.cell.c] : out[encode_cell(last_formula.cell)];\n\t\t\t\t\t\t(cc||{}).f = \"\"+stringify_formula(val[0], range, lastcell, supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'LabelSst':\n\t\t\t\t\ttemp_val=make_cell(sst[val.isst].t, val.ixfe, 's');\n\t\t\t\t\tif(sst[val.isst].h) temp_val.h = sst[val.isst].h;\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Blank': if(options.sheetStubs) {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], t:'z'});\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'MulBlank': if(options.sheetStubs) {\n\t\t\t\t\tfor(var _j = val.c; _j <= val.C; ++_j) {\n\t\t\t\t\t\tvar _ixfe = val.ixfe[_j-val.c];\n\t\t\t\t\t\ttemp_val= ({ixfe:_ixfe, XF:XFs[_ixfe], t:'z'});\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:_j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'RString':\n\t\t\t\tcase 'Label': case 'BIFF2STR':\n\t\t\t\t\ttemp_val=make_cell(val.val, val.ixfe, 's');\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Dimensions': {\n\t\t\t\t\tif(file_depth === 1) range = val; /* TODO: stack */\n\t\t\t\t} break;\n\t\t\t\tcase 'SST': {\n\t\t\t\t\tsst = val;\n\t\t\t\t} break;\n\t\t\t\tcase 'Format': { /* val = [id, fmt] */\n\t\t\t\t\tif(opts.biff == 4) {\n\t\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val[1];\n\t\t\t\t\t\tfor(var b4idx = 0; b4idx < BIFF2Fmt + 163; ++b4idx) if(SSF._table[b4idx] == val[1]) break;\n\t\t\t\t\t\tif(b4idx >= 163) SSF.load(val[1], BIFF2Fmt + 163);\n\t\t\t\t\t}\n\t\t\t\t\telse SSF.load(val[1], val[0]);\n\t\t\t\t} break;\n\t\t\t\tcase 'BIFF2FORMAT': {\n\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val;\n\t\t\t\t\tfor(var b2idx = 0; b2idx < BIFF2Fmt + 163; ++b2idx) if(SSF._table[b2idx] == val) break;\n\t\t\t\t\tif(b2idx >= 163) SSF.load(val, BIFF2Fmt + 163);\n\t\t\t\t} break;\n\n\t\t\t\tcase 'MergeCells': merges = merges.concat(val); break;\n\n\t\t\t\tcase 'Obj': objects[val.cmo[0]] = opts.lastobj = val; break;\n\t\t\t\tcase 'TxO': opts.lastobj.TxO = val; break;\n\t\t\t\tcase 'ImData': opts.lastobj.ImData = val; break;\n\n\t\t\t\tcase 'HLink': {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc) cc.l = val[1];\n\t\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'HLinkTooltip': {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc && cc.l) cc.l.Tooltip = val[1];\n\t\t\t\t\t\t\t}\n\t\t\t\t} break;\n\n\t\t\t\t/* Comments */\n\t\t\t\tcase 'Note': {\n\t\t\t\t\tif(opts.biff <= 5 && opts.biff >= 2) break; /* TODO: BIFF5 */\n\t\t\t\t\tcc = options.dense ? (out[val[0].r]||[])[val[0].c] : out[encode_cell(val[0])];\n\t\t\t\t\tvar noteobj = objects[val[2]];\n\t\t\t\t\tif(!cc) {\n\t\t\t\t\t\tif(options.dense) {\n\t\t\t\t\t\t\tif(!out[val[0].r]) out[val[0].r] = [];\n\t\t\t\t\t\t\tcc = out[val[0].r][val[0].c] = ({t:\"z\"});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcc = out[encode_cell(val[0])] = ({t:\"z\"});\n\t\t\t\t\t\t}\n\t\t\t\t\t\trange.e.r = Math.max(range.e.r, val[0].r);\n\t\t\t\t\t\trange.s.r = Math.min(range.s.r, val[0].r);\n\t\t\t\t\t\trange.e.c = Math.max(range.e.c, val[0].c);\n\t\t\t\t\t\trange.s.c = Math.min(range.s.c, val[0].c);\n\t\t\t\t\t}\n\t\t\t\t\tif(!cc.c) cc.c = [];\n\t\t\t\t\tcmnt = {a:val[1],t:noteobj.TxO.t};\n\t\t\t\t\tcc.c.push(cmnt);\n\t\t\t\t} break;\n\n\t\t\t\tdefault: switch(R.n) { /* nested */\n\t\t\t\tcase 'ClrtClient': break;\n\t\t\t\tcase 'XFExt': update_xfext(XFs[val.ixfe], val.ext); break;\n\n\t\t\t\tcase 'DefColWidth': defwidth = val; break;\n\t\t\t\tcase 'DefaultRowHeight': defheight = val[1]; break; // TODO: flags\n\n\t\t\t\tcase 'ColInfo': {\n\t\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256 };\n\t\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'Row': {\n\t\t\t\t\tvar rowobj = {};\n\t\t\t\t\tif(val.level != null) { rowinfo[val.r] = rowobj; rowobj.level = val.level; }\n\t\t\t\t\tif(val.hidden) { rowinfo[val.r] = rowobj; rowobj.hidden = true; }\n\t\t\t\t\tif(val.hpt) {\n\t\t\t\t\t\trowinfo[val.r] = rowobj;\n\t\t\t\t\t\trowobj.hpt = val.hpt; rowobj.hpx = pt2px(val.hpt);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\n\t\t\t\tcase 'LeftMargin':\n\t\t\t\tcase 'RightMargin':\n\t\t\t\tcase 'TopMargin':\n\t\t\t\tcase 'BottomMargin':\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'][Rn.slice(0,-6).toLowerCase()] = val;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Setup': // TODO\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'].header = val.header;\n\t\t\t\t\tout['!margins'].footer = val.footer;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Window2': // TODO\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(val.RTL) Workbook.Views[0].RTL = true;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Header': break; // TODO\n\t\t\t\tcase 'Footer': break; // TODO\n\t\t\t\tcase 'HCenter': break; // TODO\n\t\t\t\tcase 'VCenter': break; // TODO\n\t\t\t\tcase 'Pls': break; // TODO\n\t\t\t\tcase 'GCW': break;\n\t\t\t\tcase 'LHRecord': break;\n\t\t\t\tcase 'DBCell': break; // TODO\n\t\t\t\tcase 'EntExU2': break; // TODO\n\t\t\t\tcase 'SxView': break; // TODO\n\t\t\t\tcase 'Sxvd': break; // TODO\n\t\t\t\tcase 'SXVI': break; // TODO\n\t\t\t\tcase 'SXVDEx': break; // TODO\n\t\t\t\tcase 'SxIvd': break; // TODO\n\t\t\t\tcase 'SXString': break; // TODO\n\t\t\t\tcase 'Sync': break;\n\t\t\t\tcase 'Addin': break;\n\t\t\t\tcase 'SXDI': break; // TODO\n\t\t\t\tcase 'SXLI': break; // TODO\n\t\t\t\tcase 'SXEx': break; // TODO\n\t\t\t\tcase 'QsiSXTag': break; // TODO\n\t\t\t\tcase 'Selection': break;\n\t\t\t\tcase 'Feat': break;\n\t\t\t\tcase 'FeatHdr': case 'FeatHdr11': break;\n\t\t\t\tcase 'Feature11': case 'Feature12': case 'List12': break;\n\t\t\t\tcase 'Country': country = val; break;\n\t\t\t\tcase 'RecalcId': break;\n\t\t\t\tcase 'DxGCol': break; // TODO: htmlify\n\t\t\t\tcase 'Fbi': case 'Fbi2': case 'GelFrame': break;\n\t\t\t\tcase 'Font': break; // TODO\n\t\t\t\tcase 'XFCRC': break; // TODO\n\t\t\t\tcase 'Style': break; // TODO\n\t\t\t\tcase 'StyleExt': break; // TODO\n\t\t\t\tcase 'Palette': palette = val; break;\n\t\t\t\tcase 'Theme': themes = val; break;\n\t\t\t\t/* Protection */\n\t\t\t\tcase 'ScenarioProtect': break;\n\t\t\t\tcase 'ObjProtect': break;\n\n\t\t\t\t/* Conditional Formatting */\n\t\t\t\tcase 'CondFmt12': break;\n\n\t\t\t\t/* Table */\n\t\t\t\tcase 'Table': break; // TODO\n\t\t\t\tcase 'TableStyles': break; // TODO\n\t\t\t\tcase 'TableStyle': break; // TODO\n\t\t\t\tcase 'TableStyleElement': break; // TODO\n\n\t\t\t\t/* PivotTable */\n\t\t\t\tcase 'SXStreamID': break; // TODO\n\t\t\t\tcase 'SXVS': break; // TODO\n\t\t\t\tcase 'DConRef': break; // TODO\n\t\t\t\tcase 'SXAddl': break; // TODO\n\t\t\t\tcase 'DConBin': break; // TODO\n\t\t\t\tcase 'DConName': break; // TODO\n\t\t\t\tcase 'SXPI': break; // TODO\n\t\t\t\tcase 'SxFormat': break; // TODO\n\t\t\t\tcase 'SxSelect': break; // TODO\n\t\t\t\tcase 'SxRule': break; // TODO\n\t\t\t\tcase 'SxFilt': break; // TODO\n\t\t\t\tcase 'SxItm': break; // TODO\n\t\t\t\tcase 'SxDXF': break; // TODO\n\n\t\t\t\t/* Scenario Manager */\n\t\t\t\tcase 'ScenMan': break;\n\n\t\t\t\t/* Data Consolidation */\n\t\t\t\tcase 'DCon': break;\n\n\t\t\t\t/* Watched Cell */\n\t\t\t\tcase 'CellWatch': break;\n\n\t\t\t\t/* Print Settings */\n\t\t\t\tcase 'PrintRowCol': break;\n\t\t\t\tcase 'PrintGrid': break;\n\t\t\t\tcase 'PrintSize': break;\n\n\t\t\t\tcase 'XCT': break;\n\t\t\t\tcase 'CRN': break;\n\n\t\t\t\tcase 'Scl': {\n\t\t\t\t\t//console.log(\"Zoom Level:\", val[0]/val[1],val);\n\t\t\t\t} break;\n\t\t\t\tcase 'SheetExt': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\t\t\t\tcase 'SheetExtOptional': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\n\t\t\t\t/* VBA */\n\t\t\t\tcase 'ObNoMacros': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\t\t\t\tcase 'ObProj': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\t\t\t\tcase 'CodeName': {\nif(!cur_sheet) Workbook.WBProps.CodeName = val || \"ThisWorkbook\";\n\t\t\t\t\telse wsprops.CodeName = val || wsprops.name;\n\t\t\t\t} break;\n\t\t\t\tcase 'GUIDTypeLib': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\n\t\t\t\tcase 'WOpt': break; // TODO: WTF?\n\t\t\t\tcase 'PhoneticInfo': break;\n\n\t\t\t\tcase 'OleObjectSize': break;\n\n\t\t\t\t/* Differential Formatting */\n\t\t\t\tcase 'DXF': case 'DXFN': case 'DXFN12': case 'DXFN12List': case 'DXFN12NoCB': break;\n\n\t\t\t\t/* Data Validation */\n\t\t\t\tcase 'Dv': case 'DVal': break;\n\n\t\t\t\t/* Data Series */\n\t\t\t\tcase 'BRAI': case 'Series': case 'SeriesText': break;\n\n\t\t\t\t/* Data Connection */\n\t\t\t\tcase 'DConn': break;\n\t\t\t\tcase 'DbOrParamQry': break;\n\t\t\t\tcase 'DBQueryExt': break;\n\n\t\t\t\tcase 'OleDbConn': break;\n\t\t\t\tcase 'ExtString': break;\n\n\t\t\t\t/* Formatting */\n\t\t\t\tcase 'IFmtRecord': break;\n\t\t\t\tcase 'CondFmt': case 'CF': case 'CF12': case 'CFEx': break;\n\n\t\t\t\t/* Explicitly Ignored */\n\t\t\t\tcase 'Excel9File': break;\n\t\t\t\tcase 'Units': break;\n\t\t\t\tcase 'InterfaceHdr': case 'Mms': case 'InterfaceEnd': case 'DSF': break;\n\t\t\t\tcase 'BuiltInFnGroupCount': /* 2.4.30 0x0E or 0x10 but excel 2011 generates 0x11? */ break;\n\t\t\t\t/* View Stuff */\n\t\t\t\tcase 'Window1': case 'HideObj': case 'GridSet': case 'Guts':\n\t\t\t\tcase 'UserBView': case 'UserSViewBegin': case 'UserSViewEnd': break;\n\t\t\t\tcase 'Pane': break;\n\t\t\t\tdefault: switch(R.n) { /* nested */\n\t\t\t\t/* Chart */\n\t\t\t\tcase 'Dat':\n\t\t\t\tcase 'Begin': case 'End':\n\t\t\t\tcase 'StartBlock': case 'EndBlock':\n\t\t\t\tcase 'Frame': case 'Area':\n\t\t\t\tcase 'Axis': case 'AxisLine': case 'Tick': break;\n\t\t\t\tcase 'AxesUsed':\n\t\t\t\tcase 'CrtLayout12': case 'CrtLayout12A': case 'CrtLink': case 'CrtLine': case 'CrtMlFrt': case 'CrtMlFrtContinue': break;\n\t\t\t\tcase 'LineFormat': case 'AreaFormat':\n\t\t\t\tcase 'Chart': case 'Chart3d': case 'Chart3DBarShape': case 'ChartFormat': case 'ChartFrtInfo': break;\n\t\t\t\tcase 'PlotArea': case 'PlotGrowth': break;\n\t\t\t\tcase 'SeriesList': case 'SerParent': case 'SerAuxTrend': break;\n\t\t\t\tcase 'DataFormat': case 'SerToCrt': case 'FontX': break;\n\t\t\t\tcase 'CatSerRange': case 'AxcExt': case 'SerFmt': break;\n\t\t\t\tcase 'ShtProps': break;\n\t\t\t\tcase 'DefaultText': case 'Text': case 'CatLab': break;\n\t\t\t\tcase 'DataLabExtContents': break;\n\t\t\t\tcase 'Legend': case 'LegendException': break;\n\t\t\t\tcase 'Pie': case 'Scatter': break;\n\t\t\t\tcase 'PieFormat': case 'MarkerFormat': break;\n\t\t\t\tcase 'StartObject': case 'EndObject': break;\n\t\t\t\tcase 'AlRuns': case 'ObjectLink': break;\n\t\t\t\tcase 'SIIndex': break;\n\t\t\t\tcase 'AttachedLabel': case 'YMult': break;\n\n\t\t\t\t/* Chart Group */\n\t\t\t\tcase 'Line': case 'Bar': break;\n\t\t\t\tcase 'Surf': break;\n\n\t\t\t\t/* Axis Group */\n\t\t\t\tcase 'AxisParent': break;\n\t\t\t\tcase 'Pos': break;\n\t\t\t\tcase 'ValueRange': break;\n\n\t\t\t\t/* Pivot Chart */\n\t\t\t\tcase 'SXViewEx9': break; // TODO\n\t\t\t\tcase 'SXViewLink': break;\n\t\t\t\tcase 'PivotChartBits': break;\n\t\t\t\tcase 'SBaseRef': break;\n\t\t\t\tcase 'TextPropsStream': break;\n\n\t\t\t\t/* Chart Misc */\n\t\t\t\tcase 'LnExt': break;\n\t\t\t\tcase 'MkrExt': break;\n\t\t\t\tcase 'CrtCoopt': break;\n\n\t\t\t\t/* Query Table */\n\t\t\t\tcase 'Qsi': case 'Qsif': case 'Qsir': case 'QsiSXTag': break;\n\t\t\t\tcase 'TxtQry': break;\n\n\t\t\t\t/* Filter */\n\t\t\t\tcase 'FilterMode': break;\n\t\t\t\tcase 'AutoFilter': case 'AutoFilterInfo': break;\n\t\t\t\tcase 'AutoFilter12': break;\n\t\t\t\tcase 'DropDownObjIds': break;\n\t\t\t\tcase 'Sort': break;\n\t\t\t\tcase 'SortData': break;\n\n\t\t\t\t/* Drawing */\n\t\t\t\tcase 'ShapePropsStream': break;\n\t\t\t\tcase 'MsoDrawing': case 'MsoDrawingGroup': case 'MsoDrawingSelection': break;\n\t\t\t\t/* Pub Stuff */\n\t\t\t\tcase 'WebPub': case 'AutoWebPub': break;\n\n\t\t\t\t/* Print Stuff */\n\t\t\t\tcase 'HeaderFooter': case 'HFPicture': case 'PLV':\n\t\t\t\tcase 'HorizontalPageBreaks': case 'VerticalPageBreaks': break;\n\t\t\t\t/* Behavioral */\n\t\t\t\tcase 'Backup': case 'CompressPictures': case 'Compat12': break;\n\n\t\t\t\t/* Should not Happen */\n\t\t\t\tcase 'Continue': case 'ContinueFrt12': break;\n\n\t\t\t\t/* Future Records */\n\t\t\t\tcase 'FrtFontList': case 'FrtWrapper': break;\n\n\t\t\t\tdefault: switch(R.n) { /* nested */\n\t\t\t\t/* BIFF5 records */\n\t\t\t\tcase 'TabIdConf': case 'Radar': case 'RadarArea': case 'DropBar': case 'Intl': case 'CoordList': case 'SerAuxErrBar': break;\n\n\t\t\t\t/* BIFF2-4 records */\n\t\t\t\tcase 'BIFF2FONTCLR': case 'BIFF2FMTCNT': case 'BIFF2FONTXTRA': break;\n\t\t\t\tcase 'BIFF2XF': case 'BIFF3XF': case 'BIFF4XF': break;\n\t\t\t\tcase 'BIFF4FMTCNT': case 'BIFF2ROW': case 'BIFF2WINDOW2': break;\n\n\t\t\t\t/* Miscellaneous */\n\t\t\t\tcase 'SCENARIO': case 'DConBin': case 'PicF': case 'DataLabExt':\n\t\t\t\tcase 'Lel': case 'BopPop': case 'BopPopCustom': case 'RealTimeData':\n\t\t\t\tcase 'Name': break;\n\t\t\t\tcase 'LHNGraph': case 'FnGroupName': case 'AddMenu': case 'LPr': break;\n\t\t\t\tcase 'ListObj': case 'ListField': break;\n\t\t\t\tcase 'RRSort': break;\n\t\t\t\tcase 'BigName': break;\n\t\t\t\tcase 'ToolbarHdr': case 'ToolbarEnd': break;\n\t\t\t\tcase 'DDEObjName': break;\n\t\t\t\tcase 'FRTArchId$': break;\n\t\t\t\tdefault: if(options.WTF) throw 'Unrecognized Record ' + R.n;\n\t\t\t}}}}\n\t\t} else blob.l += length;\n\t}\n\twb.SheetNames=keys(Directory).sort(function(a,b) { return Number(a) - Number(b); }).map(function(x){return Directory[x].name;});\n\tif(!options.bookSheets) wb.Sheets=Sheets;\n\tif(wb.Sheets) FilterDatabases.forEach(function(r,i) { wb.Sheets[wb.SheetNames[i]]['!autofilter'] = r; });\n\twb.Preamble=Preamble;\n\twb.Strings = sst;\n\twb.SSF = SSF.get_table();\n\tif(opts.enc) wb.Encryption = opts.enc;\n\tif(themes) wb.Themes = themes;\n\twb.Metadata = {};\n\tif(country !== undefined) wb.Metadata.Country = country;\n\tif(supbooks.names.length > 0) Workbook.Names = supbooks.names;\n\twb.Workbook = Workbook;\n\treturn wb;\n}\n\n/* TODO: split props*/\nvar PSCLSID = {\n\tSI: \"e0859ff2f94f6810ab9108002b27b3d9\",\n\tDSI: \"02d5cdd59c2e1b10939708002b2cf9ae\",\n\tUDI: \"05d5cdd59c2e1b10939708002b2cf9ae\"\n};\nfunction parse_xls_props(cfb, props, o) {\n\t/* [MS-OSHARED] 2.3.3.2.2 Document Summary Information Property Set */\n\tvar DSI = CFB.find(cfb, '!DocumentSummaryInformation');\n\tif(DSI && DSI.size > 0) try {\n\t\tvar DocSummary = parse_PropertySetStream(DSI, DocSummaryPIDDSI, PSCLSID.DSI);\n\t\tfor(var d in DocSummary) props[d] = DocSummary[d];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\t/* [MS-OSHARED] 2.3.3.2.1 Summary Information Property Set*/\n\tvar SI = CFB.find(cfb, '!SummaryInformation');\n\tif(SI && SI.size > 0) try {\n\t\tvar Summary = parse_PropertySetStream(SI, SummaryPIDSI, PSCLSID.SI);\n\t\tfor(var s in Summary) if(props[s] == null) props[s] = Summary[s];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\tif(props.HeadingPairs && props.TitlesOfParts) {\n\t\tload_props_pairs(props.HeadingPairs, props.TitlesOfParts, props, o);\n\t\tdelete props.HeadingPairs; delete props.TitlesOfParts;\n\t}\n}\nfunction write_xls_props(wb, cfb) {\n\tvar DSEntries = [], SEntries = [], CEntries = [];\n\tvar i = 0, Keys;\n\tif(wb.Props) {\n\t\tKeys = keys(wb.Props);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Props[Keys[i]]]);\n\t}\n\tif(wb.Custprops) {\n\t\tKeys = keys(wb.Custprops);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) if(!Object.prototype.hasOwnProperty.call((wb.Props||{}), Keys[i])) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Custprops[Keys[i]]]);\n\t}\n\tvar CEntries2 = [];\n\tfor(i = 0; i < CEntries.length; ++i) {\n\t\tif(XLSPSSkip.indexOf(CEntries[i][0]) > -1) continue;\n\t\tif(CEntries[i][1] == null) continue;\n\t\tCEntries2.push(CEntries[i]);\n\t}\n\tif(SEntries.length) CFB.utils.cfb_add(cfb, \"/\\u0005SummaryInformation\", write_PropertySetStream(SEntries, PSCLSID.SI, SummaryRE, SummaryPIDSI));\n\tif(DSEntries.length || CEntries2.length) CFB.utils.cfb_add(cfb, \"/\\u0005DocumentSummaryInformation\", write_PropertySetStream(DSEntries, PSCLSID.DSI, DocSummaryRE, DocSummaryPIDDSI, CEntries2.length ? CEntries2 : null, PSCLSID.UDI));\n}\n\nfunction parse_xlscfb(cfb, options) {\nif(!options) options = {};\nfix_read_opts(options);\nreset_cp();\nif(options.codepage) set_ansi(options.codepage);\nvar CompObj, WB;\nif(cfb.FullPaths) {\n\tif(CFB.find(cfb, '/encryption')) throw new Error(\"File is password-protected\");\n\tCompObj = CFB.find(cfb, '!CompObj');\n\tWB = CFB.find(cfb, '/Workbook') || CFB.find(cfb, '/Book');\n} else {\n\tswitch(options.type) {\n\t\tcase 'base64': cfb = s2a(Base64.decode(cfb)); break;\n\t\tcase 'binary': cfb = s2a(cfb); break;\n\t\tcase 'buffer': break;\n\t\tcase 'array': if(!Array.isArray(cfb)) cfb = Array.prototype.slice.call(cfb); break;\n\t}\n\tprep_blob(cfb, 0);\n\tWB = ({content: cfb});\n}\nvar WorkbookP;\n\nvar _data;\nif(CompObj) parse_compobj(CompObj);\nif(options.bookProps && !options.bookSheets) WorkbookP = ({});\nelse {\n\tvar T = has_buf ? 'buffer' : 'array';\n\tif(WB && WB.content) WorkbookP = parse_workbook(WB.content, options);\n\t/* Quattro Pro 7-8 */\n\telse if((_data=CFB.find(cfb, 'PerfectOffice_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\t/* Quattro Pro 9 */\n\telse if((_data=CFB.find(cfb, 'NativeContent_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\telse throw new Error(\"Cannot find Workbook stream\");\n\tif(options.bookVBA && cfb.FullPaths && CFB.find(cfb, '/_VBA_PROJECT_CUR/VBA/dir')) WorkbookP.vbaraw = make_vba_xls(cfb);\n}\n\nvar props = {};\nif(cfb.FullPaths) parse_xls_props(cfb, props, options);\n\nWorkbookP.Props = WorkbookP.Custprops = props; /* TODO: split up properties */\nif(options.bookFiles) WorkbookP.cfb = cfb;\n/*WorkbookP.CompObjP = CompObjP; // TODO: storage? */\nreturn WorkbookP;\n}\n\n\nfunction write_xlscfb(wb, opts) {\n\tvar o = opts || {};\n\tvar cfb = CFB.utils.cfb_new({root:\"R\"});\n\tvar wbpath = \"/Workbook\";\n\tswitch(o.bookType || \"xls\") {\n\t\tcase \"xls\": o.bookType = \"biff8\";\n\t\t/* falls through */\n\t\tcase \"xla\": if(!o.bookType) o.bookType = \"xla\";\n\t\t/* falls through */\n\t\tcase \"biff8\": wbpath = \"/Workbook\"; o.biff = 8; break;\n\t\tcase \"biff5\": wbpath = \"/Book\"; o.biff = 5; break;\n\t\tdefault: throw new Error(\"invalid type \" + o.bookType + \" for XLS CFB\");\n\t}\n\tCFB.utils.cfb_add(cfb, wbpath, write_biff_buf(wb, o));\n\tif(o.biff == 8 && (wb.Props || wb.Custprops)) write_xls_props(wb, cfb);\n\t// TODO: SI, DSI, CO\n\tif(o.biff == 8 && wb.vbaraw) fill_vba_xls(cfb, CFB.read(wb.vbaraw, {type: typeof wb.vbaraw == \"string\" ? \"binary\" : \"buffer\"}));\n\treturn cfb;\n}\n/* [MS-XLSB] 2.3 Record Enumeration */\nvar XLSBRecordEnum = {\n0x0000: { n:\"BrtRowHdr\", f:parse_BrtRowHdr },\n0x0001: { n:\"BrtCellBlank\", f:parse_BrtCellBlank },\n0x0002: { n:\"BrtCellRk\", f:parse_BrtCellRk },\n0x0003: { n:\"BrtCellError\", f:parse_BrtCellError },\n0x0004: { n:\"BrtCellBool\", f:parse_BrtCellBool },\n0x0005: { n:\"BrtCellReal\", f:parse_BrtCellReal },\n0x0006: { n:\"BrtCellSt\", f:parse_BrtCellSt },\n0x0007: { n:\"BrtCellIsst\", f:parse_BrtCellIsst },\n0x0008: { n:\"BrtFmlaString\", f:parse_BrtFmlaString },\n0x0009: { n:\"BrtFmlaNum\", f:parse_BrtFmlaNum },\n0x000A: { n:\"BrtFmlaBool\", f:parse_BrtFmlaBool },\n0x000B: { n:\"BrtFmlaError\", f:parse_BrtFmlaError },\n0x0010: { n:\"BrtFRTArchID$\", f:parse_BrtFRTArchID$ },\n0x0013: { n:\"BrtSSTItem\", f:parse_RichStr },\n0x0014: { n:\"BrtPCDIMissing\" },\n0x0015: { n:\"BrtPCDINumber\" },\n0x0016: { n:\"BrtPCDIBoolean\" },\n0x0017: { n:\"BrtPCDIError\" },\n0x0018: { n:\"BrtPCDIString\" },\n0x0019: { n:\"BrtPCDIDatetime\" },\n0x001A: { n:\"BrtPCDIIndex\" },\n0x001B: { n:\"BrtPCDIAMissing\" },\n0x001C: { n:\"BrtPCDIANumber\" },\n0x001D: { n:\"BrtPCDIABoolean\" },\n0x001E: { n:\"BrtPCDIAError\" },\n0x001F: { n:\"BrtPCDIAString\" },\n0x0020: { n:\"BrtPCDIADatetime\" },\n0x0021: { n:\"BrtPCRRecord\" },\n0x0022: { n:\"BrtPCRRecordDt\" },\n0x0023: { n:\"BrtFRTBegin\" },\n0x0024: { n:\"BrtFRTEnd\" },\n0x0025: { n:\"BrtACBegin\" },\n0x0026: { n:\"BrtACEnd\" },\n0x0027: { n:\"BrtName\", f:parse_BrtName },\n0x0028: { n:\"BrtIndexRowBlock\" },\n0x002A: { n:\"BrtIndexBlock\" },\n0x002B: { n:\"BrtFont\", f:parse_BrtFont },\n0x002C: { n:\"BrtFmt\", f:parse_BrtFmt },\n0x002D: { n:\"BrtFill\", f:parse_BrtFill },\n0x002E: { n:\"BrtBorder\", f:parse_BrtBorder },\n0x002F: { n:\"BrtXF\", f:parse_BrtXF },\n0x0030: { n:\"BrtStyle\" },\n0x0031: { n:\"BrtCellMeta\" },\n0x0032: { n:\"BrtValueMeta\" },\n0x0033: { n:\"BrtMdb\" },\n0x0034: { n:\"BrtBeginFmd\" },\n0x0035: { n:\"BrtEndFmd\" },\n0x0036: { n:\"BrtBeginMdx\" },\n0x0037: { n:\"BrtEndMdx\" },\n0x0038: { n:\"BrtBeginMdxTuple\" },\n0x0039: { n:\"BrtEndMdxTuple\" },\n0x003A: { n:\"BrtMdxMbrIstr\" },\n0x003B: { n:\"BrtStr\" },\n0x003C: { n:\"BrtColInfo\", f:parse_ColInfo },\n0x003E: { n:\"BrtCellRString\" },\n0x003F: { n:\"BrtCalcChainItem$\", f:parse_BrtCalcChainItem$ },\n0x0040: { n:\"BrtDVal\", f:parse_BrtDVal },\n0x0041: { n:\"BrtSxvcellNum\" },\n0x0042: { n:\"BrtSxvcellStr\" },\n0x0043: { n:\"BrtSxvcellBool\" },\n0x0044: { n:\"BrtSxvcellErr\" },\n0x0045: { n:\"BrtSxvcellDate\" },\n0x0046: { n:\"BrtSxvcellNil\" },\n0x0080: { n:\"BrtFileVersion\" },\n0x0081: { n:\"BrtBeginSheet\" },\n0x0082: { n:\"BrtEndSheet\" },\n0x0083: { n:\"BrtBeginBook\", f:parsenoop, p:0 },\n0x0084: { n:\"BrtEndBook\" },\n0x0085: { n:\"BrtBeginWsViews\" },\n0x0086: { n:\"BrtEndWsViews\" },\n0x0087: { n:\"BrtBeginBookViews\" },\n0x0088: { n:\"BrtEndBookViews\" },\n0x0089: { n:\"BrtBeginWsView\", f:parse_BrtBeginWsView },\n0x008A: { n:\"BrtEndWsView\" },\n0x008B: { n:\"BrtBeginCsViews\" },\n0x008C: { n:\"BrtEndCsViews\" },\n0x008D: { n:\"BrtBeginCsView\" },\n0x008E: { n:\"BrtEndCsView\" },\n0x008F: { n:\"BrtBeginBundleShs\" },\n0x0090: { n:\"BrtEndBundleShs\" },\n0x0091: { n:\"BrtBeginSheetData\" },\n0x0092: { n:\"BrtEndSheetData\" },\n0x0093: { n:\"BrtWsProp\", f:parse_BrtWsProp },\n0x0094: { n:\"BrtWsDim\", f:parse_BrtWsDim, p:16 },\n0x0097: { n:\"BrtPane\", f:parse_BrtPane },\n0x0098: { n:\"BrtSel\" },\n0x0099: { n:\"BrtWbProp\", f:parse_BrtWbProp },\n0x009A: { n:\"BrtWbFactoid\" },\n0x009B: { n:\"BrtFileRecover\" },\n0x009C: { n:\"BrtBundleSh\", f:parse_BrtBundleSh },\n0x009D: { n:\"BrtCalcProp\" },\n0x009E: { n:\"BrtBookView\" },\n0x009F: { n:\"BrtBeginSst\", f:parse_BrtBeginSst },\n0x00A0: { n:\"BrtEndSst\" },\n0x00A1: { n:\"BrtBeginAFilter\", f:parse_UncheckedRfX },\n0x00A2: { n:\"BrtEndAFilter\" },\n0x00A3: { n:\"BrtBeginFilterColumn\" },\n0x00A4: { n:\"BrtEndFilterColumn\" },\n0x00A5: { n:\"BrtBeginFilters\" },\n0x00A6: { n:\"BrtEndFilters\" },\n0x00A7: { n:\"BrtFilter\" },\n0x00A8: { n:\"BrtColorFilter\" },\n0x00A9: { n:\"BrtIconFilter\" },\n0x00AA: { n:\"BrtTop10Filter\" },\n0x00AB: { n:\"BrtDynamicFilter\" },\n0x00AC: { n:\"BrtBeginCustomFilters\" },\n0x00AD: { n:\"BrtEndCustomFilters\" },\n0x00AE: { n:\"BrtCustomFilter\" },\n0x00AF: { n:\"BrtAFilterDateGroupItem\" },\n0x00B0: { n:\"BrtMergeCell\", f:parse_BrtMergeCell },\n0x00B1: { n:\"BrtBeginMergeCells\" },\n0x00B2: { n:\"BrtEndMergeCells\" },\n0x00B3: { n:\"BrtBeginPivotCacheDef\" },\n0x00B4: { n:\"BrtEndPivotCacheDef\" },\n0x00B5: { n:\"BrtBeginPCDFields\" },\n0x00B6: { n:\"BrtEndPCDFields\" },\n0x00B7: { n:\"BrtBeginPCDField\" },\n0x00B8: { n:\"BrtEndPCDField\" },\n0x00B9: { n:\"BrtBeginPCDSource\" },\n0x00BA: { n:\"BrtEndPCDSource\" },\n0x00BB: { n:\"BrtBeginPCDSRange\" },\n0x00BC: { n:\"BrtEndPCDSRange\" },\n0x00BD: { n:\"BrtBeginPCDFAtbl\" },\n0x00BE: { n:\"BrtEndPCDFAtbl\" },\n0x00BF: { n:\"BrtBeginPCDIRun\" },\n0x00C0: { n:\"BrtEndPCDIRun\" },\n0x00C1: { n:\"BrtBeginPivotCacheRecords\" },\n0x00C2: { n:\"BrtEndPivotCacheRecords\" },\n0x00C3: { n:\"BrtBeginPCDHierarchies\" },\n0x00C4: { n:\"BrtEndPCDHierarchies\" },\n0x00C5: { n:\"BrtBeginPCDHierarchy\" },\n0x00C6: { n:\"BrtEndPCDHierarchy\" },\n0x00C7: { n:\"BrtBeginPCDHFieldsUsage\" },\n0x00C8: { n:\"BrtEndPCDHFieldsUsage\" },\n0x00C9: { n:\"BrtBeginExtConnection\" },\n0x00CA: { n:\"BrtEndExtConnection\" },\n0x00CB: { n:\"BrtBeginECDbProps\" },\n0x00CC: { n:\"BrtEndECDbProps\" },\n0x00CD: { n:\"BrtBeginECOlapProps\" },\n0x00CE: { n:\"BrtEndECOlapProps\" },\n0x00CF: { n:\"BrtBeginPCDSConsol\" },\n0x00D0: { n:\"BrtEndPCDSConsol\" },\n0x00D1: { n:\"BrtBeginPCDSCPages\" },\n0x00D2: { n:\"BrtEndPCDSCPages\" },\n0x00D3: { n:\"BrtBeginPCDSCPage\" },\n0x00D4: { n:\"BrtEndPCDSCPage\" },\n0x00D5: { n:\"BrtBeginPCDSCPItem\" },\n0x00D6: { n:\"BrtEndPCDSCPItem\" },\n0x00D7: { n:\"BrtBeginPCDSCSets\" },\n0x00D8: { n:\"BrtEndPCDSCSets\" },\n0x00D9: { n:\"BrtBeginPCDSCSet\" },\n0x00DA: { n:\"BrtEndPCDSCSet\" },\n0x00DB: { n:\"BrtBeginPCDFGroup\" },\n0x00DC: { n:\"BrtEndPCDFGroup\" },\n0x00DD: { n:\"BrtBeginPCDFGItems\" },\n0x00DE: { n:\"BrtEndPCDFGItems\" },\n0x00DF: { n:\"BrtBeginPCDFGRange\" },\n0x00E0: { n:\"BrtEndPCDFGRange\" },\n0x00E1: { n:\"BrtBeginPCDFGDiscrete\" },\n0x00E2: { n:\"BrtEndPCDFGDiscrete\" },\n0x00E3: { n:\"BrtBeginPCDSDTupleCache\" },\n0x00E4: { n:\"BrtEndPCDSDTupleCache\" },\n0x00E5: { n:\"BrtBeginPCDSDTCEntries\" },\n0x00E6: { n:\"BrtEndPCDSDTCEntries\" },\n0x00E7: { n:\"BrtBeginPCDSDTCEMembers\" },\n0x00E8: { n:\"BrtEndPCDSDTCEMembers\" },\n0x00E9: { n:\"BrtBeginPCDSDTCEMember\" },\n0x00EA: { n:\"BrtEndPCDSDTCEMember\" },\n0x00EB: { n:\"BrtBeginPCDSDTCQueries\" },\n0x00EC: { n:\"BrtEndPCDSDTCQueries\" },\n0x00ED: { n:\"BrtBeginPCDSDTCQuery\" },\n0x00EE: { n:\"BrtEndPCDSDTCQuery\" },\n0x00EF: { n:\"BrtBeginPCDSDTCSets\" },\n0x00F0: { n:\"BrtEndPCDSDTCSets\" },\n0x00F1: { n:\"BrtBeginPCDSDTCSet\" },\n0x00F2: { n:\"BrtEndPCDSDTCSet\" },\n0x00F3: { n:\"BrtBeginPCDCalcItems\" },\n0x00F4: { n:\"BrtEndPCDCalcItems\" },\n0x00F5: { n:\"BrtBeginPCDCalcItem\" },\n0x00F6: { n:\"BrtEndPCDCalcItem\" },\n0x00F7: { n:\"BrtBeginPRule\" },\n0x00F8: { n:\"BrtEndPRule\" },\n0x00F9: { n:\"BrtBeginPRFilters\" },\n0x00FA: { n:\"BrtEndPRFilters\" },\n0x00FB: { n:\"BrtBeginPRFilter\" },\n0x00FC: { n:\"BrtEndPRFilter\" },\n0x00FD: { n:\"BrtBeginPNames\" },\n0x00FE: { n:\"BrtEndPNames\" },\n0x00FF: { n:\"BrtBeginPName\" },\n0x0100: { n:\"BrtEndPName\" },\n0x0101: { n:\"BrtBeginPNPairs\" },\n0x0102: { n:\"BrtEndPNPairs\" },\n0x0103: { n:\"BrtBeginPNPair\" },\n0x0104: { n:\"BrtEndPNPair\" },\n0x0105: { n:\"BrtBeginECWebProps\" },\n0x0106: { n:\"BrtEndECWebProps\" },\n0x0107: { n:\"BrtBeginEcWpTables\" },\n0x0108: { n:\"BrtEndECWPTables\" },\n0x0109: { n:\"BrtBeginECParams\" },\n0x010A: { n:\"BrtEndECParams\" },\n0x010B: { n:\"BrtBeginECParam\" },\n0x010C: { n:\"BrtEndECParam\" },\n0x010D: { n:\"BrtBeginPCDKPIs\" },\n0x010E: { n:\"BrtEndPCDKPIs\" },\n0x010F: { n:\"BrtBeginPCDKPI\" },\n0x0110: { n:\"BrtEndPCDKPI\" },\n0x0111: { n:\"BrtBeginDims\" },\n0x0112: { n:\"BrtEndDims\" },\n0x0113: { n:\"BrtBeginDim\" },\n0x0114: { n:\"BrtEndDim\" },\n0x0115: { n:\"BrtIndexPartEnd\" },\n0x0116: { n:\"BrtBeginStyleSheet\" },\n0x0117: { n:\"BrtEndStyleSheet\" },\n0x0118: { n:\"BrtBeginSXView\" },\n0x0119: { n:\"BrtEndSXVI\" },\n0x011A: { n:\"BrtBeginSXVI\" },\n0x011B: { n:\"BrtBeginSXVIs\" },\n0x011C: { n:\"BrtEndSXVIs\" },\n0x011D: { n:\"BrtBeginSXVD\" },\n0x011E: { n:\"BrtEndSXVD\" },\n0x011F: { n:\"BrtBeginSXVDs\" },\n0x0120: { n:\"BrtEndSXVDs\" },\n0x0121: { n:\"BrtBeginSXPI\" },\n0x0122: { n:\"BrtEndSXPI\" },\n0x0123: { n:\"BrtBeginSXPIs\" },\n0x0124: { n:\"BrtEndSXPIs\" },\n0x0125: { n:\"BrtBeginSXDI\" },\n0x0126: { n:\"BrtEndSXDI\" },\n0x0127: { n:\"BrtBeginSXDIs\" },\n0x0128: { n:\"BrtEndSXDIs\" },\n0x0129: { n:\"BrtBeginSXLI\" },\n0x012A: { n:\"BrtEndSXLI\" },\n0x012B: { n:\"BrtBeginSXLIRws\" },\n0x012C: { n:\"BrtEndSXLIRws\" },\n0x012D: { n:\"BrtBeginSXLICols\" },\n0x012E: { n:\"BrtEndSXLICols\" },\n0x012F: { n:\"BrtBeginSXFormat\" },\n0x0130: { n:\"BrtEndSXFormat\" },\n0x0131: { n:\"BrtBeginSXFormats\" },\n0x0132: { n:\"BrtEndSxFormats\" },\n0x0133: { n:\"BrtBeginSxSelect\" },\n0x0134: { n:\"BrtEndSxSelect\" },\n0x0135: { n:\"BrtBeginISXVDRws\" },\n0x0136: { n:\"BrtEndISXVDRws\" },\n0x0137: { n:\"BrtBeginISXVDCols\" },\n0x0138: { n:\"BrtEndISXVDCols\" },\n0x0139: { n:\"BrtEndSXLocation\" },\n0x013A: { n:\"BrtBeginSXLocation\" },\n0x013B: { n:\"BrtEndSXView\" },\n0x013C: { n:\"BrtBeginSXTHs\" },\n0x013D: { n:\"BrtEndSXTHs\" },\n0x013E: { n:\"BrtBeginSXTH\" },\n0x013F: { n:\"BrtEndSXTH\" },\n0x0140: { n:\"BrtBeginISXTHRws\" },\n0x0141: { n:\"BrtEndISXTHRws\" },\n0x0142: { n:\"BrtBeginISXTHCols\" },\n0x0143: { n:\"BrtEndISXTHCols\" },\n0x0144: { n:\"BrtBeginSXTDMPS\" },\n0x0145: { n:\"BrtEndSXTDMPs\" },\n0x0146: { n:\"BrtBeginSXTDMP\" },\n0x0147: { n:\"BrtEndSXTDMP\" },\n0x0148: { n:\"BrtBeginSXTHItems\" },\n0x0149: { n:\"BrtEndSXTHItems\" },\n0x014A: { n:\"BrtBeginSXTHItem\" },\n0x014B: { n:\"BrtEndSXTHItem\" },\n0x014C: { n:\"BrtBeginMetadata\" },\n0x014D: { n:\"BrtEndMetadata\" },\n0x014E: { n:\"BrtBeginEsmdtinfo\" },\n0x014F: { n:\"BrtMdtinfo\" },\n0x0150: { n:\"BrtEndEsmdtinfo\" },\n0x0151: { n:\"BrtBeginEsmdb\" },\n0x0152: { n:\"BrtEndEsmdb\" },\n0x0153: { n:\"BrtBeginEsfmd\" },\n0x0154: { n:\"BrtEndEsfmd\" },\n0x0155: { n:\"BrtBeginSingleCells\" },\n0x0156: { n:\"BrtEndSingleCells\" },\n0x0157: { n:\"BrtBeginList\" },\n0x0158: { n:\"BrtEndList\" },\n0x0159: { n:\"BrtBeginListCols\" },\n0x015A: { n:\"BrtEndListCols\" },\n0x015B: { n:\"BrtBeginListCol\" },\n0x015C: { n:\"BrtEndListCol\" },\n0x015D: { n:\"BrtBeginListXmlCPr\" },\n0x015E: { n:\"BrtEndListXmlCPr\" },\n0x015F: { n:\"BrtListCCFmla\" },\n0x0160: { n:\"BrtListTrFmla\" },\n0x0161: { n:\"BrtBeginExternals\" },\n0x0162: { n:\"BrtEndExternals\" },\n0x0163: { n:\"BrtSupBookSrc\", f:parse_RelID},\n0x0165: { n:\"BrtSupSelf\" },\n0x0166: { n:\"BrtSupSame\" },\n0x0167: { n:\"BrtSupTabs\" },\n0x0168: { n:\"BrtBeginSupBook\" },\n0x0169: { n:\"BrtPlaceholderName\" },\n0x016A: { n:\"BrtExternSheet\", f:parse_ExternSheet },\n0x016B: { n:\"BrtExternTableStart\" },\n0x016C: { n:\"BrtExternTableEnd\" },\n0x016E: { n:\"BrtExternRowHdr\" },\n0x016F: { n:\"BrtExternCellBlank\" },\n0x0170: { n:\"BrtExternCellReal\" },\n0x0171: { n:\"BrtExternCellBool\" },\n0x0172: { n:\"BrtExternCellError\" },\n0x0173: { n:\"BrtExternCellString\" },\n0x0174: { n:\"BrtBeginEsmdx\" },\n0x0175: { n:\"BrtEndEsmdx\" },\n0x0176: { n:\"BrtBeginMdxSet\" },\n0x0177: { n:\"BrtEndMdxSet\" },\n0x0178: { n:\"BrtBeginMdxMbrProp\" },\n0x0179: { n:\"BrtEndMdxMbrProp\" },\n0x017A: { n:\"BrtBeginMdxKPI\" },\n0x017B: { n:\"BrtEndMdxKPI\" },\n0x017C: { n:\"BrtBeginEsstr\" },\n0x017D: { n:\"BrtEndEsstr\" },\n0x017E: { n:\"BrtBeginPRFItem\" },\n0x017F: { n:\"BrtEndPRFItem\" },\n0x0180: { n:\"BrtBeginPivotCacheIDs\" },\n0x0181: { n:\"BrtEndPivotCacheIDs\" },\n0x0182: { n:\"BrtBeginPivotCacheID\" },\n0x0183: { n:\"BrtEndPivotCacheID\" },\n0x0184: { n:\"BrtBeginISXVIs\" },\n0x0185: { n:\"BrtEndISXVIs\" },\n0x0186: { n:\"BrtBeginColInfos\" },\n0x0187: { n:\"BrtEndColInfos\" },\n0x0188: { n:\"BrtBeginRwBrk\" },\n0x0189: { n:\"BrtEndRwBrk\" },\n0x018A: { n:\"BrtBeginColBrk\" },\n0x018B: { n:\"BrtEndColBrk\" },\n0x018C: { n:\"BrtBrk\" },\n0x018D: { n:\"BrtUserBookView\" },\n0x018E: { n:\"BrtInfo\" },\n0x018F: { n:\"BrtCUsr\" },\n0x0190: { n:\"BrtUsr\" },\n0x0191: { n:\"BrtBeginUsers\" },\n0x0193: { n:\"BrtEOF\" },\n0x0194: { n:\"BrtUCR\" },\n0x0195: { n:\"BrtRRInsDel\" },\n0x0196: { n:\"BrtRREndInsDel\" },\n0x0197: { n:\"BrtRRMove\" },\n0x0198: { n:\"BrtRREndMove\" },\n0x0199: { n:\"BrtRRChgCell\" },\n0x019A: { n:\"BrtRREndChgCell\" },\n0x019B: { n:\"BrtRRHeader\" },\n0x019C: { n:\"BrtRRUserView\" },\n0x019D: { n:\"BrtRRRenSheet\" },\n0x019E: { n:\"BrtRRInsertSh\" },\n0x019F: { n:\"BrtRRDefName\" },\n0x01A0: { n:\"BrtRRNote\" },\n0x01A1: { n:\"BrtRRConflict\" },\n0x01A2: { n:\"BrtRRTQSIF\" },\n0x01A3: { n:\"BrtRRFormat\" },\n0x01A4: { n:\"BrtRREndFormat\" },\n0x01A5: { n:\"BrtRRAutoFmt\" },\n0x01A6: { n:\"BrtBeginUserShViews\" },\n0x01A7: { n:\"BrtBeginUserShView\" },\n0x01A8: { n:\"BrtEndUserShView\" },\n0x01A9: { n:\"BrtEndUserShViews\" },\n0x01AA: { n:\"BrtArrFmla\", f:parse_BrtArrFmla },\n0x01AB: { n:\"BrtShrFmla\", f:parse_BrtShrFmla },\n0x01AC: { n:\"BrtTable\" },\n0x01AD: { n:\"BrtBeginExtConnections\" },\n0x01AE: { n:\"BrtEndExtConnections\" },\n0x01AF: { n:\"BrtBeginPCDCalcMems\" },\n0x01B0: { n:\"BrtEndPCDCalcMems\" },\n0x01B1: { n:\"BrtBeginPCDCalcMem\" },\n0x01B2: { n:\"BrtEndPCDCalcMem\" },\n0x01B3: { n:\"BrtBeginPCDHGLevels\" },\n0x01B4: { n:\"BrtEndPCDHGLevels\" },\n0x01B5: { n:\"BrtBeginPCDHGLevel\" },\n0x01B6: { n:\"BrtEndPCDHGLevel\" },\n0x01B7: { n:\"BrtBeginPCDHGLGroups\" },\n0x01B8: { n:\"BrtEndPCDHGLGroups\" },\n0x01B9: { n:\"BrtBeginPCDHGLGroup\" },\n0x01BA: { n:\"BrtEndPCDHGLGroup\" },\n0x01BB: { n:\"BrtBeginPCDHGLGMembers\" },\n0x01BC: { n:\"BrtEndPCDHGLGMembers\" },\n0x01BD: { n:\"BrtBeginPCDHGLGMember\" },\n0x01BE: { n:\"BrtEndPCDHGLGMember\" },\n0x01BF: { n:\"BrtBeginQSI\" },\n0x01C0: { n:\"BrtEndQSI\" },\n0x01C1: { n:\"BrtBeginQSIR\" },\n0x01C2: { n:\"BrtEndQSIR\" },\n0x01C3: { n:\"BrtBeginDeletedNames\" },\n0x01C4: { n:\"BrtEndDeletedNames\" },\n0x01C5: { n:\"BrtBeginDeletedName\" },\n0x01C6: { n:\"BrtEndDeletedName\" },\n0x01C7: { n:\"BrtBeginQSIFs\" },\n0x01C8: { n:\"BrtEndQSIFs\" },\n0x01C9: { n:\"BrtBeginQSIF\" },\n0x01CA: { n:\"BrtEndQSIF\" },\n0x01CB: { n:\"BrtBeginAutoSortScope\" },\n0x01CC: { n:\"BrtEndAutoSortScope\" },\n0x01CD: { n:\"BrtBeginConditionalFormatting\" },\n0x01CE: { n:\"BrtEndConditionalFormatting\" },\n0x01CF: { n:\"BrtBeginCFRule\" },\n0x01D0: { n:\"BrtEndCFRule\" },\n0x01D1: { n:\"BrtBeginIconSet\" },\n0x01D2: { n:\"BrtEndIconSet\" },\n0x01D3: { n:\"BrtBeginDatabar\" },\n0x01D4: { n:\"BrtEndDatabar\" },\n0x01D5: { n:\"BrtBeginColorScale\" },\n0x01D6: { n:\"BrtEndColorScale\" },\n0x01D7: { n:\"BrtCFVO\" },\n0x01D8: { n:\"BrtExternValueMeta\" },\n0x01D9: { n:\"BrtBeginColorPalette\" },\n0x01DA: { n:\"BrtEndColorPalette\" },\n0x01DB: { n:\"BrtIndexedColor\" },\n0x01DC: { n:\"BrtMargins\", f:parse_BrtMargins },\n0x01DD: { n:\"BrtPrintOptions\" },\n0x01DE: { n:\"BrtPageSetup\" },\n0x01DF: { n:\"BrtBeginHeaderFooter\" },\n0x01E0: { n:\"BrtEndHeaderFooter\" },\n0x01E1: { n:\"BrtBeginSXCrtFormat\" },\n0x01E2: { n:\"BrtEndSXCrtFormat\" },\n0x01E3: { n:\"BrtBeginSXCrtFormats\" },\n0x01E4: { n:\"BrtEndSXCrtFormats\" },\n0x01E5: { n:\"BrtWsFmtInfo\", f:parse_BrtWsFmtInfo },\n0x01E6: { n:\"BrtBeginMgs\" },\n0x01E7: { n:\"BrtEndMGs\" },\n0x01E8: { n:\"BrtBeginMGMaps\" },\n0x01E9: { n:\"BrtEndMGMaps\" },\n0x01EA: { n:\"BrtBeginMG\" },\n0x01EB: { n:\"BrtEndMG\" },\n0x01EC: { n:\"BrtBeginMap\" },\n0x01ED: { n:\"BrtEndMap\" },\n0x01EE: { n:\"BrtHLink\", f:parse_BrtHLink },\n0x01EF: { n:\"BrtBeginDCon\" },\n0x01F0: { n:\"BrtEndDCon\" },\n0x01F1: { n:\"BrtBeginDRefs\" },\n0x01F2: { n:\"BrtEndDRefs\" },\n0x01F3: { n:\"BrtDRef\" },\n0x01F4: { n:\"BrtBeginScenMan\" },\n0x01F5: { n:\"BrtEndScenMan\" },\n0x01F6: { n:\"BrtBeginSct\" },\n0x01F7: { n:\"BrtEndSct\" },\n0x01F8: { n:\"BrtSlc\" },\n0x01F9: { n:\"BrtBeginDXFs\" },\n0x01FA: { n:\"BrtEndDXFs\" },\n0x01FB: { n:\"BrtDXF\" },\n0x01FC: { n:\"BrtBeginTableStyles\" },\n0x01FD: { n:\"BrtEndTableStyles\" },\n0x01FE: { n:\"BrtBeginTableStyle\" },\n0x01FF: { n:\"BrtEndTableStyle\" },\n0x0200: { n:\"BrtTableStyleElement\" },\n0x0201: { n:\"BrtTableStyleClient\" },\n0x0202: { n:\"BrtBeginVolDeps\" },\n0x0203: { n:\"BrtEndVolDeps\" },\n0x0204: { n:\"BrtBeginVolType\" },\n0x0205: { n:\"BrtEndVolType\" },\n0x0206: { n:\"BrtBeginVolMain\" },\n0x0207: { n:\"BrtEndVolMain\" },\n0x0208: { n:\"BrtBeginVolTopic\" },\n0x0209: { n:\"BrtEndVolTopic\" },\n0x020A: { n:\"BrtVolSubtopic\" },\n0x020B: { n:\"BrtVolRef\" },\n0x020C: { n:\"BrtVolNum\" },\n0x020D: { n:\"BrtVolErr\" },\n0x020E: { n:\"BrtVolStr\" },\n0x020F: { n:\"BrtVolBool\" },\n0x0210: { n:\"BrtBeginCalcChain$\" },\n0x0211: { n:\"BrtEndCalcChain$\" },\n0x0212: { n:\"BrtBeginSortState\" },\n0x0213: { n:\"BrtEndSortState\" },\n0x0214: { n:\"BrtBeginSortCond\" },\n0x0215: { n:\"BrtEndSortCond\" },\n0x0216: { n:\"BrtBookProtection\" },\n0x0217: { n:\"BrtSheetProtection\" },\n0x0218: { n:\"BrtRangeProtection\" },\n0x0219: { n:\"BrtPhoneticInfo\" },\n0x021A: { n:\"BrtBeginECTxtWiz\" },\n0x021B: { n:\"BrtEndECTxtWiz\" },\n0x021C: { n:\"BrtBeginECTWFldInfoLst\" },\n0x021D: { n:\"BrtEndECTWFldInfoLst\" },\n0x021E: { n:\"BrtBeginECTwFldInfo\" },\n0x0224: { n:\"BrtFileSharing\" },\n0x0225: { n:\"BrtOleSize\" },\n0x0226: { n:\"BrtDrawing\", f:parse_RelID },\n0x0227: { n:\"BrtLegacyDrawing\" },\n0x0228: { n:\"BrtLegacyDrawingHF\" },\n0x0229: { n:\"BrtWebOpt\" },\n0x022A: { n:\"BrtBeginWebPubItems\" },\n0x022B: { n:\"BrtEndWebPubItems\" },\n0x022C: { n:\"BrtBeginWebPubItem\" },\n0x022D: { n:\"BrtEndWebPubItem\" },\n0x022E: { n:\"BrtBeginSXCondFmt\" },\n0x022F: { n:\"BrtEndSXCondFmt\" },\n0x0230: { n:\"BrtBeginSXCondFmts\" },\n0x0231: { n:\"BrtEndSXCondFmts\" },\n0x0232: { n:\"BrtBkHim\" },\n0x0234: { n:\"BrtColor\" },\n0x0235: { n:\"BrtBeginIndexedColors\" },\n0x0236: { n:\"BrtEndIndexedColors\" },\n0x0239: { n:\"BrtBeginMRUColors\" },\n0x023A: { n:\"BrtEndMRUColors\" },\n0x023C: { n:\"BrtMRUColor\" },\n0x023D: { n:\"BrtBeginDVals\" },\n0x023E: { n:\"BrtEndDVals\" },\n0x0241: { n:\"BrtSupNameStart\" },\n0x0242: { n:\"BrtSupNameValueStart\" },\n0x0243: { n:\"BrtSupNameValueEnd\" },\n0x0244: { n:\"BrtSupNameNum\" },\n0x0245: { n:\"BrtSupNameErr\" },\n0x0246: { n:\"BrtSupNameSt\" },\n0x0247: { n:\"BrtSupNameNil\" },\n0x0248: { n:\"BrtSupNameBool\" },\n0x0249: { n:\"BrtSupNameFmla\" },\n0x024A: { n:\"BrtSupNameBits\" },\n0x024B: { n:\"BrtSupNameEnd\" },\n0x024C: { n:\"BrtEndSupBook\" },\n0x024D: { n:\"BrtCellSmartTagProperty\" },\n0x024E: { n:\"BrtBeginCellSmartTag\" },\n0x024F: { n:\"BrtEndCellSmartTag\" },\n0x0250: { n:\"BrtBeginCellSmartTags\" },\n0x0251: { n:\"BrtEndCellSmartTags\" },\n0x0252: { n:\"BrtBeginSmartTags\" },\n0x0253: { n:\"BrtEndSmartTags\" },\n0x0254: { n:\"BrtSmartTagType\" },\n0x0255: { n:\"BrtBeginSmartTagTypes\" },\n0x0256: { n:\"BrtEndSmartTagTypes\" },\n0x0257: { n:\"BrtBeginSXFilters\" },\n0x0258: { n:\"BrtEndSXFilters\" },\n0x0259: { n:\"BrtBeginSXFILTER\" },\n0x025A: { n:\"BrtEndSXFilter\" },\n0x025B: { n:\"BrtBeginFills\" },\n0x025C: { n:\"BrtEndFills\" },\n0x025D: { n:\"BrtBeginCellWatches\" },\n0x025E: { n:\"BrtEndCellWatches\" },\n0x025F: { n:\"BrtCellWatch\" },\n0x0260: { n:\"BrtBeginCRErrs\" },\n0x0261: { n:\"BrtEndCRErrs\" },\n0x0262: { n:\"BrtCrashRecErr\" },\n0x0263: { n:\"BrtBeginFonts\" },\n0x0264: { n:\"BrtEndFonts\" },\n0x0265: { n:\"BrtBeginBorders\" },\n0x0266: { n:\"BrtEndBorders\" },\n0x0267: { n:\"BrtBeginFmts\" },\n0x0268: { n:\"BrtEndFmts\" },\n0x0269: { n:\"BrtBeginCellXFs\" },\n0x026A: { n:\"BrtEndCellXFs\" },\n0x026B: { n:\"BrtBeginStyles\" },\n0x026C: { n:\"BrtEndStyles\" },\n0x0271: { n:\"BrtBigName\" },\n0x0272: { n:\"BrtBeginCellStyleXFs\" },\n0x0273: { n:\"BrtEndCellStyleXFs\" },\n0x0274: { n:\"BrtBeginComments\" },\n0x0275: { n:\"BrtEndComments\" },\n0x0276: { n:\"BrtBeginCommentAuthors\" },\n0x0277: { n:\"BrtEndCommentAuthors\" },\n0x0278: { n:\"BrtCommentAuthor\", f:parse_BrtCommentAuthor },\n0x0279: { n:\"BrtBeginCommentList\" },\n0x027A: { n:\"BrtEndCommentList\" },\n0x027B: { n:\"BrtBeginComment\", f:parse_BrtBeginComment},\n0x027C: { n:\"BrtEndComment\" },\n0x027D: { n:\"BrtCommentText\", f:parse_BrtCommentText },\n0x027E: { n:\"BrtBeginOleObjects\" },\n0x027F: { n:\"BrtOleObject\" },\n0x0280: { n:\"BrtEndOleObjects\" },\n0x0281: { n:\"BrtBeginSxrules\" },\n0x0282: { n:\"BrtEndSxRules\" },\n0x0283: { n:\"BrtBeginActiveXControls\" },\n0x0284: { n:\"BrtActiveX\" },\n0x0285: { n:\"BrtEndActiveXControls\" },\n0x0286: { n:\"BrtBeginPCDSDTCEMembersSortBy\" },\n0x0288: { n:\"BrtBeginCellIgnoreECs\" },\n0x0289: { n:\"BrtCellIgnoreEC\" },\n0x028A: { n:\"BrtEndCellIgnoreECs\" },\n0x028B: { n:\"BrtCsProp\", f:parse_BrtCsProp },\n0x028C: { n:\"BrtCsPageSetup\" },\n0x028D: { n:\"BrtBeginUserCsViews\" },\n0x028E: { n:\"BrtEndUserCsViews\" },\n0x028F: { n:\"BrtBeginUserCsView\" },\n0x0290: { n:\"BrtEndUserCsView\" },\n0x0291: { n:\"BrtBeginPcdSFCIEntries\" },\n0x0292: { n:\"BrtEndPCDSFCIEntries\" },\n0x0293: { n:\"BrtPCDSFCIEntry\" },\n0x0294: { n:\"BrtBeginListParts\" },\n0x0295: { n:\"BrtListPart\" },\n0x0296: { n:\"BrtEndListParts\" },\n0x0297: { n:\"BrtSheetCalcProp\" },\n0x0298: { n:\"BrtBeginFnGroup\" },\n0x0299: { n:\"BrtFnGroup\" },\n0x029A: { n:\"BrtEndFnGroup\" },\n0x029B: { n:\"BrtSupAddin\" },\n0x029C: { n:\"BrtSXTDMPOrder\" },\n0x029D: { n:\"BrtCsProtection\" },\n0x029F: { n:\"BrtBeginWsSortMap\" },\n0x02A0: { n:\"BrtEndWsSortMap\" },\n0x02A1: { n:\"BrtBeginRRSort\" },\n0x02A2: { n:\"BrtEndRRSort\" },\n0x02A3: { n:\"BrtRRSortItem\" },\n0x02A4: { n:\"BrtFileSharingIso\" },\n0x02A5: { n:\"BrtBookProtectionIso\" },\n0x02A6: { n:\"BrtSheetProtectionIso\" },\n0x02A7: { n:\"BrtCsProtectionIso\" },\n0x02A8: { n:\"BrtRangeProtectionIso\" },\n0x02A9: { n:\"BrtDValList\" },\n0x0400: { n:\"BrtRwDescent\" },\n0x0401: { n:\"BrtKnownFonts\" },\n0x0402: { n:\"BrtBeginSXTupleSet\" },\n0x0403: { n:\"BrtEndSXTupleSet\" },\n0x0404: { n:\"BrtBeginSXTupleSetHeader\" },\n0x0405: { n:\"BrtEndSXTupleSetHeader\" },\n0x0406: { n:\"BrtSXTupleSetHeaderItem\" },\n0x0407: { n:\"BrtBeginSXTupleSetData\" },\n0x0408: { n:\"BrtEndSXTupleSetData\" },\n0x0409: { n:\"BrtBeginSXTupleSetRow\" },\n0x040A: { n:\"BrtEndSXTupleSetRow\" },\n0x040B: { n:\"BrtSXTupleSetRowItem\" },\n0x040C: { n:\"BrtNameExt\" },\n0x040D: { n:\"BrtPCDH14\" },\n0x040E: { n:\"BrtBeginPCDCalcMem14\" },\n0x040F: { n:\"BrtEndPCDCalcMem14\" },\n0x0410: { n:\"BrtSXTH14\" },\n0x0411: { n:\"BrtBeginSparklineGroup\" },\n0x0412: { n:\"BrtEndSparklineGroup\" },\n0x0413: { n:\"BrtSparkline\" },\n0x0414: { n:\"BrtSXDI14\" },\n0x0415: { n:\"BrtWsFmtInfoEx14\" },\n0x0416: { n:\"BrtBeginConditionalFormatting14\" },\n0x0417: { n:\"BrtEndConditionalFormatting14\" },\n0x0418: { n:\"BrtBeginCFRule14\" },\n0x0419: { n:\"BrtEndCFRule14\" },\n0x041A: { n:\"BrtCFVO14\" },\n0x041B: { n:\"BrtBeginDatabar14\" },\n0x041C: { n:\"BrtBeginIconSet14\" },\n0x041D: { n:\"BrtDVal14\", f: parse_BrtDVal14 },\n0x041E: { n:\"BrtBeginDVals14\" },\n0x041F: { n:\"BrtColor14\" },\n0x0420: { n:\"BrtBeginSparklines\" },\n0x0421: { n:\"BrtEndSparklines\" },\n0x0422: { n:\"BrtBeginSparklineGroups\" },\n0x0423: { n:\"BrtEndSparklineGroups\" },\n0x0425: { n:\"BrtSXVD14\" },\n0x0426: { n:\"BrtBeginSXView14\" },\n0x0427: { n:\"BrtEndSXView14\" },\n0x0428: { n:\"BrtBeginSXView16\" },\n0x0429: { n:\"BrtEndSXView16\" },\n0x042A: { n:\"BrtBeginPCD14\" },\n0x042B: { n:\"BrtEndPCD14\" },\n0x042C: { n:\"BrtBeginExtConn14\" },\n0x042D: { n:\"BrtEndExtConn14\" },\n0x042E: { n:\"BrtBeginSlicerCacheIDs\" },\n0x042F: { n:\"BrtEndSlicerCacheIDs\" },\n0x0430: { n:\"BrtBeginSlicerCacheID\" },\n0x0431: { n:\"BrtEndSlicerCacheID\" },\n0x0433: { n:\"BrtBeginSlicerCache\" },\n0x0434: { n:\"BrtEndSlicerCache\" },\n0x0435: { n:\"BrtBeginSlicerCacheDef\" },\n0x0436: { n:\"BrtEndSlicerCacheDef\" },\n0x0437: { n:\"BrtBeginSlicersEx\" },\n0x0438: { n:\"BrtEndSlicersEx\" },\n0x0439: { n:\"BrtBeginSlicerEx\" },\n0x043A: { n:\"BrtEndSlicerEx\" },\n0x043B: { n:\"BrtBeginSlicer\" },\n0x043C: { n:\"BrtEndSlicer\" },\n0x043D: { n:\"BrtSlicerCachePivotTables\" },\n0x043E: { n:\"BrtBeginSlicerCacheOlapImpl\" },\n0x043F: { n:\"BrtEndSlicerCacheOlapImpl\" },\n0x0440: { n:\"BrtBeginSlicerCacheLevelsData\" },\n0x0441: { n:\"BrtEndSlicerCacheLevelsData\" },\n0x0442: { n:\"BrtBeginSlicerCacheLevelData\" },\n0x0443: { n:\"BrtEndSlicerCacheLevelData\" },\n0x0444: { n:\"BrtBeginSlicerCacheSiRanges\" },\n0x0445: { n:\"BrtEndSlicerCacheSiRanges\" },\n0x0446: { n:\"BrtBeginSlicerCacheSiRange\" },\n0x0447: { n:\"BrtEndSlicerCacheSiRange\" },\n0x0448: { n:\"BrtSlicerCacheOlapItem\" },\n0x0449: { n:\"BrtBeginSlicerCacheSelections\" },\n0x044A: { n:\"BrtSlicerCacheSelection\" },\n0x044B: { n:\"BrtEndSlicerCacheSelections\" },\n0x044C: { n:\"BrtBeginSlicerCacheNative\" },\n0x044D: { n:\"BrtEndSlicerCacheNative\" },\n0x044E: { n:\"BrtSlicerCacheNativeItem\" },\n0x044F: { n:\"BrtRangeProtection14\" },\n0x0450: { n:\"BrtRangeProtectionIso14\" },\n0x0451: { n:\"BrtCellIgnoreEC14\" },\n0x0457: { n:\"BrtList14\" },\n0x0458: { n:\"BrtCFIcon\" },\n0x0459: { n:\"BrtBeginSlicerCachesPivotCacheIDs\" },\n0x045A: { n:\"BrtEndSlicerCachesPivotCacheIDs\" },\n0x045B: { n:\"BrtBeginSlicers\" },\n0x045C: { n:\"BrtEndSlicers\" },\n0x045D: { n:\"BrtWbProp14\" },\n0x045E: { n:\"BrtBeginSXEdit\" },\n0x045F: { n:\"BrtEndSXEdit\" },\n0x0460: { n:\"BrtBeginSXEdits\" },\n0x0461: { n:\"BrtEndSXEdits\" },\n0x0462: { n:\"BrtBeginSXChange\" },\n0x0463: { n:\"BrtEndSXChange\" },\n0x0464: { n:\"BrtBeginSXChanges\" },\n0x0465: { n:\"BrtEndSXChanges\" },\n0x0466: { n:\"BrtSXTupleItems\" },\n0x0468: { n:\"BrtBeginSlicerStyle\" },\n0x0469: { n:\"BrtEndSlicerStyle\" },\n0x046A: { n:\"BrtSlicerStyleElement\" },\n0x046B: { n:\"BrtBeginStyleSheetExt14\" },\n0x046C: { n:\"BrtEndStyleSheetExt14\" },\n0x046D: { n:\"BrtBeginSlicerCachesPivotCacheID\" },\n0x046E: { n:\"BrtEndSlicerCachesPivotCacheID\" },\n0x046F: { n:\"BrtBeginConditionalFormattings\" },\n0x0470: { n:\"BrtEndConditionalFormattings\" },\n0x0471: { n:\"BrtBeginPCDCalcMemExt\" },\n0x0472: { n:\"BrtEndPCDCalcMemExt\" },\n0x0473: { n:\"BrtBeginPCDCalcMemsExt\" },\n0x0474: { n:\"BrtEndPCDCalcMemsExt\" },\n0x0475: { n:\"BrtPCDField14\" },\n0x0476: { n:\"BrtBeginSlicerStyles\" },\n0x0477: { n:\"BrtEndSlicerStyles\" },\n0x0478: { n:\"BrtBeginSlicerStyleElements\" },\n0x0479: { n:\"BrtEndSlicerStyleElements\" },\n0x047A: { n:\"BrtCFRuleExt\" },\n0x047B: { n:\"BrtBeginSXCondFmt14\" },\n0x047C: { n:\"BrtEndSXCondFmt14\" },\n0x047D: { n:\"BrtBeginSXCondFmts14\" },\n0x047E: { n:\"BrtEndSXCondFmts14\" },\n0x0480: { n:\"BrtBeginSortCond14\" },\n0x0481: { n:\"BrtEndSortCond14\" },\n0x0482: { n:\"BrtEndDVals14\" },\n0x0483: { n:\"BrtEndIconSet14\" },\n0x0484: { n:\"BrtEndDatabar14\" },\n0x0485: { n:\"BrtBeginColorScale14\" },\n0x0486: { n:\"BrtEndColorScale14\" },\n0x0487: { n:\"BrtBeginSxrules14\" },\n0x0488: { n:\"BrtEndSxrules14\" },\n0x0489: { n:\"BrtBeginPRule14\" },\n0x048A: { n:\"BrtEndPRule14\" },\n0x048B: { n:\"BrtBeginPRFilters14\" },\n0x048C: { n:\"BrtEndPRFilters14\" },\n0x048D: { n:\"BrtBeginPRFilter14\" },\n0x048E: { n:\"BrtEndPRFilter14\" },\n0x048F: { n:\"BrtBeginPRFItem14\" },\n0x0490: { n:\"BrtEndPRFItem14\" },\n0x0491: { n:\"BrtBeginCellIgnoreECs14\" },\n0x0492: { n:\"BrtEndCellIgnoreECs14\" },\n0x0493: { n:\"BrtDxf14\" },\n0x0494: { n:\"BrtBeginDxF14s\" },\n0x0495: { n:\"BrtEndDxf14s\" },\n0x0499: { n:\"BrtFilter14\" },\n0x049A: { n:\"BrtBeginCustomFilters14\" },\n0x049C: { n:\"BrtCustomFilter14\" },\n0x049D: { n:\"BrtIconFilter14\" },\n0x049E: { n:\"BrtPivotCacheConnectionName\" },\n0x0800: { n:\"BrtBeginDecoupledPivotCacheIDs\" },\n0x0801: { n:\"BrtEndDecoupledPivotCacheIDs\" },\n0x0802: { n:\"BrtDecoupledPivotCacheID\" },\n0x0803: { n:\"BrtBeginPivotTableRefs\" },\n0x0804: { n:\"BrtEndPivotTableRefs\" },\n0x0805: { n:\"BrtPivotTableRef\" },\n0x0806: { n:\"BrtSlicerCacheBookPivotTables\" },\n0x0807: { n:\"BrtBeginSxvcells\" },\n0x0808: { n:\"BrtEndSxvcells\" },\n0x0809: { n:\"BrtBeginSxRow\" },\n0x080A: { n:\"BrtEndSxRow\" },\n0x080C: { n:\"BrtPcdCalcMem15\" },\n0x0813: { n:\"BrtQsi15\" },\n0x0814: { n:\"BrtBeginWebExtensions\" },\n0x0815: { n:\"BrtEndWebExtensions\" },\n0x0816: { n:\"BrtWebExtension\" },\n0x0817: { n:\"BrtAbsPath15\" },\n0x0818: { n:\"BrtBeginPivotTableUISettings\" },\n0x0819: { n:\"BrtEndPivotTableUISettings\" },\n0x081B: { n:\"BrtTableSlicerCacheIDs\" },\n0x081C: { n:\"BrtTableSlicerCacheID\" },\n0x081D: { n:\"BrtBeginTableSlicerCache\" },\n0x081E: { n:\"BrtEndTableSlicerCache\" },\n0x081F: { n:\"BrtSxFilter15\" },\n0x0820: { n:\"BrtBeginTimelineCachePivotCacheIDs\" },\n0x0821: { n:\"BrtEndTimelineCachePivotCacheIDs\" },\n0x0822: { n:\"BrtTimelineCachePivotCacheID\" },\n0x0823: { n:\"BrtBeginTimelineCacheIDs\" },\n0x0824: { n:\"BrtEndTimelineCacheIDs\" },\n0x0825: { n:\"BrtBeginTimelineCacheID\" },\n0x0826: { n:\"BrtEndTimelineCacheID\" },\n0x0827: { n:\"BrtBeginTimelinesEx\" },\n0x0828: { n:\"BrtEndTimelinesEx\" },\n0x0829: { n:\"BrtBeginTimelineEx\" },\n0x082A: { n:\"BrtEndTimelineEx\" },\n0x082B: { n:\"BrtWorkBookPr15\" },\n0x082C: { n:\"BrtPCDH15\" },\n0x082D: { n:\"BrtBeginTimelineStyle\" },\n0x082E: { n:\"BrtEndTimelineStyle\" },\n0x082F: { n:\"BrtTimelineStyleElement\" },\n0x0830: { n:\"BrtBeginTimelineStylesheetExt15\" },\n0x0831: { n:\"BrtEndTimelineStylesheetExt15\" },\n0x0832: { n:\"BrtBeginTimelineStyles\" },\n0x0833: { n:\"BrtEndTimelineStyles\" },\n0x0834: { n:\"BrtBeginTimelineStyleElements\" },\n0x0835: { n:\"BrtEndTimelineStyleElements\" },\n0x0836: { n:\"BrtDxf15\" },\n0x0837: { n:\"BrtBeginDxfs15\" },\n0x0838: { n:\"brtEndDxfs15\" },\n0x0839: { n:\"BrtSlicerCacheHideItemsWithNoData\" },\n0x083A: { n:\"BrtBeginItemUniqueNames\" },\n0x083B: { n:\"BrtEndItemUniqueNames\" },\n0x083C: { n:\"BrtItemUniqueName\" },\n0x083D: { n:\"BrtBeginExtConn15\" },\n0x083E: { n:\"BrtEndExtConn15\" },\n0x083F: { n:\"BrtBeginOledbPr15\" },\n0x0840: { n:\"BrtEndOledbPr15\" },\n0x0841: { n:\"BrtBeginDataFeedPr15\" },\n0x0842: { n:\"BrtEndDataFeedPr15\" },\n0x0843: { n:\"BrtTextPr15\" },\n0x0844: { n:\"BrtRangePr15\" },\n0x0845: { n:\"BrtDbCommand15\" },\n0x0846: { n:\"BrtBeginDbTables15\" },\n0x0847: { n:\"BrtEndDbTables15\" },\n0x0848: { n:\"BrtDbTable15\" },\n0x0849: { n:\"BrtBeginDataModel\" },\n0x084A: { n:\"BrtEndDataModel\" },\n0x084B: { n:\"BrtBeginModelTables\" },\n0x084C: { n:\"BrtEndModelTables\" },\n0x084D: { n:\"BrtModelTable\" },\n0x084E: { n:\"BrtBeginModelRelationships\" },\n0x084F: { n:\"BrtEndModelRelationships\" },\n0x0850: { n:\"BrtModelRelationship\" },\n0x0851: { n:\"BrtBeginECTxtWiz15\" },\n0x0852: { n:\"BrtEndECTxtWiz15\" },\n0x0853: { n:\"BrtBeginECTWFldInfoLst15\" },\n0x0854: { n:\"BrtEndECTWFldInfoLst15\" },\n0x0855: { n:\"BrtBeginECTWFldInfo15\" },\n0x0856: { n:\"BrtFieldListActiveItem\" },\n0x0857: { n:\"BrtPivotCacheIdVersion\" },\n0x0858: { n:\"BrtSXDI15\" },\n0x0859: { n:\"BrtBeginModelTimeGroupings\" },\n0x085A: { n:\"BrtEndModelTimeGroupings\" },\n0x085B: { n:\"BrtBeginModelTimeGrouping\" },\n0x085C: { n:\"BrtEndModelTimeGrouping\" },\n0x085D: { n:\"BrtModelTimeGroupingCalcCol\" },\n0x0C00: { n:\"BrtUid\" },\n0x0C01: { n:\"BrtRevisionPtr\" },\n0x13e7: { n:\"BrtBeginCalcFeatures\" },\n0x13e8: { n:\"BrtEndCalcFeatures\" },\n0x13e9: { n:\"BrtCalcFeature\" },\n0xFFFF: { n:\"\" }\n};\n\nvar XLSBRE = evert_key(XLSBRecordEnum, 'n');\n\n/* [MS-XLS] 2.3 Record Enumeration */\nvar XLSRecordEnum = {\n0x0003: { n:\"BIFF2NUM\", f:parse_BIFF2NUM },\n0x0004: { n:\"BIFF2STR\", f:parse_BIFF2STR },\n0x0006: { n:\"Formula\", f:parse_Formula },\n0x0009: { n:'BOF', f:parse_BOF },\n0x000a: { n:'EOF', f:parsenoop2 },\n0x000c: { n:\"CalcCount\", f:parseuint16 },\n0x000d: { n:\"CalcMode\", f:parseuint16 },\n0x000e: { n:\"CalcPrecision\", f:parsebool },\n0x000f: { n:\"CalcRefMode\", f:parsebool },\n0x0010: { n:\"CalcDelta\", f:parse_Xnum },\n0x0011: { n:\"CalcIter\", f:parsebool },\n0x0012: { n:\"Protect\", f:parsebool },\n0x0013: { n:\"Password\", f:parseuint16 },\n0x0014: { n:\"Header\", f:parse_XLHeaderFooter },\n0x0015: { n:\"Footer\", f:parse_XLHeaderFooter },\n0x0017: { n:\"ExternSheet\", f:parse_ExternSheet },\n0x0018: { n:\"Lbl\", f:parse_Lbl },\n0x0019: { n:\"WinProtect\", f:parsebool },\n0x001a: { n:\"VerticalPageBreaks\" },\n0x001b: { n:\"HorizontalPageBreaks\" },\n0x001c: { n:\"Note\", f:parse_Note },\n0x001d: { n:\"Selection\" },\n0x0022: { n:\"Date1904\", f:parsebool },\n0x0023: { n:\"ExternName\", f:parse_ExternName },\n0x0024: { n:\"COLWIDTH\" },\n0x0026: { n:\"LeftMargin\", f:parse_Xnum },\n0x0027: { n:\"RightMargin\", f:parse_Xnum },\n0x0028: { n:\"TopMargin\", f:parse_Xnum },\n0x0029: { n:\"BottomMargin\", f:parse_Xnum },\n0x002a: { n:\"PrintRowCol\", f:parsebool },\n0x002b: { n:\"PrintGrid\", f:parsebool },\n0x002f: { n:\"FilePass\", f:parse_FilePass },\n0x0031: { n:\"Font\", f:parse_Font },\n0x0033: { n:\"PrintSize\", f:parseuint16 },\n0x003c: { n:\"Continue\" },\n0x003d: { n:\"Window1\", f:parse_Window1 },\n0x0040: { n:\"Backup\", f:parsebool },\n0x0041: { n:\"Pane\", f:parse_Pane },\n0x0042: { n:'CodePage', f:parseuint16 },\n0x004d: { n:\"Pls\" },\n0x0050: { n:\"DCon\" },\n0x0051: { n:\"DConRef\" },\n0x0052: { n:\"DConName\" },\n0x0055: { n:\"DefColWidth\", f:parseuint16 },\n0x0059: { n:\"XCT\" },\n0x005a: { n:\"CRN\" },\n0x005b: { n:\"FileSharing\" },\n0x005c: { n:'WriteAccess', f:parse_WriteAccess },\n0x005d: { n:\"Obj\", f:parse_Obj },\n0x005e: { n:\"Uncalced\" },\n0x005f: { n:\"CalcSaveRecalc\", f:parsebool },\n0x0060: { n:\"Template\" },\n0x0061: { n:\"Intl\" },\n0x0063: { n:\"ObjProtect\", f:parsebool },\n0x007d: { n:\"ColInfo\", f:parse_ColInfo },\n0x0080: { n:\"Guts\", f:parse_Guts },\n0x0081: { n:\"WsBool\", f:parse_WsBool },\n0x0082: { n:\"GridSet\", f:parseuint16 },\n0x0083: { n:\"HCenter\", f:parsebool },\n0x0084: { n:\"VCenter\", f:parsebool },\n0x0085: { n:'BoundSheet8', f:parse_BoundSheet8 },\n0x0086: { n:\"WriteProtect\" },\n0x008c: { n:\"Country\", f:parse_Country },\n0x008d: { n:\"HideObj\", f:parseuint16 },\n0x0090: { n:\"Sort\" },\n0x0092: { n:\"Palette\", f:parse_Palette },\n0x0097: { n:\"Sync\" },\n0x0098: { n:\"LPr\" },\n0x0099: { n:\"DxGCol\" },\n0x009a: { n:\"FnGroupName\" },\n0x009b: { n:\"FilterMode\" },\n0x009c: { n:\"BuiltInFnGroupCount\", f:parseuint16 },\n0x009d: { n:\"AutoFilterInfo\" },\n0x009e: { n:\"AutoFilter\" },\n0x00a0: { n:\"Scl\", f:parse_Scl },\n0x00a1: { n:\"Setup\", f:parse_Setup },\n0x00ae: { n:\"ScenMan\" },\n0x00af: { n:\"SCENARIO\" },\n0x00b0: { n:\"SxView\" },\n0x00b1: { n:\"Sxvd\" },\n0x00b2: { n:\"SXVI\" },\n0x00b4: { n:\"SxIvd\" },\n0x00b5: { n:\"SXLI\" },\n0x00b6: { n:\"SXPI\" },\n0x00b8: { n:\"DocRoute\" },\n0x00b9: { n:\"RecipName\" },\n0x00bd: { n:\"MulRk\", f:parse_MulRk },\n0x00be: { n:\"MulBlank\", f:parse_MulBlank },\n0x00c1: { n:'Mms', f:parsenoop2 },\n0x00c5: { n:\"SXDI\" },\n0x00c6: { n:\"SXDB\" },\n0x00c7: { n:\"SXFDB\" },\n0x00c8: { n:\"SXDBB\" },\n0x00c9: { n:\"SXNum\" },\n0x00ca: { n:\"SxBool\", f:parsebool },\n0x00cb: { n:\"SxErr\" },\n0x00cc: { n:\"SXInt\" },\n0x00cd: { n:\"SXString\" },\n0x00ce: { n:\"SXDtr\" },\n0x00cf: { n:\"SxNil\" },\n0x00d0: { n:\"SXTbl\" },\n0x00d1: { n:\"SXTBRGIITM\" },\n0x00d2: { n:\"SxTbpg\" },\n0x00d3: { n:\"ObProj\" },\n0x00d5: { n:\"SXStreamID\" },\n0x00d7: { n:\"DBCell\" },\n0x00d8: { n:\"SXRng\" },\n0x00d9: { n:\"SxIsxoper\" },\n0x00da: { n:\"BookBool\", f:parseuint16 },\n0x00dc: { n:\"DbOrParamQry\" },\n0x00dd: { n:\"ScenarioProtect\", f:parsebool },\n0x00de: { n:\"OleObjectSize\" },\n0x00e0: { n:\"XF\", f:parse_XF },\n0x00e1: { n:'InterfaceHdr', f:parse_InterfaceHdr },\n0x00e2: { n:'InterfaceEnd', f:parsenoop2 },\n0x00e3: { n:\"SXVS\" },\n0x00e5: { n:\"MergeCells\", f:parse_MergeCells },\n0x00e9: { n:\"BkHim\" },\n0x00eb: { n:\"MsoDrawingGroup\" },\n0x00ec: { n:\"MsoDrawing\" },\n0x00ed: { n:\"MsoDrawingSelection\" },\n0x00ef: { n:\"PhoneticInfo\" },\n0x00f0: { n:\"SxRule\" },\n0x00f1: { n:\"SXEx\" },\n0x00f2: { n:\"SxFilt\" },\n0x00f4: { n:\"SxDXF\" },\n0x00f5: { n:\"SxItm\" },\n0x00f6: { n:\"SxName\" },\n0x00f7: { n:\"SxSelect\" },\n0x00f8: { n:\"SXPair\" },\n0x00f9: { n:\"SxFmla\" },\n0x00fb: { n:\"SxFormat\" },\n0x00fc: { n:\"SST\", f:parse_SST },\n0x00fd: { n:\"LabelSst\", f:parse_LabelSst },\n0x00ff: { n:\"ExtSST\", f:parse_ExtSST },\n0x0100: { n:\"SXVDEx\" },\n0x0103: { n:\"SXFormula\" },\n0x0122: { n:\"SXDBEx\" },\n0x0137: { n:\"RRDInsDel\" },\n0x0138: { n:\"RRDHead\" },\n0x013b: { n:\"RRDChgCell\" },\n0x013d: { n:\"RRTabId\", f:parseuint16a },\n0x013e: { n:\"RRDRenSheet\" },\n0x013f: { n:\"RRSort\" },\n0x0140: { n:\"RRDMove\" },\n0x014a: { n:\"RRFormat\" },\n0x014b: { n:\"RRAutoFmt\" },\n0x014d: { n:\"RRInsertSh\" },\n0x014e: { n:\"RRDMoveBegin\" },\n0x014f: { n:\"RRDMoveEnd\" },\n0x0150: { n:\"RRDInsDelBegin\" },\n0x0151: { n:\"RRDInsDelEnd\" },\n0x0152: { n:\"RRDConflict\" },\n0x0153: { n:\"RRDDefName\" },\n0x0154: { n:\"RRDRstEtxp\" },\n0x015f: { n:\"LRng\" },\n0x0160: { n:\"UsesELFs\", f:parsebool },\n0x0161: { n:\"DSF\", f:parsenoop2 },\n0x0191: { n:\"CUsr\" },\n0x0192: { n:\"CbUsr\" },\n0x0193: { n:\"UsrInfo\" },\n0x0194: { n:\"UsrExcl\" },\n0x0195: { n:\"FileLock\" },\n0x0196: { n:\"RRDInfo\" },\n0x0197: { n:\"BCUsrs\" },\n0x0198: { n:\"UsrChk\" },\n0x01a9: { n:\"UserBView\" },\n0x01aa: { n:\"UserSViewBegin\" },\n0x01ab: { n:\"UserSViewEnd\" },\n0x01ac: { n:\"RRDUserView\" },\n0x01ad: { n:\"Qsi\" },\n0x01ae: { n:\"SupBook\", f:parse_SupBook },\n0x01af: { n:\"Prot4Rev\", f:parsebool },\n0x01b0: { n:\"CondFmt\" },\n0x01b1: { n:\"CF\" },\n0x01b2: { n:\"DVal\" },\n0x01b5: { n:\"DConBin\" },\n0x01b6: { n:\"TxO\", f:parse_TxO },\n0x01b7: { n:\"RefreshAll\", f:parsebool },\n0x01b8: { n:\"HLink\", f:parse_HLink },\n0x01b9: { n:\"Lel\" },\n0x01ba: { n:\"CodeName\", f:parse_XLUnicodeString },\n0x01bb: { n:\"SXFDBType\" },\n0x01bc: { n:\"Prot4RevPass\", f:parseuint16 },\n0x01bd: { n:\"ObNoMacros\" },\n0x01be: { n:\"Dv\" },\n0x01c0: { n:\"Excel9File\", f:parsenoop2 },\n0x01c1: { n:\"RecalcId\", f:parse_RecalcId, r:2},\n0x01c2: { n:\"EntExU2\", f:parsenoop2 },\n0x0200: { n:\"Dimensions\", f:parse_Dimensions },\n0x0201: { n:\"Blank\", f:parse_Blank },\n0x0203: { n:\"Number\", f:parse_Number },\n0x0204: { n:\"Label\", f:parse_Label },\n0x0205: { n:\"BoolErr\", f:parse_BoolErr },\n0x0206: { n:\"Formula\", f:parse_Formula },\n0x0207: { n:\"String\", f:parse_String },\n0x0208: { n:'Row', f:parse_Row },\n0x020b: { n:\"Index\" },\n0x0221: { n:\"Array\", f:parse_Array },\n0x0225: { n:\"DefaultRowHeight\", f:parse_DefaultRowHeight },\n0x0236: { n:\"Table\" },\n0x023e: { n:\"Window2\", f:parse_Window2 },\n0x027e: { n:\"RK\", f:parse_RK },\n0x0293: { n:\"Style\" },\n0x0406: { n:\"Formula\", f:parse_Formula },\n0x0418: { n:\"BigName\" },\n0x041e: { n:\"Format\", f:parse_Format },\n0x043c: { n:\"ContinueBigName\" },\n0x04bc: { n:\"ShrFmla\", f:parse_ShrFmla },\n0x0800: { n:\"HLinkTooltip\", f:parse_HLinkTooltip },\n0x0801: { n:\"WebPub\" },\n0x0802: { n:\"QsiSXTag\" },\n0x0803: { n:\"DBQueryExt\" },\n0x0804: { n:\"ExtString\" },\n0x0805: { n:\"TxtQry\" },\n0x0806: { n:\"Qsir\" },\n0x0807: { n:\"Qsif\" },\n0x0808: { n:\"RRDTQSIF\" },\n0x0809: { n:'BOF', f:parse_BOF },\n0x080a: { n:\"OleDbConn\" },\n0x080b: { n:\"WOpt\" },\n0x080c: { n:\"SXViewEx\" },\n0x080d: { n:\"SXTH\" },\n0x080e: { n:\"SXPIEx\" },\n0x080f: { n:\"SXVDTEx\" },\n0x0810: { n:\"SXViewEx9\" },\n0x0812: { n:\"ContinueFrt\" },\n0x0813: { n:\"RealTimeData\" },\n0x0850: { n:\"ChartFrtInfo\" },\n0x0851: { n:\"FrtWrapper\" },\n0x0852: { n:\"StartBlock\" },\n0x0853: { n:\"EndBlock\" },\n0x0854: { n:\"StartObject\" },\n0x0855: { n:\"EndObject\" },\n0x0856: { n:\"CatLab\" },\n0x0857: { n:\"YMult\" },\n0x0858: { n:\"SXViewLink\" },\n0x0859: { n:\"PivotChartBits\" },\n0x085a: { n:\"FrtFontList\" },\n0x0862: { n:\"SheetExt\" },\n0x0863: { n:\"BookExt\", r:12},\n0x0864: { n:\"SXAddl\" },\n0x0865: { n:\"CrErr\" },\n0x0866: { n:\"HFPicture\" },\n0x0867: { n:'FeatHdr', f:parsenoop2 },\n0x0868: { n:\"Feat\" },\n0x086a: { n:\"DataLabExt\" },\n0x086b: { n:\"DataLabExtContents\" },\n0x086c: { n:\"CellWatch\" },\n0x0871: { n:\"FeatHdr11\" },\n0x0872: { n:\"Feature11\" },\n0x0874: { n:\"DropDownObjIds\" },\n0x0875: { n:\"ContinueFrt11\" },\n0x0876: { n:\"DConn\" },\n0x0877: { n:\"List12\" },\n0x0878: { n:\"Feature12\" },\n0x0879: { n:\"CondFmt12\" },\n0x087a: { n:\"CF12\" },\n0x087b: { n:\"CFEx\" },\n0x087c: { n:\"XFCRC\", f:parse_XFCRC, r:12 },\n0x087d: { n:\"XFExt\", f:parse_XFExt, r:12 },\n0x087e: { n:\"AutoFilter12\" },\n0x087f: { n:\"ContinueFrt12\" },\n0x0884: { n:\"MDTInfo\" },\n0x0885: { n:\"MDXStr\" },\n0x0886: { n:\"MDXTuple\" },\n0x0887: { n:\"MDXSet\" },\n0x0888: { n:\"MDXProp\" },\n0x0889: { n:\"MDXKPI\" },\n0x088a: { n:\"MDB\" },\n0x088b: { n:\"PLV\" },\n0x088c: { n:\"Compat12\", f:parsebool, r:12 },\n0x088d: { n:\"DXF\" },\n0x088e: { n:\"TableStyles\", r:12 },\n0x088f: { n:\"TableStyle\" },\n0x0890: { n:\"TableStyleElement\" },\n0x0892: { n:\"StyleExt\" },\n0x0893: { n:\"NamePublish\" },\n0x0894: { n:\"NameCmt\", f:parse_NameCmt, r:12 },\n0x0895: { n:\"SortData\" },\n0x0896: { n:\"Theme\", f:parse_Theme, r:12 },\n0x0897: { n:\"GUIDTypeLib\" },\n0x0898: { n:\"FnGrp12\" },\n0x0899: { n:\"NameFnGrp12\" },\n0x089a: { n:\"MTRSettings\", f:parse_MTRSettings, r:12 },\n0x089b: { n:\"CompressPictures\", f:parsenoop2 },\n0x089c: { n:\"HeaderFooter\" },\n0x089d: { n:\"CrtLayout12\" },\n0x089e: { n:\"CrtMlFrt\" },\n0x089f: { n:\"CrtMlFrtContinue\" },\n0x08a3: { n:\"ForceFullCalculation\", f:parse_ForceFullCalculation },\n0x08a4: { n:\"ShapePropsStream\" },\n0x08a5: { n:\"TextPropsStream\" },\n0x08a6: { n:\"RichTextStream\" },\n0x08a7: { n:\"CrtLayout12A\" },\n0x1001: { n:\"Units\" },\n0x1002: { n:\"Chart\" },\n0x1003: { n:\"Series\" },\n0x1006: { n:\"DataFormat\" },\n0x1007: { n:\"LineFormat\" },\n0x1009: { n:\"MarkerFormat\" },\n0x100a: { n:\"AreaFormat\" },\n0x100b: { n:\"PieFormat\" },\n0x100c: { n:\"AttachedLabel\" },\n0x100d: { n:\"SeriesText\" },\n0x1014: { n:\"ChartFormat\" },\n0x1015: { n:\"Legend\" },\n0x1016: { n:\"SeriesList\" },\n0x1017: { n:\"Bar\" },\n0x1018: { n:\"Line\" },\n0x1019: { n:\"Pie\" },\n0x101a: { n:\"Area\" },\n0x101b: { n:\"Scatter\" },\n0x101c: { n:\"CrtLine\" },\n0x101d: { n:\"Axis\" },\n0x101e: { n:\"Tick\" },\n0x101f: { n:\"ValueRange\" },\n0x1020: { n:\"CatSerRange\" },\n0x1021: { n:\"AxisLine\" },\n0x1022: { n:\"CrtLink\" },\n0x1024: { n:\"DefaultText\" },\n0x1025: { n:\"Text\" },\n0x1026: { n:\"FontX\", f:parseuint16 },\n0x1027: { n:\"ObjectLink\" },\n0x1032: { n:\"Frame\" },\n0x1033: { n:\"Begin\" },\n0x1034: { n:\"End\" },\n0x1035: { n:\"PlotArea\" },\n0x103a: { n:\"Chart3d\" },\n0x103c: { n:\"PicF\" },\n0x103d: { n:\"DropBar\" },\n0x103e: { n:\"Radar\" },\n0x103f: { n:\"Surf\" },\n0x1040: { n:\"RadarArea\" },\n0x1041: { n:\"AxisParent\" },\n0x1043: { n:\"LegendException\" },\n0x1044: { n:\"ShtProps\", f:parse_ShtProps },\n0x1045: { n:\"SerToCrt\" },\n0x1046: { n:\"AxesUsed\" },\n0x1048: { n:\"SBaseRef\" },\n0x104a: { n:\"SerParent\" },\n0x104b: { n:\"SerAuxTrend\" },\n0x104e: { n:\"IFmtRecord\" },\n0x104f: { n:\"Pos\" },\n0x1050: { n:\"AlRuns\" },\n0x1051: { n:\"BRAI\" },\n0x105b: { n:\"SerAuxErrBar\" },\n0x105c: { n:\"ClrtClient\", f:parse_ClrtClient },\n0x105d: { n:\"SerFmt\" },\n0x105f: { n:\"Chart3DBarShape\" },\n0x1060: { n:\"Fbi\" },\n0x1061: { n:\"BopPop\" },\n0x1062: { n:\"AxcExt\" },\n0x1063: { n:\"Dat\" },\n0x1064: { n:\"PlotGrowth\" },\n0x1065: { n:\"SIIndex\" },\n0x1066: { n:\"GelFrame\" },\n0x1067: { n:\"BopPopCustom\" },\n0x1068: { n:\"Fbi2\" },\n\n0x0000: { n:\"Dimensions\", f:parse_Dimensions },\n0x0002: { n:\"BIFF2INT\", f:parse_BIFF2INT },\n0x0005: { n:\"BoolErr\", f:parse_BoolErr },\n0x0007: { n:\"String\", f:parse_BIFF2STRING },\n0x0008: { n:\"BIFF2ROW\" },\n0x000b: { n:\"Index\" },\n0x0016: { n:\"ExternCount\", f:parseuint16 },\n0x001e: { n:\"BIFF2FORMAT\", f:parse_BIFF2Format },\n0x001f: { n:\"BIFF2FMTCNT\" }, /* 16-bit cnt of BIFF2FORMAT records */\n0x0020: { n:\"BIFF2COLINFO\" },\n0x0021: { n:\"Array\", f:parse_Array },\n0x0025: { n:\"DefaultRowHeight\", f:parse_DefaultRowHeight },\n0x0032: { n:\"BIFF2FONTXTRA\", f:parse_BIFF2FONTXTRA },\n0x0034: { n:\"DDEObjName\" },\n0x003e: { n:\"BIFF2WINDOW2\" },\n0x0043: { n:\"BIFF2XF\" },\n0x0045: { n:\"BIFF2FONTCLR\" },\n0x0056: { n:\"BIFF4FMTCNT\" }, /* 16-bit cnt, similar to BIFF2 */\n0x007e: { n:\"RK\" }, /* Not necessarily same as 0x027e */\n0x007f: { n:\"ImData\", f:parse_ImData },\n0x0087: { n:\"Addin\" },\n0x0088: { n:\"Edg\" },\n0x0089: { n:\"Pub\" },\n0x0091: { n:\"Sub\" },\n0x0094: { n:\"LHRecord\" },\n0x0095: { n:\"LHNGraph\" },\n0x0096: { n:\"Sound\" },\n0x00a9: { n:\"CoordList\" },\n0x00ab: { n:\"GCW\" },\n0x00bc: { n:\"ShrFmla\" }, /* Not necessarily same as 0x04bc */\n0x00bf: { n:\"ToolbarHdr\" },\n0x00c0: { n:\"ToolbarEnd\" },\n0x00c2: { n:\"AddMenu\" },\n0x00c3: { n:\"DelMenu\" },\n0x00d6: { n:\"RString\", f:parse_RString },\n0x00df: { n:\"UDDesc\" },\n0x00ea: { n:\"TabIdConf\" },\n0x0162: { n:\"XL5Modify\" },\n0x01a5: { n:\"FileSharing2\" },\n0x0209: { n:'BOF', f:parse_BOF },\n0x0218: { n:\"Lbl\", f:parse_Lbl },\n0x0223: { n:\"ExternName\", f:parse_ExternName },\n0x0231: { n:\"Font\" },\n0x0243: { n:\"BIFF3XF\" },\n0x0409: { n:'BOF', f:parse_BOF },\n0x0443: { n:\"BIFF4XF\" },\n0x086d: { n:\"FeatInfo\" },\n0x0873: { n:\"FeatInfo11\" },\n0x0881: { n:\"SXAddl12\" },\n0x08c0: { n:\"AutoWebPub\" },\n0x08c1: { n:\"ListObj\" },\n0x08c2: { n:\"ListField\" },\n0x08c3: { n:\"ListDV\" },\n0x08c4: { n:\"ListCondFmt\" },\n0x08c5: { n:\"ListCF\" },\n0x08c6: { n:\"FMQry\" },\n0x08c7: { n:\"FMSQry\" },\n0x08c8: { n:\"PLV\" },\n0x08c9: { n:\"LnExt\" },\n0x08ca: { n:\"MkrExt\" },\n0x08cb: { n:\"CrtCoopt\" },\n0x08d6: { n:\"FRTArchId$\", r:12 },\n\n0x7262: {}\n};\n\nvar XLSRE = evert_key(XLSRecordEnum, 'n');\nfunction write_biff_rec(ba, type, payload, length) {\n\tvar t = +type || +XLSRE[type];\n\tif(isNaN(t)) return;\n\tvar len = length || (payload||[]).length || 0;\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, len);\n\tif(len > 0 && is_buf(payload)) ba.push(payload);\n}\n\nfunction write_biff_continue(ba, type, payload, length) {\n\tvar len = length || (payload||[]).length || 0;\n\tif(len <= 8224) return write_biff_rec(ba, type, payload, len);\n\tvar t = +type || +XLSRE[type];\n\tif(isNaN(t)) return;\n\tvar parts = payload.parts || [], sidx = 0;\n\tvar i = 0, w = 0;\n\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, w);\n\tba.push(payload.slice(i, i + w));\n\ti += w;\n\twhile(i < len) {\n\t\to = ba.next(4);\n\t\to.write_shift(2, 0x3c); // TODO: figure out correct continue type\n\t\tw = 0;\n\t\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\t\to.write_shift(2, w);\n\t\tba.push(payload.slice(i, i+w)); i+= w;\n\t}\n}\n\nfunction write_BIFF2Cell(out, r, c) {\n\tif(!out) out = new_buf(7);\n\tout.write_shift(2, r);\n\tout.write_shift(2, c);\n\tout.write_shift(2, 0);\n\tout.write_shift(1, 0);\n\treturn out;\n}\n\nfunction write_BIFF2BERR(r, c, val, t) {\n\tvar out = new_buf(9);\n\twrite_BIFF2Cell(out, r, c);\n\tif(t == 'e') { out.write_shift(1, val); out.write_shift(1, 1); }\n\telse { out.write_shift(1, val?1:0); out.write_shift(1, 0); }\n\treturn out;\n}\n\n/* TODO: codepage, large strings */\nfunction write_BIFF2LABEL(r, c, val) {\n\tvar out = new_buf(8 + 2*val.length);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(1, val.length);\n\tout.write_shift(val.length, val, 'sbcs');\n\treturn out.l < out.length ? out.slice(0, out.l) : out;\n}\n\nfunction write_ws_biff2_cell(ba, cell, R, C) {\n\tif(cell.v != null) switch(cell.t) {\n\t\tcase 'd': case 'n':\n\t\t\tvar v = cell.t == 'd' ? datenum(parseDate(cell.v)) : cell.v;\n\t\t\tif((v == (v|0)) && (v >= 0) && (v < 65536))\n\t\t\t\twrite_biff_rec(ba, 0x0002, write_BIFF2INT(R, C, v));\n\t\t\telse\n\t\t\t\twrite_biff_rec(ba, 0x0003, write_BIFF2NUM(R,C, v));\n\t\t\treturn;\n\t\tcase 'b': case 'e': write_biff_rec(ba, 0x0005, write_BIFF2BERR(R, C, cell.v, cell.t)); return;\n\t\t/* TODO: codepage, sst */\n\t\tcase 's': case 'str':\n\t\t\twrite_biff_rec(ba, 0x0004, write_BIFF2LABEL(R, C, cell.v));\n\t\t\treturn;\n\t}\n\twrite_biff_rec(ba, 0x0001, write_BIFF2Cell(null, R, C));\n}\n\nfunction write_ws_biff2(ba, ws, idx, opts) {\n\tvar dense = Array.isArray(ws);\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref, rr = \"\", cols = [];\n\tif(range.e.c > 0xFF || range.e.r > 0x3FFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, 0x3FFF);\n\t\tref = encode_range(range);\n\t}\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff2_cell(ba, cell, R, C, opts);\n\t\t}\n\t}\n}\n\n/* Based on test files */\nfunction write_biff2_buf(wb, opts) {\n\tvar o = opts || {};\n\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\tvar ba = buf_array();\n\tvar idx = 0;\n\tfor(var i=0;i 0xFF || range.e.r >= MAX_ROWS) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, MAX_ROWS-1);\n\t}\n\n\twrite_biff_rec(ba, 0x0809, write_BOF(wb, 0x10, opts));\n\t/* [Uncalced] Index */\n\twrite_biff_rec(ba, \"CalcMode\", writeuint16(1));\n\twrite_biff_rec(ba, \"CalcCount\", writeuint16(100));\n\twrite_biff_rec(ba, \"CalcRefMode\", writebool(true));\n\twrite_biff_rec(ba, \"CalcIter\", writebool(false));\n\twrite_biff_rec(ba, \"CalcDelta\", write_Xnum(0.001));\n\twrite_biff_rec(ba, \"CalcSaveRecalc\", writebool(true));\n\twrite_biff_rec(ba, \"PrintRowCol\", writebool(false));\n\twrite_biff_rec(ba, \"PrintGrid\", writebool(false));\n\twrite_biff_rec(ba, \"GridSet\", writeuint16(1));\n\twrite_biff_rec(ba, \"Guts\", write_Guts([0,0]));\n\t/* DefaultRowHeight WsBool [Sync] [LPr] [HorizontalPageBreaks] [VerticalPageBreaks] */\n\t/* Header (string) */\n\t/* Footer (string) */\n\twrite_biff_rec(ba, \"HCenter\", writebool(false));\n\twrite_biff_rec(ba, \"VCenter\", writebool(false));\n\t/* ... */\n\twrite_biff_rec(ba, 0x200, write_Dimensions(range, opts));\n\t/* ... */\n\n\tif(b8) ws['!links'] = [];\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff8_cell(ba, cell, R, C, opts);\n\t\t\tif(b8 && cell.l) ws['!links'].push([ref, cell.l]);\n\t\t}\n\t}\n\tvar cname = _sheet.CodeName || _sheet.name || s;\n\t/* ... */\n\tif(b8) write_biff_rec(ba, \"Window2\", write_Window2((_WB.Views||[])[0]));\n\t/* ... */\n\tif(b8 && (ws['!merges']||[]).length) write_biff_rec(ba, \"MergeCells\", write_MergeCells(ws['!merges']));\n\t/* [LRng] *QUERYTABLE [PHONETICINFO] CONDFMTS */\n\tif(b8) write_ws_biff8_hlinks(ba, ws);\n\t/* [DVAL] */\n\twrite_biff_rec(ba, \"CodeName\", write_XLUnicodeString(cname, opts));\n\t/* *WebPub *CellWatch [SheetExt] */\n\tif(b8) write_FEAT(ba, ws);\n\t/* *FEAT11 *RECORD12 */\n\twrite_biff_rec(ba, \"EOF\");\n\treturn ba.end();\n}\n\n/* [MS-XLS] 2.1.7.20.3 */\nfunction write_biff8_global(wb, bufs, opts) {\n\tvar A = buf_array();\n\tvar _WB = ((wb||{}).Workbook||{});\n\tvar _sheets = (_WB.Sheets||[]);\n\tvar _wb = _WB.WBProps||{};\n\tvar b8 = opts.biff == 8, b5 = opts.biff == 5;\n\twrite_biff_rec(A, 0x0809, write_BOF(wb, 0x05, opts));\n\tif(opts.bookType == \"xla\") write_biff_rec(A, \"Addin\");\n\twrite_biff_rec(A, \"InterfaceHdr\", b8 ? writeuint16(0x04b0) : null);\n\twrite_biff_rec(A, \"Mms\", writezeroes(2));\n\tif(b5) write_biff_rec(A, \"ToolbarHdr\");\n\tif(b5) write_biff_rec(A, \"ToolbarEnd\");\n\twrite_biff_rec(A, \"InterfaceEnd\");\n\twrite_biff_rec(A, \"WriteAccess\", write_WriteAccess(\"SheetJS\", opts));\n\t/* [FileSharing] */\n\twrite_biff_rec(A, \"CodePage\", writeuint16(b8 ? 0x04b0 : 0x04E4));\n\t/* *2047 Lel */\n\tif(b8) write_biff_rec(A, \"DSF\", writeuint16(0));\n\tif(b8) write_biff_rec(A, \"Excel9File\");\n\twrite_biff_rec(A, \"RRTabId\", write_RRTabId(wb.SheetNames.length));\n\tif(b8 && wb.vbaraw) write_biff_rec(A, \"ObProj\");\n\t/* [ObNoMacros] */\n\tif(b8 && wb.vbaraw) {\n\t\tvar cname = _wb.CodeName || \"ThisWorkbook\";\n\t\twrite_biff_rec(A, \"CodeName\", write_XLUnicodeString(cname, opts));\n\t}\n\twrite_biff_rec(A, \"BuiltInFnGroupCount\", writeuint16(0x11));\n\t/* *FnGroupName *FnGrp12 */\n\t/* *Lbl */\n\t/* [OleObjectSize] */\n\twrite_biff_rec(A, \"WinProtect\", writebool(false));\n\twrite_biff_rec(A, \"Protect\", writebool(false));\n\twrite_biff_rec(A, \"Password\", writeuint16(0));\n\tif(b8) write_biff_rec(A, \"Prot4Rev\", writebool(false));\n\tif(b8) write_biff_rec(A, \"Prot4RevPass\", writeuint16(0));\n\twrite_biff_rec(A, \"Window1\", write_Window1(opts));\n\twrite_biff_rec(A, \"Backup\", writebool(false));\n\twrite_biff_rec(A, \"HideObj\", writeuint16(0));\n\twrite_biff_rec(A, \"Date1904\", writebool(safe1904(wb)==\"true\"));\n\twrite_biff_rec(A, \"CalcPrecision\", writebool(true));\n\tif(b8) write_biff_rec(A, \"RefreshAll\", writebool(false));\n\twrite_biff_rec(A, \"BookBool\", writeuint16(0));\n\t/* ... */\n\twrite_FONTS_biff8(A, wb, opts);\n\twrite_FMTS_biff8(A, wb.SSF, opts);\n\twrite_CELLXFS_biff8(A, opts);\n\t/* ... */\n\tif(b8) write_biff_rec(A, \"UsesELFs\", writebool(false));\n\tvar a = A.end();\n\n\tvar C = buf_array();\n\t/* METADATA [MTRSettings] [ForceFullCalculation] */\n\tif(b8) write_biff_rec(C, \"Country\", write_Country());\n\t/* *SUPBOOK *LBL *RTD [RecalcId] *HFPicture *MSODRAWINGGROUP */\n\n\t/* BIFF8: [SST *Continue] ExtSST */\n\tif(b8 && opts.Strings) write_biff_continue(C, \"SST\", write_SST(opts.Strings, opts));\n\n\t/* *WebPub [WOpt] [CrErr] [BookExt] *FeatHdr *DConn [THEME] [CompressPictures] [Compat12] [GUIDTypeLib] */\n\twrite_biff_rec(C, \"EOF\");\n\tvar c = C.end();\n\n\tvar B = buf_array();\n\tvar blen = 0, j = 0;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) blen += (b8 ? 12 : 11) + (b8 ? 2 : 1) * wb.SheetNames[j].length;\n\tvar start = a.length + blen + c.length;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) {\n\t\tvar _sheet = _sheets[j] || ({});\n\t\twrite_biff_rec(B, \"BoundSheet8\", write_BoundSheet8({pos:start, hs:_sheet.Hidden||0, dt:0, name:wb.SheetNames[j]}, opts));\n\t\tstart += bufs[j].length;\n\t}\n\t/* 1*BoundSheet8 */\n\tvar b = B.end();\n\tif(blen != b.length) throw new Error(\"BS8 \" + blen + \" != \" + b.length);\n\n\tvar out = [];\n\tif(a.length) out.push(a);\n\tif(b.length) out.push(b);\n\tif(c.length) out.push(c);\n\treturn __toBuffer([out]);\n}\n\n/* [MS-XLS] 2.1.7.20 Workbook Stream */\nfunction write_biff8_buf(wb, opts) {\n\tvar o = opts || {};\n\tvar bufs = [];\n\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = SSF.get_table();\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(SSF); SSF.load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\to.revssf = evert_num(wb.SSF); o.revssf[wb.SSF[65535]] = 0;\n\t\to.ssf = wb.SSF;\n\t}\n\n\to.Strings = []; o.Strings.Count = 0; o.Strings.Unique = 0;\n\tfix_write_opts(o);\n\n\to.cellXfs = [];\n\tget_cell_style(o.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) bufs[bufs.length] = write_ws_biff8(i, o, wb);\n\tbufs.unshift(write_biff8_global(wb, bufs, o));\n\treturn __toBuffer([bufs]);\n}\n\nfunction write_biff_buf(wb, opts) {\n\tvar o = opts || {};\n\tswitch(o.biff || 2) {\n\t\tcase 8: case 5: return write_biff8_buf(wb, opts);\n\t\tcase 4: case 3: case 2: return write_biff2_buf(wb, opts);\n\t}\n\tthrow new Error(\"invalid type \" + o.bookType + \" for BIFF\");\n}\n/* note: browser DOM element cannot see mso- style attrs, must parse */\nvar HTML_ = (function() {\n\tfunction html_to_sheet(str, _opts) {\n\t\tvar opts = _opts || {};\n\t\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\t\tvar ws = opts.dense ? ([]) : ({});\n\t\tstr = str.replace(//g, \"\");\n\t\tvar mtch = str.match(/\");\n\t\tvar mtch2 = str.match(/<\\/table/i);\n\t\tvar i = mtch.index, j = mtch2 && mtch2.index || str.length;\n\t\tvar rows = split_regex(str.slice(i, j), /(:?]*>)/i, \"\");\n\t\tvar R = -1, C = 0, RS = 0, CS = 0;\n\t\tvar range = {s:{r:10000000, c:10000000},e:{r:0,c:0}};\n\t\tvar merges = [];\n\t\tfor(i = 0; i < rows.length; ++i) {\n\t\t\tvar row = rows[i].trim();\n\t\t\tvar hd = row.slice(0,3).toLowerCase();\n\t\t\tif(hd == \"/i);\n\t\t\tfor(j = 0; j < cells.length; ++j) {\n\t\t\t\tvar cell = cells[j].trim();\n\t\t\t\tif(!cell.match(/\")) > -1) m = m.slice(cc+1);\n\t\t\t\tfor(var midx = 0; midx < merges.length; ++midx) {\n\t\t\t\t\tvar _merge = merges[midx];\n\t\t\t\t\tif(_merge.s.c == C && _merge.s.r < R && R <= _merge.e.r) { C = _merge.e.c + 1; midx = -1; }\n\t\t\t\t}\n\t\t\t\tvar tag = parsexmltag(cell.slice(0, cell.indexOf(\">\")));\n\t\t\t\tCS = tag.colspan ? +tag.colspan : 1;\n\t\t\t\tif((RS = +tag.rowspan)>1 || CS>1) merges.push({s:{r:R,c:C},e:{r:R + (RS||1) - 1, c:C + CS - 1}});\n\t\t\t\tvar _t = tag.t || \"\";\n\t\t\t\t/* TODO: generate stub cells */\n\t\t\t\tif(!m.length) { C += CS; continue; }\n\t\t\t\tm = htmldecode(m);\n\t\t\t\tif(range.s.r > R) range.s.r = R; if(range.e.r < R) range.e.r = R;\n\t\t\t\tif(range.s.c > C) range.s.c = C; if(range.e.c < C) range.e.c = C;\n\t\t\t\tif(!m.length) continue;\n\t\t\t\tvar o = {t:'s', v:m};\n\t\t\t\tif(opts.raw || !m.trim().length || _t == 's'){}\n\t\t\t\telse if(m === 'TRUE') o = {t:'b', v:true};\n\t\t\t\telse if(m === 'FALSE') o = {t:'b', v:false};\n\t\t\t\telse if(!isNaN(fuzzynum(m))) o = {t:'n', v:fuzzynum(m)};\n\t\t\t\telse if(!isNaN(fuzzydate(m).getDate())) {\n\t\t\t\t\to = ({t:'d', v:parseDate(m)});\n\t\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)});\n\t\t\t\t\to.z = opts.dateNF || SSF._table[14];\n\t\t\t\t}\n\t\t\t\tif(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = o; }\n\t\t\t\telse ws[encode_cell({r:R, c:C})] = o;\n\t\t\t\tC += CS;\n\t\t\t}\n\t\t}\n\t\tws['!ref'] = encode_range(range);\n\t\tif(merges.length) ws[\"!merges\"] = merges;\n\t\treturn ws;\n\t}\n\tfunction html_to_book(str, opts) {\n\t\treturn sheet_to_workbook(html_to_sheet(str, opts), opts);\n\t}\n\tfunction make_html_row(ws, r, R, o) {\n\t\tvar M = (ws['!merges'] ||[]);\n\t\tvar oo = [];\n\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\tvar RS = 0, CS = 0;\n\t\t\tfor(var j = 0; j < M.length; ++j) {\n\t\t\t\tif(M[j].s.r > R || M[j].s.c > C) continue;\n\t\t\t\tif(M[j].e.r < R || M[j].e.c < C) continue;\n\t\t\t\tif(M[j].s.r < R || M[j].s.c < C) { RS = -1; break; }\n\t\t\t\tRS = M[j].e.r - M[j].s.r + 1; CS = M[j].e.c - M[j].s.c + 1; break;\n\t\t\t}\n\t\t\tif(RS < 0) continue;\n\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\tvar cell = o.dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t/* TODO: html entities */\n\t\t\tvar w = (cell && cell.v != null) && (cell.h || escapehtml(cell.w || (format_cell(cell), cell.w) || \"\")) || \"\";\n\t\t\tvar sp = ({});\n\t\t\tif(RS > 1) sp.rowspan = RS;\n\t\t\tif(CS > 1) sp.colspan = CS;\n\t\t\tsp.t = cell && cell.t || 'z';\n\t\t\tif(o.editable) w = '' + w + '';\n\t\t\tsp.id = (o.id || \"sjs\") + \"-\" + coord;\n\t\t\tif(sp.t != \"z\") { sp.v = cell.v; if(cell.z != null) sp.z = cell.z; }\n\t\t\too.push(writextag('td', w, sp));\n\t\t}\n\t\tvar preamble = \"\";\n\t\treturn preamble + oo.join(\"\") + \"\";\n\t}\n\tfunction make_html_preamble(ws, R, o) {\n\t\tvar out = [];\n\t\treturn out.join(\"\") + '';\n\t}\n\tvar _BEGIN = 'SheetJS Table Export';\n\tvar _END = '';\n\tfunction sheet_to_html(ws, opts/*, wb:?Workbook*/) {\n\t\tvar o = opts || {};\n\t\tvar header = o.header != null ? o.header : _BEGIN;\n\t\tvar footer = o.footer != null ? o.footer : _END;\n\t\tvar out = [header];\n\t\tvar r = decode_range(ws['!ref']);\n\t\to.dense = Array.isArray(ws);\n\t\tout.push(make_html_preamble(ws, r, o));\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) out.push(make_html_row(ws, r, R, o));\n\t\tout.push(\"
\" + footer);\n\t\treturn out.join(\"\");\n\n\t}\n\treturn {\n\t\tto_workbook: html_to_book,\n\t\tto_sheet: html_to_sheet,\n\t\t_row: make_html_row,\n\t\tBEGIN: _BEGIN,\n\t\tEND: _END,\n\t\t_preamble: make_html_preamble,\n\t\tfrom_sheet: sheet_to_html\n\t};\n})();\n\nfunction sheet_add_dom(ws, table, _opts) {\n\tvar opts = _opts || {};\n\tif(DENSE != null) opts.dense = DENSE;\n\tvar or_R = 0, or_C = 0;\n\tif(opts.origin != null) {\n\t\tif(typeof opts.origin == 'number') or_R = opts.origin;\n\t\telse {\n\t\t\tvar _origin = typeof opts.origin == \"string\" ? decode_cell(opts.origin) : opts.origin;\n\t\t\tor_R = _origin.r; or_C = _origin.c;\n\t\t}\n\t}\n\tvar rows = table.getElementsByTagName('tr');\n\tvar sheetRows = Math.min(opts.sheetRows||10000000, rows.length);\n\tvar range = {s:{r:0,c:0},e:{r:or_R,c:or_C}};\n\tif(ws[\"!ref\"]) {\n\t\tvar _range = decode_range(ws[\"!ref\"]);\n\t\trange.s.r = Math.min(range.s.r, _range.s.r);\n\t\trange.s.c = Math.min(range.s.c, _range.s.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\tif(or_R == -1) range.e.r = or_R = _range.e.r + 1;\n\t}\n\tvar merges = [], midx = 0;\n\tvar rowinfo = ws[\"!rows\"] || (ws[\"!rows\"] = []);\n\tvar _R = 0, R = 0, _C = 0, C = 0, RS = 0, CS = 0;\n\tif(!ws[\"!cols\"]) ws['!cols'] = [];\n\tfor(; _R < rows.length && R < sheetRows; ++_R) {\n\t\tvar row = rows[_R];\n\t\tif (is_dom_element_hidden(row)) {\n\t\t\tif (opts.display) continue;\n\t\t\trowinfo[R] = {hidden: true};\n\t\t}\n\t\tvar elts = (row.children);\n\t\tfor(_C = C = 0; _C < elts.length; ++_C) {\n\t\t\tvar elt = elts[_C];\n\t\t\tif (opts.display && is_dom_element_hidden(elt)) continue;\n\t\t\tvar v = elt.hasAttribute('v') ? elt.getAttribute('v') : htmldecode(elt.innerHTML);\n\t\t\tvar z = elt.getAttribute('z');\n\t\t\tfor(midx = 0; midx < merges.length; ++midx) {\n\t\t\t\tvar m = merges[midx];\n\t\t\t\tif(m.s.c == C + or_C && m.s.r < R + or_R && R + or_R <= m.e.r) { C = m.e.c+1 - or_C; midx = -1; }\n\t\t\t}\n\t\t\t/* TODO: figure out how to extract nonstandard mso- style */\n\t\t\tCS = +elt.getAttribute(\"colspan\") || 1;\n\t\t\tif( ((RS = (+elt.getAttribute(\"rowspan\") || 1)))>1 || CS>1) merges.push({s:{r:R + or_R,c:C + or_C},e:{r:R + or_R + (RS||1) - 1, c:C + or_C + (CS||1) - 1}});\n\t\t\tvar o = {t:'s', v:v};\n\t\t\tvar _t = elt.getAttribute(\"t\") || \"\";\n\t\t\tif(v != null) {\n\t\t\t\tif(v.length == 0) o.t = _t || 'z';\n\t\t\t\telse if(opts.raw || v.trim().length == 0 || _t == \"s\"){}\n\t\t\t\telse if(v === 'TRUE') o = {t:'b', v:true};\n\t\t\t\telse if(v === 'FALSE') o = {t:'b', v:false};\n\t\t\t\telse if(!isNaN(fuzzynum(v))) o = {t:'n', v:fuzzynum(v)};\n\t\t\t\telse if(!isNaN(fuzzydate(v).getDate())) {\n\t\t\t\t\to = ({t:'d', v:parseDate(v)});\n\t\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)});\n\t\t\t\t\to.z = opts.dateNF || SSF._table[14];\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(o.z === undefined && z != null) o.z = z;\n\t\t\tif(opts.dense) { if(!ws[R + or_R]) ws[R + or_R] = []; ws[R + or_R][C + or_C] = o; }\n\t\t\telse ws[encode_cell({c:C + or_C, r:R + or_R})] = o;\n\t\t\tif(range.e.c < C + or_C) range.e.c = C + or_C;\n\t\t\tC += CS;\n\t\t}\n\t\t++R;\n\t}\n\tif(merges.length) ws['!merges'] = (ws[\"!merges\"] || []).concat(merges);\n\trange.e.r = Math.max(range.e.r, R - 1 + or_R);\n\tws['!ref'] = encode_range(range);\n\tif(R >= sheetRows) ws['!fullref'] = encode_range((range.e.r = rows.length-_R+R-1 + or_R,range)); // We can count the real number of rows to parse but we don't to improve the performance\n\treturn ws;\n}\n\nfunction parse_dom_table(table, _opts) {\n\tvar opts = _opts || {};\n\tvar ws = opts.dense ? ([]) : ({});\n\treturn sheet_add_dom(ws, table, _opts);\n}\n\nfunction table_to_book(table, opts) {\n\treturn sheet_to_workbook(parse_dom_table(table, opts), opts);\n}\n\nfunction is_dom_element_hidden(element) {\n\tvar display = '';\n\tvar get_computed_style = get_get_computed_style_function(element);\n\tif(get_computed_style) display = get_computed_style(element).getPropertyValue('display');\n\tif(!display) display = element.style.display; // Fallback for cases when getComputedStyle is not available (e.g. an old browser or some Node.js environments) or doesn't work (e.g. if the element is not inserted to a document)\n\treturn display === 'none';\n}\n\n/* global getComputedStyle */\nfunction get_get_computed_style_function(element) {\n\t// The proper getComputedStyle implementation is the one defined in the element window\n\tif(element.ownerDocument.defaultView && typeof element.ownerDocument.defaultView.getComputedStyle === 'function') return element.ownerDocument.defaultView.getComputedStyle;\n\t// If it is not available, try to get one from the global namespace\n\tif(typeof getComputedStyle === 'function') return getComputedStyle;\n\treturn null;\n}\n/* OpenDocument */\nvar parse_content_xml = (function() {\n\n\tvar parse_text_p = function(text) {\n\t\t/* 6.1.2 White Space Characters */\n\t\tvar fixed = text\n\t\t\t.replace(/[\\t\\r\\n]/g, \" \").trim().replace(/ +/g, \" \")\n\t\t\t.replace(//g,\" \")\n\t\t\t.replace(//g, function($$,$1) { return Array(parseInt($1,10)+1).join(\" \"); })\n\t\t\t.replace(/]*\\/>/g,\"\\t\")\n\t\t\t.replace(//g,\"\\n\");\n\t\tvar v = unescapexml(fixed.replace(/<[^>]*>/g,\"\"));\n\n\t\treturn [v];\n\t};\n\n\tvar number_formats = {\n\t\t/* ods name: [short ssf fmt, long ssf fmt] */\n\t\tday: [\"d\", \"dd\"],\n\t\tmonth: [\"m\", \"mm\"],\n\t\tyear: [\"y\", \"yy\"],\n\t\thours: [\"h\", \"hh\"],\n\t\tminutes: [\"m\", \"mm\"],\n\t\tseconds: [\"s\", \"ss\"],\n\t\t\"am-pm\": [\"A/P\", \"AM/PM\"],\n\t\t\"day-of-week\": [\"ddd\", \"dddd\"],\n\t\tera: [\"e\", \"ee\"],\n\t\t/* there is no native representation of LO \"Q\" format */\n\t\tquarter: [\"\\\\Qm\", \"m\\\\\\\"th quarter\\\"\"]\n\t};\n\n\treturn function pcx(d, _opts) {\n\t\tvar opts = _opts || {};\n\t\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\t\tvar str = xlml_normalize(d);\n\t\tvar state = [], tmp;\n\t\tvar tag;\n\t\tvar NFtag = {name:\"\"}, NF = \"\", pidx = 0;\n\t\tvar sheetag;\n\t\tvar rowtag;\n\t\tvar Sheets = {}, SheetNames = [];\n\t\tvar ws = opts.dense ? ([]) : ({});\n\t\tvar Rn, q;\n\t\tvar ctag = ({value:\"\"});\n\t\tvar textp = \"\", textpidx = 0, textptag;\n\t\tvar textR = [];\n\t\tvar R = -1, C = -1, range = {s: {r:1000000,c:10000000}, e: {r:0, c:0}};\n\t\tvar row_ol = 0;\n\t\tvar number_format_map = {};\n\t\tvar merges = [], mrange = {}, mR = 0, mC = 0;\n\t\tvar rowinfo = [], rowpeat = 1, colpeat = 1;\n\t\tvar arrayf = [];\n\t\tvar WB = {Names:[]};\n\t\tvar atag = ({});\n\t\tvar _Ref = [\"\", \"\"];\n\t\tvar comments = [], comment = ({});\n\t\tvar creator = \"\", creatoridx = 0;\n\t\tvar isstub = false, intable = false;\n\t\tvar i = 0;\n\t\txlmlregex.lastIndex = 0;\n\t\tstr = str.replace(//mg,\"\").replace(//gm,\"\");\n\t\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3]=Rn[3].replace(/_.*$/,\"\"))) {\n\n\t\t\tcase 'table': case '工作表': // 9.1.2 \n\t\t\t\tif(Rn[1]==='/') {\n\t\t\t\t\tif(range.e.c >= range.s.c && range.e.r >= range.s.r) ws['!ref'] = encode_range(range);\n\t\t\t\t\telse ws['!ref'] = \"A1:A1\";\n\t\t\t\t\tif(opts.sheetRows > 0 && opts.sheetRows <= range.e.r) {\n\t\t\t\t\t\tws['!fullref'] = ws['!ref'];\n\t\t\t\t\t\trange.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tws['!ref'] = encode_range(range);\n\t\t\t\t\t}\n\t\t\t\t\tif(merges.length) ws['!merges'] = merges;\n\t\t\t\t\tif(rowinfo.length) ws[\"!rows\"] = rowinfo;\n\t\t\t\t\tsheetag.name = sheetag['名称'] || sheetag.name;\n\t\t\t\t\tif(typeof JSON !== 'undefined') JSON.stringify(sheetag);\n\t\t\t\t\tSheetNames.push(sheetag.name);\n\t\t\t\t\tSheets[sheetag.name] = ws;\n\t\t\t\t\tintable = false;\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tsheetag = parsexmltag(Rn[0], false);\n\t\t\t\t\tR = C = -1;\n\t\t\t\t\trange.s.r = range.s.c = 10000000; range.e.r = range.e.c = 0;\n\t\t\t\t\tws = opts.dense ? ([]) : ({}); merges = [];\n\t\t\t\t\trowinfo = [];\n\t\t\t\t\tintable = true;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'table-row-group': // 9.1.9 \n\t\t\t\tif(Rn[1] === \"/\") --row_ol; else ++row_ol;\n\t\t\t\tbreak;\n\t\t\tcase 'table-row': case '行': // 9.1.3 \n\t\t\t\tif(Rn[1] === '/') { R+=rowpeat; rowpeat = 1; break; }\n\t\t\t\trowtag = parsexmltag(Rn[0], false);\n\t\t\t\tif(rowtag['行号']) R = rowtag['行号'] - 1; else if(R == -1) R = 0;\n\t\t\t\trowpeat = +rowtag['number-rows-repeated'] || 1;\n\t\t\t\t/* TODO: remove magic */\n\t\t\t\tif(rowpeat < 10) for(i = 0; i < rowpeat; ++i) if(row_ol > 0) rowinfo[R + i] = {level: row_ol};\n\t\t\t\tC = -1; break;\n\t\t\tcase 'covered-table-cell': // 9.1.5 \n\t\t\t\tif(Rn[1] !== '/') ++C;\n\t\t\t\tif(opts.sheetStubs) {\n\t\t\t\t\tif(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = {t:'z'}; }\n\t\t\t\t\telse ws[encode_cell({r:R,c:C})] = {t:'z'};\n\t\t\t\t}\n\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\tbreak; /* stub */\n\t\t\tcase 'table-cell': case '数据':\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) === '/') {\n\t\t\t\t\t++C;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tq = ({t:'z', v:null});\n\t\t\t\t\tif(ctag.formula && opts.cellFormula != false) q.f = ods_to_csf_formula(unescapexml(ctag.formula));\n\t\t\t\t\tif((ctag['数据类型'] || ctag['value-type']) == \"string\") {\n\t\t\t\t\t\tq.t = \"s\"; q.v = unescapexml(ctag['string-value'] || \"\");\n\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\tif(!ws[R]) ws[R] = [];\n\t\t\t\t\t\t\tws[R][C] = q;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tws[encode_cell({r:R,c:C})] = q;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tC+= colpeat-1;\n\t\t\t\t} else if(Rn[1]!=='/') {\n\t\t\t\t\t++C;\n\t\t\t\t\tcolpeat = 1;\n\t\t\t\t\tvar rptR = rowpeat ? R + rowpeat - 1 : R;\n\t\t\t\t\tif(C > range.e.c) range.e.c = C;\n\t\t\t\t\tif(C < range.s.c) range.s.c = C;\n\t\t\t\t\tif(R < range.s.r) range.s.r = R;\n\t\t\t\t\tif(rptR > range.e.r) range.e.r = rptR;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcomments = []; comment = ({});\n\t\t\t\t\tq = ({t:ctag['数据类型'] || ctag['value-type'], v:null});\n\t\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\t\tif(ctag.formula) ctag.formula = unescapexml(ctag.formula);\n\t\t\t\t\t\tif(ctag['number-matrix-columns-spanned'] && ctag['number-matrix-rows-spanned']) {\n\t\t\t\t\t\t\tmR = parseInt(ctag['number-matrix-rows-spanned'],10) || 0;\n\t\t\t\t\t\t\tmC = parseInt(ctag['number-matrix-columns-spanned'],10) || 0;\n\t\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\t\tq.F = encode_range(mrange);\n\t\t\t\t\t\t\tarrayf.push([mrange, q.F]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(ctag.formula) q.f = ods_to_csf_formula(ctag.formula);\n\t\t\t\t\t\telse for(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\t\t\tif(R >= arrayf[i][0].s.r && R <= arrayf[i][0].e.r)\n\t\t\t\t\t\t\t\tif(C >= arrayf[i][0].s.c && C <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\t\t\tq.F = arrayf[i][1];\n\t\t\t\t\t}\n\t\t\t\t\tif(ctag['number-columns-spanned'] || ctag['number-rows-spanned']) {\n\t\t\t\t\t\tmR = parseInt(ctag['number-rows-spanned'],10) || 0;\n\t\t\t\t\t\tmC = parseInt(ctag['number-columns-spanned'],10) || 0;\n\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\tmerges.push(mrange);\n\t\t\t\t\t}\n\n\t\t\t\t\t/* 19.675.2 table:number-columns-repeated */\n\t\t\t\t\tif(ctag['number-columns-repeated']) colpeat = parseInt(ctag['number-columns-repeated'], 10);\n\n\t\t\t\t\t/* 19.385 office:value-type */\n\t\t\t\t\tswitch(q.t) {\n\t\t\t\t\t\tcase 'boolean': q.t = 'b'; q.v = parsexmlbool(ctag['boolean-value']); break;\n\t\t\t\t\t\tcase 'float': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'percentage': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'currency': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'date': q.t = 'd'; q.v = parseDate(ctag['date-value']);\n\t\t\t\t\t\t\tif(!opts.cellDates) { q.t = 'n'; q.v = datenum(q.v); }\n\t\t\t\t\t\t\tq.z = 'm/d/yy'; break;\n\t\t\t\t\t\tcase 'time': q.t = 'n'; q.v = parse_isodur(ctag['time-value'])/86400; break;\n\t\t\t\t\t\tcase 'number': q.t = 'n'; q.v = parseFloat(ctag['数据数值']); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tif(q.t === 'string' || q.t === 'text' || !q.t) {\n\t\t\t\t\t\t\t\tq.t = 's';\n\t\t\t\t\t\t\t\tif(ctag['string-value'] != null) { textp = unescapexml(ctag['string-value']); textR = []; }\n\t\t\t\t\t\t\t} else throw new Error('Unsupported value type ' + q.t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tisstub = false;\n\t\t\t\t\tif(q.t === 's') {\n\t\t\t\t\t\tq.v = textp || '';\n\t\t\t\t\t\tif(textR.length) q.R = textR;\n\t\t\t\t\t\tisstub = textpidx == 0;\n\t\t\t\t\t}\n\t\t\t\t\tif(atag.Target) q.l = atag;\n\t\t\t\t\tif(comments.length > 0) { q.c = comments; comments = []; }\n\t\t\t\t\tif(textp && opts.cellText !== false) q.w = textp;\n\t\t\t\t\tif(isstub) { q.t = \"z\"; delete q.v; }\n\t\t\t\t\tif(!isstub || opts.sheetStubs) {\n\t\t\t\t\t\tif(!(opts.sheetRows && opts.sheetRows <= R)) {\n\t\t\t\t\t\t\tfor(var rpt = 0; rpt < rowpeat; ++rpt) {\n\t\t\t\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!ws[R + rpt]) ws[R + rpt] = [];\n\t\t\t\t\t\t\t\t\tws[R + rpt][C] = rpt == 0 ? q : dup(q);\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[R + rpt][C + colpeat] = dup(q);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tws[encode_cell({r:R + rpt,c:C})] = q;\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[encode_cell({r:R + rpt,c:C + colpeat})] = dup(q);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(range.e.c <= C) range.e.c = C;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tC += colpeat-1; colpeat = 0;\n\t\t\t\t\tq = {};\n\t\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\t}\n\t\t\t\tatag = ({});\n\t\t\t\tbreak; // 9.1.4 \n\n\t\t\t/* pure state */\n\t\t\tcase 'document': // TODO: is the root for FODS\n\t\t\tcase 'document-content': case '电子表格文档': // 3.1.3.2 \n\t\t\tcase 'spreadsheet': case '主体': // 3.7 \n\t\t\tcase 'scripts': // 3.12 \n\t\t\tcase 'styles': // TODO \n\t\t\tcase 'font-face-decls': // 3.14 \n\t\t\tcase 'master-styles': //3.15.4 -- relevant for FODS\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\n\t\t\tcase 'annotation': // 14.1 \n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\t\tcomment.t = textp;\n\t\t\t\t\tif(textR.length) comment.R = textR;\n\t\t\t\t\tcomment.a = creator;\n\t\t\t\t\tcomments.push(comment);\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {state.push([Rn[3], false]);}\n\t\t\t\tcreator = \"\"; creatoridx = 0;\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'creator': // 4.3.2.7 \n\t\t\t\tif(Rn[1]==='/') { creator = str.slice(creatoridx,Rn.index); }\n\t\t\t\telse creatoridx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\t/* ignore state */\n\t\t\tcase 'meta': case '元数据': // TODO: FODS/UOF\n\t\t\tcase 'settings': // TODO: \n\t\t\tcase 'config-item-set': // TODO: \n\t\t\tcase 'config-item-map-indexed': // TODO: \n\t\t\tcase 'config-item-map-entry': // TODO: \n\t\t\tcase 'config-item-map-named': // TODO: \n\t\t\tcase 'shapes': // 9.2.8 \n\t\t\tcase 'frame': // 10.4.2 \n\t\t\tcase 'text-box': // 10.4.3 \n\t\t\tcase 'image': // 10.4.4 \n\t\t\tcase 'data-pilot-tables': // 9.6.2 \n\t\t\tcase 'list-style': // 16.30 \n\t\t\tcase 'form': // 13.13 \n\t\t\tcase 'dde-links': // 9.8 \n\t\t\tcase 'event-listeners': // TODO\n\t\t\tcase 'chart': // TODO\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], false]);\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'scientific-number': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'currency-symbol': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'currency-style': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'number-style': // 16.27.2 \n\t\t\tcase 'percentage-style': // 16.27.9 \n\t\t\tcase 'date-style': // 16.27.10 \n\t\t\tcase 'time-style': // 16.27.18 \n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tnumber_format_map[NFtag.name] = NF;\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tNF = \"\";\n\t\t\t\t\tNFtag = parsexmltag(Rn[0], false);\n\t\t\t\t\tstate.push([Rn[3], true]);\n\t\t\t\t} break;\n\n\t\t\tcase 'script': break; // 3.13 \n\t\t\tcase 'libraries': break; // TODO: \n\t\t\tcase 'automatic-styles': break; // 3.15.3 \n\n\t\t\tcase 'default-style': // TODO: \n\t\t\tcase 'page-layout': break; // TODO: \n\t\t\tcase 'style': // 16.2 \n\t\t\t\tbreak;\n\t\t\tcase 'map': break; // 16.3 \n\t\t\tcase 'font-face': break; // 16.21 \n\n\t\t\tcase 'paragraph-properties': break; // 17.6 \n\t\t\tcase 'table-properties': break; // 17.15 \n\t\t\tcase 'table-column-properties': break; // 17.16 \n\t\t\tcase 'table-row-properties': break; // 17.17 \n\t\t\tcase 'table-cell-properties': break; // 17.18 \n\n\t\t\tcase 'number': // 16.27.3 \n\t\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t\t\tNF += number_formats[Rn[3]][tag.style==='long'?1:0]; break;\n\t\t\t\t} break;\n\n\t\t\tcase 'fraction': break; // TODO 16.27.6 \n\n\t\t\tcase 'day': // 16.27.11 \n\t\t\tcase 'month': // 16.27.12 \n\t\t\tcase 'year': // 16.27.13 \n\t\t\tcase 'era': // 16.27.14 \n\t\t\tcase 'day-of-week': // 16.27.15 \n\t\t\tcase 'week-of-year': // 16.27.16 \n\t\t\tcase 'quarter': // 16.27.17 \n\t\t\tcase 'hours': // 16.27.19 \n\t\t\tcase 'minutes': // 16.27.20 \n\t\t\tcase 'seconds': // 16.27.21 \n\t\t\tcase 'am-pm': // 16.27.22 \n\t\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t\t\tNF += number_formats[Rn[3]][tag.style==='long'?1:0]; break;\n\t\t\t\t} break;\n\n\t\t\tcase 'boolean-style': break; // 16.27.23 \n\t\t\tcase 'boolean': break; // 16.27.24 \n\t\t\tcase 'text-style': break; // 16.27.25 \n\t\t\tcase 'text': // 16.27.26 \n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") switch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'number-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\t\tNF += str.slice(pidx, Rn.index);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\tcase 'named-range': // 9.4.12 \n\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t_Ref = ods_to_csf_3D(tag['cell-range-address']);\n\t\t\t\tvar nrange = ({Name:tag.name, Ref:_Ref[0] + '!' + _Ref[1]});\n\t\t\t\tif(intable) nrange.Sheet = SheetNames.length;\n\t\t\t\tWB.Names.push(nrange);\n\t\t\t\tbreak;\n\n\t\t\tcase 'text-content': break; // 16.27.27 \n\t\t\tcase 'text-properties': break; // 16.27.27 \n\t\t\tcase 'embedded-text': break; // 16.27.4 \n\n\t\t\tcase 'body': case '电子表格': break; // 3.3 16.9.6 19.726.3\n\n\t\t\tcase 'forms': break; // 12.25.2 13.2\n\t\t\tcase 'table-column': break; // 9.1.6 \n\t\t\tcase 'table-header-rows': break; // 9.1.7 \n\t\t\tcase 'table-rows': break; // 9.1.12 \n\t\t\t/* TODO: outline levels */\n\t\t\tcase 'table-column-group': break; // 9.1.10 \n\t\t\tcase 'table-header-columns': break; // 9.1.11 \n\t\t\tcase 'table-columns': break; // 9.1.12 \n\n\t\t\tcase 'null-date': break; // 9.4.2 TODO: date1904\n\n\t\t\tcase 'graphic-properties': break; // 17.21 \n\t\t\tcase 'calculation-settings': break; // 9.4.1 \n\t\t\tcase 'named-expressions': break; // 9.4.11 \n\t\t\tcase 'label-range': break; // 9.4.9 \n\t\t\tcase 'label-ranges': break; // 9.4.10 \n\t\t\tcase 'named-expression': break; // 9.4.13 \n\t\t\tcase 'sort': break; // 9.4.19 \n\t\t\tcase 'sort-by': break; // 9.4.20 \n\t\t\tcase 'sort-groups': break; // 9.4.22 \n\n\t\t\tcase 'tab': break; // 6.1.4 \n\t\t\tcase 'line-break': break; // 6.1.5 \n\t\t\tcase 'span': break; // 6.1.7 \n\t\t\tcase 'p': case '文本串': // 5.1.3 \n\t\t\t\tif(['master-styles'].indexOf(state[state.length-1][0]) > -1) break;\n\t\t\t\tif(Rn[1]==='/' && (!ctag || !ctag['string-value'])) {\n\t\t\t\t\tvar ptp = parse_text_p(str.slice(textpidx,Rn.index), textptag);\n\t\t\t\t\ttextp = (textp.length > 0 ? textp + \"\\n\" : \"\") + ptp[0];\n\t\t\t\t} else { textptag = parsexmltag(Rn[0], false); textpidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak; // \n\t\t\tcase 's': break; // \n\n\t\t\tcase 'database-range': // 9.4.15 \n\t\t\t\tif(Rn[1]==='/') break;\n\t\t\t\ttry {\n\t\t\t\t\t_Ref = ods_to_csf_3D(parsexmltag(Rn[0])['target-range-address']);\n\t\t\t\t\tSheets[_Ref[0]]['!autofilter'] = { ref:_Ref[1] };\n\t\t\t\t} catch(e) {/* empty */}\n\t\t\t\tbreak;\n\n\t\t\tcase 'date': break; // <*:date>\n\n\t\t\tcase 'object': break; // 10.4.6.2 \n\t\t\tcase 'title': case '标题': break; // <*:title> OR \n\t\t\tcase 'desc': break; // <*:desc>\n\t\t\tcase 'binary-data': break; // 10.4.5 TODO: b64 blob\n\n\t\t\t/* 9.2 Advanced Tables */\n\t\t\tcase 'table-source': break; // 9.2.6\n\t\t\tcase 'scenario': break; // 9.2.6\n\n\t\t\tcase 'iteration': break; // 9.4.3 \n\t\t\tcase 'content-validations': break; // 9.4.4 \n\t\t\tcase 'filter': break; // 9.5.2 \n\t\t\tcase 'filter-and': break; // 9.5.3 \n\t\t\tcase 'filter-or': break; // 9.5.4 \n\t\t\tcase 'filter-condition': break; // 9.5.5 \n\n\t\t\tcase 'list-level-style-bullet': break; // 16.31 \n\t\t\tcase 'page-count': break; // TODO \n\t\t\tcase 'time': break; // TODO \n\n\t\t\t/* 9.3 Advanced Table Cells */\n\t\t\tcase 'cell-range-source': break; // 9.3.1 \n\t\t\tcase 'property': break; // 13.8 \n\n\t\t\tcase 'a': // 6.1.8 hyperlink\n\t\t\t\tif(Rn[1]!== '/') {\n\t\t\t\t\tatag = parsexmltag(Rn[0], false);\n\t\t\t\t\tif(!atag.href) break;\n\t\t\t\t\tatag.Target = atag.href; delete atag.href;\n\t\t\t\t\tif(atag.Target.charAt(0) == \"#\" && atag.Target.indexOf(\".\") > -1) {\n\t\t\t\t\t\t_Ref = ods_to_csf_3D(atag.Target.slice(1));\n\t\t\t\t\t\tatag.Target = \"#\" + _Ref[0] + \"!\" + _Ref[1];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\t/* non-standard */\n\t\t\tcase 'table-protection': break;\n\t\t\tcase 'data-pilot-grand-total': break; // ';\n\treturn function wso() {\n\t\treturn XML_HEADER + payload;\n\t};\n})();\nvar write_content_ods = (function() {\n\t/* 6.1.2 White Space Characters */\n\tvar write_text_p = function(text) {\n\t\treturn escapexml(text)\n\t\t\t.replace(/ +/g, function($$){return '';})\n\t\t\t.replace(/\\t/g, \"\")\n\t\t\t.replace(/\\n/g, \"\")\n\t\t\t.replace(/^ /, \"\").replace(/ $/, \"\");\n\t};\n\n\tvar null_cell_xml = ' \\n';\n\tvar covered_cell_xml = ' \\n';\n\tvar write_ws = function(ws, wb, i) {\n\t\t/* Section 9 Tables */\n\t\tvar o = [];\n\t\to.push(' \\n');\n\t\tvar R=0,C=0, range = decode_range(ws['!ref']);\n\t\tvar marr = ws['!merges'] || [], mi = 0;\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(R = 0; R < range.s.r; ++R) o.push(' \\n');\n\t\tfor(; R <= range.e.r; ++R) {\n\t\t\to.push(' \\n');\n\t\t\tfor(C=0; C < range.s.c; ++C) o.push(null_cell_xml);\n\t\t\tfor(; C <= range.e.c; ++C) {\n\t\t\t\tvar skip = false, ct = {}, textp = \"\";\n\t\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\t\tct['table:number-columns-spanned'] = (marr[mi].e.c - marr[mi].s.c + 1);\n\t\t\t\t\tct['table:number-rows-spanned'] = (marr[mi].e.r - marr[mi].s.r + 1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(skip) { o.push(covered_cell_xml); continue; }\n\t\t\t\tvar ref = encode_cell({r:R, c:C}), cell = dense ? (ws[R]||[])[C]: ws[ref];\n\t\t\t\tif(cell && cell.f) {\n\t\t\t\t\tct['table:formula'] = escapexml(csf_to_ods_formula(cell.f));\n\t\t\t\t\tif(cell.F) {\n\t\t\t\t\t\tif(cell.F.slice(0, ref.length) == ref) {\n\t\t\t\t\t\t\tvar _Fref = decode_range(cell.F);\n\t\t\t\t\t\t\tct['table:number-matrix-columns-spanned'] = (_Fref.e.c - _Fref.s.c + 1);\n\t\t\t\t\t\t\tct['table:number-matrix-rows-spanned'] = (_Fref.e.r - _Fref.s.r + 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(!cell) { o.push(null_cell_xml); continue; }\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\ttextp = (cell.v ? 'TRUE' : 'FALSE');\n\t\t\t\t\t\tct['office:value-type'] = \"boolean\";\n\t\t\t\t\t\tct['office:boolean-value'] = (cell.v ? 'true' : 'false');\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\ttextp = (cell.w||String(cell.v||0));\n\t\t\t\t\t\tct['office:value-type'] = \"float\";\n\t\t\t\t\t\tct['office:value'] = (cell.v||0);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 's': case 'str':\n\t\t\t\t\t\ttextp = cell.v == null ? \"\" : cell.v;\n\t\t\t\t\t\tct['office:value-type'] = \"string\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\ttextp = (cell.w||(parseDate(cell.v).toISOString()));\n\t\t\t\t\t\tct['office:value-type'] = \"date\";\n\t\t\t\t\t\tct['office:date-value'] = (parseDate(cell.v).toISOString());\n\t\t\t\t\t\tct['table:style-name'] = \"ce1\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t//case 'e':\n\t\t\t\t\tdefault: o.push(null_cell_xml); continue;\n\t\t\t\t}\n\t\t\t\tvar text_p = write_text_p(textp);\n\t\t\t\tif(cell.l && cell.l.Target) {\n\t\t\t\t\tvar _tgt = cell.l.Target; _tgt = _tgt.charAt(0) == \"#\" ? \"#\" + csf_to_ods_3D(_tgt.slice(1)) : _tgt;\n\t\t\t\t\ttext_p = writextag('text:a', text_p, {'xlink:href': _tgt});\n\t\t\t\t}\n\t\t\t\to.push(' ' + writextag('table:table-cell', writextag('text:p', text_p, {}), ct) + '\\n');\n\t\t\t}\n\t\t\to.push(' \\n');\n\t\t}\n\t\to.push(' \\n');\n\t\treturn o.join(\"\");\n\t};\n\n\tvar write_automatic_styles_ods = function(o) {\n\t\to.push(' \\n');\n\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\to.push(' /\\n');\n\t\to.push(' \\n');\n\t\to.push(' /\\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\n\t\t/* table */\n\t\to.push(' \\n'); // style:master-page-name=\"mp1\">\\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\n\t\t/* table cells, text */\n\t\to.push(' \\n');\n\n\t\t/* page-layout */\n\n\t\to.push(' \\n');\n\t};\n\n\treturn function wcx(wb, opts) {\n\t\tvar o = [XML_HEADER];\n\t\t/* 3.1.3.2 */\n\t\tvar attr = wxt_helper({\n\t\t\t'xmlns:office': \"urn:oasis:names:tc:opendocument:xmlns:office:1.0\",\n\t\t\t'xmlns:table': \"urn:oasis:names:tc:opendocument:xmlns:table:1.0\",\n\t\t\t'xmlns:style': \"urn:oasis:names:tc:opendocument:xmlns:style:1.0\",\n\t\t\t'xmlns:text': \"urn:oasis:names:tc:opendocument:xmlns:text:1.0\",\n\t\t\t'xmlns:draw': \"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0\",\n\t\t\t'xmlns:fo': \"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0\",\n\t\t\t'xmlns:xlink': \"http://www.w3.org/1999/xlink\",\n\t\t\t'xmlns:dc': \"http://purl.org/dc/elements/1.1/\",\n\t\t\t'xmlns:meta': \"urn:oasis:names:tc:opendocument:xmlns:meta:1.0\",\n\t\t\t'xmlns:number': \"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0\",\n\t\t\t'xmlns:presentation': \"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0\",\n\t\t\t'xmlns:svg': \"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0\",\n\t\t\t'xmlns:chart': \"urn:oasis:names:tc:opendocument:xmlns:chart:1.0\",\n\t\t\t'xmlns:dr3d': \"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0\",\n\t\t\t'xmlns:math': \"http://www.w3.org/1998/Math/MathML\",\n\t\t\t'xmlns:form': \"urn:oasis:names:tc:opendocument:xmlns:form:1.0\",\n\t\t\t'xmlns:script': \"urn:oasis:names:tc:opendocument:xmlns:script:1.0\",\n\t\t\t'xmlns:ooo': \"http://openoffice.org/2004/office\",\n\t\t\t'xmlns:ooow': \"http://openoffice.org/2004/writer\",\n\t\t\t'xmlns:oooc': \"http://openoffice.org/2004/calc\",\n\t\t\t'xmlns:dom': \"http://www.w3.org/2001/xml-events\",\n\t\t\t'xmlns:xforms': \"http://www.w3.org/2002/xforms\",\n\t\t\t'xmlns:xsd': \"http://www.w3.org/2001/XMLSchema\",\n\t\t\t'xmlns:xsi': \"http://www.w3.org/2001/XMLSchema-instance\",\n\t\t\t'xmlns:sheet': \"urn:oasis:names:tc:opendocument:sh33tjs:1.0\",\n\t\t\t'xmlns:rpt': \"http://openoffice.org/2005/report\",\n\t\t\t'xmlns:of': \"urn:oasis:names:tc:opendocument:xmlns:of:1.2\",\n\t\t\t'xmlns:xhtml': \"http://www.w3.org/1999/xhtml\",\n\t\t\t'xmlns:grddl': \"http://www.w3.org/2003/g/data-view#\",\n\t\t\t'xmlns:tableooo': \"http://openoffice.org/2009/table\",\n\t\t\t'xmlns:drawooo': \"http://openoffice.org/2010/draw\",\n\t\t\t'xmlns:calcext': \"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0\",\n\t\t\t'xmlns:loext': \"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0\",\n\t\t\t'xmlns:field': \"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0\",\n\t\t\t'xmlns:formx': \"urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0\",\n\t\t\t'xmlns:css3t': \"http://www.w3.org/TR/css3-text/\",\n\t\t\t'office:version': \"1.2\"\n\t\t});\n\n\t\tvar fods = wxt_helper({\n\t\t\t'xmlns:config': \"urn:oasis:names:tc:opendocument:xmlns:config:1.0\",\n\t\t\t'office:mimetype': \"application/vnd.oasis.opendocument.spreadsheet\"\n\t\t});\n\n\t\tif(opts.bookType == \"fods\") o.push('\\n');\n\t\telse o.push('\\n');\n\t\twrite_automatic_styles_ods(o);\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\tfor(var i = 0; i != wb.SheetNames.length; ++i) o.push(write_ws(wb.Sheets[wb.SheetNames[i]], wb, i, opts));\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\tif(opts.bookType == \"fods\") o.push('');\n\t\telse o.push('');\n\t\treturn o.join(\"\");\n\t};\n})();\n\nfunction write_ods(wb, opts) {\n\tif(opts.bookType == \"fods\") return write_content_ods(wb, opts);\n\nvar zip = zip_new();\n\tvar f = \"\";\n\n\tvar manifest = [];\n\tvar rdf = [];\n\n\t/* Part 3 Section 3.3 MIME Media Type */\n\tf = \"mimetype\";\n\tzip_add_file(zip, f, \"application/vnd.oasis.opendocument.spreadsheet\");\n\n\t/* Part 1 Section 2.2 Documents */\n\tf = \"content.xml\";\n\tzip_add_file(zip, f, write_content_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"ContentFile\"]);\n\n\t/* TODO: these are hard-coded styles to satiate excel */\n\tf = \"styles.xml\";\n\tzip_add_file(zip, f, write_styles_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"StylesFile\"]);\n\n\t/* TODO: this is hard-coded to satiate excel */\n\tf = \"meta.xml\";\n\tzip_add_file(zip, f, write_meta_ods());\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"MetadataFile\"]);\n\n\t/* Part 3 Section 6 Metadata Manifest File */\n\tf = \"manifest.rdf\";\n\tzip_add_file(zip, f, write_rdf(rdf/*, opts*/));\n\tmanifest.push([f, \"application/rdf+xml\"]);\n\n\t/* Part 3 Section 4 Manifest File */\n\tf = \"META-INF/manifest.xml\";\n\tzip_add_file(zip, f, write_manifest(manifest/*, opts*/));\n\n\treturn zip;\n}\n\nfunction write_sheet_index(wb, sheet) {\n\tif(!sheet) return 0;\n\tvar idx = wb.SheetNames.indexOf(sheet);\n\tif(idx == -1) throw new Error(\"Sheet not found: \" + sheet);\n\treturn idx;\n}\n\nfunction write_obj_str(factory) {\n\treturn function write_str(wb, o) {\n\t\tvar idx = write_sheet_index(wb, o.sheet);\n\t\treturn factory.from_sheet(wb.Sheets[wb.SheetNames[idx]], o, wb);\n\t};\n}\n\nvar write_htm_str = write_obj_str(HTML_);\nvar write_csv_str = write_obj_str({from_sheet:sheet_to_csv});\nvar write_slk_str = write_obj_str(typeof SYLK !== \"undefined\" ? SYLK : {});\nvar write_dif_str = write_obj_str(typeof DIF !== \"undefined\" ? DIF : {});\nvar write_prn_str = write_obj_str(typeof PRN !== \"undefined\" ? PRN : {});\nvar write_rtf_str = write_obj_str(typeof RTF !== \"undefined\" ? RTF : {});\nvar write_txt_str = write_obj_str({from_sheet:sheet_to_txt});\nvar write_dbf_buf = write_obj_str(typeof DBF !== \"undefined\" ? DBF : {});\nvar write_eth_str = write_obj_str(typeof ETH !== \"undefined\" ? ETH : {});\n\nfunction fix_opts_func(defaults) {\n\treturn function fix_opts(opts) {\n\t\tfor(var i = 0; i != defaults.length; ++i) {\n\t\t\tvar d = defaults[i];\n\t\t\tif(opts[d[0]] === undefined) opts[d[0]] = d[1];\n\t\t\tif(d[2] === 'n') opts[d[0]] = Number(opts[d[0]]);\n\t\t}\n\t};\n}\n\nvar fix_read_opts = function(opts) {\nfix_opts_func([\n\t['cellNF', false], /* emit cell number format string as .z */\n\t['cellHTML', true], /* emit html string as .h */\n\t['cellFormula', true], /* emit formulae as .f */\n\t['cellStyles', false], /* emits style/theme as .s */\n\t['cellText', true], /* emit formatted text as .w */\n\t['cellDates', false], /* emit date cells with type `d` */\n\n\t['sheetStubs', false], /* emit empty cells */\n\t['sheetRows', 0, 'n'], /* read n rows (0 = read all rows) */\n\n\t['bookDeps', false], /* parse calculation chains */\n\t['bookSheets', false], /* only try to get sheet names (no Sheets) */\n\t['bookProps', false], /* only try to get properties (no Sheets) */\n\t['bookFiles', false], /* include raw file structure (keys, files, cfb) */\n\t['bookVBA', false], /* include vba raw data (vbaraw) */\n\n\t['password',''], /* password */\n\t['WTF', false] /* WTF mode (throws errors) */\n])(opts);\n};\n\nvar fix_write_opts = fix_opts_func([\n\t['cellDates', false], /* write date cells with type `d` */\n\n\t['bookSST', false], /* Generate Shared String Table */\n\n\t['bookType', 'xlsx'], /* Type of workbook (xlsx/m/b) */\n\n\t['compression', false], /* Use file compression */\n\n\t['WTF', false] /* WTF mode (throws errors) */\n]);\nfunction get_sheet_type(n) {\n\tif(RELS.WS.indexOf(n) > -1) return \"sheet\";\n\tif(RELS.CS && n == RELS.CS) return \"chart\";\n\tif(RELS.DS && n == RELS.DS) return \"dialog\";\n\tif(RELS.MS && n == RELS.MS) return \"macro\";\n\treturn (n && n.length) ? n : \"sheet\";\n}\nfunction safe_parse_wbrels(wbrels, sheets) {\n\tif(!wbrels) return 0;\n\ttry {\n\t\twbrels = sheets.map(function pwbr(w) { if(!w.id) w.id = w.strRelID; return [w.name, wbrels['!id'][w.id].Target, get_sheet_type(wbrels['!id'][w.id].Type)]; });\n\t} catch(e) { return null; }\n\treturn !wbrels || wbrels.length === 0 ? null : wbrels;\n}\n\nfunction safe_parse_sheet(zip, path, relsPath, sheet, idx, sheetRels, sheets, stype, opts, wb, themes, styles) {\n\ttry {\n\t\tsheetRels[sheet]=parse_rels(getzipstr(zip, relsPath, true), path);\n\t\tvar data = getzipdata(zip, path);\n\t\tvar _ws;\n\t\tswitch(stype) {\n\t\t\tcase 'sheet': _ws = parse_ws(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'chart': _ws = parse_cs(data, path, idx, opts, sheetRels[sheet], wb, themes, styles);\n\t\t\t\tif(!_ws || !_ws['!drawel']) break;\n\t\t\t\tvar dfile = resolve_path(_ws['!drawel'].Target, path);\n\t\t\t\tvar drelsp = get_rels_path(dfile);\n\t\t\t\tvar draw = parse_drawing(getzipstr(zip, dfile, true), parse_rels(getzipstr(zip, drelsp, true), dfile));\n\t\t\t\tvar chartp = resolve_path(draw, dfile);\n\t\t\t\tvar crelsp = get_rels_path(chartp);\n\t\t\t\t_ws = parse_chart(getzipstr(zip, chartp, true), chartp, opts, parse_rels(getzipstr(zip, crelsp, true), chartp), wb, _ws);\n\t\t\t\tbreak;\n\t\t\tcase 'macro': _ws = parse_ms(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'dialog': _ws = parse_ds(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tdefault: throw new Error(\"Unrecognized sheet type \" + stype);\n\t\t}\n\t\tsheets[sheet] = _ws;\n\n\t\t/* scan rels for comments */\n\t\tvar comments = [];\n\t\tif(sheetRels && sheetRels[sheet]) keys(sheetRels[sheet]).forEach(function(n) {\n\t\t\tif(sheetRels[sheet][n].Type == RELS.CMNT) {\n\t\t\t\tvar dfile = resolve_path(sheetRels[sheet][n].Target, path);\n\t\t\t\tcomments = parse_cmnt(getzipdata(zip, dfile, true), dfile, opts);\n\t\t\t\tif(!comments || !comments.length) return;\n\t\t\t\tsheet_insert_comments(_ws, comments);\n\t\t\t}\n\t\t});\n\t} catch(e) { if(opts.WTF) throw e; }\n}\n\nfunction strip_front_slash(x) { return x.charAt(0) == '/' ? x.slice(1) : x; }\n\nfunction parse_zip(zip, opts) {\n\tmake_ssf(SSF);\n\topts = opts || {};\n\tfix_read_opts(opts);\n\n\t/* OpenDocument Part 3 Section 2.2.1 OpenDocument Package */\n\tif(safegetzipfile(zip, 'META-INF/manifest.xml')) return parse_ods(zip, opts);\n\t/* UOC */\n\tif(safegetzipfile(zip, 'objectdata.xml')) return parse_ods(zip, opts);\n\t/* Numbers */\n\tif(safegetzipfile(zip, 'Index/Document.iwa')) throw new Error('Unsupported NUMBERS file');\n\n\tvar entries = zipentries(zip);\n\tvar dir = parse_ct((getzipstr(zip, '[Content_Types].xml')));\n\tvar xlsb = false;\n\tvar sheets, binname;\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.xml\";\n\t\tif(getzipdata(zip,binname, true)) dir.workbooks.push(binname);\n\t}\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.bin\";\n\t\tif(!getzipdata(zip,binname,true)) throw new Error(\"Could not find workbook\");\n\t\tdir.workbooks.push(binname);\n\t\txlsb = true;\n\t}\n\tif(dir.workbooks[0].slice(-3) == \"bin\") xlsb = true;\n\n\tvar themes = ({});\n\tvar styles = ({});\n\tif(!opts.bookSheets && !opts.bookProps) {\n\t\tstrs = [];\n\t\tif(dir.sst) try { strs=parse_sst(getzipdata(zip, strip_front_slash(dir.sst)), dir.sst, opts); } catch(e) { if(opts.WTF) throw e; }\n\n\t\tif(opts.cellStyles && dir.themes.length) themes = parse_theme(getzipstr(zip, dir.themes[0].replace(/^\\//,''), true)||\"\",dir.themes[0], opts);\n\n\t\tif(dir.style) styles = parse_sty(getzipdata(zip, strip_front_slash(dir.style)), dir.style, themes, opts);\n\t}\n\n\t/*var externbooks = */dir.links.map(function(link) {\n\t\ttry {\n\t\t\tvar rels = parse_rels(getzipstr(zip, get_rels_path(strip_front_slash(link))), link);\n\t\t\treturn parse_xlink(getzipdata(zip, strip_front_slash(link)), rels, link, opts);\n\t\t} catch(e) {}\n\t});\n\n\tvar wb = parse_wb(getzipdata(zip, strip_front_slash(dir.workbooks[0])), dir.workbooks[0], opts);\n\n\tvar props = {}, propdata = \"\";\n\n\tif(dir.coreprops.length) {\n\t\tpropdata = getzipdata(zip, strip_front_slash(dir.coreprops[0]), true);\n\t\tif(propdata) props = parse_core_props(propdata);\n\t\tif(dir.extprops.length !== 0) {\n\t\t\tpropdata = getzipdata(zip, strip_front_slash(dir.extprops[0]), true);\n\t\t\tif(propdata) parse_ext_props(propdata, props, opts);\n\t\t}\n\t}\n\n\tvar custprops = {};\n\tif(!opts.bookSheets || opts.bookProps) {\n\t\tif (dir.custprops.length !== 0) {\n\t\t\tpropdata = getzipstr(zip, strip_front_slash(dir.custprops[0]), true);\n\t\t\tif(propdata) custprops = parse_cust_props(propdata, opts);\n\t\t}\n\t}\n\n\tvar out = ({});\n\tif(opts.bookSheets || opts.bookProps) {\n\t\tif(wb.Sheets) sheets = wb.Sheets.map(function pluck(x){ return x.name; });\n\t\telse if(props.Worksheets && props.SheetNames.length > 0) sheets=props.SheetNames;\n\t\tif(opts.bookProps) { out.Props = props; out.Custprops = custprops; }\n\t\tif(opts.bookSheets && typeof sheets !== 'undefined') out.SheetNames = sheets;\n\t\tif(opts.bookSheets ? out.SheetNames : opts.bookProps) return out;\n\t}\n\tsheets = {};\n\n\tvar deps = {};\n\tif(opts.bookDeps && dir.calcchain) deps=parse_cc(getzipdata(zip, strip_front_slash(dir.calcchain)),dir.calcchain,opts);\n\n\tvar i=0;\n\tvar sheetRels = ({});\n\tvar path, relsPath;\n\n\t{\n\t\tvar wbsheets = wb.Sheets;\n\t\tprops.Worksheets = wbsheets.length;\n\t\tprops.SheetNames = [];\n\t\tfor(var j = 0; j != wbsheets.length; ++j) {\n\t\t\tprops.SheetNames[j] = wbsheets[j].name;\n\t\t}\n\t}\n\n\tvar wbext = xlsb ? \"bin\" : \"xml\";\n\tvar wbrelsi = dir.workbooks[0].lastIndexOf(\"/\");\n\tvar wbrelsfile = (dir.workbooks[0].slice(0, wbrelsi+1) + \"_rels/\" + dir.workbooks[0].slice(wbrelsi+1) + \".rels\").replace(/^\\//,\"\");\n\tif(!safegetzipfile(zip, wbrelsfile)) wbrelsfile = 'xl/_rels/workbook.' + wbext + '.rels';\n\tvar wbrels = parse_rels(getzipstr(zip, wbrelsfile, true), wbrelsfile);\n\tif(wbrels) wbrels = safe_parse_wbrels(wbrels, wb.Sheets);\n\n\t/* Numbers iOS hack */\n\tvar nmode = (getzipdata(zip,\"xl/worksheets/sheet.xml\",true))?1:0;\n\twsloop: for(i = 0; i != props.Worksheets; ++i) {\n\t\tvar stype = \"sheet\";\n\t\tif(wbrels && wbrels[i]) {\n\t\t\tpath = 'xl/' + (wbrels[i][1]).replace(/[\\/]?xl\\//, \"\");\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrels[i][1];\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrelsfile.replace(/_rels\\/.*$/,\"\") + wbrels[i][1];\n\t\t\tstype = wbrels[i][2];\n\t\t} else {\n\t\t\tpath = 'xl/worksheets/sheet'+(i+1-nmode)+\".\" + wbext;\n\t\t\tpath = path.replace(/sheet0\\./,\"sheet.\");\n\t\t}\n\t\trelsPath = path.replace(/^(.*)(\\/)([^\\/]*)$/, \"$1/_rels/$3.rels\");\n\t\tif(opts && opts.sheets != null) switch(typeof opts.sheets) {\n\t\t\tcase \"number\": if(i != opts.sheets) continue wsloop; break;\n\t\t\tcase \"string\": if(props.SheetNames[i].toLowerCase() != opts.sheets.toLowerCase()) continue wsloop; break;\n\t\t\tdefault: if(Array.isArray && Array.isArray(opts.sheets)) {\n\t\t\t\tvar snjseen = false;\n\t\t\t\tfor(var snj = 0; snj != opts.sheets.length; ++snj) {\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"number\" && opts.sheets[snj] == i) snjseen=1;\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"string\" && opts.sheets[snj].toLowerCase() == props.SheetNames[i].toLowerCase()) snjseen = 1;\n\t\t\t\t}\n\t\t\t\tif(!snjseen) continue wsloop;\n\t\t\t}\n\t\t}\n\t\tsafe_parse_sheet(zip, path, relsPath, props.SheetNames[i], i, sheetRels, sheets, stype, opts, wb, themes, styles);\n\t}\n\n\tout = ({\n\t\tDirectory: dir,\n\t\tWorkbook: wb,\n\t\tProps: props,\n\t\tCustprops: custprops,\n\t\tDeps: deps,\n\t\tSheets: sheets,\n\t\tSheetNames: props.SheetNames,\n\t\tStrings: strs,\n\t\tStyles: styles,\n\t\tThemes: themes,\n\t\tSSF: SSF.get_table()\n\t});\n\tif(opts && opts.bookFiles) {\n\t\tout.keys = entries;\n\t\tout.files = zip.files;\n\t}\n\tif(opts && opts.bookVBA) {\n\t\tif(dir.vba.length > 0) out.vbaraw = getzipdata(zip,strip_front_slash(dir.vba[0]),true);\n\t\telse if(dir.defaults && dir.defaults.bin === CT_VBA) out.vbaraw = getzipdata(zip, 'xl/vbaProject.bin',true);\n\t}\n\treturn out;\n}\n\n/* [MS-OFFCRYPTO] 2.1.1 */\nfunction parse_xlsxcfb(cfb, _opts) {\n\tvar opts = _opts || {};\n\tvar f = 'Workbook', data = CFB.find(cfb, f);\n\ttry {\n\tf = '/!DataSpaces/Version';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var version = */parse_DataSpaceVersionInfo(data.content);\n\n\t/* 2.3.4.1 */\n\tf = '/!DataSpaces/DataSpaceMap';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar dsm = parse_DataSpaceMap(data.content);\n\tif(dsm.length !== 1 || dsm[0].comps.length !== 1 || dsm[0].comps[0].t !== 0 || dsm[0].name !== \"StrongEncryptionDataSpace\" || dsm[0].comps[0].v !== \"EncryptedPackage\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.2 */\n\tf = '/!DataSpaces/DataSpaceInfo/StrongEncryptionDataSpace';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar seds = parse_DataSpaceDefinition(data.content);\n\tif(seds.length != 1 || seds[0] != \"StrongEncryptionTransform\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.3 */\n\tf = '/!DataSpaces/TransformInfo/StrongEncryptionTransform/!Primary';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var hdr = */parse_Primary(data.content);\n\t} catch(e) {}\n\n\tf = '/EncryptionInfo';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar einfo = parse_EncryptionInfo(data.content);\n\n\t/* 2.3.4.4 */\n\tf = '/EncryptedPackage';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\n/*global decrypt_agile */\nif(einfo[0] == 0x04 && typeof decrypt_agile !== 'undefined') return decrypt_agile(einfo[1], data.content, opts.password || \"\", opts);\n/*global decrypt_std76 */\nif(einfo[0] == 0x02 && typeof decrypt_std76 !== 'undefined') return decrypt_std76(einfo[1], data.content, opts.password || \"\", opts);\n\tthrow new Error(\"File is password-protected\");\n}\n\nfunction write_zip(wb, opts) {\n\t_shapeid = 1024;\n\tif(opts.bookType == \"ods\") return write_ods(wb, opts);\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = SSF.get_table();\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(SSF); SSF.load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t}\n\topts.rels = {}; opts.wbrels = {};\n\topts.Strings = []; opts.Strings.Count = 0; opts.Strings.Unique = 0;\n\tif(browser_has_Map) opts.revStrings = new Map();\n\telse { opts.revStrings = {}; opts.revStrings.foo = []; delete opts.revStrings.foo; }\n\tvar wbext = opts.bookType == \"xlsb\" ? \"bin\" : \"xml\";\n\tvar vbafmt = VBAFMTS.indexOf(opts.bookType) > -1;\n\tvar ct = new_ct();\n\tfix_write_opts(opts = opts || {});\nvar zip = zip_new();\n\tvar f = \"\", rId = 0;\n\n\topts.cellXfs = [];\n\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tf = \"docProps/core.xml\";\n\tzip_add_file(zip, f, write_core_props(wb.Props, opts));\n\tct.coreprops.push(f);\n\tadd_rels(opts.rels, 2, f, RELS.CORE_PROPS);\n\nf = \"docProps/app.xml\";\n\tif(wb.Props && wb.Props.SheetNames){/* empty */}\n\telse if(!wb.Workbook || !wb.Workbook.Sheets) wb.Props.SheetNames = wb.SheetNames;\n\telse {\n\t\tvar _sn = [];\n\t\tfor(var _i = 0; _i < wb.SheetNames.length; ++_i)\n\t\t\tif((wb.Workbook.Sheets[_i]||{}).Hidden != 2) _sn.push(wb.SheetNames[_i]);\n\t\twb.Props.SheetNames = _sn;\n\t}\n\twb.Props.Worksheets = wb.Props.SheetNames.length;\n\tzip_add_file(zip, f, write_ext_props(wb.Props, opts));\n\tct.extprops.push(f);\n\tadd_rels(opts.rels, 3, f, RELS.EXT_PROPS);\n\n\tif(wb.Custprops !== wb.Props && keys(wb.Custprops||{}).length > 0) {\n\t\tf = \"docProps/custom.xml\";\n\t\tzip_add_file(zip, f, write_cust_props(wb.Custprops, opts));\n\t\tct.custprops.push(f);\n\t\tadd_rels(opts.rels, 4, f, RELS.CUST_PROPS);\n\t}\n\n\tfor(rId=1;rId <= wb.SheetNames.length; ++rId) {\n\t\tvar wsrels = {'!id':{}};\n\t\tvar ws = wb.Sheets[wb.SheetNames[rId-1]];\n\t\tvar _type = (ws || {})[\"!type\"] || \"sheet\";\n\t\tswitch(_type) {\n\t\tcase \"chart\":\n\t\t\t/* falls through */\n\t\tdefault:\n\t\t\tf = \"xl/worksheets/sheet\" + rId + \".\" + wbext;\n\t\t\tzip_add_file(zip, f, write_ws(rId-1, f, opts, wb, wsrels));\n\t\t\tct.sheets.push(f);\n\t\t\tadd_rels(opts.wbrels, -1, \"worksheets/sheet\" + rId + \".\" + wbext, RELS.WS[0]);\n\t\t}\n\n\t\tif(ws) {\n\t\t\tvar comments = ws['!comments'];\n\t\t\tvar need_vml = false;\n\t\t\tif(comments && comments.length > 0) {\n\t\t\t\tvar cf = \"xl/comments\" + rId + \".\" + wbext;\n\t\t\t\tzip_add_file(zip, cf, write_cmnt(comments, cf, opts));\n\t\t\t\tct.comments.push(cf);\n\t\t\t\tadd_rels(wsrels, -1, \"../comments\" + rId + \".\" + wbext, RELS.CMNT);\n\t\t\t\tneed_vml = true;\n\t\t\t}\n\t\t\tif(ws['!legacy']) {\n\t\t\t\tif(need_vml) zip_add_file(zip, \"xl/drawings/vmlDrawing\" + (rId) + \".vml\", write_comments_vml(rId, ws['!comments']));\n\t\t\t}\n\t\t\tdelete ws['!comments'];\n\t\t\tdelete ws['!legacy'];\n\t\t}\n\n\t\tif(wsrels['!id'].rId1) zip_add_file(zip, get_rels_path(f), write_rels(wsrels));\n\t}\n\n\tif(opts.Strings != null && opts.Strings.length > 0) {\n\t\tf = \"xl/sharedStrings.\" + wbext;\n\t\tzip_add_file(zip, f, write_sst(opts.Strings, f, opts));\n\t\tct.strs.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"sharedStrings.\" + wbext, RELS.SST);\n\t}\n\n\tf = \"xl/workbook.\" + wbext;\n\tzip_add_file(zip, f, write_wb(wb, f, opts));\n\tct.workbooks.push(f);\n\tadd_rels(opts.rels, 1, f, RELS.WB);\n\n\t/* TODO: something more intelligent with themes */\n\n\tf = \"xl/theme/theme1.xml\";\n\tzip_add_file(zip, f, write_theme(wb.Themes, opts));\n\tct.themes.push(f);\n\tadd_rels(opts.wbrels, -1, \"theme/theme1.xml\", RELS.THEME);\n\n\t/* TODO: something more intelligent with styles */\n\n\tf = \"xl/styles.\" + wbext;\n\tzip_add_file(zip, f, write_sty(wb, f, opts));\n\tct.styles.push(f);\n\tadd_rels(opts.wbrels, -1, \"styles.\" + wbext, RELS.STY);\n\n\tif(wb.vbaraw && vbafmt) {\n\t\tf = \"xl/vbaProject.bin\";\n\t\tzip_add_file(zip, f, wb.vbaraw);\n\t\tct.vba.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"vbaProject.bin\", RELS.VBA);\n\t}\n\n\tzip_add_file(zip, \"[Content_Types].xml\", write_ct(ct, opts));\n\tzip_add_file(zip, '_rels/.rels', write_rels(opts.rels));\n\tzip_add_file(zip, 'xl/_rels/workbook.' + wbext + '.rels', write_rels(opts.wbrels));\n\n\tdelete opts.revssf; delete opts.ssf;\n\treturn zip;\n}\nfunction firstbyte(f,o) {\n\tvar x = \"\";\n\tswitch((o||{}).type || \"base64\") {\n\t\tcase 'buffer': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\n\t\tcase 'base64': x = Base64.decode(f.slice(0,12)); break;\n\t\tcase 'binary': x = f; break;\n\t\tcase 'array': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\n\t\tdefault: throw new Error(\"Unrecognized type \" + (o && o.type || \"undefined\"));\n\t}\n\treturn [x.charCodeAt(0), x.charCodeAt(1), x.charCodeAt(2), x.charCodeAt(3), x.charCodeAt(4), x.charCodeAt(5), x.charCodeAt(6), x.charCodeAt(7)];\n}\n\nfunction read_cfb(cfb, opts) {\n\tif(CFB.find(cfb, \"EncryptedPackage\")) return parse_xlsxcfb(cfb, opts);\n\treturn parse_xlscfb(cfb, opts);\n}\n\nfunction read_zip(data, opts) {\nvar zip, d = data;\n\tvar o = opts||{};\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tzip = zip_read(d, o);\n\treturn parse_zip(zip, o);\n}\n\nfunction read_plaintext(data, o) {\n\tvar i = 0;\n\tmain: while(i < data.length) switch(data.charCodeAt(i)) {\n\t\tcase 0x0A: case 0x0D: case 0x20: ++i; break;\n\t\tcase 0x3C: return parse_xlml(data.slice(i),o);\n\t\tdefault: break main;\n\t}\n\treturn PRN.to_workbook(data, o);\n}\n\nfunction read_plaintext_raw(data, o) {\n\tvar str = \"\", bytes = firstbyte(data, o);\n\tswitch(o.type) {\n\t\tcase 'base64': str = Base64.decode(data); break;\n\t\tcase 'binary': str = data; break;\n\t\tcase 'buffer': str = data.toString('binary'); break;\n\t\tcase 'array': str = cc2str(data); break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tif(bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) str = utf8read(str);\n\treturn read_plaintext(str, o);\n}\n\nfunction read_utf16(data, o) {\n\tvar d = data;\n\tif(o.type == 'base64') d = Base64.decode(d);\n\td = cptable.utils.decode(1200, d.slice(2), 'str');\n\to.type = \"binary\";\n\treturn read_plaintext(d, o);\n}\n\nfunction bstrify(data) {\n\treturn !data.match(/[^\\x00-\\x7F]/) ? data : utf8write(data);\n}\n\nfunction read_prn(data, d, o, str) {\n\tif(str) { o.type = \"string\"; return PRN.to_workbook(data, o); }\n\treturn PRN.to_workbook(d, o);\n}\n\nfunction readSync(data, opts) {\n\treset_cp();\n\tif(typeof ArrayBuffer !== 'undefined' && data instanceof ArrayBuffer) return readSync(new Uint8Array(data), opts);\n\tvar d = data, n = [0,0,0,0], str = false;\n\tvar o = opts||{};\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\t_ssfopts = {};\n\tif(o.dateNF) _ssfopts.dateNF = o.dateNF;\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tif(o.type == \"file\") { o.type = has_buf ? \"buffer\" : \"binary\"; d = read_binary(data); }\n\tif(o.type == \"string\") { str = true; o.type = \"binary\"; o.codepage = 65001; d = bstrify(data); }\n\tif(o.type == 'array' && typeof Uint8Array !== 'undefined' && data instanceof Uint8Array && typeof ArrayBuffer !== 'undefined') {\n\t\t// $FlowIgnore\n\t\tvar ab=new ArrayBuffer(3), vu=new Uint8Array(ab); vu.foo=\"bar\";\n\t\t// $FlowIgnore\n\t\tif(!vu.foo) {o=dup(o); o.type='array'; return readSync(ab2a(d), o);}\n\t}\n\tswitch((n = firstbyte(d, o))[0]) {\n\t\tcase 0xD0: if(n[1] === 0xCF && n[2] === 0x11 && n[3] === 0xE0 && n[4] === 0xA1 && n[5] === 0xB1 && n[6] === 0x1A && n[7] === 0xE1) return read_cfb(CFB.read(d, o), o); break;\n\t\tcase 0x09: if(n[1] <= 0x04) return parse_xlscfb(d, o); break;\n\t\tcase 0x3C: return parse_xlml(d, o);\n\t\tcase 0x49: if(n[1] === 0x44) return read_wb_ID(d, o); break;\n\t\tcase 0x54: if(n[1] === 0x41 && n[2] === 0x42 && n[3] === 0x4C) return DIF.to_workbook(d, o); break;\n\t\tcase 0x50: return (n[1] === 0x4B && n[2] < 0x09 && n[3] < 0x09) ? read_zip(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xEF: return n[3] === 0x3C ? parse_xlml(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xFF: if(n[1] === 0xFE) { return read_utf16(d, o); } break;\n\t\tcase 0x00: if(n[1] === 0x00 && n[2] >= 0x02 && n[3] === 0x00) return WK_.to_workbook(d, o); break;\n\t\tcase 0x03: case 0x83: case 0x8B: case 0x8C: return DBF.to_workbook(d, o);\n\t\tcase 0x7B: if(n[1] === 0x5C && n[2] === 0x72 && n[3] === 0x74) return RTF.to_workbook(d, o); break;\n\t\tcase 0x0A: case 0x0D: case 0x20: return read_plaintext_raw(d, o);\n\t}\n\tif(DBF.versions.indexOf(n[0]) > -1 && n[2] <= 12 && n[3] <= 31) return DBF.to_workbook(d, o);\n\treturn read_prn(data, d, o, str);\n}\n\nfunction readFileSync(filename, opts) {\n\tvar o = opts||{}; o.type = 'file';\n\treturn readSync(filename, o);\n}\nfunction write_cfb_ctr(cfb, o) {\n\tswitch(o.type) {\n\t\tcase \"base64\": case \"binary\": break;\n\t\tcase \"buffer\": case \"array\": o.type = \"\"; break;\n\t\tcase \"file\": return write_dl(o.file, CFB.write(cfb, {type:has_buf ? 'buffer' : \"\"}));\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\treturn CFB.write(cfb, o);\n}\n\nfunction write_zip_type(wb, opts) {\n\tvar o = opts||{};\n\tvar z = write_zip(wb, o);\n\tvar oopts = {};\n\tif(o.compression) oopts.compression = 'DEFLATE';\n\tif(o.password) oopts.type = has_buf ? \"nodebuffer\" : \"string\";\n\telse switch(o.type) {\n\t\tcase \"base64\": oopts.type = \"base64\"; break;\n\t\tcase \"binary\": oopts.type = \"string\"; break;\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tcase \"buffer\":\n\t\tcase \"file\": oopts.type = has_buf ? \"nodebuffer\" : \"string\"; break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tvar out = z.FullPaths ? CFB.write(z, {fileType:\"zip\", type: {\"nodebuffer\": \"buffer\", \"string\": \"binary\"}[oopts.type] || oopts.type}) : z.generate(oopts);\n/*jshint -W083 */\n\tif(o.password && typeof encrypt_agile !== 'undefined') return write_cfb_ctr(encrypt_agile(out, o.password), o); // eslint-disable-line no-undef\n/*jshint +W083 */\n\tif(o.type === \"file\") return write_dl(o.file, out);\n\treturn o.type == \"string\" ? utf8read(out) : out;\n}\n\nfunction write_cfb_type(wb, opts) {\n\tvar o = opts||{};\n\tvar cfb = write_xlscfb(wb, o);\n\treturn write_cfb_ctr(cfb, o);\n}\n\nfunction write_string_type(out, opts, bom) {\n\tif(!bom) bom = \"\";\n\tvar o = bom + out;\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64.encode(utf8write(o));\n\t\tcase \"binary\": return utf8write(o);\n\t\tcase \"string\": return out;\n\t\tcase \"file\": return write_dl(opts.file, o, 'utf8');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(o, 'utf8');\n\t\t\telse return write_string_type(o, {type:'binary'}).split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\nfunction write_stxt_type(out, opts) {\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64.encode(out);\n\t\tcase \"binary\": return out;\n\t\tcase \"string\": return out; /* override in sheet_to_txt */\n\t\tcase \"file\": return write_dl(opts.file, out, 'binary');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(out, 'binary');\n\t\t\telse return out.split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\n/* TODO: test consistency */\nfunction write_binary_type(out, opts) {\n\tswitch(opts.type) {\n\t\tcase \"string\":\n\t\tcase \"base64\":\n\t\tcase \"binary\":\n\t\t\tvar bstr = \"\";\n\t\t\t// $FlowIgnore\n\t\t\tfor(var i = 0; i < out.length; ++i) bstr += String.fromCharCode(out[i]);\n\t\t\treturn opts.type == 'base64' ? Base64.encode(bstr) : opts.type == 'string' ? utf8read(bstr) : bstr;\n\t\tcase \"file\": return write_dl(opts.file, out);\n\t\tcase \"buffer\": return out;\n\t\tdefault: throw new Error(\"Unrecognized type \" + opts.type);\n\t}\n}\n\nfunction writeSync(wb, opts) {\n\treset_cp();\n\tcheck_wb(wb);\n\tvar o = opts||{};\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\tif(o.type == \"array\") { o.type = \"binary\"; var out = (writeSync(wb, o)); o.type = \"array\"; return s2ab(out); }\n\tswitch(o.bookType || 'xlsb') {\n\t\tcase 'xml':\n\t\tcase 'xlml': return write_string_type(write_xlml(wb, o), o);\n\t\tcase 'slk':\n\t\tcase 'sylk': return write_string_type(write_slk_str(wb, o), o);\n\t\tcase 'htm':\n\t\tcase 'html': return write_string_type(write_htm_str(wb, o), o);\n\t\tcase 'txt': return write_stxt_type(write_txt_str(wb, o), o);\n\t\tcase 'csv': return write_string_type(write_csv_str(wb, o), o, \"\\ufeff\");\n\t\tcase 'dif': return write_string_type(write_dif_str(wb, o), o);\n\t\tcase 'dbf': return write_binary_type(write_dbf_buf(wb, o), o);\n\t\tcase 'prn': return write_string_type(write_prn_str(wb, o), o);\n\t\tcase 'rtf': return write_string_type(write_rtf_str(wb, o), o);\n\t\tcase 'eth': return write_string_type(write_eth_str(wb, o), o);\n\t\tcase 'fods': return write_string_type(write_ods(wb, o), o);\n\t\tcase 'biff2': if(!o.biff) o.biff = 2; /* falls through */\n\t\tcase 'biff3': if(!o.biff) o.biff = 3; /* falls through */\n\t\tcase 'biff4': if(!o.biff) o.biff = 4; return write_binary_type(write_biff_buf(wb, o), o);\n\t\tcase 'biff5': if(!o.biff) o.biff = 5; /* falls through */\n\t\tcase 'biff8':\n\t\tcase 'xla':\n\t\tcase 'xls': if(!o.biff) o.biff = 8; return write_cfb_type(wb, o);\n\t\tcase 'xlsx':\n\t\tcase 'xlsm':\n\t\tcase 'xlam':\n\t\tcase 'xlsb':\n\t\tcase 'ods': return write_zip_type(wb, o);\n\t\tdefault: throw new Error (\"Unrecognized bookType |\" + o.bookType + \"|\");\n\t}\n}\n\nfunction resolve_book_type(o) {\n\tif(o.bookType) return;\n\tvar _BT = {\n\t\t\"xls\": \"biff8\",\n\t\t\"htm\": \"html\",\n\t\t\"slk\": \"sylk\",\n\t\t\"socialcalc\": \"eth\",\n\t\t\"Sh33tJS\": \"WTF\"\n\t};\n\tvar ext = o.file.slice(o.file.lastIndexOf(\".\")).toLowerCase();\n\tif(ext.match(/^\\.[a-z]+$/)) o.bookType = ext.slice(1);\n\to.bookType = _BT[o.bookType] || o.bookType;\n}\n\nfunction writeFileSync(wb, filename, opts) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\treturn writeSync(wb, o);\n}\n\nfunction writeFileAsync(filename, wb, opts, cb) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\to.type = 'buffer';\n\tvar _cb = cb; if(!(_cb instanceof Function)) _cb = (opts);\n\treturn _fs.writeFile(filename, writeSync(wb, o), _cb);\n}\nfunction make_json_row(sheet, r, R, cols, header, hdr, dense, o) {\n\tvar rr = encode_row(R);\n\tvar defval = o.defval, raw = o.raw || !Object.prototype.hasOwnProperty.call(o, \"raw\");\n\tvar isempty = true;\n\tvar row = (header === 1) ? [] : {};\n\tif(header !== 1) {\n\t\tif(Object.defineProperty) try { Object.defineProperty(row, '__rowNum__', {value:R, enumerable:false}); } catch(e) { row.__rowNum__ = R; }\n\t\telse row.__rowNum__ = R;\n\t}\n\tif(!dense || sheet[R]) for (var C = r.s.c; C <= r.e.c; ++C) {\n\t\tvar val = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\tif(val === undefined || val.t === undefined) {\n\t\t\tif(defval === undefined) continue;\n\t\t\tif(hdr[C] != null) { row[hdr[C]] = defval; }\n\t\t\tcontinue;\n\t\t}\n\t\tvar v = val.v;\n\t\tswitch(val.t){\n\t\t\tcase 'z': if(v == null) break; continue;\n\t\t\tcase 'e': v = void 0; break;\n\t\t\tcase 's': case 'd': case 'b': case 'n': break;\n\t\t\tdefault: throw new Error('unrecognized type ' + val.t);\n\t\t}\n\t\tif(hdr[C] != null) {\n\t\t\tif(v == null) {\n\t\t\t\tif(defval !== undefined) row[hdr[C]] = defval;\n\t\t\t\telse if(raw && v === null) row[hdr[C]] = null;\n\t\t\t\telse continue;\n\t\t\t} else {\n\t\t\t\trow[hdr[C]] = raw || (o.rawNumbers && val.t == \"n\") ? v : format_cell(val,v,o);\n\t\t\t}\n\t\t\tif(v != null) isempty = false;\n\t\t}\n\t}\n\treturn { row: row, isempty: isempty };\n}\n\n\nfunction sheet_to_json(sheet, opts) {\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr = [], v=0, vv=\"\";\n\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\tvar o = opts || {};\n\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\tif(o.header === 1) header = 1;\n\telse if(o.header === \"A\") header = 2;\n\telse if(Array.isArray(o.header)) header = 3;\n\telse if(o.header == null) header = 0;\n\tswitch(typeof range) {\n\t\tcase 'string': r = safe_decode_range(range); break;\n\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\tdefault: r = range;\n\t}\n\tif(header > 0) offset = 0;\n\tvar rr = encode_row(r.s.r);\n\tvar cols = [];\n\tvar out = [];\n\tvar outi = 0, counter = 0;\n\tvar dense = Array.isArray(sheet);\n\tvar R = r.s.r, C = 0, CC = 0;\n\tif(dense && !sheet[R]) sheet[R] = [];\n\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\tcols[C] = encode_col(C);\n\t\tval = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\tswitch(header) {\n\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\tdefault:\n\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\tcounter = 0;\n\t\t\t\tfor(CC = 0; CC < hdr.length; ++CC) if(hdr[CC] == vv) vv = v + \"_\" + (++counter);\n\t\t\t\thdr[C] = vv;\n\t\t}\n\t}\n\tfor (R = r.s.r + offset; R <= r.e.r; ++R) {\n\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, dense, o);\n\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) out[outi++] = row.row;\n\t}\n\tout.length = outi;\n\treturn out;\n}\n\nvar qreg = /\"/g;\nfunction make_csv_row(sheet, r, R, cols, fs, rs, FS, o) {\n\tvar isempty = true;\n\tvar row = [], txt = \"\", rr = encode_row(R);\n\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\tif (!cols[C]) continue;\n\t\tvar val = o.dense ? (sheet[R]||[])[C]: sheet[cols[C] + rr];\n\t\tif(val == null) txt = \"\";\n\t\telse if(val.v != null) {\n\t\t\tisempty = false;\n\t\t\ttxt = ''+(o.rawNumbers && val.t == \"n\" ? val.v : format_cell(val, null, o));\n\t\t\tfor(var i = 0, cc = 0; i !== txt.length; ++i) if((cc = txt.charCodeAt(i)) === fs || cc === rs || cc === 34 || o.forceQuotes) {txt = \"\\\"\" + txt.replace(qreg, '\"\"') + \"\\\"\"; break; }\n\t\t\tif(txt == \"ID\") txt = '\"ID\"';\n\t\t} else if(val.f != null && !val.F) {\n\t\t\tisempty = false;\n\t\t\ttxt = '=' + val.f; if(txt.indexOf(\",\") >= 0) txt = '\"' + txt.replace(qreg, '\"\"') + '\"';\n\t\t} else txt = \"\";\n\t\t/* NOTE: Excel CSV does not support array formulae */\n\t\trow.push(txt);\n\t}\n\tif(o.blankrows === false && isempty) return null;\n\treturn row.join(FS);\n}\n\nfunction sheet_to_csv(sheet, opts) {\n\tvar out = [];\n\tvar o = opts == null ? {} : opts;\n\tif(sheet == null || sheet[\"!ref\"] == null) return \"\";\n\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\tvar endregex = new RegExp((FS==\"|\" ? \"\\\\|\" : FS)+\"+$\");\n\tvar row = \"\", cols = [];\n\to.dense = Array.isArray(sheet);\n\tvar colinfo = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\tif ((rowinfo[R]||{}).hidden) continue;\n\t\trow = make_csv_row(sheet, r, R, cols, fs, rs, FS, o);\n\t\tif(row == null) { continue; }\n\t\tif(o.strip) row = row.replace(endregex,\"\");\n\t\tout.push(row + RS);\n\t}\n\tdelete o.dense;\n\treturn out.join(\"\");\n}\n\nfunction sheet_to_txt(sheet, opts) {\n\tif(!opts) opts = {}; opts.FS = \"\\t\"; opts.RS = \"\\n\";\n\tvar s = sheet_to_csv(sheet, opts);\n\tif(typeof cptable == 'undefined' || opts.type == 'string') return s;\n\tvar o = cptable.utils.encode(1200, s, 'str');\n\treturn String.fromCharCode(255) + String.fromCharCode(254) + o;\n}\n\nfunction sheet_to_formulae(sheet) {\n\tvar y = \"\", x, val=\"\";\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar r = safe_decode_range(sheet['!ref']), rr = \"\", cols = [], C;\n\tvar cmds = [];\n\tvar dense = Array.isArray(sheet);\n\tfor(C = r.s.c; C <= r.e.c; ++C) cols[C] = encode_col(C);\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\ty = cols[C] + rr;\n\t\t\tx = dense ? (sheet[R]||[])[C] : sheet[y];\n\t\t\tval = \"\";\n\t\t\tif(x === undefined) continue;\n\t\t\telse if(x.F != null) {\n\t\t\t\ty = x.F;\n\t\t\t\tif(!x.f) continue;\n\t\t\t\tval = x.f;\n\t\t\t\tif(y.indexOf(\":\") == -1) y = y + \":\" + y;\n\t\t\t}\n\t\t\tif(x.f != null) val = x.f;\n\t\t\telse if(x.t == 'z') continue;\n\t\t\telse if(x.t == 'n' && x.v != null) val = \"\" + x.v;\n\t\t\telse if(x.t == 'b') val = x.v ? \"TRUE\" : \"FALSE\";\n\t\t\telse if(x.w !== undefined) val = \"'\" + x.w;\n\t\t\telse if(x.v === undefined) continue;\n\t\t\telse if(x.t == 's') val = \"'\" + x.v;\n\t\t\telse val = \"\"+x.v;\n\t\t\tcmds[cmds.length] = y + \"=\" + val;\n\t\t}\n\t}\n\treturn cmds;\n}\n\nfunction sheet_add_json(_ws, js, opts) {\n\tvar o = opts || {};\n\tvar offset = +!o.skipHeader;\n\tvar ws = _ws || ({});\n\tvar _R = 0, _C = 0;\n\tif(ws && o.origin != null) {\n\t\tif(typeof o.origin == 'number') _R = o.origin;\n\t\telse {\n\t\t\tvar _origin = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\n\t\t\t_R = _origin.r; _C = _origin.c;\n\t\t}\n\t}\n\tvar cell;\n\tvar range = ({s: {c:0, r:0}, e: {c:_C, r:_R + js.length - 1 + offset}});\n\tif(ws['!ref']) {\n\t\tvar _range = safe_decode_range(ws['!ref']);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\tif(_R == -1) { _R = _range.e.r + 1; range.e.r = _R + js.length - 1 + offset; }\n\t} else {\n\t\tif(_R == -1) { _R = 0; range.e.r = js.length - 1 + offset; }\n\t}\n\tvar hdr = o.header || [], C = 0;\n\n\tjs.forEach(function (JS, R) {\n\t\tkeys(JS).forEach(function(k) {\n\t\t\tif((C=hdr.indexOf(k)) == -1) hdr[C=hdr.length] = k;\n\t\t\tvar v = JS[k];\n\t\t\tvar t = 'z';\n\t\t\tvar z = \"\";\n\t\t\tvar ref = encode_cell({c:_C + C,r:_R + R + offset});\n\t\t\tcell = utils.sheet_get_cell(ws, ref);\n\t\t\tif(v && typeof v === 'object' && !(v instanceof Date)){\n\t\t\t\tws[ref] = v;\n\t\t\t} else {\n\t\t\t\tif(typeof v == 'number') t = 'n';\n\t\t\t\telse if(typeof v == 'boolean') t = 'b';\n\t\t\t\telse if(typeof v == 'string') t = 's';\n\t\t\t\telse if(v instanceof Date) {\n\t\t\t\t\tt = 'd';\n\t\t\t\t\tif(!o.cellDates) { t = 'n'; v = datenum(v); }\n\t\t\t\t\tz = (o.dateNF || SSF._table[14]);\n\t\t\t\t}\n\t\t\t\tif(!cell) ws[ref] = cell = ({t:t, v:v});\n\t\t\t\telse {\n\t\t\t\t\tcell.t = t; cell.v = v;\n\t\t\t\t\tdelete cell.w; delete cell.R;\n\t\t\t\t\tif(z) cell.z = z;\n\t\t\t\t}\n\t\t\t\tif(z) cell.z = z;\n\t\t\t}\n\t\t});\n\t});\n\trange.e.c = Math.max(range.e.c, _C + hdr.length - 1);\n\tvar __R = encode_row(_R);\n\tif(offset) for(C = 0; C < hdr.length; ++C) ws[encode_col(C + _C) + __R] = {t:'s', v:hdr[C]};\n\tws['!ref'] = encode_range(range);\n\treturn ws;\n}\nfunction json_to_sheet(js, opts) { return sheet_add_json(null, js, opts); }\n\nvar utils = {\n\tencode_col: encode_col,\n\tencode_row: encode_row,\n\tencode_cell: encode_cell,\n\tencode_range: encode_range,\n\tdecode_col: decode_col,\n\tdecode_row: decode_row,\n\tsplit_cell: split_cell,\n\tdecode_cell: decode_cell,\n\tdecode_range: decode_range,\n\tformat_cell: format_cell,\n\tget_formulae: sheet_to_formulae,\n\tmake_csv: sheet_to_csv,\n\tmake_json: sheet_to_json,\n\tmake_formulae: sheet_to_formulae,\n\tsheet_add_aoa: sheet_add_aoa,\n\tsheet_add_json: sheet_add_json,\n\tsheet_add_dom: sheet_add_dom,\n\taoa_to_sheet: aoa_to_sheet,\n\tjson_to_sheet: json_to_sheet,\n\ttable_to_sheet: parse_dom_table,\n\ttable_to_book: table_to_book,\n\tsheet_to_csv: sheet_to_csv,\n\tsheet_to_txt: sheet_to_txt,\n\tsheet_to_json: sheet_to_json,\n\tsheet_to_html: HTML_.from_sheet,\n\tsheet_to_formulae: sheet_to_formulae,\n\tsheet_to_row_object_array: sheet_to_json\n};\n\n(function(utils) {\nutils.consts = utils.consts || {};\nfunction add_consts(R/*Array*/) { R.forEach(function(a){ utils.consts[a[0]] = a[1]; }); }\n\nfunction get_default(x, y, z) { return x[y] != null ? x[y] : (x[y] = z); }\n\n/* get cell, creating a stub if necessary */\nfunction ws_get_cell_stub(ws, R, C) {\n\t/* A1 cell address */\n\tif(typeof R == \"string\") {\n\t\t/* dense */\n\t\tif(Array.isArray(ws)) {\n\t\t\tvar RC = decode_cell(R);\n\t\t\tif(!ws[RC.r]) ws[RC.r] = [];\n\t\t\treturn ws[RC.r][RC.c] || (ws[RC.r][RC.c] = {t:'z'});\n\t\t}\n\t\treturn ws[R] || (ws[R] = {t:'z'});\n\t}\n\t/* cell address object */\n\tif(typeof R != \"number\") return ws_get_cell_stub(ws, encode_cell(R));\n\t/* R and C are 0-based indices */\n\treturn ws_get_cell_stub(ws, encode_cell({r:R,c:C||0}));\n}\nutils.sheet_get_cell = ws_get_cell_stub;\n\n/* find sheet index for given name / validate index */\nfunction wb_sheet_idx(wb, sh) {\n\tif(typeof sh == \"number\") {\n\t\tif(sh >= 0 && wb.SheetNames.length > sh) return sh;\n\t\tthrow new Error(\"Cannot find sheet # \" + sh);\n\t} else if(typeof sh == \"string\") {\n\t\tvar idx = wb.SheetNames.indexOf(sh);\n\t\tif(idx > -1) return idx;\n\t\tthrow new Error(\"Cannot find sheet name |\" + sh + \"|\");\n\t} else throw new Error(\"Cannot find sheet |\" + sh + \"|\");\n}\n\n/* simple blank workbook object */\nutils.book_new = function() {\n\treturn { SheetNames: [], Sheets: {} };\n};\n\n/* add a worksheet to the end of a given workbook */\nutils.book_append_sheet = function(wb, ws, name) {\n\tif(!name) for(var i = 1; i <= 0xFFFF; ++i, name = undefined) if(wb.SheetNames.indexOf(name = \"Sheet\" + i) == -1) break;\n\tif(!name || wb.SheetNames.length >= 0xFFFF) throw new Error(\"Too many worksheets\");\n\tcheck_ws_name(name);\n\tif(wb.SheetNames.indexOf(name) >= 0) throw new Error(\"Worksheet with name |\" + name + \"| already exists!\");\n\n\twb.SheetNames.push(name);\n\twb.Sheets[name] = ws;\n};\n\n/* set sheet visibility (visible/hidden/very hidden) */\nutils.book_set_sheet_visibility = function(wb, sh, vis) {\n\tget_default(wb,\"Workbook\",{});\n\tget_default(wb.Workbook,\"Sheets\",[]);\n\n\tvar idx = wb_sheet_idx(wb, sh);\n\t// $FlowIgnore\n\tget_default(wb.Workbook.Sheets,idx, {});\n\n\tswitch(vis) {\n\t\tcase 0: case 1: case 2: break;\n\t\tdefault: throw new Error(\"Bad sheet visibility setting \" + vis);\n\t}\n\t// $FlowIgnore\n\twb.Workbook.Sheets[idx].Hidden = vis;\n};\nadd_consts([\n\t[\"SHEET_VISIBLE\", 0],\n\t[\"SHEET_HIDDEN\", 1],\n\t[\"SHEET_VERY_HIDDEN\", 2]\n]);\n\n/* set number format */\nutils.cell_set_number_format = function(cell, fmt) {\n\tcell.z = fmt;\n\treturn cell;\n};\n\n/* set cell hyperlink */\nutils.cell_set_hyperlink = function(cell, target, tooltip) {\n\tif(!target) {\n\t\tdelete cell.l;\n\t} else {\n\t\tcell.l = ({ Target: target });\n\t\tif(tooltip) cell.l.Tooltip = tooltip;\n\t}\n\treturn cell;\n};\nutils.cell_set_internal_link = function(cell, range, tooltip) { return utils.cell_set_hyperlink(cell, \"#\" + range, tooltip); };\n\n/* add to cell comments */\nutils.cell_add_comment = function(cell, text, author) {\n\tif(!cell.c) cell.c = [];\n\tcell.c.push({t:text, a:author||\"SheetJS\"});\n};\n\n/* set array formula and flush related cells */\nutils.sheet_set_array_formula = function(ws, range, formula) {\n\tvar rng = typeof range != \"string\" ? range : safe_decode_range(range);\n\tvar rngstr = typeof range == \"string\" ? range : encode_range(range);\n\tfor(var R = rng.s.r; R <= rng.e.r; ++R) for(var C = rng.s.c; C <= rng.e.c; ++C) {\n\t\tvar cell = ws_get_cell_stub(ws, R, C);\n\t\tcell.t = 'n';\n\t\tcell.F = rngstr;\n\t\tdelete cell.v;\n\t\tif(R == rng.s.r && C == rng.s.c) cell.f = formula;\n\t}\n\treturn ws;\n};\n\nreturn utils;\n})(utils);\n\nif(has_buf && typeof require != 'undefined') (function() {\n\tvar Readable = require('stream').Readable;\n\n\tvar write_csv_stream = function(sheet, opts) {\n\t\tvar stream = Readable();\n\t\tvar o = opts == null ? {} : opts;\n\t\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\t\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\t\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\t\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\t\tvar endregex = new RegExp((FS==\"|\" ? \"\\\\|\" : FS)+\"+$\");\n\t\tvar row = \"\", cols = [];\n\t\to.dense = Array.isArray(sheet);\n\t\tvar colinfo = o.skipHidden && sheet[\"!cols\"] || [];\n\t\tvar rowinfo = o.skipHidden && sheet[\"!rows\"] || [];\n\t\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\t\tvar R = r.s.r;\n\t\tvar BOM = false;\n\t\tstream._read = function() {\n\t\t\tif(!BOM) { BOM = true; return stream.push(\"\\uFEFF\"); }\n\t\t\twhile(R <= r.e.r) {\n\t\t\t\t++R;\n\t\t\t\tif ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\t\trow = make_csv_row(sheet, r, R-1, cols, fs, rs, FS, o);\n\t\t\t\tif(row != null) {\n\t\t\t\t\tif(o.strip) row = row.replace(endregex,\"\");\n\t\t\t\t\tstream.push(row + RS);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(R > r.e.r) return stream.push(null);\n\t\t};\n\t\treturn stream;\n\t};\n\n\tvar write_html_stream = function(ws, opts) {\n\t\tvar stream = Readable();\n\n\t\tvar o = opts || {};\n\t\tvar header = o.header != null ? o.header : HTML_.BEGIN;\n\t\tvar footer = o.footer != null ? o.footer : HTML_.END;\n\t\tstream.push(header);\n\t\tvar r = decode_range(ws['!ref']);\n\t\to.dense = Array.isArray(ws);\n\t\tstream.push(HTML_._preamble(ws, r, o));\n\t\tvar R = r.s.r;\n\t\tvar end = false;\n\t\tstream._read = function() {\n\t\t\tif(R > r.e.r) {\n\t\t\t\tif(!end) { end = true; stream.push(\"\" + footer); }\n\t\t\t\treturn stream.push(null);\n\t\t\t}\n\t\t\twhile(R <= r.e.r) {\n\t\t\t\tstream.push(HTML_._row(ws, r, R, o));\n\t\t\t\t++R;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t};\n\t\treturn stream;\n\t};\n\n\tvar write_json_stream = function(sheet, opts) {\n\t\tvar stream = Readable({objectMode:true});\n\n\t\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\t\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr = [], v=0, vv=\"\";\n\t\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\tvar o = opts || {};\n\t\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\t\tif(o.header === 1) header = 1;\n\t\telse if(o.header === \"A\") header = 2;\n\t\telse if(Array.isArray(o.header)) header = 3;\n\t\tswitch(typeof range) {\n\t\t\tcase 'string': r = safe_decode_range(range); break;\n\t\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\t\tdefault: r = range;\n\t\t}\n\t\tif(header > 0) offset = 0;\n\t\tvar rr = encode_row(r.s.r);\n\t\tvar cols = [];\n\t\tvar counter = 0;\n\t\tvar dense = Array.isArray(sheet);\n\t\tvar R = r.s.r, C = 0, CC = 0;\n\t\tif(dense && !sheet[R]) sheet[R] = [];\n\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\tcols[C] = encode_col(C);\n\t\t\tval = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\t\tswitch(header) {\n\t\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\t\tdefault:\n\t\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\t\tcounter = 0;\n\t\t\t\t\tfor(CC = 0; CC < hdr.length; ++CC) if(hdr[CC] == vv) vv = v + \"_\" + (++counter);\n\t\t\t\t\thdr[C] = vv;\n\t\t\t}\n\t\t}\n\t\tR = r.s.r + offset;\n\t\tstream._read = function() {\n\t\t\tif(R > r.e.r) return stream.push(null);\n\t\t\twhile(R <= r.e.r) {\n\t\t\t\t//if ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, dense, o);\n\t\t\t\t++R;\n\t\t\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) {\n\t\t\t\t\tstream.push(row.row);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\treturn stream;\n\t};\n\n\tXLSX.stream = {\n\t\tto_json: write_json_stream,\n\t\tto_html: write_html_stream,\n\t\tto_csv: write_csv_stream\n\t};\n})();\n\nif(typeof parse_xlscfb !== \"undefined\") XLSX.parse_xlscfb = parse_xlscfb;\nXLSX.parse_zip = parse_zip;\nXLSX.read = readSync; //xlsread\nXLSX.readFile = readFileSync; //readFile\nXLSX.readFileSync = readFileSync;\nXLSX.write = writeSync;\nXLSX.writeFile = writeFileSync;\nXLSX.writeFileSync = writeFileSync;\nXLSX.writeFileAsync = writeFileAsync;\nXLSX.utils = utils;\nXLSX.SSF = SSF;\nif(typeof CFB !== \"undefined\") XLSX.CFB = CFB;\n}\n/*global define */\nif(typeof exports !== 'undefined') make_xlsx_lib(exports);\nelse if(typeof module !== 'undefined' && module.exports) make_xlsx_lib(module.exports);\nelse if(typeof define === 'function' && define.amd) define(function() { if(!XLSX.version) make_xlsx_lib(XLSX); return XLSX; });\nelse make_xlsx_lib(XLSX);\n/*exported XLS, ODS */\nvar XLS = XLSX, ODS = XLSX;\n","import Transformable, { TRANSFORMABLE_PROPS } from './core/Transformable.js';\nimport Animator, { cloneValue } from './animation/Animator.js';\nimport BoundingRect from './core/BoundingRect.js';\nimport Eventful from './core/Eventful.js';\nimport { calculateTextPosition, parsePercent } from './contain/text.js';\nimport { guid, isObject, keys, extend, indexOf, logError, mixin, isArrayLike, isTypedArray, isGradientObject, filter, reduce } from './core/util.js';\nimport { LIGHT_LABEL_COLOR, DARK_LABEL_COLOR } from './config.js';\nimport { parse, stringify } from './tool/color.js';\nimport { REDRAW_BIT } from './graphic/constants.js';\nexport var PRESERVED_NORMAL_STATE = '__zr_normal__';\nvar PRIMARY_STATES_KEYS = TRANSFORMABLE_PROPS.concat(['ignore']);\nvar DEFAULT_ANIMATABLE_MAP = reduce(TRANSFORMABLE_PROPS, function (obj, key) {\n obj[key] = true;\n return obj;\n}, { ignore: false });\nvar tmpTextPosCalcRes = {};\nvar tmpBoundingRect = new BoundingRect(0, 0, 0, 0);\nvar Element = (function () {\n function Element(props) {\n this.id = guid();\n this.animators = [];\n this.currentStates = [];\n this.states = {};\n this._init(props);\n }\n Element.prototype._init = function (props) {\n this.attr(props);\n };\n Element.prototype.drift = function (dx, dy, e) {\n switch (this.draggable) {\n case 'horizontal':\n dy = 0;\n break;\n case 'vertical':\n dx = 0;\n break;\n }\n var m = this.transform;\n if (!m) {\n m = this.transform = [1, 0, 0, 1, 0, 0];\n }\n m[4] += dx;\n m[5] += dy;\n this.decomposeTransform();\n this.markRedraw();\n };\n Element.prototype.beforeUpdate = function () { };\n Element.prototype.afterUpdate = function () { };\n Element.prototype.update = function () {\n this.updateTransform();\n if (this.__dirty) {\n this.updateInnerText();\n }\n };\n Element.prototype.updateInnerText = function (forceUpdate) {\n var textEl = this._textContent;\n if (textEl && (!textEl.ignore || forceUpdate)) {\n if (!this.textConfig) {\n this.textConfig = {};\n }\n var textConfig = this.textConfig;\n var isLocal = textConfig.local;\n var innerTransformable = textEl.innerTransformable;\n var textAlign = void 0;\n var textVerticalAlign = void 0;\n var textStyleChanged = false;\n innerTransformable.parent = isLocal ? this : null;\n var innerOrigin = false;\n innerTransformable.copyTransform(textEl);\n if (textConfig.position != null) {\n var layoutRect = tmpBoundingRect;\n if (textConfig.layoutRect) {\n layoutRect.copy(textConfig.layoutRect);\n }\n else {\n layoutRect.copy(this.getBoundingRect());\n }\n if (!isLocal) {\n layoutRect.applyTransform(this.transform);\n }\n if (this.calculateTextPosition) {\n this.calculateTextPosition(tmpTextPosCalcRes, textConfig, layoutRect);\n }\n else {\n calculateTextPosition(tmpTextPosCalcRes, textConfig, layoutRect);\n }\n innerTransformable.x = tmpTextPosCalcRes.x;\n innerTransformable.y = tmpTextPosCalcRes.y;\n textAlign = tmpTextPosCalcRes.align;\n textVerticalAlign = tmpTextPosCalcRes.verticalAlign;\n var textOrigin = textConfig.origin;\n if (textOrigin && textConfig.rotation != null) {\n var relOriginX = void 0;\n var relOriginY = void 0;\n if (textOrigin === 'center') {\n relOriginX = layoutRect.width * 0.5;\n relOriginY = layoutRect.height * 0.5;\n }\n else {\n relOriginX = parsePercent(textOrigin[0], layoutRect.width);\n relOriginY = parsePercent(textOrigin[1], layoutRect.height);\n }\n innerOrigin = true;\n innerTransformable.originX = -innerTransformable.x + relOriginX + (isLocal ? 0 : layoutRect.x);\n innerTransformable.originY = -innerTransformable.y + relOriginY + (isLocal ? 0 : layoutRect.y);\n }\n }\n if (textConfig.rotation != null) {\n innerTransformable.rotation = textConfig.rotation;\n }\n var textOffset = textConfig.offset;\n if (textOffset) {\n innerTransformable.x += textOffset[0];\n innerTransformable.y += textOffset[1];\n if (!innerOrigin) {\n innerTransformable.originX = -textOffset[0];\n innerTransformable.originY = -textOffset[1];\n }\n }\n var isInside = textConfig.inside == null\n ? (typeof textConfig.position === 'string' && textConfig.position.indexOf('inside') >= 0)\n : textConfig.inside;\n var innerTextDefaultStyle = this._innerTextDefaultStyle || (this._innerTextDefaultStyle = {});\n var textFill = void 0;\n var textStroke = void 0;\n var autoStroke = void 0;\n if (isInside && this.canBeInsideText()) {\n textFill = textConfig.insideFill;\n textStroke = textConfig.insideStroke;\n if (textFill == null || textFill === 'auto') {\n textFill = this.getInsideTextFill();\n }\n if (textStroke == null || textStroke === 'auto') {\n textStroke = this.getInsideTextStroke(textFill);\n autoStroke = true;\n }\n }\n else {\n textFill = textConfig.outsideFill;\n textStroke = textConfig.outsideStroke;\n if (textFill == null || textFill === 'auto') {\n textFill = this.getOutsideFill();\n }\n if (textStroke == null || textStroke === 'auto') {\n textStroke = this.getOutsideStroke(textFill);\n autoStroke = true;\n }\n }\n textFill = textFill || '#000';\n if (textFill !== innerTextDefaultStyle.fill\n || textStroke !== innerTextDefaultStyle.stroke\n || autoStroke !== innerTextDefaultStyle.autoStroke\n || textAlign !== innerTextDefaultStyle.align\n || textVerticalAlign !== innerTextDefaultStyle.verticalAlign) {\n textStyleChanged = true;\n innerTextDefaultStyle.fill = textFill;\n innerTextDefaultStyle.stroke = textStroke;\n innerTextDefaultStyle.autoStroke = autoStroke;\n innerTextDefaultStyle.align = textAlign;\n innerTextDefaultStyle.verticalAlign = textVerticalAlign;\n textEl.setDefaultTextStyle(innerTextDefaultStyle);\n }\n textEl.__dirty |= REDRAW_BIT;\n if (textStyleChanged) {\n textEl.dirtyStyle(true);\n }\n }\n };\n Element.prototype.canBeInsideText = function () {\n return true;\n };\n Element.prototype.getInsideTextFill = function () {\n return '#fff';\n };\n Element.prototype.getInsideTextStroke = function (textFill) {\n return '#000';\n };\n Element.prototype.getOutsideFill = function () {\n return this.__zr && this.__zr.isDarkMode() ? LIGHT_LABEL_COLOR : DARK_LABEL_COLOR;\n };\n Element.prototype.getOutsideStroke = function (textFill) {\n var backgroundColor = this.__zr && this.__zr.getBackgroundColor();\n var colorArr = typeof backgroundColor === 'string' && parse(backgroundColor);\n if (!colorArr) {\n colorArr = [255, 255, 255, 1];\n }\n var alpha = colorArr[3];\n var isDark = this.__zr.isDarkMode();\n for (var i = 0; i < 3; i++) {\n colorArr[i] = colorArr[i] * alpha + (isDark ? 0 : 255) * (1 - alpha);\n }\n colorArr[3] = 1;\n return stringify(colorArr, 'rgba');\n };\n Element.prototype.traverse = function (cb, context) { };\n Element.prototype.attrKV = function (key, value) {\n if (key === 'textConfig') {\n this.setTextConfig(value);\n }\n else if (key === 'textContent') {\n this.setTextContent(value);\n }\n else if (key === 'clipPath') {\n this.setClipPath(value);\n }\n else if (key === 'extra') {\n this.extra = this.extra || {};\n extend(this.extra, value);\n }\n else {\n this[key] = value;\n }\n };\n Element.prototype.hide = function () {\n this.ignore = true;\n this.markRedraw();\n };\n Element.prototype.show = function () {\n this.ignore = false;\n this.markRedraw();\n };\n Element.prototype.attr = function (keyOrObj, value) {\n if (typeof keyOrObj === 'string') {\n this.attrKV(keyOrObj, value);\n }\n else if (isObject(keyOrObj)) {\n var obj = keyOrObj;\n var keysArr = keys(obj);\n for (var i = 0; i < keysArr.length; i++) {\n var key = keysArr[i];\n this.attrKV(key, keyOrObj[key]);\n }\n }\n this.markRedraw();\n return this;\n };\n Element.prototype.saveCurrentToNormalState = function (toState) {\n this._innerSaveToNormal(toState);\n var normalState = this._normalState;\n for (var i = 0; i < this.animators.length; i++) {\n var animator = this.animators[i];\n var fromStateTransition = animator.__fromStateTransition;\n if (animator.getLoop() || fromStateTransition && fromStateTransition !== PRESERVED_NORMAL_STATE) {\n continue;\n }\n var targetName = animator.targetName;\n var target = targetName\n ? normalState[targetName] : normalState;\n animator.saveTo(target);\n }\n };\n Element.prototype._innerSaveToNormal = function (toState) {\n var normalState = this._normalState;\n if (!normalState) {\n normalState = this._normalState = {};\n }\n if (toState.textConfig && !normalState.textConfig) {\n normalState.textConfig = this.textConfig;\n }\n this._savePrimaryToNormal(toState, normalState, PRIMARY_STATES_KEYS);\n };\n Element.prototype._savePrimaryToNormal = function (toState, normalState, primaryKeys) {\n for (var i = 0; i < primaryKeys.length; i++) {\n var key = primaryKeys[i];\n if (toState[key] != null && !(key in normalState)) {\n normalState[key] = this[key];\n }\n }\n };\n Element.prototype.hasState = function () {\n return this.currentStates.length > 0;\n };\n Element.prototype.getState = function (name) {\n return this.states[name];\n };\n Element.prototype.ensureState = function (name) {\n var states = this.states;\n if (!states[name]) {\n states[name] = {};\n }\n return states[name];\n };\n Element.prototype.clearStates = function (noAnimation) {\n this.useState(PRESERVED_NORMAL_STATE, false, noAnimation);\n };\n Element.prototype.useState = function (stateName, keepCurrentStates, noAnimation, forceUseHoverLayer) {\n var toNormalState = stateName === PRESERVED_NORMAL_STATE;\n var hasStates = this.hasState();\n if (!hasStates && toNormalState) {\n return;\n }\n var currentStates = this.currentStates;\n var animationCfg = this.stateTransition;\n if (indexOf(currentStates, stateName) >= 0 && (keepCurrentStates || currentStates.length === 1)) {\n return;\n }\n var state;\n if (this.stateProxy && !toNormalState) {\n state = this.stateProxy(stateName);\n }\n if (!state) {\n state = (this.states && this.states[stateName]);\n }\n if (!state && !toNormalState) {\n logError(\"State \" + stateName + \" not exists.\");\n return;\n }\n if (!toNormalState) {\n this.saveCurrentToNormalState(state);\n }\n var useHoverLayer = !!((state && state.hoverLayer) || forceUseHoverLayer);\n if (useHoverLayer) {\n this._toggleHoverLayerFlag(true);\n }\n this._applyStateObj(stateName, state, this._normalState, keepCurrentStates, !noAnimation && !this.__inHover && animationCfg && animationCfg.duration > 0, animationCfg);\n var textContent = this._textContent;\n var textGuide = this._textGuide;\n if (textContent) {\n textContent.useState(stateName, keepCurrentStates, noAnimation, useHoverLayer);\n }\n if (textGuide) {\n textGuide.useState(stateName, keepCurrentStates, noAnimation, useHoverLayer);\n }\n if (toNormalState) {\n this.currentStates = [];\n this._normalState = {};\n }\n else {\n if (!keepCurrentStates) {\n this.currentStates = [stateName];\n }\n else {\n this.currentStates.push(stateName);\n }\n }\n this._updateAnimationTargets();\n this.markRedraw();\n if (!useHoverLayer && this.__inHover) {\n this._toggleHoverLayerFlag(false);\n this.__dirty &= ~REDRAW_BIT;\n }\n return state;\n };\n Element.prototype.useStates = function (states, noAnimation, forceUseHoverLayer) {\n if (!states.length) {\n this.clearStates();\n }\n else {\n var stateObjects = [];\n var currentStates = this.currentStates;\n var len = states.length;\n var notChange = len === currentStates.length;\n if (notChange) {\n for (var i = 0; i < len; i++) {\n if (states[i] !== currentStates[i]) {\n notChange = false;\n break;\n }\n }\n }\n if (notChange) {\n return;\n }\n for (var i = 0; i < len; i++) {\n var stateName = states[i];\n var stateObj = void 0;\n if (this.stateProxy) {\n stateObj = this.stateProxy(stateName, states);\n }\n if (!stateObj) {\n stateObj = this.states[stateName];\n }\n if (stateObj) {\n stateObjects.push(stateObj);\n }\n }\n var lastStateObj = stateObjects[len - 1];\n var useHoverLayer = !!((lastStateObj && lastStateObj.hoverLayer) || forceUseHoverLayer);\n if (useHoverLayer) {\n this._toggleHoverLayerFlag(true);\n }\n var mergedState = this._mergeStates(stateObjects);\n var animationCfg = this.stateTransition;\n this.saveCurrentToNormalState(mergedState);\n this._applyStateObj(states.join(','), mergedState, this._normalState, false, !noAnimation && !this.__inHover && animationCfg && animationCfg.duration > 0, animationCfg);\n var textContent = this._textContent;\n var textGuide = this._textGuide;\n if (textContent) {\n textContent.useStates(states, noAnimation, useHoverLayer);\n }\n if (textGuide) {\n textGuide.useStates(states, noAnimation, useHoverLayer);\n }\n this._updateAnimationTargets();\n this.currentStates = states.slice();\n this.markRedraw();\n if (!useHoverLayer && this.__inHover) {\n this._toggleHoverLayerFlag(false);\n this.__dirty &= ~REDRAW_BIT;\n }\n }\n };\n Element.prototype._updateAnimationTargets = function () {\n for (var i = 0; i < this.animators.length; i++) {\n var animator = this.animators[i];\n if (animator.targetName) {\n animator.changeTarget(this[animator.targetName]);\n }\n }\n };\n Element.prototype.removeState = function (state) {\n var idx = indexOf(this.currentStates, state);\n if (idx >= 0) {\n var currentStates = this.currentStates.slice();\n currentStates.splice(idx, 1);\n this.useStates(currentStates);\n }\n };\n Element.prototype.replaceState = function (oldState, newState, forceAdd) {\n var currentStates = this.currentStates.slice();\n var idx = indexOf(currentStates, oldState);\n var newStateExists = indexOf(currentStates, newState) >= 0;\n if (idx >= 0) {\n if (!newStateExists) {\n currentStates[idx] = newState;\n }\n else {\n currentStates.splice(idx, 1);\n }\n }\n else if (forceAdd && !newStateExists) {\n currentStates.push(newState);\n }\n this.useStates(currentStates);\n };\n Element.prototype.toggleState = function (state, enable) {\n if (enable) {\n this.useState(state, true);\n }\n else {\n this.removeState(state);\n }\n };\n Element.prototype._mergeStates = function (states) {\n var mergedState = {};\n var mergedTextConfig;\n for (var i = 0; i < states.length; i++) {\n var state = states[i];\n extend(mergedState, state);\n if (state.textConfig) {\n mergedTextConfig = mergedTextConfig || {};\n extend(mergedTextConfig, state.textConfig);\n }\n }\n if (mergedTextConfig) {\n mergedState.textConfig = mergedTextConfig;\n }\n return mergedState;\n };\n Element.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\n var needsRestoreToNormal = !(state && keepCurrentStates);\n if (state && state.textConfig) {\n this.textConfig = extend({}, keepCurrentStates ? this.textConfig : normalState.textConfig);\n extend(this.textConfig, state.textConfig);\n }\n else if (needsRestoreToNormal) {\n if (normalState.textConfig) {\n this.textConfig = normalState.textConfig;\n }\n }\n var transitionTarget = {};\n var hasTransition = false;\n for (var i = 0; i < PRIMARY_STATES_KEYS.length; i++) {\n var key = PRIMARY_STATES_KEYS[i];\n var propNeedsTransition = transition && DEFAULT_ANIMATABLE_MAP[key];\n if (state && state[key] != null) {\n if (propNeedsTransition) {\n hasTransition = true;\n transitionTarget[key] = state[key];\n }\n else {\n this[key] = state[key];\n }\n }\n else if (needsRestoreToNormal) {\n if (normalState[key] != null) {\n if (propNeedsTransition) {\n hasTransition = true;\n transitionTarget[key] = normalState[key];\n }\n else {\n this[key] = normalState[key];\n }\n }\n }\n }\n if (!transition) {\n for (var i = 0; i < this.animators.length; i++) {\n var animator = this.animators[i];\n var targetName = animator.targetName;\n if (!animator.getLoop()) {\n animator.__changeFinalValue(targetName\n ? (state || normalState)[targetName]\n : (state || normalState));\n }\n }\n }\n if (hasTransition) {\n this._transitionState(stateName, transitionTarget, animationCfg);\n }\n };\n Element.prototype._attachComponent = function (componentEl) {\n if (componentEl.__zr && !componentEl.__hostTarget) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error('Text element has been added to zrender.');\n }\n return;\n }\n if (componentEl === this) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error('Recursive component attachment.');\n }\n return;\n }\n var zr = this.__zr;\n if (zr) {\n componentEl.addSelfToZr(zr);\n }\n componentEl.__zr = zr;\n componentEl.__hostTarget = this;\n };\n Element.prototype._detachComponent = function (componentEl) {\n if (componentEl.__zr) {\n componentEl.removeSelfFromZr(componentEl.__zr);\n }\n componentEl.__zr = null;\n componentEl.__hostTarget = null;\n };\n Element.prototype.getClipPath = function () {\n return this._clipPath;\n };\n Element.prototype.setClipPath = function (clipPath) {\n if (this._clipPath && this._clipPath !== clipPath) {\n this.removeClipPath();\n }\n this._attachComponent(clipPath);\n this._clipPath = clipPath;\n this.markRedraw();\n };\n Element.prototype.removeClipPath = function () {\n var clipPath = this._clipPath;\n if (clipPath) {\n this._detachComponent(clipPath);\n this._clipPath = null;\n this.markRedraw();\n }\n };\n Element.prototype.getTextContent = function () {\n return this._textContent;\n };\n Element.prototype.setTextContent = function (textEl) {\n var previousTextContent = this._textContent;\n if (previousTextContent === textEl) {\n return;\n }\n if (previousTextContent && previousTextContent !== textEl) {\n this.removeTextContent();\n }\n if (process.env.NODE_ENV !== 'production') {\n if (textEl.__zr && !textEl.__hostTarget) {\n throw new Error('Text element has been added to zrender.');\n }\n }\n textEl.innerTransformable = new Transformable();\n this._attachComponent(textEl);\n this._textContent = textEl;\n this.markRedraw();\n };\n Element.prototype.setTextConfig = function (cfg) {\n if (!this.textConfig) {\n this.textConfig = {};\n }\n extend(this.textConfig, cfg);\n this.markRedraw();\n };\n Element.prototype.removeTextConfig = function () {\n this.textConfig = null;\n this.markRedraw();\n };\n Element.prototype.removeTextContent = function () {\n var textEl = this._textContent;\n if (textEl) {\n textEl.innerTransformable = null;\n this._detachComponent(textEl);\n this._textContent = null;\n this._innerTextDefaultStyle = null;\n this.markRedraw();\n }\n };\n Element.prototype.getTextGuideLine = function () {\n return this._textGuide;\n };\n Element.prototype.setTextGuideLine = function (guideLine) {\n if (this._textGuide && this._textGuide !== guideLine) {\n this.removeTextGuideLine();\n }\n this._attachComponent(guideLine);\n this._textGuide = guideLine;\n this.markRedraw();\n };\n Element.prototype.removeTextGuideLine = function () {\n var textGuide = this._textGuide;\n if (textGuide) {\n this._detachComponent(textGuide);\n this._textGuide = null;\n this.markRedraw();\n }\n };\n Element.prototype.markRedraw = function () {\n this.__dirty |= REDRAW_BIT;\n var zr = this.__zr;\n if (zr) {\n if (this.__inHover) {\n zr.refreshHover();\n }\n else {\n zr.refresh();\n }\n }\n if (this.__hostTarget) {\n this.__hostTarget.markRedraw();\n }\n };\n Element.prototype.dirty = function () {\n this.markRedraw();\n };\n Element.prototype._toggleHoverLayerFlag = function (inHover) {\n this.__inHover = inHover;\n var textContent = this._textContent;\n var textGuide = this._textGuide;\n if (textContent) {\n textContent.__inHover = inHover;\n }\n if (textGuide) {\n textGuide.__inHover = inHover;\n }\n };\n Element.prototype.addSelfToZr = function (zr) {\n if (this.__zr === zr) {\n return;\n }\n this.__zr = zr;\n var animators = this.animators;\n if (animators) {\n for (var i = 0; i < animators.length; i++) {\n zr.animation.addAnimator(animators[i]);\n }\n }\n if (this._clipPath) {\n this._clipPath.addSelfToZr(zr);\n }\n if (this._textContent) {\n this._textContent.addSelfToZr(zr);\n }\n if (this._textGuide) {\n this._textGuide.addSelfToZr(zr);\n }\n };\n Element.prototype.removeSelfFromZr = function (zr) {\n if (!this.__zr) {\n return;\n }\n this.__zr = null;\n var animators = this.animators;\n if (animators) {\n for (var i = 0; i < animators.length; i++) {\n zr.animation.removeAnimator(animators[i]);\n }\n }\n if (this._clipPath) {\n this._clipPath.removeSelfFromZr(zr);\n }\n if (this._textContent) {\n this._textContent.removeSelfFromZr(zr);\n }\n if (this._textGuide) {\n this._textGuide.removeSelfFromZr(zr);\n }\n };\n Element.prototype.animate = function (key, loop, allowDiscreteAnimation) {\n var target = key ? this[key] : this;\n if (process.env.NODE_ENV !== 'production') {\n if (!target) {\n logError('Property \"'\n + key\n + '\" is not existed in element '\n + this.id);\n return;\n }\n }\n var animator = new Animator(target, loop, allowDiscreteAnimation);\n key && (animator.targetName = key);\n this.addAnimator(animator, key);\n return animator;\n };\n Element.prototype.addAnimator = function (animator, key) {\n var zr = this.__zr;\n var el = this;\n animator.during(function () {\n el.updateDuringAnimation(key);\n }).done(function () {\n var animators = el.animators;\n var idx = indexOf(animators, animator);\n if (idx >= 0) {\n animators.splice(idx, 1);\n }\n });\n this.animators.push(animator);\n if (zr) {\n zr.animation.addAnimator(animator);\n }\n zr && zr.wakeUp();\n };\n Element.prototype.updateDuringAnimation = function (key) {\n this.markRedraw();\n };\n Element.prototype.stopAnimation = function (scope, forwardToLast) {\n var animators = this.animators;\n var len = animators.length;\n var leftAnimators = [];\n for (var i = 0; i < len; i++) {\n var animator = animators[i];\n if (!scope || scope === animator.scope) {\n animator.stop(forwardToLast);\n }\n else {\n leftAnimators.push(animator);\n }\n }\n this.animators = leftAnimators;\n return this;\n };\n Element.prototype.animateTo = function (target, cfg, animationProps) {\n animateTo(this, target, cfg, animationProps);\n };\n Element.prototype.animateFrom = function (target, cfg, animationProps) {\n animateTo(this, target, cfg, animationProps, true);\n };\n Element.prototype._transitionState = function (stateName, target, cfg, animationProps) {\n var animators = animateTo(this, target, cfg, animationProps);\n for (var i = 0; i < animators.length; i++) {\n animators[i].__fromStateTransition = stateName;\n }\n };\n Element.prototype.getBoundingRect = function () {\n return null;\n };\n Element.prototype.getPaintRect = function () {\n return null;\n };\n Element.initDefaultProps = (function () {\n var elProto = Element.prototype;\n elProto.type = 'element';\n elProto.name = '';\n elProto.ignore =\n elProto.silent =\n elProto.isGroup =\n elProto.draggable =\n elProto.dragging =\n elProto.ignoreClip =\n elProto.__inHover = false;\n elProto.__dirty = REDRAW_BIT;\n var logs = {};\n function logDeprecatedError(key, xKey, yKey) {\n if (!logs[key + xKey + yKey]) {\n console.warn(\"DEPRECATED: '\" + key + \"' has been deprecated. use '\" + xKey + \"', '\" + yKey + \"' instead\");\n logs[key + xKey + yKey] = true;\n }\n }\n function createLegacyProperty(key, privateKey, xKey, yKey) {\n Object.defineProperty(elProto, key, {\n get: function () {\n if (process.env.NODE_ENV !== 'production') {\n logDeprecatedError(key, xKey, yKey);\n }\n if (!this[privateKey]) {\n var pos = this[privateKey] = [];\n enhanceArray(this, pos);\n }\n return this[privateKey];\n },\n set: function (pos) {\n if (process.env.NODE_ENV !== 'production') {\n logDeprecatedError(key, xKey, yKey);\n }\n this[xKey] = pos[0];\n this[yKey] = pos[1];\n this[privateKey] = pos;\n enhanceArray(this, pos);\n }\n });\n function enhanceArray(self, pos) {\n Object.defineProperty(pos, 0, {\n get: function () {\n return self[xKey];\n },\n set: function (val) {\n self[xKey] = val;\n }\n });\n Object.defineProperty(pos, 1, {\n get: function () {\n return self[yKey];\n },\n set: function (val) {\n self[yKey] = val;\n }\n });\n }\n }\n if (Object.defineProperty) {\n createLegacyProperty('position', '_legacyPos', 'x', 'y');\n createLegacyProperty('scale', '_legacyScale', 'scaleX', 'scaleY');\n createLegacyProperty('origin', '_legacyOrigin', 'originX', 'originY');\n }\n })();\n return Element;\n}());\nmixin(Element, Eventful);\nmixin(Element, Transformable);\nfunction animateTo(animatable, target, cfg, animationProps, reverse) {\n cfg = cfg || {};\n var animators = [];\n animateToShallow(animatable, '', animatable, target, cfg, animationProps, animators, reverse);\n var finishCount = animators.length;\n var doneHappened = false;\n var cfgDone = cfg.done;\n var cfgAborted = cfg.aborted;\n var doneCb = function () {\n doneHappened = true;\n finishCount--;\n if (finishCount <= 0) {\n doneHappened\n ? (cfgDone && cfgDone())\n : (cfgAborted && cfgAborted());\n }\n };\n var abortedCb = function () {\n finishCount--;\n if (finishCount <= 0) {\n doneHappened\n ? (cfgDone && cfgDone())\n : (cfgAborted && cfgAborted());\n }\n };\n if (!finishCount) {\n cfgDone && cfgDone();\n }\n if (animators.length > 0 && cfg.during) {\n animators[0].during(function (target, percent) {\n cfg.during(percent);\n });\n }\n for (var i = 0; i < animators.length; i++) {\n var animator = animators[i];\n if (doneCb) {\n animator.done(doneCb);\n }\n if (abortedCb) {\n animator.aborted(abortedCb);\n }\n if (cfg.force) {\n animator.duration(cfg.duration);\n }\n animator.start(cfg.easing);\n }\n return animators;\n}\nfunction copyArrShallow(source, target, len) {\n for (var i = 0; i < len; i++) {\n source[i] = target[i];\n }\n}\nfunction is2DArray(value) {\n return isArrayLike(value[0]);\n}\nfunction copyValue(target, source, key) {\n if (isArrayLike(source[key])) {\n if (!isArrayLike(target[key])) {\n target[key] = [];\n }\n if (isTypedArray(source[key])) {\n var len = source[key].length;\n if (target[key].length !== len) {\n target[key] = new (source[key].constructor)(len);\n copyArrShallow(target[key], source[key], len);\n }\n }\n else {\n var sourceArr = source[key];\n var targetArr = target[key];\n var len0 = sourceArr.length;\n if (is2DArray(sourceArr)) {\n var len1 = sourceArr[0].length;\n for (var i = 0; i < len0; i++) {\n if (!targetArr[i]) {\n targetArr[i] = Array.prototype.slice.call(sourceArr[i]);\n }\n else {\n copyArrShallow(targetArr[i], sourceArr[i], len1);\n }\n }\n }\n else {\n copyArrShallow(targetArr, sourceArr, len0);\n }\n targetArr.length = sourceArr.length;\n }\n }\n else {\n target[key] = source[key];\n }\n}\nfunction isValueSame(val1, val2) {\n return val1 === val2\n || isArrayLike(val1) && isArrayLike(val2) && is1DArraySame(val1, val2);\n}\nfunction is1DArraySame(arr0, arr1) {\n var len = arr0.length;\n if (len !== arr1.length) {\n return false;\n }\n for (var i = 0; i < len; i++) {\n if (arr0[i] !== arr1[i]) {\n return false;\n }\n }\n return true;\n}\nfunction animateToShallow(animatable, topKey, animateObj, target, cfg, animationProps, animators, reverse) {\n var targetKeys = keys(target);\n var duration = cfg.duration;\n var delay = cfg.delay;\n var additive = cfg.additive;\n var setToFinal = cfg.setToFinal;\n var animateAll = !isObject(animationProps);\n var existsAnimators = animatable.animators;\n var animationKeys = [];\n for (var k = 0; k < targetKeys.length; k++) {\n var innerKey = targetKeys[k];\n var targetVal = target[innerKey];\n if (targetVal != null && animateObj[innerKey] != null\n && (animateAll || animationProps[innerKey])) {\n if (isObject(targetVal)\n && !isArrayLike(targetVal)\n && !isGradientObject(targetVal)) {\n if (topKey) {\n if (!reverse) {\n animateObj[innerKey] = targetVal;\n animatable.updateDuringAnimation(topKey);\n }\n continue;\n }\n animateToShallow(animatable, innerKey, animateObj[innerKey], targetVal, cfg, animationProps && animationProps[innerKey], animators, reverse);\n }\n else {\n animationKeys.push(innerKey);\n }\n }\n else if (!reverse) {\n animateObj[innerKey] = targetVal;\n animatable.updateDuringAnimation(topKey);\n animationKeys.push(innerKey);\n }\n }\n var keyLen = animationKeys.length;\n if (!additive && keyLen) {\n for (var i = 0; i < existsAnimators.length; i++) {\n var animator = existsAnimators[i];\n if (animator.targetName === topKey) {\n var allAborted = animator.stopTracks(animationKeys);\n if (allAborted) {\n var idx = indexOf(existsAnimators, animator);\n existsAnimators.splice(idx, 1);\n }\n }\n }\n }\n if (!cfg.force) {\n animationKeys = filter(animationKeys, function (key) { return !isValueSame(target[key], animateObj[key]); });\n keyLen = animationKeys.length;\n }\n if (keyLen > 0\n || (cfg.force && !animators.length)) {\n var revertedSource = void 0;\n var reversedTarget = void 0;\n var sourceClone = void 0;\n if (reverse) {\n reversedTarget = {};\n if (setToFinal) {\n revertedSource = {};\n }\n for (var i = 0; i < keyLen; i++) {\n var innerKey = animationKeys[i];\n reversedTarget[innerKey] = animateObj[innerKey];\n if (setToFinal) {\n revertedSource[innerKey] = target[innerKey];\n }\n else {\n animateObj[innerKey] = target[innerKey];\n }\n }\n }\n else if (setToFinal) {\n sourceClone = {};\n for (var i = 0; i < keyLen; i++) {\n var innerKey = animationKeys[i];\n sourceClone[innerKey] = cloneValue(animateObj[innerKey]);\n copyValue(animateObj, target, innerKey);\n }\n }\n var animator = new Animator(animateObj, false, false, additive ? filter(existsAnimators, function (animator) { return animator.targetName === topKey; }) : null);\n animator.targetName = topKey;\n if (cfg.scope) {\n animator.scope = cfg.scope;\n }\n if (setToFinal && revertedSource) {\n animator.whenWithKeys(0, revertedSource, animationKeys);\n }\n if (sourceClone) {\n animator.whenWithKeys(0, sourceClone, animationKeys);\n }\n animator.whenWithKeys(duration == null ? 500 : duration, reverse ? reversedTarget : target, animationKeys).delay(delay || 0);\n animatable.addAnimator(animator, topKey);\n animators.push(animator);\n }\n}\nexport default Element;\n","import { __extends } from \"tslib\";\nimport * as util from './core/util.js';\nimport * as vec2 from './core/vector.js';\nimport Draggable from './mixin/Draggable.js';\nimport Eventful from './core/Eventful.js';\nimport * as eventTool from './core/event.js';\nimport { GestureMgr } from './core/GestureMgr.js';\nimport BoundingRect from './core/BoundingRect.js';\nvar SILENT = 'silent';\nfunction makeEventPacket(eveType, targetInfo, event) {\n return {\n type: eveType,\n event: event,\n target: targetInfo.target,\n topTarget: targetInfo.topTarget,\n cancelBubble: false,\n offsetX: event.zrX,\n offsetY: event.zrY,\n gestureEvent: event.gestureEvent,\n pinchX: event.pinchX,\n pinchY: event.pinchY,\n pinchScale: event.pinchScale,\n wheelDelta: event.zrDelta,\n zrByTouch: event.zrByTouch,\n which: event.which,\n stop: stopEvent\n };\n}\nfunction stopEvent() {\n eventTool.stop(this.event);\n}\nvar EmptyProxy = (function (_super) {\n __extends(EmptyProxy, _super);\n function EmptyProxy() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.handler = null;\n return _this;\n }\n EmptyProxy.prototype.dispose = function () { };\n EmptyProxy.prototype.setCursor = function () { };\n return EmptyProxy;\n}(Eventful));\nvar HoveredResult = (function () {\n function HoveredResult(x, y) {\n this.x = x;\n this.y = y;\n }\n return HoveredResult;\n}());\nvar handlerNames = [\n 'click', 'dblclick', 'mousewheel', 'mouseout',\n 'mouseup', 'mousedown', 'mousemove', 'contextmenu'\n];\nvar tmpRect = new BoundingRect(0, 0, 0, 0);\nvar Handler = (function (_super) {\n __extends(Handler, _super);\n function Handler(storage, painter, proxy, painterRoot, pointerSize) {\n var _this = _super.call(this) || this;\n _this._hovered = new HoveredResult(0, 0);\n _this.storage = storage;\n _this.painter = painter;\n _this.painterRoot = painterRoot;\n _this._pointerSize = pointerSize;\n proxy = proxy || new EmptyProxy();\n _this.proxy = null;\n _this.setHandlerProxy(proxy);\n _this._draggingMgr = new Draggable(_this);\n return _this;\n }\n Handler.prototype.setHandlerProxy = function (proxy) {\n if (this.proxy) {\n this.proxy.dispose();\n }\n if (proxy) {\n util.each(handlerNames, function (name) {\n proxy.on && proxy.on(name, this[name], this);\n }, this);\n proxy.handler = this;\n }\n this.proxy = proxy;\n };\n Handler.prototype.mousemove = function (event) {\n var x = event.zrX;\n var y = event.zrY;\n var isOutside = isOutsideBoundary(this, x, y);\n var lastHovered = this._hovered;\n var lastHoveredTarget = lastHovered.target;\n if (lastHoveredTarget && !lastHoveredTarget.__zr) {\n lastHovered = this.findHover(lastHovered.x, lastHovered.y);\n lastHoveredTarget = lastHovered.target;\n }\n var hovered = this._hovered = isOutside ? new HoveredResult(x, y) : this.findHover(x, y);\n var hoveredTarget = hovered.target;\n var proxy = this.proxy;\n proxy.setCursor && proxy.setCursor(hoveredTarget ? hoveredTarget.cursor : 'default');\n if (lastHoveredTarget && hoveredTarget !== lastHoveredTarget) {\n this.dispatchToElement(lastHovered, 'mouseout', event);\n }\n this.dispatchToElement(hovered, 'mousemove', event);\n if (hoveredTarget && hoveredTarget !== lastHoveredTarget) {\n this.dispatchToElement(hovered, 'mouseover', event);\n }\n };\n Handler.prototype.mouseout = function (event) {\n var eventControl = event.zrEventControl;\n if (eventControl !== 'only_globalout') {\n this.dispatchToElement(this._hovered, 'mouseout', event);\n }\n if (eventControl !== 'no_globalout') {\n this.trigger('globalout', { type: 'globalout', event: event });\n }\n };\n Handler.prototype.resize = function () {\n this._hovered = new HoveredResult(0, 0);\n };\n Handler.prototype.dispatch = function (eventName, eventArgs) {\n var handler = this[eventName];\n handler && handler.call(this, eventArgs);\n };\n Handler.prototype.dispose = function () {\n this.proxy.dispose();\n this.storage = null;\n this.proxy = null;\n this.painter = null;\n };\n Handler.prototype.setCursorStyle = function (cursorStyle) {\n var proxy = this.proxy;\n proxy.setCursor && proxy.setCursor(cursorStyle);\n };\n Handler.prototype.dispatchToElement = function (targetInfo, eventName, event) {\n targetInfo = targetInfo || {};\n var el = targetInfo.target;\n if (el && el.silent) {\n return;\n }\n var eventKey = ('on' + eventName);\n var eventPacket = makeEventPacket(eventName, targetInfo, event);\n while (el) {\n el[eventKey]\n && (eventPacket.cancelBubble = !!el[eventKey].call(el, eventPacket));\n el.trigger(eventName, eventPacket);\n el = el.__hostTarget ? el.__hostTarget : el.parent;\n if (eventPacket.cancelBubble) {\n break;\n }\n }\n if (!eventPacket.cancelBubble) {\n this.trigger(eventName, eventPacket);\n if (this.painter && this.painter.eachOtherLayer) {\n this.painter.eachOtherLayer(function (layer) {\n if (typeof (layer[eventKey]) === 'function') {\n layer[eventKey].call(layer, eventPacket);\n }\n if (layer.trigger) {\n layer.trigger(eventName, eventPacket);\n }\n });\n }\n }\n };\n Handler.prototype.findHover = function (x, y, exclude) {\n var list = this.storage.getDisplayList();\n var out = new HoveredResult(x, y);\n setHoverTarget(list, out, x, y, exclude);\n if (this._pointerSize && !out.target) {\n var candidates = [];\n var pointerSize = this._pointerSize;\n var targetSizeHalf = pointerSize / 2;\n var pointerRect = new BoundingRect(x - targetSizeHalf, y - targetSizeHalf, pointerSize, pointerSize);\n for (var i = list.length - 1; i >= 0; i--) {\n var el = list[i];\n if (el !== exclude\n && !el.ignore\n && !el.ignoreCoarsePointer\n && (!el.parent || !el.parent.ignoreCoarsePointer)) {\n tmpRect.copy(el.getBoundingRect());\n if (el.transform) {\n tmpRect.applyTransform(el.transform);\n }\n if (tmpRect.intersect(pointerRect)) {\n candidates.push(el);\n }\n }\n }\n if (candidates.length) {\n var rStep = 4;\n var thetaStep = Math.PI / 12;\n var PI2 = Math.PI * 2;\n for (var r = 0; r < targetSizeHalf; r += rStep) {\n for (var theta = 0; theta < PI2; theta += thetaStep) {\n var x1 = x + r * Math.cos(theta);\n var y1 = y + r * Math.sin(theta);\n setHoverTarget(candidates, out, x1, y1, exclude);\n if (out.target) {\n return out;\n }\n }\n }\n }\n }\n return out;\n };\n Handler.prototype.processGesture = function (event, stage) {\n if (!this._gestureMgr) {\n this._gestureMgr = new GestureMgr();\n }\n var gestureMgr = this._gestureMgr;\n stage === 'start' && gestureMgr.clear();\n var gestureInfo = gestureMgr.recognize(event, this.findHover(event.zrX, event.zrY, null).target, this.proxy.dom);\n stage === 'end' && gestureMgr.clear();\n if (gestureInfo) {\n var type = gestureInfo.type;\n event.gestureEvent = type;\n var res = new HoveredResult();\n res.target = gestureInfo.target;\n this.dispatchToElement(res, type, gestureInfo.event);\n }\n };\n return Handler;\n}(Eventful));\nutil.each(['click', 'mousedown', 'mouseup', 'mousewheel', 'dblclick', 'contextmenu'], function (name) {\n Handler.prototype[name] = function (event) {\n var x = event.zrX;\n var y = event.zrY;\n var isOutside = isOutsideBoundary(this, x, y);\n var hovered;\n var hoveredTarget;\n if (name !== 'mouseup' || !isOutside) {\n hovered = this.findHover(x, y);\n hoveredTarget = hovered.target;\n }\n if (name === 'mousedown') {\n this._downEl = hoveredTarget;\n this._downPoint = [event.zrX, event.zrY];\n this._upEl = hoveredTarget;\n }\n else if (name === 'mouseup') {\n this._upEl = hoveredTarget;\n }\n else if (name === 'click') {\n if (this._downEl !== this._upEl\n || !this._downPoint\n || vec2.dist(this._downPoint, [event.zrX, event.zrY]) > 4) {\n return;\n }\n this._downPoint = null;\n }\n this.dispatchToElement(hovered, name, event);\n };\n});\nfunction isHover(displayable, x, y) {\n if (displayable[displayable.rectHover ? 'rectContain' : 'contain'](x, y)) {\n var el = displayable;\n var isSilent = void 0;\n var ignoreClip = false;\n while (el) {\n if (el.ignoreClip) {\n ignoreClip = true;\n }\n if (!ignoreClip) {\n var clipPath = el.getClipPath();\n if (clipPath && !clipPath.contain(x, y)) {\n return false;\n }\n if (el.silent) {\n isSilent = true;\n }\n }\n var hostEl = el.__hostTarget;\n el = hostEl ? hostEl : el.parent;\n }\n return isSilent ? SILENT : true;\n }\n return false;\n}\nfunction setHoverTarget(list, out, x, y, exclude) {\n for (var i = list.length - 1; i >= 0; i--) {\n var el = list[i];\n var hoverCheckResult = void 0;\n if (el !== exclude\n && !el.ignore\n && (hoverCheckResult = isHover(el, x, y))) {\n !out.topTarget && (out.topTarget = el);\n if (hoverCheckResult !== SILENT) {\n out.target = el;\n break;\n }\n }\n }\n}\nfunction isOutsideBoundary(handlerInstance, x, y) {\n var painter = handlerInstance.painter;\n return x < 0 || x > painter.getWidth() || y < 0 || y > painter.getHeight();\n}\nexport default Handler;\n","import * as util from './core/util.js';\nimport timsort from './core/timsort.js';\nimport { REDRAW_BIT } from './graphic/constants.js';\nvar invalidZErrorLogged = false;\nfunction logInvalidZError() {\n if (invalidZErrorLogged) {\n return;\n }\n invalidZErrorLogged = true;\n console.warn('z / z2 / zlevel of displayable is invalid, which may cause unexpected errors');\n}\nfunction shapeCompareFunc(a, b) {\n if (a.zlevel === b.zlevel) {\n if (a.z === b.z) {\n return a.z2 - b.z2;\n }\n return a.z - b.z;\n }\n return a.zlevel - b.zlevel;\n}\nvar Storage = (function () {\n function Storage() {\n this._roots = [];\n this._displayList = [];\n this._displayListLen = 0;\n this.displayableSortFunc = shapeCompareFunc;\n }\n Storage.prototype.traverse = function (cb, context) {\n for (var i = 0; i < this._roots.length; i++) {\n this._roots[i].traverse(cb, context);\n }\n };\n Storage.prototype.getDisplayList = function (update, includeIgnore) {\n includeIgnore = includeIgnore || false;\n var displayList = this._displayList;\n if (update || !displayList.length) {\n this.updateDisplayList(includeIgnore);\n }\n return displayList;\n };\n Storage.prototype.updateDisplayList = function (includeIgnore) {\n this._displayListLen = 0;\n var roots = this._roots;\n var displayList = this._displayList;\n for (var i = 0, len = roots.length; i < len; i++) {\n this._updateAndAddDisplayable(roots[i], null, includeIgnore);\n }\n displayList.length = this._displayListLen;\n timsort(displayList, shapeCompareFunc);\n };\n Storage.prototype._updateAndAddDisplayable = function (el, clipPaths, includeIgnore) {\n if (el.ignore && !includeIgnore) {\n return;\n }\n el.beforeUpdate();\n el.update();\n el.afterUpdate();\n var userSetClipPath = el.getClipPath();\n if (el.ignoreClip) {\n clipPaths = null;\n }\n else if (userSetClipPath) {\n if (clipPaths) {\n clipPaths = clipPaths.slice();\n }\n else {\n clipPaths = [];\n }\n var currentClipPath = userSetClipPath;\n var parentClipPath = el;\n while (currentClipPath) {\n currentClipPath.parent = parentClipPath;\n currentClipPath.updateTransform();\n clipPaths.push(currentClipPath);\n parentClipPath = currentClipPath;\n currentClipPath = currentClipPath.getClipPath();\n }\n }\n if (el.childrenRef) {\n var children = el.childrenRef();\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n if (el.__dirty) {\n child.__dirty |= REDRAW_BIT;\n }\n this._updateAndAddDisplayable(child, clipPaths, includeIgnore);\n }\n el.__dirty = 0;\n }\n else {\n var disp = el;\n if (clipPaths && clipPaths.length) {\n disp.__clipPaths = clipPaths;\n }\n else if (disp.__clipPaths && disp.__clipPaths.length > 0) {\n disp.__clipPaths = [];\n }\n if (isNaN(disp.z)) {\n logInvalidZError();\n disp.z = 0;\n }\n if (isNaN(disp.z2)) {\n logInvalidZError();\n disp.z2 = 0;\n }\n if (isNaN(disp.zlevel)) {\n logInvalidZError();\n disp.zlevel = 0;\n }\n this._displayList[this._displayListLen++] = disp;\n }\n var decalEl = el.getDecalElement && el.getDecalElement();\n if (decalEl) {\n this._updateAndAddDisplayable(decalEl, clipPaths, includeIgnore);\n }\n var textGuide = el.getTextGuideLine();\n if (textGuide) {\n this._updateAndAddDisplayable(textGuide, clipPaths, includeIgnore);\n }\n var textEl = el.getTextContent();\n if (textEl) {\n this._updateAndAddDisplayable(textEl, clipPaths, includeIgnore);\n }\n };\n Storage.prototype.addRoot = function (el) {\n if (el.__zr && el.__zr.storage === this) {\n return;\n }\n this._roots.push(el);\n };\n Storage.prototype.delRoot = function (el) {\n if (el instanceof Array) {\n for (var i = 0, l = el.length; i < l; i++) {\n this.delRoot(el[i]);\n }\n return;\n }\n var idx = util.indexOf(this._roots, el);\n if (idx >= 0) {\n this._roots.splice(idx, 1);\n }\n };\n Storage.prototype.delAllRoots = function () {\n this._roots = [];\n this._displayList = [];\n this._displayListLen = 0;\n return;\n };\n Storage.prototype.getRoots = function () {\n return this._roots;\n };\n Storage.prototype.dispose = function () {\n this._displayList = null;\n this._roots = null;\n };\n return Storage;\n}());\nexport default Storage;\n","import { __extends } from \"tslib\";\nimport Eventful from '../core/Eventful.js';\nimport requestAnimationFrame from './requestAnimationFrame.js';\nimport Animator from './Animator.js';\nexport function getTime() {\n return new Date().getTime();\n}\nvar Animation = (function (_super) {\n __extends(Animation, _super);\n function Animation(opts) {\n var _this = _super.call(this) || this;\n _this._running = false;\n _this._time = 0;\n _this._pausedTime = 0;\n _this._pauseStart = 0;\n _this._paused = false;\n opts = opts || {};\n _this.stage = opts.stage || {};\n return _this;\n }\n Animation.prototype.addClip = function (clip) {\n if (clip.animation) {\n this.removeClip(clip);\n }\n if (!this._head) {\n this._head = this._tail = clip;\n }\n else {\n this._tail.next = clip;\n clip.prev = this._tail;\n clip.next = null;\n this._tail = clip;\n }\n clip.animation = this;\n };\n Animation.prototype.addAnimator = function (animator) {\n animator.animation = this;\n var clip = animator.getClip();\n if (clip) {\n this.addClip(clip);\n }\n };\n Animation.prototype.removeClip = function (clip) {\n if (!clip.animation) {\n return;\n }\n var prev = clip.prev;\n var next = clip.next;\n if (prev) {\n prev.next = next;\n }\n else {\n this._head = next;\n }\n if (next) {\n next.prev = prev;\n }\n else {\n this._tail = prev;\n }\n clip.next = clip.prev = clip.animation = null;\n };\n Animation.prototype.removeAnimator = function (animator) {\n var clip = animator.getClip();\n if (clip) {\n this.removeClip(clip);\n }\n animator.animation = null;\n };\n Animation.prototype.update = function (notTriggerFrameAndStageUpdate) {\n var time = getTime() - this._pausedTime;\n var delta = time - this._time;\n var clip = this._head;\n while (clip) {\n var nextClip = clip.next;\n var finished = clip.step(time, delta);\n if (finished) {\n clip.ondestroy();\n this.removeClip(clip);\n clip = nextClip;\n }\n else {\n clip = nextClip;\n }\n }\n this._time = time;\n if (!notTriggerFrameAndStageUpdate) {\n this.trigger('frame', delta);\n this.stage.update && this.stage.update();\n }\n };\n Animation.prototype._startLoop = function () {\n var self = this;\n this._running = true;\n function step() {\n if (self._running) {\n requestAnimationFrame(step);\n !self._paused && self.update();\n }\n }\n requestAnimationFrame(step);\n };\n Animation.prototype.start = function () {\n if (this._running) {\n return;\n }\n this._time = getTime();\n this._pausedTime = 0;\n this._startLoop();\n };\n Animation.prototype.stop = function () {\n this._running = false;\n };\n Animation.prototype.pause = function () {\n if (!this._paused) {\n this._pauseStart = getTime();\n this._paused = true;\n }\n };\n Animation.prototype.resume = function () {\n if (this._paused) {\n this._pausedTime += getTime() - this._pauseStart;\n this._paused = false;\n }\n };\n Animation.prototype.clear = function () {\n var clip = this._head;\n while (clip) {\n var nextClip = clip.next;\n clip.prev = clip.next = clip.animation = null;\n clip = nextClip;\n }\n this._head = this._tail = null;\n };\n Animation.prototype.isFinished = function () {\n return this._head == null;\n };\n Animation.prototype.animate = function (target, options) {\n options = options || {};\n this.start();\n var animator = new Animator(target, options.loop);\n this.addAnimator(animator);\n return animator;\n };\n return Animation;\n}(Eventful));\nexport default Animation;\n","import Clip from './Clip.js';\nimport * as color from '../tool/color.js';\nimport { eqNaN, extend, isArrayLike, isFunction, isGradientObject, isNumber, isString, keys, logError, map } from '../core/util.js';\nimport easingFuncs from './easing.js';\nimport { createCubicEasingFunc } from './cubicEasing.js';\nimport { isLinearGradient, isRadialGradient } from '../svg/helper.js';\n;\nvar arraySlice = Array.prototype.slice;\nfunction interpolateNumber(p0, p1, percent) {\n return (p1 - p0) * percent + p0;\n}\nfunction interpolate1DArray(out, p0, p1, percent) {\n var len = p0.length;\n for (var i = 0; i < len; i++) {\n out[i] = interpolateNumber(p0[i], p1[i], percent);\n }\n return out;\n}\nfunction interpolate2DArray(out, p0, p1, percent) {\n var len = p0.length;\n var len2 = len && p0[0].length;\n for (var i = 0; i < len; i++) {\n if (!out[i]) {\n out[i] = [];\n }\n for (var j = 0; j < len2; j++) {\n out[i][j] = interpolateNumber(p0[i][j], p1[i][j], percent);\n }\n }\n return out;\n}\nfunction add1DArray(out, p0, p1, sign) {\n var len = p0.length;\n for (var i = 0; i < len; i++) {\n out[i] = p0[i] + p1[i] * sign;\n }\n return out;\n}\nfunction add2DArray(out, p0, p1, sign) {\n var len = p0.length;\n var len2 = len && p0[0].length;\n for (var i = 0; i < len; i++) {\n if (!out[i]) {\n out[i] = [];\n }\n for (var j = 0; j < len2; j++) {\n out[i][j] = p0[i][j] + p1[i][j] * sign;\n }\n }\n return out;\n}\nfunction fillColorStops(val0, val1) {\n var len0 = val0.length;\n var len1 = val1.length;\n var shorterArr = len0 > len1 ? val1 : val0;\n var shorterLen = Math.min(len0, len1);\n var last = shorterArr[shorterLen - 1] || { color: [0, 0, 0, 0], offset: 0 };\n for (var i = shorterLen; i < Math.max(len0, len1); i++) {\n shorterArr.push({\n offset: last.offset,\n color: last.color.slice()\n });\n }\n}\nfunction fillArray(val0, val1, arrDim) {\n var arr0 = val0;\n var arr1 = val1;\n if (!arr0.push || !arr1.push) {\n return;\n }\n var arr0Len = arr0.length;\n var arr1Len = arr1.length;\n if (arr0Len !== arr1Len) {\n var isPreviousLarger = arr0Len > arr1Len;\n if (isPreviousLarger) {\n arr0.length = arr1Len;\n }\n else {\n for (var i = arr0Len; i < arr1Len; i++) {\n arr0.push(arrDim === 1 ? arr1[i] : arraySlice.call(arr1[i]));\n }\n }\n }\n var len2 = arr0[0] && arr0[0].length;\n for (var i = 0; i < arr0.length; i++) {\n if (arrDim === 1) {\n if (isNaN(arr0[i])) {\n arr0[i] = arr1[i];\n }\n }\n else {\n for (var j = 0; j < len2; j++) {\n if (isNaN(arr0[i][j])) {\n arr0[i][j] = arr1[i][j];\n }\n }\n }\n }\n}\nexport function cloneValue(value) {\n if (isArrayLike(value)) {\n var len = value.length;\n if (isArrayLike(value[0])) {\n var ret = [];\n for (var i = 0; i < len; i++) {\n ret.push(arraySlice.call(value[i]));\n }\n return ret;\n }\n return arraySlice.call(value);\n }\n return value;\n}\nfunction rgba2String(rgba) {\n rgba[0] = Math.floor(rgba[0]) || 0;\n rgba[1] = Math.floor(rgba[1]) || 0;\n rgba[2] = Math.floor(rgba[2]) || 0;\n rgba[3] = rgba[3] == null ? 1 : rgba[3];\n return 'rgba(' + rgba.join(',') + ')';\n}\nfunction guessArrayDim(value) {\n return isArrayLike(value && value[0]) ? 2 : 1;\n}\nvar VALUE_TYPE_NUMBER = 0;\nvar VALUE_TYPE_1D_ARRAY = 1;\nvar VALUE_TYPE_2D_ARRAY = 2;\nvar VALUE_TYPE_COLOR = 3;\nvar VALUE_TYPE_LINEAR_GRADIENT = 4;\nvar VALUE_TYPE_RADIAL_GRADIENT = 5;\nvar VALUE_TYPE_UNKOWN = 6;\nfunction isGradientValueType(valType) {\n return valType === VALUE_TYPE_LINEAR_GRADIENT || valType === VALUE_TYPE_RADIAL_GRADIENT;\n}\nfunction isArrayValueType(valType) {\n return valType === VALUE_TYPE_1D_ARRAY || valType === VALUE_TYPE_2D_ARRAY;\n}\nvar tmpRgba = [0, 0, 0, 0];\nvar Track = (function () {\n function Track(propName) {\n this.keyframes = [];\n this.discrete = false;\n this._invalid = false;\n this._needsSort = false;\n this._lastFr = 0;\n this._lastFrP = 0;\n this.propName = propName;\n }\n Track.prototype.isFinished = function () {\n return this._finished;\n };\n Track.prototype.setFinished = function () {\n this._finished = true;\n if (this._additiveTrack) {\n this._additiveTrack.setFinished();\n }\n };\n Track.prototype.needsAnimate = function () {\n return this.keyframes.length >= 1;\n };\n Track.prototype.getAdditiveTrack = function () {\n return this._additiveTrack;\n };\n Track.prototype.addKeyframe = function (time, rawValue, easing) {\n this._needsSort = true;\n var keyframes = this.keyframes;\n var len = keyframes.length;\n var discrete = false;\n var valType = VALUE_TYPE_UNKOWN;\n var value = rawValue;\n if (isArrayLike(rawValue)) {\n var arrayDim = guessArrayDim(rawValue);\n valType = arrayDim;\n if (arrayDim === 1 && !isNumber(rawValue[0])\n || arrayDim === 2 && !isNumber(rawValue[0][0])) {\n discrete = true;\n }\n }\n else {\n if (isNumber(rawValue) && !eqNaN(rawValue)) {\n valType = VALUE_TYPE_NUMBER;\n }\n else if (isString(rawValue)) {\n if (!isNaN(+rawValue)) {\n valType = VALUE_TYPE_NUMBER;\n }\n else {\n var colorArray = color.parse(rawValue);\n if (colorArray) {\n value = colorArray;\n valType = VALUE_TYPE_COLOR;\n }\n }\n }\n else if (isGradientObject(rawValue)) {\n var parsedGradient = extend({}, value);\n parsedGradient.colorStops = map(rawValue.colorStops, function (colorStop) { return ({\n offset: colorStop.offset,\n color: color.parse(colorStop.color)\n }); });\n if (isLinearGradient(rawValue)) {\n valType = VALUE_TYPE_LINEAR_GRADIENT;\n }\n else if (isRadialGradient(rawValue)) {\n valType = VALUE_TYPE_RADIAL_GRADIENT;\n }\n value = parsedGradient;\n }\n }\n if (len === 0) {\n this.valType = valType;\n }\n else if (valType !== this.valType || valType === VALUE_TYPE_UNKOWN) {\n discrete = true;\n }\n this.discrete = this.discrete || discrete;\n var kf = {\n time: time,\n value: value,\n rawValue: rawValue,\n percent: 0\n };\n if (easing) {\n kf.easing = easing;\n kf.easingFunc = isFunction(easing)\n ? easing\n : easingFuncs[easing] || createCubicEasingFunc(easing);\n }\n keyframes.push(kf);\n return kf;\n };\n Track.prototype.prepare = function (maxTime, additiveTrack) {\n var kfs = this.keyframes;\n if (this._needsSort) {\n kfs.sort(function (a, b) {\n return a.time - b.time;\n });\n }\n var valType = this.valType;\n var kfsLen = kfs.length;\n var lastKf = kfs[kfsLen - 1];\n var isDiscrete = this.discrete;\n var isArr = isArrayValueType(valType);\n var isGradient = isGradientValueType(valType);\n for (var i = 0; i < kfsLen; i++) {\n var kf = kfs[i];\n var value = kf.value;\n var lastValue = lastKf.value;\n kf.percent = kf.time / maxTime;\n if (!isDiscrete) {\n if (isArr && i !== kfsLen - 1) {\n fillArray(value, lastValue, valType);\n }\n else if (isGradient) {\n fillColorStops(value.colorStops, lastValue.colorStops);\n }\n }\n }\n if (!isDiscrete\n && valType !== VALUE_TYPE_RADIAL_GRADIENT\n && additiveTrack\n && this.needsAnimate()\n && additiveTrack.needsAnimate()\n && valType === additiveTrack.valType\n && !additiveTrack._finished) {\n this._additiveTrack = additiveTrack;\n var startValue = kfs[0].value;\n for (var i = 0; i < kfsLen; i++) {\n if (valType === VALUE_TYPE_NUMBER) {\n kfs[i].additiveValue = kfs[i].value - startValue;\n }\n else if (valType === VALUE_TYPE_COLOR) {\n kfs[i].additiveValue =\n add1DArray([], kfs[i].value, startValue, -1);\n }\n else if (isArrayValueType(valType)) {\n kfs[i].additiveValue = valType === VALUE_TYPE_1D_ARRAY\n ? add1DArray([], kfs[i].value, startValue, -1)\n : add2DArray([], kfs[i].value, startValue, -1);\n }\n }\n }\n };\n Track.prototype.step = function (target, percent) {\n if (this._finished) {\n return;\n }\n if (this._additiveTrack && this._additiveTrack._finished) {\n this._additiveTrack = null;\n }\n var isAdditive = this._additiveTrack != null;\n var valueKey = isAdditive ? 'additiveValue' : 'value';\n var valType = this.valType;\n var keyframes = this.keyframes;\n var kfsNum = keyframes.length;\n var propName = this.propName;\n var isValueColor = valType === VALUE_TYPE_COLOR;\n var frameIdx;\n var lastFrame = this._lastFr;\n var mathMin = Math.min;\n var frame;\n var nextFrame;\n if (kfsNum === 1) {\n frame = nextFrame = keyframes[0];\n }\n else {\n if (percent < 0) {\n frameIdx = 0;\n }\n else if (percent < this._lastFrP) {\n var start = mathMin(lastFrame + 1, kfsNum - 1);\n for (frameIdx = start; frameIdx >= 0; frameIdx--) {\n if (keyframes[frameIdx].percent <= percent) {\n break;\n }\n }\n frameIdx = mathMin(frameIdx, kfsNum - 2);\n }\n else {\n for (frameIdx = lastFrame; frameIdx < kfsNum; frameIdx++) {\n if (keyframes[frameIdx].percent > percent) {\n break;\n }\n }\n frameIdx = mathMin(frameIdx - 1, kfsNum - 2);\n }\n nextFrame = keyframes[frameIdx + 1];\n frame = keyframes[frameIdx];\n }\n if (!(frame && nextFrame)) {\n return;\n }\n this._lastFr = frameIdx;\n this._lastFrP = percent;\n var interval = (nextFrame.percent - frame.percent);\n var w = interval === 0 ? 1 : mathMin((percent - frame.percent) / interval, 1);\n if (nextFrame.easingFunc) {\n w = nextFrame.easingFunc(w);\n }\n var targetArr = isAdditive ? this._additiveValue\n : (isValueColor ? tmpRgba : target[propName]);\n if ((isArrayValueType(valType) || isValueColor) && !targetArr) {\n targetArr = this._additiveValue = [];\n }\n if (this.discrete) {\n target[propName] = w < 1 ? frame.rawValue : nextFrame.rawValue;\n }\n else if (isArrayValueType(valType)) {\n valType === VALUE_TYPE_1D_ARRAY\n ? interpolate1DArray(targetArr, frame[valueKey], nextFrame[valueKey], w)\n : interpolate2DArray(targetArr, frame[valueKey], nextFrame[valueKey], w);\n }\n else if (isGradientValueType(valType)) {\n var val = frame[valueKey];\n var nextVal_1 = nextFrame[valueKey];\n var isLinearGradient_1 = valType === VALUE_TYPE_LINEAR_GRADIENT;\n target[propName] = {\n type: isLinearGradient_1 ? 'linear' : 'radial',\n x: interpolateNumber(val.x, nextVal_1.x, w),\n y: interpolateNumber(val.y, nextVal_1.y, w),\n colorStops: map(val.colorStops, function (colorStop, idx) {\n var nextColorStop = nextVal_1.colorStops[idx];\n return {\n offset: interpolateNumber(colorStop.offset, nextColorStop.offset, w),\n color: rgba2String(interpolate1DArray([], colorStop.color, nextColorStop.color, w))\n };\n }),\n global: nextVal_1.global\n };\n if (isLinearGradient_1) {\n target[propName].x2 = interpolateNumber(val.x2, nextVal_1.x2, w);\n target[propName].y2 = interpolateNumber(val.y2, nextVal_1.y2, w);\n }\n else {\n target[propName].r = interpolateNumber(val.r, nextVal_1.r, w);\n }\n }\n else if (isValueColor) {\n interpolate1DArray(targetArr, frame[valueKey], nextFrame[valueKey], w);\n if (!isAdditive) {\n target[propName] = rgba2String(targetArr);\n }\n }\n else {\n var value = interpolateNumber(frame[valueKey], nextFrame[valueKey], w);\n if (isAdditive) {\n this._additiveValue = value;\n }\n else {\n target[propName] = value;\n }\n }\n if (isAdditive) {\n this._addToTarget(target);\n }\n };\n Track.prototype._addToTarget = function (target) {\n var valType = this.valType;\n var propName = this.propName;\n var additiveValue = this._additiveValue;\n if (valType === VALUE_TYPE_NUMBER) {\n target[propName] = target[propName] + additiveValue;\n }\n else if (valType === VALUE_TYPE_COLOR) {\n color.parse(target[propName], tmpRgba);\n add1DArray(tmpRgba, tmpRgba, additiveValue, 1);\n target[propName] = rgba2String(tmpRgba);\n }\n else if (valType === VALUE_TYPE_1D_ARRAY) {\n add1DArray(target[propName], target[propName], additiveValue, 1);\n }\n else if (valType === VALUE_TYPE_2D_ARRAY) {\n add2DArray(target[propName], target[propName], additiveValue, 1);\n }\n };\n return Track;\n}());\nvar Animator = (function () {\n function Animator(target, loop, allowDiscreteAnimation, additiveTo) {\n this._tracks = {};\n this._trackKeys = [];\n this._maxTime = 0;\n this._started = 0;\n this._clip = null;\n this._target = target;\n this._loop = loop;\n if (loop && additiveTo) {\n logError('Can\\' use additive animation on looped animation.');\n return;\n }\n this._additiveAnimators = additiveTo;\n this._allowDiscrete = allowDiscreteAnimation;\n }\n Animator.prototype.getMaxTime = function () {\n return this._maxTime;\n };\n Animator.prototype.getDelay = function () {\n return this._delay;\n };\n Animator.prototype.getLoop = function () {\n return this._loop;\n };\n Animator.prototype.getTarget = function () {\n return this._target;\n };\n Animator.prototype.changeTarget = function (target) {\n this._target = target;\n };\n Animator.prototype.when = function (time, props, easing) {\n return this.whenWithKeys(time, props, keys(props), easing);\n };\n Animator.prototype.whenWithKeys = function (time, props, propNames, easing) {\n var tracks = this._tracks;\n for (var i = 0; i < propNames.length; i++) {\n var propName = propNames[i];\n var track = tracks[propName];\n if (!track) {\n track = tracks[propName] = new Track(propName);\n var initialValue = void 0;\n var additiveTrack = this._getAdditiveTrack(propName);\n if (additiveTrack) {\n var addtiveTrackKfs = additiveTrack.keyframes;\n var lastFinalKf = addtiveTrackKfs[addtiveTrackKfs.length - 1];\n initialValue = lastFinalKf && lastFinalKf.value;\n if (additiveTrack.valType === VALUE_TYPE_COLOR && initialValue) {\n initialValue = rgba2String(initialValue);\n }\n }\n else {\n initialValue = this._target[propName];\n }\n if (initialValue == null) {\n continue;\n }\n if (time > 0) {\n track.addKeyframe(0, cloneValue(initialValue), easing);\n }\n this._trackKeys.push(propName);\n }\n track.addKeyframe(time, cloneValue(props[propName]), easing);\n }\n this._maxTime = Math.max(this._maxTime, time);\n return this;\n };\n Animator.prototype.pause = function () {\n this._clip.pause();\n this._paused = true;\n };\n Animator.prototype.resume = function () {\n this._clip.resume();\n this._paused = false;\n };\n Animator.prototype.isPaused = function () {\n return !!this._paused;\n };\n Animator.prototype.duration = function (duration) {\n this._maxTime = duration;\n this._force = true;\n return this;\n };\n Animator.prototype._doneCallback = function () {\n this._setTracksFinished();\n this._clip = null;\n var doneList = this._doneCbs;\n if (doneList) {\n var len = doneList.length;\n for (var i = 0; i < len; i++) {\n doneList[i].call(this);\n }\n }\n };\n Animator.prototype._abortedCallback = function () {\n this._setTracksFinished();\n var animation = this.animation;\n var abortedList = this._abortedCbs;\n if (animation) {\n animation.removeClip(this._clip);\n }\n this._clip = null;\n if (abortedList) {\n for (var i = 0; i < abortedList.length; i++) {\n abortedList[i].call(this);\n }\n }\n };\n Animator.prototype._setTracksFinished = function () {\n var tracks = this._tracks;\n var tracksKeys = this._trackKeys;\n for (var i = 0; i < tracksKeys.length; i++) {\n tracks[tracksKeys[i]].setFinished();\n }\n };\n Animator.prototype._getAdditiveTrack = function (trackName) {\n var additiveTrack;\n var additiveAnimators = this._additiveAnimators;\n if (additiveAnimators) {\n for (var i = 0; i < additiveAnimators.length; i++) {\n var track = additiveAnimators[i].getTrack(trackName);\n if (track) {\n additiveTrack = track;\n }\n }\n }\n return additiveTrack;\n };\n Animator.prototype.start = function (easing) {\n if (this._started > 0) {\n return;\n }\n this._started = 1;\n var self = this;\n var tracks = [];\n var maxTime = this._maxTime || 0;\n for (var i = 0; i < this._trackKeys.length; i++) {\n var propName = this._trackKeys[i];\n var track = this._tracks[propName];\n var additiveTrack = this._getAdditiveTrack(propName);\n var kfs = track.keyframes;\n var kfsNum = kfs.length;\n track.prepare(maxTime, additiveTrack);\n if (track.needsAnimate()) {\n if (!this._allowDiscrete && track.discrete) {\n var lastKf = kfs[kfsNum - 1];\n if (lastKf) {\n self._target[track.propName] = lastKf.rawValue;\n }\n track.setFinished();\n }\n else {\n tracks.push(track);\n }\n }\n }\n if (tracks.length || this._force) {\n var clip = new Clip({\n life: maxTime,\n loop: this._loop,\n delay: this._delay || 0,\n onframe: function (percent) {\n self._started = 2;\n var additiveAnimators = self._additiveAnimators;\n if (additiveAnimators) {\n var stillHasAdditiveAnimator = false;\n for (var i = 0; i < additiveAnimators.length; i++) {\n if (additiveAnimators[i]._clip) {\n stillHasAdditiveAnimator = true;\n break;\n }\n }\n if (!stillHasAdditiveAnimator) {\n self._additiveAnimators = null;\n }\n }\n for (var i = 0; i < tracks.length; i++) {\n tracks[i].step(self._target, percent);\n }\n var onframeList = self._onframeCbs;\n if (onframeList) {\n for (var i = 0; i < onframeList.length; i++) {\n onframeList[i](self._target, percent);\n }\n }\n },\n ondestroy: function () {\n self._doneCallback();\n }\n });\n this._clip = clip;\n if (this.animation) {\n this.animation.addClip(clip);\n }\n if (easing) {\n clip.setEasing(easing);\n }\n }\n else {\n this._doneCallback();\n }\n return this;\n };\n Animator.prototype.stop = function (forwardToLast) {\n if (!this._clip) {\n return;\n }\n var clip = this._clip;\n if (forwardToLast) {\n clip.onframe(1);\n }\n this._abortedCallback();\n };\n Animator.prototype.delay = function (time) {\n this._delay = time;\n return this;\n };\n Animator.prototype.during = function (cb) {\n if (cb) {\n if (!this._onframeCbs) {\n this._onframeCbs = [];\n }\n this._onframeCbs.push(cb);\n }\n return this;\n };\n Animator.prototype.done = function (cb) {\n if (cb) {\n if (!this._doneCbs) {\n this._doneCbs = [];\n }\n this._doneCbs.push(cb);\n }\n return this;\n };\n Animator.prototype.aborted = function (cb) {\n if (cb) {\n if (!this._abortedCbs) {\n this._abortedCbs = [];\n }\n this._abortedCbs.push(cb);\n }\n return this;\n };\n Animator.prototype.getClip = function () {\n return this._clip;\n };\n Animator.prototype.getTrack = function (propName) {\n return this._tracks[propName];\n };\n Animator.prototype.getTracks = function () {\n var _this = this;\n return map(this._trackKeys, function (key) { return _this._tracks[key]; });\n };\n Animator.prototype.stopTracks = function (propNames, forwardToLast) {\n if (!propNames.length || !this._clip) {\n return true;\n }\n var tracks = this._tracks;\n var tracksKeys = this._trackKeys;\n for (var i = 0; i < propNames.length; i++) {\n var track = tracks[propNames[i]];\n if (track && !track.isFinished()) {\n if (forwardToLast) {\n track.step(this._target, 1);\n }\n else if (this._started === 1) {\n track.step(this._target, 0);\n }\n track.setFinished();\n }\n }\n var allAborted = true;\n for (var i = 0; i < tracksKeys.length; i++) {\n if (!tracks[tracksKeys[i]].isFinished()) {\n allAborted = false;\n break;\n }\n }\n if (allAborted) {\n this._abortedCallback();\n }\n return allAborted;\n };\n Animator.prototype.saveTo = function (target, trackKeys, firstOrLast) {\n if (!target) {\n return;\n }\n trackKeys = trackKeys || this._trackKeys;\n for (var i = 0; i < trackKeys.length; i++) {\n var propName = trackKeys[i];\n var track = this._tracks[propName];\n if (!track || track.isFinished()) {\n continue;\n }\n var kfs = track.keyframes;\n var kf = kfs[firstOrLast ? 0 : kfs.length - 1];\n if (kf) {\n target[propName] = cloneValue(kf.rawValue);\n }\n }\n };\n Animator.prototype.__changeFinalValue = function (finalProps, trackKeys) {\n trackKeys = trackKeys || keys(finalProps);\n for (var i = 0; i < trackKeys.length; i++) {\n var propName = trackKeys[i];\n var track = this._tracks[propName];\n if (!track) {\n continue;\n }\n var kfs = track.keyframes;\n if (kfs.length > 1) {\n var lastKf = kfs.pop();\n track.addKeyframe(lastKf.time, finalProps[propName]);\n track.prepare(this._maxTime, track.getAdditiveTrack());\n }\n }\n };\n return Animator;\n}());\nexport default Animator;\n","import easingFuncs from './easing.js';\nimport { isFunction, noop } from '../core/util.js';\nimport { createCubicEasingFunc } from './cubicEasing.js';\nvar Clip = (function () {\n function Clip(opts) {\n this._inited = false;\n this._startTime = 0;\n this._pausedTime = 0;\n this._paused = false;\n this._life = opts.life || 1000;\n this._delay = opts.delay || 0;\n this.loop = opts.loop || false;\n this.onframe = opts.onframe || noop;\n this.ondestroy = opts.ondestroy || noop;\n this.onrestart = opts.onrestart || noop;\n opts.easing && this.setEasing(opts.easing);\n }\n Clip.prototype.step = function (globalTime, deltaTime) {\n if (!this._inited) {\n this._startTime = globalTime + this._delay;\n this._inited = true;\n }\n if (this._paused) {\n this._pausedTime += deltaTime;\n return;\n }\n var life = this._life;\n var elapsedTime = globalTime - this._startTime - this._pausedTime;\n var percent = elapsedTime / life;\n if (percent < 0) {\n percent = 0;\n }\n percent = Math.min(percent, 1);\n var easingFunc = this.easingFunc;\n var schedule = easingFunc ? easingFunc(percent) : percent;\n this.onframe(schedule);\n if (percent === 1) {\n if (this.loop) {\n var remainder = elapsedTime % life;\n this._startTime = globalTime - remainder;\n this._pausedTime = 0;\n this.onrestart();\n }\n else {\n return true;\n }\n }\n return false;\n };\n Clip.prototype.pause = function () {\n this._paused = true;\n };\n Clip.prototype.resume = function () {\n this._paused = false;\n };\n Clip.prototype.setEasing = function (easing) {\n this.easing = easing;\n this.easingFunc = isFunction(easing)\n ? easing\n : easingFuncs[easing] || createCubicEasingFunc(easing);\n };\n return Clip;\n}());\nexport default Clip;\n","import { cubicAt, cubicRootAt } from '../core/curve.js';\nimport { trim } from '../core/util.js';\nvar regexp = /cubic-bezier\\(([0-9,\\.e ]+)\\)/;\nexport function createCubicEasingFunc(cubicEasingStr) {\n var cubic = cubicEasingStr && regexp.exec(cubicEasingStr);\n if (cubic) {\n var points = cubic[1].split(',');\n var a_1 = +trim(points[0]);\n var b_1 = +trim(points[1]);\n var c_1 = +trim(points[2]);\n var d_1 = +trim(points[3]);\n if (isNaN(a_1 + b_1 + c_1 + d_1)) {\n return;\n }\n var roots_1 = [];\n return function (p) {\n return p <= 0\n ? 0 : p >= 1\n ? 1\n : cubicRootAt(0, a_1, c_1, 1, p, roots_1) && cubicAt(0, b_1, d_1, 1, roots_1[0]);\n };\n }\n}\n","var easingFuncs = {\n linear: function (k) {\n return k;\n },\n quadraticIn: function (k) {\n return k * k;\n },\n quadraticOut: function (k) {\n return k * (2 - k);\n },\n quadraticInOut: function (k) {\n if ((k *= 2) < 1) {\n return 0.5 * k * k;\n }\n return -0.5 * (--k * (k - 2) - 1);\n },\n cubicIn: function (k) {\n return k * k * k;\n },\n cubicOut: function (k) {\n return --k * k * k + 1;\n },\n cubicInOut: function (k) {\n if ((k *= 2) < 1) {\n return 0.5 * k * k * k;\n }\n return 0.5 * ((k -= 2) * k * k + 2);\n },\n quarticIn: function (k) {\n return k * k * k * k;\n },\n quarticOut: function (k) {\n return 1 - (--k * k * k * k);\n },\n quarticInOut: function (k) {\n if ((k *= 2) < 1) {\n return 0.5 * k * k * k * k;\n }\n return -0.5 * ((k -= 2) * k * k * k - 2);\n },\n quinticIn: function (k) {\n return k * k * k * k * k;\n },\n quinticOut: function (k) {\n return --k * k * k * k * k + 1;\n },\n quinticInOut: function (k) {\n if ((k *= 2) < 1) {\n return 0.5 * k * k * k * k * k;\n }\n return 0.5 * ((k -= 2) * k * k * k * k + 2);\n },\n sinusoidalIn: function (k) {\n return 1 - Math.cos(k * Math.PI / 2);\n },\n sinusoidalOut: function (k) {\n return Math.sin(k * Math.PI / 2);\n },\n sinusoidalInOut: function (k) {\n return 0.5 * (1 - Math.cos(Math.PI * k));\n },\n exponentialIn: function (k) {\n return k === 0 ? 0 : Math.pow(1024, k - 1);\n },\n exponentialOut: function (k) {\n return k === 1 ? 1 : 1 - Math.pow(2, -10 * k);\n },\n exponentialInOut: function (k) {\n if (k === 0) {\n return 0;\n }\n if (k === 1) {\n return 1;\n }\n if ((k *= 2) < 1) {\n return 0.5 * Math.pow(1024, k - 1);\n }\n return 0.5 * (-Math.pow(2, -10 * (k - 1)) + 2);\n },\n circularIn: function (k) {\n return 1 - Math.sqrt(1 - k * k);\n },\n circularOut: function (k) {\n return Math.sqrt(1 - (--k * k));\n },\n circularInOut: function (k) {\n if ((k *= 2) < 1) {\n return -0.5 * (Math.sqrt(1 - k * k) - 1);\n }\n return 0.5 * (Math.sqrt(1 - (k -= 2) * k) + 1);\n },\n elasticIn: function (k) {\n var s;\n var a = 0.1;\n var p = 0.4;\n if (k === 0) {\n return 0;\n }\n if (k === 1) {\n return 1;\n }\n if (!a || a < 1) {\n a = 1;\n s = p / 4;\n }\n else {\n s = p * Math.asin(1 / a) / (2 * Math.PI);\n }\n return -(a * Math.pow(2, 10 * (k -= 1))\n * Math.sin((k - s) * (2 * Math.PI) / p));\n },\n elasticOut: function (k) {\n var s;\n var a = 0.1;\n var p = 0.4;\n if (k === 0) {\n return 0;\n }\n if (k === 1) {\n return 1;\n }\n if (!a || a < 1) {\n a = 1;\n s = p / 4;\n }\n else {\n s = p * Math.asin(1 / a) / (2 * Math.PI);\n }\n return (a * Math.pow(2, -10 * k)\n * Math.sin((k - s) * (2 * Math.PI) / p) + 1);\n },\n elasticInOut: function (k) {\n var s;\n var a = 0.1;\n var p = 0.4;\n if (k === 0) {\n return 0;\n }\n if (k === 1) {\n return 1;\n }\n if (!a || a < 1) {\n a = 1;\n s = p / 4;\n }\n else {\n s = p * Math.asin(1 / a) / (2 * Math.PI);\n }\n if ((k *= 2) < 1) {\n return -0.5 * (a * Math.pow(2, 10 * (k -= 1))\n * Math.sin((k - s) * (2 * Math.PI) / p));\n }\n return a * Math.pow(2, -10 * (k -= 1))\n * Math.sin((k - s) * (2 * Math.PI) / p) * 0.5 + 1;\n },\n backIn: function (k) {\n var s = 1.70158;\n return k * k * ((s + 1) * k - s);\n },\n backOut: function (k) {\n var s = 1.70158;\n return --k * k * ((s + 1) * k + s) + 1;\n },\n backInOut: function (k) {\n var s = 1.70158 * 1.525;\n if ((k *= 2) < 1) {\n return 0.5 * (k * k * ((s + 1) * k - s));\n }\n return 0.5 * ((k -= 2) * k * ((s + 1) * k + s) + 2);\n },\n bounceIn: function (k) {\n return 1 - easingFuncs.bounceOut(1 - k);\n },\n bounceOut: function (k) {\n if (k < (1 / 2.75)) {\n return 7.5625 * k * k;\n }\n else if (k < (2 / 2.75)) {\n return 7.5625 * (k -= (1.5 / 2.75)) * k + 0.75;\n }\n else if (k < (2.5 / 2.75)) {\n return 7.5625 * (k -= (2.25 / 2.75)) * k + 0.9375;\n }\n else {\n return 7.5625 * (k -= (2.625 / 2.75)) * k + 0.984375;\n }\n },\n bounceInOut: function (k) {\n if (k < 0.5) {\n return easingFuncs.bounceIn(k * 2) * 0.5;\n }\n return easingFuncs.bounceOut(k * 2 - 1) * 0.5 + 0.5;\n }\n};\nexport default easingFuncs;\n","import env from '../core/env.js';\nvar requestAnimationFrame;\nrequestAnimationFrame = (env.hasGlobalWindow\n && ((window.requestAnimationFrame && window.requestAnimationFrame.bind(window))\n || (window.msRequestAnimationFrame && window.msRequestAnimationFrame.bind(window))\n || window.mozRequestAnimationFrame\n || window.webkitRequestAnimationFrame)) || function (func) {\n return setTimeout(func, 16);\n};\nexport default requestAnimationFrame;\n","import { __extends } from \"tslib\";\nimport * as util from '../core/util.js';\nimport { devicePixelRatio } from '../config.js';\nimport Eventful from '../core/Eventful.js';\nimport { getCanvasGradient } from './helper.js';\nimport { createCanvasPattern } from './graphic.js';\nimport BoundingRect from '../core/BoundingRect.js';\nimport { REDRAW_BIT } from '../graphic/constants.js';\nimport { platformApi } from '../core/platform.js';\nfunction createDom(id, painter, dpr) {\n var newDom = platformApi.createCanvas();\n var width = painter.getWidth();\n var height = painter.getHeight();\n var newDomStyle = newDom.style;\n if (newDomStyle) {\n newDomStyle.position = 'absolute';\n newDomStyle.left = '0';\n newDomStyle.top = '0';\n newDomStyle.width = width + 'px';\n newDomStyle.height = height + 'px';\n newDom.setAttribute('data-zr-dom-id', id);\n }\n newDom.width = width * dpr;\n newDom.height = height * dpr;\n return newDom;\n}\n;\nvar Layer = (function (_super) {\n __extends(Layer, _super);\n function Layer(id, painter, dpr) {\n var _this = _super.call(this) || this;\n _this.motionBlur = false;\n _this.lastFrameAlpha = 0.7;\n _this.dpr = 1;\n _this.virtual = false;\n _this.config = {};\n _this.incremental = false;\n _this.zlevel = 0;\n _this.maxRepaintRectCount = 5;\n _this.__dirty = true;\n _this.__firstTimePaint = true;\n _this.__used = false;\n _this.__drawIndex = 0;\n _this.__startIndex = 0;\n _this.__endIndex = 0;\n _this.__prevStartIndex = null;\n _this.__prevEndIndex = null;\n var dom;\n dpr = dpr || devicePixelRatio;\n if (typeof id === 'string') {\n dom = createDom(id, painter, dpr);\n }\n else if (util.isObject(id)) {\n dom = id;\n id = dom.id;\n }\n _this.id = id;\n _this.dom = dom;\n var domStyle = dom.style;\n if (domStyle) {\n util.disableUserSelect(dom);\n dom.onselectstart = function () { return false; };\n domStyle.padding = '0';\n domStyle.margin = '0';\n domStyle.borderWidth = '0';\n }\n _this.painter = painter;\n _this.dpr = dpr;\n return _this;\n }\n Layer.prototype.getElementCount = function () {\n return this.__endIndex - this.__startIndex;\n };\n Layer.prototype.afterBrush = function () {\n this.__prevStartIndex = this.__startIndex;\n this.__prevEndIndex = this.__endIndex;\n };\n Layer.prototype.initContext = function () {\n this.ctx = this.dom.getContext('2d');\n this.ctx.dpr = this.dpr;\n };\n Layer.prototype.setUnpainted = function () {\n this.__firstTimePaint = true;\n };\n Layer.prototype.createBackBuffer = function () {\n var dpr = this.dpr;\n this.domBack = createDom('back-' + this.id, this.painter, dpr);\n this.ctxBack = this.domBack.getContext('2d');\n if (dpr !== 1) {\n this.ctxBack.scale(dpr, dpr);\n }\n };\n Layer.prototype.createRepaintRects = function (displayList, prevList, viewWidth, viewHeight) {\n if (this.__firstTimePaint) {\n this.__firstTimePaint = false;\n return null;\n }\n var mergedRepaintRects = [];\n var maxRepaintRectCount = this.maxRepaintRectCount;\n var full = false;\n var pendingRect = new BoundingRect(0, 0, 0, 0);\n function addRectToMergePool(rect) {\n if (!rect.isFinite() || rect.isZero()) {\n return;\n }\n if (mergedRepaintRects.length === 0) {\n var boundingRect = new BoundingRect(0, 0, 0, 0);\n boundingRect.copy(rect);\n mergedRepaintRects.push(boundingRect);\n }\n else {\n var isMerged = false;\n var minDeltaArea = Infinity;\n var bestRectToMergeIdx = 0;\n for (var i = 0; i < mergedRepaintRects.length; ++i) {\n var mergedRect = mergedRepaintRects[i];\n if (mergedRect.intersect(rect)) {\n var pendingRect_1 = new BoundingRect(0, 0, 0, 0);\n pendingRect_1.copy(mergedRect);\n pendingRect_1.union(rect);\n mergedRepaintRects[i] = pendingRect_1;\n isMerged = true;\n break;\n }\n else if (full) {\n pendingRect.copy(rect);\n pendingRect.union(mergedRect);\n var aArea = rect.width * rect.height;\n var bArea = mergedRect.width * mergedRect.height;\n var pendingArea = pendingRect.width * pendingRect.height;\n var deltaArea = pendingArea - aArea - bArea;\n if (deltaArea < minDeltaArea) {\n minDeltaArea = deltaArea;\n bestRectToMergeIdx = i;\n }\n }\n }\n if (full) {\n mergedRepaintRects[bestRectToMergeIdx].union(rect);\n isMerged = true;\n }\n if (!isMerged) {\n var boundingRect = new BoundingRect(0, 0, 0, 0);\n boundingRect.copy(rect);\n mergedRepaintRects.push(boundingRect);\n }\n if (!full) {\n full = mergedRepaintRects.length >= maxRepaintRectCount;\n }\n }\n }\n for (var i = this.__startIndex; i < this.__endIndex; ++i) {\n var el = displayList[i];\n if (el) {\n var shouldPaint = el.shouldBePainted(viewWidth, viewHeight, true, true);\n var prevRect = el.__isRendered && ((el.__dirty & REDRAW_BIT) || !shouldPaint)\n ? el.getPrevPaintRect()\n : null;\n if (prevRect) {\n addRectToMergePool(prevRect);\n }\n var curRect = shouldPaint && ((el.__dirty & REDRAW_BIT) || !el.__isRendered)\n ? el.getPaintRect()\n : null;\n if (curRect) {\n addRectToMergePool(curRect);\n }\n }\n }\n for (var i = this.__prevStartIndex; i < this.__prevEndIndex; ++i) {\n var el = prevList[i];\n var shouldPaint = el.shouldBePainted(viewWidth, viewHeight, true, true);\n if (el && (!shouldPaint || !el.__zr) && el.__isRendered) {\n var prevRect = el.getPrevPaintRect();\n if (prevRect) {\n addRectToMergePool(prevRect);\n }\n }\n }\n var hasIntersections;\n do {\n hasIntersections = false;\n for (var i = 0; i < mergedRepaintRects.length;) {\n if (mergedRepaintRects[i].isZero()) {\n mergedRepaintRects.splice(i, 1);\n continue;\n }\n for (var j = i + 1; j < mergedRepaintRects.length;) {\n if (mergedRepaintRects[i].intersect(mergedRepaintRects[j])) {\n hasIntersections = true;\n mergedRepaintRects[i].union(mergedRepaintRects[j]);\n mergedRepaintRects.splice(j, 1);\n }\n else {\n j++;\n }\n }\n i++;\n }\n } while (hasIntersections);\n this._paintRects = mergedRepaintRects;\n return mergedRepaintRects;\n };\n Layer.prototype.debugGetPaintRects = function () {\n return (this._paintRects || []).slice();\n };\n Layer.prototype.resize = function (width, height) {\n var dpr = this.dpr;\n var dom = this.dom;\n var domStyle = dom.style;\n var domBack = this.domBack;\n if (domStyle) {\n domStyle.width = width + 'px';\n domStyle.height = height + 'px';\n }\n dom.width = width * dpr;\n dom.height = height * dpr;\n if (domBack) {\n domBack.width = width * dpr;\n domBack.height = height * dpr;\n if (dpr !== 1) {\n this.ctxBack.scale(dpr, dpr);\n }\n }\n };\n Layer.prototype.clear = function (clearAll, clearColor, repaintRects) {\n var dom = this.dom;\n var ctx = this.ctx;\n var width = dom.width;\n var height = dom.height;\n clearColor = clearColor || this.clearColor;\n var haveMotionBLur = this.motionBlur && !clearAll;\n var lastFrameAlpha = this.lastFrameAlpha;\n var dpr = this.dpr;\n var self = this;\n if (haveMotionBLur) {\n if (!this.domBack) {\n this.createBackBuffer();\n }\n this.ctxBack.globalCompositeOperation = 'copy';\n this.ctxBack.drawImage(dom, 0, 0, width / dpr, height / dpr);\n }\n var domBack = this.domBack;\n function doClear(x, y, width, height) {\n ctx.clearRect(x, y, width, height);\n if (clearColor && clearColor !== 'transparent') {\n var clearColorGradientOrPattern = void 0;\n if (util.isGradientObject(clearColor)) {\n var shouldCache = clearColor.global || (clearColor.__width === width\n && clearColor.__height === height);\n clearColorGradientOrPattern = shouldCache\n && clearColor.__canvasGradient\n || getCanvasGradient(ctx, clearColor, {\n x: 0,\n y: 0,\n width: width,\n height: height\n });\n clearColor.__canvasGradient = clearColorGradientOrPattern;\n clearColor.__width = width;\n clearColor.__height = height;\n }\n else if (util.isImagePatternObject(clearColor)) {\n clearColor.scaleX = clearColor.scaleX || dpr;\n clearColor.scaleY = clearColor.scaleY || dpr;\n clearColorGradientOrPattern = createCanvasPattern(ctx, clearColor, {\n dirty: function () {\n self.setUnpainted();\n self.__painter.refresh();\n }\n });\n }\n ctx.save();\n ctx.fillStyle = clearColorGradientOrPattern || clearColor;\n ctx.fillRect(x, y, width, height);\n ctx.restore();\n }\n if (haveMotionBLur) {\n ctx.save();\n ctx.globalAlpha = lastFrameAlpha;\n ctx.drawImage(domBack, x, y, width, height);\n ctx.restore();\n }\n }\n ;\n if (!repaintRects || haveMotionBLur) {\n doClear(0, 0, width, height);\n }\n else if (repaintRects.length) {\n util.each(repaintRects, function (rect) {\n doClear(rect.x * dpr, rect.y * dpr, rect.width * dpr, rect.height * dpr);\n });\n }\n };\n return Layer;\n}(Eventful));\nexport default Layer;\n","import { devicePixelRatio } from '../config.js';\nimport * as util from '../core/util.js';\nimport Layer from './Layer.js';\nimport requestAnimationFrame from '../animation/requestAnimationFrame.js';\nimport env from '../core/env.js';\nimport { brush, brushSingle } from './graphic.js';\nimport { REDRAW_BIT } from '../graphic/constants.js';\nimport { getSize } from './helper.js';\nvar HOVER_LAYER_ZLEVEL = 1e5;\nvar CANVAS_ZLEVEL = 314159;\nvar EL_AFTER_INCREMENTAL_INC = 0.01;\nvar INCREMENTAL_INC = 0.001;\nfunction isLayerValid(layer) {\n if (!layer) {\n return false;\n }\n if (layer.__builtin__) {\n return true;\n }\n if (typeof (layer.resize) !== 'function'\n || typeof (layer.refresh) !== 'function') {\n return false;\n }\n return true;\n}\nfunction createRoot(width, height) {\n var domRoot = document.createElement('div');\n domRoot.style.cssText = [\n 'position:relative',\n 'width:' + width + 'px',\n 'height:' + height + 'px',\n 'padding:0',\n 'margin:0',\n 'border-width:0'\n ].join(';') + ';';\n return domRoot;\n}\nvar CanvasPainter = (function () {\n function CanvasPainter(root, storage, opts, id) {\n this.type = 'canvas';\n this._zlevelList = [];\n this._prevDisplayList = [];\n this._layers = {};\n this._layerConfig = {};\n this._needsManuallyCompositing = false;\n this.type = 'canvas';\n var singleCanvas = !root.nodeName\n || root.nodeName.toUpperCase() === 'CANVAS';\n this._opts = opts = util.extend({}, opts || {});\n this.dpr = opts.devicePixelRatio || devicePixelRatio;\n this._singleCanvas = singleCanvas;\n this.root = root;\n var rootStyle = root.style;\n if (rootStyle) {\n util.disableUserSelect(root);\n root.innerHTML = '';\n }\n this.storage = storage;\n var zlevelList = this._zlevelList;\n this._prevDisplayList = [];\n var layers = this._layers;\n if (!singleCanvas) {\n this._width = getSize(root, 0, opts);\n this._height = getSize(root, 1, opts);\n var domRoot = this._domRoot = createRoot(this._width, this._height);\n root.appendChild(domRoot);\n }\n else {\n var rootCanvas = root;\n var width = rootCanvas.width;\n var height = rootCanvas.height;\n if (opts.width != null) {\n width = opts.width;\n }\n if (opts.height != null) {\n height = opts.height;\n }\n this.dpr = opts.devicePixelRatio || 1;\n rootCanvas.width = width * this.dpr;\n rootCanvas.height = height * this.dpr;\n this._width = width;\n this._height = height;\n var mainLayer = new Layer(rootCanvas, this, this.dpr);\n mainLayer.__builtin__ = true;\n mainLayer.initContext();\n layers[CANVAS_ZLEVEL] = mainLayer;\n mainLayer.zlevel = CANVAS_ZLEVEL;\n zlevelList.push(CANVAS_ZLEVEL);\n this._domRoot = root;\n }\n }\n CanvasPainter.prototype.getType = function () {\n return 'canvas';\n };\n CanvasPainter.prototype.isSingleCanvas = function () {\n return this._singleCanvas;\n };\n CanvasPainter.prototype.getViewportRoot = function () {\n return this._domRoot;\n };\n CanvasPainter.prototype.getViewportRootOffset = function () {\n var viewportRoot = this.getViewportRoot();\n if (viewportRoot) {\n return {\n offsetLeft: viewportRoot.offsetLeft || 0,\n offsetTop: viewportRoot.offsetTop || 0\n };\n }\n };\n CanvasPainter.prototype.refresh = function (paintAll) {\n var list = this.storage.getDisplayList(true);\n var prevList = this._prevDisplayList;\n var zlevelList = this._zlevelList;\n this._redrawId = Math.random();\n this._paintList(list, prevList, paintAll, this._redrawId);\n for (var i = 0; i < zlevelList.length; i++) {\n var z = zlevelList[i];\n var layer = this._layers[z];\n if (!layer.__builtin__ && layer.refresh) {\n var clearColor = i === 0 ? this._backgroundColor : null;\n layer.refresh(clearColor);\n }\n }\n if (this._opts.useDirtyRect) {\n this._prevDisplayList = list.slice();\n }\n return this;\n };\n CanvasPainter.prototype.refreshHover = function () {\n this._paintHoverList(this.storage.getDisplayList(false));\n };\n CanvasPainter.prototype._paintHoverList = function (list) {\n var len = list.length;\n var hoverLayer = this._hoverlayer;\n hoverLayer && hoverLayer.clear();\n if (!len) {\n return;\n }\n var scope = {\n inHover: true,\n viewWidth: this._width,\n viewHeight: this._height\n };\n var ctx;\n for (var i = 0; i < len; i++) {\n var el = list[i];\n if (el.__inHover) {\n if (!hoverLayer) {\n hoverLayer = this._hoverlayer = this.getLayer(HOVER_LAYER_ZLEVEL);\n }\n if (!ctx) {\n ctx = hoverLayer.ctx;\n ctx.save();\n }\n brush(ctx, el, scope, i === len - 1);\n }\n }\n if (ctx) {\n ctx.restore();\n }\n };\n CanvasPainter.prototype.getHoverLayer = function () {\n return this.getLayer(HOVER_LAYER_ZLEVEL);\n };\n CanvasPainter.prototype.paintOne = function (ctx, el) {\n brushSingle(ctx, el);\n };\n CanvasPainter.prototype._paintList = function (list, prevList, paintAll, redrawId) {\n if (this._redrawId !== redrawId) {\n return;\n }\n paintAll = paintAll || false;\n this._updateLayerStatus(list);\n var _a = this._doPaintList(list, prevList, paintAll), finished = _a.finished, needsRefreshHover = _a.needsRefreshHover;\n if (this._needsManuallyCompositing) {\n this._compositeManually();\n }\n if (needsRefreshHover) {\n this._paintHoverList(list);\n }\n if (!finished) {\n var self_1 = this;\n requestAnimationFrame(function () {\n self_1._paintList(list, prevList, paintAll, redrawId);\n });\n }\n else {\n this.eachLayer(function (layer) {\n layer.afterBrush && layer.afterBrush();\n });\n }\n };\n CanvasPainter.prototype._compositeManually = function () {\n var ctx = this.getLayer(CANVAS_ZLEVEL).ctx;\n var width = this._domRoot.width;\n var height = this._domRoot.height;\n ctx.clearRect(0, 0, width, height);\n this.eachBuiltinLayer(function (layer) {\n if (layer.virtual) {\n ctx.drawImage(layer.dom, 0, 0, width, height);\n }\n });\n };\n CanvasPainter.prototype._doPaintList = function (list, prevList, paintAll) {\n var _this = this;\n var layerList = [];\n var useDirtyRect = this._opts.useDirtyRect;\n for (var zi = 0; zi < this._zlevelList.length; zi++) {\n var zlevel = this._zlevelList[zi];\n var layer = this._layers[zlevel];\n if (layer.__builtin__\n && layer !== this._hoverlayer\n && (layer.__dirty || paintAll)) {\n layerList.push(layer);\n }\n }\n var finished = true;\n var needsRefreshHover = false;\n var _loop_1 = function (k) {\n var layer = layerList[k];\n var ctx = layer.ctx;\n var repaintRects = useDirtyRect\n && layer.createRepaintRects(list, prevList, this_1._width, this_1._height);\n var start = paintAll ? layer.__startIndex : layer.__drawIndex;\n var useTimer = !paintAll && layer.incremental && Date.now;\n var startTime = useTimer && Date.now();\n var clearColor = layer.zlevel === this_1._zlevelList[0]\n ? this_1._backgroundColor : null;\n if (layer.__startIndex === layer.__endIndex) {\n layer.clear(false, clearColor, repaintRects);\n }\n else if (start === layer.__startIndex) {\n var firstEl = list[start];\n if (!firstEl.incremental || !firstEl.notClear || paintAll) {\n layer.clear(false, clearColor, repaintRects);\n }\n }\n if (start === -1) {\n console.error('For some unknown reason. drawIndex is -1');\n start = layer.__startIndex;\n }\n var i;\n var repaint = function (repaintRect) {\n var scope = {\n inHover: false,\n allClipped: false,\n prevEl: null,\n viewWidth: _this._width,\n viewHeight: _this._height\n };\n for (i = start; i < layer.__endIndex; i++) {\n var el = list[i];\n if (el.__inHover) {\n needsRefreshHover = true;\n }\n _this._doPaintEl(el, layer, useDirtyRect, repaintRect, scope, i === layer.__endIndex - 1);\n if (useTimer) {\n var dTime = Date.now() - startTime;\n if (dTime > 15) {\n break;\n }\n }\n }\n if (scope.prevElClipPaths) {\n ctx.restore();\n }\n };\n if (repaintRects) {\n if (repaintRects.length === 0) {\n i = layer.__endIndex;\n }\n else {\n var dpr = this_1.dpr;\n for (var r = 0; r < repaintRects.length; ++r) {\n var rect = repaintRects[r];\n ctx.save();\n ctx.beginPath();\n ctx.rect(rect.x * dpr, rect.y * dpr, rect.width * dpr, rect.height * dpr);\n ctx.clip();\n repaint(rect);\n ctx.restore();\n }\n }\n }\n else {\n ctx.save();\n repaint();\n ctx.restore();\n }\n layer.__drawIndex = i;\n if (layer.__drawIndex < layer.__endIndex) {\n finished = false;\n }\n };\n var this_1 = this;\n for (var k = 0; k < layerList.length; k++) {\n _loop_1(k);\n }\n if (env.wxa) {\n util.each(this._layers, function (layer) {\n if (layer && layer.ctx && layer.ctx.draw) {\n layer.ctx.draw();\n }\n });\n }\n return {\n finished: finished,\n needsRefreshHover: needsRefreshHover\n };\n };\n CanvasPainter.prototype._doPaintEl = function (el, currentLayer, useDirtyRect, repaintRect, scope, isLast) {\n var ctx = currentLayer.ctx;\n if (useDirtyRect) {\n var paintRect = el.getPaintRect();\n if (!repaintRect || paintRect && paintRect.intersect(repaintRect)) {\n brush(ctx, el, scope, isLast);\n el.setPrevPaintRect(paintRect);\n }\n }\n else {\n brush(ctx, el, scope, isLast);\n }\n };\n CanvasPainter.prototype.getLayer = function (zlevel, virtual) {\n if (this._singleCanvas && !this._needsManuallyCompositing) {\n zlevel = CANVAS_ZLEVEL;\n }\n var layer = this._layers[zlevel];\n if (!layer) {\n layer = new Layer('zr_' + zlevel, this, this.dpr);\n layer.zlevel = zlevel;\n layer.__builtin__ = true;\n if (this._layerConfig[zlevel]) {\n util.merge(layer, this._layerConfig[zlevel], true);\n }\n else if (this._layerConfig[zlevel - EL_AFTER_INCREMENTAL_INC]) {\n util.merge(layer, this._layerConfig[zlevel - EL_AFTER_INCREMENTAL_INC], true);\n }\n if (virtual) {\n layer.virtual = virtual;\n }\n this.insertLayer(zlevel, layer);\n layer.initContext();\n }\n return layer;\n };\n CanvasPainter.prototype.insertLayer = function (zlevel, layer) {\n var layersMap = this._layers;\n var zlevelList = this._zlevelList;\n var len = zlevelList.length;\n var domRoot = this._domRoot;\n var prevLayer = null;\n var i = -1;\n if (layersMap[zlevel]) {\n if (process.env.NODE_ENV !== 'production') {\n util.logError('ZLevel ' + zlevel + ' has been used already');\n }\n return;\n }\n if (!isLayerValid(layer)) {\n if (process.env.NODE_ENV !== 'production') {\n util.logError('Layer of zlevel ' + zlevel + ' is not valid');\n }\n return;\n }\n if (len > 0 && zlevel > zlevelList[0]) {\n for (i = 0; i < len - 1; i++) {\n if (zlevelList[i] < zlevel\n && zlevelList[i + 1] > zlevel) {\n break;\n }\n }\n prevLayer = layersMap[zlevelList[i]];\n }\n zlevelList.splice(i + 1, 0, zlevel);\n layersMap[zlevel] = layer;\n if (!layer.virtual) {\n if (prevLayer) {\n var prevDom = prevLayer.dom;\n if (prevDom.nextSibling) {\n domRoot.insertBefore(layer.dom, prevDom.nextSibling);\n }\n else {\n domRoot.appendChild(layer.dom);\n }\n }\n else {\n if (domRoot.firstChild) {\n domRoot.insertBefore(layer.dom, domRoot.firstChild);\n }\n else {\n domRoot.appendChild(layer.dom);\n }\n }\n }\n layer.__painter = this;\n };\n CanvasPainter.prototype.eachLayer = function (cb, context) {\n var zlevelList = this._zlevelList;\n for (var i = 0; i < zlevelList.length; i++) {\n var z = zlevelList[i];\n cb.call(context, this._layers[z], z);\n }\n };\n CanvasPainter.prototype.eachBuiltinLayer = function (cb, context) {\n var zlevelList = this._zlevelList;\n for (var i = 0; i < zlevelList.length; i++) {\n var z = zlevelList[i];\n var layer = this._layers[z];\n if (layer.__builtin__) {\n cb.call(context, layer, z);\n }\n }\n };\n CanvasPainter.prototype.eachOtherLayer = function (cb, context) {\n var zlevelList = this._zlevelList;\n for (var i = 0; i < zlevelList.length; i++) {\n var z = zlevelList[i];\n var layer = this._layers[z];\n if (!layer.__builtin__) {\n cb.call(context, layer, z);\n }\n }\n };\n CanvasPainter.prototype.getLayers = function () {\n return this._layers;\n };\n CanvasPainter.prototype._updateLayerStatus = function (list) {\n this.eachBuiltinLayer(function (layer, z) {\n layer.__dirty = layer.__used = false;\n });\n function updatePrevLayer(idx) {\n if (prevLayer) {\n if (prevLayer.__endIndex !== idx) {\n prevLayer.__dirty = true;\n }\n prevLayer.__endIndex = idx;\n }\n }\n if (this._singleCanvas) {\n for (var i_1 = 1; i_1 < list.length; i_1++) {\n var el = list[i_1];\n if (el.zlevel !== list[i_1 - 1].zlevel || el.incremental) {\n this._needsManuallyCompositing = true;\n break;\n }\n }\n }\n var prevLayer = null;\n var incrementalLayerCount = 0;\n var prevZlevel;\n var i;\n for (i = 0; i < list.length; i++) {\n var el = list[i];\n var zlevel = el.zlevel;\n var layer = void 0;\n if (prevZlevel !== zlevel) {\n prevZlevel = zlevel;\n incrementalLayerCount = 0;\n }\n if (el.incremental) {\n layer = this.getLayer(zlevel + INCREMENTAL_INC, this._needsManuallyCompositing);\n layer.incremental = true;\n incrementalLayerCount = 1;\n }\n else {\n layer = this.getLayer(zlevel + (incrementalLayerCount > 0 ? EL_AFTER_INCREMENTAL_INC : 0), this._needsManuallyCompositing);\n }\n if (!layer.__builtin__) {\n util.logError('ZLevel ' + zlevel + ' has been used by unkown layer ' + layer.id);\n }\n if (layer !== prevLayer) {\n layer.__used = true;\n if (layer.__startIndex !== i) {\n layer.__dirty = true;\n }\n layer.__startIndex = i;\n if (!layer.incremental) {\n layer.__drawIndex = i;\n }\n else {\n layer.__drawIndex = -1;\n }\n updatePrevLayer(i);\n prevLayer = layer;\n }\n if ((el.__dirty & REDRAW_BIT) && !el.__inHover) {\n layer.__dirty = true;\n if (layer.incremental && layer.__drawIndex < 0) {\n layer.__drawIndex = i;\n }\n }\n }\n updatePrevLayer(i);\n this.eachBuiltinLayer(function (layer, z) {\n if (!layer.__used && layer.getElementCount() > 0) {\n layer.__dirty = true;\n layer.__startIndex = layer.__endIndex = layer.__drawIndex = 0;\n }\n if (layer.__dirty && layer.__drawIndex < 0) {\n layer.__drawIndex = layer.__startIndex;\n }\n });\n };\n CanvasPainter.prototype.clear = function () {\n this.eachBuiltinLayer(this._clearLayer);\n return this;\n };\n CanvasPainter.prototype._clearLayer = function (layer) {\n layer.clear();\n };\n CanvasPainter.prototype.setBackgroundColor = function (backgroundColor) {\n this._backgroundColor = backgroundColor;\n util.each(this._layers, function (layer) {\n layer.setUnpainted();\n });\n };\n CanvasPainter.prototype.configLayer = function (zlevel, config) {\n if (config) {\n var layerConfig = this._layerConfig;\n if (!layerConfig[zlevel]) {\n layerConfig[zlevel] = config;\n }\n else {\n util.merge(layerConfig[zlevel], config, true);\n }\n for (var i = 0; i < this._zlevelList.length; i++) {\n var _zlevel = this._zlevelList[i];\n if (_zlevel === zlevel || _zlevel === zlevel + EL_AFTER_INCREMENTAL_INC) {\n var layer = this._layers[_zlevel];\n util.merge(layer, layerConfig[zlevel], true);\n }\n }\n }\n };\n CanvasPainter.prototype.delLayer = function (zlevel) {\n var layers = this._layers;\n var zlevelList = this._zlevelList;\n var layer = layers[zlevel];\n if (!layer) {\n return;\n }\n layer.dom.parentNode.removeChild(layer.dom);\n delete layers[zlevel];\n zlevelList.splice(util.indexOf(zlevelList, zlevel), 1);\n };\n CanvasPainter.prototype.resize = function (width, height) {\n if (!this._domRoot.style) {\n if (width == null || height == null) {\n return;\n }\n this._width = width;\n this._height = height;\n this.getLayer(CANVAS_ZLEVEL).resize(width, height);\n }\n else {\n var domRoot = this._domRoot;\n domRoot.style.display = 'none';\n var opts = this._opts;\n var root = this.root;\n width != null && (opts.width = width);\n height != null && (opts.height = height);\n width = getSize(root, 0, opts);\n height = getSize(root, 1, opts);\n domRoot.style.display = '';\n if (this._width !== width || height !== this._height) {\n domRoot.style.width = width + 'px';\n domRoot.style.height = height + 'px';\n for (var id in this._layers) {\n if (this._layers.hasOwnProperty(id)) {\n this._layers[id].resize(width, height);\n }\n }\n this.refresh(true);\n }\n this._width = width;\n this._height = height;\n }\n return this;\n };\n CanvasPainter.prototype.clearLayer = function (zlevel) {\n var layer = this._layers[zlevel];\n if (layer) {\n layer.clear();\n }\n };\n CanvasPainter.prototype.dispose = function () {\n this.root.innerHTML = '';\n this.root =\n this.storage =\n this._domRoot =\n this._layers = null;\n };\n CanvasPainter.prototype.getRenderedCanvas = function (opts) {\n opts = opts || {};\n if (this._singleCanvas && !this._compositeManually) {\n return this._layers[CANVAS_ZLEVEL].dom;\n }\n var imageLayer = new Layer('image', this, opts.pixelRatio || this.dpr);\n imageLayer.initContext();\n imageLayer.clear(false, opts.backgroundColor || this._backgroundColor);\n var ctx = imageLayer.ctx;\n if (opts.pixelRatio <= this.dpr) {\n this.refresh();\n var width_1 = imageLayer.dom.width;\n var height_1 = imageLayer.dom.height;\n this.eachLayer(function (layer) {\n if (layer.__builtin__) {\n ctx.drawImage(layer.dom, 0, 0, width_1, height_1);\n }\n else if (layer.renderToCanvas) {\n ctx.save();\n layer.renderToCanvas(ctx);\n ctx.restore();\n }\n });\n }\n else {\n var scope = {\n inHover: false,\n viewWidth: this._width,\n viewHeight: this._height\n };\n var displayList = this.storage.getDisplayList(true);\n for (var i = 0, len = displayList.length; i < len; i++) {\n var el = displayList[i];\n brush(ctx, el, scope, i === len - 1);\n }\n }\n return imageLayer.dom;\n };\n CanvasPainter.prototype.getWidth = function () {\n return this._width;\n };\n CanvasPainter.prototype.getHeight = function () {\n return this._height;\n };\n return CanvasPainter;\n}());\nexport default CanvasPainter;\n;\n","import { isArray, isNumber, map } from '../core/util.js';\nexport function normalizeLineDash(lineType, lineWidth) {\n if (!lineType || lineType === 'solid' || !(lineWidth > 0)) {\n return null;\n }\n return lineType === 'dashed'\n ? [4 * lineWidth, 2 * lineWidth]\n : lineType === 'dotted'\n ? [lineWidth]\n : isNumber(lineType)\n ? [lineType] : isArray(lineType) ? lineType : null;\n}\nexport function getLineDash(el) {\n var style = el.style;\n var lineDash = style.lineDash && style.lineWidth > 0 && normalizeLineDash(style.lineDash, style.lineWidth);\n var lineDashOffset = style.lineDashOffset;\n if (lineDash) {\n var lineScale_1 = (style.strokeNoScale && el.getLineScale) ? el.getLineScale() : 1;\n if (lineScale_1 && lineScale_1 !== 1) {\n lineDash = map(lineDash, function (rawVal) {\n return rawVal / lineScale_1;\n });\n lineDashOffset /= lineScale_1;\n }\n }\n return [lineDash, lineDashOffset];\n}\n","import { DEFAULT_COMMON_STYLE } from '../graphic/Displayable.js';\nimport PathProxy from '../core/PathProxy.js';\nimport { createOrUpdateImage, isImageReady } from '../graphic/helper/image.js';\nimport { getCanvasGradient, isClipPathChanged } from './helper.js';\nimport Path from '../graphic/Path.js';\nimport ZRImage from '../graphic/Image.js';\nimport TSpan from '../graphic/TSpan.js';\nimport { RADIAN_TO_DEGREE } from '../core/util.js';\nimport { getLineDash } from './dashStyle.js';\nimport { REDRAW_BIT, SHAPE_CHANGED_BIT } from '../graphic/constants.js';\nimport { DEFAULT_FONT } from '../core/platform.js';\nvar pathProxyForDraw = new PathProxy(true);\nfunction styleHasStroke(style) {\n var stroke = style.stroke;\n return !(stroke == null || stroke === 'none' || !(style.lineWidth > 0));\n}\nfunction isValidStrokeFillStyle(strokeOrFill) {\n return typeof strokeOrFill === 'string' && strokeOrFill !== 'none';\n}\nfunction styleHasFill(style) {\n var fill = style.fill;\n return fill != null && fill !== 'none';\n}\nfunction doFillPath(ctx, style) {\n if (style.fillOpacity != null && style.fillOpacity !== 1) {\n var originalGlobalAlpha = ctx.globalAlpha;\n ctx.globalAlpha = style.fillOpacity * style.opacity;\n ctx.fill();\n ctx.globalAlpha = originalGlobalAlpha;\n }\n else {\n ctx.fill();\n }\n}\nfunction doStrokePath(ctx, style) {\n if (style.strokeOpacity != null && style.strokeOpacity !== 1) {\n var originalGlobalAlpha = ctx.globalAlpha;\n ctx.globalAlpha = style.strokeOpacity * style.opacity;\n ctx.stroke();\n ctx.globalAlpha = originalGlobalAlpha;\n }\n else {\n ctx.stroke();\n }\n}\nexport function createCanvasPattern(ctx, pattern, el) {\n var image = createOrUpdateImage(pattern.image, pattern.__image, el);\n if (isImageReady(image)) {\n var canvasPattern = ctx.createPattern(image, pattern.repeat || 'repeat');\n if (typeof DOMMatrix === 'function'\n && canvasPattern\n && canvasPattern.setTransform) {\n var matrix = new DOMMatrix();\n matrix.translateSelf((pattern.x || 0), (pattern.y || 0));\n matrix.rotateSelf(0, 0, (pattern.rotation || 0) * RADIAN_TO_DEGREE);\n matrix.scaleSelf((pattern.scaleX || 1), (pattern.scaleY || 1));\n canvasPattern.setTransform(matrix);\n }\n return canvasPattern;\n }\n}\nfunction brushPath(ctx, el, style, inBatch) {\n var _a;\n var hasStroke = styleHasStroke(style);\n var hasFill = styleHasFill(style);\n var strokePercent = style.strokePercent;\n var strokePart = strokePercent < 1;\n var firstDraw = !el.path;\n if ((!el.silent || strokePart) && firstDraw) {\n el.createPathProxy();\n }\n var path = el.path || pathProxyForDraw;\n var dirtyFlag = el.__dirty;\n if (!inBatch) {\n var fill = style.fill;\n var stroke = style.stroke;\n var hasFillGradient = hasFill && !!fill.colorStops;\n var hasStrokeGradient = hasStroke && !!stroke.colorStops;\n var hasFillPattern = hasFill && !!fill.image;\n var hasStrokePattern = hasStroke && !!stroke.image;\n var fillGradient = void 0;\n var strokeGradient = void 0;\n var fillPattern = void 0;\n var strokePattern = void 0;\n var rect = void 0;\n if (hasFillGradient || hasStrokeGradient) {\n rect = el.getBoundingRect();\n }\n if (hasFillGradient) {\n fillGradient = dirtyFlag\n ? getCanvasGradient(ctx, fill, rect)\n : el.__canvasFillGradient;\n el.__canvasFillGradient = fillGradient;\n }\n if (hasStrokeGradient) {\n strokeGradient = dirtyFlag\n ? getCanvasGradient(ctx, stroke, rect)\n : el.__canvasStrokeGradient;\n el.__canvasStrokeGradient = strokeGradient;\n }\n if (hasFillPattern) {\n fillPattern = (dirtyFlag || !el.__canvasFillPattern)\n ? createCanvasPattern(ctx, fill, el)\n : el.__canvasFillPattern;\n el.__canvasFillPattern = fillPattern;\n }\n if (hasStrokePattern) {\n strokePattern = (dirtyFlag || !el.__canvasStrokePattern)\n ? createCanvasPattern(ctx, stroke, el)\n : el.__canvasStrokePattern;\n el.__canvasStrokePattern = fillPattern;\n }\n if (hasFillGradient) {\n ctx.fillStyle = fillGradient;\n }\n else if (hasFillPattern) {\n if (fillPattern) {\n ctx.fillStyle = fillPattern;\n }\n else {\n hasFill = false;\n }\n }\n if (hasStrokeGradient) {\n ctx.strokeStyle = strokeGradient;\n }\n else if (hasStrokePattern) {\n if (strokePattern) {\n ctx.strokeStyle = strokePattern;\n }\n else {\n hasStroke = false;\n }\n }\n }\n var scale = el.getGlobalScale();\n path.setScale(scale[0], scale[1], el.segmentIgnoreThreshold);\n var lineDash;\n var lineDashOffset;\n if (ctx.setLineDash && style.lineDash) {\n _a = getLineDash(el), lineDash = _a[0], lineDashOffset = _a[1];\n }\n var needsRebuild = true;\n if (firstDraw || (dirtyFlag & SHAPE_CHANGED_BIT)) {\n path.setDPR(ctx.dpr);\n if (strokePart) {\n path.setContext(null);\n }\n else {\n path.setContext(ctx);\n needsRebuild = false;\n }\n path.reset();\n el.buildPath(path, el.shape, inBatch);\n path.toStatic();\n el.pathUpdated();\n }\n if (needsRebuild) {\n path.rebuildPath(ctx, strokePart ? strokePercent : 1);\n }\n if (lineDash) {\n ctx.setLineDash(lineDash);\n ctx.lineDashOffset = lineDashOffset;\n }\n if (!inBatch) {\n if (style.strokeFirst) {\n if (hasStroke) {\n doStrokePath(ctx, style);\n }\n if (hasFill) {\n doFillPath(ctx, style);\n }\n }\n else {\n if (hasFill) {\n doFillPath(ctx, style);\n }\n if (hasStroke) {\n doStrokePath(ctx, style);\n }\n }\n }\n if (lineDash) {\n ctx.setLineDash([]);\n }\n}\nfunction brushImage(ctx, el, style) {\n var image = el.__image = createOrUpdateImage(style.image, el.__image, el, el.onload);\n if (!image || !isImageReady(image)) {\n return;\n }\n var x = style.x || 0;\n var y = style.y || 0;\n var width = el.getWidth();\n var height = el.getHeight();\n var aspect = image.width / image.height;\n if (width == null && height != null) {\n width = height * aspect;\n }\n else if (height == null && width != null) {\n height = width / aspect;\n }\n else if (width == null && height == null) {\n width = image.width;\n height = image.height;\n }\n if (style.sWidth && style.sHeight) {\n var sx = style.sx || 0;\n var sy = style.sy || 0;\n ctx.drawImage(image, sx, sy, style.sWidth, style.sHeight, x, y, width, height);\n }\n else if (style.sx && style.sy) {\n var sx = style.sx;\n var sy = style.sy;\n var sWidth = width - sx;\n var sHeight = height - sy;\n ctx.drawImage(image, sx, sy, sWidth, sHeight, x, y, width, height);\n }\n else {\n ctx.drawImage(image, x, y, width, height);\n }\n}\nfunction brushText(ctx, el, style) {\n var _a;\n var text = style.text;\n text != null && (text += '');\n if (text) {\n ctx.font = style.font || DEFAULT_FONT;\n ctx.textAlign = style.textAlign;\n ctx.textBaseline = style.textBaseline;\n var lineDash = void 0;\n var lineDashOffset = void 0;\n if (ctx.setLineDash && style.lineDash) {\n _a = getLineDash(el), lineDash = _a[0], lineDashOffset = _a[1];\n }\n if (lineDash) {\n ctx.setLineDash(lineDash);\n ctx.lineDashOffset = lineDashOffset;\n }\n if (style.strokeFirst) {\n if (styleHasStroke(style)) {\n ctx.strokeText(text, style.x, style.y);\n }\n if (styleHasFill(style)) {\n ctx.fillText(text, style.x, style.y);\n }\n }\n else {\n if (styleHasFill(style)) {\n ctx.fillText(text, style.x, style.y);\n }\n if (styleHasStroke(style)) {\n ctx.strokeText(text, style.x, style.y);\n }\n }\n if (lineDash) {\n ctx.setLineDash([]);\n }\n }\n}\nvar SHADOW_NUMBER_PROPS = ['shadowBlur', 'shadowOffsetX', 'shadowOffsetY'];\nvar STROKE_PROPS = [\n ['lineCap', 'butt'], ['lineJoin', 'miter'], ['miterLimit', 10]\n];\nfunction bindCommonProps(ctx, style, prevStyle, forceSetAll, scope) {\n var styleChanged = false;\n if (!forceSetAll) {\n prevStyle = prevStyle || {};\n if (style === prevStyle) {\n return false;\n }\n }\n if (forceSetAll || style.opacity !== prevStyle.opacity) {\n flushPathDrawn(ctx, scope);\n styleChanged = true;\n var opacity = Math.max(Math.min(style.opacity, 1), 0);\n ctx.globalAlpha = isNaN(opacity) ? DEFAULT_COMMON_STYLE.opacity : opacity;\n }\n if (forceSetAll || style.blend !== prevStyle.blend) {\n if (!styleChanged) {\n flushPathDrawn(ctx, scope);\n styleChanged = true;\n }\n ctx.globalCompositeOperation = style.blend || DEFAULT_COMMON_STYLE.blend;\n }\n for (var i = 0; i < SHADOW_NUMBER_PROPS.length; i++) {\n var propName = SHADOW_NUMBER_PROPS[i];\n if (forceSetAll || style[propName] !== prevStyle[propName]) {\n if (!styleChanged) {\n flushPathDrawn(ctx, scope);\n styleChanged = true;\n }\n ctx[propName] = ctx.dpr * (style[propName] || 0);\n }\n }\n if (forceSetAll || style.shadowColor !== prevStyle.shadowColor) {\n if (!styleChanged) {\n flushPathDrawn(ctx, scope);\n styleChanged = true;\n }\n ctx.shadowColor = style.shadowColor || DEFAULT_COMMON_STYLE.shadowColor;\n }\n return styleChanged;\n}\nfunction bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetAll, scope) {\n var style = getStyle(el, scope.inHover);\n var prevStyle = forceSetAll\n ? null\n : (prevEl && getStyle(prevEl, scope.inHover) || {});\n if (style === prevStyle) {\n return false;\n }\n var styleChanged = bindCommonProps(ctx, style, prevStyle, forceSetAll, scope);\n if (forceSetAll || style.fill !== prevStyle.fill) {\n if (!styleChanged) {\n flushPathDrawn(ctx, scope);\n styleChanged = true;\n }\n isValidStrokeFillStyle(style.fill) && (ctx.fillStyle = style.fill);\n }\n if (forceSetAll || style.stroke !== prevStyle.stroke) {\n if (!styleChanged) {\n flushPathDrawn(ctx, scope);\n styleChanged = true;\n }\n isValidStrokeFillStyle(style.stroke) && (ctx.strokeStyle = style.stroke);\n }\n if (forceSetAll || style.opacity !== prevStyle.opacity) {\n if (!styleChanged) {\n flushPathDrawn(ctx, scope);\n styleChanged = true;\n }\n ctx.globalAlpha = style.opacity == null ? 1 : style.opacity;\n }\n if (el.hasStroke()) {\n var lineWidth = style.lineWidth;\n var newLineWidth = lineWidth / ((style.strokeNoScale && el.getLineScale) ? el.getLineScale() : 1);\n if (ctx.lineWidth !== newLineWidth) {\n if (!styleChanged) {\n flushPathDrawn(ctx, scope);\n styleChanged = true;\n }\n ctx.lineWidth = newLineWidth;\n }\n }\n for (var i = 0; i < STROKE_PROPS.length; i++) {\n var prop = STROKE_PROPS[i];\n var propName = prop[0];\n if (forceSetAll || style[propName] !== prevStyle[propName]) {\n if (!styleChanged) {\n flushPathDrawn(ctx, scope);\n styleChanged = true;\n }\n ctx[propName] = style[propName] || prop[1];\n }\n }\n return styleChanged;\n}\nfunction bindImageStyle(ctx, el, prevEl, forceSetAll, scope) {\n return bindCommonProps(ctx, getStyle(el, scope.inHover), prevEl && getStyle(prevEl, scope.inHover), forceSetAll, scope);\n}\nfunction setContextTransform(ctx, el) {\n var m = el.transform;\n var dpr = ctx.dpr || 1;\n if (m) {\n ctx.setTransform(dpr * m[0], dpr * m[1], dpr * m[2], dpr * m[3], dpr * m[4], dpr * m[5]);\n }\n else {\n ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\n }\n}\nfunction updateClipStatus(clipPaths, ctx, scope) {\n var allClipped = false;\n for (var i = 0; i < clipPaths.length; i++) {\n var clipPath = clipPaths[i];\n allClipped = allClipped || clipPath.isZeroArea();\n setContextTransform(ctx, clipPath);\n ctx.beginPath();\n clipPath.buildPath(ctx, clipPath.shape);\n ctx.clip();\n }\n scope.allClipped = allClipped;\n}\nfunction isTransformChanged(m0, m1) {\n if (m0 && m1) {\n return m0[0] !== m1[0]\n || m0[1] !== m1[1]\n || m0[2] !== m1[2]\n || m0[3] !== m1[3]\n || m0[4] !== m1[4]\n || m0[5] !== m1[5];\n }\n else if (!m0 && !m1) {\n return false;\n }\n return true;\n}\nvar DRAW_TYPE_PATH = 1;\nvar DRAW_TYPE_IMAGE = 2;\nvar DRAW_TYPE_TEXT = 3;\nvar DRAW_TYPE_INCREMENTAL = 4;\nfunction canPathBatch(style) {\n var hasFill = styleHasFill(style);\n var hasStroke = styleHasStroke(style);\n return !(style.lineDash\n || !(+hasFill ^ +hasStroke)\n || (hasFill && typeof style.fill !== 'string')\n || (hasStroke && typeof style.stroke !== 'string')\n || style.strokePercent < 1\n || style.strokeOpacity < 1\n || style.fillOpacity < 1);\n}\nfunction flushPathDrawn(ctx, scope) {\n scope.batchFill && ctx.fill();\n scope.batchStroke && ctx.stroke();\n scope.batchFill = '';\n scope.batchStroke = '';\n}\nfunction getStyle(el, inHover) {\n return inHover ? (el.__hoverStyle || el.style) : el.style;\n}\nexport function brushSingle(ctx, el) {\n brush(ctx, el, { inHover: false, viewWidth: 0, viewHeight: 0 }, true);\n}\nexport function brush(ctx, el, scope, isLast) {\n var m = el.transform;\n if (!el.shouldBePainted(scope.viewWidth, scope.viewHeight, false, false)) {\n el.__dirty &= ~REDRAW_BIT;\n el.__isRendered = false;\n return;\n }\n var clipPaths = el.__clipPaths;\n var prevElClipPaths = scope.prevElClipPaths;\n var forceSetTransform = false;\n var forceSetStyle = false;\n if (!prevElClipPaths || isClipPathChanged(clipPaths, prevElClipPaths)) {\n if (prevElClipPaths && prevElClipPaths.length) {\n flushPathDrawn(ctx, scope);\n ctx.restore();\n forceSetStyle = forceSetTransform = true;\n scope.prevElClipPaths = null;\n scope.allClipped = false;\n scope.prevEl = null;\n }\n if (clipPaths && clipPaths.length) {\n flushPathDrawn(ctx, scope);\n ctx.save();\n updateClipStatus(clipPaths, ctx, scope);\n forceSetTransform = true;\n }\n scope.prevElClipPaths = clipPaths;\n }\n if (scope.allClipped) {\n el.__isRendered = false;\n return;\n }\n el.beforeBrush && el.beforeBrush();\n el.innerBeforeBrush();\n var prevEl = scope.prevEl;\n if (!prevEl) {\n forceSetStyle = forceSetTransform = true;\n }\n var canBatchPath = el instanceof Path\n && el.autoBatch\n && canPathBatch(el.style);\n if (forceSetTransform || isTransformChanged(m, prevEl.transform)) {\n flushPathDrawn(ctx, scope);\n setContextTransform(ctx, el);\n }\n else if (!canBatchPath) {\n flushPathDrawn(ctx, scope);\n }\n var style = getStyle(el, scope.inHover);\n if (el instanceof Path) {\n if (scope.lastDrawType !== DRAW_TYPE_PATH) {\n forceSetStyle = true;\n scope.lastDrawType = DRAW_TYPE_PATH;\n }\n bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetStyle, scope);\n if (!canBatchPath || (!scope.batchFill && !scope.batchStroke)) {\n ctx.beginPath();\n }\n brushPath(ctx, el, style, canBatchPath);\n if (canBatchPath) {\n scope.batchFill = style.fill || '';\n scope.batchStroke = style.stroke || '';\n }\n }\n else {\n if (el instanceof TSpan) {\n if (scope.lastDrawType !== DRAW_TYPE_TEXT) {\n forceSetStyle = true;\n scope.lastDrawType = DRAW_TYPE_TEXT;\n }\n bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetStyle, scope);\n brushText(ctx, el, style);\n }\n else if (el instanceof ZRImage) {\n if (scope.lastDrawType !== DRAW_TYPE_IMAGE) {\n forceSetStyle = true;\n scope.lastDrawType = DRAW_TYPE_IMAGE;\n }\n bindImageStyle(ctx, el, prevEl, forceSetStyle, scope);\n brushImage(ctx, el, style);\n }\n else if (el.getTemporalDisplayables) {\n if (scope.lastDrawType !== DRAW_TYPE_INCREMENTAL) {\n forceSetStyle = true;\n scope.lastDrawType = DRAW_TYPE_INCREMENTAL;\n }\n brushIncremental(ctx, el, scope);\n }\n }\n if (canBatchPath && isLast) {\n flushPathDrawn(ctx, scope);\n }\n el.innerAfterBrush();\n el.afterBrush && el.afterBrush();\n scope.prevEl = el;\n el.__dirty = 0;\n el.__isRendered = true;\n}\nfunction brushIncremental(ctx, el, scope) {\n var displayables = el.getDisplayables();\n var temporalDisplayables = el.getTemporalDisplayables();\n ctx.save();\n var innerScope = {\n prevElClipPaths: null,\n prevEl: null,\n allClipped: false,\n viewWidth: scope.viewWidth,\n viewHeight: scope.viewHeight,\n inHover: scope.inHover\n };\n var i;\n var len;\n for (i = el.getCursor(), len = displayables.length; i < len; i++) {\n var displayable = displayables[i];\n displayable.beforeBrush && displayable.beforeBrush();\n displayable.innerBeforeBrush();\n brush(ctx, displayable, innerScope, i === len - 1);\n displayable.innerAfterBrush();\n displayable.afterBrush && displayable.afterBrush();\n innerScope.prevEl = displayable;\n }\n for (var i_1 = 0, len_1 = temporalDisplayables.length; i_1 < len_1; i_1++) {\n var displayable = temporalDisplayables[i_1];\n displayable.beforeBrush && displayable.beforeBrush();\n displayable.innerBeforeBrush();\n brush(ctx, displayable, innerScope, i_1 === len_1 - 1);\n displayable.innerAfterBrush();\n displayable.afterBrush && displayable.afterBrush();\n innerScope.prevEl = displayable;\n }\n el.clearTemporalDisplayables();\n el.notClear = true;\n ctx.restore();\n}\n","function isSafeNum(num) {\n return isFinite(num);\n}\nexport function createLinearGradient(ctx, obj, rect) {\n var x = obj.x == null ? 0 : obj.x;\n var x2 = obj.x2 == null ? 1 : obj.x2;\n var y = obj.y == null ? 0 : obj.y;\n var y2 = obj.y2 == null ? 0 : obj.y2;\n if (!obj.global) {\n x = x * rect.width + rect.x;\n x2 = x2 * rect.width + rect.x;\n y = y * rect.height + rect.y;\n y2 = y2 * rect.height + rect.y;\n }\n x = isSafeNum(x) ? x : 0;\n x2 = isSafeNum(x2) ? x2 : 1;\n y = isSafeNum(y) ? y : 0;\n y2 = isSafeNum(y2) ? y2 : 0;\n var canvasGradient = ctx.createLinearGradient(x, y, x2, y2);\n return canvasGradient;\n}\nexport function createRadialGradient(ctx, obj, rect) {\n var width = rect.width;\n var height = rect.height;\n var min = Math.min(width, height);\n var x = obj.x == null ? 0.5 : obj.x;\n var y = obj.y == null ? 0.5 : obj.y;\n var r = obj.r == null ? 0.5 : obj.r;\n if (!obj.global) {\n x = x * width + rect.x;\n y = y * height + rect.y;\n r = r * min;\n }\n x = isSafeNum(x) ? x : 0.5;\n y = isSafeNum(y) ? y : 0.5;\n r = r >= 0 && isSafeNum(r) ? r : 0.5;\n var canvasGradient = ctx.createRadialGradient(x, y, 0, x, y, r);\n return canvasGradient;\n}\nexport function getCanvasGradient(ctx, obj, rect) {\n var canvasGradient = obj.type === 'radial'\n ? createRadialGradient(ctx, obj, rect)\n : createLinearGradient(ctx, obj, rect);\n var colorStops = obj.colorStops;\n for (var i = 0; i < colorStops.length; i++) {\n canvasGradient.addColorStop(colorStops[i].offset, colorStops[i].color);\n }\n return canvasGradient;\n}\nexport function isClipPathChanged(clipPaths, prevClipPaths) {\n if (clipPaths === prevClipPaths || (!clipPaths && !prevClipPaths)) {\n return false;\n }\n if (!clipPaths || !prevClipPaths || (clipPaths.length !== prevClipPaths.length)) {\n return true;\n }\n for (var i = 0; i < clipPaths.length; i++) {\n if (clipPaths[i] !== prevClipPaths[i]) {\n return true;\n }\n }\n return false;\n}\nfunction parseInt10(val) {\n return parseInt(val, 10);\n}\nexport function getSize(root, whIdx, opts) {\n var wh = ['width', 'height'][whIdx];\n var cwh = ['clientWidth', 'clientHeight'][whIdx];\n var plt = ['paddingLeft', 'paddingTop'][whIdx];\n var prb = ['paddingRight', 'paddingBottom'][whIdx];\n if (opts[wh] != null && opts[wh] !== 'auto') {\n return parseFloat(opts[wh]);\n }\n var stl = document.defaultView.getComputedStyle(root);\n return ((root[cwh] || parseInt10(stl[wh]) || parseInt10(root.style[wh]))\n - (parseInt10(stl[plt]) || 0)\n - (parseInt10(stl[prb]) || 0)) | 0;\n}\n","import env from './core/env.js';\nvar dpr = 1;\nif (env.hasGlobalWindow) {\n dpr = Math.max(window.devicePixelRatio\n || (window.screen && window.screen.deviceXDPI / window.screen.logicalXDPI)\n || 1, 1);\n}\nexport var debugMode = 0;\nexport var devicePixelRatio = dpr;\nexport var DARK_MODE_THRESHOLD = 0.4;\nexport var DARK_LABEL_COLOR = '#333';\nexport var LIGHT_LABEL_COLOR = '#ccc';\nexport var LIGHTER_LABEL_COLOR = '#eee';\n","import { normalizeRadian } from './util.js';\nvar PI2 = Math.PI * 2;\nexport function containStroke(cx, cy, r, startAngle, endAngle, anticlockwise, lineWidth, x, y) {\n if (lineWidth === 0) {\n return false;\n }\n var _l = lineWidth;\n x -= cx;\n y -= cy;\n var d = Math.sqrt(x * x + y * y);\n if ((d - _l > r) || (d + _l < r)) {\n return false;\n }\n if (Math.abs(startAngle - endAngle) % PI2 < 1e-4) {\n return true;\n }\n if (anticlockwise) {\n var tmp = startAngle;\n startAngle = normalizeRadian(endAngle);\n endAngle = normalizeRadian(tmp);\n }\n else {\n startAngle = normalizeRadian(startAngle);\n endAngle = normalizeRadian(endAngle);\n }\n if (startAngle > endAngle) {\n endAngle += PI2;\n }\n var angle = Math.atan2(y, x);\n if (angle < 0) {\n angle += PI2;\n }\n return (angle >= startAngle && angle <= endAngle)\n || (angle + PI2 >= startAngle && angle + PI2 <= endAngle);\n}\n","import * as curve from '../core/curve.js';\nexport function containStroke(x0, y0, x1, y1, x2, y2, x3, y3, lineWidth, x, y) {\n if (lineWidth === 0) {\n return false;\n }\n var _l = lineWidth;\n if ((y > y0 + _l && y > y1 + _l && y > y2 + _l && y > y3 + _l)\n || (y < y0 - _l && y < y1 - _l && y < y2 - _l && y < y3 - _l)\n || (x > x0 + _l && x > x1 + _l && x > x2 + _l && x > x3 + _l)\n || (x < x0 - _l && x < x1 - _l && x < x2 - _l && x < x3 - _l)) {\n return false;\n }\n var d = curve.cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, null);\n return d <= _l / 2;\n}\n","export function containStroke(x0, y0, x1, y1, lineWidth, x, y) {\n if (lineWidth === 0) {\n return false;\n }\n var _l = lineWidth;\n var _a = 0;\n var _b = x0;\n if ((y > y0 + _l && y > y1 + _l)\n || (y < y0 - _l && y < y1 - _l)\n || (x > x0 + _l && x > x1 + _l)\n || (x < x0 - _l && x < x1 - _l)) {\n return false;\n }\n if (x0 !== x1) {\n _a = (y0 - y1) / (x0 - x1);\n _b = (x0 * y1 - x1 * y0) / (x0 - x1);\n }\n else {\n return Math.abs(x - x0) <= _l / 2;\n }\n var tmp = _a * x - y + _b;\n var _s = tmp * tmp / (_a * _a + 1);\n return _s <= _l / 2 * _l / 2;\n}\n","import PathProxy from '../core/PathProxy.js';\nimport * as line from './line.js';\nimport * as cubic from './cubic.js';\nimport * as quadratic from './quadratic.js';\nimport * as arc from './arc.js';\nimport * as curve from '../core/curve.js';\nimport windingLine from './windingLine.js';\nvar CMD = PathProxy.CMD;\nvar PI2 = Math.PI * 2;\nvar EPSILON = 1e-4;\nfunction isAroundEqual(a, b) {\n return Math.abs(a - b) < EPSILON;\n}\nvar roots = [-1, -1, -1];\nvar extrema = [-1, -1];\nfunction swapExtrema() {\n var tmp = extrema[0];\n extrema[0] = extrema[1];\n extrema[1] = tmp;\n}\nfunction windingCubic(x0, y0, x1, y1, x2, y2, x3, y3, x, y) {\n if ((y > y0 && y > y1 && y > y2 && y > y3)\n || (y < y0 && y < y1 && y < y2 && y < y3)) {\n return 0;\n }\n var nRoots = curve.cubicRootAt(y0, y1, y2, y3, y, roots);\n if (nRoots === 0) {\n return 0;\n }\n else {\n var w = 0;\n var nExtrema = -1;\n var y0_ = void 0;\n var y1_ = void 0;\n for (var i = 0; i < nRoots; i++) {\n var t = roots[i];\n var unit = (t === 0 || t === 1) ? 0.5 : 1;\n var x_ = curve.cubicAt(x0, x1, x2, x3, t);\n if (x_ < x) {\n continue;\n }\n if (nExtrema < 0) {\n nExtrema = curve.cubicExtrema(y0, y1, y2, y3, extrema);\n if (extrema[1] < extrema[0] && nExtrema > 1) {\n swapExtrema();\n }\n y0_ = curve.cubicAt(y0, y1, y2, y3, extrema[0]);\n if (nExtrema > 1) {\n y1_ = curve.cubicAt(y0, y1, y2, y3, extrema[1]);\n }\n }\n if (nExtrema === 2) {\n if (t < extrema[0]) {\n w += y0_ < y0 ? unit : -unit;\n }\n else if (t < extrema[1]) {\n w += y1_ < y0_ ? unit : -unit;\n }\n else {\n w += y3 < y1_ ? unit : -unit;\n }\n }\n else {\n if (t < extrema[0]) {\n w += y0_ < y0 ? unit : -unit;\n }\n else {\n w += y3 < y0_ ? unit : -unit;\n }\n }\n }\n return w;\n }\n}\nfunction windingQuadratic(x0, y0, x1, y1, x2, y2, x, y) {\n if ((y > y0 && y > y1 && y > y2)\n || (y < y0 && y < y1 && y < y2)) {\n return 0;\n }\n var nRoots = curve.quadraticRootAt(y0, y1, y2, y, roots);\n if (nRoots === 0) {\n return 0;\n }\n else {\n var t = curve.quadraticExtremum(y0, y1, y2);\n if (t >= 0 && t <= 1) {\n var w = 0;\n var y_ = curve.quadraticAt(y0, y1, y2, t);\n for (var i = 0; i < nRoots; i++) {\n var unit = (roots[i] === 0 || roots[i] === 1) ? 0.5 : 1;\n var x_ = curve.quadraticAt(x0, x1, x2, roots[i]);\n if (x_ < x) {\n continue;\n }\n if (roots[i] < t) {\n w += y_ < y0 ? unit : -unit;\n }\n else {\n w += y2 < y_ ? unit : -unit;\n }\n }\n return w;\n }\n else {\n var unit = (roots[0] === 0 || roots[0] === 1) ? 0.5 : 1;\n var x_ = curve.quadraticAt(x0, x1, x2, roots[0]);\n if (x_ < x) {\n return 0;\n }\n return y2 < y0 ? unit : -unit;\n }\n }\n}\nfunction windingArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y) {\n y -= cy;\n if (y > r || y < -r) {\n return 0;\n }\n var tmp = Math.sqrt(r * r - y * y);\n roots[0] = -tmp;\n roots[1] = tmp;\n var dTheta = Math.abs(startAngle - endAngle);\n if (dTheta < 1e-4) {\n return 0;\n }\n if (dTheta >= PI2 - 1e-4) {\n startAngle = 0;\n endAngle = PI2;\n var dir = anticlockwise ? 1 : -1;\n if (x >= roots[0] + cx && x <= roots[1] + cx) {\n return dir;\n }\n else {\n return 0;\n }\n }\n if (startAngle > endAngle) {\n var tmp_1 = startAngle;\n startAngle = endAngle;\n endAngle = tmp_1;\n }\n if (startAngle < 0) {\n startAngle += PI2;\n endAngle += PI2;\n }\n var w = 0;\n for (var i = 0; i < 2; i++) {\n var x_ = roots[i];\n if (x_ + cx > x) {\n var angle = Math.atan2(y, x_);\n var dir = anticlockwise ? 1 : -1;\n if (angle < 0) {\n angle = PI2 + angle;\n }\n if ((angle >= startAngle && angle <= endAngle)\n || (angle + PI2 >= startAngle && angle + PI2 <= endAngle)) {\n if (angle > Math.PI / 2 && angle < Math.PI * 1.5) {\n dir = -dir;\n }\n w += dir;\n }\n }\n }\n return w;\n}\nfunction containPath(path, lineWidth, isStroke, x, y) {\n var data = path.data;\n var len = path.len();\n var w = 0;\n var xi = 0;\n var yi = 0;\n var x0 = 0;\n var y0 = 0;\n var x1;\n var y1;\n for (var i = 0; i < len;) {\n var cmd = data[i++];\n var isFirst = i === 1;\n if (cmd === CMD.M && i > 1) {\n if (!isStroke) {\n w += windingLine(xi, yi, x0, y0, x, y);\n }\n }\n if (isFirst) {\n xi = data[i];\n yi = data[i + 1];\n x0 = xi;\n y0 = yi;\n }\n switch (cmd) {\n case CMD.M:\n x0 = data[i++];\n y0 = data[i++];\n xi = x0;\n yi = y0;\n break;\n case CMD.L:\n if (isStroke) {\n if (line.containStroke(xi, yi, data[i], data[i + 1], lineWidth, x, y)) {\n return true;\n }\n }\n else {\n w += windingLine(xi, yi, data[i], data[i + 1], x, y) || 0;\n }\n xi = data[i++];\n yi = data[i++];\n break;\n case CMD.C:\n if (isStroke) {\n if (cubic.containStroke(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) {\n return true;\n }\n }\n else {\n w += windingCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], x, y) || 0;\n }\n xi = data[i++];\n yi = data[i++];\n break;\n case CMD.Q:\n if (isStroke) {\n if (quadratic.containStroke(xi, yi, data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) {\n return true;\n }\n }\n else {\n w += windingQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], x, y) || 0;\n }\n xi = data[i++];\n yi = data[i++];\n break;\n case CMD.A:\n var cx = data[i++];\n var cy = data[i++];\n var rx = data[i++];\n var ry = data[i++];\n var theta = data[i++];\n var dTheta = data[i++];\n i += 1;\n var anticlockwise = !!(1 - data[i++]);\n x1 = Math.cos(theta) * rx + cx;\n y1 = Math.sin(theta) * ry + cy;\n if (!isFirst) {\n w += windingLine(xi, yi, x1, y1, x, y);\n }\n else {\n x0 = x1;\n y0 = y1;\n }\n var _x = (x - cx) * ry / rx + cx;\n if (isStroke) {\n if (arc.containStroke(cx, cy, ry, theta, theta + dTheta, anticlockwise, lineWidth, _x, y)) {\n return true;\n }\n }\n else {\n w += windingArc(cx, cy, ry, theta, theta + dTheta, anticlockwise, _x, y);\n }\n xi = Math.cos(theta + dTheta) * rx + cx;\n yi = Math.sin(theta + dTheta) * ry + cy;\n break;\n case CMD.R:\n x0 = xi = data[i++];\n y0 = yi = data[i++];\n var width = data[i++];\n var height = data[i++];\n x1 = x0 + width;\n y1 = y0 + height;\n if (isStroke) {\n if (line.containStroke(x0, y0, x1, y0, lineWidth, x, y)\n || line.containStroke(x1, y0, x1, y1, lineWidth, x, y)\n || line.containStroke(x1, y1, x0, y1, lineWidth, x, y)\n || line.containStroke(x0, y1, x0, y0, lineWidth, x, y)) {\n return true;\n }\n }\n else {\n w += windingLine(x1, y0, x1, y1, x, y);\n w += windingLine(x0, y1, x0, y0, x, y);\n }\n break;\n case CMD.Z:\n if (isStroke) {\n if (line.containStroke(xi, yi, x0, y0, lineWidth, x, y)) {\n return true;\n }\n }\n else {\n w += windingLine(xi, yi, x0, y0, x, y);\n }\n xi = x0;\n yi = y0;\n break;\n }\n }\n if (!isStroke && !isAroundEqual(yi, y0)) {\n w += windingLine(xi, yi, x0, y0, x, y) || 0;\n }\n return w !== 0;\n}\nexport function contain(pathProxy, x, y) {\n return containPath(pathProxy, 0, false, x, y);\n}\nexport function containStroke(pathProxy, lineWidth, x, y) {\n return containPath(pathProxy, lineWidth, true, x, y);\n}\n","import windingLine from './windingLine.js';\nvar EPSILON = 1e-8;\nfunction isAroundEqual(a, b) {\n return Math.abs(a - b) < EPSILON;\n}\nexport function contain(points, x, y) {\n var w = 0;\n var p = points[0];\n if (!p) {\n return false;\n }\n for (var i = 1; i < points.length; i++) {\n var p2 = points[i];\n w += windingLine(p[0], p[1], p2[0], p2[1], x, y);\n p = p2;\n }\n var p0 = points[0];\n if (!isAroundEqual(p[0], p0[0]) || !isAroundEqual(p[1], p0[1])) {\n w += windingLine(p[0], p[1], p0[0], p0[1], x, y);\n }\n return w !== 0;\n}\n","import { quadraticProjectPoint } from '../core/curve.js';\nexport function containStroke(x0, y0, x1, y1, x2, y2, lineWidth, x, y) {\n if (lineWidth === 0) {\n return false;\n }\n var _l = lineWidth;\n if ((y > y0 + _l && y > y1 + _l && y > y2 + _l)\n || (y < y0 - _l && y < y1 - _l && y < y2 - _l)\n || (x > x0 + _l && x > x1 + _l && x > x2 + _l)\n || (x < x0 - _l && x < x1 - _l && x < x2 - _l)) {\n return false;\n }\n var d = quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, null);\n return d <= _l / 2;\n}\n","import BoundingRect from '../core/BoundingRect.js';\nimport LRU from '../core/LRU.js';\nimport { DEFAULT_FONT, platformApi } from '../core/platform.js';\nvar textWidthCache = {};\nexport function getWidth(text, font) {\n font = font || DEFAULT_FONT;\n var cacheOfFont = textWidthCache[font];\n if (!cacheOfFont) {\n cacheOfFont = textWidthCache[font] = new LRU(500);\n }\n var width = cacheOfFont.get(text);\n if (width == null) {\n width = platformApi.measureText(text, font).width;\n cacheOfFont.put(text, width);\n }\n return width;\n}\nexport function innerGetBoundingRect(text, font, textAlign, textBaseline) {\n var width = getWidth(text, font);\n var height = getLineHeight(font);\n var x = adjustTextX(0, width, textAlign);\n var y = adjustTextY(0, height, textBaseline);\n var rect = new BoundingRect(x, y, width, height);\n return rect;\n}\nexport function getBoundingRect(text, font, textAlign, textBaseline) {\n var textLines = ((text || '') + '').split('\\n');\n var len = textLines.length;\n if (len === 1) {\n return innerGetBoundingRect(textLines[0], font, textAlign, textBaseline);\n }\n else {\n var uniondRect = new BoundingRect(0, 0, 0, 0);\n for (var i = 0; i < textLines.length; i++) {\n var rect = innerGetBoundingRect(textLines[i], font, textAlign, textBaseline);\n i === 0 ? uniondRect.copy(rect) : uniondRect.union(rect);\n }\n return uniondRect;\n }\n}\nexport function adjustTextX(x, width, textAlign) {\n if (textAlign === 'right') {\n x -= width;\n }\n else if (textAlign === 'center') {\n x -= width / 2;\n }\n return x;\n}\nexport function adjustTextY(y, height, verticalAlign) {\n if (verticalAlign === 'middle') {\n y -= height / 2;\n }\n else if (verticalAlign === 'bottom') {\n y -= height;\n }\n return y;\n}\nexport function getLineHeight(font) {\n return getWidth('国', font);\n}\nexport function measureText(text, font) {\n return platformApi.measureText(text, font);\n}\nexport function parsePercent(value, maxValue) {\n if (typeof value === 'string') {\n if (value.lastIndexOf('%') >= 0) {\n return parseFloat(value) / 100 * maxValue;\n }\n return parseFloat(value);\n }\n return value;\n}\nexport function calculateTextPosition(out, opts, rect) {\n var textPosition = opts.position || 'inside';\n var distance = opts.distance != null ? opts.distance : 5;\n var height = rect.height;\n var width = rect.width;\n var halfHeight = height / 2;\n var x = rect.x;\n var y = rect.y;\n var textAlign = 'left';\n var textVerticalAlign = 'top';\n if (textPosition instanceof Array) {\n x += parsePercent(textPosition[0], rect.width);\n y += parsePercent(textPosition[1], rect.height);\n textAlign = null;\n textVerticalAlign = null;\n }\n else {\n switch (textPosition) {\n case 'left':\n x -= distance;\n y += halfHeight;\n textAlign = 'right';\n textVerticalAlign = 'middle';\n break;\n case 'right':\n x += distance + width;\n y += halfHeight;\n textVerticalAlign = 'middle';\n break;\n case 'top':\n x += width / 2;\n y -= distance;\n textAlign = 'center';\n textVerticalAlign = 'bottom';\n break;\n case 'bottom':\n x += width / 2;\n y += height + distance;\n textAlign = 'center';\n break;\n case 'inside':\n x += width / 2;\n y += halfHeight;\n textAlign = 'center';\n textVerticalAlign = 'middle';\n break;\n case 'insideLeft':\n x += distance;\n y += halfHeight;\n textVerticalAlign = 'middle';\n break;\n case 'insideRight':\n x += width - distance;\n y += halfHeight;\n textAlign = 'right';\n textVerticalAlign = 'middle';\n break;\n case 'insideTop':\n x += width / 2;\n y += distance;\n textAlign = 'center';\n break;\n case 'insideBottom':\n x += width / 2;\n y += height - distance;\n textAlign = 'center';\n textVerticalAlign = 'bottom';\n break;\n case 'insideTopLeft':\n x += distance;\n y += distance;\n break;\n case 'insideTopRight':\n x += width - distance;\n y += distance;\n textAlign = 'right';\n break;\n case 'insideBottomLeft':\n x += distance;\n y += height - distance;\n textVerticalAlign = 'bottom';\n break;\n case 'insideBottomRight':\n x += width - distance;\n y += height - distance;\n textAlign = 'right';\n textVerticalAlign = 'bottom';\n break;\n }\n }\n out = out || {};\n out.x = x;\n out.y = y;\n out.align = textAlign;\n out.verticalAlign = textVerticalAlign;\n return out;\n}\n","var PI2 = Math.PI * 2;\nexport function normalizeRadian(angle) {\n angle %= PI2;\n if (angle < 0) {\n angle += PI2;\n }\n return angle;\n}\n","export default function windingLine(x0, y0, x1, y1, x, y) {\n if ((y > y0 && y > y1) || (y < y0 && y < y1)) {\n return 0;\n }\n if (y1 === y0) {\n return 0;\n }\n var t = (y - y0) / (y1 - y0);\n var dir = y1 < y0 ? 1 : -1;\n if (t === 1 || t === 0) {\n dir = y1 < y0 ? 0.5 : -0.5;\n }\n var x_ = t * (x1 - x0) + x0;\n return x_ === x ? Infinity : x_ > x ? dir : 0;\n}\n","import * as matrix from './matrix.js';\nimport Point from './Point.js';\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar lt = new Point();\nvar rb = new Point();\nvar lb = new Point();\nvar rt = new Point();\nvar minTv = new Point();\nvar maxTv = new Point();\nvar BoundingRect = (function () {\n function BoundingRect(x, y, width, height) {\n if (width < 0) {\n x = x + width;\n width = -width;\n }\n if (height < 0) {\n y = y + height;\n height = -height;\n }\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n }\n BoundingRect.prototype.union = function (other) {\n var x = mathMin(other.x, this.x);\n var y = mathMin(other.y, this.y);\n if (isFinite(this.x) && isFinite(this.width)) {\n this.width = mathMax(other.x + other.width, this.x + this.width) - x;\n }\n else {\n this.width = other.width;\n }\n if (isFinite(this.y) && isFinite(this.height)) {\n this.height = mathMax(other.y + other.height, this.y + this.height) - y;\n }\n else {\n this.height = other.height;\n }\n this.x = x;\n this.y = y;\n };\n BoundingRect.prototype.applyTransform = function (m) {\n BoundingRect.applyTransform(this, this, m);\n };\n BoundingRect.prototype.calculateTransform = function (b) {\n var a = this;\n var sx = b.width / a.width;\n var sy = b.height / a.height;\n var m = matrix.create();\n matrix.translate(m, m, [-a.x, -a.y]);\n matrix.scale(m, m, [sx, sy]);\n matrix.translate(m, m, [b.x, b.y]);\n return m;\n };\n BoundingRect.prototype.intersect = function (b, mtv) {\n if (!b) {\n return false;\n }\n if (!(b instanceof BoundingRect)) {\n b = BoundingRect.create(b);\n }\n var a = this;\n var ax0 = a.x;\n var ax1 = a.x + a.width;\n var ay0 = a.y;\n var ay1 = a.y + a.height;\n var bx0 = b.x;\n var bx1 = b.x + b.width;\n var by0 = b.y;\n var by1 = b.y + b.height;\n var overlap = !(ax1 < bx0 || bx1 < ax0 || ay1 < by0 || by1 < ay0);\n if (mtv) {\n var dMin = Infinity;\n var dMax = 0;\n var d0 = Math.abs(ax1 - bx0);\n var d1 = Math.abs(bx1 - ax0);\n var d2 = Math.abs(ay1 - by0);\n var d3 = Math.abs(by1 - ay0);\n var dx = Math.min(d0, d1);\n var dy = Math.min(d2, d3);\n if (ax1 < bx0 || bx1 < ax0) {\n if (dx > dMax) {\n dMax = dx;\n if (d0 < d1) {\n Point.set(maxTv, -d0, 0);\n }\n else {\n Point.set(maxTv, d1, 0);\n }\n }\n }\n else {\n if (dx < dMin) {\n dMin = dx;\n if (d0 < d1) {\n Point.set(minTv, d0, 0);\n }\n else {\n Point.set(minTv, -d1, 0);\n }\n }\n }\n if (ay1 < by0 || by1 < ay0) {\n if (dy > dMax) {\n dMax = dy;\n if (d2 < d3) {\n Point.set(maxTv, 0, -d2);\n }\n else {\n Point.set(maxTv, 0, d3);\n }\n }\n }\n else {\n if (dx < dMin) {\n dMin = dx;\n if (d2 < d3) {\n Point.set(minTv, 0, d2);\n }\n else {\n Point.set(minTv, 0, -d3);\n }\n }\n }\n }\n if (mtv) {\n Point.copy(mtv, overlap ? minTv : maxTv);\n }\n return overlap;\n };\n BoundingRect.prototype.contain = function (x, y) {\n var rect = this;\n return x >= rect.x\n && x <= (rect.x + rect.width)\n && y >= rect.y\n && y <= (rect.y + rect.height);\n };\n BoundingRect.prototype.clone = function () {\n return new BoundingRect(this.x, this.y, this.width, this.height);\n };\n BoundingRect.prototype.copy = function (other) {\n BoundingRect.copy(this, other);\n };\n BoundingRect.prototype.plain = function () {\n return {\n x: this.x,\n y: this.y,\n width: this.width,\n height: this.height\n };\n };\n BoundingRect.prototype.isFinite = function () {\n return isFinite(this.x)\n && isFinite(this.y)\n && isFinite(this.width)\n && isFinite(this.height);\n };\n BoundingRect.prototype.isZero = function () {\n return this.width === 0 || this.height === 0;\n };\n BoundingRect.create = function (rect) {\n return new BoundingRect(rect.x, rect.y, rect.width, rect.height);\n };\n BoundingRect.copy = function (target, source) {\n target.x = source.x;\n target.y = source.y;\n target.width = source.width;\n target.height = source.height;\n };\n BoundingRect.applyTransform = function (target, source, m) {\n if (!m) {\n if (target !== source) {\n BoundingRect.copy(target, source);\n }\n return;\n }\n if (m[1] < 1e-5 && m[1] > -1e-5 && m[2] < 1e-5 && m[2] > -1e-5) {\n var sx = m[0];\n var sy = m[3];\n var tx = m[4];\n var ty = m[5];\n target.x = source.x * sx + tx;\n target.y = source.y * sy + ty;\n target.width = source.width * sx;\n target.height = source.height * sy;\n if (target.width < 0) {\n target.x += target.width;\n target.width = -target.width;\n }\n if (target.height < 0) {\n target.y += target.height;\n target.height = -target.height;\n }\n return;\n }\n lt.x = lb.x = source.x;\n lt.y = rt.y = source.y;\n rb.x = rt.x = source.x + source.width;\n rb.y = lb.y = source.y + source.height;\n lt.transform(m);\n rt.transform(m);\n rb.transform(m);\n lb.transform(m);\n target.x = mathMin(lt.x, rb.x, lb.x, rt.x);\n target.y = mathMin(lt.y, rb.y, lb.y, rt.y);\n var maxX = mathMax(lt.x, rb.x, lb.x, rt.x);\n var maxY = mathMax(lt.y, rb.y, lb.y, rt.y);\n target.width = maxX - target.x;\n target.height = maxY - target.y;\n };\n return BoundingRect;\n}());\nexport default BoundingRect;\n","var Eventful = (function () {\n function Eventful(eventProcessors) {\n if (eventProcessors) {\n this._$eventProcessor = eventProcessors;\n }\n }\n Eventful.prototype.on = function (event, query, handler, context) {\n if (!this._$handlers) {\n this._$handlers = {};\n }\n var _h = this._$handlers;\n if (typeof query === 'function') {\n context = handler;\n handler = query;\n query = null;\n }\n if (!handler || !event) {\n return this;\n }\n var eventProcessor = this._$eventProcessor;\n if (query != null && eventProcessor && eventProcessor.normalizeQuery) {\n query = eventProcessor.normalizeQuery(query);\n }\n if (!_h[event]) {\n _h[event] = [];\n }\n for (var i = 0; i < _h[event].length; i++) {\n if (_h[event][i].h === handler) {\n return this;\n }\n }\n var wrap = {\n h: handler,\n query: query,\n ctx: (context || this),\n callAtLast: handler.zrEventfulCallAtLast\n };\n var lastIndex = _h[event].length - 1;\n var lastWrap = _h[event][lastIndex];\n (lastWrap && lastWrap.callAtLast)\n ? _h[event].splice(lastIndex, 0, wrap)\n : _h[event].push(wrap);\n return this;\n };\n Eventful.prototype.isSilent = function (eventName) {\n var _h = this._$handlers;\n return !_h || !_h[eventName] || !_h[eventName].length;\n };\n Eventful.prototype.off = function (eventType, handler) {\n var _h = this._$handlers;\n if (!_h) {\n return this;\n }\n if (!eventType) {\n this._$handlers = {};\n return this;\n }\n if (handler) {\n if (_h[eventType]) {\n var newList = [];\n for (var i = 0, l = _h[eventType].length; i < l; i++) {\n if (_h[eventType][i].h !== handler) {\n newList.push(_h[eventType][i]);\n }\n }\n _h[eventType] = newList;\n }\n if (_h[eventType] && _h[eventType].length === 0) {\n delete _h[eventType];\n }\n }\n else {\n delete _h[eventType];\n }\n return this;\n };\n Eventful.prototype.trigger = function (eventType) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (!this._$handlers) {\n return this;\n }\n var _h = this._$handlers[eventType];\n var eventProcessor = this._$eventProcessor;\n if (_h) {\n var argLen = args.length;\n var len = _h.length;\n for (var i = 0; i < len; i++) {\n var hItem = _h[i];\n if (eventProcessor\n && eventProcessor.filter\n && hItem.query != null\n && !eventProcessor.filter(eventType, hItem.query)) {\n continue;\n }\n switch (argLen) {\n case 0:\n hItem.h.call(hItem.ctx);\n break;\n case 1:\n hItem.h.call(hItem.ctx, args[0]);\n break;\n case 2:\n hItem.h.call(hItem.ctx, args[0], args[1]);\n break;\n default:\n hItem.h.apply(hItem.ctx, args);\n break;\n }\n }\n }\n eventProcessor && eventProcessor.afterTrigger\n && eventProcessor.afterTrigger(eventType);\n return this;\n };\n Eventful.prototype.triggerWithContext = function (type) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (!this._$handlers) {\n return this;\n }\n var _h = this._$handlers[type];\n var eventProcessor = this._$eventProcessor;\n if (_h) {\n var argLen = args.length;\n var ctx = args[argLen - 1];\n var len = _h.length;\n for (var i = 0; i < len; i++) {\n var hItem = _h[i];\n if (eventProcessor\n && eventProcessor.filter\n && hItem.query != null\n && !eventProcessor.filter(type, hItem.query)) {\n continue;\n }\n switch (argLen) {\n case 0:\n hItem.h.call(ctx);\n break;\n case 1:\n hItem.h.call(ctx, args[0]);\n break;\n case 2:\n hItem.h.call(ctx, args[0], args[1]);\n break;\n default:\n hItem.h.apply(ctx, args.slice(1, argLen - 1));\n break;\n }\n }\n }\n eventProcessor && eventProcessor.afterTrigger\n && eventProcessor.afterTrigger(type);\n return this;\n };\n return Eventful;\n}());\nexport default Eventful;\n","import * as eventUtil from './event.js';\nvar GestureMgr = (function () {\n function GestureMgr() {\n this._track = [];\n }\n GestureMgr.prototype.recognize = function (event, target, root) {\n this._doTrack(event, target, root);\n return this._recognize(event);\n };\n GestureMgr.prototype.clear = function () {\n this._track.length = 0;\n return this;\n };\n GestureMgr.prototype._doTrack = function (event, target, root) {\n var touches = event.touches;\n if (!touches) {\n return;\n }\n var trackItem = {\n points: [],\n touches: [],\n target: target,\n event: event\n };\n for (var i = 0, len = touches.length; i < len; i++) {\n var touch = touches[i];\n var pos = eventUtil.clientToLocal(root, touch, {});\n trackItem.points.push([pos.zrX, pos.zrY]);\n trackItem.touches.push(touch);\n }\n this._track.push(trackItem);\n };\n GestureMgr.prototype._recognize = function (event) {\n for (var eventName in recognizers) {\n if (recognizers.hasOwnProperty(eventName)) {\n var gestureInfo = recognizers[eventName](this._track, event);\n if (gestureInfo) {\n return gestureInfo;\n }\n }\n }\n };\n return GestureMgr;\n}());\nexport { GestureMgr };\nfunction dist(pointPair) {\n var dx = pointPair[1][0] - pointPair[0][0];\n var dy = pointPair[1][1] - pointPair[0][1];\n return Math.sqrt(dx * dx + dy * dy);\n}\nfunction center(pointPair) {\n return [\n (pointPair[0][0] + pointPair[1][0]) / 2,\n (pointPair[0][1] + pointPair[1][1]) / 2\n ];\n}\nvar recognizers = {\n pinch: function (tracks, event) {\n var trackLen = tracks.length;\n if (!trackLen) {\n return;\n }\n var pinchEnd = (tracks[trackLen - 1] || {}).points;\n var pinchPre = (tracks[trackLen - 2] || {}).points || pinchEnd;\n if (pinchPre\n && pinchPre.length > 1\n && pinchEnd\n && pinchEnd.length > 1) {\n var pinchScale = dist(pinchEnd) / dist(pinchPre);\n !isFinite(pinchScale) && (pinchScale = 1);\n event.pinchScale = pinchScale;\n var pinchCenter = center(pinchEnd);\n event.pinchX = pinchCenter[0];\n event.pinchY = pinchCenter[1];\n return {\n type: 'pinch',\n target: tracks[0].target,\n event: event\n };\n }\n }\n};\n","var Entry = (function () {\n function Entry(val) {\n this.value = val;\n }\n return Entry;\n}());\nexport { Entry };\nvar LinkedList = (function () {\n function LinkedList() {\n this._len = 0;\n }\n LinkedList.prototype.insert = function (val) {\n var entry = new Entry(val);\n this.insertEntry(entry);\n return entry;\n };\n LinkedList.prototype.insertEntry = function (entry) {\n if (!this.head) {\n this.head = this.tail = entry;\n }\n else {\n this.tail.next = entry;\n entry.prev = this.tail;\n entry.next = null;\n this.tail = entry;\n }\n this._len++;\n };\n LinkedList.prototype.remove = function (entry) {\n var prev = entry.prev;\n var next = entry.next;\n if (prev) {\n prev.next = next;\n }\n else {\n this.head = next;\n }\n if (next) {\n next.prev = prev;\n }\n else {\n this.tail = prev;\n }\n entry.next = entry.prev = null;\n this._len--;\n };\n LinkedList.prototype.len = function () {\n return this._len;\n };\n LinkedList.prototype.clear = function () {\n this.head = this.tail = null;\n this._len = 0;\n };\n return LinkedList;\n}());\nexport { LinkedList };\nvar LRU = (function () {\n function LRU(maxSize) {\n this._list = new LinkedList();\n this._maxSize = 10;\n this._map = {};\n this._maxSize = maxSize;\n }\n LRU.prototype.put = function (key, value) {\n var list = this._list;\n var map = this._map;\n var removed = null;\n if (map[key] == null) {\n var len = list.len();\n var entry = this._lastRemovedEntry;\n if (len >= this._maxSize && len > 0) {\n var leastUsedEntry = list.head;\n list.remove(leastUsedEntry);\n delete map[leastUsedEntry.key];\n removed = leastUsedEntry.value;\n this._lastRemovedEntry = leastUsedEntry;\n }\n if (entry) {\n entry.value = value;\n }\n else {\n entry = new Entry(value);\n }\n entry.key = key;\n list.insertEntry(entry);\n map[key] = entry;\n }\n return removed;\n };\n LRU.prototype.get = function (key) {\n var entry = this._map[key];\n var list = this._list;\n if (entry != null) {\n if (entry !== list.tail) {\n list.remove(entry);\n list.insertEntry(entry);\n }\n return entry.value;\n }\n };\n LRU.prototype.clear = function () {\n this._list.clear();\n this._map = {};\n };\n LRU.prototype.len = function () {\n return this._list.len();\n };\n return LRU;\n}());\nexport default LRU;\n","import Point from './Point.js';\nvar extent = [0, 0];\nvar extent2 = [0, 0];\nvar minTv = new Point();\nvar maxTv = new Point();\nvar OrientedBoundingRect = (function () {\n function OrientedBoundingRect(rect, transform) {\n this._corners = [];\n this._axes = [];\n this._origin = [0, 0];\n for (var i = 0; i < 4; i++) {\n this._corners[i] = new Point();\n }\n for (var i = 0; i < 2; i++) {\n this._axes[i] = new Point();\n }\n if (rect) {\n this.fromBoundingRect(rect, transform);\n }\n }\n OrientedBoundingRect.prototype.fromBoundingRect = function (rect, transform) {\n var corners = this._corners;\n var axes = this._axes;\n var x = rect.x;\n var y = rect.y;\n var x2 = x + rect.width;\n var y2 = y + rect.height;\n corners[0].set(x, y);\n corners[1].set(x2, y);\n corners[2].set(x2, y2);\n corners[3].set(x, y2);\n if (transform) {\n for (var i = 0; i < 4; i++) {\n corners[i].transform(transform);\n }\n }\n Point.sub(axes[0], corners[1], corners[0]);\n Point.sub(axes[1], corners[3], corners[0]);\n axes[0].normalize();\n axes[1].normalize();\n for (var i = 0; i < 2; i++) {\n this._origin[i] = axes[i].dot(corners[0]);\n }\n };\n OrientedBoundingRect.prototype.intersect = function (other, mtv) {\n var overlapped = true;\n var noMtv = !mtv;\n minTv.set(Infinity, Infinity);\n maxTv.set(0, 0);\n if (!this._intersectCheckOneSide(this, other, minTv, maxTv, noMtv, 1)) {\n overlapped = false;\n if (noMtv) {\n return overlapped;\n }\n }\n if (!this._intersectCheckOneSide(other, this, minTv, maxTv, noMtv, -1)) {\n overlapped = false;\n if (noMtv) {\n return overlapped;\n }\n }\n if (!noMtv) {\n Point.copy(mtv, overlapped ? minTv : maxTv);\n }\n return overlapped;\n };\n OrientedBoundingRect.prototype._intersectCheckOneSide = function (self, other, minTv, maxTv, noMtv, inverse) {\n var overlapped = true;\n for (var i = 0; i < 2; i++) {\n var axis = this._axes[i];\n this._getProjMinMaxOnAxis(i, self._corners, extent);\n this._getProjMinMaxOnAxis(i, other._corners, extent2);\n if (extent[1] < extent2[0] || extent[0] > extent2[1]) {\n overlapped = false;\n if (noMtv) {\n return overlapped;\n }\n var dist0 = Math.abs(extent2[0] - extent[1]);\n var dist1 = Math.abs(extent[0] - extent2[1]);\n if (Math.min(dist0, dist1) > maxTv.len()) {\n if (dist0 < dist1) {\n Point.scale(maxTv, axis, -dist0 * inverse);\n }\n else {\n Point.scale(maxTv, axis, dist1 * inverse);\n }\n }\n }\n else if (minTv) {\n var dist0 = Math.abs(extent2[0] - extent[1]);\n var dist1 = Math.abs(extent[0] - extent2[1]);\n if (Math.min(dist0, dist1) < minTv.len()) {\n if (dist0 < dist1) {\n Point.scale(minTv, axis, dist0 * inverse);\n }\n else {\n Point.scale(minTv, axis, -dist1 * inverse);\n }\n }\n }\n }\n return overlapped;\n };\n OrientedBoundingRect.prototype._getProjMinMaxOnAxis = function (dim, corners, out) {\n var axis = this._axes[dim];\n var origin = this._origin;\n var proj = corners[0].dot(axis) + origin[dim];\n var min = proj;\n var max = proj;\n for (var i = 1; i < corners.length; i++) {\n var proj_1 = corners[i].dot(axis) + origin[dim];\n min = Math.min(proj_1, min);\n max = Math.max(proj_1, max);\n }\n out[0] = min;\n out[1] = max;\n };\n return OrientedBoundingRect;\n}());\nexport default OrientedBoundingRect;\n","import * as vec2 from './vector.js';\nimport BoundingRect from './BoundingRect.js';\nimport { devicePixelRatio as dpr } from '../config.js';\nimport { fromLine, fromCubic, fromQuadratic, fromArc } from './bbox.js';\nimport { cubicLength, cubicSubdivide, quadraticLength, quadraticSubdivide } from './curve.js';\nvar CMD = {\n M: 1,\n L: 2,\n C: 3,\n Q: 4,\n A: 5,\n Z: 6,\n R: 7\n};\nvar tmpOutX = [];\nvar tmpOutY = [];\nvar min = [];\nvar max = [];\nvar min2 = [];\nvar max2 = [];\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathCos = Math.cos;\nvar mathSin = Math.sin;\nvar mathAbs = Math.abs;\nvar PI = Math.PI;\nvar PI2 = PI * 2;\nvar hasTypedArray = typeof Float32Array !== 'undefined';\nvar tmpAngles = [];\nfunction modPI2(radian) {\n var n = Math.round(radian / PI * 1e8) / 1e8;\n return (n % 2) * PI;\n}\nexport function normalizeArcAngles(angles, anticlockwise) {\n var newStartAngle = modPI2(angles[0]);\n if (newStartAngle < 0) {\n newStartAngle += PI2;\n }\n var delta = newStartAngle - angles[0];\n var newEndAngle = angles[1];\n newEndAngle += delta;\n if (!anticlockwise && newEndAngle - newStartAngle >= PI2) {\n newEndAngle = newStartAngle + PI2;\n }\n else if (anticlockwise && newStartAngle - newEndAngle >= PI2) {\n newEndAngle = newStartAngle - PI2;\n }\n else if (!anticlockwise && newStartAngle > newEndAngle) {\n newEndAngle = newStartAngle + (PI2 - modPI2(newStartAngle - newEndAngle));\n }\n else if (anticlockwise && newStartAngle < newEndAngle) {\n newEndAngle = newStartAngle - (PI2 - modPI2(newEndAngle - newStartAngle));\n }\n angles[0] = newStartAngle;\n angles[1] = newEndAngle;\n}\nvar PathProxy = (function () {\n function PathProxy(notSaveData) {\n this.dpr = 1;\n this._xi = 0;\n this._yi = 0;\n this._x0 = 0;\n this._y0 = 0;\n this._len = 0;\n if (notSaveData) {\n this._saveData = false;\n }\n if (this._saveData) {\n this.data = [];\n }\n }\n PathProxy.prototype.increaseVersion = function () {\n this._version++;\n };\n PathProxy.prototype.getVersion = function () {\n return this._version;\n };\n PathProxy.prototype.setScale = function (sx, sy, segmentIgnoreThreshold) {\n segmentIgnoreThreshold = segmentIgnoreThreshold || 0;\n if (segmentIgnoreThreshold > 0) {\n this._ux = mathAbs(segmentIgnoreThreshold / dpr / sx) || 0;\n this._uy = mathAbs(segmentIgnoreThreshold / dpr / sy) || 0;\n }\n };\n PathProxy.prototype.setDPR = function (dpr) {\n this.dpr = dpr;\n };\n PathProxy.prototype.setContext = function (ctx) {\n this._ctx = ctx;\n };\n PathProxy.prototype.getContext = function () {\n return this._ctx;\n };\n PathProxy.prototype.beginPath = function () {\n this._ctx && this._ctx.beginPath();\n this.reset();\n return this;\n };\n PathProxy.prototype.reset = function () {\n if (this._saveData) {\n this._len = 0;\n }\n if (this._pathSegLen) {\n this._pathSegLen = null;\n this._pathLen = 0;\n }\n this._version++;\n };\n PathProxy.prototype.moveTo = function (x, y) {\n this._drawPendingPt();\n this.addData(CMD.M, x, y);\n this._ctx && this._ctx.moveTo(x, y);\n this._x0 = x;\n this._y0 = y;\n this._xi = x;\n this._yi = y;\n return this;\n };\n PathProxy.prototype.lineTo = function (x, y) {\n var dx = mathAbs(x - this._xi);\n var dy = mathAbs(y - this._yi);\n var exceedUnit = dx > this._ux || dy > this._uy;\n this.addData(CMD.L, x, y);\n if (this._ctx && exceedUnit) {\n this._ctx.lineTo(x, y);\n }\n if (exceedUnit) {\n this._xi = x;\n this._yi = y;\n this._pendingPtDist = 0;\n }\n else {\n var d2 = dx * dx + dy * dy;\n if (d2 > this._pendingPtDist) {\n this._pendingPtX = x;\n this._pendingPtY = y;\n this._pendingPtDist = d2;\n }\n }\n return this;\n };\n PathProxy.prototype.bezierCurveTo = function (x1, y1, x2, y2, x3, y3) {\n this._drawPendingPt();\n this.addData(CMD.C, x1, y1, x2, y2, x3, y3);\n if (this._ctx) {\n this._ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3);\n }\n this._xi = x3;\n this._yi = y3;\n return this;\n };\n PathProxy.prototype.quadraticCurveTo = function (x1, y1, x2, y2) {\n this._drawPendingPt();\n this.addData(CMD.Q, x1, y1, x2, y2);\n if (this._ctx) {\n this._ctx.quadraticCurveTo(x1, y1, x2, y2);\n }\n this._xi = x2;\n this._yi = y2;\n return this;\n };\n PathProxy.prototype.arc = function (cx, cy, r, startAngle, endAngle, anticlockwise) {\n this._drawPendingPt();\n tmpAngles[0] = startAngle;\n tmpAngles[1] = endAngle;\n normalizeArcAngles(tmpAngles, anticlockwise);\n startAngle = tmpAngles[0];\n endAngle = tmpAngles[1];\n var delta = endAngle - startAngle;\n this.addData(CMD.A, cx, cy, r, r, startAngle, delta, 0, anticlockwise ? 0 : 1);\n this._ctx && this._ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise);\n this._xi = mathCos(endAngle) * r + cx;\n this._yi = mathSin(endAngle) * r + cy;\n return this;\n };\n PathProxy.prototype.arcTo = function (x1, y1, x2, y2, radius) {\n this._drawPendingPt();\n if (this._ctx) {\n this._ctx.arcTo(x1, y1, x2, y2, radius);\n }\n return this;\n };\n PathProxy.prototype.rect = function (x, y, w, h) {\n this._drawPendingPt();\n this._ctx && this._ctx.rect(x, y, w, h);\n this.addData(CMD.R, x, y, w, h);\n return this;\n };\n PathProxy.prototype.closePath = function () {\n this._drawPendingPt();\n this.addData(CMD.Z);\n var ctx = this._ctx;\n var x0 = this._x0;\n var y0 = this._y0;\n if (ctx) {\n ctx.closePath();\n }\n this._xi = x0;\n this._yi = y0;\n return this;\n };\n PathProxy.prototype.fill = function (ctx) {\n ctx && ctx.fill();\n this.toStatic();\n };\n PathProxy.prototype.stroke = function (ctx) {\n ctx && ctx.stroke();\n this.toStatic();\n };\n PathProxy.prototype.len = function () {\n return this._len;\n };\n PathProxy.prototype.setData = function (data) {\n var len = data.length;\n if (!(this.data && this.data.length === len) && hasTypedArray) {\n this.data = new Float32Array(len);\n }\n for (var i = 0; i < len; i++) {\n this.data[i] = data[i];\n }\n this._len = len;\n };\n PathProxy.prototype.appendPath = function (path) {\n if (!(path instanceof Array)) {\n path = [path];\n }\n var len = path.length;\n var appendSize = 0;\n var offset = this._len;\n for (var i = 0; i < len; i++) {\n appendSize += path[i].len();\n }\n if (hasTypedArray && (this.data instanceof Float32Array)) {\n this.data = new Float32Array(offset + appendSize);\n }\n for (var i = 0; i < len; i++) {\n var appendPathData = path[i].data;\n for (var k = 0; k < appendPathData.length; k++) {\n this.data[offset++] = appendPathData[k];\n }\n }\n this._len = offset;\n };\n PathProxy.prototype.addData = function (cmd, a, b, c, d, e, f, g, h) {\n if (!this._saveData) {\n return;\n }\n var data = this.data;\n if (this._len + arguments.length > data.length) {\n this._expandData();\n data = this.data;\n }\n for (var i = 0; i < arguments.length; i++) {\n data[this._len++] = arguments[i];\n }\n };\n PathProxy.prototype._drawPendingPt = function () {\n if (this._pendingPtDist > 0) {\n this._ctx && this._ctx.lineTo(this._pendingPtX, this._pendingPtY);\n this._pendingPtDist = 0;\n }\n };\n PathProxy.prototype._expandData = function () {\n if (!(this.data instanceof Array)) {\n var newData = [];\n for (var i = 0; i < this._len; i++) {\n newData[i] = this.data[i];\n }\n this.data = newData;\n }\n };\n PathProxy.prototype.toStatic = function () {\n if (!this._saveData) {\n return;\n }\n this._drawPendingPt();\n var data = this.data;\n if (data instanceof Array) {\n data.length = this._len;\n if (hasTypedArray && this._len > 11) {\n this.data = new Float32Array(data);\n }\n }\n };\n PathProxy.prototype.getBoundingRect = function () {\n min[0] = min[1] = min2[0] = min2[1] = Number.MAX_VALUE;\n max[0] = max[1] = max2[0] = max2[1] = -Number.MAX_VALUE;\n var data = this.data;\n var xi = 0;\n var yi = 0;\n var x0 = 0;\n var y0 = 0;\n var i;\n for (i = 0; i < this._len;) {\n var cmd = data[i++];\n var isFirst = i === 1;\n if (isFirst) {\n xi = data[i];\n yi = data[i + 1];\n x0 = xi;\n y0 = yi;\n }\n switch (cmd) {\n case CMD.M:\n xi = x0 = data[i++];\n yi = y0 = data[i++];\n min2[0] = x0;\n min2[1] = y0;\n max2[0] = x0;\n max2[1] = y0;\n break;\n case CMD.L:\n fromLine(xi, yi, data[i], data[i + 1], min2, max2);\n xi = data[i++];\n yi = data[i++];\n break;\n case CMD.C:\n fromCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], min2, max2);\n xi = data[i++];\n yi = data[i++];\n break;\n case CMD.Q:\n fromQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], min2, max2);\n xi = data[i++];\n yi = data[i++];\n break;\n case CMD.A:\n var cx = data[i++];\n var cy = data[i++];\n var rx = data[i++];\n var ry = data[i++];\n var startAngle = data[i++];\n var endAngle = data[i++] + startAngle;\n i += 1;\n var anticlockwise = !data[i++];\n if (isFirst) {\n x0 = mathCos(startAngle) * rx + cx;\n y0 = mathSin(startAngle) * ry + cy;\n }\n fromArc(cx, cy, rx, ry, startAngle, endAngle, anticlockwise, min2, max2);\n xi = mathCos(endAngle) * rx + cx;\n yi = mathSin(endAngle) * ry + cy;\n break;\n case CMD.R:\n x0 = xi = data[i++];\n y0 = yi = data[i++];\n var width = data[i++];\n var height = data[i++];\n fromLine(x0, y0, x0 + width, y0 + height, min2, max2);\n break;\n case CMD.Z:\n xi = x0;\n yi = y0;\n break;\n }\n vec2.min(min, min, min2);\n vec2.max(max, max, max2);\n }\n if (i === 0) {\n min[0] = min[1] = max[0] = max[1] = 0;\n }\n return new BoundingRect(min[0], min[1], max[0] - min[0], max[1] - min[1]);\n };\n PathProxy.prototype._calculateLength = function () {\n var data = this.data;\n var len = this._len;\n var ux = this._ux;\n var uy = this._uy;\n var xi = 0;\n var yi = 0;\n var x0 = 0;\n var y0 = 0;\n if (!this._pathSegLen) {\n this._pathSegLen = [];\n }\n var pathSegLen = this._pathSegLen;\n var pathTotalLen = 0;\n var segCount = 0;\n for (var i = 0; i < len;) {\n var cmd = data[i++];\n var isFirst = i === 1;\n if (isFirst) {\n xi = data[i];\n yi = data[i + 1];\n x0 = xi;\n y0 = yi;\n }\n var l = -1;\n switch (cmd) {\n case CMD.M:\n xi = x0 = data[i++];\n yi = y0 = data[i++];\n break;\n case CMD.L: {\n var x2 = data[i++];\n var y2 = data[i++];\n var dx = x2 - xi;\n var dy = y2 - yi;\n if (mathAbs(dx) > ux || mathAbs(dy) > uy || i === len - 1) {\n l = Math.sqrt(dx * dx + dy * dy);\n xi = x2;\n yi = y2;\n }\n break;\n }\n case CMD.C: {\n var x1 = data[i++];\n var y1 = data[i++];\n var x2 = data[i++];\n var y2 = data[i++];\n var x3 = data[i++];\n var y3 = data[i++];\n l = cubicLength(xi, yi, x1, y1, x2, y2, x3, y3, 10);\n xi = x3;\n yi = y3;\n break;\n }\n case CMD.Q: {\n var x1 = data[i++];\n var y1 = data[i++];\n var x2 = data[i++];\n var y2 = data[i++];\n l = quadraticLength(xi, yi, x1, y1, x2, y2, 10);\n xi = x2;\n yi = y2;\n break;\n }\n case CMD.A:\n var cx = data[i++];\n var cy = data[i++];\n var rx = data[i++];\n var ry = data[i++];\n var startAngle = data[i++];\n var delta = data[i++];\n var endAngle = delta + startAngle;\n i += 1;\n var anticlockwise = !data[i++];\n if (isFirst) {\n x0 = mathCos(startAngle) * rx + cx;\n y0 = mathSin(startAngle) * ry + cy;\n }\n l = mathMax(rx, ry) * mathMin(PI2, Math.abs(delta));\n xi = mathCos(endAngle) * rx + cx;\n yi = mathSin(endAngle) * ry + cy;\n break;\n case CMD.R: {\n x0 = xi = data[i++];\n y0 = yi = data[i++];\n var width = data[i++];\n var height = data[i++];\n l = width * 2 + height * 2;\n break;\n }\n case CMD.Z: {\n var dx = x0 - xi;\n var dy = y0 - yi;\n l = Math.sqrt(dx * dx + dy * dy);\n xi = x0;\n yi = y0;\n break;\n }\n }\n if (l >= 0) {\n pathSegLen[segCount++] = l;\n pathTotalLen += l;\n }\n }\n this._pathLen = pathTotalLen;\n return pathTotalLen;\n };\n PathProxy.prototype.rebuildPath = function (ctx, percent) {\n var d = this.data;\n var ux = this._ux;\n var uy = this._uy;\n var len = this._len;\n var x0;\n var y0;\n var xi;\n var yi;\n var x;\n var y;\n var drawPart = percent < 1;\n var pathSegLen;\n var pathTotalLen;\n var accumLength = 0;\n var segCount = 0;\n var displayedLength;\n var pendingPtDist = 0;\n var pendingPtX;\n var pendingPtY;\n if (drawPart) {\n if (!this._pathSegLen) {\n this._calculateLength();\n }\n pathSegLen = this._pathSegLen;\n pathTotalLen = this._pathLen;\n displayedLength = percent * pathTotalLen;\n if (!displayedLength) {\n return;\n }\n }\n lo: for (var i = 0; i < len;) {\n var cmd = d[i++];\n var isFirst = i === 1;\n if (isFirst) {\n xi = d[i];\n yi = d[i + 1];\n x0 = xi;\n y0 = yi;\n }\n if (cmd !== CMD.L && pendingPtDist > 0) {\n ctx.lineTo(pendingPtX, pendingPtY);\n pendingPtDist = 0;\n }\n switch (cmd) {\n case CMD.M:\n x0 = xi = d[i++];\n y0 = yi = d[i++];\n ctx.moveTo(xi, yi);\n break;\n case CMD.L: {\n x = d[i++];\n y = d[i++];\n var dx = mathAbs(x - xi);\n var dy = mathAbs(y - yi);\n if (dx > ux || dy > uy) {\n if (drawPart) {\n var l = pathSegLen[segCount++];\n if (accumLength + l > displayedLength) {\n var t = (displayedLength - accumLength) / l;\n ctx.lineTo(xi * (1 - t) + x * t, yi * (1 - t) + y * t);\n break lo;\n }\n accumLength += l;\n }\n ctx.lineTo(x, y);\n xi = x;\n yi = y;\n pendingPtDist = 0;\n }\n else {\n var d2 = dx * dx + dy * dy;\n if (d2 > pendingPtDist) {\n pendingPtX = x;\n pendingPtY = y;\n pendingPtDist = d2;\n }\n }\n break;\n }\n case CMD.C: {\n var x1 = d[i++];\n var y1 = d[i++];\n var x2 = d[i++];\n var y2 = d[i++];\n var x3 = d[i++];\n var y3 = d[i++];\n if (drawPart) {\n var l = pathSegLen[segCount++];\n if (accumLength + l > displayedLength) {\n var t = (displayedLength - accumLength) / l;\n cubicSubdivide(xi, x1, x2, x3, t, tmpOutX);\n cubicSubdivide(yi, y1, y2, y3, t, tmpOutY);\n ctx.bezierCurveTo(tmpOutX[1], tmpOutY[1], tmpOutX[2], tmpOutY[2], tmpOutX[3], tmpOutY[3]);\n break lo;\n }\n accumLength += l;\n }\n ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3);\n xi = x3;\n yi = y3;\n break;\n }\n case CMD.Q: {\n var x1 = d[i++];\n var y1 = d[i++];\n var x2 = d[i++];\n var y2 = d[i++];\n if (drawPart) {\n var l = pathSegLen[segCount++];\n if (accumLength + l > displayedLength) {\n var t = (displayedLength - accumLength) / l;\n quadraticSubdivide(xi, x1, x2, t, tmpOutX);\n quadraticSubdivide(yi, y1, y2, t, tmpOutY);\n ctx.quadraticCurveTo(tmpOutX[1], tmpOutY[1], tmpOutX[2], tmpOutY[2]);\n break lo;\n }\n accumLength += l;\n }\n ctx.quadraticCurveTo(x1, y1, x2, y2);\n xi = x2;\n yi = y2;\n break;\n }\n case CMD.A:\n var cx = d[i++];\n var cy = d[i++];\n var rx = d[i++];\n var ry = d[i++];\n var startAngle = d[i++];\n var delta = d[i++];\n var psi = d[i++];\n var anticlockwise = !d[i++];\n var r = (rx > ry) ? rx : ry;\n var isEllipse = mathAbs(rx - ry) > 1e-3;\n var endAngle = startAngle + delta;\n var breakBuild = false;\n if (drawPart) {\n var l = pathSegLen[segCount++];\n if (accumLength + l > displayedLength) {\n endAngle = startAngle + delta * (displayedLength - accumLength) / l;\n breakBuild = true;\n }\n accumLength += l;\n }\n if (isEllipse && ctx.ellipse) {\n ctx.ellipse(cx, cy, rx, ry, psi, startAngle, endAngle, anticlockwise);\n }\n else {\n ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise);\n }\n if (breakBuild) {\n break lo;\n }\n if (isFirst) {\n x0 = mathCos(startAngle) * rx + cx;\n y0 = mathSin(startAngle) * ry + cy;\n }\n xi = mathCos(endAngle) * rx + cx;\n yi = mathSin(endAngle) * ry + cy;\n break;\n case CMD.R:\n x0 = xi = d[i];\n y0 = yi = d[i + 1];\n x = d[i++];\n y = d[i++];\n var width = d[i++];\n var height = d[i++];\n if (drawPart) {\n var l = pathSegLen[segCount++];\n if (accumLength + l > displayedLength) {\n var d_1 = displayedLength - accumLength;\n ctx.moveTo(x, y);\n ctx.lineTo(x + mathMin(d_1, width), y);\n d_1 -= width;\n if (d_1 > 0) {\n ctx.lineTo(x + width, y + mathMin(d_1, height));\n }\n d_1 -= height;\n if (d_1 > 0) {\n ctx.lineTo(x + mathMax(width - d_1, 0), y + height);\n }\n d_1 -= width;\n if (d_1 > 0) {\n ctx.lineTo(x, y + mathMax(height - d_1, 0));\n }\n break lo;\n }\n accumLength += l;\n }\n ctx.rect(x, y, width, height);\n break;\n case CMD.Z:\n if (drawPart) {\n var l = pathSegLen[segCount++];\n if (accumLength + l > displayedLength) {\n var t = (displayedLength - accumLength) / l;\n ctx.lineTo(xi * (1 - t) + x0 * t, yi * (1 - t) + y0 * t);\n break lo;\n }\n accumLength += l;\n }\n ctx.closePath();\n xi = x0;\n yi = y0;\n }\n }\n };\n PathProxy.prototype.clone = function () {\n var newProxy = new PathProxy();\n var data = this.data;\n newProxy.data = data.slice ? data.slice()\n : Array.prototype.slice.call(data);\n newProxy._len = this._len;\n return newProxy;\n };\n PathProxy.CMD = CMD;\n PathProxy.initDefaultProps = (function () {\n var proto = PathProxy.prototype;\n proto._saveData = true;\n proto._ux = 0;\n proto._uy = 0;\n proto._pendingPtDist = 0;\n proto._version = 0;\n })();\n return PathProxy;\n}());\nexport default PathProxy;\n","var Point = (function () {\n function Point(x, y) {\n this.x = x || 0;\n this.y = y || 0;\n }\n Point.prototype.copy = function (other) {\n this.x = other.x;\n this.y = other.y;\n return this;\n };\n Point.prototype.clone = function () {\n return new Point(this.x, this.y);\n };\n Point.prototype.set = function (x, y) {\n this.x = x;\n this.y = y;\n return this;\n };\n Point.prototype.equal = function (other) {\n return other.x === this.x && other.y === this.y;\n };\n Point.prototype.add = function (other) {\n this.x += other.x;\n this.y += other.y;\n return this;\n };\n Point.prototype.scale = function (scalar) {\n this.x *= scalar;\n this.y *= scalar;\n };\n Point.prototype.scaleAndAdd = function (other, scalar) {\n this.x += other.x * scalar;\n this.y += other.y * scalar;\n };\n Point.prototype.sub = function (other) {\n this.x -= other.x;\n this.y -= other.y;\n return this;\n };\n Point.prototype.dot = function (other) {\n return this.x * other.x + this.y * other.y;\n };\n Point.prototype.len = function () {\n return Math.sqrt(this.x * this.x + this.y * this.y);\n };\n Point.prototype.lenSquare = function () {\n return this.x * this.x + this.y * this.y;\n };\n Point.prototype.normalize = function () {\n var len = this.len();\n this.x /= len;\n this.y /= len;\n return this;\n };\n Point.prototype.distance = function (other) {\n var dx = this.x - other.x;\n var dy = this.y - other.y;\n return Math.sqrt(dx * dx + dy * dy);\n };\n Point.prototype.distanceSquare = function (other) {\n var dx = this.x - other.x;\n var dy = this.y - other.y;\n return dx * dx + dy * dy;\n };\n Point.prototype.negate = function () {\n this.x = -this.x;\n this.y = -this.y;\n return this;\n };\n Point.prototype.transform = function (m) {\n if (!m) {\n return;\n }\n var x = this.x;\n var y = this.y;\n this.x = m[0] * x + m[2] * y + m[4];\n this.y = m[1] * x + m[3] * y + m[5];\n return this;\n };\n Point.prototype.toArray = function (out) {\n out[0] = this.x;\n out[1] = this.y;\n return out;\n };\n Point.prototype.fromArray = function (input) {\n this.x = input[0];\n this.y = input[1];\n };\n Point.set = function (p, x, y) {\n p.x = x;\n p.y = y;\n };\n Point.copy = function (p, p2) {\n p.x = p2.x;\n p.y = p2.y;\n };\n Point.len = function (p) {\n return Math.sqrt(p.x * p.x + p.y * p.y);\n };\n Point.lenSquare = function (p) {\n return p.x * p.x + p.y * p.y;\n };\n Point.dot = function (p0, p1) {\n return p0.x * p1.x + p0.y * p1.y;\n };\n Point.add = function (out, p0, p1) {\n out.x = p0.x + p1.x;\n out.y = p0.y + p1.y;\n };\n Point.sub = function (out, p0, p1) {\n out.x = p0.x - p1.x;\n out.y = p0.y - p1.y;\n };\n Point.scale = function (out, p0, scalar) {\n out.x = p0.x * scalar;\n out.y = p0.y * scalar;\n };\n Point.scaleAndAdd = function (out, p0, p1, scalar) {\n out.x = p0.x + p1.x * scalar;\n out.y = p0.y + p1.y * scalar;\n };\n Point.lerp = function (out, p0, p1, t) {\n var onet = 1 - t;\n out.x = onet * p0.x + t * p1.x;\n out.y = onet * p0.y + t * p1.y;\n };\n return Point;\n}());\nexport default Point;\n","import * as matrix from './matrix.js';\nimport * as vector from './vector.js';\nvar mIdentity = matrix.identity;\nvar EPSILON = 5e-5;\nfunction isNotAroundZero(val) {\n return val > EPSILON || val < -EPSILON;\n}\nvar scaleTmp = [];\nvar tmpTransform = [];\nvar originTransform = matrix.create();\nvar abs = Math.abs;\nvar Transformable = (function () {\n function Transformable() {\n }\n Transformable.prototype.getLocalTransform = function (m) {\n return Transformable.getLocalTransform(this, m);\n };\n Transformable.prototype.setPosition = function (arr) {\n this.x = arr[0];\n this.y = arr[1];\n };\n Transformable.prototype.setScale = function (arr) {\n this.scaleX = arr[0];\n this.scaleY = arr[1];\n };\n Transformable.prototype.setSkew = function (arr) {\n this.skewX = arr[0];\n this.skewY = arr[1];\n };\n Transformable.prototype.setOrigin = function (arr) {\n this.originX = arr[0];\n this.originY = arr[1];\n };\n Transformable.prototype.needLocalTransform = function () {\n return isNotAroundZero(this.rotation)\n || isNotAroundZero(this.x)\n || isNotAroundZero(this.y)\n || isNotAroundZero(this.scaleX - 1)\n || isNotAroundZero(this.scaleY - 1)\n || isNotAroundZero(this.skewX)\n || isNotAroundZero(this.skewY);\n };\n Transformable.prototype.updateTransform = function () {\n var parentTransform = this.parent && this.parent.transform;\n var needLocalTransform = this.needLocalTransform();\n var m = this.transform;\n if (!(needLocalTransform || parentTransform)) {\n m && mIdentity(m);\n return;\n }\n m = m || matrix.create();\n if (needLocalTransform) {\n this.getLocalTransform(m);\n }\n else {\n mIdentity(m);\n }\n if (parentTransform) {\n if (needLocalTransform) {\n matrix.mul(m, parentTransform, m);\n }\n else {\n matrix.copy(m, parentTransform);\n }\n }\n this.transform = m;\n this._resolveGlobalScaleRatio(m);\n };\n Transformable.prototype._resolveGlobalScaleRatio = function (m) {\n var globalScaleRatio = this.globalScaleRatio;\n if (globalScaleRatio != null && globalScaleRatio !== 1) {\n this.getGlobalScale(scaleTmp);\n var relX = scaleTmp[0] < 0 ? -1 : 1;\n var relY = scaleTmp[1] < 0 ? -1 : 1;\n var sx = ((scaleTmp[0] - relX) * globalScaleRatio + relX) / scaleTmp[0] || 0;\n var sy = ((scaleTmp[1] - relY) * globalScaleRatio + relY) / scaleTmp[1] || 0;\n m[0] *= sx;\n m[1] *= sx;\n m[2] *= sy;\n m[3] *= sy;\n }\n this.invTransform = this.invTransform || matrix.create();\n matrix.invert(this.invTransform, m);\n };\n Transformable.prototype.getComputedTransform = function () {\n var transformNode = this;\n var ancestors = [];\n while (transformNode) {\n ancestors.push(transformNode);\n transformNode = transformNode.parent;\n }\n while (transformNode = ancestors.pop()) {\n transformNode.updateTransform();\n }\n return this.transform;\n };\n Transformable.prototype.setLocalTransform = function (m) {\n if (!m) {\n return;\n }\n var sx = m[0] * m[0] + m[1] * m[1];\n var sy = m[2] * m[2] + m[3] * m[3];\n var rotation = Math.atan2(m[1], m[0]);\n var shearX = Math.PI / 2 + rotation - Math.atan2(m[3], m[2]);\n sy = Math.sqrt(sy) * Math.cos(shearX);\n sx = Math.sqrt(sx);\n this.skewX = shearX;\n this.skewY = 0;\n this.rotation = -rotation;\n this.x = +m[4];\n this.y = +m[5];\n this.scaleX = sx;\n this.scaleY = sy;\n this.originX = 0;\n this.originY = 0;\n };\n Transformable.prototype.decomposeTransform = function () {\n if (!this.transform) {\n return;\n }\n var parent = this.parent;\n var m = this.transform;\n if (parent && parent.transform) {\n matrix.mul(tmpTransform, parent.invTransform, m);\n m = tmpTransform;\n }\n var ox = this.originX;\n var oy = this.originY;\n if (ox || oy) {\n originTransform[4] = ox;\n originTransform[5] = oy;\n matrix.mul(tmpTransform, m, originTransform);\n tmpTransform[4] -= ox;\n tmpTransform[5] -= oy;\n m = tmpTransform;\n }\n this.setLocalTransform(m);\n };\n Transformable.prototype.getGlobalScale = function (out) {\n var m = this.transform;\n out = out || [];\n if (!m) {\n out[0] = 1;\n out[1] = 1;\n return out;\n }\n out[0] = Math.sqrt(m[0] * m[0] + m[1] * m[1]);\n out[1] = Math.sqrt(m[2] * m[2] + m[3] * m[3]);\n if (m[0] < 0) {\n out[0] = -out[0];\n }\n if (m[3] < 0) {\n out[1] = -out[1];\n }\n return out;\n };\n Transformable.prototype.transformCoordToLocal = function (x, y) {\n var v2 = [x, y];\n var invTransform = this.invTransform;\n if (invTransform) {\n vector.applyTransform(v2, v2, invTransform);\n }\n return v2;\n };\n Transformable.prototype.transformCoordToGlobal = function (x, y) {\n var v2 = [x, y];\n var transform = this.transform;\n if (transform) {\n vector.applyTransform(v2, v2, transform);\n }\n return v2;\n };\n Transformable.prototype.getLineScale = function () {\n var m = this.transform;\n return m && abs(m[0] - 1) > 1e-10 && abs(m[3] - 1) > 1e-10\n ? Math.sqrt(abs(m[0] * m[3] - m[2] * m[1]))\n : 1;\n };\n Transformable.prototype.copyTransform = function (source) {\n copyTransform(this, source);\n };\n Transformable.getLocalTransform = function (target, m) {\n m = m || [];\n var ox = target.originX || 0;\n var oy = target.originY || 0;\n var sx = target.scaleX;\n var sy = target.scaleY;\n var ax = target.anchorX;\n var ay = target.anchorY;\n var rotation = target.rotation || 0;\n var x = target.x;\n var y = target.y;\n var skewX = target.skewX ? Math.tan(target.skewX) : 0;\n var skewY = target.skewY ? Math.tan(-target.skewY) : 0;\n if (ox || oy || ax || ay) {\n var dx = ox + ax;\n var dy = oy + ay;\n m[4] = -dx * sx - skewX * dy * sy;\n m[5] = -dy * sy - skewY * dx * sx;\n }\n else {\n m[4] = m[5] = 0;\n }\n m[0] = sx;\n m[3] = sy;\n m[1] = skewY * sx;\n m[2] = skewX * sy;\n rotation && matrix.rotate(m, m, rotation);\n m[4] += ox + x;\n m[5] += oy + y;\n return m;\n };\n Transformable.initDefaultProps = (function () {\n var proto = Transformable.prototype;\n proto.scaleX =\n proto.scaleY =\n proto.globalScaleRatio = 1;\n proto.x =\n proto.y =\n proto.originX =\n proto.originY =\n proto.skewX =\n proto.skewY =\n proto.rotation =\n proto.anchorX =\n proto.anchorY = 0;\n })();\n return Transformable;\n}());\n;\nexport var TRANSFORMABLE_PROPS = [\n 'x', 'y', 'originX', 'originY', 'anchorX', 'anchorY', 'rotation', 'scaleX', 'scaleY', 'skewX', 'skewY'\n];\nexport function copyTransform(target, source) {\n for (var i = 0; i < TRANSFORMABLE_PROPS.length; i++) {\n var propName = TRANSFORMABLE_PROPS[i];\n target[propName] = source[propName];\n }\n}\nexport default Transformable;\n","var wmUniqueIndex = Math.round(Math.random() * 9);\nvar supportDefineProperty = typeof Object.defineProperty === 'function';\nvar WeakMap = (function () {\n function WeakMap() {\n this._id = '__ec_inner_' + wmUniqueIndex++;\n }\n WeakMap.prototype.get = function (key) {\n return this._guard(key)[this._id];\n };\n WeakMap.prototype.set = function (key, value) {\n var target = this._guard(key);\n if (supportDefineProperty) {\n Object.defineProperty(target, this._id, {\n value: value,\n enumerable: false,\n configurable: true\n });\n }\n else {\n target[this._id] = value;\n }\n return this;\n };\n WeakMap.prototype[\"delete\"] = function (key) {\n if (this.has(key)) {\n delete this._guard(key)[this._id];\n return true;\n }\n return false;\n };\n WeakMap.prototype.has = function (key) {\n return !!this._guard(key)[this._id];\n };\n WeakMap.prototype._guard = function (key) {\n if (key !== Object(key)) {\n throw TypeError('Value of WeakMap is not a non-null object.');\n }\n return key;\n };\n return WeakMap;\n}());\nexport default WeakMap;\n","import * as vec2 from './vector.js';\nimport * as curve from './curve.js';\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar PI2 = Math.PI * 2;\nvar start = vec2.create();\nvar end = vec2.create();\nvar extremity = vec2.create();\nexport function fromPoints(points, min, max) {\n if (points.length === 0) {\n return;\n }\n var p = points[0];\n var left = p[0];\n var right = p[0];\n var top = p[1];\n var bottom = p[1];\n for (var i = 1; i < points.length; i++) {\n p = points[i];\n left = mathMin(left, p[0]);\n right = mathMax(right, p[0]);\n top = mathMin(top, p[1]);\n bottom = mathMax(bottom, p[1]);\n }\n min[0] = left;\n min[1] = top;\n max[0] = right;\n max[1] = bottom;\n}\nexport function fromLine(x0, y0, x1, y1, min, max) {\n min[0] = mathMin(x0, x1);\n min[1] = mathMin(y0, y1);\n max[0] = mathMax(x0, x1);\n max[1] = mathMax(y0, y1);\n}\nvar xDim = [];\nvar yDim = [];\nexport function fromCubic(x0, y0, x1, y1, x2, y2, x3, y3, min, max) {\n var cubicExtrema = curve.cubicExtrema;\n var cubicAt = curve.cubicAt;\n var n = cubicExtrema(x0, x1, x2, x3, xDim);\n min[0] = Infinity;\n min[1] = Infinity;\n max[0] = -Infinity;\n max[1] = -Infinity;\n for (var i = 0; i < n; i++) {\n var x = cubicAt(x0, x1, x2, x3, xDim[i]);\n min[0] = mathMin(x, min[0]);\n max[0] = mathMax(x, max[0]);\n }\n n = cubicExtrema(y0, y1, y2, y3, yDim);\n for (var i = 0; i < n; i++) {\n var y = cubicAt(y0, y1, y2, y3, yDim[i]);\n min[1] = mathMin(y, min[1]);\n max[1] = mathMax(y, max[1]);\n }\n min[0] = mathMin(x0, min[0]);\n max[0] = mathMax(x0, max[0]);\n min[0] = mathMin(x3, min[0]);\n max[0] = mathMax(x3, max[0]);\n min[1] = mathMin(y0, min[1]);\n max[1] = mathMax(y0, max[1]);\n min[1] = mathMin(y3, min[1]);\n max[1] = mathMax(y3, max[1]);\n}\nexport function fromQuadratic(x0, y0, x1, y1, x2, y2, min, max) {\n var quadraticExtremum = curve.quadraticExtremum;\n var quadraticAt = curve.quadraticAt;\n var tx = mathMax(mathMin(quadraticExtremum(x0, x1, x2), 1), 0);\n var ty = mathMax(mathMin(quadraticExtremum(y0, y1, y2), 1), 0);\n var x = quadraticAt(x0, x1, x2, tx);\n var y = quadraticAt(y0, y1, y2, ty);\n min[0] = mathMin(x0, x2, x);\n min[1] = mathMin(y0, y2, y);\n max[0] = mathMax(x0, x2, x);\n max[1] = mathMax(y0, y2, y);\n}\nexport function fromArc(x, y, rx, ry, startAngle, endAngle, anticlockwise, min, max) {\n var vec2Min = vec2.min;\n var vec2Max = vec2.max;\n var diff = Math.abs(startAngle - endAngle);\n if (diff % PI2 < 1e-4 && diff > 1e-4) {\n min[0] = x - rx;\n min[1] = y - ry;\n max[0] = x + rx;\n max[1] = y + ry;\n return;\n }\n start[0] = mathCos(startAngle) * rx + x;\n start[1] = mathSin(startAngle) * ry + y;\n end[0] = mathCos(endAngle) * rx + x;\n end[1] = mathSin(endAngle) * ry + y;\n vec2Min(min, start, end);\n vec2Max(max, start, end);\n startAngle = startAngle % (PI2);\n if (startAngle < 0) {\n startAngle = startAngle + PI2;\n }\n endAngle = endAngle % (PI2);\n if (endAngle < 0) {\n endAngle = endAngle + PI2;\n }\n if (startAngle > endAngle && !anticlockwise) {\n endAngle += PI2;\n }\n else if (startAngle < endAngle && anticlockwise) {\n startAngle += PI2;\n }\n if (anticlockwise) {\n var tmp = endAngle;\n endAngle = startAngle;\n startAngle = tmp;\n }\n for (var angle = 0; angle < endAngle; angle += Math.PI / 2) {\n if (angle > startAngle) {\n extremity[0] = mathCos(angle) * rx + x;\n extremity[1] = mathSin(angle) * ry + y;\n vec2Min(min, extremity, min);\n vec2Max(max, extremity, max);\n }\n }\n}\n","import { create as v2Create, distSquare as v2DistSquare } from './vector.js';\nvar mathPow = Math.pow;\nvar mathSqrt = Math.sqrt;\nvar EPSILON = 1e-8;\nvar EPSILON_NUMERIC = 1e-4;\nvar THREE_SQRT = mathSqrt(3);\nvar ONE_THIRD = 1 / 3;\nvar _v0 = v2Create();\nvar _v1 = v2Create();\nvar _v2 = v2Create();\nfunction isAroundZero(val) {\n return val > -EPSILON && val < EPSILON;\n}\nfunction isNotAroundZero(val) {\n return val > EPSILON || val < -EPSILON;\n}\nexport function cubicAt(p0, p1, p2, p3, t) {\n var onet = 1 - t;\n return onet * onet * (onet * p0 + 3 * t * p1)\n + t * t * (t * p3 + 3 * onet * p2);\n}\nexport function cubicDerivativeAt(p0, p1, p2, p3, t) {\n var onet = 1 - t;\n return 3 * (((p1 - p0) * onet + 2 * (p2 - p1) * t) * onet\n + (p3 - p2) * t * t);\n}\nexport function cubicRootAt(p0, p1, p2, p3, val, roots) {\n var a = p3 + 3 * (p1 - p2) - p0;\n var b = 3 * (p2 - p1 * 2 + p0);\n var c = 3 * (p1 - p0);\n var d = p0 - val;\n var A = b * b - 3 * a * c;\n var B = b * c - 9 * a * d;\n var C = c * c - 3 * b * d;\n var n = 0;\n if (isAroundZero(A) && isAroundZero(B)) {\n if (isAroundZero(b)) {\n roots[0] = 0;\n }\n else {\n var t1 = -c / b;\n if (t1 >= 0 && t1 <= 1) {\n roots[n++] = t1;\n }\n }\n }\n else {\n var disc = B * B - 4 * A * C;\n if (isAroundZero(disc)) {\n var K = B / A;\n var t1 = -b / a + K;\n var t2 = -K / 2;\n if (t1 >= 0 && t1 <= 1) {\n roots[n++] = t1;\n }\n if (t2 >= 0 && t2 <= 1) {\n roots[n++] = t2;\n }\n }\n else if (disc > 0) {\n var discSqrt = mathSqrt(disc);\n var Y1 = A * b + 1.5 * a * (-B + discSqrt);\n var Y2 = A * b + 1.5 * a * (-B - discSqrt);\n if (Y1 < 0) {\n Y1 = -mathPow(-Y1, ONE_THIRD);\n }\n else {\n Y1 = mathPow(Y1, ONE_THIRD);\n }\n if (Y2 < 0) {\n Y2 = -mathPow(-Y2, ONE_THIRD);\n }\n else {\n Y2 = mathPow(Y2, ONE_THIRD);\n }\n var t1 = (-b - (Y1 + Y2)) / (3 * a);\n if (t1 >= 0 && t1 <= 1) {\n roots[n++] = t1;\n }\n }\n else {\n var T = (2 * A * b - 3 * a * B) / (2 * mathSqrt(A * A * A));\n var theta = Math.acos(T) / 3;\n var ASqrt = mathSqrt(A);\n var tmp = Math.cos(theta);\n var t1 = (-b - 2 * ASqrt * tmp) / (3 * a);\n var t2 = (-b + ASqrt * (tmp + THREE_SQRT * Math.sin(theta))) / (3 * a);\n var t3 = (-b + ASqrt * (tmp - THREE_SQRT * Math.sin(theta))) / (3 * a);\n if (t1 >= 0 && t1 <= 1) {\n roots[n++] = t1;\n }\n if (t2 >= 0 && t2 <= 1) {\n roots[n++] = t2;\n }\n if (t3 >= 0 && t3 <= 1) {\n roots[n++] = t3;\n }\n }\n }\n return n;\n}\nexport function cubicExtrema(p0, p1, p2, p3, extrema) {\n var b = 6 * p2 - 12 * p1 + 6 * p0;\n var a = 9 * p1 + 3 * p3 - 3 * p0 - 9 * p2;\n var c = 3 * p1 - 3 * p0;\n var n = 0;\n if (isAroundZero(a)) {\n if (isNotAroundZero(b)) {\n var t1 = -c / b;\n if (t1 >= 0 && t1 <= 1) {\n extrema[n++] = t1;\n }\n }\n }\n else {\n var disc = b * b - 4 * a * c;\n if (isAroundZero(disc)) {\n extrema[0] = -b / (2 * a);\n }\n else if (disc > 0) {\n var discSqrt = mathSqrt(disc);\n var t1 = (-b + discSqrt) / (2 * a);\n var t2 = (-b - discSqrt) / (2 * a);\n if (t1 >= 0 && t1 <= 1) {\n extrema[n++] = t1;\n }\n if (t2 >= 0 && t2 <= 1) {\n extrema[n++] = t2;\n }\n }\n }\n return n;\n}\nexport function cubicSubdivide(p0, p1, p2, p3, t, out) {\n var p01 = (p1 - p0) * t + p0;\n var p12 = (p2 - p1) * t + p1;\n var p23 = (p3 - p2) * t + p2;\n var p012 = (p12 - p01) * t + p01;\n var p123 = (p23 - p12) * t + p12;\n var p0123 = (p123 - p012) * t + p012;\n out[0] = p0;\n out[1] = p01;\n out[2] = p012;\n out[3] = p0123;\n out[4] = p0123;\n out[5] = p123;\n out[6] = p23;\n out[7] = p3;\n}\nexport function cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, out) {\n var t;\n var interval = 0.005;\n var d = Infinity;\n var prev;\n var next;\n var d1;\n var d2;\n _v0[0] = x;\n _v0[1] = y;\n for (var _t = 0; _t < 1; _t += 0.05) {\n _v1[0] = cubicAt(x0, x1, x2, x3, _t);\n _v1[1] = cubicAt(y0, y1, y2, y3, _t);\n d1 = v2DistSquare(_v0, _v1);\n if (d1 < d) {\n t = _t;\n d = d1;\n }\n }\n d = Infinity;\n for (var i = 0; i < 32; i++) {\n if (interval < EPSILON_NUMERIC) {\n break;\n }\n prev = t - interval;\n next = t + interval;\n _v1[0] = cubicAt(x0, x1, x2, x3, prev);\n _v1[1] = cubicAt(y0, y1, y2, y3, prev);\n d1 = v2DistSquare(_v1, _v0);\n if (prev >= 0 && d1 < d) {\n t = prev;\n d = d1;\n }\n else {\n _v2[0] = cubicAt(x0, x1, x2, x3, next);\n _v2[1] = cubicAt(y0, y1, y2, y3, next);\n d2 = v2DistSquare(_v2, _v0);\n if (next <= 1 && d2 < d) {\n t = next;\n d = d2;\n }\n else {\n interval *= 0.5;\n }\n }\n }\n if (out) {\n out[0] = cubicAt(x0, x1, x2, x3, t);\n out[1] = cubicAt(y0, y1, y2, y3, t);\n }\n return mathSqrt(d);\n}\nexport function cubicLength(x0, y0, x1, y1, x2, y2, x3, y3, iteration) {\n var px = x0;\n var py = y0;\n var d = 0;\n var step = 1 / iteration;\n for (var i = 1; i <= iteration; i++) {\n var t = i * step;\n var x = cubicAt(x0, x1, x2, x3, t);\n var y = cubicAt(y0, y1, y2, y3, t);\n var dx = x - px;\n var dy = y - py;\n d += Math.sqrt(dx * dx + dy * dy);\n px = x;\n py = y;\n }\n return d;\n}\nexport function quadraticAt(p0, p1, p2, t) {\n var onet = 1 - t;\n return onet * (onet * p0 + 2 * t * p1) + t * t * p2;\n}\nexport function quadraticDerivativeAt(p0, p1, p2, t) {\n return 2 * ((1 - t) * (p1 - p0) + t * (p2 - p1));\n}\nexport function quadraticRootAt(p0, p1, p2, val, roots) {\n var a = p0 - 2 * p1 + p2;\n var b = 2 * (p1 - p0);\n var c = p0 - val;\n var n = 0;\n if (isAroundZero(a)) {\n if (isNotAroundZero(b)) {\n var t1 = -c / b;\n if (t1 >= 0 && t1 <= 1) {\n roots[n++] = t1;\n }\n }\n }\n else {\n var disc = b * b - 4 * a * c;\n if (isAroundZero(disc)) {\n var t1 = -b / (2 * a);\n if (t1 >= 0 && t1 <= 1) {\n roots[n++] = t1;\n }\n }\n else if (disc > 0) {\n var discSqrt = mathSqrt(disc);\n var t1 = (-b + discSqrt) / (2 * a);\n var t2 = (-b - discSqrt) / (2 * a);\n if (t1 >= 0 && t1 <= 1) {\n roots[n++] = t1;\n }\n if (t2 >= 0 && t2 <= 1) {\n roots[n++] = t2;\n }\n }\n }\n return n;\n}\nexport function quadraticExtremum(p0, p1, p2) {\n var divider = p0 + p2 - 2 * p1;\n if (divider === 0) {\n return 0.5;\n }\n else {\n return (p0 - p1) / divider;\n }\n}\nexport function quadraticSubdivide(p0, p1, p2, t, out) {\n var p01 = (p1 - p0) * t + p0;\n var p12 = (p2 - p1) * t + p1;\n var p012 = (p12 - p01) * t + p01;\n out[0] = p0;\n out[1] = p01;\n out[2] = p012;\n out[3] = p012;\n out[4] = p12;\n out[5] = p2;\n}\nexport function quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, out) {\n var t;\n var interval = 0.005;\n var d = Infinity;\n _v0[0] = x;\n _v0[1] = y;\n for (var _t = 0; _t < 1; _t += 0.05) {\n _v1[0] = quadraticAt(x0, x1, x2, _t);\n _v1[1] = quadraticAt(y0, y1, y2, _t);\n var d1 = v2DistSquare(_v0, _v1);\n if (d1 < d) {\n t = _t;\n d = d1;\n }\n }\n d = Infinity;\n for (var i = 0; i < 32; i++) {\n if (interval < EPSILON_NUMERIC) {\n break;\n }\n var prev = t - interval;\n var next = t + interval;\n _v1[0] = quadraticAt(x0, x1, x2, prev);\n _v1[1] = quadraticAt(y0, y1, y2, prev);\n var d1 = v2DistSquare(_v1, _v0);\n if (prev >= 0 && d1 < d) {\n t = prev;\n d = d1;\n }\n else {\n _v2[0] = quadraticAt(x0, x1, x2, next);\n _v2[1] = quadraticAt(y0, y1, y2, next);\n var d2 = v2DistSquare(_v2, _v0);\n if (next <= 1 && d2 < d) {\n t = next;\n d = d2;\n }\n else {\n interval *= 0.5;\n }\n }\n }\n if (out) {\n out[0] = quadraticAt(x0, x1, x2, t);\n out[1] = quadraticAt(y0, y1, y2, t);\n }\n return mathSqrt(d);\n}\nexport function quadraticLength(x0, y0, x1, y1, x2, y2, iteration) {\n var px = x0;\n var py = y0;\n var d = 0;\n var step = 1 / iteration;\n for (var i = 1; i <= iteration; i++) {\n var t = i * step;\n var x = quadraticAt(x0, x1, x2, t);\n var y = quadraticAt(y0, y1, y2, t);\n var dx = x - px;\n var dy = y - py;\n d += Math.sqrt(dx * dx + dy * dy);\n px = x;\n py = y;\n }\n return d;\n}\n","import env from './env.js';\nimport { buildTransformer } from './fourPointsTransform.js';\nvar EVENT_SAVED_PROP = '___zrEVENTSAVED';\nvar _calcOut = [];\nexport function transformLocalCoord(out, elFrom, elTarget, inX, inY) {\n return transformCoordWithViewport(_calcOut, elFrom, inX, inY, true)\n && transformCoordWithViewport(out, elTarget, _calcOut[0], _calcOut[1]);\n}\nexport function transformCoordWithViewport(out, el, inX, inY, inverse) {\n if (el.getBoundingClientRect && env.domSupported && !isCanvasEl(el)) {\n var saved = el[EVENT_SAVED_PROP] || (el[EVENT_SAVED_PROP] = {});\n var markers = prepareCoordMarkers(el, saved);\n var transformer = preparePointerTransformer(markers, saved, inverse);\n if (transformer) {\n transformer(out, inX, inY);\n return true;\n }\n }\n return false;\n}\nfunction prepareCoordMarkers(el, saved) {\n var markers = saved.markers;\n if (markers) {\n return markers;\n }\n markers = saved.markers = [];\n var propLR = ['left', 'right'];\n var propTB = ['top', 'bottom'];\n for (var i = 0; i < 4; i++) {\n var marker = document.createElement('div');\n var stl = marker.style;\n var idxLR = i % 2;\n var idxTB = (i >> 1) % 2;\n stl.cssText = [\n 'position: absolute',\n 'visibility: hidden',\n 'padding: 0',\n 'margin: 0',\n 'border-width: 0',\n 'user-select: none',\n 'width:0',\n 'height:0',\n propLR[idxLR] + ':0',\n propTB[idxTB] + ':0',\n propLR[1 - idxLR] + ':auto',\n propTB[1 - idxTB] + ':auto',\n ''\n ].join('!important;');\n el.appendChild(marker);\n markers.push(marker);\n }\n return markers;\n}\nfunction preparePointerTransformer(markers, saved, inverse) {\n var transformerName = inverse ? 'invTrans' : 'trans';\n var transformer = saved[transformerName];\n var oldSrcCoords = saved.srcCoords;\n var srcCoords = [];\n var destCoords = [];\n var oldCoordTheSame = true;\n for (var i = 0; i < 4; i++) {\n var rect = markers[i].getBoundingClientRect();\n var ii = 2 * i;\n var x = rect.left;\n var y = rect.top;\n srcCoords.push(x, y);\n oldCoordTheSame = oldCoordTheSame && oldSrcCoords && x === oldSrcCoords[ii] && y === oldSrcCoords[ii + 1];\n destCoords.push(markers[i].offsetLeft, markers[i].offsetTop);\n }\n return (oldCoordTheSame && transformer)\n ? transformer\n : (saved.srcCoords = srcCoords,\n saved[transformerName] = inverse\n ? buildTransformer(destCoords, srcCoords)\n : buildTransformer(srcCoords, destCoords));\n}\nexport function isCanvasEl(el) {\n return el.nodeName.toUpperCase() === 'CANVAS';\n}\nvar replaceReg = /([&<>\"'])/g;\nvar replaceMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n '\\'': '''\n};\nexport function encodeHTML(source) {\n return source == null\n ? ''\n : (source + '').replace(replaceReg, function (str, c) {\n return replaceMap[c];\n });\n}\n","var Browser = (function () {\n function Browser() {\n this.firefox = false;\n this.ie = false;\n this.edge = false;\n this.newEdge = false;\n this.weChat = false;\n }\n return Browser;\n}());\nvar Env = (function () {\n function Env() {\n this.browser = new Browser();\n this.node = false;\n this.wxa = false;\n this.worker = false;\n this.svgSupported = false;\n this.touchEventsSupported = false;\n this.pointerEventsSupported = false;\n this.domSupported = false;\n this.transformSupported = false;\n this.transform3dSupported = false;\n this.hasGlobalWindow = typeof window !== 'undefined';\n }\n return Env;\n}());\nvar env = new Env();\nif (typeof wx === 'object' && typeof wx.getSystemInfoSync === 'function') {\n env.wxa = true;\n env.touchEventsSupported = true;\n}\nelse if (typeof document === 'undefined' && typeof self !== 'undefined') {\n env.worker = true;\n}\nelse if (typeof navigator === 'undefined') {\n env.node = true;\n env.svgSupported = true;\n}\nelse {\n detect(navigator.userAgent, env);\n}\nfunction detect(ua, env) {\n var browser = env.browser;\n var firefox = ua.match(/Firefox\\/([\\d.]+)/);\n var ie = ua.match(/MSIE\\s([\\d.]+)/)\n || ua.match(/Trident\\/.+?rv:(([\\d.]+))/);\n var edge = ua.match(/Edge?\\/([\\d.]+)/);\n var weChat = (/micromessenger/i).test(ua);\n if (firefox) {\n browser.firefox = true;\n browser.version = firefox[1];\n }\n if (ie) {\n browser.ie = true;\n browser.version = ie[1];\n }\n if (edge) {\n browser.edge = true;\n browser.version = edge[1];\n browser.newEdge = +edge[1].split('.')[0] > 18;\n }\n if (weChat) {\n browser.weChat = true;\n }\n env.svgSupported = typeof SVGRect !== 'undefined';\n env.touchEventsSupported = 'ontouchstart' in window && !browser.ie && !browser.edge;\n env.pointerEventsSupported = 'onpointerdown' in window\n && (browser.edge || (browser.ie && +browser.version >= 11));\n env.domSupported = typeof document !== 'undefined';\n var style = document.documentElement.style;\n env.transform3dSupported = ((browser.ie && 'transition' in style)\n || browser.edge\n || (('WebKitCSSMatrix' in window) && ('m11' in new WebKitCSSMatrix()))\n || 'MozPerspective' in style)\n && !('OTransition' in style);\n env.transformSupported = env.transform3dSupported\n || (browser.ie && +browser.version >= 9);\n}\nexport default env;\n","import Eventful from './Eventful.js';\nimport env from './env.js';\nimport { isCanvasEl, transformCoordWithViewport } from './dom.js';\nvar MOUSE_EVENT_REG = /^(?:mouse|pointer|contextmenu|drag|drop)|click/;\nvar _calcOut = [];\nvar firefoxNotSupportOffsetXY = env.browser.firefox\n && +env.browser.version.split('.')[0] < 39;\nexport function clientToLocal(el, e, out, calculate) {\n out = out || {};\n if (calculate) {\n calculateZrXY(el, e, out);\n }\n else if (firefoxNotSupportOffsetXY\n && e.layerX != null\n && e.layerX !== e.offsetX) {\n out.zrX = e.layerX;\n out.zrY = e.layerY;\n }\n else if (e.offsetX != null) {\n out.zrX = e.offsetX;\n out.zrY = e.offsetY;\n }\n else {\n calculateZrXY(el, e, out);\n }\n return out;\n}\nfunction calculateZrXY(el, e, out) {\n if (env.domSupported && el.getBoundingClientRect) {\n var ex = e.clientX;\n var ey = e.clientY;\n if (isCanvasEl(el)) {\n var box = el.getBoundingClientRect();\n out.zrX = ex - box.left;\n out.zrY = ey - box.top;\n return;\n }\n else {\n if (transformCoordWithViewport(_calcOut, el, ex, ey)) {\n out.zrX = _calcOut[0];\n out.zrY = _calcOut[1];\n return;\n }\n }\n }\n out.zrX = out.zrY = 0;\n}\nexport function getNativeEvent(e) {\n return e\n || window.event;\n}\nexport function normalizeEvent(el, e, calculate) {\n e = getNativeEvent(e);\n if (e.zrX != null) {\n return e;\n }\n var eventType = e.type;\n var isTouch = eventType && eventType.indexOf('touch') >= 0;\n if (!isTouch) {\n clientToLocal(el, e, e, calculate);\n var wheelDelta = getWheelDeltaMayPolyfill(e);\n e.zrDelta = wheelDelta ? wheelDelta / 120 : -(e.detail || 0) / 3;\n }\n else {\n var touch = eventType !== 'touchend'\n ? e.targetTouches[0]\n : e.changedTouches[0];\n touch && clientToLocal(el, touch, e, calculate);\n }\n var button = e.button;\n if (e.which == null && button !== undefined && MOUSE_EVENT_REG.test(e.type)) {\n e.which = (button & 1 ? 1 : (button & 2 ? 3 : (button & 4 ? 2 : 0)));\n }\n return e;\n}\nfunction getWheelDeltaMayPolyfill(e) {\n var rawWheelDelta = e.wheelDelta;\n if (rawWheelDelta) {\n return rawWheelDelta;\n }\n var deltaX = e.deltaX;\n var deltaY = e.deltaY;\n if (deltaX == null || deltaY == null) {\n return rawWheelDelta;\n }\n var delta = deltaY !== 0 ? Math.abs(deltaY) : Math.abs(deltaX);\n var sign = deltaY > 0 ? -1\n : deltaY < 0 ? 1\n : deltaX > 0 ? -1\n : 1;\n return 3 * delta * sign;\n}\nexport function addEventListener(el, name, handler, opt) {\n el.addEventListener(name, handler, opt);\n}\nexport function removeEventListener(el, name, handler, opt) {\n el.removeEventListener(name, handler, opt);\n}\nexport var stop = function (e) {\n e.preventDefault();\n e.stopPropagation();\n e.cancelBubble = true;\n};\nexport function isMiddleOrRightButtonOnMouseUpDown(e) {\n return e.which === 2 || e.which === 3;\n}\nexport { Eventful as Dispatcher };\n","var LN2 = Math.log(2);\nfunction determinant(rows, rank, rowStart, rowMask, colMask, detCache) {\n var cacheKey = rowMask + '-' + colMask;\n var fullRank = rows.length;\n if (detCache.hasOwnProperty(cacheKey)) {\n return detCache[cacheKey];\n }\n if (rank === 1) {\n var colStart = Math.round(Math.log(((1 << fullRank) - 1) & ~colMask) / LN2);\n return rows[rowStart][colStart];\n }\n var subRowMask = rowMask | (1 << rowStart);\n var subRowStart = rowStart + 1;\n while (rowMask & (1 << subRowStart)) {\n subRowStart++;\n }\n var sum = 0;\n for (var j = 0, colLocalIdx = 0; j < fullRank; j++) {\n var colTag = 1 << j;\n if (!(colTag & colMask)) {\n sum += (colLocalIdx % 2 ? -1 : 1) * rows[rowStart][j]\n * determinant(rows, rank - 1, subRowStart, subRowMask, colMask | colTag, detCache);\n colLocalIdx++;\n }\n }\n detCache[cacheKey] = sum;\n return sum;\n}\nexport function buildTransformer(src, dest) {\n var mA = [\n [src[0], src[1], 1, 0, 0, 0, -dest[0] * src[0], -dest[0] * src[1]],\n [0, 0, 0, src[0], src[1], 1, -dest[1] * src[0], -dest[1] * src[1]],\n [src[2], src[3], 1, 0, 0, 0, -dest[2] * src[2], -dest[2] * src[3]],\n [0, 0, 0, src[2], src[3], 1, -dest[3] * src[2], -dest[3] * src[3]],\n [src[4], src[5], 1, 0, 0, 0, -dest[4] * src[4], -dest[4] * src[5]],\n [0, 0, 0, src[4], src[5], 1, -dest[5] * src[4], -dest[5] * src[5]],\n [src[6], src[7], 1, 0, 0, 0, -dest[6] * src[6], -dest[6] * src[7]],\n [0, 0, 0, src[6], src[7], 1, -dest[7] * src[6], -dest[7] * src[7]]\n ];\n var detCache = {};\n var det = determinant(mA, 8, 0, 0, 0, detCache);\n if (det === 0) {\n return;\n }\n var vh = [];\n for (var i = 0; i < 8; i++) {\n for (var j = 0; j < 8; j++) {\n vh[j] == null && (vh[j] = 0);\n vh[j] += ((i + j) % 2 ? -1 : 1)\n * determinant(mA, 7, i === 0 ? 1 : 0, 1 << i, 1 << j, detCache)\n / det * dest[i];\n }\n }\n return function (out, srcPointX, srcPointY) {\n var pk = srcPointX * vh[6] + srcPointY * vh[7] + 1;\n out[0] = (srcPointX * vh[0] + srcPointY * vh[1] + vh[2]) / pk;\n out[1] = (srcPointX * vh[3] + srcPointY * vh[4] + vh[5]) / pk;\n };\n}\n","export function create() {\n return [1, 0, 0, 1, 0, 0];\n}\nexport function identity(out) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 1;\n out[4] = 0;\n out[5] = 0;\n return out;\n}\nexport function copy(out, m) {\n out[0] = m[0];\n out[1] = m[1];\n out[2] = m[2];\n out[3] = m[3];\n out[4] = m[4];\n out[5] = m[5];\n return out;\n}\nexport function mul(out, m1, m2) {\n var out0 = m1[0] * m2[0] + m1[2] * m2[1];\n var out1 = m1[1] * m2[0] + m1[3] * m2[1];\n var out2 = m1[0] * m2[2] + m1[2] * m2[3];\n var out3 = m1[1] * m2[2] + m1[3] * m2[3];\n var out4 = m1[0] * m2[4] + m1[2] * m2[5] + m1[4];\n var out5 = m1[1] * m2[4] + m1[3] * m2[5] + m1[5];\n out[0] = out0;\n out[1] = out1;\n out[2] = out2;\n out[3] = out3;\n out[4] = out4;\n out[5] = out5;\n return out;\n}\nexport function translate(out, a, v) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4] + v[0];\n out[5] = a[5] + v[1];\n return out;\n}\nexport function rotate(out, a, rad) {\n var aa = a[0];\n var ac = a[2];\n var atx = a[4];\n var ab = a[1];\n var ad = a[3];\n var aty = a[5];\n var st = Math.sin(rad);\n var ct = Math.cos(rad);\n out[0] = aa * ct + ab * st;\n out[1] = -aa * st + ab * ct;\n out[2] = ac * ct + ad * st;\n out[3] = -ac * st + ct * ad;\n out[4] = ct * atx + st * aty;\n out[5] = ct * aty - st * atx;\n return out;\n}\nexport function scale(out, a, v) {\n var vx = v[0];\n var vy = v[1];\n out[0] = a[0] * vx;\n out[1] = a[1] * vy;\n out[2] = a[2] * vx;\n out[3] = a[3] * vy;\n out[4] = a[4] * vx;\n out[5] = a[5] * vy;\n return out;\n}\nexport function invert(out, a) {\n var aa = a[0];\n var ac = a[2];\n var atx = a[4];\n var ab = a[1];\n var ad = a[3];\n var aty = a[5];\n var det = aa * ad - ab * ac;\n if (!det) {\n return null;\n }\n det = 1.0 / det;\n out[0] = ad * det;\n out[1] = -ab * det;\n out[2] = -ac * det;\n out[3] = aa * det;\n out[4] = (ac * aty - ad * atx) * det;\n out[5] = (ab * atx - aa * aty) * det;\n return out;\n}\nexport function clone(a) {\n var b = create();\n copy(b, a);\n return b;\n}\n","export var DEFAULT_FONT_SIZE = 12;\nexport var DEFAULT_FONT_FAMILY = 'sans-serif';\nexport var DEFAULT_FONT = DEFAULT_FONT_SIZE + \"px \" + DEFAULT_FONT_FAMILY;\nvar OFFSET = 20;\nvar SCALE = 100;\nvar defaultWidthMapStr = \"007LLmW'55;N0500LLLLLLLLLL00NNNLzWW\\\\\\\\WQb\\\\0FWLg\\\\bWb\\\\WQ\\\\WrWWQ000CL5LLFLL0LL**F*gLLLL5F0LF\\\\FFF5.5N\";\nfunction getTextWidthMap(mapStr) {\n var map = {};\n if (typeof JSON === 'undefined') {\n return map;\n }\n for (var i = 0; i < mapStr.length; i++) {\n var char = String.fromCharCode(i + 32);\n var size = (mapStr.charCodeAt(i) - OFFSET) / SCALE;\n map[char] = size;\n }\n return map;\n}\nexport var DEFAULT_TEXT_WIDTH_MAP = getTextWidthMap(defaultWidthMapStr);\nexport var platformApi = {\n createCanvas: function () {\n return typeof document !== 'undefined'\n && document.createElement('canvas');\n },\n measureText: (function () {\n var _ctx;\n var _cachedFont;\n return function (text, font) {\n if (!_ctx) {\n var canvas = platformApi.createCanvas();\n _ctx = canvas && canvas.getContext('2d');\n }\n if (_ctx) {\n if (_cachedFont !== font) {\n _cachedFont = _ctx.font = font || DEFAULT_FONT;\n }\n return _ctx.measureText(text);\n }\n else {\n text = text || '';\n font = font || DEFAULT_FONT;\n var res = /(\\d+)px/.exec(font);\n var fontSize = res && +res[1] || DEFAULT_FONT_SIZE;\n var width = 0;\n if (font.indexOf('mono') >= 0) {\n width = fontSize * text.length;\n }\n else {\n for (var i = 0; i < text.length; i++) {\n var preCalcWidth = DEFAULT_TEXT_WIDTH_MAP[text[i]];\n width += preCalcWidth == null ? fontSize : (preCalcWidth * fontSize);\n }\n }\n return { width: width };\n }\n };\n })(),\n loadImage: function (src, onload, onerror) {\n var image = new Image();\n image.onload = onload;\n image.onerror = onerror;\n image.src = src;\n return image;\n }\n};\nexport function setPlatformAPI(newPlatformApis) {\n for (var key in platformApi) {\n if (newPlatformApis[key]) {\n platformApi[key] = newPlatformApis[key];\n }\n }\n}\n","var DEFAULT_MIN_MERGE = 32;\nvar DEFAULT_MIN_GALLOPING = 7;\nvar DEFAULT_TMP_STORAGE_LENGTH = 256;\nfunction minRunLength(n) {\n var r = 0;\n while (n >= DEFAULT_MIN_MERGE) {\n r |= n & 1;\n n >>= 1;\n }\n return n + r;\n}\nfunction makeAscendingRun(array, lo, hi, compare) {\n var runHi = lo + 1;\n if (runHi === hi) {\n return 1;\n }\n if (compare(array[runHi++], array[lo]) < 0) {\n while (runHi < hi && compare(array[runHi], array[runHi - 1]) < 0) {\n runHi++;\n }\n reverseRun(array, lo, runHi);\n }\n else {\n while (runHi < hi && compare(array[runHi], array[runHi - 1]) >= 0) {\n runHi++;\n }\n }\n return runHi - lo;\n}\nfunction reverseRun(array, lo, hi) {\n hi--;\n while (lo < hi) {\n var t = array[lo];\n array[lo++] = array[hi];\n array[hi--] = t;\n }\n}\nfunction binaryInsertionSort(array, lo, hi, start, compare) {\n if (start === lo) {\n start++;\n }\n for (; start < hi; start++) {\n var pivot = array[start];\n var left = lo;\n var right = start;\n var mid;\n while (left < right) {\n mid = left + right >>> 1;\n if (compare(pivot, array[mid]) < 0) {\n right = mid;\n }\n else {\n left = mid + 1;\n }\n }\n var n = start - left;\n switch (n) {\n case 3:\n array[left + 3] = array[left + 2];\n case 2:\n array[left + 2] = array[left + 1];\n case 1:\n array[left + 1] = array[left];\n break;\n default:\n while (n > 0) {\n array[left + n] = array[left + n - 1];\n n--;\n }\n }\n array[left] = pivot;\n }\n}\nfunction gallopLeft(value, array, start, length, hint, compare) {\n var lastOffset = 0;\n var maxOffset = 0;\n var offset = 1;\n if (compare(value, array[start + hint]) > 0) {\n maxOffset = length - hint;\n while (offset < maxOffset && compare(value, array[start + hint + offset]) > 0) {\n lastOffset = offset;\n offset = (offset << 1) + 1;\n if (offset <= 0) {\n offset = maxOffset;\n }\n }\n if (offset > maxOffset) {\n offset = maxOffset;\n }\n lastOffset += hint;\n offset += hint;\n }\n else {\n maxOffset = hint + 1;\n while (offset < maxOffset && compare(value, array[start + hint - offset]) <= 0) {\n lastOffset = offset;\n offset = (offset << 1) + 1;\n if (offset <= 0) {\n offset = maxOffset;\n }\n }\n if (offset > maxOffset) {\n offset = maxOffset;\n }\n var tmp = lastOffset;\n lastOffset = hint - offset;\n offset = hint - tmp;\n }\n lastOffset++;\n while (lastOffset < offset) {\n var m = lastOffset + (offset - lastOffset >>> 1);\n if (compare(value, array[start + m]) > 0) {\n lastOffset = m + 1;\n }\n else {\n offset = m;\n }\n }\n return offset;\n}\nfunction gallopRight(value, array, start, length, hint, compare) {\n var lastOffset = 0;\n var maxOffset = 0;\n var offset = 1;\n if (compare(value, array[start + hint]) < 0) {\n maxOffset = hint + 1;\n while (offset < maxOffset && compare(value, array[start + hint - offset]) < 0) {\n lastOffset = offset;\n offset = (offset << 1) + 1;\n if (offset <= 0) {\n offset = maxOffset;\n }\n }\n if (offset > maxOffset) {\n offset = maxOffset;\n }\n var tmp = lastOffset;\n lastOffset = hint - offset;\n offset = hint - tmp;\n }\n else {\n maxOffset = length - hint;\n while (offset < maxOffset && compare(value, array[start + hint + offset]) >= 0) {\n lastOffset = offset;\n offset = (offset << 1) + 1;\n if (offset <= 0) {\n offset = maxOffset;\n }\n }\n if (offset > maxOffset) {\n offset = maxOffset;\n }\n lastOffset += hint;\n offset += hint;\n }\n lastOffset++;\n while (lastOffset < offset) {\n var m = lastOffset + (offset - lastOffset >>> 1);\n if (compare(value, array[start + m]) < 0) {\n offset = m;\n }\n else {\n lastOffset = m + 1;\n }\n }\n return offset;\n}\nfunction TimSort(array, compare) {\n var minGallop = DEFAULT_MIN_GALLOPING;\n var length = 0;\n var tmpStorageLength = DEFAULT_TMP_STORAGE_LENGTH;\n var stackLength = 0;\n var runStart;\n var runLength;\n var stackSize = 0;\n length = array.length;\n if (length < 2 * DEFAULT_TMP_STORAGE_LENGTH) {\n tmpStorageLength = length >>> 1;\n }\n var tmp = [];\n stackLength = length < 120 ? 5 : length < 1542 ? 10 : length < 119151 ? 19 : 40;\n runStart = [];\n runLength = [];\n function pushRun(_runStart, _runLength) {\n runStart[stackSize] = _runStart;\n runLength[stackSize] = _runLength;\n stackSize += 1;\n }\n function mergeRuns() {\n while (stackSize > 1) {\n var n = stackSize - 2;\n if ((n >= 1 && runLength[n - 1] <= runLength[n] + runLength[n + 1])\n || (n >= 2 && runLength[n - 2] <= runLength[n] + runLength[n - 1])) {\n if (runLength[n - 1] < runLength[n + 1]) {\n n--;\n }\n }\n else if (runLength[n] > runLength[n + 1]) {\n break;\n }\n mergeAt(n);\n }\n }\n function forceMergeRuns() {\n while (stackSize > 1) {\n var n = stackSize - 2;\n if (n > 0 && runLength[n - 1] < runLength[n + 1]) {\n n--;\n }\n mergeAt(n);\n }\n }\n function mergeAt(i) {\n var start1 = runStart[i];\n var length1 = runLength[i];\n var start2 = runStart[i + 1];\n var length2 = runLength[i + 1];\n runLength[i] = length1 + length2;\n if (i === stackSize - 3) {\n runStart[i + 1] = runStart[i + 2];\n runLength[i + 1] = runLength[i + 2];\n }\n stackSize--;\n var k = gallopRight(array[start2], array, start1, length1, 0, compare);\n start1 += k;\n length1 -= k;\n if (length1 === 0) {\n return;\n }\n length2 = gallopLeft(array[start1 + length1 - 1], array, start2, length2, length2 - 1, compare);\n if (length2 === 0) {\n return;\n }\n if (length1 <= length2) {\n mergeLow(start1, length1, start2, length2);\n }\n else {\n mergeHigh(start1, length1, start2, length2);\n }\n }\n function mergeLow(start1, length1, start2, length2) {\n var i = 0;\n for (i = 0; i < length1; i++) {\n tmp[i] = array[start1 + i];\n }\n var cursor1 = 0;\n var cursor2 = start2;\n var dest = start1;\n array[dest++] = array[cursor2++];\n if (--length2 === 0) {\n for (i = 0; i < length1; i++) {\n array[dest + i] = tmp[cursor1 + i];\n }\n return;\n }\n if (length1 === 1) {\n for (i = 0; i < length2; i++) {\n array[dest + i] = array[cursor2 + i];\n }\n array[dest + length2] = tmp[cursor1];\n return;\n }\n var _minGallop = minGallop;\n var count1;\n var count2;\n var exit;\n while (1) {\n count1 = 0;\n count2 = 0;\n exit = false;\n do {\n if (compare(array[cursor2], tmp[cursor1]) < 0) {\n array[dest++] = array[cursor2++];\n count2++;\n count1 = 0;\n if (--length2 === 0) {\n exit = true;\n break;\n }\n }\n else {\n array[dest++] = tmp[cursor1++];\n count1++;\n count2 = 0;\n if (--length1 === 1) {\n exit = true;\n break;\n }\n }\n } while ((count1 | count2) < _minGallop);\n if (exit) {\n break;\n }\n do {\n count1 = gallopRight(array[cursor2], tmp, cursor1, length1, 0, compare);\n if (count1 !== 0) {\n for (i = 0; i < count1; i++) {\n array[dest + i] = tmp[cursor1 + i];\n }\n dest += count1;\n cursor1 += count1;\n length1 -= count1;\n if (length1 <= 1) {\n exit = true;\n break;\n }\n }\n array[dest++] = array[cursor2++];\n if (--length2 === 0) {\n exit = true;\n break;\n }\n count2 = gallopLeft(tmp[cursor1], array, cursor2, length2, 0, compare);\n if (count2 !== 0) {\n for (i = 0; i < count2; i++) {\n array[dest + i] = array[cursor2 + i];\n }\n dest += count2;\n cursor2 += count2;\n length2 -= count2;\n if (length2 === 0) {\n exit = true;\n break;\n }\n }\n array[dest++] = tmp[cursor1++];\n if (--length1 === 1) {\n exit = true;\n break;\n }\n _minGallop--;\n } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING);\n if (exit) {\n break;\n }\n if (_minGallop < 0) {\n _minGallop = 0;\n }\n _minGallop += 2;\n }\n minGallop = _minGallop;\n minGallop < 1 && (minGallop = 1);\n if (length1 === 1) {\n for (i = 0; i < length2; i++) {\n array[dest + i] = array[cursor2 + i];\n }\n array[dest + length2] = tmp[cursor1];\n }\n else if (length1 === 0) {\n throw new Error();\n }\n else {\n for (i = 0; i < length1; i++) {\n array[dest + i] = tmp[cursor1 + i];\n }\n }\n }\n function mergeHigh(start1, length1, start2, length2) {\n var i = 0;\n for (i = 0; i < length2; i++) {\n tmp[i] = array[start2 + i];\n }\n var cursor1 = start1 + length1 - 1;\n var cursor2 = length2 - 1;\n var dest = start2 + length2 - 1;\n var customCursor = 0;\n var customDest = 0;\n array[dest--] = array[cursor1--];\n if (--length1 === 0) {\n customCursor = dest - (length2 - 1);\n for (i = 0; i < length2; i++) {\n array[customCursor + i] = tmp[i];\n }\n return;\n }\n if (length2 === 1) {\n dest -= length1;\n cursor1 -= length1;\n customDest = dest + 1;\n customCursor = cursor1 + 1;\n for (i = length1 - 1; i >= 0; i--) {\n array[customDest + i] = array[customCursor + i];\n }\n array[dest] = tmp[cursor2];\n return;\n }\n var _minGallop = minGallop;\n while (true) {\n var count1 = 0;\n var count2 = 0;\n var exit = false;\n do {\n if (compare(tmp[cursor2], array[cursor1]) < 0) {\n array[dest--] = array[cursor1--];\n count1++;\n count2 = 0;\n if (--length1 === 0) {\n exit = true;\n break;\n }\n }\n else {\n array[dest--] = tmp[cursor2--];\n count2++;\n count1 = 0;\n if (--length2 === 1) {\n exit = true;\n break;\n }\n }\n } while ((count1 | count2) < _minGallop);\n if (exit) {\n break;\n }\n do {\n count1 = length1 - gallopRight(tmp[cursor2], array, start1, length1, length1 - 1, compare);\n if (count1 !== 0) {\n dest -= count1;\n cursor1 -= count1;\n length1 -= count1;\n customDest = dest + 1;\n customCursor = cursor1 + 1;\n for (i = count1 - 1; i >= 0; i--) {\n array[customDest + i] = array[customCursor + i];\n }\n if (length1 === 0) {\n exit = true;\n break;\n }\n }\n array[dest--] = tmp[cursor2--];\n if (--length2 === 1) {\n exit = true;\n break;\n }\n count2 = length2 - gallopLeft(array[cursor1], tmp, 0, length2, length2 - 1, compare);\n if (count2 !== 0) {\n dest -= count2;\n cursor2 -= count2;\n length2 -= count2;\n customDest = dest + 1;\n customCursor = cursor2 + 1;\n for (i = 0; i < count2; i++) {\n array[customDest + i] = tmp[customCursor + i];\n }\n if (length2 <= 1) {\n exit = true;\n break;\n }\n }\n array[dest--] = array[cursor1--];\n if (--length1 === 0) {\n exit = true;\n break;\n }\n _minGallop--;\n } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING);\n if (exit) {\n break;\n }\n if (_minGallop < 0) {\n _minGallop = 0;\n }\n _minGallop += 2;\n }\n minGallop = _minGallop;\n if (minGallop < 1) {\n minGallop = 1;\n }\n if (length2 === 1) {\n dest -= length1;\n cursor1 -= length1;\n customDest = dest + 1;\n customCursor = cursor1 + 1;\n for (i = length1 - 1; i >= 0; i--) {\n array[customDest + i] = array[customCursor + i];\n }\n array[dest] = tmp[cursor2];\n }\n else if (length2 === 0) {\n throw new Error();\n }\n else {\n customCursor = dest - (length2 - 1);\n for (i = 0; i < length2; i++) {\n array[customCursor + i] = tmp[i];\n }\n }\n }\n return {\n mergeRuns: mergeRuns,\n forceMergeRuns: forceMergeRuns,\n pushRun: pushRun\n };\n}\nexport default function sort(array, compare, lo, hi) {\n if (!lo) {\n lo = 0;\n }\n if (!hi) {\n hi = array.length;\n }\n var remaining = hi - lo;\n if (remaining < 2) {\n return;\n }\n var runLength = 0;\n if (remaining < DEFAULT_MIN_MERGE) {\n runLength = makeAscendingRun(array, lo, hi, compare);\n binaryInsertionSort(array, lo, hi, lo + runLength, compare);\n return;\n }\n var ts = TimSort(array, compare);\n var minRun = minRunLength(remaining);\n do {\n runLength = makeAscendingRun(array, lo, hi, compare);\n if (runLength < minRun) {\n var force = remaining;\n if (force > minRun) {\n force = minRun;\n }\n binaryInsertionSort(array, lo, lo + force, lo + runLength, compare);\n runLength = force;\n }\n ts.pushRun(lo, runLength);\n ts.mergeRuns();\n remaining -= runLength;\n lo += runLength;\n } while (remaining !== 0);\n ts.forceMergeRuns();\n}\n","import { platformApi } from './platform.js';\nvar BUILTIN_OBJECT = reduce([\n 'Function',\n 'RegExp',\n 'Date',\n 'Error',\n 'CanvasGradient',\n 'CanvasPattern',\n 'Image',\n 'Canvas'\n], function (obj, val) {\n obj['[object ' + val + ']'] = true;\n return obj;\n}, {});\nvar TYPED_ARRAY = reduce([\n 'Int8',\n 'Uint8',\n 'Uint8Clamped',\n 'Int16',\n 'Uint16',\n 'Int32',\n 'Uint32',\n 'Float32',\n 'Float64'\n], function (obj, val) {\n obj['[object ' + val + 'Array]'] = true;\n return obj;\n}, {});\nvar objToString = Object.prototype.toString;\nvar arrayProto = Array.prototype;\nvar nativeForEach = arrayProto.forEach;\nvar nativeFilter = arrayProto.filter;\nvar nativeSlice = arrayProto.slice;\nvar nativeMap = arrayProto.map;\nvar ctorFunction = function () { }.constructor;\nvar protoFunction = ctorFunction ? ctorFunction.prototype : null;\nvar protoKey = '__proto__';\nvar idStart = 0x0907;\nexport function guid() {\n return idStart++;\n}\nexport function logError() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (typeof console !== 'undefined') {\n console.error.apply(console, args);\n }\n}\nexport function clone(source) {\n if (source == null || typeof source !== 'object') {\n return source;\n }\n var result = source;\n var typeStr = objToString.call(source);\n if (typeStr === '[object Array]') {\n if (!isPrimitive(source)) {\n result = [];\n for (var i = 0, len = source.length; i < len; i++) {\n result[i] = clone(source[i]);\n }\n }\n }\n else if (TYPED_ARRAY[typeStr]) {\n if (!isPrimitive(source)) {\n var Ctor = source.constructor;\n if (Ctor.from) {\n result = Ctor.from(source);\n }\n else {\n result = new Ctor(source.length);\n for (var i = 0, len = source.length; i < len; i++) {\n result[i] = source[i];\n }\n }\n }\n }\n else if (!BUILTIN_OBJECT[typeStr] && !isPrimitive(source) && !isDom(source)) {\n result = {};\n for (var key in source) {\n if (source.hasOwnProperty(key) && key !== protoKey) {\n result[key] = clone(source[key]);\n }\n }\n }\n return result;\n}\nexport function merge(target, source, overwrite) {\n if (!isObject(source) || !isObject(target)) {\n return overwrite ? clone(source) : target;\n }\n for (var key in source) {\n if (source.hasOwnProperty(key) && key !== protoKey) {\n var targetProp = target[key];\n var sourceProp = source[key];\n if (isObject(sourceProp)\n && isObject(targetProp)\n && !isArray(sourceProp)\n && !isArray(targetProp)\n && !isDom(sourceProp)\n && !isDom(targetProp)\n && !isBuiltInObject(sourceProp)\n && !isBuiltInObject(targetProp)\n && !isPrimitive(sourceProp)\n && !isPrimitive(targetProp)) {\n merge(targetProp, sourceProp, overwrite);\n }\n else if (overwrite || !(key in target)) {\n target[key] = clone(source[key]);\n }\n }\n }\n return target;\n}\nexport function mergeAll(targetAndSources, overwrite) {\n var result = targetAndSources[0];\n for (var i = 1, len = targetAndSources.length; i < len; i++) {\n result = merge(result, targetAndSources[i], overwrite);\n }\n return result;\n}\nexport function extend(target, source) {\n if (Object.assign) {\n Object.assign(target, source);\n }\n else {\n for (var key in source) {\n if (source.hasOwnProperty(key) && key !== protoKey) {\n target[key] = source[key];\n }\n }\n }\n return target;\n}\nexport function defaults(target, source, overlay) {\n var keysArr = keys(source);\n for (var i = 0; i < keysArr.length; i++) {\n var key = keysArr[i];\n if ((overlay ? source[key] != null : target[key] == null)) {\n target[key] = source[key];\n }\n }\n return target;\n}\nexport var createCanvas = platformApi.createCanvas;\nexport function indexOf(array, value) {\n if (array) {\n if (array.indexOf) {\n return array.indexOf(value);\n }\n for (var i = 0, len = array.length; i < len; i++) {\n if (array[i] === value) {\n return i;\n }\n }\n }\n return -1;\n}\nexport function inherits(clazz, baseClazz) {\n var clazzPrototype = clazz.prototype;\n function F() { }\n F.prototype = baseClazz.prototype;\n clazz.prototype = new F();\n for (var prop in clazzPrototype) {\n if (clazzPrototype.hasOwnProperty(prop)) {\n clazz.prototype[prop] = clazzPrototype[prop];\n }\n }\n clazz.prototype.constructor = clazz;\n clazz.superClass = baseClazz;\n}\nexport function mixin(target, source, override) {\n target = 'prototype' in target ? target.prototype : target;\n source = 'prototype' in source ? source.prototype : source;\n if (Object.getOwnPropertyNames) {\n var keyList = Object.getOwnPropertyNames(source);\n for (var i = 0; i < keyList.length; i++) {\n var key = keyList[i];\n if (key !== 'constructor') {\n if ((override ? source[key] != null : target[key] == null)) {\n target[key] = source[key];\n }\n }\n }\n }\n else {\n defaults(target, source, override);\n }\n}\nexport function isArrayLike(data) {\n if (!data) {\n return false;\n }\n if (typeof data === 'string') {\n return false;\n }\n return typeof data.length === 'number';\n}\nexport function each(arr, cb, context) {\n if (!(arr && cb)) {\n return;\n }\n if (arr.forEach && arr.forEach === nativeForEach) {\n arr.forEach(cb, context);\n }\n else if (arr.length === +arr.length) {\n for (var i = 0, len = arr.length; i < len; i++) {\n cb.call(context, arr[i], i, arr);\n }\n }\n else {\n for (var key in arr) {\n if (arr.hasOwnProperty(key)) {\n cb.call(context, arr[key], key, arr);\n }\n }\n }\n}\nexport function map(arr, cb, context) {\n if (!arr) {\n return [];\n }\n if (!cb) {\n return slice(arr);\n }\n if (arr.map && arr.map === nativeMap) {\n return arr.map(cb, context);\n }\n else {\n var result = [];\n for (var i = 0, len = arr.length; i < len; i++) {\n result.push(cb.call(context, arr[i], i, arr));\n }\n return result;\n }\n}\nexport function reduce(arr, cb, memo, context) {\n if (!(arr && cb)) {\n return;\n }\n for (var i = 0, len = arr.length; i < len; i++) {\n memo = cb.call(context, memo, arr[i], i, arr);\n }\n return memo;\n}\nexport function filter(arr, cb, context) {\n if (!arr) {\n return [];\n }\n if (!cb) {\n return slice(arr);\n }\n if (arr.filter && arr.filter === nativeFilter) {\n return arr.filter(cb, context);\n }\n else {\n var result = [];\n for (var i = 0, len = arr.length; i < len; i++) {\n if (cb.call(context, arr[i], i, arr)) {\n result.push(arr[i]);\n }\n }\n return result;\n }\n}\nexport function find(arr, cb, context) {\n if (!(arr && cb)) {\n return;\n }\n for (var i = 0, len = arr.length; i < len; i++) {\n if (cb.call(context, arr[i], i, arr)) {\n return arr[i];\n }\n }\n}\nexport function keys(obj) {\n if (!obj) {\n return [];\n }\n if (Object.keys) {\n return Object.keys(obj);\n }\n var keyList = [];\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n keyList.push(key);\n }\n }\n return keyList;\n}\nfunction bindPolyfill(func, context) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n return function () {\n return func.apply(context, args.concat(nativeSlice.call(arguments)));\n };\n}\nexport var bind = (protoFunction && isFunction(protoFunction.bind))\n ? protoFunction.call.bind(protoFunction.bind)\n : bindPolyfill;\nfunction curry(func) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n return function () {\n return func.apply(this, args.concat(nativeSlice.call(arguments)));\n };\n}\nexport { curry };\nexport function isArray(value) {\n if (Array.isArray) {\n return Array.isArray(value);\n }\n return objToString.call(value) === '[object Array]';\n}\nexport function isFunction(value) {\n return typeof value === 'function';\n}\nexport function isString(value) {\n return typeof value === 'string';\n}\nexport function isStringSafe(value) {\n return objToString.call(value) === '[object String]';\n}\nexport function isNumber(value) {\n return typeof value === 'number';\n}\nexport function isObject(value) {\n var type = typeof value;\n return type === 'function' || (!!value && type === 'object');\n}\nexport function isBuiltInObject(value) {\n return !!BUILTIN_OBJECT[objToString.call(value)];\n}\nexport function isTypedArray(value) {\n return !!TYPED_ARRAY[objToString.call(value)];\n}\nexport function isDom(value) {\n return typeof value === 'object'\n && typeof value.nodeType === 'number'\n && typeof value.ownerDocument === 'object';\n}\nexport function isGradientObject(value) {\n return value.colorStops != null;\n}\nexport function isImagePatternObject(value) {\n return value.image != null;\n}\nexport function isRegExp(value) {\n return objToString.call(value) === '[object RegExp]';\n}\nexport function eqNaN(value) {\n return value !== value;\n}\nexport function retrieve() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n for (var i = 0, len = args.length; i < len; i++) {\n if (args[i] != null) {\n return args[i];\n }\n }\n}\nexport function retrieve2(value0, value1) {\n return value0 != null\n ? value0\n : value1;\n}\nexport function retrieve3(value0, value1, value2) {\n return value0 != null\n ? value0\n : value1 != null\n ? value1\n : value2;\n}\nexport function slice(arr) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n return nativeSlice.apply(arr, args);\n}\nexport function normalizeCssArray(val) {\n if (typeof (val) === 'number') {\n return [val, val, val, val];\n }\n var len = val.length;\n if (len === 2) {\n return [val[0], val[1], val[0], val[1]];\n }\n else if (len === 3) {\n return [val[0], val[1], val[2], val[1]];\n }\n return val;\n}\nexport function assert(condition, message) {\n if (!condition) {\n throw new Error(message);\n }\n}\nexport function trim(str) {\n if (str == null) {\n return null;\n }\n else if (typeof str.trim === 'function') {\n return str.trim();\n }\n else {\n return str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n }\n}\nvar primitiveKey = '__ec_primitive__';\nexport function setAsPrimitive(obj) {\n obj[primitiveKey] = true;\n}\nexport function isPrimitive(obj) {\n return obj[primitiveKey];\n}\nvar MapPolyfill = (function () {\n function MapPolyfill() {\n this.data = {};\n }\n MapPolyfill.prototype[\"delete\"] = function (key) {\n var existed = this.has(key);\n if (existed) {\n delete this.data[key];\n }\n return existed;\n };\n MapPolyfill.prototype.has = function (key) {\n return this.data.hasOwnProperty(key);\n };\n MapPolyfill.prototype.get = function (key) {\n return this.data[key];\n };\n MapPolyfill.prototype.set = function (key, value) {\n this.data[key] = value;\n return this;\n };\n MapPolyfill.prototype.keys = function () {\n return keys(this.data);\n };\n MapPolyfill.prototype.forEach = function (callback) {\n var data = this.data;\n for (var key in data) {\n if (data.hasOwnProperty(key)) {\n callback(data[key], key);\n }\n }\n };\n return MapPolyfill;\n}());\nvar isNativeMapSupported = typeof Map === 'function';\nfunction maybeNativeMap() {\n return (isNativeMapSupported ? new Map() : new MapPolyfill());\n}\nvar HashMap = (function () {\n function HashMap(obj) {\n var isArr = isArray(obj);\n this.data = maybeNativeMap();\n var thisMap = this;\n (obj instanceof HashMap)\n ? obj.each(visit)\n : (obj && each(obj, visit));\n function visit(value, key) {\n isArr ? thisMap.set(value, key) : thisMap.set(key, value);\n }\n }\n HashMap.prototype.hasKey = function (key) {\n return this.data.has(key);\n };\n HashMap.prototype.get = function (key) {\n return this.data.get(key);\n };\n HashMap.prototype.set = function (key, value) {\n this.data.set(key, value);\n return value;\n };\n HashMap.prototype.each = function (cb, context) {\n this.data.forEach(function (value, key) {\n cb.call(context, value, key);\n });\n };\n HashMap.prototype.keys = function () {\n var keys = this.data.keys();\n return isNativeMapSupported\n ? Array.from(keys)\n : keys;\n };\n HashMap.prototype.removeKey = function (key) {\n this.data[\"delete\"](key);\n };\n return HashMap;\n}());\nexport { HashMap };\nexport function createHashMap(obj) {\n return new HashMap(obj);\n}\nexport function concatArray(a, b) {\n var newArray = new a.constructor(a.length + b.length);\n for (var i = 0; i < a.length; i++) {\n newArray[i] = a[i];\n }\n var offset = a.length;\n for (var i = 0; i < b.length; i++) {\n newArray[i + offset] = b[i];\n }\n return newArray;\n}\nexport function createObject(proto, properties) {\n var obj;\n if (Object.create) {\n obj = Object.create(proto);\n }\n else {\n var StyleCtor = function () { };\n StyleCtor.prototype = proto;\n obj = new StyleCtor();\n }\n if (properties) {\n extend(obj, properties);\n }\n return obj;\n}\nexport function disableUserSelect(dom) {\n var domStyle = dom.style;\n domStyle.webkitUserSelect = 'none';\n domStyle.userSelect = 'none';\n domStyle.webkitTapHighlightColor = 'rgba(0,0,0,0)';\n domStyle['-webkit-touch-callout'] = 'none';\n}\nexport function hasOwn(own, prop) {\n return own.hasOwnProperty(prop);\n}\nexport function noop() { }\nexport var RADIAN_TO_DEGREE = 180 / Math.PI;\n","export function create(x, y) {\n if (x == null) {\n x = 0;\n }\n if (y == null) {\n y = 0;\n }\n return [x, y];\n}\nexport function copy(out, v) {\n out[0] = v[0];\n out[1] = v[1];\n return out;\n}\nexport function clone(v) {\n return [v[0], v[1]];\n}\nexport function set(out, a, b) {\n out[0] = a;\n out[1] = b;\n return out;\n}\nexport function add(out, v1, v2) {\n out[0] = v1[0] + v2[0];\n out[1] = v1[1] + v2[1];\n return out;\n}\nexport function scaleAndAdd(out, v1, v2, a) {\n out[0] = v1[0] + v2[0] * a;\n out[1] = v1[1] + v2[1] * a;\n return out;\n}\nexport function sub(out, v1, v2) {\n out[0] = v1[0] - v2[0];\n out[1] = v1[1] - v2[1];\n return out;\n}\nexport function len(v) {\n return Math.sqrt(lenSquare(v));\n}\nexport var length = len;\nexport function lenSquare(v) {\n return v[0] * v[0] + v[1] * v[1];\n}\nexport var lengthSquare = lenSquare;\nexport function mul(out, v1, v2) {\n out[0] = v1[0] * v2[0];\n out[1] = v1[1] * v2[1];\n return out;\n}\nexport function div(out, v1, v2) {\n out[0] = v1[0] / v2[0];\n out[1] = v1[1] / v2[1];\n return out;\n}\nexport function dot(v1, v2) {\n return v1[0] * v2[0] + v1[1] * v2[1];\n}\nexport function scale(out, v, s) {\n out[0] = v[0] * s;\n out[1] = v[1] * s;\n return out;\n}\nexport function normalize(out, v) {\n var d = len(v);\n if (d === 0) {\n out[0] = 0;\n out[1] = 0;\n }\n else {\n out[0] = v[0] / d;\n out[1] = v[1] / d;\n }\n return out;\n}\nexport function distance(v1, v2) {\n return Math.sqrt((v1[0] - v2[0]) * (v1[0] - v2[0])\n + (v1[1] - v2[1]) * (v1[1] - v2[1]));\n}\nexport var dist = distance;\nexport function distanceSquare(v1, v2) {\n return (v1[0] - v2[0]) * (v1[0] - v2[0])\n + (v1[1] - v2[1]) * (v1[1] - v2[1]);\n}\nexport var distSquare = distanceSquare;\nexport function negate(out, v) {\n out[0] = -v[0];\n out[1] = -v[1];\n return out;\n}\nexport function lerp(out, v1, v2, t) {\n out[0] = v1[0] + t * (v2[0] - v1[0]);\n out[1] = v1[1] + t * (v2[1] - v1[1]);\n return out;\n}\nexport function applyTransform(out, v, m) {\n var x = v[0];\n var y = v[1];\n out[0] = m[0] * x + m[2] * y + m[4];\n out[1] = m[1] * x + m[3] * y + m[5];\n return out;\n}\nexport function min(out, v1, v2) {\n out[0] = Math.min(v1[0], v2[0]);\n out[1] = Math.min(v1[1], v2[1]);\n return out;\n}\nexport function max(out, v1, v2) {\n out[0] = Math.max(v1[0], v2[0]);\n out[1] = Math.max(v1[1], v2[1]);\n return out;\n}\n","import { __extends } from \"tslib\";\nimport { addEventListener, removeEventListener, normalizeEvent, getNativeEvent } from '../core/event.js';\nimport * as zrUtil from '../core/util.js';\nimport Eventful from '../core/Eventful.js';\nimport env from '../core/env.js';\nvar TOUCH_CLICK_DELAY = 300;\nvar globalEventSupported = env.domSupported;\nvar localNativeListenerNames = (function () {\n var mouseHandlerNames = [\n 'click', 'dblclick', 'mousewheel', 'wheel', 'mouseout',\n 'mouseup', 'mousedown', 'mousemove', 'contextmenu'\n ];\n var touchHandlerNames = [\n 'touchstart', 'touchend', 'touchmove'\n ];\n var pointerEventNameMap = {\n pointerdown: 1, pointerup: 1, pointermove: 1, pointerout: 1\n };\n var pointerHandlerNames = zrUtil.map(mouseHandlerNames, function (name) {\n var nm = name.replace('mouse', 'pointer');\n return pointerEventNameMap.hasOwnProperty(nm) ? nm : name;\n });\n return {\n mouse: mouseHandlerNames,\n touch: touchHandlerNames,\n pointer: pointerHandlerNames\n };\n})();\nvar globalNativeListenerNames = {\n mouse: ['mousemove', 'mouseup'],\n pointer: ['pointermove', 'pointerup']\n};\nvar wheelEventSupported = false;\nfunction isPointerFromTouch(event) {\n var pointerType = event.pointerType;\n return pointerType === 'pen' || pointerType === 'touch';\n}\nfunction setTouchTimer(scope) {\n scope.touching = true;\n if (scope.touchTimer != null) {\n clearTimeout(scope.touchTimer);\n scope.touchTimer = null;\n }\n scope.touchTimer = setTimeout(function () {\n scope.touching = false;\n scope.touchTimer = null;\n }, 700);\n}\nfunction markTouch(event) {\n event && (event.zrByTouch = true);\n}\nfunction normalizeGlobalEvent(instance, event) {\n return normalizeEvent(instance.dom, new FakeGlobalEvent(instance, event), true);\n}\nfunction isLocalEl(instance, el) {\n var elTmp = el;\n var isLocal = false;\n while (elTmp && elTmp.nodeType !== 9\n && !(isLocal = elTmp.domBelongToZr\n || (elTmp !== el && elTmp === instance.painterRoot))) {\n elTmp = elTmp.parentNode;\n }\n return isLocal;\n}\nvar FakeGlobalEvent = (function () {\n function FakeGlobalEvent(instance, event) {\n this.stopPropagation = zrUtil.noop;\n this.stopImmediatePropagation = zrUtil.noop;\n this.preventDefault = zrUtil.noop;\n this.type = event.type;\n this.target = this.currentTarget = instance.dom;\n this.pointerType = event.pointerType;\n this.clientX = event.clientX;\n this.clientY = event.clientY;\n }\n return FakeGlobalEvent;\n}());\nvar localDOMHandlers = {\n mousedown: function (event) {\n event = normalizeEvent(this.dom, event);\n this.__mayPointerCapture = [event.zrX, event.zrY];\n this.trigger('mousedown', event);\n },\n mousemove: function (event) {\n event = normalizeEvent(this.dom, event);\n var downPoint = this.__mayPointerCapture;\n if (downPoint && (event.zrX !== downPoint[0] || event.zrY !== downPoint[1])) {\n this.__togglePointerCapture(true);\n }\n this.trigger('mousemove', event);\n },\n mouseup: function (event) {\n event = normalizeEvent(this.dom, event);\n this.__togglePointerCapture(false);\n this.trigger('mouseup', event);\n },\n mouseout: function (event) {\n event = normalizeEvent(this.dom, event);\n var element = event.toElement || event.relatedTarget;\n if (!isLocalEl(this, element)) {\n if (this.__pointerCapturing) {\n event.zrEventControl = 'no_globalout';\n }\n this.trigger('mouseout', event);\n }\n },\n wheel: function (event) {\n wheelEventSupported = true;\n event = normalizeEvent(this.dom, event);\n this.trigger('mousewheel', event);\n },\n mousewheel: function (event) {\n if (wheelEventSupported) {\n return;\n }\n event = normalizeEvent(this.dom, event);\n this.trigger('mousewheel', event);\n },\n touchstart: function (event) {\n event = normalizeEvent(this.dom, event);\n markTouch(event);\n this.__lastTouchMoment = new Date();\n this.handler.processGesture(event, 'start');\n localDOMHandlers.mousemove.call(this, event);\n localDOMHandlers.mousedown.call(this, event);\n },\n touchmove: function (event) {\n event = normalizeEvent(this.dom, event);\n markTouch(event);\n this.handler.processGesture(event, 'change');\n localDOMHandlers.mousemove.call(this, event);\n },\n touchend: function (event) {\n event = normalizeEvent(this.dom, event);\n markTouch(event);\n this.handler.processGesture(event, 'end');\n localDOMHandlers.mouseup.call(this, event);\n if (+new Date() - (+this.__lastTouchMoment) < TOUCH_CLICK_DELAY) {\n localDOMHandlers.click.call(this, event);\n }\n },\n pointerdown: function (event) {\n localDOMHandlers.mousedown.call(this, event);\n },\n pointermove: function (event) {\n if (!isPointerFromTouch(event)) {\n localDOMHandlers.mousemove.call(this, event);\n }\n },\n pointerup: function (event) {\n localDOMHandlers.mouseup.call(this, event);\n },\n pointerout: function (event) {\n if (!isPointerFromTouch(event)) {\n localDOMHandlers.mouseout.call(this, event);\n }\n }\n};\nzrUtil.each(['click', 'dblclick', 'contextmenu'], function (name) {\n localDOMHandlers[name] = function (event) {\n event = normalizeEvent(this.dom, event);\n this.trigger(name, event);\n };\n});\nvar globalDOMHandlers = {\n pointermove: function (event) {\n if (!isPointerFromTouch(event)) {\n globalDOMHandlers.mousemove.call(this, event);\n }\n },\n pointerup: function (event) {\n globalDOMHandlers.mouseup.call(this, event);\n },\n mousemove: function (event) {\n this.trigger('mousemove', event);\n },\n mouseup: function (event) {\n var pointerCaptureReleasing = this.__pointerCapturing;\n this.__togglePointerCapture(false);\n this.trigger('mouseup', event);\n if (pointerCaptureReleasing) {\n event.zrEventControl = 'only_globalout';\n this.trigger('mouseout', event);\n }\n }\n};\nfunction mountLocalDOMEventListeners(instance, scope) {\n var domHandlers = scope.domHandlers;\n if (env.pointerEventsSupported) {\n zrUtil.each(localNativeListenerNames.pointer, function (nativeEventName) {\n mountSingleDOMEventListener(scope, nativeEventName, function (event) {\n domHandlers[nativeEventName].call(instance, event);\n });\n });\n }\n else {\n if (env.touchEventsSupported) {\n zrUtil.each(localNativeListenerNames.touch, function (nativeEventName) {\n mountSingleDOMEventListener(scope, nativeEventName, function (event) {\n domHandlers[nativeEventName].call(instance, event);\n setTouchTimer(scope);\n });\n });\n }\n zrUtil.each(localNativeListenerNames.mouse, function (nativeEventName) {\n mountSingleDOMEventListener(scope, nativeEventName, function (event) {\n event = getNativeEvent(event);\n if (!scope.touching) {\n domHandlers[nativeEventName].call(instance, event);\n }\n });\n });\n }\n}\nfunction mountGlobalDOMEventListeners(instance, scope) {\n if (env.pointerEventsSupported) {\n zrUtil.each(globalNativeListenerNames.pointer, mount);\n }\n else if (!env.touchEventsSupported) {\n zrUtil.each(globalNativeListenerNames.mouse, mount);\n }\n function mount(nativeEventName) {\n function nativeEventListener(event) {\n event = getNativeEvent(event);\n if (!isLocalEl(instance, event.target)) {\n event = normalizeGlobalEvent(instance, event);\n scope.domHandlers[nativeEventName].call(instance, event);\n }\n }\n mountSingleDOMEventListener(scope, nativeEventName, nativeEventListener, { capture: true });\n }\n}\nfunction mountSingleDOMEventListener(scope, nativeEventName, listener, opt) {\n scope.mounted[nativeEventName] = listener;\n scope.listenerOpts[nativeEventName] = opt;\n addEventListener(scope.domTarget, nativeEventName, listener, opt);\n}\nfunction unmountDOMEventListeners(scope) {\n var mounted = scope.mounted;\n for (var nativeEventName in mounted) {\n if (mounted.hasOwnProperty(nativeEventName)) {\n removeEventListener(scope.domTarget, nativeEventName, mounted[nativeEventName], scope.listenerOpts[nativeEventName]);\n }\n }\n scope.mounted = {};\n}\nvar DOMHandlerScope = (function () {\n function DOMHandlerScope(domTarget, domHandlers) {\n this.mounted = {};\n this.listenerOpts = {};\n this.touching = false;\n this.domTarget = domTarget;\n this.domHandlers = domHandlers;\n }\n return DOMHandlerScope;\n}());\nvar HandlerDomProxy = (function (_super) {\n __extends(HandlerDomProxy, _super);\n function HandlerDomProxy(dom, painterRoot) {\n var _this = _super.call(this) || this;\n _this.__pointerCapturing = false;\n _this.dom = dom;\n _this.painterRoot = painterRoot;\n _this._localHandlerScope = new DOMHandlerScope(dom, localDOMHandlers);\n if (globalEventSupported) {\n _this._globalHandlerScope = new DOMHandlerScope(document, globalDOMHandlers);\n }\n mountLocalDOMEventListeners(_this, _this._localHandlerScope);\n return _this;\n }\n HandlerDomProxy.prototype.dispose = function () {\n unmountDOMEventListeners(this._localHandlerScope);\n if (globalEventSupported) {\n unmountDOMEventListeners(this._globalHandlerScope);\n }\n };\n HandlerDomProxy.prototype.setCursor = function (cursorStyle) {\n this.dom.style && (this.dom.style.cursor = cursorStyle || 'default');\n };\n HandlerDomProxy.prototype.__togglePointerCapture = function (isPointerCapturing) {\n this.__mayPointerCapture = null;\n if (globalEventSupported\n && ((+this.__pointerCapturing) ^ (+isPointerCapturing))) {\n this.__pointerCapturing = isPointerCapturing;\n var globalHandlerScope = this._globalHandlerScope;\n isPointerCapturing\n ? mountGlobalDOMEventListeners(this, globalHandlerScope)\n : unmountDOMEventListeners(globalHandlerScope);\n }\n };\n return HandlerDomProxy;\n}(Eventful));\nexport default HandlerDomProxy;\n","import { __extends } from \"tslib\";\nimport Path from './Path.js';\nvar CompoundPath = (function (_super) {\n __extends(CompoundPath, _super);\n function CompoundPath() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = 'compound';\n return _this;\n }\n CompoundPath.prototype._updatePathDirty = function () {\n var paths = this.shape.paths;\n var dirtyPath = this.shapeChanged();\n for (var i = 0; i < paths.length; i++) {\n dirtyPath = dirtyPath || paths[i].shapeChanged();\n }\n if (dirtyPath) {\n this.dirtyShape();\n }\n };\n CompoundPath.prototype.beforeBrush = function () {\n this._updatePathDirty();\n var paths = this.shape.paths || [];\n var scale = this.getGlobalScale();\n for (var i = 0; i < paths.length; i++) {\n if (!paths[i].path) {\n paths[i].createPathProxy();\n }\n paths[i].path.setScale(scale[0], scale[1], paths[i].segmentIgnoreThreshold);\n }\n };\n CompoundPath.prototype.buildPath = function (ctx, shape) {\n var paths = shape.paths || [];\n for (var i = 0; i < paths.length; i++) {\n paths[i].buildPath(ctx, paths[i].shape, true);\n }\n };\n CompoundPath.prototype.afterBrush = function () {\n var paths = this.shape.paths || [];\n for (var i = 0; i < paths.length; i++) {\n paths[i].pathUpdated();\n }\n };\n CompoundPath.prototype.getBoundingRect = function () {\n this._updatePathDirty.call(this);\n return Path.prototype.getBoundingRect.call(this);\n };\n return CompoundPath;\n}(Path));\nexport default CompoundPath;\n","import { __extends } from \"tslib\";\nimport Element from '../Element.js';\nimport BoundingRect from '../core/BoundingRect.js';\nimport { keys, extend, createObject } from '../core/util.js';\nimport { REDRAW_BIT, STYLE_CHANGED_BIT } from './constants.js';\nvar STYLE_MAGIC_KEY = '__zr_style_' + Math.round((Math.random() * 10));\nexport var DEFAULT_COMMON_STYLE = {\n shadowBlur: 0,\n shadowOffsetX: 0,\n shadowOffsetY: 0,\n shadowColor: '#000',\n opacity: 1,\n blend: 'source-over'\n};\nexport var DEFAULT_COMMON_ANIMATION_PROPS = {\n style: {\n shadowBlur: true,\n shadowOffsetX: true,\n shadowOffsetY: true,\n shadowColor: true,\n opacity: true\n }\n};\nDEFAULT_COMMON_STYLE[STYLE_MAGIC_KEY] = true;\nvar PRIMARY_STATES_KEYS = ['z', 'z2', 'invisible'];\nvar PRIMARY_STATES_KEYS_IN_HOVER_LAYER = ['invisible'];\nvar Displayable = (function (_super) {\n __extends(Displayable, _super);\n function Displayable(props) {\n return _super.call(this, props) || this;\n }\n Displayable.prototype._init = function (props) {\n var keysArr = keys(props);\n for (var i = 0; i < keysArr.length; i++) {\n var key = keysArr[i];\n if (key === 'style') {\n this.useStyle(props[key]);\n }\n else {\n _super.prototype.attrKV.call(this, key, props[key]);\n }\n }\n if (!this.style) {\n this.useStyle({});\n }\n };\n Displayable.prototype.beforeBrush = function () { };\n Displayable.prototype.afterBrush = function () { };\n Displayable.prototype.innerBeforeBrush = function () { };\n Displayable.prototype.innerAfterBrush = function () { };\n Displayable.prototype.shouldBePainted = function (viewWidth, viewHeight, considerClipPath, considerAncestors) {\n var m = this.transform;\n if (this.ignore\n || this.invisible\n || this.style.opacity === 0\n || (this.culling\n && isDisplayableCulled(this, viewWidth, viewHeight))\n || (m && !m[0] && !m[3])) {\n return false;\n }\n if (considerClipPath && this.__clipPaths) {\n for (var i = 0; i < this.__clipPaths.length; ++i) {\n if (this.__clipPaths[i].isZeroArea()) {\n return false;\n }\n }\n }\n if (considerAncestors && this.parent) {\n var parent_1 = this.parent;\n while (parent_1) {\n if (parent_1.ignore) {\n return false;\n }\n parent_1 = parent_1.parent;\n }\n }\n return true;\n };\n Displayable.prototype.contain = function (x, y) {\n return this.rectContain(x, y);\n };\n Displayable.prototype.traverse = function (cb, context) {\n cb.call(context, this);\n };\n Displayable.prototype.rectContain = function (x, y) {\n var coord = this.transformCoordToLocal(x, y);\n var rect = this.getBoundingRect();\n return rect.contain(coord[0], coord[1]);\n };\n Displayable.prototype.getPaintRect = function () {\n var rect = this._paintRect;\n if (!this._paintRect || this.__dirty) {\n var transform = this.transform;\n var elRect = this.getBoundingRect();\n var style = this.style;\n var shadowSize = style.shadowBlur || 0;\n var shadowOffsetX = style.shadowOffsetX || 0;\n var shadowOffsetY = style.shadowOffsetY || 0;\n rect = this._paintRect || (this._paintRect = new BoundingRect(0, 0, 0, 0));\n if (transform) {\n BoundingRect.applyTransform(rect, elRect, transform);\n }\n else {\n rect.copy(elRect);\n }\n if (shadowSize || shadowOffsetX || shadowOffsetY) {\n rect.width += shadowSize * 2 + Math.abs(shadowOffsetX);\n rect.height += shadowSize * 2 + Math.abs(shadowOffsetY);\n rect.x = Math.min(rect.x, rect.x + shadowOffsetX - shadowSize);\n rect.y = Math.min(rect.y, rect.y + shadowOffsetY - shadowSize);\n }\n var tolerance = this.dirtyRectTolerance;\n if (!rect.isZero()) {\n rect.x = Math.floor(rect.x - tolerance);\n rect.y = Math.floor(rect.y - tolerance);\n rect.width = Math.ceil(rect.width + 1 + tolerance * 2);\n rect.height = Math.ceil(rect.height + 1 + tolerance * 2);\n }\n }\n return rect;\n };\n Displayable.prototype.setPrevPaintRect = function (paintRect) {\n if (paintRect) {\n this._prevPaintRect = this._prevPaintRect || new BoundingRect(0, 0, 0, 0);\n this._prevPaintRect.copy(paintRect);\n }\n else {\n this._prevPaintRect = null;\n }\n };\n Displayable.prototype.getPrevPaintRect = function () {\n return this._prevPaintRect;\n };\n Displayable.prototype.animateStyle = function (loop) {\n return this.animate('style', loop);\n };\n Displayable.prototype.updateDuringAnimation = function (targetKey) {\n if (targetKey === 'style') {\n this.dirtyStyle();\n }\n else {\n this.markRedraw();\n }\n };\n Displayable.prototype.attrKV = function (key, value) {\n if (key !== 'style') {\n _super.prototype.attrKV.call(this, key, value);\n }\n else {\n if (!this.style) {\n this.useStyle(value);\n }\n else {\n this.setStyle(value);\n }\n }\n };\n Displayable.prototype.setStyle = function (keyOrObj, value) {\n if (typeof keyOrObj === 'string') {\n this.style[keyOrObj] = value;\n }\n else {\n extend(this.style, keyOrObj);\n }\n this.dirtyStyle();\n return this;\n };\n Displayable.prototype.dirtyStyle = function (notRedraw) {\n if (!notRedraw) {\n this.markRedraw();\n }\n this.__dirty |= STYLE_CHANGED_BIT;\n if (this._rect) {\n this._rect = null;\n }\n };\n Displayable.prototype.dirty = function () {\n this.dirtyStyle();\n };\n Displayable.prototype.styleChanged = function () {\n return !!(this.__dirty & STYLE_CHANGED_BIT);\n };\n Displayable.prototype.styleUpdated = function () {\n this.__dirty &= ~STYLE_CHANGED_BIT;\n };\n Displayable.prototype.createStyle = function (obj) {\n return createObject(DEFAULT_COMMON_STYLE, obj);\n };\n Displayable.prototype.useStyle = function (obj) {\n if (!obj[STYLE_MAGIC_KEY]) {\n obj = this.createStyle(obj);\n }\n if (this.__inHover) {\n this.__hoverStyle = obj;\n }\n else {\n this.style = obj;\n }\n this.dirtyStyle();\n };\n Displayable.prototype.isStyleObject = function (obj) {\n return obj[STYLE_MAGIC_KEY];\n };\n Displayable.prototype._innerSaveToNormal = function (toState) {\n _super.prototype._innerSaveToNormal.call(this, toState);\n var normalState = this._normalState;\n if (toState.style && !normalState.style) {\n normalState.style = this._mergeStyle(this.createStyle(), this.style);\n }\n this._savePrimaryToNormal(toState, normalState, PRIMARY_STATES_KEYS);\n };\n Displayable.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\n _super.prototype._applyStateObj.call(this, stateName, state, normalState, keepCurrentStates, transition, animationCfg);\n var needsRestoreToNormal = !(state && keepCurrentStates);\n var targetStyle;\n if (state && state.style) {\n if (transition) {\n if (keepCurrentStates) {\n targetStyle = state.style;\n }\n else {\n targetStyle = this._mergeStyle(this.createStyle(), normalState.style);\n this._mergeStyle(targetStyle, state.style);\n }\n }\n else {\n targetStyle = this._mergeStyle(this.createStyle(), keepCurrentStates ? this.style : normalState.style);\n this._mergeStyle(targetStyle, state.style);\n }\n }\n else if (needsRestoreToNormal) {\n targetStyle = normalState.style;\n }\n if (targetStyle) {\n if (transition) {\n var sourceStyle = this.style;\n this.style = this.createStyle(needsRestoreToNormal ? {} : sourceStyle);\n if (needsRestoreToNormal) {\n var changedKeys = keys(sourceStyle);\n for (var i = 0; i < changedKeys.length; i++) {\n var key = changedKeys[i];\n if (key in targetStyle) {\n targetStyle[key] = targetStyle[key];\n this.style[key] = sourceStyle[key];\n }\n }\n }\n var targetKeys = keys(targetStyle);\n for (var i = 0; i < targetKeys.length; i++) {\n var key = targetKeys[i];\n this.style[key] = this.style[key];\n }\n this._transitionState(stateName, {\n style: targetStyle\n }, animationCfg, this.getAnimationStyleProps());\n }\n else {\n this.useStyle(targetStyle);\n }\n }\n var statesKeys = this.__inHover ? PRIMARY_STATES_KEYS_IN_HOVER_LAYER : PRIMARY_STATES_KEYS;\n for (var i = 0; i < statesKeys.length; i++) {\n var key = statesKeys[i];\n if (state && state[key] != null) {\n this[key] = state[key];\n }\n else if (needsRestoreToNormal) {\n if (normalState[key] != null) {\n this[key] = normalState[key];\n }\n }\n }\n };\n Displayable.prototype._mergeStates = function (states) {\n var mergedState = _super.prototype._mergeStates.call(this, states);\n var mergedStyle;\n for (var i = 0; i < states.length; i++) {\n var state = states[i];\n if (state.style) {\n mergedStyle = mergedStyle || {};\n this._mergeStyle(mergedStyle, state.style);\n }\n }\n if (mergedStyle) {\n mergedState.style = mergedStyle;\n }\n return mergedState;\n };\n Displayable.prototype._mergeStyle = function (targetStyle, sourceStyle) {\n extend(targetStyle, sourceStyle);\n return targetStyle;\n };\n Displayable.prototype.getAnimationStyleProps = function () {\n return DEFAULT_COMMON_ANIMATION_PROPS;\n };\n Displayable.initDefaultProps = (function () {\n var dispProto = Displayable.prototype;\n dispProto.type = 'displayable';\n dispProto.invisible = false;\n dispProto.z = 0;\n dispProto.z2 = 0;\n dispProto.zlevel = 0;\n dispProto.culling = false;\n dispProto.cursor = 'pointer';\n dispProto.rectHover = false;\n dispProto.incremental = false;\n dispProto._rect = null;\n dispProto.dirtyRectTolerance = 0;\n dispProto.__dirty = REDRAW_BIT | STYLE_CHANGED_BIT;\n })();\n return Displayable;\n}(Element));\nvar tmpRect = new BoundingRect(0, 0, 0, 0);\nvar viewRect = new BoundingRect(0, 0, 0, 0);\nfunction isDisplayableCulled(el, width, height) {\n tmpRect.copy(el.getBoundingRect());\n if (el.transform) {\n tmpRect.applyTransform(el.transform);\n }\n viewRect.width = width;\n viewRect.height = height;\n return !tmpRect.intersect(viewRect);\n}\nexport default Displayable;\n","var Gradient = (function () {\n function Gradient(colorStops) {\n this.colorStops = colorStops || [];\n }\n Gradient.prototype.addColorStop = function (offset, color) {\n this.colorStops.push({\n offset: offset,\n color: color\n });\n };\n return Gradient;\n}());\nexport default Gradient;\n","import { __extends } from \"tslib\";\nimport * as zrUtil from '../core/util.js';\nimport Element from '../Element.js';\nimport BoundingRect from '../core/BoundingRect.js';\nvar Group = (function (_super) {\n __extends(Group, _super);\n function Group(opts) {\n var _this = _super.call(this) || this;\n _this.isGroup = true;\n _this._children = [];\n _this.attr(opts);\n return _this;\n }\n Group.prototype.childrenRef = function () {\n return this._children;\n };\n Group.prototype.children = function () {\n return this._children.slice();\n };\n Group.prototype.childAt = function (idx) {\n return this._children[idx];\n };\n Group.prototype.childOfName = function (name) {\n var children = this._children;\n for (var i = 0; i < children.length; i++) {\n if (children[i].name === name) {\n return children[i];\n }\n }\n };\n Group.prototype.childCount = function () {\n return this._children.length;\n };\n Group.prototype.add = function (child) {\n if (child) {\n if (child !== this && child.parent !== this) {\n this._children.push(child);\n this._doAdd(child);\n }\n if (process.env.NODE_ENV !== 'production') {\n if (child.__hostTarget) {\n throw 'This elemenet has been used as an attachment';\n }\n }\n }\n return this;\n };\n Group.prototype.addBefore = function (child, nextSibling) {\n if (child && child !== this && child.parent !== this\n && nextSibling && nextSibling.parent === this) {\n var children = this._children;\n var idx = children.indexOf(nextSibling);\n if (idx >= 0) {\n children.splice(idx, 0, child);\n this._doAdd(child);\n }\n }\n return this;\n };\n Group.prototype.replace = function (oldChild, newChild) {\n var idx = zrUtil.indexOf(this._children, oldChild);\n if (idx >= 0) {\n this.replaceAt(newChild, idx);\n }\n return this;\n };\n Group.prototype.replaceAt = function (child, index) {\n var children = this._children;\n var old = children[index];\n if (child && child !== this && child.parent !== this && child !== old) {\n children[index] = child;\n old.parent = null;\n var zr = this.__zr;\n if (zr) {\n old.removeSelfFromZr(zr);\n }\n this._doAdd(child);\n }\n return this;\n };\n Group.prototype._doAdd = function (child) {\n if (child.parent) {\n child.parent.remove(child);\n }\n child.parent = this;\n var zr = this.__zr;\n if (zr && zr !== child.__zr) {\n child.addSelfToZr(zr);\n }\n zr && zr.refresh();\n };\n Group.prototype.remove = function (child) {\n var zr = this.__zr;\n var children = this._children;\n var idx = zrUtil.indexOf(children, child);\n if (idx < 0) {\n return this;\n }\n children.splice(idx, 1);\n child.parent = null;\n if (zr) {\n child.removeSelfFromZr(zr);\n }\n zr && zr.refresh();\n return this;\n };\n Group.prototype.removeAll = function () {\n var children = this._children;\n var zr = this.__zr;\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n if (zr) {\n child.removeSelfFromZr(zr);\n }\n child.parent = null;\n }\n children.length = 0;\n return this;\n };\n Group.prototype.eachChild = function (cb, context) {\n var children = this._children;\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n cb.call(context, child, i);\n }\n return this;\n };\n Group.prototype.traverse = function (cb, context) {\n for (var i = 0; i < this._children.length; i++) {\n var child = this._children[i];\n var stopped = cb.call(context, child);\n if (child.isGroup && !stopped) {\n child.traverse(cb, context);\n }\n }\n return this;\n };\n Group.prototype.addSelfToZr = function (zr) {\n _super.prototype.addSelfToZr.call(this, zr);\n for (var i = 0; i < this._children.length; i++) {\n var child = this._children[i];\n child.addSelfToZr(zr);\n }\n };\n Group.prototype.removeSelfFromZr = function (zr) {\n _super.prototype.removeSelfFromZr.call(this, zr);\n for (var i = 0; i < this._children.length; i++) {\n var child = this._children[i];\n child.removeSelfFromZr(zr);\n }\n };\n Group.prototype.getBoundingRect = function (includeChildren) {\n var tmpRect = new BoundingRect(0, 0, 0, 0);\n var children = includeChildren || this._children;\n var tmpMat = [];\n var rect = null;\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n if (child.ignore || child.invisible) {\n continue;\n }\n var childRect = child.getBoundingRect();\n var transform = child.getLocalTransform(tmpMat);\n if (transform) {\n BoundingRect.applyTransform(tmpRect, childRect, transform);\n rect = rect || tmpRect.clone();\n rect.union(tmpRect);\n }\n else {\n rect = rect || childRect.clone();\n rect.union(childRect);\n }\n }\n return rect || tmpRect;\n };\n return Group;\n}(Element));\nGroup.prototype.type = 'group';\nexport default Group;\n","import { __extends } from \"tslib\";\nimport Displayable, { DEFAULT_COMMON_STYLE, DEFAULT_COMMON_ANIMATION_PROPS } from './Displayable.js';\nimport BoundingRect from '../core/BoundingRect.js';\nimport { defaults, createObject } from '../core/util.js';\nexport var DEFAULT_IMAGE_STYLE = defaults({\n x: 0,\n y: 0\n}, DEFAULT_COMMON_STYLE);\nexport var DEFAULT_IMAGE_ANIMATION_PROPS = {\n style: defaults({\n x: true,\n y: true,\n width: true,\n height: true,\n sx: true,\n sy: true,\n sWidth: true,\n sHeight: true\n }, DEFAULT_COMMON_ANIMATION_PROPS.style)\n};\nfunction isImageLike(source) {\n return !!(source\n && typeof source !== 'string'\n && source.width && source.height);\n}\nvar ZRImage = (function (_super) {\n __extends(ZRImage, _super);\n function ZRImage() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ZRImage.prototype.createStyle = function (obj) {\n return createObject(DEFAULT_IMAGE_STYLE, obj);\n };\n ZRImage.prototype._getSize = function (dim) {\n var style = this.style;\n var size = style[dim];\n if (size != null) {\n return size;\n }\n var imageSource = isImageLike(style.image)\n ? style.image : this.__image;\n if (!imageSource) {\n return 0;\n }\n var otherDim = dim === 'width' ? 'height' : 'width';\n var otherDimSize = style[otherDim];\n if (otherDimSize == null) {\n return imageSource[dim];\n }\n else {\n return imageSource[dim] / imageSource[otherDim] * otherDimSize;\n }\n };\n ZRImage.prototype.getWidth = function () {\n return this._getSize('width');\n };\n ZRImage.prototype.getHeight = function () {\n return this._getSize('height');\n };\n ZRImage.prototype.getAnimationStyleProps = function () {\n return DEFAULT_IMAGE_ANIMATION_PROPS;\n };\n ZRImage.prototype.getBoundingRect = function () {\n var style = this.style;\n if (!this._rect) {\n this._rect = new BoundingRect(style.x || 0, style.y || 0, this.getWidth(), this.getHeight());\n }\n return this._rect;\n };\n return ZRImage;\n}(Displayable));\nZRImage.prototype.type = 'image';\nexport default ZRImage;\n","import { __extends } from \"tslib\";\nimport Displayble from './Displayable.js';\nimport BoundingRect from '../core/BoundingRect.js';\nvar m = [];\nvar IncrementalDisplayable = (function (_super) {\n __extends(IncrementalDisplayable, _super);\n function IncrementalDisplayable() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.notClear = true;\n _this.incremental = true;\n _this._displayables = [];\n _this._temporaryDisplayables = [];\n _this._cursor = 0;\n return _this;\n }\n IncrementalDisplayable.prototype.traverse = function (cb, context) {\n cb.call(context, this);\n };\n IncrementalDisplayable.prototype.useStyle = function () {\n this.style = {};\n };\n IncrementalDisplayable.prototype.getCursor = function () {\n return this._cursor;\n };\n IncrementalDisplayable.prototype.innerAfterBrush = function () {\n this._cursor = this._displayables.length;\n };\n IncrementalDisplayable.prototype.clearDisplaybles = function () {\n this._displayables = [];\n this._temporaryDisplayables = [];\n this._cursor = 0;\n this.markRedraw();\n this.notClear = false;\n };\n IncrementalDisplayable.prototype.clearTemporalDisplayables = function () {\n this._temporaryDisplayables = [];\n };\n IncrementalDisplayable.prototype.addDisplayable = function (displayable, notPersistent) {\n if (notPersistent) {\n this._temporaryDisplayables.push(displayable);\n }\n else {\n this._displayables.push(displayable);\n }\n this.markRedraw();\n };\n IncrementalDisplayable.prototype.addDisplayables = function (displayables, notPersistent) {\n notPersistent = notPersistent || false;\n for (var i = 0; i < displayables.length; i++) {\n this.addDisplayable(displayables[i], notPersistent);\n }\n };\n IncrementalDisplayable.prototype.getDisplayables = function () {\n return this._displayables;\n };\n IncrementalDisplayable.prototype.getTemporalDisplayables = function () {\n return this._temporaryDisplayables;\n };\n IncrementalDisplayable.prototype.eachPendingDisplayable = function (cb) {\n for (var i = this._cursor; i < this._displayables.length; i++) {\n cb && cb(this._displayables[i]);\n }\n for (var i = 0; i < this._temporaryDisplayables.length; i++) {\n cb && cb(this._temporaryDisplayables[i]);\n }\n };\n IncrementalDisplayable.prototype.update = function () {\n this.updateTransform();\n for (var i = this._cursor; i < this._displayables.length; i++) {\n var displayable = this._displayables[i];\n displayable.parent = this;\n displayable.update();\n displayable.parent = null;\n }\n for (var i = 0; i < this._temporaryDisplayables.length; i++) {\n var displayable = this._temporaryDisplayables[i];\n displayable.parent = this;\n displayable.update();\n displayable.parent = null;\n }\n };\n IncrementalDisplayable.prototype.getBoundingRect = function () {\n if (!this._rect) {\n var rect = new BoundingRect(Infinity, Infinity, -Infinity, -Infinity);\n for (var i = 0; i < this._displayables.length; i++) {\n var displayable = this._displayables[i];\n var childRect = displayable.getBoundingRect().clone();\n if (displayable.needLocalTransform()) {\n childRect.applyTransform(displayable.getLocalTransform(m));\n }\n rect.union(childRect);\n }\n this._rect = rect;\n }\n return this._rect;\n };\n IncrementalDisplayable.prototype.contain = function (x, y) {\n var localPos = this.transformCoordToLocal(x, y);\n var rect = this.getBoundingRect();\n if (rect.contain(localPos[0], localPos[1])) {\n for (var i = 0; i < this._displayables.length; i++) {\n var displayable = this._displayables[i];\n if (displayable.contain(x, y)) {\n return true;\n }\n }\n }\n return false;\n };\n return IncrementalDisplayable;\n}(Displayble));\nexport default IncrementalDisplayable;\n","import { __extends } from \"tslib\";\nimport Gradient from './Gradient.js';\nvar LinearGradient = (function (_super) {\n __extends(LinearGradient, _super);\n function LinearGradient(x, y, x2, y2, colorStops, globalCoord) {\n var _this = _super.call(this, colorStops) || this;\n _this.x = x == null ? 0 : x;\n _this.y = y == null ? 0 : y;\n _this.x2 = x2 == null ? 1 : x2;\n _this.y2 = y2 == null ? 0 : y2;\n _this.type = 'linear';\n _this.global = globalCoord || false;\n return _this;\n }\n return LinearGradient;\n}(Gradient));\nexport default LinearGradient;\n;\n","import { __extends } from \"tslib\";\nimport Displayable, { DEFAULT_COMMON_STYLE, DEFAULT_COMMON_ANIMATION_PROPS } from './Displayable.js';\nimport PathProxy from '../core/PathProxy.js';\nimport * as pathContain from '../contain/path.js';\nimport { defaults, keys, extend, clone, isString, createObject } from '../core/util.js';\nimport { lum } from '../tool/color.js';\nimport { DARK_LABEL_COLOR, LIGHT_LABEL_COLOR, DARK_MODE_THRESHOLD, LIGHTER_LABEL_COLOR } from '../config.js';\nimport { REDRAW_BIT, SHAPE_CHANGED_BIT, STYLE_CHANGED_BIT } from './constants.js';\nimport { TRANSFORMABLE_PROPS } from '../core/Transformable.js';\nexport var DEFAULT_PATH_STYLE = defaults({\n fill: '#000',\n stroke: null,\n strokePercent: 1,\n fillOpacity: 1,\n strokeOpacity: 1,\n lineDashOffset: 0,\n lineWidth: 1,\n lineCap: 'butt',\n miterLimit: 10,\n strokeNoScale: false,\n strokeFirst: false\n}, DEFAULT_COMMON_STYLE);\nexport var DEFAULT_PATH_ANIMATION_PROPS = {\n style: defaults({\n fill: true,\n stroke: true,\n strokePercent: true,\n fillOpacity: true,\n strokeOpacity: true,\n lineDashOffset: true,\n lineWidth: true,\n miterLimit: true\n }, DEFAULT_COMMON_ANIMATION_PROPS.style)\n};\nvar pathCopyParams = TRANSFORMABLE_PROPS.concat(['invisible',\n 'culling', 'z', 'z2', 'zlevel', 'parent'\n]);\nvar Path = (function (_super) {\n __extends(Path, _super);\n function Path(opts) {\n return _super.call(this, opts) || this;\n }\n Path.prototype.update = function () {\n var _this = this;\n _super.prototype.update.call(this);\n var style = this.style;\n if (style.decal) {\n var decalEl = this._decalEl = this._decalEl || new Path();\n if (decalEl.buildPath === Path.prototype.buildPath) {\n decalEl.buildPath = function (ctx) {\n _this.buildPath(ctx, _this.shape);\n };\n }\n decalEl.silent = true;\n var decalElStyle = decalEl.style;\n for (var key in style) {\n if (decalElStyle[key] !== style[key]) {\n decalElStyle[key] = style[key];\n }\n }\n decalElStyle.fill = style.fill ? style.decal : null;\n decalElStyle.decal = null;\n decalElStyle.shadowColor = null;\n style.strokeFirst && (decalElStyle.stroke = null);\n for (var i = 0; i < pathCopyParams.length; ++i) {\n decalEl[pathCopyParams[i]] = this[pathCopyParams[i]];\n }\n decalEl.__dirty |= REDRAW_BIT;\n }\n else if (this._decalEl) {\n this._decalEl = null;\n }\n };\n Path.prototype.getDecalElement = function () {\n return this._decalEl;\n };\n Path.prototype._init = function (props) {\n var keysArr = keys(props);\n this.shape = this.getDefaultShape();\n var defaultStyle = this.getDefaultStyle();\n if (defaultStyle) {\n this.useStyle(defaultStyle);\n }\n for (var i = 0; i < keysArr.length; i++) {\n var key = keysArr[i];\n var value = props[key];\n if (key === 'style') {\n if (!this.style) {\n this.useStyle(value);\n }\n else {\n extend(this.style, value);\n }\n }\n else if (key === 'shape') {\n extend(this.shape, value);\n }\n else {\n _super.prototype.attrKV.call(this, key, value);\n }\n }\n if (!this.style) {\n this.useStyle({});\n }\n };\n Path.prototype.getDefaultStyle = function () {\n return null;\n };\n Path.prototype.getDefaultShape = function () {\n return {};\n };\n Path.prototype.canBeInsideText = function () {\n return this.hasFill();\n };\n Path.prototype.getInsideTextFill = function () {\n var pathFill = this.style.fill;\n if (pathFill !== 'none') {\n if (isString(pathFill)) {\n var fillLum = lum(pathFill, 0);\n if (fillLum > 0.5) {\n return DARK_LABEL_COLOR;\n }\n else if (fillLum > 0.2) {\n return LIGHTER_LABEL_COLOR;\n }\n return LIGHT_LABEL_COLOR;\n }\n else if (pathFill) {\n return LIGHT_LABEL_COLOR;\n }\n }\n return DARK_LABEL_COLOR;\n };\n Path.prototype.getInsideTextStroke = function (textFill) {\n var pathFill = this.style.fill;\n if (isString(pathFill)) {\n var zr = this.__zr;\n var isDarkMode = !!(zr && zr.isDarkMode());\n var isDarkLabel = lum(textFill, 0) < DARK_MODE_THRESHOLD;\n if (isDarkMode === isDarkLabel) {\n return pathFill;\n }\n }\n };\n Path.prototype.buildPath = function (ctx, shapeCfg, inBatch) { };\n Path.prototype.pathUpdated = function () {\n this.__dirty &= ~SHAPE_CHANGED_BIT;\n };\n Path.prototype.getUpdatedPathProxy = function (inBatch) {\n !this.path && this.createPathProxy();\n this.path.beginPath();\n this.buildPath(this.path, this.shape, inBatch);\n return this.path;\n };\n Path.prototype.createPathProxy = function () {\n this.path = new PathProxy(false);\n };\n Path.prototype.hasStroke = function () {\n var style = this.style;\n var stroke = style.stroke;\n return !(stroke == null || stroke === 'none' || !(style.lineWidth > 0));\n };\n Path.prototype.hasFill = function () {\n var style = this.style;\n var fill = style.fill;\n return fill != null && fill !== 'none';\n };\n Path.prototype.getBoundingRect = function () {\n var rect = this._rect;\n var style = this.style;\n var needsUpdateRect = !rect;\n if (needsUpdateRect) {\n var firstInvoke = false;\n if (!this.path) {\n firstInvoke = true;\n this.createPathProxy();\n }\n var path = this.path;\n if (firstInvoke || (this.__dirty & SHAPE_CHANGED_BIT)) {\n path.beginPath();\n this.buildPath(path, this.shape, false);\n this.pathUpdated();\n }\n rect = path.getBoundingRect();\n }\n this._rect = rect;\n if (this.hasStroke() && this.path && this.path.len() > 0) {\n var rectStroke = this._rectStroke || (this._rectStroke = rect.clone());\n if (this.__dirty || needsUpdateRect) {\n rectStroke.copy(rect);\n var lineScale = style.strokeNoScale ? this.getLineScale() : 1;\n var w = style.lineWidth;\n if (!this.hasFill()) {\n var strokeContainThreshold = this.strokeContainThreshold;\n w = Math.max(w, strokeContainThreshold == null ? 4 : strokeContainThreshold);\n }\n if (lineScale > 1e-10) {\n rectStroke.width += w / lineScale;\n rectStroke.height += w / lineScale;\n rectStroke.x -= w / lineScale / 2;\n rectStroke.y -= w / lineScale / 2;\n }\n }\n return rectStroke;\n }\n return rect;\n };\n Path.prototype.contain = function (x, y) {\n var localPos = this.transformCoordToLocal(x, y);\n var rect = this.getBoundingRect();\n var style = this.style;\n x = localPos[0];\n y = localPos[1];\n if (rect.contain(x, y)) {\n var pathProxy = this.path;\n if (this.hasStroke()) {\n var lineWidth = style.lineWidth;\n var lineScale = style.strokeNoScale ? this.getLineScale() : 1;\n if (lineScale > 1e-10) {\n if (!this.hasFill()) {\n lineWidth = Math.max(lineWidth, this.strokeContainThreshold);\n }\n if (pathContain.containStroke(pathProxy, lineWidth / lineScale, x, y)) {\n return true;\n }\n }\n }\n if (this.hasFill()) {\n return pathContain.contain(pathProxy, x, y);\n }\n }\n return false;\n };\n Path.prototype.dirtyShape = function () {\n this.__dirty |= SHAPE_CHANGED_BIT;\n if (this._rect) {\n this._rect = null;\n }\n if (this._decalEl) {\n this._decalEl.dirtyShape();\n }\n this.markRedraw();\n };\n Path.prototype.dirty = function () {\n this.dirtyStyle();\n this.dirtyShape();\n };\n Path.prototype.animateShape = function (loop) {\n return this.animate('shape', loop);\n };\n Path.prototype.updateDuringAnimation = function (targetKey) {\n if (targetKey === 'style') {\n this.dirtyStyle();\n }\n else if (targetKey === 'shape') {\n this.dirtyShape();\n }\n else {\n this.markRedraw();\n }\n };\n Path.prototype.attrKV = function (key, value) {\n if (key === 'shape') {\n this.setShape(value);\n }\n else {\n _super.prototype.attrKV.call(this, key, value);\n }\n };\n Path.prototype.setShape = function (keyOrObj, value) {\n var shape = this.shape;\n if (!shape) {\n shape = this.shape = {};\n }\n if (typeof keyOrObj === 'string') {\n shape[keyOrObj] = value;\n }\n else {\n extend(shape, keyOrObj);\n }\n this.dirtyShape();\n return this;\n };\n Path.prototype.shapeChanged = function () {\n return !!(this.__dirty & SHAPE_CHANGED_BIT);\n };\n Path.prototype.createStyle = function (obj) {\n return createObject(DEFAULT_PATH_STYLE, obj);\n };\n Path.prototype._innerSaveToNormal = function (toState) {\n _super.prototype._innerSaveToNormal.call(this, toState);\n var normalState = this._normalState;\n if (toState.shape && !normalState.shape) {\n normalState.shape = extend({}, this.shape);\n }\n };\n Path.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\n _super.prototype._applyStateObj.call(this, stateName, state, normalState, keepCurrentStates, transition, animationCfg);\n var needsRestoreToNormal = !(state && keepCurrentStates);\n var targetShape;\n if (state && state.shape) {\n if (transition) {\n if (keepCurrentStates) {\n targetShape = state.shape;\n }\n else {\n targetShape = extend({}, normalState.shape);\n extend(targetShape, state.shape);\n }\n }\n else {\n targetShape = extend({}, keepCurrentStates ? this.shape : normalState.shape);\n extend(targetShape, state.shape);\n }\n }\n else if (needsRestoreToNormal) {\n targetShape = normalState.shape;\n }\n if (targetShape) {\n if (transition) {\n this.shape = extend({}, this.shape);\n var targetShapePrimaryProps = {};\n var shapeKeys = keys(targetShape);\n for (var i = 0; i < shapeKeys.length; i++) {\n var key = shapeKeys[i];\n if (typeof targetShape[key] === 'object') {\n this.shape[key] = targetShape[key];\n }\n else {\n targetShapePrimaryProps[key] = targetShape[key];\n }\n }\n this._transitionState(stateName, {\n shape: targetShapePrimaryProps\n }, animationCfg);\n }\n else {\n this.shape = targetShape;\n this.dirtyShape();\n }\n }\n };\n Path.prototype._mergeStates = function (states) {\n var mergedState = _super.prototype._mergeStates.call(this, states);\n var mergedShape;\n for (var i = 0; i < states.length; i++) {\n var state = states[i];\n if (state.shape) {\n mergedShape = mergedShape || {};\n this._mergeStyle(mergedShape, state.shape);\n }\n }\n if (mergedShape) {\n mergedState.shape = mergedShape;\n }\n return mergedState;\n };\n Path.prototype.getAnimationStyleProps = function () {\n return DEFAULT_PATH_ANIMATION_PROPS;\n };\n Path.prototype.isZeroArea = function () {\n return false;\n };\n Path.extend = function (defaultProps) {\n var Sub = (function (_super) {\n __extends(Sub, _super);\n function Sub(opts) {\n var _this = _super.call(this, opts) || this;\n defaultProps.init && defaultProps.init.call(_this, opts);\n return _this;\n }\n Sub.prototype.getDefaultStyle = function () {\n return clone(defaultProps.style);\n };\n Sub.prototype.getDefaultShape = function () {\n return clone(defaultProps.shape);\n };\n return Sub;\n }(Path));\n for (var key in defaultProps) {\n if (typeof defaultProps[key] === 'function') {\n Sub.prototype[key] = defaultProps[key];\n }\n }\n return Sub;\n };\n Path.initDefaultProps = (function () {\n var pathProto = Path.prototype;\n pathProto.type = 'path';\n pathProto.strokeContainThreshold = 5;\n pathProto.segmentIgnoreThreshold = 0;\n pathProto.subPixelOptimize = false;\n pathProto.autoBatch = false;\n pathProto.__dirty = REDRAW_BIT | STYLE_CHANGED_BIT | SHAPE_CHANGED_BIT;\n })();\n return Path;\n}(Displayable));\nexport default Path;\n","import { __extends } from \"tslib\";\nimport Gradient from './Gradient.js';\nvar RadialGradient = (function (_super) {\n __extends(RadialGradient, _super);\n function RadialGradient(x, y, r, colorStops, globalCoord) {\n var _this = _super.call(this, colorStops) || this;\n _this.x = x == null ? 0.5 : x;\n _this.y = y == null ? 0.5 : y;\n _this.r = r == null ? 0.5 : r;\n _this.type = 'radial';\n _this.global = globalCoord || false;\n return _this;\n }\n return RadialGradient;\n}(Gradient));\nexport default RadialGradient;\n","import { __extends } from \"tslib\";\nimport Displayable from './Displayable.js';\nimport { getBoundingRect } from '../contain/text.js';\nimport { DEFAULT_PATH_STYLE } from './Path.js';\nimport { createObject, defaults } from '../core/util.js';\nimport { DEFAULT_FONT } from '../core/platform.js';\nexport var DEFAULT_TSPAN_STYLE = defaults({\n strokeFirst: true,\n font: DEFAULT_FONT,\n x: 0,\n y: 0,\n textAlign: 'left',\n textBaseline: 'top',\n miterLimit: 2\n}, DEFAULT_PATH_STYLE);\nvar TSpan = (function (_super) {\n __extends(TSpan, _super);\n function TSpan() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TSpan.prototype.hasStroke = function () {\n var style = this.style;\n var stroke = style.stroke;\n return stroke != null && stroke !== 'none' && style.lineWidth > 0;\n };\n TSpan.prototype.hasFill = function () {\n var style = this.style;\n var fill = style.fill;\n return fill != null && fill !== 'none';\n };\n TSpan.prototype.createStyle = function (obj) {\n return createObject(DEFAULT_TSPAN_STYLE, obj);\n };\n TSpan.prototype.setBoundingRect = function (rect) {\n this._rect = rect;\n };\n TSpan.prototype.getBoundingRect = function () {\n var style = this.style;\n if (!this._rect) {\n var text = style.text;\n text != null ? (text += '') : (text = '');\n var rect = getBoundingRect(text, style.font, style.textAlign, style.textBaseline);\n rect.x += style.x || 0;\n rect.y += style.y || 0;\n if (this.hasStroke()) {\n var w = style.lineWidth;\n rect.x -= w / 2;\n rect.y -= w / 2;\n rect.width += w;\n rect.height += w;\n }\n this._rect = rect;\n }\n return this._rect;\n };\n TSpan.initDefaultProps = (function () {\n var tspanProto = TSpan.prototype;\n tspanProto.dirtyRectTolerance = 10;\n })();\n return TSpan;\n}(Displayable));\nTSpan.prototype.type = 'tspan';\nexport default TSpan;\n","import { __extends } from \"tslib\";\nimport { parseRichText, parsePlainText } from './helper/parseText.js';\nimport TSpan from './TSpan.js';\nimport { retrieve2, each, normalizeCssArray, trim, retrieve3, extend, keys, defaults } from '../core/util.js';\nimport { adjustTextX, adjustTextY } from '../contain/text.js';\nimport ZRImage from './Image.js';\nimport Rect from './shape/Rect.js';\nimport BoundingRect from '../core/BoundingRect.js';\nimport Displayable, { DEFAULT_COMMON_ANIMATION_PROPS } from './Displayable.js';\nimport { DEFAULT_FONT, DEFAULT_FONT_SIZE } from '../core/platform.js';\nvar DEFAULT_RICH_TEXT_COLOR = {\n fill: '#000'\n};\nvar DEFAULT_STROKE_LINE_WIDTH = 2;\nexport var DEFAULT_TEXT_ANIMATION_PROPS = {\n style: defaults({\n fill: true,\n stroke: true,\n fillOpacity: true,\n strokeOpacity: true,\n lineWidth: true,\n fontSize: true,\n lineHeight: true,\n width: true,\n height: true,\n textShadowColor: true,\n textShadowBlur: true,\n textShadowOffsetX: true,\n textShadowOffsetY: true,\n backgroundColor: true,\n padding: true,\n borderColor: true,\n borderWidth: true,\n borderRadius: true\n }, DEFAULT_COMMON_ANIMATION_PROPS.style)\n};\nvar ZRText = (function (_super) {\n __extends(ZRText, _super);\n function ZRText(opts) {\n var _this = _super.call(this) || this;\n _this.type = 'text';\n _this._children = [];\n _this._defaultStyle = DEFAULT_RICH_TEXT_COLOR;\n _this.attr(opts);\n return _this;\n }\n ZRText.prototype.childrenRef = function () {\n return this._children;\n };\n ZRText.prototype.update = function () {\n _super.prototype.update.call(this);\n if (this.styleChanged()) {\n this._updateSubTexts();\n }\n for (var i = 0; i < this._children.length; i++) {\n var child = this._children[i];\n child.zlevel = this.zlevel;\n child.z = this.z;\n child.z2 = this.z2;\n child.culling = this.culling;\n child.cursor = this.cursor;\n child.invisible = this.invisible;\n }\n };\n ZRText.prototype.updateTransform = function () {\n var innerTransformable = this.innerTransformable;\n if (innerTransformable) {\n innerTransformable.updateTransform();\n if (innerTransformable.transform) {\n this.transform = innerTransformable.transform;\n }\n }\n else {\n _super.prototype.updateTransform.call(this);\n }\n };\n ZRText.prototype.getLocalTransform = function (m) {\n var innerTransformable = this.innerTransformable;\n return innerTransformable\n ? innerTransformable.getLocalTransform(m)\n : _super.prototype.getLocalTransform.call(this, m);\n };\n ZRText.prototype.getComputedTransform = function () {\n if (this.__hostTarget) {\n this.__hostTarget.getComputedTransform();\n this.__hostTarget.updateInnerText(true);\n }\n return _super.prototype.getComputedTransform.call(this);\n };\n ZRText.prototype._updateSubTexts = function () {\n this._childCursor = 0;\n normalizeTextStyle(this.style);\n this.style.rich\n ? this._updateRichTexts()\n : this._updatePlainTexts();\n this._children.length = this._childCursor;\n this.styleUpdated();\n };\n ZRText.prototype.addSelfToZr = function (zr) {\n _super.prototype.addSelfToZr.call(this, zr);\n for (var i = 0; i < this._children.length; i++) {\n this._children[i].__zr = zr;\n }\n };\n ZRText.prototype.removeSelfFromZr = function (zr) {\n _super.prototype.removeSelfFromZr.call(this, zr);\n for (var i = 0; i < this._children.length; i++) {\n this._children[i].__zr = null;\n }\n };\n ZRText.prototype.getBoundingRect = function () {\n if (this.styleChanged()) {\n this._updateSubTexts();\n }\n if (!this._rect) {\n var tmpRect = new BoundingRect(0, 0, 0, 0);\n var children = this._children;\n var tmpMat = [];\n var rect = null;\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n var childRect = child.getBoundingRect();\n var transform = child.getLocalTransform(tmpMat);\n if (transform) {\n tmpRect.copy(childRect);\n tmpRect.applyTransform(transform);\n rect = rect || tmpRect.clone();\n rect.union(tmpRect);\n }\n else {\n rect = rect || childRect.clone();\n rect.union(childRect);\n }\n }\n this._rect = rect || tmpRect;\n }\n return this._rect;\n };\n ZRText.prototype.setDefaultTextStyle = function (defaultTextStyle) {\n this._defaultStyle = defaultTextStyle || DEFAULT_RICH_TEXT_COLOR;\n };\n ZRText.prototype.setTextContent = function (textContent) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error('Can\\'t attach text on another text');\n }\n };\n ZRText.prototype._mergeStyle = function (targetStyle, sourceStyle) {\n if (!sourceStyle) {\n return targetStyle;\n }\n var sourceRich = sourceStyle.rich;\n var targetRich = targetStyle.rich || (sourceRich && {});\n extend(targetStyle, sourceStyle);\n if (sourceRich && targetRich) {\n this._mergeRich(targetRich, sourceRich);\n targetStyle.rich = targetRich;\n }\n else if (targetRich) {\n targetStyle.rich = targetRich;\n }\n return targetStyle;\n };\n ZRText.prototype._mergeRich = function (targetRich, sourceRich) {\n var richNames = keys(sourceRich);\n for (var i = 0; i < richNames.length; i++) {\n var richName = richNames[i];\n targetRich[richName] = targetRich[richName] || {};\n extend(targetRich[richName], sourceRich[richName]);\n }\n };\n ZRText.prototype.getAnimationStyleProps = function () {\n return DEFAULT_TEXT_ANIMATION_PROPS;\n };\n ZRText.prototype._getOrCreateChild = function (Ctor) {\n var child = this._children[this._childCursor];\n if (!child || !(child instanceof Ctor)) {\n child = new Ctor();\n }\n this._children[this._childCursor++] = child;\n child.__zr = this.__zr;\n child.parent = this;\n return child;\n };\n ZRText.prototype._updatePlainTexts = function () {\n var style = this.style;\n var textFont = style.font || DEFAULT_FONT;\n var textPadding = style.padding;\n var text = getStyleText(style);\n var contentBlock = parsePlainText(text, style);\n var needDrawBg = needDrawBackground(style);\n var bgColorDrawn = !!(style.backgroundColor);\n var outerHeight = contentBlock.outerHeight;\n var outerWidth = contentBlock.outerWidth;\n var contentWidth = contentBlock.contentWidth;\n var textLines = contentBlock.lines;\n var lineHeight = contentBlock.lineHeight;\n var defaultStyle = this._defaultStyle;\n var baseX = style.x || 0;\n var baseY = style.y || 0;\n var textAlign = style.align || defaultStyle.align || 'left';\n var verticalAlign = style.verticalAlign || defaultStyle.verticalAlign || 'top';\n var textX = baseX;\n var textY = adjustTextY(baseY, contentBlock.contentHeight, verticalAlign);\n if (needDrawBg || textPadding) {\n var boxX = adjustTextX(baseX, outerWidth, textAlign);\n var boxY = adjustTextY(baseY, outerHeight, verticalAlign);\n needDrawBg && this._renderBackground(style, style, boxX, boxY, outerWidth, outerHeight);\n }\n textY += lineHeight / 2;\n if (textPadding) {\n textX = getTextXForPadding(baseX, textAlign, textPadding);\n if (verticalAlign === 'top') {\n textY += textPadding[0];\n }\n else if (verticalAlign === 'bottom') {\n textY -= textPadding[2];\n }\n }\n var defaultLineWidth = 0;\n var useDefaultFill = false;\n var textFill = getFill('fill' in style\n ? style.fill\n : (useDefaultFill = true, defaultStyle.fill));\n var textStroke = getStroke('stroke' in style\n ? style.stroke\n : (!bgColorDrawn\n && (!defaultStyle.autoStroke || useDefaultFill))\n ? (defaultLineWidth = DEFAULT_STROKE_LINE_WIDTH, defaultStyle.stroke)\n : null);\n var hasShadow = style.textShadowBlur > 0;\n var fixedBoundingRect = style.width != null\n && (style.overflow === 'truncate' || style.overflow === 'break' || style.overflow === 'breakAll');\n var calculatedLineHeight = contentBlock.calculatedLineHeight;\n for (var i = 0; i < textLines.length; i++) {\n var el = this._getOrCreateChild(TSpan);\n var subElStyle = el.createStyle();\n el.useStyle(subElStyle);\n subElStyle.text = textLines[i];\n subElStyle.x = textX;\n subElStyle.y = textY;\n if (textAlign) {\n subElStyle.textAlign = textAlign;\n }\n subElStyle.textBaseline = 'middle';\n subElStyle.opacity = style.opacity;\n subElStyle.strokeFirst = true;\n if (hasShadow) {\n subElStyle.shadowBlur = style.textShadowBlur || 0;\n subElStyle.shadowColor = style.textShadowColor || 'transparent';\n subElStyle.shadowOffsetX = style.textShadowOffsetX || 0;\n subElStyle.shadowOffsetY = style.textShadowOffsetY || 0;\n }\n subElStyle.stroke = textStroke;\n subElStyle.fill = textFill;\n if (textStroke) {\n subElStyle.lineWidth = style.lineWidth || defaultLineWidth;\n subElStyle.lineDash = style.lineDash;\n subElStyle.lineDashOffset = style.lineDashOffset || 0;\n }\n subElStyle.font = textFont;\n setSeparateFont(subElStyle, style);\n textY += lineHeight;\n if (fixedBoundingRect) {\n el.setBoundingRect(new BoundingRect(adjustTextX(subElStyle.x, style.width, subElStyle.textAlign), adjustTextY(subElStyle.y, calculatedLineHeight, subElStyle.textBaseline), contentWidth, calculatedLineHeight));\n }\n }\n };\n ZRText.prototype._updateRichTexts = function () {\n var style = this.style;\n var text = getStyleText(style);\n var contentBlock = parseRichText(text, style);\n var contentWidth = contentBlock.width;\n var outerWidth = contentBlock.outerWidth;\n var outerHeight = contentBlock.outerHeight;\n var textPadding = style.padding;\n var baseX = style.x || 0;\n var baseY = style.y || 0;\n var defaultStyle = this._defaultStyle;\n var textAlign = style.align || defaultStyle.align;\n var verticalAlign = style.verticalAlign || defaultStyle.verticalAlign;\n var boxX = adjustTextX(baseX, outerWidth, textAlign);\n var boxY = adjustTextY(baseY, outerHeight, verticalAlign);\n var xLeft = boxX;\n var lineTop = boxY;\n if (textPadding) {\n xLeft += textPadding[3];\n lineTop += textPadding[0];\n }\n var xRight = xLeft + contentWidth;\n if (needDrawBackground(style)) {\n this._renderBackground(style, style, boxX, boxY, outerWidth, outerHeight);\n }\n var bgColorDrawn = !!(style.backgroundColor);\n for (var i = 0; i < contentBlock.lines.length; i++) {\n var line = contentBlock.lines[i];\n var tokens = line.tokens;\n var tokenCount = tokens.length;\n var lineHeight = line.lineHeight;\n var remainedWidth = line.width;\n var leftIndex = 0;\n var lineXLeft = xLeft;\n var lineXRight = xRight;\n var rightIndex = tokenCount - 1;\n var token = void 0;\n while (leftIndex < tokenCount\n && (token = tokens[leftIndex], !token.align || token.align === 'left')) {\n this._placeToken(token, style, lineHeight, lineTop, lineXLeft, 'left', bgColorDrawn);\n remainedWidth -= token.width;\n lineXLeft += token.width;\n leftIndex++;\n }\n while (rightIndex >= 0\n && (token = tokens[rightIndex], token.align === 'right')) {\n this._placeToken(token, style, lineHeight, lineTop, lineXRight, 'right', bgColorDrawn);\n remainedWidth -= token.width;\n lineXRight -= token.width;\n rightIndex--;\n }\n lineXLeft += (contentWidth - (lineXLeft - xLeft) - (xRight - lineXRight) - remainedWidth) / 2;\n while (leftIndex <= rightIndex) {\n token = tokens[leftIndex];\n this._placeToken(token, style, lineHeight, lineTop, lineXLeft + token.width / 2, 'center', bgColorDrawn);\n lineXLeft += token.width;\n leftIndex++;\n }\n lineTop += lineHeight;\n }\n };\n ZRText.prototype._placeToken = function (token, style, lineHeight, lineTop, x, textAlign, parentBgColorDrawn) {\n var tokenStyle = style.rich[token.styleName] || {};\n tokenStyle.text = token.text;\n var verticalAlign = token.verticalAlign;\n var y = lineTop + lineHeight / 2;\n if (verticalAlign === 'top') {\n y = lineTop + token.height / 2;\n }\n else if (verticalAlign === 'bottom') {\n y = lineTop + lineHeight - token.height / 2;\n }\n var needDrawBg = !token.isLineHolder && needDrawBackground(tokenStyle);\n needDrawBg && this._renderBackground(tokenStyle, style, textAlign === 'right'\n ? x - token.width\n : textAlign === 'center'\n ? x - token.width / 2\n : x, y - token.height / 2, token.width, token.height);\n var bgColorDrawn = !!tokenStyle.backgroundColor;\n var textPadding = token.textPadding;\n if (textPadding) {\n x = getTextXForPadding(x, textAlign, textPadding);\n y -= token.height / 2 - textPadding[0] - token.innerHeight / 2;\n }\n var el = this._getOrCreateChild(TSpan);\n var subElStyle = el.createStyle();\n el.useStyle(subElStyle);\n var defaultStyle = this._defaultStyle;\n var useDefaultFill = false;\n var defaultLineWidth = 0;\n var textFill = getFill('fill' in tokenStyle ? tokenStyle.fill\n : 'fill' in style ? style.fill\n : (useDefaultFill = true, defaultStyle.fill));\n var textStroke = getStroke('stroke' in tokenStyle ? tokenStyle.stroke\n : 'stroke' in style ? style.stroke\n : (!bgColorDrawn\n && !parentBgColorDrawn\n && (!defaultStyle.autoStroke || useDefaultFill)) ? (defaultLineWidth = DEFAULT_STROKE_LINE_WIDTH, defaultStyle.stroke)\n : null);\n var hasShadow = tokenStyle.textShadowBlur > 0\n || style.textShadowBlur > 0;\n subElStyle.text = token.text;\n subElStyle.x = x;\n subElStyle.y = y;\n if (hasShadow) {\n subElStyle.shadowBlur = tokenStyle.textShadowBlur || style.textShadowBlur || 0;\n subElStyle.shadowColor = tokenStyle.textShadowColor || style.textShadowColor || 'transparent';\n subElStyle.shadowOffsetX = tokenStyle.textShadowOffsetX || style.textShadowOffsetX || 0;\n subElStyle.shadowOffsetY = tokenStyle.textShadowOffsetY || style.textShadowOffsetY || 0;\n }\n subElStyle.textAlign = textAlign;\n subElStyle.textBaseline = 'middle';\n subElStyle.font = token.font || DEFAULT_FONT;\n subElStyle.opacity = retrieve3(tokenStyle.opacity, style.opacity, 1);\n setSeparateFont(subElStyle, tokenStyle);\n if (textStroke) {\n subElStyle.lineWidth = retrieve3(tokenStyle.lineWidth, style.lineWidth, defaultLineWidth);\n subElStyle.lineDash = retrieve2(tokenStyle.lineDash, style.lineDash);\n subElStyle.lineDashOffset = style.lineDashOffset || 0;\n subElStyle.stroke = textStroke;\n }\n if (textFill) {\n subElStyle.fill = textFill;\n }\n var textWidth = token.contentWidth;\n var textHeight = token.contentHeight;\n el.setBoundingRect(new BoundingRect(adjustTextX(subElStyle.x, textWidth, subElStyle.textAlign), adjustTextY(subElStyle.y, textHeight, subElStyle.textBaseline), textWidth, textHeight));\n };\n ZRText.prototype._renderBackground = function (style, topStyle, x, y, width, height) {\n var textBackgroundColor = style.backgroundColor;\n var textBorderWidth = style.borderWidth;\n var textBorderColor = style.borderColor;\n var isImageBg = textBackgroundColor && textBackgroundColor.image;\n var isPlainOrGradientBg = textBackgroundColor && !isImageBg;\n var textBorderRadius = style.borderRadius;\n var self = this;\n var rectEl;\n var imgEl;\n if (isPlainOrGradientBg || style.lineHeight || (textBorderWidth && textBorderColor)) {\n rectEl = this._getOrCreateChild(Rect);\n rectEl.useStyle(rectEl.createStyle());\n rectEl.style.fill = null;\n var rectShape = rectEl.shape;\n rectShape.x = x;\n rectShape.y = y;\n rectShape.width = width;\n rectShape.height = height;\n rectShape.r = textBorderRadius;\n rectEl.dirtyShape();\n }\n if (isPlainOrGradientBg) {\n var rectStyle = rectEl.style;\n rectStyle.fill = textBackgroundColor || null;\n rectStyle.fillOpacity = retrieve2(style.fillOpacity, 1);\n }\n else if (isImageBg) {\n imgEl = this._getOrCreateChild(ZRImage);\n imgEl.onload = function () {\n self.dirtyStyle();\n };\n var imgStyle = imgEl.style;\n imgStyle.image = textBackgroundColor.image;\n imgStyle.x = x;\n imgStyle.y = y;\n imgStyle.width = width;\n imgStyle.height = height;\n }\n if (textBorderWidth && textBorderColor) {\n var rectStyle = rectEl.style;\n rectStyle.lineWidth = textBorderWidth;\n rectStyle.stroke = textBorderColor;\n rectStyle.strokeOpacity = retrieve2(style.strokeOpacity, 1);\n rectStyle.lineDash = style.borderDash;\n rectStyle.lineDashOffset = style.borderDashOffset || 0;\n rectEl.strokeContainThreshold = 0;\n if (rectEl.hasFill() && rectEl.hasStroke()) {\n rectStyle.strokeFirst = true;\n rectStyle.lineWidth *= 2;\n }\n }\n var commonStyle = (rectEl || imgEl).style;\n commonStyle.shadowBlur = style.shadowBlur || 0;\n commonStyle.shadowColor = style.shadowColor || 'transparent';\n commonStyle.shadowOffsetX = style.shadowOffsetX || 0;\n commonStyle.shadowOffsetY = style.shadowOffsetY || 0;\n commonStyle.opacity = retrieve3(style.opacity, topStyle.opacity, 1);\n };\n ZRText.makeFont = function (style) {\n var font = '';\n if (hasSeparateFont(style)) {\n font = [\n style.fontStyle,\n style.fontWeight,\n parseFontSize(style.fontSize),\n style.fontFamily || 'sans-serif'\n ].join(' ');\n }\n return font && trim(font) || style.textFont || style.font;\n };\n return ZRText;\n}(Displayable));\nvar VALID_TEXT_ALIGN = { left: true, right: 1, center: 1 };\nvar VALID_TEXT_VERTICAL_ALIGN = { top: 1, bottom: 1, middle: 1 };\nvar FONT_PARTS = ['fontStyle', 'fontWeight', 'fontSize', 'fontFamily'];\nexport function parseFontSize(fontSize) {\n if (typeof fontSize === 'string'\n && (fontSize.indexOf('px') !== -1\n || fontSize.indexOf('rem') !== -1\n || fontSize.indexOf('em') !== -1)) {\n return fontSize;\n }\n else if (!isNaN(+fontSize)) {\n return fontSize + 'px';\n }\n else {\n return DEFAULT_FONT_SIZE + 'px';\n }\n}\nfunction setSeparateFont(targetStyle, sourceStyle) {\n for (var i = 0; i < FONT_PARTS.length; i++) {\n var fontProp = FONT_PARTS[i];\n var val = sourceStyle[fontProp];\n if (val != null) {\n targetStyle[fontProp] = val;\n }\n }\n}\nexport function hasSeparateFont(style) {\n return style.fontSize != null || style.fontFamily || style.fontWeight;\n}\nexport function normalizeTextStyle(style) {\n normalizeStyle(style);\n each(style.rich, normalizeStyle);\n return style;\n}\nfunction normalizeStyle(style) {\n if (style) {\n style.font = ZRText.makeFont(style);\n var textAlign = style.align;\n textAlign === 'middle' && (textAlign = 'center');\n style.align = (textAlign == null || VALID_TEXT_ALIGN[textAlign]) ? textAlign : 'left';\n var verticalAlign = style.verticalAlign;\n verticalAlign === 'center' && (verticalAlign = 'middle');\n style.verticalAlign = (verticalAlign == null || VALID_TEXT_VERTICAL_ALIGN[verticalAlign]) ? verticalAlign : 'top';\n var textPadding = style.padding;\n if (textPadding) {\n style.padding = normalizeCssArray(style.padding);\n }\n }\n}\nfunction getStroke(stroke, lineWidth) {\n return (stroke == null || lineWidth <= 0 || stroke === 'transparent' || stroke === 'none')\n ? null\n : (stroke.image || stroke.colorStops)\n ? '#000'\n : stroke;\n}\nfunction getFill(fill) {\n return (fill == null || fill === 'none')\n ? null\n : (fill.image || fill.colorStops)\n ? '#000'\n : fill;\n}\nfunction getTextXForPadding(x, textAlign, textPadding) {\n return textAlign === 'right'\n ? (x - textPadding[1])\n : textAlign === 'center'\n ? (x + textPadding[3] / 2 - textPadding[1] / 2)\n : (x + textPadding[3]);\n}\nfunction getStyleText(style) {\n var text = style.text;\n text != null && (text += '');\n return text;\n}\nfunction needDrawBackground(style) {\n return !!(style.backgroundColor\n || style.lineHeight\n || (style.borderWidth && style.borderColor));\n}\nexport default ZRText;\n","export var REDRAW_BIT = 1;\nexport var STYLE_CHANGED_BIT = 2;\nexport var SHAPE_CHANGED_BIT = 4;\n","import LRU from '../../core/LRU.js';\nimport { platformApi } from '../../core/platform.js';\nvar globalImageCache = new LRU(50);\nexport function findExistImage(newImageOrSrc) {\n if (typeof newImageOrSrc === 'string') {\n var cachedImgObj = globalImageCache.get(newImageOrSrc);\n return cachedImgObj && cachedImgObj.image;\n }\n else {\n return newImageOrSrc;\n }\n}\nexport function createOrUpdateImage(newImageOrSrc, image, hostEl, onload, cbPayload) {\n if (!newImageOrSrc) {\n return image;\n }\n else if (typeof newImageOrSrc === 'string') {\n if ((image && image.__zrImageSrc === newImageOrSrc) || !hostEl) {\n return image;\n }\n var cachedImgObj = globalImageCache.get(newImageOrSrc);\n var pendingWrap = { hostEl: hostEl, cb: onload, cbPayload: cbPayload };\n if (cachedImgObj) {\n image = cachedImgObj.image;\n !isImageReady(image) && cachedImgObj.pending.push(pendingWrap);\n }\n else {\n image = platformApi.loadImage(newImageOrSrc, imageOnLoad, imageOnLoad);\n image.__zrImageSrc = newImageOrSrc;\n globalImageCache.put(newImageOrSrc, image.__cachedImgObj = {\n image: image,\n pending: [pendingWrap]\n });\n }\n return image;\n }\n else {\n return newImageOrSrc;\n }\n}\nfunction imageOnLoad() {\n var cachedImgObj = this.__cachedImgObj;\n this.onload = this.onerror = this.__cachedImgObj = null;\n for (var i = 0; i < cachedImgObj.pending.length; i++) {\n var pendingWrap = cachedImgObj.pending[i];\n var cb = pendingWrap.cb;\n cb && cb(this, pendingWrap.cbPayload);\n pendingWrap.hostEl.dirty();\n }\n cachedImgObj.pending.length = 0;\n}\nexport function isImageReady(image) {\n return image && image.width && image.height;\n}\n","import * as imageHelper from '../helper/image.js';\nimport { extend, retrieve2, retrieve3, reduce } from '../../core/util.js';\nimport { getLineHeight, getWidth, parsePercent } from '../../contain/text.js';\nvar STYLE_REG = /\\{([a-zA-Z0-9_]+)\\|([^}]*)\\}/g;\nexport function truncateText(text, containerWidth, font, ellipsis, options) {\n if (!containerWidth) {\n return '';\n }\n var textLines = (text + '').split('\\n');\n options = prepareTruncateOptions(containerWidth, font, ellipsis, options);\n for (var i = 0, len = textLines.length; i < len; i++) {\n textLines[i] = truncateSingleLine(textLines[i], options);\n }\n return textLines.join('\\n');\n}\nfunction prepareTruncateOptions(containerWidth, font, ellipsis, options) {\n options = options || {};\n var preparedOpts = extend({}, options);\n preparedOpts.font = font;\n ellipsis = retrieve2(ellipsis, '...');\n preparedOpts.maxIterations = retrieve2(options.maxIterations, 2);\n var minChar = preparedOpts.minChar = retrieve2(options.minChar, 0);\n preparedOpts.cnCharWidth = getWidth('国', font);\n var ascCharWidth = preparedOpts.ascCharWidth = getWidth('a', font);\n preparedOpts.placeholder = retrieve2(options.placeholder, '');\n var contentWidth = containerWidth = Math.max(0, containerWidth - 1);\n for (var i = 0; i < minChar && contentWidth >= ascCharWidth; i++) {\n contentWidth -= ascCharWidth;\n }\n var ellipsisWidth = getWidth(ellipsis, font);\n if (ellipsisWidth > contentWidth) {\n ellipsis = '';\n ellipsisWidth = 0;\n }\n contentWidth = containerWidth - ellipsisWidth;\n preparedOpts.ellipsis = ellipsis;\n preparedOpts.ellipsisWidth = ellipsisWidth;\n preparedOpts.contentWidth = contentWidth;\n preparedOpts.containerWidth = containerWidth;\n return preparedOpts;\n}\nfunction truncateSingleLine(textLine, options) {\n var containerWidth = options.containerWidth;\n var font = options.font;\n var contentWidth = options.contentWidth;\n if (!containerWidth) {\n return '';\n }\n var lineWidth = getWidth(textLine, font);\n if (lineWidth <= containerWidth) {\n return textLine;\n }\n for (var j = 0;; j++) {\n if (lineWidth <= contentWidth || j >= options.maxIterations) {\n textLine += options.ellipsis;\n break;\n }\n var subLength = j === 0\n ? estimateLength(textLine, contentWidth, options.ascCharWidth, options.cnCharWidth)\n : lineWidth > 0\n ? Math.floor(textLine.length * contentWidth / lineWidth)\n : 0;\n textLine = textLine.substr(0, subLength);\n lineWidth = getWidth(textLine, font);\n }\n if (textLine === '') {\n textLine = options.placeholder;\n }\n return textLine;\n}\nfunction estimateLength(text, contentWidth, ascCharWidth, cnCharWidth) {\n var width = 0;\n var i = 0;\n for (var len = text.length; i < len && width < contentWidth; i++) {\n var charCode = text.charCodeAt(i);\n width += (0 <= charCode && charCode <= 127) ? ascCharWidth : cnCharWidth;\n }\n return i;\n}\nexport function parsePlainText(text, style) {\n text != null && (text += '');\n var overflow = style.overflow;\n var padding = style.padding;\n var font = style.font;\n var truncate = overflow === 'truncate';\n var calculatedLineHeight = getLineHeight(font);\n var lineHeight = retrieve2(style.lineHeight, calculatedLineHeight);\n var bgColorDrawn = !!(style.backgroundColor);\n var truncateLineOverflow = style.lineOverflow === 'truncate';\n var width = style.width;\n var lines;\n if (width != null && (overflow === 'break' || overflow === 'breakAll')) {\n lines = text ? wrapText(text, style.font, width, overflow === 'breakAll', 0).lines : [];\n }\n else {\n lines = text ? text.split('\\n') : [];\n }\n var contentHeight = lines.length * lineHeight;\n var height = retrieve2(style.height, contentHeight);\n if (contentHeight > height && truncateLineOverflow) {\n var lineCount = Math.floor(height / lineHeight);\n lines = lines.slice(0, lineCount);\n }\n if (text && truncate && width != null) {\n var options = prepareTruncateOptions(width, font, style.ellipsis, {\n minChar: style.truncateMinChar,\n placeholder: style.placeholder\n });\n for (var i = 0; i < lines.length; i++) {\n lines[i] = truncateSingleLine(lines[i], options);\n }\n }\n var outerHeight = height;\n var contentWidth = 0;\n for (var i = 0; i < lines.length; i++) {\n contentWidth = Math.max(getWidth(lines[i], font), contentWidth);\n }\n if (width == null) {\n width = contentWidth;\n }\n var outerWidth = contentWidth;\n if (padding) {\n outerHeight += padding[0] + padding[2];\n outerWidth += padding[1] + padding[3];\n width += padding[1] + padding[3];\n }\n if (bgColorDrawn) {\n outerWidth = width;\n }\n return {\n lines: lines,\n height: height,\n outerWidth: outerWidth,\n outerHeight: outerHeight,\n lineHeight: lineHeight,\n calculatedLineHeight: calculatedLineHeight,\n contentWidth: contentWidth,\n contentHeight: contentHeight,\n width: width\n };\n}\nvar RichTextToken = (function () {\n function RichTextToken() {\n }\n return RichTextToken;\n}());\nvar RichTextLine = (function () {\n function RichTextLine(tokens) {\n this.tokens = [];\n if (tokens) {\n this.tokens = tokens;\n }\n }\n return RichTextLine;\n}());\nvar RichTextContentBlock = (function () {\n function RichTextContentBlock() {\n this.width = 0;\n this.height = 0;\n this.contentWidth = 0;\n this.contentHeight = 0;\n this.outerWidth = 0;\n this.outerHeight = 0;\n this.lines = [];\n }\n return RichTextContentBlock;\n}());\nexport { RichTextContentBlock };\nexport function parseRichText(text, style) {\n var contentBlock = new RichTextContentBlock();\n text != null && (text += '');\n if (!text) {\n return contentBlock;\n }\n var topWidth = style.width;\n var topHeight = style.height;\n var overflow = style.overflow;\n var wrapInfo = (overflow === 'break' || overflow === 'breakAll') && topWidth != null\n ? { width: topWidth, accumWidth: 0, breakAll: overflow === 'breakAll' }\n : null;\n var lastIndex = STYLE_REG.lastIndex = 0;\n var result;\n while ((result = STYLE_REG.exec(text)) != null) {\n var matchedIndex = result.index;\n if (matchedIndex > lastIndex) {\n pushTokens(contentBlock, text.substring(lastIndex, matchedIndex), style, wrapInfo);\n }\n pushTokens(contentBlock, result[2], style, wrapInfo, result[1]);\n lastIndex = STYLE_REG.lastIndex;\n }\n if (lastIndex < text.length) {\n pushTokens(contentBlock, text.substring(lastIndex, text.length), style, wrapInfo);\n }\n var pendingList = [];\n var calculatedHeight = 0;\n var calculatedWidth = 0;\n var stlPadding = style.padding;\n var truncate = overflow === 'truncate';\n var truncateLine = style.lineOverflow === 'truncate';\n function finishLine(line, lineWidth, lineHeight) {\n line.width = lineWidth;\n line.lineHeight = lineHeight;\n calculatedHeight += lineHeight;\n calculatedWidth = Math.max(calculatedWidth, lineWidth);\n }\n outer: for (var i = 0; i < contentBlock.lines.length; i++) {\n var line = contentBlock.lines[i];\n var lineHeight = 0;\n var lineWidth = 0;\n for (var j = 0; j < line.tokens.length; j++) {\n var token = line.tokens[j];\n var tokenStyle = token.styleName && style.rich[token.styleName] || {};\n var textPadding = token.textPadding = tokenStyle.padding;\n var paddingH = textPadding ? textPadding[1] + textPadding[3] : 0;\n var font = token.font = tokenStyle.font || style.font;\n token.contentHeight = getLineHeight(font);\n var tokenHeight = retrieve2(tokenStyle.height, token.contentHeight);\n token.innerHeight = tokenHeight;\n textPadding && (tokenHeight += textPadding[0] + textPadding[2]);\n token.height = tokenHeight;\n token.lineHeight = retrieve3(tokenStyle.lineHeight, style.lineHeight, tokenHeight);\n token.align = tokenStyle && tokenStyle.align || style.align;\n token.verticalAlign = tokenStyle && tokenStyle.verticalAlign || 'middle';\n if (truncateLine && topHeight != null && calculatedHeight + token.lineHeight > topHeight) {\n if (j > 0) {\n line.tokens = line.tokens.slice(0, j);\n finishLine(line, lineWidth, lineHeight);\n contentBlock.lines = contentBlock.lines.slice(0, i + 1);\n }\n else {\n contentBlock.lines = contentBlock.lines.slice(0, i);\n }\n break outer;\n }\n var styleTokenWidth = tokenStyle.width;\n var tokenWidthNotSpecified = styleTokenWidth == null || styleTokenWidth === 'auto';\n if (typeof styleTokenWidth === 'string' && styleTokenWidth.charAt(styleTokenWidth.length - 1) === '%') {\n token.percentWidth = styleTokenWidth;\n pendingList.push(token);\n token.contentWidth = getWidth(token.text, font);\n }\n else {\n if (tokenWidthNotSpecified) {\n var textBackgroundColor = tokenStyle.backgroundColor;\n var bgImg = textBackgroundColor && textBackgroundColor.image;\n if (bgImg) {\n bgImg = imageHelper.findExistImage(bgImg);\n if (imageHelper.isImageReady(bgImg)) {\n token.width = Math.max(token.width, bgImg.width * tokenHeight / bgImg.height);\n }\n }\n }\n var remainTruncWidth = truncate && topWidth != null\n ? topWidth - lineWidth : null;\n if (remainTruncWidth != null && remainTruncWidth < token.width) {\n if (!tokenWidthNotSpecified || remainTruncWidth < paddingH) {\n token.text = '';\n token.width = token.contentWidth = 0;\n }\n else {\n token.text = truncateText(token.text, remainTruncWidth - paddingH, font, style.ellipsis, { minChar: style.truncateMinChar });\n token.width = token.contentWidth = getWidth(token.text, font);\n }\n }\n else {\n token.contentWidth = getWidth(token.text, font);\n }\n }\n token.width += paddingH;\n lineWidth += token.width;\n tokenStyle && (lineHeight = Math.max(lineHeight, token.lineHeight));\n }\n finishLine(line, lineWidth, lineHeight);\n }\n contentBlock.outerWidth = contentBlock.width = retrieve2(topWidth, calculatedWidth);\n contentBlock.outerHeight = contentBlock.height = retrieve2(topHeight, calculatedHeight);\n contentBlock.contentHeight = calculatedHeight;\n contentBlock.contentWidth = calculatedWidth;\n if (stlPadding) {\n contentBlock.outerWidth += stlPadding[1] + stlPadding[3];\n contentBlock.outerHeight += stlPadding[0] + stlPadding[2];\n }\n for (var i = 0; i < pendingList.length; i++) {\n var token = pendingList[i];\n var percentWidth = token.percentWidth;\n token.width = parseInt(percentWidth, 10) / 100 * contentBlock.width;\n }\n return contentBlock;\n}\nfunction pushTokens(block, str, style, wrapInfo, styleName) {\n var isEmptyStr = str === '';\n var tokenStyle = styleName && style.rich[styleName] || {};\n var lines = block.lines;\n var font = tokenStyle.font || style.font;\n var newLine = false;\n var strLines;\n var linesWidths;\n if (wrapInfo) {\n var tokenPadding = tokenStyle.padding;\n var tokenPaddingH = tokenPadding ? tokenPadding[1] + tokenPadding[3] : 0;\n if (tokenStyle.width != null && tokenStyle.width !== 'auto') {\n var outerWidth_1 = parsePercent(tokenStyle.width, wrapInfo.width) + tokenPaddingH;\n if (lines.length > 0) {\n if (outerWidth_1 + wrapInfo.accumWidth > wrapInfo.width) {\n strLines = str.split('\\n');\n newLine = true;\n }\n }\n wrapInfo.accumWidth = outerWidth_1;\n }\n else {\n var res = wrapText(str, font, wrapInfo.width, wrapInfo.breakAll, wrapInfo.accumWidth);\n wrapInfo.accumWidth = res.accumWidth + tokenPaddingH;\n linesWidths = res.linesWidths;\n strLines = res.lines;\n }\n }\n else {\n strLines = str.split('\\n');\n }\n for (var i = 0; i < strLines.length; i++) {\n var text = strLines[i];\n var token = new RichTextToken();\n token.styleName = styleName;\n token.text = text;\n token.isLineHolder = !text && !isEmptyStr;\n if (typeof tokenStyle.width === 'number') {\n token.width = tokenStyle.width;\n }\n else {\n token.width = linesWidths\n ? linesWidths[i]\n : getWidth(text, font);\n }\n if (!i && !newLine) {\n var tokens = (lines[lines.length - 1] || (lines[0] = new RichTextLine())).tokens;\n var tokensLen = tokens.length;\n (tokensLen === 1 && tokens[0].isLineHolder)\n ? (tokens[0] = token)\n : ((text || !tokensLen || isEmptyStr) && tokens.push(token));\n }\n else {\n lines.push(new RichTextLine([token]));\n }\n }\n}\nfunction isAlphabeticLetter(ch) {\n var code = ch.charCodeAt(0);\n return code >= 0x20 && code <= 0x24F\n || code >= 0x370 && code <= 0x10FF\n || code >= 0x1200 && code <= 0x13FF\n || code >= 0x1E00 && code <= 0x206F;\n}\nvar breakCharMap = reduce(',&?/;] '.split(''), function (obj, ch) {\n obj[ch] = true;\n return obj;\n}, {});\nfunction isWordBreakChar(ch) {\n if (isAlphabeticLetter(ch)) {\n if (breakCharMap[ch]) {\n return true;\n }\n return false;\n }\n return true;\n}\nfunction wrapText(text, font, lineWidth, isBreakAll, lastAccumWidth) {\n var lines = [];\n var linesWidths = [];\n var line = '';\n var currentWord = '';\n var currentWordWidth = 0;\n var accumWidth = 0;\n for (var i = 0; i < text.length; i++) {\n var ch = text.charAt(i);\n if (ch === '\\n') {\n if (currentWord) {\n line += currentWord;\n accumWidth += currentWordWidth;\n }\n lines.push(line);\n linesWidths.push(accumWidth);\n line = '';\n currentWord = '';\n currentWordWidth = 0;\n accumWidth = 0;\n continue;\n }\n var chWidth = getWidth(ch, font);\n var inWord = isBreakAll ? false : !isWordBreakChar(ch);\n if (!lines.length\n ? lastAccumWidth + accumWidth + chWidth > lineWidth\n : accumWidth + chWidth > lineWidth) {\n if (!accumWidth) {\n if (inWord) {\n lines.push(currentWord);\n linesWidths.push(currentWordWidth);\n currentWord = ch;\n currentWordWidth = chWidth;\n }\n else {\n lines.push(ch);\n linesWidths.push(chWidth);\n }\n }\n else if (line || currentWord) {\n if (inWord) {\n if (!line) {\n line = currentWord;\n currentWord = '';\n currentWordWidth = 0;\n accumWidth = currentWordWidth;\n }\n lines.push(line);\n linesWidths.push(accumWidth - currentWordWidth);\n currentWord += ch;\n currentWordWidth += chWidth;\n line = '';\n accumWidth = currentWordWidth;\n }\n else {\n if (currentWord) {\n line += currentWord;\n currentWord = '';\n currentWordWidth = 0;\n }\n lines.push(line);\n linesWidths.push(accumWidth);\n line = ch;\n accumWidth = chWidth;\n }\n }\n continue;\n }\n accumWidth += chWidth;\n if (inWord) {\n currentWord += ch;\n currentWordWidth += chWidth;\n }\n else {\n if (currentWord) {\n line += currentWord;\n currentWord = '';\n currentWordWidth = 0;\n }\n line += ch;\n }\n }\n if (!lines.length && !line) {\n line = text;\n currentWord = '';\n currentWordWidth = 0;\n }\n if (currentWord) {\n line += currentWord;\n }\n if (line) {\n lines.push(line);\n linesWidths.push(accumWidth);\n }\n if (lines.length === 1) {\n accumWidth += lastAccumWidth;\n }\n return {\n accumWidth: accumWidth,\n lines: lines,\n linesWidths: linesWidths\n };\n}\n","import smoothBezier from './smoothBezier.js';\nexport function buildPath(ctx, shape, closePath) {\n var smooth = shape.smooth;\n var points = shape.points;\n if (points && points.length >= 2) {\n if (smooth) {\n var controlPoints = smoothBezier(points, smooth, closePath, shape.smoothConstraint);\n ctx.moveTo(points[0][0], points[0][1]);\n var len = points.length;\n for (var i = 0; i < (closePath ? len : len - 1); i++) {\n var cp1 = controlPoints[i * 2];\n var cp2 = controlPoints[i * 2 + 1];\n var p = points[(i + 1) % len];\n ctx.bezierCurveTo(cp1[0], cp1[1], cp2[0], cp2[1], p[0], p[1]);\n }\n }\n else {\n ctx.moveTo(points[0][0], points[0][1]);\n for (var i = 1, l = points.length; i < l; i++) {\n ctx.lineTo(points[i][0], points[i][1]);\n }\n }\n closePath && ctx.closePath();\n }\n}\n","export function buildPath(ctx, shape) {\n var x = shape.x;\n var y = shape.y;\n var width = shape.width;\n var height = shape.height;\n var r = shape.r;\n var r1;\n var r2;\n var r3;\n var r4;\n if (width < 0) {\n x = x + width;\n width = -width;\n }\n if (height < 0) {\n y = y + height;\n height = -height;\n }\n if (typeof r === 'number') {\n r1 = r2 = r3 = r4 = r;\n }\n else if (r instanceof Array) {\n if (r.length === 1) {\n r1 = r2 = r3 = r4 = r[0];\n }\n else if (r.length === 2) {\n r1 = r3 = r[0];\n r2 = r4 = r[1];\n }\n else if (r.length === 3) {\n r1 = r[0];\n r2 = r4 = r[1];\n r3 = r[2];\n }\n else {\n r1 = r[0];\n r2 = r[1];\n r3 = r[2];\n r4 = r[3];\n }\n }\n else {\n r1 = r2 = r3 = r4 = 0;\n }\n var total;\n if (r1 + r2 > width) {\n total = r1 + r2;\n r1 *= width / total;\n r2 *= width / total;\n }\n if (r3 + r4 > width) {\n total = r3 + r4;\n r3 *= width / total;\n r4 *= width / total;\n }\n if (r2 + r3 > height) {\n total = r2 + r3;\n r2 *= height / total;\n r3 *= height / total;\n }\n if (r1 + r4 > height) {\n total = r1 + r4;\n r1 *= height / total;\n r4 *= height / total;\n }\n ctx.moveTo(x + r1, y);\n ctx.lineTo(x + width - r2, y);\n r2 !== 0 && ctx.arc(x + width - r2, y + r2, r2, -Math.PI / 2, 0);\n ctx.lineTo(x + width, y + height - r3);\n r3 !== 0 && ctx.arc(x + width - r3, y + height - r3, r3, 0, Math.PI / 2);\n ctx.lineTo(x + r4, y + height);\n r4 !== 0 && ctx.arc(x + r4, y + height - r4, r4, Math.PI / 2, Math.PI);\n ctx.lineTo(x, y + r1);\n r1 !== 0 && ctx.arc(x + r1, y + r1, r1, Math.PI, Math.PI * 1.5);\n}\n","import { isArray } from '../../core/util.js';\nvar PI = Math.PI;\nvar PI2 = PI * 2;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar mathACos = Math.acos;\nvar mathATan2 = Math.atan2;\nvar mathAbs = Math.abs;\nvar mathSqrt = Math.sqrt;\nvar mathMax = Math.max;\nvar mathMin = Math.min;\nvar e = 1e-4;\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var dx10 = x1 - x0;\n var dy10 = y1 - y0;\n var dx32 = x3 - x2;\n var dy32 = y3 - y2;\n var t = dy32 * dx10 - dx32 * dy10;\n if (t * t < e) {\n return;\n }\n t = (dx32 * (y0 - y2) - dy32 * (x0 - x2)) / t;\n return [x0 + t * dx10, y0 + t * dy10];\n}\nfunction computeCornerTangents(x0, y0, x1, y1, radius, cr, clockwise) {\n var x01 = x0 - x1;\n var y01 = y0 - y1;\n var lo = (clockwise ? cr : -cr) / mathSqrt(x01 * x01 + y01 * y01);\n var ox = lo * y01;\n var oy = -lo * x01;\n var x11 = x0 + ox;\n var y11 = y0 + oy;\n var x10 = x1 + ox;\n var y10 = y1 + oy;\n var x00 = (x11 + x10) / 2;\n var y00 = (y11 + y10) / 2;\n var dx = x10 - x11;\n var dy = y10 - y11;\n var d2 = dx * dx + dy * dy;\n var r = radius - cr;\n var s = x11 * y10 - x10 * y11;\n var d = (dy < 0 ? -1 : 1) * mathSqrt(mathMax(0, r * r * d2 - s * s));\n var cx0 = (s * dy - dx * d) / d2;\n var cy0 = (-s * dx - dy * d) / d2;\n var cx1 = (s * dy + dx * d) / d2;\n var cy1 = (-s * dx + dy * d) / d2;\n var dx0 = cx0 - x00;\n var dy0 = cy0 - y00;\n var dx1 = cx1 - x00;\n var dy1 = cy1 - y00;\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) {\n cx0 = cx1;\n cy0 = cy1;\n }\n return {\n cx: cx0,\n cy: cy0,\n x0: -ox,\n y0: -oy,\n x1: cx0 * (radius / r - 1),\n y1: cy0 * (radius / r - 1)\n };\n}\nfunction normalizeCornerRadius(cr) {\n var arr;\n if (isArray(cr)) {\n var len = cr.length;\n if (!len) {\n return cr;\n }\n if (len === 1) {\n arr = [cr[0], cr[0], 0, 0];\n }\n else if (len === 2) {\n arr = [cr[0], cr[0], cr[1], cr[1]];\n }\n else if (len === 3) {\n arr = cr.concat(cr[2]);\n }\n else {\n arr = cr;\n }\n }\n else {\n arr = [cr, cr, cr, cr];\n }\n return arr;\n}\nexport function buildPath(ctx, shape) {\n var _a;\n var radius = mathMax(shape.r, 0);\n var innerRadius = mathMax(shape.r0 || 0, 0);\n var hasRadius = radius > 0;\n var hasInnerRadius = innerRadius > 0;\n if (!hasRadius && !hasInnerRadius) {\n return;\n }\n if (!hasRadius) {\n radius = innerRadius;\n innerRadius = 0;\n }\n if (innerRadius > radius) {\n var tmp = radius;\n radius = innerRadius;\n innerRadius = tmp;\n }\n var startAngle = shape.startAngle, endAngle = shape.endAngle;\n if (isNaN(startAngle) || isNaN(endAngle)) {\n return;\n }\n var cx = shape.cx, cy = shape.cy;\n var clockwise = !!shape.clockwise;\n var arc = mathAbs(endAngle - startAngle);\n var mod = arc > PI2 && arc % PI2;\n mod > e && (arc = mod);\n if (!(radius > e)) {\n ctx.moveTo(cx, cy);\n }\n else if (arc > PI2 - e) {\n ctx.moveTo(cx + radius * mathCos(startAngle), cy + radius * mathSin(startAngle));\n ctx.arc(cx, cy, radius, startAngle, endAngle, !clockwise);\n if (innerRadius > e) {\n ctx.moveTo(cx + innerRadius * mathCos(endAngle), cy + innerRadius * mathSin(endAngle));\n ctx.arc(cx, cy, innerRadius, endAngle, startAngle, clockwise);\n }\n }\n else {\n var icrStart = void 0;\n var icrEnd = void 0;\n var ocrStart = void 0;\n var ocrEnd = void 0;\n var ocrs = void 0;\n var ocre = void 0;\n var icrs = void 0;\n var icre = void 0;\n var ocrMax = void 0;\n var icrMax = void 0;\n var limitedOcrMax = void 0;\n var limitedIcrMax = void 0;\n var xre = void 0;\n var yre = void 0;\n var xirs = void 0;\n var yirs = void 0;\n var xrs = radius * mathCos(startAngle);\n var yrs = radius * mathSin(startAngle);\n var xire = innerRadius * mathCos(endAngle);\n var yire = innerRadius * mathSin(endAngle);\n var hasArc = arc > e;\n if (hasArc) {\n var cornerRadius = shape.cornerRadius;\n if (cornerRadius) {\n _a = normalizeCornerRadius(cornerRadius), icrStart = _a[0], icrEnd = _a[1], ocrStart = _a[2], ocrEnd = _a[3];\n }\n var halfRd = mathAbs(radius - innerRadius) / 2;\n ocrs = mathMin(halfRd, ocrStart);\n ocre = mathMin(halfRd, ocrEnd);\n icrs = mathMin(halfRd, icrStart);\n icre = mathMin(halfRd, icrEnd);\n limitedOcrMax = ocrMax = mathMax(ocrs, ocre);\n limitedIcrMax = icrMax = mathMax(icrs, icre);\n if (ocrMax > e || icrMax > e) {\n xre = radius * mathCos(endAngle);\n yre = radius * mathSin(endAngle);\n xirs = innerRadius * mathCos(startAngle);\n yirs = innerRadius * mathSin(startAngle);\n if (arc < PI) {\n var it_1 = intersect(xrs, yrs, xirs, yirs, xre, yre, xire, yire);\n if (it_1) {\n var x0 = xrs - it_1[0];\n var y0 = yrs - it_1[1];\n var x1 = xre - it_1[0];\n var y1 = yre - it_1[1];\n var a = 1 / mathSin(mathACos((x0 * x1 + y0 * y1) / (mathSqrt(x0 * x0 + y0 * y0) * mathSqrt(x1 * x1 + y1 * y1))) / 2);\n var b = mathSqrt(it_1[0] * it_1[0] + it_1[1] * it_1[1]);\n limitedOcrMax = mathMin(ocrMax, (radius - b) / (a + 1));\n limitedIcrMax = mathMin(icrMax, (innerRadius - b) / (a - 1));\n }\n }\n }\n }\n if (!hasArc) {\n ctx.moveTo(cx + xrs, cy + yrs);\n }\n else if (limitedOcrMax > e) {\n var crStart = mathMin(ocrStart, limitedOcrMax);\n var crEnd = mathMin(ocrEnd, limitedOcrMax);\n var ct0 = computeCornerTangents(xirs, yirs, xrs, yrs, radius, crStart, clockwise);\n var ct1 = computeCornerTangents(xre, yre, xire, yire, radius, crEnd, clockwise);\n ctx.moveTo(cx + ct0.cx + ct0.x0, cy + ct0.cy + ct0.y0);\n if (limitedOcrMax < ocrMax && crStart === crEnd) {\n ctx.arc(cx + ct0.cx, cy + ct0.cy, limitedOcrMax, mathATan2(ct0.y0, ct0.x0), mathATan2(ct1.y0, ct1.x0), !clockwise);\n }\n else {\n crStart > 0 && ctx.arc(cx + ct0.cx, cy + ct0.cy, crStart, mathATan2(ct0.y0, ct0.x0), mathATan2(ct0.y1, ct0.x1), !clockwise);\n ctx.arc(cx, cy, radius, mathATan2(ct0.cy + ct0.y1, ct0.cx + ct0.x1), mathATan2(ct1.cy + ct1.y1, ct1.cx + ct1.x1), !clockwise);\n crEnd > 0 && ctx.arc(cx + ct1.cx, cy + ct1.cy, crEnd, mathATan2(ct1.y1, ct1.x1), mathATan2(ct1.y0, ct1.x0), !clockwise);\n }\n }\n else {\n ctx.moveTo(cx + xrs, cy + yrs);\n ctx.arc(cx, cy, radius, startAngle, endAngle, !clockwise);\n }\n if (!(innerRadius > e) || !hasArc) {\n ctx.lineTo(cx + xire, cy + yire);\n }\n else if (limitedIcrMax > e) {\n var crStart = mathMin(icrStart, limitedIcrMax);\n var crEnd = mathMin(icrEnd, limitedIcrMax);\n var ct0 = computeCornerTangents(xire, yire, xre, yre, innerRadius, -crEnd, clockwise);\n var ct1 = computeCornerTangents(xrs, yrs, xirs, yirs, innerRadius, -crStart, clockwise);\n ctx.lineTo(cx + ct0.cx + ct0.x0, cy + ct0.cy + ct0.y0);\n if (limitedIcrMax < icrMax && crStart === crEnd) {\n ctx.arc(cx + ct0.cx, cy + ct0.cy, limitedIcrMax, mathATan2(ct0.y0, ct0.x0), mathATan2(ct1.y0, ct1.x0), !clockwise);\n }\n else {\n crEnd > 0 && ctx.arc(cx + ct0.cx, cy + ct0.cy, crEnd, mathATan2(ct0.y0, ct0.x0), mathATan2(ct0.y1, ct0.x1), !clockwise);\n ctx.arc(cx, cy, innerRadius, mathATan2(ct0.cy + ct0.y1, ct0.cx + ct0.x1), mathATan2(ct1.cy + ct1.y1, ct1.cx + ct1.x1), clockwise);\n crStart > 0 && ctx.arc(cx + ct1.cx, cy + ct1.cy, crStart, mathATan2(ct1.y1, ct1.x1), mathATan2(ct1.y0, ct1.x0), !clockwise);\n }\n }\n else {\n ctx.lineTo(cx + xire, cy + yire);\n ctx.arc(cx, cy, innerRadius, endAngle, startAngle, clockwise);\n }\n }\n ctx.closePath();\n}\n","import { min as v2Min, max as v2Max, scale as v2Scale, distance as v2Distance, add as v2Add, clone as v2Clone, sub as v2Sub } from '../../core/vector.js';\nexport default function smoothBezier(points, smooth, isLoop, constraint) {\n var cps = [];\n var v = [];\n var v1 = [];\n var v2 = [];\n var prevPoint;\n var nextPoint;\n var min;\n var max;\n if (constraint) {\n min = [Infinity, Infinity];\n max = [-Infinity, -Infinity];\n for (var i = 0, len = points.length; i < len; i++) {\n v2Min(min, min, points[i]);\n v2Max(max, max, points[i]);\n }\n v2Min(min, min, constraint[0]);\n v2Max(max, max, constraint[1]);\n }\n for (var i = 0, len = points.length; i < len; i++) {\n var point = points[i];\n if (isLoop) {\n prevPoint = points[i ? i - 1 : len - 1];\n nextPoint = points[(i + 1) % len];\n }\n else {\n if (i === 0 || i === len - 1) {\n cps.push(v2Clone(points[i]));\n continue;\n }\n else {\n prevPoint = points[i - 1];\n nextPoint = points[i + 1];\n }\n }\n v2Sub(v, nextPoint, prevPoint);\n v2Scale(v, v, smooth);\n var d0 = v2Distance(point, prevPoint);\n var d1 = v2Distance(point, nextPoint);\n var sum = d0 + d1;\n if (sum !== 0) {\n d0 /= sum;\n d1 /= sum;\n }\n v2Scale(v1, v, -d0);\n v2Scale(v2, v, d1);\n var cp0 = v2Add([], point, v1);\n var cp1 = v2Add([], point, v2);\n if (constraint) {\n v2Max(cp0, cp0, min);\n v2Min(cp0, cp0, max);\n v2Max(cp1, cp1, min);\n v2Min(cp1, cp1, max);\n }\n cps.push(cp0);\n cps.push(cp1);\n }\n if (isLoop) {\n cps.push(cps.shift());\n }\n return cps;\n}\n","var round = Math.round;\nexport function subPixelOptimizeLine(outputShape, inputShape, style) {\n if (!inputShape) {\n return;\n }\n var x1 = inputShape.x1;\n var x2 = inputShape.x2;\n var y1 = inputShape.y1;\n var y2 = inputShape.y2;\n outputShape.x1 = x1;\n outputShape.x2 = x2;\n outputShape.y1 = y1;\n outputShape.y2 = y2;\n var lineWidth = style && style.lineWidth;\n if (!lineWidth) {\n return outputShape;\n }\n if (round(x1 * 2) === round(x2 * 2)) {\n outputShape.x1 = outputShape.x2 = subPixelOptimize(x1, lineWidth, true);\n }\n if (round(y1 * 2) === round(y2 * 2)) {\n outputShape.y1 = outputShape.y2 = subPixelOptimize(y1, lineWidth, true);\n }\n return outputShape;\n}\nexport function subPixelOptimizeRect(outputShape, inputShape, style) {\n if (!inputShape) {\n return;\n }\n var originX = inputShape.x;\n var originY = inputShape.y;\n var originWidth = inputShape.width;\n var originHeight = inputShape.height;\n outputShape.x = originX;\n outputShape.y = originY;\n outputShape.width = originWidth;\n outputShape.height = originHeight;\n var lineWidth = style && style.lineWidth;\n if (!lineWidth) {\n return outputShape;\n }\n outputShape.x = subPixelOptimize(originX, lineWidth, true);\n outputShape.y = subPixelOptimize(originY, lineWidth, true);\n outputShape.width = Math.max(subPixelOptimize(originX + originWidth, lineWidth, false) - outputShape.x, originWidth === 0 ? 0 : 1);\n outputShape.height = Math.max(subPixelOptimize(originY + originHeight, lineWidth, false) - outputShape.y, originHeight === 0 ? 0 : 1);\n return outputShape;\n}\nexport function subPixelOptimize(position, lineWidth, positiveOrNegative) {\n if (!lineWidth) {\n return position;\n }\n var doubledPosition = round(position * 2);\n return (doubledPosition + round(lineWidth)) % 2 === 0\n ? doubledPosition / 2\n : (doubledPosition + (positiveOrNegative ? 1 : -1)) / 2;\n}\n","import { __extends } from \"tslib\";\nimport Path from '../Path.js';\nvar ArcShape = (function () {\n function ArcShape() {\n this.cx = 0;\n this.cy = 0;\n this.r = 0;\n this.startAngle = 0;\n this.endAngle = Math.PI * 2;\n this.clockwise = true;\n }\n return ArcShape;\n}());\nexport { ArcShape };\nvar Arc = (function (_super) {\n __extends(Arc, _super);\n function Arc(opts) {\n return _super.call(this, opts) || this;\n }\n Arc.prototype.getDefaultStyle = function () {\n return {\n stroke: '#000',\n fill: null\n };\n };\n Arc.prototype.getDefaultShape = function () {\n return new ArcShape();\n };\n Arc.prototype.buildPath = function (ctx, shape) {\n var x = shape.cx;\n var y = shape.cy;\n var r = Math.max(shape.r, 0);\n var startAngle = shape.startAngle;\n var endAngle = shape.endAngle;\n var clockwise = shape.clockwise;\n var unitX = Math.cos(startAngle);\n var unitY = Math.sin(startAngle);\n ctx.moveTo(unitX * r + x, unitY * r + y);\n ctx.arc(x, y, r, startAngle, endAngle, !clockwise);\n };\n return Arc;\n}(Path));\nArc.prototype.type = 'arc';\nexport default Arc;\n","import { __extends } from \"tslib\";\nimport Path from '../Path.js';\nimport * as vec2 from '../../core/vector.js';\nimport { quadraticSubdivide, cubicSubdivide, quadraticAt, cubicAt, quadraticDerivativeAt, cubicDerivativeAt } from '../../core/curve.js';\nvar out = [];\nvar BezierCurveShape = (function () {\n function BezierCurveShape() {\n this.x1 = 0;\n this.y1 = 0;\n this.x2 = 0;\n this.y2 = 0;\n this.cpx1 = 0;\n this.cpy1 = 0;\n this.percent = 1;\n }\n return BezierCurveShape;\n}());\nexport { BezierCurveShape };\nfunction someVectorAt(shape, t, isTangent) {\n var cpx2 = shape.cpx2;\n var cpy2 = shape.cpy2;\n if (cpx2 != null || cpy2 != null) {\n return [\n (isTangent ? cubicDerivativeAt : cubicAt)(shape.x1, shape.cpx1, shape.cpx2, shape.x2, t),\n (isTangent ? cubicDerivativeAt : cubicAt)(shape.y1, shape.cpy1, shape.cpy2, shape.y2, t)\n ];\n }\n else {\n return [\n (isTangent ? quadraticDerivativeAt : quadraticAt)(shape.x1, shape.cpx1, shape.x2, t),\n (isTangent ? quadraticDerivativeAt : quadraticAt)(shape.y1, shape.cpy1, shape.y2, t)\n ];\n }\n}\nvar BezierCurve = (function (_super) {\n __extends(BezierCurve, _super);\n function BezierCurve(opts) {\n return _super.call(this, opts) || this;\n }\n BezierCurve.prototype.getDefaultStyle = function () {\n return {\n stroke: '#000',\n fill: null\n };\n };\n BezierCurve.prototype.getDefaultShape = function () {\n return new BezierCurveShape();\n };\n BezierCurve.prototype.buildPath = function (ctx, shape) {\n var x1 = shape.x1;\n var y1 = shape.y1;\n var x2 = shape.x2;\n var y2 = shape.y2;\n var cpx1 = shape.cpx1;\n var cpy1 = shape.cpy1;\n var cpx2 = shape.cpx2;\n var cpy2 = shape.cpy2;\n var percent = shape.percent;\n if (percent === 0) {\n return;\n }\n ctx.moveTo(x1, y1);\n if (cpx2 == null || cpy2 == null) {\n if (percent < 1) {\n quadraticSubdivide(x1, cpx1, x2, percent, out);\n cpx1 = out[1];\n x2 = out[2];\n quadraticSubdivide(y1, cpy1, y2, percent, out);\n cpy1 = out[1];\n y2 = out[2];\n }\n ctx.quadraticCurveTo(cpx1, cpy1, x2, y2);\n }\n else {\n if (percent < 1) {\n cubicSubdivide(x1, cpx1, cpx2, x2, percent, out);\n cpx1 = out[1];\n cpx2 = out[2];\n x2 = out[3];\n cubicSubdivide(y1, cpy1, cpy2, y2, percent, out);\n cpy1 = out[1];\n cpy2 = out[2];\n y2 = out[3];\n }\n ctx.bezierCurveTo(cpx1, cpy1, cpx2, cpy2, x2, y2);\n }\n };\n BezierCurve.prototype.pointAt = function (t) {\n return someVectorAt(this.shape, t, false);\n };\n BezierCurve.prototype.tangentAt = function (t) {\n var p = someVectorAt(this.shape, t, true);\n return vec2.normalize(p, p);\n };\n return BezierCurve;\n}(Path));\n;\nBezierCurve.prototype.type = 'bezier-curve';\nexport default BezierCurve;\n","import { __extends } from \"tslib\";\nimport Path from '../Path.js';\nvar CircleShape = (function () {\n function CircleShape() {\n this.cx = 0;\n this.cy = 0;\n this.r = 0;\n }\n return CircleShape;\n}());\nexport { CircleShape };\nvar Circle = (function (_super) {\n __extends(Circle, _super);\n function Circle(opts) {\n return _super.call(this, opts) || this;\n }\n Circle.prototype.getDefaultShape = function () {\n return new CircleShape();\n };\n Circle.prototype.buildPath = function (ctx, shape) {\n ctx.moveTo(shape.cx + shape.r, shape.cy);\n ctx.arc(shape.cx, shape.cy, shape.r, 0, Math.PI * 2);\n };\n return Circle;\n}(Path));\n;\nCircle.prototype.type = 'circle';\nexport default Circle;\n","import { __extends } from \"tslib\";\nimport Path from '../Path.js';\nvar EllipseShape = (function () {\n function EllipseShape() {\n this.cx = 0;\n this.cy = 0;\n this.rx = 0;\n this.ry = 0;\n }\n return EllipseShape;\n}());\nexport { EllipseShape };\nvar Ellipse = (function (_super) {\n __extends(Ellipse, _super);\n function Ellipse(opts) {\n return _super.call(this, opts) || this;\n }\n Ellipse.prototype.getDefaultShape = function () {\n return new EllipseShape();\n };\n Ellipse.prototype.buildPath = function (ctx, shape) {\n var k = 0.5522848;\n var x = shape.cx;\n var y = shape.cy;\n var a = shape.rx;\n var b = shape.ry;\n var ox = a * k;\n var oy = b * k;\n ctx.moveTo(x - a, y);\n ctx.bezierCurveTo(x - a, y - oy, x - ox, y - b, x, y - b);\n ctx.bezierCurveTo(x + ox, y - b, x + a, y - oy, x + a, y);\n ctx.bezierCurveTo(x + a, y + oy, x + ox, y + b, x, y + b);\n ctx.bezierCurveTo(x - ox, y + b, x - a, y + oy, x - a, y);\n ctx.closePath();\n };\n return Ellipse;\n}(Path));\nEllipse.prototype.type = 'ellipse';\nexport default Ellipse;\n","import { __extends } from \"tslib\";\nimport Path from '../Path.js';\nimport { subPixelOptimizeLine } from '../helper/subPixelOptimize.js';\nvar subPixelOptimizeOutputShape = {};\nvar LineShape = (function () {\n function LineShape() {\n this.x1 = 0;\n this.y1 = 0;\n this.x2 = 0;\n this.y2 = 0;\n this.percent = 1;\n }\n return LineShape;\n}());\nexport { LineShape };\nvar Line = (function (_super) {\n __extends(Line, _super);\n function Line(opts) {\n return _super.call(this, opts) || this;\n }\n Line.prototype.getDefaultStyle = function () {\n return {\n stroke: '#000',\n fill: null\n };\n };\n Line.prototype.getDefaultShape = function () {\n return new LineShape();\n };\n Line.prototype.buildPath = function (ctx, shape) {\n var x1;\n var y1;\n var x2;\n var y2;\n if (this.subPixelOptimize) {\n var optimizedShape = subPixelOptimizeLine(subPixelOptimizeOutputShape, shape, this.style);\n x1 = optimizedShape.x1;\n y1 = optimizedShape.y1;\n x2 = optimizedShape.x2;\n y2 = optimizedShape.y2;\n }\n else {\n x1 = shape.x1;\n y1 = shape.y1;\n x2 = shape.x2;\n y2 = shape.y2;\n }\n var percent = shape.percent;\n if (percent === 0) {\n return;\n }\n ctx.moveTo(x1, y1);\n if (percent < 1) {\n x2 = x1 * (1 - percent) + x2 * percent;\n y2 = y1 * (1 - percent) + y2 * percent;\n }\n ctx.lineTo(x2, y2);\n };\n Line.prototype.pointAt = function (p) {\n var shape = this.shape;\n return [\n shape.x1 * (1 - p) + shape.x2 * p,\n shape.y1 * (1 - p) + shape.y2 * p\n ];\n };\n return Line;\n}(Path));\nLine.prototype.type = 'line';\nexport default Line;\n","import { __extends } from \"tslib\";\nimport Path from '../Path.js';\nimport * as polyHelper from '../helper/poly.js';\nvar PolygonShape = (function () {\n function PolygonShape() {\n this.points = null;\n this.smooth = 0;\n this.smoothConstraint = null;\n }\n return PolygonShape;\n}());\nexport { PolygonShape };\nvar Polygon = (function (_super) {\n __extends(Polygon, _super);\n function Polygon(opts) {\n return _super.call(this, opts) || this;\n }\n Polygon.prototype.getDefaultShape = function () {\n return new PolygonShape();\n };\n Polygon.prototype.buildPath = function (ctx, shape) {\n polyHelper.buildPath(ctx, shape, true);\n };\n return Polygon;\n}(Path));\n;\nPolygon.prototype.type = 'polygon';\nexport default Polygon;\n","import { __extends } from \"tslib\";\nimport Path from '../Path.js';\nimport * as polyHelper from '../helper/poly.js';\nvar PolylineShape = (function () {\n function PolylineShape() {\n this.points = null;\n this.percent = 1;\n this.smooth = 0;\n this.smoothConstraint = null;\n }\n return PolylineShape;\n}());\nexport { PolylineShape };\nvar Polyline = (function (_super) {\n __extends(Polyline, _super);\n function Polyline(opts) {\n return _super.call(this, opts) || this;\n }\n Polyline.prototype.getDefaultStyle = function () {\n return {\n stroke: '#000',\n fill: null\n };\n };\n Polyline.prototype.getDefaultShape = function () {\n return new PolylineShape();\n };\n Polyline.prototype.buildPath = function (ctx, shape) {\n polyHelper.buildPath(ctx, shape, false);\n };\n return Polyline;\n}(Path));\nPolyline.prototype.type = 'polyline';\nexport default Polyline;\n","import { __extends } from \"tslib\";\nimport Path from '../Path.js';\nimport * as roundRectHelper from '../helper/roundRect.js';\nimport { subPixelOptimizeRect } from '../helper/subPixelOptimize.js';\nvar RectShape = (function () {\n function RectShape() {\n this.x = 0;\n this.y = 0;\n this.width = 0;\n this.height = 0;\n }\n return RectShape;\n}());\nexport { RectShape };\nvar subPixelOptimizeOutputShape = {};\nvar Rect = (function (_super) {\n __extends(Rect, _super);\n function Rect(opts) {\n return _super.call(this, opts) || this;\n }\n Rect.prototype.getDefaultShape = function () {\n return new RectShape();\n };\n Rect.prototype.buildPath = function (ctx, shape) {\n var x;\n var y;\n var width;\n var height;\n if (this.subPixelOptimize) {\n var optimizedShape = subPixelOptimizeRect(subPixelOptimizeOutputShape, shape, this.style);\n x = optimizedShape.x;\n y = optimizedShape.y;\n width = optimizedShape.width;\n height = optimizedShape.height;\n optimizedShape.r = shape.r;\n shape = optimizedShape;\n }\n else {\n x = shape.x;\n y = shape.y;\n width = shape.width;\n height = shape.height;\n }\n if (!shape.r) {\n ctx.rect(x, y, width, height);\n }\n else {\n roundRectHelper.buildPath(ctx, shape);\n }\n };\n Rect.prototype.isZeroArea = function () {\n return !this.shape.width || !this.shape.height;\n };\n return Rect;\n}(Path));\nRect.prototype.type = 'rect';\nexport default Rect;\n","import { __extends } from \"tslib\";\nimport Path from '../Path.js';\nvar RingShape = (function () {\n function RingShape() {\n this.cx = 0;\n this.cy = 0;\n this.r = 0;\n this.r0 = 0;\n }\n return RingShape;\n}());\nexport { RingShape };\nvar Ring = (function (_super) {\n __extends(Ring, _super);\n function Ring(opts) {\n return _super.call(this, opts) || this;\n }\n Ring.prototype.getDefaultShape = function () {\n return new RingShape();\n };\n Ring.prototype.buildPath = function (ctx, shape) {\n var x = shape.cx;\n var y = shape.cy;\n var PI2 = Math.PI * 2;\n ctx.moveTo(x + shape.r, y);\n ctx.arc(x, y, shape.r, 0, PI2, false);\n ctx.moveTo(x + shape.r0, y);\n ctx.arc(x, y, shape.r0, 0, PI2, true);\n };\n return Ring;\n}(Path));\nRing.prototype.type = 'ring';\nexport default Ring;\n","import { __extends } from \"tslib\";\nimport Path from '../Path.js';\nimport * as roundSectorHelper from '../helper/roundSector.js';\nvar SectorShape = (function () {\n function SectorShape() {\n this.cx = 0;\n this.cy = 0;\n this.r0 = 0;\n this.r = 0;\n this.startAngle = 0;\n this.endAngle = Math.PI * 2;\n this.clockwise = true;\n this.cornerRadius = 0;\n }\n return SectorShape;\n}());\nexport { SectorShape };\nvar Sector = (function (_super) {\n __extends(Sector, _super);\n function Sector(opts) {\n return _super.call(this, opts) || this;\n }\n Sector.prototype.getDefaultShape = function () {\n return new SectorShape();\n };\n Sector.prototype.buildPath = function (ctx, shape) {\n roundSectorHelper.buildPath(ctx, shape);\n };\n Sector.prototype.isZeroArea = function () {\n return this.shape.startAngle === this.shape.endAngle\n || this.shape.r === this.shape.r0;\n };\n return Sector;\n}(Path));\nSector.prototype.type = 'sector';\nexport default Sector;\n","var Param = (function () {\n function Param(target, e) {\n this.target = target;\n this.topTarget = e && e.topTarget;\n }\n return Param;\n}());\nvar Draggable = (function () {\n function Draggable(handler) {\n this.handler = handler;\n handler.on('mousedown', this._dragStart, this);\n handler.on('mousemove', this._drag, this);\n handler.on('mouseup', this._dragEnd, this);\n }\n Draggable.prototype._dragStart = function (e) {\n var draggingTarget = e.target;\n while (draggingTarget && !draggingTarget.draggable) {\n draggingTarget = draggingTarget.parent || draggingTarget.__hostTarget;\n }\n if (draggingTarget) {\n this._draggingTarget = draggingTarget;\n draggingTarget.dragging = true;\n this._x = e.offsetX;\n this._y = e.offsetY;\n this.handler.dispatchToElement(new Param(draggingTarget, e), 'dragstart', e.event);\n }\n };\n Draggable.prototype._drag = function (e) {\n var draggingTarget = this._draggingTarget;\n if (draggingTarget) {\n var x = e.offsetX;\n var y = e.offsetY;\n var dx = x - this._x;\n var dy = y - this._y;\n this._x = x;\n this._y = y;\n draggingTarget.drift(dx, dy, e);\n this.handler.dispatchToElement(new Param(draggingTarget, e), 'drag', e.event);\n var dropTarget = this.handler.findHover(x, y, draggingTarget).target;\n var lastDropTarget = this._dropTarget;\n this._dropTarget = dropTarget;\n if (draggingTarget !== dropTarget) {\n if (lastDropTarget && dropTarget !== lastDropTarget) {\n this.handler.dispatchToElement(new Param(lastDropTarget, e), 'dragleave', e.event);\n }\n if (dropTarget && dropTarget !== lastDropTarget) {\n this.handler.dispatchToElement(new Param(dropTarget, e), 'dragenter', e.event);\n }\n }\n }\n };\n Draggable.prototype._dragEnd = function (e) {\n var draggingTarget = this._draggingTarget;\n if (draggingTarget) {\n draggingTarget.dragging = false;\n }\n this.handler.dispatchToElement(new Param(draggingTarget, e), 'dragend', e.event);\n if (this._dropTarget) {\n this.handler.dispatchToElement(new Param(this._dropTarget, e), 'drop', e.event);\n }\n this._draggingTarget = null;\n this._dropTarget = null;\n };\n return Draggable;\n}());\nexport default Draggable;\n","import { brush, setClipPath, setGradient, setPattern } from './graphic.js';\nimport { createElement, createVNode, vNodeToString, getCssString, createBrushScope, createSVGVNode } from './core.js';\nimport { normalizeColor, encodeBase64, isGradient, isPattern } from './helper.js';\nimport { extend, keys, logError, map, noop, retrieve2 } from '../core/util.js';\nimport patch, { updateAttrs } from './patch.js';\nimport { getSize } from '../canvas/helper.js';\nvar svgId = 0;\nvar SVGPainter = (function () {\n function SVGPainter(root, storage, opts) {\n this.type = 'svg';\n this.refreshHover = createMethodNotSupport('refreshHover');\n this.configLayer = createMethodNotSupport('configLayer');\n this.storage = storage;\n this._opts = opts = extend({}, opts);\n this.root = root;\n this._id = 'zr' + svgId++;\n this._oldVNode = createSVGVNode(opts.width, opts.height);\n if (root && !opts.ssr) {\n var viewport = this._viewport = document.createElement('div');\n viewport.style.cssText = 'position:relative;overflow:hidden';\n var svgDom = this._svgDom = this._oldVNode.elm = createElement('svg');\n updateAttrs(null, this._oldVNode);\n viewport.appendChild(svgDom);\n root.appendChild(viewport);\n }\n this.resize(opts.width, opts.height);\n }\n SVGPainter.prototype.getType = function () {\n return this.type;\n };\n SVGPainter.prototype.getViewportRoot = function () {\n return this._viewport;\n };\n SVGPainter.prototype.getViewportRootOffset = function () {\n var viewportRoot = this.getViewportRoot();\n if (viewportRoot) {\n return {\n offsetLeft: viewportRoot.offsetLeft || 0,\n offsetTop: viewportRoot.offsetTop || 0\n };\n }\n };\n SVGPainter.prototype.getSvgDom = function () {\n return this._svgDom;\n };\n SVGPainter.prototype.refresh = function () {\n if (this.root) {\n var vnode = this.renderToVNode({\n willUpdate: true\n });\n vnode.attrs.style = 'position:absolute;left:0;top:0;user-select:none';\n patch(this._oldVNode, vnode);\n this._oldVNode = vnode;\n }\n };\n SVGPainter.prototype.renderOneToVNode = function (el) {\n return brush(el, createBrushScope(this._id));\n };\n SVGPainter.prototype.renderToVNode = function (opts) {\n opts = opts || {};\n var list = this.storage.getDisplayList(true);\n var width = this._width;\n var height = this._height;\n var scope = createBrushScope(this._id);\n scope.animation = opts.animation;\n scope.willUpdate = opts.willUpdate;\n scope.compress = opts.compress;\n var children = [];\n var bgVNode = this._bgVNode = createBackgroundVNode(width, height, this._backgroundColor, scope);\n bgVNode && children.push(bgVNode);\n var mainVNode = !opts.compress\n ? (this._mainVNode = createVNode('g', 'main', {}, [])) : null;\n this._paintList(list, scope, mainVNode ? mainVNode.children : children);\n mainVNode && children.push(mainVNode);\n var defs = map(keys(scope.defs), function (id) { return scope.defs[id]; });\n if (defs.length) {\n children.push(createVNode('defs', 'defs', {}, defs));\n }\n if (opts.animation) {\n var animationCssStr = getCssString(scope.cssNodes, scope.cssAnims, { newline: true });\n if (animationCssStr) {\n var styleNode = createVNode('style', 'stl', {}, [], animationCssStr);\n children.push(styleNode);\n }\n }\n return createSVGVNode(width, height, children, opts.useViewBox);\n };\n SVGPainter.prototype.renderToString = function (opts) {\n opts = opts || {};\n return vNodeToString(this.renderToVNode({\n animation: retrieve2(opts.cssAnimation, true),\n willUpdate: false,\n compress: true,\n useViewBox: retrieve2(opts.useViewBox, true)\n }), { newline: true });\n };\n SVGPainter.prototype.setBackgroundColor = function (backgroundColor) {\n this._backgroundColor = backgroundColor;\n };\n SVGPainter.prototype.getSvgRoot = function () {\n return this._mainVNode && this._mainVNode.elm;\n };\n SVGPainter.prototype._paintList = function (list, scope, out) {\n var listLen = list.length;\n var clipPathsGroupsStack = [];\n var clipPathsGroupsStackDepth = 0;\n var currentClipPathGroup;\n var prevClipPaths;\n var clipGroupNodeIdx = 0;\n for (var i = 0; i < listLen; i++) {\n var displayable = list[i];\n if (!displayable.invisible) {\n var clipPaths = displayable.__clipPaths;\n var len = clipPaths && clipPaths.length || 0;\n var prevLen = prevClipPaths && prevClipPaths.length || 0;\n var lca = void 0;\n for (lca = Math.max(len - 1, prevLen - 1); lca >= 0; lca--) {\n if (clipPaths && prevClipPaths\n && clipPaths[lca] === prevClipPaths[lca]) {\n break;\n }\n }\n for (var i_1 = prevLen - 1; i_1 > lca; i_1--) {\n clipPathsGroupsStackDepth--;\n currentClipPathGroup = clipPathsGroupsStack[clipPathsGroupsStackDepth - 1];\n }\n for (var i_2 = lca + 1; i_2 < len; i_2++) {\n var groupAttrs = {};\n setClipPath(clipPaths[i_2], groupAttrs, scope);\n var g = createVNode('g', 'clip-g-' + clipGroupNodeIdx++, groupAttrs, []);\n (currentClipPathGroup ? currentClipPathGroup.children : out).push(g);\n clipPathsGroupsStack[clipPathsGroupsStackDepth++] = g;\n currentClipPathGroup = g;\n }\n prevClipPaths = clipPaths;\n var ret = brush(displayable, scope);\n if (ret) {\n (currentClipPathGroup ? currentClipPathGroup.children : out).push(ret);\n }\n }\n }\n };\n SVGPainter.prototype.resize = function (width, height) {\n var opts = this._opts;\n var root = this.root;\n var viewport = this._viewport;\n width != null && (opts.width = width);\n height != null && (opts.height = height);\n if (root && viewport) {\n viewport.style.display = 'none';\n width = getSize(root, 0, opts);\n height = getSize(root, 1, opts);\n viewport.style.display = '';\n }\n if (this._width !== width || this._height !== height) {\n this._width = width;\n this._height = height;\n if (viewport) {\n var viewportStyle = viewport.style;\n viewportStyle.width = width + 'px';\n viewportStyle.height = height + 'px';\n }\n if (!isPattern(this._backgroundColor)) {\n var svgDom = this._svgDom;\n if (svgDom) {\n svgDom.setAttribute('width', width);\n svgDom.setAttribute('height', height);\n }\n var bgEl = this._bgVNode && this._bgVNode.elm;\n if (bgEl) {\n bgEl.setAttribute('width', width);\n bgEl.setAttribute('height', height);\n }\n }\n else {\n this.refresh();\n }\n }\n };\n SVGPainter.prototype.getWidth = function () {\n return this._width;\n };\n SVGPainter.prototype.getHeight = function () {\n return this._height;\n };\n SVGPainter.prototype.dispose = function () {\n if (this.root) {\n this.root.innerHTML = '';\n }\n this._svgDom =\n this._viewport =\n this.storage =\n this._oldVNode =\n this._bgVNode =\n this._mainVNode = null;\n };\n SVGPainter.prototype.clear = function () {\n if (this._svgDom) {\n this._svgDom.innerHTML = null;\n }\n this._oldVNode = null;\n };\n SVGPainter.prototype.toDataURL = function (base64) {\n var str = this.renderToString();\n var prefix = 'data:image/svg+xml;';\n if (base64) {\n str = encodeBase64(str);\n return str && prefix + 'base64,' + str;\n }\n return prefix + 'charset=UTF-8,' + encodeURIComponent(str);\n };\n return SVGPainter;\n}());\nfunction createMethodNotSupport(method) {\n return function () {\n if (process.env.NODE_ENV !== 'production') {\n logError('In SVG mode painter not support method \"' + method + '\"');\n }\n };\n}\nfunction createBackgroundVNode(width, height, backgroundColor, scope) {\n var bgVNode;\n if (backgroundColor && backgroundColor !== 'none') {\n bgVNode = createVNode('rect', 'bg', {\n width: width,\n height: height,\n x: '0',\n y: '0',\n id: '0'\n });\n if (isGradient(backgroundColor)) {\n setGradient({ fill: backgroundColor }, bgVNode.attrs, 'fill', scope);\n }\n else if (isPattern(backgroundColor)) {\n setPattern({\n style: {\n fill: backgroundColor\n },\n dirty: noop,\n getBoundingRect: function () { return ({ width: width, height: height }); }\n }, bgVNode.attrs, 'fill', scope);\n }\n else {\n var _a = normalizeColor(backgroundColor), color = _a.color, opacity = _a.opacity;\n bgVNode.attrs.fill = color;\n opacity < 1 && (bgVNode.attrs['fill-opacity'] = opacity);\n }\n }\n return bgVNode;\n}\nexport default SVGPainter;\n","import { isAroundZero } from './helper.js';\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar PI = Math.PI;\nvar PI2 = Math.PI * 2;\nvar degree = 180 / PI;\nvar SVGPathRebuilder = (function () {\n function SVGPathRebuilder() {\n }\n SVGPathRebuilder.prototype.reset = function (precision) {\n this._start = true;\n this._d = [];\n this._str = '';\n this._p = Math.pow(10, precision || 4);\n };\n SVGPathRebuilder.prototype.moveTo = function (x, y) {\n this._add('M', x, y);\n };\n SVGPathRebuilder.prototype.lineTo = function (x, y) {\n this._add('L', x, y);\n };\n SVGPathRebuilder.prototype.bezierCurveTo = function (x, y, x2, y2, x3, y3) {\n this._add('C', x, y, x2, y2, x3, y3);\n };\n SVGPathRebuilder.prototype.quadraticCurveTo = function (x, y, x2, y2) {\n this._add('Q', x, y, x2, y2);\n };\n SVGPathRebuilder.prototype.arc = function (cx, cy, r, startAngle, endAngle, anticlockwise) {\n this.ellipse(cx, cy, r, r, 0, startAngle, endAngle, anticlockwise);\n };\n SVGPathRebuilder.prototype.ellipse = function (cx, cy, rx, ry, psi, startAngle, endAngle, anticlockwise) {\n var dTheta = endAngle - startAngle;\n var clockwise = !anticlockwise;\n var dThetaPositive = Math.abs(dTheta);\n var isCircle = isAroundZero(dThetaPositive - PI2)\n || (clockwise ? dTheta >= PI2 : -dTheta >= PI2);\n var unifiedTheta = dTheta > 0 ? dTheta % PI2 : (dTheta % PI2 + PI2);\n var large = false;\n if (isCircle) {\n large = true;\n }\n else if (isAroundZero(dThetaPositive)) {\n large = false;\n }\n else {\n large = (unifiedTheta >= PI) === !!clockwise;\n }\n var x0 = cx + rx * mathCos(startAngle);\n var y0 = cy + ry * mathSin(startAngle);\n if (this._start) {\n this._add('M', x0, y0);\n }\n var xRot = Math.round(psi * degree);\n if (isCircle) {\n var p = 1 / this._p;\n var dTheta_1 = (clockwise ? 1 : -1) * (PI2 - p);\n this._add('A', rx, ry, xRot, 1, +clockwise, cx + rx * mathCos(startAngle + dTheta_1), cy + ry * mathSin(startAngle + dTheta_1));\n if (p > 1e-2) {\n this._add('A', rx, ry, xRot, 0, +clockwise, x0, y0);\n }\n }\n else {\n var x = cx + rx * mathCos(endAngle);\n var y = cy + ry * mathSin(endAngle);\n this._add('A', rx, ry, xRot, +large, +clockwise, x, y);\n }\n };\n SVGPathRebuilder.prototype.rect = function (x, y, w, h) {\n this._add('M', x, y);\n this._add('l', w, 0);\n this._add('l', 0, h);\n this._add('l', -w, 0);\n this._add('Z');\n };\n SVGPathRebuilder.prototype.closePath = function () {\n if (this._d.length > 0) {\n this._add('Z');\n }\n };\n SVGPathRebuilder.prototype._add = function (cmd, a, b, c, d, e, f, g, h) {\n var vals = [];\n var p = this._p;\n for (var i = 1; i < arguments.length; i++) {\n var val = arguments[i];\n if (isNaN(val)) {\n this._invalid = true;\n return;\n }\n vals.push(Math.round(val * p) / p);\n }\n this._d.push(cmd + vals.join(' '));\n this._start = cmd === 'Z';\n };\n SVGPathRebuilder.prototype.generateStr = function () {\n this._str = this._invalid ? '' : this._d.join('');\n this._d = [];\n };\n SVGPathRebuilder.prototype.getStr = function () {\n return this._str;\n };\n return SVGPathRebuilder;\n}());\nexport default SVGPathRebuilder;\n","import { keys, map } from '../core/util.js';\nimport { encodeHTML } from '../core/dom.js';\nexport var SVGNS = 'http://www.w3.org/2000/svg';\nexport var XLINKNS = 'http://www.w3.org/1999/xlink';\nexport var XMLNS = 'http://www.w3.org/2000/xmlns/';\nexport var XML_NAMESPACE = 'http://www.w3.org/XML/1998/namespace';\nexport function createElement(name) {\n return document.createElementNS(SVGNS, name);\n}\n;\nexport function createVNode(tag, key, attrs, children, text) {\n return {\n tag: tag,\n attrs: attrs || {},\n children: children,\n text: text,\n key: key\n };\n}\nfunction createElementOpen(name, attrs) {\n var attrsStr = [];\n if (attrs) {\n for (var key in attrs) {\n var val = attrs[key];\n var part = key;\n if (val === false) {\n continue;\n }\n else if (val !== true && val != null) {\n part += \"=\\\"\" + val + \"\\\"\";\n }\n attrsStr.push(part);\n }\n }\n return \"<\" + name + \" \" + attrsStr.join(' ') + \">\";\n}\nfunction createElementClose(name) {\n return \"\";\n}\nexport function vNodeToString(el, opts) {\n opts = opts || {};\n var S = opts.newline ? '\\n' : '';\n function convertElToString(el) {\n var children = el.children, tag = el.tag, attrs = el.attrs, text = el.text;\n return createElementOpen(tag, attrs)\n + (tag !== 'style' ? encodeHTML(text) : text || '')\n + (children ? \"\" + S + map(children, function (child) { return convertElToString(child); }).join(S) + S : '')\n + createElementClose(tag);\n }\n return convertElToString(el);\n}\nexport function getCssString(selectorNodes, animationNodes, opts) {\n opts = opts || {};\n var S = opts.newline ? '\\n' : '';\n var bracketBegin = \" {\" + S;\n var bracketEnd = S + \"}\";\n var selectors = map(keys(selectorNodes), function (className) {\n return className + bracketBegin + map(keys(selectorNodes[className]), function (attrName) {\n return attrName + \":\" + selectorNodes[className][attrName] + \";\";\n }).join(S) + bracketEnd;\n }).join(S);\n var animations = map(keys(animationNodes), function (animationName) {\n return \"@keyframes \" + animationName + bracketBegin + map(keys(animationNodes[animationName]), function (percent) {\n return percent + bracketBegin + map(keys(animationNodes[animationName][percent]), function (attrName) {\n var val = animationNodes[animationName][percent][attrName];\n if (attrName === 'd') {\n val = \"path(\\\"\" + val + \"\\\")\";\n }\n return attrName + \":\" + val + \";\";\n }).join(S) + bracketEnd;\n }).join(S) + bracketEnd;\n }).join(S);\n if (!selectors && !animations) {\n return '';\n }\n return [''].join(S);\n}\nexport function createBrushScope(zrId) {\n return {\n zrId: zrId,\n shadowCache: {},\n patternCache: {},\n gradientCache: {},\n clipPathCache: {},\n defs: {},\n cssNodes: {},\n cssAnims: {},\n cssClassIdx: 0,\n cssAnimIdx: 0,\n shadowIdx: 0,\n gradientIdx: 0,\n patternIdx: 0,\n clipPathIdx: 0\n };\n}\nexport function createSVGVNode(width, height, children, useViewBox) {\n return createVNode('svg', 'root', {\n 'width': width,\n 'height': height,\n 'xmlns': SVGNS,\n 'xmlns:xlink': XLINKNS,\n 'version': '1.1',\n 'baseProfile': 'full',\n 'viewBox': useViewBox ? \"0 0 \" + width + \" \" + height : false\n }, children);\n}\n","import { copyTransform } from '../core/Transformable.js';\nimport { createBrushScope } from './core.js';\nimport SVGPathRebuilder from './SVGPathRebuilder.js';\nimport PathProxy from '../core/PathProxy.js';\nimport { getPathPrecision, getSRTTransformString } from './helper.js';\nimport { each, extend, filter, isNumber, isString, keys } from '../core/util.js';\nimport CompoundPath from '../graphic/CompoundPath.js';\nimport { createCubicEasingFunc } from '../animation/cubicEasing.js';\nexport var EASING_MAP = {\n cubicIn: '0.32,0,0.67,0',\n cubicOut: '0.33,1,0.68,1',\n cubicInOut: '0.65,0,0.35,1',\n quadraticIn: '0.11,0,0.5,0',\n quadraticOut: '0.5,1,0.89,1',\n quadraticInOut: '0.45,0,0.55,1',\n quarticIn: '0.5,0,0.75,0',\n quarticOut: '0.25,1,0.5,1',\n quarticInOut: '0.76,0,0.24,1',\n quinticIn: '0.64,0,0.78,0',\n quinticOut: '0.22,1,0.36,1',\n quinticInOut: '0.83,0,0.17,1',\n sinusoidalIn: '0.12,0,0.39,0',\n sinusoidalOut: '0.61,1,0.88,1',\n sinusoidalInOut: '0.37,0,0.63,1',\n exponentialIn: '0.7,0,0.84,0',\n exponentialOut: '0.16,1,0.3,1',\n exponentialInOut: '0.87,0,0.13,1',\n circularIn: '0.55,0,1,0.45',\n circularOut: '0,0.55,0.45,1',\n circularInOut: '0.85,0,0.15,1'\n};\nvar transformOriginKey = 'transform-origin';\nfunction buildPathString(el, kfShape, path) {\n var shape = extend({}, el.shape);\n extend(shape, kfShape);\n el.buildPath(path, shape);\n var svgPathBuilder = new SVGPathRebuilder();\n svgPathBuilder.reset(getPathPrecision(el));\n path.rebuildPath(svgPathBuilder, 1);\n svgPathBuilder.generateStr();\n return svgPathBuilder.getStr();\n}\nfunction setTransformOrigin(target, transform) {\n var originX = transform.originX, originY = transform.originY;\n if (originX || originY) {\n target[transformOriginKey] = originX + \"px \" + originY + \"px\";\n }\n}\nexport var ANIMATE_STYLE_MAP = {\n fill: 'fill',\n opacity: 'opacity',\n lineWidth: 'stroke-width',\n lineDashOffset: 'stroke-dashoffset'\n};\nfunction addAnimation(cssAnim, scope) {\n var animationName = scope.zrId + '-ani-' + scope.cssAnimIdx++;\n scope.cssAnims[animationName] = cssAnim;\n return animationName;\n}\nfunction createCompoundPathCSSAnimation(el, attrs, scope) {\n var paths = el.shape.paths;\n var composedAnim = {};\n var cssAnimationCfg;\n var cssAnimationName;\n each(paths, function (path) {\n var subScope = createBrushScope(scope.zrId);\n subScope.animation = true;\n createCSSAnimation(path, {}, subScope, true);\n var cssAnims = subScope.cssAnims;\n var cssNodes = subScope.cssNodes;\n var animNames = keys(cssAnims);\n var len = animNames.length;\n if (!len) {\n return;\n }\n cssAnimationName = animNames[len - 1];\n var lastAnim = cssAnims[cssAnimationName];\n for (var percent in lastAnim) {\n var kf = lastAnim[percent];\n composedAnim[percent] = composedAnim[percent] || { d: '' };\n composedAnim[percent].d += kf.d || '';\n }\n for (var className in cssNodes) {\n var val = cssNodes[className].animation;\n if (val.indexOf(cssAnimationName) >= 0) {\n cssAnimationCfg = val;\n }\n }\n });\n if (!cssAnimationCfg) {\n return;\n }\n attrs.d = false;\n var animationName = addAnimation(composedAnim, scope);\n return cssAnimationCfg.replace(cssAnimationName, animationName);\n}\nfunction getEasingFunc(easing) {\n return isString(easing)\n ? EASING_MAP[easing]\n ? \"cubic-bezier(\" + EASING_MAP[easing] + \")\"\n : createCubicEasingFunc(easing) ? easing : ''\n : '';\n}\nexport function createCSSAnimation(el, attrs, scope, onlyShape) {\n var animators = el.animators;\n var len = animators.length;\n var cssAnimations = [];\n if (el instanceof CompoundPath) {\n var animationCfg = createCompoundPathCSSAnimation(el, attrs, scope);\n if (animationCfg) {\n cssAnimations.push(animationCfg);\n }\n else if (!len) {\n return;\n }\n }\n else if (!len) {\n return;\n }\n var groupAnimators = {};\n for (var i = 0; i < len; i++) {\n var animator = animators[i];\n var cfgArr = [animator.getMaxTime() / 1000 + 's'];\n var easing = getEasingFunc(animator.getClip().easing);\n var delay = animator.getDelay();\n if (easing) {\n cfgArr.push(easing);\n }\n else {\n cfgArr.push('linear');\n }\n if (delay) {\n cfgArr.push(delay / 1000 + 's');\n }\n if (animator.getLoop()) {\n cfgArr.push('infinite');\n }\n var cfg = cfgArr.join(' ');\n groupAnimators[cfg] = groupAnimators[cfg] || [cfg, []];\n groupAnimators[cfg][1].push(animator);\n }\n function createSingleCSSAnimation(groupAnimator) {\n var animators = groupAnimator[1];\n var len = animators.length;\n var transformKfs = {};\n var shapeKfs = {};\n var finalKfs = {};\n var animationTimingFunctionAttrName = 'animation-timing-function';\n function saveAnimatorTrackToCssKfs(animator, cssKfs, toCssAttrName) {\n var tracks = animator.getTracks();\n var maxTime = animator.getMaxTime();\n for (var k = 0; k < tracks.length; k++) {\n var track = tracks[k];\n if (track.needsAnimate()) {\n var kfs = track.keyframes;\n var attrName = track.propName;\n toCssAttrName && (attrName = toCssAttrName(attrName));\n if (attrName) {\n for (var i = 0; i < kfs.length; i++) {\n var kf = kfs[i];\n var percent = Math.round(kf.time / maxTime * 100) + '%';\n var kfEasing = getEasingFunc(kf.easing);\n var rawValue = kf.rawValue;\n if (isString(rawValue) || isNumber(rawValue)) {\n cssKfs[percent] = cssKfs[percent] || {};\n cssKfs[percent][attrName] = kf.rawValue;\n if (kfEasing) {\n cssKfs[percent][animationTimingFunctionAttrName] = kfEasing;\n }\n }\n }\n }\n }\n }\n }\n for (var i = 0; i < len; i++) {\n var animator = animators[i];\n var targetProp = animator.targetName;\n if (!targetProp) {\n !onlyShape && saveAnimatorTrackToCssKfs(animator, transformKfs);\n }\n else if (targetProp === 'shape') {\n saveAnimatorTrackToCssKfs(animator, shapeKfs);\n }\n }\n for (var percent in transformKfs) {\n var transform = {};\n copyTransform(transform, el);\n extend(transform, transformKfs[percent]);\n var str = getSRTTransformString(transform);\n var timingFunction = transformKfs[percent][animationTimingFunctionAttrName];\n finalKfs[percent] = str ? {\n transform: str\n } : {};\n setTransformOrigin(finalKfs[percent], transform);\n if (timingFunction) {\n finalKfs[percent][animationTimingFunctionAttrName] = timingFunction;\n }\n }\n ;\n var path;\n var canAnimateShape = true;\n for (var percent in shapeKfs) {\n finalKfs[percent] = finalKfs[percent] || {};\n var isFirst = !path;\n var timingFunction = shapeKfs[percent][animationTimingFunctionAttrName];\n if (isFirst) {\n path = new PathProxy();\n }\n var len_1 = path.len();\n path.reset();\n finalKfs[percent].d = buildPathString(el, shapeKfs[percent], path);\n var newLen = path.len();\n if (!isFirst && len_1 !== newLen) {\n canAnimateShape = false;\n break;\n }\n if (timingFunction) {\n finalKfs[percent][animationTimingFunctionAttrName] = timingFunction;\n }\n }\n ;\n if (!canAnimateShape) {\n for (var percent in finalKfs) {\n delete finalKfs[percent].d;\n }\n }\n if (!onlyShape) {\n for (var i = 0; i < len; i++) {\n var animator = animators[i];\n var targetProp = animator.targetName;\n if (targetProp === 'style') {\n saveAnimatorTrackToCssKfs(animator, finalKfs, function (propName) { return ANIMATE_STYLE_MAP[propName]; });\n }\n }\n }\n var percents = keys(finalKfs);\n var allTransformOriginSame = true;\n var transformOrigin;\n for (var i = 1; i < percents.length; i++) {\n var p0 = percents[i - 1];\n var p1 = percents[i];\n if (finalKfs[p0][transformOriginKey] !== finalKfs[p1][transformOriginKey]) {\n allTransformOriginSame = false;\n break;\n }\n transformOrigin = finalKfs[p0][transformOriginKey];\n }\n if (allTransformOriginSame && transformOrigin) {\n for (var percent in finalKfs) {\n if (finalKfs[percent][transformOriginKey]) {\n delete finalKfs[percent][transformOriginKey];\n }\n }\n attrs[transformOriginKey] = transformOrigin;\n }\n if (filter(percents, function (percent) { return keys(finalKfs[percent]).length > 0; }).length) {\n var animationName = addAnimation(finalKfs, scope);\n return animationName + \" \" + groupAnimator[0] + \" both\";\n }\n }\n for (var key in groupAnimators) {\n var animationCfg = createSingleCSSAnimation(groupAnimators[key]);\n if (animationCfg) {\n cssAnimations.push(animationCfg);\n }\n }\n if (cssAnimations.length) {\n var className = scope.zrId + '-cls-' + scope.cssClassIdx++;\n scope.cssNodes['.' + className] = {\n animation: cssAnimations.join(',')\n };\n attrs[\"class\"] = className;\n }\n}\n","export function createTextNode(text) {\n return document.createTextNode(text);\n}\nexport function createComment(text) {\n return document.createComment(text);\n}\nexport function insertBefore(parentNode, newNode, referenceNode) {\n parentNode.insertBefore(newNode, referenceNode);\n}\nexport function removeChild(node, child) {\n node.removeChild(child);\n}\nexport function appendChild(node, child) {\n node.appendChild(child);\n}\nexport function parentNode(node) {\n return node.parentNode;\n}\nexport function nextSibling(node) {\n return node.nextSibling;\n}\nexport function tagName(elm) {\n return elm.tagName;\n}\nexport function setTextContent(node, text) {\n node.textContent = text;\n}\nexport function getTextContent(node) {\n return node.textContent;\n}\nexport function isElement(node) {\n return node.nodeType === 1;\n}\nexport function isText(node) {\n return node.nodeType === 3;\n}\nexport function isComment(node) {\n return node.nodeType === 8;\n}\n","import { adjustTextY, getIdURL, getMatrixStr, getPathPrecision, getShadowKey, getSRTTransformString, hasShadow, isAroundZero, isGradient, isImagePattern, isLinearGradient, isPattern, isRadialGradient, normalizeColor, round4, TEXT_ALIGN_TO_ANCHOR } from './helper.js';\nimport Path from '../graphic/Path.js';\nimport ZRImage from '../graphic/Image.js';\nimport { getLineHeight } from '../contain/text.js';\nimport TSpan from '../graphic/TSpan.js';\nimport SVGPathRebuilder from './SVGPathRebuilder.js';\nimport mapStyleToAttrs from './mapStyleToAttrs.js';\nimport { createVNode, vNodeToString } from './core.js';\nimport { assert, clone, isFunction, isString, logError, map, retrieve2 } from '../core/util.js';\nimport { createOrUpdateImage } from '../graphic/helper/image.js';\nimport { createCSSAnimation } from './cssAnimation.js';\nimport { hasSeparateFont, parseFontSize } from '../graphic/Text.js';\nimport { DEFAULT_FONT, DEFAULT_FONT_FAMILY } from '../core/platform.js';\nvar round = Math.round;\nfunction isImageLike(val) {\n return val && isString(val.src);\n}\nfunction isCanvasLike(val) {\n return val && isFunction(val.toDataURL);\n}\nfunction setStyleAttrs(attrs, style, el, scope) {\n mapStyleToAttrs(function (key, val) {\n var isFillStroke = key === 'fill' || key === 'stroke';\n if (isFillStroke && isGradient(val)) {\n setGradient(style, attrs, key, scope);\n }\n else if (isFillStroke && isPattern(val)) {\n setPattern(el, attrs, key, scope);\n }\n else {\n attrs[key] = val;\n }\n }, style, el, false);\n setShadow(el, attrs, scope);\n}\nfunction noRotateScale(m) {\n return isAroundZero(m[0] - 1)\n && isAroundZero(m[1])\n && isAroundZero(m[2])\n && isAroundZero(m[3] - 1);\n}\nfunction noTranslate(m) {\n return isAroundZero(m[4]) && isAroundZero(m[5]);\n}\nfunction setTransform(attrs, m, compress) {\n if (m && !(noTranslate(m) && noRotateScale(m))) {\n var mul = compress ? 10 : 1e4;\n attrs.transform = noRotateScale(m)\n ? \"translate(\" + round(m[4] * mul) / mul + \" \" + round(m[5] * mul) / mul + \")\" : getMatrixStr(m);\n }\n}\nfunction convertPolyShape(shape, attrs, mul) {\n var points = shape.points;\n var strArr = [];\n for (var i = 0; i < points.length; i++) {\n strArr.push(round(points[i][0] * mul) / mul);\n strArr.push(round(points[i][1] * mul) / mul);\n }\n attrs.points = strArr.join(' ');\n}\nfunction validatePolyShape(shape) {\n return !shape.smooth;\n}\nfunction createAttrsConvert(desc) {\n var normalizedDesc = map(desc, function (item) {\n return (typeof item === 'string' ? [item, item] : item);\n });\n return function (shape, attrs, mul) {\n for (var i = 0; i < normalizedDesc.length; i++) {\n var item = normalizedDesc[i];\n var val = shape[item[0]];\n if (val != null) {\n attrs[item[1]] = round(val * mul) / mul;\n }\n }\n };\n}\nvar builtinShapesDef = {\n circle: [createAttrsConvert(['cx', 'cy', 'r'])],\n polyline: [convertPolyShape, validatePolyShape],\n polygon: [convertPolyShape, validatePolyShape]\n};\nfunction hasShapeAnimation(el) {\n var animators = el.animators;\n for (var i = 0; i < animators.length; i++) {\n if (animators[i].targetName === 'shape') {\n return true;\n }\n }\n return false;\n}\nexport function brushSVGPath(el, scope) {\n var style = el.style;\n var shape = el.shape;\n var builtinShpDef = builtinShapesDef[el.type];\n var attrs = {};\n var needsAnimate = scope.animation;\n var svgElType = 'path';\n var strokePercent = el.style.strokePercent;\n var precision = (scope.compress && getPathPrecision(el)) || 4;\n if (builtinShpDef\n && !scope.willUpdate\n && !(builtinShpDef[1] && !builtinShpDef[1](shape))\n && !(needsAnimate && hasShapeAnimation(el))\n && !(strokePercent < 1)) {\n svgElType = el.type;\n var mul = Math.pow(10, precision);\n builtinShpDef[0](shape, attrs, mul);\n }\n else {\n var needBuildPath = !el.path || el.shapeChanged();\n if (!el.path) {\n el.createPathProxy();\n }\n var path = el.path;\n if (needBuildPath) {\n path.beginPath();\n el.buildPath(path, el.shape);\n el.pathUpdated();\n }\n var pathVersion = path.getVersion();\n var elExt = el;\n var svgPathBuilder = elExt.__svgPathBuilder;\n if (elExt.__svgPathVersion !== pathVersion\n || !svgPathBuilder\n || strokePercent !== elExt.__svgPathStrokePercent) {\n if (!svgPathBuilder) {\n svgPathBuilder = elExt.__svgPathBuilder = new SVGPathRebuilder();\n }\n svgPathBuilder.reset(precision);\n path.rebuildPath(svgPathBuilder, strokePercent);\n svgPathBuilder.generateStr();\n elExt.__svgPathVersion = pathVersion;\n elExt.__svgPathStrokePercent = strokePercent;\n }\n attrs.d = svgPathBuilder.getStr();\n }\n setTransform(attrs, el.transform);\n setStyleAttrs(attrs, style, el, scope);\n scope.animation && createCSSAnimation(el, attrs, scope);\n return createVNode(svgElType, el.id + '', attrs);\n}\nexport function brushSVGImage(el, scope) {\n var style = el.style;\n var image = style.image;\n if (image && !isString(image)) {\n if (isImageLike(image)) {\n image = image.src;\n }\n else if (isCanvasLike(image)) {\n image = image.toDataURL();\n }\n }\n if (!image) {\n return;\n }\n var x = style.x || 0;\n var y = style.y || 0;\n var dw = style.width;\n var dh = style.height;\n var attrs = {\n href: image,\n width: dw,\n height: dh\n };\n if (x) {\n attrs.x = x;\n }\n if (y) {\n attrs.y = y;\n }\n setTransform(attrs, el.transform);\n setStyleAttrs(attrs, style, el, scope);\n scope.animation && createCSSAnimation(el, attrs, scope);\n return createVNode('image', el.id + '', attrs);\n}\n;\nexport function brushSVGTSpan(el, scope) {\n var style = el.style;\n var text = style.text;\n text != null && (text += '');\n if (!text || isNaN(style.x) || isNaN(style.y)) {\n return;\n }\n var font = style.font || DEFAULT_FONT;\n var x = style.x || 0;\n var y = adjustTextY(style.y || 0, getLineHeight(font), style.textBaseline);\n var textAlign = TEXT_ALIGN_TO_ANCHOR[style.textAlign]\n || style.textAlign;\n var attrs = {\n 'dominant-baseline': 'central',\n 'text-anchor': textAlign\n };\n if (hasSeparateFont(style)) {\n var separatedFontStr = '';\n var fontStyle = style.fontStyle;\n var fontSize = parseFontSize(style.fontSize);\n if (!parseFloat(fontSize)) {\n return;\n }\n var fontFamily = style.fontFamily || DEFAULT_FONT_FAMILY;\n var fontWeight = style.fontWeight;\n separatedFontStr += \"font-size:\" + fontSize + \";font-family:\" + fontFamily + \";\";\n if (fontStyle && fontStyle !== 'normal') {\n separatedFontStr += \"font-style:\" + fontStyle + \";\";\n }\n if (fontWeight && fontWeight !== 'normal') {\n separatedFontStr += \"font-weight:\" + fontWeight + \";\";\n }\n attrs.style = separatedFontStr;\n }\n else {\n attrs.style = \"font: \" + font;\n }\n if (text.match(/\\s/)) {\n attrs['xml:space'] = 'preserve';\n }\n if (x) {\n attrs.x = x;\n }\n if (y) {\n attrs.y = y;\n }\n setTransform(attrs, el.transform);\n setStyleAttrs(attrs, style, el, scope);\n scope.animation && createCSSAnimation(el, attrs, scope);\n return createVNode('text', el.id + '', attrs, undefined, text);\n}\nexport function brush(el, scope) {\n if (el instanceof Path) {\n return brushSVGPath(el, scope);\n }\n else if (el instanceof ZRImage) {\n return brushSVGImage(el, scope);\n }\n else if (el instanceof TSpan) {\n return brushSVGTSpan(el, scope);\n }\n}\nfunction setShadow(el, attrs, scope) {\n var style = el.style;\n if (hasShadow(style)) {\n var shadowKey = getShadowKey(el);\n var shadowCache = scope.shadowCache;\n var shadowId = shadowCache[shadowKey];\n if (!shadowId) {\n var globalScale = el.getGlobalScale();\n var scaleX = globalScale[0];\n var scaleY = globalScale[1];\n if (!scaleX || !scaleY) {\n return;\n }\n var offsetX = style.shadowOffsetX || 0;\n var offsetY = style.shadowOffsetY || 0;\n var blur_1 = style.shadowBlur;\n var _a = normalizeColor(style.shadowColor), opacity = _a.opacity, color = _a.color;\n var stdDx = blur_1 / 2 / scaleX;\n var stdDy = blur_1 / 2 / scaleY;\n var stdDeviation = stdDx + ' ' + stdDy;\n shadowId = scope.zrId + '-s' + scope.shadowIdx++;\n scope.defs[shadowId] = createVNode('filter', shadowId, {\n 'id': shadowId,\n 'x': '-100%',\n 'y': '-100%',\n 'width': '300%',\n 'height': '300%'\n }, [\n createVNode('feDropShadow', '', {\n 'dx': offsetX / scaleX,\n 'dy': offsetY / scaleY,\n 'stdDeviation': stdDeviation,\n 'flood-color': color,\n 'flood-opacity': opacity\n })\n ]);\n shadowCache[shadowKey] = shadowId;\n }\n attrs.filter = getIdURL(shadowId);\n }\n}\nexport function setGradient(style, attrs, target, scope) {\n var val = style[target];\n var gradientTag;\n var gradientAttrs = {\n 'gradientUnits': val.global\n ? 'userSpaceOnUse'\n : 'objectBoundingBox'\n };\n if (isLinearGradient(val)) {\n gradientTag = 'linearGradient';\n gradientAttrs.x1 = val.x;\n gradientAttrs.y1 = val.y;\n gradientAttrs.x2 = val.x2;\n gradientAttrs.y2 = val.y2;\n }\n else if (isRadialGradient(val)) {\n gradientTag = 'radialGradient';\n gradientAttrs.cx = retrieve2(val.x, 0.5);\n gradientAttrs.cy = retrieve2(val.y, 0.5);\n gradientAttrs.r = retrieve2(val.r, 0.5);\n }\n else {\n if (process.env.NODE_ENV !== 'production') {\n logError('Illegal gradient type.');\n }\n return;\n }\n var colors = val.colorStops;\n var colorStops = [];\n for (var i = 0, len = colors.length; i < len; ++i) {\n var offset = round4(colors[i].offset) * 100 + '%';\n var stopColor = colors[i].color;\n var _a = normalizeColor(stopColor), color = _a.color, opacity = _a.opacity;\n var stopsAttrs = {\n 'offset': offset\n };\n stopsAttrs['stop-color'] = color;\n if (opacity < 1) {\n stopsAttrs['stop-opacity'] = opacity;\n }\n colorStops.push(createVNode('stop', i + '', stopsAttrs));\n }\n var gradientVNode = createVNode(gradientTag, '', gradientAttrs, colorStops);\n var gradientKey = vNodeToString(gradientVNode);\n var gradientCache = scope.gradientCache;\n var gradientId = gradientCache[gradientKey];\n if (!gradientId) {\n gradientId = scope.zrId + '-g' + scope.gradientIdx++;\n gradientCache[gradientKey] = gradientId;\n gradientAttrs.id = gradientId;\n scope.defs[gradientId] = createVNode(gradientTag, gradientId, gradientAttrs, colorStops);\n }\n attrs[target] = getIdURL(gradientId);\n}\nexport function setPattern(el, attrs, target, scope) {\n var val = el.style[target];\n var boundingRect = el.getBoundingRect();\n var patternAttrs = {};\n var repeat = val.repeat;\n var noRepeat = repeat === 'no-repeat';\n var repeatX = repeat === 'repeat-x';\n var repeatY = repeat === 'repeat-y';\n var child;\n if (isImagePattern(val)) {\n var imageWidth_1 = val.imageWidth;\n var imageHeight_1 = val.imageHeight;\n var imageSrc = void 0;\n var patternImage = val.image;\n if (isString(patternImage)) {\n imageSrc = patternImage;\n }\n else if (isImageLike(patternImage)) {\n imageSrc = patternImage.src;\n }\n else if (isCanvasLike(patternImage)) {\n imageSrc = patternImage.toDataURL();\n }\n if (typeof Image === 'undefined') {\n var errMsg = 'Image width/height must been given explictly in svg-ssr renderer.';\n assert(imageWidth_1, errMsg);\n assert(imageHeight_1, errMsg);\n }\n else if (imageWidth_1 == null || imageHeight_1 == null) {\n var setSizeToVNode_1 = function (vNode, img) {\n if (vNode) {\n var svgEl = vNode.elm;\n var width = imageWidth_1 || img.width;\n var height = imageHeight_1 || img.height;\n if (vNode.tag === 'pattern') {\n if (repeatX) {\n height = 1;\n width /= boundingRect.width;\n }\n else if (repeatY) {\n width = 1;\n height /= boundingRect.height;\n }\n }\n vNode.attrs.width = width;\n vNode.attrs.height = height;\n if (svgEl) {\n svgEl.setAttribute('width', width);\n svgEl.setAttribute('height', height);\n }\n }\n };\n var createdImage = createOrUpdateImage(imageSrc, null, el, function (img) {\n noRepeat || setSizeToVNode_1(patternVNode, img);\n setSizeToVNode_1(child, img);\n });\n if (createdImage && createdImage.width && createdImage.height) {\n imageWidth_1 = imageWidth_1 || createdImage.width;\n imageHeight_1 = imageHeight_1 || createdImage.height;\n }\n }\n child = createVNode('image', 'img', {\n href: imageSrc,\n width: imageWidth_1,\n height: imageHeight_1\n });\n patternAttrs.width = imageWidth_1;\n patternAttrs.height = imageHeight_1;\n }\n else if (val.svgElement) {\n child = clone(val.svgElement);\n patternAttrs.width = val.svgWidth;\n patternAttrs.height = val.svgHeight;\n }\n if (!child) {\n return;\n }\n var patternWidth;\n var patternHeight;\n if (noRepeat) {\n patternWidth = patternHeight = 1;\n }\n else if (repeatX) {\n patternHeight = 1;\n patternWidth = patternAttrs.width / boundingRect.width;\n }\n else if (repeatY) {\n patternWidth = 1;\n patternHeight = patternAttrs.height / boundingRect.height;\n }\n else {\n patternAttrs.patternUnits = 'userSpaceOnUse';\n }\n if (patternWidth != null && !isNaN(patternWidth)) {\n patternAttrs.width = patternWidth;\n }\n if (patternHeight != null && !isNaN(patternHeight)) {\n patternAttrs.height = patternHeight;\n }\n var patternTransform = getSRTTransformString(val);\n patternTransform && (patternAttrs.patternTransform = patternTransform);\n var patternVNode = createVNode('pattern', '', patternAttrs, [child]);\n var patternKey = vNodeToString(patternVNode);\n var patternCache = scope.patternCache;\n var patternId = patternCache[patternKey];\n if (!patternId) {\n patternId = scope.zrId + '-p' + scope.patternIdx++;\n patternCache[patternKey] = patternId;\n patternAttrs.id = patternId;\n patternVNode = scope.defs[patternId] = createVNode('pattern', patternId, patternAttrs, [child]);\n }\n attrs[target] = getIdURL(patternId);\n}\nexport function setClipPath(clipPath, attrs, scope) {\n var clipPathCache = scope.clipPathCache, defs = scope.defs;\n var clipPathId = clipPathCache[clipPath.id];\n if (!clipPathId) {\n clipPathId = scope.zrId + '-c' + scope.clipPathIdx++;\n var clipPathAttrs = {\n id: clipPathId\n };\n clipPathCache[clipPath.id] = clipPathId;\n defs[clipPathId] = createVNode('clipPath', clipPathId, clipPathAttrs, [brushSVGPath(clipPath, scope)]);\n }\n attrs['clip-path'] = getIdURL(clipPathId);\n}\n","import { RADIAN_TO_DEGREE, retrieve2, logError, isFunction } from '../core/util.js';\nimport { parse } from '../tool/color.js';\nimport env from '../core/env.js';\nvar mathRound = Math.round;\nexport function normalizeColor(color) {\n var opacity;\n if (!color || color === 'transparent') {\n color = 'none';\n }\n else if (typeof color === 'string' && color.indexOf('rgba') > -1) {\n var arr = parse(color);\n if (arr) {\n color = 'rgb(' + arr[0] + ',' + arr[1] + ',' + arr[2] + ')';\n opacity = arr[3];\n }\n }\n return {\n color: color,\n opacity: opacity == null ? 1 : opacity\n };\n}\nvar EPSILON = 1e-4;\nexport function isAroundZero(transform) {\n return transform < EPSILON && transform > -EPSILON;\n}\nexport function round3(transform) {\n return mathRound(transform * 1e3) / 1e3;\n}\nexport function round4(transform) {\n return mathRound(transform * 1e4) / 1e4;\n}\nexport function round1(transform) {\n return mathRound(transform * 10) / 10;\n}\nexport function getMatrixStr(m) {\n return 'matrix('\n + round3(m[0]) + ','\n + round3(m[1]) + ','\n + round3(m[2]) + ','\n + round3(m[3]) + ','\n + round4(m[4]) + ','\n + round4(m[5])\n + ')';\n}\nexport var TEXT_ALIGN_TO_ANCHOR = {\n left: 'start',\n right: 'end',\n center: 'middle',\n middle: 'middle'\n};\nexport function adjustTextY(y, lineHeight, textBaseline) {\n if (textBaseline === 'top') {\n y += lineHeight / 2;\n }\n else if (textBaseline === 'bottom') {\n y -= lineHeight / 2;\n }\n return y;\n}\nexport function hasShadow(style) {\n return style\n && (style.shadowBlur || style.shadowOffsetX || style.shadowOffsetY);\n}\nexport function getShadowKey(displayable) {\n var style = displayable.style;\n var globalScale = displayable.getGlobalScale();\n return [\n style.shadowColor,\n (style.shadowBlur || 0).toFixed(2),\n (style.shadowOffsetX || 0).toFixed(2),\n (style.shadowOffsetY || 0).toFixed(2),\n globalScale[0],\n globalScale[1]\n ].join(',');\n}\nexport function getClipPathsKey(clipPaths) {\n var key = [];\n if (clipPaths) {\n for (var i = 0; i < clipPaths.length; i++) {\n var clipPath = clipPaths[i];\n key.push(clipPath.id);\n }\n }\n return key.join(',');\n}\nexport function isImagePattern(val) {\n return val && (!!val.image);\n}\nexport function isSVGPattern(val) {\n return val && (!!val.svgElement);\n}\nexport function isPattern(val) {\n return isImagePattern(val) || isSVGPattern(val);\n}\nexport function isLinearGradient(val) {\n return val.type === 'linear';\n}\nexport function isRadialGradient(val) {\n return val.type === 'radial';\n}\nexport function isGradient(val) {\n return val && (val.type === 'linear'\n || val.type === 'radial');\n}\nexport function getIdURL(id) {\n return \"url(#\" + id + \")\";\n}\nexport function getPathPrecision(el) {\n var scale = el.getGlobalScale();\n var size = Math.max(scale[0], scale[1]);\n return Math.max(Math.ceil(Math.log(size) / Math.log(10)), 1);\n}\nexport function getSRTTransformString(transform) {\n var x = transform.x || 0;\n var y = transform.y || 0;\n var rotation = (transform.rotation || 0) * RADIAN_TO_DEGREE;\n var scaleX = retrieve2(transform.scaleX, 1);\n var scaleY = retrieve2(transform.scaleY, 1);\n var skewX = transform.skewX || 0;\n var skewY = transform.skewY || 0;\n var res = [];\n if (x || y) {\n res.push(\"translate(\" + x + \"px,\" + y + \"px)\");\n }\n if (rotation) {\n res.push(\"rotate(\" + rotation + \")\");\n }\n if (scaleX !== 1 || scaleY !== 1) {\n res.push(\"scale(\" + scaleX + \",\" + scaleY + \")\");\n }\n if (skewX || skewY) {\n res.push(\"skew(\" + mathRound(skewX * RADIAN_TO_DEGREE) + \"deg, \" + mathRound(skewY * RADIAN_TO_DEGREE) + \"deg)\");\n }\n return res.join(' ');\n}\nexport var encodeBase64 = (function () {\n if (env.hasGlobalWindow && isFunction(window.btoa)) {\n return function (str) {\n return window.btoa(unescape(encodeURIComponent(str)));\n };\n }\n if (typeof Buffer !== 'undefined') {\n return function (str) {\n return Buffer.from(str).toString('base64');\n };\n }\n return function (str) {\n if (process.env.NODE_ENV !== 'production') {\n logError('Base64 isn\\'t natively supported in the current environment.');\n }\n return null;\n };\n})();\n","import { DEFAULT_PATH_STYLE } from '../graphic/Path.js';\nimport ZRImage from '../graphic/Image.js';\nimport { getLineDash } from '../canvas/dashStyle.js';\nimport { map } from '../core/util.js';\nimport { normalizeColor } from './helper.js';\nvar NONE = 'none';\nvar mathRound = Math.round;\nfunction pathHasFill(style) {\n var fill = style.fill;\n return fill != null && fill !== NONE;\n}\nfunction pathHasStroke(style) {\n var stroke = style.stroke;\n return stroke != null && stroke !== NONE;\n}\nvar strokeProps = ['lineCap', 'miterLimit', 'lineJoin'];\nvar svgStrokeProps = map(strokeProps, function (prop) { return \"stroke-\" + prop.toLowerCase(); });\nexport default function mapStyleToAttrs(updateAttr, style, el, forceUpdate) {\n var opacity = style.opacity == null ? 1 : style.opacity;\n if (el instanceof ZRImage) {\n updateAttr('opacity', opacity);\n return;\n }\n if (pathHasFill(style)) {\n var fill = normalizeColor(style.fill);\n updateAttr('fill', fill.color);\n var fillOpacity = style.fillOpacity != null\n ? style.fillOpacity * fill.opacity * opacity\n : fill.opacity * opacity;\n if (forceUpdate || fillOpacity < 1) {\n updateAttr('fill-opacity', fillOpacity);\n }\n }\n else {\n updateAttr('fill', NONE);\n }\n if (pathHasStroke(style)) {\n var stroke = normalizeColor(style.stroke);\n updateAttr('stroke', stroke.color);\n var strokeScale = style.strokeNoScale\n ? el.getLineScale()\n : 1;\n var strokeWidth = (strokeScale ? (style.lineWidth || 0) / strokeScale : 0);\n var strokeOpacity = style.strokeOpacity != null\n ? style.strokeOpacity * stroke.opacity * opacity\n : stroke.opacity * opacity;\n var strokeFirst = style.strokeFirst;\n if (forceUpdate || strokeWidth !== 1) {\n updateAttr('stroke-width', strokeWidth);\n }\n if (forceUpdate || strokeFirst) {\n updateAttr('paint-order', strokeFirst ? 'stroke' : 'fill');\n }\n if (forceUpdate || strokeOpacity < 1) {\n updateAttr('stroke-opacity', strokeOpacity);\n }\n if (style.lineDash) {\n var _a = getLineDash(el), lineDash = _a[0], lineDashOffset = _a[1];\n if (lineDash) {\n lineDashOffset = mathRound(lineDashOffset || 0);\n updateAttr('stroke-dasharray', lineDash.join(','));\n if (lineDashOffset || forceUpdate) {\n updateAttr('stroke-dashoffset', lineDashOffset);\n }\n }\n }\n else if (forceUpdate) {\n updateAttr('stroke-dasharray', NONE);\n }\n for (var i = 0; i < strokeProps.length; i++) {\n var propName = strokeProps[i];\n if (forceUpdate || style[propName] !== DEFAULT_PATH_STYLE[propName]) {\n var val = style[propName] || DEFAULT_PATH_STYLE[propName];\n val && updateAttr(svgStrokeProps[i], val);\n }\n }\n }\n else if (forceUpdate) {\n updateAttr('stroke', NONE);\n }\n}\n","import { isArray, isObject } from '../core/util.js';\nimport { createElement, createVNode, XMLNS, XML_NAMESPACE, XLINKNS } from './core.js';\nimport * as api from './domapi.js';\nvar colonChar = 58;\nvar xChar = 120;\nvar emptyNode = createVNode('', '');\nfunction isUndef(s) {\n return s === undefined;\n}\nfunction isDef(s) {\n return s !== undefined;\n}\nfunction createKeyToOldIdx(children, beginIdx, endIdx) {\n var map = {};\n for (var i = beginIdx; i <= endIdx; ++i) {\n var key = children[i].key;\n if (key !== undefined) {\n if (process.env.NODE_ENV !== 'production') {\n if (map[key] != null) {\n console.error(\"Duplicate key \" + key);\n }\n }\n map[key] = i;\n }\n }\n return map;\n}\nfunction sameVnode(vnode1, vnode2) {\n var isSameKey = vnode1.key === vnode2.key;\n var isSameTag = vnode1.tag === vnode2.tag;\n return isSameTag && isSameKey;\n}\nfunction createElm(vnode) {\n var i;\n var children = vnode.children;\n var tag = vnode.tag;\n if (isDef(tag)) {\n var elm = (vnode.elm = createElement(tag));\n updateAttrs(emptyNode, vnode);\n if (isArray(children)) {\n for (i = 0; i < children.length; ++i) {\n var ch = children[i];\n if (ch != null) {\n api.appendChild(elm, createElm(ch));\n }\n }\n }\n else if (isDef(vnode.text) && !isObject(vnode.text)) {\n api.appendChild(elm, api.createTextNode(vnode.text));\n }\n }\n else {\n vnode.elm = api.createTextNode(vnode.text);\n }\n return vnode.elm;\n}\nfunction addVnodes(parentElm, before, vnodes, startIdx, endIdx) {\n for (; startIdx <= endIdx; ++startIdx) {\n var ch = vnodes[startIdx];\n if (ch != null) {\n api.insertBefore(parentElm, createElm(ch), before);\n }\n }\n}\nfunction removeVnodes(parentElm, vnodes, startIdx, endIdx) {\n for (; startIdx <= endIdx; ++startIdx) {\n var ch = vnodes[startIdx];\n if (ch != null) {\n if (isDef(ch.tag)) {\n var parent_1 = api.parentNode(ch.elm);\n api.removeChild(parent_1, ch.elm);\n }\n else {\n api.removeChild(parentElm, ch.elm);\n }\n }\n }\n}\nexport function updateAttrs(oldVnode, vnode) {\n var key;\n var elm = vnode.elm;\n var oldAttrs = oldVnode && oldVnode.attrs || {};\n var attrs = vnode.attrs || {};\n if (oldAttrs === attrs) {\n return;\n }\n for (key in attrs) {\n var cur = attrs[key];\n var old = oldAttrs[key];\n if (old !== cur) {\n if (cur === true) {\n elm.setAttribute(key, '');\n }\n else if (cur === false) {\n elm.removeAttribute(key);\n }\n else {\n if (key.charCodeAt(0) !== xChar) {\n elm.setAttribute(key, cur);\n }\n else if (key === 'xmlns:xlink' || key === 'xmlns') {\n elm.setAttributeNS(XMLNS, key, cur);\n }\n else if (key.charCodeAt(3) === colonChar) {\n elm.setAttributeNS(XML_NAMESPACE, key, cur);\n }\n else if (key.charCodeAt(5) === colonChar) {\n elm.setAttributeNS(XLINKNS, key, cur);\n }\n else {\n elm.setAttribute(key, cur);\n }\n }\n }\n }\n for (key in oldAttrs) {\n if (!(key in attrs)) {\n elm.removeAttribute(key);\n }\n }\n}\nfunction updateChildren(parentElm, oldCh, newCh) {\n var oldStartIdx = 0;\n var newStartIdx = 0;\n var oldEndIdx = oldCh.length - 1;\n var oldStartVnode = oldCh[0];\n var oldEndVnode = oldCh[oldEndIdx];\n var newEndIdx = newCh.length - 1;\n var newStartVnode = newCh[0];\n var newEndVnode = newCh[newEndIdx];\n var oldKeyToIdx;\n var idxInOld;\n var elmToMove;\n var before;\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n if (oldStartVnode == null) {\n oldStartVnode = oldCh[++oldStartIdx];\n }\n else if (oldEndVnode == null) {\n oldEndVnode = oldCh[--oldEndIdx];\n }\n else if (newStartVnode == null) {\n newStartVnode = newCh[++newStartIdx];\n }\n else if (newEndVnode == null) {\n newEndVnode = newCh[--newEndIdx];\n }\n else if (sameVnode(oldStartVnode, newStartVnode)) {\n patchVnode(oldStartVnode, newStartVnode);\n oldStartVnode = oldCh[++oldStartIdx];\n newStartVnode = newCh[++newStartIdx];\n }\n else if (sameVnode(oldEndVnode, newEndVnode)) {\n patchVnode(oldEndVnode, newEndVnode);\n oldEndVnode = oldCh[--oldEndIdx];\n newEndVnode = newCh[--newEndIdx];\n }\n else if (sameVnode(oldStartVnode, newEndVnode)) {\n patchVnode(oldStartVnode, newEndVnode);\n api.insertBefore(parentElm, oldStartVnode.elm, api.nextSibling(oldEndVnode.elm));\n oldStartVnode = oldCh[++oldStartIdx];\n newEndVnode = newCh[--newEndIdx];\n }\n else if (sameVnode(oldEndVnode, newStartVnode)) {\n patchVnode(oldEndVnode, newStartVnode);\n api.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm);\n oldEndVnode = oldCh[--oldEndIdx];\n newStartVnode = newCh[++newStartIdx];\n }\n else {\n if (isUndef(oldKeyToIdx)) {\n oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx);\n }\n idxInOld = oldKeyToIdx[newStartVnode.key];\n if (isUndef(idxInOld)) {\n api.insertBefore(parentElm, createElm(newStartVnode), oldStartVnode.elm);\n }\n else {\n elmToMove = oldCh[idxInOld];\n if (elmToMove.tag !== newStartVnode.tag) {\n api.insertBefore(parentElm, createElm(newStartVnode), oldStartVnode.elm);\n }\n else {\n patchVnode(elmToMove, newStartVnode);\n oldCh[idxInOld] = undefined;\n api.insertBefore(parentElm, elmToMove.elm, oldStartVnode.elm);\n }\n }\n newStartVnode = newCh[++newStartIdx];\n }\n }\n if (oldStartIdx <= oldEndIdx || newStartIdx <= newEndIdx) {\n if (oldStartIdx > oldEndIdx) {\n before = newCh[newEndIdx + 1] == null ? null : newCh[newEndIdx + 1].elm;\n addVnodes(parentElm, before, newCh, newStartIdx, newEndIdx);\n }\n else {\n removeVnodes(parentElm, oldCh, oldStartIdx, oldEndIdx);\n }\n }\n}\nfunction patchVnode(oldVnode, vnode) {\n var elm = (vnode.elm = oldVnode.elm);\n var oldCh = oldVnode.children;\n var ch = vnode.children;\n if (oldVnode === vnode) {\n return;\n }\n updateAttrs(oldVnode, vnode);\n if (isUndef(vnode.text)) {\n if (isDef(oldCh) && isDef(ch)) {\n if (oldCh !== ch) {\n updateChildren(elm, oldCh, ch);\n }\n }\n else if (isDef(ch)) {\n if (isDef(oldVnode.text)) {\n api.setTextContent(elm, '');\n }\n addVnodes(elm, null, ch, 0, ch.length - 1);\n }\n else if (isDef(oldCh)) {\n removeVnodes(elm, oldCh, 0, oldCh.length - 1);\n }\n else if (isDef(oldVnode.text)) {\n api.setTextContent(elm, '');\n }\n }\n else if (oldVnode.text !== vnode.text) {\n if (isDef(oldCh)) {\n removeVnodes(elm, oldCh, 0, oldCh.length - 1);\n }\n api.setTextContent(elm, vnode.text);\n }\n}\nexport default function patch(oldVnode, vnode) {\n if (sameVnode(oldVnode, vnode)) {\n patchVnode(oldVnode, vnode);\n }\n else {\n var elm = oldVnode.elm;\n var parent_2 = api.parentNode(elm);\n createElm(vnode);\n if (parent_2 !== null) {\n api.insertBefore(parent_2, vnode.elm, api.nextSibling(elm));\n removeVnodes(parent_2, [oldVnode], 0, 0);\n }\n }\n return vnode;\n}\n","import LRU from '../core/LRU.js';\nvar kCSSColorTable = {\n 'transparent': [0, 0, 0, 0], 'aliceblue': [240, 248, 255, 1],\n 'antiquewhite': [250, 235, 215, 1], 'aqua': [0, 255, 255, 1],\n 'aquamarine': [127, 255, 212, 1], 'azure': [240, 255, 255, 1],\n 'beige': [245, 245, 220, 1], 'bisque': [255, 228, 196, 1],\n 'black': [0, 0, 0, 1], 'blanchedalmond': [255, 235, 205, 1],\n 'blue': [0, 0, 255, 1], 'blueviolet': [138, 43, 226, 1],\n 'brown': [165, 42, 42, 1], 'burlywood': [222, 184, 135, 1],\n 'cadetblue': [95, 158, 160, 1], 'chartreuse': [127, 255, 0, 1],\n 'chocolate': [210, 105, 30, 1], 'coral': [255, 127, 80, 1],\n 'cornflowerblue': [100, 149, 237, 1], 'cornsilk': [255, 248, 220, 1],\n 'crimson': [220, 20, 60, 1], 'cyan': [0, 255, 255, 1],\n 'darkblue': [0, 0, 139, 1], 'darkcyan': [0, 139, 139, 1],\n 'darkgoldenrod': [184, 134, 11, 1], 'darkgray': [169, 169, 169, 1],\n 'darkgreen': [0, 100, 0, 1], 'darkgrey': [169, 169, 169, 1],\n 'darkkhaki': [189, 183, 107, 1], 'darkmagenta': [139, 0, 139, 1],\n 'darkolivegreen': [85, 107, 47, 1], 'darkorange': [255, 140, 0, 1],\n 'darkorchid': [153, 50, 204, 1], 'darkred': [139, 0, 0, 1],\n 'darksalmon': [233, 150, 122, 1], 'darkseagreen': [143, 188, 143, 1],\n 'darkslateblue': [72, 61, 139, 1], 'darkslategray': [47, 79, 79, 1],\n 'darkslategrey': [47, 79, 79, 1], 'darkturquoise': [0, 206, 209, 1],\n 'darkviolet': [148, 0, 211, 1], 'deeppink': [255, 20, 147, 1],\n 'deepskyblue': [0, 191, 255, 1], 'dimgray': [105, 105, 105, 1],\n 'dimgrey': [105, 105, 105, 1], 'dodgerblue': [30, 144, 255, 1],\n 'firebrick': [178, 34, 34, 1], 'floralwhite': [255, 250, 240, 1],\n 'forestgreen': [34, 139, 34, 1], 'fuchsia': [255, 0, 255, 1],\n 'gainsboro': [220, 220, 220, 1], 'ghostwhite': [248, 248, 255, 1],\n 'gold': [255, 215, 0, 1], 'goldenrod': [218, 165, 32, 1],\n 'gray': [128, 128, 128, 1], 'green': [0, 128, 0, 1],\n 'greenyellow': [173, 255, 47, 1], 'grey': [128, 128, 128, 1],\n 'honeydew': [240, 255, 240, 1], 'hotpink': [255, 105, 180, 1],\n 'indianred': [205, 92, 92, 1], 'indigo': [75, 0, 130, 1],\n 'ivory': [255, 255, 240, 1], 'khaki': [240, 230, 140, 1],\n 'lavender': [230, 230, 250, 1], 'lavenderblush': [255, 240, 245, 1],\n 'lawngreen': [124, 252, 0, 1], 'lemonchiffon': [255, 250, 205, 1],\n 'lightblue': [173, 216, 230, 1], 'lightcoral': [240, 128, 128, 1],\n 'lightcyan': [224, 255, 255, 1], 'lightgoldenrodyellow': [250, 250, 210, 1],\n 'lightgray': [211, 211, 211, 1], 'lightgreen': [144, 238, 144, 1],\n 'lightgrey': [211, 211, 211, 1], 'lightpink': [255, 182, 193, 1],\n 'lightsalmon': [255, 160, 122, 1], 'lightseagreen': [32, 178, 170, 1],\n 'lightskyblue': [135, 206, 250, 1], 'lightslategray': [119, 136, 153, 1],\n 'lightslategrey': [119, 136, 153, 1], 'lightsteelblue': [176, 196, 222, 1],\n 'lightyellow': [255, 255, 224, 1], 'lime': [0, 255, 0, 1],\n 'limegreen': [50, 205, 50, 1], 'linen': [250, 240, 230, 1],\n 'magenta': [255, 0, 255, 1], 'maroon': [128, 0, 0, 1],\n 'mediumaquamarine': [102, 205, 170, 1], 'mediumblue': [0, 0, 205, 1],\n 'mediumorchid': [186, 85, 211, 1], 'mediumpurple': [147, 112, 219, 1],\n 'mediumseagreen': [60, 179, 113, 1], 'mediumslateblue': [123, 104, 238, 1],\n 'mediumspringgreen': [0, 250, 154, 1], 'mediumturquoise': [72, 209, 204, 1],\n 'mediumvioletred': [199, 21, 133, 1], 'midnightblue': [25, 25, 112, 1],\n 'mintcream': [245, 255, 250, 1], 'mistyrose': [255, 228, 225, 1],\n 'moccasin': [255, 228, 181, 1], 'navajowhite': [255, 222, 173, 1],\n 'navy': [0, 0, 128, 1], 'oldlace': [253, 245, 230, 1],\n 'olive': [128, 128, 0, 1], 'olivedrab': [107, 142, 35, 1],\n 'orange': [255, 165, 0, 1], 'orangered': [255, 69, 0, 1],\n 'orchid': [218, 112, 214, 1], 'palegoldenrod': [238, 232, 170, 1],\n 'palegreen': [152, 251, 152, 1], 'paleturquoise': [175, 238, 238, 1],\n 'palevioletred': [219, 112, 147, 1], 'papayawhip': [255, 239, 213, 1],\n 'peachpuff': [255, 218, 185, 1], 'peru': [205, 133, 63, 1],\n 'pink': [255, 192, 203, 1], 'plum': [221, 160, 221, 1],\n 'powderblue': [176, 224, 230, 1], 'purple': [128, 0, 128, 1],\n 'red': [255, 0, 0, 1], 'rosybrown': [188, 143, 143, 1],\n 'royalblue': [65, 105, 225, 1], 'saddlebrown': [139, 69, 19, 1],\n 'salmon': [250, 128, 114, 1], 'sandybrown': [244, 164, 96, 1],\n 'seagreen': [46, 139, 87, 1], 'seashell': [255, 245, 238, 1],\n 'sienna': [160, 82, 45, 1], 'silver': [192, 192, 192, 1],\n 'skyblue': [135, 206, 235, 1], 'slateblue': [106, 90, 205, 1],\n 'slategray': [112, 128, 144, 1], 'slategrey': [112, 128, 144, 1],\n 'snow': [255, 250, 250, 1], 'springgreen': [0, 255, 127, 1],\n 'steelblue': [70, 130, 180, 1], 'tan': [210, 180, 140, 1],\n 'teal': [0, 128, 128, 1], 'thistle': [216, 191, 216, 1],\n 'tomato': [255, 99, 71, 1], 'turquoise': [64, 224, 208, 1],\n 'violet': [238, 130, 238, 1], 'wheat': [245, 222, 179, 1],\n 'white': [255, 255, 255, 1], 'whitesmoke': [245, 245, 245, 1],\n 'yellow': [255, 255, 0, 1], 'yellowgreen': [154, 205, 50, 1]\n};\nfunction clampCssByte(i) {\n i = Math.round(i);\n return i < 0 ? 0 : i > 255 ? 255 : i;\n}\nfunction clampCssAngle(i) {\n i = Math.round(i);\n return i < 0 ? 0 : i > 360 ? 360 : i;\n}\nfunction clampCssFloat(f) {\n return f < 0 ? 0 : f > 1 ? 1 : f;\n}\nfunction parseCssInt(val) {\n var str = val;\n if (str.length && str.charAt(str.length - 1) === '%') {\n return clampCssByte(parseFloat(str) / 100 * 255);\n }\n return clampCssByte(parseInt(str, 10));\n}\nfunction parseCssFloat(val) {\n var str = val;\n if (str.length && str.charAt(str.length - 1) === '%') {\n return clampCssFloat(parseFloat(str) / 100);\n }\n return clampCssFloat(parseFloat(str));\n}\nfunction cssHueToRgb(m1, m2, h) {\n if (h < 0) {\n h += 1;\n }\n else if (h > 1) {\n h -= 1;\n }\n if (h * 6 < 1) {\n return m1 + (m2 - m1) * h * 6;\n }\n if (h * 2 < 1) {\n return m2;\n }\n if (h * 3 < 2) {\n return m1 + (m2 - m1) * (2 / 3 - h) * 6;\n }\n return m1;\n}\nfunction lerpNumber(a, b, p) {\n return a + (b - a) * p;\n}\nfunction setRgba(out, r, g, b, a) {\n out[0] = r;\n out[1] = g;\n out[2] = b;\n out[3] = a;\n return out;\n}\nfunction copyRgba(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n return out;\n}\nvar colorCache = new LRU(20);\nvar lastRemovedArr = null;\nfunction putToCache(colorStr, rgbaArr) {\n if (lastRemovedArr) {\n copyRgba(lastRemovedArr, rgbaArr);\n }\n lastRemovedArr = colorCache.put(colorStr, lastRemovedArr || (rgbaArr.slice()));\n}\nexport function parse(colorStr, rgbaArr) {\n if (!colorStr) {\n return;\n }\n rgbaArr = rgbaArr || [];\n var cached = colorCache.get(colorStr);\n if (cached) {\n return copyRgba(rgbaArr, cached);\n }\n colorStr = colorStr + '';\n var str = colorStr.replace(/ /g, '').toLowerCase();\n if (str in kCSSColorTable) {\n copyRgba(rgbaArr, kCSSColorTable[str]);\n putToCache(colorStr, rgbaArr);\n return rgbaArr;\n }\n var strLen = str.length;\n if (str.charAt(0) === '#') {\n if (strLen === 4 || strLen === 5) {\n var iv = parseInt(str.slice(1, 4), 16);\n if (!(iv >= 0 && iv <= 0xfff)) {\n setRgba(rgbaArr, 0, 0, 0, 1);\n return;\n }\n setRgba(rgbaArr, ((iv & 0xf00) >> 4) | ((iv & 0xf00) >> 8), (iv & 0xf0) | ((iv & 0xf0) >> 4), (iv & 0xf) | ((iv & 0xf) << 4), strLen === 5 ? parseInt(str.slice(4), 16) / 0xf : 1);\n putToCache(colorStr, rgbaArr);\n return rgbaArr;\n }\n else if (strLen === 7 || strLen === 9) {\n var iv = parseInt(str.slice(1, 7), 16);\n if (!(iv >= 0 && iv <= 0xffffff)) {\n setRgba(rgbaArr, 0, 0, 0, 1);\n return;\n }\n setRgba(rgbaArr, (iv & 0xff0000) >> 16, (iv & 0xff00) >> 8, iv & 0xff, strLen === 9 ? parseInt(str.slice(7), 16) / 0xff : 1);\n putToCache(colorStr, rgbaArr);\n return rgbaArr;\n }\n return;\n }\n var op = str.indexOf('(');\n var ep = str.indexOf(')');\n if (op !== -1 && ep + 1 === strLen) {\n var fname = str.substr(0, op);\n var params = str.substr(op + 1, ep - (op + 1)).split(',');\n var alpha = 1;\n switch (fname) {\n case 'rgba':\n if (params.length !== 4) {\n return params.length === 3\n ? setRgba(rgbaArr, +params[0], +params[1], +params[2], 1)\n : setRgba(rgbaArr, 0, 0, 0, 1);\n }\n alpha = parseCssFloat(params.pop());\n case 'rgb':\n if (params.length >= 3) {\n setRgba(rgbaArr, parseCssInt(params[0]), parseCssInt(params[1]), parseCssInt(params[2]), params.length === 3 ? alpha : parseCssFloat(params[3]));\n putToCache(colorStr, rgbaArr);\n return rgbaArr;\n }\n else {\n setRgba(rgbaArr, 0, 0, 0, 1);\n return;\n }\n case 'hsla':\n if (params.length !== 4) {\n setRgba(rgbaArr, 0, 0, 0, 1);\n return;\n }\n params[3] = parseCssFloat(params[3]);\n hsla2rgba(params, rgbaArr);\n putToCache(colorStr, rgbaArr);\n return rgbaArr;\n case 'hsl':\n if (params.length !== 3) {\n setRgba(rgbaArr, 0, 0, 0, 1);\n return;\n }\n hsla2rgba(params, rgbaArr);\n putToCache(colorStr, rgbaArr);\n return rgbaArr;\n default:\n return;\n }\n }\n setRgba(rgbaArr, 0, 0, 0, 1);\n return;\n}\nfunction hsla2rgba(hsla, rgba) {\n var h = (((parseFloat(hsla[0]) % 360) + 360) % 360) / 360;\n var s = parseCssFloat(hsla[1]);\n var l = parseCssFloat(hsla[2]);\n var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n var m1 = l * 2 - m2;\n rgba = rgba || [];\n setRgba(rgba, clampCssByte(cssHueToRgb(m1, m2, h + 1 / 3) * 255), clampCssByte(cssHueToRgb(m1, m2, h) * 255), clampCssByte(cssHueToRgb(m1, m2, h - 1 / 3) * 255), 1);\n if (hsla.length === 4) {\n rgba[3] = hsla[3];\n }\n return rgba;\n}\nfunction rgba2hsla(rgba) {\n if (!rgba) {\n return;\n }\n var R = rgba[0] / 255;\n var G = rgba[1] / 255;\n var B = rgba[2] / 255;\n var vMin = Math.min(R, G, B);\n var vMax = Math.max(R, G, B);\n var delta = vMax - vMin;\n var L = (vMax + vMin) / 2;\n var H;\n var S;\n if (delta === 0) {\n H = 0;\n S = 0;\n }\n else {\n if (L < 0.5) {\n S = delta / (vMax + vMin);\n }\n else {\n S = delta / (2 - vMax - vMin);\n }\n var deltaR = (((vMax - R) / 6) + (delta / 2)) / delta;\n var deltaG = (((vMax - G) / 6) + (delta / 2)) / delta;\n var deltaB = (((vMax - B) / 6) + (delta / 2)) / delta;\n if (R === vMax) {\n H = deltaB - deltaG;\n }\n else if (G === vMax) {\n H = (1 / 3) + deltaR - deltaB;\n }\n else if (B === vMax) {\n H = (2 / 3) + deltaG - deltaR;\n }\n if (H < 0) {\n H += 1;\n }\n if (H > 1) {\n H -= 1;\n }\n }\n var hsla = [H * 360, S, L];\n if (rgba[3] != null) {\n hsla.push(rgba[3]);\n }\n return hsla;\n}\nexport function lift(color, level) {\n var colorArr = parse(color);\n if (colorArr) {\n for (var i = 0; i < 3; i++) {\n if (level < 0) {\n colorArr[i] = colorArr[i] * (1 - level) | 0;\n }\n else {\n colorArr[i] = ((255 - colorArr[i]) * level + colorArr[i]) | 0;\n }\n if (colorArr[i] > 255) {\n colorArr[i] = 255;\n }\n else if (colorArr[i] < 0) {\n colorArr[i] = 0;\n }\n }\n return stringify(colorArr, colorArr.length === 4 ? 'rgba' : 'rgb');\n }\n}\nexport function toHex(color) {\n var colorArr = parse(color);\n if (colorArr) {\n return ((1 << 24) + (colorArr[0] << 16) + (colorArr[1] << 8) + (+colorArr[2])).toString(16).slice(1);\n }\n}\nexport function fastLerp(normalizedValue, colors, out) {\n if (!(colors && colors.length)\n || !(normalizedValue >= 0 && normalizedValue <= 1)) {\n return;\n }\n out = out || [];\n var value = normalizedValue * (colors.length - 1);\n var leftIndex = Math.floor(value);\n var rightIndex = Math.ceil(value);\n var leftColor = colors[leftIndex];\n var rightColor = colors[rightIndex];\n var dv = value - leftIndex;\n out[0] = clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv));\n out[1] = clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv));\n out[2] = clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv));\n out[3] = clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv));\n return out;\n}\nexport var fastMapToColor = fastLerp;\nexport function lerp(normalizedValue, colors, fullOutput) {\n if (!(colors && colors.length)\n || !(normalizedValue >= 0 && normalizedValue <= 1)) {\n return;\n }\n var value = normalizedValue * (colors.length - 1);\n var leftIndex = Math.floor(value);\n var rightIndex = Math.ceil(value);\n var leftColor = parse(colors[leftIndex]);\n var rightColor = parse(colors[rightIndex]);\n var dv = value - leftIndex;\n var color = stringify([\n clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv)),\n clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv)),\n clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv)),\n clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv))\n ], 'rgba');\n return fullOutput\n ? {\n color: color,\n leftIndex: leftIndex,\n rightIndex: rightIndex,\n value: value\n }\n : color;\n}\nexport var mapToColor = lerp;\nexport function modifyHSL(color, h, s, l) {\n var colorArr = parse(color);\n if (color) {\n colorArr = rgba2hsla(colorArr);\n h != null && (colorArr[0] = clampCssAngle(h));\n s != null && (colorArr[1] = parseCssFloat(s));\n l != null && (colorArr[2] = parseCssFloat(l));\n return stringify(hsla2rgba(colorArr), 'rgba');\n }\n}\nexport function modifyAlpha(color, alpha) {\n var colorArr = parse(color);\n if (colorArr && alpha != null) {\n colorArr[3] = clampCssFloat(alpha);\n return stringify(colorArr, 'rgba');\n }\n}\nexport function stringify(arrColor, type) {\n if (!arrColor || !arrColor.length) {\n return;\n }\n var colorStr = arrColor[0] + ',' + arrColor[1] + ',' + arrColor[2];\n if (type === 'rgba' || type === 'hsva' || type === 'hsla') {\n colorStr += ',' + arrColor[3];\n }\n return type + '(' + colorStr + ')';\n}\nexport function lum(color, backgroundLum) {\n var arr = parse(color);\n return arr\n ? (0.299 * arr[0] + 0.587 * arr[1] + 0.114 * arr[2]) * arr[3] / 255\n + (1 - arr[3]) * backgroundLum\n : 0;\n}\nexport function random() {\n return stringify([\n Math.round(Math.random() * 255),\n Math.round(Math.random() * 255),\n Math.round(Math.random() * 255)\n ], 'rgb');\n}\n","import { cubicSubdivide } from '../core/curve.js';\nimport PathProxy from '../core/PathProxy.js';\nvar CMD = PathProxy.CMD;\nfunction aroundEqual(a, b) {\n return Math.abs(a - b) < 1e-5;\n}\nexport function pathToBezierCurves(path) {\n var data = path.data;\n var len = path.len();\n var bezierArrayGroups = [];\n var currentSubpath;\n var xi = 0;\n var yi = 0;\n var x0 = 0;\n var y0 = 0;\n function createNewSubpath(x, y) {\n if (currentSubpath && currentSubpath.length > 2) {\n bezierArrayGroups.push(currentSubpath);\n }\n currentSubpath = [x, y];\n }\n function addLine(x0, y0, x1, y1) {\n if (!(aroundEqual(x0, x1) && aroundEqual(y0, y1))) {\n currentSubpath.push(x0, y0, x1, y1, x1, y1);\n }\n }\n function addArc(startAngle, endAngle, cx, cy, rx, ry) {\n var delta = Math.abs(endAngle - startAngle);\n var len = Math.tan(delta / 4) * 4 / 3;\n var dir = endAngle < startAngle ? -1 : 1;\n var c1 = Math.cos(startAngle);\n var s1 = Math.sin(startAngle);\n var c2 = Math.cos(endAngle);\n var s2 = Math.sin(endAngle);\n var x1 = c1 * rx + cx;\n var y1 = s1 * ry + cy;\n var x4 = c2 * rx + cx;\n var y4 = s2 * ry + cy;\n var hx = rx * len * dir;\n var hy = ry * len * dir;\n currentSubpath.push(x1 - hx * s1, y1 + hy * c1, x4 + hx * s2, y4 - hy * c2, x4, y4);\n }\n var x1;\n var y1;\n var x2;\n var y2;\n for (var i = 0; i < len;) {\n var cmd = data[i++];\n var isFirst = i === 1;\n if (isFirst) {\n xi = data[i];\n yi = data[i + 1];\n x0 = xi;\n y0 = yi;\n if (cmd === CMD.L || cmd === CMD.C || cmd === CMD.Q) {\n currentSubpath = [x0, y0];\n }\n }\n switch (cmd) {\n case CMD.M:\n xi = x0 = data[i++];\n yi = y0 = data[i++];\n createNewSubpath(x0, y0);\n break;\n case CMD.L:\n x1 = data[i++];\n y1 = data[i++];\n addLine(xi, yi, x1, y1);\n xi = x1;\n yi = y1;\n break;\n case CMD.C:\n currentSubpath.push(data[i++], data[i++], data[i++], data[i++], xi = data[i++], yi = data[i++]);\n break;\n case CMD.Q:\n x1 = data[i++];\n y1 = data[i++];\n x2 = data[i++];\n y2 = data[i++];\n currentSubpath.push(xi + 2 / 3 * (x1 - xi), yi + 2 / 3 * (y1 - yi), x2 + 2 / 3 * (x1 - x2), y2 + 2 / 3 * (y1 - y2), x2, y2);\n xi = x2;\n yi = y2;\n break;\n case CMD.A:\n var cx = data[i++];\n var cy = data[i++];\n var rx = data[i++];\n var ry = data[i++];\n var startAngle = data[i++];\n var endAngle = data[i++] + startAngle;\n i += 1;\n var anticlockwise = !data[i++];\n x1 = Math.cos(startAngle) * rx + cx;\n y1 = Math.sin(startAngle) * ry + cy;\n if (isFirst) {\n x0 = x1;\n y0 = y1;\n createNewSubpath(x0, y0);\n }\n else {\n addLine(xi, yi, x1, y1);\n }\n xi = Math.cos(endAngle) * rx + cx;\n yi = Math.sin(endAngle) * ry + cy;\n var step = (anticlockwise ? -1 : 1) * Math.PI / 2;\n for (var angle = startAngle; anticlockwise ? angle > endAngle : angle < endAngle; angle += step) {\n var nextAngle = anticlockwise ? Math.max(angle + step, endAngle)\n : Math.min(angle + step, endAngle);\n addArc(angle, nextAngle, cx, cy, rx, ry);\n }\n break;\n case CMD.R:\n x0 = xi = data[i++];\n y0 = yi = data[i++];\n x1 = x0 + data[i++];\n y1 = y0 + data[i++];\n createNewSubpath(x1, y0);\n addLine(x1, y0, x1, y1);\n addLine(x1, y1, x0, y1);\n addLine(x0, y1, x0, y0);\n addLine(x0, y0, x1, y0);\n break;\n case CMD.Z:\n currentSubpath && addLine(xi, yi, x0, y0);\n xi = x0;\n yi = y0;\n break;\n }\n }\n if (currentSubpath && currentSubpath.length > 2) {\n bezierArrayGroups.push(currentSubpath);\n }\n return bezierArrayGroups;\n}\nfunction adpativeBezier(x0, y0, x1, y1, x2, y2, x3, y3, out, scale) {\n if (aroundEqual(x0, x1) && aroundEqual(y0, y1) && aroundEqual(x2, x3) && aroundEqual(y2, y3)) {\n out.push(x3, y3);\n return;\n }\n var PIXEL_DISTANCE = 2 / scale;\n var PIXEL_DISTANCE_SQR = PIXEL_DISTANCE * PIXEL_DISTANCE;\n var dx = x3 - x0;\n var dy = y3 - y0;\n var d = Math.sqrt(dx * dx + dy * dy);\n dx /= d;\n dy /= d;\n var dx1 = x1 - x0;\n var dy1 = y1 - y0;\n var dx2 = x2 - x3;\n var dy2 = y2 - y3;\n var cp1LenSqr = dx1 * dx1 + dy1 * dy1;\n var cp2LenSqr = dx2 * dx2 + dy2 * dy2;\n if (cp1LenSqr < PIXEL_DISTANCE_SQR && cp2LenSqr < PIXEL_DISTANCE_SQR) {\n out.push(x3, y3);\n return;\n }\n var projLen1 = dx * dx1 + dy * dy1;\n var projLen2 = -dx * dx2 - dy * dy2;\n var d1Sqr = cp1LenSqr - projLen1 * projLen1;\n var d2Sqr = cp2LenSqr - projLen2 * projLen2;\n if (d1Sqr < PIXEL_DISTANCE_SQR && projLen1 >= 0\n && d2Sqr < PIXEL_DISTANCE_SQR && projLen2 >= 0) {\n out.push(x3, y3);\n return;\n }\n var tmpSegX = [];\n var tmpSegY = [];\n cubicSubdivide(x0, x1, x2, x3, 0.5, tmpSegX);\n cubicSubdivide(y0, y1, y2, y3, 0.5, tmpSegY);\n adpativeBezier(tmpSegX[0], tmpSegY[0], tmpSegX[1], tmpSegY[1], tmpSegX[2], tmpSegY[2], tmpSegX[3], tmpSegY[3], out, scale);\n adpativeBezier(tmpSegX[4], tmpSegY[4], tmpSegX[5], tmpSegY[5], tmpSegX[6], tmpSegY[6], tmpSegX[7], tmpSegY[7], out, scale);\n}\nexport function pathToPolygons(path, scale) {\n var bezierArrayGroups = pathToBezierCurves(path);\n var polygons = [];\n scale = scale || 1;\n for (var i = 0; i < bezierArrayGroups.length; i++) {\n var beziers = bezierArrayGroups[i];\n var polygon = [];\n var x0 = beziers[0];\n var y0 = beziers[1];\n polygon.push(x0, y0);\n for (var k = 2; k < beziers.length;) {\n var x1 = beziers[k++];\n var y1 = beziers[k++];\n var x2 = beziers[k++];\n var y2 = beziers[k++];\n var x3 = beziers[k++];\n var y3 = beziers[k++];\n adpativeBezier(x0, y0, x1, y1, x2, y2, x3, y3, polygon, scale);\n x0 = x3;\n y0 = y3;\n }\n polygons.push(polygon);\n }\n return polygons;\n}\n","import { fromPoints } from '../core/bbox.js';\nimport BoundingRect from '../core/BoundingRect.js';\nimport Point from '../core/Point.js';\nimport { map } from '../core/util.js';\nimport Polygon from '../graphic/shape/Polygon.js';\nimport Rect from '../graphic/shape/Rect.js';\nimport Sector from '../graphic/shape/Sector.js';\nimport { pathToPolygons } from './convertPath.js';\nimport { clonePath } from './path.js';\nfunction getDividingGrids(dimSize, rowDim, count) {\n var rowSize = dimSize[rowDim];\n var columnSize = dimSize[1 - rowDim];\n var ratio = Math.abs(rowSize / columnSize);\n var rowCount = Math.ceil(Math.sqrt(ratio * count));\n var columnCount = Math.floor(count / rowCount);\n if (columnCount === 0) {\n columnCount = 1;\n rowCount = count;\n }\n var grids = [];\n for (var i = 0; i < rowCount; i++) {\n grids.push(columnCount);\n }\n var currentCount = rowCount * columnCount;\n var remained = count - currentCount;\n if (remained > 0) {\n for (var i = 0; i < remained; i++) {\n grids[i % rowCount] += 1;\n }\n }\n return grids;\n}\nfunction divideSector(sectorShape, count, outShapes) {\n var r0 = sectorShape.r0;\n var r = sectorShape.r;\n var startAngle = sectorShape.startAngle;\n var endAngle = sectorShape.endAngle;\n var angle = Math.abs(endAngle - startAngle);\n var arcLen = angle * r;\n var deltaR = r - r0;\n var isAngleRow = arcLen > Math.abs(deltaR);\n var grids = getDividingGrids([arcLen, deltaR], isAngleRow ? 0 : 1, count);\n var rowSize = (isAngleRow ? angle : deltaR) / grids.length;\n for (var row = 0; row < grids.length; row++) {\n var columnSize = (isAngleRow ? deltaR : angle) / grids[row];\n for (var column = 0; column < grids[row]; column++) {\n var newShape = {};\n if (isAngleRow) {\n newShape.startAngle = startAngle + rowSize * row;\n newShape.endAngle = startAngle + rowSize * (row + 1);\n newShape.r0 = r0 + columnSize * column;\n newShape.r = r0 + columnSize * (column + 1);\n }\n else {\n newShape.startAngle = startAngle + columnSize * column;\n newShape.endAngle = startAngle + columnSize * (column + 1);\n newShape.r0 = r0 + rowSize * row;\n newShape.r = r0 + rowSize * (row + 1);\n }\n newShape.clockwise = sectorShape.clockwise;\n newShape.cx = sectorShape.cx;\n newShape.cy = sectorShape.cy;\n outShapes.push(newShape);\n }\n }\n}\nfunction divideRect(rectShape, count, outShapes) {\n var width = rectShape.width;\n var height = rectShape.height;\n var isHorizontalRow = width > height;\n var grids = getDividingGrids([width, height], isHorizontalRow ? 0 : 1, count);\n var rowSizeDim = isHorizontalRow ? 'width' : 'height';\n var columnSizeDim = isHorizontalRow ? 'height' : 'width';\n var rowDim = isHorizontalRow ? 'x' : 'y';\n var columnDim = isHorizontalRow ? 'y' : 'x';\n var rowSize = rectShape[rowSizeDim] / grids.length;\n for (var row = 0; row < grids.length; row++) {\n var columnSize = rectShape[columnSizeDim] / grids[row];\n for (var column = 0; column < grids[row]; column++) {\n var newShape = {};\n newShape[rowDim] = row * rowSize;\n newShape[columnDim] = column * columnSize;\n newShape[rowSizeDim] = rowSize;\n newShape[columnSizeDim] = columnSize;\n newShape.x += rectShape.x;\n newShape.y += rectShape.y;\n outShapes.push(newShape);\n }\n }\n}\nfunction crossProduct2d(x1, y1, x2, y2) {\n return x1 * y2 - x2 * y1;\n}\nfunction lineLineIntersect(a1x, a1y, a2x, a2y, b1x, b1y, b2x, b2y) {\n var mx = a2x - a1x;\n var my = a2y - a1y;\n var nx = b2x - b1x;\n var ny = b2y - b1y;\n var nmCrossProduct = crossProduct2d(nx, ny, mx, my);\n if (Math.abs(nmCrossProduct) < 1e-6) {\n return null;\n }\n var b1a1x = a1x - b1x;\n var b1a1y = a1y - b1y;\n var p = crossProduct2d(b1a1x, b1a1y, nx, ny) / nmCrossProduct;\n if (p < 0 || p > 1) {\n return null;\n }\n return new Point(p * mx + a1x, p * my + a1y);\n}\nfunction projPtOnLine(pt, lineA, lineB) {\n var dir = new Point();\n Point.sub(dir, lineB, lineA);\n dir.normalize();\n var dir2 = new Point();\n Point.sub(dir2, pt, lineA);\n var len = dir2.dot(dir);\n return len;\n}\nfunction addToPoly(poly, pt) {\n var last = poly[poly.length - 1];\n if (last && last[0] === pt[0] && last[1] === pt[1]) {\n return;\n }\n poly.push(pt);\n}\nfunction splitPolygonByLine(points, lineA, lineB) {\n var len = points.length;\n var intersections = [];\n for (var i = 0; i < len; i++) {\n var p0 = points[i];\n var p1 = points[(i + 1) % len];\n var intersectionPt = lineLineIntersect(p0[0], p0[1], p1[0], p1[1], lineA.x, lineA.y, lineB.x, lineB.y);\n if (intersectionPt) {\n intersections.push({\n projPt: projPtOnLine(intersectionPt, lineA, lineB),\n pt: intersectionPt,\n idx: i\n });\n }\n }\n if (intersections.length < 2) {\n return [{ points: points }, { points: points }];\n }\n intersections.sort(function (a, b) {\n return a.projPt - b.projPt;\n });\n var splitPt0 = intersections[0];\n var splitPt1 = intersections[intersections.length - 1];\n if (splitPt1.idx < splitPt0.idx) {\n var tmp = splitPt0;\n splitPt0 = splitPt1;\n splitPt1 = tmp;\n }\n var splitPt0Arr = [splitPt0.pt.x, splitPt0.pt.y];\n var splitPt1Arr = [splitPt1.pt.x, splitPt1.pt.y];\n var newPolyA = [splitPt0Arr];\n var newPolyB = [splitPt1Arr];\n for (var i = splitPt0.idx + 1; i <= splitPt1.idx; i++) {\n addToPoly(newPolyA, points[i].slice());\n }\n addToPoly(newPolyA, splitPt1Arr);\n addToPoly(newPolyA, splitPt0Arr);\n for (var i = splitPt1.idx + 1; i <= splitPt0.idx + len; i++) {\n addToPoly(newPolyB, points[i % len].slice());\n }\n addToPoly(newPolyB, splitPt0Arr);\n addToPoly(newPolyB, splitPt1Arr);\n return [{\n points: newPolyA\n }, {\n points: newPolyB\n }];\n}\nfunction binaryDividePolygon(polygonShape) {\n var points = polygonShape.points;\n var min = [];\n var max = [];\n fromPoints(points, min, max);\n var boundingRect = new BoundingRect(min[0], min[1], max[0] - min[0], max[1] - min[1]);\n var width = boundingRect.width;\n var height = boundingRect.height;\n var x = boundingRect.x;\n var y = boundingRect.y;\n var pt0 = new Point();\n var pt1 = new Point();\n if (width > height) {\n pt0.x = pt1.x = x + width / 2;\n pt0.y = y;\n pt1.y = y + height;\n }\n else {\n pt0.y = pt1.y = y + height / 2;\n pt0.x = x;\n pt1.x = x + width;\n }\n return splitPolygonByLine(points, pt0, pt1);\n}\nfunction binaryDivideRecursive(divider, shape, count, out) {\n if (count === 1) {\n out.push(shape);\n }\n else {\n var mid = Math.floor(count / 2);\n var sub = divider(shape);\n binaryDivideRecursive(divider, sub[0], mid, out);\n binaryDivideRecursive(divider, sub[1], count - mid, out);\n }\n return out;\n}\nexport function clone(path, count) {\n var paths = [];\n for (var i = 0; i < count; i++) {\n paths.push(clonePath(path));\n }\n return paths;\n}\nfunction copyPathProps(source, target) {\n target.setStyle(source.style);\n target.z = source.z;\n target.z2 = source.z2;\n target.zlevel = source.zlevel;\n}\nfunction polygonConvert(points) {\n var out = [];\n for (var i = 0; i < points.length;) {\n out.push([points[i++], points[i++]]);\n }\n return out;\n}\nexport function split(path, count) {\n var outShapes = [];\n var shape = path.shape;\n var OutShapeCtor;\n switch (path.type) {\n case 'rect':\n divideRect(shape, count, outShapes);\n OutShapeCtor = Rect;\n break;\n case 'sector':\n divideSector(shape, count, outShapes);\n OutShapeCtor = Sector;\n break;\n case 'circle':\n divideSector({\n r0: 0, r: shape.r, startAngle: 0, endAngle: Math.PI * 2,\n cx: shape.cx, cy: shape.cy\n }, count, outShapes);\n OutShapeCtor = Sector;\n break;\n default:\n var m = path.getComputedTransform();\n var scale = m ? Math.sqrt(Math.max(m[0] * m[0] + m[1] * m[1], m[2] * m[2] + m[3] * m[3])) : 1;\n var polygons = map(pathToPolygons(path.getUpdatedPathProxy(), scale), function (poly) { return polygonConvert(poly); });\n var polygonCount = polygons.length;\n if (polygonCount === 0) {\n binaryDivideRecursive(binaryDividePolygon, {\n points: polygons[0]\n }, count, outShapes);\n }\n else if (polygonCount === count) {\n for (var i = 0; i < polygonCount; i++) {\n outShapes.push({\n points: polygons[i]\n });\n }\n }\n else {\n var totalArea_1 = 0;\n var items = map(polygons, function (poly) {\n var min = [];\n var max = [];\n fromPoints(poly, min, max);\n var area = (max[1] - min[1]) * (max[0] - min[0]);\n totalArea_1 += area;\n return { poly: poly, area: area };\n });\n items.sort(function (a, b) { return b.area - a.area; });\n var left = count;\n for (var i = 0; i < polygonCount; i++) {\n var item = items[i];\n if (left <= 0) {\n break;\n }\n var selfCount = i === polygonCount - 1\n ? left\n : Math.ceil(item.area / totalArea_1 * count);\n if (selfCount < 0) {\n continue;\n }\n binaryDivideRecursive(binaryDividePolygon, {\n points: item.poly\n }, selfCount, outShapes);\n left -= selfCount;\n }\n ;\n }\n OutShapeCtor = Polygon;\n break;\n }\n if (!OutShapeCtor) {\n return clone(path, count);\n }\n var out = [];\n for (var i = 0; i < outShapes.length; i++) {\n var subPath = new OutShapeCtor();\n subPath.setShape(outShapes[i]);\n copyPathProps(path, subPath);\n out.push(subPath);\n }\n return out;\n}\n","import { cubicSubdivide } from '../core/curve.js';\nimport Path from '../graphic/Path.js';\nimport { defaults, map } from '../core/util.js';\nimport { lerp } from '../core/vector.js';\nimport { clonePath } from './path.js';\nimport Transformable from '../core/Transformable.js';\nimport { split } from './dividePath.js';\nimport { pathToBezierCurves } from './convertPath.js';\nfunction alignSubpath(subpath1, subpath2) {\n var len1 = subpath1.length;\n var len2 = subpath2.length;\n if (len1 === len2) {\n return [subpath1, subpath2];\n }\n var tmpSegX = [];\n var tmpSegY = [];\n var shorterPath = len1 < len2 ? subpath1 : subpath2;\n var shorterLen = Math.min(len1, len2);\n var diff = Math.abs(len2 - len1) / 6;\n var shorterBezierCount = (shorterLen - 2) / 6;\n var eachCurveSubDivCount = Math.ceil(diff / shorterBezierCount) + 1;\n var newSubpath = [shorterPath[0], shorterPath[1]];\n var remained = diff;\n for (var i = 2; i < shorterLen;) {\n var x0 = shorterPath[i - 2];\n var y0 = shorterPath[i - 1];\n var x1 = shorterPath[i++];\n var y1 = shorterPath[i++];\n var x2 = shorterPath[i++];\n var y2 = shorterPath[i++];\n var x3 = shorterPath[i++];\n var y3 = shorterPath[i++];\n if (remained <= 0) {\n newSubpath.push(x1, y1, x2, y2, x3, y3);\n continue;\n }\n var actualSubDivCount = Math.min(remained, eachCurveSubDivCount - 1) + 1;\n for (var k = 1; k <= actualSubDivCount; k++) {\n var p = k / actualSubDivCount;\n cubicSubdivide(x0, x1, x2, x3, p, tmpSegX);\n cubicSubdivide(y0, y1, y2, y3, p, tmpSegY);\n x0 = tmpSegX[3];\n y0 = tmpSegY[3];\n newSubpath.push(tmpSegX[1], tmpSegY[1], tmpSegX[2], tmpSegY[2], x0, y0);\n x1 = tmpSegX[5];\n y1 = tmpSegY[5];\n x2 = tmpSegX[6];\n y2 = tmpSegY[6];\n }\n remained -= actualSubDivCount - 1;\n }\n return shorterPath === subpath1 ? [newSubpath, subpath2] : [subpath1, newSubpath];\n}\nfunction createSubpath(lastSubpathSubpath, otherSubpath) {\n var len = lastSubpathSubpath.length;\n var lastX = lastSubpathSubpath[len - 2];\n var lastY = lastSubpathSubpath[len - 1];\n var newSubpath = [];\n for (var i = 0; i < otherSubpath.length;) {\n newSubpath[i++] = lastX;\n newSubpath[i++] = lastY;\n }\n return newSubpath;\n}\nexport function alignBezierCurves(array1, array2) {\n var _a;\n var lastSubpath1;\n var lastSubpath2;\n var newArray1 = [];\n var newArray2 = [];\n for (var i = 0; i < Math.max(array1.length, array2.length); i++) {\n var subpath1 = array1[i];\n var subpath2 = array2[i];\n var newSubpath1 = void 0;\n var newSubpath2 = void 0;\n if (!subpath1) {\n newSubpath1 = createSubpath(lastSubpath1 || subpath2, subpath2);\n newSubpath2 = subpath2;\n }\n else if (!subpath2) {\n newSubpath2 = createSubpath(lastSubpath2 || subpath1, subpath1);\n newSubpath1 = subpath1;\n }\n else {\n _a = alignSubpath(subpath1, subpath2), newSubpath1 = _a[0], newSubpath2 = _a[1];\n lastSubpath1 = newSubpath1;\n lastSubpath2 = newSubpath2;\n }\n newArray1.push(newSubpath1);\n newArray2.push(newSubpath2);\n }\n return [newArray1, newArray2];\n}\nexport function centroid(array) {\n var signedArea = 0;\n var cx = 0;\n var cy = 0;\n var len = array.length;\n for (var i = 0, j = len - 2; i < len; j = i, i += 2) {\n var x0 = array[j];\n var y0 = array[j + 1];\n var x1 = array[i];\n var y1 = array[i + 1];\n var a = x0 * y1 - x1 * y0;\n signedArea += a;\n cx += (x0 + x1) * a;\n cy += (y0 + y1) * a;\n }\n if (signedArea === 0) {\n return [array[0] || 0, array[1] || 0];\n }\n return [cx / signedArea / 3, cy / signedArea / 3, signedArea];\n}\nfunction findBestRingOffset(fromSubBeziers, toSubBeziers, fromCp, toCp) {\n var bezierCount = (fromSubBeziers.length - 2) / 6;\n var bestScore = Infinity;\n var bestOffset = 0;\n var len = fromSubBeziers.length;\n var len2 = len - 2;\n for (var offset = 0; offset < bezierCount; offset++) {\n var cursorOffset = offset * 6;\n var score = 0;\n for (var k = 0; k < len; k += 2) {\n var idx = k === 0 ? cursorOffset : ((cursorOffset + k - 2) % len2 + 2);\n var x0 = fromSubBeziers[idx] - fromCp[0];\n var y0 = fromSubBeziers[idx + 1] - fromCp[1];\n var x1 = toSubBeziers[k] - toCp[0];\n var y1 = toSubBeziers[k + 1] - toCp[1];\n var dx = x1 - x0;\n var dy = y1 - y0;\n score += dx * dx + dy * dy;\n }\n if (score < bestScore) {\n bestScore = score;\n bestOffset = offset;\n }\n }\n return bestOffset;\n}\nfunction reverse(array) {\n var newArr = [];\n var len = array.length;\n for (var i = 0; i < len; i += 2) {\n newArr[i] = array[len - i - 2];\n newArr[i + 1] = array[len - i - 1];\n }\n return newArr;\n}\nfunction findBestMorphingRotation(fromArr, toArr, searchAngleIteration, searchAngleRange) {\n var result = [];\n var fromNeedsReverse;\n for (var i = 0; i < fromArr.length; i++) {\n var fromSubpathBezier = fromArr[i];\n var toSubpathBezier = toArr[i];\n var fromCp = centroid(fromSubpathBezier);\n var toCp = centroid(toSubpathBezier);\n if (fromNeedsReverse == null) {\n fromNeedsReverse = fromCp[2] < 0 !== toCp[2] < 0;\n }\n var newFromSubpathBezier = [];\n var newToSubpathBezier = [];\n var bestAngle = 0;\n var bestScore = Infinity;\n var tmpArr = [];\n var len = fromSubpathBezier.length;\n if (fromNeedsReverse) {\n fromSubpathBezier = reverse(fromSubpathBezier);\n }\n var offset = findBestRingOffset(fromSubpathBezier, toSubpathBezier, fromCp, toCp) * 6;\n var len2 = len - 2;\n for (var k = 0; k < len2; k += 2) {\n var idx = (offset + k) % len2 + 2;\n newFromSubpathBezier[k + 2] = fromSubpathBezier[idx] - fromCp[0];\n newFromSubpathBezier[k + 3] = fromSubpathBezier[idx + 1] - fromCp[1];\n }\n newFromSubpathBezier[0] = fromSubpathBezier[offset] - fromCp[0];\n newFromSubpathBezier[1] = fromSubpathBezier[offset + 1] - fromCp[1];\n if (searchAngleIteration > 0) {\n var step = searchAngleRange / searchAngleIteration;\n for (var angle = -searchAngleRange / 2; angle <= searchAngleRange / 2; angle += step) {\n var sa = Math.sin(angle);\n var ca = Math.cos(angle);\n var score = 0;\n for (var k = 0; k < fromSubpathBezier.length; k += 2) {\n var x0 = newFromSubpathBezier[k];\n var y0 = newFromSubpathBezier[k + 1];\n var x1 = toSubpathBezier[k] - toCp[0];\n var y1 = toSubpathBezier[k + 1] - toCp[1];\n var newX1 = x1 * ca - y1 * sa;\n var newY1 = x1 * sa + y1 * ca;\n tmpArr[k] = newX1;\n tmpArr[k + 1] = newY1;\n var dx = newX1 - x0;\n var dy = newY1 - y0;\n score += dx * dx + dy * dy;\n }\n if (score < bestScore) {\n bestScore = score;\n bestAngle = angle;\n for (var m = 0; m < tmpArr.length; m++) {\n newToSubpathBezier[m] = tmpArr[m];\n }\n }\n }\n }\n else {\n for (var i_1 = 0; i_1 < len; i_1 += 2) {\n newToSubpathBezier[i_1] = toSubpathBezier[i_1] - toCp[0];\n newToSubpathBezier[i_1 + 1] = toSubpathBezier[i_1 + 1] - toCp[1];\n }\n }\n result.push({\n from: newFromSubpathBezier,\n to: newToSubpathBezier,\n fromCp: fromCp,\n toCp: toCp,\n rotation: -bestAngle\n });\n }\n return result;\n}\nexport function isCombineMorphing(path) {\n return path.__isCombineMorphing;\n}\nexport function isMorphing(el) {\n return el.__morphT >= 0;\n}\nvar SAVED_METHOD_PREFIX = '__mOriginal_';\nfunction saveAndModifyMethod(obj, methodName, modifiers) {\n var savedMethodName = SAVED_METHOD_PREFIX + methodName;\n var originalMethod = obj[savedMethodName] || obj[methodName];\n if (!obj[savedMethodName]) {\n obj[savedMethodName] = obj[methodName];\n }\n var replace = modifiers.replace;\n var after = modifiers.after;\n var before = modifiers.before;\n obj[methodName] = function () {\n var args = arguments;\n var res;\n before && before.apply(this, args);\n if (replace) {\n res = replace.apply(this, args);\n }\n else {\n res = originalMethod.apply(this, args);\n }\n after && after.apply(this, args);\n return res;\n };\n}\nfunction restoreMethod(obj, methodName) {\n var savedMethodName = SAVED_METHOD_PREFIX + methodName;\n if (obj[savedMethodName]) {\n obj[methodName] = obj[savedMethodName];\n obj[savedMethodName] = null;\n }\n}\nfunction applyTransformOnBeziers(bezierCurves, mm) {\n for (var i = 0; i < bezierCurves.length; i++) {\n var subBeziers = bezierCurves[i];\n for (var k = 0; k < subBeziers.length;) {\n var x = subBeziers[k];\n var y = subBeziers[k + 1];\n subBeziers[k++] = mm[0] * x + mm[2] * y + mm[4];\n subBeziers[k++] = mm[1] * x + mm[3] * y + mm[5];\n }\n }\n}\nfunction prepareMorphPath(fromPath, toPath) {\n var fromPathProxy = fromPath.getUpdatedPathProxy();\n var toPathProxy = toPath.getUpdatedPathProxy();\n var _a = alignBezierCurves(pathToBezierCurves(fromPathProxy), pathToBezierCurves(toPathProxy)), fromBezierCurves = _a[0], toBezierCurves = _a[1];\n var fromPathTransform = fromPath.getComputedTransform();\n var toPathTransform = toPath.getComputedTransform();\n function updateIdentityTransform() {\n this.transform = null;\n }\n fromPathTransform && applyTransformOnBeziers(fromBezierCurves, fromPathTransform);\n toPathTransform && applyTransformOnBeziers(toBezierCurves, toPathTransform);\n saveAndModifyMethod(toPath, 'updateTransform', { replace: updateIdentityTransform });\n toPath.transform = null;\n var morphingData = findBestMorphingRotation(fromBezierCurves, toBezierCurves, 10, Math.PI);\n var tmpArr = [];\n saveAndModifyMethod(toPath, 'buildPath', { replace: function (path) {\n var t = toPath.__morphT;\n var onet = 1 - t;\n var newCp = [];\n for (var i = 0; i < morphingData.length; i++) {\n var item = morphingData[i];\n var from = item.from;\n var to = item.to;\n var angle = item.rotation * t;\n var fromCp = item.fromCp;\n var toCp = item.toCp;\n var sa = Math.sin(angle);\n var ca = Math.cos(angle);\n lerp(newCp, fromCp, toCp, t);\n for (var m = 0; m < from.length; m += 2) {\n var x0_1 = from[m];\n var y0_1 = from[m + 1];\n var x1 = to[m];\n var y1 = to[m + 1];\n var x = x0_1 * onet + x1 * t;\n var y = y0_1 * onet + y1 * t;\n tmpArr[m] = (x * ca - y * sa) + newCp[0];\n tmpArr[m + 1] = (x * sa + y * ca) + newCp[1];\n }\n var x0 = tmpArr[0];\n var y0 = tmpArr[1];\n path.moveTo(x0, y0);\n for (var m = 2; m < from.length;) {\n var x1 = tmpArr[m++];\n var y1 = tmpArr[m++];\n var x2 = tmpArr[m++];\n var y2 = tmpArr[m++];\n var x3 = tmpArr[m++];\n var y3 = tmpArr[m++];\n if (x0 === x1 && y0 === y1 && x2 === x3 && y2 === y3) {\n path.lineTo(x3, y3);\n }\n else {\n path.bezierCurveTo(x1, y1, x2, y2, x3, y3);\n }\n x0 = x3;\n y0 = y3;\n }\n }\n } });\n}\nexport function morphPath(fromPath, toPath, animationOpts) {\n if (!fromPath || !toPath) {\n return toPath;\n }\n var oldDone = animationOpts.done;\n var oldDuring = animationOpts.during;\n prepareMorphPath(fromPath, toPath);\n toPath.__morphT = 0;\n function restoreToPath() {\n restoreMethod(toPath, 'buildPath');\n restoreMethod(toPath, 'updateTransform');\n toPath.__morphT = -1;\n toPath.createPathProxy();\n toPath.dirtyShape();\n }\n toPath.animateTo({\n __morphT: 1\n }, defaults({\n during: function (p) {\n toPath.dirtyShape();\n oldDuring && oldDuring(p);\n },\n done: function () {\n restoreToPath();\n oldDone && oldDone();\n }\n }, animationOpts));\n return toPath;\n}\nfunction hilbert(x, y, minX, minY, maxX, maxY) {\n var bits = 16;\n x = (maxX === minX) ? 0 : Math.round(32767 * (x - minX) / (maxX - minX));\n y = (maxY === minY) ? 0 : Math.round(32767 * (y - minY) / (maxY - minY));\n var d = 0;\n var tmp;\n for (var s = (1 << bits) / 2; s > 0; s /= 2) {\n var rx = 0;\n var ry = 0;\n if ((x & s) > 0) {\n rx = 1;\n }\n if ((y & s) > 0) {\n ry = 1;\n }\n d += s * s * ((3 * rx) ^ ry);\n if (ry === 0) {\n if (rx === 1) {\n x = s - 1 - x;\n y = s - 1 - y;\n }\n tmp = x;\n x = y;\n y = tmp;\n }\n }\n return d;\n}\nfunction sortPaths(pathList) {\n var xMin = Infinity;\n var yMin = Infinity;\n var xMax = -Infinity;\n var yMax = -Infinity;\n var cps = map(pathList, function (path) {\n var rect = path.getBoundingRect();\n var m = path.getComputedTransform();\n var x = rect.x + rect.width / 2 + (m ? m[4] : 0);\n var y = rect.y + rect.height / 2 + (m ? m[5] : 0);\n xMin = Math.min(x, xMin);\n yMin = Math.min(y, yMin);\n xMax = Math.max(x, xMax);\n yMax = Math.max(y, yMax);\n return [x, y];\n });\n var items = map(cps, function (cp, idx) {\n return {\n cp: cp,\n z: hilbert(cp[0], cp[1], xMin, yMin, xMax, yMax),\n path: pathList[idx]\n };\n });\n return items.sort(function (a, b) { return a.z - b.z; }).map(function (item) { return item.path; });\n}\n;\nfunction defaultDividePath(param) {\n return split(param.path, param.count);\n}\nfunction createEmptyReturn() {\n return {\n fromIndividuals: [],\n toIndividuals: [],\n count: 0\n };\n}\nexport function combineMorph(fromList, toPath, animationOpts) {\n var fromPathList = [];\n function addFromPath(fromList) {\n for (var i = 0; i < fromList.length; i++) {\n var from = fromList[i];\n if (isCombineMorphing(from)) {\n addFromPath(from.childrenRef());\n }\n else if (from instanceof Path) {\n fromPathList.push(from);\n }\n }\n }\n addFromPath(fromList);\n var separateCount = fromPathList.length;\n if (!separateCount) {\n return createEmptyReturn();\n }\n var dividePath = animationOpts.dividePath || defaultDividePath;\n var toSubPathList = dividePath({\n path: toPath, count: separateCount\n });\n if (toSubPathList.length !== separateCount) {\n console.error('Invalid morphing: unmatched splitted path');\n return createEmptyReturn();\n }\n fromPathList = sortPaths(fromPathList);\n toSubPathList = sortPaths(toSubPathList);\n var oldDone = animationOpts.done;\n var oldDuring = animationOpts.during;\n var individualDelay = animationOpts.individualDelay;\n var identityTransform = new Transformable();\n for (var i = 0; i < separateCount; i++) {\n var from = fromPathList[i];\n var to = toSubPathList[i];\n to.parent = toPath;\n to.copyTransform(identityTransform);\n if (!individualDelay) {\n prepareMorphPath(from, to);\n }\n }\n toPath.__isCombineMorphing = true;\n toPath.childrenRef = function () {\n return toSubPathList;\n };\n function addToSubPathListToZr(zr) {\n for (var i = 0; i < toSubPathList.length; i++) {\n toSubPathList[i].addSelfToZr(zr);\n }\n }\n saveAndModifyMethod(toPath, 'addSelfToZr', {\n after: function (zr) {\n addToSubPathListToZr(zr);\n }\n });\n saveAndModifyMethod(toPath, 'removeSelfFromZr', {\n after: function (zr) {\n for (var i = 0; i < toSubPathList.length; i++) {\n toSubPathList[i].removeSelfFromZr(zr);\n }\n }\n });\n function restoreToPath() {\n toPath.__isCombineMorphing = false;\n toPath.__morphT = -1;\n toPath.childrenRef = null;\n restoreMethod(toPath, 'addSelfToZr');\n restoreMethod(toPath, 'removeSelfFromZr');\n }\n var toLen = toSubPathList.length;\n if (individualDelay) {\n var animating_1 = toLen;\n var eachDone = function () {\n animating_1--;\n if (animating_1 === 0) {\n restoreToPath();\n oldDone && oldDone();\n }\n };\n for (var i = 0; i < toLen; i++) {\n var indivdualAnimationOpts = individualDelay ? defaults({\n delay: (animationOpts.delay || 0) + individualDelay(i, toLen, fromPathList[i], toSubPathList[i]),\n done: eachDone\n }, animationOpts) : animationOpts;\n morphPath(fromPathList[i], toSubPathList[i], indivdualAnimationOpts);\n }\n }\n else {\n toPath.__morphT = 0;\n toPath.animateTo({\n __morphT: 1\n }, defaults({\n during: function (p) {\n for (var i = 0; i < toLen; i++) {\n var child = toSubPathList[i];\n child.__morphT = toPath.__morphT;\n child.dirtyShape();\n }\n oldDuring && oldDuring(p);\n },\n done: function () {\n restoreToPath();\n for (var i = 0; i < fromList.length; i++) {\n restoreMethod(fromList[i], 'updateTransform');\n }\n oldDone && oldDone();\n }\n }, animationOpts));\n }\n if (toPath.__zr) {\n addToSubPathListToZr(toPath.__zr);\n }\n return {\n fromIndividuals: fromPathList,\n toIndividuals: toSubPathList,\n count: toLen\n };\n}\nexport function separateMorph(fromPath, toPathList, animationOpts) {\n var toLen = toPathList.length;\n var fromPathList = [];\n var dividePath = animationOpts.dividePath || defaultDividePath;\n function addFromPath(fromList) {\n for (var i = 0; i < fromList.length; i++) {\n var from = fromList[i];\n if (isCombineMorphing(from)) {\n addFromPath(from.childrenRef());\n }\n else if (from instanceof Path) {\n fromPathList.push(from);\n }\n }\n }\n if (isCombineMorphing(fromPath)) {\n addFromPath(fromPath.childrenRef());\n var fromLen = fromPathList.length;\n if (fromLen < toLen) {\n var k = 0;\n for (var i = fromLen; i < toLen; i++) {\n fromPathList.push(clonePath(fromPathList[k++ % fromLen]));\n }\n }\n fromPathList.length = toLen;\n }\n else {\n fromPathList = dividePath({ path: fromPath, count: toLen });\n var fromPathTransform = fromPath.getComputedTransform();\n for (var i = 0; i < fromPathList.length; i++) {\n fromPathList[i].setLocalTransform(fromPathTransform);\n }\n if (fromPathList.length !== toLen) {\n console.error('Invalid morphing: unmatched splitted path');\n return createEmptyReturn();\n }\n }\n fromPathList = sortPaths(fromPathList);\n toPathList = sortPaths(toPathList);\n var individualDelay = animationOpts.individualDelay;\n for (var i = 0; i < toLen; i++) {\n var indivdualAnimationOpts = individualDelay ? defaults({\n delay: (animationOpts.delay || 0) + individualDelay(i, toLen, fromPathList[i], toPathList[i])\n }, animationOpts) : animationOpts;\n morphPath(fromPathList[i], toPathList[i], indivdualAnimationOpts);\n }\n return {\n fromIndividuals: fromPathList,\n toIndividuals: toPathList,\n count: toPathList.length\n };\n}\nexport { split as defaultDividePath };\n","import Group from '../graphic/Group.js';\nimport ZRImage from '../graphic/Image.js';\nimport Circle from '../graphic/shape/Circle.js';\nimport Rect from '../graphic/shape/Rect.js';\nimport Ellipse from '../graphic/shape/Ellipse.js';\nimport Line from '../graphic/shape/Line.js';\nimport Polygon from '../graphic/shape/Polygon.js';\nimport Polyline from '../graphic/shape/Polyline.js';\nimport * as matrix from '../core/matrix.js';\nimport { createFromString } from './path.js';\nimport { defaults, trim, each, map, keys, hasOwn } from '../core/util.js';\nimport LinearGradient from '../graphic/LinearGradient.js';\nimport RadialGradient from '../graphic/RadialGradient.js';\nimport TSpan from '../graphic/TSpan.js';\nimport { parseXML } from './parseXML.js';\n;\nvar nodeParsers;\nvar INHERITABLE_STYLE_ATTRIBUTES_MAP = {\n 'fill': 'fill',\n 'stroke': 'stroke',\n 'stroke-width': 'lineWidth',\n 'opacity': 'opacity',\n 'fill-opacity': 'fillOpacity',\n 'stroke-opacity': 'strokeOpacity',\n 'stroke-dasharray': 'lineDash',\n 'stroke-dashoffset': 'lineDashOffset',\n 'stroke-linecap': 'lineCap',\n 'stroke-linejoin': 'lineJoin',\n 'stroke-miterlimit': 'miterLimit',\n 'font-family': 'fontFamily',\n 'font-size': 'fontSize',\n 'font-style': 'fontStyle',\n 'font-weight': 'fontWeight',\n 'text-anchor': 'textAlign',\n 'visibility': 'visibility',\n 'display': 'display'\n};\nvar INHERITABLE_STYLE_ATTRIBUTES_MAP_KEYS = keys(INHERITABLE_STYLE_ATTRIBUTES_MAP);\nvar SELF_STYLE_ATTRIBUTES_MAP = {\n 'alignment-baseline': 'textBaseline',\n 'stop-color': 'stopColor'\n};\nvar SELF_STYLE_ATTRIBUTES_MAP_KEYS = keys(SELF_STYLE_ATTRIBUTES_MAP);\nvar SVGParser = (function () {\n function SVGParser() {\n this._defs = {};\n this._root = null;\n }\n SVGParser.prototype.parse = function (xml, opt) {\n opt = opt || {};\n var svg = parseXML(xml);\n if (process.env.NODE_ENV !== 'production') {\n if (!svg) {\n throw new Error('Illegal svg');\n }\n }\n this._defsUsePending = [];\n var root = new Group();\n this._root = root;\n var named = [];\n var viewBox = svg.getAttribute('viewBox') || '';\n var width = parseFloat((svg.getAttribute('width') || opt.width));\n var height = parseFloat((svg.getAttribute('height') || opt.height));\n isNaN(width) && (width = null);\n isNaN(height) && (height = null);\n parseAttributes(svg, root, null, true, false);\n var child = svg.firstChild;\n while (child) {\n this._parseNode(child, root, named, null, false, false);\n child = child.nextSibling;\n }\n applyDefs(this._defs, this._defsUsePending);\n this._defsUsePending = [];\n var viewBoxRect;\n var viewBoxTransform;\n if (viewBox) {\n var viewBoxArr = splitNumberSequence(viewBox);\n if (viewBoxArr.length >= 4) {\n viewBoxRect = {\n x: parseFloat((viewBoxArr[0] || 0)),\n y: parseFloat((viewBoxArr[1] || 0)),\n width: parseFloat(viewBoxArr[2]),\n height: parseFloat(viewBoxArr[3])\n };\n }\n }\n if (viewBoxRect && width != null && height != null) {\n viewBoxTransform = makeViewBoxTransform(viewBoxRect, { x: 0, y: 0, width: width, height: height });\n if (!opt.ignoreViewBox) {\n var elRoot = root;\n root = new Group();\n root.add(elRoot);\n elRoot.scaleX = elRoot.scaleY = viewBoxTransform.scale;\n elRoot.x = viewBoxTransform.x;\n elRoot.y = viewBoxTransform.y;\n }\n }\n if (!opt.ignoreRootClip && width != null && height != null) {\n root.setClipPath(new Rect({\n shape: { x: 0, y: 0, width: width, height: height }\n }));\n }\n return {\n root: root,\n width: width,\n height: height,\n viewBoxRect: viewBoxRect,\n viewBoxTransform: viewBoxTransform,\n named: named\n };\n };\n SVGParser.prototype._parseNode = function (xmlNode, parentGroup, named, namedFrom, isInDefs, isInText) {\n var nodeName = xmlNode.nodeName.toLowerCase();\n var el;\n var namedFromForSub = namedFrom;\n if (nodeName === 'defs') {\n isInDefs = true;\n }\n if (nodeName === 'text') {\n isInText = true;\n }\n if (nodeName === 'defs' || nodeName === 'switch') {\n el = parentGroup;\n }\n else {\n if (!isInDefs) {\n var parser_1 = nodeParsers[nodeName];\n if (parser_1 && hasOwn(nodeParsers, nodeName)) {\n el = parser_1.call(this, xmlNode, parentGroup);\n var nameAttr = xmlNode.getAttribute('name');\n if (nameAttr) {\n var newNamed = {\n name: nameAttr,\n namedFrom: null,\n svgNodeTagLower: nodeName,\n el: el\n };\n named.push(newNamed);\n if (nodeName === 'g') {\n namedFromForSub = newNamed;\n }\n }\n else if (namedFrom) {\n named.push({\n name: namedFrom.name,\n namedFrom: namedFrom,\n svgNodeTagLower: nodeName,\n el: el\n });\n }\n parentGroup.add(el);\n }\n }\n var parser = paintServerParsers[nodeName];\n if (parser && hasOwn(paintServerParsers, nodeName)) {\n var def = parser.call(this, xmlNode);\n var id = xmlNode.getAttribute('id');\n if (id) {\n this._defs[id] = def;\n }\n }\n }\n if (el && el.isGroup) {\n var child = xmlNode.firstChild;\n while (child) {\n if (child.nodeType === 1) {\n this._parseNode(child, el, named, namedFromForSub, isInDefs, isInText);\n }\n else if (child.nodeType === 3 && isInText) {\n this._parseText(child, el);\n }\n child = child.nextSibling;\n }\n }\n };\n SVGParser.prototype._parseText = function (xmlNode, parentGroup) {\n var text = new TSpan({\n style: {\n text: xmlNode.textContent\n },\n silent: true,\n x: this._textX || 0,\n y: this._textY || 0\n });\n inheritStyle(parentGroup, text);\n parseAttributes(xmlNode, text, this._defsUsePending, false, false);\n applyTextAlignment(text, parentGroup);\n var textStyle = text.style;\n var fontSize = textStyle.fontSize;\n if (fontSize && fontSize < 9) {\n textStyle.fontSize = 9;\n text.scaleX *= fontSize / 9;\n text.scaleY *= fontSize / 9;\n }\n var font = (textStyle.fontSize || textStyle.fontFamily) && [\n textStyle.fontStyle,\n textStyle.fontWeight,\n (textStyle.fontSize || 12) + 'px',\n textStyle.fontFamily || 'sans-serif'\n ].join(' ');\n textStyle.font = font;\n var rect = text.getBoundingRect();\n this._textX += rect.width;\n parentGroup.add(text);\n return text;\n };\n SVGParser.internalField = (function () {\n nodeParsers = {\n 'g': function (xmlNode, parentGroup) {\n var g = new Group();\n inheritStyle(parentGroup, g);\n parseAttributes(xmlNode, g, this._defsUsePending, false, false);\n return g;\n },\n 'rect': function (xmlNode, parentGroup) {\n var rect = new Rect();\n inheritStyle(parentGroup, rect);\n parseAttributes(xmlNode, rect, this._defsUsePending, false, false);\n rect.setShape({\n x: parseFloat(xmlNode.getAttribute('x') || '0'),\n y: parseFloat(xmlNode.getAttribute('y') || '0'),\n width: parseFloat(xmlNode.getAttribute('width') || '0'),\n height: parseFloat(xmlNode.getAttribute('height') || '0')\n });\n rect.silent = true;\n return rect;\n },\n 'circle': function (xmlNode, parentGroup) {\n var circle = new Circle();\n inheritStyle(parentGroup, circle);\n parseAttributes(xmlNode, circle, this._defsUsePending, false, false);\n circle.setShape({\n cx: parseFloat(xmlNode.getAttribute('cx') || '0'),\n cy: parseFloat(xmlNode.getAttribute('cy') || '0'),\n r: parseFloat(xmlNode.getAttribute('r') || '0')\n });\n circle.silent = true;\n return circle;\n },\n 'line': function (xmlNode, parentGroup) {\n var line = new Line();\n inheritStyle(parentGroup, line);\n parseAttributes(xmlNode, line, this._defsUsePending, false, false);\n line.setShape({\n x1: parseFloat(xmlNode.getAttribute('x1') || '0'),\n y1: parseFloat(xmlNode.getAttribute('y1') || '0'),\n x2: parseFloat(xmlNode.getAttribute('x2') || '0'),\n y2: parseFloat(xmlNode.getAttribute('y2') || '0')\n });\n line.silent = true;\n return line;\n },\n 'ellipse': function (xmlNode, parentGroup) {\n var ellipse = new Ellipse();\n inheritStyle(parentGroup, ellipse);\n parseAttributes(xmlNode, ellipse, this._defsUsePending, false, false);\n ellipse.setShape({\n cx: parseFloat(xmlNode.getAttribute('cx') || '0'),\n cy: parseFloat(xmlNode.getAttribute('cy') || '0'),\n rx: parseFloat(xmlNode.getAttribute('rx') || '0'),\n ry: parseFloat(xmlNode.getAttribute('ry') || '0')\n });\n ellipse.silent = true;\n return ellipse;\n },\n 'polygon': function (xmlNode, parentGroup) {\n var pointsStr = xmlNode.getAttribute('points');\n var pointsArr;\n if (pointsStr) {\n pointsArr = parsePoints(pointsStr);\n }\n var polygon = new Polygon({\n shape: {\n points: pointsArr || []\n },\n silent: true\n });\n inheritStyle(parentGroup, polygon);\n parseAttributes(xmlNode, polygon, this._defsUsePending, false, false);\n return polygon;\n },\n 'polyline': function (xmlNode, parentGroup) {\n var pointsStr = xmlNode.getAttribute('points');\n var pointsArr;\n if (pointsStr) {\n pointsArr = parsePoints(pointsStr);\n }\n var polyline = new Polyline({\n shape: {\n points: pointsArr || []\n },\n silent: true\n });\n inheritStyle(parentGroup, polyline);\n parseAttributes(xmlNode, polyline, this._defsUsePending, false, false);\n return polyline;\n },\n 'image': function (xmlNode, parentGroup) {\n var img = new ZRImage();\n inheritStyle(parentGroup, img);\n parseAttributes(xmlNode, img, this._defsUsePending, false, false);\n img.setStyle({\n image: xmlNode.getAttribute('xlink:href') || xmlNode.getAttribute('href'),\n x: +xmlNode.getAttribute('x'),\n y: +xmlNode.getAttribute('y'),\n width: +xmlNode.getAttribute('width'),\n height: +xmlNode.getAttribute('height')\n });\n img.silent = true;\n return img;\n },\n 'text': function (xmlNode, parentGroup) {\n var x = xmlNode.getAttribute('x') || '0';\n var y = xmlNode.getAttribute('y') || '0';\n var dx = xmlNode.getAttribute('dx') || '0';\n var dy = xmlNode.getAttribute('dy') || '0';\n this._textX = parseFloat(x) + parseFloat(dx);\n this._textY = parseFloat(y) + parseFloat(dy);\n var g = new Group();\n inheritStyle(parentGroup, g);\n parseAttributes(xmlNode, g, this._defsUsePending, false, true);\n return g;\n },\n 'tspan': function (xmlNode, parentGroup) {\n var x = xmlNode.getAttribute('x');\n var y = xmlNode.getAttribute('y');\n if (x != null) {\n this._textX = parseFloat(x);\n }\n if (y != null) {\n this._textY = parseFloat(y);\n }\n var dx = xmlNode.getAttribute('dx') || '0';\n var dy = xmlNode.getAttribute('dy') || '0';\n var g = new Group();\n inheritStyle(parentGroup, g);\n parseAttributes(xmlNode, g, this._defsUsePending, false, true);\n this._textX += parseFloat(dx);\n this._textY += parseFloat(dy);\n return g;\n },\n 'path': function (xmlNode, parentGroup) {\n var d = xmlNode.getAttribute('d') || '';\n var path = createFromString(d);\n inheritStyle(parentGroup, path);\n parseAttributes(xmlNode, path, this._defsUsePending, false, false);\n path.silent = true;\n return path;\n }\n };\n })();\n return SVGParser;\n}());\nvar paintServerParsers = {\n 'lineargradient': function (xmlNode) {\n var x1 = parseInt(xmlNode.getAttribute('x1') || '0', 10);\n var y1 = parseInt(xmlNode.getAttribute('y1') || '0', 10);\n var x2 = parseInt(xmlNode.getAttribute('x2') || '10', 10);\n var y2 = parseInt(xmlNode.getAttribute('y2') || '0', 10);\n var gradient = new LinearGradient(x1, y1, x2, y2);\n parsePaintServerUnit(xmlNode, gradient);\n parseGradientColorStops(xmlNode, gradient);\n return gradient;\n },\n 'radialgradient': function (xmlNode) {\n var cx = parseInt(xmlNode.getAttribute('cx') || '0', 10);\n var cy = parseInt(xmlNode.getAttribute('cy') || '0', 10);\n var r = parseInt(xmlNode.getAttribute('r') || '0', 10);\n var gradient = new RadialGradient(cx, cy, r);\n parsePaintServerUnit(xmlNode, gradient);\n parseGradientColorStops(xmlNode, gradient);\n return gradient;\n }\n};\nfunction parsePaintServerUnit(xmlNode, gradient) {\n var gradientUnits = xmlNode.getAttribute('gradientUnits');\n if (gradientUnits === 'userSpaceOnUse') {\n gradient.global = true;\n }\n}\nfunction parseGradientColorStops(xmlNode, gradient) {\n var stop = xmlNode.firstChild;\n while (stop) {\n if (stop.nodeType === 1\n && stop.nodeName.toLocaleLowerCase() === 'stop') {\n var offsetStr = stop.getAttribute('offset');\n var offset = void 0;\n if (offsetStr && offsetStr.indexOf('%') > 0) {\n offset = parseInt(offsetStr, 10) / 100;\n }\n else if (offsetStr) {\n offset = parseFloat(offsetStr);\n }\n else {\n offset = 0;\n }\n var styleVals = {};\n parseInlineStyle(stop, styleVals, styleVals);\n var stopColor = styleVals.stopColor\n || stop.getAttribute('stop-color')\n || '#000000';\n gradient.colorStops.push({\n offset: offset,\n color: stopColor\n });\n }\n stop = stop.nextSibling;\n }\n}\nfunction inheritStyle(parent, child) {\n if (parent && parent.__inheritedStyle) {\n if (!child.__inheritedStyle) {\n child.__inheritedStyle = {};\n }\n defaults(child.__inheritedStyle, parent.__inheritedStyle);\n }\n}\nfunction parsePoints(pointsString) {\n var list = splitNumberSequence(pointsString);\n var points = [];\n for (var i = 0; i < list.length; i += 2) {\n var x = parseFloat(list[i]);\n var y = parseFloat(list[i + 1]);\n points.push([x, y]);\n }\n return points;\n}\nfunction parseAttributes(xmlNode, el, defsUsePending, onlyInlineStyle, isTextGroup) {\n var disp = el;\n var inheritedStyle = disp.__inheritedStyle = disp.__inheritedStyle || {};\n var selfStyle = {};\n if (xmlNode.nodeType === 1) {\n parseTransformAttribute(xmlNode, el);\n parseInlineStyle(xmlNode, inheritedStyle, selfStyle);\n if (!onlyInlineStyle) {\n parseAttributeStyle(xmlNode, inheritedStyle, selfStyle);\n }\n }\n disp.style = disp.style || {};\n if (inheritedStyle.fill != null) {\n disp.style.fill = getFillStrokeStyle(disp, 'fill', inheritedStyle.fill, defsUsePending);\n }\n if (inheritedStyle.stroke != null) {\n disp.style.stroke = getFillStrokeStyle(disp, 'stroke', inheritedStyle.stroke, defsUsePending);\n }\n each([\n 'lineWidth', 'opacity', 'fillOpacity', 'strokeOpacity', 'miterLimit', 'fontSize'\n ], function (propName) {\n if (inheritedStyle[propName] != null) {\n disp.style[propName] = parseFloat(inheritedStyle[propName]);\n }\n });\n each([\n 'lineDashOffset', 'lineCap', 'lineJoin', 'fontWeight', 'fontFamily', 'fontStyle', 'textAlign'\n ], function (propName) {\n if (inheritedStyle[propName] != null) {\n disp.style[propName] = inheritedStyle[propName];\n }\n });\n if (isTextGroup) {\n disp.__selfStyle = selfStyle;\n }\n if (inheritedStyle.lineDash) {\n disp.style.lineDash = map(splitNumberSequence(inheritedStyle.lineDash), function (str) {\n return parseFloat(str);\n });\n }\n if (inheritedStyle.visibility === 'hidden' || inheritedStyle.visibility === 'collapse') {\n disp.invisible = true;\n }\n if (inheritedStyle.display === 'none') {\n disp.ignore = true;\n }\n}\nfunction applyTextAlignment(text, parentGroup) {\n var parentSelfStyle = parentGroup.__selfStyle;\n if (parentSelfStyle) {\n var textBaseline = parentSelfStyle.textBaseline;\n var zrTextBaseline = textBaseline;\n if (!textBaseline || textBaseline === 'auto') {\n zrTextBaseline = 'alphabetic';\n }\n else if (textBaseline === 'baseline') {\n zrTextBaseline = 'alphabetic';\n }\n else if (textBaseline === 'before-edge' || textBaseline === 'text-before-edge') {\n zrTextBaseline = 'top';\n }\n else if (textBaseline === 'after-edge' || textBaseline === 'text-after-edge') {\n zrTextBaseline = 'bottom';\n }\n else if (textBaseline === 'central' || textBaseline === 'mathematical') {\n zrTextBaseline = 'middle';\n }\n text.style.textBaseline = zrTextBaseline;\n }\n var parentInheritedStyle = parentGroup.__inheritedStyle;\n if (parentInheritedStyle) {\n var textAlign = parentInheritedStyle.textAlign;\n var zrTextAlign = textAlign;\n if (textAlign) {\n if (textAlign === 'middle') {\n zrTextAlign = 'center';\n }\n text.style.textAlign = zrTextAlign;\n }\n }\n}\nvar urlRegex = /^url\\(\\s*#(.*?)\\)/;\nfunction getFillStrokeStyle(el, method, str, defsUsePending) {\n var urlMatch = str && str.match(urlRegex);\n if (urlMatch) {\n var url = trim(urlMatch[1]);\n defsUsePending.push([el, method, url]);\n return;\n }\n if (str === 'none') {\n str = null;\n }\n return str;\n}\nfunction applyDefs(defs, defsUsePending) {\n for (var i = 0; i < defsUsePending.length; i++) {\n var item = defsUsePending[i];\n item[0].style[item[1]] = defs[item[2]];\n }\n}\nvar numberReg = /-?([0-9]*\\.)?[0-9]+([eE]-?[0-9]+)?/g;\nfunction splitNumberSequence(rawStr) {\n return rawStr.match(numberReg) || [];\n}\nvar transformRegex = /(translate|scale|rotate|skewX|skewY|matrix)\\(([\\-\\s0-9\\.eE,]*)\\)/g;\nvar DEGREE_TO_ANGLE = Math.PI / 180;\nfunction parseTransformAttribute(xmlNode, node) {\n var transform = xmlNode.getAttribute('transform');\n if (transform) {\n transform = transform.replace(/,/g, ' ');\n var transformOps_1 = [];\n var mt = null;\n transform.replace(transformRegex, function (str, type, value) {\n transformOps_1.push(type, value);\n return '';\n });\n for (var i = transformOps_1.length - 1; i > 0; i -= 2) {\n var value = transformOps_1[i];\n var type = transformOps_1[i - 1];\n var valueArr = splitNumberSequence(value);\n mt = mt || matrix.create();\n switch (type) {\n case 'translate':\n matrix.translate(mt, mt, [parseFloat(valueArr[0]), parseFloat(valueArr[1] || '0')]);\n break;\n case 'scale':\n matrix.scale(mt, mt, [parseFloat(valueArr[0]), parseFloat(valueArr[1] || valueArr[0])]);\n break;\n case 'rotate':\n matrix.rotate(mt, mt, -parseFloat(valueArr[0]) * DEGREE_TO_ANGLE);\n break;\n case 'skewX':\n var sx = Math.tan(parseFloat(valueArr[0]) * DEGREE_TO_ANGLE);\n matrix.mul(mt, [1, 0, sx, 1, 0, 0], mt);\n break;\n case 'skewY':\n var sy = Math.tan(parseFloat(valueArr[0]) * DEGREE_TO_ANGLE);\n matrix.mul(mt, [1, sy, 0, 1, 0, 0], mt);\n break;\n case 'matrix':\n mt[0] = parseFloat(valueArr[0]);\n mt[1] = parseFloat(valueArr[1]);\n mt[2] = parseFloat(valueArr[2]);\n mt[3] = parseFloat(valueArr[3]);\n mt[4] = parseFloat(valueArr[4]);\n mt[5] = parseFloat(valueArr[5]);\n break;\n }\n }\n node.setLocalTransform(mt);\n }\n}\nvar styleRegex = /([^\\s:;]+)\\s*:\\s*([^:;]+)/g;\nfunction parseInlineStyle(xmlNode, inheritableStyleResult, selfStyleResult) {\n var style = xmlNode.getAttribute('style');\n if (!style) {\n return;\n }\n styleRegex.lastIndex = 0;\n var styleRegResult;\n while ((styleRegResult = styleRegex.exec(style)) != null) {\n var svgStlAttr = styleRegResult[1];\n var zrInheritableStlAttr = hasOwn(INHERITABLE_STYLE_ATTRIBUTES_MAP, svgStlAttr)\n ? INHERITABLE_STYLE_ATTRIBUTES_MAP[svgStlAttr]\n : null;\n if (zrInheritableStlAttr) {\n inheritableStyleResult[zrInheritableStlAttr] = styleRegResult[2];\n }\n var zrSelfStlAttr = hasOwn(SELF_STYLE_ATTRIBUTES_MAP, svgStlAttr)\n ? SELF_STYLE_ATTRIBUTES_MAP[svgStlAttr]\n : null;\n if (zrSelfStlAttr) {\n selfStyleResult[zrSelfStlAttr] = styleRegResult[2];\n }\n }\n}\nfunction parseAttributeStyle(xmlNode, inheritableStyleResult, selfStyleResult) {\n for (var i = 0; i < INHERITABLE_STYLE_ATTRIBUTES_MAP_KEYS.length; i++) {\n var svgAttrName = INHERITABLE_STYLE_ATTRIBUTES_MAP_KEYS[i];\n var attrValue = xmlNode.getAttribute(svgAttrName);\n if (attrValue != null) {\n inheritableStyleResult[INHERITABLE_STYLE_ATTRIBUTES_MAP[svgAttrName]] = attrValue;\n }\n }\n for (var i = 0; i < SELF_STYLE_ATTRIBUTES_MAP_KEYS.length; i++) {\n var svgAttrName = SELF_STYLE_ATTRIBUTES_MAP_KEYS[i];\n var attrValue = xmlNode.getAttribute(svgAttrName);\n if (attrValue != null) {\n selfStyleResult[SELF_STYLE_ATTRIBUTES_MAP[svgAttrName]] = attrValue;\n }\n }\n}\nexport function makeViewBoxTransform(viewBoxRect, boundingRect) {\n var scaleX = boundingRect.width / viewBoxRect.width;\n var scaleY = boundingRect.height / viewBoxRect.height;\n var scale = Math.min(scaleX, scaleY);\n return {\n scale: scale,\n x: -(viewBoxRect.x + viewBoxRect.width / 2) * scale + (boundingRect.x + boundingRect.width / 2),\n y: -(viewBoxRect.y + viewBoxRect.height / 2) * scale + (boundingRect.y + boundingRect.height / 2)\n };\n}\nexport function parseSVG(xml, opt) {\n var parser = new SVGParser();\n return parser.parse(xml, opt);\n}\nexport { parseXML };\n","import { isString } from '../core/util.js';\nexport function parseXML(svg) {\n if (isString(svg)) {\n var parser = new DOMParser();\n svg = parser.parseFromString(svg, 'text/xml');\n }\n var svgNode = svg;\n if (svgNode.nodeType === 9) {\n svgNode = svgNode.firstChild;\n }\n while (svgNode.nodeName.toLowerCase() !== 'svg' || svgNode.nodeType !== 1) {\n svgNode = svgNode.nextSibling;\n }\n return svgNode;\n}\n","import { __extends } from \"tslib\";\nimport Path from '../graphic/Path.js';\nimport PathProxy from '../core/PathProxy.js';\nimport transformPath from './transformPath.js';\nimport { extend } from '../core/util.js';\nvar mathSqrt = Math.sqrt;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar PI = Math.PI;\nfunction vMag(v) {\n return Math.sqrt(v[0] * v[0] + v[1] * v[1]);\n}\n;\nfunction vRatio(u, v) {\n return (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v));\n}\n;\nfunction vAngle(u, v) {\n return (u[0] * v[1] < u[1] * v[0] ? -1 : 1)\n * Math.acos(vRatio(u, v));\n}\n;\nfunction processArc(x1, y1, x2, y2, fa, fs, rx, ry, psiDeg, cmd, path) {\n var psi = psiDeg * (PI / 180.0);\n var xp = mathCos(psi) * (x1 - x2) / 2.0\n + mathSin(psi) * (y1 - y2) / 2.0;\n var yp = -1 * mathSin(psi) * (x1 - x2) / 2.0\n + mathCos(psi) * (y1 - y2) / 2.0;\n var lambda = (xp * xp) / (rx * rx) + (yp * yp) / (ry * ry);\n if (lambda > 1) {\n rx *= mathSqrt(lambda);\n ry *= mathSqrt(lambda);\n }\n var f = (fa === fs ? -1 : 1)\n * mathSqrt((((rx * rx) * (ry * ry))\n - ((rx * rx) * (yp * yp))\n - ((ry * ry) * (xp * xp))) / ((rx * rx) * (yp * yp)\n + (ry * ry) * (xp * xp))) || 0;\n var cxp = f * rx * yp / ry;\n var cyp = f * -ry * xp / rx;\n var cx = (x1 + x2) / 2.0\n + mathCos(psi) * cxp\n - mathSin(psi) * cyp;\n var cy = (y1 + y2) / 2.0\n + mathSin(psi) * cxp\n + mathCos(psi) * cyp;\n var theta = vAngle([1, 0], [(xp - cxp) / rx, (yp - cyp) / ry]);\n var u = [(xp - cxp) / rx, (yp - cyp) / ry];\n var v = [(-1 * xp - cxp) / rx, (-1 * yp - cyp) / ry];\n var dTheta = vAngle(u, v);\n if (vRatio(u, v) <= -1) {\n dTheta = PI;\n }\n if (vRatio(u, v) >= 1) {\n dTheta = 0;\n }\n if (dTheta < 0) {\n var n = Math.round(dTheta / PI * 1e6) / 1e6;\n dTheta = PI * 2 + (n % 2) * PI;\n }\n path.addData(cmd, cx, cy, rx, ry, theta, dTheta, psi, fs);\n}\nvar commandReg = /([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig;\nvar numberReg = /-?([0-9]*\\.)?[0-9]+([eE]-?[0-9]+)?/g;\nfunction createPathProxyFromString(data) {\n var path = new PathProxy();\n if (!data) {\n return path;\n }\n var cpx = 0;\n var cpy = 0;\n var subpathX = cpx;\n var subpathY = cpy;\n var prevCmd;\n var CMD = PathProxy.CMD;\n var cmdList = data.match(commandReg);\n if (!cmdList) {\n return path;\n }\n for (var l = 0; l < cmdList.length; l++) {\n var cmdText = cmdList[l];\n var cmdStr = cmdText.charAt(0);\n var cmd = void 0;\n var p = cmdText.match(numberReg) || [];\n var pLen = p.length;\n for (var i = 0; i < pLen; i++) {\n p[i] = parseFloat(p[i]);\n }\n var off = 0;\n while (off < pLen) {\n var ctlPtx = void 0;\n var ctlPty = void 0;\n var rx = void 0;\n var ry = void 0;\n var psi = void 0;\n var fa = void 0;\n var fs = void 0;\n var x1 = cpx;\n var y1 = cpy;\n var len = void 0;\n var pathData = void 0;\n switch (cmdStr) {\n case 'l':\n cpx += p[off++];\n cpy += p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n case 'L':\n cpx = p[off++];\n cpy = p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n case 'm':\n cpx += p[off++];\n cpy += p[off++];\n cmd = CMD.M;\n path.addData(cmd, cpx, cpy);\n subpathX = cpx;\n subpathY = cpy;\n cmdStr = 'l';\n break;\n case 'M':\n cpx = p[off++];\n cpy = p[off++];\n cmd = CMD.M;\n path.addData(cmd, cpx, cpy);\n subpathX = cpx;\n subpathY = cpy;\n cmdStr = 'L';\n break;\n case 'h':\n cpx += p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n case 'H':\n cpx = p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n case 'v':\n cpy += p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n case 'V':\n cpy = p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n case 'C':\n cmd = CMD.C;\n path.addData(cmd, p[off++], p[off++], p[off++], p[off++], p[off++], p[off++]);\n cpx = p[off - 2];\n cpy = p[off - 1];\n break;\n case 'c':\n cmd = CMD.C;\n path.addData(cmd, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy);\n cpx += p[off - 2];\n cpy += p[off - 1];\n break;\n case 'S':\n ctlPtx = cpx;\n ctlPty = cpy;\n len = path.len();\n pathData = path.data;\n if (prevCmd === CMD.C) {\n ctlPtx += cpx - pathData[len - 4];\n ctlPty += cpy - pathData[len - 3];\n }\n cmd = CMD.C;\n x1 = p[off++];\n y1 = p[off++];\n cpx = p[off++];\n cpy = p[off++];\n path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);\n break;\n case 's':\n ctlPtx = cpx;\n ctlPty = cpy;\n len = path.len();\n pathData = path.data;\n if (prevCmd === CMD.C) {\n ctlPtx += cpx - pathData[len - 4];\n ctlPty += cpy - pathData[len - 3];\n }\n cmd = CMD.C;\n x1 = cpx + p[off++];\n y1 = cpy + p[off++];\n cpx += p[off++];\n cpy += p[off++];\n path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);\n break;\n case 'Q':\n x1 = p[off++];\n y1 = p[off++];\n cpx = p[off++];\n cpy = p[off++];\n cmd = CMD.Q;\n path.addData(cmd, x1, y1, cpx, cpy);\n break;\n case 'q':\n x1 = p[off++] + cpx;\n y1 = p[off++] + cpy;\n cpx += p[off++];\n cpy += p[off++];\n cmd = CMD.Q;\n path.addData(cmd, x1, y1, cpx, cpy);\n break;\n case 'T':\n ctlPtx = cpx;\n ctlPty = cpy;\n len = path.len();\n pathData = path.data;\n if (prevCmd === CMD.Q) {\n ctlPtx += cpx - pathData[len - 4];\n ctlPty += cpy - pathData[len - 3];\n }\n cpx = p[off++];\n cpy = p[off++];\n cmd = CMD.Q;\n path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\n break;\n case 't':\n ctlPtx = cpx;\n ctlPty = cpy;\n len = path.len();\n pathData = path.data;\n if (prevCmd === CMD.Q) {\n ctlPtx += cpx - pathData[len - 4];\n ctlPty += cpy - pathData[len - 3];\n }\n cpx += p[off++];\n cpy += p[off++];\n cmd = CMD.Q;\n path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\n break;\n case 'A':\n rx = p[off++];\n ry = p[off++];\n psi = p[off++];\n fa = p[off++];\n fs = p[off++];\n x1 = cpx, y1 = cpy;\n cpx = p[off++];\n cpy = p[off++];\n cmd = CMD.A;\n processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path);\n break;\n case 'a':\n rx = p[off++];\n ry = p[off++];\n psi = p[off++];\n fa = p[off++];\n fs = p[off++];\n x1 = cpx, y1 = cpy;\n cpx += p[off++];\n cpy += p[off++];\n cmd = CMD.A;\n processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path);\n break;\n }\n }\n if (cmdStr === 'z' || cmdStr === 'Z') {\n cmd = CMD.Z;\n path.addData(cmd);\n cpx = subpathX;\n cpy = subpathY;\n }\n prevCmd = cmd;\n }\n path.toStatic();\n return path;\n}\nvar SVGPath = (function (_super) {\n __extends(SVGPath, _super);\n function SVGPath() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SVGPath.prototype.applyTransform = function (m) { };\n return SVGPath;\n}(Path));\nfunction isPathProxy(path) {\n return path.setData != null;\n}\nfunction createPathOptions(str, opts) {\n var pathProxy = createPathProxyFromString(str);\n var innerOpts = extend({}, opts);\n innerOpts.buildPath = function (path) {\n if (isPathProxy(path)) {\n path.setData(pathProxy.data);\n var ctx = path.getContext();\n if (ctx) {\n path.rebuildPath(ctx, 1);\n }\n }\n else {\n var ctx = path;\n pathProxy.rebuildPath(ctx, 1);\n }\n };\n innerOpts.applyTransform = function (m) {\n transformPath(pathProxy, m);\n this.dirtyShape();\n };\n return innerOpts;\n}\nexport function createFromString(str, opts) {\n return new SVGPath(createPathOptions(str, opts));\n}\nexport function extendFromString(str, defaultOpts) {\n var innerOpts = createPathOptions(str, defaultOpts);\n var Sub = (function (_super) {\n __extends(Sub, _super);\n function Sub(opts) {\n var _this = _super.call(this, opts) || this;\n _this.applyTransform = innerOpts.applyTransform;\n _this.buildPath = innerOpts.buildPath;\n return _this;\n }\n return Sub;\n }(SVGPath));\n return Sub;\n}\nexport function mergePath(pathEls, opts) {\n var pathList = [];\n var len = pathEls.length;\n for (var i = 0; i < len; i++) {\n var pathEl = pathEls[i];\n pathList.push(pathEl.getUpdatedPathProxy(true));\n }\n var pathBundle = new Path(opts);\n pathBundle.createPathProxy();\n pathBundle.buildPath = function (path) {\n if (isPathProxy(path)) {\n path.appendPath(pathList);\n var ctx = path.getContext();\n if (ctx) {\n path.rebuildPath(ctx, 1);\n }\n }\n };\n return pathBundle;\n}\nexport function clonePath(sourcePath, opts) {\n opts = opts || {};\n var path = new Path();\n if (sourcePath.shape) {\n path.setShape(sourcePath.shape);\n }\n path.setStyle(sourcePath.style);\n if (opts.bakeTransform) {\n transformPath(path.path, sourcePath.getComputedTransform());\n }\n else {\n if (opts.toLocal) {\n path.setLocalTransform(sourcePath.getComputedTransform());\n }\n else {\n path.copyTransform(sourcePath);\n }\n }\n path.buildPath = sourcePath.buildPath;\n path.applyTransform = path.applyTransform;\n path.z = sourcePath.z;\n path.z2 = sourcePath.z2;\n path.zlevel = sourcePath.zlevel;\n return path;\n}\n","import PathProxy from '../core/PathProxy.js';\nimport { applyTransform as v2ApplyTransform } from '../core/vector.js';\nvar CMD = PathProxy.CMD;\nvar points = [[], [], []];\nvar mathSqrt = Math.sqrt;\nvar mathAtan2 = Math.atan2;\nexport default function transformPath(path, m) {\n if (!m) {\n return;\n }\n var data = path.data;\n var len = path.len();\n var cmd;\n var nPoint;\n var i;\n var j;\n var k;\n var p;\n var M = CMD.M;\n var C = CMD.C;\n var L = CMD.L;\n var R = CMD.R;\n var A = CMD.A;\n var Q = CMD.Q;\n for (i = 0, j = 0; i < len;) {\n cmd = data[i++];\n j = i;\n nPoint = 0;\n switch (cmd) {\n case M:\n nPoint = 1;\n break;\n case L:\n nPoint = 1;\n break;\n case C:\n nPoint = 3;\n break;\n case Q:\n nPoint = 2;\n break;\n case A:\n var x = m[4];\n var y = m[5];\n var sx = mathSqrt(m[0] * m[0] + m[1] * m[1]);\n var sy = mathSqrt(m[2] * m[2] + m[3] * m[3]);\n var angle = mathAtan2(-m[1] / sy, m[0] / sx);\n data[i] *= sx;\n data[i++] += x;\n data[i] *= sy;\n data[i++] += y;\n data[i++] *= sx;\n data[i++] *= sy;\n data[i++] += angle;\n data[i++] += angle;\n i += 2;\n j = i;\n break;\n case R:\n p[0] = data[i++];\n p[1] = data[i++];\n v2ApplyTransform(p, p, m);\n data[j++] = p[0];\n data[j++] = p[1];\n p[0] += data[i++];\n p[1] += data[i++];\n v2ApplyTransform(p, p, m);\n data[j++] = p[0];\n data[j++] = p[1];\n }\n for (k = 0; k < nPoint; k++) {\n var p_1 = points[k];\n p_1[0] = data[i++];\n p_1[1] = data[i++];\n v2ApplyTransform(p_1, p_1, m);\n data[j++] = p_1[0];\n data[j++] = p_1[1];\n }\n }\n path.increaseVersion();\n}\n","/*!\n* ZRender, a high performance 2d drawing library.\n*\n* Copyright (c) 2013, Baidu Inc.\n* All rights reserved.\n*\n* LICENSE\n* https://github.com/ecomfe/zrender/blob/master/LICENSE.txt\n*/\nimport env from './core/env.js';\nimport * as zrUtil from './core/util.js';\nimport Handler from './Handler.js';\nimport Storage from './Storage.js';\nimport Animation, { getTime } from './animation/Animation.js';\nimport HandlerProxy from './dom/HandlerProxy.js';\nimport { lum } from './tool/color.js';\nimport { DARK_MODE_THRESHOLD } from './config.js';\nimport Group from './graphic/Group.js';\nvar painterCtors = {};\nvar instances = {};\nfunction delInstance(id) {\n delete instances[id];\n}\nfunction isDarkMode(backgroundColor) {\n if (!backgroundColor) {\n return false;\n }\n if (typeof backgroundColor === 'string') {\n return lum(backgroundColor, 1) < DARK_MODE_THRESHOLD;\n }\n else if (backgroundColor.colorStops) {\n var colorStops = backgroundColor.colorStops;\n var totalLum = 0;\n var len = colorStops.length;\n for (var i = 0; i < len; i++) {\n totalLum += lum(colorStops[i].color, 1);\n }\n totalLum /= len;\n return totalLum < DARK_MODE_THRESHOLD;\n }\n return false;\n}\nvar ZRender = (function () {\n function ZRender(id, dom, opts) {\n var _this = this;\n this._sleepAfterStill = 10;\n this._stillFrameAccum = 0;\n this._needsRefresh = true;\n this._needsRefreshHover = true;\n this._darkMode = false;\n opts = opts || {};\n this.dom = dom;\n this.id = id;\n var storage = new Storage();\n var rendererType = opts.renderer || 'canvas';\n if (!painterCtors[rendererType]) {\n rendererType = zrUtil.keys(painterCtors)[0];\n }\n if (process.env.NODE_ENV !== 'production') {\n if (!painterCtors[rendererType]) {\n throw new Error(\"Renderer '\" + rendererType + \"' is not imported. Please import it first.\");\n }\n }\n opts.useDirtyRect = opts.useDirtyRect == null\n ? false\n : opts.useDirtyRect;\n var painter = new painterCtors[rendererType](dom, storage, opts, id);\n var ssrMode = opts.ssr || painter.ssrOnly;\n this.storage = storage;\n this.painter = painter;\n var handerProxy = (!env.node && !env.worker && !ssrMode)\n ? new HandlerProxy(painter.getViewportRoot(), painter.root)\n : null;\n var useCoarsePointer = opts.useCoarsePointer;\n var usePointerSize = (useCoarsePointer == null || useCoarsePointer === 'auto')\n ? env.touchEventsSupported\n : !!useCoarsePointer;\n var defaultPointerSize = 44;\n var pointerSize;\n if (usePointerSize) {\n pointerSize = zrUtil.retrieve2(opts.pointerSize, defaultPointerSize);\n }\n this.handler = new Handler(storage, painter, handerProxy, painter.root, pointerSize);\n this.animation = new Animation({\n stage: {\n update: ssrMode ? null : function () { return _this._flush(true); }\n }\n });\n if (!ssrMode) {\n this.animation.start();\n }\n }\n ZRender.prototype.add = function (el) {\n if (!el) {\n return;\n }\n this.storage.addRoot(el);\n el.addSelfToZr(this);\n this.refresh();\n };\n ZRender.prototype.remove = function (el) {\n if (!el) {\n return;\n }\n this.storage.delRoot(el);\n el.removeSelfFromZr(this);\n this.refresh();\n };\n ZRender.prototype.configLayer = function (zLevel, config) {\n if (this.painter.configLayer) {\n this.painter.configLayer(zLevel, config);\n }\n this.refresh();\n };\n ZRender.prototype.setBackgroundColor = function (backgroundColor) {\n if (this.painter.setBackgroundColor) {\n this.painter.setBackgroundColor(backgroundColor);\n }\n this.refresh();\n this._backgroundColor = backgroundColor;\n this._darkMode = isDarkMode(backgroundColor);\n };\n ZRender.prototype.getBackgroundColor = function () {\n return this._backgroundColor;\n };\n ZRender.prototype.setDarkMode = function (darkMode) {\n this._darkMode = darkMode;\n };\n ZRender.prototype.isDarkMode = function () {\n return this._darkMode;\n };\n ZRender.prototype.refreshImmediately = function (fromInside) {\n if (!fromInside) {\n this.animation.update(true);\n }\n this._needsRefresh = false;\n this.painter.refresh();\n this._needsRefresh = false;\n };\n ZRender.prototype.refresh = function () {\n this._needsRefresh = true;\n this.animation.start();\n };\n ZRender.prototype.flush = function () {\n this._flush(false);\n };\n ZRender.prototype._flush = function (fromInside) {\n var triggerRendered;\n var start = getTime();\n if (this._needsRefresh) {\n triggerRendered = true;\n this.refreshImmediately(fromInside);\n }\n if (this._needsRefreshHover) {\n triggerRendered = true;\n this.refreshHoverImmediately();\n }\n var end = getTime();\n if (triggerRendered) {\n this._stillFrameAccum = 0;\n this.trigger('rendered', {\n elapsedTime: end - start\n });\n }\n else if (this._sleepAfterStill > 0) {\n this._stillFrameAccum++;\n if (this._stillFrameAccum > this._sleepAfterStill) {\n this.animation.stop();\n }\n }\n };\n ZRender.prototype.setSleepAfterStill = function (stillFramesCount) {\n this._sleepAfterStill = stillFramesCount;\n };\n ZRender.prototype.wakeUp = function () {\n this.animation.start();\n this._stillFrameAccum = 0;\n };\n ZRender.prototype.refreshHover = function () {\n this._needsRefreshHover = true;\n };\n ZRender.prototype.refreshHoverImmediately = function () {\n this._needsRefreshHover = false;\n if (this.painter.refreshHover && this.painter.getType() === 'canvas') {\n this.painter.refreshHover();\n }\n };\n ZRender.prototype.resize = function (opts) {\n opts = opts || {};\n this.painter.resize(opts.width, opts.height);\n this.handler.resize();\n };\n ZRender.prototype.clearAnimation = function () {\n this.animation.clear();\n };\n ZRender.prototype.getWidth = function () {\n return this.painter.getWidth();\n };\n ZRender.prototype.getHeight = function () {\n return this.painter.getHeight();\n };\n ZRender.prototype.setCursorStyle = function (cursorStyle) {\n this.handler.setCursorStyle(cursorStyle);\n };\n ZRender.prototype.findHover = function (x, y) {\n return this.handler.findHover(x, y);\n };\n ZRender.prototype.on = function (eventName, eventHandler, context) {\n this.handler.on(eventName, eventHandler, context);\n return this;\n };\n ZRender.prototype.off = function (eventName, eventHandler) {\n this.handler.off(eventName, eventHandler);\n };\n ZRender.prototype.trigger = function (eventName, event) {\n this.handler.trigger(eventName, event);\n };\n ZRender.prototype.clear = function () {\n var roots = this.storage.getRoots();\n for (var i = 0; i < roots.length; i++) {\n if (roots[i] instanceof Group) {\n roots[i].removeSelfFromZr(this);\n }\n }\n this.storage.delAllRoots();\n this.painter.clear();\n };\n ZRender.prototype.dispose = function () {\n this.animation.stop();\n this.clear();\n this.storage.dispose();\n this.painter.dispose();\n this.handler.dispose();\n this.animation =\n this.storage =\n this.painter =\n this.handler = null;\n delInstance(this.id);\n };\n return ZRender;\n}());\nexport function init(dom, opts) {\n var zr = new ZRender(zrUtil.guid(), dom, opts);\n instances[zr.id] = zr;\n return zr;\n}\nexport function dispose(zr) {\n zr.dispose();\n}\nexport function disposeAll() {\n for (var key in instances) {\n if (instances.hasOwnProperty(key)) {\n instances[key].dispose();\n }\n }\n instances = {};\n}\nexport function getInstance(id) {\n return instances[id];\n}\nexport function registerPainter(name, Ctor) {\n painterCtors[name] = Ctor;\n}\nexport var version = '5.4.3';\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 __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","/******************************************************************************\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.push(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.push(_);\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\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","/**\n * @license Angular v16.0.5\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 * 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\nfunction scheduleMicroTask(cb) {\n Promise.resolve().then(cb);\n}\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 * 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\nconst ɵPRE_STYLE = '!';\n\n/**\n * @module\n * @description\n * Entry point for all animation APIs of the animation package.\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\n\n// This file is not used to build this module. It is only used during editing\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 v16.0.5\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\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 * 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\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(normalizer, 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}\nconst documentElement = \n/* @__PURE__ */ (() => typeof document === 'undefined' ? null : document.documentElement)();\nfunction getParentElement(element) {\n const parent = element.parentNode || element.host || null; // consider host to support shadow DOM\n if (parent === documentElement) {\n return null;\n }\n return parent;\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}\nfunction containsElement(elm1, elm2) {\n while (elm2) {\n if (elm2 === elm1) {\n return true;\n }\n elm2 = getParentElement(elm2);\n }\n return false;\n}\nfunction invokeQuery(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}\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 * @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 static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: NoopAnimationDriver, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: NoopAnimationDriver }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: NoopAnimationDriver, decorators: [{\n type: Injectable\n }] });\n/**\n * @publicApi\n */\nclass AnimationDriver {\n static { this.NOOP = ( /* @__PURE__ */new NoopAnimationDriver()); }\n}\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 setStyles(element, styles, formerStyles) {\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}\nfunction eraseStyles(element, styles) {\n styles.forEach((_, prop) => {\n const camelProp = dashCaseToCamelCase(prop);\n element.style[camelProp] = '';\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\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 (typeof ngDevMode === 'undefined' || ngDevMode) &&\n console.warn(`animation validation warnings:${createListOfWarnings(warnings)}`);\n}\nfunction warnTriggerBuild(name, warnings) {\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n console.warn(`The animation trigger \"${name}\" has built with the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction warnRegister(warnings) {\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n console.warn(`Animation built with the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction triggerParsingWarnings(name, warnings) {\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\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\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\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\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.easing = null;\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 * @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\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\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 allowedNonAnimatableProps = new Set([\n // 'easing' is a utility/synthetic prop we use to represent\n // easing functions, it represents a property of the animation\n // which is not animatable but different values can be used\n // in different steps\n 'easing'\n ]);\n const invalidNonAnimatableProps = new Set();\n timelines.forEach(({ keyframes }) => {\n const nonAnimatablePropsInitialValues = new Map();\n keyframes.forEach(keyframe => {\n const entriesToCheck = Array.from(keyframe.entries()).filter(([prop]) => !allowedNonAnimatableProps.has(prop));\n for (const [prop, value] of entriesToCheck) {\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(prop, 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\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._normalizer, 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\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 get params() {\n return this.options.params;\n }\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 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 /** @internal */\n _onRemovalComplete(element, context) {\n this.onRemovalComplete(element, context);\n }\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 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, 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 const hostNS = this.namespacesByHostElement.get(element);\n if (hostNS && hostNS.id !== namespaceId) {\n hostNS.removeNode(element, context);\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([...(post?.entries() ?? []), ...(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._normalizer, 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.parentPlayer = null;\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) {\n this._transitionEngine.removeNode(namespaceId, element, 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 static { this.initialStylesByElement = ( /* @__PURE__ */new WeakMap()); }\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}\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 // @ts-expect-error overwriting a readonly property\n this.domPlayer = 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 * @module\n * @description\n * Entry point for all animation APIs of the animation browser package.\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\n\n// This file is not used to build this module. It is only used during editing\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","import { DOCUMENT } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { inject, APP_ID, Injectable, Inject, QueryList, Directive, Input, InjectionToken, Optional, EventEmitter, Output, NgModule } from '@angular/core';\nimport * as i1 from '@angular/cdk/platform';\nimport { _getFocusedElementPierceShadowDom, normalizePassiveListenerOptions, _getEventTarget, _getShadowRoot } from '@angular/cdk/platform';\nimport { Subject, Subscription, BehaviorSubject, of } from 'rxjs';\nimport { hasModifierKey, A, Z, ZERO, NINE, PAGE_DOWN, PAGE_UP, END, HOME, LEFT_ARROW, RIGHT_ARROW, UP_ARROW, DOWN_ARROW, TAB, ALT, CONTROL, MAC_META, META, SHIFT } from '@angular/cdk/keycodes';\nimport { tap, debounceTime, filter, map, take, skip, distinctUntilChanged, takeUntil } from 'rxjs/operators';\nimport { coerceBooleanProperty, coerceElement } from '@angular/cdk/coercion';\nimport * as i1$1 from '@angular/cdk/observers';\nimport { ObserversModule } from '@angular/cdk/observers';\nimport { BreakpointObserver } from '@angular/cdk/layout';\n\n/** IDs are delimited by an empty space, as per the spec. */\nconst ID_DELIMITER = ' ';\n/**\n * Adds the given ID to the specified ARIA attribute on an element.\n * Used for attributes such as aria-labelledby, aria-owns, etc.\n */\nfunction addAriaReferencedId(el, attr, id) {\n const ids = getAriaReferenceIds(el, attr);\n if (ids.some(existingId => existingId.trim() == id.trim())) {\n return;\n }\n ids.push(id.trim());\n el.setAttribute(attr, ids.join(ID_DELIMITER));\n}\n/**\n * Removes the given ID from the specified ARIA attribute on an element.\n * Used for attributes such as aria-labelledby, aria-owns, etc.\n */\nfunction removeAriaReferencedId(el, attr, id) {\n const ids = getAriaReferenceIds(el, attr);\n const filteredIds = ids.filter(val => val != id.trim());\n if (filteredIds.length) {\n el.setAttribute(attr, filteredIds.join(ID_DELIMITER));\n }\n else {\n el.removeAttribute(attr);\n }\n}\n/**\n * Gets the list of IDs referenced by the given ARIA attribute on an element.\n * Used for attributes such as aria-labelledby, aria-owns, etc.\n */\nfunction getAriaReferenceIds(el, attr) {\n // Get string array of all individual ids (whitespace delimited) in the attribute value\n return (el.getAttribute(attr) || '').match(/\\S+/g) || [];\n}\n\n/**\n * ID used for the body container where all messages are appended.\n * @deprecated No longer being used. To be removed.\n * @breaking-change 14.0.0\n */\nconst MESSAGES_CONTAINER_ID = 'cdk-describedby-message-container';\n/**\n * ID prefix used for each created message element.\n * @deprecated To be turned into a private variable.\n * @breaking-change 14.0.0\n */\nconst CDK_DESCRIBEDBY_ID_PREFIX = 'cdk-describedby-message';\n/**\n * Attribute given to each host element that is described by a message element.\n * @deprecated To be turned into a private variable.\n * @breaking-change 14.0.0\n */\nconst CDK_DESCRIBEDBY_HOST_ATTRIBUTE = 'cdk-describedby-host';\n/** Global incremental identifier for each registered message element. */\nlet nextId = 0;\n/**\n * Utility that creates visually hidden elements with a message content. Useful for elements that\n * want to use aria-describedby to further describe themselves without adding additional visual\n * content.\n */\nclass AriaDescriber {\n constructor(_document, \n /**\n * @deprecated To be turned into a required parameter.\n * @breaking-change 14.0.0\n */\n _platform) {\n this._platform = _platform;\n /** Map of all registered message elements that have been placed into the document. */\n this._messageRegistry = new Map();\n /** Container for all registered messages. */\n this._messagesContainer = null;\n /** Unique ID for the service. */\n this._id = `${nextId++}`;\n this._document = _document;\n this._id = inject(APP_ID) + '-' + nextId++;\n }\n describe(hostElement, message, role) {\n if (!this._canBeDescribed(hostElement, message)) {\n return;\n }\n const key = getKey(message, role);\n if (typeof message !== 'string') {\n // We need to ensure that the element has an ID.\n setMessageId(message, this._id);\n this._messageRegistry.set(key, { messageElement: message, referenceCount: 0 });\n }\n else if (!this._messageRegistry.has(key)) {\n this._createMessageElement(message, role);\n }\n if (!this._isElementDescribedByMessage(hostElement, key)) {\n this._addMessageReference(hostElement, key);\n }\n }\n removeDescription(hostElement, message, role) {\n if (!message || !this._isElementNode(hostElement)) {\n return;\n }\n const key = getKey(message, role);\n if (this._isElementDescribedByMessage(hostElement, key)) {\n this._removeMessageReference(hostElement, key);\n }\n // If the message is a string, it means that it's one that we created for the\n // consumer so we can remove it safely, otherwise we should leave it in place.\n if (typeof message === 'string') {\n const registeredMessage = this._messageRegistry.get(key);\n if (registeredMessage && registeredMessage.referenceCount === 0) {\n this._deleteMessageElement(key);\n }\n }\n if (this._messagesContainer?.childNodes.length === 0) {\n this._messagesContainer.remove();\n this._messagesContainer = null;\n }\n }\n /** Unregisters all created message elements and removes the message container. */\n ngOnDestroy() {\n const describedElements = this._document.querySelectorAll(`[${CDK_DESCRIBEDBY_HOST_ATTRIBUTE}=\"${this._id}\"]`);\n for (let i = 0; i < describedElements.length; i++) {\n this._removeCdkDescribedByReferenceIds(describedElements[i]);\n describedElements[i].removeAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE);\n }\n this._messagesContainer?.remove();\n this._messagesContainer = null;\n this._messageRegistry.clear();\n }\n /**\n * Creates a new element in the visually hidden message container element with the message\n * as its content and adds it to the message registry.\n */\n _createMessageElement(message, role) {\n const messageElement = this._document.createElement('div');\n setMessageId(messageElement, this._id);\n messageElement.textContent = message;\n if (role) {\n messageElement.setAttribute('role', role);\n }\n this._createMessagesContainer();\n this._messagesContainer.appendChild(messageElement);\n this._messageRegistry.set(getKey(message, role), { messageElement, referenceCount: 0 });\n }\n /** Deletes the message element from the global messages container. */\n _deleteMessageElement(key) {\n this._messageRegistry.get(key)?.messageElement?.remove();\n this._messageRegistry.delete(key);\n }\n /** Creates the global container for all aria-describedby messages. */\n _createMessagesContainer() {\n if (this._messagesContainer) {\n return;\n }\n const containerClassName = 'cdk-describedby-message-container';\n const serverContainers = this._document.querySelectorAll(`.${containerClassName}[platform=\"server\"]`);\n for (let i = 0; i < serverContainers.length; i++) {\n // When going from the server to the client, we may end up in a situation where there's\n // already a container on the page, but we don't have a reference to it. Clear the\n // old container so we don't get duplicates. Doing this, instead of emptying the previous\n // container, should be slightly faster.\n serverContainers[i].remove();\n }\n const messagesContainer = this._document.createElement('div');\n // We add `visibility: hidden` in order to prevent text in this container from\n // being searchable by the browser's Ctrl + F functionality.\n // Screen-readers will still read the description for elements with aria-describedby even\n // when the description element is not visible.\n messagesContainer.style.visibility = 'hidden';\n // Even though we use `visibility: hidden`, we still apply `cdk-visually-hidden` so that\n // the description element doesn't impact page layout.\n messagesContainer.classList.add(containerClassName);\n messagesContainer.classList.add('cdk-visually-hidden');\n // @breaking-change 14.0.0 Remove null check for `_platform`.\n if (this._platform && !this._platform.isBrowser) {\n messagesContainer.setAttribute('platform', 'server');\n }\n this._document.body.appendChild(messagesContainer);\n this._messagesContainer = messagesContainer;\n }\n /** Removes all cdk-describedby messages that are hosted through the element. */\n _removeCdkDescribedByReferenceIds(element) {\n // Remove all aria-describedby reference IDs that are prefixed by CDK_DESCRIBEDBY_ID_PREFIX\n const originalReferenceIds = getAriaReferenceIds(element, 'aria-describedby').filter(id => id.indexOf(CDK_DESCRIBEDBY_ID_PREFIX) != 0);\n element.setAttribute('aria-describedby', originalReferenceIds.join(' '));\n }\n /**\n * Adds a message reference to the element using aria-describedby and increments the registered\n * message's reference count.\n */\n _addMessageReference(element, key) {\n const registeredMessage = this._messageRegistry.get(key);\n // Add the aria-describedby reference and set the\n // describedby_host attribute to mark the element.\n addAriaReferencedId(element, 'aria-describedby', registeredMessage.messageElement.id);\n element.setAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE, this._id);\n registeredMessage.referenceCount++;\n }\n /**\n * Removes a message reference from the element using aria-describedby\n * and decrements the registered message's reference count.\n */\n _removeMessageReference(element, key) {\n const registeredMessage = this._messageRegistry.get(key);\n registeredMessage.referenceCount--;\n removeAriaReferencedId(element, 'aria-describedby', registeredMessage.messageElement.id);\n element.removeAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE);\n }\n /** Returns true if the element has been described by the provided message ID. */\n _isElementDescribedByMessage(element, key) {\n const referenceIds = getAriaReferenceIds(element, 'aria-describedby');\n const registeredMessage = this._messageRegistry.get(key);\n const messageId = registeredMessage && registeredMessage.messageElement.id;\n return !!messageId && referenceIds.indexOf(messageId) != -1;\n }\n /** Determines whether a message can be described on a particular element. */\n _canBeDescribed(element, message) {\n if (!this._isElementNode(element)) {\n return false;\n }\n if (message && typeof message === 'object') {\n // We'd have to make some assumptions about the description element's text, if the consumer\n // passed in an element. Assume that if an element is passed in, the consumer has verified\n // that it can be used as a description.\n return true;\n }\n const trimmedMessage = message == null ? '' : `${message}`.trim();\n const ariaLabel = element.getAttribute('aria-label');\n // We shouldn't set descriptions if they're exactly the same as the `aria-label` of the\n // element, because screen readers will end up reading out the same text twice in a row.\n return trimmedMessage ? !ariaLabel || ariaLabel.trim() !== trimmedMessage : false;\n }\n /** Checks whether a node is an Element node. */\n _isElementNode(element) {\n return element.nodeType === this._document.ELEMENT_NODE;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: AriaDescriber, deps: [{ token: DOCUMENT }, { token: i1.Platform }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: AriaDescriber, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: AriaDescriber, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i1.Platform }]; } });\n/** Gets a key that can be used to look messages up in the registry. */\nfunction getKey(message, role) {\n return typeof message === 'string' ? `${role || ''}/${message}` : message;\n}\n/** Assigns a unique ID to an element, if it doesn't have one already. */\nfunction setMessageId(element, serviceId) {\n if (!element.id) {\n element.id = `${CDK_DESCRIBEDBY_ID_PREFIX}-${serviceId}-${nextId++}`;\n }\n}\n\n/**\n * This class manages keyboard events for selectable lists. If you pass it a query list\n * of items, it will set the active item correctly when arrow events occur.\n */\nclass ListKeyManager {\n constructor(_items) {\n this._items = _items;\n this._activeItemIndex = -1;\n this._activeItem = null;\n this._wrap = false;\n this._letterKeyStream = new Subject();\n this._typeaheadSubscription = Subscription.EMPTY;\n this._vertical = true;\n this._allowedModifierKeys = [];\n this._homeAndEnd = false;\n this._pageUpAndDown = { enabled: false, delta: 10 };\n /**\n * Predicate function that can be used to check whether an item should be skipped\n * by the key manager. By default, disabled items are skipped.\n */\n this._skipPredicateFn = (item) => item.disabled;\n // Buffer for the letters that the user has pressed when the typeahead option is turned on.\n this._pressedLetters = [];\n /**\n * Stream that emits any time the TAB key is pressed, so components can react\n * when focus is shifted off of the list.\n */\n this.tabOut = new Subject();\n /** Stream that emits whenever the active item of the list manager changes. */\n this.change = new Subject();\n // We allow for the items to be an array because, in some cases, the consumer may\n // not have access to a QueryList of the items they want to manage (e.g. when the\n // items aren't being collected via `ViewChildren` or `ContentChildren`).\n if (_items instanceof QueryList) {\n this._itemChangesSubscription = _items.changes.subscribe((newItems) => {\n if (this._activeItem) {\n const itemArray = newItems.toArray();\n const newIndex = itemArray.indexOf(this._activeItem);\n if (newIndex > -1 && newIndex !== this._activeItemIndex) {\n this._activeItemIndex = newIndex;\n }\n }\n });\n }\n }\n /**\n * Sets the predicate function that determines which items should be skipped by the\n * list key manager.\n * @param predicate Function that determines whether the given item should be skipped.\n */\n skipPredicate(predicate) {\n this._skipPredicateFn = predicate;\n return this;\n }\n /**\n * Configures wrapping mode, which determines whether the active item will wrap to\n * the other end of list when there are no more items in the given direction.\n * @param shouldWrap Whether the list should wrap when reaching the end.\n */\n withWrap(shouldWrap = true) {\n this._wrap = shouldWrap;\n return this;\n }\n /**\n * Configures whether the key manager should be able to move the selection vertically.\n * @param enabled Whether vertical selection should be enabled.\n */\n withVerticalOrientation(enabled = true) {\n this._vertical = enabled;\n return this;\n }\n /**\n * Configures the key manager to move the selection horizontally.\n * Passing in `null` will disable horizontal movement.\n * @param direction Direction in which the selection can be moved.\n */\n withHorizontalOrientation(direction) {\n this._horizontal = direction;\n return this;\n }\n /**\n * Modifier keys which are allowed to be held down and whose default actions will be prevented\n * as the user is pressing the arrow keys. Defaults to not allowing any modifier keys.\n */\n withAllowedModifierKeys(keys) {\n this._allowedModifierKeys = keys;\n return this;\n }\n /**\n * Turns on typeahead mode which allows users to set the active item by typing.\n * @param debounceInterval Time to wait after the last keystroke before setting the active item.\n */\n withTypeAhead(debounceInterval = 200) {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) &&\n this._items.length &&\n this._items.some(item => typeof item.getLabel !== 'function')) {\n throw Error('ListKeyManager items in typeahead mode must implement the `getLabel` method.');\n }\n this._typeaheadSubscription.unsubscribe();\n // Debounce the presses of non-navigational keys, collect the ones that correspond to letters\n // and convert those letters back into a string. Afterwards find the first item that starts\n // with that string and select it.\n this._typeaheadSubscription = this._letterKeyStream\n .pipe(tap(letter => this._pressedLetters.push(letter)), debounceTime(debounceInterval), filter(() => this._pressedLetters.length > 0), map(() => this._pressedLetters.join('')))\n .subscribe(inputString => {\n const items = this._getItemsArray();\n // Start at 1 because we want to start searching at the item immediately\n // following the current active item.\n for (let i = 1; i < items.length + 1; i++) {\n const index = (this._activeItemIndex + i) % items.length;\n const item = items[index];\n if (!this._skipPredicateFn(item) &&\n item.getLabel().toUpperCase().trim().indexOf(inputString) === 0) {\n this.setActiveItem(index);\n break;\n }\n }\n this._pressedLetters = [];\n });\n return this;\n }\n /** Cancels the current typeahead sequence. */\n cancelTypeahead() {\n this._pressedLetters = [];\n return this;\n }\n /**\n * Configures the key manager to activate the first and last items\n * respectively when the Home or End key is pressed.\n * @param enabled Whether pressing the Home or End key activates the first/last item.\n */\n withHomeAndEnd(enabled = true) {\n this._homeAndEnd = enabled;\n return this;\n }\n /**\n * Configures the key manager to activate every 10th, configured or first/last element in up/down direction\n * respectively when the Page-Up or Page-Down key is pressed.\n * @param enabled Whether pressing the Page-Up or Page-Down key activates the first/last item.\n * @param delta Whether pressing the Home or End key activates the first/last item.\n */\n withPageUpDown(enabled = true, delta = 10) {\n this._pageUpAndDown = { enabled, delta };\n return this;\n }\n setActiveItem(item) {\n const previousActiveItem = this._activeItem;\n this.updateActiveItem(item);\n if (this._activeItem !== previousActiveItem) {\n this.change.next(this._activeItemIndex);\n }\n }\n /**\n * Sets the active item depending on the key event passed in.\n * @param event Keyboard event to be used for determining which element should be active.\n */\n onKeydown(event) {\n const keyCode = event.keyCode;\n const modifiers = ['altKey', 'ctrlKey', 'metaKey', 'shiftKey'];\n const isModifierAllowed = modifiers.every(modifier => {\n return !event[modifier] || this._allowedModifierKeys.indexOf(modifier) > -1;\n });\n switch (keyCode) {\n case TAB:\n this.tabOut.next();\n return;\n case DOWN_ARROW:\n if (this._vertical && isModifierAllowed) {\n this.setNextItemActive();\n break;\n }\n else {\n return;\n }\n case UP_ARROW:\n if (this._vertical && isModifierAllowed) {\n this.setPreviousItemActive();\n break;\n }\n else {\n return;\n }\n case RIGHT_ARROW:\n if (this._horizontal && isModifierAllowed) {\n this._horizontal === 'rtl' ? this.setPreviousItemActive() : this.setNextItemActive();\n break;\n }\n else {\n return;\n }\n case LEFT_ARROW:\n if (this._horizontal && isModifierAllowed) {\n this._horizontal === 'rtl' ? this.setNextItemActive() : this.setPreviousItemActive();\n break;\n }\n else {\n return;\n }\n case HOME:\n if (this._homeAndEnd && isModifierAllowed) {\n this.setFirstItemActive();\n break;\n }\n else {\n return;\n }\n case END:\n if (this._homeAndEnd && isModifierAllowed) {\n this.setLastItemActive();\n break;\n }\n else {\n return;\n }\n case PAGE_UP:\n if (this._pageUpAndDown.enabled && isModifierAllowed) {\n const targetIndex = this._activeItemIndex - this._pageUpAndDown.delta;\n this._setActiveItemByIndex(targetIndex > 0 ? targetIndex : 0, 1);\n break;\n }\n else {\n return;\n }\n case PAGE_DOWN:\n if (this._pageUpAndDown.enabled && isModifierAllowed) {\n const targetIndex = this._activeItemIndex + this._pageUpAndDown.delta;\n const itemsLength = this._getItemsArray().length;\n this._setActiveItemByIndex(targetIndex < itemsLength ? targetIndex : itemsLength - 1, -1);\n break;\n }\n else {\n return;\n }\n default:\n if (isModifierAllowed || hasModifierKey(event, 'shiftKey')) {\n // Attempt to use the `event.key` which also maps it to the user's keyboard language,\n // otherwise fall back to resolving alphanumeric characters via the keyCode.\n if (event.key && event.key.length === 1) {\n this._letterKeyStream.next(event.key.toLocaleUpperCase());\n }\n else if ((keyCode >= A && keyCode <= Z) || (keyCode >= ZERO && keyCode <= NINE)) {\n this._letterKeyStream.next(String.fromCharCode(keyCode));\n }\n }\n // Note that we return here, in order to avoid preventing\n // the default action of non-navigational keys.\n return;\n }\n this._pressedLetters = [];\n event.preventDefault();\n }\n /** Index of the currently active item. */\n get activeItemIndex() {\n return this._activeItemIndex;\n }\n /** The active item. */\n get activeItem() {\n return this._activeItem;\n }\n /** Gets whether the user is currently typing into the manager using the typeahead feature. */\n isTyping() {\n return this._pressedLetters.length > 0;\n }\n /** Sets the active item to the first enabled item in the list. */\n setFirstItemActive() {\n this._setActiveItemByIndex(0, 1);\n }\n /** Sets the active item to the last enabled item in the list. */\n setLastItemActive() {\n this._setActiveItemByIndex(this._items.length - 1, -1);\n }\n /** Sets the active item to the next enabled item in the list. */\n setNextItemActive() {\n this._activeItemIndex < 0 ? this.setFirstItemActive() : this._setActiveItemByDelta(1);\n }\n /** Sets the active item to a previous enabled item in the list. */\n setPreviousItemActive() {\n this._activeItemIndex < 0 && this._wrap\n ? this.setLastItemActive()\n : this._setActiveItemByDelta(-1);\n }\n updateActiveItem(item) {\n const itemArray = this._getItemsArray();\n const index = typeof item === 'number' ? item : itemArray.indexOf(item);\n const activeItem = itemArray[index];\n // Explicitly check for `null` and `undefined` because other falsy values are valid.\n this._activeItem = activeItem == null ? null : activeItem;\n this._activeItemIndex = index;\n }\n /** Cleans up the key manager. */\n destroy() {\n this._typeaheadSubscription.unsubscribe();\n this._itemChangesSubscription?.unsubscribe();\n this._letterKeyStream.complete();\n this.tabOut.complete();\n this.change.complete();\n this._pressedLetters = [];\n }\n /**\n * This method sets the active item, given a list of items and the delta between the\n * currently active item and the new active item. It will calculate differently\n * depending on whether wrap mode is turned on.\n */\n _setActiveItemByDelta(delta) {\n this._wrap ? this._setActiveInWrapMode(delta) : this._setActiveInDefaultMode(delta);\n }\n /**\n * Sets the active item properly given \"wrap\" mode. In other words, it will continue to move\n * down the list until it finds an item that is not disabled, and it will wrap if it\n * encounters either end of the list.\n */\n _setActiveInWrapMode(delta) {\n const items = this._getItemsArray();\n for (let i = 1; i <= items.length; i++) {\n const index = (this._activeItemIndex + delta * i + items.length) % items.length;\n const item = items[index];\n if (!this._skipPredicateFn(item)) {\n this.setActiveItem(index);\n return;\n }\n }\n }\n /**\n * Sets the active item properly given the default mode. In other words, it will\n * continue to move down the list until it finds an item that is not disabled. If\n * it encounters either end of the list, it will stop and not wrap.\n */\n _setActiveInDefaultMode(delta) {\n this._setActiveItemByIndex(this._activeItemIndex + delta, delta);\n }\n /**\n * Sets the active item to the first enabled item starting at the index specified. If the\n * item is disabled, it will move in the fallbackDelta direction until it either\n * finds an enabled item or encounters the end of the list.\n */\n _setActiveItemByIndex(index, fallbackDelta) {\n const items = this._getItemsArray();\n if (!items[index]) {\n return;\n }\n while (this._skipPredicateFn(items[index])) {\n index += fallbackDelta;\n if (!items[index]) {\n return;\n }\n }\n this.setActiveItem(index);\n }\n /** Returns the items as an array. */\n _getItemsArray() {\n return this._items instanceof QueryList ? this._items.toArray() : this._items;\n }\n}\n\nclass ActiveDescendantKeyManager extends ListKeyManager {\n setActiveItem(index) {\n if (this.activeItem) {\n this.activeItem.setInactiveStyles();\n }\n super.setActiveItem(index);\n if (this.activeItem) {\n this.activeItem.setActiveStyles();\n }\n }\n}\n\nclass FocusKeyManager extends ListKeyManager {\n constructor() {\n super(...arguments);\n this._origin = 'program';\n }\n /**\n * Sets the focus origin that will be passed in to the items for any subsequent `focus` calls.\n * @param origin Focus origin to be used when focusing items.\n */\n setFocusOrigin(origin) {\n this._origin = origin;\n return this;\n }\n setActiveItem(item) {\n super.setActiveItem(item);\n if (this.activeItem) {\n this.activeItem.focus(this._origin);\n }\n }\n}\n\n/**\n * Configuration for the isFocusable method.\n */\nclass IsFocusableConfig {\n constructor() {\n /**\n * Whether to count an element as focusable even if it is not currently visible.\n */\n this.ignoreVisibility = false;\n }\n}\n// The InteractivityChecker leans heavily on the ally.js accessibility utilities.\n// Methods like `isTabbable` are only covering specific edge-cases for the browsers which are\n// supported.\n/**\n * Utility for checking the interactivity of an element, such as whether is is focusable or\n * tabbable.\n */\nclass InteractivityChecker {\n constructor(_platform) {\n this._platform = _platform;\n }\n /**\n * Gets whether an element is disabled.\n *\n * @param element Element to be checked.\n * @returns Whether the element is disabled.\n */\n isDisabled(element) {\n // This does not capture some cases, such as a non-form control with a disabled attribute or\n // a form control inside of a disabled form, but should capture the most common cases.\n return element.hasAttribute('disabled');\n }\n /**\n * Gets whether an element is visible for the purposes of interactivity.\n *\n * This will capture states like `display: none` and `visibility: hidden`, but not things like\n * being clipped by an `overflow: hidden` parent or being outside the viewport.\n *\n * @returns Whether the element is visible.\n */\n isVisible(element) {\n return hasGeometry(element) && getComputedStyle(element).visibility === 'visible';\n }\n /**\n * Gets whether an element can be reached via Tab key.\n * Assumes that the element has already been checked with isFocusable.\n *\n * @param element Element to be checked.\n * @returns Whether the element is tabbable.\n */\n isTabbable(element) {\n // Nothing is tabbable on the server 😎\n if (!this._platform.isBrowser) {\n return false;\n }\n const frameElement = getFrameElement(getWindow(element));\n if (frameElement) {\n // Frame elements inherit their tabindex onto all child elements.\n if (getTabIndexValue(frameElement) === -1) {\n return false;\n }\n // Browsers disable tabbing to an element inside of an invisible frame.\n if (!this.isVisible(frameElement)) {\n return false;\n }\n }\n let nodeName = element.nodeName.toLowerCase();\n let tabIndexValue = getTabIndexValue(element);\n if (element.hasAttribute('contenteditable')) {\n return tabIndexValue !== -1;\n }\n if (nodeName === 'iframe' || nodeName === 'object') {\n // The frame or object's content may be tabbable depending on the content, but it's\n // not possibly to reliably detect the content of the frames. We always consider such\n // elements as non-tabbable.\n return false;\n }\n // In iOS, the browser only considers some specific elements as tabbable.\n if (this._platform.WEBKIT && this._platform.IOS && !isPotentiallyTabbableIOS(element)) {\n return false;\n }\n if (nodeName === 'audio') {\n // Audio elements without controls enabled are never tabbable, regardless\n // of the tabindex attribute explicitly being set.\n if (!element.hasAttribute('controls')) {\n return false;\n }\n // Audio elements with controls are by default tabbable unless the\n // tabindex attribute is set to `-1` explicitly.\n return tabIndexValue !== -1;\n }\n if (nodeName === 'video') {\n // For all video elements, if the tabindex attribute is set to `-1`, the video\n // is not tabbable. Note: We cannot rely on the default `HTMLElement.tabIndex`\n // property as that one is set to `-1` in Chrome, Edge and Safari v13.1. The\n // tabindex attribute is the source of truth here.\n if (tabIndexValue === -1) {\n return false;\n }\n // If the tabindex is explicitly set, and not `-1` (as per check before), the\n // video element is always tabbable (regardless of whether it has controls or not).\n if (tabIndexValue !== null) {\n return true;\n }\n // Otherwise (when no explicit tabindex is set), a video is only tabbable if it\n // has controls enabled. Firefox is special as videos are always tabbable regardless\n // of whether there are controls or not.\n return this._platform.FIREFOX || element.hasAttribute('controls');\n }\n return element.tabIndex >= 0;\n }\n /**\n * Gets whether an element can be focused by the user.\n *\n * @param element Element to be checked.\n * @param config The config object with options to customize this method's behavior\n * @returns Whether the element is focusable.\n */\n isFocusable(element, config) {\n // Perform checks in order of left to most expensive.\n // Again, naive approach that does not capture many edge cases and browser quirks.\n return (isPotentiallyFocusable(element) &&\n !this.isDisabled(element) &&\n (config?.ignoreVisibility || this.isVisible(element)));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: InteractivityChecker, deps: [{ token: i1.Platform }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: InteractivityChecker, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: InteractivityChecker, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: i1.Platform }]; } });\n/**\n * Returns the frame element from a window object. Since browsers like MS Edge throw errors if\n * the frameElement property is being accessed from a different host address, this property\n * should be accessed carefully.\n */\nfunction getFrameElement(window) {\n try {\n return window.frameElement;\n }\n catch {\n return null;\n }\n}\n/** Checks whether the specified element has any geometry / rectangles. */\nfunction hasGeometry(element) {\n // Use logic from jQuery to check for an invisible element.\n // See https://github.com/jquery/jquery/blob/master/src/css/hiddenVisibleSelectors.js#L12\n return !!(element.offsetWidth ||\n element.offsetHeight ||\n (typeof element.getClientRects === 'function' && element.getClientRects().length));\n}\n/** Gets whether an element's */\nfunction isNativeFormElement(element) {\n let nodeName = element.nodeName.toLowerCase();\n return (nodeName === 'input' ||\n nodeName === 'select' ||\n nodeName === 'button' ||\n nodeName === 'textarea');\n}\n/** Gets whether an element is an ``. */\nfunction isHiddenInput(element) {\n return isInputElement(element) && element.type == 'hidden';\n}\n/** Gets whether an element is an anchor that has an href attribute. */\nfunction isAnchorWithHref(element) {\n return isAnchorElement(element) && element.hasAttribute('href');\n}\n/** Gets whether an element is an input element. */\nfunction isInputElement(element) {\n return element.nodeName.toLowerCase() == 'input';\n}\n/** Gets whether an element is an anchor element. */\nfunction isAnchorElement(element) {\n return element.nodeName.toLowerCase() == 'a';\n}\n/** Gets whether an element has a valid tabindex. */\nfunction hasValidTabIndex(element) {\n if (!element.hasAttribute('tabindex') || element.tabIndex === undefined) {\n return false;\n }\n let tabIndex = element.getAttribute('tabindex');\n return !!(tabIndex && !isNaN(parseInt(tabIndex, 10)));\n}\n/**\n * Returns the parsed tabindex from the element attributes instead of returning the\n * evaluated tabindex from the browsers defaults.\n */\nfunction getTabIndexValue(element) {\n if (!hasValidTabIndex(element)) {\n return null;\n }\n // See browser issue in Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=1128054\n const tabIndex = parseInt(element.getAttribute('tabindex') || '', 10);\n return isNaN(tabIndex) ? -1 : tabIndex;\n}\n/** Checks whether the specified element is potentially tabbable on iOS */\nfunction isPotentiallyTabbableIOS(element) {\n let nodeName = element.nodeName.toLowerCase();\n let inputType = nodeName === 'input' && element.type;\n return (inputType === 'text' ||\n inputType === 'password' ||\n nodeName === 'select' ||\n nodeName === 'textarea');\n}\n/**\n * Gets whether an element is potentially focusable without taking current visible/disabled state\n * into account.\n */\nfunction isPotentiallyFocusable(element) {\n // Inputs are potentially focusable *unless* they're type=\"hidden\".\n if (isHiddenInput(element)) {\n return false;\n }\n return (isNativeFormElement(element) ||\n isAnchorWithHref(element) ||\n element.hasAttribute('contenteditable') ||\n hasValidTabIndex(element));\n}\n/** Gets the parent window of a DOM node with regards of being inside of an iframe. */\nfunction getWindow(node) {\n // ownerDocument is null if `node` itself *is* a document.\n return (node.ownerDocument && node.ownerDocument.defaultView) || window;\n}\n\n/**\n * Class that allows for trapping focus within a DOM element.\n *\n * This class currently uses a relatively simple approach to focus trapping.\n * It assumes that the tab order is the same as DOM order, which is not necessarily true.\n * Things like `tabIndex > 0`, flex `order`, and shadow roots can cause the two to be misaligned.\n *\n * @deprecated Use `ConfigurableFocusTrap` instead.\n * @breaking-change 11.0.0\n */\nclass FocusTrap {\n /** Whether the focus trap is active. */\n get enabled() {\n return this._enabled;\n }\n set enabled(value) {\n this._enabled = value;\n if (this._startAnchor && this._endAnchor) {\n this._toggleAnchorTabIndex(value, this._startAnchor);\n this._toggleAnchorTabIndex(value, this._endAnchor);\n }\n }\n constructor(_element, _checker, _ngZone, _document, deferAnchors = false) {\n this._element = _element;\n this._checker = _checker;\n this._ngZone = _ngZone;\n this._document = _document;\n this._hasAttached = false;\n // Event listeners for the anchors. Need to be regular functions so that we can unbind them later.\n this.startAnchorListener = () => this.focusLastTabbableElement();\n this.endAnchorListener = () => this.focusFirstTabbableElement();\n this._enabled = true;\n if (!deferAnchors) {\n this.attachAnchors();\n }\n }\n /** Destroys the focus trap by cleaning up the anchors. */\n destroy() {\n const startAnchor = this._startAnchor;\n const endAnchor = this._endAnchor;\n if (startAnchor) {\n startAnchor.removeEventListener('focus', this.startAnchorListener);\n startAnchor.remove();\n }\n if (endAnchor) {\n endAnchor.removeEventListener('focus', this.endAnchorListener);\n endAnchor.remove();\n }\n this._startAnchor = this._endAnchor = null;\n this._hasAttached = false;\n }\n /**\n * Inserts the anchors into the DOM. This is usually done automatically\n * in the constructor, but can be deferred for cases like directives with `*ngIf`.\n * @returns Whether the focus trap managed to attach successfully. This may not be the case\n * if the target element isn't currently in the DOM.\n */\n attachAnchors() {\n // If we're not on the browser, there can be no focus to trap.\n if (this._hasAttached) {\n return true;\n }\n this._ngZone.runOutsideAngular(() => {\n if (!this._startAnchor) {\n this._startAnchor = this._createAnchor();\n this._startAnchor.addEventListener('focus', this.startAnchorListener);\n }\n if (!this._endAnchor) {\n this._endAnchor = this._createAnchor();\n this._endAnchor.addEventListener('focus', this.endAnchorListener);\n }\n });\n if (this._element.parentNode) {\n this._element.parentNode.insertBefore(this._startAnchor, this._element);\n this._element.parentNode.insertBefore(this._endAnchor, this._element.nextSibling);\n this._hasAttached = true;\n }\n return this._hasAttached;\n }\n /**\n * Waits for the zone to stabilize, then focuses the first tabbable element.\n * @returns Returns a promise that resolves with a boolean, depending\n * on whether focus was moved successfully.\n */\n focusInitialElementWhenReady(options) {\n return new Promise(resolve => {\n this._executeOnStable(() => resolve(this.focusInitialElement(options)));\n });\n }\n /**\n * Waits for the zone to stabilize, then focuses\n * the first tabbable element within the focus trap region.\n * @returns Returns a promise that resolves with a boolean, depending\n * on whether focus was moved successfully.\n */\n focusFirstTabbableElementWhenReady(options) {\n return new Promise(resolve => {\n this._executeOnStable(() => resolve(this.focusFirstTabbableElement(options)));\n });\n }\n /**\n * Waits for the zone to stabilize, then focuses\n * the last tabbable element within the focus trap region.\n * @returns Returns a promise that resolves with a boolean, depending\n * on whether focus was moved successfully.\n */\n focusLastTabbableElementWhenReady(options) {\n return new Promise(resolve => {\n this._executeOnStable(() => resolve(this.focusLastTabbableElement(options)));\n });\n }\n /**\n * Get the specified boundary element of the trapped region.\n * @param bound The boundary to get (start or end of trapped region).\n * @returns The boundary element.\n */\n _getRegionBoundary(bound) {\n // Contains the deprecated version of selector, for temporary backwards comparability.\n const markers = this._element.querySelectorAll(`[cdk-focus-region-${bound}], ` + `[cdkFocusRegion${bound}], ` + `[cdk-focus-${bound}]`);\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n for (let i = 0; i < markers.length; i++) {\n // @breaking-change 8.0.0\n if (markers[i].hasAttribute(`cdk-focus-${bound}`)) {\n console.warn(`Found use of deprecated attribute 'cdk-focus-${bound}', ` +\n `use 'cdkFocusRegion${bound}' instead. The deprecated ` +\n `attribute will be removed in 8.0.0.`, markers[i]);\n }\n else if (markers[i].hasAttribute(`cdk-focus-region-${bound}`)) {\n console.warn(`Found use of deprecated attribute 'cdk-focus-region-${bound}', ` +\n `use 'cdkFocusRegion${bound}' instead. The deprecated attribute ` +\n `will be removed in 8.0.0.`, markers[i]);\n }\n }\n }\n if (bound == 'start') {\n return markers.length ? markers[0] : this._getFirstTabbableElement(this._element);\n }\n return markers.length\n ? markers[markers.length - 1]\n : this._getLastTabbableElement(this._element);\n }\n /**\n * Focuses the element that should be focused when the focus trap is initialized.\n * @returns Whether focus was moved successfully.\n */\n focusInitialElement(options) {\n // Contains the deprecated version of selector, for temporary backwards comparability.\n const redirectToElement = this._element.querySelector(`[cdk-focus-initial], ` + `[cdkFocusInitial]`);\n if (redirectToElement) {\n // @breaking-change 8.0.0\n if ((typeof ngDevMode === 'undefined' || ngDevMode) &&\n redirectToElement.hasAttribute(`cdk-focus-initial`)) {\n console.warn(`Found use of deprecated attribute 'cdk-focus-initial', ` +\n `use 'cdkFocusInitial' instead. The deprecated attribute ` +\n `will be removed in 8.0.0`, redirectToElement);\n }\n // Warn the consumer if the element they've pointed to\n // isn't focusable, when not in production mode.\n if ((typeof ngDevMode === 'undefined' || ngDevMode) &&\n !this._checker.isFocusable(redirectToElement)) {\n console.warn(`Element matching '[cdkFocusInitial]' is not focusable.`, redirectToElement);\n }\n if (!this._checker.isFocusable(redirectToElement)) {\n const focusableChild = this._getFirstTabbableElement(redirectToElement);\n focusableChild?.focus(options);\n return !!focusableChild;\n }\n redirectToElement.focus(options);\n return true;\n }\n return this.focusFirstTabbableElement(options);\n }\n /**\n * Focuses the first tabbable element within the focus trap region.\n * @returns Whether focus was moved successfully.\n */\n focusFirstTabbableElement(options) {\n const redirectToElement = this._getRegionBoundary('start');\n if (redirectToElement) {\n redirectToElement.focus(options);\n }\n return !!redirectToElement;\n }\n /**\n * Focuses the last tabbable element within the focus trap region.\n * @returns Whether focus was moved successfully.\n */\n focusLastTabbableElement(options) {\n const redirectToElement = this._getRegionBoundary('end');\n if (redirectToElement) {\n redirectToElement.focus(options);\n }\n return !!redirectToElement;\n }\n /**\n * Checks whether the focus trap has successfully been attached.\n */\n hasAttached() {\n return this._hasAttached;\n }\n /** Get the first tabbable element from a DOM subtree (inclusive). */\n _getFirstTabbableElement(root) {\n if (this._checker.isFocusable(root) && this._checker.isTabbable(root)) {\n return root;\n }\n const children = root.children;\n for (let i = 0; i < children.length; i++) {\n const tabbableChild = children[i].nodeType === this._document.ELEMENT_NODE\n ? this._getFirstTabbableElement(children[i])\n : null;\n if (tabbableChild) {\n return tabbableChild;\n }\n }\n return null;\n }\n /** Get the last tabbable element from a DOM subtree (inclusive). */\n _getLastTabbableElement(root) {\n if (this._checker.isFocusable(root) && this._checker.isTabbable(root)) {\n return root;\n }\n // Iterate in reverse DOM order.\n const children = root.children;\n for (let i = children.length - 1; i >= 0; i--) {\n const tabbableChild = children[i].nodeType === this._document.ELEMENT_NODE\n ? this._getLastTabbableElement(children[i])\n : null;\n if (tabbableChild) {\n return tabbableChild;\n }\n }\n return null;\n }\n /** Creates an anchor element. */\n _createAnchor() {\n const anchor = this._document.createElement('div');\n this._toggleAnchorTabIndex(this._enabled, anchor);\n anchor.classList.add('cdk-visually-hidden');\n anchor.classList.add('cdk-focus-trap-anchor');\n anchor.setAttribute('aria-hidden', 'true');\n return anchor;\n }\n /**\n * Toggles the `tabindex` of an anchor, based on the enabled state of the focus trap.\n * @param isEnabled Whether the focus trap is enabled.\n * @param anchor Anchor on which to toggle the tabindex.\n */\n _toggleAnchorTabIndex(isEnabled, anchor) {\n // Remove the tabindex completely, rather than setting it to -1, because if the\n // element has a tabindex, the user might still hit it when navigating with the arrow keys.\n isEnabled ? anchor.setAttribute('tabindex', '0') : anchor.removeAttribute('tabindex');\n }\n /**\n * Toggles the`tabindex` of both anchors to either trap Tab focus or allow it to escape.\n * @param enabled: Whether the anchors should trap Tab.\n */\n toggleAnchors(enabled) {\n if (this._startAnchor && this._endAnchor) {\n this._toggleAnchorTabIndex(enabled, this._startAnchor);\n this._toggleAnchorTabIndex(enabled, this._endAnchor);\n }\n }\n /** Executes a function when the zone is stable. */\n _executeOnStable(fn) {\n if (this._ngZone.isStable) {\n fn();\n }\n else {\n this._ngZone.onStable.pipe(take(1)).subscribe(fn);\n }\n }\n}\n/**\n * Factory that allows easy instantiation of focus traps.\n * @deprecated Use `ConfigurableFocusTrapFactory` instead.\n * @breaking-change 11.0.0\n */\nclass FocusTrapFactory {\n constructor(_checker, _ngZone, _document) {\n this._checker = _checker;\n this._ngZone = _ngZone;\n this._document = _document;\n }\n /**\n * Creates a focus-trapped region around the given element.\n * @param element The element around which focus will be trapped.\n * @param deferCaptureElements Defers the creation of focus-capturing elements to be done\n * manually by the user.\n * @returns The created focus trap instance.\n */\n create(element, deferCaptureElements = false) {\n return new FocusTrap(element, this._checker, this._ngZone, this._document, deferCaptureElements);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: FocusTrapFactory, deps: [{ token: InteractivityChecker }, { token: i0.NgZone }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: FocusTrapFactory, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: FocusTrapFactory, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: InteractivityChecker }, { type: i0.NgZone }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; } });\n/** Directive for trapping focus within a region. */\nclass CdkTrapFocus {\n /** Whether the focus trap is active. */\n get enabled() {\n return this.focusTrap.enabled;\n }\n set enabled(value) {\n this.focusTrap.enabled = coerceBooleanProperty(value);\n }\n /**\n * Whether the directive should automatically move focus into the trapped region upon\n * initialization and return focus to the previous activeElement upon destruction.\n */\n get autoCapture() {\n return this._autoCapture;\n }\n set autoCapture(value) {\n this._autoCapture = coerceBooleanProperty(value);\n }\n constructor(_elementRef, _focusTrapFactory, \n /**\n * @deprecated No longer being used. To be removed.\n * @breaking-change 13.0.0\n */\n _document) {\n this._elementRef = _elementRef;\n this._focusTrapFactory = _focusTrapFactory;\n /** Previously focused element to restore focus to upon destroy when using autoCapture. */\n this._previouslyFocusedElement = null;\n this.focusTrap = this._focusTrapFactory.create(this._elementRef.nativeElement, true);\n }\n ngOnDestroy() {\n this.focusTrap.destroy();\n // If we stored a previously focused element when using autoCapture, return focus to that\n // element now that the trapped region is being destroyed.\n if (this._previouslyFocusedElement) {\n this._previouslyFocusedElement.focus();\n this._previouslyFocusedElement = null;\n }\n }\n ngAfterContentInit() {\n this.focusTrap.attachAnchors();\n if (this.autoCapture) {\n this._captureFocus();\n }\n }\n ngDoCheck() {\n if (!this.focusTrap.hasAttached()) {\n this.focusTrap.attachAnchors();\n }\n }\n ngOnChanges(changes) {\n const autoCaptureChange = changes['autoCapture'];\n if (autoCaptureChange &&\n !autoCaptureChange.firstChange &&\n this.autoCapture &&\n this.focusTrap.hasAttached()) {\n this._captureFocus();\n }\n }\n _captureFocus() {\n this._previouslyFocusedElement = _getFocusedElementPierceShadowDom();\n this.focusTrap.focusInitialElementWhenReady();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkTrapFocus, deps: [{ token: i0.ElementRef }, { token: FocusTrapFactory }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.0\", type: CdkTrapFocus, selector: \"[cdkTrapFocus]\", inputs: { enabled: [\"cdkTrapFocus\", \"enabled\"], autoCapture: [\"cdkTrapFocusAutoCapture\", \"autoCapture\"] }, exportAs: [\"cdkTrapFocus\"], usesOnChanges: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkTrapFocus, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkTrapFocus]',\n exportAs: 'cdkTrapFocus',\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: FocusTrapFactory }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; }, propDecorators: { enabled: [{\n type: Input,\n args: ['cdkTrapFocus']\n }], autoCapture: [{\n type: Input,\n args: ['cdkTrapFocusAutoCapture']\n }] } });\n\n/**\n * Class that allows for trapping focus within a DOM element.\n *\n * This class uses a strategy pattern that determines how it traps focus.\n * See FocusTrapInertStrategy.\n */\nclass ConfigurableFocusTrap extends FocusTrap {\n /** Whether the FocusTrap is enabled. */\n get enabled() {\n return this._enabled;\n }\n set enabled(value) {\n this._enabled = value;\n if (this._enabled) {\n this._focusTrapManager.register(this);\n }\n else {\n this._focusTrapManager.deregister(this);\n }\n }\n constructor(_element, _checker, _ngZone, _document, _focusTrapManager, _inertStrategy, config) {\n super(_element, _checker, _ngZone, _document, config.defer);\n this._focusTrapManager = _focusTrapManager;\n this._inertStrategy = _inertStrategy;\n this._focusTrapManager.register(this);\n }\n /** Notifies the FocusTrapManager that this FocusTrap will be destroyed. */\n destroy() {\n this._focusTrapManager.deregister(this);\n super.destroy();\n }\n /** @docs-private Implemented as part of ManagedFocusTrap. */\n _enable() {\n this._inertStrategy.preventFocus(this);\n this.toggleAnchors(true);\n }\n /** @docs-private Implemented as part of ManagedFocusTrap. */\n _disable() {\n this._inertStrategy.allowFocus(this);\n this.toggleAnchors(false);\n }\n}\n\n/** The injection token used to specify the inert strategy. */\nconst FOCUS_TRAP_INERT_STRATEGY = new InjectionToken('FOCUS_TRAP_INERT_STRATEGY');\n\n/**\n * Lightweight FocusTrapInertStrategy that adds a document focus event\n * listener to redirect focus back inside the FocusTrap.\n */\nclass EventListenerFocusTrapInertStrategy {\n constructor() {\n /** Focus event handler. */\n this._listener = null;\n }\n /** Adds a document event listener that keeps focus inside the FocusTrap. */\n preventFocus(focusTrap) {\n // Ensure there's only one listener per document\n if (this._listener) {\n focusTrap._document.removeEventListener('focus', this._listener, true);\n }\n this._listener = (e) => this._trapFocus(focusTrap, e);\n focusTrap._ngZone.runOutsideAngular(() => {\n focusTrap._document.addEventListener('focus', this._listener, true);\n });\n }\n /** Removes the event listener added in preventFocus. */\n allowFocus(focusTrap) {\n if (!this._listener) {\n return;\n }\n focusTrap._document.removeEventListener('focus', this._listener, true);\n this._listener = null;\n }\n /**\n * Refocuses the first element in the FocusTrap if the focus event target was outside\n * the FocusTrap.\n *\n * This is an event listener callback. The event listener is added in runOutsideAngular,\n * so all this code runs outside Angular as well.\n */\n _trapFocus(focusTrap, event) {\n const target = event.target;\n const focusTrapRoot = focusTrap._element;\n // Don't refocus if target was in an overlay, because the overlay might be associated\n // with an element inside the FocusTrap, ex. mat-select.\n if (target && !focusTrapRoot.contains(target) && !target.closest?.('div.cdk-overlay-pane')) {\n // Some legacy FocusTrap usages have logic that focuses some element on the page\n // just before FocusTrap is destroyed. For backwards compatibility, wait\n // to be sure FocusTrap is still enabled before refocusing.\n setTimeout(() => {\n // Check whether focus wasn't put back into the focus trap while the timeout was pending.\n if (focusTrap.enabled && !focusTrapRoot.contains(focusTrap._document.activeElement)) {\n focusTrap.focusFirstTabbableElement();\n }\n });\n }\n }\n}\n\n/** Injectable that ensures only the most recently enabled FocusTrap is active. */\nclass FocusTrapManager {\n constructor() {\n // A stack of the FocusTraps on the page. Only the FocusTrap at the\n // top of the stack is active.\n this._focusTrapStack = [];\n }\n /**\n * Disables the FocusTrap at the top of the stack, and then pushes\n * the new FocusTrap onto the stack.\n */\n register(focusTrap) {\n // Dedupe focusTraps that register multiple times.\n this._focusTrapStack = this._focusTrapStack.filter(ft => ft !== focusTrap);\n let stack = this._focusTrapStack;\n if (stack.length) {\n stack[stack.length - 1]._disable();\n }\n stack.push(focusTrap);\n focusTrap._enable();\n }\n /**\n * Removes the FocusTrap from the stack, and activates the\n * FocusTrap that is the new top of the stack.\n */\n deregister(focusTrap) {\n focusTrap._disable();\n const stack = this._focusTrapStack;\n const i = stack.indexOf(focusTrap);\n if (i !== -1) {\n stack.splice(i, 1);\n if (stack.length) {\n stack[stack.length - 1]._enable();\n }\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: FocusTrapManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: FocusTrapManager, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: FocusTrapManager, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\n/** Factory that allows easy instantiation of configurable focus traps. */\nclass ConfigurableFocusTrapFactory {\n constructor(_checker, _ngZone, _focusTrapManager, _document, _inertStrategy) {\n this._checker = _checker;\n this._ngZone = _ngZone;\n this._focusTrapManager = _focusTrapManager;\n this._document = _document;\n // TODO split up the strategies into different modules, similar to DateAdapter.\n this._inertStrategy = _inertStrategy || new EventListenerFocusTrapInertStrategy();\n }\n create(element, config = { defer: false }) {\n let configObject;\n if (typeof config === 'boolean') {\n configObject = { defer: config };\n }\n else {\n configObject = config;\n }\n return new ConfigurableFocusTrap(element, this._checker, this._ngZone, this._document, this._focusTrapManager, this._inertStrategy, configObject);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: ConfigurableFocusTrapFactory, deps: [{ token: InteractivityChecker }, { token: i0.NgZone }, { token: FocusTrapManager }, { token: DOCUMENT }, { token: FOCUS_TRAP_INERT_STRATEGY, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: ConfigurableFocusTrapFactory, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: ConfigurableFocusTrapFactory, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: InteractivityChecker }, { type: i0.NgZone }, { type: FocusTrapManager }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [FOCUS_TRAP_INERT_STRATEGY]\n }] }]; } });\n\n/** Gets whether an event could be a faked `mousedown` event dispatched by a screen reader. */\nfunction isFakeMousedownFromScreenReader(event) {\n // Some screen readers will dispatch a fake `mousedown` event when pressing enter or space on\n // a clickable element. We can distinguish these events when both `offsetX` and `offsetY` are\n // zero or `event.buttons` is zero, depending on the browser:\n // - `event.buttons` works on Firefox, but fails on Chrome.\n // - `offsetX` and `offsetY` work on Chrome, but fail on Firefox.\n // Note that there's an edge case where the user could click the 0x0 spot of the\n // screen themselves, but that is unlikely to contain interactive elements.\n return event.buttons === 0 || (event.offsetX === 0 && event.offsetY === 0);\n}\n/** Gets whether an event could be a faked `touchstart` event dispatched by a screen reader. */\nfunction isFakeTouchstartFromScreenReader(event) {\n const touch = (event.touches && event.touches[0]) || (event.changedTouches && event.changedTouches[0]);\n // A fake `touchstart` can be distinguished from a real one by looking at the `identifier`\n // which is typically >= 0 on a real device versus -1 from a screen reader. Just to be safe,\n // we can also look at `radiusX` and `radiusY`. This behavior was observed against a Windows 10\n // device with a touch screen running NVDA v2020.4 and Firefox 85 or Chrome 88.\n return (!!touch &&\n touch.identifier === -1 &&\n (touch.radiusX == null || touch.radiusX === 1) &&\n (touch.radiusY == null || touch.radiusY === 1));\n}\n\n/**\n * Injectable options for the InputModalityDetector. These are shallowly merged with the default\n * options.\n */\nconst INPUT_MODALITY_DETECTOR_OPTIONS = new InjectionToken('cdk-input-modality-detector-options');\n/**\n * Default options for the InputModalityDetector.\n *\n * Modifier keys are ignored by default (i.e. when pressed won't cause the service to detect\n * keyboard input modality) for two reasons:\n *\n * 1. Modifier keys are commonly used with mouse to perform actions such as 'right click' or 'open\n * in new tab', and are thus less representative of actual keyboard interaction.\n * 2. VoiceOver triggers some keyboard events when linearly navigating with Control + Option (but\n * confusingly not with Caps Lock). Thus, to have parity with other screen readers, we ignore\n * these keys so as to not update the input modality.\n *\n * Note that we do not by default ignore the right Meta key on Safari because it has the same key\n * code as the ContextMenu key on other browsers. When we switch to using event.key, we can\n * distinguish between the two.\n */\nconst INPUT_MODALITY_DETECTOR_DEFAULT_OPTIONS = {\n ignoreKeys: [ALT, CONTROL, MAC_META, META, SHIFT],\n};\n/**\n * The amount of time needed to pass after a touchstart event in order for a subsequent mousedown\n * event to be attributed as mouse and not touch.\n *\n * This is the value used by AngularJS Material. Through trial and error (on iPhone 6S) they found\n * that a value of around 650ms seems appropriate.\n */\nconst TOUCH_BUFFER_MS = 650;\n/**\n * Event listener options that enable capturing and also mark the listener as passive if the browser\n * supports it.\n */\nconst modalityEventListenerOptions = normalizePassiveListenerOptions({\n passive: true,\n capture: true,\n});\n/**\n * Service that detects the user's input modality.\n *\n * This service does not update the input modality when a user navigates with a screen reader\n * (e.g. linear navigation with VoiceOver, object navigation / browse mode with NVDA, virtual PC\n * cursor mode with JAWS). This is in part due to technical limitations (i.e. keyboard events do not\n * fire as expected in these modes) but is also arguably the correct behavior. Navigating with a\n * screen reader is akin to visually scanning a page, and should not be interpreted as actual user\n * input interaction.\n *\n * When a user is not navigating but *interacting* with a screen reader, this service attempts to\n * update the input modality to keyboard, but in general this service's behavior is largely\n * undefined.\n */\nclass InputModalityDetector {\n /** The most recently detected input modality. */\n get mostRecentModality() {\n return this._modality.value;\n }\n constructor(_platform, ngZone, document, options) {\n this._platform = _platform;\n /**\n * The most recently detected input modality event target. Is null if no input modality has been\n * detected or if the associated event target is null for some unknown reason.\n */\n this._mostRecentTarget = null;\n /** The underlying BehaviorSubject that emits whenever an input modality is detected. */\n this._modality = new BehaviorSubject(null);\n /**\n * The timestamp of the last touch input modality. Used to determine whether mousedown events\n * should be attributed to mouse or touch.\n */\n this._lastTouchMs = 0;\n /**\n * Handles keydown events. Must be an arrow function in order to preserve the context when it gets\n * bound.\n */\n this._onKeydown = (event) => {\n // If this is one of the keys we should ignore, then ignore it and don't update the input\n // modality to keyboard.\n if (this._options?.ignoreKeys?.some(keyCode => keyCode === event.keyCode)) {\n return;\n }\n this._modality.next('keyboard');\n this._mostRecentTarget = _getEventTarget(event);\n };\n /**\n * Handles mousedown events. Must be an arrow function in order to preserve the context when it\n * gets bound.\n */\n this._onMousedown = (event) => {\n // Touches trigger both touch and mouse events, so we need to distinguish between mouse events\n // that were triggered via mouse vs touch. To do so, check if the mouse event occurs closely\n // after the previous touch event.\n if (Date.now() - this._lastTouchMs < TOUCH_BUFFER_MS) {\n return;\n }\n // Fake mousedown events are fired by some screen readers when controls are activated by the\n // screen reader. Attribute them to keyboard input modality.\n this._modality.next(isFakeMousedownFromScreenReader(event) ? 'keyboard' : 'mouse');\n this._mostRecentTarget = _getEventTarget(event);\n };\n /**\n * Handles touchstart events. Must be an arrow function in order to preserve the context when it\n * gets bound.\n */\n this._onTouchstart = (event) => {\n // Same scenario as mentioned in _onMousedown, but on touch screen devices, fake touchstart\n // events are fired. Again, attribute to keyboard input modality.\n if (isFakeTouchstartFromScreenReader(event)) {\n this._modality.next('keyboard');\n return;\n }\n // Store the timestamp of this touch event, as it's used to distinguish between mouse events\n // triggered via mouse vs touch.\n this._lastTouchMs = Date.now();\n this._modality.next('touch');\n this._mostRecentTarget = _getEventTarget(event);\n };\n this._options = {\n ...INPUT_MODALITY_DETECTOR_DEFAULT_OPTIONS,\n ...options,\n };\n // Skip the first emission as it's null.\n this.modalityDetected = this._modality.pipe(skip(1));\n this.modalityChanged = this.modalityDetected.pipe(distinctUntilChanged());\n // If we're not in a browser, this service should do nothing, as there's no relevant input\n // modality to detect.\n if (_platform.isBrowser) {\n ngZone.runOutsideAngular(() => {\n document.addEventListener('keydown', this._onKeydown, modalityEventListenerOptions);\n document.addEventListener('mousedown', this._onMousedown, modalityEventListenerOptions);\n document.addEventListener('touchstart', this._onTouchstart, modalityEventListenerOptions);\n });\n }\n }\n ngOnDestroy() {\n this._modality.complete();\n if (this._platform.isBrowser) {\n document.removeEventListener('keydown', this._onKeydown, modalityEventListenerOptions);\n document.removeEventListener('mousedown', this._onMousedown, modalityEventListenerOptions);\n document.removeEventListener('touchstart', this._onTouchstart, modalityEventListenerOptions);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: InputModalityDetector, deps: [{ token: i1.Platform }, { token: i0.NgZone }, { token: DOCUMENT }, { token: INPUT_MODALITY_DETECTOR_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: InputModalityDetector, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: InputModalityDetector, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: i1.Platform }, { type: i0.NgZone }, { type: Document, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [INPUT_MODALITY_DETECTOR_OPTIONS]\n }] }]; } });\n\nconst LIVE_ANNOUNCER_ELEMENT_TOKEN = new InjectionToken('liveAnnouncerElement', {\n providedIn: 'root',\n factory: LIVE_ANNOUNCER_ELEMENT_TOKEN_FACTORY,\n});\n/** @docs-private */\nfunction LIVE_ANNOUNCER_ELEMENT_TOKEN_FACTORY() {\n return null;\n}\n/** Injection token that can be used to configure the default options for the LiveAnnouncer. */\nconst LIVE_ANNOUNCER_DEFAULT_OPTIONS = new InjectionToken('LIVE_ANNOUNCER_DEFAULT_OPTIONS');\n\nlet uniqueIds = 0;\nclass LiveAnnouncer {\n constructor(elementToken, _ngZone, _document, _defaultOptions) {\n this._ngZone = _ngZone;\n this._defaultOptions = _defaultOptions;\n // We inject the live element and document as `any` because the constructor signature cannot\n // reference browser globals (HTMLElement, Document) on non-browser environments, since having\n // a class decorator causes TypeScript to preserve the constructor signature types.\n this._document = _document;\n this._liveElement = elementToken || this._createLiveElement();\n }\n announce(message, ...args) {\n const defaultOptions = this._defaultOptions;\n let politeness;\n let duration;\n if (args.length === 1 && typeof args[0] === 'number') {\n duration = args[0];\n }\n else {\n [politeness, duration] = args;\n }\n this.clear();\n clearTimeout(this._previousTimeout);\n if (!politeness) {\n politeness =\n defaultOptions && defaultOptions.politeness ? defaultOptions.politeness : 'polite';\n }\n if (duration == null && defaultOptions) {\n duration = defaultOptions.duration;\n }\n // TODO: ensure changing the politeness works on all environments we support.\n this._liveElement.setAttribute('aria-live', politeness);\n if (this._liveElement.id) {\n this._exposeAnnouncerToModals(this._liveElement.id);\n }\n // This 100ms timeout is necessary for some browser + screen-reader combinations:\n // - Both JAWS and NVDA over IE11 will not announce anything without a non-zero timeout.\n // - With Chrome and IE11 with NVDA or JAWS, a repeated (identical) message won't be read a\n // second time without clearing and then using a non-zero delay.\n // (using JAWS 17 at time of this writing).\n return this._ngZone.runOutsideAngular(() => {\n if (!this._currentPromise) {\n this._currentPromise = new Promise(resolve => (this._currentResolve = resolve));\n }\n clearTimeout(this._previousTimeout);\n this._previousTimeout = setTimeout(() => {\n this._liveElement.textContent = message;\n if (typeof duration === 'number') {\n this._previousTimeout = setTimeout(() => this.clear(), duration);\n }\n this._currentResolve();\n this._currentPromise = this._currentResolve = undefined;\n }, 100);\n return this._currentPromise;\n });\n }\n /**\n * Clears the current text from the announcer element. Can be used to prevent\n * screen readers from reading the text out again while the user is going\n * through the page landmarks.\n */\n clear() {\n if (this._liveElement) {\n this._liveElement.textContent = '';\n }\n }\n ngOnDestroy() {\n clearTimeout(this._previousTimeout);\n this._liveElement?.remove();\n this._liveElement = null;\n this._currentResolve?.();\n this._currentPromise = this._currentResolve = undefined;\n }\n _createLiveElement() {\n const elementClass = 'cdk-live-announcer-element';\n const previousElements = this._document.getElementsByClassName(elementClass);\n const liveEl = this._document.createElement('div');\n // Remove any old containers. This can happen when coming in from a server-side-rendered page.\n for (let i = 0; i < previousElements.length; i++) {\n previousElements[i].remove();\n }\n liveEl.classList.add(elementClass);\n liveEl.classList.add('cdk-visually-hidden');\n liveEl.setAttribute('aria-atomic', 'true');\n liveEl.setAttribute('aria-live', 'polite');\n liveEl.id = `cdk-live-announcer-${uniqueIds++}`;\n this._document.body.appendChild(liveEl);\n return liveEl;\n }\n /**\n * Some browsers won't expose the accessibility node of the live announcer element if there is an\n * `aria-modal` and the live announcer is outside of it. This method works around the issue by\n * pointing the `aria-owns` of all modals to the live announcer element.\n */\n _exposeAnnouncerToModals(id) {\n // Note that the selector here is limited to CDK overlays at the moment in order to reduce the\n // section of the DOM we need to look through. This should cover all the cases we support, but\n // the selector can be expanded if it turns out to be too narrow.\n const modals = this._document.querySelectorAll('body > .cdk-overlay-container [aria-modal=\"true\"]');\n for (let i = 0; i < modals.length; i++) {\n const modal = modals[i];\n const ariaOwns = modal.getAttribute('aria-owns');\n if (!ariaOwns) {\n modal.setAttribute('aria-owns', id);\n }\n else if (ariaOwns.indexOf(id) === -1) {\n modal.setAttribute('aria-owns', ariaOwns + ' ' + id);\n }\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: LiveAnnouncer, deps: [{ token: LIVE_ANNOUNCER_ELEMENT_TOKEN, optional: true }, { token: i0.NgZone }, { token: DOCUMENT }, { token: LIVE_ANNOUNCER_DEFAULT_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: LiveAnnouncer, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: LiveAnnouncer, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [LIVE_ANNOUNCER_ELEMENT_TOKEN]\n }] }, { type: i0.NgZone }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [LIVE_ANNOUNCER_DEFAULT_OPTIONS]\n }] }]; } });\n/**\n * A directive that works similarly to aria-live, but uses the LiveAnnouncer to ensure compatibility\n * with a wider range of browsers and screen readers.\n */\nclass CdkAriaLive {\n /** The aria-live politeness level to use when announcing messages. */\n get politeness() {\n return this._politeness;\n }\n set politeness(value) {\n this._politeness = value === 'off' || value === 'assertive' ? value : 'polite';\n if (this._politeness === 'off') {\n if (this._subscription) {\n this._subscription.unsubscribe();\n this._subscription = null;\n }\n }\n else if (!this._subscription) {\n this._subscription = this._ngZone.runOutsideAngular(() => {\n return this._contentObserver.observe(this._elementRef).subscribe(() => {\n // Note that we use textContent here, rather than innerText, in order to avoid a reflow.\n const elementText = this._elementRef.nativeElement.textContent;\n // The `MutationObserver` fires also for attribute\n // changes which we don't want to announce.\n if (elementText !== this._previousAnnouncedText) {\n this._liveAnnouncer.announce(elementText, this._politeness, this.duration);\n this._previousAnnouncedText = elementText;\n }\n });\n });\n }\n }\n constructor(_elementRef, _liveAnnouncer, _contentObserver, _ngZone) {\n this._elementRef = _elementRef;\n this._liveAnnouncer = _liveAnnouncer;\n this._contentObserver = _contentObserver;\n this._ngZone = _ngZone;\n this._politeness = 'polite';\n }\n ngOnDestroy() {\n if (this._subscription) {\n this._subscription.unsubscribe();\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkAriaLive, deps: [{ token: i0.ElementRef }, { token: LiveAnnouncer }, { token: i1$1.ContentObserver }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.0\", type: CdkAriaLive, selector: \"[cdkAriaLive]\", inputs: { politeness: [\"cdkAriaLive\", \"politeness\"], duration: [\"cdkAriaLiveDuration\", \"duration\"] }, exportAs: [\"cdkAriaLive\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkAriaLive, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkAriaLive]',\n exportAs: 'cdkAriaLive',\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: LiveAnnouncer }, { type: i1$1.ContentObserver }, { type: i0.NgZone }]; }, propDecorators: { politeness: [{\n type: Input,\n args: ['cdkAriaLive']\n }], duration: [{\n type: Input,\n args: ['cdkAriaLiveDuration']\n }] } });\n\n/** InjectionToken for FocusMonitorOptions. */\nconst FOCUS_MONITOR_DEFAULT_OPTIONS = new InjectionToken('cdk-focus-monitor-default-options');\n/**\n * Event listener options that enable capturing and also\n * mark the listener as passive if the browser supports it.\n */\nconst captureEventListenerOptions = normalizePassiveListenerOptions({\n passive: true,\n capture: true,\n});\n/** Monitors mouse and keyboard events to determine the cause of focus events. */\nclass FocusMonitor {\n constructor(_ngZone, _platform, _inputModalityDetector, \n /** @breaking-change 11.0.0 make document required */\n document, options) {\n this._ngZone = _ngZone;\n this._platform = _platform;\n this._inputModalityDetector = _inputModalityDetector;\n /** The focus origin that the next focus event is a result of. */\n this._origin = null;\n /** Whether the window has just been focused. */\n this._windowFocused = false;\n /**\n * Whether the origin was determined via a touch interaction. Necessary as properly attributing\n * focus events to touch interactions requires special logic.\n */\n this._originFromTouchInteraction = false;\n /** Map of elements being monitored to their info. */\n this._elementInfo = new Map();\n /** The number of elements currently being monitored. */\n this._monitoredElementCount = 0;\n /**\n * Keeps track of the root nodes to which we've currently bound a focus/blur handler,\n * as well as the number of monitored elements that they contain. We have to treat focus/blur\n * handlers differently from the rest of the events, because the browser won't emit events\n * to the document when focus moves inside of a shadow root.\n */\n this._rootNodeFocusListenerCount = new Map();\n /**\n * Event listener for `focus` events on the window.\n * Needs to be an arrow function in order to preserve the context when it gets bound.\n */\n this._windowFocusListener = () => {\n // Make a note of when the window regains focus, so we can\n // restore the origin info for the focused element.\n this._windowFocused = true;\n this._windowFocusTimeoutId = window.setTimeout(() => (this._windowFocused = false));\n };\n /** Subject for stopping our InputModalityDetector subscription. */\n this._stopInputModalityDetector = new Subject();\n /**\n * Event listener for `focus` and 'blur' events on the document.\n * Needs to be an arrow function in order to preserve the context when it gets bound.\n */\n this._rootNodeFocusAndBlurListener = (event) => {\n const target = _getEventTarget(event);\n // We need to walk up the ancestor chain in order to support `checkChildren`.\n for (let element = target; element; element = element.parentElement) {\n if (event.type === 'focus') {\n this._onFocus(event, element);\n }\n else {\n this._onBlur(event, element);\n }\n }\n };\n this._document = document;\n this._detectionMode = options?.detectionMode || 0 /* FocusMonitorDetectionMode.IMMEDIATE */;\n }\n monitor(element, checkChildren = false) {\n const nativeElement = coerceElement(element);\n // Do nothing if we're not on the browser platform or the passed in node isn't an element.\n if (!this._platform.isBrowser || nativeElement.nodeType !== 1) {\n return of(null);\n }\n // If the element is inside the shadow DOM, we need to bind our focus/blur listeners to\n // the shadow root, rather than the `document`, because the browser won't emit focus events\n // to the `document`, if focus is moving within the same shadow root.\n const rootNode = _getShadowRoot(nativeElement) || this._getDocument();\n const cachedInfo = this._elementInfo.get(nativeElement);\n // Check if we're already monitoring this element.\n if (cachedInfo) {\n if (checkChildren) {\n // TODO(COMP-318): this can be problematic, because it'll turn all non-checkChildren\n // observers into ones that behave as if `checkChildren` was turned on. We need a more\n // robust solution.\n cachedInfo.checkChildren = true;\n }\n return cachedInfo.subject;\n }\n // Create monitored element info.\n const info = {\n checkChildren: checkChildren,\n subject: new Subject(),\n rootNode,\n };\n this._elementInfo.set(nativeElement, info);\n this._registerGlobalListeners(info);\n return info.subject;\n }\n stopMonitoring(element) {\n const nativeElement = coerceElement(element);\n const elementInfo = this._elementInfo.get(nativeElement);\n if (elementInfo) {\n elementInfo.subject.complete();\n this._setClasses(nativeElement);\n this._elementInfo.delete(nativeElement);\n this._removeGlobalListeners(elementInfo);\n }\n }\n focusVia(element, origin, options) {\n const nativeElement = coerceElement(element);\n const focusedElement = this._getDocument().activeElement;\n // If the element is focused already, calling `focus` again won't trigger the event listener\n // which means that the focus classes won't be updated. If that's the case, update the classes\n // directly without waiting for an event.\n if (nativeElement === focusedElement) {\n this._getClosestElementsInfo(nativeElement).forEach(([currentElement, info]) => this._originChanged(currentElement, origin, info));\n }\n else {\n this._setOrigin(origin);\n // `focus` isn't available on the server\n if (typeof nativeElement.focus === 'function') {\n nativeElement.focus(options);\n }\n }\n }\n ngOnDestroy() {\n this._elementInfo.forEach((_info, element) => this.stopMonitoring(element));\n }\n /** Access injected document if available or fallback to global document reference */\n _getDocument() {\n return this._document || document;\n }\n /** Use defaultView of injected document if available or fallback to global window reference */\n _getWindow() {\n const doc = this._getDocument();\n return doc.defaultView || window;\n }\n _getFocusOrigin(focusEventTarget) {\n if (this._origin) {\n // If the origin was realized via a touch interaction, we need to perform additional checks\n // to determine whether the focus origin should be attributed to touch or program.\n if (this._originFromTouchInteraction) {\n return this._shouldBeAttributedToTouch(focusEventTarget) ? 'touch' : 'program';\n }\n else {\n return this._origin;\n }\n }\n // If the window has just regained focus, we can restore the most recent origin from before the\n // window blurred. Otherwise, we've reached the point where we can't identify the source of the\n // focus. This typically means one of two things happened:\n //\n // 1) The element was programmatically focused, or\n // 2) The element was focused via screen reader navigation (which generally doesn't fire\n // events).\n //\n // Because we can't distinguish between these two cases, we default to setting `program`.\n if (this._windowFocused && this._lastFocusOrigin) {\n return this._lastFocusOrigin;\n }\n // If the interaction is coming from an input label, we consider it a mouse interactions.\n // This is a special case where focus moves on `click`, rather than `mousedown` which breaks\n // our detection, because all our assumptions are for `mousedown`. We need to handle this\n // special case, because it's very common for checkboxes and radio buttons.\n if (focusEventTarget && this._isLastInteractionFromInputLabel(focusEventTarget)) {\n return 'mouse';\n }\n return 'program';\n }\n /**\n * Returns whether the focus event should be attributed to touch. Recall that in IMMEDIATE mode, a\n * touch origin isn't immediately reset at the next tick (see _setOrigin). This means that when we\n * handle a focus event following a touch interaction, we need to determine whether (1) the focus\n * event was directly caused by the touch interaction or (2) the focus event was caused by a\n * subsequent programmatic focus call triggered by the touch interaction.\n * @param focusEventTarget The target of the focus event under examination.\n */\n _shouldBeAttributedToTouch(focusEventTarget) {\n // Please note that this check is not perfect. Consider the following edge case:\n //\n //
\n //
\n //
\n //\n // Suppose there is a FocusMonitor in IMMEDIATE mode attached to #parent. When the user touches\n // #child, #parent is programmatically focused. This code will attribute the focus to touch\n // instead of program. This is a relatively minor edge-case that can be worked around by using\n // focusVia(parent, 'program') to focus #parent.\n return (this._detectionMode === 1 /* FocusMonitorDetectionMode.EVENTUAL */ ||\n !!focusEventTarget?.contains(this._inputModalityDetector._mostRecentTarget));\n }\n /**\n * Sets the focus classes on the element based on the given focus origin.\n * @param element The element to update the classes on.\n * @param origin The focus origin.\n */\n _setClasses(element, origin) {\n element.classList.toggle('cdk-focused', !!origin);\n element.classList.toggle('cdk-touch-focused', origin === 'touch');\n element.classList.toggle('cdk-keyboard-focused', origin === 'keyboard');\n element.classList.toggle('cdk-mouse-focused', origin === 'mouse');\n element.classList.toggle('cdk-program-focused', origin === 'program');\n }\n /**\n * Updates the focus origin. If we're using immediate detection mode, we schedule an async\n * function to clear the origin at the end of a timeout. The duration of the timeout depends on\n * the origin being set.\n * @param origin The origin to set.\n * @param isFromInteraction Whether we are setting the origin from an interaction event.\n */\n _setOrigin(origin, isFromInteraction = false) {\n this._ngZone.runOutsideAngular(() => {\n this._origin = origin;\n this._originFromTouchInteraction = origin === 'touch' && isFromInteraction;\n // If we're in IMMEDIATE mode, reset the origin at the next tick (or in `TOUCH_BUFFER_MS` ms\n // for a touch event). We reset the origin at the next tick because Firefox focuses one tick\n // after the interaction event. We wait `TOUCH_BUFFER_MS` ms before resetting the origin for\n // a touch event because when a touch event is fired, the associated focus event isn't yet in\n // the event queue. Before doing so, clear any pending timeouts.\n if (this._detectionMode === 0 /* FocusMonitorDetectionMode.IMMEDIATE */) {\n clearTimeout(this._originTimeoutId);\n const ms = this._originFromTouchInteraction ? TOUCH_BUFFER_MS : 1;\n this._originTimeoutId = setTimeout(() => (this._origin = null), ms);\n }\n });\n }\n /**\n * Handles focus events on a registered element.\n * @param event The focus event.\n * @param element The monitored element.\n */\n _onFocus(event, element) {\n // NOTE(mmalerba): We currently set the classes based on the focus origin of the most recent\n // focus event affecting the monitored element. If we want to use the origin of the first event\n // instead we should check for the cdk-focused class here and return if the element already has\n // it. (This only matters for elements that have includesChildren = true).\n // If we are not counting child-element-focus as focused, make sure that the event target is the\n // monitored element itself.\n const elementInfo = this._elementInfo.get(element);\n const focusEventTarget = _getEventTarget(event);\n if (!elementInfo || (!elementInfo.checkChildren && element !== focusEventTarget)) {\n return;\n }\n this._originChanged(element, this._getFocusOrigin(focusEventTarget), elementInfo);\n }\n /**\n * Handles blur events on a registered element.\n * @param event The blur event.\n * @param element The monitored element.\n */\n _onBlur(event, element) {\n // If we are counting child-element-focus as focused, make sure that we aren't just blurring in\n // order to focus another child of the monitored element.\n const elementInfo = this._elementInfo.get(element);\n if (!elementInfo ||\n (elementInfo.checkChildren &&\n event.relatedTarget instanceof Node &&\n element.contains(event.relatedTarget))) {\n return;\n }\n this._setClasses(element);\n this._emitOrigin(elementInfo, null);\n }\n _emitOrigin(info, origin) {\n if (info.subject.observers.length) {\n this._ngZone.run(() => info.subject.next(origin));\n }\n }\n _registerGlobalListeners(elementInfo) {\n if (!this._platform.isBrowser) {\n return;\n }\n const rootNode = elementInfo.rootNode;\n const rootNodeFocusListeners = this._rootNodeFocusListenerCount.get(rootNode) || 0;\n if (!rootNodeFocusListeners) {\n this._ngZone.runOutsideAngular(() => {\n rootNode.addEventListener('focus', this._rootNodeFocusAndBlurListener, captureEventListenerOptions);\n rootNode.addEventListener('blur', this._rootNodeFocusAndBlurListener, captureEventListenerOptions);\n });\n }\n this._rootNodeFocusListenerCount.set(rootNode, rootNodeFocusListeners + 1);\n // Register global listeners when first element is monitored.\n if (++this._monitoredElementCount === 1) {\n // Note: we listen to events in the capture phase so we\n // can detect them even if the user stops propagation.\n this._ngZone.runOutsideAngular(() => {\n const window = this._getWindow();\n window.addEventListener('focus', this._windowFocusListener);\n });\n // The InputModalityDetector is also just a collection of global listeners.\n this._inputModalityDetector.modalityDetected\n .pipe(takeUntil(this._stopInputModalityDetector))\n .subscribe(modality => {\n this._setOrigin(modality, true /* isFromInteraction */);\n });\n }\n }\n _removeGlobalListeners(elementInfo) {\n const rootNode = elementInfo.rootNode;\n if (this._rootNodeFocusListenerCount.has(rootNode)) {\n const rootNodeFocusListeners = this._rootNodeFocusListenerCount.get(rootNode);\n if (rootNodeFocusListeners > 1) {\n this._rootNodeFocusListenerCount.set(rootNode, rootNodeFocusListeners - 1);\n }\n else {\n rootNode.removeEventListener('focus', this._rootNodeFocusAndBlurListener, captureEventListenerOptions);\n rootNode.removeEventListener('blur', this._rootNodeFocusAndBlurListener, captureEventListenerOptions);\n this._rootNodeFocusListenerCount.delete(rootNode);\n }\n }\n // Unregister global listeners when last element is unmonitored.\n if (!--this._monitoredElementCount) {\n const window = this._getWindow();\n window.removeEventListener('focus', this._windowFocusListener);\n // Equivalently, stop our InputModalityDetector subscription.\n this._stopInputModalityDetector.next();\n // Clear timeouts for all potentially pending timeouts to prevent the leaks.\n clearTimeout(this._windowFocusTimeoutId);\n clearTimeout(this._originTimeoutId);\n }\n }\n /** Updates all the state on an element once its focus origin has changed. */\n _originChanged(element, origin, elementInfo) {\n this._setClasses(element, origin);\n this._emitOrigin(elementInfo, origin);\n this._lastFocusOrigin = origin;\n }\n /**\n * Collects the `MonitoredElementInfo` of a particular element and\n * all of its ancestors that have enabled `checkChildren`.\n * @param element Element from which to start the search.\n */\n _getClosestElementsInfo(element) {\n const results = [];\n this._elementInfo.forEach((info, currentElement) => {\n if (currentElement === element || (info.checkChildren && currentElement.contains(element))) {\n results.push([currentElement, info]);\n }\n });\n return results;\n }\n /**\n * Returns whether an interaction is likely to have come from the user clicking the `label` of\n * an `input` or `textarea` in order to focus it.\n * @param focusEventTarget Target currently receiving focus.\n */\n _isLastInteractionFromInputLabel(focusEventTarget) {\n const { _mostRecentTarget: mostRecentTarget, mostRecentModality } = this._inputModalityDetector;\n // If the last interaction used the mouse on an element contained by one of the labels\n // of an `input`/`textarea` that is currently focused, it is very likely that the\n // user redirected focus using the label.\n if (mostRecentModality !== 'mouse' ||\n !mostRecentTarget ||\n mostRecentTarget === focusEventTarget ||\n (focusEventTarget.nodeName !== 'INPUT' && focusEventTarget.nodeName !== 'TEXTAREA') ||\n focusEventTarget.disabled) {\n return false;\n }\n const labels = focusEventTarget.labels;\n if (labels) {\n for (let i = 0; i < labels.length; i++) {\n if (labels[i].contains(mostRecentTarget)) {\n return true;\n }\n }\n }\n return false;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: FocusMonitor, deps: [{ token: i0.NgZone }, { token: i1.Platform }, { token: InputModalityDetector }, { token: DOCUMENT, optional: true }, { token: FOCUS_MONITOR_DEFAULT_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: FocusMonitor, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: FocusMonitor, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1.Platform }, { type: InputModalityDetector }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [FOCUS_MONITOR_DEFAULT_OPTIONS]\n }] }]; } });\n/**\n * Directive that determines how a particular element was focused (via keyboard, mouse, touch, or\n * programmatically) and adds corresponding classes to the element.\n *\n * There are two variants of this directive:\n * 1) cdkMonitorElementFocus: does not consider an element to be focused if one of its children is\n * focused.\n * 2) cdkMonitorSubtreeFocus: considers an element focused if it or any of its children are focused.\n */\nclass CdkMonitorFocus {\n constructor(_elementRef, _focusMonitor) {\n this._elementRef = _elementRef;\n this._focusMonitor = _focusMonitor;\n this._focusOrigin = null;\n this.cdkFocusChange = new EventEmitter();\n }\n get focusOrigin() {\n return this._focusOrigin;\n }\n ngAfterViewInit() {\n const element = this._elementRef.nativeElement;\n this._monitorSubscription = this._focusMonitor\n .monitor(element, element.nodeType === 1 && element.hasAttribute('cdkMonitorSubtreeFocus'))\n .subscribe(origin => {\n this._focusOrigin = origin;\n this.cdkFocusChange.emit(origin);\n });\n }\n ngOnDestroy() {\n this._focusMonitor.stopMonitoring(this._elementRef);\n if (this._monitorSubscription) {\n this._monitorSubscription.unsubscribe();\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkMonitorFocus, deps: [{ token: i0.ElementRef }, { token: FocusMonitor }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.0\", type: CdkMonitorFocus, selector: \"[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]\", outputs: { cdkFocusChange: \"cdkFocusChange\" }, exportAs: [\"cdkMonitorFocus\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkMonitorFocus, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]',\n exportAs: 'cdkMonitorFocus',\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: FocusMonitor }]; }, propDecorators: { cdkFocusChange: [{\n type: Output\n }] } });\n\n/** CSS class applied to the document body when in black-on-white high-contrast mode. */\nconst BLACK_ON_WHITE_CSS_CLASS = 'cdk-high-contrast-black-on-white';\n/** CSS class applied to the document body when in white-on-black high-contrast mode. */\nconst WHITE_ON_BLACK_CSS_CLASS = 'cdk-high-contrast-white-on-black';\n/** CSS class applied to the document body when in high-contrast mode. */\nconst HIGH_CONTRAST_MODE_ACTIVE_CSS_CLASS = 'cdk-high-contrast-active';\n/**\n * Service to determine whether the browser is currently in a high-contrast-mode environment.\n *\n * Microsoft Windows supports an accessibility feature called \"High Contrast Mode\". This mode\n * changes the appearance of all applications, including web applications, to dramatically increase\n * contrast.\n *\n * IE, Edge, and Firefox currently support this mode. Chrome does not support Windows High Contrast\n * Mode. This service does not detect high-contrast mode as added by the Chrome \"High Contrast\"\n * browser extension.\n */\nclass HighContrastModeDetector {\n constructor(_platform, document) {\n this._platform = _platform;\n this._document = document;\n this._breakpointSubscription = inject(BreakpointObserver)\n .observe('(forced-colors: active)')\n .subscribe(() => {\n if (this._hasCheckedHighContrastMode) {\n this._hasCheckedHighContrastMode = false;\n this._applyBodyHighContrastModeCssClasses();\n }\n });\n }\n /** Gets the current high-contrast-mode for the page. */\n getHighContrastMode() {\n if (!this._platform.isBrowser) {\n return 0 /* HighContrastMode.NONE */;\n }\n // Create a test element with an arbitrary background-color that is neither black nor\n // white; high-contrast mode will coerce the color to either black or white. Also ensure that\n // appending the test element to the DOM does not affect layout by absolutely positioning it\n const testElement = this._document.createElement('div');\n testElement.style.backgroundColor = 'rgb(1,2,3)';\n testElement.style.position = 'absolute';\n this._document.body.appendChild(testElement);\n // Get the computed style for the background color, collapsing spaces to normalize between\n // browsers. Once we get this color, we no longer need the test element. Access the `window`\n // via the document so we can fake it in tests. Note that we have extra null checks, because\n // this logic will likely run during app bootstrap and throwing can break the entire app.\n const documentWindow = this._document.defaultView || window;\n const computedStyle = documentWindow && documentWindow.getComputedStyle\n ? documentWindow.getComputedStyle(testElement)\n : null;\n const computedColor = ((computedStyle && computedStyle.backgroundColor) || '').replace(/ /g, '');\n testElement.remove();\n switch (computedColor) {\n // Pre Windows 11 dark theme.\n case 'rgb(0,0,0)':\n // Windows 11 dark themes.\n case 'rgb(45,50,54)':\n case 'rgb(32,32,32)':\n return 2 /* HighContrastMode.WHITE_ON_BLACK */;\n // Pre Windows 11 light theme.\n case 'rgb(255,255,255)':\n // Windows 11 light theme.\n case 'rgb(255,250,239)':\n return 1 /* HighContrastMode.BLACK_ON_WHITE */;\n }\n return 0 /* HighContrastMode.NONE */;\n }\n ngOnDestroy() {\n this._breakpointSubscription.unsubscribe();\n }\n /** Applies CSS classes indicating high-contrast mode to document body (browser-only). */\n _applyBodyHighContrastModeCssClasses() {\n if (!this._hasCheckedHighContrastMode && this._platform.isBrowser && this._document.body) {\n const bodyClasses = this._document.body.classList;\n bodyClasses.remove(HIGH_CONTRAST_MODE_ACTIVE_CSS_CLASS, BLACK_ON_WHITE_CSS_CLASS, WHITE_ON_BLACK_CSS_CLASS);\n this._hasCheckedHighContrastMode = true;\n const mode = this.getHighContrastMode();\n if (mode === 1 /* HighContrastMode.BLACK_ON_WHITE */) {\n bodyClasses.add(HIGH_CONTRAST_MODE_ACTIVE_CSS_CLASS, BLACK_ON_WHITE_CSS_CLASS);\n }\n else if (mode === 2 /* HighContrastMode.WHITE_ON_BLACK */) {\n bodyClasses.add(HIGH_CONTRAST_MODE_ACTIVE_CSS_CLASS, WHITE_ON_BLACK_CSS_CLASS);\n }\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: HighContrastModeDetector, deps: [{ token: i1.Platform }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: HighContrastModeDetector, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: HighContrastModeDetector, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: i1.Platform }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; } });\n\nclass A11yModule {\n constructor(highContrastModeDetector) {\n highContrastModeDetector._applyBodyHighContrastModeCssClasses();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: A11yModule, deps: [{ token: HighContrastModeDetector }], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"16.0.0\", ngImport: i0, type: A11yModule, declarations: [CdkAriaLive, CdkTrapFocus, CdkMonitorFocus], imports: [ObserversModule], exports: [CdkAriaLive, CdkTrapFocus, CdkMonitorFocus] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: A11yModule, imports: [ObserversModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: A11yModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [ObserversModule],\n declarations: [CdkAriaLive, CdkTrapFocus, CdkMonitorFocus],\n exports: [CdkAriaLive, CdkTrapFocus, CdkMonitorFocus],\n }]\n }], ctorParameters: function () { return [{ type: HighContrastModeDetector }]; } });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { A11yModule, ActiveDescendantKeyManager, AriaDescriber, CDK_DESCRIBEDBY_HOST_ATTRIBUTE, CDK_DESCRIBEDBY_ID_PREFIX, CdkAriaLive, CdkMonitorFocus, CdkTrapFocus, ConfigurableFocusTrap, ConfigurableFocusTrapFactory, EventListenerFocusTrapInertStrategy, FOCUS_MONITOR_DEFAULT_OPTIONS, FOCUS_TRAP_INERT_STRATEGY, FocusKeyManager, FocusMonitor, FocusTrap, FocusTrapFactory, HighContrastModeDetector, INPUT_MODALITY_DETECTOR_DEFAULT_OPTIONS, INPUT_MODALITY_DETECTOR_OPTIONS, InputModalityDetector, InteractivityChecker, IsFocusableConfig, LIVE_ANNOUNCER_DEFAULT_OPTIONS, LIVE_ANNOUNCER_ELEMENT_TOKEN, LIVE_ANNOUNCER_ELEMENT_TOKEN_FACTORY, ListKeyManager, LiveAnnouncer, MESSAGES_CONTAINER_ID, isFakeMousedownFromScreenReader, isFakeTouchstartFromScreenReader };\n","import * as i0 from '@angular/core';\nimport { InjectionToken, Directive, Input, EventEmitter, Optional, Inject, SkipSelf, Output, NgModule } from '@angular/core';\nimport * as i1 from '@angular/cdk/collections';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Subject, Subscription } from 'rxjs';\n\n/** Used to generate unique ID for each accordion. */\nlet nextId$1 = 0;\n/**\n * Injection token that can be used to reference instances of `CdkAccordion`. It serves\n * as alternative token to the actual `CdkAccordion` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nconst CDK_ACCORDION = new InjectionToken('CdkAccordion');\n/**\n * Directive whose purpose is to manage the expanded state of CdkAccordionItem children.\n */\nclass CdkAccordion {\n constructor() {\n /** Emits when the state of the accordion changes */\n this._stateChanges = new Subject();\n /** Stream that emits true/false when openAll/closeAll is triggered. */\n this._openCloseAllActions = new Subject();\n /** A readonly id value to use for unique selection coordination. */\n this.id = `cdk-accordion-${nextId$1++}`;\n this._multi = false;\n }\n /** Whether the accordion should allow multiple expanded accordion items simultaneously. */\n get multi() {\n return this._multi;\n }\n set multi(multi) {\n this._multi = coerceBooleanProperty(multi);\n }\n /** Opens all enabled accordion items in an accordion where multi is enabled. */\n openAll() {\n if (this._multi) {\n this._openCloseAllActions.next(true);\n }\n }\n /** Closes all enabled accordion items. */\n closeAll() {\n this._openCloseAllActions.next(false);\n }\n ngOnChanges(changes) {\n this._stateChanges.next(changes);\n }\n ngOnDestroy() {\n this._stateChanges.complete();\n this._openCloseAllActions.complete();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkAccordion, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.0\", type: CdkAccordion, selector: \"cdk-accordion, [cdkAccordion]\", inputs: { multi: \"multi\" }, providers: [{ provide: CDK_ACCORDION, useExisting: CdkAccordion }], exportAs: [\"cdkAccordion\"], usesOnChanges: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkAccordion, decorators: [{\n type: Directive,\n args: [{\n selector: 'cdk-accordion, [cdkAccordion]',\n exportAs: 'cdkAccordion',\n providers: [{ provide: CDK_ACCORDION, useExisting: CdkAccordion }],\n }]\n }], propDecorators: { multi: [{\n type: Input\n }] } });\n\n/** Used to generate unique ID for each accordion item. */\nlet nextId = 0;\n/**\n * An basic directive expected to be extended and decorated as a component. Sets up all\n * events and attributes needed to be managed by a CdkAccordion parent.\n */\nclass CdkAccordionItem {\n /** Whether the AccordionItem is expanded. */\n get expanded() {\n return this._expanded;\n }\n set expanded(expanded) {\n expanded = coerceBooleanProperty(expanded);\n // Only emit events and update the internal value if the value changes.\n if (this._expanded !== expanded) {\n this._expanded = expanded;\n this.expandedChange.emit(expanded);\n if (expanded) {\n this.opened.emit();\n /**\n * In the unique selection dispatcher, the id parameter is the id of the CdkAccordionItem,\n * the name value is the id of the accordion.\n */\n const accordionId = this.accordion ? this.accordion.id : this.id;\n this._expansionDispatcher.notify(this.id, accordionId);\n }\n else {\n this.closed.emit();\n }\n // Ensures that the animation will run when the value is set outside of an `@Input`.\n // This includes cases like the open, close and toggle methods.\n this._changeDetectorRef.markForCheck();\n }\n }\n /** Whether the AccordionItem is disabled. */\n get disabled() {\n return this._disabled;\n }\n set disabled(disabled) {\n this._disabled = coerceBooleanProperty(disabled);\n }\n constructor(accordion, _changeDetectorRef, _expansionDispatcher) {\n this.accordion = accordion;\n this._changeDetectorRef = _changeDetectorRef;\n this._expansionDispatcher = _expansionDispatcher;\n /** Subscription to openAll/closeAll events. */\n this._openCloseAllSubscription = Subscription.EMPTY;\n /** Event emitted every time the AccordionItem is closed. */\n this.closed = new EventEmitter();\n /** Event emitted every time the AccordionItem is opened. */\n this.opened = new EventEmitter();\n /** Event emitted when the AccordionItem is destroyed. */\n this.destroyed = new EventEmitter();\n /**\n * Emits whenever the expanded state of the accordion changes.\n * Primarily used to facilitate two-way binding.\n * @docs-private\n */\n this.expandedChange = new EventEmitter();\n /** The unique AccordionItem id. */\n this.id = `cdk-accordion-child-${nextId++}`;\n this._expanded = false;\n this._disabled = false;\n /** Unregister function for _expansionDispatcher. */\n this._removeUniqueSelectionListener = () => { };\n this._removeUniqueSelectionListener = _expansionDispatcher.listen((id, accordionId) => {\n if (this.accordion &&\n !this.accordion.multi &&\n this.accordion.id === accordionId &&\n this.id !== id) {\n this.expanded = false;\n }\n });\n // When an accordion item is hosted in an accordion, subscribe to open/close events.\n if (this.accordion) {\n this._openCloseAllSubscription = this._subscribeToOpenCloseAllActions();\n }\n }\n /** Emits an event for the accordion item being destroyed. */\n ngOnDestroy() {\n this.opened.complete();\n this.closed.complete();\n this.destroyed.emit();\n this.destroyed.complete();\n this._removeUniqueSelectionListener();\n this._openCloseAllSubscription.unsubscribe();\n }\n /** Toggles the expanded state of the accordion item. */\n toggle() {\n if (!this.disabled) {\n this.expanded = !this.expanded;\n }\n }\n /** Sets the expanded state of the accordion item to false. */\n close() {\n if (!this.disabled) {\n this.expanded = false;\n }\n }\n /** Sets the expanded state of the accordion item to true. */\n open() {\n if (!this.disabled) {\n this.expanded = true;\n }\n }\n _subscribeToOpenCloseAllActions() {\n return this.accordion._openCloseAllActions.subscribe(expanded => {\n // Only change expanded state if item is enabled\n if (!this.disabled) {\n this.expanded = expanded;\n }\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkAccordionItem, deps: [{ token: CDK_ACCORDION, optional: true, skipSelf: true }, { token: i0.ChangeDetectorRef }, { token: i1.UniqueSelectionDispatcher }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.0\", type: CdkAccordionItem, selector: \"cdk-accordion-item, [cdkAccordionItem]\", inputs: { expanded: \"expanded\", disabled: \"disabled\" }, outputs: { closed: \"closed\", opened: \"opened\", destroyed: \"destroyed\", expandedChange: \"expandedChange\" }, providers: [\n // Provide `CDK_ACCORDION` as undefined to prevent nested accordion items from\n // registering to the same accordion.\n { provide: CDK_ACCORDION, useValue: undefined },\n ], exportAs: [\"cdkAccordionItem\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkAccordionItem, decorators: [{\n type: Directive,\n args: [{\n selector: 'cdk-accordion-item, [cdkAccordionItem]',\n exportAs: 'cdkAccordionItem',\n providers: [\n // Provide `CDK_ACCORDION` as undefined to prevent nested accordion items from\n // registering to the same accordion.\n { provide: CDK_ACCORDION, useValue: undefined },\n ],\n }]\n }], ctorParameters: function () { return [{ type: CdkAccordion, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [CDK_ACCORDION]\n }, {\n type: SkipSelf\n }] }, { type: i0.ChangeDetectorRef }, { type: i1.UniqueSelectionDispatcher }]; }, propDecorators: { closed: [{\n type: Output\n }], opened: [{\n type: Output\n }], destroyed: [{\n type: Output\n }], expandedChange: [{\n type: Output\n }], expanded: [{\n type: Input\n }], disabled: [{\n type: Input\n }] } });\n\nclass CdkAccordionModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkAccordionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkAccordionModule, declarations: [CdkAccordion, CdkAccordionItem], exports: [CdkAccordion, CdkAccordionItem] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkAccordionModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkAccordionModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [CdkAccordion, CdkAccordionItem],\n declarations: [CdkAccordion, CdkAccordionItem],\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CdkAccordion, CdkAccordionItem, CdkAccordionModule };\n","import * as i0 from '@angular/core';\nimport { InjectionToken, inject, EventEmitter, Injectable, Optional, Inject, Directive, Output, Input, NgModule } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\n/**\n * Injection token used to inject the document into Directionality.\n * This is used so that the value can be faked in tests.\n *\n * We can't use the real document in tests because changing the real `dir` causes geometry-based\n * tests in Safari to fail.\n *\n * We also can't re-provide the DOCUMENT token from platform-browser because the unit tests\n * themselves use things like `querySelector` in test code.\n *\n * This token is defined in a separate file from Directionality as a workaround for\n * https://github.com/angular/angular/issues/22559\n *\n * @docs-private\n */\nconst DIR_DOCUMENT = new InjectionToken('cdk-dir-doc', {\n providedIn: 'root',\n factory: DIR_DOCUMENT_FACTORY,\n});\n/** @docs-private */\nfunction DIR_DOCUMENT_FACTORY() {\n return inject(DOCUMENT);\n}\n\n/** Regex that matches locales with an RTL script. Taken from `goog.i18n.bidi.isRtlLanguage`. */\nconst RTL_LOCALE_PATTERN = /^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;\n/** Resolves a string value to a specific direction. */\nfunction _resolveDirectionality(rawValue) {\n const value = rawValue?.toLowerCase() || '';\n if (value === 'auto' && typeof navigator !== 'undefined' && navigator?.language) {\n return RTL_LOCALE_PATTERN.test(navigator.language) ? 'rtl' : 'ltr';\n }\n return value === 'rtl' ? 'rtl' : 'ltr';\n}\n/**\n * The directionality (LTR / RTL) context for the application (or a subtree of it).\n * Exposes the current direction and a stream of direction changes.\n */\nclass Directionality {\n constructor(_document) {\n /** The current 'ltr' or 'rtl' value. */\n this.value = 'ltr';\n /** Stream that emits whenever the 'ltr' / 'rtl' state changes. */\n this.change = new EventEmitter();\n if (_document) {\n const bodyDir = _document.body ? _document.body.dir : null;\n const htmlDir = _document.documentElement ? _document.documentElement.dir : null;\n this.value = _resolveDirectionality(bodyDir || htmlDir || 'ltr');\n }\n }\n ngOnDestroy() {\n this.change.complete();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: Directionality, deps: [{ token: DIR_DOCUMENT, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: Directionality, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: Directionality, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [DIR_DOCUMENT]\n }] }]; } });\n\n/**\n * Directive to listen for changes of direction of part of the DOM.\n *\n * Provides itself as Directionality such that descendant directives only need to ever inject\n * Directionality to get the closest direction.\n */\nclass Dir {\n constructor() {\n /** Normalized direction that accounts for invalid/unsupported values. */\n this._dir = 'ltr';\n /** Whether the `value` has been set to its initial value. */\n this._isInitialized = false;\n /** Event emitted when the direction changes. */\n this.change = new EventEmitter();\n }\n /** @docs-private */\n get dir() {\n return this._dir;\n }\n set dir(value) {\n const previousValue = this._dir;\n // Note: `_resolveDirectionality` resolves the language based on the browser's language,\n // whereas the browser does it based on the content of the element. Since doing so based\n // on the content can be expensive, for now we're doing the simpler matching.\n this._dir = _resolveDirectionality(value);\n this._rawDir = value;\n if (previousValue !== this._dir && this._isInitialized) {\n this.change.emit(this._dir);\n }\n }\n /** Current layout direction of the element. */\n get value() {\n return this.dir;\n }\n /** Initialize once default value has been set. */\n ngAfterContentInit() {\n this._isInitialized = true;\n }\n ngOnDestroy() {\n this.change.complete();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: Dir, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.0\", type: Dir, selector: \"[dir]\", inputs: { dir: \"dir\" }, outputs: { change: \"dirChange\" }, host: { properties: { \"attr.dir\": \"_rawDir\" } }, providers: [{ provide: Directionality, useExisting: Dir }], exportAs: [\"dir\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: Dir, decorators: [{\n type: Directive,\n args: [{\n selector: '[dir]',\n providers: [{ provide: Directionality, useExisting: Dir }],\n host: { '[attr.dir]': '_rawDir' },\n exportAs: 'dir',\n }]\n }], propDecorators: { change: [{\n type: Output,\n args: ['dirChange']\n }], dir: [{\n type: Input\n }] } });\n\nclass BidiModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: BidiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"16.0.0\", ngImport: i0, type: BidiModule, declarations: [Dir], exports: [Dir] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: BidiModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: BidiModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [Dir],\n declarations: [Dir],\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BidiModule, DIR_DOCUMENT, Dir, Directionality };\n","import { Version } from '@angular/core';\n\n/** Current version of the Angular Component Development Kit. */\nconst VERSION = new Version('16.0.4');\n\nexport { VERSION };\n","import { DOCUMENT } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, Inject, InjectionToken, EventEmitter, Directive, Optional, Input, Output, NgModule } from '@angular/core';\n\n/**\n * A pending copy-to-clipboard operation.\n *\n * The implementation of copying text to the clipboard modifies the DOM and\n * forces a re-layout. This re-layout can take too long if the string is large,\n * causing the execCommand('copy') to happen too long after the user clicked.\n * This results in the browser refusing to copy. This object lets the\n * re-layout happen in a separate tick from copying by providing a copy function\n * that can be called later.\n *\n * Destroy must be called when no longer in use, regardless of whether `copy` is\n * called.\n */\nclass PendingCopy {\n constructor(text, _document) {\n this._document = _document;\n const textarea = (this._textarea = this._document.createElement('textarea'));\n const styles = textarea.style;\n // Hide the element for display and accessibility. Set a fixed position so the page layout\n // isn't affected. We use `fixed` with `top: 0`, because focus is moved into the textarea\n // for a split second and if it's off-screen, some browsers will attempt to scroll it into view.\n styles.position = 'fixed';\n styles.top = styles.opacity = '0';\n styles.left = '-999em';\n textarea.setAttribute('aria-hidden', 'true');\n textarea.value = text;\n // Making the textarea `readonly` prevents the screen from jumping on iOS Safari (see #25169).\n textarea.readOnly = true;\n this._document.body.appendChild(textarea);\n }\n /** Finishes copying the text. */\n copy() {\n const textarea = this._textarea;\n let successful = false;\n try {\n // Older browsers could throw if copy is not supported.\n if (textarea) {\n const currentFocus = this._document.activeElement;\n textarea.select();\n textarea.setSelectionRange(0, textarea.value.length);\n successful = this._document.execCommand('copy');\n if (currentFocus) {\n currentFocus.focus();\n }\n }\n }\n catch {\n // Discard error.\n // Initial setting of {@code successful} will represent failure here.\n }\n return successful;\n }\n /** Cleans up DOM changes used to perform the copy operation. */\n destroy() {\n const textarea = this._textarea;\n if (textarea) {\n textarea.remove();\n this._textarea = undefined;\n }\n }\n}\n\n/**\n * A service for copying text to the clipboard.\n */\nclass Clipboard {\n constructor(document) {\n this._document = document;\n }\n /**\n * Copies the provided text into the user's clipboard.\n *\n * @param text The string to copy.\n * @returns Whether the operation was successful.\n */\n copy(text) {\n const pendingCopy = this.beginCopy(text);\n const successful = pendingCopy.copy();\n pendingCopy.destroy();\n return successful;\n }\n /**\n * Prepares a string to be copied later. This is useful for large strings\n * which take too long to successfully render and be copied in the same tick.\n *\n * The caller must call `destroy` on the returned `PendingCopy`.\n *\n * @param text The string to copy.\n * @returns the pending copy operation.\n */\n beginCopy(text) {\n return new PendingCopy(text, this._document);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: Clipboard, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: Clipboard, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: Clipboard, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; } });\n\n/** Injection token that can be used to provide the default options to `CdkCopyToClipboard`. */\nconst CDK_COPY_TO_CLIPBOARD_CONFIG = new InjectionToken('CDK_COPY_TO_CLIPBOARD_CONFIG');\n/**\n * Provides behavior for a button that when clicked copies content into user's\n * clipboard.\n */\nclass CdkCopyToClipboard {\n constructor(_clipboard, _ngZone, config) {\n this._clipboard = _clipboard;\n this._ngZone = _ngZone;\n /** Content to be copied. */\n this.text = '';\n /**\n * How many times to attempt to copy the text. This may be necessary for longer text, because\n * the browser needs time to fill an intermediate textarea element and copy the content.\n */\n this.attempts = 1;\n /**\n * Emits when some text is copied to the clipboard. The\n * emitted value indicates whether copying was successful.\n */\n this.copied = new EventEmitter();\n /** Copies that are currently being attempted. */\n this._pending = new Set();\n if (config && config.attempts != null) {\n this.attempts = config.attempts;\n }\n }\n /** Copies the current text to the clipboard. */\n copy(attempts = this.attempts) {\n if (attempts > 1) {\n let remainingAttempts = attempts;\n const pending = this._clipboard.beginCopy(this.text);\n this._pending.add(pending);\n const attempt = () => {\n const successful = pending.copy();\n if (!successful && --remainingAttempts && !this._destroyed) {\n // We use 1 for the timeout since it's more predictable when flushing in unit tests.\n this._currentTimeout = this._ngZone.runOutsideAngular(() => setTimeout(attempt, 1));\n }\n else {\n this._currentTimeout = null;\n this._pending.delete(pending);\n pending.destroy();\n this.copied.emit(successful);\n }\n };\n attempt();\n }\n else {\n this.copied.emit(this._clipboard.copy(this.text));\n }\n }\n ngOnDestroy() {\n if (this._currentTimeout) {\n clearTimeout(this._currentTimeout);\n }\n this._pending.forEach(copy => copy.destroy());\n this._pending.clear();\n this._destroyed = true;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkCopyToClipboard, deps: [{ token: Clipboard }, { token: i0.NgZone }, { token: CDK_COPY_TO_CLIPBOARD_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.0\", type: CdkCopyToClipboard, selector: \"[cdkCopyToClipboard]\", inputs: { text: [\"cdkCopyToClipboard\", \"text\"], attempts: [\"cdkCopyToClipboardAttempts\", \"attempts\"] }, outputs: { copied: \"cdkCopyToClipboardCopied\" }, host: { listeners: { \"click\": \"copy()\" } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkCopyToClipboard, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkCopyToClipboard]',\n host: {\n '(click)': 'copy()',\n },\n }]\n }], ctorParameters: function () { return [{ type: Clipboard }, { type: i0.NgZone }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [CDK_COPY_TO_CLIPBOARD_CONFIG]\n }] }]; }, propDecorators: { text: [{\n type: Input,\n args: ['cdkCopyToClipboard']\n }], attempts: [{\n type: Input,\n args: ['cdkCopyToClipboardAttempts']\n }], copied: [{\n type: Output,\n args: ['cdkCopyToClipboardCopied']\n }] } });\n\nclass ClipboardModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: ClipboardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"16.0.0\", ngImport: i0, type: ClipboardModule, declarations: [CdkCopyToClipboard], exports: [CdkCopyToClipboard] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: ClipboardModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: ClipboardModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [CdkCopyToClipboard],\n exports: [CdkCopyToClipboard],\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CDK_COPY_TO_CLIPBOARD_CONFIG, CdkCopyToClipboard, Clipboard, ClipboardModule, PendingCopy };\n","import { ElementRef } from '@angular/core';\n\n/** Coerces a data-bound value (typically a string) to a boolean. */\nfunction coerceBooleanProperty(value) {\n return value != null && `${value}` !== 'false';\n}\n\nfunction coerceNumberProperty(value, fallbackValue = 0) {\n return _isNumberValue(value) ? Number(value) : fallbackValue;\n}\n/**\n * Whether the provided value is considered a number.\n * @docs-private\n */\nfunction _isNumberValue(value) {\n // parseFloat(value) handles most of the cases we're interested in (it treats null, empty string,\n // and other non-number values as NaN, where Number just uses 0) but it considers the string\n // '123hello' to be a valid number. Therefore we also check if Number(value) is NaN.\n return !isNaN(parseFloat(value)) && !isNaN(Number(value));\n}\n\nfunction coerceArray(value) {\n return Array.isArray(value) ? value : [value];\n}\n\n/** Coerces a value to a CSS pixel value. */\nfunction coerceCssPixelValue(value) {\n if (value == null) {\n return '';\n }\n return typeof value === 'string' ? value : `${value}px`;\n}\n\n/**\n * Coerces an ElementRef or an Element into an element.\n * Useful for APIs that can accept either a ref or the native element itself.\n */\nfunction coerceElement(elementOrRef) {\n return elementOrRef instanceof ElementRef ? elementOrRef.nativeElement : elementOrRef;\n}\n\n/**\n * Coerces a value to an array of trimmed non-empty strings.\n * Any input that is not an array, `null` or `undefined` will be turned into a string\n * via `toString()` and subsequently split with the given separator.\n * `null` and `undefined` will result in an empty array.\n * This results in the following outcomes:\n * - `null` -> `[]`\n * - `[null]` -> `[\"null\"]`\n * - `[\"a\", \"b \", \" \"]` -> `[\"a\", \"b\"]`\n * - `[1, [2, 3]]` -> `[\"1\", \"2,3\"]`\n * - `[{ a: 0 }]` -> `[\"[object Object]\"]`\n * - `{ a: 0 }` -> `[\"[object\", \"Object]\"]`\n *\n * Useful for defining CSS classes or table columns.\n * @param value the value to coerce into an array of strings\n * @param separator split-separator if value isn't an array\n */\nfunction coerceStringArray(value, separator = /\\s+/) {\n const result = [];\n if (value != null) {\n const sourceValues = Array.isArray(value) ? value : `${value}`.split(separator);\n for (const sourceValue of sourceValues) {\n const trimmedString = `${sourceValue}`.trim();\n if (trimmedString) {\n result.push(trimmedString);\n }\n }\n }\n return result;\n}\n\nexport { _isNumberValue, coerceArray, coerceBooleanProperty, coerceCssPixelValue, coerceElement, coerceNumberProperty, coerceStringArray };\n","import { ConnectableObservable, isObservable, of, Subject } from 'rxjs';\nimport * as i0 from '@angular/core';\nimport { Injectable, InjectionToken } from '@angular/core';\n\nclass DataSource {\n}\n/** Checks whether an object is a data source. */\nfunction isDataSource(value) {\n // Check if the value is a DataSource by observing if it has a connect function. Cannot\n // be checked as an `instanceof DataSource` since people could create their own sources\n // that match the interface, but don't extend DataSource. We also can't use `isObservable`\n // here, because of some internal apps.\n return value && typeof value.connect === 'function' && !(value instanceof ConnectableObservable);\n}\n\n/** DataSource wrapper for a native array. */\nclass ArrayDataSource extends DataSource {\n constructor(_data) {\n super();\n this._data = _data;\n }\n connect() {\n return isObservable(this._data) ? this._data : of(this._data);\n }\n disconnect() { }\n}\n\n/**\n * A repeater that destroys views when they are removed from a\n * {@link ViewContainerRef}. When new items are inserted into the container,\n * the repeater will always construct a new embedded view for each item.\n *\n * @template T The type for the embedded view's $implicit property.\n * @template R The type for the item in each IterableDiffer change record.\n * @template C The type for the context passed to each embedded view.\n */\nclass _DisposeViewRepeaterStrategy {\n applyChanges(changes, viewContainerRef, itemContextFactory, itemValueResolver, itemViewChanged) {\n changes.forEachOperation((record, adjustedPreviousIndex, currentIndex) => {\n let view;\n let operation;\n if (record.previousIndex == null) {\n const insertContext = itemContextFactory(record, adjustedPreviousIndex, currentIndex);\n view = viewContainerRef.createEmbeddedView(insertContext.templateRef, insertContext.context, insertContext.index);\n operation = 1 /* _ViewRepeaterOperation.INSERTED */;\n }\n else if (currentIndex == null) {\n viewContainerRef.remove(adjustedPreviousIndex);\n operation = 3 /* _ViewRepeaterOperation.REMOVED */;\n }\n else {\n view = viewContainerRef.get(adjustedPreviousIndex);\n viewContainerRef.move(view, currentIndex);\n operation = 2 /* _ViewRepeaterOperation.MOVED */;\n }\n if (itemViewChanged) {\n itemViewChanged({\n context: view?.context,\n operation,\n record,\n });\n }\n });\n }\n detach() { }\n}\n\n/**\n * A repeater that caches views when they are removed from a\n * {@link ViewContainerRef}. When new items are inserted into the container,\n * the repeater will reuse one of the cached views instead of creating a new\n * embedded view. Recycling cached views reduces the quantity of expensive DOM\n * inserts.\n *\n * @template T The type for the embedded view's $implicit property.\n * @template R The type for the item in each IterableDiffer change record.\n * @template C The type for the context passed to each embedded view.\n */\nclass _RecycleViewRepeaterStrategy {\n constructor() {\n /**\n * The size of the cache used to store unused views.\n * Setting the cache size to `0` will disable caching. Defaults to 20 views.\n */\n this.viewCacheSize = 20;\n /**\n * View cache that stores embedded view instances that have been previously stamped out,\n * but don't are not currently rendered. The view repeater will reuse these views rather than\n * creating brand new ones.\n *\n * TODO(michaeljamesparsons) Investigate whether using a linked list would improve performance.\n */\n this._viewCache = [];\n }\n /** Apply changes to the DOM. */\n applyChanges(changes, viewContainerRef, itemContextFactory, itemValueResolver, itemViewChanged) {\n // Rearrange the views to put them in the right location.\n changes.forEachOperation((record, adjustedPreviousIndex, currentIndex) => {\n let view;\n let operation;\n if (record.previousIndex == null) {\n // Item added.\n const viewArgsFactory = () => itemContextFactory(record, adjustedPreviousIndex, currentIndex);\n view = this._insertView(viewArgsFactory, currentIndex, viewContainerRef, itemValueResolver(record));\n operation = view ? 1 /* _ViewRepeaterOperation.INSERTED */ : 0 /* _ViewRepeaterOperation.REPLACED */;\n }\n else if (currentIndex == null) {\n // Item removed.\n this._detachAndCacheView(adjustedPreviousIndex, viewContainerRef);\n operation = 3 /* _ViewRepeaterOperation.REMOVED */;\n }\n else {\n // Item moved.\n view = this._moveView(adjustedPreviousIndex, currentIndex, viewContainerRef, itemValueResolver(record));\n operation = 2 /* _ViewRepeaterOperation.MOVED */;\n }\n if (itemViewChanged) {\n itemViewChanged({\n context: view?.context,\n operation,\n record,\n });\n }\n });\n }\n detach() {\n for (const view of this._viewCache) {\n view.destroy();\n }\n this._viewCache = [];\n }\n /**\n * Inserts a view for a new item, either from the cache or by creating a new\n * one. Returns `undefined` if the item was inserted into a cached view.\n */\n _insertView(viewArgsFactory, currentIndex, viewContainerRef, value) {\n const cachedView = this._insertViewFromCache(currentIndex, viewContainerRef);\n if (cachedView) {\n cachedView.context.$implicit = value;\n return undefined;\n }\n const viewArgs = viewArgsFactory();\n return viewContainerRef.createEmbeddedView(viewArgs.templateRef, viewArgs.context, viewArgs.index);\n }\n /** Detaches the view at the given index and inserts into the view cache. */\n _detachAndCacheView(index, viewContainerRef) {\n const detachedView = viewContainerRef.detach(index);\n this._maybeCacheView(detachedView, viewContainerRef);\n }\n /** Moves view at the previous index to the current index. */\n _moveView(adjustedPreviousIndex, currentIndex, viewContainerRef, value) {\n const view = viewContainerRef.get(adjustedPreviousIndex);\n viewContainerRef.move(view, currentIndex);\n view.context.$implicit = value;\n return view;\n }\n /**\n * Cache the given detached view. If the cache is full, the view will be\n * destroyed.\n */\n _maybeCacheView(view, viewContainerRef) {\n if (this._viewCache.length < this.viewCacheSize) {\n this._viewCache.push(view);\n }\n else {\n const index = viewContainerRef.indexOf(view);\n // The host component could remove views from the container outside of\n // the view repeater. It's unlikely this will occur, but just in case,\n // destroy the view on its own, otherwise destroy it through the\n // container to ensure that all the references are removed.\n if (index === -1) {\n view.destroy();\n }\n else {\n viewContainerRef.remove(index);\n }\n }\n }\n /** Inserts a recycled view from the cache at the given index. */\n _insertViewFromCache(index, viewContainerRef) {\n const cachedView = this._viewCache.pop();\n if (cachedView) {\n viewContainerRef.insert(cachedView, index);\n }\n return cachedView || null;\n }\n}\n\n/**\n * Class to be used to power selecting one or more options from a list.\n */\nclass SelectionModel {\n /** Selected values. */\n get selected() {\n if (!this._selected) {\n this._selected = Array.from(this._selection.values());\n }\n return this._selected;\n }\n constructor(_multiple = false, initiallySelectedValues, _emitChanges = true, compareWith) {\n this._multiple = _multiple;\n this._emitChanges = _emitChanges;\n this.compareWith = compareWith;\n /** Currently-selected values. */\n this._selection = new Set();\n /** Keeps track of the deselected options that haven't been emitted by the change event. */\n this._deselectedToEmit = [];\n /** Keeps track of the selected options that haven't been emitted by the change event. */\n this._selectedToEmit = [];\n /** Event emitted when the value has changed. */\n this.changed = new Subject();\n if (initiallySelectedValues && initiallySelectedValues.length) {\n if (_multiple) {\n initiallySelectedValues.forEach(value => this._markSelected(value));\n }\n else {\n this._markSelected(initiallySelectedValues[0]);\n }\n // Clear the array in order to avoid firing the change event for preselected values.\n this._selectedToEmit.length = 0;\n }\n }\n /**\n * Selects a value or an array of values.\n * @param values The values to select\n * @return Whether the selection changed as a result of this call\n * @breaking-change 16.0.0 make return type boolean\n */\n select(...values) {\n this._verifyValueAssignment(values);\n values.forEach(value => this._markSelected(value));\n const changed = this._hasQueuedChanges();\n this._emitChangeEvent();\n return changed;\n }\n /**\n * Deselects a value or an array of values.\n * @param values The values to deselect\n * @return Whether the selection changed as a result of this call\n * @breaking-change 16.0.0 make return type boolean\n */\n deselect(...values) {\n this._verifyValueAssignment(values);\n values.forEach(value => this._unmarkSelected(value));\n const changed = this._hasQueuedChanges();\n this._emitChangeEvent();\n return changed;\n }\n /**\n * Sets the selected values\n * @param values The new selected values\n * @return Whether the selection changed as a result of this call\n * @breaking-change 16.0.0 make return type boolean\n */\n setSelection(...values) {\n this._verifyValueAssignment(values);\n const oldValues = this.selected;\n const newSelectedSet = new Set(values);\n values.forEach(value => this._markSelected(value));\n oldValues\n .filter(value => !newSelectedSet.has(value))\n .forEach(value => this._unmarkSelected(value));\n const changed = this._hasQueuedChanges();\n this._emitChangeEvent();\n return changed;\n }\n /**\n * Toggles a value between selected and deselected.\n * @param value The value to toggle\n * @return Whether the selection changed as a result of this call\n * @breaking-change 16.0.0 make return type boolean\n */\n toggle(value) {\n return this.isSelected(value) ? this.deselect(value) : this.select(value);\n }\n /**\n * Clears all of the selected values.\n * @param flushEvent Whether to flush the changes in an event.\n * If false, the changes to the selection will be flushed along with the next event.\n * @return Whether the selection changed as a result of this call\n * @breaking-change 16.0.0 make return type boolean\n */\n clear(flushEvent = true) {\n this._unmarkAll();\n const changed = this._hasQueuedChanges();\n if (flushEvent) {\n this._emitChangeEvent();\n }\n return changed;\n }\n /**\n * Determines whether a value is selected.\n */\n isSelected(value) {\n return this._selection.has(this._getConcreteValue(value));\n }\n /**\n * Determines whether the model does not have a value.\n */\n isEmpty() {\n return this._selection.size === 0;\n }\n /**\n * Determines whether the model has a value.\n */\n hasValue() {\n return !this.isEmpty();\n }\n /**\n * Sorts the selected values based on a predicate function.\n */\n sort(predicate) {\n if (this._multiple && this.selected) {\n this._selected.sort(predicate);\n }\n }\n /**\n * Gets whether multiple values can be selected.\n */\n isMultipleSelection() {\n return this._multiple;\n }\n /** Emits a change event and clears the records of selected and deselected values. */\n _emitChangeEvent() {\n // Clear the selected values so they can be re-cached.\n this._selected = null;\n if (this._selectedToEmit.length || this._deselectedToEmit.length) {\n this.changed.next({\n source: this,\n added: this._selectedToEmit,\n removed: this._deselectedToEmit,\n });\n this._deselectedToEmit = [];\n this._selectedToEmit = [];\n }\n }\n /** Selects a value. */\n _markSelected(value) {\n value = this._getConcreteValue(value);\n if (!this.isSelected(value)) {\n if (!this._multiple) {\n this._unmarkAll();\n }\n if (!this.isSelected(value)) {\n this._selection.add(value);\n }\n if (this._emitChanges) {\n this._selectedToEmit.push(value);\n }\n }\n }\n /** Deselects a value. */\n _unmarkSelected(value) {\n value = this._getConcreteValue(value);\n if (this.isSelected(value)) {\n this._selection.delete(value);\n if (this._emitChanges) {\n this._deselectedToEmit.push(value);\n }\n }\n }\n /** Clears out the selected values. */\n _unmarkAll() {\n if (!this.isEmpty()) {\n this._selection.forEach(value => this._unmarkSelected(value));\n }\n }\n /**\n * Verifies the value assignment and throws an error if the specified value array is\n * including multiple values while the selection model is not supporting multiple values.\n */\n _verifyValueAssignment(values) {\n if (values.length > 1 && !this._multiple && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getMultipleValuesInSingleSelectionError();\n }\n }\n /** Whether there are queued up change to be emitted. */\n _hasQueuedChanges() {\n return !!(this._deselectedToEmit.length || this._selectedToEmit.length);\n }\n /** Returns a value that is comparable to inputValue by applying compareWith function, returns the same inputValue otherwise. */\n _getConcreteValue(inputValue) {\n if (!this.compareWith) {\n return inputValue;\n }\n else {\n for (let selectedValue of this._selection) {\n if (this.compareWith(inputValue, selectedValue)) {\n return selectedValue;\n }\n }\n return inputValue;\n }\n }\n}\n/**\n * Returns an error that reports that multiple values are passed into a selection model\n * with a single value.\n * @docs-private\n */\nfunction getMultipleValuesInSingleSelectionError() {\n return Error('Cannot pass multiple values into SelectionModel with single-value mode.');\n}\n\n/**\n * Class to coordinate unique selection based on name.\n * Intended to be consumed as an Angular service.\n * This service is needed because native radio change events are only fired on the item currently\n * being selected, and we still need to uncheck the previous selection.\n *\n * This service does not *store* any IDs and names because they may change at any time, so it is\n * less error-prone if they are simply passed through when the events occur.\n */\nclass UniqueSelectionDispatcher {\n constructor() {\n this._listeners = [];\n }\n /**\n * Notify other items that selection for the given name has been set.\n * @param id ID of the item.\n * @param name Name of the item.\n */\n notify(id, name) {\n for (let listener of this._listeners) {\n listener(id, name);\n }\n }\n /**\n * Listen for future changes to item selection.\n * @return Function used to deregister listener\n */\n listen(listener) {\n this._listeners.push(listener);\n return () => {\n this._listeners = this._listeners.filter((registered) => {\n return listener !== registered;\n });\n };\n }\n ngOnDestroy() {\n this._listeners = [];\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: UniqueSelectionDispatcher, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: UniqueSelectionDispatcher, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: UniqueSelectionDispatcher, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\n/**\n * Injection token for {@link _ViewRepeater}. This token is for use by Angular Material only.\n * @docs-private\n */\nconst _VIEW_REPEATER_STRATEGY = new InjectionToken('_ViewRepeater');\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ArrayDataSource, DataSource, SelectionModel, UniqueSelectionDispatcher, _DisposeViewRepeaterStrategy, _RecycleViewRepeaterStrategy, _VIEW_REPEATER_STRATEGY, getMultipleValuesInSingleSelectionError, isDataSource };\n","import * as i1 from '@angular/cdk/a11y';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport * as i1$1 from '@angular/cdk/overlay';\nimport { Overlay, OverlayConfig, OverlayRef, OverlayModule } from '@angular/cdk/overlay';\nimport { _getFocusedElementPierceShadowDom } from '@angular/cdk/platform';\nimport * as i3 from '@angular/cdk/portal';\nimport { BasePortalOutlet, CdkPortalOutlet, ComponentPortal, TemplatePortal, PortalModule } from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Component, ViewEncapsulation, ChangeDetectionStrategy, Optional, Inject, ViewChild, InjectionToken, Injector, TemplateRef, Injectable, SkipSelf, NgModule } from '@angular/core';\nimport { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';\nimport { Subject, defer, of } from 'rxjs';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { startWith } from 'rxjs/operators';\n\n/** Configuration for opening a modal dialog. */\nclass DialogConfig {\n constructor() {\n /** The ARIA role of the dialog element. */\n this.role = 'dialog';\n /** Optional CSS class or classes applied to the overlay panel. */\n this.panelClass = '';\n /** Whether the dialog has a backdrop. */\n this.hasBackdrop = true;\n /** Optional CSS class or classes applied to the overlay backdrop. */\n this.backdropClass = '';\n /** Whether the dialog closes with the escape key or pointer events outside the panel element. */\n this.disableClose = false;\n /** Width of the dialog. */\n this.width = '';\n /** Height of the dialog. */\n this.height = '';\n /** Data being injected into the child component. */\n this.data = null;\n /** ID of the element that describes the dialog. */\n this.ariaDescribedBy = null;\n /** ID of the element that labels the dialog. */\n this.ariaLabelledBy = null;\n /** Dialog label applied via `aria-label` */\n this.ariaLabel = null;\n /** Whether this is a modal dialog. Used to set the `aria-modal` attribute. */\n this.ariaModal = true;\n /**\n * Where the dialog should focus on open.\n * @breaking-change 14.0.0 Remove boolean option from autoFocus. Use string or\n * AutoFocusTarget instead.\n */\n this.autoFocus = 'first-tabbable';\n /**\n * Whether the dialog should restore focus to the previously-focused element upon closing.\n * Has the following behavior based on the type that is passed in:\n * - `boolean` - when true, will return focus to the element that was focused before the dialog\n * was opened, otherwise won't restore focus at all.\n * - `string` - focus will be restored to the first element that matches the CSS selector.\n * - `HTMLElement` - focus will be restored to the specific element.\n */\n this.restoreFocus = true;\n /**\n * Whether the dialog should close when the user navigates backwards or forwards through browser\n * history. This does not apply to navigation via anchor element unless using URL-hash based\n * routing (`HashLocationStrategy` in the Angular router).\n */\n this.closeOnNavigation = true;\n /**\n * Whether the dialog should close when the dialog service is destroyed. This is useful if\n * another service is wrapping the dialog and is managing the destruction instead.\n */\n this.closeOnDestroy = true;\n /**\n * Whether the dialog should close when the underlying overlay is detached. This is useful if\n * another service is wrapping the dialog and is managing the destruction instead. E.g. an\n * external detachment can happen as a result of a scroll strategy triggering it or when the\n * browser location changes.\n */\n this.closeOnOverlayDetachments = true;\n }\n}\n\nfunction throwDialogContentAlreadyAttachedError() {\n throw Error('Attempting to attach dialog content after content is already attached');\n}\n/**\n * Internal component that wraps user-provided dialog content.\n * @docs-private\n */\nclass CdkDialogContainer extends BasePortalOutlet {\n constructor(_elementRef, _focusTrapFactory, _document, _config, _interactivityChecker, _ngZone, _overlayRef, _focusMonitor) {\n super();\n this._elementRef = _elementRef;\n this._focusTrapFactory = _focusTrapFactory;\n this._config = _config;\n this._interactivityChecker = _interactivityChecker;\n this._ngZone = _ngZone;\n this._overlayRef = _overlayRef;\n this._focusMonitor = _focusMonitor;\n /** Element that was focused before the dialog was opened. Save this to restore upon close. */\n this._elementFocusedBeforeDialogWasOpened = null;\n /**\n * Type of interaction that led to the dialog being closed. This is used to determine\n * whether the focus style will be applied when returning focus to its original location\n * after the dialog is closed.\n */\n this._closeInteractionType = null;\n /**\n * Attaches a DOM portal to the dialog container.\n * @param portal Portal to be attached.\n * @deprecated To be turned into a method.\n * @breaking-change 10.0.0\n */\n this.attachDomPortal = (portal) => {\n if (this._portalOutlet.hasAttached() && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throwDialogContentAlreadyAttachedError();\n }\n const result = this._portalOutlet.attachDomPortal(portal);\n this._contentAttached();\n return result;\n };\n this._ariaLabelledBy = this._config.ariaLabelledBy || null;\n this._document = _document;\n }\n _contentAttached() {\n this._initializeFocusTrap();\n this._handleBackdropClicks();\n this._captureInitialFocus();\n }\n /**\n * Can be used by child classes to customize the initial focus\n * capturing behavior (e.g. if it's tied to an animation).\n */\n _captureInitialFocus() {\n this._trapFocus();\n }\n ngOnDestroy() {\n this._restoreFocus();\n }\n /**\n * Attach a ComponentPortal as content to this dialog container.\n * @param portal Portal to be attached as the dialog content.\n */\n attachComponentPortal(portal) {\n if (this._portalOutlet.hasAttached() && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throwDialogContentAlreadyAttachedError();\n }\n const result = this._portalOutlet.attachComponentPortal(portal);\n this._contentAttached();\n return result;\n }\n /**\n * Attach a TemplatePortal as content to this dialog container.\n * @param portal Portal to be attached as the dialog content.\n */\n attachTemplatePortal(portal) {\n if (this._portalOutlet.hasAttached() && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throwDialogContentAlreadyAttachedError();\n }\n const result = this._portalOutlet.attachTemplatePortal(portal);\n this._contentAttached();\n return result;\n }\n // TODO(crisbeto): this shouldn't be exposed, but there are internal references to it.\n /** Captures focus if it isn't already inside the dialog. */\n _recaptureFocus() {\n if (!this._containsFocus()) {\n this._trapFocus();\n }\n }\n /**\n * Focuses the provided element. If the element is not focusable, it will add a tabIndex\n * attribute to forcefully focus it. The attribute is removed after focus is moved.\n * @param element The element to focus.\n */\n _forceFocus(element, options) {\n if (!this._interactivityChecker.isFocusable(element)) {\n element.tabIndex = -1;\n // The tabindex attribute should be removed to avoid navigating to that element again\n this._ngZone.runOutsideAngular(() => {\n const callback = () => {\n element.removeEventListener('blur', callback);\n element.removeEventListener('mousedown', callback);\n element.removeAttribute('tabindex');\n };\n element.addEventListener('blur', callback);\n element.addEventListener('mousedown', callback);\n });\n }\n element.focus(options);\n }\n /**\n * Focuses the first element that matches the given selector within the focus trap.\n * @param selector The CSS selector for the element to set focus to.\n */\n _focusByCssSelector(selector, options) {\n let elementToFocus = this._elementRef.nativeElement.querySelector(selector);\n if (elementToFocus) {\n this._forceFocus(elementToFocus, options);\n }\n }\n /**\n * Moves the focus inside the focus trap. When autoFocus is not set to 'dialog', if focus\n * cannot be moved then focus will go to the dialog container.\n */\n _trapFocus() {\n const element = this._elementRef.nativeElement;\n // If were to attempt to focus immediately, then the content of the dialog would not yet be\n // ready in instances where change detection has to run first. To deal with this, we simply\n // wait for the microtask queue to be empty when setting focus when autoFocus isn't set to\n // dialog. If the element inside the dialog can't be focused, then the container is focused\n // so the user can't tab into other elements behind it.\n switch (this._config.autoFocus) {\n case false:\n case 'dialog':\n // Ensure that focus is on the dialog container. It's possible that a different\n // component tried to move focus while the open animation was running. See:\n // https://github.com/angular/components/issues/16215. Note that we only want to do this\n // if the focus isn't inside the dialog already, because it's possible that the consumer\n // turned off `autoFocus` in order to move focus themselves.\n if (!this._containsFocus()) {\n element.focus();\n }\n break;\n case true:\n case 'first-tabbable':\n this._focusTrap.focusInitialElementWhenReady().then(focusedSuccessfully => {\n // If we weren't able to find a focusable element in the dialog, then focus the dialog\n // container instead.\n if (!focusedSuccessfully) {\n this._focusDialogContainer();\n }\n });\n break;\n case 'first-heading':\n this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role=\"heading\"]');\n break;\n default:\n this._focusByCssSelector(this._config.autoFocus);\n break;\n }\n }\n /** Restores focus to the element that was focused before the dialog opened. */\n _restoreFocus() {\n const focusConfig = this._config.restoreFocus;\n let focusTargetElement = null;\n if (typeof focusConfig === 'string') {\n focusTargetElement = this._document.querySelector(focusConfig);\n }\n else if (typeof focusConfig === 'boolean') {\n focusTargetElement = focusConfig ? this._elementFocusedBeforeDialogWasOpened : null;\n }\n else if (focusConfig) {\n focusTargetElement = focusConfig;\n }\n // We need the extra check, because IE can set the `activeElement` to null in some cases.\n if (this._config.restoreFocus &&\n focusTargetElement &&\n typeof focusTargetElement.focus === 'function') {\n const activeElement = _getFocusedElementPierceShadowDom();\n const element = this._elementRef.nativeElement;\n // Make sure that focus is still inside the dialog or is on the body (usually because a\n // non-focusable element like the backdrop was clicked) before moving it. It's possible that\n // the consumer moved it themselves before the animation was done, in which case we shouldn't\n // do anything.\n if (!activeElement ||\n activeElement === this._document.body ||\n activeElement === element ||\n element.contains(activeElement)) {\n if (this._focusMonitor) {\n this._focusMonitor.focusVia(focusTargetElement, this._closeInteractionType);\n this._closeInteractionType = null;\n }\n else {\n focusTargetElement.focus();\n }\n }\n }\n if (this._focusTrap) {\n this._focusTrap.destroy();\n }\n }\n /** Focuses the dialog container. */\n _focusDialogContainer() {\n // Note that there is no focus method when rendering on the server.\n if (this._elementRef.nativeElement.focus) {\n this._elementRef.nativeElement.focus();\n }\n }\n /** Returns whether focus is inside the dialog. */\n _containsFocus() {\n const element = this._elementRef.nativeElement;\n const activeElement = _getFocusedElementPierceShadowDom();\n return element === activeElement || element.contains(activeElement);\n }\n /** Sets up the focus trap. */\n _initializeFocusTrap() {\n this._focusTrap = this._focusTrapFactory.create(this._elementRef.nativeElement);\n // Save the previously focused element. This element will be re-focused\n // when the dialog closes.\n if (this._document) {\n this._elementFocusedBeforeDialogWasOpened = _getFocusedElementPierceShadowDom();\n }\n }\n /** Sets up the listener that handles clicks on the dialog backdrop. */\n _handleBackdropClicks() {\n // Clicking on the backdrop will move focus out of dialog.\n // Recapture it if closing via the backdrop is disabled.\n this._overlayRef.backdropClick().subscribe(() => {\n if (this._config.disableClose) {\n this._recaptureFocus();\n }\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkDialogContainer, deps: [{ token: i0.ElementRef }, { token: i1.FocusTrapFactory }, { token: DOCUMENT, optional: true }, { token: DialogConfig }, { token: i1.InteractivityChecker }, { token: i0.NgZone }, { token: i1$1.OverlayRef }, { token: i1.FocusMonitor }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"16.0.0\", type: CdkDialogContainer, selector: \"cdk-dialog-container\", host: { attributes: { \"tabindex\": \"-1\" }, properties: { \"attr.id\": \"_config.id || null\", \"attr.role\": \"_config.role\", \"attr.aria-modal\": \"_config.ariaModal\", \"attr.aria-labelledby\": \"_config.ariaLabel ? null : _ariaLabelledBy\", \"attr.aria-label\": \"_config.ariaLabel\", \"attr.aria-describedby\": \"_config.ariaDescribedBy || null\" }, classAttribute: \"cdk-dialog-container\" }, viewQueries: [{ propertyName: \"_portalOutlet\", first: true, predicate: CdkPortalOutlet, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: \"\\n\", styles: [\".cdk-dialog-container{display:block;width:100%;height:100%;min-height:inherit;max-height:inherit}\"], dependencies: [{ kind: \"directive\", type: i3.CdkPortalOutlet, selector: \"[cdkPortalOutlet]\", inputs: [\"cdkPortalOutlet\"], outputs: [\"attached\"], exportAs: [\"cdkPortalOutlet\"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkDialogContainer, decorators: [{\n type: Component,\n args: [{ selector: 'cdk-dialog-container', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, host: {\n 'class': 'cdk-dialog-container',\n 'tabindex': '-1',\n '[attr.id]': '_config.id || null',\n '[attr.role]': '_config.role',\n '[attr.aria-modal]': '_config.ariaModal',\n '[attr.aria-labelledby]': '_config.ariaLabel ? null : _ariaLabelledBy',\n '[attr.aria-label]': '_config.ariaLabel',\n '[attr.aria-describedby]': '_config.ariaDescribedBy || null',\n }, template: \"\\n\", styles: [\".cdk-dialog-container{display:block;width:100%;height:100%;min-height:inherit;max-height:inherit}\"] }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.FocusTrapFactory }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [DialogConfig]\n }] }, { type: i1.InteractivityChecker }, { type: i0.NgZone }, { type: i1$1.OverlayRef }, { type: i1.FocusMonitor }]; }, propDecorators: { _portalOutlet: [{\n type: ViewChild,\n args: [CdkPortalOutlet, { static: true }]\n }] } });\n\n/**\n * Reference to a dialog opened via the Dialog service.\n */\nclass DialogRef {\n constructor(overlayRef, config) {\n this.overlayRef = overlayRef;\n this.config = config;\n /** Emits when the dialog has been closed. */\n this.closed = new Subject();\n this.disableClose = config.disableClose;\n this.backdropClick = overlayRef.backdropClick();\n this.keydownEvents = overlayRef.keydownEvents();\n this.outsidePointerEvents = overlayRef.outsidePointerEvents();\n this.id = config.id; // By the time the dialog is created we are guaranteed to have an ID.\n this.keydownEvents.subscribe(event => {\n if (event.keyCode === ESCAPE && !this.disableClose && !hasModifierKey(event)) {\n event.preventDefault();\n this.close(undefined, { focusOrigin: 'keyboard' });\n }\n });\n this.backdropClick.subscribe(() => {\n if (!this.disableClose) {\n this.close(undefined, { focusOrigin: 'mouse' });\n }\n });\n this._detachSubscription = overlayRef.detachments().subscribe(() => {\n // Check specifically for `false`, because we want `undefined` to be treated like `true`.\n if (config.closeOnOverlayDetachments !== false) {\n this.close();\n }\n });\n }\n /**\n * Close the dialog.\n * @param result Optional result to return to the dialog opener.\n * @param options Additional options to customize the closing behavior.\n */\n close(result, options) {\n if (this.containerInstance) {\n const closedSubject = this.closed;\n this.containerInstance._closeInteractionType = options?.focusOrigin || 'program';\n // Drop the detach subscription first since it can be triggered by the\n // `dispose` call and override the result of this closing sequence.\n this._detachSubscription.unsubscribe();\n this.overlayRef.dispose();\n closedSubject.next(result);\n closedSubject.complete();\n this.componentInstance = this.containerInstance = null;\n }\n }\n /** Updates the position of the dialog based on the current position strategy. */\n updatePosition() {\n this.overlayRef.updatePosition();\n return this;\n }\n /**\n * Updates the dialog's width and height.\n * @param width New width of the dialog.\n * @param height New height of the dialog.\n */\n updateSize(width = '', height = '') {\n this.overlayRef.updateSize({ width, height });\n return this;\n }\n /** Add a CSS class or an array of classes to the overlay pane. */\n addPanelClass(classes) {\n this.overlayRef.addPanelClass(classes);\n return this;\n }\n /** Remove a CSS class or an array of classes from the overlay pane. */\n removePanelClass(classes) {\n this.overlayRef.removePanelClass(classes);\n return this;\n }\n}\n\n/** Injection token for the Dialog's ScrollStrategy. */\nconst DIALOG_SCROLL_STRATEGY = new InjectionToken('DialogScrollStrategy');\n/** Injection token for the Dialog's Data. */\nconst DIALOG_DATA = new InjectionToken('DialogData');\n/** Injection token that can be used to provide default options for the dialog module. */\nconst DEFAULT_DIALOG_CONFIG = new InjectionToken('DefaultDialogConfig');\n/** @docs-private */\nfunction DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay) {\n return () => overlay.scrollStrategies.block();\n}\n/** @docs-private */\nconst DIALOG_SCROLL_STRATEGY_PROVIDER = {\n provide: DIALOG_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY,\n};\n\n/** Unique id for the created dialog. */\nlet uniqueId = 0;\nclass Dialog {\n /** Keeps track of the currently-open dialogs. */\n get openDialogs() {\n return this._parentDialog ? this._parentDialog.openDialogs : this._openDialogsAtThisLevel;\n }\n /** Stream that emits when a dialog has been opened. */\n get afterOpened() {\n return this._parentDialog ? this._parentDialog.afterOpened : this._afterOpenedAtThisLevel;\n }\n constructor(_overlay, _injector, _defaultOptions, _parentDialog, _overlayContainer, scrollStrategy) {\n this._overlay = _overlay;\n this._injector = _injector;\n this._defaultOptions = _defaultOptions;\n this._parentDialog = _parentDialog;\n this._overlayContainer = _overlayContainer;\n this._openDialogsAtThisLevel = [];\n this._afterAllClosedAtThisLevel = new Subject();\n this._afterOpenedAtThisLevel = new Subject();\n this._ariaHiddenElements = new Map();\n /**\n * Stream that emits when all open dialog have finished closing.\n * Will emit on subscribe if there are no open dialogs to begin with.\n */\n this.afterAllClosed = defer(() => this.openDialogs.length\n ? this._getAfterAllClosed()\n : this._getAfterAllClosed().pipe(startWith(undefined)));\n this._scrollStrategy = scrollStrategy;\n }\n open(componentOrTemplateRef, config) {\n const defaults = (this._defaultOptions || new DialogConfig());\n config = { ...defaults, ...config };\n config.id = config.id || `cdk-dialog-${uniqueId++}`;\n if (config.id &&\n this.getDialogById(config.id) &&\n (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error(`Dialog with id \"${config.id}\" exists already. The dialog id must be unique.`);\n }\n const overlayConfig = this._getOverlayConfig(config);\n const overlayRef = this._overlay.create(overlayConfig);\n const dialogRef = new DialogRef(overlayRef, config);\n const dialogContainer = this._attachContainer(overlayRef, dialogRef, config);\n dialogRef.containerInstance = dialogContainer;\n this._attachDialogContent(componentOrTemplateRef, dialogRef, dialogContainer, config);\n // If this is the first dialog that we're opening, hide all the non-overlay content.\n if (!this.openDialogs.length) {\n this._hideNonDialogContentFromAssistiveTechnology();\n }\n this.openDialogs.push(dialogRef);\n dialogRef.closed.subscribe(() => this._removeOpenDialog(dialogRef, true));\n this.afterOpened.next(dialogRef);\n return dialogRef;\n }\n /**\n * Closes all of the currently-open dialogs.\n */\n closeAll() {\n reverseForEach(this.openDialogs, dialog => dialog.close());\n }\n /**\n * Finds an open dialog by its id.\n * @param id ID to use when looking up the dialog.\n */\n getDialogById(id) {\n return this.openDialogs.find(dialog => dialog.id === id);\n }\n ngOnDestroy() {\n // Make one pass over all the dialogs that need to be untracked, but should not be closed. We\n // want to stop tracking the open dialog even if it hasn't been closed, because the tracking\n // determines when `aria-hidden` is removed from elements outside the dialog.\n reverseForEach(this._openDialogsAtThisLevel, dialog => {\n // Check for `false` specifically since we want `undefined` to be interpreted as `true`.\n if (dialog.config.closeOnDestroy === false) {\n this._removeOpenDialog(dialog, false);\n }\n });\n // Make a second pass and close the remaining dialogs. We do this second pass in order to\n // correctly dispatch the `afterAllClosed` event in case we have a mixed array of dialogs\n // that should be closed and dialogs that should not.\n reverseForEach(this._openDialogsAtThisLevel, dialog => dialog.close());\n this._afterAllClosedAtThisLevel.complete();\n this._afterOpenedAtThisLevel.complete();\n this._openDialogsAtThisLevel = [];\n }\n /**\n * Creates an overlay config from a dialog config.\n * @param config The dialog configuration.\n * @returns The overlay configuration.\n */\n _getOverlayConfig(config) {\n const state = new OverlayConfig({\n positionStrategy: config.positionStrategy ||\n this._overlay.position().global().centerHorizontally().centerVertically(),\n scrollStrategy: config.scrollStrategy || this._scrollStrategy(),\n panelClass: config.panelClass,\n hasBackdrop: config.hasBackdrop,\n direction: config.direction,\n minWidth: config.minWidth,\n minHeight: config.minHeight,\n maxWidth: config.maxWidth,\n maxHeight: config.maxHeight,\n width: config.width,\n height: config.height,\n disposeOnNavigation: config.closeOnNavigation,\n });\n if (config.backdropClass) {\n state.backdropClass = config.backdropClass;\n }\n return state;\n }\n /**\n * Attaches a dialog container to a dialog's already-created overlay.\n * @param overlay Reference to the dialog's underlying overlay.\n * @param config The dialog configuration.\n * @returns A promise resolving to a ComponentRef for the attached container.\n */\n _attachContainer(overlay, dialogRef, config) {\n const userInjector = config.injector || config.viewContainerRef?.injector;\n const providers = [\n { provide: DialogConfig, useValue: config },\n { provide: DialogRef, useValue: dialogRef },\n { provide: OverlayRef, useValue: overlay },\n ];\n let containerType;\n if (config.container) {\n if (typeof config.container === 'function') {\n containerType = config.container;\n }\n else {\n containerType = config.container.type;\n providers.push(...config.container.providers(config));\n }\n }\n else {\n containerType = CdkDialogContainer;\n }\n const containerPortal = new ComponentPortal(containerType, config.viewContainerRef, Injector.create({ parent: userInjector || this._injector, providers }), config.componentFactoryResolver);\n const containerRef = overlay.attach(containerPortal);\n return containerRef.instance;\n }\n /**\n * Attaches the user-provided component to the already-created dialog container.\n * @param componentOrTemplateRef The type of component being loaded into the dialog,\n * or a TemplateRef to instantiate as the content.\n * @param dialogRef Reference to the dialog being opened.\n * @param dialogContainer Component that is going to wrap the dialog content.\n * @param config Configuration used to open the dialog.\n */\n _attachDialogContent(componentOrTemplateRef, dialogRef, dialogContainer, config) {\n if (componentOrTemplateRef instanceof TemplateRef) {\n const injector = this._createInjector(config, dialogRef, dialogContainer, undefined);\n let context = { $implicit: config.data, dialogRef };\n if (config.templateContext) {\n context = {\n ...context,\n ...(typeof config.templateContext === 'function'\n ? config.templateContext()\n : config.templateContext),\n };\n }\n dialogContainer.attachTemplatePortal(new TemplatePortal(componentOrTemplateRef, null, context, injector));\n }\n else {\n const injector = this._createInjector(config, dialogRef, dialogContainer, this._injector);\n const contentRef = dialogContainer.attachComponentPortal(new ComponentPortal(componentOrTemplateRef, config.viewContainerRef, injector, config.componentFactoryResolver));\n dialogRef.componentInstance = contentRef.instance;\n }\n }\n /**\n * Creates a custom injector to be used inside the dialog. This allows a component loaded inside\n * of a dialog to close itself and, optionally, to return a value.\n * @param config Config object that is used to construct the dialog.\n * @param dialogRef Reference to the dialog being opened.\n * @param dialogContainer Component that is going to wrap the dialog content.\n * @param fallbackInjector Injector to use as a fallback when a lookup fails in the custom\n * dialog injector, if the user didn't provide a custom one.\n * @returns The custom injector that can be used inside the dialog.\n */\n _createInjector(config, dialogRef, dialogContainer, fallbackInjector) {\n const userInjector = config.injector || config.viewContainerRef?.injector;\n const providers = [\n { provide: DIALOG_DATA, useValue: config.data },\n { provide: DialogRef, useValue: dialogRef },\n ];\n if (config.providers) {\n if (typeof config.providers === 'function') {\n providers.push(...config.providers(dialogRef, config, dialogContainer));\n }\n else {\n providers.push(...config.providers);\n }\n }\n if (config.direction &&\n (!userInjector ||\n !userInjector.get(Directionality, null, { optional: true }))) {\n providers.push({\n provide: Directionality,\n useValue: { value: config.direction, change: of() },\n });\n }\n return Injector.create({ parent: userInjector || fallbackInjector, providers });\n }\n /**\n * Removes a dialog from the array of open dialogs.\n * @param dialogRef Dialog to be removed.\n * @param emitEvent Whether to emit an event if this is the last dialog.\n */\n _removeOpenDialog(dialogRef, emitEvent) {\n const index = this.openDialogs.indexOf(dialogRef);\n if (index > -1) {\n this.openDialogs.splice(index, 1);\n // If all the dialogs were closed, remove/restore the `aria-hidden`\n // to a the siblings and emit to the `afterAllClosed` stream.\n if (!this.openDialogs.length) {\n this._ariaHiddenElements.forEach((previousValue, element) => {\n if (previousValue) {\n element.setAttribute('aria-hidden', previousValue);\n }\n else {\n element.removeAttribute('aria-hidden');\n }\n });\n this._ariaHiddenElements.clear();\n if (emitEvent) {\n this._getAfterAllClosed().next();\n }\n }\n }\n }\n /** Hides all of the content that isn't an overlay from assistive technology. */\n _hideNonDialogContentFromAssistiveTechnology() {\n const overlayContainer = this._overlayContainer.getContainerElement();\n // Ensure that the overlay container is attached to the DOM.\n if (overlayContainer.parentElement) {\n const siblings = overlayContainer.parentElement.children;\n for (let i = siblings.length - 1; i > -1; i--) {\n const sibling = siblings[i];\n if (sibling !== overlayContainer &&\n sibling.nodeName !== 'SCRIPT' &&\n sibling.nodeName !== 'STYLE' &&\n !sibling.hasAttribute('aria-live')) {\n this._ariaHiddenElements.set(sibling, sibling.getAttribute('aria-hidden'));\n sibling.setAttribute('aria-hidden', 'true');\n }\n }\n }\n }\n _getAfterAllClosed() {\n const parent = this._parentDialog;\n return parent ? parent._getAfterAllClosed() : this._afterAllClosedAtThisLevel;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: Dialog, deps: [{ token: i1$1.Overlay }, { token: i0.Injector }, { token: DEFAULT_DIALOG_CONFIG, optional: true }, { token: Dialog, optional: true, skipSelf: true }, { token: i1$1.OverlayContainer }, { token: DIALOG_SCROLL_STRATEGY }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: Dialog }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: Dialog, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: i1$1.Overlay }, { type: i0.Injector }, { type: DialogConfig, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [DEFAULT_DIALOG_CONFIG]\n }] }, { type: Dialog, decorators: [{\n type: Optional\n }, {\n type: SkipSelf\n }] }, { type: i1$1.OverlayContainer }, { type: undefined, decorators: [{\n type: Inject,\n args: [DIALOG_SCROLL_STRATEGY]\n }] }]; } });\n/**\n * Executes a callback against all elements in an array while iterating in reverse.\n * Useful if the array is being modified as it is being iterated.\n */\nfunction reverseForEach(items, callback) {\n let i = items.length;\n while (i--) {\n callback(items[i]);\n }\n}\n\nclass DialogModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: DialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"16.0.0\", ngImport: i0, type: DialogModule, declarations: [CdkDialogContainer], imports: [OverlayModule, PortalModule, A11yModule], exports: [\n // Re-export the PortalModule so that people extending the `CdkDialogContainer`\n // don't have to remember to import it or be faced with an unhelpful error.\n PortalModule,\n CdkDialogContainer] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: DialogModule, providers: [Dialog, DIALOG_SCROLL_STRATEGY_PROVIDER], imports: [OverlayModule, PortalModule, A11yModule, \n // Re-export the PortalModule so that people extending the `CdkDialogContainer`\n // don't have to remember to import it or be faced with an unhelpful error.\n PortalModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: DialogModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [OverlayModule, PortalModule, A11yModule],\n exports: [\n // Re-export the PortalModule so that people extending the `CdkDialogContainer`\n // don't have to remember to import it or be faced with an unhelpful error.\n PortalModule,\n CdkDialogContainer,\n ],\n declarations: [CdkDialogContainer],\n providers: [Dialog, DIALOG_SCROLL_STRATEGY_PROVIDER],\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CdkDialogContainer, DEFAULT_DIALOG_CONFIG, DIALOG_DATA, DIALOG_SCROLL_STRATEGY, DIALOG_SCROLL_STRATEGY_PROVIDER, DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY, Dialog, DialogConfig, DialogModule, DialogRef, throwDialogContentAlreadyAttachedError };\n","const MAC_ENTER = 3;\nconst BACKSPACE = 8;\nconst TAB = 9;\nconst NUM_CENTER = 12;\nconst ENTER = 13;\nconst SHIFT = 16;\nconst CONTROL = 17;\nconst ALT = 18;\nconst PAUSE = 19;\nconst CAPS_LOCK = 20;\nconst ESCAPE = 27;\nconst SPACE = 32;\nconst PAGE_UP = 33;\nconst PAGE_DOWN = 34;\nconst END = 35;\nconst HOME = 36;\nconst LEFT_ARROW = 37;\nconst UP_ARROW = 38;\nconst RIGHT_ARROW = 39;\nconst DOWN_ARROW = 40;\nconst PLUS_SIGN = 43;\nconst PRINT_SCREEN = 44;\nconst INSERT = 45;\nconst DELETE = 46;\nconst ZERO = 48;\nconst ONE = 49;\nconst TWO = 50;\nconst THREE = 51;\nconst FOUR = 52;\nconst FIVE = 53;\nconst SIX = 54;\nconst SEVEN = 55;\nconst EIGHT = 56;\nconst NINE = 57;\nconst FF_SEMICOLON = 59; // Firefox (Gecko) fires this for semicolon instead of 186\nconst FF_EQUALS = 61; // Firefox (Gecko) fires this for equals instead of 187\nconst QUESTION_MARK = 63;\nconst AT_SIGN = 64;\nconst A = 65;\nconst B = 66;\nconst C = 67;\nconst D = 68;\nconst E = 69;\nconst F = 70;\nconst G = 71;\nconst H = 72;\nconst I = 73;\nconst J = 74;\nconst K = 75;\nconst L = 76;\nconst M = 77;\nconst N = 78;\nconst O = 79;\nconst P = 80;\nconst Q = 81;\nconst R = 82;\nconst S = 83;\nconst T = 84;\nconst U = 85;\nconst V = 86;\nconst W = 87;\nconst X = 88;\nconst Y = 89;\nconst Z = 90;\nconst META = 91; // WIN_KEY_LEFT\nconst MAC_WK_CMD_LEFT = 91;\nconst MAC_WK_CMD_RIGHT = 93;\nconst CONTEXT_MENU = 93;\nconst NUMPAD_ZERO = 96;\nconst NUMPAD_ONE = 97;\nconst NUMPAD_TWO = 98;\nconst NUMPAD_THREE = 99;\nconst NUMPAD_FOUR = 100;\nconst NUMPAD_FIVE = 101;\nconst NUMPAD_SIX = 102;\nconst NUMPAD_SEVEN = 103;\nconst NUMPAD_EIGHT = 104;\nconst NUMPAD_NINE = 105;\nconst NUMPAD_MULTIPLY = 106;\nconst NUMPAD_PLUS = 107;\nconst NUMPAD_MINUS = 109;\nconst NUMPAD_PERIOD = 110;\nconst NUMPAD_DIVIDE = 111;\nconst F1 = 112;\nconst F2 = 113;\nconst F3 = 114;\nconst F4 = 115;\nconst F5 = 116;\nconst F6 = 117;\nconst F7 = 118;\nconst F8 = 119;\nconst F9 = 120;\nconst F10 = 121;\nconst F11 = 122;\nconst F12 = 123;\nconst NUM_LOCK = 144;\nconst SCROLL_LOCK = 145;\nconst FIRST_MEDIA = 166;\nconst FF_MINUS = 173;\nconst MUTE = 173; // Firefox (Gecko) fires 181 for MUTE\nconst VOLUME_DOWN = 174; // Firefox (Gecko) fires 182 for VOLUME_DOWN\nconst VOLUME_UP = 175; // Firefox (Gecko) fires 183 for VOLUME_UP\nconst FF_MUTE = 181;\nconst FF_VOLUME_DOWN = 182;\nconst LAST_MEDIA = 183;\nconst FF_VOLUME_UP = 183;\nconst SEMICOLON = 186; // Firefox (Gecko) fires 59 for SEMICOLON\nconst EQUALS = 187; // Firefox (Gecko) fires 61 for EQUALS\nconst COMMA = 188;\nconst DASH = 189; // Firefox (Gecko) fires 173 for DASH/MINUS\nconst PERIOD = 190;\nconst SLASH = 191;\nconst APOSTROPHE = 192;\nconst TILDE = 192;\nconst OPEN_SQUARE_BRACKET = 219;\nconst BACKSLASH = 220;\nconst CLOSE_SQUARE_BRACKET = 221;\nconst SINGLE_QUOTE = 222;\nconst MAC_META = 224;\n\n/**\n * Checks whether a modifier key is pressed.\n * @param event Event to be checked.\n */\nfunction hasModifierKey(event, ...modifiers) {\n if (modifiers.length) {\n return modifiers.some(modifier => event[modifier]);\n }\n return event.altKey || event.shiftKey || event.ctrlKey || event.metaKey;\n}\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { A, ALT, APOSTROPHE, AT_SIGN, B, BACKSLASH, BACKSPACE, C, CAPS_LOCK, CLOSE_SQUARE_BRACKET, COMMA, CONTEXT_MENU, CONTROL, D, DASH, DELETE, DOWN_ARROW, E, EIGHT, END, ENTER, EQUALS, ESCAPE, F, F1, F10, F11, F12, F2, F3, F4, F5, F6, F7, F8, F9, FF_EQUALS, FF_MINUS, FF_MUTE, FF_SEMICOLON, FF_VOLUME_DOWN, FF_VOLUME_UP, FIRST_MEDIA, FIVE, FOUR, G, H, HOME, I, INSERT, J, K, L, LAST_MEDIA, LEFT_ARROW, M, MAC_ENTER, MAC_META, MAC_WK_CMD_LEFT, MAC_WK_CMD_RIGHT, META, MUTE, N, NINE, NUMPAD_DIVIDE, NUMPAD_EIGHT, NUMPAD_FIVE, NUMPAD_FOUR, NUMPAD_MINUS, NUMPAD_MULTIPLY, NUMPAD_NINE, NUMPAD_ONE, NUMPAD_PERIOD, NUMPAD_PLUS, NUMPAD_SEVEN, NUMPAD_SIX, NUMPAD_THREE, NUMPAD_TWO, NUMPAD_ZERO, NUM_CENTER, NUM_LOCK, O, ONE, OPEN_SQUARE_BRACKET, P, PAGE_DOWN, PAGE_UP, PAUSE, PERIOD, PLUS_SIGN, PRINT_SCREEN, Q, QUESTION_MARK, R, RIGHT_ARROW, S, SCROLL_LOCK, SEMICOLON, SEVEN, SHIFT, SINGLE_QUOTE, SIX, SLASH, SPACE, T, TAB, THREE, TILDE, TWO, U, UP_ARROW, V, VOLUME_DOWN, VOLUME_UP, W, X, Y, Z, ZERO, hasModifierKey };\n","import * as i0 from '@angular/core';\nimport { NgModule, CSP_NONCE, Injectable, Optional, Inject } from '@angular/core';\nimport { coerceArray } from '@angular/cdk/coercion';\nimport { Subject, combineLatest, concat, Observable } from 'rxjs';\nimport { take, skip, debounceTime, map, startWith, takeUntil } from 'rxjs/operators';\nimport * as i1 from '@angular/cdk/platform';\n\nclass LayoutModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: LayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"16.0.0\", ngImport: i0, type: LayoutModule }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: LayoutModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: LayoutModule, decorators: [{\n type: NgModule,\n args: [{}]\n }] });\n\n/** Global registry for all dynamically-created, injected media queries. */\nconst mediaQueriesForWebkitCompatibility = new Set();\n/** Style tag that holds all of the dynamically-created media queries. */\nlet mediaQueryStyleNode;\n/** A utility for calling matchMedia queries. */\nclass MediaMatcher {\n constructor(_platform, _nonce) {\n this._platform = _platform;\n this._nonce = _nonce;\n this._matchMedia =\n this._platform.isBrowser && window.matchMedia\n ? // matchMedia is bound to the window scope intentionally as it is an illegal invocation to\n // call it from a different scope.\n window.matchMedia.bind(window)\n : noopMatchMedia;\n }\n /**\n * Evaluates the given media query and returns the native MediaQueryList from which results\n * can be retrieved.\n * Confirms the layout engine will trigger for the selector query provided and returns the\n * MediaQueryList for the query provided.\n */\n matchMedia(query) {\n if (this._platform.WEBKIT || this._platform.BLINK) {\n createEmptyStyleRule(query, this._nonce);\n }\n return this._matchMedia(query);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: MediaMatcher, deps: [{ token: i1.Platform }, { token: CSP_NONCE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: MediaMatcher, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: MediaMatcher, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: i1.Platform }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [CSP_NONCE]\n }] }]; } });\n/**\n * Creates an empty stylesheet that is used to work around browser inconsistencies related to\n * `matchMedia`. At the time of writing, it handles the following cases:\n * 1. On WebKit browsers, a media query has to have at least one rule in order for `matchMedia`\n * to fire. We work around it by declaring a dummy stylesheet with a `@media` declaration.\n * 2. In some cases Blink browsers will stop firing the `matchMedia` listener if none of the rules\n * inside the `@media` match existing elements on the page. We work around it by having one rule\n * targeting the `body`. See https://github.com/angular/components/issues/23546.\n */\nfunction createEmptyStyleRule(query, nonce) {\n if (mediaQueriesForWebkitCompatibility.has(query)) {\n return;\n }\n try {\n if (!mediaQueryStyleNode) {\n mediaQueryStyleNode = document.createElement('style');\n if (nonce) {\n mediaQueryStyleNode.nonce = nonce;\n }\n mediaQueryStyleNode.setAttribute('type', 'text/css');\n document.head.appendChild(mediaQueryStyleNode);\n }\n if (mediaQueryStyleNode.sheet) {\n mediaQueryStyleNode.sheet.insertRule(`@media ${query} {body{ }}`, 0);\n mediaQueriesForWebkitCompatibility.add(query);\n }\n }\n catch (e) {\n console.error(e);\n }\n}\n/** No-op matchMedia replacement for non-browser platforms. */\nfunction noopMatchMedia(query) {\n // Use `as any` here to avoid adding additional necessary properties for\n // the noop matcher.\n return {\n matches: query === 'all' || query === '',\n media: query,\n addListener: () => { },\n removeListener: () => { },\n };\n}\n\n/** Utility for checking the matching state of @media queries. */\nclass BreakpointObserver {\n constructor(_mediaMatcher, _zone) {\n this._mediaMatcher = _mediaMatcher;\n this._zone = _zone;\n /** A map of all media queries currently being listened for. */\n this._queries = new Map();\n /** A subject for all other observables to takeUntil based on. */\n this._destroySubject = new Subject();\n }\n /** Completes the active subject, signalling to all other observables to complete. */\n ngOnDestroy() {\n this._destroySubject.next();\n this._destroySubject.complete();\n }\n /**\n * Whether one or more media queries match the current viewport size.\n * @param value One or more media queries to check.\n * @returns Whether any of the media queries match.\n */\n isMatched(value) {\n const queries = splitQueries(coerceArray(value));\n return queries.some(mediaQuery => this._registerQuery(mediaQuery).mql.matches);\n }\n /**\n * Gets an observable of results for the given queries that will emit new results for any changes\n * in matching of the given queries.\n * @param value One or more media queries to check.\n * @returns A stream of matches for the given queries.\n */\n observe(value) {\n const queries = splitQueries(coerceArray(value));\n const observables = queries.map(query => this._registerQuery(query).observable);\n let stateObservable = combineLatest(observables);\n // Emit the first state immediately, and then debounce the subsequent emissions.\n stateObservable = concat(stateObservable.pipe(take(1)), stateObservable.pipe(skip(1), debounceTime(0)));\n return stateObservable.pipe(map(breakpointStates => {\n const response = {\n matches: false,\n breakpoints: {},\n };\n breakpointStates.forEach(({ matches, query }) => {\n response.matches = response.matches || matches;\n response.breakpoints[query] = matches;\n });\n return response;\n }));\n }\n /** Registers a specific query to be listened for. */\n _registerQuery(query) {\n // Only set up a new MediaQueryList if it is not already being listened for.\n if (this._queries.has(query)) {\n return this._queries.get(query);\n }\n const mql = this._mediaMatcher.matchMedia(query);\n // Create callback for match changes and add it is as a listener.\n const queryObservable = new Observable((observer) => {\n // Listener callback methods are wrapped to be placed back in ngZone. Callbacks must be placed\n // back into the zone because matchMedia is only included in Zone.js by loading the\n // webapis-media-query.js file alongside the zone.js file. Additionally, some browsers do not\n // have MediaQueryList inherit from EventTarget, which causes inconsistencies in how Zone.js\n // patches it.\n const handler = (e) => this._zone.run(() => observer.next(e));\n mql.addListener(handler);\n return () => {\n mql.removeListener(handler);\n };\n }).pipe(startWith(mql), map(({ matches }) => ({ query, matches })), takeUntil(this._destroySubject));\n // Add the MediaQueryList to the set of queries.\n const output = { observable: queryObservable, mql };\n this._queries.set(query, output);\n return output;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: BreakpointObserver, deps: [{ token: MediaMatcher }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: BreakpointObserver, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: BreakpointObserver, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: MediaMatcher }, { type: i0.NgZone }]; } });\n/**\n * Split each query string into separate query strings if two queries are provided as comma\n * separated.\n */\nfunction splitQueries(queries) {\n return queries\n .map(query => query.split(','))\n .reduce((a1, a2) => a1.concat(a2))\n .map(query => query.trim());\n}\n\n// PascalCase is being used as Breakpoints is used like an enum.\n// tslint:disable-next-line:variable-name\nconst Breakpoints = {\n XSmall: '(max-width: 599.98px)',\n Small: '(min-width: 600px) and (max-width: 959.98px)',\n Medium: '(min-width: 960px) and (max-width: 1279.98px)',\n Large: '(min-width: 1280px) and (max-width: 1919.98px)',\n XLarge: '(min-width: 1920px)',\n Handset: '(max-width: 599.98px) and (orientation: portrait), ' +\n '(max-width: 959.98px) and (orientation: landscape)',\n Tablet: '(min-width: 600px) and (max-width: 839.98px) and (orientation: portrait), ' +\n '(min-width: 960px) and (max-width: 1279.98px) and (orientation: landscape)',\n Web: '(min-width: 840px) and (orientation: portrait), ' +\n '(min-width: 1280px) and (orientation: landscape)',\n HandsetPortrait: '(max-width: 599.98px) and (orientation: portrait)',\n TabletPortrait: '(min-width: 600px) and (max-width: 839.98px) and (orientation: portrait)',\n WebPortrait: '(min-width: 840px) and (orientation: portrait)',\n HandsetLandscape: '(max-width: 959.98px) and (orientation: landscape)',\n TabletLandscape: '(min-width: 960px) and (max-width: 1279.98px) and (orientation: landscape)',\n WebLandscape: '(min-width: 1280px) and (orientation: landscape)',\n};\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BreakpointObserver, Breakpoints, LayoutModule, MediaMatcher };\n","import { coerceElement, coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';\nimport * as i0 from '@angular/core';\nimport { Injectable, EventEmitter, Directive, Output, Input, NgModule } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\n/**\n * Factory that creates a new MutationObserver and allows us to stub it out in unit tests.\n * @docs-private\n */\nclass MutationObserverFactory {\n create(callback) {\n return typeof MutationObserver === 'undefined' ? null : new MutationObserver(callback);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: MutationObserverFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: MutationObserverFactory, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: MutationObserverFactory, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n/** An injectable service that allows watching elements for changes to their content. */\nclass ContentObserver {\n constructor(_mutationObserverFactory) {\n this._mutationObserverFactory = _mutationObserverFactory;\n /** Keeps track of the existing MutationObservers so they can be reused. */\n this._observedElements = new Map();\n }\n ngOnDestroy() {\n this._observedElements.forEach((_, element) => this._cleanupObserver(element));\n }\n observe(elementOrRef) {\n const element = coerceElement(elementOrRef);\n return new Observable((observer) => {\n const stream = this._observeElement(element);\n const subscription = stream.subscribe(observer);\n return () => {\n subscription.unsubscribe();\n this._unobserveElement(element);\n };\n });\n }\n /**\n * Observes the given element by using the existing MutationObserver if available, or creating a\n * new one if not.\n */\n _observeElement(element) {\n if (!this._observedElements.has(element)) {\n const stream = new Subject();\n const observer = this._mutationObserverFactory.create(mutations => stream.next(mutations));\n if (observer) {\n observer.observe(element, {\n characterData: true,\n childList: true,\n subtree: true,\n });\n }\n this._observedElements.set(element, { observer, stream, count: 1 });\n }\n else {\n this._observedElements.get(element).count++;\n }\n return this._observedElements.get(element).stream;\n }\n /**\n * Un-observes the given element and cleans up the underlying MutationObserver if nobody else is\n * observing this element.\n */\n _unobserveElement(element) {\n if (this._observedElements.has(element)) {\n this._observedElements.get(element).count--;\n if (!this._observedElements.get(element).count) {\n this._cleanupObserver(element);\n }\n }\n }\n /** Clean up the underlying MutationObserver for the specified element. */\n _cleanupObserver(element) {\n if (this._observedElements.has(element)) {\n const { observer, stream } = this._observedElements.get(element);\n if (observer) {\n observer.disconnect();\n }\n stream.complete();\n this._observedElements.delete(element);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: ContentObserver, deps: [{ token: MutationObserverFactory }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: ContentObserver, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: ContentObserver, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: MutationObserverFactory }]; } });\n/**\n * Directive that triggers a callback whenever the content of\n * its associated element has changed.\n */\nclass CdkObserveContent {\n /**\n * Whether observing content is disabled. This option can be used\n * to disconnect the underlying MutationObserver until it is needed.\n */\n get disabled() {\n return this._disabled;\n }\n set disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n this._disabled ? this._unsubscribe() : this._subscribe();\n }\n /** Debounce interval for emitting the changes. */\n get debounce() {\n return this._debounce;\n }\n set debounce(value) {\n this._debounce = coerceNumberProperty(value);\n this._subscribe();\n }\n constructor(_contentObserver, _elementRef, _ngZone) {\n this._contentObserver = _contentObserver;\n this._elementRef = _elementRef;\n this._ngZone = _ngZone;\n /** Event emitted for each change in the element's content. */\n this.event = new EventEmitter();\n this._disabled = false;\n this._currentSubscription = null;\n }\n ngAfterContentInit() {\n if (!this._currentSubscription && !this.disabled) {\n this._subscribe();\n }\n }\n ngOnDestroy() {\n this._unsubscribe();\n }\n _subscribe() {\n this._unsubscribe();\n const stream = this._contentObserver.observe(this._elementRef);\n // TODO(mmalerba): We shouldn't be emitting on this @Output() outside the zone.\n // Consider brining it back inside the zone next time we're making breaking changes.\n // Bringing it back inside can cause things like infinite change detection loops and changed\n // after checked errors if people's code isn't handling it properly.\n this._ngZone.runOutsideAngular(() => {\n this._currentSubscription = (this.debounce ? stream.pipe(debounceTime(this.debounce)) : stream).subscribe(this.event);\n });\n }\n _unsubscribe() {\n this._currentSubscription?.unsubscribe();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkObserveContent, deps: [{ token: ContentObserver }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.0\", type: CdkObserveContent, selector: \"[cdkObserveContent]\", inputs: { disabled: [\"cdkObserveContentDisabled\", \"disabled\"], debounce: \"debounce\" }, outputs: { event: \"cdkObserveContent\" }, exportAs: [\"cdkObserveContent\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkObserveContent, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkObserveContent]',\n exportAs: 'cdkObserveContent',\n }]\n }], ctorParameters: function () { return [{ type: ContentObserver }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { event: [{\n type: Output,\n args: ['cdkObserveContent']\n }], disabled: [{\n type: Input,\n args: ['cdkObserveContentDisabled']\n }], debounce: [{\n type: Input\n }] } });\nclass ObserversModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: ObserversModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"16.0.0\", ngImport: i0, type: ObserversModule, declarations: [CdkObserveContent], exports: [CdkObserveContent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: ObserversModule, providers: [MutationObserverFactory] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: ObserversModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [CdkObserveContent],\n declarations: [CdkObserveContent],\n providers: [MutationObserverFactory],\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CdkObserveContent, ContentObserver, MutationObserverFactory, ObserversModule };\n","import * as i1 from '@angular/cdk/scrolling';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nexport { CdkScrollable, ScrollDispatcher, ViewportRuler } from '@angular/cdk/scrolling';\nimport * as i6 from '@angular/common';\nimport { DOCUMENT } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, Inject, Optional, ElementRef, ApplicationRef, ANIMATION_MODULE_TYPE, InjectionToken, Directive, EventEmitter, Input, Output, NgModule } from '@angular/core';\nimport { coerceCssPixelValue, coerceArray, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport * as i1$1 from '@angular/cdk/platform';\nimport { supportsScrollBehavior, _getEventTarget, _isTestEnvironment } from '@angular/cdk/platform';\nimport { filter, take, takeUntil, takeWhile } from 'rxjs/operators';\nimport * as i5 from '@angular/cdk/bidi';\nimport { BidiModule } from '@angular/cdk/bidi';\nimport { DomPortalOutlet, TemplatePortal, PortalModule } from '@angular/cdk/portal';\nimport { Subject, Subscription, merge } from 'rxjs';\nimport { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';\n\nconst scrollBehaviorSupported = supportsScrollBehavior();\n/**\n * Strategy that will prevent the user from scrolling while the overlay is visible.\n */\nclass BlockScrollStrategy {\n constructor(_viewportRuler, document) {\n this._viewportRuler = _viewportRuler;\n this._previousHTMLStyles = { top: '', left: '' };\n this._isEnabled = false;\n this._document = document;\n }\n /** Attaches this scroll strategy to an overlay. */\n attach() { }\n /** Blocks page-level scroll while the attached overlay is open. */\n enable() {\n if (this._canBeEnabled()) {\n const root = this._document.documentElement;\n this._previousScrollPosition = this._viewportRuler.getViewportScrollPosition();\n // Cache the previous inline styles in case the user had set them.\n this._previousHTMLStyles.left = root.style.left || '';\n this._previousHTMLStyles.top = root.style.top || '';\n // Note: we're using the `html` node, instead of the `body`, because the `body` may\n // have the user agent margin, whereas the `html` is guaranteed not to have one.\n root.style.left = coerceCssPixelValue(-this._previousScrollPosition.left);\n root.style.top = coerceCssPixelValue(-this._previousScrollPosition.top);\n root.classList.add('cdk-global-scrollblock');\n this._isEnabled = true;\n }\n }\n /** Unblocks page-level scroll while the attached overlay is open. */\n disable() {\n if (this._isEnabled) {\n const html = this._document.documentElement;\n const body = this._document.body;\n const htmlStyle = html.style;\n const bodyStyle = body.style;\n const previousHtmlScrollBehavior = htmlStyle.scrollBehavior || '';\n const previousBodyScrollBehavior = bodyStyle.scrollBehavior || '';\n this._isEnabled = false;\n htmlStyle.left = this._previousHTMLStyles.left;\n htmlStyle.top = this._previousHTMLStyles.top;\n html.classList.remove('cdk-global-scrollblock');\n // Disable user-defined smooth scrolling temporarily while we restore the scroll position.\n // See https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-behavior\n // Note that we don't mutate the property if the browser doesn't support `scroll-behavior`,\n // because it can throw off feature detections in `supportsScrollBehavior` which\n // checks for `'scrollBehavior' in documentElement.style`.\n if (scrollBehaviorSupported) {\n htmlStyle.scrollBehavior = bodyStyle.scrollBehavior = 'auto';\n }\n window.scroll(this._previousScrollPosition.left, this._previousScrollPosition.top);\n if (scrollBehaviorSupported) {\n htmlStyle.scrollBehavior = previousHtmlScrollBehavior;\n bodyStyle.scrollBehavior = previousBodyScrollBehavior;\n }\n }\n }\n _canBeEnabled() {\n // Since the scroll strategies can't be singletons, we have to use a global CSS class\n // (`cdk-global-scrollblock`) to make sure that we don't try to disable global\n // scrolling multiple times.\n const html = this._document.documentElement;\n if (html.classList.contains('cdk-global-scrollblock') || this._isEnabled) {\n return false;\n }\n const body = this._document.body;\n const viewport = this._viewportRuler.getViewportSize();\n return body.scrollHeight > viewport.height || body.scrollWidth > viewport.width;\n }\n}\n\n/**\n * Returns an error to be thrown when attempting to attach an already-attached scroll strategy.\n */\nfunction getMatScrollStrategyAlreadyAttachedError() {\n return Error(`Scroll strategy has already been attached.`);\n}\n\n/**\n * Strategy that will close the overlay as soon as the user starts scrolling.\n */\nclass CloseScrollStrategy {\n constructor(_scrollDispatcher, _ngZone, _viewportRuler, _config) {\n this._scrollDispatcher = _scrollDispatcher;\n this._ngZone = _ngZone;\n this._viewportRuler = _viewportRuler;\n this._config = _config;\n this._scrollSubscription = null;\n /** Detaches the overlay ref and disables the scroll strategy. */\n this._detach = () => {\n this.disable();\n if (this._overlayRef.hasAttached()) {\n this._ngZone.run(() => this._overlayRef.detach());\n }\n };\n }\n /** Attaches this scroll strategy to an overlay. */\n attach(overlayRef) {\n if (this._overlayRef && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getMatScrollStrategyAlreadyAttachedError();\n }\n this._overlayRef = overlayRef;\n }\n /** Enables the closing of the attached overlay on scroll. */\n enable() {\n if (this._scrollSubscription) {\n return;\n }\n const stream = this._scrollDispatcher.scrolled(0).pipe(filter(scrollable => {\n return (!scrollable ||\n !this._overlayRef.overlayElement.contains(scrollable.getElementRef().nativeElement));\n }));\n if (this._config && this._config.threshold && this._config.threshold > 1) {\n this._initialScrollPosition = this._viewportRuler.getViewportScrollPosition().top;\n this._scrollSubscription = stream.subscribe(() => {\n const scrollPosition = this._viewportRuler.getViewportScrollPosition().top;\n if (Math.abs(scrollPosition - this._initialScrollPosition) > this._config.threshold) {\n this._detach();\n }\n else {\n this._overlayRef.updatePosition();\n }\n });\n }\n else {\n this._scrollSubscription = stream.subscribe(this._detach);\n }\n }\n /** Disables the closing the attached overlay on scroll. */\n disable() {\n if (this._scrollSubscription) {\n this._scrollSubscription.unsubscribe();\n this._scrollSubscription = null;\n }\n }\n detach() {\n this.disable();\n this._overlayRef = null;\n }\n}\n\n/** Scroll strategy that doesn't do anything. */\nclass NoopScrollStrategy {\n /** Does nothing, as this scroll strategy is a no-op. */\n enable() { }\n /** Does nothing, as this scroll strategy is a no-op. */\n disable() { }\n /** Does nothing, as this scroll strategy is a no-op. */\n attach() { }\n}\n\n/**\n * Gets whether an element is scrolled outside of view by any of its parent scrolling containers.\n * @param element Dimensions of the element (from getBoundingClientRect)\n * @param scrollContainers Dimensions of element's scrolling containers (from getBoundingClientRect)\n * @returns Whether the element is scrolled out of view\n * @docs-private\n */\nfunction isElementScrolledOutsideView(element, scrollContainers) {\n return scrollContainers.some(containerBounds => {\n const outsideAbove = element.bottom < containerBounds.top;\n const outsideBelow = element.top > containerBounds.bottom;\n const outsideLeft = element.right < containerBounds.left;\n const outsideRight = element.left > containerBounds.right;\n return outsideAbove || outsideBelow || outsideLeft || outsideRight;\n });\n}\n/**\n * Gets whether an element is clipped by any of its scrolling containers.\n * @param element Dimensions of the element (from getBoundingClientRect)\n * @param scrollContainers Dimensions of element's scrolling containers (from getBoundingClientRect)\n * @returns Whether the element is clipped\n * @docs-private\n */\nfunction isElementClippedByScrolling(element, scrollContainers) {\n return scrollContainers.some(scrollContainerRect => {\n const clippedAbove = element.top < scrollContainerRect.top;\n const clippedBelow = element.bottom > scrollContainerRect.bottom;\n const clippedLeft = element.left < scrollContainerRect.left;\n const clippedRight = element.right > scrollContainerRect.right;\n return clippedAbove || clippedBelow || clippedLeft || clippedRight;\n });\n}\n\n/**\n * Strategy that will update the element position as the user is scrolling.\n */\nclass RepositionScrollStrategy {\n constructor(_scrollDispatcher, _viewportRuler, _ngZone, _config) {\n this._scrollDispatcher = _scrollDispatcher;\n this._viewportRuler = _viewportRuler;\n this._ngZone = _ngZone;\n this._config = _config;\n this._scrollSubscription = null;\n }\n /** Attaches this scroll strategy to an overlay. */\n attach(overlayRef) {\n if (this._overlayRef && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getMatScrollStrategyAlreadyAttachedError();\n }\n this._overlayRef = overlayRef;\n }\n /** Enables repositioning of the attached overlay on scroll. */\n enable() {\n if (!this._scrollSubscription) {\n const throttle = this._config ? this._config.scrollThrottle : 0;\n this._scrollSubscription = this._scrollDispatcher.scrolled(throttle).subscribe(() => {\n this._overlayRef.updatePosition();\n // TODO(crisbeto): make `close` on by default once all components can handle it.\n if (this._config && this._config.autoClose) {\n const overlayRect = this._overlayRef.overlayElement.getBoundingClientRect();\n const { width, height } = this._viewportRuler.getViewportSize();\n // TODO(crisbeto): include all ancestor scroll containers here once\n // we have a way of exposing the trigger element to the scroll strategy.\n const parentRects = [{ width, height, bottom: height, right: width, top: 0, left: 0 }];\n if (isElementScrolledOutsideView(overlayRect, parentRects)) {\n this.disable();\n this._ngZone.run(() => this._overlayRef.detach());\n }\n }\n });\n }\n }\n /** Disables repositioning of the attached overlay on scroll. */\n disable() {\n if (this._scrollSubscription) {\n this._scrollSubscription.unsubscribe();\n this._scrollSubscription = null;\n }\n }\n detach() {\n this.disable();\n this._overlayRef = null;\n }\n}\n\n/**\n * Options for how an overlay will handle scrolling.\n *\n * Users can provide a custom value for `ScrollStrategyOptions` to replace the default\n * behaviors. This class primarily acts as a factory for ScrollStrategy instances.\n */\nclass ScrollStrategyOptions {\n constructor(_scrollDispatcher, _viewportRuler, _ngZone, document) {\n this._scrollDispatcher = _scrollDispatcher;\n this._viewportRuler = _viewportRuler;\n this._ngZone = _ngZone;\n /** Do nothing on scroll. */\n this.noop = () => new NoopScrollStrategy();\n /**\n * Close the overlay as soon as the user scrolls.\n * @param config Configuration to be used inside the scroll strategy.\n */\n this.close = (config) => new CloseScrollStrategy(this._scrollDispatcher, this._ngZone, this._viewportRuler, config);\n /** Block scrolling. */\n this.block = () => new BlockScrollStrategy(this._viewportRuler, this._document);\n /**\n * Update the overlay's position on scroll.\n * @param config Configuration to be used inside the scroll strategy.\n * Allows debouncing the reposition calls.\n */\n this.reposition = (config) => new RepositionScrollStrategy(this._scrollDispatcher, this._viewportRuler, this._ngZone, config);\n this._document = document;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: ScrollStrategyOptions, deps: [{ token: i1.ScrollDispatcher }, { token: i1.ViewportRuler }, { token: i0.NgZone }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: ScrollStrategyOptions, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: ScrollStrategyOptions, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: i1.ScrollDispatcher }, { type: i1.ViewportRuler }, { type: i0.NgZone }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; } });\n\n/** Initial configuration used when creating an overlay. */\nclass OverlayConfig {\n constructor(config) {\n /** Strategy to be used when handling scroll events while the overlay is open. */\n this.scrollStrategy = new NoopScrollStrategy();\n /** Custom class to add to the overlay pane. */\n this.panelClass = '';\n /** Whether the overlay has a backdrop. */\n this.hasBackdrop = false;\n /** Custom class to add to the backdrop */\n this.backdropClass = 'cdk-overlay-dark-backdrop';\n /**\n * Whether the overlay should be disposed of when the user goes backwards/forwards in history.\n * Note that this usually doesn't include clicking on links (unless the user is using\n * the `HashLocationStrategy`).\n */\n this.disposeOnNavigation = false;\n if (config) {\n // Use `Iterable` instead of `Array` because TypeScript, as of 3.6.3,\n // loses the array generic type in the `for of`. But we *also* have to use `Array` because\n // typescript won't iterate over an `Iterable` unless you compile with `--downlevelIteration`\n const configKeys = Object.keys(config);\n for (const key of configKeys) {\n if (config[key] !== undefined) {\n // TypeScript, as of version 3.5, sees the left-hand-side of this expression\n // as \"I don't know *which* key this is, so the only valid value is the intersection\n // of all the possible values.\" In this case, that happens to be `undefined`. TypeScript\n // is not smart enough to see that the right-hand-side is actually an access of the same\n // exact type with the same exact key, meaning that the value type must be identical.\n // So we use `any` to work around this.\n this[key] = config[key];\n }\n }\n }\n }\n}\n\n/** The points of the origin element and the overlay element to connect. */\nclass ConnectionPositionPair {\n constructor(origin, overlay, \n /** Offset along the X axis. */\n offsetX, \n /** Offset along the Y axis. */\n offsetY, \n /** Class(es) to be applied to the panel while this position is active. */\n panelClass) {\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n this.panelClass = panelClass;\n this.originX = origin.originX;\n this.originY = origin.originY;\n this.overlayX = overlay.overlayX;\n this.overlayY = overlay.overlayY;\n }\n}\n/**\n * Set of properties regarding the position of the origin and overlay relative to the viewport\n * with respect to the containing Scrollable elements.\n *\n * The overlay and origin are clipped if any part of their bounding client rectangle exceeds the\n * bounds of any one of the strategy's Scrollable's bounding client rectangle.\n *\n * The overlay and origin are outside view if there is no overlap between their bounding client\n * rectangle and any one of the strategy's Scrollable's bounding client rectangle.\n *\n * ----------- -----------\n * | outside | | clipped |\n * | view | --------------------------\n * | | | | | |\n * ---------- | ----------- |\n * -------------------------- | |\n * | | | Scrollable |\n * | | | |\n * | | --------------------------\n * | Scrollable |\n * | |\n * --------------------------\n *\n * @docs-private\n */\nclass ScrollingVisibility {\n}\n/** The change event emitted by the strategy when a fallback position is used. */\nclass ConnectedOverlayPositionChange {\n constructor(\n /** The position used as a result of this change. */\n connectionPair, \n /** @docs-private */\n scrollableViewProperties) {\n this.connectionPair = connectionPair;\n this.scrollableViewProperties = scrollableViewProperties;\n }\n}\n/**\n * Validates whether a vertical position property matches the expected values.\n * @param property Name of the property being validated.\n * @param value Value of the property being validated.\n * @docs-private\n */\nfunction validateVerticalPosition(property, value) {\n if (value !== 'top' && value !== 'bottom' && value !== 'center') {\n throw Error(`ConnectedPosition: Invalid ${property} \"${value}\". ` +\n `Expected \"top\", \"bottom\" or \"center\".`);\n }\n}\n/**\n * Validates whether a horizontal position property matches the expected values.\n * @param property Name of the property being validated.\n * @param value Value of the property being validated.\n * @docs-private\n */\nfunction validateHorizontalPosition(property, value) {\n if (value !== 'start' && value !== 'end' && value !== 'center') {\n throw Error(`ConnectedPosition: Invalid ${property} \"${value}\". ` +\n `Expected \"start\", \"end\" or \"center\".`);\n }\n}\n\n/**\n * Service for dispatching events that land on the body to appropriate overlay ref,\n * if any. It maintains a list of attached overlays to determine best suited overlay based\n * on event target and order of overlay opens.\n */\nclass BaseOverlayDispatcher {\n constructor(document) {\n /** Currently attached overlays in the order they were attached. */\n this._attachedOverlays = [];\n this._document = document;\n }\n ngOnDestroy() {\n this.detach();\n }\n /** Add a new overlay to the list of attached overlay refs. */\n add(overlayRef) {\n // Ensure that we don't get the same overlay multiple times.\n this.remove(overlayRef);\n this._attachedOverlays.push(overlayRef);\n }\n /** Remove an overlay from the list of attached overlay refs. */\n remove(overlayRef) {\n const index = this._attachedOverlays.indexOf(overlayRef);\n if (index > -1) {\n this._attachedOverlays.splice(index, 1);\n }\n // Remove the global listener once there are no more overlays.\n if (this._attachedOverlays.length === 0) {\n this.detach();\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: BaseOverlayDispatcher, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: BaseOverlayDispatcher, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: BaseOverlayDispatcher, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; } });\n\n/**\n * Service for dispatching keyboard events that land on the body to appropriate overlay ref,\n * if any. It maintains a list of attached overlays to determine best suited overlay based\n * on event target and order of overlay opens.\n */\nclass OverlayKeyboardDispatcher extends BaseOverlayDispatcher {\n constructor(document, \n /** @breaking-change 14.0.0 _ngZone will be required. */\n _ngZone) {\n super(document);\n this._ngZone = _ngZone;\n /** Keyboard event listener that will be attached to the body. */\n this._keydownListener = (event) => {\n const overlays = this._attachedOverlays;\n for (let i = overlays.length - 1; i > -1; i--) {\n // Dispatch the keydown event to the top overlay which has subscribers to its keydown events.\n // We want to target the most recent overlay, rather than trying to match where the event came\n // from, because some components might open an overlay, but keep focus on a trigger element\n // (e.g. for select and autocomplete). We skip overlays without keydown event subscriptions,\n // because we don't want overlays that don't handle keyboard events to block the ones below\n // them that do.\n if (overlays[i]._keydownEvents.observers.length > 0) {\n const keydownEvents = overlays[i]._keydownEvents;\n /** @breaking-change 14.0.0 _ngZone will be required. */\n if (this._ngZone) {\n this._ngZone.run(() => keydownEvents.next(event));\n }\n else {\n keydownEvents.next(event);\n }\n break;\n }\n }\n };\n }\n /** Add a new overlay to the list of attached overlay refs. */\n add(overlayRef) {\n super.add(overlayRef);\n // Lazily start dispatcher once first overlay is added\n if (!this._isAttached) {\n /** @breaking-change 14.0.0 _ngZone will be required. */\n if (this._ngZone) {\n this._ngZone.runOutsideAngular(() => this._document.body.addEventListener('keydown', this._keydownListener));\n }\n else {\n this._document.body.addEventListener('keydown', this._keydownListener);\n }\n this._isAttached = true;\n }\n }\n /** Detaches the global keyboard event listener. */\n detach() {\n if (this._isAttached) {\n this._document.body.removeEventListener('keydown', this._keydownListener);\n this._isAttached = false;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: OverlayKeyboardDispatcher, deps: [{ token: DOCUMENT }, { token: i0.NgZone, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: OverlayKeyboardDispatcher, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: OverlayKeyboardDispatcher, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i0.NgZone, decorators: [{\n type: Optional\n }] }]; } });\n\n/**\n * Service for dispatching mouse click events that land on the body to appropriate overlay ref,\n * if any. It maintains a list of attached overlays to determine best suited overlay based\n * on event target and order of overlay opens.\n */\nclass OverlayOutsideClickDispatcher extends BaseOverlayDispatcher {\n constructor(document, _platform, \n /** @breaking-change 14.0.0 _ngZone will be required. */\n _ngZone) {\n super(document);\n this._platform = _platform;\n this._ngZone = _ngZone;\n this._cursorStyleIsSet = false;\n /** Store pointerdown event target to track origin of click. */\n this._pointerDownListener = (event) => {\n this._pointerDownEventTarget = _getEventTarget(event);\n };\n /** Click event listener that will be attached to the body propagate phase. */\n this._clickListener = (event) => {\n const target = _getEventTarget(event);\n // In case of a click event, we want to check the origin of the click\n // (e.g. in case where a user starts a click inside the overlay and\n // releases the click outside of it).\n // This is done by using the event target of the preceding pointerdown event.\n // Every click event caused by a pointer device has a preceding pointerdown\n // event, unless the click was programmatically triggered (e.g. in a unit test).\n const origin = event.type === 'click' && this._pointerDownEventTarget\n ? this._pointerDownEventTarget\n : target;\n // Reset the stored pointerdown event target, to avoid having it interfere\n // in subsequent events.\n this._pointerDownEventTarget = null;\n // We copy the array because the original may be modified asynchronously if the\n // outsidePointerEvents listener decides to detach overlays resulting in index errors inside\n // the for loop.\n const overlays = this._attachedOverlays.slice();\n // Dispatch the mouse event to the top overlay which has subscribers to its mouse events.\n // We want to target all overlays for which the click could be considered as outside click.\n // As soon as we reach an overlay for which the click is not outside click we break off\n // the loop.\n for (let i = overlays.length - 1; i > -1; i--) {\n const overlayRef = overlays[i];\n if (overlayRef._outsidePointerEvents.observers.length < 1 || !overlayRef.hasAttached()) {\n continue;\n }\n // If it's a click inside the overlay, just break - we should do nothing\n // If it's an outside click (both origin and target of the click) dispatch the mouse event,\n // and proceed with the next overlay\n if (overlayRef.overlayElement.contains(target) ||\n overlayRef.overlayElement.contains(origin)) {\n break;\n }\n const outsidePointerEvents = overlayRef._outsidePointerEvents;\n /** @breaking-change 14.0.0 _ngZone will be required. */\n if (this._ngZone) {\n this._ngZone.run(() => outsidePointerEvents.next(event));\n }\n else {\n outsidePointerEvents.next(event);\n }\n }\n };\n }\n /** Add a new overlay to the list of attached overlay refs. */\n add(overlayRef) {\n super.add(overlayRef);\n // Safari on iOS does not generate click events for non-interactive\n // elements. However, we want to receive a click for any element outside\n // the overlay. We can force a \"clickable\" state by setting\n // `cursor: pointer` on the document body. See:\n // https://developer.mozilla.org/en-US/docs/Web/API/Element/click_event#Safari_Mobile\n // https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html\n if (!this._isAttached) {\n const body = this._document.body;\n /** @breaking-change 14.0.0 _ngZone will be required. */\n if (this._ngZone) {\n this._ngZone.runOutsideAngular(() => this._addEventListeners(body));\n }\n else {\n this._addEventListeners(body);\n }\n // click event is not fired on iOS. To make element \"clickable\" we are\n // setting the cursor to pointer\n if (this._platform.IOS && !this._cursorStyleIsSet) {\n this._cursorOriginalValue = body.style.cursor;\n body.style.cursor = 'pointer';\n this._cursorStyleIsSet = true;\n }\n this._isAttached = true;\n }\n }\n /** Detaches the global keyboard event listener. */\n detach() {\n if (this._isAttached) {\n const body = this._document.body;\n body.removeEventListener('pointerdown', this._pointerDownListener, true);\n body.removeEventListener('click', this._clickListener, true);\n body.removeEventListener('auxclick', this._clickListener, true);\n body.removeEventListener('contextmenu', this._clickListener, true);\n if (this._platform.IOS && this._cursorStyleIsSet) {\n body.style.cursor = this._cursorOriginalValue;\n this._cursorStyleIsSet = false;\n }\n this._isAttached = false;\n }\n }\n _addEventListeners(body) {\n body.addEventListener('pointerdown', this._pointerDownListener, true);\n body.addEventListener('click', this._clickListener, true);\n body.addEventListener('auxclick', this._clickListener, true);\n body.addEventListener('contextmenu', this._clickListener, true);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: OverlayOutsideClickDispatcher, deps: [{ token: DOCUMENT }, { token: i1$1.Platform }, { token: i0.NgZone, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: OverlayOutsideClickDispatcher, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: OverlayOutsideClickDispatcher, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i1$1.Platform }, { type: i0.NgZone, decorators: [{\n type: Optional\n }] }]; } });\n\n/** Container inside which all overlays will render. */\nclass OverlayContainer {\n constructor(document, _platform) {\n this._platform = _platform;\n this._document = document;\n }\n ngOnDestroy() {\n this._containerElement?.remove();\n }\n /**\n * This method returns the overlay container element. It will lazily\n * create the element the first time it is called to facilitate using\n * the container in non-browser environments.\n * @returns the container element\n */\n getContainerElement() {\n if (!this._containerElement) {\n this._createContainer();\n }\n return this._containerElement;\n }\n /**\n * Create the overlay container element, which is simply a div\n * with the 'cdk-overlay-container' class on the document body.\n */\n _createContainer() {\n const containerClass = 'cdk-overlay-container';\n // TODO(crisbeto): remove the testing check once we have an overlay testing\n // module or Angular starts tearing down the testing `NgModule`. See:\n // https://github.com/angular/angular/issues/18831\n if (this._platform.isBrowser || _isTestEnvironment()) {\n const oppositePlatformContainers = this._document.querySelectorAll(`.${containerClass}[platform=\"server\"], ` + `.${containerClass}[platform=\"test\"]`);\n // Remove any old containers from the opposite platform.\n // This can happen when transitioning from the server to the client.\n for (let i = 0; i < oppositePlatformContainers.length; i++) {\n oppositePlatformContainers[i].remove();\n }\n }\n const container = this._document.createElement('div');\n container.classList.add(containerClass);\n // A long time ago we kept adding new overlay containers whenever a new app was instantiated,\n // but at some point we added logic which clears the duplicate ones in order to avoid leaks.\n // The new logic was a little too aggressive since it was breaking some legitimate use cases.\n // To mitigate the problem we made it so that only containers from a different platform are\n // cleared, but the side-effect was that people started depending on the overly-aggressive\n // logic to clean up their tests for them. Until we can introduce an overlay-specific testing\n // module which does the cleanup, we try to detect that we're in a test environment and we\n // always clear the container. See #17006.\n // TODO(crisbeto): remove the test environment check once we have an overlay testing module.\n if (_isTestEnvironment()) {\n container.setAttribute('platform', 'test');\n }\n else if (!this._platform.isBrowser) {\n container.setAttribute('platform', 'server');\n }\n this._document.body.appendChild(container);\n this._containerElement = container;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: OverlayContainer, deps: [{ token: DOCUMENT }, { token: i1$1.Platform }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: OverlayContainer, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: OverlayContainer, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i1$1.Platform }]; } });\n\n/**\n * Reference to an overlay that has been created with the Overlay service.\n * Used to manipulate or dispose of said overlay.\n */\nclass OverlayRef {\n constructor(_portalOutlet, _host, _pane, _config, _ngZone, _keyboardDispatcher, _document, _location, _outsideClickDispatcher, _animationsDisabled = false) {\n this._portalOutlet = _portalOutlet;\n this._host = _host;\n this._pane = _pane;\n this._config = _config;\n this._ngZone = _ngZone;\n this._keyboardDispatcher = _keyboardDispatcher;\n this._document = _document;\n this._location = _location;\n this._outsideClickDispatcher = _outsideClickDispatcher;\n this._animationsDisabled = _animationsDisabled;\n this._backdropElement = null;\n this._backdropClick = new Subject();\n this._attachments = new Subject();\n this._detachments = new Subject();\n this._locationChanges = Subscription.EMPTY;\n this._backdropClickHandler = (event) => this._backdropClick.next(event);\n this._backdropTransitionendHandler = (event) => {\n this._disposeBackdrop(event.target);\n };\n /** Stream of keydown events dispatched to this overlay. */\n this._keydownEvents = new Subject();\n /** Stream of mouse outside events dispatched to this overlay. */\n this._outsidePointerEvents = new Subject();\n if (_config.scrollStrategy) {\n this._scrollStrategy = _config.scrollStrategy;\n this._scrollStrategy.attach(this);\n }\n this._positionStrategy = _config.positionStrategy;\n }\n /** The overlay's HTML element */\n get overlayElement() {\n return this._pane;\n }\n /** The overlay's backdrop HTML element. */\n get backdropElement() {\n return this._backdropElement;\n }\n /**\n * Wrapper around the panel element. Can be used for advanced\n * positioning where a wrapper with specific styling is\n * required around the overlay pane.\n */\n get hostElement() {\n return this._host;\n }\n /**\n * Attaches content, given via a Portal, to the overlay.\n * If the overlay is configured to have a backdrop, it will be created.\n *\n * @param portal Portal instance to which to attach the overlay.\n * @returns The portal attachment result.\n */\n attach(portal) {\n // Insert the host into the DOM before attaching the portal, otherwise\n // the animations module will skip animations on repeat attachments.\n if (!this._host.parentElement && this._previousHostParent) {\n this._previousHostParent.appendChild(this._host);\n }\n const attachResult = this._portalOutlet.attach(portal);\n if (this._positionStrategy) {\n this._positionStrategy.attach(this);\n }\n this._updateStackingOrder();\n this._updateElementSize();\n this._updateElementDirection();\n if (this._scrollStrategy) {\n this._scrollStrategy.enable();\n }\n // Update the position once the zone is stable so that the overlay will be fully rendered\n // before attempting to position it, as the position may depend on the size of the rendered\n // content.\n this._ngZone.onStable.pipe(take(1)).subscribe(() => {\n // The overlay could've been detached before the zone has stabilized.\n if (this.hasAttached()) {\n this.updatePosition();\n }\n });\n // Enable pointer events for the overlay pane element.\n this._togglePointerEvents(true);\n if (this._config.hasBackdrop) {\n this._attachBackdrop();\n }\n if (this._config.panelClass) {\n this._toggleClasses(this._pane, this._config.panelClass, true);\n }\n // Only emit the `attachments` event once all other setup is done.\n this._attachments.next();\n // Track this overlay by the keyboard dispatcher\n this._keyboardDispatcher.add(this);\n if (this._config.disposeOnNavigation) {\n this._locationChanges = this._location.subscribe(() => this.dispose());\n }\n this._outsideClickDispatcher.add(this);\n // TODO(crisbeto): the null check is here, because the portal outlet returns `any`.\n // We should be guaranteed for the result to be `ComponentRef | EmbeddedViewRef`, but\n // `instanceof EmbeddedViewRef` doesn't appear to work at the moment.\n if (typeof attachResult?.onDestroy === 'function') {\n // In most cases we control the portal and we know when it is being detached so that\n // we can finish the disposal process. The exception is if the user passes in a custom\n // `ViewContainerRef` that isn't destroyed through the overlay API. Note that we use\n // `detach` here instead of `dispose`, because we don't know if the user intends to\n // reattach the overlay at a later point. It also has the advantage of waiting for animations.\n attachResult.onDestroy(() => {\n if (this.hasAttached()) {\n // We have to delay the `detach` call, because detaching immediately prevents\n // other destroy hooks from running. This is likely a framework bug similar to\n // https://github.com/angular/angular/issues/46119\n this._ngZone.runOutsideAngular(() => Promise.resolve().then(() => this.detach()));\n }\n });\n }\n return attachResult;\n }\n /**\n * Detaches an overlay from a portal.\n * @returns The portal detachment result.\n */\n detach() {\n if (!this.hasAttached()) {\n return;\n }\n this.detachBackdrop();\n // When the overlay is detached, the pane element should disable pointer events.\n // This is necessary because otherwise the pane element will cover the page and disable\n // pointer events therefore. Depends on the position strategy and the applied pane boundaries.\n this._togglePointerEvents(false);\n if (this._positionStrategy && this._positionStrategy.detach) {\n this._positionStrategy.detach();\n }\n if (this._scrollStrategy) {\n this._scrollStrategy.disable();\n }\n const detachmentResult = this._portalOutlet.detach();\n // Only emit after everything is detached.\n this._detachments.next();\n // Remove this overlay from keyboard dispatcher tracking.\n this._keyboardDispatcher.remove(this);\n // Keeping the host element in the DOM can cause scroll jank, because it still gets\n // rendered, even though it's transparent and unclickable which is why we remove it.\n this._detachContentWhenStable();\n this._locationChanges.unsubscribe();\n this._outsideClickDispatcher.remove(this);\n return detachmentResult;\n }\n /** Cleans up the overlay from the DOM. */\n dispose() {\n const isAttached = this.hasAttached();\n if (this._positionStrategy) {\n this._positionStrategy.dispose();\n }\n this._disposeScrollStrategy();\n this._disposeBackdrop(this._backdropElement);\n this._locationChanges.unsubscribe();\n this._keyboardDispatcher.remove(this);\n this._portalOutlet.dispose();\n this._attachments.complete();\n this._backdropClick.complete();\n this._keydownEvents.complete();\n this._outsidePointerEvents.complete();\n this._outsideClickDispatcher.remove(this);\n this._host?.remove();\n this._previousHostParent = this._pane = this._host = null;\n if (isAttached) {\n this._detachments.next();\n }\n this._detachments.complete();\n }\n /** Whether the overlay has attached content. */\n hasAttached() {\n return this._portalOutlet.hasAttached();\n }\n /** Gets an observable that emits when the backdrop has been clicked. */\n backdropClick() {\n return this._backdropClick;\n }\n /** Gets an observable that emits when the overlay has been attached. */\n attachments() {\n return this._attachments;\n }\n /** Gets an observable that emits when the overlay has been detached. */\n detachments() {\n return this._detachments;\n }\n /** Gets an observable of keydown events targeted to this overlay. */\n keydownEvents() {\n return this._keydownEvents;\n }\n /** Gets an observable of pointer events targeted outside this overlay. */\n outsidePointerEvents() {\n return this._outsidePointerEvents;\n }\n /** Gets the current overlay configuration, which is immutable. */\n getConfig() {\n return this._config;\n }\n /** Updates the position of the overlay based on the position strategy. */\n updatePosition() {\n if (this._positionStrategy) {\n this._positionStrategy.apply();\n }\n }\n /** Switches to a new position strategy and updates the overlay position. */\n updatePositionStrategy(strategy) {\n if (strategy === this._positionStrategy) {\n return;\n }\n if (this._positionStrategy) {\n this._positionStrategy.dispose();\n }\n this._positionStrategy = strategy;\n if (this.hasAttached()) {\n strategy.attach(this);\n this.updatePosition();\n }\n }\n /** Update the size properties of the overlay. */\n updateSize(sizeConfig) {\n this._config = { ...this._config, ...sizeConfig };\n this._updateElementSize();\n }\n /** Sets the LTR/RTL direction for the overlay. */\n setDirection(dir) {\n this._config = { ...this._config, direction: dir };\n this._updateElementDirection();\n }\n /** Add a CSS class or an array of classes to the overlay pane. */\n addPanelClass(classes) {\n if (this._pane) {\n this._toggleClasses(this._pane, classes, true);\n }\n }\n /** Remove a CSS class or an array of classes from the overlay pane. */\n removePanelClass(classes) {\n if (this._pane) {\n this._toggleClasses(this._pane, classes, false);\n }\n }\n /**\n * Returns the layout direction of the overlay panel.\n */\n getDirection() {\n const direction = this._config.direction;\n if (!direction) {\n return 'ltr';\n }\n return typeof direction === 'string' ? direction : direction.value;\n }\n /** Switches to a new scroll strategy. */\n updateScrollStrategy(strategy) {\n if (strategy === this._scrollStrategy) {\n return;\n }\n this._disposeScrollStrategy();\n this._scrollStrategy = strategy;\n if (this.hasAttached()) {\n strategy.attach(this);\n strategy.enable();\n }\n }\n /** Updates the text direction of the overlay panel. */\n _updateElementDirection() {\n this._host.setAttribute('dir', this.getDirection());\n }\n /** Updates the size of the overlay element based on the overlay config. */\n _updateElementSize() {\n if (!this._pane) {\n return;\n }\n const style = this._pane.style;\n style.width = coerceCssPixelValue(this._config.width);\n style.height = coerceCssPixelValue(this._config.height);\n style.minWidth = coerceCssPixelValue(this._config.minWidth);\n style.minHeight = coerceCssPixelValue(this._config.minHeight);\n style.maxWidth = coerceCssPixelValue(this._config.maxWidth);\n style.maxHeight = coerceCssPixelValue(this._config.maxHeight);\n }\n /** Toggles the pointer events for the overlay pane element. */\n _togglePointerEvents(enablePointer) {\n this._pane.style.pointerEvents = enablePointer ? '' : 'none';\n }\n /** Attaches a backdrop for this overlay. */\n _attachBackdrop() {\n const showingClass = 'cdk-overlay-backdrop-showing';\n this._backdropElement = this._document.createElement('div');\n this._backdropElement.classList.add('cdk-overlay-backdrop');\n if (this._animationsDisabled) {\n this._backdropElement.classList.add('cdk-overlay-backdrop-noop-animation');\n }\n if (this._config.backdropClass) {\n this._toggleClasses(this._backdropElement, this._config.backdropClass, true);\n }\n // Insert the backdrop before the pane in the DOM order,\n // in order to handle stacked overlays properly.\n this._host.parentElement.insertBefore(this._backdropElement, this._host);\n // Forward backdrop clicks such that the consumer of the overlay can perform whatever\n // action desired when such a click occurs (usually closing the overlay).\n this._backdropElement.addEventListener('click', this._backdropClickHandler);\n // Add class to fade-in the backdrop after one frame.\n if (!this._animationsDisabled && typeof requestAnimationFrame !== 'undefined') {\n this._ngZone.runOutsideAngular(() => {\n requestAnimationFrame(() => {\n if (this._backdropElement) {\n this._backdropElement.classList.add(showingClass);\n }\n });\n });\n }\n else {\n this._backdropElement.classList.add(showingClass);\n }\n }\n /**\n * Updates the stacking order of the element, moving it to the top if necessary.\n * This is required in cases where one overlay was detached, while another one,\n * that should be behind it, was destroyed. The next time both of them are opened,\n * the stacking will be wrong, because the detached element's pane will still be\n * in its original DOM position.\n */\n _updateStackingOrder() {\n if (this._host.nextSibling) {\n this._host.parentNode.appendChild(this._host);\n }\n }\n /** Detaches the backdrop (if any) associated with the overlay. */\n detachBackdrop() {\n const backdropToDetach = this._backdropElement;\n if (!backdropToDetach) {\n return;\n }\n if (this._animationsDisabled) {\n this._disposeBackdrop(backdropToDetach);\n return;\n }\n backdropToDetach.classList.remove('cdk-overlay-backdrop-showing');\n this._ngZone.runOutsideAngular(() => {\n backdropToDetach.addEventListener('transitionend', this._backdropTransitionendHandler);\n });\n // If the backdrop doesn't have a transition, the `transitionend` event won't fire.\n // In this case we make it unclickable and we try to remove it after a delay.\n backdropToDetach.style.pointerEvents = 'none';\n // Run this outside the Angular zone because there's nothing that Angular cares about.\n // If it were to run inside the Angular zone, every test that used Overlay would have to be\n // either async or fakeAsync.\n this._backdropTimeout = this._ngZone.runOutsideAngular(() => setTimeout(() => {\n this._disposeBackdrop(backdropToDetach);\n }, 500));\n }\n /** Toggles a single CSS class or an array of classes on an element. */\n _toggleClasses(element, cssClasses, isAdd) {\n const classes = coerceArray(cssClasses || []).filter(c => !!c);\n if (classes.length) {\n isAdd ? element.classList.add(...classes) : element.classList.remove(...classes);\n }\n }\n /** Detaches the overlay content next time the zone stabilizes. */\n _detachContentWhenStable() {\n // Normally we wouldn't have to explicitly run this outside the `NgZone`, however\n // if the consumer is using `zone-patch-rxjs`, the `Subscription.unsubscribe` call will\n // be patched to run inside the zone, which will throw us into an infinite loop.\n this._ngZone.runOutsideAngular(() => {\n // We can't remove the host here immediately, because the overlay pane's content\n // might still be animating. This stream helps us avoid interrupting the animation\n // by waiting for the pane to become empty.\n const subscription = this._ngZone.onStable\n .pipe(takeUntil(merge(this._attachments, this._detachments)))\n .subscribe(() => {\n // Needs a couple of checks for the pane and host, because\n // they may have been removed by the time the zone stabilizes.\n if (!this._pane || !this._host || this._pane.children.length === 0) {\n if (this._pane && this._config.panelClass) {\n this._toggleClasses(this._pane, this._config.panelClass, false);\n }\n if (this._host && this._host.parentElement) {\n this._previousHostParent = this._host.parentElement;\n this._host.remove();\n }\n subscription.unsubscribe();\n }\n });\n });\n }\n /** Disposes of a scroll strategy. */\n _disposeScrollStrategy() {\n const scrollStrategy = this._scrollStrategy;\n if (scrollStrategy) {\n scrollStrategy.disable();\n if (scrollStrategy.detach) {\n scrollStrategy.detach();\n }\n }\n }\n /** Removes a backdrop element from the DOM. */\n _disposeBackdrop(backdrop) {\n if (backdrop) {\n backdrop.removeEventListener('click', this._backdropClickHandler);\n backdrop.removeEventListener('transitionend', this._backdropTransitionendHandler);\n backdrop.remove();\n // It is possible that a new portal has been attached to this overlay since we started\n // removing the backdrop. If that is the case, only clear the backdrop reference if it\n // is still the same instance that we started to remove.\n if (this._backdropElement === backdrop) {\n this._backdropElement = null;\n }\n }\n if (this._backdropTimeout) {\n clearTimeout(this._backdropTimeout);\n this._backdropTimeout = undefined;\n }\n }\n}\n\n// TODO: refactor clipping detection into a separate thing (part of scrolling module)\n// TODO: doesn't handle both flexible width and height when it has to scroll along both axis.\n/** Class to be added to the overlay bounding box. */\nconst boundingBoxClass = 'cdk-overlay-connected-position-bounding-box';\n/** Regex used to split a string on its CSS units. */\nconst cssUnitPattern = /([A-Za-z%]+)$/;\n/**\n * A strategy for positioning overlays. Using this strategy, an overlay is given an\n * implicit position relative some origin element. The relative position is defined in terms of\n * a point on the origin element that is connected to a point on the overlay element. For example,\n * a basic dropdown is connecting the bottom-left corner of the origin to the top-left corner\n * of the overlay.\n */\nclass FlexibleConnectedPositionStrategy {\n /** Ordered list of preferred positions, from most to least desirable. */\n get positions() {\n return this._preferredPositions;\n }\n constructor(connectedTo, _viewportRuler, _document, _platform, _overlayContainer) {\n this._viewportRuler = _viewportRuler;\n this._document = _document;\n this._platform = _platform;\n this._overlayContainer = _overlayContainer;\n /** Last size used for the bounding box. Used to avoid resizing the overlay after open. */\n this._lastBoundingBoxSize = { width: 0, height: 0 };\n /** Whether the overlay was pushed in a previous positioning. */\n this._isPushed = false;\n /** Whether the overlay can be pushed on-screen on the initial open. */\n this._canPush = true;\n /** Whether the overlay can grow via flexible width/height after the initial open. */\n this._growAfterOpen = false;\n /** Whether the overlay's width and height can be constrained to fit within the viewport. */\n this._hasFlexibleDimensions = true;\n /** Whether the overlay position is locked. */\n this._positionLocked = false;\n /** Amount of space that must be maintained between the overlay and the edge of the viewport. */\n this._viewportMargin = 0;\n /** The Scrollable containers used to check scrollable view properties on position change. */\n this._scrollables = [];\n /** Ordered list of preferred positions, from most to least desirable. */\n this._preferredPositions = [];\n /** Subject that emits whenever the position changes. */\n this._positionChanges = new Subject();\n /** Subscription to viewport size changes. */\n this._resizeSubscription = Subscription.EMPTY;\n /** Default offset for the overlay along the x axis. */\n this._offsetX = 0;\n /** Default offset for the overlay along the y axis. */\n this._offsetY = 0;\n /** Keeps track of the CSS classes that the position strategy has applied on the overlay panel. */\n this._appliedPanelClasses = [];\n /** Observable sequence of position changes. */\n this.positionChanges = this._positionChanges;\n this.setOrigin(connectedTo);\n }\n /** Attaches this position strategy to an overlay. */\n attach(overlayRef) {\n if (this._overlayRef &&\n overlayRef !== this._overlayRef &&\n (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('This position strategy is already attached to an overlay');\n }\n this._validatePositions();\n overlayRef.hostElement.classList.add(boundingBoxClass);\n this._overlayRef = overlayRef;\n this._boundingBox = overlayRef.hostElement;\n this._pane = overlayRef.overlayElement;\n this._isDisposed = false;\n this._isInitialRender = true;\n this._lastPosition = null;\n this._resizeSubscription.unsubscribe();\n this._resizeSubscription = this._viewportRuler.change().subscribe(() => {\n // When the window is resized, we want to trigger the next reposition as if it\n // was an initial render, in order for the strategy to pick a new optimal position,\n // otherwise position locking will cause it to stay at the old one.\n this._isInitialRender = true;\n this.apply();\n });\n }\n /**\n * Updates the position of the overlay element, using whichever preferred position relative\n * to the origin best fits on-screen.\n *\n * The selection of a position goes as follows:\n * - If any positions fit completely within the viewport as-is,\n * choose the first position that does so.\n * - If flexible dimensions are enabled and at least one satisfies the given minimum width/height,\n * choose the position with the greatest available size modified by the positions' weight.\n * - If pushing is enabled, take the position that went off-screen the least and push it\n * on-screen.\n * - If none of the previous criteria were met, use the position that goes off-screen the least.\n * @docs-private\n */\n apply() {\n // We shouldn't do anything if the strategy was disposed or we're on the server.\n if (this._isDisposed || !this._platform.isBrowser) {\n return;\n }\n // If the position has been applied already (e.g. when the overlay was opened) and the\n // consumer opted into locking in the position, re-use the old position, in order to\n // prevent the overlay from jumping around.\n if (!this._isInitialRender && this._positionLocked && this._lastPosition) {\n this.reapplyLastPosition();\n return;\n }\n this._clearPanelClasses();\n this._resetOverlayElementStyles();\n this._resetBoundingBoxStyles();\n // We need the bounding rects for the origin, the overlay and the container to determine how to position\n // the overlay relative to the origin.\n // We use the viewport rect to determine whether a position would go off-screen.\n this._viewportRect = this._getNarrowedViewportRect();\n this._originRect = this._getOriginRect();\n this._overlayRect = this._pane.getBoundingClientRect();\n this._containerRect = this._overlayContainer.getContainerElement().getBoundingClientRect();\n const originRect = this._originRect;\n const overlayRect = this._overlayRect;\n const viewportRect = this._viewportRect;\n const containerRect = this._containerRect;\n // Positions where the overlay will fit with flexible dimensions.\n const flexibleFits = [];\n // Fallback if none of the preferred positions fit within the viewport.\n let fallback;\n // Go through each of the preferred positions looking for a good fit.\n // If a good fit is found, it will be applied immediately.\n for (let pos of this._preferredPositions) {\n // Get the exact (x, y) coordinate for the point-of-origin on the origin element.\n let originPoint = this._getOriginPoint(originRect, containerRect, pos);\n // From that point-of-origin, get the exact (x, y) coordinate for the top-left corner of the\n // overlay in this position. We use the top-left corner for calculations and later translate\n // this into an appropriate (top, left, bottom, right) style.\n let overlayPoint = this._getOverlayPoint(originPoint, overlayRect, pos);\n // Calculate how well the overlay would fit into the viewport with this point.\n let overlayFit = this._getOverlayFit(overlayPoint, overlayRect, viewportRect, pos);\n // If the overlay, without any further work, fits into the viewport, use this position.\n if (overlayFit.isCompletelyWithinViewport) {\n this._isPushed = false;\n this._applyPosition(pos, originPoint);\n return;\n }\n // If the overlay has flexible dimensions, we can use this position\n // so long as there's enough space for the minimum dimensions.\n if (this._canFitWithFlexibleDimensions(overlayFit, overlayPoint, viewportRect)) {\n // Save positions where the overlay will fit with flexible dimensions. We will use these\n // if none of the positions fit *without* flexible dimensions.\n flexibleFits.push({\n position: pos,\n origin: originPoint,\n overlayRect,\n boundingBoxRect: this._calculateBoundingBoxRect(originPoint, pos),\n });\n continue;\n }\n // If the current preferred position does not fit on the screen, remember the position\n // if it has more visible area on-screen than we've seen and move onto the next preferred\n // position.\n if (!fallback || fallback.overlayFit.visibleArea < overlayFit.visibleArea) {\n fallback = { overlayFit, overlayPoint, originPoint, position: pos, overlayRect };\n }\n }\n // If there are any positions where the overlay would fit with flexible dimensions, choose the\n // one that has the greatest area available modified by the position's weight\n if (flexibleFits.length) {\n let bestFit = null;\n let bestScore = -1;\n for (const fit of flexibleFits) {\n const score = fit.boundingBoxRect.width * fit.boundingBoxRect.height * (fit.position.weight || 1);\n if (score > bestScore) {\n bestScore = score;\n bestFit = fit;\n }\n }\n this._isPushed = false;\n this._applyPosition(bestFit.position, bestFit.origin);\n return;\n }\n // When none of the preferred positions fit within the viewport, take the position\n // that went off-screen the least and attempt to push it on-screen.\n if (this._canPush) {\n // TODO(jelbourn): after pushing, the opening \"direction\" of the overlay might not make sense.\n this._isPushed = true;\n this._applyPosition(fallback.position, fallback.originPoint);\n return;\n }\n // All options for getting the overlay within the viewport have been exhausted, so go with the\n // position that went off-screen the least.\n this._applyPosition(fallback.position, fallback.originPoint);\n }\n detach() {\n this._clearPanelClasses();\n this._lastPosition = null;\n this._previousPushAmount = null;\n this._resizeSubscription.unsubscribe();\n }\n /** Cleanup after the element gets destroyed. */\n dispose() {\n if (this._isDisposed) {\n return;\n }\n // We can't use `_resetBoundingBoxStyles` here, because it resets\n // some properties to zero, rather than removing them.\n if (this._boundingBox) {\n extendStyles(this._boundingBox.style, {\n top: '',\n left: '',\n right: '',\n bottom: '',\n height: '',\n width: '',\n alignItems: '',\n justifyContent: '',\n });\n }\n if (this._pane) {\n this._resetOverlayElementStyles();\n }\n if (this._overlayRef) {\n this._overlayRef.hostElement.classList.remove(boundingBoxClass);\n }\n this.detach();\n this._positionChanges.complete();\n this._overlayRef = this._boundingBox = null;\n this._isDisposed = true;\n }\n /**\n * This re-aligns the overlay element with the trigger in its last calculated position,\n * even if a position higher in the \"preferred positions\" list would now fit. This\n * allows one to re-align the panel without changing the orientation of the panel.\n */\n reapplyLastPosition() {\n if (this._isDisposed || !this._platform.isBrowser) {\n return;\n }\n const lastPosition = this._lastPosition;\n if (lastPosition) {\n this._originRect = this._getOriginRect();\n this._overlayRect = this._pane.getBoundingClientRect();\n this._viewportRect = this._getNarrowedViewportRect();\n this._containerRect = this._overlayContainer.getContainerElement().getBoundingClientRect();\n const originPoint = this._getOriginPoint(this._originRect, this._containerRect, lastPosition);\n this._applyPosition(lastPosition, originPoint);\n }\n else {\n this.apply();\n }\n }\n /**\n * Sets the list of Scrollable containers that host the origin element so that\n * on reposition we can evaluate if it or the overlay has been clipped or outside view. Every\n * Scrollable must be an ancestor element of the strategy's origin element.\n */\n withScrollableContainers(scrollables) {\n this._scrollables = scrollables;\n return this;\n }\n /**\n * Adds new preferred positions.\n * @param positions List of positions options for this overlay.\n */\n withPositions(positions) {\n this._preferredPositions = positions;\n // If the last calculated position object isn't part of the positions anymore, clear\n // it in order to avoid it being picked up if the consumer tries to re-apply.\n if (positions.indexOf(this._lastPosition) === -1) {\n this._lastPosition = null;\n }\n this._validatePositions();\n return this;\n }\n /**\n * Sets a minimum distance the overlay may be positioned to the edge of the viewport.\n * @param margin Required margin between the overlay and the viewport edge in pixels.\n */\n withViewportMargin(margin) {\n this._viewportMargin = margin;\n return this;\n }\n /** Sets whether the overlay's width and height can be constrained to fit within the viewport. */\n withFlexibleDimensions(flexibleDimensions = true) {\n this._hasFlexibleDimensions = flexibleDimensions;\n return this;\n }\n /** Sets whether the overlay can grow after the initial open via flexible width/height. */\n withGrowAfterOpen(growAfterOpen = true) {\n this._growAfterOpen = growAfterOpen;\n return this;\n }\n /** Sets whether the overlay can be pushed on-screen if none of the provided positions fit. */\n withPush(canPush = true) {\n this._canPush = canPush;\n return this;\n }\n /**\n * Sets whether the overlay's position should be locked in after it is positioned\n * initially. When an overlay is locked in, it won't attempt to reposition itself\n * when the position is re-applied (e.g. when the user scrolls away).\n * @param isLocked Whether the overlay should locked in.\n */\n withLockedPosition(isLocked = true) {\n this._positionLocked = isLocked;\n return this;\n }\n /**\n * Sets the origin, relative to which to position the overlay.\n * Using an element origin is useful for building components that need to be positioned\n * relatively to a trigger (e.g. dropdown menus or tooltips), whereas using a point can be\n * used for cases like contextual menus which open relative to the user's pointer.\n * @param origin Reference to the new origin.\n */\n setOrigin(origin) {\n this._origin = origin;\n return this;\n }\n /**\n * Sets the default offset for the overlay's connection point on the x-axis.\n * @param offset New offset in the X axis.\n */\n withDefaultOffsetX(offset) {\n this._offsetX = offset;\n return this;\n }\n /**\n * Sets the default offset for the overlay's connection point on the y-axis.\n * @param offset New offset in the Y axis.\n */\n withDefaultOffsetY(offset) {\n this._offsetY = offset;\n return this;\n }\n /**\n * Configures that the position strategy should set a `transform-origin` on some elements\n * inside the overlay, depending on the current position that is being applied. This is\n * useful for the cases where the origin of an animation can change depending on the\n * alignment of the overlay.\n * @param selector CSS selector that will be used to find the target\n * elements onto which to set the transform origin.\n */\n withTransformOriginOn(selector) {\n this._transformOriginSelector = selector;\n return this;\n }\n /**\n * Gets the (x, y) coordinate of a connection point on the origin based on a relative position.\n */\n _getOriginPoint(originRect, containerRect, pos) {\n let x;\n if (pos.originX == 'center') {\n // Note: when centering we should always use the `left`\n // offset, otherwise the position will be wrong in RTL.\n x = originRect.left + originRect.width / 2;\n }\n else {\n const startX = this._isRtl() ? originRect.right : originRect.left;\n const endX = this._isRtl() ? originRect.left : originRect.right;\n x = pos.originX == 'start' ? startX : endX;\n }\n // When zooming in Safari the container rectangle contains negative values for the position\n // and we need to re-add them to the calculated coordinates.\n if (containerRect.left < 0) {\n x -= containerRect.left;\n }\n let y;\n if (pos.originY == 'center') {\n y = originRect.top + originRect.height / 2;\n }\n else {\n y = pos.originY == 'top' ? originRect.top : originRect.bottom;\n }\n // Normally the containerRect's top value would be zero, however when the overlay is attached to an input\n // (e.g. in an autocomplete), mobile browsers will shift everything in order to put the input in the middle\n // of the screen and to make space for the virtual keyboard. We need to account for this offset,\n // otherwise our positioning will be thrown off.\n // Additionally, when zooming in Safari this fixes the vertical position.\n if (containerRect.top < 0) {\n y -= containerRect.top;\n }\n return { x, y };\n }\n /**\n * Gets the (x, y) coordinate of the top-left corner of the overlay given a given position and\n * origin point to which the overlay should be connected.\n */\n _getOverlayPoint(originPoint, overlayRect, pos) {\n // Calculate the (overlayStartX, overlayStartY), the start of the\n // potential overlay position relative to the origin point.\n let overlayStartX;\n if (pos.overlayX == 'center') {\n overlayStartX = -overlayRect.width / 2;\n }\n else if (pos.overlayX === 'start') {\n overlayStartX = this._isRtl() ? -overlayRect.width : 0;\n }\n else {\n overlayStartX = this._isRtl() ? 0 : -overlayRect.width;\n }\n let overlayStartY;\n if (pos.overlayY == 'center') {\n overlayStartY = -overlayRect.height / 2;\n }\n else {\n overlayStartY = pos.overlayY == 'top' ? 0 : -overlayRect.height;\n }\n // The (x, y) coordinates of the overlay.\n return {\n x: originPoint.x + overlayStartX,\n y: originPoint.y + overlayStartY,\n };\n }\n /** Gets how well an overlay at the given point will fit within the viewport. */\n _getOverlayFit(point, rawOverlayRect, viewport, position) {\n // Round the overlay rect when comparing against the\n // viewport, because the viewport is always rounded.\n const overlay = getRoundedBoundingClientRect(rawOverlayRect);\n let { x, y } = point;\n let offsetX = this._getOffset(position, 'x');\n let offsetY = this._getOffset(position, 'y');\n // Account for the offsets since they could push the overlay out of the viewport.\n if (offsetX) {\n x += offsetX;\n }\n if (offsetY) {\n y += offsetY;\n }\n // How much the overlay would overflow at this position, on each side.\n let leftOverflow = 0 - x;\n let rightOverflow = x + overlay.width - viewport.width;\n let topOverflow = 0 - y;\n let bottomOverflow = y + overlay.height - viewport.height;\n // Visible parts of the element on each axis.\n let visibleWidth = this._subtractOverflows(overlay.width, leftOverflow, rightOverflow);\n let visibleHeight = this._subtractOverflows(overlay.height, topOverflow, bottomOverflow);\n let visibleArea = visibleWidth * visibleHeight;\n return {\n visibleArea,\n isCompletelyWithinViewport: overlay.width * overlay.height === visibleArea,\n fitsInViewportVertically: visibleHeight === overlay.height,\n fitsInViewportHorizontally: visibleWidth == overlay.width,\n };\n }\n /**\n * Whether the overlay can fit within the viewport when it may resize either its width or height.\n * @param fit How well the overlay fits in the viewport at some position.\n * @param point The (x, y) coordinates of the overlay at some position.\n * @param viewport The geometry of the viewport.\n */\n _canFitWithFlexibleDimensions(fit, point, viewport) {\n if (this._hasFlexibleDimensions) {\n const availableHeight = viewport.bottom - point.y;\n const availableWidth = viewport.right - point.x;\n const minHeight = getPixelValue(this._overlayRef.getConfig().minHeight);\n const minWidth = getPixelValue(this._overlayRef.getConfig().minWidth);\n const verticalFit = fit.fitsInViewportVertically || (minHeight != null && minHeight <= availableHeight);\n const horizontalFit = fit.fitsInViewportHorizontally || (minWidth != null && minWidth <= availableWidth);\n return verticalFit && horizontalFit;\n }\n return false;\n }\n /**\n * Gets the point at which the overlay can be \"pushed\" on-screen. If the overlay is larger than\n * the viewport, the top-left corner will be pushed on-screen (with overflow occurring on the\n * right and bottom).\n *\n * @param start Starting point from which the overlay is pushed.\n * @param rawOverlayRect Dimensions of the overlay.\n * @param scrollPosition Current viewport scroll position.\n * @returns The point at which to position the overlay after pushing. This is effectively a new\n * originPoint.\n */\n _pushOverlayOnScreen(start, rawOverlayRect, scrollPosition) {\n // If the position is locked and we've pushed the overlay already, reuse the previous push\n // amount, rather than pushing it again. If we were to continue pushing, the element would\n // remain in the viewport, which goes against the expectations when position locking is enabled.\n if (this._previousPushAmount && this._positionLocked) {\n return {\n x: start.x + this._previousPushAmount.x,\n y: start.y + this._previousPushAmount.y,\n };\n }\n // Round the overlay rect when comparing against the\n // viewport, because the viewport is always rounded.\n const overlay = getRoundedBoundingClientRect(rawOverlayRect);\n const viewport = this._viewportRect;\n // Determine how much the overlay goes outside the viewport on each\n // side, which we'll use to decide which direction to push it.\n const overflowRight = Math.max(start.x + overlay.width - viewport.width, 0);\n const overflowBottom = Math.max(start.y + overlay.height - viewport.height, 0);\n const overflowTop = Math.max(viewport.top - scrollPosition.top - start.y, 0);\n const overflowLeft = Math.max(viewport.left - scrollPosition.left - start.x, 0);\n // Amount by which to push the overlay in each axis such that it remains on-screen.\n let pushX = 0;\n let pushY = 0;\n // If the overlay fits completely within the bounds of the viewport, push it from whichever\n // direction is goes off-screen. Otherwise, push the top-left corner such that its in the\n // viewport and allow for the trailing end of the overlay to go out of bounds.\n if (overlay.width <= viewport.width) {\n pushX = overflowLeft || -overflowRight;\n }\n else {\n pushX = start.x < this._viewportMargin ? viewport.left - scrollPosition.left - start.x : 0;\n }\n if (overlay.height <= viewport.height) {\n pushY = overflowTop || -overflowBottom;\n }\n else {\n pushY = start.y < this._viewportMargin ? viewport.top - scrollPosition.top - start.y : 0;\n }\n this._previousPushAmount = { x: pushX, y: pushY };\n return {\n x: start.x + pushX,\n y: start.y + pushY,\n };\n }\n /**\n * Applies a computed position to the overlay and emits a position change.\n * @param position The position preference\n * @param originPoint The point on the origin element where the overlay is connected.\n */\n _applyPosition(position, originPoint) {\n this._setTransformOrigin(position);\n this._setOverlayElementStyles(originPoint, position);\n this._setBoundingBoxStyles(originPoint, position);\n if (position.panelClass) {\n this._addPanelClasses(position.panelClass);\n }\n // Save the last connected position in case the position needs to be re-calculated.\n this._lastPosition = position;\n // Notify that the position has been changed along with its change properties.\n // We only emit if we've got any subscriptions, because the scroll visibility\n // calculations can be somewhat expensive.\n if (this._positionChanges.observers.length) {\n const scrollableViewProperties = this._getScrollVisibility();\n const changeEvent = new ConnectedOverlayPositionChange(position, scrollableViewProperties);\n this._positionChanges.next(changeEvent);\n }\n this._isInitialRender = false;\n }\n /** Sets the transform origin based on the configured selector and the passed-in position. */\n _setTransformOrigin(position) {\n if (!this._transformOriginSelector) {\n return;\n }\n const elements = this._boundingBox.querySelectorAll(this._transformOriginSelector);\n let xOrigin;\n let yOrigin = position.overlayY;\n if (position.overlayX === 'center') {\n xOrigin = 'center';\n }\n else if (this._isRtl()) {\n xOrigin = position.overlayX === 'start' ? 'right' : 'left';\n }\n else {\n xOrigin = position.overlayX === 'start' ? 'left' : 'right';\n }\n for (let i = 0; i < elements.length; i++) {\n elements[i].style.transformOrigin = `${xOrigin} ${yOrigin}`;\n }\n }\n /**\n * Gets the position and size of the overlay's sizing container.\n *\n * This method does no measuring and applies no styles so that we can cheaply compute the\n * bounds for all positions and choose the best fit based on these results.\n */\n _calculateBoundingBoxRect(origin, position) {\n const viewport = this._viewportRect;\n const isRtl = this._isRtl();\n let height, top, bottom;\n if (position.overlayY === 'top') {\n // Overlay is opening \"downward\" and thus is bound by the bottom viewport edge.\n top = origin.y;\n height = viewport.height - top + this._viewportMargin;\n }\n else if (position.overlayY === 'bottom') {\n // Overlay is opening \"upward\" and thus is bound by the top viewport edge. We need to add\n // the viewport margin back in, because the viewport rect is narrowed down to remove the\n // margin, whereas the `origin` position is calculated based on its `ClientRect`.\n bottom = viewport.height - origin.y + this._viewportMargin * 2;\n height = viewport.height - bottom + this._viewportMargin;\n }\n else {\n // If neither top nor bottom, it means that the overlay is vertically centered on the\n // origin point. Note that we want the position relative to the viewport, rather than\n // the page, which is why we don't use something like `viewport.bottom - origin.y` and\n // `origin.y - viewport.top`.\n const smallestDistanceToViewportEdge = Math.min(viewport.bottom - origin.y + viewport.top, origin.y);\n const previousHeight = this._lastBoundingBoxSize.height;\n height = smallestDistanceToViewportEdge * 2;\n top = origin.y - smallestDistanceToViewportEdge;\n if (height > previousHeight && !this._isInitialRender && !this._growAfterOpen) {\n top = origin.y - previousHeight / 2;\n }\n }\n // The overlay is opening 'right-ward' (the content flows to the right).\n const isBoundedByRightViewportEdge = (position.overlayX === 'start' && !isRtl) || (position.overlayX === 'end' && isRtl);\n // The overlay is opening 'left-ward' (the content flows to the left).\n const isBoundedByLeftViewportEdge = (position.overlayX === 'end' && !isRtl) || (position.overlayX === 'start' && isRtl);\n let width, left, right;\n if (isBoundedByLeftViewportEdge) {\n right = viewport.width - origin.x + this._viewportMargin;\n width = origin.x - this._viewportMargin;\n }\n else if (isBoundedByRightViewportEdge) {\n left = origin.x;\n width = viewport.right - origin.x;\n }\n else {\n // If neither start nor end, it means that the overlay is horizontally centered on the\n // origin point. Note that we want the position relative to the viewport, rather than\n // the page, which is why we don't use something like `viewport.right - origin.x` and\n // `origin.x - viewport.left`.\n const smallestDistanceToViewportEdge = Math.min(viewport.right - origin.x + viewport.left, origin.x);\n const previousWidth = this._lastBoundingBoxSize.width;\n width = smallestDistanceToViewportEdge * 2;\n left = origin.x - smallestDistanceToViewportEdge;\n if (width > previousWidth && !this._isInitialRender && !this._growAfterOpen) {\n left = origin.x - previousWidth / 2;\n }\n }\n return { top: top, left: left, bottom: bottom, right: right, width, height };\n }\n /**\n * Sets the position and size of the overlay's sizing wrapper. The wrapper is positioned on the\n * origin's connection point and stretches to the bounds of the viewport.\n *\n * @param origin The point on the origin element where the overlay is connected.\n * @param position The position preference\n */\n _setBoundingBoxStyles(origin, position) {\n const boundingBoxRect = this._calculateBoundingBoxRect(origin, position);\n // It's weird if the overlay *grows* while scrolling, so we take the last size into account\n // when applying a new size.\n if (!this._isInitialRender && !this._growAfterOpen) {\n boundingBoxRect.height = Math.min(boundingBoxRect.height, this._lastBoundingBoxSize.height);\n boundingBoxRect.width = Math.min(boundingBoxRect.width, this._lastBoundingBoxSize.width);\n }\n const styles = {};\n if (this._hasExactPosition()) {\n styles.top = styles.left = '0';\n styles.bottom = styles.right = styles.maxHeight = styles.maxWidth = '';\n styles.width = styles.height = '100%';\n }\n else {\n const maxHeight = this._overlayRef.getConfig().maxHeight;\n const maxWidth = this._overlayRef.getConfig().maxWidth;\n styles.height = coerceCssPixelValue(boundingBoxRect.height);\n styles.top = coerceCssPixelValue(boundingBoxRect.top);\n styles.bottom = coerceCssPixelValue(boundingBoxRect.bottom);\n styles.width = coerceCssPixelValue(boundingBoxRect.width);\n styles.left = coerceCssPixelValue(boundingBoxRect.left);\n styles.right = coerceCssPixelValue(boundingBoxRect.right);\n // Push the pane content towards the proper direction.\n if (position.overlayX === 'center') {\n styles.alignItems = 'center';\n }\n else {\n styles.alignItems = position.overlayX === 'end' ? 'flex-end' : 'flex-start';\n }\n if (position.overlayY === 'center') {\n styles.justifyContent = 'center';\n }\n else {\n styles.justifyContent = position.overlayY === 'bottom' ? 'flex-end' : 'flex-start';\n }\n if (maxHeight) {\n styles.maxHeight = coerceCssPixelValue(maxHeight);\n }\n if (maxWidth) {\n styles.maxWidth = coerceCssPixelValue(maxWidth);\n }\n }\n this._lastBoundingBoxSize = boundingBoxRect;\n extendStyles(this._boundingBox.style, styles);\n }\n /** Resets the styles for the bounding box so that a new positioning can be computed. */\n _resetBoundingBoxStyles() {\n extendStyles(this._boundingBox.style, {\n top: '0',\n left: '0',\n right: '0',\n bottom: '0',\n height: '',\n width: '',\n alignItems: '',\n justifyContent: '',\n });\n }\n /** Resets the styles for the overlay pane so that a new positioning can be computed. */\n _resetOverlayElementStyles() {\n extendStyles(this._pane.style, {\n top: '',\n left: '',\n bottom: '',\n right: '',\n position: '',\n transform: '',\n });\n }\n /** Sets positioning styles to the overlay element. */\n _setOverlayElementStyles(originPoint, position) {\n const styles = {};\n const hasExactPosition = this._hasExactPosition();\n const hasFlexibleDimensions = this._hasFlexibleDimensions;\n const config = this._overlayRef.getConfig();\n if (hasExactPosition) {\n const scrollPosition = this._viewportRuler.getViewportScrollPosition();\n extendStyles(styles, this._getExactOverlayY(position, originPoint, scrollPosition));\n extendStyles(styles, this._getExactOverlayX(position, originPoint, scrollPosition));\n }\n else {\n styles.position = 'static';\n }\n // Use a transform to apply the offsets. We do this because the `center` positions rely on\n // being in the normal flex flow and setting a `top` / `left` at all will completely throw\n // off the position. We also can't use margins, because they won't have an effect in some\n // cases where the element doesn't have anything to \"push off of\". Finally, this works\n // better both with flexible and non-flexible positioning.\n let transformString = '';\n let offsetX = this._getOffset(position, 'x');\n let offsetY = this._getOffset(position, 'y');\n if (offsetX) {\n transformString += `translateX(${offsetX}px) `;\n }\n if (offsetY) {\n transformString += `translateY(${offsetY}px)`;\n }\n styles.transform = transformString.trim();\n // If a maxWidth or maxHeight is specified on the overlay, we remove them. We do this because\n // we need these values to both be set to \"100%\" for the automatic flexible sizing to work.\n // The maxHeight and maxWidth are set on the boundingBox in order to enforce the constraint.\n // Note that this doesn't apply when we have an exact position, in which case we do want to\n // apply them because they'll be cleared from the bounding box.\n if (config.maxHeight) {\n if (hasExactPosition) {\n styles.maxHeight = coerceCssPixelValue(config.maxHeight);\n }\n else if (hasFlexibleDimensions) {\n styles.maxHeight = '';\n }\n }\n if (config.maxWidth) {\n if (hasExactPosition) {\n styles.maxWidth = coerceCssPixelValue(config.maxWidth);\n }\n else if (hasFlexibleDimensions) {\n styles.maxWidth = '';\n }\n }\n extendStyles(this._pane.style, styles);\n }\n /** Gets the exact top/bottom for the overlay when not using flexible sizing or when pushing. */\n _getExactOverlayY(position, originPoint, scrollPosition) {\n // Reset any existing styles. This is necessary in case the\n // preferred position has changed since the last `apply`.\n let styles = { top: '', bottom: '' };\n let overlayPoint = this._getOverlayPoint(originPoint, this._overlayRect, position);\n if (this._isPushed) {\n overlayPoint = this._pushOverlayOnScreen(overlayPoint, this._overlayRect, scrollPosition);\n }\n // We want to set either `top` or `bottom` based on whether the overlay wants to appear\n // above or below the origin and the direction in which the element will expand.\n if (position.overlayY === 'bottom') {\n // When using `bottom`, we adjust the y position such that it is the distance\n // from the bottom of the viewport rather than the top.\n const documentHeight = this._document.documentElement.clientHeight;\n styles.bottom = `${documentHeight - (overlayPoint.y + this._overlayRect.height)}px`;\n }\n else {\n styles.top = coerceCssPixelValue(overlayPoint.y);\n }\n return styles;\n }\n /** Gets the exact left/right for the overlay when not using flexible sizing or when pushing. */\n _getExactOverlayX(position, originPoint, scrollPosition) {\n // Reset any existing styles. This is necessary in case the preferred position has\n // changed since the last `apply`.\n let styles = { left: '', right: '' };\n let overlayPoint = this._getOverlayPoint(originPoint, this._overlayRect, position);\n if (this._isPushed) {\n overlayPoint = this._pushOverlayOnScreen(overlayPoint, this._overlayRect, scrollPosition);\n }\n // We want to set either `left` or `right` based on whether the overlay wants to appear \"before\"\n // or \"after\" the origin, which determines the direction in which the element will expand.\n // For the horizontal axis, the meaning of \"before\" and \"after\" change based on whether the\n // page is in RTL or LTR.\n let horizontalStyleProperty;\n if (this._isRtl()) {\n horizontalStyleProperty = position.overlayX === 'end' ? 'left' : 'right';\n }\n else {\n horizontalStyleProperty = position.overlayX === 'end' ? 'right' : 'left';\n }\n // When we're setting `right`, we adjust the x position such that it is the distance\n // from the right edge of the viewport rather than the left edge.\n if (horizontalStyleProperty === 'right') {\n const documentWidth = this._document.documentElement.clientWidth;\n styles.right = `${documentWidth - (overlayPoint.x + this._overlayRect.width)}px`;\n }\n else {\n styles.left = coerceCssPixelValue(overlayPoint.x);\n }\n return styles;\n }\n /**\n * Gets the view properties of the trigger and overlay, including whether they are clipped\n * or completely outside the view of any of the strategy's scrollables.\n */\n _getScrollVisibility() {\n // Note: needs fresh rects since the position could've changed.\n const originBounds = this._getOriginRect();\n const overlayBounds = this._pane.getBoundingClientRect();\n // TODO(jelbourn): instead of needing all of the client rects for these scrolling containers\n // every time, we should be able to use the scrollTop of the containers if the size of those\n // containers hasn't changed.\n const scrollContainerBounds = this._scrollables.map(scrollable => {\n return scrollable.getElementRef().nativeElement.getBoundingClientRect();\n });\n return {\n isOriginClipped: isElementClippedByScrolling(originBounds, scrollContainerBounds),\n isOriginOutsideView: isElementScrolledOutsideView(originBounds, scrollContainerBounds),\n isOverlayClipped: isElementClippedByScrolling(overlayBounds, scrollContainerBounds),\n isOverlayOutsideView: isElementScrolledOutsideView(overlayBounds, scrollContainerBounds),\n };\n }\n /** Subtracts the amount that an element is overflowing on an axis from its length. */\n _subtractOverflows(length, ...overflows) {\n return overflows.reduce((currentValue, currentOverflow) => {\n return currentValue - Math.max(currentOverflow, 0);\n }, length);\n }\n /** Narrows the given viewport rect by the current _viewportMargin. */\n _getNarrowedViewportRect() {\n // We recalculate the viewport rect here ourselves, rather than using the ViewportRuler,\n // because we want to use the `clientWidth` and `clientHeight` as the base. The difference\n // being that the client properties don't include the scrollbar, as opposed to `innerWidth`\n // and `innerHeight` that do. This is necessary, because the overlay container uses\n // 100% `width` and `height` which don't include the scrollbar either.\n const width = this._document.documentElement.clientWidth;\n const height = this._document.documentElement.clientHeight;\n const scrollPosition = this._viewportRuler.getViewportScrollPosition();\n return {\n top: scrollPosition.top + this._viewportMargin,\n left: scrollPosition.left + this._viewportMargin,\n right: scrollPosition.left + width - this._viewportMargin,\n bottom: scrollPosition.top + height - this._viewportMargin,\n width: width - 2 * this._viewportMargin,\n height: height - 2 * this._viewportMargin,\n };\n }\n /** Whether the we're dealing with an RTL context */\n _isRtl() {\n return this._overlayRef.getDirection() === 'rtl';\n }\n /** Determines whether the overlay uses exact or flexible positioning. */\n _hasExactPosition() {\n return !this._hasFlexibleDimensions || this._isPushed;\n }\n /** Retrieves the offset of a position along the x or y axis. */\n _getOffset(position, axis) {\n if (axis === 'x') {\n // We don't do something like `position['offset' + axis]` in\n // order to avoid breaking minifiers that rename properties.\n return position.offsetX == null ? this._offsetX : position.offsetX;\n }\n return position.offsetY == null ? this._offsetY : position.offsetY;\n }\n /** Validates that the current position match the expected values. */\n _validatePositions() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this._preferredPositions.length) {\n throw Error('FlexibleConnectedPositionStrategy: At least one position is required.');\n }\n // TODO(crisbeto): remove these once Angular's template type\n // checking is advanced enough to catch these cases.\n this._preferredPositions.forEach(pair => {\n validateHorizontalPosition('originX', pair.originX);\n validateVerticalPosition('originY', pair.originY);\n validateHorizontalPosition('overlayX', pair.overlayX);\n validateVerticalPosition('overlayY', pair.overlayY);\n });\n }\n }\n /** Adds a single CSS class or an array of classes on the overlay panel. */\n _addPanelClasses(cssClasses) {\n if (this._pane) {\n coerceArray(cssClasses).forEach(cssClass => {\n if (cssClass !== '' && this._appliedPanelClasses.indexOf(cssClass) === -1) {\n this._appliedPanelClasses.push(cssClass);\n this._pane.classList.add(cssClass);\n }\n });\n }\n }\n /** Clears the classes that the position strategy has applied from the overlay panel. */\n _clearPanelClasses() {\n if (this._pane) {\n this._appliedPanelClasses.forEach(cssClass => {\n this._pane.classList.remove(cssClass);\n });\n this._appliedPanelClasses = [];\n }\n }\n /** Returns the ClientRect of the current origin. */\n _getOriginRect() {\n const origin = this._origin;\n if (origin instanceof ElementRef) {\n return origin.nativeElement.getBoundingClientRect();\n }\n // Check for Element so SVG elements are also supported.\n if (origin instanceof Element) {\n return origin.getBoundingClientRect();\n }\n const width = origin.width || 0;\n const height = origin.height || 0;\n // If the origin is a point, return a client rect as if it was a 0x0 element at the point.\n return {\n top: origin.y,\n bottom: origin.y + height,\n left: origin.x,\n right: origin.x + width,\n height,\n width,\n };\n }\n}\n/** Shallow-extends a stylesheet object with another stylesheet object. */\nfunction extendStyles(destination, source) {\n for (let key in source) {\n if (source.hasOwnProperty(key)) {\n destination[key] = source[key];\n }\n }\n return destination;\n}\n/**\n * Extracts the pixel value as a number from a value, if it's a number\n * or a CSS pixel string (e.g. `1337px`). Otherwise returns null.\n */\nfunction getPixelValue(input) {\n if (typeof input !== 'number' && input != null) {\n const [value, units] = input.split(cssUnitPattern);\n return !units || units === 'px' ? parseFloat(value) : null;\n }\n return input || null;\n}\n/**\n * Gets a version of an element's bounding `ClientRect` where all the values are rounded down to\n * the nearest pixel. This allows us to account for the cases where there may be sub-pixel\n * deviations in the `ClientRect` returned by the browser (e.g. when zoomed in with a percentage\n * size, see #21350).\n */\nfunction getRoundedBoundingClientRect(clientRect) {\n return {\n top: Math.floor(clientRect.top),\n right: Math.floor(clientRect.right),\n bottom: Math.floor(clientRect.bottom),\n left: Math.floor(clientRect.left),\n width: Math.floor(clientRect.width),\n height: Math.floor(clientRect.height),\n };\n}\nconst STANDARD_DROPDOWN_BELOW_POSITIONS = [\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top' },\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom' },\n { originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top' },\n { originX: 'end', originY: 'top', overlayX: 'end', overlayY: 'bottom' },\n];\nconst STANDARD_DROPDOWN_ADJACENT_POSITIONS = [\n { originX: 'end', originY: 'top', overlayX: 'start', overlayY: 'top' },\n { originX: 'end', originY: 'bottom', overlayX: 'start', overlayY: 'bottom' },\n { originX: 'start', originY: 'top', overlayX: 'end', overlayY: 'top' },\n { originX: 'start', originY: 'bottom', overlayX: 'end', overlayY: 'bottom' },\n];\n\n/** Class to be added to the overlay pane wrapper. */\nconst wrapperClass = 'cdk-global-overlay-wrapper';\n/**\n * A strategy for positioning overlays. Using this strategy, an overlay is given an\n * explicit position relative to the browser's viewport. We use flexbox, instead of\n * transforms, in order to avoid issues with subpixel rendering which can cause the\n * element to become blurry.\n */\nclass GlobalPositionStrategy {\n constructor() {\n this._cssPosition = 'static';\n this._topOffset = '';\n this._bottomOffset = '';\n this._alignItems = '';\n this._xPosition = '';\n this._xOffset = '';\n this._width = '';\n this._height = '';\n this._isDisposed = false;\n }\n attach(overlayRef) {\n const config = overlayRef.getConfig();\n this._overlayRef = overlayRef;\n if (this._width && !config.width) {\n overlayRef.updateSize({ width: this._width });\n }\n if (this._height && !config.height) {\n overlayRef.updateSize({ height: this._height });\n }\n overlayRef.hostElement.classList.add(wrapperClass);\n this._isDisposed = false;\n }\n /**\n * Sets the top position of the overlay. Clears any previously set vertical position.\n * @param value New top offset.\n */\n top(value = '') {\n this._bottomOffset = '';\n this._topOffset = value;\n this._alignItems = 'flex-start';\n return this;\n }\n /**\n * Sets the left position of the overlay. Clears any previously set horizontal position.\n * @param value New left offset.\n */\n left(value = '') {\n this._xOffset = value;\n this._xPosition = 'left';\n return this;\n }\n /**\n * Sets the bottom position of the overlay. Clears any previously set vertical position.\n * @param value New bottom offset.\n */\n bottom(value = '') {\n this._topOffset = '';\n this._bottomOffset = value;\n this._alignItems = 'flex-end';\n return this;\n }\n /**\n * Sets the right position of the overlay. Clears any previously set horizontal position.\n * @param value New right offset.\n */\n right(value = '') {\n this._xOffset = value;\n this._xPosition = 'right';\n return this;\n }\n /**\n * Sets the overlay to the start of the viewport, depending on the overlay direction.\n * This will be to the left in LTR layouts and to the right in RTL.\n * @param offset Offset from the edge of the screen.\n */\n start(value = '') {\n this._xOffset = value;\n this._xPosition = 'start';\n return this;\n }\n /**\n * Sets the overlay to the end of the viewport, depending on the overlay direction.\n * This will be to the right in LTR layouts and to the left in RTL.\n * @param offset Offset from the edge of the screen.\n */\n end(value = '') {\n this._xOffset = value;\n this._xPosition = 'end';\n return this;\n }\n /**\n * Sets the overlay width and clears any previously set width.\n * @param value New width for the overlay\n * @deprecated Pass the `width` through the `OverlayConfig`.\n * @breaking-change 8.0.0\n */\n width(value = '') {\n if (this._overlayRef) {\n this._overlayRef.updateSize({ width: value });\n }\n else {\n this._width = value;\n }\n return this;\n }\n /**\n * Sets the overlay height and clears any previously set height.\n * @param value New height for the overlay\n * @deprecated Pass the `height` through the `OverlayConfig`.\n * @breaking-change 8.0.0\n */\n height(value = '') {\n if (this._overlayRef) {\n this._overlayRef.updateSize({ height: value });\n }\n else {\n this._height = value;\n }\n return this;\n }\n /**\n * Centers the overlay horizontally with an optional offset.\n * Clears any previously set horizontal position.\n *\n * @param offset Overlay offset from the horizontal center.\n */\n centerHorizontally(offset = '') {\n this.left(offset);\n this._xPosition = 'center';\n return this;\n }\n /**\n * Centers the overlay vertically with an optional offset.\n * Clears any previously set vertical position.\n *\n * @param offset Overlay offset from the vertical center.\n */\n centerVertically(offset = '') {\n this.top(offset);\n this._alignItems = 'center';\n return this;\n }\n /**\n * Apply the position to the element.\n * @docs-private\n */\n apply() {\n // Since the overlay ref applies the strategy asynchronously, it could\n // have been disposed before it ends up being applied. If that is the\n // case, we shouldn't do anything.\n if (!this._overlayRef || !this._overlayRef.hasAttached()) {\n return;\n }\n const styles = this._overlayRef.overlayElement.style;\n const parentStyles = this._overlayRef.hostElement.style;\n const config = this._overlayRef.getConfig();\n const { width, height, maxWidth, maxHeight } = config;\n const shouldBeFlushHorizontally = (width === '100%' || width === '100vw') &&\n (!maxWidth || maxWidth === '100%' || maxWidth === '100vw');\n const shouldBeFlushVertically = (height === '100%' || height === '100vh') &&\n (!maxHeight || maxHeight === '100%' || maxHeight === '100vh');\n const xPosition = this._xPosition;\n const xOffset = this._xOffset;\n const isRtl = this._overlayRef.getConfig().direction === 'rtl';\n let marginLeft = '';\n let marginRight = '';\n let justifyContent = '';\n if (shouldBeFlushHorizontally) {\n justifyContent = 'flex-start';\n }\n else if (xPosition === 'center') {\n justifyContent = 'center';\n if (isRtl) {\n marginRight = xOffset;\n }\n else {\n marginLeft = xOffset;\n }\n }\n else if (isRtl) {\n if (xPosition === 'left' || xPosition === 'end') {\n justifyContent = 'flex-end';\n marginLeft = xOffset;\n }\n else if (xPosition === 'right' || xPosition === 'start') {\n justifyContent = 'flex-start';\n marginRight = xOffset;\n }\n }\n else if (xPosition === 'left' || xPosition === 'start') {\n justifyContent = 'flex-start';\n marginLeft = xOffset;\n }\n else if (xPosition === 'right' || xPosition === 'end') {\n justifyContent = 'flex-end';\n marginRight = xOffset;\n }\n styles.position = this._cssPosition;\n styles.marginLeft = shouldBeFlushHorizontally ? '0' : marginLeft;\n styles.marginTop = shouldBeFlushVertically ? '0' : this._topOffset;\n styles.marginBottom = this._bottomOffset;\n styles.marginRight = shouldBeFlushHorizontally ? '0' : marginRight;\n parentStyles.justifyContent = justifyContent;\n parentStyles.alignItems = shouldBeFlushVertically ? 'flex-start' : this._alignItems;\n }\n /**\n * Cleans up the DOM changes from the position strategy.\n * @docs-private\n */\n dispose() {\n if (this._isDisposed || !this._overlayRef) {\n return;\n }\n const styles = this._overlayRef.overlayElement.style;\n const parent = this._overlayRef.hostElement;\n const parentStyles = parent.style;\n parent.classList.remove(wrapperClass);\n parentStyles.justifyContent =\n parentStyles.alignItems =\n styles.marginTop =\n styles.marginBottom =\n styles.marginLeft =\n styles.marginRight =\n styles.position =\n '';\n this._overlayRef = null;\n this._isDisposed = true;\n }\n}\n\n/** Builder for overlay position strategy. */\nclass OverlayPositionBuilder {\n constructor(_viewportRuler, _document, _platform, _overlayContainer) {\n this._viewportRuler = _viewportRuler;\n this._document = _document;\n this._platform = _platform;\n this._overlayContainer = _overlayContainer;\n }\n /**\n * Creates a global position strategy.\n */\n global() {\n return new GlobalPositionStrategy();\n }\n /**\n * Creates a flexible position strategy.\n * @param origin Origin relative to which to position the overlay.\n */\n flexibleConnectedTo(origin) {\n return new FlexibleConnectedPositionStrategy(origin, this._viewportRuler, this._document, this._platform, this._overlayContainer);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: OverlayPositionBuilder, deps: [{ token: i1.ViewportRuler }, { token: DOCUMENT }, { token: i1$1.Platform }, { token: OverlayContainer }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: OverlayPositionBuilder, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: OverlayPositionBuilder, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: i1.ViewportRuler }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i1$1.Platform }, { type: OverlayContainer }]; } });\n\n/** Next overlay unique ID. */\nlet nextUniqueId = 0;\n// Note that Overlay is *not* scoped to the app root because of the ComponentFactoryResolver\n// which needs to be different depending on where OverlayModule is imported.\n/**\n * Service to create Overlays. Overlays are dynamically added pieces of floating UI, meant to be\n * used as a low-level building block for other components. Dialogs, tooltips, menus,\n * selects, etc. can all be built using overlays. The service should primarily be used by authors\n * of re-usable components rather than developers building end-user applications.\n *\n * An overlay *is* a PortalOutlet, so any kind of Portal can be loaded into one.\n */\nclass Overlay {\n constructor(\n /** Scrolling strategies that can be used when creating an overlay. */\n scrollStrategies, _overlayContainer, _componentFactoryResolver, _positionBuilder, _keyboardDispatcher, _injector, _ngZone, _document, _directionality, _location, _outsideClickDispatcher, _animationsModuleType) {\n this.scrollStrategies = scrollStrategies;\n this._overlayContainer = _overlayContainer;\n this._componentFactoryResolver = _componentFactoryResolver;\n this._positionBuilder = _positionBuilder;\n this._keyboardDispatcher = _keyboardDispatcher;\n this._injector = _injector;\n this._ngZone = _ngZone;\n this._document = _document;\n this._directionality = _directionality;\n this._location = _location;\n this._outsideClickDispatcher = _outsideClickDispatcher;\n this._animationsModuleType = _animationsModuleType;\n }\n /**\n * Creates an overlay.\n * @param config Configuration applied to the overlay.\n * @returns Reference to the created overlay.\n */\n create(config) {\n const host = this._createHostElement();\n const pane = this._createPaneElement(host);\n const portalOutlet = this._createPortalOutlet(pane);\n const overlayConfig = new OverlayConfig(config);\n overlayConfig.direction = overlayConfig.direction || this._directionality.value;\n return new OverlayRef(portalOutlet, host, pane, overlayConfig, this._ngZone, this._keyboardDispatcher, this._document, this._location, this._outsideClickDispatcher, this._animationsModuleType === 'NoopAnimations');\n }\n /**\n * Gets a position builder that can be used, via fluent API,\n * to construct and configure a position strategy.\n * @returns An overlay position builder.\n */\n position() {\n return this._positionBuilder;\n }\n /**\n * Creates the DOM element for an overlay and appends it to the overlay container.\n * @returns Newly-created pane element\n */\n _createPaneElement(host) {\n const pane = this._document.createElement('div');\n pane.id = `cdk-overlay-${nextUniqueId++}`;\n pane.classList.add('cdk-overlay-pane');\n host.appendChild(pane);\n return pane;\n }\n /**\n * Creates the host element that wraps around an overlay\n * and can be used for advanced positioning.\n * @returns Newly-create host element.\n */\n _createHostElement() {\n const host = this._document.createElement('div');\n this._overlayContainer.getContainerElement().appendChild(host);\n return host;\n }\n /**\n * Create a DomPortalOutlet into which the overlay content can be loaded.\n * @param pane The DOM element to turn into a portal outlet.\n * @returns A portal outlet for the given DOM element.\n */\n _createPortalOutlet(pane) {\n // We have to resolve the ApplicationRef later in order to allow people\n // to use overlay-based providers during app initialization.\n if (!this._appRef) {\n this._appRef = this._injector.get(ApplicationRef);\n }\n return new DomPortalOutlet(pane, this._componentFactoryResolver, this._appRef, this._injector, this._document);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: Overlay, deps: [{ token: ScrollStrategyOptions }, { token: OverlayContainer }, { token: i0.ComponentFactoryResolver }, { token: OverlayPositionBuilder }, { token: OverlayKeyboardDispatcher }, { token: i0.Injector }, { token: i0.NgZone }, { token: DOCUMENT }, { token: i5.Directionality }, { token: i6.Location }, { token: OverlayOutsideClickDispatcher }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: Overlay, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: Overlay, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: ScrollStrategyOptions }, { type: OverlayContainer }, { type: i0.ComponentFactoryResolver }, { type: OverlayPositionBuilder }, { type: OverlayKeyboardDispatcher }, { type: i0.Injector }, { type: i0.NgZone }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i5.Directionality }, { type: i6.Location }, { type: OverlayOutsideClickDispatcher }, { type: undefined, decorators: [{\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }, {\n type: Optional\n }] }]; } });\n\n/** Default set of positions for the overlay. Follows the behavior of a dropdown. */\nconst defaultPositionList = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n];\n/** Injection token that determines the scroll handling while the connected overlay is open. */\nconst CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY = new InjectionToken('cdk-connected-overlay-scroll-strategy');\n/**\n * Directive applied to an element to make it usable as an origin for an Overlay using a\n * ConnectedPositionStrategy.\n */\nclass CdkOverlayOrigin {\n constructor(\n /** Reference to the element on which the directive is applied. */\n elementRef) {\n this.elementRef = elementRef;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkOverlayOrigin, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.0\", type: CdkOverlayOrigin, isStandalone: true, selector: \"[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]\", exportAs: [\"cdkOverlayOrigin\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkOverlayOrigin, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]',\n exportAs: 'cdkOverlayOrigin',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });\n/**\n * Directive to facilitate declarative creation of an\n * Overlay using a FlexibleConnectedPositionStrategy.\n */\nclass CdkConnectedOverlay {\n /** The offset in pixels for the overlay connection point on the x-axis */\n get offsetX() {\n return this._offsetX;\n }\n set offsetX(offsetX) {\n this._offsetX = offsetX;\n if (this._position) {\n this._updatePositionStrategy(this._position);\n }\n }\n /** The offset in pixels for the overlay connection point on the y-axis */\n get offsetY() {\n return this._offsetY;\n }\n set offsetY(offsetY) {\n this._offsetY = offsetY;\n if (this._position) {\n this._updatePositionStrategy(this._position);\n }\n }\n /** Whether or not the overlay should attach a backdrop. */\n get hasBackdrop() {\n return this._hasBackdrop;\n }\n set hasBackdrop(value) {\n this._hasBackdrop = coerceBooleanProperty(value);\n }\n /** Whether or not the overlay should be locked when scrolling. */\n get lockPosition() {\n return this._lockPosition;\n }\n set lockPosition(value) {\n this._lockPosition = coerceBooleanProperty(value);\n }\n /** Whether the overlay's width and height can be constrained to fit within the viewport. */\n get flexibleDimensions() {\n return this._flexibleDimensions;\n }\n set flexibleDimensions(value) {\n this._flexibleDimensions = coerceBooleanProperty(value);\n }\n /** Whether the overlay can grow after the initial open when flexible positioning is turned on. */\n get growAfterOpen() {\n return this._growAfterOpen;\n }\n set growAfterOpen(value) {\n this._growAfterOpen = coerceBooleanProperty(value);\n }\n /** Whether the overlay can be pushed on-screen if none of the provided positions fit. */\n get push() {\n return this._push;\n }\n set push(value) {\n this._push = coerceBooleanProperty(value);\n }\n // TODO(jelbourn): inputs for size, scroll behavior, animation, etc.\n constructor(_overlay, templateRef, viewContainerRef, scrollStrategyFactory, _dir) {\n this._overlay = _overlay;\n this._dir = _dir;\n this._hasBackdrop = false;\n this._lockPosition = false;\n this._growAfterOpen = false;\n this._flexibleDimensions = false;\n this._push = false;\n this._backdropSubscription = Subscription.EMPTY;\n this._attachSubscription = Subscription.EMPTY;\n this._detachSubscription = Subscription.EMPTY;\n this._positionSubscription = Subscription.EMPTY;\n /** Margin between the overlay and the viewport edges. */\n this.viewportMargin = 0;\n /** Whether the overlay is open. */\n this.open = false;\n /** Whether the overlay can be closed by user interaction. */\n this.disableClose = false;\n /** Event emitted when the backdrop is clicked. */\n this.backdropClick = new EventEmitter();\n /** Event emitted when the position has changed. */\n this.positionChange = new EventEmitter();\n /** Event emitted when the overlay has been attached. */\n this.attach = new EventEmitter();\n /** Event emitted when the overlay has been detached. */\n this.detach = new EventEmitter();\n /** Emits when there are keyboard events that are targeted at the overlay. */\n this.overlayKeydown = new EventEmitter();\n /** Emits when there are mouse outside click events that are targeted at the overlay. */\n this.overlayOutsideClick = new EventEmitter();\n this._templatePortal = new TemplatePortal(templateRef, viewContainerRef);\n this._scrollStrategyFactory = scrollStrategyFactory;\n this.scrollStrategy = this._scrollStrategyFactory();\n }\n /** The associated overlay reference. */\n get overlayRef() {\n return this._overlayRef;\n }\n /** The element's layout direction. */\n get dir() {\n return this._dir ? this._dir.value : 'ltr';\n }\n ngOnDestroy() {\n this._attachSubscription.unsubscribe();\n this._detachSubscription.unsubscribe();\n this._backdropSubscription.unsubscribe();\n this._positionSubscription.unsubscribe();\n if (this._overlayRef) {\n this._overlayRef.dispose();\n }\n }\n ngOnChanges(changes) {\n if (this._position) {\n this._updatePositionStrategy(this._position);\n this._overlayRef.updateSize({\n width: this.width,\n minWidth: this.minWidth,\n height: this.height,\n minHeight: this.minHeight,\n });\n if (changes['origin'] && this.open) {\n this._position.apply();\n }\n }\n if (changes['open']) {\n this.open ? this._attachOverlay() : this._detachOverlay();\n }\n }\n /** Creates an overlay */\n _createOverlay() {\n if (!this.positions || !this.positions.length) {\n this.positions = defaultPositionList;\n }\n const overlayRef = (this._overlayRef = this._overlay.create(this._buildConfig()));\n this._attachSubscription = overlayRef.attachments().subscribe(() => this.attach.emit());\n this._detachSubscription = overlayRef.detachments().subscribe(() => this.detach.emit());\n overlayRef.keydownEvents().subscribe((event) => {\n this.overlayKeydown.next(event);\n if (event.keyCode === ESCAPE && !this.disableClose && !hasModifierKey(event)) {\n event.preventDefault();\n this._detachOverlay();\n }\n });\n this._overlayRef.outsidePointerEvents().subscribe((event) => {\n this.overlayOutsideClick.next(event);\n });\n }\n /** Builds the overlay config based on the directive's inputs */\n _buildConfig() {\n const positionStrategy = (this._position =\n this.positionStrategy || this._createPositionStrategy());\n const overlayConfig = new OverlayConfig({\n direction: this._dir,\n positionStrategy,\n scrollStrategy: this.scrollStrategy,\n hasBackdrop: this.hasBackdrop,\n });\n if (this.width || this.width === 0) {\n overlayConfig.width = this.width;\n }\n if (this.height || this.height === 0) {\n overlayConfig.height = this.height;\n }\n if (this.minWidth || this.minWidth === 0) {\n overlayConfig.minWidth = this.minWidth;\n }\n if (this.minHeight || this.minHeight === 0) {\n overlayConfig.minHeight = this.minHeight;\n }\n if (this.backdropClass) {\n overlayConfig.backdropClass = this.backdropClass;\n }\n if (this.panelClass) {\n overlayConfig.panelClass = this.panelClass;\n }\n return overlayConfig;\n }\n /** Updates the state of a position strategy, based on the values of the directive inputs. */\n _updatePositionStrategy(positionStrategy) {\n const positions = this.positions.map(currentPosition => ({\n originX: currentPosition.originX,\n originY: currentPosition.originY,\n overlayX: currentPosition.overlayX,\n overlayY: currentPosition.overlayY,\n offsetX: currentPosition.offsetX || this.offsetX,\n offsetY: currentPosition.offsetY || this.offsetY,\n panelClass: currentPosition.panelClass || undefined,\n }));\n return positionStrategy\n .setOrigin(this._getFlexibleConnectedPositionStrategyOrigin())\n .withPositions(positions)\n .withFlexibleDimensions(this.flexibleDimensions)\n .withPush(this.push)\n .withGrowAfterOpen(this.growAfterOpen)\n .withViewportMargin(this.viewportMargin)\n .withLockedPosition(this.lockPosition)\n .withTransformOriginOn(this.transformOriginSelector);\n }\n /** Returns the position strategy of the overlay to be set on the overlay config */\n _createPositionStrategy() {\n const strategy = this._overlay\n .position()\n .flexibleConnectedTo(this._getFlexibleConnectedPositionStrategyOrigin());\n this._updatePositionStrategy(strategy);\n return strategy;\n }\n _getFlexibleConnectedPositionStrategyOrigin() {\n if (this.origin instanceof CdkOverlayOrigin) {\n return this.origin.elementRef;\n }\n else {\n return this.origin;\n }\n }\n /** Attaches the overlay and subscribes to backdrop clicks if backdrop exists */\n _attachOverlay() {\n if (!this._overlayRef) {\n this._createOverlay();\n }\n else {\n // Update the overlay size, in case the directive's inputs have changed\n this._overlayRef.getConfig().hasBackdrop = this.hasBackdrop;\n }\n if (!this._overlayRef.hasAttached()) {\n this._overlayRef.attach(this._templatePortal);\n }\n if (this.hasBackdrop) {\n this._backdropSubscription = this._overlayRef.backdropClick().subscribe(event => {\n this.backdropClick.emit(event);\n });\n }\n else {\n this._backdropSubscription.unsubscribe();\n }\n this._positionSubscription.unsubscribe();\n // Only subscribe to `positionChanges` if requested, because putting\n // together all the information for it can be expensive.\n if (this.positionChange.observers.length > 0) {\n this._positionSubscription = this._position.positionChanges\n .pipe(takeWhile(() => this.positionChange.observers.length > 0))\n .subscribe(position => {\n this.positionChange.emit(position);\n if (this.positionChange.observers.length === 0) {\n this._positionSubscription.unsubscribe();\n }\n });\n }\n }\n /** Detaches the overlay and unsubscribes to backdrop clicks if backdrop exists */\n _detachOverlay() {\n if (this._overlayRef) {\n this._overlayRef.detach();\n }\n this._backdropSubscription.unsubscribe();\n this._positionSubscription.unsubscribe();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkConnectedOverlay, deps: [{ token: Overlay }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY }, { token: i5.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.0\", type: CdkConnectedOverlay, isStandalone: true, selector: \"[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]\", inputs: { origin: [\"cdkConnectedOverlayOrigin\", \"origin\"], positions: [\"cdkConnectedOverlayPositions\", \"positions\"], positionStrategy: [\"cdkConnectedOverlayPositionStrategy\", \"positionStrategy\"], offsetX: [\"cdkConnectedOverlayOffsetX\", \"offsetX\"], offsetY: [\"cdkConnectedOverlayOffsetY\", \"offsetY\"], width: [\"cdkConnectedOverlayWidth\", \"width\"], height: [\"cdkConnectedOverlayHeight\", \"height\"], minWidth: [\"cdkConnectedOverlayMinWidth\", \"minWidth\"], minHeight: [\"cdkConnectedOverlayMinHeight\", \"minHeight\"], backdropClass: [\"cdkConnectedOverlayBackdropClass\", \"backdropClass\"], panelClass: [\"cdkConnectedOverlayPanelClass\", \"panelClass\"], viewportMargin: [\"cdkConnectedOverlayViewportMargin\", \"viewportMargin\"], scrollStrategy: [\"cdkConnectedOverlayScrollStrategy\", \"scrollStrategy\"], open: [\"cdkConnectedOverlayOpen\", \"open\"], disableClose: [\"cdkConnectedOverlayDisableClose\", \"disableClose\"], transformOriginSelector: [\"cdkConnectedOverlayTransformOriginOn\", \"transformOriginSelector\"], hasBackdrop: [\"cdkConnectedOverlayHasBackdrop\", \"hasBackdrop\"], lockPosition: [\"cdkConnectedOverlayLockPosition\", \"lockPosition\"], flexibleDimensions: [\"cdkConnectedOverlayFlexibleDimensions\", \"flexibleDimensions\"], growAfterOpen: [\"cdkConnectedOverlayGrowAfterOpen\", \"growAfterOpen\"], push: [\"cdkConnectedOverlayPush\", \"push\"] }, outputs: { backdropClick: \"backdropClick\", positionChange: \"positionChange\", attach: \"attach\", detach: \"detach\", overlayKeydown: \"overlayKeydown\", overlayOutsideClick: \"overlayOutsideClick\" }, exportAs: [\"cdkConnectedOverlay\"], usesOnChanges: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkConnectedOverlay, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]',\n exportAs: 'cdkConnectedOverlay',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: Overlay }, { type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{\n type: Inject,\n args: [CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY]\n }] }, { type: i5.Directionality, decorators: [{\n type: Optional\n }] }]; }, propDecorators: { origin: [{\n type: Input,\n args: ['cdkConnectedOverlayOrigin']\n }], positions: [{\n type: Input,\n args: ['cdkConnectedOverlayPositions']\n }], positionStrategy: [{\n type: Input,\n args: ['cdkConnectedOverlayPositionStrategy']\n }], offsetX: [{\n type: Input,\n args: ['cdkConnectedOverlayOffsetX']\n }], offsetY: [{\n type: Input,\n args: ['cdkConnectedOverlayOffsetY']\n }], width: [{\n type: Input,\n args: ['cdkConnectedOverlayWidth']\n }], height: [{\n type: Input,\n args: ['cdkConnectedOverlayHeight']\n }], minWidth: [{\n type: Input,\n args: ['cdkConnectedOverlayMinWidth']\n }], minHeight: [{\n type: Input,\n args: ['cdkConnectedOverlayMinHeight']\n }], backdropClass: [{\n type: Input,\n args: ['cdkConnectedOverlayBackdropClass']\n }], panelClass: [{\n type: Input,\n args: ['cdkConnectedOverlayPanelClass']\n }], viewportMargin: [{\n type: Input,\n args: ['cdkConnectedOverlayViewportMargin']\n }], scrollStrategy: [{\n type: Input,\n args: ['cdkConnectedOverlayScrollStrategy']\n }], open: [{\n type: Input,\n args: ['cdkConnectedOverlayOpen']\n }], disableClose: [{\n type: Input,\n args: ['cdkConnectedOverlayDisableClose']\n }], transformOriginSelector: [{\n type: Input,\n args: ['cdkConnectedOverlayTransformOriginOn']\n }], hasBackdrop: [{\n type: Input,\n args: ['cdkConnectedOverlayHasBackdrop']\n }], lockPosition: [{\n type: Input,\n args: ['cdkConnectedOverlayLockPosition']\n }], flexibleDimensions: [{\n type: Input,\n args: ['cdkConnectedOverlayFlexibleDimensions']\n }], growAfterOpen: [{\n type: Input,\n args: ['cdkConnectedOverlayGrowAfterOpen']\n }], push: [{\n type: Input,\n args: ['cdkConnectedOverlayPush']\n }], backdropClick: [{\n type: Output\n }], positionChange: [{\n type: Output\n }], attach: [{\n type: Output\n }], detach: [{\n type: Output\n }], overlayKeydown: [{\n type: Output\n }], overlayOutsideClick: [{\n type: Output\n }] } });\n/** @docs-private */\nfunction CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay) {\n return () => overlay.scrollStrategies.reposition();\n}\n/** @docs-private */\nconst CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER = {\n provide: CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY,\n};\n\nclass OverlayModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: OverlayModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"16.0.0\", ngImport: i0, type: OverlayModule, imports: [BidiModule, PortalModule, ScrollingModule, CdkConnectedOverlay, CdkOverlayOrigin], exports: [CdkConnectedOverlay, CdkOverlayOrigin, ScrollingModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: OverlayModule, providers: [Overlay, CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER], imports: [BidiModule, PortalModule, ScrollingModule, ScrollingModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: OverlayModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [BidiModule, PortalModule, ScrollingModule, CdkConnectedOverlay, CdkOverlayOrigin],\n exports: [CdkConnectedOverlay, CdkOverlayOrigin, ScrollingModule],\n providers: [Overlay, CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER],\n }]\n }] });\n\n/**\n * Alternative to OverlayContainer that supports correct displaying of overlay elements in\n * Fullscreen mode\n * https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullScreen\n *\n * Should be provided in the root component.\n */\nclass FullscreenOverlayContainer extends OverlayContainer {\n constructor(_document, platform) {\n super(_document, platform);\n }\n ngOnDestroy() {\n super.ngOnDestroy();\n if (this._fullScreenEventName && this._fullScreenListener) {\n this._document.removeEventListener(this._fullScreenEventName, this._fullScreenListener);\n }\n }\n _createContainer() {\n super._createContainer();\n this._adjustParentForFullscreenChange();\n this._addFullscreenChangeListener(() => this._adjustParentForFullscreenChange());\n }\n _adjustParentForFullscreenChange() {\n if (!this._containerElement) {\n return;\n }\n const fullscreenElement = this.getFullscreenElement();\n const parent = fullscreenElement || this._document.body;\n parent.appendChild(this._containerElement);\n }\n _addFullscreenChangeListener(fn) {\n const eventName = this._getEventName();\n if (eventName) {\n if (this._fullScreenListener) {\n this._document.removeEventListener(eventName, this._fullScreenListener);\n }\n this._document.addEventListener(eventName, fn);\n this._fullScreenListener = fn;\n }\n }\n _getEventName() {\n if (!this._fullScreenEventName) {\n const _document = this._document;\n if (_document.fullscreenEnabled) {\n this._fullScreenEventName = 'fullscreenchange';\n }\n else if (_document.webkitFullscreenEnabled) {\n this._fullScreenEventName = 'webkitfullscreenchange';\n }\n else if (_document.mozFullScreenEnabled) {\n this._fullScreenEventName = 'mozfullscreenchange';\n }\n else if (_document.msFullscreenEnabled) {\n this._fullScreenEventName = 'MSFullscreenChange';\n }\n }\n return this._fullScreenEventName;\n }\n /**\n * When the page is put into fullscreen mode, a specific element is specified.\n * Only that element and its children are visible when in fullscreen mode.\n */\n getFullscreenElement() {\n const _document = this._document;\n return (_document.fullscreenElement ||\n _document.webkitFullscreenElement ||\n _document.mozFullScreenElement ||\n _document.msFullscreenElement ||\n null);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: FullscreenOverlayContainer, deps: [{ token: DOCUMENT }, { token: i1$1.Platform }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: FullscreenOverlayContainer, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: FullscreenOverlayContainer, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i1$1.Platform }]; } });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BlockScrollStrategy, CdkConnectedOverlay, CdkOverlayOrigin, CloseScrollStrategy, ConnectedOverlayPositionChange, ConnectionPositionPair, FlexibleConnectedPositionStrategy, FullscreenOverlayContainer, GlobalPositionStrategy, NoopScrollStrategy, Overlay, OverlayConfig, OverlayContainer, OverlayKeyboardDispatcher, OverlayModule, OverlayOutsideClickDispatcher, OverlayPositionBuilder, OverlayRef, RepositionScrollStrategy, STANDARD_DROPDOWN_ADJACENT_POSITIONS, STANDARD_DROPDOWN_BELOW_POSITIONS, ScrollStrategyOptions, ScrollingVisibility, validateHorizontalPosition, validateVerticalPosition };\n","import * as i0 from '@angular/core';\nimport { PLATFORM_ID, Injectable, Inject, NgModule } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\n\n// Whether the current platform supports the V8 Break Iterator. The V8 check\n// is necessary to detect all Blink based browsers.\nlet hasV8BreakIterator;\n// We need a try/catch around the reference to `Intl`, because accessing it in some cases can\n// cause IE to throw. These cases are tied to particular versions of Windows and can happen if\n// the consumer is providing a polyfilled `Map`. See:\n// https://github.com/Microsoft/ChakraCore/issues/3189\n// https://github.com/angular/components/issues/15687\ntry {\n hasV8BreakIterator = typeof Intl !== 'undefined' && Intl.v8BreakIterator;\n}\ncatch {\n hasV8BreakIterator = false;\n}\n/**\n * Service to detect the current platform by comparing the userAgent strings and\n * checking browser-specific global properties.\n */\nclass Platform {\n constructor(_platformId) {\n this._platformId = _platformId;\n // We want to use the Angular platform check because if the Document is shimmed\n // without the navigator, the following checks will fail. This is preferred because\n // sometimes the Document may be shimmed without the user's knowledge or intention\n /** Whether the Angular application is being rendered in the browser. */\n this.isBrowser = this._platformId\n ? isPlatformBrowser(this._platformId)\n : typeof document === 'object' && !!document;\n /** Whether the current browser is Microsoft Edge. */\n this.EDGE = this.isBrowser && /(edge)/i.test(navigator.userAgent);\n /** Whether the current rendering engine is Microsoft Trident. */\n this.TRIDENT = this.isBrowser && /(msie|trident)/i.test(navigator.userAgent);\n // EdgeHTML and Trident mock Blink specific things and need to be excluded from this check.\n /** Whether the current rendering engine is Blink. */\n this.BLINK = this.isBrowser &&\n !!(window.chrome || hasV8BreakIterator) &&\n typeof CSS !== 'undefined' &&\n !this.EDGE &&\n !this.TRIDENT;\n // Webkit is part of the userAgent in EdgeHTML, Blink and Trident. Therefore we need to\n // ensure that Webkit runs standalone and is not used as another engine's base.\n /** Whether the current rendering engine is WebKit. */\n this.WEBKIT = this.isBrowser &&\n /AppleWebKit/i.test(navigator.userAgent) &&\n !this.BLINK &&\n !this.EDGE &&\n !this.TRIDENT;\n /** Whether the current platform is Apple iOS. */\n this.IOS = this.isBrowser && /iPad|iPhone|iPod/.test(navigator.userAgent) && !('MSStream' in window);\n // It's difficult to detect the plain Gecko engine, because most of the browsers identify\n // them self as Gecko-like browsers and modify the userAgent's according to that.\n // Since we only cover one explicit Firefox case, we can simply check for Firefox\n // instead of having an unstable check for Gecko.\n /** Whether the current browser is Firefox. */\n this.FIREFOX = this.isBrowser && /(firefox|minefield)/i.test(navigator.userAgent);\n /** Whether the current platform is Android. */\n // Trident on mobile adds the android platform to the userAgent to trick detections.\n this.ANDROID = this.isBrowser && /android/i.test(navigator.userAgent) && !this.TRIDENT;\n // Safari browsers will include the Safari keyword in their userAgent. Some browsers may fake\n // this and just place the Safari keyword in the userAgent. To be more safe about Safari every\n // Safari browser should also use Webkit as its layout engine.\n /** Whether the current browser is Safari. */\n this.SAFARI = this.isBrowser && /safari/i.test(navigator.userAgent) && this.WEBKIT;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: Platform, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: Platform, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: Platform, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: Object, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }]; } });\n\nclass PlatformModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: PlatformModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"16.0.0\", ngImport: i0, type: PlatformModule }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: PlatformModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: PlatformModule, decorators: [{\n type: NgModule,\n args: [{}]\n }] });\n\n/** Cached result Set of input types support by the current browser. */\nlet supportedInputTypes;\n/** Types of `` that *might* be supported. */\nconst candidateInputTypes = [\n // `color` must come first. Chrome 56 shows a warning if we change the type to `color` after\n // first changing it to something else:\n // The specified value \"\" does not conform to the required format.\n // The format is \"#rrggbb\" where rr, gg, bb are two-digit hexadecimal numbers.\n 'color',\n 'button',\n 'checkbox',\n 'date',\n 'datetime-local',\n 'email',\n 'file',\n 'hidden',\n 'image',\n 'month',\n 'number',\n 'password',\n 'radio',\n 'range',\n 'reset',\n 'search',\n 'submit',\n 'tel',\n 'text',\n 'time',\n 'url',\n 'week',\n];\n/** @returns The input types supported by this browser. */\nfunction getSupportedInputTypes() {\n // Result is cached.\n if (supportedInputTypes) {\n return supportedInputTypes;\n }\n // We can't check if an input type is not supported until we're on the browser, so say that\n // everything is supported when not on the browser. We don't use `Platform` here since it's\n // just a helper function and can't inject it.\n if (typeof document !== 'object' || !document) {\n supportedInputTypes = new Set(candidateInputTypes);\n return supportedInputTypes;\n }\n let featureTestInput = document.createElement('input');\n supportedInputTypes = new Set(candidateInputTypes.filter(value => {\n featureTestInput.setAttribute('type', value);\n return featureTestInput.type === value;\n }));\n return supportedInputTypes;\n}\n\n/** Cached result of whether the user's browser supports passive event listeners. */\nlet supportsPassiveEvents;\n/**\n * Checks whether the user's browser supports passive event listeners.\n * See: https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md\n */\nfunction supportsPassiveEventListeners() {\n if (supportsPassiveEvents == null && typeof window !== 'undefined') {\n try {\n window.addEventListener('test', null, Object.defineProperty({}, 'passive', {\n get: () => (supportsPassiveEvents = true),\n }));\n }\n finally {\n supportsPassiveEvents = supportsPassiveEvents || false;\n }\n }\n return supportsPassiveEvents;\n}\n/**\n * Normalizes an `AddEventListener` object to something that can be passed\n * to `addEventListener` on any browser, no matter whether it supports the\n * `options` parameter.\n * @param options Object to be normalized.\n */\nfunction normalizePassiveListenerOptions(options) {\n return supportsPassiveEventListeners() ? options : !!options.capture;\n}\n\n/** Cached result of the way the browser handles the horizontal scroll axis in RTL mode. */\nlet rtlScrollAxisType;\n/** Cached result of the check that indicates whether the browser supports scroll behaviors. */\nlet scrollBehaviorSupported;\n/** Check whether the browser supports scroll behaviors. */\nfunction supportsScrollBehavior() {\n if (scrollBehaviorSupported == null) {\n // If we're not in the browser, it can't be supported. Also check for `Element`, because\n // some projects stub out the global `document` during SSR which can throw us off.\n if (typeof document !== 'object' || !document || typeof Element !== 'function' || !Element) {\n scrollBehaviorSupported = false;\n return scrollBehaviorSupported;\n }\n // If the element can have a `scrollBehavior` style, we can be sure that it's supported.\n if ('scrollBehavior' in document.documentElement.style) {\n scrollBehaviorSupported = true;\n }\n else {\n // At this point we have 3 possibilities: `scrollTo` isn't supported at all, it's\n // supported but it doesn't handle scroll behavior, or it has been polyfilled.\n const scrollToFunction = Element.prototype.scrollTo;\n if (scrollToFunction) {\n // We can detect if the function has been polyfilled by calling `toString` on it. Native\n // functions are obfuscated using `[native code]`, whereas if it was overwritten we'd get\n // the actual function source. Via https://davidwalsh.name/detect-native-function. Consider\n // polyfilled functions as supporting scroll behavior.\n scrollBehaviorSupported = !/\\{\\s*\\[native code\\]\\s*\\}/.test(scrollToFunction.toString());\n }\n else {\n scrollBehaviorSupported = false;\n }\n }\n }\n return scrollBehaviorSupported;\n}\n/**\n * Checks the type of RTL scroll axis used by this browser. As of time of writing, Chrome is NORMAL,\n * Firefox & Safari are NEGATED, and IE & Edge are INVERTED.\n */\nfunction getRtlScrollAxisType() {\n // We can't check unless we're on the browser. Just assume 'normal' if we're not.\n if (typeof document !== 'object' || !document) {\n return 0 /* RtlScrollAxisType.NORMAL */;\n }\n if (rtlScrollAxisType == null) {\n // Create a 1px wide scrolling container and a 2px wide content element.\n const scrollContainer = document.createElement('div');\n const containerStyle = scrollContainer.style;\n scrollContainer.dir = 'rtl';\n containerStyle.width = '1px';\n containerStyle.overflow = 'auto';\n containerStyle.visibility = 'hidden';\n containerStyle.pointerEvents = 'none';\n containerStyle.position = 'absolute';\n const content = document.createElement('div');\n const contentStyle = content.style;\n contentStyle.width = '2px';\n contentStyle.height = '1px';\n scrollContainer.appendChild(content);\n document.body.appendChild(scrollContainer);\n rtlScrollAxisType = 0 /* RtlScrollAxisType.NORMAL */;\n // The viewport starts scrolled all the way to the right in RTL mode. If we are in a NORMAL\n // browser this would mean that the scrollLeft should be 1. If it's zero instead we know we're\n // dealing with one of the other two types of browsers.\n if (scrollContainer.scrollLeft === 0) {\n // In a NEGATED browser the scrollLeft is always somewhere in [-maxScrollAmount, 0]. For an\n // INVERTED browser it is always somewhere in [0, maxScrollAmount]. We can determine which by\n // setting to the scrollLeft to 1. This is past the max for a NEGATED browser, so it will\n // return 0 when we read it again.\n scrollContainer.scrollLeft = 1;\n rtlScrollAxisType =\n scrollContainer.scrollLeft === 0 ? 1 /* RtlScrollAxisType.NEGATED */ : 2 /* RtlScrollAxisType.INVERTED */;\n }\n scrollContainer.remove();\n }\n return rtlScrollAxisType;\n}\n\nlet shadowDomIsSupported;\n/** Checks whether the user's browser support Shadow DOM. */\nfunction _supportsShadowDom() {\n if (shadowDomIsSupported == null) {\n const head = typeof document !== 'undefined' ? document.head : null;\n shadowDomIsSupported = !!(head && (head.createShadowRoot || head.attachShadow));\n }\n return shadowDomIsSupported;\n}\n/** Gets the shadow root of an element, if supported and the element is inside the Shadow DOM. */\nfunction _getShadowRoot(element) {\n if (_supportsShadowDom()) {\n const rootNode = element.getRootNode ? element.getRootNode() : null;\n // Note that this should be caught by `_supportsShadowDom`, but some\n // teams have been able to hit this code path on unsupported browsers.\n if (typeof ShadowRoot !== 'undefined' && ShadowRoot && rootNode instanceof ShadowRoot) {\n return rootNode;\n }\n }\n return null;\n}\n/**\n * Gets the currently-focused element on the page while\n * also piercing through Shadow DOM boundaries.\n */\nfunction _getFocusedElementPierceShadowDom() {\n let activeElement = typeof document !== 'undefined' && document\n ? document.activeElement\n : null;\n while (activeElement && activeElement.shadowRoot) {\n const newActiveElement = activeElement.shadowRoot.activeElement;\n if (newActiveElement === activeElement) {\n break;\n }\n else {\n activeElement = newActiveElement;\n }\n }\n return activeElement;\n}\n/** Gets the target of an event while accounting for Shadow DOM. */\nfunction _getEventTarget(event) {\n // If an event is bound outside the Shadow DOM, the `event.target` will\n // point to the shadow root so we have to use `composedPath` instead.\n return (event.composedPath ? event.composedPath()[0] : event.target);\n}\n\n/** Gets whether the code is currently running in a test environment. */\nfunction _isTestEnvironment() {\n // We can't use `declare const` because it causes conflicts inside Google with the real typings\n // for these symbols and we can't read them off the global object, because they don't appear to\n // be attached there for some runners like Jest.\n // (see: https://github.com/angular/components/issues/23365#issuecomment-938146643)\n return (\n // @ts-ignore\n (typeof __karma__ !== 'undefined' && !!__karma__) ||\n // @ts-ignore\n (typeof jasmine !== 'undefined' && !!jasmine) ||\n // @ts-ignore\n (typeof jest !== 'undefined' && !!jest) ||\n // @ts-ignore\n (typeof Mocha !== 'undefined' && !!Mocha));\n}\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Platform, PlatformModule, _getEventTarget, _getFocusedElementPierceShadowDom, _getShadowRoot, _isTestEnvironment, _supportsShadowDom, getRtlScrollAxisType, getSupportedInputTypes, normalizePassiveListenerOptions, supportsPassiveEventListeners, supportsScrollBehavior };\n","import * as i0 from '@angular/core';\nimport { ElementRef, Injector, Directive, EventEmitter, Inject, Output, NgModule } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\n/**\n * Throws an exception when attempting to attach a null portal to a host.\n * @docs-private\n */\nfunction throwNullPortalError() {\n throw Error('Must provide a portal to attach');\n}\n/**\n * Throws an exception when attempting to attach a portal to a host that is already attached.\n * @docs-private\n */\nfunction throwPortalAlreadyAttachedError() {\n throw Error('Host already has a portal attached');\n}\n/**\n * Throws an exception when attempting to attach a portal to an already-disposed host.\n * @docs-private\n */\nfunction throwPortalOutletAlreadyDisposedError() {\n throw Error('This PortalOutlet has already been disposed');\n}\n/**\n * Throws an exception when attempting to attach an unknown portal type.\n * @docs-private\n */\nfunction throwUnknownPortalTypeError() {\n throw Error('Attempting to attach an unknown Portal type. BasePortalOutlet accepts either ' +\n 'a ComponentPortal or a TemplatePortal.');\n}\n/**\n * Throws an exception when attempting to attach a portal to a null host.\n * @docs-private\n */\nfunction throwNullPortalOutletError() {\n throw Error('Attempting to attach a portal to a null PortalOutlet');\n}\n/**\n * Throws an exception when attempting to detach a portal that is not attached.\n * @docs-private\n */\nfunction throwNoPortalAttachedError() {\n throw Error('Attempting to detach a portal that is not attached to a host');\n}\n\n/**\n * A `Portal` is something that you want to render somewhere else.\n * It can be attach to / detached from a `PortalOutlet`.\n */\nclass Portal {\n /** Attach this portal to a host. */\n attach(host) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (host == null) {\n throwNullPortalOutletError();\n }\n if (host.hasAttached()) {\n throwPortalAlreadyAttachedError();\n }\n }\n this._attachedHost = host;\n return host.attach(this);\n }\n /** Detach this portal from its host */\n detach() {\n let host = this._attachedHost;\n if (host != null) {\n this._attachedHost = null;\n host.detach();\n }\n else if (typeof ngDevMode === 'undefined' || ngDevMode) {\n throwNoPortalAttachedError();\n }\n }\n /** Whether this portal is attached to a host. */\n get isAttached() {\n return this._attachedHost != null;\n }\n /**\n * Sets the PortalOutlet reference without performing `attach()`. This is used directly by\n * the PortalOutlet when it is performing an `attach()` or `detach()`.\n */\n setAttachedHost(host) {\n this._attachedHost = host;\n }\n}\n/**\n * A `ComponentPortal` is a portal that instantiates some Component upon attachment.\n */\nclass ComponentPortal extends Portal {\n constructor(component, viewContainerRef, injector, componentFactoryResolver, projectableNodes) {\n super();\n this.component = component;\n this.viewContainerRef = viewContainerRef;\n this.injector = injector;\n this.componentFactoryResolver = componentFactoryResolver;\n this.projectableNodes = projectableNodes;\n }\n}\n/**\n * A `TemplatePortal` is a portal that represents some embedded template (TemplateRef).\n */\nclass TemplatePortal extends Portal {\n constructor(\n /** The embedded template that will be used to instantiate an embedded View in the host. */\n templateRef, \n /** Reference to the ViewContainer into which the template will be stamped out. */\n viewContainerRef, \n /** Contextual data to be passed in to the embedded view. */\n context, \n /** The injector to use for the embedded view. */\n injector) {\n super();\n this.templateRef = templateRef;\n this.viewContainerRef = viewContainerRef;\n this.context = context;\n this.injector = injector;\n }\n get origin() {\n return this.templateRef.elementRef;\n }\n /**\n * Attach the portal to the provided `PortalOutlet`.\n * When a context is provided it will override the `context` property of the `TemplatePortal`\n * instance.\n */\n attach(host, context = this.context) {\n this.context = context;\n return super.attach(host);\n }\n detach() {\n this.context = undefined;\n return super.detach();\n }\n}\n/**\n * A `DomPortal` is a portal whose DOM element will be taken from its current position\n * in the DOM and moved into a portal outlet, when it is attached. On detach, the content\n * will be restored to its original position.\n */\nclass DomPortal extends Portal {\n constructor(element) {\n super();\n this.element = element instanceof ElementRef ? element.nativeElement : element;\n }\n}\n/**\n * Partial implementation of PortalOutlet that handles attaching\n * ComponentPortal and TemplatePortal.\n */\nclass BasePortalOutlet {\n constructor() {\n /** Whether this host has already been permanently disposed. */\n this._isDisposed = false;\n // @breaking-change 10.0.0 `attachDomPortal` to become a required abstract method.\n this.attachDomPortal = null;\n }\n /** Whether this host has an attached portal. */\n hasAttached() {\n return !!this._attachedPortal;\n }\n /** Attaches a portal. */\n attach(portal) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!portal) {\n throwNullPortalError();\n }\n if (this.hasAttached()) {\n throwPortalAlreadyAttachedError();\n }\n if (this._isDisposed) {\n throwPortalOutletAlreadyDisposedError();\n }\n }\n if (portal instanceof ComponentPortal) {\n this._attachedPortal = portal;\n return this.attachComponentPortal(portal);\n }\n else if (portal instanceof TemplatePortal) {\n this._attachedPortal = portal;\n return this.attachTemplatePortal(portal);\n // @breaking-change 10.0.0 remove null check for `this.attachDomPortal`.\n }\n else if (this.attachDomPortal && portal instanceof DomPortal) {\n this._attachedPortal = portal;\n return this.attachDomPortal(portal);\n }\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n throwUnknownPortalTypeError();\n }\n }\n /** Detaches a previously attached portal. */\n detach() {\n if (this._attachedPortal) {\n this._attachedPortal.setAttachedHost(null);\n this._attachedPortal = null;\n }\n this._invokeDisposeFn();\n }\n /** Permanently dispose of this portal host. */\n dispose() {\n if (this.hasAttached()) {\n this.detach();\n }\n this._invokeDisposeFn();\n this._isDisposed = true;\n }\n /** @docs-private */\n setDisposeFn(fn) {\n this._disposeFn = fn;\n }\n _invokeDisposeFn() {\n if (this._disposeFn) {\n this._disposeFn();\n this._disposeFn = null;\n }\n }\n}\n/**\n * @deprecated Use `BasePortalOutlet` instead.\n * @breaking-change 9.0.0\n */\nclass BasePortalHost extends BasePortalOutlet {\n}\n\n/**\n * A PortalOutlet for attaching portals to an arbitrary DOM element outside of the Angular\n * application context.\n */\nclass DomPortalOutlet extends BasePortalOutlet {\n /**\n * @param outletElement Element into which the content is projected.\n * @param _componentFactoryResolver Used to resolve the component factory.\n * Only required when attaching component portals.\n * @param _appRef Reference to the application. Only used in component portals when there\n * is no `ViewContainerRef` available.\n * @param _defaultInjector Injector to use as a fallback when the portal being attached doesn't\n * have one. Only used for component portals.\n * @param _document Reference to the document. Used when attaching a DOM portal. Will eventually\n * become a required parameter.\n */\n constructor(\n /** Element into which the content is projected. */\n outletElement, _componentFactoryResolver, _appRef, _defaultInjector, \n /**\n * @deprecated `_document` Parameter to be made required.\n * @breaking-change 10.0.0\n */\n _document) {\n super();\n this.outletElement = outletElement;\n this._componentFactoryResolver = _componentFactoryResolver;\n this._appRef = _appRef;\n this._defaultInjector = _defaultInjector;\n /**\n * Attaches a DOM portal by transferring its content into the outlet.\n * @param portal Portal to be attached.\n * @deprecated To be turned into a method.\n * @breaking-change 10.0.0\n */\n this.attachDomPortal = (portal) => {\n // @breaking-change 10.0.0 Remove check and error once the\n // `_document` constructor parameter is required.\n if (!this._document && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Cannot attach DOM portal without _document constructor parameter');\n }\n const element = portal.element;\n if (!element.parentNode && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('DOM portal content must be attached to a parent node.');\n }\n // Anchor used to save the element's previous position so\n // that we can restore it when the portal is detached.\n const anchorNode = this._document.createComment('dom-portal');\n element.parentNode.insertBefore(anchorNode, element);\n this.outletElement.appendChild(element);\n this._attachedPortal = portal;\n super.setDisposeFn(() => {\n // We can't use `replaceWith` here because IE doesn't support it.\n if (anchorNode.parentNode) {\n anchorNode.parentNode.replaceChild(element, anchorNode);\n }\n });\n };\n this._document = _document;\n }\n /**\n * Attach the given ComponentPortal to DOM element using the ComponentFactoryResolver.\n * @param portal Portal to be attached\n * @returns Reference to the created component.\n */\n attachComponentPortal(portal) {\n const resolver = (portal.componentFactoryResolver || this._componentFactoryResolver);\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !resolver) {\n throw Error('Cannot attach component portal to outlet without a ComponentFactoryResolver.');\n }\n const componentFactory = resolver.resolveComponentFactory(portal.component);\n let componentRef;\n // If the portal specifies a ViewContainerRef, we will use that as the attachment point\n // for the component (in terms of Angular's component tree, not rendering).\n // When the ViewContainerRef is missing, we use the factory to create the component directly\n // and then manually attach the view to the application.\n if (portal.viewContainerRef) {\n componentRef = portal.viewContainerRef.createComponent(componentFactory, portal.viewContainerRef.length, portal.injector || portal.viewContainerRef.injector, portal.projectableNodes || undefined);\n this.setDisposeFn(() => componentRef.destroy());\n }\n else {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !this._appRef) {\n throw Error('Cannot attach component portal to outlet without an ApplicationRef.');\n }\n componentRef = componentFactory.create(portal.injector || this._defaultInjector || Injector.NULL);\n this._appRef.attachView(componentRef.hostView);\n this.setDisposeFn(() => {\n // Verify that the ApplicationRef has registered views before trying to detach a host view.\n // This check also protects the `detachView` from being called on a destroyed ApplicationRef.\n if (this._appRef.viewCount > 0) {\n this._appRef.detachView(componentRef.hostView);\n }\n componentRef.destroy();\n });\n }\n // At this point the component has been instantiated, so we move it to the location in the DOM\n // where we want it to be rendered.\n this.outletElement.appendChild(this._getComponentRootNode(componentRef));\n this._attachedPortal = portal;\n return componentRef;\n }\n /**\n * Attaches a template portal to the DOM as an embedded view.\n * @param portal Portal to be attached.\n * @returns Reference to the created embedded view.\n */\n attachTemplatePortal(portal) {\n let viewContainer = portal.viewContainerRef;\n let viewRef = viewContainer.createEmbeddedView(portal.templateRef, portal.context, {\n injector: portal.injector,\n });\n // The method `createEmbeddedView` will add the view as a child of the viewContainer.\n // But for the DomPortalOutlet the view can be added everywhere in the DOM\n // (e.g Overlay Container) To move the view to the specified host element. We just\n // re-append the existing root nodes.\n viewRef.rootNodes.forEach(rootNode => this.outletElement.appendChild(rootNode));\n // Note that we want to detect changes after the nodes have been moved so that\n // any directives inside the portal that are looking at the DOM inside a lifecycle\n // hook won't be invoked too early.\n viewRef.detectChanges();\n this.setDisposeFn(() => {\n let index = viewContainer.indexOf(viewRef);\n if (index !== -1) {\n viewContainer.remove(index);\n }\n });\n this._attachedPortal = portal;\n // TODO(jelbourn): Return locals from view.\n return viewRef;\n }\n /**\n * Clears out a portal from the DOM.\n */\n dispose() {\n super.dispose();\n this.outletElement.remove();\n }\n /** Gets the root HTMLElement for an instantiated component. */\n _getComponentRootNode(componentRef) {\n return componentRef.hostView.rootNodes[0];\n }\n}\n/**\n * @deprecated Use `DomPortalOutlet` instead.\n * @breaking-change 9.0.0\n */\nclass DomPortalHost extends DomPortalOutlet {\n}\n\n/**\n * Directive version of a `TemplatePortal`. Because the directive *is* a TemplatePortal,\n * the directive instance itself can be attached to a host, enabling declarative use of portals.\n */\nclass CdkPortal extends TemplatePortal {\n constructor(templateRef, viewContainerRef) {\n super(templateRef, viewContainerRef);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkPortal, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.0\", type: CdkPortal, selector: \"[cdkPortal]\", exportAs: [\"cdkPortal\"], usesInheritance: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkPortal, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkPortal]',\n exportAs: 'cdkPortal',\n }]\n }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; } });\n/**\n * @deprecated Use `CdkPortal` instead.\n * @breaking-change 9.0.0\n */\nclass TemplatePortalDirective extends CdkPortal {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: TemplatePortalDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.0\", type: TemplatePortalDirective, selector: \"[cdk-portal], [portal]\", providers: [\n {\n provide: CdkPortal,\n useExisting: TemplatePortalDirective,\n },\n ], exportAs: [\"cdkPortal\"], usesInheritance: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: TemplatePortalDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdk-portal], [portal]',\n exportAs: 'cdkPortal',\n providers: [\n {\n provide: CdkPortal,\n useExisting: TemplatePortalDirective,\n },\n ],\n }]\n }] });\n/**\n * Directive version of a PortalOutlet. Because the directive *is* a PortalOutlet, portals can be\n * directly attached to it, enabling declarative use.\n *\n * Usage:\n * ``\n */\nclass CdkPortalOutlet extends BasePortalOutlet {\n constructor(_componentFactoryResolver, _viewContainerRef, \n /**\n * @deprecated `_document` parameter to be made required.\n * @breaking-change 9.0.0\n */\n _document) {\n super();\n this._componentFactoryResolver = _componentFactoryResolver;\n this._viewContainerRef = _viewContainerRef;\n /** Whether the portal component is initialized. */\n this._isInitialized = false;\n /** Emits when a portal is attached to the outlet. */\n this.attached = new EventEmitter();\n /**\n * Attaches the given DomPortal to this PortalHost by moving all of the portal content into it.\n * @param portal Portal to be attached.\n * @deprecated To be turned into a method.\n * @breaking-change 10.0.0\n */\n this.attachDomPortal = (portal) => {\n // @breaking-change 9.0.0 Remove check and error once the\n // `_document` constructor parameter is required.\n if (!this._document && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Cannot attach DOM portal without _document constructor parameter');\n }\n const element = portal.element;\n if (!element.parentNode && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('DOM portal content must be attached to a parent node.');\n }\n // Anchor used to save the element's previous position so\n // that we can restore it when the portal is detached.\n const anchorNode = this._document.createComment('dom-portal');\n portal.setAttachedHost(this);\n element.parentNode.insertBefore(anchorNode, element);\n this._getRootNode().appendChild(element);\n this._attachedPortal = portal;\n super.setDisposeFn(() => {\n if (anchorNode.parentNode) {\n anchorNode.parentNode.replaceChild(element, anchorNode);\n }\n });\n };\n this._document = _document;\n }\n /** Portal associated with the Portal outlet. */\n get portal() {\n return this._attachedPortal;\n }\n set portal(portal) {\n // Ignore the cases where the `portal` is set to a falsy value before the lifecycle hooks have\n // run. This handles the cases where the user might do something like `
`\n // and attach a portal programmatically in the parent component. When Angular does the first CD\n // round, it will fire the setter with empty string, causing the user's content to be cleared.\n if (this.hasAttached() && !portal && !this._isInitialized) {\n return;\n }\n if (this.hasAttached()) {\n super.detach();\n }\n if (portal) {\n super.attach(portal);\n }\n this._attachedPortal = portal || null;\n }\n /** Component or view reference that is attached to the portal. */\n get attachedRef() {\n return this._attachedRef;\n }\n ngOnInit() {\n this._isInitialized = true;\n }\n ngOnDestroy() {\n super.dispose();\n this._attachedRef = this._attachedPortal = null;\n }\n /**\n * Attach the given ComponentPortal to this PortalOutlet using the ComponentFactoryResolver.\n *\n * @param portal Portal to be attached to the portal outlet.\n * @returns Reference to the created component.\n */\n attachComponentPortal(portal) {\n portal.setAttachedHost(this);\n // If the portal specifies an origin, use that as the logical location of the component\n // in the application tree. Otherwise use the location of this PortalOutlet.\n const viewContainerRef = portal.viewContainerRef != null ? portal.viewContainerRef : this._viewContainerRef;\n const resolver = portal.componentFactoryResolver || this._componentFactoryResolver;\n const componentFactory = resolver.resolveComponentFactory(portal.component);\n const ref = viewContainerRef.createComponent(componentFactory, viewContainerRef.length, portal.injector || viewContainerRef.injector, portal.projectableNodes || undefined);\n // If we're using a view container that's different from the injected one (e.g. when the portal\n // specifies its own) we need to move the component into the outlet, otherwise it'll be rendered\n // inside of the alternate view container.\n if (viewContainerRef !== this._viewContainerRef) {\n this._getRootNode().appendChild(ref.hostView.rootNodes[0]);\n }\n super.setDisposeFn(() => ref.destroy());\n this._attachedPortal = portal;\n this._attachedRef = ref;\n this.attached.emit(ref);\n return ref;\n }\n /**\n * Attach the given TemplatePortal to this PortalHost as an embedded View.\n * @param portal Portal to be attached.\n * @returns Reference to the created embedded view.\n */\n attachTemplatePortal(portal) {\n portal.setAttachedHost(this);\n const viewRef = this._viewContainerRef.createEmbeddedView(portal.templateRef, portal.context, {\n injector: portal.injector,\n });\n super.setDisposeFn(() => this._viewContainerRef.clear());\n this._attachedPortal = portal;\n this._attachedRef = viewRef;\n this.attached.emit(viewRef);\n return viewRef;\n }\n /** Gets the root node of the portal outlet. */\n _getRootNode() {\n const nativeElement = this._viewContainerRef.element.nativeElement;\n // The directive could be set on a template which will result in a comment\n // node being the root. Use the comment's parent node if that is the case.\n return (nativeElement.nodeType === nativeElement.ELEMENT_NODE\n ? nativeElement\n : nativeElement.parentNode);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkPortalOutlet, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.ViewContainerRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.0\", type: CdkPortalOutlet, selector: \"[cdkPortalOutlet]\", inputs: { portal: [\"cdkPortalOutlet\", \"portal\"] }, outputs: { attached: \"attached\" }, exportAs: [\"cdkPortalOutlet\"], usesInheritance: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkPortalOutlet, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkPortalOutlet]',\n exportAs: 'cdkPortalOutlet',\n inputs: ['portal: cdkPortalOutlet'],\n }]\n }], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; }, propDecorators: { attached: [{\n type: Output\n }] } });\n/**\n * @deprecated Use `CdkPortalOutlet` instead.\n * @breaking-change 9.0.0\n */\nclass PortalHostDirective extends CdkPortalOutlet {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: PortalHostDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.0\", type: PortalHostDirective, selector: \"[cdkPortalHost], [portalHost]\", inputs: { portal: [\"cdkPortalHost\", \"portal\"] }, providers: [\n {\n provide: CdkPortalOutlet,\n useExisting: PortalHostDirective,\n },\n ], exportAs: [\"cdkPortalHost\"], usesInheritance: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: PortalHostDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkPortalHost], [portalHost]',\n exportAs: 'cdkPortalHost',\n inputs: ['portal: cdkPortalHost'],\n providers: [\n {\n provide: CdkPortalOutlet,\n useExisting: PortalHostDirective,\n },\n ],\n }]\n }] });\nclass PortalModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: PortalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"16.0.0\", ngImport: i0, type: PortalModule, declarations: [CdkPortal, CdkPortalOutlet, TemplatePortalDirective, PortalHostDirective], exports: [CdkPortal, CdkPortalOutlet, TemplatePortalDirective, PortalHostDirective] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: PortalModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: PortalModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [CdkPortal, CdkPortalOutlet, TemplatePortalDirective, PortalHostDirective],\n declarations: [CdkPortal, CdkPortalOutlet, TemplatePortalDirective, PortalHostDirective],\n }]\n }] });\n\n/**\n * Custom injector to be used when providing custom\n * injection tokens to components inside a portal.\n * @docs-private\n * @deprecated Use `Injector.create` instead.\n * @breaking-change 11.0.0\n */\nclass PortalInjector {\n constructor(_parentInjector, _customTokens) {\n this._parentInjector = _parentInjector;\n this._customTokens = _customTokens;\n }\n get(token, notFoundValue) {\n const value = this._customTokens.get(token);\n if (typeof value !== 'undefined') {\n return value;\n }\n return this._parentInjector.get(token, notFoundValue);\n }\n}\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BasePortalHost, BasePortalOutlet, CdkPortal, CdkPortalOutlet, ComponentPortal, DomPortal, DomPortalHost, DomPortalOutlet, Portal, PortalHostDirective, PortalInjector, PortalModule, TemplatePortal, TemplatePortalDirective };\n","import { coerceNumberProperty, coerceElement, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, forwardRef, Directive, Input, Injectable, Optional, Inject, inject, Component, ViewEncapsulation, ChangeDetectionStrategy, Output, ViewChild, SkipSelf, ElementRef, NgModule } from '@angular/core';\nimport { Subject, of, Observable, fromEvent, animationFrameScheduler, asapScheduler, Subscription, isObservable } from 'rxjs';\nimport { distinctUntilChanged, auditTime, filter, takeUntil, startWith, pairwise, switchMap, shareReplay } from 'rxjs/operators';\nimport * as i1 from '@angular/cdk/platform';\nimport { getRtlScrollAxisType, supportsScrollBehavior, Platform } from '@angular/cdk/platform';\nimport { DOCUMENT } from '@angular/common';\nimport * as i2 from '@angular/cdk/bidi';\nimport { BidiModule } from '@angular/cdk/bidi';\nimport * as i2$1 from '@angular/cdk/collections';\nimport { isDataSource, ArrayDataSource, _VIEW_REPEATER_STRATEGY, _RecycleViewRepeaterStrategy } from '@angular/cdk/collections';\n\n/** The injection token used to specify the virtual scrolling strategy. */\nconst VIRTUAL_SCROLL_STRATEGY = new InjectionToken('VIRTUAL_SCROLL_STRATEGY');\n\n/** Virtual scrolling strategy for lists with items of known fixed size. */\nclass FixedSizeVirtualScrollStrategy {\n /**\n * @param itemSize The size of the items in the virtually scrolling list.\n * @param minBufferPx The minimum amount of buffer (in pixels) before needing to render more\n * @param maxBufferPx The amount of buffer (in pixels) to render when rendering more.\n */\n constructor(itemSize, minBufferPx, maxBufferPx) {\n this._scrolledIndexChange = new Subject();\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n this.scrolledIndexChange = this._scrolledIndexChange.pipe(distinctUntilChanged());\n /** The attached viewport. */\n this._viewport = null;\n this._itemSize = itemSize;\n this._minBufferPx = minBufferPx;\n this._maxBufferPx = maxBufferPx;\n }\n /**\n * Attaches this scroll strategy to a viewport.\n * @param viewport The viewport to attach this strategy to.\n */\n attach(viewport) {\n this._viewport = viewport;\n this._updateTotalContentSize();\n this._updateRenderedRange();\n }\n /** Detaches this scroll strategy from the currently attached viewport. */\n detach() {\n this._scrolledIndexChange.complete();\n this._viewport = null;\n }\n /**\n * Update the item size and buffer size.\n * @param itemSize The size of the items in the virtually scrolling list.\n * @param minBufferPx The minimum amount of buffer (in pixels) before needing to render more\n * @param maxBufferPx The amount of buffer (in pixels) to render when rendering more.\n */\n updateItemAndBufferSize(itemSize, minBufferPx, maxBufferPx) {\n if (maxBufferPx < minBufferPx && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('CDK virtual scroll: maxBufferPx must be greater than or equal to minBufferPx');\n }\n this._itemSize = itemSize;\n this._minBufferPx = minBufferPx;\n this._maxBufferPx = maxBufferPx;\n this._updateTotalContentSize();\n this._updateRenderedRange();\n }\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n onContentScrolled() {\n this._updateRenderedRange();\n }\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n onDataLengthChanged() {\n this._updateTotalContentSize();\n this._updateRenderedRange();\n }\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n onContentRendered() {\n /* no-op */\n }\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n onRenderedOffsetChanged() {\n /* no-op */\n }\n /**\n * Scroll to the offset for the given index.\n * @param index The index of the element to scroll to.\n * @param behavior The ScrollBehavior to use when scrolling.\n */\n scrollToIndex(index, behavior) {\n if (this._viewport) {\n this._viewport.scrollToOffset(index * this._itemSize, behavior);\n }\n }\n /** Update the viewport's total content size. */\n _updateTotalContentSize() {\n if (!this._viewport) {\n return;\n }\n this._viewport.setTotalContentSize(this._viewport.getDataLength() * this._itemSize);\n }\n /** Update the viewport's rendered range. */\n _updateRenderedRange() {\n if (!this._viewport) {\n return;\n }\n const renderedRange = this._viewport.getRenderedRange();\n const newRange = { start: renderedRange.start, end: renderedRange.end };\n const viewportSize = this._viewport.getViewportSize();\n const dataLength = this._viewport.getDataLength();\n let scrollOffset = this._viewport.measureScrollOffset();\n // Prevent NaN as result when dividing by zero.\n let firstVisibleIndex = this._itemSize > 0 ? scrollOffset / this._itemSize : 0;\n // If user scrolls to the bottom of the list and data changes to a smaller list\n if (newRange.end > dataLength) {\n // We have to recalculate the first visible index based on new data length and viewport size.\n const maxVisibleItems = Math.ceil(viewportSize / this._itemSize);\n const newVisibleIndex = Math.max(0, Math.min(firstVisibleIndex, dataLength - maxVisibleItems));\n // If first visible index changed we must update scroll offset to handle start/end buffers\n // Current range must also be adjusted to cover the new position (bottom of new list).\n if (firstVisibleIndex != newVisibleIndex) {\n firstVisibleIndex = newVisibleIndex;\n scrollOffset = newVisibleIndex * this._itemSize;\n newRange.start = Math.floor(firstVisibleIndex);\n }\n newRange.end = Math.max(0, Math.min(dataLength, newRange.start + maxVisibleItems));\n }\n const startBuffer = scrollOffset - newRange.start * this._itemSize;\n if (startBuffer < this._minBufferPx && newRange.start != 0) {\n const expandStart = Math.ceil((this._maxBufferPx - startBuffer) / this._itemSize);\n newRange.start = Math.max(0, newRange.start - expandStart);\n newRange.end = Math.min(dataLength, Math.ceil(firstVisibleIndex + (viewportSize + this._minBufferPx) / this._itemSize));\n }\n else {\n const endBuffer = newRange.end * this._itemSize - (scrollOffset + viewportSize);\n if (endBuffer < this._minBufferPx && newRange.end != dataLength) {\n const expandEnd = Math.ceil((this._maxBufferPx - endBuffer) / this._itemSize);\n if (expandEnd > 0) {\n newRange.end = Math.min(dataLength, newRange.end + expandEnd);\n newRange.start = Math.max(0, Math.floor(firstVisibleIndex - this._minBufferPx / this._itemSize));\n }\n }\n }\n this._viewport.setRenderedRange(newRange);\n this._viewport.setRenderedContentOffset(this._itemSize * newRange.start);\n this._scrolledIndexChange.next(Math.floor(firstVisibleIndex));\n }\n}\n/**\n * Provider factory for `FixedSizeVirtualScrollStrategy` that simply extracts the already created\n * `FixedSizeVirtualScrollStrategy` from the given directive.\n * @param fixedSizeDir The instance of `CdkFixedSizeVirtualScroll` to extract the\n * `FixedSizeVirtualScrollStrategy` from.\n */\nfunction _fixedSizeVirtualScrollStrategyFactory(fixedSizeDir) {\n return fixedSizeDir._scrollStrategy;\n}\n/** A virtual scroll strategy that supports fixed-size items. */\nclass CdkFixedSizeVirtualScroll {\n constructor() {\n this._itemSize = 20;\n this._minBufferPx = 100;\n this._maxBufferPx = 200;\n /** The scroll strategy used by this directive. */\n this._scrollStrategy = new FixedSizeVirtualScrollStrategy(this.itemSize, this.minBufferPx, this.maxBufferPx);\n }\n /** The size of the items in the list (in pixels). */\n get itemSize() {\n return this._itemSize;\n }\n set itemSize(value) {\n this._itemSize = coerceNumberProperty(value);\n }\n /**\n * The minimum amount of buffer rendered beyond the viewport (in pixels).\n * If the amount of buffer dips below this number, more items will be rendered. Defaults to 100px.\n */\n get minBufferPx() {\n return this._minBufferPx;\n }\n set minBufferPx(value) {\n this._minBufferPx = coerceNumberProperty(value);\n }\n /**\n * The number of pixels worth of buffer to render for when rendering new items. Defaults to 200px.\n */\n get maxBufferPx() {\n return this._maxBufferPx;\n }\n set maxBufferPx(value) {\n this._maxBufferPx = coerceNumberProperty(value);\n }\n ngOnChanges() {\n this._scrollStrategy.updateItemAndBufferSize(this.itemSize, this.minBufferPx, this.maxBufferPx);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkFixedSizeVirtualScroll, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.0\", type: CdkFixedSizeVirtualScroll, isStandalone: true, selector: \"cdk-virtual-scroll-viewport[itemSize]\", inputs: { itemSize: \"itemSize\", minBufferPx: \"minBufferPx\", maxBufferPx: \"maxBufferPx\" }, providers: [\n {\n provide: VIRTUAL_SCROLL_STRATEGY,\n useFactory: _fixedSizeVirtualScrollStrategyFactory,\n deps: [forwardRef(() => CdkFixedSizeVirtualScroll)],\n },\n ], usesOnChanges: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkFixedSizeVirtualScroll, decorators: [{\n type: Directive,\n args: [{\n selector: 'cdk-virtual-scroll-viewport[itemSize]',\n standalone: true,\n providers: [\n {\n provide: VIRTUAL_SCROLL_STRATEGY,\n useFactory: _fixedSizeVirtualScrollStrategyFactory,\n deps: [forwardRef(() => CdkFixedSizeVirtualScroll)],\n },\n ],\n }]\n }], propDecorators: { itemSize: [{\n type: Input\n }], minBufferPx: [{\n type: Input\n }], maxBufferPx: [{\n type: Input\n }] } });\n\n/** Time in ms to throttle the scrolling events by default. */\nconst DEFAULT_SCROLL_TIME = 20;\n/**\n * Service contained all registered Scrollable references and emits an event when any one of the\n * Scrollable references emit a scrolled event.\n */\nclass ScrollDispatcher {\n constructor(_ngZone, _platform, document) {\n this._ngZone = _ngZone;\n this._platform = _platform;\n /** Subject for notifying that a registered scrollable reference element has been scrolled. */\n this._scrolled = new Subject();\n /** Keeps track of the global `scroll` and `resize` subscriptions. */\n this._globalSubscription = null;\n /** Keeps track of the amount of subscriptions to `scrolled`. Used for cleaning up afterwards. */\n this._scrolledCount = 0;\n /**\n * Map of all the scrollable references that are registered with the service and their\n * scroll event subscriptions.\n */\n this.scrollContainers = new Map();\n this._document = document;\n }\n /**\n * Registers a scrollable instance with the service and listens for its scrolled events. When the\n * scrollable is scrolled, the service emits the event to its scrolled observable.\n * @param scrollable Scrollable instance to be registered.\n */\n register(scrollable) {\n if (!this.scrollContainers.has(scrollable)) {\n this.scrollContainers.set(scrollable, scrollable.elementScrolled().subscribe(() => this._scrolled.next(scrollable)));\n }\n }\n /**\n * De-registers a Scrollable reference and unsubscribes from its scroll event observable.\n * @param scrollable Scrollable instance to be deregistered.\n */\n deregister(scrollable) {\n const scrollableReference = this.scrollContainers.get(scrollable);\n if (scrollableReference) {\n scrollableReference.unsubscribe();\n this.scrollContainers.delete(scrollable);\n }\n }\n /**\n * Returns an observable that emits an event whenever any of the registered Scrollable\n * references (or window, document, or body) fire a scrolled event. Can provide a time in ms\n * to override the default \"throttle\" time.\n *\n * **Note:** in order to avoid hitting change detection for every scroll event,\n * all of the events emitted from this stream will be run outside the Angular zone.\n * If you need to update any data bindings as a result of a scroll event, you have\n * to run the callback using `NgZone.run`.\n */\n scrolled(auditTimeInMs = DEFAULT_SCROLL_TIME) {\n if (!this._platform.isBrowser) {\n return of();\n }\n return new Observable((observer) => {\n if (!this._globalSubscription) {\n this._addGlobalListener();\n }\n // In the case of a 0ms delay, use an observable without auditTime\n // since it does add a perceptible delay in processing overhead.\n const subscription = auditTimeInMs > 0\n ? this._scrolled.pipe(auditTime(auditTimeInMs)).subscribe(observer)\n : this._scrolled.subscribe(observer);\n this._scrolledCount++;\n return () => {\n subscription.unsubscribe();\n this._scrolledCount--;\n if (!this._scrolledCount) {\n this._removeGlobalListener();\n }\n };\n });\n }\n ngOnDestroy() {\n this._removeGlobalListener();\n this.scrollContainers.forEach((_, container) => this.deregister(container));\n this._scrolled.complete();\n }\n /**\n * Returns an observable that emits whenever any of the\n * scrollable ancestors of an element are scrolled.\n * @param elementOrElementRef Element whose ancestors to listen for.\n * @param auditTimeInMs Time to throttle the scroll events.\n */\n ancestorScrolled(elementOrElementRef, auditTimeInMs) {\n const ancestors = this.getAncestorScrollContainers(elementOrElementRef);\n return this.scrolled(auditTimeInMs).pipe(filter(target => {\n return !target || ancestors.indexOf(target) > -1;\n }));\n }\n /** Returns all registered Scrollables that contain the provided element. */\n getAncestorScrollContainers(elementOrElementRef) {\n const scrollingContainers = [];\n this.scrollContainers.forEach((_subscription, scrollable) => {\n if (this._scrollableContainsElement(scrollable, elementOrElementRef)) {\n scrollingContainers.push(scrollable);\n }\n });\n return scrollingContainers;\n }\n /** Use defaultView of injected document if available or fallback to global window reference */\n _getWindow() {\n return this._document.defaultView || window;\n }\n /** Returns true if the element is contained within the provided Scrollable. */\n _scrollableContainsElement(scrollable, elementOrElementRef) {\n let element = coerceElement(elementOrElementRef);\n let scrollableElement = scrollable.getElementRef().nativeElement;\n // Traverse through the element parents until we reach null, checking if any of the elements\n // are the scrollable's element.\n do {\n if (element == scrollableElement) {\n return true;\n }\n } while ((element = element.parentElement));\n return false;\n }\n /** Sets up the global scroll listeners. */\n _addGlobalListener() {\n this._globalSubscription = this._ngZone.runOutsideAngular(() => {\n const window = this._getWindow();\n return fromEvent(window.document, 'scroll').subscribe(() => this._scrolled.next());\n });\n }\n /** Cleans up the global scroll listener. */\n _removeGlobalListener() {\n if (this._globalSubscription) {\n this._globalSubscription.unsubscribe();\n this._globalSubscription = null;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: ScrollDispatcher, deps: [{ token: i0.NgZone }, { token: i1.Platform }, { token: DOCUMENT, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: ScrollDispatcher, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: ScrollDispatcher, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1.Platform }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [DOCUMENT]\n }] }]; } });\n\n/**\n * Sends an event when the directive's element is scrolled. Registers itself with the\n * ScrollDispatcher service to include itself as part of its collection of scrolling events that it\n * can be listened to through the service.\n */\nclass CdkScrollable {\n constructor(elementRef, scrollDispatcher, ngZone, dir) {\n this.elementRef = elementRef;\n this.scrollDispatcher = scrollDispatcher;\n this.ngZone = ngZone;\n this.dir = dir;\n this._destroyed = new Subject();\n this._elementScrolled = new Observable((observer) => this.ngZone.runOutsideAngular(() => fromEvent(this.elementRef.nativeElement, 'scroll')\n .pipe(takeUntil(this._destroyed))\n .subscribe(observer)));\n }\n ngOnInit() {\n this.scrollDispatcher.register(this);\n }\n ngOnDestroy() {\n this.scrollDispatcher.deregister(this);\n this._destroyed.next();\n this._destroyed.complete();\n }\n /** Returns observable that emits when a scroll event is fired on the host element. */\n elementScrolled() {\n return this._elementScrolled;\n }\n /** Gets the ElementRef for the viewport. */\n getElementRef() {\n return this.elementRef;\n }\n /**\n * Scrolls to the specified offsets. This is a normalized version of the browser's native scrollTo\n * method, since browsers are not consistent about what scrollLeft means in RTL. For this method\n * left and right always refer to the left and right side of the scrolling container irrespective\n * of the layout direction. start and end refer to left and right in an LTR context and vice-versa\n * in an RTL context.\n * @param options specified the offsets to scroll to.\n */\n scrollTo(options) {\n const el = this.elementRef.nativeElement;\n const isRtl = this.dir && this.dir.value == 'rtl';\n // Rewrite start & end offsets as right or left offsets.\n if (options.left == null) {\n options.left = isRtl ? options.end : options.start;\n }\n if (options.right == null) {\n options.right = isRtl ? options.start : options.end;\n }\n // Rewrite the bottom offset as a top offset.\n if (options.bottom != null) {\n options.top =\n el.scrollHeight - el.clientHeight - options.bottom;\n }\n // Rewrite the right offset as a left offset.\n if (isRtl && getRtlScrollAxisType() != 0 /* RtlScrollAxisType.NORMAL */) {\n if (options.left != null) {\n options.right =\n el.scrollWidth - el.clientWidth - options.left;\n }\n if (getRtlScrollAxisType() == 2 /* RtlScrollAxisType.INVERTED */) {\n options.left = options.right;\n }\n else if (getRtlScrollAxisType() == 1 /* RtlScrollAxisType.NEGATED */) {\n options.left = options.right ? -options.right : options.right;\n }\n }\n else {\n if (options.right != null) {\n options.left =\n el.scrollWidth - el.clientWidth - options.right;\n }\n }\n this._applyScrollToOptions(options);\n }\n _applyScrollToOptions(options) {\n const el = this.elementRef.nativeElement;\n if (supportsScrollBehavior()) {\n el.scrollTo(options);\n }\n else {\n if (options.top != null) {\n el.scrollTop = options.top;\n }\n if (options.left != null) {\n el.scrollLeft = options.left;\n }\n }\n }\n /**\n * Measures the scroll offset relative to the specified edge of the viewport. This method can be\n * used instead of directly checking scrollLeft or scrollTop, since browsers are not consistent\n * about what scrollLeft means in RTL. The values returned by this method are normalized such that\n * left and right always refer to the left and right side of the scrolling container irrespective\n * of the layout direction. start and end refer to left and right in an LTR context and vice-versa\n * in an RTL context.\n * @param from The edge to measure from.\n */\n measureScrollOffset(from) {\n const LEFT = 'left';\n const RIGHT = 'right';\n const el = this.elementRef.nativeElement;\n if (from == 'top') {\n return el.scrollTop;\n }\n if (from == 'bottom') {\n return el.scrollHeight - el.clientHeight - el.scrollTop;\n }\n // Rewrite start & end as left or right offsets.\n const isRtl = this.dir && this.dir.value == 'rtl';\n if (from == 'start') {\n from = isRtl ? RIGHT : LEFT;\n }\n else if (from == 'end') {\n from = isRtl ? LEFT : RIGHT;\n }\n if (isRtl && getRtlScrollAxisType() == 2 /* RtlScrollAxisType.INVERTED */) {\n // For INVERTED, scrollLeft is (scrollWidth - clientWidth) when scrolled all the way left and\n // 0 when scrolled all the way right.\n if (from == LEFT) {\n return el.scrollWidth - el.clientWidth - el.scrollLeft;\n }\n else {\n return el.scrollLeft;\n }\n }\n else if (isRtl && getRtlScrollAxisType() == 1 /* RtlScrollAxisType.NEGATED */) {\n // For NEGATED, scrollLeft is -(scrollWidth - clientWidth) when scrolled all the way left and\n // 0 when scrolled all the way right.\n if (from == LEFT) {\n return el.scrollLeft + el.scrollWidth - el.clientWidth;\n }\n else {\n return -el.scrollLeft;\n }\n }\n else {\n // For NORMAL, as well as non-RTL contexts, scrollLeft is 0 when scrolled all the way left and\n // (scrollWidth - clientWidth) when scrolled all the way right.\n if (from == LEFT) {\n return el.scrollLeft;\n }\n else {\n return el.scrollWidth - el.clientWidth - el.scrollLeft;\n }\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkScrollable, deps: [{ token: i0.ElementRef }, { token: ScrollDispatcher }, { token: i0.NgZone }, { token: i2.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.0\", type: CdkScrollable, isStandalone: true, selector: \"[cdk-scrollable], [cdkScrollable]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkScrollable, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdk-scrollable], [cdkScrollable]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: ScrollDispatcher }, { type: i0.NgZone }, { type: i2.Directionality, decorators: [{\n type: Optional\n }] }]; } });\n\n/** Time in ms to throttle the resize events by default. */\nconst DEFAULT_RESIZE_TIME = 20;\n/**\n * Simple utility for getting the bounds of the browser viewport.\n * @docs-private\n */\nclass ViewportRuler {\n constructor(_platform, ngZone, document) {\n this._platform = _platform;\n /** Stream of viewport change events. */\n this._change = new Subject();\n /** Event listener that will be used to handle the viewport change events. */\n this._changeListener = (event) => {\n this._change.next(event);\n };\n this._document = document;\n ngZone.runOutsideAngular(() => {\n if (_platform.isBrowser) {\n const window = this._getWindow();\n // Note that bind the events ourselves, rather than going through something like RxJS's\n // `fromEvent` so that we can ensure that they're bound outside of the NgZone.\n window.addEventListener('resize', this._changeListener);\n window.addEventListener('orientationchange', this._changeListener);\n }\n // Clear the cached position so that the viewport is re-measured next time it is required.\n // We don't need to keep track of the subscription, because it is completed on destroy.\n this.change().subscribe(() => (this._viewportSize = null));\n });\n }\n ngOnDestroy() {\n if (this._platform.isBrowser) {\n const window = this._getWindow();\n window.removeEventListener('resize', this._changeListener);\n window.removeEventListener('orientationchange', this._changeListener);\n }\n this._change.complete();\n }\n /** Returns the viewport's width and height. */\n getViewportSize() {\n if (!this._viewportSize) {\n this._updateViewportSize();\n }\n const output = { width: this._viewportSize.width, height: this._viewportSize.height };\n // If we're not on a browser, don't cache the size since it'll be mocked out anyway.\n if (!this._platform.isBrowser) {\n this._viewportSize = null;\n }\n return output;\n }\n /** Gets a ClientRect for the viewport's bounds. */\n getViewportRect() {\n // Use the document element's bounding rect rather than the window scroll properties\n // (e.g. pageYOffset, scrollY) due to in issue in Chrome and IE where window scroll\n // properties and client coordinates (boundingClientRect, clientX/Y, etc.) are in different\n // conceptual viewports. Under most circumstances these viewports are equivalent, but they\n // can disagree when the page is pinch-zoomed (on devices that support touch).\n // See https://bugs.chromium.org/p/chromium/issues/detail?id=489206#c4\n // We use the documentElement instead of the body because, by default (without a css reset)\n // browsers typically give the document body an 8px margin, which is not included in\n // getBoundingClientRect().\n const scrollPosition = this.getViewportScrollPosition();\n const { width, height } = this.getViewportSize();\n return {\n top: scrollPosition.top,\n left: scrollPosition.left,\n bottom: scrollPosition.top + height,\n right: scrollPosition.left + width,\n height,\n width,\n };\n }\n /** Gets the (top, left) scroll position of the viewport. */\n getViewportScrollPosition() {\n // While we can get a reference to the fake document\n // during SSR, it doesn't have getBoundingClientRect.\n if (!this._platform.isBrowser) {\n return { top: 0, left: 0 };\n }\n // The top-left-corner of the viewport is determined by the scroll position of the document\n // body, normally just (scrollLeft, scrollTop). However, Chrome and Firefox disagree about\n // whether `document.body` or `document.documentElement` is the scrolled element, so reading\n // `scrollTop` and `scrollLeft` is inconsistent. However, using the bounding rect of\n // `document.documentElement` works consistently, where the `top` and `left` values will\n // equal negative the scroll position.\n const document = this._document;\n const window = this._getWindow();\n const documentElement = document.documentElement;\n const documentRect = documentElement.getBoundingClientRect();\n const top = -documentRect.top ||\n document.body.scrollTop ||\n window.scrollY ||\n documentElement.scrollTop ||\n 0;\n const left = -documentRect.left ||\n document.body.scrollLeft ||\n window.scrollX ||\n documentElement.scrollLeft ||\n 0;\n return { top, left };\n }\n /**\n * Returns a stream that emits whenever the size of the viewport changes.\n * This stream emits outside of the Angular zone.\n * @param throttleTime Time in milliseconds to throttle the stream.\n */\n change(throttleTime = DEFAULT_RESIZE_TIME) {\n return throttleTime > 0 ? this._change.pipe(auditTime(throttleTime)) : this._change;\n }\n /** Use defaultView of injected document if available or fallback to global window reference */\n _getWindow() {\n return this._document.defaultView || window;\n }\n /** Updates the cached viewport size. */\n _updateViewportSize() {\n const window = this._getWindow();\n this._viewportSize = this._platform.isBrowser\n ? { width: window.innerWidth, height: window.innerHeight }\n : { width: 0, height: 0 };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: ViewportRuler, deps: [{ token: i1.Platform }, { token: i0.NgZone }, { token: DOCUMENT, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: ViewportRuler, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: ViewportRuler, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: i1.Platform }, { type: i0.NgZone }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [DOCUMENT]\n }] }]; } });\n\nconst VIRTUAL_SCROLLABLE = new InjectionToken('VIRTUAL_SCROLLABLE');\n/**\n * Extending the {@link CdkScrollable} to be used as scrolling container for virtual scrolling.\n */\nclass CdkVirtualScrollable extends CdkScrollable {\n constructor(elementRef, scrollDispatcher, ngZone, dir) {\n super(elementRef, scrollDispatcher, ngZone, dir);\n }\n /**\n * Measure the viewport size for the provided orientation.\n *\n * @param orientation The orientation to measure the size from.\n */\n measureViewportSize(orientation) {\n const viewportEl = this.elementRef.nativeElement;\n return orientation === 'horizontal' ? viewportEl.clientWidth : viewportEl.clientHeight;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkVirtualScrollable, deps: [{ token: i0.ElementRef }, { token: ScrollDispatcher }, { token: i0.NgZone }, { token: i2.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.0\", type: CdkVirtualScrollable, usesInheritance: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkVirtualScrollable, decorators: [{\n type: Directive\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: ScrollDispatcher }, { type: i0.NgZone }, { type: i2.Directionality, decorators: [{\n type: Optional\n }] }]; } });\n\n/** Checks if the given ranges are equal. */\nfunction rangesEqual(r1, r2) {\n return r1.start == r2.start && r1.end == r2.end;\n}\n/**\n * Scheduler to be used for scroll events. Needs to fall back to\n * something that doesn't rely on requestAnimationFrame on environments\n * that don't support it (e.g. server-side rendering).\n */\nconst SCROLL_SCHEDULER = typeof requestAnimationFrame !== 'undefined' ? animationFrameScheduler : asapScheduler;\n/** A viewport that virtualizes its scrolling with the help of `CdkVirtualForOf`. */\nclass CdkVirtualScrollViewport extends CdkVirtualScrollable {\n /** The direction the viewport scrolls. */\n get orientation() {\n return this._orientation;\n }\n set orientation(orientation) {\n if (this._orientation !== orientation) {\n this._orientation = orientation;\n this._calculateSpacerSize();\n }\n }\n /**\n * Whether rendered items should persist in the DOM after scrolling out of view. By default, items\n * will be removed.\n */\n get appendOnly() {\n return this._appendOnly;\n }\n set appendOnly(value) {\n this._appendOnly = coerceBooleanProperty(value);\n }\n constructor(elementRef, _changeDetectorRef, ngZone, _scrollStrategy, dir, scrollDispatcher, viewportRuler, scrollable) {\n super(elementRef, scrollDispatcher, ngZone, dir);\n this.elementRef = elementRef;\n this._changeDetectorRef = _changeDetectorRef;\n this._scrollStrategy = _scrollStrategy;\n this.scrollable = scrollable;\n this._platform = inject(Platform);\n /** Emits when the viewport is detached from a CdkVirtualForOf. */\n this._detachedSubject = new Subject();\n /** Emits when the rendered range changes. */\n this._renderedRangeSubject = new Subject();\n this._orientation = 'vertical';\n this._appendOnly = false;\n // Note: we don't use the typical EventEmitter here because we need to subscribe to the scroll\n // strategy lazily (i.e. only if the user is actually listening to the events). We do this because\n // depending on how the strategy calculates the scrolled index, it may come at a cost to\n // performance.\n /** Emits when the index of the first element visible in the viewport changes. */\n this.scrolledIndexChange = new Observable((observer) => this._scrollStrategy.scrolledIndexChange.subscribe(index => Promise.resolve().then(() => this.ngZone.run(() => observer.next(index)))));\n /** A stream that emits whenever the rendered range changes. */\n this.renderedRangeStream = this._renderedRangeSubject;\n /**\n * The total size of all content (in pixels), including content that is not currently rendered.\n */\n this._totalContentSize = 0;\n /** A string representing the `style.width` property value to be used for the spacer element. */\n this._totalContentWidth = '';\n /** A string representing the `style.height` property value to be used for the spacer element. */\n this._totalContentHeight = '';\n /** The currently rendered range of indices. */\n this._renderedRange = { start: 0, end: 0 };\n /** The length of the data bound to this viewport (in number of items). */\n this._dataLength = 0;\n /** The size of the viewport (in pixels). */\n this._viewportSize = 0;\n /** The last rendered content offset that was set. */\n this._renderedContentOffset = 0;\n /**\n * Whether the last rendered content offset was to the end of the content (and therefore needs to\n * be rewritten as an offset to the start of the content).\n */\n this._renderedContentOffsetNeedsRewrite = false;\n /** Whether there is a pending change detection cycle. */\n this._isChangeDetectionPending = false;\n /** A list of functions to run after the next change detection cycle. */\n this._runAfterChangeDetection = [];\n /** Subscription to changes in the viewport size. */\n this._viewportChanges = Subscription.EMPTY;\n if (!_scrollStrategy && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Error: cdk-virtual-scroll-viewport requires the \"itemSize\" property to be set.');\n }\n this._viewportChanges = viewportRuler.change().subscribe(() => {\n this.checkViewportSize();\n });\n if (!this.scrollable) {\n // No scrollable is provided, so the virtual-scroll-viewport needs to become a scrollable\n this.elementRef.nativeElement.classList.add('cdk-virtual-scrollable');\n this.scrollable = this;\n }\n }\n ngOnInit() {\n // Scrolling depends on the element dimensions which we can't get during SSR.\n if (!this._platform.isBrowser) {\n return;\n }\n if (this.scrollable === this) {\n super.ngOnInit();\n }\n // It's still too early to measure the viewport at this point. Deferring with a promise allows\n // the Viewport to be rendered with the correct size before we measure. We run this outside the\n // zone to avoid causing more change detection cycles. We handle the change detection loop\n // ourselves instead.\n this.ngZone.runOutsideAngular(() => Promise.resolve().then(() => {\n this._measureViewportSize();\n this._scrollStrategy.attach(this);\n this.scrollable\n .elementScrolled()\n .pipe(\n // Start off with a fake scroll event so we properly detect our initial position.\n startWith(null), \n // Collect multiple events into one until the next animation frame. This way if\n // there are multiple scroll events in the same frame we only need to recheck\n // our layout once.\n auditTime(0, SCROLL_SCHEDULER))\n .subscribe(() => this._scrollStrategy.onContentScrolled());\n this._markChangeDetectionNeeded();\n }));\n }\n ngOnDestroy() {\n this.detach();\n this._scrollStrategy.detach();\n // Complete all subjects\n this._renderedRangeSubject.complete();\n this._detachedSubject.complete();\n this._viewportChanges.unsubscribe();\n super.ngOnDestroy();\n }\n /** Attaches a `CdkVirtualScrollRepeater` to this viewport. */\n attach(forOf) {\n if (this._forOf && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('CdkVirtualScrollViewport is already attached.');\n }\n // Subscribe to the data stream of the CdkVirtualForOf to keep track of when the data length\n // changes. Run outside the zone to avoid triggering change detection, since we're managing the\n // change detection loop ourselves.\n this.ngZone.runOutsideAngular(() => {\n this._forOf = forOf;\n this._forOf.dataStream.pipe(takeUntil(this._detachedSubject)).subscribe(data => {\n const newLength = data.length;\n if (newLength !== this._dataLength) {\n this._dataLength = newLength;\n this._scrollStrategy.onDataLengthChanged();\n }\n this._doChangeDetection();\n });\n });\n }\n /** Detaches the current `CdkVirtualForOf`. */\n detach() {\n this._forOf = null;\n this._detachedSubject.next();\n }\n /** Gets the length of the data bound to this viewport (in number of items). */\n getDataLength() {\n return this._dataLength;\n }\n /** Gets the size of the viewport (in pixels). */\n getViewportSize() {\n return this._viewportSize;\n }\n // TODO(mmalerba): This is technically out of sync with what's really rendered until a render\n // cycle happens. I'm being careful to only call it after the render cycle is complete and before\n // setting it to something else, but its error prone and should probably be split into\n // `pendingRange` and `renderedRange`, the latter reflecting whats actually in the DOM.\n /** Get the current rendered range of items. */\n getRenderedRange() {\n return this._renderedRange;\n }\n measureBoundingClientRectWithScrollOffset(from) {\n return this.getElementRef().nativeElement.getBoundingClientRect()[from];\n }\n /**\n * Sets the total size of all content (in pixels), including content that is not currently\n * rendered.\n */\n setTotalContentSize(size) {\n if (this._totalContentSize !== size) {\n this._totalContentSize = size;\n this._calculateSpacerSize();\n this._markChangeDetectionNeeded();\n }\n }\n /** Sets the currently rendered range of indices. */\n setRenderedRange(range) {\n if (!rangesEqual(this._renderedRange, range)) {\n if (this.appendOnly) {\n range = { start: 0, end: Math.max(this._renderedRange.end, range.end) };\n }\n this._renderedRangeSubject.next((this._renderedRange = range));\n this._markChangeDetectionNeeded(() => this._scrollStrategy.onContentRendered());\n }\n }\n /**\n * Gets the offset from the start of the viewport to the start of the rendered data (in pixels).\n */\n getOffsetToRenderedContentStart() {\n return this._renderedContentOffsetNeedsRewrite ? null : this._renderedContentOffset;\n }\n /**\n * Sets the offset from the start of the viewport to either the start or end of the rendered data\n * (in pixels).\n */\n setRenderedContentOffset(offset, to = 'to-start') {\n // In appendOnly, we always start from the top\n offset = this.appendOnly && to === 'to-start' ? 0 : offset;\n // For a horizontal viewport in a right-to-left language we need to translate along the x-axis\n // in the negative direction.\n const isRtl = this.dir && this.dir.value == 'rtl';\n const isHorizontal = this.orientation == 'horizontal';\n const axis = isHorizontal ? 'X' : 'Y';\n const axisDirection = isHorizontal && isRtl ? -1 : 1;\n let transform = `translate${axis}(${Number(axisDirection * offset)}px)`;\n this._renderedContentOffset = offset;\n if (to === 'to-end') {\n transform += ` translate${axis}(-100%)`;\n // The viewport should rewrite this as a `to-start` offset on the next render cycle. Otherwise\n // elements will appear to expand in the wrong direction (e.g. `mat-expansion-panel` would\n // expand upward).\n this._renderedContentOffsetNeedsRewrite = true;\n }\n if (this._renderedContentTransform != transform) {\n // We know this value is safe because we parse `offset` with `Number()` before passing it\n // into the string.\n this._renderedContentTransform = transform;\n this._markChangeDetectionNeeded(() => {\n if (this._renderedContentOffsetNeedsRewrite) {\n this._renderedContentOffset -= this.measureRenderedContentSize();\n this._renderedContentOffsetNeedsRewrite = false;\n this.setRenderedContentOffset(this._renderedContentOffset);\n }\n else {\n this._scrollStrategy.onRenderedOffsetChanged();\n }\n });\n }\n }\n /**\n * Scrolls to the given offset from the start of the viewport. Please note that this is not always\n * the same as setting `scrollTop` or `scrollLeft`. In a horizontal viewport with right-to-left\n * direction, this would be the equivalent of setting a fictional `scrollRight` property.\n * @param offset The offset to scroll to.\n * @param behavior The ScrollBehavior to use when scrolling. Default is behavior is `auto`.\n */\n scrollToOffset(offset, behavior = 'auto') {\n const options = { behavior };\n if (this.orientation === 'horizontal') {\n options.start = offset;\n }\n else {\n options.top = offset;\n }\n this.scrollable.scrollTo(options);\n }\n /**\n * Scrolls to the offset for the given index.\n * @param index The index of the element to scroll to.\n * @param behavior The ScrollBehavior to use when scrolling. Default is behavior is `auto`.\n */\n scrollToIndex(index, behavior = 'auto') {\n this._scrollStrategy.scrollToIndex(index, behavior);\n }\n /**\n * Gets the current scroll offset from the start of the scrollable (in pixels).\n * @param from The edge to measure the offset from. Defaults to 'top' in vertical mode and 'start'\n * in horizontal mode.\n */\n measureScrollOffset(from) {\n // This is to break the call cycle\n let measureScrollOffset;\n if (this.scrollable == this) {\n measureScrollOffset = (_from) => super.measureScrollOffset(_from);\n }\n else {\n measureScrollOffset = (_from) => this.scrollable.measureScrollOffset(_from);\n }\n return Math.max(0, measureScrollOffset(from ?? (this.orientation === 'horizontal' ? 'start' : 'top')) -\n this.measureViewportOffset());\n }\n /**\n * Measures the offset of the viewport from the scrolling container\n * @param from The edge to measure from.\n */\n measureViewportOffset(from) {\n let fromRect;\n const LEFT = 'left';\n const RIGHT = 'right';\n const isRtl = this.dir?.value == 'rtl';\n if (from == 'start') {\n fromRect = isRtl ? RIGHT : LEFT;\n }\n else if (from == 'end') {\n fromRect = isRtl ? LEFT : RIGHT;\n }\n else if (from) {\n fromRect = from;\n }\n else {\n fromRect = this.orientation === 'horizontal' ? 'left' : 'top';\n }\n const scrollerClientRect = this.scrollable.measureBoundingClientRectWithScrollOffset(fromRect);\n const viewportClientRect = this.elementRef.nativeElement.getBoundingClientRect()[fromRect];\n return viewportClientRect - scrollerClientRect;\n }\n /** Measure the combined size of all of the rendered items. */\n measureRenderedContentSize() {\n const contentEl = this._contentWrapper.nativeElement;\n return this.orientation === 'horizontal' ? contentEl.offsetWidth : contentEl.offsetHeight;\n }\n /**\n * Measure the total combined size of the given range. Throws if the range includes items that are\n * not rendered.\n */\n measureRangeSize(range) {\n if (!this._forOf) {\n return 0;\n }\n return this._forOf.measureRangeSize(range, this.orientation);\n }\n /** Update the viewport dimensions and re-render. */\n checkViewportSize() {\n // TODO: Cleanup later when add logic for handling content resize\n this._measureViewportSize();\n this._scrollStrategy.onDataLengthChanged();\n }\n /** Measure the viewport size. */\n _measureViewportSize() {\n this._viewportSize = this.scrollable.measureViewportSize(this.orientation);\n }\n /** Queue up change detection to run. */\n _markChangeDetectionNeeded(runAfter) {\n if (runAfter) {\n this._runAfterChangeDetection.push(runAfter);\n }\n // Use a Promise to batch together calls to `_doChangeDetection`. This way if we set a bunch of\n // properties sequentially we only have to run `_doChangeDetection` once at the end.\n if (!this._isChangeDetectionPending) {\n this._isChangeDetectionPending = true;\n this.ngZone.runOutsideAngular(() => Promise.resolve().then(() => {\n this._doChangeDetection();\n }));\n }\n }\n /** Run change detection. */\n _doChangeDetection() {\n this._isChangeDetectionPending = false;\n // Apply the content transform. The transform can't be set via an Angular binding because\n // bypassSecurityTrustStyle is banned in Google. However the value is safe, it's composed of\n // string literals, a variable that can only be 'X' or 'Y', and user input that is run through\n // the `Number` function first to coerce it to a numeric value.\n this._contentWrapper.nativeElement.style.transform = this._renderedContentTransform;\n // Apply changes to Angular bindings. Note: We must call `markForCheck` to run change detection\n // from the root, since the repeated items are content projected in. Calling `detectChanges`\n // instead does not properly check the projected content.\n this.ngZone.run(() => this._changeDetectorRef.markForCheck());\n const runAfterChangeDetection = this._runAfterChangeDetection;\n this._runAfterChangeDetection = [];\n for (const fn of runAfterChangeDetection) {\n fn();\n }\n }\n /** Calculates the `style.width` and `style.height` for the spacer element. */\n _calculateSpacerSize() {\n this._totalContentHeight =\n this.orientation === 'horizontal' ? '' : `${this._totalContentSize}px`;\n this._totalContentWidth =\n this.orientation === 'horizontal' ? `${this._totalContentSize}px` : '';\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkVirtualScrollViewport, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: VIRTUAL_SCROLL_STRATEGY, optional: true }, { token: i2.Directionality, optional: true }, { token: ScrollDispatcher }, { token: ViewportRuler }, { token: VIRTUAL_SCROLLABLE, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"16.0.0\", type: CdkVirtualScrollViewport, isStandalone: true, selector: \"cdk-virtual-scroll-viewport\", inputs: { orientation: \"orientation\", appendOnly: \"appendOnly\" }, outputs: { scrolledIndexChange: \"scrolledIndexChange\" }, host: { properties: { \"class.cdk-virtual-scroll-orientation-horizontal\": \"orientation === \\\"horizontal\\\"\", \"class.cdk-virtual-scroll-orientation-vertical\": \"orientation !== \\\"horizontal\\\"\" }, classAttribute: \"cdk-virtual-scroll-viewport\" }, providers: [\n {\n provide: CdkScrollable,\n useFactory: (virtualScrollable, viewport) => virtualScrollable || viewport,\n deps: [[new Optional(), new Inject(VIRTUAL_SCROLLABLE)], CdkVirtualScrollViewport],\n },\n ], viewQueries: [{ propertyName: \"_contentWrapper\", first: true, predicate: [\"contentWrapper\"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: \"\\n
\\n \\n
\\n\\n
\\n\", styles: [\"cdk-virtual-scroll-viewport{display:block;position:relative;transform:translateZ(0)}.cdk-virtual-scrollable{overflow:auto;will-change:scroll-position;contain:strict;-webkit-overflow-scrolling:touch}.cdk-virtual-scroll-content-wrapper{position:absolute;top:0;left:0;contain:content}[dir=rtl] .cdk-virtual-scroll-content-wrapper{right:0;left:auto}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper{min-height:100%}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-left:0;padding-right:0;margin-left:0;margin-right:0;border-left-width:0;border-right-width:0;outline:none}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{min-width:100%}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;border-top-width:0;border-bottom-width:0;outline:none}.cdk-virtual-scroll-spacer{height:1px;transform-origin:0 0;flex:0 0 auto}[dir=rtl] .cdk-virtual-scroll-spacer{transform-origin:100% 0}\"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkVirtualScrollViewport, decorators: [{\n type: Component,\n args: [{ selector: 'cdk-virtual-scroll-viewport', host: {\n 'class': 'cdk-virtual-scroll-viewport',\n '[class.cdk-virtual-scroll-orientation-horizontal]': 'orientation === \"horizontal\"',\n '[class.cdk-virtual-scroll-orientation-vertical]': 'orientation !== \"horizontal\"',\n }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, providers: [\n {\n provide: CdkScrollable,\n useFactory: (virtualScrollable, viewport) => virtualScrollable || viewport,\n deps: [[new Optional(), new Inject(VIRTUAL_SCROLLABLE)], CdkVirtualScrollViewport],\n },\n ], template: \"\\n
\\n \\n
\\n\\n
\\n\", styles: [\"cdk-virtual-scroll-viewport{display:block;position:relative;transform:translateZ(0)}.cdk-virtual-scrollable{overflow:auto;will-change:scroll-position;contain:strict;-webkit-overflow-scrolling:touch}.cdk-virtual-scroll-content-wrapper{position:absolute;top:0;left:0;contain:content}[dir=rtl] .cdk-virtual-scroll-content-wrapper{right:0;left:auto}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper{min-height:100%}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-left:0;padding-right:0;margin-left:0;margin-right:0;border-left-width:0;border-right-width:0;outline:none}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{min-width:100%}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;border-top-width:0;border-bottom-width:0;outline:none}.cdk-virtual-scroll-spacer{height:1px;transform-origin:0 0;flex:0 0 auto}[dir=rtl] .cdk-virtual-scroll-spacer{transform-origin:100% 0}\"] }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [VIRTUAL_SCROLL_STRATEGY]\n }] }, { type: i2.Directionality, decorators: [{\n type: Optional\n }] }, { type: ScrollDispatcher }, { type: ViewportRuler }, { type: CdkVirtualScrollable, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [VIRTUAL_SCROLLABLE]\n }] }]; }, propDecorators: { orientation: [{\n type: Input\n }], appendOnly: [{\n type: Input\n }], scrolledIndexChange: [{\n type: Output\n }], _contentWrapper: [{\n type: ViewChild,\n args: ['contentWrapper', { static: true }]\n }] } });\n\n/** Helper to extract the offset of a DOM Node in a certain direction. */\nfunction getOffset(orientation, direction, node) {\n const el = node;\n if (!el.getBoundingClientRect) {\n return 0;\n }\n const rect = el.getBoundingClientRect();\n if (orientation === 'horizontal') {\n return direction === 'start' ? rect.left : rect.right;\n }\n return direction === 'start' ? rect.top : rect.bottom;\n}\n/**\n * A directive similar to `ngForOf` to be used for rendering data inside a virtual scrolling\n * container.\n */\nclass CdkVirtualForOf {\n /** The DataSource to display. */\n get cdkVirtualForOf() {\n return this._cdkVirtualForOf;\n }\n set cdkVirtualForOf(value) {\n this._cdkVirtualForOf = value;\n if (isDataSource(value)) {\n this._dataSourceChanges.next(value);\n }\n else {\n // If value is an an NgIterable, convert it to an array.\n this._dataSourceChanges.next(new ArrayDataSource(isObservable(value) ? value : Array.from(value || [])));\n }\n }\n /**\n * The `TrackByFunction` to use for tracking changes. The `TrackByFunction` takes the index and\n * the item and produces a value to be used as the item's identity when tracking changes.\n */\n get cdkVirtualForTrackBy() {\n return this._cdkVirtualForTrackBy;\n }\n set cdkVirtualForTrackBy(fn) {\n this._needsUpdate = true;\n this._cdkVirtualForTrackBy = fn\n ? (index, item) => fn(index + (this._renderedRange ? this._renderedRange.start : 0), item)\n : undefined;\n }\n /** The template used to stamp out new elements. */\n set cdkVirtualForTemplate(value) {\n if (value) {\n this._needsUpdate = true;\n this._template = value;\n }\n }\n /**\n * The size of the cache used to store templates that are not being used for re-use later.\n * Setting the cache size to `0` will disable caching. Defaults to 20 templates.\n */\n get cdkVirtualForTemplateCacheSize() {\n return this._viewRepeater.viewCacheSize;\n }\n set cdkVirtualForTemplateCacheSize(size) {\n this._viewRepeater.viewCacheSize = coerceNumberProperty(size);\n }\n constructor(\n /** The view container to add items to. */\n _viewContainerRef, \n /** The template to use when stamping out new items. */\n _template, \n /** The set of available differs. */\n _differs, \n /** The strategy used to render items in the virtual scroll viewport. */\n _viewRepeater, \n /** The virtual scrolling viewport that these items are being rendered in. */\n _viewport, ngZone) {\n this._viewContainerRef = _viewContainerRef;\n this._template = _template;\n this._differs = _differs;\n this._viewRepeater = _viewRepeater;\n this._viewport = _viewport;\n /** Emits when the rendered view of the data changes. */\n this.viewChange = new Subject();\n /** Subject that emits when a new DataSource instance is given. */\n this._dataSourceChanges = new Subject();\n /** Emits whenever the data in the current DataSource changes. */\n this.dataStream = this._dataSourceChanges.pipe(\n // Start off with null `DataSource`.\n startWith(null), \n // Bundle up the previous and current data sources so we can work with both.\n pairwise(), \n // Use `_changeDataSource` to disconnect from the previous data source and connect to the\n // new one, passing back a stream of data changes which we run through `switchMap` to give\n // us a data stream that emits the latest data from whatever the current `DataSource` is.\n switchMap(([prev, cur]) => this._changeDataSource(prev, cur)), \n // Replay the last emitted data when someone subscribes.\n shareReplay(1));\n /** The differ used to calculate changes to the data. */\n this._differ = null;\n /** Whether the rendered data should be updated during the next ngDoCheck cycle. */\n this._needsUpdate = false;\n this._destroyed = new Subject();\n this.dataStream.subscribe(data => {\n this._data = data;\n this._onRenderedDataChange();\n });\n this._viewport.renderedRangeStream.pipe(takeUntil(this._destroyed)).subscribe(range => {\n this._renderedRange = range;\n if (this.viewChange.observers.length) {\n ngZone.run(() => this.viewChange.next(this._renderedRange));\n }\n this._onRenderedDataChange();\n });\n this._viewport.attach(this);\n }\n /**\n * Measures the combined size (width for horizontal orientation, height for vertical) of all items\n * in the specified range. Throws an error if the range includes items that are not currently\n * rendered.\n */\n measureRangeSize(range, orientation) {\n if (range.start >= range.end) {\n return 0;\n }\n if ((range.start < this._renderedRange.start || range.end > this._renderedRange.end) &&\n (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error(`Error: attempted to measure an item that isn't rendered.`);\n }\n // The index into the list of rendered views for the first item in the range.\n const renderedStartIndex = range.start - this._renderedRange.start;\n // The length of the range we're measuring.\n const rangeLen = range.end - range.start;\n // Loop over all the views, find the first and land node and compute the size by subtracting\n // the top of the first node from the bottom of the last one.\n let firstNode;\n let lastNode;\n // Find the first node by starting from the beginning and going forwards.\n for (let i = 0; i < rangeLen; i++) {\n const view = this._viewContainerRef.get(i + renderedStartIndex);\n if (view && view.rootNodes.length) {\n firstNode = lastNode = view.rootNodes[0];\n break;\n }\n }\n // Find the last node by starting from the end and going backwards.\n for (let i = rangeLen - 1; i > -1; i--) {\n const view = this._viewContainerRef.get(i + renderedStartIndex);\n if (view && view.rootNodes.length) {\n lastNode = view.rootNodes[view.rootNodes.length - 1];\n break;\n }\n }\n return firstNode && lastNode\n ? getOffset(orientation, 'end', lastNode) - getOffset(orientation, 'start', firstNode)\n : 0;\n }\n ngDoCheck() {\n if (this._differ && this._needsUpdate) {\n // TODO(mmalerba): We should differentiate needs update due to scrolling and a new portion of\n // this list being rendered (can use simpler algorithm) vs needs update due to data actually\n // changing (need to do this diff).\n const changes = this._differ.diff(this._renderedItems);\n if (!changes) {\n this._updateContext();\n }\n else {\n this._applyChanges(changes);\n }\n this._needsUpdate = false;\n }\n }\n ngOnDestroy() {\n this._viewport.detach();\n this._dataSourceChanges.next(undefined);\n this._dataSourceChanges.complete();\n this.viewChange.complete();\n this._destroyed.next();\n this._destroyed.complete();\n this._viewRepeater.detach();\n }\n /** React to scroll state changes in the viewport. */\n _onRenderedDataChange() {\n if (!this._renderedRange) {\n return;\n }\n this._renderedItems = this._data.slice(this._renderedRange.start, this._renderedRange.end);\n if (!this._differ) {\n // Use a wrapper function for the `trackBy` so any new values are\n // picked up automatically without having to recreate the differ.\n this._differ = this._differs.find(this._renderedItems).create((index, item) => {\n return this.cdkVirtualForTrackBy ? this.cdkVirtualForTrackBy(index, item) : item;\n });\n }\n this._needsUpdate = true;\n }\n /** Swap out one `DataSource` for another. */\n _changeDataSource(oldDs, newDs) {\n if (oldDs) {\n oldDs.disconnect(this);\n }\n this._needsUpdate = true;\n return newDs ? newDs.connect(this) : of();\n }\n /** Update the `CdkVirtualForOfContext` for all views. */\n _updateContext() {\n const count = this._data.length;\n let i = this._viewContainerRef.length;\n while (i--) {\n const view = this._viewContainerRef.get(i);\n view.context.index = this._renderedRange.start + i;\n view.context.count = count;\n this._updateComputedContextProperties(view.context);\n view.detectChanges();\n }\n }\n /** Apply changes to the DOM. */\n _applyChanges(changes) {\n this._viewRepeater.applyChanges(changes, this._viewContainerRef, (record, _adjustedPreviousIndex, currentIndex) => this._getEmbeddedViewArgs(record, currentIndex), record => record.item);\n // Update $implicit for any items that had an identity change.\n changes.forEachIdentityChange((record) => {\n const view = this._viewContainerRef.get(record.currentIndex);\n view.context.$implicit = record.item;\n });\n // Update the context variables on all items.\n const count = this._data.length;\n let i = this._viewContainerRef.length;\n while (i--) {\n const view = this._viewContainerRef.get(i);\n view.context.index = this._renderedRange.start + i;\n view.context.count = count;\n this._updateComputedContextProperties(view.context);\n }\n }\n /** Update the computed properties on the `CdkVirtualForOfContext`. */\n _updateComputedContextProperties(context) {\n context.first = context.index === 0;\n context.last = context.index === context.count - 1;\n context.even = context.index % 2 === 0;\n context.odd = !context.even;\n }\n _getEmbeddedViewArgs(record, index) {\n // Note that it's important that we insert the item directly at the proper index,\n // rather than inserting it and the moving it in place, because if there's a directive\n // on the same node that injects the `ViewContainerRef`, Angular will insert another\n // comment node which can throw off the move when it's being repeated for all items.\n return {\n templateRef: this._template,\n context: {\n $implicit: record.item,\n // It's guaranteed that the iterable is not \"undefined\" or \"null\" because we only\n // generate views for elements if the \"cdkVirtualForOf\" iterable has elements.\n cdkVirtualForOf: this._cdkVirtualForOf,\n index: -1,\n count: -1,\n first: false,\n last: false,\n odd: false,\n even: false,\n },\n index,\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkVirtualForOf, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: i0.IterableDiffers }, { token: _VIEW_REPEATER_STRATEGY }, { token: CdkVirtualScrollViewport, skipSelf: true }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.0\", type: CdkVirtualForOf, isStandalone: true, selector: \"[cdkVirtualFor][cdkVirtualForOf]\", inputs: { cdkVirtualForOf: \"cdkVirtualForOf\", cdkVirtualForTrackBy: \"cdkVirtualForTrackBy\", cdkVirtualForTemplate: \"cdkVirtualForTemplate\", cdkVirtualForTemplateCacheSize: \"cdkVirtualForTemplateCacheSize\" }, providers: [{ provide: _VIEW_REPEATER_STRATEGY, useClass: _RecycleViewRepeaterStrategy }], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkVirtualForOf, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkVirtualFor][cdkVirtualForOf]',\n providers: [{ provide: _VIEW_REPEATER_STRATEGY, useClass: _RecycleViewRepeaterStrategy }],\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: i0.IterableDiffers }, { type: i2$1._RecycleViewRepeaterStrategy, decorators: [{\n type: Inject,\n args: [_VIEW_REPEATER_STRATEGY]\n }] }, { type: CdkVirtualScrollViewport, decorators: [{\n type: SkipSelf\n }] }, { type: i0.NgZone }]; }, propDecorators: { cdkVirtualForOf: [{\n type: Input\n }], cdkVirtualForTrackBy: [{\n type: Input\n }], cdkVirtualForTemplate: [{\n type: Input\n }], cdkVirtualForTemplateCacheSize: [{\n type: Input\n }] } });\n\n/**\n * Provides a virtual scrollable for the element it is attached to.\n */\nclass CdkVirtualScrollableElement extends CdkVirtualScrollable {\n constructor(elementRef, scrollDispatcher, ngZone, dir) {\n super(elementRef, scrollDispatcher, ngZone, dir);\n }\n measureBoundingClientRectWithScrollOffset(from) {\n return (this.getElementRef().nativeElement.getBoundingClientRect()[from] -\n this.measureScrollOffset(from));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkVirtualScrollableElement, deps: [{ token: i0.ElementRef }, { token: ScrollDispatcher }, { token: i0.NgZone }, { token: i2.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.0\", type: CdkVirtualScrollableElement, isStandalone: true, selector: \"[cdkVirtualScrollingElement]\", host: { classAttribute: \"cdk-virtual-scrollable\" }, providers: [{ provide: VIRTUAL_SCROLLABLE, useExisting: CdkVirtualScrollableElement }], usesInheritance: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkVirtualScrollableElement, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkVirtualScrollingElement]',\n providers: [{ provide: VIRTUAL_SCROLLABLE, useExisting: CdkVirtualScrollableElement }],\n standalone: true,\n host: {\n 'class': 'cdk-virtual-scrollable',\n },\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: ScrollDispatcher }, { type: i0.NgZone }, { type: i2.Directionality, decorators: [{\n type: Optional\n }] }]; } });\n\n/**\n * Provides as virtual scrollable for the global / window scrollbar.\n */\nclass CdkVirtualScrollableWindow extends CdkVirtualScrollable {\n constructor(scrollDispatcher, ngZone, dir) {\n super(new ElementRef(document.documentElement), scrollDispatcher, ngZone, dir);\n this._elementScrolled = new Observable((observer) => this.ngZone.runOutsideAngular(() => fromEvent(document, 'scroll').pipe(takeUntil(this._destroyed)).subscribe(observer)));\n }\n measureBoundingClientRectWithScrollOffset(from) {\n return this.getElementRef().nativeElement.getBoundingClientRect()[from];\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkVirtualScrollableWindow, deps: [{ token: ScrollDispatcher }, { token: i0.NgZone }, { token: i2.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.0\", type: CdkVirtualScrollableWindow, isStandalone: true, selector: \"cdk-virtual-scroll-viewport[scrollWindow]\", providers: [{ provide: VIRTUAL_SCROLLABLE, useExisting: CdkVirtualScrollableWindow }], usesInheritance: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkVirtualScrollableWindow, decorators: [{\n type: Directive,\n args: [{\n selector: 'cdk-virtual-scroll-viewport[scrollWindow]',\n providers: [{ provide: VIRTUAL_SCROLLABLE, useExisting: CdkVirtualScrollableWindow }],\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: ScrollDispatcher }, { type: i0.NgZone }, { type: i2.Directionality, decorators: [{\n type: Optional\n }] }]; } });\n\nclass CdkScrollableModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkScrollableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkScrollableModule, imports: [CdkScrollable], exports: [CdkScrollable] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkScrollableModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkScrollableModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [CdkScrollable],\n imports: [CdkScrollable],\n }]\n }] });\n/**\n * @docs-primary-export\n */\nclass ScrollingModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: ScrollingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"16.0.0\", ngImport: i0, type: ScrollingModule, imports: [BidiModule, CdkScrollableModule, CdkVirtualScrollViewport,\n CdkFixedSizeVirtualScroll,\n CdkVirtualForOf,\n CdkVirtualScrollableWindow,\n CdkVirtualScrollableElement], exports: [BidiModule, CdkScrollableModule, CdkFixedSizeVirtualScroll,\n CdkVirtualForOf,\n CdkVirtualScrollViewport,\n CdkVirtualScrollableWindow,\n CdkVirtualScrollableElement] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: ScrollingModule, imports: [BidiModule,\n CdkScrollableModule, BidiModule, CdkScrollableModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: ScrollingModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n BidiModule,\n CdkScrollableModule,\n CdkVirtualScrollViewport,\n CdkFixedSizeVirtualScroll,\n CdkVirtualForOf,\n CdkVirtualScrollableWindow,\n CdkVirtualScrollableElement,\n ],\n exports: [\n BidiModule,\n CdkScrollableModule,\n CdkFixedSizeVirtualScroll,\n CdkVirtualForOf,\n CdkVirtualScrollViewport,\n CdkVirtualScrollableWindow,\n CdkVirtualScrollableElement,\n ],\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CdkFixedSizeVirtualScroll, CdkScrollable, CdkScrollableModule, CdkVirtualForOf, CdkVirtualScrollViewport, CdkVirtualScrollable, CdkVirtualScrollableElement, CdkVirtualScrollableWindow, DEFAULT_RESIZE_TIME, DEFAULT_SCROLL_TIME, FixedSizeVirtualScrollStrategy, ScrollDispatcher, ScrollingModule, VIRTUAL_SCROLLABLE, VIRTUAL_SCROLL_STRATEGY, ViewportRuler, _fixedSizeVirtualScrollStrategyFactory };\n","import { FocusKeyManager } from '@angular/cdk/a11y';\nimport * as i1 from '@angular/cdk/bidi';\nimport { BidiModule } from '@angular/cdk/bidi';\nimport { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';\nimport { hasModifierKey, SPACE, ENTER } from '@angular/cdk/keycodes';\nimport * as i0 from '@angular/core';\nimport { Directive, InjectionToken, EventEmitter, forwardRef, TemplateRef, Component, ViewEncapsulation, ChangeDetectionStrategy, Inject, Optional, ContentChild, ViewChild, Input, Output, QueryList, ContentChildren, NgModule } from '@angular/core';\nimport { _getFocusedElementPierceShadowDom } from '@angular/cdk/platform';\nimport { Subject, of } from 'rxjs';\nimport { startWith, takeUntil } from 'rxjs/operators';\n\nclass CdkStepHeader {\n constructor(_elementRef) {\n this._elementRef = _elementRef;\n }\n /** Focuses the step header. */\n focus() {\n this._elementRef.nativeElement.focus();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkStepHeader, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.0\", type: CdkStepHeader, selector: \"[cdkStepHeader]\", host: { attributes: { \"role\": \"tab\" } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkStepHeader, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkStepHeader]',\n host: {\n 'role': 'tab',\n },\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });\n\nclass CdkStepLabel {\n constructor(/** @docs-private */ template) {\n this.template = template;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkStepLabel, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.0\", type: CdkStepLabel, selector: \"[cdkStepLabel]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkStepLabel, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkStepLabel]',\n }]\n }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });\n\n/** Used to generate unique ID for each stepper component. */\nlet nextId = 0;\n/** Change event emitted on selection changes. */\nclass StepperSelectionEvent {\n}\n/** Enum to represent the different states of the steps. */\nconst STEP_STATE = {\n NUMBER: 'number',\n EDIT: 'edit',\n DONE: 'done',\n ERROR: 'error',\n};\n/** InjectionToken that can be used to specify the global stepper options. */\nconst STEPPER_GLOBAL_OPTIONS = new InjectionToken('STEPPER_GLOBAL_OPTIONS');\nclass CdkStep {\n /** Whether the user can return to this step once it has been marked as completed. */\n get editable() {\n return this._editable;\n }\n set editable(value) {\n this._editable = coerceBooleanProperty(value);\n }\n /** Whether the completion of step is optional. */\n get optional() {\n return this._optional;\n }\n set optional(value) {\n this._optional = coerceBooleanProperty(value);\n }\n /** Whether step is marked as completed. */\n get completed() {\n return this._completedOverride == null ? this._getDefaultCompleted() : this._completedOverride;\n }\n set completed(value) {\n this._completedOverride = coerceBooleanProperty(value);\n }\n _getDefaultCompleted() {\n return this.stepControl ? this.stepControl.valid && this.interacted : this.interacted;\n }\n /** Whether step has an error. */\n get hasError() {\n return this._customError == null ? this._getDefaultError() : this._customError;\n }\n set hasError(value) {\n this._customError = coerceBooleanProperty(value);\n }\n _getDefaultError() {\n return this.stepControl && this.stepControl.invalid && this.interacted;\n }\n constructor(_stepper, stepperOptions) {\n this._stepper = _stepper;\n /** Whether user has attempted to move away from the step. */\n this.interacted = false;\n /** Emits when the user has attempted to move away from the step. */\n this.interactedStream = new EventEmitter();\n this._editable = true;\n this._optional = false;\n this._completedOverride = null;\n this._customError = null;\n this._stepperOptions = stepperOptions ? stepperOptions : {};\n this._displayDefaultIndicatorType = this._stepperOptions.displayDefaultIndicatorType !== false;\n }\n /** Selects this step component. */\n select() {\n this._stepper.selected = this;\n }\n /** Resets the step to its initial state. Note that this includes resetting form data. */\n reset() {\n this.interacted = false;\n if (this._completedOverride != null) {\n this._completedOverride = false;\n }\n if (this._customError != null) {\n this._customError = false;\n }\n if (this.stepControl) {\n this.stepControl.reset();\n }\n }\n ngOnChanges() {\n // Since basically all inputs of the MatStep get proxied through the view down to the\n // underlying MatStepHeader, we have to make sure that change detection runs correctly.\n this._stepper._stateChanged();\n }\n _markAsInteracted() {\n if (!this.interacted) {\n this.interacted = true;\n this.interactedStream.emit(this);\n }\n }\n /** Determines whether the error state can be shown. */\n _showError() {\n // We want to show the error state either if the user opted into/out of it using the\n // global options, or if they've explicitly set it through the `hasError` input.\n return this._stepperOptions.showError ?? this._customError != null;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkStep, deps: [{ token: forwardRef(() => CdkStepper) }, { token: STEPPER_GLOBAL_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"16.0.0\", type: CdkStep, selector: \"cdk-step\", inputs: { stepControl: \"stepControl\", label: \"label\", errorMessage: \"errorMessage\", ariaLabel: [\"aria-label\", \"ariaLabel\"], ariaLabelledby: [\"aria-labelledby\", \"ariaLabelledby\"], state: \"state\", editable: \"editable\", optional: \"optional\", completed: \"completed\", hasError: \"hasError\" }, outputs: { interactedStream: \"interacted\" }, queries: [{ propertyName: \"stepLabel\", first: true, predicate: CdkStepLabel, descendants: true }], viewQueries: [{ propertyName: \"content\", first: true, predicate: TemplateRef, descendants: true, static: true }], exportAs: [\"cdkStep\"], usesOnChanges: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkStep, decorators: [{\n type: Component,\n args: [{\n selector: 'cdk-step',\n exportAs: 'cdkStep',\n template: '',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }], ctorParameters: function () { return [{ type: CdkStepper, decorators: [{\n type: Inject,\n args: [forwardRef(() => CdkStepper)]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [STEPPER_GLOBAL_OPTIONS]\n }] }]; }, propDecorators: { stepLabel: [{\n type: ContentChild,\n args: [CdkStepLabel]\n }], content: [{\n type: ViewChild,\n args: [TemplateRef, { static: true }]\n }], stepControl: [{\n type: Input\n }], interactedStream: [{\n type: Output,\n args: ['interacted']\n }], label: [{\n type: Input\n }], errorMessage: [{\n type: Input\n }], ariaLabel: [{\n type: Input,\n args: ['aria-label']\n }], ariaLabelledby: [{\n type: Input,\n args: ['aria-labelledby']\n }], state: [{\n type: Input\n }], editable: [{\n type: Input\n }], optional: [{\n type: Input\n }], completed: [{\n type: Input\n }], hasError: [{\n type: Input\n }] } });\nclass CdkStepper {\n /** Whether the validity of previous steps should be checked or not. */\n get linear() {\n return this._linear;\n }\n set linear(value) {\n this._linear = coerceBooleanProperty(value);\n }\n /** The index of the selected step. */\n get selectedIndex() {\n return this._selectedIndex;\n }\n set selectedIndex(index) {\n const newIndex = coerceNumberProperty(index);\n if (this.steps && this._steps) {\n // Ensure that the index can't be out of bounds.\n if (!this._isValidIndex(newIndex) && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('cdkStepper: Cannot assign out-of-bounds value to `selectedIndex`.');\n }\n this.selected?._markAsInteracted();\n if (this._selectedIndex !== newIndex &&\n !this._anyControlsInvalidOrPending(newIndex) &&\n (newIndex >= this._selectedIndex || this.steps.toArray()[newIndex].editable)) {\n this._updateSelectedItemIndex(newIndex);\n }\n }\n else {\n this._selectedIndex = newIndex;\n }\n }\n /** The step that is selected. */\n get selected() {\n return this.steps ? this.steps.toArray()[this.selectedIndex] : undefined;\n }\n set selected(step) {\n this.selectedIndex = step && this.steps ? this.steps.toArray().indexOf(step) : -1;\n }\n /** Orientation of the stepper. */\n get orientation() {\n return this._orientation;\n }\n set orientation(value) {\n // This is a protected method so that `MatStepper` can hook into it.\n this._orientation = value;\n if (this._keyManager) {\n this._keyManager.withVerticalOrientation(value === 'vertical');\n }\n }\n constructor(_dir, _changeDetectorRef, _elementRef) {\n this._dir = _dir;\n this._changeDetectorRef = _changeDetectorRef;\n this._elementRef = _elementRef;\n /** Emits when the component is destroyed. */\n this._destroyed = new Subject();\n /** Steps that belong to the current stepper, excluding ones from nested steppers. */\n this.steps = new QueryList();\n /** List of step headers sorted based on their DOM order. */\n this._sortedHeaders = new QueryList();\n this._linear = false;\n this._selectedIndex = 0;\n /** Event emitted when the selected step has changed. */\n this.selectionChange = new EventEmitter();\n this._orientation = 'horizontal';\n this._groupId = nextId++;\n }\n ngAfterContentInit() {\n this._steps.changes\n .pipe(startWith(this._steps), takeUntil(this._destroyed))\n .subscribe((steps) => {\n this.steps.reset(steps.filter(step => step._stepper === this));\n this.steps.notifyOnChanges();\n });\n }\n ngAfterViewInit() {\n // If the step headers are defined outside of the `ngFor` that renders the steps, like in the\n // Material stepper, they won't appear in the `QueryList` in the same order as they're\n // rendered in the DOM which will lead to incorrect keyboard navigation. We need to sort\n // them manually to ensure that they're correct. Alternatively, we can change the Material\n // template to inline the headers in the `ngFor`, but that'll result in a lot of\n // code duplication. See #23539.\n this._stepHeader.changes\n .pipe(startWith(this._stepHeader), takeUntil(this._destroyed))\n .subscribe((headers) => {\n this._sortedHeaders.reset(headers.toArray().sort((a, b) => {\n const documentPosition = a._elementRef.nativeElement.compareDocumentPosition(b._elementRef.nativeElement);\n // `compareDocumentPosition` returns a bitmask so we have to use a bitwise operator.\n // https://developer.mozilla.org/en-US/docs/Web/API/Node/compareDocumentPosition\n // tslint:disable-next-line:no-bitwise\n return documentPosition & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1;\n }));\n this._sortedHeaders.notifyOnChanges();\n });\n // Note that while the step headers are content children by default, any components that\n // extend this one might have them as view children. We initialize the keyboard handling in\n // AfterViewInit so we're guaranteed for both view and content children to be defined.\n this._keyManager = new FocusKeyManager(this._sortedHeaders)\n .withWrap()\n .withHomeAndEnd()\n .withVerticalOrientation(this._orientation === 'vertical');\n (this._dir ? this._dir.change : of())\n .pipe(startWith(this._layoutDirection()), takeUntil(this._destroyed))\n .subscribe(direction => this._keyManager.withHorizontalOrientation(direction));\n this._keyManager.updateActiveItem(this._selectedIndex);\n // No need to `takeUntil` here, because we're the ones destroying `steps`.\n this.steps.changes.subscribe(() => {\n if (!this.selected) {\n this._selectedIndex = Math.max(this._selectedIndex - 1, 0);\n }\n });\n // The logic which asserts that the selected index is within bounds doesn't run before the\n // steps are initialized, because we don't how many steps there are yet so we may have an\n // invalid index on init. If that's the case, auto-correct to the default so we don't throw.\n if (!this._isValidIndex(this._selectedIndex)) {\n this._selectedIndex = 0;\n }\n }\n ngOnDestroy() {\n this._keyManager?.destroy();\n this.steps.destroy();\n this._sortedHeaders.destroy();\n this._destroyed.next();\n this._destroyed.complete();\n }\n /** Selects and focuses the next step in list. */\n next() {\n this.selectedIndex = Math.min(this._selectedIndex + 1, this.steps.length - 1);\n }\n /** Selects and focuses the previous step in list. */\n previous() {\n this.selectedIndex = Math.max(this._selectedIndex - 1, 0);\n }\n /** Resets the stepper to its initial state. Note that this includes clearing form data. */\n reset() {\n this._updateSelectedItemIndex(0);\n this.steps.forEach(step => step.reset());\n this._stateChanged();\n }\n /** Returns a unique id for each step label element. */\n _getStepLabelId(i) {\n return `cdk-step-label-${this._groupId}-${i}`;\n }\n /** Returns unique id for each step content element. */\n _getStepContentId(i) {\n return `cdk-step-content-${this._groupId}-${i}`;\n }\n /** Marks the component to be change detected. */\n _stateChanged() {\n this._changeDetectorRef.markForCheck();\n }\n /** Returns position state of the step with the given index. */\n _getAnimationDirection(index) {\n const position = index - this._selectedIndex;\n if (position < 0) {\n return this._layoutDirection() === 'rtl' ? 'next' : 'previous';\n }\n else if (position > 0) {\n return this._layoutDirection() === 'rtl' ? 'previous' : 'next';\n }\n return 'current';\n }\n /** Returns the type of icon to be displayed. */\n _getIndicatorType(index, state = STEP_STATE.NUMBER) {\n const step = this.steps.toArray()[index];\n const isCurrentStep = this._isCurrentStep(index);\n return step._displayDefaultIndicatorType\n ? this._getDefaultIndicatorLogic(step, isCurrentStep)\n : this._getGuidelineLogic(step, isCurrentStep, state);\n }\n _getDefaultIndicatorLogic(step, isCurrentStep) {\n if (step._showError() && step.hasError && !isCurrentStep) {\n return STEP_STATE.ERROR;\n }\n else if (!step.completed || isCurrentStep) {\n return STEP_STATE.NUMBER;\n }\n else {\n return step.editable ? STEP_STATE.EDIT : STEP_STATE.DONE;\n }\n }\n _getGuidelineLogic(step, isCurrentStep, state = STEP_STATE.NUMBER) {\n if (step._showError() && step.hasError && !isCurrentStep) {\n return STEP_STATE.ERROR;\n }\n else if (step.completed && !isCurrentStep) {\n return STEP_STATE.DONE;\n }\n else if (step.completed && isCurrentStep) {\n return state;\n }\n else if (step.editable && isCurrentStep) {\n return STEP_STATE.EDIT;\n }\n else {\n return state;\n }\n }\n _isCurrentStep(index) {\n return this._selectedIndex === index;\n }\n /** Returns the index of the currently-focused step header. */\n _getFocusIndex() {\n return this._keyManager ? this._keyManager.activeItemIndex : this._selectedIndex;\n }\n _updateSelectedItemIndex(newIndex) {\n const stepsArray = this.steps.toArray();\n this.selectionChange.emit({\n selectedIndex: newIndex,\n previouslySelectedIndex: this._selectedIndex,\n selectedStep: stepsArray[newIndex],\n previouslySelectedStep: stepsArray[this._selectedIndex],\n });\n // If focus is inside the stepper, move it to the next header, otherwise it may become\n // lost when the active step content is hidden. We can't be more granular with the check\n // (e.g. checking whether focus is inside the active step), because we don't have a\n // reference to the elements that are rendering out the content.\n this._containsFocus()\n ? this._keyManager.setActiveItem(newIndex)\n : this._keyManager.updateActiveItem(newIndex);\n this._selectedIndex = newIndex;\n this._stateChanged();\n }\n _onKeydown(event) {\n const hasModifier = hasModifierKey(event);\n const keyCode = event.keyCode;\n const manager = this._keyManager;\n if (manager.activeItemIndex != null &&\n !hasModifier &&\n (keyCode === SPACE || keyCode === ENTER)) {\n this.selectedIndex = manager.activeItemIndex;\n event.preventDefault();\n }\n else {\n manager.setFocusOrigin('keyboard').onKeydown(event);\n }\n }\n _anyControlsInvalidOrPending(index) {\n if (this._linear && index >= 0) {\n return this.steps\n .toArray()\n .slice(0, index)\n .some(step => {\n const control = step.stepControl;\n const isIncomplete = control\n ? control.invalid || control.pending || !step.interacted\n : !step.completed;\n return isIncomplete && !step.optional && !step._completedOverride;\n });\n }\n return false;\n }\n _layoutDirection() {\n return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';\n }\n /** Checks whether the stepper contains the focused element. */\n _containsFocus() {\n const stepperElement = this._elementRef.nativeElement;\n const focusedElement = _getFocusedElementPierceShadowDom();\n return stepperElement === focusedElement || stepperElement.contains(focusedElement);\n }\n /** Checks whether the passed-in index is a valid step index. */\n _isValidIndex(index) {\n return index > -1 && (!this.steps || index < this.steps.length);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkStepper, deps: [{ token: i1.Directionality, optional: true }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.0\", type: CdkStepper, selector: \"[cdkStepper]\", inputs: { linear: \"linear\", selectedIndex: \"selectedIndex\", selected: \"selected\", orientation: \"orientation\" }, outputs: { selectionChange: \"selectionChange\" }, queries: [{ propertyName: \"_steps\", predicate: CdkStep, descendants: true }, { propertyName: \"_stepHeader\", predicate: CdkStepHeader, descendants: true }], exportAs: [\"cdkStepper\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkStepper, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkStepper]',\n exportAs: 'cdkStepper',\n }]\n }], ctorParameters: function () { return [{ type: i1.Directionality, decorators: [{\n type: Optional\n }] }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }]; }, propDecorators: { _steps: [{\n type: ContentChildren,\n args: [CdkStep, { descendants: true }]\n }], _stepHeader: [{\n type: ContentChildren,\n args: [CdkStepHeader, { descendants: true }]\n }], linear: [{\n type: Input\n }], selectedIndex: [{\n type: Input\n }], selected: [{\n type: Input\n }], selectionChange: [{\n type: Output\n }], orientation: [{\n type: Input\n }] } });\n\n/** Button that moves to the next step in a stepper workflow. */\nclass CdkStepperNext {\n constructor(_stepper) {\n this._stepper = _stepper;\n /** Type of the next button. Defaults to \"submit\" if not specified. */\n this.type = 'submit';\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkStepperNext, deps: [{ token: CdkStepper }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.0\", type: CdkStepperNext, selector: \"button[cdkStepperNext]\", inputs: { type: \"type\" }, host: { listeners: { \"click\": \"_stepper.next()\" }, properties: { \"type\": \"type\" } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkStepperNext, decorators: [{\n type: Directive,\n args: [{\n selector: 'button[cdkStepperNext]',\n host: {\n '[type]': 'type',\n '(click)': '_stepper.next()',\n },\n }]\n }], ctorParameters: function () { return [{ type: CdkStepper }]; }, propDecorators: { type: [{\n type: Input\n }] } });\n/** Button that moves to the previous step in a stepper workflow. */\nclass CdkStepperPrevious {\n constructor(_stepper) {\n this._stepper = _stepper;\n /** Type of the previous button. Defaults to \"button\" if not specified. */\n this.type = 'button';\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkStepperPrevious, deps: [{ token: CdkStepper }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.0\", type: CdkStepperPrevious, selector: \"button[cdkStepperPrevious]\", inputs: { type: \"type\" }, host: { listeners: { \"click\": \"_stepper.previous()\" }, properties: { \"type\": \"type\" } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkStepperPrevious, decorators: [{\n type: Directive,\n args: [{\n selector: 'button[cdkStepperPrevious]',\n host: {\n '[type]': 'type',\n '(click)': '_stepper.previous()',\n },\n }]\n }], ctorParameters: function () { return [{ type: CdkStepper }]; }, propDecorators: { type: [{\n type: Input\n }] } });\n\nclass CdkStepperModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkStepperModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkStepperModule, declarations: [CdkStep,\n CdkStepper,\n CdkStepHeader,\n CdkStepLabel,\n CdkStepperNext,\n CdkStepperPrevious], imports: [BidiModule], exports: [CdkStep, CdkStepper, CdkStepHeader, CdkStepLabel, CdkStepperNext, CdkStepperPrevious] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkStepperModule, imports: [BidiModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkStepperModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [BidiModule],\n exports: [CdkStep, CdkStepper, CdkStepHeader, CdkStepLabel, CdkStepperNext, CdkStepperPrevious],\n declarations: [\n CdkStep,\n CdkStepper,\n CdkStepHeader,\n CdkStepLabel,\n CdkStepperNext,\n CdkStepperPrevious,\n ],\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CdkStep, CdkStepHeader, CdkStepLabel, CdkStepper, CdkStepperModule, CdkStepperNext, CdkStepperPrevious, STEPPER_GLOBAL_OPTIONS, STEP_STATE, StepperSelectionEvent };\n","import * as i1 from '@angular/cdk/bidi';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { _VIEW_REPEATER_STRATEGY, _RecycleViewRepeaterStrategy, isDataSource, _DisposeViewRepeaterStrategy } from '@angular/cdk/collections';\nexport { DataSource } from '@angular/cdk/collections';\nimport * as i2 from '@angular/cdk/platform';\nimport * as i3 from '@angular/cdk/scrolling';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { DOCUMENT } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, Directive, Inject, Optional, Input, ContentChild, Injectable, Component, ChangeDetectionStrategy, ViewEncapsulation, EmbeddedViewRef, EventEmitter, NgZone, Attribute, SkipSelf, Output, ViewChild, ContentChildren, NgModule } from '@angular/core';\nimport { Subject, from, BehaviorSubject, isObservable, of } from 'rxjs';\nimport { takeUntil, take } from 'rxjs/operators';\n\n/**\n * Mixin to provide a directive with a function that checks if the sticky input has been\n * changed since the last time the function was called. Essentially adds a dirty-check to the\n * sticky value.\n * @docs-private\n */\nfunction mixinHasStickyInput(base) {\n return class extends base {\n /** Whether sticky positioning should be applied. */\n get sticky() {\n return this._sticky;\n }\n set sticky(v) {\n const prevValue = this._sticky;\n this._sticky = coerceBooleanProperty(v);\n this._hasStickyChanged = prevValue !== this._sticky;\n }\n /** Whether the sticky value has changed since this was last called. */\n hasStickyChanged() {\n const hasStickyChanged = this._hasStickyChanged;\n this._hasStickyChanged = false;\n return hasStickyChanged;\n }\n /** Resets the dirty check for cases where the sticky state has been used without checking. */\n resetStickyChanged() {\n this._hasStickyChanged = false;\n }\n constructor(...args) {\n super(...args);\n this._sticky = false;\n /** Whether the sticky input has changed since it was last checked. */\n this._hasStickyChanged = false;\n }\n };\n}\n\n/**\n * Used to provide a table to some of the sub-components without causing a circular dependency.\n * @docs-private\n */\nconst CDK_TABLE = new InjectionToken('CDK_TABLE');\n/** Injection token that can be used to specify the text column options. */\nconst TEXT_COLUMN_OPTIONS = new InjectionToken('text-column-options');\n\n/**\n * Cell definition for a CDK table.\n * Captures the template of a column's data row cell as well as cell-specific properties.\n */\nclass CdkCellDef {\n constructor(/** @docs-private */ template) {\n this.template = template;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkCellDef, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.0\", type: CdkCellDef, selector: \"[cdkCellDef]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkCellDef, decorators: [{\n type: Directive,\n args: [{ selector: '[cdkCellDef]' }]\n }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });\n/**\n * Header cell definition for a CDK table.\n * Captures the template of a column's header cell and as well as cell-specific properties.\n */\nclass CdkHeaderCellDef {\n constructor(/** @docs-private */ template) {\n this.template = template;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkHeaderCellDef, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.0\", type: CdkHeaderCellDef, selector: \"[cdkHeaderCellDef]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkHeaderCellDef, decorators: [{\n type: Directive,\n args: [{ selector: '[cdkHeaderCellDef]' }]\n }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });\n/**\n * Footer cell definition for a CDK table.\n * Captures the template of a column's footer cell and as well as cell-specific properties.\n */\nclass CdkFooterCellDef {\n constructor(/** @docs-private */ template) {\n this.template = template;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkFooterCellDef, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.0\", type: CdkFooterCellDef, selector: \"[cdkFooterCellDef]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkFooterCellDef, decorators: [{\n type: Directive,\n args: [{ selector: '[cdkFooterCellDef]' }]\n }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });\n// Boilerplate for applying mixins to CdkColumnDef.\n/** @docs-private */\nclass CdkColumnDefBase {\n}\nconst _CdkColumnDefBase = mixinHasStickyInput(CdkColumnDefBase);\n/**\n * Column definition for the CDK table.\n * Defines a set of cells available for a table column.\n */\nclass CdkColumnDef extends _CdkColumnDefBase {\n /** Unique name for this column. */\n get name() {\n return this._name;\n }\n set name(name) {\n this._setNameInput(name);\n }\n /**\n * Whether this column should be sticky positioned on the end of the row. Should make sure\n * that it mimics the `CanStick` mixin such that `_hasStickyChanged` is set to true if the value\n * has been changed.\n */\n get stickyEnd() {\n return this._stickyEnd;\n }\n set stickyEnd(v) {\n const prevValue = this._stickyEnd;\n this._stickyEnd = coerceBooleanProperty(v);\n this._hasStickyChanged = prevValue !== this._stickyEnd;\n }\n constructor(_table) {\n super();\n this._table = _table;\n this._stickyEnd = false;\n }\n /**\n * Overridable method that sets the css classes that will be added to every cell in this\n * column.\n * In the future, columnCssClassName will change from type string[] to string and this\n * will set a single string value.\n * @docs-private\n */\n _updateColumnCssClassName() {\n this._columnCssClassName = [`cdk-column-${this.cssClassFriendlyName}`];\n }\n /**\n * This has been extracted to a util because of TS 4 and VE.\n * View Engine doesn't support property rename inheritance.\n * TS 4.0 doesn't allow properties to override accessors or vice-versa.\n * @docs-private\n */\n _setNameInput(value) {\n // If the directive is set without a name (updated programmatically), then this setter will\n // trigger with an empty string and should not overwrite the programmatically set value.\n if (value) {\n this._name = value;\n this.cssClassFriendlyName = value.replace(/[^a-z0-9_-]/gi, '-');\n this._updateColumnCssClassName();\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkColumnDef, deps: [{ token: CDK_TABLE, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.0\", type: CdkColumnDef, selector: \"[cdkColumnDef]\", inputs: { sticky: \"sticky\", name: [\"cdkColumnDef\", \"name\"], stickyEnd: \"stickyEnd\" }, providers: [{ provide: 'MAT_SORT_HEADER_COLUMN_DEF', useExisting: CdkColumnDef }], queries: [{ propertyName: \"cell\", first: true, predicate: CdkCellDef, descendants: true }, { propertyName: \"headerCell\", first: true, predicate: CdkHeaderCellDef, descendants: true }, { propertyName: \"footerCell\", first: true, predicate: CdkFooterCellDef, descendants: true }], usesInheritance: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkColumnDef, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkColumnDef]',\n inputs: ['sticky'],\n providers: [{ provide: 'MAT_SORT_HEADER_COLUMN_DEF', useExisting: CdkColumnDef }],\n }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [CDK_TABLE]\n }, {\n type: Optional\n }] }]; }, propDecorators: { name: [{\n type: Input,\n args: ['cdkColumnDef']\n }], stickyEnd: [{\n type: Input,\n args: ['stickyEnd']\n }], cell: [{\n type: ContentChild,\n args: [CdkCellDef]\n }], headerCell: [{\n type: ContentChild,\n args: [CdkHeaderCellDef]\n }], footerCell: [{\n type: ContentChild,\n args: [CdkFooterCellDef]\n }] } });\n/** Base class for the cells. Adds a CSS classname that identifies the column it renders in. */\nclass BaseCdkCell {\n constructor(columnDef, elementRef) {\n elementRef.nativeElement.classList.add(...columnDef._columnCssClassName);\n }\n}\n/** Header cell template container that adds the right classes and role. */\nclass CdkHeaderCell extends BaseCdkCell {\n constructor(columnDef, elementRef) {\n super(columnDef, elementRef);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkHeaderCell, deps: [{ token: CdkColumnDef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.0\", type: CdkHeaderCell, selector: \"cdk-header-cell, th[cdk-header-cell]\", host: { attributes: { \"role\": \"columnheader\" }, classAttribute: \"cdk-header-cell\" }, usesInheritance: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkHeaderCell, decorators: [{\n type: Directive,\n args: [{\n selector: 'cdk-header-cell, th[cdk-header-cell]',\n host: {\n 'class': 'cdk-header-cell',\n 'role': 'columnheader',\n },\n }]\n }], ctorParameters: function () { return [{ type: CdkColumnDef }, { type: i0.ElementRef }]; } });\n/** Footer cell template container that adds the right classes and role. */\nclass CdkFooterCell extends BaseCdkCell {\n constructor(columnDef, elementRef) {\n super(columnDef, elementRef);\n if (columnDef._table?._elementRef.nativeElement.nodeType === 1) {\n const tableRole = columnDef._table._elementRef.nativeElement.getAttribute('role');\n const role = tableRole === 'grid' || tableRole === 'treegrid' ? 'gridcell' : 'cell';\n elementRef.nativeElement.setAttribute('role', role);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkFooterCell, deps: [{ token: CdkColumnDef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.0\", type: CdkFooterCell, selector: \"cdk-footer-cell, td[cdk-footer-cell]\", host: { classAttribute: \"cdk-footer-cell\" }, usesInheritance: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkFooterCell, decorators: [{\n type: Directive,\n args: [{\n selector: 'cdk-footer-cell, td[cdk-footer-cell]',\n host: {\n 'class': 'cdk-footer-cell',\n },\n }]\n }], ctorParameters: function () { return [{ type: CdkColumnDef }, { type: i0.ElementRef }]; } });\n/** Cell template container that adds the right classes and role. */\nclass CdkCell extends BaseCdkCell {\n constructor(columnDef, elementRef) {\n super(columnDef, elementRef);\n if (columnDef._table?._elementRef.nativeElement.nodeType === 1) {\n const tableRole = columnDef._table._elementRef.nativeElement.getAttribute('role');\n const role = tableRole === 'grid' || tableRole === 'treegrid' ? 'gridcell' : 'cell';\n elementRef.nativeElement.setAttribute('role', role);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkCell, deps: [{ token: CdkColumnDef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.0\", type: CdkCell, selector: \"cdk-cell, td[cdk-cell]\", host: { classAttribute: \"cdk-cell\" }, usesInheritance: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkCell, decorators: [{\n type: Directive,\n args: [{\n selector: 'cdk-cell, td[cdk-cell]',\n host: {\n 'class': 'cdk-cell',\n },\n }]\n }], ctorParameters: function () { return [{ type: CdkColumnDef }, { type: i0.ElementRef }]; } });\n\n/**\n * @docs-private\n */\nclass _Schedule {\n constructor() {\n this.tasks = [];\n this.endTasks = [];\n }\n}\n/** Injection token used to provide a coalesced style scheduler. */\nconst _COALESCED_STYLE_SCHEDULER = new InjectionToken('_COALESCED_STYLE_SCHEDULER');\n/**\n * Allows grouping up CSSDom mutations after the current execution context.\n * This can significantly improve performance when separate consecutive functions are\n * reading from the CSSDom and then mutating it.\n *\n * @docs-private\n */\nclass _CoalescedStyleScheduler {\n constructor(_ngZone) {\n this._ngZone = _ngZone;\n this._currentSchedule = null;\n this._destroyed = new Subject();\n }\n /**\n * Schedules the specified task to run at the end of the current VM turn.\n */\n schedule(task) {\n this._createScheduleIfNeeded();\n this._currentSchedule.tasks.push(task);\n }\n /**\n * Schedules the specified task to run after other scheduled tasks at the end of the current\n * VM turn.\n */\n scheduleEnd(task) {\n this._createScheduleIfNeeded();\n this._currentSchedule.endTasks.push(task);\n }\n /** Prevent any further tasks from running. */\n ngOnDestroy() {\n this._destroyed.next();\n this._destroyed.complete();\n }\n _createScheduleIfNeeded() {\n if (this._currentSchedule) {\n return;\n }\n this._currentSchedule = new _Schedule();\n this._getScheduleObservable()\n .pipe(takeUntil(this._destroyed))\n .subscribe(() => {\n while (this._currentSchedule.tasks.length || this._currentSchedule.endTasks.length) {\n const schedule = this._currentSchedule;\n // Capture new tasks scheduled by the current set of tasks.\n this._currentSchedule = new _Schedule();\n for (const task of schedule.tasks) {\n task();\n }\n for (const task of schedule.endTasks) {\n task();\n }\n }\n this._currentSchedule = null;\n });\n }\n _getScheduleObservable() {\n // Use onStable when in the context of an ongoing change detection cycle so that we\n // do not accidentally trigger additional cycles.\n return this._ngZone.isStable\n ? from(Promise.resolve(undefined))\n : this._ngZone.onStable.pipe(take(1));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: _CoalescedStyleScheduler, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: _CoalescedStyleScheduler }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: _CoalescedStyleScheduler, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: i0.NgZone }]; } });\n\n/**\n * The row template that can be used by the mat-table. Should not be used outside of the\n * material library.\n */\nconst CDK_ROW_TEMPLATE = ``;\n/**\n * Base class for the CdkHeaderRowDef and CdkRowDef that handles checking their columns inputs\n * for changes and notifying the table.\n */\nclass BaseRowDef {\n constructor(\n /** @docs-private */ template, _differs) {\n this.template = template;\n this._differs = _differs;\n }\n ngOnChanges(changes) {\n // Create a new columns differ if one does not yet exist. Initialize it based on initial value\n // of the columns property or an empty array if none is provided.\n if (!this._columnsDiffer) {\n const columns = (changes['columns'] && changes['columns'].currentValue) || [];\n this._columnsDiffer = this._differs.find(columns).create();\n this._columnsDiffer.diff(columns);\n }\n }\n /**\n * Returns the difference between the current columns and the columns from the last diff, or null\n * if there is no difference.\n */\n getColumnsDiff() {\n return this._columnsDiffer.diff(this.columns);\n }\n /** Gets this row def's relevant cell template from the provided column def. */\n extractCellTemplate(column) {\n if (this instanceof CdkHeaderRowDef) {\n return column.headerCell.template;\n }\n if (this instanceof CdkFooterRowDef) {\n return column.footerCell.template;\n }\n else {\n return column.cell.template;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: BaseRowDef, deps: [{ token: i0.TemplateRef }, { token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.0\", type: BaseRowDef, usesOnChanges: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: BaseRowDef, decorators: [{\n type: Directive\n }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.IterableDiffers }]; } });\n// Boilerplate for applying mixins to CdkHeaderRowDef.\n/** @docs-private */\nclass CdkHeaderRowDefBase extends BaseRowDef {\n}\nconst _CdkHeaderRowDefBase = mixinHasStickyInput(CdkHeaderRowDefBase);\n/**\n * Header row definition for the CDK table.\n * Captures the header row's template and other header properties such as the columns to display.\n */\nclass CdkHeaderRowDef extends _CdkHeaderRowDefBase {\n constructor(template, _differs, _table) {\n super(template, _differs);\n this._table = _table;\n }\n // Prerender fails to recognize that ngOnChanges in a part of this class through inheritance.\n // Explicitly define it so that the method is called as part of the Angular lifecycle.\n ngOnChanges(changes) {\n super.ngOnChanges(changes);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkHeaderRowDef, deps: [{ token: i0.TemplateRef }, { token: i0.IterableDiffers }, { token: CDK_TABLE, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.0\", type: CdkHeaderRowDef, selector: \"[cdkHeaderRowDef]\", inputs: { columns: [\"cdkHeaderRowDef\", \"columns\"], sticky: [\"cdkHeaderRowDefSticky\", \"sticky\"] }, usesInheritance: true, usesOnChanges: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkHeaderRowDef, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkHeaderRowDef]',\n inputs: ['columns: cdkHeaderRowDef', 'sticky: cdkHeaderRowDefSticky'],\n }]\n }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.IterableDiffers }, { type: undefined, decorators: [{\n type: Inject,\n args: [CDK_TABLE]\n }, {\n type: Optional\n }] }]; } });\n// Boilerplate for applying mixins to CdkFooterRowDef.\n/** @docs-private */\nclass CdkFooterRowDefBase extends BaseRowDef {\n}\nconst _CdkFooterRowDefBase = mixinHasStickyInput(CdkFooterRowDefBase);\n/**\n * Footer row definition for the CDK table.\n * Captures the footer row's template and other footer properties such as the columns to display.\n */\nclass CdkFooterRowDef extends _CdkFooterRowDefBase {\n constructor(template, _differs, _table) {\n super(template, _differs);\n this._table = _table;\n }\n // Prerender fails to recognize that ngOnChanges in a part of this class through inheritance.\n // Explicitly define it so that the method is called as part of the Angular lifecycle.\n ngOnChanges(changes) {\n super.ngOnChanges(changes);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkFooterRowDef, deps: [{ token: i0.TemplateRef }, { token: i0.IterableDiffers }, { token: CDK_TABLE, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.0\", type: CdkFooterRowDef, selector: \"[cdkFooterRowDef]\", inputs: { columns: [\"cdkFooterRowDef\", \"columns\"], sticky: [\"cdkFooterRowDefSticky\", \"sticky\"] }, usesInheritance: true, usesOnChanges: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkFooterRowDef, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkFooterRowDef]',\n inputs: ['columns: cdkFooterRowDef', 'sticky: cdkFooterRowDefSticky'],\n }]\n }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.IterableDiffers }, { type: undefined, decorators: [{\n type: Inject,\n args: [CDK_TABLE]\n }, {\n type: Optional\n }] }]; } });\n/**\n * Data row definition for the CDK table.\n * Captures the header row's template and other row properties such as the columns to display and\n * a when predicate that describes when this row should be used.\n */\nclass CdkRowDef extends BaseRowDef {\n // TODO(andrewseguin): Add an input for providing a switch function to determine\n // if this template should be used.\n constructor(template, _differs, _table) {\n super(template, _differs);\n this._table = _table;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkRowDef, deps: [{ token: i0.TemplateRef }, { token: i0.IterableDiffers }, { token: CDK_TABLE, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.0\", type: CdkRowDef, selector: \"[cdkRowDef]\", inputs: { columns: [\"cdkRowDefColumns\", \"columns\"], when: [\"cdkRowDefWhen\", \"when\"] }, usesInheritance: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkRowDef, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkRowDef]',\n inputs: ['columns: cdkRowDefColumns', 'when: cdkRowDefWhen'],\n }]\n }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.IterableDiffers }, { type: undefined, decorators: [{\n type: Inject,\n args: [CDK_TABLE]\n }, {\n type: Optional\n }] }]; } });\n/**\n * Outlet for rendering cells inside of a row or header row.\n * @docs-private\n */\nclass CdkCellOutlet {\n /**\n * Static property containing the latest constructed instance of this class.\n * Used by the CDK table when each CdkHeaderRow and CdkRow component is created using\n * createEmbeddedView. After one of these components are created, this property will provide\n * a handle to provide that component's cells and context. After init, the CdkCellOutlet will\n * construct the cells with the provided context.\n */\n static { this.mostRecentCellOutlet = null; }\n constructor(_viewContainer) {\n this._viewContainer = _viewContainer;\n CdkCellOutlet.mostRecentCellOutlet = this;\n }\n ngOnDestroy() {\n // If this was the last outlet being rendered in the view, remove the reference\n // from the static property after it has been destroyed to avoid leaking memory.\n if (CdkCellOutlet.mostRecentCellOutlet === this) {\n CdkCellOutlet.mostRecentCellOutlet = null;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkCellOutlet, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.0\", type: CdkCellOutlet, selector: \"[cdkCellOutlet]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkCellOutlet, decorators: [{\n type: Directive,\n args: [{ selector: '[cdkCellOutlet]' }]\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; } });\n/** Header template container that contains the cell outlet. Adds the right class and role. */\nclass CdkHeaderRow {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkHeaderRow, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"16.0.0\", type: CdkHeaderRow, selector: \"cdk-header-row, tr[cdk-header-row]\", host: { attributes: { \"role\": \"row\" }, classAttribute: \"cdk-header-row\" }, ngImport: i0, template: \"\", isInline: true, dependencies: [{ kind: \"directive\", type: CdkCellOutlet, selector: \"[cdkCellOutlet]\" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkHeaderRow, decorators: [{\n type: Component,\n args: [{\n selector: 'cdk-header-row, tr[cdk-header-row]',\n template: CDK_ROW_TEMPLATE,\n host: {\n 'class': 'cdk-header-row',\n 'role': 'row',\n },\n // See note on CdkTable for explanation on why this uses the default change detection strategy.\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n }]\n }] });\n/** Footer template container that contains the cell outlet. Adds the right class and role. */\nclass CdkFooterRow {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkFooterRow, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"16.0.0\", type: CdkFooterRow, selector: \"cdk-footer-row, tr[cdk-footer-row]\", host: { attributes: { \"role\": \"row\" }, classAttribute: \"cdk-footer-row\" }, ngImport: i0, template: \"\", isInline: true, dependencies: [{ kind: \"directive\", type: CdkCellOutlet, selector: \"[cdkCellOutlet]\" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkFooterRow, decorators: [{\n type: Component,\n args: [{\n selector: 'cdk-footer-row, tr[cdk-footer-row]',\n template: CDK_ROW_TEMPLATE,\n host: {\n 'class': 'cdk-footer-row',\n 'role': 'row',\n },\n // See note on CdkTable for explanation on why this uses the default change detection strategy.\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n }]\n }] });\n/** Data row template container that contains the cell outlet. Adds the right class and role. */\nclass CdkRow {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkRow, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"16.0.0\", type: CdkRow, selector: \"cdk-row, tr[cdk-row]\", host: { attributes: { \"role\": \"row\" }, classAttribute: \"cdk-row\" }, ngImport: i0, template: \"\", isInline: true, dependencies: [{ kind: \"directive\", type: CdkCellOutlet, selector: \"[cdkCellOutlet]\" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkRow, decorators: [{\n type: Component,\n args: [{\n selector: 'cdk-row, tr[cdk-row]',\n template: CDK_ROW_TEMPLATE,\n host: {\n 'class': 'cdk-row',\n 'role': 'row',\n },\n // See note on CdkTable for explanation on why this uses the default change detection strategy.\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n }]\n }] });\n/** Row that can be used to display a message when no data is shown in the table. */\nclass CdkNoDataRow {\n constructor(templateRef) {\n this.templateRef = templateRef;\n this._contentClassName = 'cdk-no-data-row';\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkNoDataRow, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.0\", type: CdkNoDataRow, selector: \"ng-template[cdkNoDataRow]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkNoDataRow, decorators: [{\n type: Directive,\n args: [{\n selector: 'ng-template[cdkNoDataRow]',\n }]\n }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });\n\n/**\n * List of all possible directions that can be used for sticky positioning.\n * @docs-private\n */\nconst STICKY_DIRECTIONS = ['top', 'bottom', 'left', 'right'];\n/**\n * Applies and removes sticky positioning styles to the `CdkTable` rows and columns cells.\n * @docs-private\n */\nclass StickyStyler {\n /**\n * @param _isNativeHtmlTable Whether the sticky logic should be based on a table\n * that uses the native `` element.\n * @param _stickCellCss The CSS class that will be applied to every row/cell that has\n * sticky positioning applied.\n * @param direction The directionality context of the table (ltr/rtl); affects column positioning\n * by reversing left/right positions.\n * @param _isBrowser Whether the table is currently being rendered on the server or the client.\n * @param _needsPositionStickyOnElement Whether we need to specify position: sticky on cells\n * using inline styles. If false, it is assumed that position: sticky is included in\n * the component stylesheet for _stickCellCss.\n * @param _positionListener A listener that is notified of changes to sticky rows/columns\n * and their dimensions.\n */\n constructor(_isNativeHtmlTable, _stickCellCss, direction, _coalescedStyleScheduler, _isBrowser = true, _needsPositionStickyOnElement = true, _positionListener) {\n this._isNativeHtmlTable = _isNativeHtmlTable;\n this._stickCellCss = _stickCellCss;\n this.direction = direction;\n this._coalescedStyleScheduler = _coalescedStyleScheduler;\n this._isBrowser = _isBrowser;\n this._needsPositionStickyOnElement = _needsPositionStickyOnElement;\n this._positionListener = _positionListener;\n this._cachedCellWidths = [];\n this._borderCellCss = {\n 'top': `${_stickCellCss}-border-elem-top`,\n 'bottom': `${_stickCellCss}-border-elem-bottom`,\n 'left': `${_stickCellCss}-border-elem-left`,\n 'right': `${_stickCellCss}-border-elem-right`,\n };\n }\n /**\n * Clears the sticky positioning styles from the row and its cells by resetting the `position`\n * style, setting the zIndex to 0, and unsetting each provided sticky direction.\n * @param rows The list of rows that should be cleared from sticking in the provided directions\n * @param stickyDirections The directions that should no longer be set as sticky on the rows.\n */\n clearStickyPositioning(rows, stickyDirections) {\n const elementsToClear = [];\n for (const row of rows) {\n // If the row isn't an element (e.g. if it's an `ng-container`),\n // it won't have inline styles or `children` so we skip it.\n if (row.nodeType !== row.ELEMENT_NODE) {\n continue;\n }\n elementsToClear.push(row);\n for (let i = 0; i < row.children.length; i++) {\n elementsToClear.push(row.children[i]);\n }\n }\n // Coalesce with sticky row/column updates (and potentially other changes like column resize).\n this._coalescedStyleScheduler.schedule(() => {\n for (const element of elementsToClear) {\n this._removeStickyStyle(element, stickyDirections);\n }\n });\n }\n /**\n * Applies sticky left and right positions to the cells of each row according to the sticky\n * states of the rendered column definitions.\n * @param rows The rows that should have its set of cells stuck according to the sticky states.\n * @param stickyStartStates A list of boolean states where each state represents whether the cell\n * in this index position should be stuck to the start of the row.\n * @param stickyEndStates A list of boolean states where each state represents whether the cell\n * in this index position should be stuck to the end of the row.\n * @param recalculateCellWidths Whether the sticky styler should recalculate the width of each\n * column cell. If `false` cached widths will be used instead.\n */\n updateStickyColumns(rows, stickyStartStates, stickyEndStates, recalculateCellWidths = true) {\n if (!rows.length ||\n !this._isBrowser ||\n !(stickyStartStates.some(state => state) || stickyEndStates.some(state => state))) {\n if (this._positionListener) {\n this._positionListener.stickyColumnsUpdated({ sizes: [] });\n this._positionListener.stickyEndColumnsUpdated({ sizes: [] });\n }\n return;\n }\n const firstRow = rows[0];\n const numCells = firstRow.children.length;\n const cellWidths = this._getCellWidths(firstRow, recalculateCellWidths);\n const startPositions = this._getStickyStartColumnPositions(cellWidths, stickyStartStates);\n const endPositions = this._getStickyEndColumnPositions(cellWidths, stickyEndStates);\n const lastStickyStart = stickyStartStates.lastIndexOf(true);\n const firstStickyEnd = stickyEndStates.indexOf(true);\n // Coalesce with sticky row updates (and potentially other changes like column resize).\n this._coalescedStyleScheduler.schedule(() => {\n const isRtl = this.direction === 'rtl';\n const start = isRtl ? 'right' : 'left';\n const end = isRtl ? 'left' : 'right';\n for (const row of rows) {\n for (let i = 0; i < numCells; i++) {\n const cell = row.children[i];\n if (stickyStartStates[i]) {\n this._addStickyStyle(cell, start, startPositions[i], i === lastStickyStart);\n }\n if (stickyEndStates[i]) {\n this._addStickyStyle(cell, end, endPositions[i], i === firstStickyEnd);\n }\n }\n }\n if (this._positionListener) {\n this._positionListener.stickyColumnsUpdated({\n sizes: lastStickyStart === -1\n ? []\n : cellWidths\n .slice(0, lastStickyStart + 1)\n .map((width, index) => (stickyStartStates[index] ? width : null)),\n });\n this._positionListener.stickyEndColumnsUpdated({\n sizes: firstStickyEnd === -1\n ? []\n : cellWidths\n .slice(firstStickyEnd)\n .map((width, index) => (stickyEndStates[index + firstStickyEnd] ? width : null))\n .reverse(),\n });\n }\n });\n }\n /**\n * Applies sticky positioning to the row's cells if using the native table layout, and to the\n * row itself otherwise.\n * @param rowsToStick The list of rows that should be stuck according to their corresponding\n * sticky state and to the provided top or bottom position.\n * @param stickyStates A list of boolean states where each state represents whether the row\n * should be stuck in the particular top or bottom position.\n * @param position The position direction in which the row should be stuck if that row should be\n * sticky.\n *\n */\n stickRows(rowsToStick, stickyStates, position) {\n // Since we can't measure the rows on the server, we can't stick the rows properly.\n if (!this._isBrowser) {\n return;\n }\n // If positioning the rows to the bottom, reverse their order when evaluating the sticky\n // position such that the last row stuck will be \"bottom: 0px\" and so on. Note that the\n // sticky states need to be reversed as well.\n const rows = position === 'bottom' ? rowsToStick.slice().reverse() : rowsToStick;\n const states = position === 'bottom' ? stickyStates.slice().reverse() : stickyStates;\n // Measure row heights all at once before adding sticky styles to reduce layout thrashing.\n const stickyOffsets = [];\n const stickyCellHeights = [];\n const elementsToStick = [];\n for (let rowIndex = 0, stickyOffset = 0; rowIndex < rows.length; rowIndex++) {\n if (!states[rowIndex]) {\n continue;\n }\n stickyOffsets[rowIndex] = stickyOffset;\n const row = rows[rowIndex];\n elementsToStick[rowIndex] = this._isNativeHtmlTable\n ? Array.from(row.children)\n : [row];\n const height = row.getBoundingClientRect().height;\n stickyOffset += height;\n stickyCellHeights[rowIndex] = height;\n }\n const borderedRowIndex = states.lastIndexOf(true);\n // Coalesce with other sticky row updates (top/bottom), sticky columns updates\n // (and potentially other changes like column resize).\n this._coalescedStyleScheduler.schedule(() => {\n for (let rowIndex = 0; rowIndex < rows.length; rowIndex++) {\n if (!states[rowIndex]) {\n continue;\n }\n const offset = stickyOffsets[rowIndex];\n const isBorderedRowIndex = rowIndex === borderedRowIndex;\n for (const element of elementsToStick[rowIndex]) {\n this._addStickyStyle(element, position, offset, isBorderedRowIndex);\n }\n }\n if (position === 'top') {\n this._positionListener?.stickyHeaderRowsUpdated({\n sizes: stickyCellHeights,\n offsets: stickyOffsets,\n elements: elementsToStick,\n });\n }\n else {\n this._positionListener?.stickyFooterRowsUpdated({\n sizes: stickyCellHeights,\n offsets: stickyOffsets,\n elements: elementsToStick,\n });\n }\n });\n }\n /**\n * When using the native table in Safari, sticky footer cells do not stick. The only way to stick\n * footer rows is to apply sticky styling to the tfoot container. This should only be done if\n * all footer rows are sticky. If not all footer rows are sticky, remove sticky positioning from\n * the tfoot element.\n */\n updateStickyFooterContainer(tableElement, stickyStates) {\n if (!this._isNativeHtmlTable) {\n return;\n }\n const tfoot = tableElement.querySelector('tfoot');\n // Coalesce with other sticky updates (and potentially other changes like column resize).\n this._coalescedStyleScheduler.schedule(() => {\n if (stickyStates.some(state => !state)) {\n this._removeStickyStyle(tfoot, ['bottom']);\n }\n else {\n this._addStickyStyle(tfoot, 'bottom', 0, false);\n }\n });\n }\n /**\n * Removes the sticky style on the element by removing the sticky cell CSS class, re-evaluating\n * the zIndex, removing each of the provided sticky directions, and removing the\n * sticky position if there are no more directions.\n */\n _removeStickyStyle(element, stickyDirections) {\n for (const dir of stickyDirections) {\n element.style[dir] = '';\n element.classList.remove(this._borderCellCss[dir]);\n }\n // If the element no longer has any more sticky directions, remove sticky positioning and\n // the sticky CSS class.\n // Short-circuit checking element.style[dir] for stickyDirections as they\n // were already removed above.\n const hasDirection = STICKY_DIRECTIONS.some(dir => stickyDirections.indexOf(dir) === -1 && element.style[dir]);\n if (hasDirection) {\n element.style.zIndex = this._getCalculatedZIndex(element);\n }\n else {\n // When not hasDirection, _getCalculatedZIndex will always return ''.\n element.style.zIndex = '';\n if (this._needsPositionStickyOnElement) {\n element.style.position = '';\n }\n element.classList.remove(this._stickCellCss);\n }\n }\n /**\n * Adds the sticky styling to the element by adding the sticky style class, changing position\n * to be sticky (and -webkit-sticky), setting the appropriate zIndex, and adding a sticky\n * direction and value.\n */\n _addStickyStyle(element, dir, dirValue, isBorderElement) {\n element.classList.add(this._stickCellCss);\n if (isBorderElement) {\n element.classList.add(this._borderCellCss[dir]);\n }\n element.style[dir] = `${dirValue}px`;\n element.style.zIndex = this._getCalculatedZIndex(element);\n if (this._needsPositionStickyOnElement) {\n element.style.cssText += 'position: -webkit-sticky; position: sticky; ';\n }\n }\n /**\n * Calculate what the z-index should be for the element, depending on what directions (top,\n * bottom, left, right) have been set. It should be true that elements with a top direction\n * should have the highest index since these are elements like a table header. If any of those\n * elements are also sticky in another direction, then they should appear above other elements\n * that are only sticky top (e.g. a sticky column on a sticky header). Bottom-sticky elements\n * (e.g. footer rows) should then be next in the ordering such that they are below the header\n * but above any non-sticky elements. Finally, left/right sticky elements (e.g. sticky columns)\n * should minimally increment so that they are above non-sticky elements but below top and bottom\n * elements.\n */\n _getCalculatedZIndex(element) {\n const zIndexIncrements = {\n top: 100,\n bottom: 10,\n left: 1,\n right: 1,\n };\n let zIndex = 0;\n // Use `Iterable` instead of `Array` because TypeScript, as of 3.6.3,\n // loses the array generic type in the `for of`. But we *also* have to use `Array` because\n // typescript won't iterate over an `Iterable` unless you compile with `--downlevelIteration`\n for (const dir of STICKY_DIRECTIONS) {\n if (element.style[dir]) {\n zIndex += zIndexIncrements[dir];\n }\n }\n return zIndex ? `${zIndex}` : '';\n }\n /** Gets the widths for each cell in the provided row. */\n _getCellWidths(row, recalculateCellWidths = true) {\n if (!recalculateCellWidths && this._cachedCellWidths.length) {\n return this._cachedCellWidths;\n }\n const cellWidths = [];\n const firstRowCells = row.children;\n for (let i = 0; i < firstRowCells.length; i++) {\n let cell = firstRowCells[i];\n cellWidths.push(cell.getBoundingClientRect().width);\n }\n this._cachedCellWidths = cellWidths;\n return cellWidths;\n }\n /**\n * Determines the left and right positions of each sticky column cell, which will be the\n * accumulation of all sticky column cell widths to the left and right, respectively.\n * Non-sticky cells do not need to have a value set since their positions will not be applied.\n */\n _getStickyStartColumnPositions(widths, stickyStates) {\n const positions = [];\n let nextPosition = 0;\n for (let i = 0; i < widths.length; i++) {\n if (stickyStates[i]) {\n positions[i] = nextPosition;\n nextPosition += widths[i];\n }\n }\n return positions;\n }\n /**\n * Determines the left and right positions of each sticky column cell, which will be the\n * accumulation of all sticky column cell widths to the left and right, respectively.\n * Non-sticky cells do not need to have a value set since their positions will not be applied.\n */\n _getStickyEndColumnPositions(widths, stickyStates) {\n const positions = [];\n let nextPosition = 0;\n for (let i = widths.length; i > 0; i--) {\n if (stickyStates[i]) {\n positions[i] = nextPosition;\n nextPosition += widths[i];\n }\n }\n return positions;\n }\n}\n\n/**\n * Returns an error to be thrown when attempting to find an nonexistent column.\n * @param id Id whose lookup failed.\n * @docs-private\n */\nfunction getTableUnknownColumnError(id) {\n return Error(`Could not find column with id \"${id}\".`);\n}\n/**\n * Returns an error to be thrown when two column definitions have the same name.\n * @docs-private\n */\nfunction getTableDuplicateColumnNameError(name) {\n return Error(`Duplicate column definition name provided: \"${name}\".`);\n}\n/**\n * Returns an error to be thrown when there are multiple rows that are missing a when function.\n * @docs-private\n */\nfunction getTableMultipleDefaultRowDefsError() {\n return Error(`There can only be one default row without a when predicate function.`);\n}\n/**\n * Returns an error to be thrown when there are no matching row defs for a particular set of data.\n * @docs-private\n */\nfunction getTableMissingMatchingRowDefError(data) {\n return Error(`Could not find a matching row definition for the` +\n `provided row data: ${JSON.stringify(data)}`);\n}\n/**\n * Returns an error to be thrown when there is no row definitions present in the content.\n * @docs-private\n */\nfunction getTableMissingRowDefsError() {\n return Error('Missing definitions for header, footer, and row; ' +\n 'cannot determine which columns should be rendered.');\n}\n/**\n * Returns an error to be thrown when the data source does not match the compatible types.\n * @docs-private\n */\nfunction getTableUnknownDataSourceError() {\n return Error(`Provided data source did not match an array, Observable, or DataSource`);\n}\n/**\n * Returns an error to be thrown when the text column cannot find a parent table to inject.\n * @docs-private\n */\nfunction getTableTextColumnMissingParentTableError() {\n return Error(`Text column could not find a parent table for registration.`);\n}\n/**\n * Returns an error to be thrown when a table text column doesn't have a name.\n * @docs-private\n */\nfunction getTableTextColumnMissingNameError() {\n return Error(`Table text column must have a name.`);\n}\n\n/** The injection token used to specify the StickyPositioningListener. */\nconst STICKY_POSITIONING_LISTENER = new InjectionToken('CDK_SPL');\n\n/**\n * Enables the recycle view repeater strategy, which reduces rendering latency. Not compatible with\n * tables that animate rows.\n */\nclass CdkRecycleRows {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkRecycleRows, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.0\", type: CdkRecycleRows, selector: \"cdk-table[recycleRows], table[cdk-table][recycleRows]\", providers: [{ provide: _VIEW_REPEATER_STRATEGY, useClass: _RecycleViewRepeaterStrategy }], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkRecycleRows, decorators: [{\n type: Directive,\n args: [{\n selector: 'cdk-table[recycleRows], table[cdk-table][recycleRows]',\n providers: [{ provide: _VIEW_REPEATER_STRATEGY, useClass: _RecycleViewRepeaterStrategy }],\n }]\n }] });\n/**\n * Provides a handle for the table to grab the view container's ng-container to insert data rows.\n * @docs-private\n */\nclass DataRowOutlet {\n constructor(viewContainer, elementRef) {\n this.viewContainer = viewContainer;\n this.elementRef = elementRef;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: DataRowOutlet, deps: [{ token: i0.ViewContainerRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.0\", type: DataRowOutlet, selector: \"[rowOutlet]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: DataRowOutlet, decorators: [{\n type: Directive,\n args: [{ selector: '[rowOutlet]' }]\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.ElementRef }]; } });\n/**\n * Provides a handle for the table to grab the view container's ng-container to insert the header.\n * @docs-private\n */\nclass HeaderRowOutlet {\n constructor(viewContainer, elementRef) {\n this.viewContainer = viewContainer;\n this.elementRef = elementRef;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: HeaderRowOutlet, deps: [{ token: i0.ViewContainerRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.0\", type: HeaderRowOutlet, selector: \"[headerRowOutlet]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: HeaderRowOutlet, decorators: [{\n type: Directive,\n args: [{ selector: '[headerRowOutlet]' }]\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.ElementRef }]; } });\n/**\n * Provides a handle for the table to grab the view container's ng-container to insert the footer.\n * @docs-private\n */\nclass FooterRowOutlet {\n constructor(viewContainer, elementRef) {\n this.viewContainer = viewContainer;\n this.elementRef = elementRef;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: FooterRowOutlet, deps: [{ token: i0.ViewContainerRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.0\", type: FooterRowOutlet, selector: \"[footerRowOutlet]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: FooterRowOutlet, decorators: [{\n type: Directive,\n args: [{ selector: '[footerRowOutlet]' }]\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.ElementRef }]; } });\n/**\n * Provides a handle for the table to grab the view\n * container's ng-container to insert the no data row.\n * @docs-private\n */\nclass NoDataRowOutlet {\n constructor(viewContainer, elementRef) {\n this.viewContainer = viewContainer;\n this.elementRef = elementRef;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: NoDataRowOutlet, deps: [{ token: i0.ViewContainerRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.0\", type: NoDataRowOutlet, selector: \"[noDataRowOutlet]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: NoDataRowOutlet, decorators: [{\n type: Directive,\n args: [{ selector: '[noDataRowOutlet]' }]\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.ElementRef }]; } });\n/**\n * The table template that can be used by the mat-table. Should not be used outside of the\n * material library.\n * @docs-private\n */\nconst CDK_TABLE_TEMPLATE = \n// Note that according to MDN, the `caption` element has to be projected as the **first**\n// element in the table. See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/caption\n`\n \n \n \n \n \n \n`;\n/**\n * Class used to conveniently type the embedded view ref for rows with a context.\n * @docs-private\n */\nclass RowViewRef extends EmbeddedViewRef {\n}\n/**\n * A data table that can render a header row, data rows, and a footer row.\n * Uses the dataSource input to determine the data to be rendered. The data can be provided either\n * as a data array, an Observable stream that emits the data array to render, or a DataSource with a\n * connect function that will return an Observable stream that emits the data array to render.\n */\nclass CdkTable {\n /**\n * Tracking function that will be used to check the differences in data changes. Used similarly\n * to `ngFor` `trackBy` function. Optimize row operations by identifying a row based on its data\n * relative to the function to know if a row should be added/removed/moved.\n * Accepts a function that takes two parameters, `index` and `item`.\n */\n get trackBy() {\n return this._trackByFn;\n }\n set trackBy(fn) {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && fn != null && typeof fn !== 'function') {\n console.warn(`trackBy must be a function, but received ${JSON.stringify(fn)}.`);\n }\n this._trackByFn = fn;\n }\n /**\n * The table's source of data, which can be provided in three ways (in order of complexity):\n * - Simple data array (each object represents one table row)\n * - Stream that emits a data array each time the array changes\n * - `DataSource` object that implements the connect/disconnect interface.\n *\n * If a data array is provided, the table must be notified when the array's objects are\n * added, removed, or moved. This can be done by calling the `renderRows()` function which will\n * render the diff since the last table render. If the data array reference is changed, the table\n * will automatically trigger an update to the rows.\n *\n * When providing an Observable stream, the table will trigger an update automatically when the\n * stream emits a new array of data.\n *\n * Finally, when providing a `DataSource` object, the table will use the Observable stream\n * provided by the connect function and trigger updates when that stream emits new data array\n * values. During the table's ngOnDestroy or when the data source is removed from the table, the\n * table will call the DataSource's `disconnect` function (may be useful for cleaning up any\n * subscriptions registered during the connect process).\n */\n get dataSource() {\n return this._dataSource;\n }\n set dataSource(dataSource) {\n if (this._dataSource !== dataSource) {\n this._switchDataSource(dataSource);\n }\n }\n /**\n * Whether to allow multiple rows per data object by evaluating which rows evaluate their 'when'\n * predicate to true. If `multiTemplateDataRows` is false, which is the default value, then each\n * dataobject will render the first row that evaluates its when predicate to true, in the order\n * defined in the table, or otherwise the default row which does not have a when predicate.\n */\n get multiTemplateDataRows() {\n return this._multiTemplateDataRows;\n }\n set multiTemplateDataRows(v) {\n this._multiTemplateDataRows = coerceBooleanProperty(v);\n // In Ivy if this value is set via a static attribute (e.g.
),\n // this setter will be invoked before the row outlet has been defined hence the null check.\n if (this._rowOutlet && this._rowOutlet.viewContainer.length) {\n this._forceRenderDataRows();\n this.updateStickyColumnStyles();\n }\n }\n /**\n * Whether to use a fixed table layout. Enabling this option will enforce consistent column widths\n * and optimize rendering sticky styles for native tables. No-op for flex tables.\n */\n get fixedLayout() {\n return this._fixedLayout;\n }\n set fixedLayout(v) {\n this._fixedLayout = coerceBooleanProperty(v);\n // Toggling `fixedLayout` may change column widths. Sticky column styles should be recalculated.\n this._forceRecalculateCellWidths = true;\n this._stickyColumnStylesNeedReset = true;\n }\n constructor(_differs, _changeDetectorRef, _elementRef, role, _dir, _document, _platform, _viewRepeater, _coalescedStyleScheduler, _viewportRuler, \n /**\n * @deprecated `_stickyPositioningListener` parameter to become required.\n * @breaking-change 13.0.0\n */\n _stickyPositioningListener, \n /**\n * @deprecated `_ngZone` parameter to become required.\n * @breaking-change 14.0.0\n */\n _ngZone) {\n this._differs = _differs;\n this._changeDetectorRef = _changeDetectorRef;\n this._elementRef = _elementRef;\n this._dir = _dir;\n this._platform = _platform;\n this._viewRepeater = _viewRepeater;\n this._coalescedStyleScheduler = _coalescedStyleScheduler;\n this._viewportRuler = _viewportRuler;\n this._stickyPositioningListener = _stickyPositioningListener;\n this._ngZone = _ngZone;\n /** Subject that emits when the component has been destroyed. */\n this._onDestroy = new Subject();\n /**\n * Map of all the user's defined columns (header, data, and footer cell template) identified by\n * name. Collection populated by the column definitions gathered by `ContentChildren` as well as\n * any custom column definitions added to `_customColumnDefs`.\n */\n this._columnDefsByName = new Map();\n /**\n * Column definitions that were defined outside of the direct content children of the table.\n * These will be defined when, e.g., creating a wrapper around the cdkTable that has\n * column definitions as *its* content child.\n */\n this._customColumnDefs = new Set();\n /**\n * Data row definitions that were defined outside of the direct content children of the table.\n * These will be defined when, e.g., creating a wrapper around the cdkTable that has\n * built-in data rows as *its* content child.\n */\n this._customRowDefs = new Set();\n /**\n * Header row definitions that were defined outside of the direct content children of the table.\n * These will be defined when, e.g., creating a wrapper around the cdkTable that has\n * built-in header rows as *its* content child.\n */\n this._customHeaderRowDefs = new Set();\n /**\n * Footer row definitions that were defined outside of the direct content children of the table.\n * These will be defined when, e.g., creating a wrapper around the cdkTable that has a\n * built-in footer row as *its* content child.\n */\n this._customFooterRowDefs = new Set();\n /**\n * Whether the header row definition has been changed. Triggers an update to the header row after\n * content is checked. Initialized as true so that the table renders the initial set of rows.\n */\n this._headerRowDefChanged = true;\n /**\n * Whether the footer row definition has been changed. Triggers an update to the footer row after\n * content is checked. Initialized as true so that the table renders the initial set of rows.\n */\n this._footerRowDefChanged = true;\n /**\n * Whether the sticky column styles need to be updated. Set to `true` when the visible columns\n * change.\n */\n this._stickyColumnStylesNeedReset = true;\n /**\n * Whether the sticky styler should recalculate cell widths when applying sticky styles. If\n * `false`, cached values will be used instead. This is only applicable to tables with\n * {@link fixedLayout} enabled. For other tables, cell widths will always be recalculated.\n */\n this._forceRecalculateCellWidths = true;\n /**\n * Cache of the latest rendered `RenderRow` objects as a map for easy retrieval when constructing\n * a new list of `RenderRow` objects for rendering rows. Since the new list is constructed with\n * the cached `RenderRow` objects when possible, the row identity is preserved when the data\n * and row template matches, which allows the `IterableDiffer` to check rows by reference\n * and understand which rows are added/moved/removed.\n *\n * Implemented as a map of maps where the first key is the `data: T` object and the second is the\n * `CdkRowDef` object. With the two keys, the cache points to a `RenderRow` object that\n * contains an array of created pairs. The array is necessary to handle cases where the data\n * array contains multiple duplicate data objects and each instantiated `RenderRow` must be\n * stored.\n */\n this._cachedRenderRowsMap = new Map();\n /**\n * CSS class added to any row or cell that has sticky positioning applied. May be overridden by\n * table subclasses.\n */\n this.stickyCssClass = 'cdk-table-sticky';\n /**\n * Whether to manually add position: sticky to all sticky cell elements. Not needed if\n * the position is set in a selector associated with the value of stickyCssClass. May be\n * overridden by table subclasses\n */\n this.needsPositionStickyOnElement = true;\n /** Whether the no data row is currently showing anything. */\n this._isShowingNoDataRow = false;\n this._multiTemplateDataRows = false;\n this._fixedLayout = false;\n /**\n * Emits when the table completes rendering a set of data rows based on the latest data from the\n * data source, even if the set of rows is empty.\n */\n this.contentChanged = new EventEmitter();\n // TODO(andrewseguin): Remove max value as the end index\n // and instead calculate the view on init and scroll.\n /**\n * Stream containing the latest information on what rows are being displayed on screen.\n * Can be used by the data source to as a heuristic of what data should be provided.\n *\n * @docs-private\n */\n this.viewChange = new BehaviorSubject({\n start: 0,\n end: Number.MAX_VALUE,\n });\n if (!role) {\n this._elementRef.nativeElement.setAttribute('role', 'table');\n }\n this._document = _document;\n this._isNativeHtmlTable = this._elementRef.nativeElement.nodeName === 'TABLE';\n }\n ngOnInit() {\n this._setupStickyStyler();\n if (this._isNativeHtmlTable) {\n this._applyNativeTableSections();\n }\n // Set up the trackBy function so that it uses the `RenderRow` as its identity by default. If\n // the user has provided a custom trackBy, return the result of that function as evaluated\n // with the values of the `RenderRow`'s data and index.\n this._dataDiffer = this._differs.find([]).create((_i, dataRow) => {\n return this.trackBy ? this.trackBy(dataRow.dataIndex, dataRow.data) : dataRow;\n });\n this._viewportRuler\n .change()\n .pipe(takeUntil(this._onDestroy))\n .subscribe(() => {\n this._forceRecalculateCellWidths = true;\n });\n }\n ngAfterContentChecked() {\n // Cache the row and column definitions gathered by ContentChildren and programmatic injection.\n this._cacheRowDefs();\n this._cacheColumnDefs();\n // Make sure that the user has at least added header, footer, or data row def.\n if (!this._headerRowDefs.length &&\n !this._footerRowDefs.length &&\n !this._rowDefs.length &&\n (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getTableMissingRowDefsError();\n }\n // Render updates if the list of columns have been changed for the header, row, or footer defs.\n const columnsChanged = this._renderUpdatedColumns();\n const rowDefsChanged = columnsChanged || this._headerRowDefChanged || this._footerRowDefChanged;\n // Ensure sticky column styles are reset if set to `true` elsewhere.\n this._stickyColumnStylesNeedReset = this._stickyColumnStylesNeedReset || rowDefsChanged;\n this._forceRecalculateCellWidths = rowDefsChanged;\n // If the header row definition has been changed, trigger a render to the header row.\n if (this._headerRowDefChanged) {\n this._forceRenderHeaderRows();\n this._headerRowDefChanged = false;\n }\n // If the footer row definition has been changed, trigger a render to the footer row.\n if (this._footerRowDefChanged) {\n this._forceRenderFooterRows();\n this._footerRowDefChanged = false;\n }\n // If there is a data source and row definitions, connect to the data source unless a\n // connection has already been made.\n if (this.dataSource && this._rowDefs.length > 0 && !this._renderChangeSubscription) {\n this._observeRenderChanges();\n }\n else if (this._stickyColumnStylesNeedReset) {\n // In the above case, _observeRenderChanges will result in updateStickyColumnStyles being\n // called when it row data arrives. Otherwise, we need to call it proactively.\n this.updateStickyColumnStyles();\n }\n this._checkStickyStates();\n }\n ngOnDestroy() {\n [\n this._rowOutlet.viewContainer,\n this._headerRowOutlet.viewContainer,\n this._footerRowOutlet.viewContainer,\n this._cachedRenderRowsMap,\n this._customColumnDefs,\n this._customRowDefs,\n this._customHeaderRowDefs,\n this._customFooterRowDefs,\n this._columnDefsByName,\n ].forEach(def => {\n def.clear();\n });\n this._headerRowDefs = [];\n this._footerRowDefs = [];\n this._defaultRowDef = null;\n this._onDestroy.next();\n this._onDestroy.complete();\n if (isDataSource(this.dataSource)) {\n this.dataSource.disconnect(this);\n }\n }\n /**\n * Renders rows based on the table's latest set of data, which was either provided directly as an\n * input or retrieved through an Observable stream (directly or from a DataSource).\n * Checks for differences in the data since the last diff to perform only the necessary\n * changes (add/remove/move rows).\n *\n * If the table's data source is a DataSource or Observable, this will be invoked automatically\n * each time the provided Observable stream emits a new data array. Otherwise if your data is\n * an array, this function will need to be called to render any changes.\n */\n renderRows() {\n this._renderRows = this._getAllRenderRows();\n const changes = this._dataDiffer.diff(this._renderRows);\n if (!changes) {\n this._updateNoDataRow();\n this.contentChanged.next();\n return;\n }\n const viewContainer = this._rowOutlet.viewContainer;\n this._viewRepeater.applyChanges(changes, viewContainer, (record, _adjustedPreviousIndex, currentIndex) => this._getEmbeddedViewArgs(record.item, currentIndex), record => record.item.data, (change) => {\n if (change.operation === 1 /* _ViewRepeaterOperation.INSERTED */ && change.context) {\n this._renderCellTemplateForItem(change.record.item.rowDef, change.context);\n }\n });\n // Update the meta context of a row's context data (index, count, first, last, ...)\n this._updateRowIndexContext();\n // Update rows that did not get added/removed/moved but may have had their identity changed,\n // e.g. if trackBy matched data on some property but the actual data reference changed.\n changes.forEachIdentityChange((record) => {\n const rowView = viewContainer.get(record.currentIndex);\n rowView.context.$implicit = record.item.data;\n });\n this._updateNoDataRow();\n // Allow the new row data to render before measuring it.\n // @breaking-change 14.0.0 Remove undefined check once _ngZone is required.\n if (this._ngZone && NgZone.isInAngularZone()) {\n this._ngZone.onStable.pipe(take(1), takeUntil(this._onDestroy)).subscribe(() => {\n this.updateStickyColumnStyles();\n });\n }\n else {\n this.updateStickyColumnStyles();\n }\n this.contentChanged.next();\n }\n /** Adds a column definition that was not included as part of the content children. */\n addColumnDef(columnDef) {\n this._customColumnDefs.add(columnDef);\n }\n /** Removes a column definition that was not included as part of the content children. */\n removeColumnDef(columnDef) {\n this._customColumnDefs.delete(columnDef);\n }\n /** Adds a row definition that was not included as part of the content children. */\n addRowDef(rowDef) {\n this._customRowDefs.add(rowDef);\n }\n /** Removes a row definition that was not included as part of the content children. */\n removeRowDef(rowDef) {\n this._customRowDefs.delete(rowDef);\n }\n /** Adds a header row definition that was not included as part of the content children. */\n addHeaderRowDef(headerRowDef) {\n this._customHeaderRowDefs.add(headerRowDef);\n this._headerRowDefChanged = true;\n }\n /** Removes a header row definition that was not included as part of the content children. */\n removeHeaderRowDef(headerRowDef) {\n this._customHeaderRowDefs.delete(headerRowDef);\n this._headerRowDefChanged = true;\n }\n /** Adds a footer row definition that was not included as part of the content children. */\n addFooterRowDef(footerRowDef) {\n this._customFooterRowDefs.add(footerRowDef);\n this._footerRowDefChanged = true;\n }\n /** Removes a footer row definition that was not included as part of the content children. */\n removeFooterRowDef(footerRowDef) {\n this._customFooterRowDefs.delete(footerRowDef);\n this._footerRowDefChanged = true;\n }\n /** Sets a no data row definition that was not included as a part of the content children. */\n setNoDataRow(noDataRow) {\n this._customNoDataRow = noDataRow;\n }\n /**\n * Updates the header sticky styles. First resets all applied styles with respect to the cells\n * sticking to the top. Then, evaluating which cells need to be stuck to the top. This is\n * automatically called when the header row changes its displayed set of columns, or if its\n * sticky input changes. May be called manually for cases where the cell content changes outside\n * of these events.\n */\n updateStickyHeaderRowStyles() {\n const headerRows = this._getRenderedRows(this._headerRowOutlet);\n const tableElement = this._elementRef.nativeElement;\n // Hide the thead element if there are no header rows. This is necessary to satisfy\n // overzealous a11y checkers that fail because the `rowgroup` element does not contain\n // required child `row`.\n const thead = tableElement.querySelector('thead');\n if (thead) {\n thead.style.display = headerRows.length ? '' : 'none';\n }\n const stickyStates = this._headerRowDefs.map(def => def.sticky);\n this._stickyStyler.clearStickyPositioning(headerRows, ['top']);\n this._stickyStyler.stickRows(headerRows, stickyStates, 'top');\n // Reset the dirty state of the sticky input change since it has been used.\n this._headerRowDefs.forEach(def => def.resetStickyChanged());\n }\n /**\n * Updates the footer sticky styles. First resets all applied styles with respect to the cells\n * sticking to the bottom. Then, evaluating which cells need to be stuck to the bottom. This is\n * automatically called when the footer row changes its displayed set of columns, or if its\n * sticky input changes. May be called manually for cases where the cell content changes outside\n * of these events.\n */\n updateStickyFooterRowStyles() {\n const footerRows = this._getRenderedRows(this._footerRowOutlet);\n const tableElement = this._elementRef.nativeElement;\n // Hide the tfoot element if there are no footer rows. This is necessary to satisfy\n // overzealous a11y checkers that fail because the `rowgroup` element does not contain\n // required child `row`.\n const tfoot = tableElement.querySelector('tfoot');\n if (tfoot) {\n tfoot.style.display = footerRows.length ? '' : 'none';\n }\n const stickyStates = this._footerRowDefs.map(def => def.sticky);\n this._stickyStyler.clearStickyPositioning(footerRows, ['bottom']);\n this._stickyStyler.stickRows(footerRows, stickyStates, 'bottom');\n this._stickyStyler.updateStickyFooterContainer(this._elementRef.nativeElement, stickyStates);\n // Reset the dirty state of the sticky input change since it has been used.\n this._footerRowDefs.forEach(def => def.resetStickyChanged());\n }\n /**\n * Updates the column sticky styles. First resets all applied styles with respect to the cells\n * sticking to the left and right. Then sticky styles are added for the left and right according\n * to the column definitions for each cell in each row. This is automatically called when\n * the data source provides a new set of data or when a column definition changes its sticky\n * input. May be called manually for cases where the cell content changes outside of these events.\n */\n updateStickyColumnStyles() {\n const headerRows = this._getRenderedRows(this._headerRowOutlet);\n const dataRows = this._getRenderedRows(this._rowOutlet);\n const footerRows = this._getRenderedRows(this._footerRowOutlet);\n // For tables not using a fixed layout, the column widths may change when new rows are rendered.\n // In a table using a fixed layout, row content won't affect column width, so sticky styles\n // don't need to be cleared unless either the sticky column config changes or one of the row\n // defs change.\n if ((this._isNativeHtmlTable && !this._fixedLayout) || this._stickyColumnStylesNeedReset) {\n // Clear the left and right positioning from all columns in the table across all rows since\n // sticky columns span across all table sections (header, data, footer)\n this._stickyStyler.clearStickyPositioning([...headerRows, ...dataRows, ...footerRows], ['left', 'right']);\n this._stickyColumnStylesNeedReset = false;\n }\n // Update the sticky styles for each header row depending on the def's sticky state\n headerRows.forEach((headerRow, i) => {\n this._addStickyColumnStyles([headerRow], this._headerRowDefs[i]);\n });\n // Update the sticky styles for each data row depending on its def's sticky state\n this._rowDefs.forEach(rowDef => {\n // Collect all the rows rendered with this row definition.\n const rows = [];\n for (let i = 0; i < dataRows.length; i++) {\n if (this._renderRows[i].rowDef === rowDef) {\n rows.push(dataRows[i]);\n }\n }\n this._addStickyColumnStyles(rows, rowDef);\n });\n // Update the sticky styles for each footer row depending on the def's sticky state\n footerRows.forEach((footerRow, i) => {\n this._addStickyColumnStyles([footerRow], this._footerRowDefs[i]);\n });\n // Reset the dirty state of the sticky input change since it has been used.\n Array.from(this._columnDefsByName.values()).forEach(def => def.resetStickyChanged());\n }\n /**\n * Get the list of RenderRow objects to render according to the current list of data and defined\n * row definitions. If the previous list already contained a particular pair, it should be reused\n * so that the differ equates their references.\n */\n _getAllRenderRows() {\n const renderRows = [];\n // Store the cache and create a new one. Any re-used RenderRow objects will be moved into the\n // new cache while unused ones can be picked up by garbage collection.\n const prevCachedRenderRows = this._cachedRenderRowsMap;\n this._cachedRenderRowsMap = new Map();\n // For each data object, get the list of rows that should be rendered, represented by the\n // respective `RenderRow` object which is the pair of `data` and `CdkRowDef`.\n for (let i = 0; i < this._data.length; i++) {\n let data = this._data[i];\n const renderRowsForData = this._getRenderRowsForData(data, i, prevCachedRenderRows.get(data));\n if (!this._cachedRenderRowsMap.has(data)) {\n this._cachedRenderRowsMap.set(data, new WeakMap());\n }\n for (let j = 0; j < renderRowsForData.length; j++) {\n let renderRow = renderRowsForData[j];\n const cache = this._cachedRenderRowsMap.get(renderRow.data);\n if (cache.has(renderRow.rowDef)) {\n cache.get(renderRow.rowDef).push(renderRow);\n }\n else {\n cache.set(renderRow.rowDef, [renderRow]);\n }\n renderRows.push(renderRow);\n }\n }\n return renderRows;\n }\n /**\n * Gets a list of `RenderRow` for the provided data object and any `CdkRowDef` objects that\n * should be rendered for this data. Reuses the cached RenderRow objects if they match the same\n * `(T, CdkRowDef)` pair.\n */\n _getRenderRowsForData(data, dataIndex, cache) {\n const rowDefs = this._getRowDefs(data, dataIndex);\n return rowDefs.map(rowDef => {\n const cachedRenderRows = cache && cache.has(rowDef) ? cache.get(rowDef) : [];\n if (cachedRenderRows.length) {\n const dataRow = cachedRenderRows.shift();\n dataRow.dataIndex = dataIndex;\n return dataRow;\n }\n else {\n return { data, rowDef, dataIndex };\n }\n });\n }\n /** Update the map containing the content's column definitions. */\n _cacheColumnDefs() {\n this._columnDefsByName.clear();\n const columnDefs = mergeArrayAndSet(this._getOwnDefs(this._contentColumnDefs), this._customColumnDefs);\n columnDefs.forEach(columnDef => {\n if (this._columnDefsByName.has(columnDef.name) &&\n (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getTableDuplicateColumnNameError(columnDef.name);\n }\n this._columnDefsByName.set(columnDef.name, columnDef);\n });\n }\n /** Update the list of all available row definitions that can be used. */\n _cacheRowDefs() {\n this._headerRowDefs = mergeArrayAndSet(this._getOwnDefs(this._contentHeaderRowDefs), this._customHeaderRowDefs);\n this._footerRowDefs = mergeArrayAndSet(this._getOwnDefs(this._contentFooterRowDefs), this._customFooterRowDefs);\n this._rowDefs = mergeArrayAndSet(this._getOwnDefs(this._contentRowDefs), this._customRowDefs);\n // After all row definitions are determined, find the row definition to be considered default.\n const defaultRowDefs = this._rowDefs.filter(def => !def.when);\n if (!this.multiTemplateDataRows &&\n defaultRowDefs.length > 1 &&\n (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getTableMultipleDefaultRowDefsError();\n }\n this._defaultRowDef = defaultRowDefs[0];\n }\n /**\n * Check if the header, data, or footer rows have changed what columns they want to display or\n * whether the sticky states have changed for the header or footer. If there is a diff, then\n * re-render that section.\n */\n _renderUpdatedColumns() {\n const columnsDiffReducer = (acc, def) => acc || !!def.getColumnsDiff();\n // Force re-render data rows if the list of column definitions have changed.\n const dataColumnsChanged = this._rowDefs.reduce(columnsDiffReducer, false);\n if (dataColumnsChanged) {\n this._forceRenderDataRows();\n }\n // Force re-render header/footer rows if the list of column definitions have changed.\n const headerColumnsChanged = this._headerRowDefs.reduce(columnsDiffReducer, false);\n if (headerColumnsChanged) {\n this._forceRenderHeaderRows();\n }\n const footerColumnsChanged = this._footerRowDefs.reduce(columnsDiffReducer, false);\n if (footerColumnsChanged) {\n this._forceRenderFooterRows();\n }\n return dataColumnsChanged || headerColumnsChanged || footerColumnsChanged;\n }\n /**\n * Switch to the provided data source by resetting the data and unsubscribing from the current\n * render change subscription if one exists. If the data source is null, interpret this by\n * clearing the row outlet. Otherwise start listening for new data.\n */\n _switchDataSource(dataSource) {\n this._data = [];\n if (isDataSource(this.dataSource)) {\n this.dataSource.disconnect(this);\n }\n // Stop listening for data from the previous data source.\n if (this._renderChangeSubscription) {\n this._renderChangeSubscription.unsubscribe();\n this._renderChangeSubscription = null;\n }\n if (!dataSource) {\n if (this._dataDiffer) {\n this._dataDiffer.diff([]);\n }\n this._rowOutlet.viewContainer.clear();\n }\n this._dataSource = dataSource;\n }\n /** Set up a subscription for the data provided by the data source. */\n _observeRenderChanges() {\n // If no data source has been set, there is nothing to observe for changes.\n if (!this.dataSource) {\n return;\n }\n let dataStream;\n if (isDataSource(this.dataSource)) {\n dataStream = this.dataSource.connect(this);\n }\n else if (isObservable(this.dataSource)) {\n dataStream = this.dataSource;\n }\n else if (Array.isArray(this.dataSource)) {\n dataStream = of(this.dataSource);\n }\n if (dataStream === undefined && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getTableUnknownDataSourceError();\n }\n this._renderChangeSubscription = dataStream\n .pipe(takeUntil(this._onDestroy))\n .subscribe(data => {\n this._data = data || [];\n this.renderRows();\n });\n }\n /**\n * Clears any existing content in the header row outlet and creates a new embedded view\n * in the outlet using the header row definition.\n */\n _forceRenderHeaderRows() {\n // Clear the header row outlet if any content exists.\n if (this._headerRowOutlet.viewContainer.length > 0) {\n this._headerRowOutlet.viewContainer.clear();\n }\n this._headerRowDefs.forEach((def, i) => this._renderRow(this._headerRowOutlet, def, i));\n this.updateStickyHeaderRowStyles();\n }\n /**\n * Clears any existing content in the footer row outlet and creates a new embedded view\n * in the outlet using the footer row definition.\n */\n _forceRenderFooterRows() {\n // Clear the footer row outlet if any content exists.\n if (this._footerRowOutlet.viewContainer.length > 0) {\n this._footerRowOutlet.viewContainer.clear();\n }\n this._footerRowDefs.forEach((def, i) => this._renderRow(this._footerRowOutlet, def, i));\n this.updateStickyFooterRowStyles();\n }\n /** Adds the sticky column styles for the rows according to the columns' stick states. */\n _addStickyColumnStyles(rows, rowDef) {\n const columnDefs = Array.from(rowDef.columns || []).map(columnName => {\n const columnDef = this._columnDefsByName.get(columnName);\n if (!columnDef && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getTableUnknownColumnError(columnName);\n }\n return columnDef;\n });\n const stickyStartStates = columnDefs.map(columnDef => columnDef.sticky);\n const stickyEndStates = columnDefs.map(columnDef => columnDef.stickyEnd);\n this._stickyStyler.updateStickyColumns(rows, stickyStartStates, stickyEndStates, !this._fixedLayout || this._forceRecalculateCellWidths);\n }\n /** Gets the list of rows that have been rendered in the row outlet. */\n _getRenderedRows(rowOutlet) {\n const renderedRows = [];\n for (let i = 0; i < rowOutlet.viewContainer.length; i++) {\n const viewRef = rowOutlet.viewContainer.get(i);\n renderedRows.push(viewRef.rootNodes[0]);\n }\n return renderedRows;\n }\n /**\n * Get the matching row definitions that should be used for this row data. If there is only\n * one row definition, it is returned. Otherwise, find the row definitions that has a when\n * predicate that returns true with the data. If none return true, return the default row\n * definition.\n */\n _getRowDefs(data, dataIndex) {\n if (this._rowDefs.length == 1) {\n return [this._rowDefs[0]];\n }\n let rowDefs = [];\n if (this.multiTemplateDataRows) {\n rowDefs = this._rowDefs.filter(def => !def.when || def.when(dataIndex, data));\n }\n else {\n let rowDef = this._rowDefs.find(def => def.when && def.when(dataIndex, data)) || this._defaultRowDef;\n if (rowDef) {\n rowDefs.push(rowDef);\n }\n }\n if (!rowDefs.length && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getTableMissingMatchingRowDefError(data);\n }\n return rowDefs;\n }\n _getEmbeddedViewArgs(renderRow, index) {\n const rowDef = renderRow.rowDef;\n const context = { $implicit: renderRow.data };\n return {\n templateRef: rowDef.template,\n context,\n index,\n };\n }\n /**\n * Creates a new row template in the outlet and fills it with the set of cell templates.\n * Optionally takes a context to provide to the row and cells, as well as an optional index\n * of where to place the new row template in the outlet.\n */\n _renderRow(outlet, rowDef, index, context = {}) {\n // TODO(andrewseguin): enforce that one outlet was instantiated from createEmbeddedView\n const view = outlet.viewContainer.createEmbeddedView(rowDef.template, context, index);\n this._renderCellTemplateForItem(rowDef, context);\n return view;\n }\n _renderCellTemplateForItem(rowDef, context) {\n for (let cellTemplate of this._getCellTemplates(rowDef)) {\n if (CdkCellOutlet.mostRecentCellOutlet) {\n CdkCellOutlet.mostRecentCellOutlet._viewContainer.createEmbeddedView(cellTemplate, context);\n }\n }\n this._changeDetectorRef.markForCheck();\n }\n /**\n * Updates the index-related context for each row to reflect any changes in the index of the rows,\n * e.g. first/last/even/odd.\n */\n _updateRowIndexContext() {\n const viewContainer = this._rowOutlet.viewContainer;\n for (let renderIndex = 0, count = viewContainer.length; renderIndex < count; renderIndex++) {\n const viewRef = viewContainer.get(renderIndex);\n const context = viewRef.context;\n context.count = count;\n context.first = renderIndex === 0;\n context.last = renderIndex === count - 1;\n context.even = renderIndex % 2 === 0;\n context.odd = !context.even;\n if (this.multiTemplateDataRows) {\n context.dataIndex = this._renderRows[renderIndex].dataIndex;\n context.renderIndex = renderIndex;\n }\n else {\n context.index = this._renderRows[renderIndex].dataIndex;\n }\n }\n }\n /** Gets the column definitions for the provided row def. */\n _getCellTemplates(rowDef) {\n if (!rowDef || !rowDef.columns) {\n return [];\n }\n return Array.from(rowDef.columns, columnId => {\n const column = this._columnDefsByName.get(columnId);\n if (!column && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getTableUnknownColumnError(columnId);\n }\n return rowDef.extractCellTemplate(column);\n });\n }\n /** Adds native table sections (e.g. tbody) and moves the row outlets into them. */\n _applyNativeTableSections() {\n const documentFragment = this._document.createDocumentFragment();\n const sections = [\n { tag: 'thead', outlets: [this._headerRowOutlet] },\n { tag: 'tbody', outlets: [this._rowOutlet, this._noDataRowOutlet] },\n { tag: 'tfoot', outlets: [this._footerRowOutlet] },\n ];\n for (const section of sections) {\n const element = this._document.createElement(section.tag);\n element.setAttribute('role', 'rowgroup');\n for (const outlet of section.outlets) {\n element.appendChild(outlet.elementRef.nativeElement);\n }\n documentFragment.appendChild(element);\n }\n // Use a DocumentFragment so we don't hit the DOM on each iteration.\n this._elementRef.nativeElement.appendChild(documentFragment);\n }\n /**\n * Forces a re-render of the data rows. Should be called in cases where there has been an input\n * change that affects the evaluation of which rows should be rendered, e.g. toggling\n * `multiTemplateDataRows` or adding/removing row definitions.\n */\n _forceRenderDataRows() {\n this._dataDiffer.diff([]);\n this._rowOutlet.viewContainer.clear();\n this.renderRows();\n }\n /**\n * Checks if there has been a change in sticky states since last check and applies the correct\n * sticky styles. Since checking resets the \"dirty\" state, this should only be performed once\n * during a change detection and after the inputs are settled (after content check).\n */\n _checkStickyStates() {\n const stickyCheckReducer = (acc, d) => {\n return acc || d.hasStickyChanged();\n };\n // Note that the check needs to occur for every definition since it notifies the definition\n // that it can reset its dirty state. Using another operator like `some` may short-circuit\n // remaining definitions and leave them in an unchecked state.\n if (this._headerRowDefs.reduce(stickyCheckReducer, false)) {\n this.updateStickyHeaderRowStyles();\n }\n if (this._footerRowDefs.reduce(stickyCheckReducer, false)) {\n this.updateStickyFooterRowStyles();\n }\n if (Array.from(this._columnDefsByName.values()).reduce(stickyCheckReducer, false)) {\n this._stickyColumnStylesNeedReset = true;\n this.updateStickyColumnStyles();\n }\n }\n /**\n * Creates the sticky styler that will be used for sticky rows and columns. Listens\n * for directionality changes and provides the latest direction to the styler. Re-applies column\n * stickiness when directionality changes.\n */\n _setupStickyStyler() {\n const direction = this._dir ? this._dir.value : 'ltr';\n this._stickyStyler = new StickyStyler(this._isNativeHtmlTable, this.stickyCssClass, direction, this._coalescedStyleScheduler, this._platform.isBrowser, this.needsPositionStickyOnElement, this._stickyPositioningListener);\n (this._dir ? this._dir.change : of())\n .pipe(takeUntil(this._onDestroy))\n .subscribe(value => {\n this._stickyStyler.direction = value;\n this.updateStickyColumnStyles();\n });\n }\n /** Filters definitions that belong to this table from a QueryList. */\n _getOwnDefs(items) {\n return items.filter(item => !item._table || item._table === this);\n }\n /** Creates or removes the no data row, depending on whether any data is being shown. */\n _updateNoDataRow() {\n const noDataRow = this._customNoDataRow || this._noDataRow;\n if (!noDataRow) {\n return;\n }\n const shouldShow = this._rowOutlet.viewContainer.length === 0;\n if (shouldShow === this._isShowingNoDataRow) {\n return;\n }\n const container = this._noDataRowOutlet.viewContainer;\n if (shouldShow) {\n const view = container.createEmbeddedView(noDataRow.templateRef);\n const rootNode = view.rootNodes[0];\n // Only add the attributes if we have a single root node since it's hard\n // to figure out which one to add it to when there are multiple.\n if (view.rootNodes.length === 1 && rootNode?.nodeType === this._document.ELEMENT_NODE) {\n rootNode.setAttribute('role', 'row');\n rootNode.classList.add(noDataRow._contentClassName);\n }\n }\n else {\n container.clear();\n }\n this._isShowingNoDataRow = shouldShow;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkTable, deps: [{ token: i0.IterableDiffers }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: 'role', attribute: true }, { token: i1.Directionality, optional: true }, { token: DOCUMENT }, { token: i2.Platform }, { token: _VIEW_REPEATER_STRATEGY }, { token: _COALESCED_STYLE_SCHEDULER }, { token: i3.ViewportRuler }, { token: STICKY_POSITIONING_LISTENER, optional: true, skipSelf: true }, { token: i0.NgZone, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"16.0.0\", type: CdkTable, selector: \"cdk-table, table[cdk-table]\", inputs: { trackBy: \"trackBy\", dataSource: \"dataSource\", multiTemplateDataRows: \"multiTemplateDataRows\", fixedLayout: \"fixedLayout\" }, outputs: { contentChanged: \"contentChanged\" }, host: { attributes: { \"ngSkipHydration\": \"\" }, properties: { \"class.cdk-table-fixed-layout\": \"fixedLayout\" }, classAttribute: \"cdk-table\" }, providers: [\n { provide: CDK_TABLE, useExisting: CdkTable },\n { provide: _VIEW_REPEATER_STRATEGY, useClass: _DisposeViewRepeaterStrategy },\n { provide: _COALESCED_STYLE_SCHEDULER, useClass: _CoalescedStyleScheduler },\n // Prevent nested tables from seeing this table's StickyPositioningListener.\n { provide: STICKY_POSITIONING_LISTENER, useValue: null },\n ], queries: [{ propertyName: \"_noDataRow\", first: true, predicate: CdkNoDataRow, descendants: true }, { propertyName: \"_contentColumnDefs\", predicate: CdkColumnDef, descendants: true }, { propertyName: \"_contentRowDefs\", predicate: CdkRowDef, descendants: true }, { propertyName: \"_contentHeaderRowDefs\", predicate: CdkHeaderRowDef, descendants: true }, { propertyName: \"_contentFooterRowDefs\", predicate: CdkFooterRowDef, descendants: true }], viewQueries: [{ propertyName: \"_rowOutlet\", first: true, predicate: DataRowOutlet, descendants: true, static: true }, { propertyName: \"_headerRowOutlet\", first: true, predicate: HeaderRowOutlet, descendants: true, static: true }, { propertyName: \"_footerRowOutlet\", first: true, predicate: FooterRowOutlet, descendants: true, static: true }, { propertyName: \"_noDataRowOutlet\", first: true, predicate: NoDataRowOutlet, descendants: true, static: true }], exportAs: [\"cdkTable\"], ngImport: i0, template: \"\\n \\n \\n \\n \\n \\n \\n\", isInline: true, styles: [\".cdk-table-fixed-layout{table-layout:fixed}\"], dependencies: [{ kind: \"directive\", type: DataRowOutlet, selector: \"[rowOutlet]\" }, { kind: \"directive\", type: HeaderRowOutlet, selector: \"[headerRowOutlet]\" }, { kind: \"directive\", type: FooterRowOutlet, selector: \"[footerRowOutlet]\" }, { kind: \"directive\", type: NoDataRowOutlet, selector: \"[noDataRowOutlet]\" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkTable, decorators: [{\n type: Component,\n args: [{ selector: 'cdk-table, table[cdk-table]', exportAs: 'cdkTable', template: CDK_TABLE_TEMPLATE, host: {\n 'class': 'cdk-table',\n '[class.cdk-table-fixed-layout]': 'fixedLayout',\n 'ngSkipHydration': '',\n }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, providers: [\n { provide: CDK_TABLE, useExisting: CdkTable },\n { provide: _VIEW_REPEATER_STRATEGY, useClass: _DisposeViewRepeaterStrategy },\n { provide: _COALESCED_STYLE_SCHEDULER, useClass: _CoalescedStyleScheduler },\n // Prevent nested tables from seeing this table's StickyPositioningListener.\n { provide: STICKY_POSITIONING_LISTENER, useValue: null },\n ], styles: [\".cdk-table-fixed-layout{table-layout:fixed}\"] }]\n }], ctorParameters: function () { return [{ type: i0.IterableDiffers }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: undefined, decorators: [{\n type: Attribute,\n args: ['role']\n }] }, { type: i1.Directionality, decorators: [{\n type: Optional\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i2.Platform }, { type: undefined, decorators: [{\n type: Inject,\n args: [_VIEW_REPEATER_STRATEGY]\n }] }, { type: _CoalescedStyleScheduler, decorators: [{\n type: Inject,\n args: [_COALESCED_STYLE_SCHEDULER]\n }] }, { type: i3.ViewportRuler }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: SkipSelf\n }, {\n type: Inject,\n args: [STICKY_POSITIONING_LISTENER]\n }] }, { type: i0.NgZone, decorators: [{\n type: Optional\n }] }]; }, propDecorators: { trackBy: [{\n type: Input\n }], dataSource: [{\n type: Input\n }], multiTemplateDataRows: [{\n type: Input\n }], fixedLayout: [{\n type: Input\n }], contentChanged: [{\n type: Output\n }], _rowOutlet: [{\n type: ViewChild,\n args: [DataRowOutlet, { static: true }]\n }], _headerRowOutlet: [{\n type: ViewChild,\n args: [HeaderRowOutlet, { static: true }]\n }], _footerRowOutlet: [{\n type: ViewChild,\n args: [FooterRowOutlet, { static: true }]\n }], _noDataRowOutlet: [{\n type: ViewChild,\n args: [NoDataRowOutlet, { static: true }]\n }], _contentColumnDefs: [{\n type: ContentChildren,\n args: [CdkColumnDef, { descendants: true }]\n }], _contentRowDefs: [{\n type: ContentChildren,\n args: [CdkRowDef, { descendants: true }]\n }], _contentHeaderRowDefs: [{\n type: ContentChildren,\n args: [CdkHeaderRowDef, {\n descendants: true,\n }]\n }], _contentFooterRowDefs: [{\n type: ContentChildren,\n args: [CdkFooterRowDef, {\n descendants: true,\n }]\n }], _noDataRow: [{\n type: ContentChild,\n args: [CdkNoDataRow]\n }] } });\n/** Utility function that gets a merged list of the entries in an array and values of a Set. */\nfunction mergeArrayAndSet(array, set) {\n return array.concat(Array.from(set));\n}\n\n/**\n * Column that simply shows text content for the header and row cells. Assumes that the table\n * is using the native table implementation (`
`).\n *\n * By default, the name of this column will be the header text and data property accessor.\n * The header text can be overridden with the `headerText` input. Cell values can be overridden with\n * the `dataAccessor` input. Change the text justification to the start or end using the `justify`\n * input.\n */\nclass CdkTextColumn {\n /** Column name that should be used to reference this column. */\n get name() {\n return this._name;\n }\n set name(name) {\n this._name = name;\n // With Ivy, inputs can be initialized before static query results are\n // available. In that case, we defer the synchronization until \"ngOnInit\" fires.\n this._syncColumnDefName();\n }\n constructor(\n // `CdkTextColumn` is always requiring a table, but we just assert it manually\n // for better error reporting.\n // tslint:disable-next-line: lightweight-tokens\n _table, _options) {\n this._table = _table;\n this._options = _options;\n /** Alignment of the cell values. */\n this.justify = 'start';\n this._options = _options || {};\n }\n ngOnInit() {\n this._syncColumnDefName();\n if (this.headerText === undefined) {\n this.headerText = this._createDefaultHeaderText();\n }\n if (!this.dataAccessor) {\n this.dataAccessor =\n this._options.defaultDataAccessor || ((data, name) => data[name]);\n }\n if (this._table) {\n // Provide the cell and headerCell directly to the table with the static `ViewChild` query,\n // since the columnDef will not pick up its content by the time the table finishes checking\n // its content and initializing the rows.\n this.columnDef.cell = this.cell;\n this.columnDef.headerCell = this.headerCell;\n this._table.addColumnDef(this.columnDef);\n }\n else if (typeof ngDevMode === 'undefined' || ngDevMode) {\n throw getTableTextColumnMissingParentTableError();\n }\n }\n ngOnDestroy() {\n if (this._table) {\n this._table.removeColumnDef(this.columnDef);\n }\n }\n /**\n * Creates a default header text. Use the options' header text transformation function if one\n * has been provided. Otherwise simply capitalize the column name.\n */\n _createDefaultHeaderText() {\n const name = this.name;\n if (!name && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getTableTextColumnMissingNameError();\n }\n if (this._options && this._options.defaultHeaderTextTransform) {\n return this._options.defaultHeaderTextTransform(name);\n }\n return name[0].toUpperCase() + name.slice(1);\n }\n /** Synchronizes the column definition name with the text column name. */\n _syncColumnDefName() {\n if (this.columnDef) {\n this.columnDef.name = this.name;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkTextColumn, deps: [{ token: CdkTable, optional: true }, { token: TEXT_COLUMN_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"16.0.0\", type: CdkTextColumn, selector: \"cdk-text-column\", inputs: { name: \"name\", headerText: \"headerText\", dataAccessor: \"dataAccessor\", justify: \"justify\" }, viewQueries: [{ propertyName: \"columnDef\", first: true, predicate: CdkColumnDef, descendants: true, static: true }, { propertyName: \"cell\", first: true, predicate: CdkCellDef, descendants: true, static: true }, { propertyName: \"headerCell\", first: true, predicate: CdkHeaderCellDef, descendants: true, static: true }], ngImport: i0, template: `\n \n \n \n \n `, isInline: true, dependencies: [{ kind: \"directive\", type: CdkCellDef, selector: \"[cdkCellDef]\" }, { kind: \"directive\", type: CdkHeaderCellDef, selector: \"[cdkHeaderCellDef]\" }, { kind: \"directive\", type: CdkColumnDef, selector: \"[cdkColumnDef]\", inputs: [\"sticky\", \"cdkColumnDef\", \"stickyEnd\"] }, { kind: \"directive\", type: CdkCell, selector: \"cdk-cell, td[cdk-cell]\" }, { kind: \"directive\", type: CdkHeaderCell, selector: \"cdk-header-cell, th[cdk-header-cell]\" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkTextColumn, decorators: [{\n type: Component,\n args: [{\n selector: 'cdk-text-column',\n template: `\n \n \n \n \n `,\n encapsulation: ViewEncapsulation.None,\n // Change detection is intentionally not set to OnPush. This component's template will be provided\n // to the table to be inserted into its view. This is problematic when change detection runs since\n // the bindings in this template will be evaluated _after_ the table's view is evaluated, which\n // mean's the template in the table's view will not have the updated value (and in fact will cause\n // an ExpressionChangedAfterItHasBeenCheckedError).\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n }]\n }], ctorParameters: function () { return [{ type: CdkTable, decorators: [{\n type: Optional\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [TEXT_COLUMN_OPTIONS]\n }] }]; }, propDecorators: { name: [{\n type: Input\n }], headerText: [{\n type: Input\n }], dataAccessor: [{\n type: Input\n }], justify: [{\n type: Input\n }], columnDef: [{\n type: ViewChild,\n args: [CdkColumnDef, { static: true }]\n }], cell: [{\n type: ViewChild,\n args: [CdkCellDef, { static: true }]\n }], headerCell: [{\n type: ViewChild,\n args: [CdkHeaderCellDef, { static: true }]\n }] } });\n\nconst EXPORTED_DECLARATIONS = [\n CdkTable,\n CdkRowDef,\n CdkCellDef,\n CdkCellOutlet,\n CdkHeaderCellDef,\n CdkFooterCellDef,\n CdkColumnDef,\n CdkCell,\n CdkRow,\n CdkHeaderCell,\n CdkFooterCell,\n CdkHeaderRow,\n CdkHeaderRowDef,\n CdkFooterRow,\n CdkFooterRowDef,\n DataRowOutlet,\n HeaderRowOutlet,\n FooterRowOutlet,\n CdkTextColumn,\n CdkNoDataRow,\n CdkRecycleRows,\n NoDataRowOutlet,\n];\nclass CdkTableModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkTableModule, declarations: [CdkTable,\n CdkRowDef,\n CdkCellDef,\n CdkCellOutlet,\n CdkHeaderCellDef,\n CdkFooterCellDef,\n CdkColumnDef,\n CdkCell,\n CdkRow,\n CdkHeaderCell,\n CdkFooterCell,\n CdkHeaderRow,\n CdkHeaderRowDef,\n CdkFooterRow,\n CdkFooterRowDef,\n DataRowOutlet,\n HeaderRowOutlet,\n FooterRowOutlet,\n CdkTextColumn,\n CdkNoDataRow,\n CdkRecycleRows,\n NoDataRowOutlet], imports: [ScrollingModule], exports: [CdkTable,\n CdkRowDef,\n CdkCellDef,\n CdkCellOutlet,\n CdkHeaderCellDef,\n CdkFooterCellDef,\n CdkColumnDef,\n CdkCell,\n CdkRow,\n CdkHeaderCell,\n CdkFooterCell,\n CdkHeaderRow,\n CdkHeaderRowDef,\n CdkFooterRow,\n CdkFooterRowDef,\n DataRowOutlet,\n HeaderRowOutlet,\n FooterRowOutlet,\n CdkTextColumn,\n CdkNoDataRow,\n CdkRecycleRows,\n NoDataRowOutlet] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkTableModule, imports: [ScrollingModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkTableModule, decorators: [{\n type: NgModule,\n args: [{\n exports: EXPORTED_DECLARATIONS,\n declarations: EXPORTED_DECLARATIONS,\n imports: [ScrollingModule],\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BaseCdkCell, BaseRowDef, CDK_ROW_TEMPLATE, CDK_TABLE, CDK_TABLE_TEMPLATE, CdkCell, CdkCellDef, CdkCellOutlet, CdkColumnDef, CdkFooterCell, CdkFooterCellDef, CdkFooterRow, CdkFooterRowDef, CdkHeaderCell, CdkHeaderCellDef, CdkHeaderRow, CdkHeaderRowDef, CdkNoDataRow, CdkRecycleRows, CdkRow, CdkRowDef, CdkTable, CdkTableModule, CdkTextColumn, DataRowOutlet, FooterRowOutlet, HeaderRowOutlet, NoDataRowOutlet, STICKY_DIRECTIONS, STICKY_POSITIONING_LISTENER, StickyStyler, TEXT_COLUMN_OPTIONS, _COALESCED_STYLE_SCHEDULER, _CoalescedStyleScheduler, _Schedule, mixinHasStickyInput };\n","import * as i1 from '@angular/cdk/platform';\nimport { normalizePassiveListenerOptions } from '@angular/cdk/platform';\nimport * as i0 from '@angular/core';\nimport { Injectable, EventEmitter, Directive, Output, Optional, Inject, Input, NgModule } from '@angular/core';\nimport { coerceElement, coerceNumberProperty, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { EMPTY, Subject, fromEvent } from 'rxjs';\nimport { auditTime, takeUntil } from 'rxjs/operators';\nimport { DOCUMENT } from '@angular/common';\n\n/** Options to pass to the animationstart listener. */\nconst listenerOptions = normalizePassiveListenerOptions({ passive: true });\n/**\n * An injectable service that can be used to monitor the autofill state of an input.\n * Based on the following blog post:\n * https://medium.com/@brunn/detecting-autofilled-fields-in-javascript-aed598d25da7\n */\nclass AutofillMonitor {\n constructor(_platform, _ngZone) {\n this._platform = _platform;\n this._ngZone = _ngZone;\n this._monitoredElements = new Map();\n }\n monitor(elementOrRef) {\n if (!this._platform.isBrowser) {\n return EMPTY;\n }\n const element = coerceElement(elementOrRef);\n const info = this._monitoredElements.get(element);\n if (info) {\n return info.subject;\n }\n const result = new Subject();\n const cssClass = 'cdk-text-field-autofilled';\n const listener = ((event) => {\n // Animation events fire on initial element render, we check for the presence of the autofill\n // CSS class to make sure this is a real change in state, not just the initial render before\n // we fire off events.\n if (event.animationName === 'cdk-text-field-autofill-start' &&\n !element.classList.contains(cssClass)) {\n element.classList.add(cssClass);\n this._ngZone.run(() => result.next({ target: event.target, isAutofilled: true }));\n }\n else if (event.animationName === 'cdk-text-field-autofill-end' &&\n element.classList.contains(cssClass)) {\n element.classList.remove(cssClass);\n this._ngZone.run(() => result.next({ target: event.target, isAutofilled: false }));\n }\n });\n this._ngZone.runOutsideAngular(() => {\n element.addEventListener('animationstart', listener, listenerOptions);\n element.classList.add('cdk-text-field-autofill-monitored');\n });\n this._monitoredElements.set(element, {\n subject: result,\n unlisten: () => {\n element.removeEventListener('animationstart', listener, listenerOptions);\n },\n });\n return result;\n }\n stopMonitoring(elementOrRef) {\n const element = coerceElement(elementOrRef);\n const info = this._monitoredElements.get(element);\n if (info) {\n info.unlisten();\n info.subject.complete();\n element.classList.remove('cdk-text-field-autofill-monitored');\n element.classList.remove('cdk-text-field-autofilled');\n this._monitoredElements.delete(element);\n }\n }\n ngOnDestroy() {\n this._monitoredElements.forEach((_info, element) => this.stopMonitoring(element));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: AutofillMonitor, deps: [{ token: i1.Platform }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: AutofillMonitor, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: AutofillMonitor, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: i1.Platform }, { type: i0.NgZone }]; } });\n/** A directive that can be used to monitor the autofill state of an input. */\nclass CdkAutofill {\n constructor(_elementRef, _autofillMonitor) {\n this._elementRef = _elementRef;\n this._autofillMonitor = _autofillMonitor;\n /** Emits when the autofill state of the element changes. */\n this.cdkAutofill = new EventEmitter();\n }\n ngOnInit() {\n this._autofillMonitor\n .monitor(this._elementRef)\n .subscribe(event => this.cdkAutofill.emit(event));\n }\n ngOnDestroy() {\n this._autofillMonitor.stopMonitoring(this._elementRef);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkAutofill, deps: [{ token: i0.ElementRef }, { token: AutofillMonitor }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.0\", type: CdkAutofill, selector: \"[cdkAutofill]\", outputs: { cdkAutofill: \"cdkAutofill\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkAutofill, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkAutofill]',\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: AutofillMonitor }]; }, propDecorators: { cdkAutofill: [{\n type: Output\n }] } });\n\n/** Directive to automatically resize a textarea to fit its content. */\nclass CdkTextareaAutosize {\n /** Minimum amount of rows in the textarea. */\n get minRows() {\n return this._minRows;\n }\n set minRows(value) {\n this._minRows = coerceNumberProperty(value);\n this._setMinHeight();\n }\n /** Maximum amount of rows in the textarea. */\n get maxRows() {\n return this._maxRows;\n }\n set maxRows(value) {\n this._maxRows = coerceNumberProperty(value);\n this._setMaxHeight();\n }\n /** Whether autosizing is enabled or not */\n get enabled() {\n return this._enabled;\n }\n set enabled(value) {\n value = coerceBooleanProperty(value);\n // Only act if the actual value changed. This specifically helps to not run\n // resizeToFitContent too early (i.e. before ngAfterViewInit)\n if (this._enabled !== value) {\n (this._enabled = value) ? this.resizeToFitContent(true) : this.reset();\n }\n }\n get placeholder() {\n return this._textareaElement.placeholder;\n }\n set placeholder(value) {\n this._cachedPlaceholderHeight = undefined;\n if (value) {\n this._textareaElement.setAttribute('placeholder', value);\n }\n else {\n this._textareaElement.removeAttribute('placeholder');\n }\n this._cacheTextareaPlaceholderHeight();\n }\n constructor(_elementRef, _platform, _ngZone, \n /** @breaking-change 11.0.0 make document required */\n document) {\n this._elementRef = _elementRef;\n this._platform = _platform;\n this._ngZone = _ngZone;\n this._destroyed = new Subject();\n this._enabled = true;\n /**\n * Value of minRows as of last resize. If the minRows has decreased, the\n * height of the textarea needs to be recomputed to reflect the new minimum. The maxHeight\n * does not have the same problem because it does not affect the textarea's scrollHeight.\n */\n this._previousMinRows = -1;\n this._isViewInited = false;\n /** Handles `focus` and `blur` events. */\n this._handleFocusEvent = (event) => {\n this._hasFocus = event.type === 'focus';\n };\n this._document = document;\n this._textareaElement = this._elementRef.nativeElement;\n }\n /** Sets the minimum height of the textarea as determined by minRows. */\n _setMinHeight() {\n const minHeight = this.minRows && this._cachedLineHeight ? `${this.minRows * this._cachedLineHeight}px` : null;\n if (minHeight) {\n this._textareaElement.style.minHeight = minHeight;\n }\n }\n /** Sets the maximum height of the textarea as determined by maxRows. */\n _setMaxHeight() {\n const maxHeight = this.maxRows && this._cachedLineHeight ? `${this.maxRows * this._cachedLineHeight}px` : null;\n if (maxHeight) {\n this._textareaElement.style.maxHeight = maxHeight;\n }\n }\n ngAfterViewInit() {\n if (this._platform.isBrowser) {\n // Remember the height which we started with in case autosizing is disabled\n this._initialHeight = this._textareaElement.style.height;\n this.resizeToFitContent();\n this._ngZone.runOutsideAngular(() => {\n const window = this._getWindow();\n fromEvent(window, 'resize')\n .pipe(auditTime(16), takeUntil(this._destroyed))\n .subscribe(() => this.resizeToFitContent(true));\n this._textareaElement.addEventListener('focus', this._handleFocusEvent);\n this._textareaElement.addEventListener('blur', this._handleFocusEvent);\n });\n this._isViewInited = true;\n this.resizeToFitContent(true);\n }\n }\n ngOnDestroy() {\n this._textareaElement.removeEventListener('focus', this._handleFocusEvent);\n this._textareaElement.removeEventListener('blur', this._handleFocusEvent);\n this._destroyed.next();\n this._destroyed.complete();\n }\n /**\n * Cache the height of a single-row textarea if it has not already been cached.\n *\n * We need to know how large a single \"row\" of a textarea is in order to apply minRows and\n * maxRows. For the initial version, we will assume that the height of a single line in the\n * textarea does not ever change.\n */\n _cacheTextareaLineHeight() {\n if (this._cachedLineHeight) {\n return;\n }\n // Use a clone element because we have to override some styles.\n let textareaClone = this._textareaElement.cloneNode(false);\n textareaClone.rows = 1;\n // Use `position: absolute` so that this doesn't cause a browser layout and use\n // `visibility: hidden` so that nothing is rendered. Clear any other styles that\n // would affect the height.\n textareaClone.style.position = 'absolute';\n textareaClone.style.visibility = 'hidden';\n textareaClone.style.border = 'none';\n textareaClone.style.padding = '0';\n textareaClone.style.height = '';\n textareaClone.style.minHeight = '';\n textareaClone.style.maxHeight = '';\n // In Firefox it happens that textarea elements are always bigger than the specified amount\n // of rows. This is because Firefox tries to add extra space for the horizontal scrollbar.\n // As a workaround that removes the extra space for the scrollbar, we can just set overflow\n // to hidden. This ensures that there is no invalid calculation of the line height.\n // See Firefox bug report: https://bugzilla.mozilla.org/show_bug.cgi?id=33654\n textareaClone.style.overflow = 'hidden';\n this._textareaElement.parentNode.appendChild(textareaClone);\n this._cachedLineHeight = textareaClone.clientHeight;\n textareaClone.remove();\n // Min and max heights have to be re-calculated if the cached line height changes\n this._setMinHeight();\n this._setMaxHeight();\n }\n _measureScrollHeight() {\n const element = this._textareaElement;\n const previousMargin = element.style.marginBottom || '';\n const isFirefox = this._platform.FIREFOX;\n const needsMarginFiller = isFirefox && this._hasFocus;\n const measuringClass = isFirefox\n ? 'cdk-textarea-autosize-measuring-firefox'\n : 'cdk-textarea-autosize-measuring';\n // In some cases the page might move around while we're measuring the `textarea` on Firefox. We\n // work around it by assigning a temporary margin with the same height as the `textarea` so that\n // it occupies the same amount of space. See #23233.\n if (needsMarginFiller) {\n element.style.marginBottom = `${element.clientHeight}px`;\n }\n // Reset the textarea height to auto in order to shrink back to its default size.\n // Also temporarily force overflow:hidden, so scroll bars do not interfere with calculations.\n element.classList.add(measuringClass);\n // The measuring class includes a 2px padding to workaround an issue with Chrome,\n // so we account for that extra space here by subtracting 4 (2px top + 2px bottom).\n const scrollHeight = element.scrollHeight - 4;\n element.classList.remove(measuringClass);\n if (needsMarginFiller) {\n element.style.marginBottom = previousMargin;\n }\n return scrollHeight;\n }\n _cacheTextareaPlaceholderHeight() {\n if (!this._isViewInited || this._cachedPlaceholderHeight != undefined) {\n return;\n }\n if (!this.placeholder) {\n this._cachedPlaceholderHeight = 0;\n return;\n }\n const value = this._textareaElement.value;\n this._textareaElement.value = this._textareaElement.placeholder;\n this._cachedPlaceholderHeight = this._measureScrollHeight();\n this._textareaElement.value = value;\n }\n ngDoCheck() {\n if (this._platform.isBrowser) {\n this.resizeToFitContent();\n }\n }\n /**\n * Resize the textarea to fit its content.\n * @param force Whether to force a height recalculation. By default the height will be\n * recalculated only if the value changed since the last call.\n */\n resizeToFitContent(force = false) {\n // If autosizing is disabled, just skip everything else\n if (!this._enabled) {\n return;\n }\n this._cacheTextareaLineHeight();\n this._cacheTextareaPlaceholderHeight();\n // If we haven't determined the line-height yet, we know we're still hidden and there's no point\n // in checking the height of the textarea.\n if (!this._cachedLineHeight) {\n return;\n }\n const textarea = this._elementRef.nativeElement;\n const value = textarea.value;\n // Only resize if the value or minRows have changed since these calculations can be expensive.\n if (!force && this._minRows === this._previousMinRows && value === this._previousValue) {\n return;\n }\n const scrollHeight = this._measureScrollHeight();\n const height = Math.max(scrollHeight, this._cachedPlaceholderHeight || 0);\n // Use the scrollHeight to know how large the textarea *would* be if fit its entire value.\n textarea.style.height = `${height}px`;\n this._ngZone.runOutsideAngular(() => {\n if (typeof requestAnimationFrame !== 'undefined') {\n requestAnimationFrame(() => this._scrollToCaretPosition(textarea));\n }\n else {\n setTimeout(() => this._scrollToCaretPosition(textarea));\n }\n });\n this._previousValue = value;\n this._previousMinRows = this._minRows;\n }\n /**\n * Resets the textarea to its original size\n */\n reset() {\n // Do not try to change the textarea, if the initialHeight has not been determined yet\n // This might potentially remove styles when reset() is called before ngAfterViewInit\n if (this._initialHeight !== undefined) {\n this._textareaElement.style.height = this._initialHeight;\n }\n }\n _noopInputHandler() {\n // no-op handler that ensures we're running change detection on input events.\n }\n /** Access injected document if available or fallback to global document reference */\n _getDocument() {\n return this._document || document;\n }\n /** Use defaultView of injected document if available or fallback to global window reference */\n _getWindow() {\n const doc = this._getDocument();\n return doc.defaultView || window;\n }\n /**\n * Scrolls a textarea to the caret position. On Firefox resizing the textarea will\n * prevent it from scrolling to the caret position. We need to re-set the selection\n * in order for it to scroll to the proper position.\n */\n _scrollToCaretPosition(textarea) {\n const { selectionStart, selectionEnd } = textarea;\n // IE will throw an \"Unspecified error\" if we try to set the selection range after the\n // element has been removed from the DOM. Assert that the directive hasn't been destroyed\n // between the time we requested the animation frame and when it was executed.\n // Also note that we have to assert that the textarea is focused before we set the\n // selection range. Setting the selection range on a non-focused textarea will cause\n // it to receive focus on IE and Edge.\n if (!this._destroyed.isStopped && this._hasFocus) {\n textarea.setSelectionRange(selectionStart, selectionEnd);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkTextareaAutosize, deps: [{ token: i0.ElementRef }, { token: i1.Platform }, { token: i0.NgZone }, { token: DOCUMENT, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.0\", type: CdkTextareaAutosize, selector: \"textarea[cdkTextareaAutosize]\", inputs: { minRows: [\"cdkAutosizeMinRows\", \"minRows\"], maxRows: [\"cdkAutosizeMaxRows\", \"maxRows\"], enabled: [\"cdkTextareaAutosize\", \"enabled\"], placeholder: \"placeholder\" }, host: { attributes: { \"rows\": \"1\" }, listeners: { \"input\": \"_noopInputHandler()\" }, classAttribute: \"cdk-textarea-autosize\" }, exportAs: [\"cdkTextareaAutosize\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: CdkTextareaAutosize, decorators: [{\n type: Directive,\n args: [{\n selector: 'textarea[cdkTextareaAutosize]',\n exportAs: 'cdkTextareaAutosize',\n host: {\n 'class': 'cdk-textarea-autosize',\n // Textarea elements that have the directive applied should have a single row by default.\n // Browsers normally show two rows by default and therefore this limits the minRows binding.\n 'rows': '1',\n '(input)': '_noopInputHandler()',\n },\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.Platform }, { type: i0.NgZone }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [DOCUMENT]\n }] }]; }, propDecorators: { minRows: [{\n type: Input,\n args: ['cdkAutosizeMinRows']\n }], maxRows: [{\n type: Input,\n args: ['cdkAutosizeMaxRows']\n }], enabled: [{\n type: Input,\n args: ['cdkTextareaAutosize']\n }], placeholder: [{\n type: Input\n }] } });\n\nclass TextFieldModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: TextFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"16.0.0\", ngImport: i0, type: TextFieldModule, declarations: [CdkAutofill, CdkTextareaAutosize], exports: [CdkAutofill, CdkTextareaAutosize] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: TextFieldModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: TextFieldModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [CdkAutofill, CdkTextareaAutosize],\n exports: [CdkAutofill, CdkTextareaAutosize],\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AutofillMonitor, CdkAutofill, CdkTextareaAutosize, TextFieldModule };\n","/**\n * @license Angular v16.0.5\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport * as i0 from '@angular/core';\nimport { InjectionToken, inject, Injectable, Optional, Inject, EventEmitter, ɵɵinject, ɵfindLocaleData, ɵLocaleDataIndex, ɵgetLocaleCurrencyCode, ɵgetLocalePluralCase, LOCALE_ID, ɵregisterLocaleData, ɵstringify, Directive, Input, createNgModule, NgModuleRef, ɵRuntimeError, Host, Attribute, RendererStyleFlags2, untracked, ɵisPromise, ɵisSubscribable, Pipe, DEFAULT_CURRENCY_CODE, NgModule, Version, ɵɵdefineInjectable, ɵformatRuntimeError, Renderer2, ElementRef, Injector, PLATFORM_ID, NgZone } from '@angular/core';\n\nlet _DOM = null;\nfunction getDOM() {\n return _DOM;\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 * A DI Token representing the main rendering context.\n * In a browser and SSR this is the DOM Document.\n * When using SSR, that document is created by [Domino](https://github.com/angular/domino).\n *\n * @publicApi\n */\nconst DOCUMENT = new InjectionToken('DocumentToken');\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 static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: PlatformLocation, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: PlatformLocation, providedIn: 'platform', useFactory: () => inject(BrowserPlatformLocation) }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: PlatformLocation, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'platform', useFactory: () => 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 *\n * @publicApi\n */\nclass BrowserPlatformLocation extends PlatformLocation {\n constructor() {\n super();\n this._doc = inject(DOCUMENT);\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 this._history.pushState(state, title, url);\n }\n replaceState(state, title, url) {\n this._history.replaceState(state, title, url);\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 static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: BrowserPlatformLocation, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: BrowserPlatformLocation, providedIn: 'platform', useFactory: () => new BrowserPlatformLocation() }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: BrowserPlatformLocation, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'platform',\n useFactory: () => new BrowserPlatformLocation(),\n }]\n }], ctorParameters: function () { return []; } });\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 * 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 static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: LocationStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: LocationStrategy, providedIn: 'root', useFactory: () => inject(PathLocationStrategy) }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.5\", 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 static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: PathLocationStrategy, deps: [{ token: PlatformLocation }, { token: APP_BASE_HREF, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: PathLocationStrategy, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.5\", 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 * @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 static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: HashLocationStrategy, deps: [{ token: PlatformLocation }, { token: APP_BASE_HREF, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: HashLocationStrategy }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.5\", 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 * @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 baseHref = this._locationStrategy.getBaseHref();\n // Note: This class's interaction with base HREF does not fully follow the rules\n // outlined in the spec https://www.freesoft.org/CIE/RFC/1808/18.htm.\n // Instead of trying to fix individual bugs with more and more code, we should\n // investigate using the URL constructor and providing the base as a second\n // argument.\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/URL#parameters\n this._basePath = _stripOrigin(stripTrailingSlash(_stripIndexHtml(baseHref)));\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(_stripBasePath(this._basePath, _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 * 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 */\n static { this.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 */\n static { this.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 */\n static { this.stripTrailingSlash = stripTrailingSlash; }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: Location, deps: [{ token: LocationStrategy }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: Location, providedIn: 'root', useFactory: createLocation }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.5\", 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 _stripBasePath(basePath, url) {\n if (!basePath || !url.startsWith(basePath)) {\n return url;\n }\n const strippedUrl = url.substring(basePath.length);\n if (strippedUrl === '' || ['/', ';', '?', '#'].includes(strippedUrl[0])) {\n return strippedUrl;\n }\n return url;\n}\nfunction _stripIndexHtml(url) {\n return url.replace(/\\/index.html$/, '');\n}\nfunction _stripOrigin(baseHref) {\n // DO NOT REFACTOR! Previously, this check looked like this:\n // `/^(https?:)?\\/\\//.test(baseHref)`, but that resulted in\n // syntactically incorrect code after Closure Compiler minification.\n // This was likely caused by a bug in Closure Compiler, but\n // for now, the check is rewritten to use `new RegExp` instead.\n const isAbsoluteUrl = (new RegExp('^(https?:)?//')).test(baseHref);\n if (isAbsoluteUrl) {\n const [, pathname] = baseHref.split(/\\/\\/[^\\/]+/);\n return pathname;\n }\n return baseHref;\n}\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 * Format styles that can be used to represent numbers.\n * @see `getLocaleNumberFormat()`.\n * @see [Internationalization (i18n) Guide](/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](/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](/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](/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](/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](/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](/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](/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](/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](/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](/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](/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](/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](/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](/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](/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](/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](/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](/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](/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](/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](/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](/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](/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](/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](/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\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](/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\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](/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](/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](/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 * @publicApi\n */\nclass NgLocalization {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: NgLocalization, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: NgLocalization, providedIn: 'root', useFactory: (locale) => new NgLocaleLocalization(locale), deps: [{ token: LOCALE_ID }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.5\", 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 static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: NgLocaleLocalization, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: NgLocaleLocalization }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.5\", 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 * 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\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\nconst WS_REGEXP = /\\s+/;\nconst EMPTY_ARRAY = [];\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(\n // leaving references to differs in place since flex layout is extending NgClass...\n _iterableDiffers, _keyValueDiffers, _ngEl, _renderer) {\n this._iterableDiffers = _iterableDiffers;\n this._keyValueDiffers = _keyValueDiffers;\n this._ngEl = _ngEl;\n this._renderer = _renderer;\n this.initialClasses = EMPTY_ARRAY;\n this.stateMap = new Map();\n }\n set klass(value) {\n this.initialClasses = value != null ? value.trim().split(WS_REGEXP) : EMPTY_ARRAY;\n }\n set ngClass(value) {\n this.rawClass = typeof value === 'string' ? value.trim().split(WS_REGEXP) : value;\n }\n /*\n The NgClass directive uses the custom change detection algorithm for its inputs. The custom\n algorithm is necessary since inputs are represented as complex object or arrays that need to be\n deeply-compared.\n \n This algorithm is perf-sensitive since NgClass is used very frequently and its poor performance\n might negatively impact runtime performance of the entire change detection cycle. The design of\n this algorithm is making sure that:\n - there is no unnecessary DOM manipulation (CSS classes are added / removed from the DOM only when\n needed), even if references to bound objects change;\n - there is no memory allocation if nothing changes (even relatively modest memory allocation\n during the change detection cycle can result in GC pauses for some of the CD cycles).\n \n The algorithm works by iterating over the set of bound classes, staring with [class] binding and\n then going over [ngClass] binding. For each CSS class name:\n - check if it was seen before (this information is tracked in the state map) and if its value\n changed;\n - mark it as \"touched\" - names that are not marked are not present in the latest set of binding\n and we can remove such class name from the internal data structures;\n \n After iteration over all the CSS class names we've got data structure with all the information\n necessary to synchronize changes to the DOM - it is enough to iterate over the state map, flush\n changes to the DOM and reset internal data structures so those are ready for the next change\n detection cycle.\n */\n ngDoCheck() {\n // classes from the [class] binding\n for (const klass of this.initialClasses) {\n this._updateState(klass, true);\n }\n // classes from the [ngClass] binding\n const rawClass = this.rawClass;\n if (Array.isArray(rawClass) || rawClass instanceof Set) {\n for (const klass of rawClass) {\n this._updateState(klass, true);\n }\n }\n else if (rawClass != null) {\n for (const klass of Object.keys(rawClass)) {\n this._updateState(klass, Boolean(rawClass[klass]));\n }\n }\n this._applyStateDiff();\n }\n _updateState(klass, nextEnabled) {\n const state = this.stateMap.get(klass);\n if (state !== undefined) {\n if (state.enabled !== nextEnabled) {\n state.changed = true;\n state.enabled = nextEnabled;\n }\n state.touched = true;\n }\n else {\n this.stateMap.set(klass, { enabled: nextEnabled, changed: true, touched: true });\n }\n }\n _applyStateDiff() {\n for (const stateEntry of this.stateMap) {\n const klass = stateEntry[0];\n const state = stateEntry[1];\n if (state.changed) {\n this._toggleClass(klass, state.enabled);\n state.changed = false;\n }\n else if (!state.touched) {\n // A class that was previously active got removed from the new collection of classes -\n // remove from the DOM as well.\n if (state.enabled) {\n this._toggleClass(klass, false);\n }\n this.stateMap.delete(klass);\n }\n state.touched = false;\n }\n }\n _toggleClass(klass, enabled) {\n if (ngDevMode) {\n if (typeof klass !== 'string') {\n throw new Error(`NgClass can only toggle CSS classes expressed as strings, got ${ɵstringify(klass)}`);\n }\n }\n klass = klass.trim();\n if (klass.length > 0) {\n klass.split(WS_REGEXP).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 static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: NgClass, deps: [{ token: i0.IterableDiffers }, { token: i0.KeyValueDiffers }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.5\", type: NgClass, isStandalone: true, selector: \"[ngClass]\", inputs: { klass: [\"class\", \"klass\"], ngClass: \"ngClass\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.5\", 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 * 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 static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: NgComponentOutlet, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.5\", type: NgComponentOutlet, isStandalone: true, selector: \"[ngComponentOutlet]\", inputs: { ngComponentOutlet: \"ngComponentOutlet\", ngComponentOutletInjector: \"ngComponentOutletInjector\", ngComponentOutletContent: \"ngComponentOutletContent\", ngComponentOutletNgModule: \"ngComponentOutletNgModule\", ngComponentOutletNgModuleFactory: \"ngComponentOutletNgModuleFactory\" }, usesOnChanges: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.5\", 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 * @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 /**\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 ((typeof ngDevMode === 'undefined' || ngDevMode) && fn != null && typeof fn !== 'function') {\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 this._trackByFn = fn;\n }\n get ngForTrackBy() {\n return this._trackByFn;\n }\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 * 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 (typeof ngDevMode === 'undefined' || ngDevMode) {\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 static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: NgForOf, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.5\", type: NgForOf, isStandalone: true, selector: \"[ngFor][ngForOf]\", inputs: { ngForOf: \"ngForOf\", ngForTrackBy: \"ngForTrackBy\", ngForTemplate: \"ngForTemplate\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.5\", 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 * 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 static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: NgIf, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.5\", type: NgIf, isStandalone: true, selector: \"[ngIf]\", inputs: { ngIf: \"ngIf\", ngIfThen: \"ngIfThen\", ngIfElse: \"ngIfElse\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.5\", 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\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._defaultViews = [];\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 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.length > 0 && useDefault !== this._defaultUsed) {\n this._defaultUsed = useDefault;\n for (const defaultView of this._defaultViews) {\n defaultView.enforceState(useDefault);\n }\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: NgSwitch, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.5\", type: NgSwitch, isStandalone: true, selector: \"[ngSwitch]\", inputs: { ngSwitch: \"ngSwitch\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.5\", 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 static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: NgSwitchCase, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: NgSwitch, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.5\", type: NgSwitchCase, isStandalone: true, selector: \"[ngSwitchCase]\", inputs: { ngSwitchCase: \"ngSwitchCase\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.5\", 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 static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: NgSwitchDefault, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: NgSwitch, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.5\", type: NgSwitchDefault, isStandalone: true, selector: \"[ngSwitchDefault]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.5\", 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 * @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._updateView(value);\n }\n addCase(value, switchView) {\n this._caseViews[value] = switchView;\n }\n _updateView(switchValue) {\n this._clearViews();\n const cases = Object.keys(this._caseViews);\n const key = getPluralCategory(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 static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: NgPlural, deps: [{ token: NgLocalization }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.5\", type: NgPlural, isStandalone: true, selector: \"[ngPlural]\", inputs: { ngPlural: \"ngPlural\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.5\", 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 static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: NgPluralCase, deps: [{ token: 'ngPluralCase', attribute: true }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: NgPlural, host: true }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.5\", type: NgPluralCase, isStandalone: true, selector: \"[ngPluralCase]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.5\", 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 * @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 static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: NgStyle, deps: [{ token: i0.ElementRef }, { token: i0.KeyValueDiffers }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.5\", type: NgStyle, isStandalone: true, selector: \"[ngStyle]\", inputs: { ngStyle: \"ngStyle\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.5\", 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 * @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 =\n 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 static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: NgTemplateOutlet, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.5\", type: NgTemplateOutlet, isStandalone: true, selector: \"[ngTemplateOutlet]\", inputs: { ngTemplateOutletContext: \"ngTemplateOutletContext\", ngTemplateOutlet: \"ngTemplateOutlet\", ngTemplateOutletInjector: \"ngTemplateOutletInjector\" }, usesOnChanges: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.5\", 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 * 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\nfunction invalidPipeArgumentError(type, value) {\n return new ɵRuntimeError(2100 /* RuntimeErrorCode.INVALID_PIPE_ARGUMENT */, ngDevMode && `InvalidPipeArgument: '${value}' for pipe '${ɵstringify(type)}'`);\n}\n\nclass SubscribableStrategy {\n createSubscription(async, updateLatestValue) {\n // Subscription can be side-effectful, and we don't want any signal reads which happen in the\n // side effect of the subscription to be tracked by a component's template when that\n // subscription is triggered via the async pipe. So we wrap the subscription in `untracked` to\n // decouple from the current reactive context.\n //\n // `untracked` also prevents signal _writes_ which happen in the subscription side effect from\n // being treated as signal writes during the template evaluation (which throws errors).\n return untracked(() => async.subscribe({\n next: updateLatestValue,\n error: (e) => {\n throw e;\n }\n }));\n }\n dispose(subscription) {\n // See the comment in `createSubscription` above on the use of `untracked`.\n untracked(() => 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 static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: AsyncPipe, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Pipe }); }\n static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"16.0.5\", ngImport: i0, type: AsyncPipe, isStandalone: true, name: \"async\", pure: false }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.5\", 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 * 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 static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: LowerCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }\n static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"16.0.5\", ngImport: i0, type: LowerCasePipe, isStandalone: true, name: \"lowercase\" }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.5\", 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 static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: TitleCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }\n static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"16.0.5\", ngImport: i0, type: TitleCasePipe, isStandalone: true, name: \"titlecase\" }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.5\", 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 static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: UpperCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }\n static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"16.0.5\", ngImport: i0, type: UpperCasePipe, isStandalone: true, name: \"uppercase\" }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: UpperCasePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'uppercase',\n standalone: true,\n }]\n }] });\n\n/**\n * The default date format of Angular date pipe, which corresponds to the following format:\n * `'MMM d,y'` (e.g. `Jun 15, 2015`)\n */\nconst DEFAULT_DATE_FORMAT = 'mediumDate';\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 *\n * @deprecated use DATE_PIPE_DEFAULT_OPTIONS token to configure DatePipe\n */\nconst DATE_PIPE_DEFAULT_TIMEZONE = new InjectionToken('DATE_PIPE_DEFAULT_TIMEZONE');\n/**\n * DI token that allows to provide default configuration for the `DatePipe` instances in an\n * application. The value is an object which can include the following fields:\n * - `dateFormat`: configures the default date format. If not provided, the `DatePipe`\n * will use the 'mediumDate' as a value.\n * - `timezone`: configures the default timezone. If not provided, the `DatePipe` will\n * use the end-user's local system timezone.\n *\n * @see `DatePipeConfig`\n *\n * @usageNotes\n *\n * Various date pipe default values can be overwritten by providing this token with\n * the value that has this interface.\n *\n * For example:\n *\n * Override the default date format by providing a value using the token:\n * ```typescript\n * providers: [\n * {provide: DATE_PIPE_DEFAULT_OPTIONS, useValue: {dateFormat: 'shortDate'}}\n * ]\n * ```\n *\n * Override the default timezone by providing a value using the token:\n * ```typescript\n * providers: [\n * {provide: DATE_PIPE_DEFAULT_OPTIONS, useValue: {timezone: '-1200'}}\n * ]\n * ```\n */\nconst DATE_PIPE_DEFAULT_OPTIONS = new InjectionToken('DATE_PIPE_DEFAULT_OPTIONS');\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_OPTIONS`\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, defaultOptions) {\n this.locale = locale;\n this.defaultTimezone = defaultTimezone;\n this.defaultOptions = defaultOptions;\n }\n transform(value, format, timezone, locale) {\n if (value == null || value === '' || value !== value)\n return null;\n try {\n const _format = format ?? this.defaultOptions?.dateFormat ?? DEFAULT_DATE_FORMAT;\n const _timezone = timezone ?? this.defaultOptions?.timezone ?? this.defaultTimezone ?? undefined;\n return formatDate(value, _format, locale || this.locale, _timezone);\n }\n catch (error) {\n throw invalidPipeArgumentError(DatePipe, error.message);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: DatePipe, deps: [{ token: LOCALE_ID }, { token: DATE_PIPE_DEFAULT_TIMEZONE, optional: true }, { token: DATE_PIPE_DEFAULT_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Pipe }); }\n static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"16.0.5\", ngImport: i0, type: DatePipe, isStandalone: true, name: \"date\" }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.5\", 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 }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [DATE_PIPE_DEFAULT_OPTIONS]\n }, {\n type: Optional\n }] }]; } });\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 static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: I18nPluralPipe, deps: [{ token: NgLocalization }], target: i0.ɵɵFactoryTarget.Pipe }); }\n static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"16.0.5\", ngImport: i0, type: I18nPluralPipe, isStandalone: true, name: \"i18nPlural\" }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.5\", 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 * @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 static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: I18nSelectPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }\n static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"16.0.5\", ngImport: i0, type: I18nSelectPipe, isStandalone: true, name: \"i18nSelect\" }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: I18nSelectPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'i18nSelect',\n pure: true,\n standalone: true,\n }]\n }] });\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 static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: JsonPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }\n static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"16.0.5\", ngImport: i0, type: JsonPipe, isStandalone: true, name: \"json\", pure: false }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: JsonPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'json',\n pure: false,\n standalone: true,\n }]\n }] });\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 static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: KeyValuePipe, deps: [{ token: i0.KeyValueDiffers }], target: i0.ɵɵFactoryTarget.Pipe }); }\n static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"16.0.5\", ngImport: i0, type: KeyValuePipe, isStandalone: true, name: \"keyvalue\", pure: false }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.5\", 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 * @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 static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: DecimalPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe }); }\n static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"16.0.5\", ngImport: i0, type: DecimalPipe, isStandalone: true, name: \"number\" }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.5\", 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 static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: PercentPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe }); }\n static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"16.0.5\", ngImport: i0, type: PercentPipe, isStandalone: true, name: \"percent\" }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.5\", 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 *\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 static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: CurrencyPipe, deps: [{ token: LOCALE_ID }, { token: DEFAULT_CURRENCY_CODE }], target: i0.ɵɵFactoryTarget.Pipe }); }\n static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"16.0.5\", ngImport: i0, type: CurrencyPipe, isStandalone: true, name: \"currency\" }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.5\", 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 * @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 static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: SlicePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }\n static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"16.0.5\", ngImport: i0, type: SlicePipe, isStandalone: true, name: \"slice\", pure: false }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: SlicePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'slice',\n pure: false,\n standalone: true,\n }]\n }] });\n\n/**\n * @module\n * @description\n * This module provides a set of common Pipes.\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// 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 static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: CommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"16.0.5\", 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] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: CommonModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.5\", 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\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 * @deprecated This function serves no purpose since the removal of the Webworker platform. It will\n * always return `false`.\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 * @deprecated This function serves no purpose since the removal of the Webworker platform. It will\n * always return `false`.\n */\nfunction isPlatformWorkerUi(platformId) {\n return platformId === PLATFORM_WORKER_UI_ID;\n}\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of the common package.\n */\n/**\n * @publicApi\n */\nconst VERSION = new Version('16.0.5');\n\n/**\n * Defines a scroll position manager. Implemented by `BrowserViewportScroller`.\n *\n * @publicApi\n */\nclass ViewportScroller {\n // De-sugared tree-shakable injection\n // See #23917\n /** @nocollapse */\n static { this.ɵprov = ɵɵdefineInjectable({\n token: ViewportScroller,\n providedIn: 'root',\n factory: () => new BrowserViewportScroller(ɵɵinject(DOCUMENT), window)\n }); }\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 typeof document.body.attachShadow === 'function') {\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 * A wrapper around the `XMLHttpRequest` constructor.\n *\n * @publicApi\n */\nclass XhrFactory {\n}\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 * 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 * 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 * 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 * 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 const { src, width } = config;\n let urlSegments;\n if (width) {\n const params = `tr:w-${width}`;\n urlSegments = [path, params, src];\n }\n else {\n urlSegments = [path, src];\n }\n return urlSegments.join('/');\n}\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// 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 * 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 * 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 static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: LCPImageObserver, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: LCPImageObserver, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.5\", 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// 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 static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: PreconnectLinkChecker, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: PreconnectLinkChecker, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.5\", 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 * 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 * @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 static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: PreloadLinkCreator, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: PreloadLinkCreator, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: PreloadLinkCreator, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\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.preloadLinkCreator = 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.preloadLinkCreator.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 => `${this.callImageLoader({\n src: this.ngSrc,\n width: this.width * multiplier\n })} ${multiplier}x`);\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 static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: NgOptimizedImage, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.5\", 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 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.5\", 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 computedStyle = window.getComputedStyle(img);\n let renderedWidth = parseFloat(computedStyle.getPropertyValue('width'));\n let renderedHeight = parseFloat(computedStyle.getPropertyValue('height'));\n const boxSizing = computedStyle.getPropertyValue('box-sizing');\n if (boxSizing === 'border-box') {\n const paddingTop = computedStyle.getPropertyValue('padding-top');\n const paddingRight = computedStyle.getPropertyValue('padding-right');\n const paddingBottom = computedStyle.getPropertyValue('padding-bottom');\n const paddingLeft = computedStyle.getPropertyValue('padding-left');\n renderedWidth -= parseFloat(paddingRight) + parseFloat(paddingLeft);\n renderedHeight -= parseFloat(paddingTop) + parseFloat(paddingBottom);\n }\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: ${round(intrinsicAspectRatio)}). \\nSupplied width and height attributes: ` +\n `${suppliedWidth}w x ${suppliedHeight}h (aspect-ratio: ${round(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: ${round(intrinsicAspectRatio)}). \\nRendered image size: ` +\n `${renderedWidth}w x ${renderedHeight}h (aspect-ratio: ` +\n `${round(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}\nfunction round(input) {\n return Number.isInteger(input) ? input : input.toFixed(2);\n}\n\n// These exports represent the set of symbols exposed as a public API.\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of the common package.\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\n// This file only reexports content of the `src` folder. Keep it that way.\n\n// This file is not used to build this module. It is only used during editing\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { APP_BASE_HREF, AsyncPipe, BrowserPlatformLocation, CommonModule, CurrencyPipe, DATE_PIPE_DEFAULT_OPTIONS, DATE_PIPE_DEFAULT_TIMEZONE, DOCUMENT, DatePipe, DecimalPipe, FormStyle, FormatWidth, HashLocationStrategy, I18nPluralPipe, I18nSelectPipe, IMAGE_CONFIG, 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, 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 v16.0.5\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport * as i0 from '@angular/core';\nimport { Injectable, InjectionToken, inject, ɵInitialRenderPendingTasks, Inject, ɵRuntimeError, PLATFORM_ID, makeEnvironmentProviders, NgModule, TransferState, makeStateKey, ɵENABLED_SSR_FEATURES, APP_BOOTSTRAP_LISTENER, ApplicationRef } from '@angular/core';\nimport { of, Observable, from } from 'rxjs';\nimport { concatMap, filter, map, finalize, switchMap, tap, first } from 'rxjs/operators';\nimport * as i1 from '@angular/common';\nimport { DOCUMENT, ɵparseCookieValue } from '@angular/common';\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 * 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.entries(headers).forEach(([name, values]) => {\n let headerValues;\n if (typeof values === 'string') {\n headerValues = [values];\n }\n else if (typeof values === 'number') {\n headerValues = [values.toString()];\n }\n else {\n headerValues = values.map((value) => value.toString());\n }\n if (headerValues.length > 0) {\n const key = name.toLowerCase();\n this.headers.set(key, headerValues);\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, numbers 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' || typeof value === 'number') && !Array.isArray(value)) {\n throw new Error(`Unexpected value of the \\`${key}\\` header provided. ` +\n `Expecting either a string, a number or an array, but got: \\`${value}\\`.`);\n }\n }\n}\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 * 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 * 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 * 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 * 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/tour-of-heroes/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 static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: HttpClient, deps: [{ token: HttpHandler }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: HttpClient }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: HttpClient, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: HttpHandler }]; } });\n\nfunction interceptorChainEndFn(req, finalHandlerFn) {\n return finalHandlerFn(req);\n}\n/**\n * Constructs a `ChainedInterceptorFn` which adapts a legacy `HttpInterceptor` to the\n * `ChainedInterceptorFn` interface.\n */\nfunction adaptLegacyInterceptorToChain(chainTailFn, interceptor) {\n return (initialRequest, finalHandlerFn) => interceptor.intercept(initialRequest, {\n handle: (downstreamRequest) => chainTailFn(downstreamRequest, finalHandlerFn),\n });\n}\n/**\n * Constructs a `ChainedInterceptorFn` which wraps and invokes a functional interceptor in the given\n * injector.\n */\nfunction chainedInterceptorFn(chainTailFn, interceptorFn, injector) {\n // clang-format off\n return (initialRequest, finalHandlerFn) => injector.runInContext(() => interceptorFn(initialRequest, downstreamRequest => chainTailFn(downstreamRequest, finalHandlerFn)));\n // clang-format on\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(ngDevMode ? 'HTTP_INTERCEPTORS' : '');\n/**\n * A multi-provided token of `HttpInterceptorFn`s.\n */\nconst HTTP_INTERCEPTOR_FNS = new InjectionToken(ngDevMode ? 'HTTP_INTERCEPTOR_FNS' : '');\n/**\n * A multi-provided token of `HttpInterceptorFn`s that are only set in root.\n */\nconst HTTP_ROOT_INTERCEPTOR_FNS = new InjectionToken(ngDevMode ? 'HTTP_ROOT_INTERCEPTOR_FNS' : '');\n/**\n * Creates an `HttpInterceptorFn` which lazily initializes an interceptor chain from the legacy\n * class-based interceptors and runs the request through it.\n */\nfunction legacyInterceptorFnFactory() {\n let chain = null;\n return (req, handler) => {\n if (chain === null) {\n const interceptors = inject(HTTP_INTERCEPTORS, { optional: true }) ?? [];\n // Note: interceptors are wrapped right-to-left so that final execution order is\n // left-to-right. That is, if `interceptors` is the array `[a, b, c]`, we want to\n // produce a chain that is conceptually `c(b(a(end)))`, which we build from the inside\n // out.\n chain = interceptors.reduceRight(adaptLegacyInterceptorToChain, interceptorChainEndFn);\n }\n const pendingTasks = inject(ɵInitialRenderPendingTasks);\n const taskId = pendingTasks.add();\n return chain(req, handler).pipe(finalize(() => pendingTasks.remove(taskId)));\n };\n}\nclass HttpInterceptorHandler extends HttpHandler {\n constructor(backend, injector) {\n super();\n this.backend = backend;\n this.injector = injector;\n this.chain = null;\n this.pendingTasks = inject(ɵInitialRenderPendingTasks);\n }\n handle(initialRequest) {\n if (this.chain === null) {\n const dedupedInterceptorFns = Array.from(new Set([\n ...this.injector.get(HTTP_INTERCEPTOR_FNS),\n ...this.injector.get(HTTP_ROOT_INTERCEPTOR_FNS, []),\n ]));\n // Note: interceptors are wrapped right-to-left so that final execution order is\n // left-to-right. That is, if `dedupedInterceptorFns` is the array `[a, b, c]`, we want to\n // produce a chain that is conceptually `c(b(a(end)))`, which we build from the inside\n // out.\n this.chain = dedupedInterceptorFns.reduceRight((nextSequencedFn, interceptorFn) => chainedInterceptorFn(nextSequencedFn, interceptorFn, this.injector), interceptorChainEndFn);\n }\n const taskId = this.pendingTasks.add();\n return this.chain(initialRequest, downstreamRequest => this.backend.handle(downstreamRequest))\n .pipe(finalize(() => this.pendingTasks.remove(taskId)));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: HttpInterceptorHandler, deps: [{ token: HttpBackend }, { token: i0.EnvironmentInjector }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: HttpInterceptorHandler }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.5\", ngImport: i0, type: HttpInterceptorHandler, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: HttpBackend }, { type: i0.EnvironmentInjector }]; } });\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
    \n {{headerText}}\n \n {{dataAccessor(data, name)}}\n \n {{headerText}}\n \n {{dataAccessor(data, name)}}\n