{"version":3,"sources":["node_modules/jquery/dist/jquery.min.js","node_modules/bootstrap/dist/js/bootstrap.min.js","node_modules/prismjs/prism.js","node_modules/prismjs/components/prism-bash.js","node_modules/prismjs/components/prism-c.js","node_modules/prismjs/components/prism-cpp.js","node_modules/prismjs/components/prism-csharp.js","node_modules/prismjs/components/prism-go.js","node_modules/prismjs/components/prism-haskell.js","node_modules/prismjs/components/prism-http.js","node_modules/prismjs/components/prism-java.js","node_modules/prismjs/components/prism-json.js","node_modules/prismjs/components/prism-markup-templating.js","node_modules/prismjs/components/prism-objectivec.js","node_modules/prismjs/components/prism-perl.js","node_modules/prismjs/components/prism-php.js","node_modules/prismjs/components/prism-python.js","node_modules/prismjs/components/prism-ruby.js","node_modules/prismjs/components/prism-swift.js","node_modules/prismjs/components/prism-yaml.js","node_modules/hopscotch/dist/js/hopscotch.js","src/app/startup.js"],"names":[],"mappings":"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;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF,YAAY;;AAEZ;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,wBAAwB,yBAAyB;AACjD;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,uCAAuC,mBAAmB;;AAE1D;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,mCAAmC,mEAAmE;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,EAAE;;AAEF;AACA,SAAS;;AAET;AACA;;AAEA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA,0BAA0B,2BAA2B;AACrD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,yEAAyE;AACzE,EAAE;;AAEF;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF,uBAAuB,KAAK;AAC5B;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,sDAAsD;AACtD;AACA,CAAC;;AAED;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,kBAAkB,QAAQ,WAAW;AACrC;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,uBAAuB;AACvB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,oBAAoB,IAAI;AACxB;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,0GAA0G,EAAE;AAC5G,CAAC;;AAED;AACA;AACA,6FAA6F,IAAI,kBAAkB;AACnH;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,GAAG,IAAI;AACzB;AACA;AACA,qBAAqB,GAAG;AACxB;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,GAAG;;AAEH;;AAEA;;AAEA,CAAC;;CCp2BD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,sBAAsB,GAAG,IAAI;AAC7B;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,oBAAoB;AACpB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,w4CAAw4C;AAC55C;AACA,GAAG;AACH;AACA,oBAAoB,0IAA0I;AAC9J;AACA,GAAG;AACH;AACA,oBAAoB,2BAA2B;AAC/C;AACA,GAAG;AACH;AACA,yCAAyC,IAAI;AAC7C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;CCnFD;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,CAAC;;AAED;AACA;;CChCA;AACA;AACA;AACA,8BAA8B,IAAI,KAAK,IAAI,QAAQ,IAAI,GAAG,IAAI,UAAU,IAAI;AAC5E,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,wBAAwB,KAAK;AAC7B;AACA;AACA;AACA,CAAC;;CCnBD;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,gD;CC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;CCXA;AACA;AACA,2EAA2E,WAAW;AACtF;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;;CCnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wFAAwF,EAAE;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;CCjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;CC1BD;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,oBAAoB,KAAK;AACzB;AACA;AACA;AACA;;AAEA;;CCbA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,IAAI;;AAEJ;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,YAAY,EAAE;AACjF;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC,E;CCxFD;AACA;AACA;AACA;AACA,CAAC;;CCJD;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH,OAAO;AACP;AACA,kCAAkC,OAAO,gBAAgB;AACzD;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH,OAAO;AACP;AACA,4BAA4B,OAAO,gBAAgB;AACnD;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH,OAAO,KAAK;AACZ;AACA,sCAAsC,OAAO,gBAAgB,KAAK,OAAO,gBAAgB;AACzF;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,yEAAyE;AACzE;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP,YAAY,UAAU;AACtB;AACA;AACA,OAAO;AACP,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,cAAc,EAAE;AAClD;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,wCAAwC,GAAG;AAC3C;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,oBAAoB,IAAI;AACxB;;CC9LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,GAAG;AAC9B;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,GAAG;AACH,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA,GAAG;AACH;AACA,+DAA+D,+CAA+C;AAC9G;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA,aAAa,MAAM,IAAI,IAAI,GAAG,KAAK,IAAI,KAAK,IAAI,SAAS;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF,CAAC,S;CC3HD;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,oBAAoB,IAAI;AACxB;;CC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA,eAAe,GAAG,IAAI;AACtB;AACA;AACA,kBAAkB,GAAG;AACrB;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA,+BAA+B,uCAAuC,IAAI;AAC1E;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,+CAA+C,IAAI;AACnD;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,kBAAkB,QAAQ,UAAU,GAAG,IAAI,eAAe,MAAM,IAAI;AACpE;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,iDAAiD,IAAI;AACrD;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,6CAA6C,IAAI;AACjD;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,8DAA8D,IAAI,kBAAkB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,2BAA2B,QAAQ,UAAU,GAAG,IAAI,eAAe;AACnE;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,wBAAwB,GAAG,IAAI;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,S;CClID;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,8BAA8B,GAAG;AACjC;AACA;AACA,CAAC;AACD,4F;CCxBA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,4BAA4B,uCAAuC,IAAI;AACvE;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,oBAAoB,6BAA6B,EAAE,oCAAoC,EAAE,IAAI,EAAE,qCAAqC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,gCAAgC;AACjN;AACA;AACA,EAAE;AACF;AACA,oBAAoB,qDAAqD;AACzE;AACA;AACA,EAAE;AACF;AACA,oBAAoB,iDAAiD;AACrE;AACA;AACA,EAAE;AACF;AACA,oBAAoB,yEAAyE;AAC7F;AACA;AACA,EAAE;AACF;AACA,oBAAoB,kHAAkH;AACtI;AACA,EAAE;AACF;AACA;AACA,4BAA4B;AAC5B;;CC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,qBAAqB;;AAEtB;AACA;AACA,GAAG;AACH;AACA;;AAEA;;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,+CAA+C,SAAS;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gDAAgD,SAAS;AACzD;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,iDAAiD,MAAM;AACvD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,uCAAuC,SAAS;AAChD;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qCAAqC,SAAS;AAC9C;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA,6CAA6C,SAAS;AACtD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,2DAA2D;AAC3D;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,eAAe;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA,gCAAgC;;AAEhC;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;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uGAAuG;AACvG;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;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,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,QAAQ;AAClC,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;;AAGL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;;AAGL;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;;AAGL;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,KAAK;;;AAGL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;;AAGL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,eAAe;AACf;AACA;AACA;;AAEA;AACA;AACA,8CAA8C,yBAAyB;AACvE;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;;AAGL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP,eAAe;AACf;AACA,KAAK;;;AAGL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,KAAK;;;AAGL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,mCAAmC;AACnC;AACA;;AAEA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;;;AAGL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;;;AAGL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0DAA0D,SAAS;AACnE;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,2BAA2B;;AAE3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;;AAEP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,iCAAiC,6BAA6B;AAC9D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;;AAEA,4CAA4C,SAAS;AACrD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,2CAA2C,SAAS;AACpD;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,yCAAyC,SAAS;AAClD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,sCAAsC,SAAS;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;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,gFAAgF;AAChF,8CAA8C,YAAY;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF;AACnF,iDAAiD,YAAY;AAC7D;AACA;AACA;AACA;AACA,qCAAqC,6CAA6C;AAClF;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,qBAAqB;AACpC,iBAAiB,OAAO;AACxB;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,0BAA0B;;AAE7C;AACA;AACA,qBAAqB,cAAc;AACnC,qBAAqB,aAAa;AAClC,qBAAqB,aAAa;AAClC,qBAAqB,eAAe;AACpC,qBAAqB,eAAe;AACpC,GAAG;AACH;;AAEA;;AAEA;AACA;AACA,kBAAkB;;;AAGlB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ,iBAAiB;AACjB;AACA;AACA;AACA,EAAE;AACF;AACA,uBAAuB;AACvB;AACA;AACA;AACA,EAAE;AACF;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,EAAE;AACF;AACA,sBAAsB;AACtB;AACA;AACA;AACA,EAAE;AACF;AACA,qBAAqB;AACrB;AACA;AACA;AACA,EAAE;AACF;AACA,sBAAsB;AACtB;AACA;AACA;AACA,EAAE;AACF;AACA,uBAAuB;AACvB;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;;AAEA,CAAC;;CC98ED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"scripts.bundle.js","sourcesContent":["/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | jquery.org/license */\n!function(e,t){\"use strict\";\"object\"==typeof module&&\"object\"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error(\"jQuery requires a window with a document\");return t(e)}:t(e)}(\"undefined\"!=typeof window?window:this,function(C,e){\"use strict\";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return\"function\"==typeof e&&\"number\"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement(\"script\");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+\"\":\"object\"==typeof e||\"function\"==typeof e?n[o.call(e)]||\"object\":typeof e}var f=\"3.5.1\",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&\"length\"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&(\"array\"===n||0===t||\"number\"==typeof t&&0+~]|\"+M+\")\"+M+\"*\"),U=new RegExp(M+\"|>\"),X=new RegExp(F),V=new RegExp(\"^\"+I+\"$\"),G={ID:new RegExp(\"^#(\"+I+\")\"),CLASS:new RegExp(\"^\\\\.(\"+I+\")\"),TAG:new RegExp(\"^(\"+I+\"|[*])\"),ATTR:new RegExp(\"^\"+W),PSEUDO:new RegExp(\"^\"+F),CHILD:new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\"+M+\"*(even|odd|(([+-]|)(\\\\d*)n|)\"+M+\"*(?:([+-]|)\"+M+\"*(\\\\d+)|))\"+M+\"*\\\\)|)\",\"i\"),bool:new RegExp(\"^(?:\"+R+\")$\",\"i\"),needsContext:new RegExp(\"^\"+M+\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\"+M+\"*((?:-\\\\d)?\\\\d*)\"+M+\"*\\\\)|)(?=[^-]|$)\",\"i\")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\\d$/i,K=/^[^{]+\\{\\s*\\[native \\w/,Z=/^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,ee=/[+~]/,te=new RegExp(\"\\\\\\\\[\\\\da-fA-F]{1,6}\"+M+\"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\",\"g\"),ne=function(e,t){var n=\"0x\"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,ie=function(e,t){return t?\"\\0\"===e?\"\\ufffd\":e.slice(0,-1)+\"\\\\\"+e.charCodeAt(e.length-1).toString(16)+\" \":\"\\\\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&\"fieldset\"===e.nodeName.toLowerCase()},{dir:\"parentNode\",next:\"legend\"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],\"string\"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+\" \"]&&(!v||!v.test(t))&&(1!==p||\"object\"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute(\"id\"))?s=s.replace(re,ie):e.setAttribute(\"id\",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?\"#\"+s:\":scope\")+\" \"+xe(l[o]);c=l.join(\",\")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute(\"id\")}}}return g(t.replace($,\"$1\"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+\" \")>b.cacheLength&&delete e[r.shift()],e[t+\" \"]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement(\"fieldset\");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split(\"|\"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return\"input\"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return(\"input\"===t||\"button\"===t)&&e.type===n}}function ge(t){return function(e){return\"form\"in e?e.parentNode&&!1===e.disabled?\"label\"in e?\"label\"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:\"label\"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&\"undefined\"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||\"HTML\")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener(\"unload\",oe,!1):n.attachEvent&&n.attachEvent(\"onunload\",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement(\"div\")),\"undefined\"!=typeof e.querySelectorAll&&!e.querySelectorAll(\":scope fieldset div\").length}),d.attributes=ce(function(e){return e.className=\"i\",!e.getAttribute(\"className\")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment(\"\")),!e.getElementsByTagName(\"*\").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute(\"id\")===t}},b.find.ID=function(e,t){if(\"undefined\"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t=\"undefined\"!=typeof e.getAttributeNode&&e.getAttributeNode(\"id\");return t&&t.value===n}},b.find.ID=function(e,t){if(\"undefined\"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode(\"id\"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode(\"id\"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return\"undefined\"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if(\"*\"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if(\"undefined\"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML=\"\",e.querySelectorAll(\"[msallowcapture^='']\").length&&v.push(\"[*^$]=\"+M+\"*(?:''|\\\"\\\")\"),e.querySelectorAll(\"[selected]\").length||v.push(\"\\\\[\"+M+\"*(?:value|\"+R+\")\"),e.querySelectorAll(\"[id~=\"+S+\"-]\").length||v.push(\"~=\"),(t=C.createElement(\"input\")).setAttribute(\"name\",\"\"),e.appendChild(t),e.querySelectorAll(\"[name='']\").length||v.push(\"\\\\[\"+M+\"*name\"+M+\"*=\"+M+\"*(?:''|\\\"\\\")\"),e.querySelectorAll(\":checked\").length||v.push(\":checked\"),e.querySelectorAll(\"a#\"+S+\"+*\").length||v.push(\".#.+[+~]\"),e.querySelectorAll(\"\\\\\\f\"),v.push(\"[\\\\r\\\\n\\\\f]\")}),ce(function(e){e.innerHTML=\"\";var t=C.createElement(\"input\");t.setAttribute(\"type\",\"hidden\"),e.appendChild(t).setAttribute(\"name\",\"D\"),e.querySelectorAll(\"[name=d]\").length&&v.push(\"name\"+M+\"*[*^$|!~]?=\"),2!==e.querySelectorAll(\":enabled\").length&&v.push(\":enabled\",\":disabled\"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(\":disabled\").length&&v.push(\":enabled\",\":disabled\"),e.querySelectorAll(\"*,:x\"),v.push(\",.*:\")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,\"*\"),c.call(e,\"[s!='']:x\"),s.push(\"!=\",F)}),v=v.length&&new RegExp(v.join(\"|\")),s=s.length&&new RegExp(s.join(\"|\")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+\" \"]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0\":{dir:\"parentNode\",first:!0},\" \":{dir:\"parentNode\"},\"+\":{dir:\"previousSibling\",first:!0},\"~\":{dir:\"previousSibling\"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||\"\").replace(te,ne),\"~=\"===e[2]&&(e[3]=\" \"+e[3]+\" \"),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),\"nth\"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*(\"even\"===e[3]||\"odd\"===e[3])),e[5]=+(e[7]+e[8]||\"odd\"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||\"\":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(\")\",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return\"*\"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+\" \"];return t||(t=new RegExp(\"(^|\"+M+\")\"+e+\"(\"+M+\"|$)\"))&&m(e,function(e){return t.test(\"string\"==typeof e.className&&e.className||\"undefined\"!=typeof e.getAttribute&&e.getAttribute(\"class\")||\"\")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?\"!=\"===r:!r||(t+=\"\",\"=\"===r?t===i:\"!=\"===r?t!==i:\"^=\"===r?i&&0===t.indexOf(i):\"*=\"===r?i&&-1\",\"#\"===e.firstChild.getAttribute(\"href\")})||fe(\"type|href|height|width\",function(e,t,n){if(!n)return e.getAttribute(t,\"type\"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML=\"\",e.firstChild.setAttribute(\"value\",\"\"),\"\"===e.firstChild.getAttribute(\"value\")})||fe(\"value\",function(e,t,n){if(!n&&\"input\"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute(\"disabled\")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);S.find=d,S.expr=d.selectors,S.expr[\":\"]=S.expr.pseudos,S.uniqueSort=S.unique=d.uniqueSort,S.text=d.getText,S.isXMLDoc=d.isXML,S.contains=d.contains,S.escapeSelector=d.escape;var h=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&S(e).is(n))break;r.push(e)}return r},T=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},k=S.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var N=/^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):\"string\"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,\"string\"==typeof e){if(!(r=\"<\"===e[0]&&\">\"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\\x20\\t\\r\\n\\f]*)/i,he=/^$|^module$|\\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement(\"div\")),(fe=E.createElement(\"input\")).setAttribute(\"type\",\"radio\"),fe.setAttribute(\"checked\",\"checked\"),fe.setAttribute(\"name\",\"t\"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML=\"\",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML=\"\",y.option=!!ce.lastChild;var ge={thead:[1,\"\",\"
\"],col:[2,\"\",\"
\"],tr:[2,\"\",\"
\"],td:[3,\"\",\"
\"],_default:[0,\"\",\"\"]};function ve(e,t){var n;return n=\"undefined\"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||\"*\"):\"undefined\"!=typeof e.querySelectorAll?e.querySelectorAll(t||\"*\"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n\",\"\"]);var me=/<|&#?\\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\\s*$/g;function qe(e,t){return A(e,\"table\")&&A(11!==t.nodeType?t:t.firstChild,\"tr\")&&S(e).children(\"tbody\")[0]||e}function Le(e){return e.type=(null!==e.getAttribute(\"type\"))+\"/\"+e.type,e}function He(e){return\"true/\"===(e.type||\"\").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute(\"type\"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,\"handle events\"),s)for(n=0,r=s[i].length;n\").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on(\"load error\",i=function(e){r.remove(),i=null,e&&t(\"error\"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\\?(?=&|$)|\\?\\?/;S.ajaxSetup({jsonp:\"callback\",jsonpCallback:function(){var e=Xt.pop()||S.expando+\"_\"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter(\"json jsonp\",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?\"url\":\"string\"==typeof e.data&&0===(e.contentType||\"\").indexOf(\"application/x-www-form-urlencoded\")&&Vt.test(e.data)&&\"data\");if(a||\"jsonp\"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,\"$1\"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?\"&\":\"?\")+e.jsonp+\"=\"+r),e.converters[\"script json\"]=function(){return o||S.error(r+\" was not called\"),o[0]},e.dataTypes[0]=\"json\",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),\"script\"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument(\"\").body).innerHTML=\"
\",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return\"string\"!=typeof e?[]:(\"boolean\"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument(\"\")).createElement(\"base\")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(\" \");return-1\").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,\"position\"),c=S(e),f={};\"static\"===l&&(e.style.position=\"relative\"),s=c.offset(),o=S.css(e,\"top\"),u=S.css(e,\"left\"),(\"absolute\"===l||\"fixed\"===l)&&-1<(o+u).indexOf(\"auto\")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),\"using\"in t?t.using.call(e,f):(\"number\"==typeof f.top&&(f.top+=\"px\"),\"number\"==typeof f.left&&(f.left+=\"px\"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if(\"fixed\"===S.css(r,\"position\"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&\"static\"===S.css(e,\"position\"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,\"borderTopWidth\",!0),i.left+=S.css(e,\"borderLeftWidth\",!0))}return{top:t.top-i.top-S.css(r,\"marginTop\",!0),left:t.left-i.left-S.css(r,\"marginLeft\",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&\"static\"===S.css(e,\"position\"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:\"pageXOffset\",scrollTop:\"pageYOffset\"},function(t,i){var o=\"pageYOffset\"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each([\"top\",\"left\"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+\"px\":t})}),S.each({Height:\"height\",Width:\"width\"},function(a,s){S.each({padding:\"inner\"+a,content:s,\"\":\"outer\"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||\"boolean\"!=typeof e),i=r||(!0===e||!0===t?\"margin\":\"border\");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf(\"outer\")?e[\"inner\"+a]:e.document.documentElement[\"client\"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body[\"scroll\"+a],r[\"scroll\"+a],e.body[\"offset\"+a],r[\"offset\"+a],r[\"client\"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each([\"ajaxStart\",\"ajaxStop\",\"ajaxComplete\",\"ajaxError\",\"ajaxSuccess\",\"ajaxSend\"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,\"**\"):this.off(t,e||\"**\",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each(\"blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu\".split(\" \"),function(e,n){S.fn[n]=function(e,t){return 0this.$items.length-1||t<0))return this.sliding?this.$element.one(\"slid.bs.carousel\",function(){e.to(t)}):i==t?this.pause().cycle():this.slide(idocument.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&t?this.scrollbarWidth:\"\",paddingRight:this.bodyIsOverflowing&&!t?this.scrollbarWidth:\"\"})},s.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:\"\",paddingRight:\"\"})},s.prototype.checkScrollbar=function(){var t=window.innerWidth;if(!t){var e=document.documentElement.getBoundingClientRect();t=e.right-Math.abs(e.left)}this.bodyIsOverflowing=document.body.clientWidth
',trigger:\"hover focus\",title:\"\",delay:0,html:!1,container:!1,viewport:{selector:\"body\",padding:0},sanitize:!0,sanitizeFn:null,whiteList:t},m.prototype.init=function(t,e,i){if(this.enabled=!0,this.type=t,this.$element=g(e),this.options=this.getOptions(i),this.$viewport=this.options.viewport&&g(document).find(g.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error(\"`selector` option must be specified when initializing \"+this.type+\" on the window.document object!\");for(var o=this.options.trigger.split(\" \"),n=o.length;n--;){var s=o[n];if(\"click\"==s)this.$element.on(\"click.\"+this.type,this.options.selector,g.proxy(this.toggle,this));else if(\"manual\"!=s){var a=\"hover\"==s?\"mouseenter\":\"focusin\",r=\"hover\"==s?\"mouseleave\":\"focusout\";this.$element.on(a+\".\"+this.type,this.options.selector,g.proxy(this.enter,this)),this.$element.on(r+\".\"+this.type,this.options.selector,g.proxy(this.leave,this))}}this.options.selector?this._options=g.extend({},this.options,{trigger:\"manual\",selector:\"\"}):this.fixTitle()},m.prototype.getDefaults=function(){return m.DEFAULTS},m.prototype.getOptions=function(t){var e=this.$element.data();for(var i in e)e.hasOwnProperty(i)&&-1!==g.inArray(i,o)&&delete e[i];return(t=g.extend({},this.getDefaults(),e,t)).delay&&\"number\"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),t.sanitize&&(t.template=n(t.template,t.whiteList,t.sanitizeFn)),t},m.prototype.getDelegateOptions=function(){var i={},o=this.getDefaults();return this._options&&g.each(this._options,function(t,e){o[t]!=e&&(i[t]=e)}),i},m.prototype.enter=function(t){var e=t instanceof this.constructor?t:g(t.currentTarget).data(\"bs.\"+this.type);if(e||(e=new this.constructor(t.currentTarget,this.getDelegateOptions()),g(t.currentTarget).data(\"bs.\"+this.type,e)),t instanceof g.Event&&(e.inState[\"focusin\"==t.type?\"focus\":\"hover\"]=!0),e.tip().hasClass(\"in\")||\"in\"==e.hoverState)e.hoverState=\"in\";else{if(clearTimeout(e.timeout),e.hoverState=\"in\",!e.options.delay||!e.options.delay.show)return e.show();e.timeout=setTimeout(function(){\"in\"==e.hoverState&&e.show()},e.options.delay.show)}},m.prototype.isInStateTrue=function(){for(var t in this.inState)if(this.inState[t])return!0;return!1},m.prototype.leave=function(t){var e=t instanceof this.constructor?t:g(t.currentTarget).data(\"bs.\"+this.type);if(e||(e=new this.constructor(t.currentTarget,this.getDelegateOptions()),g(t.currentTarget).data(\"bs.\"+this.type,e)),t instanceof g.Event&&(e.inState[\"focusout\"==t.type?\"focus\":\"hover\"]=!1),!e.isInStateTrue()){if(clearTimeout(e.timeout),e.hoverState=\"out\",!e.options.delay||!e.options.delay.hide)return e.hide();e.timeout=setTimeout(function(){\"out\"==e.hoverState&&e.hide()},e.options.delay.hide)}},m.prototype.show=function(){var t=g.Event(\"show.bs.\"+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(t);var e=g.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(t.isDefaultPrevented()||!e)return;var i=this,o=this.tip(),n=this.getUID(this.type);this.setContent(),o.attr(\"id\",n),this.$element.attr(\"aria-describedby\",n),this.options.animation&&o.addClass(\"fade\");var s=\"function\"==typeof this.options.placement?this.options.placement.call(this,o[0],this.$element[0]):this.options.placement,a=/\\s?auto?\\s?/i,r=a.test(s);r&&(s=s.replace(a,\"\")||\"top\"),o.detach().css({top:0,left:0,display:\"block\"}).addClass(s).data(\"bs.\"+this.type,this),this.options.container?o.appendTo(g(document).find(this.options.container)):o.insertAfter(this.$element),this.$element.trigger(\"inserted.bs.\"+this.type);var l=this.getPosition(),h=o[0].offsetWidth,d=o[0].offsetHeight;if(r){var p=s,c=this.getPosition(this.$viewport);s=\"bottom\"==s&&l.bottom+d>c.bottom?\"top\":\"top\"==s&&l.top-dc.width?\"left\":\"left\"==s&&l.left-ha.top+a.height&&(n.top=a.top+a.height-l)}else{var h=e.left-s,d=e.left+s+i;ha.right&&(n.left=a.left+a.width-d)}return n},m.prototype.getTitle=function(){var t=this.$element,e=this.options;return t.attr(\"data-original-title\")||(\"function\"==typeof e.title?e.title.call(t[0]):e.title)},m.prototype.getUID=function(t){for(;t+=~~(1e6*Math.random()),document.getElementById(t););return t},m.prototype.tip=function(){if(!this.$tip&&(this.$tip=g(this.options.template),1!=this.$tip.length))throw new Error(this.type+\" `template` option must consist of exactly 1 top-level element!\");return this.$tip},m.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(\".tooltip-arrow\")},m.prototype.enable=function(){this.enabled=!0},m.prototype.disable=function(){this.enabled=!1},m.prototype.toggleEnabled=function(){this.enabled=!this.enabled},m.prototype.toggle=function(t){var e=this;t&&((e=g(t.currentTarget).data(\"bs.\"+this.type))||(e=new this.constructor(t.currentTarget,this.getDelegateOptions()),g(t.currentTarget).data(\"bs.\"+this.type,e))),t?(e.inState.click=!e.inState.click,e.isInStateTrue()?e.enter(e):e.leave(e)):e.tip().hasClass(\"in\")?e.leave(e):e.enter(e)},m.prototype.destroy=function(){var t=this;clearTimeout(this.timeout),this.hide(function(){t.$element.off(\".\"+t.type).removeData(\"bs.\"+t.type),t.$tip&&t.$tip.detach(),t.$tip=null,t.$arrow=null,t.$viewport=null,t.$element=null})},m.prototype.sanitizeHtml=function(t){return n(t,this.options.whiteList,this.options.sanitizeFn)};var e=g.fn.tooltip;g.fn.tooltip=function i(o){return this.each(function(){var t=g(this),e=t.data(\"bs.tooltip\"),i=\"object\"==typeof o&&o;!e&&/destroy|hide/.test(o)||(e||t.data(\"bs.tooltip\",e=new m(this,i)),\"string\"==typeof o&&e[o]())})},g.fn.tooltip.Constructor=m,g.fn.tooltip.noConflict=function(){return g.fn.tooltip=e,this}}(jQuery),function(n){\"use strict\";var s=function(t,e){this.init(\"popover\",t,e)};if(!n.fn.tooltip)throw new Error(\"Popover requires tooltip.js\");s.VERSION=\"3.4.1\",s.DEFAULTS=n.extend({},n.fn.tooltip.Constructor.DEFAULTS,{placement:\"right\",trigger:\"click\",content:\"\",template:'

'}),((s.prototype=n.extend({},n.fn.tooltip.Constructor.prototype)).constructor=s).prototype.getDefaults=function(){return s.DEFAULTS},s.prototype.setContent=function(){var t=this.tip(),e=this.getTitle(),i=this.getContent();if(this.options.html){var o=typeof i;this.options.sanitize&&(e=this.sanitizeHtml(e),\"string\"===o&&(i=this.sanitizeHtml(i))),t.find(\".popover-title\").html(e),t.find(\".popover-content\").children().detach().end()[\"string\"===o?\"html\":\"append\"](i)}else t.find(\".popover-title\").text(e),t.find(\".popover-content\").children().detach().end().text(i);t.removeClass(\"fade top bottom left right in\"),t.find(\".popover-title\").html()||t.find(\".popover-title\").hide()},s.prototype.hasContent=function(){return this.getTitle()||this.getContent()},s.prototype.getContent=function(){var t=this.$element,e=this.options;return t.attr(\"data-content\")||(\"function\"==typeof e.content?e.content.call(t[0]):e.content)},s.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(\".arrow\")};var t=n.fn.popover;n.fn.popover=function e(o){return this.each(function(){var t=n(this),e=t.data(\"bs.popover\"),i=\"object\"==typeof o&&o;!e&&/destroy|hide/.test(o)||(e||t.data(\"bs.popover\",e=new s(this,i)),\"string\"==typeof o&&e[o]())})},n.fn.popover.Constructor=s,n.fn.popover.noConflict=function(){return n.fn.popover=t,this}}(jQuery),function(s){\"use strict\";function n(t,e){this.$body=s(document.body),this.$scrollElement=s(t).is(document.body)?s(window):s(t),this.options=s.extend({},n.DEFAULTS,e),this.selector=(this.options.target||\"\")+\" .nav li > a\",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on(\"scroll.bs.scrollspy\",s.proxy(this.process,this)),this.refresh(),this.process()}function e(o){return this.each(function(){var t=s(this),e=t.data(\"bs.scrollspy\"),i=\"object\"==typeof o&&o;e||t.data(\"bs.scrollspy\",e=new n(this,i)),\"string\"==typeof o&&e[o]()})}n.VERSION=\"3.4.1\",n.DEFAULTS={offset:10},n.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},n.prototype.refresh=function(){var t=this,o=\"offset\",n=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),s.isWindow(this.$scrollElement[0])||(o=\"position\",n=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var t=s(this),e=t.data(\"target\")||t.attr(\"href\"),i=/^#./.test(e)&&s(e);return i&&i.length&&i.is(\":visible\")&&[[i[o]().top+n,e]]||null}).sort(function(t,e){return t[0]-e[0]}).each(function(){t.offsets.push(this[0]),t.targets.push(this[1])})},n.prototype.process=function(){var t,e=this.$scrollElement.scrollTop()+this.options.offset,i=this.getScrollHeight(),o=this.options.offset+i-this.$scrollElement.height(),n=this.offsets,s=this.targets,a=this.activeTarget;if(this.scrollHeight!=i&&this.refresh(),o<=e)return a!=(t=s[s.length-1])&&this.activate(t);if(a&&e=n[t]&&(n[t+1]===undefined||e .active\"),n=i&&r.support.transition&&(o.length&&o.hasClass(\"fade\")||!!e.find(\"> .fade\").length);function s(){o.removeClass(\"active\").find(\"> .dropdown-menu > .active\").removeClass(\"active\").end().find('[data-toggle=\"tab\"]').attr(\"aria-expanded\",!1),t.addClass(\"active\").find('[data-toggle=\"tab\"]').attr(\"aria-expanded\",!0),n?(t[0].offsetWidth,t.addClass(\"in\")):t.removeClass(\"fade\"),t.parent(\".dropdown-menu\").length&&t.closest(\"li.dropdown\").addClass(\"active\").end().find('[data-toggle=\"tab\"]').attr(\"aria-expanded\",!0),i&&i()}o.length&&n?o.one(\"bsTransitionEnd\",s).emulateTransitionEnd(a.TRANSITION_DURATION):s(),o.removeClass(\"in\")};var t=r.fn.tab;r.fn.tab=e,r.fn.tab.Constructor=a,r.fn.tab.noConflict=function(){return r.fn.tab=t,this};var i=function(t){t.preventDefault(),e.call(r(this),\"show\")};r(document).on(\"click.bs.tab.data-api\",'[data-toggle=\"tab\"]',i).on(\"click.bs.tab.data-api\",'[data-toggle=\"pill\"]',i)}(jQuery),function(l){\"use strict\";var h=function(t,e){this.options=l.extend({},h.DEFAULTS,e);var i=this.options.target===h.DEFAULTS.target?l(this.options.target):l(document).find(this.options.target);this.$target=i.on(\"scroll.bs.affix.data-api\",l.proxy(this.checkPosition,this)).on(\"click.bs.affix.data-api\",l.proxy(this.checkPositionWithEventLoop,this)),this.$element=l(t),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};function i(o){return this.each(function(){var t=l(this),e=t.data(\"bs.affix\"),i=\"object\"==typeof o&&o;e||t.data(\"bs.affix\",e=new h(this,i)),\"string\"==typeof o&&e[o]()})}h.VERSION=\"3.4.1\",h.RESET=\"affix affix-top affix-bottom\",h.DEFAULTS={offset:0,target:window},h.prototype.getState=function(t,e,i,o){var n=this.$target.scrollTop(),s=this.$element.offset(),a=this.$target.height();if(null!=i&&\"top\"==this.affixed)return n text.length) {\n\t\t\t\t\t\t// Something went terribly wrong, ABORT, ABORT!\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (str instanceof Token) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (greedy && i != strarr.length - 1) {\n\t\t\t\t\t\tpattern.lastIndex = pos;\n\t\t\t\t\t\tvar match = pattern.exec(text);\n\t\t\t\t\t\tif (!match) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar from = match.index + (lookbehind ? match[1].length : 0),\n\t\t\t\t\t\t to = match.index + match[0].length,\n\t\t\t\t\t\t k = i,\n\t\t\t\t\t\t p = pos;\n\n\t\t\t\t\t\tfor (var len = strarr.length; k < len && (p < to || (!strarr[k].type && !strarr[k - 1].greedy)); ++k) {\n\t\t\t\t\t\t\tp += strarr[k].length;\n\t\t\t\t\t\t\t// Move the index i to the element in strarr that is closest to from\n\t\t\t\t\t\t\tif (from >= p) {\n\t\t\t\t\t\t\t\t++i;\n\t\t\t\t\t\t\t\tpos = p;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// If strarr[i] is a Token, then the match starts inside another Token, which is invalid\n\t\t\t\t\t\tif (strarr[i] instanceof Token) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Number of tokens to delete and replace with the new match\n\t\t\t\t\t\tdelNum = k - i;\n\t\t\t\t\t\tstr = text.slice(pos, p);\n\t\t\t\t\t\tmatch.index -= pos;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpattern.lastIndex = 0;\n\n\t\t\t\t\t\tvar match = pattern.exec(str),\n\t\t\t\t\t\t\tdelNum = 1;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!match) {\n\t\t\t\t\t\tif (oneshot) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif(lookbehind) {\n\t\t\t\t\t\tlookbehindLength = match[1] ? match[1].length : 0;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar from = match.index + lookbehindLength,\n\t\t\t\t\t match = match[0].slice(lookbehindLength),\n\t\t\t\t\t to = from + match.length,\n\t\t\t\t\t before = str.slice(0, from),\n\t\t\t\t\t after = str.slice(to);\n\n\t\t\t\t\tvar args = [i, delNum];\n\n\t\t\t\t\tif (before) {\n\t\t\t\t\t\t++i;\n\t\t\t\t\t\tpos += before.length;\n\t\t\t\t\t\targs.push(before);\n\t\t\t\t\t}\n\n\t\t\t\t\tvar wrapped = new Token(token, inside? _.tokenize(match, inside) : match, alias, match, greedy);\n\n\t\t\t\t\targs.push(wrapped);\n\n\t\t\t\t\tif (after) {\n\t\t\t\t\t\targs.push(after);\n\t\t\t\t\t}\n\n\t\t\t\t\tArray.prototype.splice.apply(strarr, args);\n\n\t\t\t\t\tif (delNum != 1)\n\t\t\t\t\t\t_.matchGrammar(text, strarr, grammar, i, pos, true, token);\n\n\t\t\t\t\tif (oneshot)\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\ttokenize: function(text, grammar, language) {\n\t\tvar strarr = [text];\n\n\t\tvar rest = grammar.rest;\n\n\t\tif (rest) {\n\t\t\tfor (var token in rest) {\n\t\t\t\tgrammar[token] = rest[token];\n\t\t\t}\n\n\t\t\tdelete grammar.rest;\n\t\t}\n\n\t\t_.matchGrammar(text, strarr, grammar, 0, 0, false);\n\n\t\treturn strarr;\n\t},\n\n\thooks: {\n\t\tall: {},\n\n\t\tadd: function (name, callback) {\n\t\t\tvar hooks = _.hooks.all;\n\n\t\t\thooks[name] = hooks[name] || [];\n\n\t\t\thooks[name].push(callback);\n\t\t},\n\n\t\trun: function (name, env) {\n\t\t\tvar callbacks = _.hooks.all[name];\n\n\t\t\tif (!callbacks || !callbacks.length) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfor (var i=0, callback; callback = callbacks[i++];) {\n\t\t\t\tcallback(env);\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar Token = _.Token = function(type, content, alias, matchedStr, greedy) {\n\tthis.type = type;\n\tthis.content = content;\n\tthis.alias = alias;\n\t// Copy of the full string this token was created from\n\tthis.length = (matchedStr || \"\").length|0;\n\tthis.greedy = !!greedy;\n};\n\nToken.stringify = function(o, language, parent) {\n\tif (typeof o == 'string') {\n\t\treturn o;\n\t}\n\n\tif (_.util.type(o) === 'Array') {\n\t\treturn o.map(function(element) {\n\t\t\treturn Token.stringify(element, language, o);\n\t\t}).join('');\n\t}\n\n\tvar env = {\n\t\ttype: o.type,\n\t\tcontent: Token.stringify(o.content, language, parent),\n\t\ttag: 'span',\n\t\tclasses: ['token', o.type],\n\t\tattributes: {},\n\t\tlanguage: language,\n\t\tparent: parent\n\t};\n\n\tif (o.alias) {\n\t\tvar aliases = _.util.type(o.alias) === 'Array' ? o.alias : [o.alias];\n\t\tArray.prototype.push.apply(env.classes, aliases);\n\t}\n\n\t_.hooks.run('wrap', env);\n\n\tvar attributes = Object.keys(env.attributes).map(function(name) {\n\t\treturn name + '=\"' + (env.attributes[name] || '').replace(/\"/g, '"') + '\"';\n\t}).join(' ');\n\n\treturn '<' + env.tag + ' class=\"' + env.classes.join(' ') + '\"' + (attributes ? ' ' + attributes : '') + '>' + env.content + '';\n\n};\n\nif (!_self.document) {\n\tif (!_self.addEventListener) {\n\t\t// in Node.js\n\t\treturn _self.Prism;\n\t}\n\n\tif (!_.disableWorkerMessageHandler) {\n\t\t// In worker\n\t\t_self.addEventListener('message', function (evt) {\n\t\t\tvar message = JSON.parse(evt.data),\n\t\t\t\tlang = message.language,\n\t\t\t\tcode = message.code,\n\t\t\t\timmediateClose = message.immediateClose;\n\n\t\t\t_self.postMessage(_.highlight(code, _.languages[lang], lang));\n\t\t\tif (immediateClose) {\n\t\t\t\t_self.close();\n\t\t\t}\n\t\t}, false);\n\t}\n\n\treturn _self.Prism;\n}\n\n//Get current script and highlight\nvar script = document.currentScript || [].slice.call(document.getElementsByTagName(\"script\")).pop();\n\nif (script) {\n\t_.filename = script.src;\n\n\tif (!_.manual && !script.hasAttribute('data-manual')) {\n\t\tif(document.readyState !== \"loading\") {\n\t\t\tif (window.requestAnimationFrame) {\n\t\t\t\twindow.requestAnimationFrame(_.highlightAll);\n\t\t\t} else {\n\t\t\t\twindow.setTimeout(_.highlightAll, 16);\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tdocument.addEventListener('DOMContentLoaded', _.highlightAll);\n\t\t}\n\t}\n}\n\nreturn _self.Prism;\n\n})();\n\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = Prism;\n}\n\n// hack for components to work correctly in node.js\nif (typeof global !== 'undefined') {\n\tglobal.Prism = Prism;\n}\n\n\n/* **********************************************\n Begin prism-markup.js\n********************************************** */\n\nPrism.languages.markup = {\n\t'comment': //,\n\t'prolog': /<\\?[\\s\\S]+?\\?>/,\n\t'doctype': //i,\n\t'cdata': //i,\n\t'tag': {\n\t\tpattern: /<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s+[^\\s>\\/=]+(?:=(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+))?)*\\s*\\/?>/i,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'tag': {\n\t\t\t\tpattern: /^<\\/?[^\\s>\\/]+/i,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /^<\\/?/,\n\t\t\t\t\t'namespace': /^[^\\s>\\/:]+:/\n\t\t\t\t}\n\t\t\t},\n\t\t\t'attr-value': {\n\t\t\t\tpattern: /=(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+)/i,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': [\n\t\t\t\t\t\t/^=/,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpattern: /(^|[^\\\\])[\"']/,\n\t\t\t\t\t\t\tlookbehind: true\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t},\n\t\t\t'punctuation': /\\/?>/,\n\t\t\t'attr-name': {\n\t\t\t\tpattern: /[^\\s>\\/]+/,\n\t\t\t\tinside: {\n\t\t\t\t\t'namespace': /^[^\\s>\\/:]+:/\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t},\n\t'entity': /&#?[\\da-z]{1,8};/i\n};\n\nPrism.languages.markup['tag'].inside['attr-value'].inside['entity'] =\n\tPrism.languages.markup['entity'];\n\n// Plugin to make entity title show the real entity, idea by Roman Komarov\nPrism.hooks.add('wrap', function(env) {\n\n\tif (env.type === 'entity') {\n\t\tenv.attributes['title'] = env.content.replace(/&/, '&');\n\t}\n});\n\nPrism.languages.xml = Prism.languages.markup;\nPrism.languages.html = Prism.languages.markup;\nPrism.languages.mathml = Prism.languages.markup;\nPrism.languages.svg = Prism.languages.markup;\n\n\n/* **********************************************\n Begin prism-css.js\n********************************************** */\n\nPrism.languages.css = {\n\t'comment': /\\/\\*[\\s\\S]*?\\*\\//,\n\t'atrule': {\n\t\tpattern: /@[\\w-]+?.*?(?:;|(?=\\s*\\{))/i,\n\t\tinside: {\n\t\t\t'rule': /@[\\w-]+/\n\t\t\t// See rest below\n\t\t}\n\t},\n\t'url': /url\\((?:([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1|.*?)\\)/i,\n\t'selector': /[^{}\\s][^{};]*?(?=\\s*\\{)/,\n\t'string': {\n\t\tpattern: /(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n\t\tgreedy: true\n\t},\n\t'property': /[-_a-z\\xA0-\\uFFFF][-\\w\\xA0-\\uFFFF]*(?=\\s*:)/i,\n\t'important': /\\B!important\\b/i,\n\t'function': /[-a-z0-9]+(?=\\()/i,\n\t'punctuation': /[(){};:]/\n};\n\nPrism.languages.css['atrule'].inside.rest = Prism.languages.css;\n\nif (Prism.languages.markup) {\n\tPrism.languages.insertBefore('markup', 'tag', {\n\t\t'style': {\n\t\t\tpattern: /()[\\s\\S]*?(?=<\\/style>)/i,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.css,\n\t\t\talias: 'language-css',\n\t\t\tgreedy: true\n\t\t}\n\t});\n\n\tPrism.languages.insertBefore('inside', 'attr-value', {\n\t\t'style-attr': {\n\t\t\tpattern: /\\s*style=(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/i,\n\t\t\tinside: {\n\t\t\t\t'attr-name': {\n\t\t\t\t\tpattern: /^\\s*style/i,\n\t\t\t\t\tinside: Prism.languages.markup.tag.inside\n\t\t\t\t},\n\t\t\t\t'punctuation': /^\\s*=\\s*['\"]|['\"]\\s*$/,\n\t\t\t\t'attr-value': {\n\t\t\t\t\tpattern: /.+/i,\n\t\t\t\t\tinside: Prism.languages.css\n\t\t\t\t}\n\t\t\t},\n\t\t\talias: 'language-css'\n\t\t}\n\t}, Prism.languages.markup.tag);\n}\n\n/* **********************************************\n Begin prism-clike.js\n********************************************** */\n\nPrism.languages.clike = {\n\t'comment': [\n\t\t{\n\t\t\tpattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^\\\\:])\\/\\/.*/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true\n\t\t}\n\t],\n\t'string': {\n\t\tpattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n\t\tgreedy: true\n\t},\n\t'class-name': {\n\t\tpattern: /((?:\\b(?:class|interface|extends|implements|trait|instanceof|new)\\s+)|(?:catch\\s+\\())[\\w.\\\\]+/i,\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\tpunctuation: /[.\\\\]/\n\t\t}\n\t},\n\t'keyword': /\\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\\b/,\n\t'boolean': /\\b(?:true|false)\\b/,\n\t'function': /[a-z0-9_]+(?=\\()/i,\n\t'number': /\\b0x[\\da-f]+\\b|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n\t'operator': /--?|\\+\\+?|!=?=?|<=?|>=?|==?=?|&&?|\\|\\|?|\\?|\\*|\\/|~|\\^|%/,\n\t'punctuation': /[{}[\\];(),.:]/\n};\n\n\n/* **********************************************\n Begin prism-javascript.js\n********************************************** */\n\nPrism.languages.javascript = Prism.languages.extend('clike', {\n\t'keyword': /\\b(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)\\b/,\n\t'number': /\\b(?:0[xX][\\dA-Fa-f]+|0[bB][01]+|0[oO][0-7]+|NaN|Infinity)\\b|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:[Ee][+-]?\\d+)?/,\n\t// Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444)\n\t'function': /[_$a-z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*(?=\\s*\\()/i,\n\t'operator': /-[-=]?|\\+[+=]?|!=?=?|<>?>?=?|=(?:==?|>)?|&[&=]?|\\|[|=]?|\\*\\*?=?|\\/=?|~|\\^=?|%=?|\\?|\\.{3}/\n});\n\nPrism.languages.insertBefore('javascript', 'keyword', {\n\t'regex': {\n\t\tpattern: /((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s])\\s*)\\/(\\[[^\\]\\r\\n]+]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[gimyu]{0,5}(?=\\s*($|[\\r\\n,.;})]))/,\n\t\tlookbehind: true,\n\t\tgreedy: true\n\t},\n\t// This must be declared before keyword because we use \"function\" inside the look-forward\n\t'function-variable': {\n\t\tpattern: /[_$a-z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*(?=\\s*=\\s*(?:function\\b|(?:\\([^()]*\\)|[_$a-z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*)\\s*=>))/i,\n\t\talias: 'function'\n\t},\n\t'constant': /\\b[A-Z][A-Z\\d_]*\\b/\n});\n\nPrism.languages.insertBefore('javascript', 'string', {\n\t'template-string': {\n\t\tpattern: /`(?:\\\\[\\s\\S]|[^\\\\`])*`/,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'interpolation': {\n\t\t\t\tpattern: /\\$\\{[^}]+\\}/,\n\t\t\t\tinside: {\n\t\t\t\t\t'interpolation-punctuation': {\n\t\t\t\t\t\tpattern: /^\\$\\{|\\}$/,\n\t\t\t\t\t\talias: 'punctuation'\n\t\t\t\t\t},\n\t\t\t\t\trest: Prism.languages.javascript\n\t\t\t\t}\n\t\t\t},\n\t\t\t'string': /[\\s\\S]+/\n\t\t}\n\t}\n});\n\nif (Prism.languages.markup) {\n\tPrism.languages.insertBefore('markup', 'tag', {\n\t\t'script': {\n\t\t\tpattern: /()[\\s\\S]*?(?=<\\/script>)/i,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript,\n\t\t\talias: 'language-javascript',\n\t\t\tgreedy: true\n\t\t}\n\t});\n}\n\nPrism.languages.js = Prism.languages.javascript;\n\n\n/* **********************************************\n Begin prism-file-highlight.js\n********************************************** */\n\n(function () {\n\tif (typeof self === 'undefined' || !self.Prism || !self.document || !document.querySelector) {\n\t\treturn;\n\t}\n\n\tself.Prism.fileHighlight = function() {\n\n\t\tvar Extensions = {\n\t\t\t'js': 'javascript',\n\t\t\t'py': 'python',\n\t\t\t'rb': 'ruby',\n\t\t\t'ps1': 'powershell',\n\t\t\t'psm1': 'powershell',\n\t\t\t'sh': 'bash',\n\t\t\t'bat': 'batch',\n\t\t\t'h': 'c',\n\t\t\t'tex': 'latex'\n\t\t};\n\n\t\tArray.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {\n\t\t\tvar src = pre.getAttribute('data-src');\n\n\t\t\tvar language, parent = pre;\n\t\t\tvar lang = /\\blang(?:uage)?-(?!\\*)([\\w-]+)\\b/i;\n\t\t\twhile (parent && !lang.test(parent.className)) {\n\t\t\t\tparent = parent.parentNode;\n\t\t\t}\n\n\t\t\tif (parent) {\n\t\t\t\tlanguage = (pre.className.match(lang) || [, ''])[1];\n\t\t\t}\n\n\t\t\tif (!language) {\n\t\t\t\tvar extension = (src.match(/\\.(\\w+)$/) || [, ''])[1];\n\t\t\t\tlanguage = Extensions[extension] || extension;\n\t\t\t}\n\n\t\t\tvar code = document.createElement('code');\n\t\t\tcode.className = 'language-' + language;\n\n\t\t\tpre.textContent = '';\n\n\t\t\tcode.textContent = 'Loading…';\n\n\t\t\tpre.appendChild(code);\n\n\t\t\tvar xhr = new XMLHttpRequest();\n\n\t\t\txhr.open('GET', src, true);\n\n\t\t\txhr.onreadystatechange = function () {\n\t\t\t\tif (xhr.readyState == 4) {\n\n\t\t\t\t\tif (xhr.status < 400 && xhr.responseText) {\n\t\t\t\t\t\tcode.textContent = xhr.responseText;\n\n\t\t\t\t\t\tPrism.highlightElement(code);\n\t\t\t\t\t}\n\t\t\t\t\telse if (xhr.status >= 400) {\n\t\t\t\t\t\tcode.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tcode.textContent = '✖ Error: File does not exist or is empty';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tif (pre.hasAttribute('data-download-link') && Prism.plugins.toolbar) {\n\t\t\t\tPrism.plugins.toolbar.registerButton('download-file', function () {\n\t\t\t\t\tvar a = document.createElement('a');\n\t\t\t\t\ta.textContent = pre.getAttribute('data-download-link-label') || 'Download';\n\t\t\t\t\ta.setAttribute('download', '');\n\t\t\t\t\ta.href = src;\n\t\t\t\t\treturn a;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\txhr.send(null);\n\t\t});\n\n\t};\n\n\tdocument.addEventListener('DOMContentLoaded', self.Prism.fileHighlight);\n\n})();\n\n\n\n// WEBPACK FOOTER //\n// node_modules/prismjs/prism.js","(function(Prism) {\n\tvar insideString = {\n\t\tvariable: [\n\t\t\t// Arithmetic Environment\n\t\t\t{\n\t\t\t\tpattern: /\\$?\\(\\([\\s\\S]+?\\)\\)/,\n\t\t\t\tinside: {\n\t\t\t\t\t// If there is a $ sign at the beginning highlight $(( and )) as variable\n\t\t\t\t\tvariable: [{\n\t\t\t\t\t\t\tpattern: /(^\\$\\(\\([\\s\\S]+)\\)\\)/,\n\t\t\t\t\t\t\tlookbehind: true\n\t\t\t\t\t\t},\n\t\t\t\t\t\t/^\\$\\(\\(/\n\t\t\t\t\t],\n\t\t\t\t\tnumber: /\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:[Ee]-?\\d+)?/,\n\t\t\t\t\t// Operators according to https://www.gnu.org/software/bash/manual/bashref.html#Shell-Arithmetic\n\t\t\t\t\toperator: /--?|-=|\\+\\+?|\\+=|!=?|~|\\*\\*?|\\*=|\\/=?|%=?|<<=?|>>=?|<=?|>=?|==?|&&?|&=|\\^=?|\\|\\|?|\\|=|\\?|:/,\n\t\t\t\t\t// If there is no $ sign at the beginning highlight (( and )) as punctuation\n\t\t\t\t\tpunctuation: /\\(\\(?|\\)\\)?|,|;/\n\t\t\t\t}\n\t\t\t},\n\t\t\t// Command Substitution\n\t\t\t{\n\t\t\t\tpattern: /\\$\\([^)]+\\)|`[^`]+`/,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: {\n\t\t\t\t\tvariable: /^\\$\\(|^`|\\)$|`$/\n\t\t\t\t}\n\t\t\t},\n\t\t\t/\\$(?:[\\w#?*!@]+|\\{[^}]+\\})/i\n\t\t]\n\t};\n\n\tPrism.languages.bash = {\n\t\t'shebang': {\n\t\t\tpattern: /^#!\\s*\\/bin\\/bash|^#!\\s*\\/bin\\/sh/,\n\t\t\talias: 'important'\n\t\t},\n\t\t'comment': {\n\t\t\tpattern: /(^|[^\"{\\\\])#.*/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'string': [\n\t\t\t//Support for Here-Documents https://en.wikipedia.org/wiki/Here_document\n\t\t\t{\n\t\t\t\tpattern: /((?:^|[^<])<<\\s*)[\"']?(\\w+?)[\"']?\\s*\\r?\\n(?:[\\s\\S])*?\\r?\\n\\2/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: insideString\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /([\"'])(?:\\\\[\\s\\S]|\\$\\([^)]+\\)|`[^`]+`|(?!\\1)[^\\\\])*\\1/,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: insideString\n\t\t\t}\n\t\t],\n\t\t'variable': insideString.variable,\n\t\t// Originally based on http://ss64.com/bash/\n\t\t'function': {\n\t\t\tpattern: /(^|[\\s;|&])(?:alias|apropos|apt-get|aptitude|aspell|awk|basename|bash|bc|bg|builtin|bzip2|cal|cat|cd|cfdisk|chgrp|chmod|chown|chroot|chkconfig|cksum|clear|cmp|comm|command|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|du|egrep|eject|enable|env|ethtool|eval|exec|expand|expect|export|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|getopts|git|grep|groupadd|groupdel|groupmod|groups|gzip|hash|head|help|hg|history|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|jobs|join|kill|killall|less|link|ln|locate|logname|logout|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|make|man|mkdir|mkfifo|mkisofs|mknod|more|most|mount|mtools|mtr|mv|mmv|nano|netstat|nice|nl|nohup|notify-send|npm|nslookup|open|op|passwd|paste|pathchk|ping|pkill|popd|pr|printcap|printenv|printf|ps|pushd|pv|pwd|quota|quotacheck|quotactl|ram|rar|rcp|read|readarray|readonly|reboot|rename|renice|remsync|rev|rm|rmdir|rsync|screen|scp|sdiff|sed|seq|service|sftp|shift|shopt|shutdown|sleep|slocate|sort|source|split|ssh|stat|strace|su|sudo|sum|suspend|sync|tail|tar|tee|test|time|timeout|times|touch|top|traceroute|trap|tr|tsort|tty|type|ulimit|umask|umount|unalias|uname|unexpand|uniq|units|unrar|unshar|uptime|useradd|userdel|usermod|users|uuencode|uudecode|v|vdir|vi|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yes|zip)(?=$|[\\s;|&])/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'keyword': {\n\t\t\tpattern: /(^|[\\s;|&])(?:let|:|\\.|if|then|else|elif|fi|for|break|continue|while|in|case|function|select|do|done|until|echo|exit|return|set|declare)(?=$|[\\s;|&])/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'boolean': {\n\t\t\tpattern: /(^|[\\s;|&])(?:true|false)(?=$|[\\s;|&])/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'operator': /&&?|\\|\\|?|==?|!=?|<<>|<=?|>=?|=~/,\n\t\t'punctuation': /\\$?\\(\\(?|\\)\\)?|\\.\\.|[{}[\\];]/\n\t};\n\n\tvar inside = insideString.variable[1].inside;\n\tinside.string = Prism.languages.bash.string;\n\tinside['function'] = Prism.languages.bash['function'];\n\tinside.keyword = Prism.languages.bash.keyword;\n\tinside.boolean = Prism.languages.bash.boolean;\n\tinside.operator = Prism.languages.bash.operator;\n\tinside.punctuation = Prism.languages.bash.punctuation;\n\t\n\tPrism.languages.shell = Prism.languages.bash;\n})(Prism);\n\n\n\n// WEBPACK FOOTER //\n// node_modules/prismjs/components/prism-bash.js","Prism.languages.c = Prism.languages.extend('clike', {\n\t'keyword': /\\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while)\\b/,\n\t'operator': /-[>-]?|\\+\\+?|!=?|<>?=?|==?|&&?|\\|\\|?|[~^%?*\\/]/,\n\t'number': /(?:\\b0x[\\da-f]+|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:e[+-]?\\d+)?)[ful]*/i\n});\n\nPrism.languages.insertBefore('c', 'string', {\n\t'macro': {\n\t\t// allow for multiline macro definitions\n\t\t// spaces after the # character compile fine with gcc\n\t\tpattern: /(^\\s*)#\\s*[a-z]+(?:[^\\r\\n\\\\]|\\\\(?:\\r\\n|[\\s\\S]))*/im,\n\t\tlookbehind: true,\n\t\talias: 'property',\n\t\tinside: {\n\t\t\t// highlight the path of the include statement as a string\n\t\t\t'string': {\n\t\t\t\tpattern: /(#\\s*include\\s*)(?:<.+?>|(\"|')(?:\\\\?.)+?\\2)/,\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t// highlight macro directives as keywords\n\t\t\t'directive': {\n\t\t\t\tpattern: /(#\\s*)\\b(?:define|defined|elif|else|endif|error|ifdef|ifndef|if|import|include|line|pragma|undef|using)\\b/,\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'keyword'\n\t\t\t}\n\t\t}\n\t},\n\t// highlight predefined macros as constants\n\t'constant': /\\b(?:__FILE__|__LINE__|__DATE__|__TIME__|__TIMESTAMP__|__func__|EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|stdin|stdout|stderr)\\b/\n});\n\ndelete Prism.languages.c['class-name'];\ndelete Prism.languages.c['boolean'];\n\n\n\n// WEBPACK FOOTER //\n// node_modules/prismjs/components/prism-c.js","Prism.languages.cpp = Prism.languages.extend('c', {\n\t'keyword': /\\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|class|compl|const|constexpr|const_cast|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|float|for|friend|goto|if|inline|int|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|long|mutable|namespace|new|noexcept|nullptr|operator|private|protected|public|register|reinterpret_cast|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|union|unsigned|using|virtual|void|volatile|wchar_t|while)\\b/,\n\t'boolean': /\\b(?:true|false)\\b/,\n\t'operator': /--?|\\+\\+?|!=?|<{1,2}=?|>{1,2}=?|->|:{1,2}|={1,2}|\\^|~|%|&{1,2}|\\|\\|?|\\?|\\*|\\/|\\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\\b/\n});\n\nPrism.languages.insertBefore('cpp', 'keyword', {\n\t'class-name': {\n\t\tpattern: /(class\\s+)\\w+/i,\n\t\tlookbehind: true\n\t}\n});\n\nPrism.languages.insertBefore('cpp', 'string', {\n\t'raw-string': {\n\t\tpattern: /R\"([^()\\\\ ]{0,16})\\([\\s\\S]*?\\)\\1\"/,\n\t\talias: 'string',\n\t\tgreedy: true\n\t}\n});\n\n\n\n// WEBPACK FOOTER //\n// node_modules/prismjs/components/prism-cpp.js","Prism.languages.csharp = Prism.languages.extend('clike', {\n\t'keyword': /\\b(?:abstract|add|alias|as|ascending|async|await|base|bool|break|byte|case|catch|char|checked|class|const|continue|decimal|default|delegate|descending|do|double|dynamic|else|enum|event|explicit|extern|false|finally|fixed|float|for|foreach|from|get|global|goto|group|if|implicit|in|int|interface|internal|into|is|join|let|lock|long|namespace|new|null|object|operator|orderby|out|override|params|partial|private|protected|public|readonly|ref|remove|return|sbyte|sealed|select|set|short|sizeof|stackalloc|static|string|struct|switch|this|throw|true|try|typeof|uint|ulong|unchecked|unsafe|ushort|using|value|var|virtual|void|volatile|where|while|yield)\\b/,\n\t'string': [\n\t\t{\n\t\t\tpattern: /@(\"|')(?:\\1\\1|\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n\t\t\tgreedy: true\n\t\t},\n\t\t{\n\t\t\tpattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*?\\1/,\n\t\t\tgreedy: true\n\t\t}\n\t],\n\t'class-name': [\n\t\t{\n\t\t\t// (Foo bar, Bar baz)\n\t\t\tpattern: /\\b[A-Z]\\w*(?:\\.\\w+)*\\b(?=\\s+\\w+)/,\n\t\t\tinside: {\n\t\t\t\tpunctuation: /\\./\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t// [Foo]\n\t\t\tpattern: /(\\[)[A-Z]\\w*(?:\\.\\w+)*\\b/,\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\tpunctuation: /\\./\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t// class Foo : Bar\n\t\t\tpattern: /(\\b(?:class|interface)\\s+[A-Z]\\w*(?:\\.\\w+)*\\s*:\\s*)[A-Z]\\w*(?:\\.\\w+)*\\b/,\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\tpunctuation: /\\./\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t// class Foo\n\t\t\tpattern: /((?:\\b(?:class|interface|new)\\s+)|(?:catch\\s+\\())[A-Z]\\w*(?:\\.\\w+)*\\b/,\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\tpunctuation: /\\./\n\t\t\t}\n\t\t}\n\t],\n\t'number': /\\b0x[\\da-f]+\\b|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)f?/i\n});\n\nPrism.languages.insertBefore('csharp', 'class-name', {\n\t'generic-method': {\n\t\tpattern: /\\w+\\s*<[^>\\r\\n]+?>\\s*(?=\\()/,\n\t\tinside: {\n\t\t\tfunction: /^\\w+/,\n\t\t\t'class-name': {\n\t\t\t\tpattern: /\\b[A-Z]\\w*(?:\\.\\w+)*\\b/,\n\t\t\t\tinside: {\n\t\t\t\t\tpunctuation: /\\./\n\t\t\t\t}\n\t\t\t},\n\t\t\tkeyword: Prism.languages.csharp.keyword,\n\t\t\tpunctuation: /[<>(),.:]/\n\t\t}\n\t},\n\t'preprocessor': {\n\t\tpattern: /(^\\s*)#.*/m,\n\t\tlookbehind: true,\n\t\talias: 'property',\n\t\tinside: {\n\t\t\t// highlight preprocessor directives as keywords\n\t\t\t'directive': {\n\t\t\t\tpattern: /(\\s*#)\\b(?:define|elif|else|endif|endregion|error|if|line|pragma|region|undef|warning)\\b/,\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'keyword'\n\t\t\t}\n\t\t}\n\t}\n});\n\nPrism.languages.dotnet = Prism.languages.csharp;\n\n\n// WEBPACK FOOTER //\n// node_modules/prismjs/components/prism-csharp.js","Prism.languages.go = Prism.languages.extend('clike', {\n\t'keyword': /\\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\\b/,\n\t'builtin': /\\b(?:bool|byte|complex(?:64|128)|error|float(?:32|64)|rune|string|u?int(?:8|16|32|64)?|uintptr|append|cap|close|complex|copy|delete|imag|len|make|new|panic|print(?:ln)?|real|recover)\\b/,\n\t'boolean': /\\b(?:_|iota|nil|true|false)\\b/,\n\t'operator': /[*\\/%^!=]=?|\\+[=+]?|-[=-]?|\\|[=|]?|&(?:=|&|\\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\\.\\.\\./,\n\t'number': /(?:\\b0x[a-f\\d]+|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:e[-+]?\\d+)?)i?/i,\n\t'string': {\n\t\tpattern: /([\"'`])(\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n\t\tgreedy: true\n\t}\n});\ndelete Prism.languages.go['class-name'];\n\n\n\n// WEBPACK FOOTER //\n// node_modules/prismjs/components/prism-go.js","Prism.languages.haskell= {\n\t'comment': {\n\t\tpattern: /(^|[^-!#$%*+=?&@|~.:<>^\\\\\\/])(?:--[^-!#$%*+=?&@|~.:<>^\\\\\\/].*|{-[\\s\\S]*?-})/m,\n\t\tlookbehind: true\n\t},\n\t'char': /'(?:[^\\\\']|\\\\(?:[abfnrtv\\\\\"'&]|\\^[A-Z@[\\]^_]|NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|\\d+|o[0-7]+|x[0-9a-fA-F]+))'/,\n\t'string': {\n\t\tpattern: /\"(?:[^\\\\\"]|\\\\(?:[abfnrtv\\\\\"'&]|\\^[A-Z@[\\]^_]|NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|\\d+|o[0-7]+|x[0-9a-fA-F]+)|\\\\\\s+\\\\)*\"/,\n\t\tgreedy: true\n\t},\n\t'keyword' : /\\b(?:case|class|data|deriving|do|else|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\\b/,\n\t'import_statement' : {\n\t\t// The imported or hidden names are not included in this import\n\t\t// statement. This is because we want to highlight those exactly like\n\t\t// we do for the names in the program.\n\t\tpattern: /((?:\\r?\\n|\\r|^)\\s*)import\\s+(?:qualified\\s+)?(?:[A-Z][\\w']*)(?:\\.[A-Z][\\w']*)*(?:\\s+as\\s+(?:[A-Z][_a-zA-Z0-9']*)(?:\\.[A-Z][\\w']*)*)?(?:\\s+hiding\\b)?/m,\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\t'keyword': /\\b(?:import|qualified|as|hiding)\\b/\n\t\t}\n\t},\n\t// These are builtin variables only. Constructors are highlighted later as a constant.\n\t'builtin': /\\b(?:abs|acos|acosh|all|and|any|appendFile|approxRational|asTypeOf|asin|asinh|atan|atan2|atanh|basicIORun|break|catch|ceiling|chr|compare|concat|concatMap|const|cos|cosh|curry|cycle|decodeFloat|denominator|digitToInt|div|divMod|drop|dropWhile|either|elem|encodeFloat|enumFrom|enumFromThen|enumFromThenTo|enumFromTo|error|even|exp|exponent|fail|filter|flip|floatDigits|floatRadix|floatRange|floor|fmap|foldl|foldl1|foldr|foldr1|fromDouble|fromEnum|fromInt|fromInteger|fromIntegral|fromRational|fst|gcd|getChar|getContents|getLine|group|head|id|inRange|index|init|intToDigit|interact|ioError|isAlpha|isAlphaNum|isAscii|isControl|isDenormalized|isDigit|isHexDigit|isIEEE|isInfinite|isLower|isNaN|isNegativeZero|isOctDigit|isPrint|isSpace|isUpper|iterate|last|lcm|length|lex|lexDigits|lexLitChar|lines|log|logBase|lookup|map|mapM|mapM_|max|maxBound|maximum|maybe|min|minBound|minimum|mod|negate|not|notElem|null|numerator|odd|or|ord|otherwise|pack|pi|pred|primExitWith|print|product|properFraction|putChar|putStr|putStrLn|quot|quotRem|range|rangeSize|read|readDec|readFile|readFloat|readHex|readIO|readInt|readList|readLitChar|readLn|readOct|readParen|readSigned|reads|readsPrec|realToFrac|recip|rem|repeat|replicate|return|reverse|round|scaleFloat|scanl|scanl1|scanr|scanr1|seq|sequence|sequence_|show|showChar|showInt|showList|showLitChar|showParen|showSigned|showString|shows|showsPrec|significand|signum|sin|sinh|snd|sort|span|splitAt|sqrt|subtract|succ|sum|tail|take|takeWhile|tan|tanh|threadToIOResult|toEnum|toInt|toInteger|toLower|toRational|toUpper|truncate|uncurry|undefined|unlines|until|unwords|unzip|unzip3|userError|words|writeFile|zip|zip3|zipWith|zipWith3)\\b/,\n\t// decimal integers and floating point numbers | octal integers | hexadecimal integers\n\t'number' : /\\b(?:\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?|0o[0-7]+|0x[0-9a-f]+)\\b/i,\n\t// Most of this is needed because of the meaning of a single '.'.\n\t// If it stands alone freely, it is the function composition.\n\t// It may also be a separator between a module name and an identifier => no\n\t// operator. If it comes together with other special characters it is an\n\t// operator too.\n\t'operator' : /\\s\\.\\s|[-!#$%*+=?&@|~.:<>^\\\\\\/]*\\.[-!#$%*+=?&@|~.:<>^\\\\\\/]+|[-!#$%*+=?&@|~.:<>^\\\\\\/]+\\.[-!#$%*+=?&@|~.:<>^\\\\\\/]*|[-!#$%*+=?&@|~:<>^\\\\\\/]+|`([A-Z][\\w']*\\.)*[_a-z][\\w']*`/,\n\t// In Haskell, nearly everything is a variable, do not highlight these.\n\t'hvariable': /\\b(?:[A-Z][\\w']*\\.)*[_a-z][\\w']*\\b/,\n\t'constant': /\\b(?:[A-Z][\\w']*\\.)*[A-Z][\\w']*\\b/,\n\t'punctuation' : /[{}[\\];(),.:]/\n};\n\n\n\n// WEBPACK FOOTER //\n// node_modules/prismjs/components/prism-haskell.js","Prism.languages.http = {\n\t'request-line': {\n\t\tpattern: /^(?:POST|GET|PUT|DELETE|OPTIONS|PATCH|TRACE|CONNECT)\\shttps?:\\/\\/\\S+\\sHTTP\\/[0-9.]+/m,\n\t\tinside: {\n\t\t\t// HTTP Verb\n\t\t\tproperty: /^(?:POST|GET|PUT|DELETE|OPTIONS|PATCH|TRACE|CONNECT)\\b/,\n\t\t\t// Path or query argument\n\t\t\t'attr-name': /:\\w+/\n\t\t}\n\t},\n\t'response-status': {\n\t\tpattern: /^HTTP\\/1.[01] \\d+.*/m,\n\t\tinside: {\n\t\t\t// Status, e.g. 200 OK\n\t\t\tproperty: {\n pattern: /(^HTTP\\/1.[01] )\\d+.*/i,\n lookbehind: true\n }\n\t\t}\n\t},\n\t// HTTP header name\n\t'header-name': {\n pattern: /^[\\w-]+:(?=.)/m,\n alias: 'keyword'\n }\n};\n\n// Create a mapping of Content-Type headers to language definitions\nvar httpLanguages = {\n\t'application/json': Prism.languages.javascript,\n\t'application/xml': Prism.languages.markup,\n\t'text/xml': Prism.languages.markup,\n\t'text/html': Prism.languages.markup\n};\n\n// Insert each content type parser that has its associated language\n// currently loaded.\nfor (var contentType in httpLanguages) {\n\tif (httpLanguages[contentType]) {\n\t\tvar options = {};\n\t\toptions[contentType] = {\n\t\t\tpattern: new RegExp('(content-type:\\\\s*' + contentType + '[\\\\w\\\\W]*?)(?:\\\\r?\\\\n|\\\\r){2}[\\\\w\\\\W]*', 'i'),\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\trest: httpLanguages[contentType]\n\t\t\t}\n\t\t};\n\t\tPrism.languages.insertBefore('http', 'header-name', options);\n\t}\n}\n\n\n\n// WEBPACK FOOTER //\n// node_modules/prismjs/components/prism-http.js","Prism.languages.java = Prism.languages.extend('clike', {\n\t'keyword': /\\b(?:abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|const|float|native|super|while)\\b/,\n\t'number': /\\b0b[01]+\\b|\\b0x[\\da-f]*\\.?[\\da-fp-]+\\b|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:e[+-]?\\d+)?[df]?/i,\n\t'operator': {\n\t\tpattern: /(^|[^.])(?:\\+[+=]?|-[-=]?|!=?|<>?>?=?|==?|&[&=]?|\\|[|=]?|\\*=?|\\/=?|%=?|\\^=?|[?:~])/m,\n\t\tlookbehind: true\n\t}\n});\n\nPrism.languages.insertBefore('java','function', {\n\t'annotation': {\n\t\talias: 'punctuation',\n\t\tpattern: /(^|[^.])@\\w+/,\n\t\tlookbehind: true\n\t}\n});\n\nPrism.languages.insertBefore('java', 'class-name', {\n\t'generics': {\n\t\tpattern: /<\\s*\\w+(?:\\.\\w+)?(?:\\s*,\\s*\\w+(?:\\.\\w+)?)*>/i,\n\t\talias: 'function',\n\t\tinside: {\n\t\t\tkeyword: Prism.languages.java.keyword,\n\t\t\tpunctuation: /[<>(),.:]/\n\t\t}\n\t}\n});\n\n\n\n// WEBPACK FOOTER //\n// node_modules/prismjs/components/prism-java.js","Prism.languages.json = {\n\t'property': /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?=\\s*:)/i,\n\t'string': {\n\t\tpattern: /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?!\\s*:)/,\n\t\tgreedy: true\n\t},\n\t'number': /\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:[Ee][+-]?\\d+)?/,\n\t'punctuation': /[{}[\\]);,]/,\n\t'operator': /:/g,\n\t'boolean': /\\b(?:true|false)\\b/i,\n\t'null': /\\bnull\\b/i\n};\n\nPrism.languages.jsonp = Prism.languages.json;\n\n\n\n// WEBPACK FOOTER //\n// node_modules/prismjs/components/prism-json.js","Prism.languages['markup-templating'] = {};\n\nObject.defineProperties(Prism.languages['markup-templating'], {\n\tbuildPlaceholders: {\n\t\t// Tokenize all inline templating expressions matching placeholderPattern\n\t\t// If the replaceFilter function is provided, it will be called with every match.\n\t\t// If it returns false, the match will not be replaced.\n\t\tvalue: function (env, language, placeholderPattern, replaceFilter) {\n\t\t\tif (env.language !== language) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tenv.tokenStack = [];\n\n\t\t\tenv.code = env.code.replace(placeholderPattern, function(match) {\n\t\t\t\tif (typeof replaceFilter === 'function' && !replaceFilter(match)) {\n\t\t\t\t\treturn match;\n\t\t\t\t}\n\t\t\t\tvar i = env.tokenStack.length;\n\t\t\t\t// Check for existing strings\n\t\t\t\twhile (env.code.indexOf('___' + language.toUpperCase() + i + '___') !== -1)\n\t\t\t\t\t++i;\n\n\t\t\t\t// Create a sparse array\n\t\t\t\tenv.tokenStack[i] = match;\n\n\t\t\t\treturn '___' + language.toUpperCase() + i + '___';\n\t\t\t});\n\n\t\t\t// Switch the grammar to markup\n\t\t\tenv.grammar = Prism.languages.markup;\n\t\t}\n\t},\n\ttokenizePlaceholders: {\n\t\t// Replace placeholders with proper tokens after tokenizing\n\t\tvalue: function (env, language) {\n\t\t\tif (env.language !== language || !env.tokenStack) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Switch the grammar back\n\t\t\tenv.grammar = Prism.languages[language];\n\n\t\t\tvar j = 0;\n\t\t\tvar keys = Object.keys(env.tokenStack);\n\t\t\tvar walkTokens = function (tokens) {\n\t\t\t\tif (j >= keys.length) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tfor (var i = 0; i < tokens.length; i++) {\n\t\t\t\t\tvar token = tokens[i];\n\t\t\t\t\tif (typeof token === 'string' || (token.content && typeof token.content === 'string')) {\n\t\t\t\t\t\tvar k = keys[j];\n\t\t\t\t\t\tvar t = env.tokenStack[k];\n\t\t\t\t\t\tvar s = typeof token === 'string' ? token : token.content;\n\n\t\t\t\t\t\tvar index = s.indexOf('___' + language.toUpperCase() + k + '___');\n\t\t\t\t\t\tif (index > -1) {\n\t\t\t\t\t\t\t++j;\n\t\t\t\t\t\t\tvar before = s.substring(0, index);\n\t\t\t\t\t\t\tvar middle = new Prism.Token(language, Prism.tokenize(t, env.grammar, language), 'language-' + language, t);\n\t\t\t\t\t\t\tvar after = s.substring(index + ('___' + language.toUpperCase() + k + '___').length);\n\t\t\t\t\t\t\tvar replacement;\n\t\t\t\t\t\t\tif (before || after) {\n\t\t\t\t\t\t\t\treplacement = [before, middle, after].filter(function (v) { return !!v; });\n\t\t\t\t\t\t\t\twalkTokens(replacement);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treplacement = middle;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (typeof token === 'string') {\n\t\t\t\t\t\t\t\tArray.prototype.splice.apply(tokens, [i, 1].concat(replacement));\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ttoken.content = replacement;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (j >= keys.length) {\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (token.content && typeof token.content !== 'string') {\n\t\t\t\t\t\twalkTokens(token.content);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\t\twalkTokens(env.tokens);\n\t\t}\n\t}\n});\n\n\n// WEBPACK FOOTER //\n// node_modules/prismjs/components/prism-markup-templating.js","Prism.languages.objectivec = Prism.languages.extend('c', {\n\t'keyword': /\\b(?:asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while|in|self|super)\\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\\b/,\n\t'string': /(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1|@\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/,\n\t'operator': /-[->]?|\\+\\+?|!=?|<>?=?|==?|&&?|\\|\\|?|[~^%?*\\/@]/\n});\n\n\n\n// WEBPACK FOOTER //\n// node_modules/prismjs/components/prism-objectivec.js","Prism.languages.perl = {\n\t'comment': [\n\t\t{\n\t\t\t// POD\n\t\t\tpattern: /(^\\s*)=\\w+[\\s\\S]*?=cut.*/m,\n\t\t\tlookbehind: true\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^\\\\$])#.*/,\n\t\t\tlookbehind: true\n\t\t}\n\t],\n\t// TODO Could be nice to handle Heredoc too.\n\t'string': [\n\t\t// q/.../\n\t\t{\n\t\t\tpattern: /\\b(?:q|qq|qx|qw)\\s*([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/,\n\t\t\tgreedy: true\n\t\t},\n\t\n\t\t// q a...a\n\t\t{\n\t\t\tpattern: /\\b(?:q|qq|qx|qw)\\s+([a-zA-Z0-9])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/,\n\t\t\tgreedy: true\n\t\t},\n\t\n\t\t// q(...)\n\t\t{\n\t\t\tpattern: /\\b(?:q|qq|qx|qw)\\s*\\((?:[^()\\\\]|\\\\[\\s\\S])*\\)/,\n\t\t\tgreedy: true\n\t\t},\n\t\n\t\t// q{...}\n\t\t{\n\t\t\tpattern: /\\b(?:q|qq|qx|qw)\\s*\\{(?:[^{}\\\\]|\\\\[\\s\\S])*\\}/,\n\t\t\tgreedy: true\n\t\t},\n\t\n\t\t// q[...]\n\t\t{\n\t\t\tpattern: /\\b(?:q|qq|qx|qw)\\s*\\[(?:[^[\\]\\\\]|\\\\[\\s\\S])*\\]/,\n\t\t\tgreedy: true\n\t\t},\n\t\n\t\t// q<...>\n\t\t{\n\t\t\tpattern: /\\b(?:q|qq|qx|qw)\\s*<(?:[^<>\\\\]|\\\\[\\s\\S])*>/,\n\t\t\tgreedy: true\n\t\t},\n\n\t\t// \"...\", `...`\n\t\t{\n\t\t\tpattern: /(\"|`)(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/,\n\t\t\tgreedy: true\n\t\t},\n\n\t\t// '...'\n\t\t// FIXME Multi-line single-quoted strings are not supported as they would break variables containing '\n\t\t{\n\t\t\tpattern: /'(?:[^'\\\\\\r\\n]|\\\\.)*'/,\n\t\t\tgreedy: true\n\t\t}\n\t],\n\t'regex': [\n\t\t// m/.../\n\t\t{\n\t\t\tpattern: /\\b(?:m|qr)\\s*([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1[msixpodualngc]*/,\n\t\t\tgreedy: true\n\t\t},\n\t\n\t\t// m a...a\n\t\t{\n\t\t\tpattern: /\\b(?:m|qr)\\s+([a-zA-Z0-9])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1[msixpodualngc]*/,\n\t\t\tgreedy: true\n\t\t},\n\t\n\t\t// m(...)\n\t\t{\n\t\t\tpattern: /\\b(?:m|qr)\\s*\\((?:[^()\\\\]|\\\\[\\s\\S])*\\)[msixpodualngc]*/,\n\t\t\tgreedy: true\n\t\t},\n\t\n\t\t// m{...}\n\t\t{\n\t\t\tpattern: /\\b(?:m|qr)\\s*\\{(?:[^{}\\\\]|\\\\[\\s\\S])*\\}[msixpodualngc]*/,\n\t\t\tgreedy: true\n\t\t},\n\t\n\t\t// m[...]\n\t\t{\n\t\t\tpattern: /\\b(?:m|qr)\\s*\\[(?:[^[\\]\\\\]|\\\\[\\s\\S])*\\][msixpodualngc]*/,\n\t\t\tgreedy: true\n\t\t},\n\t\n\t\t// m<...>\n\t\t{\n\t\t\tpattern: /\\b(?:m|qr)\\s*<(?:[^<>\\\\]|\\\\[\\s\\S])*>[msixpodualngc]*/,\n\t\t\tgreedy: true\n\t\t},\n\n\t\t// The lookbehinds prevent -s from breaking\n\t\t// FIXME We don't handle change of separator like s(...)[...]\n\t\t// s/.../.../\n\t\t{\n\t\t\tpattern: /(^|[^-]\\b)(?:s|tr|y)\\s*([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2[msixpodualngcer]*/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true\n\t\t},\n\t\n\t\t// s a...a...a\n\t\t{\n\t\t\tpattern: /(^|[^-]\\b)(?:s|tr|y)\\s+([a-zA-Z0-9])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2[msixpodualngcer]*/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true\n\t\t},\n\t\n\t\t// s(...)(...)\n\t\t{\n\t\t\tpattern: /(^|[^-]\\b)(?:s|tr|y)\\s*\\((?:[^()\\\\]|\\\\[\\s\\S])*\\)\\s*\\((?:[^()\\\\]|\\\\[\\s\\S])*\\)[msixpodualngcer]*/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true\n\t\t},\n\t\n\t\t// s{...}{...}\n\t\t{\n\t\t\tpattern: /(^|[^-]\\b)(?:s|tr|y)\\s*\\{(?:[^{}\\\\]|\\\\[\\s\\S])*\\}\\s*\\{(?:[^{}\\\\]|\\\\[\\s\\S])*\\}[msixpodualngcer]*/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true\n\t\t},\n\t\n\t\t// s[...][...]\n\t\t{\n\t\t\tpattern: /(^|[^-]\\b)(?:s|tr|y)\\s*\\[(?:[^[\\]\\\\]|\\\\[\\s\\S])*\\]\\s*\\[(?:[^[\\]\\\\]|\\\\[\\s\\S])*\\][msixpodualngcer]*/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true\n\t\t},\n\t\n\t\t// s<...><...>\n\t\t{\n\t\t\tpattern: /(^|[^-]\\b)(?:s|tr|y)\\s*<(?:[^<>\\\\]|\\\\[\\s\\S])*>\\s*<(?:[^<>\\\\]|\\\\[\\s\\S])*>[msixpodualngcer]*/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true\n\t\t},\n\t\n\t\t// /.../\n\t\t// The look-ahead tries to prevent two divisions on\n\t\t// the same line from being highlighted as regex.\n\t\t// This does not support multi-line regex.\n\t\t{\n\t\t\tpattern: /\\/(?:[^\\/\\\\\\r\\n]|\\\\.)*\\/[msixpodualngc]*(?=\\s*(?:$|[\\r\\n,.;})&|\\-+*~<>!?^]|(lt|gt|le|ge|eq|ne|cmp|not|and|or|xor|x)\\b))/,\n\t\t\tgreedy: true\n\t\t}\n\t],\n\n\t// FIXME Not sure about the handling of ::, ', and #\n\t'variable': [\n\t\t// ${^POSTMATCH}\n\t\t/[&*$@%]\\{\\^[A-Z]+\\}/,\n\t\t// $^V\n\t\t/[&*$@%]\\^[A-Z_]/,\n\t\t// ${...}\n\t\t/[&*$@%]#?(?=\\{)/,\n\t\t// $foo\n\t\t/[&*$@%]#?(?:(?:::)*'?(?!\\d)[\\w$]+)+(?:::)*/i,\n\t\t// $1\n\t\t/[&*$@%]\\d+/,\n\t\t// $_, @_, %!\n\t\t// The negative lookahead prevents from breaking the %= operator\n\t\t/(?!%=)[$@%][!\"#$%&'()*+,\\-.\\/:;<=>?@[\\\\\\]^_`{|}~]/\n\t],\n\t'filehandle': {\n\t\t// <>, , _\n\t\tpattern: /<(?![<=])\\S*>|\\b_\\b/,\n\t\talias: 'symbol'\n\t},\n\t'vstring': {\n\t\t// v1.2, 1.2.3\n\t\tpattern: /v\\d+(?:\\.\\d+)*|\\d+(?:\\.\\d+){2,}/,\n\t\talias: 'string'\n\t},\n\t'function': {\n\t\tpattern: /sub [a-z0-9_]+/i,\n\t\tinside: {\n\t\t\tkeyword: /sub/\n\t\t}\n\t},\n\t'keyword': /\\b(?:any|break|continue|default|delete|die|do|else|elsif|eval|for|foreach|given|goto|if|last|local|my|next|our|package|print|redo|require|say|state|sub|switch|undef|unless|until|use|when|while)\\b/,\n\t'number': /\\b(?:0x[\\dA-Fa-f](?:_?[\\dA-Fa-f])*|0b[01](?:_?[01])*|(?:\\d(?:_?\\d)*)?\\.?\\d(?:_?\\d)*(?:[Ee][+-]?\\d+)?)\\b/,\n\t'operator': /-[rwxoRWXOezsfdlpSbctugkTBMAC]\\b|\\+[+=]?|-[-=>]?|\\*\\*?=?|\\/\\/?=?|=[=~>]?|~[~=]?|\\|\\|?=?|&&?=?|<(?:=>?|<=?)?|>>?=?|![~=]?|[%^]=?|\\.(?:=|\\.\\.?)?|[\\\\?]|\\bx(?:=|\\b)|\\b(?:lt|gt|le|ge|eq|ne|cmp|not|and|or|xor)\\b/,\n\t'punctuation': /[{}[\\];(),:]/\n};\n\n\n\n// WEBPACK FOOTER //\n// node_modules/prismjs/components/prism-perl.js","/**\n * Original by Aaron Harun: http://aahacreative.com/2012/07/31/php-syntax-highlighting-prism/\n * Modified by Miles Johnson: http://milesj.me\n *\n * Supports the following:\n * \t\t- Extends clike syntax\n * \t\t- Support for PHP 5.3+ (namespaces, traits, generators, etc)\n * \t\t- Smarter constant and function matching\n *\n * Adds the following new token classes:\n * \t\tconstant, delimiter, variable, function, package\n */\n(function (Prism) {\n\tPrism.languages.php = Prism.languages.extend('clike', {\n\t\t'keyword': /\\b(?:and|or|xor|array|as|break|case|cfunction|class|const|continue|declare|default|die|do|else|elseif|enddeclare|endfor|endforeach|endif|endswitch|endwhile|extends|for|foreach|function|include|include_once|global|if|new|return|static|switch|use|require|require_once|var|while|abstract|interface|public|implements|private|protected|parent|throw|null|echo|print|trait|namespace|final|yield|goto|instanceof|finally|try|catch)\\b/i,\n\t\t'constant': /\\b[A-Z0-9_]{2,}\\b/,\n\t\t'comment': {\n\t\t\tpattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*)/,\n\t\t\tlookbehind: true\n\t\t}\n\t});\n\n\tPrism.languages.insertBefore('php', 'string', {\n\t\t'shell-comment': {\n\t\t\tpattern: /(^|[^\\\\])#.*/,\n\t\t\tlookbehind: true,\n\t\t\talias: 'comment'\n\t\t}\n\t});\n\n\tPrism.languages.insertBefore('php', 'keyword', {\n\t\t'delimiter': {\n\t\t\tpattern: /\\?>|<\\?(?:php|=)?/i,\n\t\t\talias: 'important'\n\t\t},\n\t\t'variable': /\\$+(?:\\w+\\b|(?={))/i,\n\t\t'package': {\n\t\t\tpattern: /(\\\\|namespace\\s+|use\\s+)[\\w\\\\]+/,\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\tpunctuation: /\\\\/\n\t\t\t}\n\t\t}\n\t});\n\n\t// Must be defined after the function pattern\n\tPrism.languages.insertBefore('php', 'operator', {\n\t\t'property': {\n\t\t\tpattern: /(->)[\\w]+/,\n\t\t\tlookbehind: true\n\t\t}\n\t});\n\n\tPrism.languages.insertBefore('php', 'string', {\n\t\t'nowdoc-string': {\n\t\t\tpattern: /<<<'([^']+)'(?:\\r\\n?|\\n)(?:.*(?:\\r\\n?|\\n))*?\\1;/,\n\t\t\tgreedy: true,\n\t\t\talias: 'string',\n\t\t\tinside: {\n\t\t\t\t'delimiter': {\n\t\t\t\t\tpattern: /^<<<'[^']+'|[a-z_]\\w*;$/i,\n\t\t\t\t\talias: 'symbol',\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'punctuation': /^<<<'?|[';]$/\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t'heredoc-string': {\n\t\t\tpattern: /<<<(?:\"([^\"]+)\"(?:\\r\\n?|\\n)(?:.*(?:\\r\\n?|\\n))*?\\1;|([a-z_]\\w*)(?:\\r\\n?|\\n)(?:.*(?:\\r\\n?|\\n))*?\\2;)/i,\n\t\t\tgreedy: true,\n\t\t\talias: 'string',\n\t\t\tinside: {\n\t\t\t\t'delimiter': {\n\t\t\t\t\tpattern: /^<<<(?:\"[^\"]+\"|[a-z_]\\w*)|[a-z_]\\w*;$/i,\n\t\t\t\t\talias: 'symbol',\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'punctuation': /^<<<\"?|[\";]$/\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t'interpolation': null // See below\n\t\t\t}\n\t\t},\n\t\t'single-quoted-string': {\n\t\t\tpattern: /'(?:\\\\[\\s\\S]|[^\\\\'])*'/,\n\t\t\tgreedy: true,\n\t\t\talias: 'string'\n\t\t},\n\t\t'double-quoted-string': {\n\t\t\tpattern: /\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"/,\n\t\t\tgreedy: true,\n\t\t\talias: 'string',\n\t\t\tinside: {\n\t\t\t\t'interpolation': null // See below\n\t\t\t}\n\t\t}\n\t});\n\t// The different types of PHP strings \"replace\" the C-like standard string\n\tdelete Prism.languages.php['string'];\n\n\tvar string_interpolation = {\n\t\tpattern: /{\\$(?:{(?:{[^{}]+}|[^{}]+)}|[^{}])+}|(^|[^\\\\{])\\$+(?:\\w+(?:\\[.+?]|->\\w+)*)/,\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\trest: Prism.languages.php\n\t\t}\n\t};\n\tPrism.languages.php['heredoc-string'].inside['interpolation'] = string_interpolation;\n\tPrism.languages.php['double-quoted-string'].inside['interpolation'] = string_interpolation;\n\n\tPrism.hooks.add('before-tokenize', function(env) {\n\t\tif (!/(?:<\\?php|<\\?)/ig.test(env.code)) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar phpPattern = /(?:<\\?php|<\\?)[\\s\\S]*?(?:\\?>|$)/ig;\n\t\tPrism.languages['markup-templating'].buildPlaceholders(env, 'php', phpPattern);\n\t});\n\n\tPrism.hooks.add('after-tokenize', function(env) {\n\t\tPrism.languages['markup-templating'].tokenizePlaceholders(env, 'php');\n\t});\n\n}(Prism));\n\n\n// WEBPACK FOOTER //\n// node_modules/prismjs/components/prism-php.js","Prism.languages.python = {\n\t'comment': {\n\t\tpattern: /(^|[^\\\\])#.*/,\n\t\tlookbehind: true\n\t},\n\t'triple-quoted-string': {\n\t\tpattern: /(\"\"\"|''')[\\s\\S]+?\\1/,\n\t\tgreedy: true,\n\t\talias: 'string'\n\t},\n\t'string': {\n\t\tpattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n\t\tgreedy: true\n\t},\n\t'function': {\n\t\tpattern: /((?:^|\\s)def[ \\t]+)[a-zA-Z_]\\w*(?=\\s*\\()/g,\n\t\tlookbehind: true\n\t},\n\t'class-name': {\n\t\tpattern: /(\\bclass\\s+)\\w+/i,\n\t\tlookbehind: true\n\t},\n\t'keyword': /\\b(?:as|assert|async|await|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|nonlocal|pass|print|raise|return|try|while|with|yield)\\b/,\n\t'builtin':/\\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\\b/,\n\t'boolean': /\\b(?:True|False|None)\\b/,\n\t'number': /(?:\\b(?=\\d)|\\B(?=\\.))(?:0[bo])?(?:(?:\\d|0x[\\da-f])[\\da-f]*\\.?\\d*|\\.\\d+)(?:e[+-]?\\d+)?j?\\b/i,\n\t'operator': /[-+%=]=?|!=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]|\\b(?:or|and|not)\\b/,\n\t'punctuation': /[{}[\\];(),.:]/\n};\n\n\n\n// WEBPACK FOOTER //\n// node_modules/prismjs/components/prism-python.js","/**\n * Original by Samuel Flores\n *\n * Adds the following new token classes:\n * \t\tconstant, builtin, variable, symbol, regex\n */\n(function(Prism) {\n\tPrism.languages.ruby = Prism.languages.extend('clike', {\n\t\t'comment': [\n\t\t\t/#.*/,\n\t\t\t{\n\t\t\t\tpattern: /^=begin(?:\\r?\\n|\\r)(?:.*(?:\\r?\\n|\\r))*?=end/m,\n\t\t\t\tgreedy: true\n\t\t\t}\n\t\t],\n\t\t'keyword': /\\b(?:alias|and|BEGIN|begin|break|case|class|def|define_method|defined|do|each|else|elsif|END|end|ensure|false|for|if|in|module|new|next|nil|not|or|protected|private|public|raise|redo|require|rescue|retry|return|self|super|then|throw|true|undef|unless|until|when|while|yield)\\b/\n\t});\n\n\tvar interpolation = {\n\t\tpattern: /#\\{[^}]+\\}/,\n\t\tinside: {\n\t\t\t'delimiter': {\n\t\t\t\tpattern: /^#\\{|\\}$/,\n\t\t\t\talias: 'tag'\n\t\t\t},\n\t\t\trest: Prism.languages.ruby\n\t\t}\n\t};\n\n\tPrism.languages.insertBefore('ruby', 'keyword', {\n\t\t'regex': [\n\t\t\t{\n\t\t\t\tpattern: /%r([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1[gim]{0,3}/,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'interpolation': interpolation\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /%r\\((?:[^()\\\\]|\\\\[\\s\\S])*\\)[gim]{0,3}/,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'interpolation': interpolation\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\t// Here we need to specifically allow interpolation\n\t\t\t\tpattern: /%r\\{(?:[^#{}\\\\]|#(?:\\{[^}]+\\})?|\\\\[\\s\\S])*\\}[gim]{0,3}/,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'interpolation': interpolation\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /%r\\[(?:[^\\[\\]\\\\]|\\\\[\\s\\S])*\\][gim]{0,3}/,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'interpolation': interpolation\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /%r<(?:[^<>\\\\]|\\\\[\\s\\S])*>[gim]{0,3}/,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'interpolation': interpolation\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /(^|[^/])\\/(?!\\/)(\\[.+?]|\\\\.|[^/\\\\\\r\\n])+\\/[gim]{0,3}(?=\\s*($|[\\r\\n,.;})]))/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tgreedy: true\n\t\t\t}\n\t\t],\n\t\t'variable': /[@$]+[a-zA-Z_]\\w*(?:[?!]|\\b)/,\n\t\t'symbol': {\n\t\t\tpattern: /(^|[^:]):[a-zA-Z_]\\w*(?:[?!]|\\b)/,\n\t\t\tlookbehind: true\n\t\t}\n\t});\n\n\tPrism.languages.insertBefore('ruby', 'number', {\n\t\t'builtin': /\\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Stat|Fixnum|Float|Hash|Integer|IO|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|String|Struct|TMS|Symbol|ThreadGroup|Thread|Time|TrueClass)\\b/,\n\t\t'constant': /\\b[A-Z]\\w*(?:[?!]|\\b)/\n\t});\n\n\tPrism.languages.ruby.string = [\n\t\t{\n\t\t\tpattern: /%[qQiIwWxs]?([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/,\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'interpolation': interpolation\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tpattern: /%[qQiIwWxs]?\\((?:[^()\\\\]|\\\\[\\s\\S])*\\)/,\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'interpolation': interpolation\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t// Here we need to specifically allow interpolation\n\t\t\tpattern: /%[qQiIwWxs]?\\{(?:[^#{}\\\\]|#(?:\\{[^}]+\\})?|\\\\[\\s\\S])*\\}/,\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'interpolation': interpolation\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tpattern: /%[qQiIwWxs]?\\[(?:[^\\[\\]\\\\]|\\\\[\\s\\S])*\\]/,\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'interpolation': interpolation\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tpattern: /%[qQiIwWxs]?<(?:[^<>\\\\]|\\\\[\\s\\S])*>/,\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'interpolation': interpolation\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tpattern: /(\"|')(?:#\\{[^}]+\\}|\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'interpolation': interpolation\n\t\t\t}\n\t\t}\n\t];\n}(Prism));\n\n\n// WEBPACK FOOTER //\n// node_modules/prismjs/components/prism-ruby.js","// issues: nested multiline comments\nPrism.languages.swift = Prism.languages.extend('clike', {\n\t'string': {\n\t\tpattern: /(\"|')(\\\\(?:\\((?:[^()]|\\([^)]+\\))+\\)|\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'interpolation': {\n\t\t\t\tpattern: /\\\\\\((?:[^()]|\\([^)]+\\))+\\)/,\n\t\t\t\tinside: {\n\t\t\t\t\tdelimiter: {\n\t\t\t\t\t\tpattern: /^\\\\\\(|\\)$/,\n\t\t\t\t\t\talias: 'variable'\n\t\t\t\t\t}\n\t\t\t\t\t// See rest below\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\t'keyword': /\\b(?:as|associativity|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic(?:Type)?|else|enum|extension|fallthrough|final|for|func|get|guard|if|import|in|infix|init|inout|internal|is|lazy|left|let|mutating|new|none|nonmutating|operator|optional|override|postfix|precedence|prefix|private|Protocol|public|repeat|required|rethrows|return|right|safe|self|Self|set|static|struct|subscript|super|switch|throws?|try|Type|typealias|unowned|unsafe|var|weak|where|while|willSet|__(?:COLUMN__|FILE__|FUNCTION__|LINE__))\\b/,\n\t'number': /\\b(?:[\\d_]+(?:\\.[\\de_]+)?|0x[a-f0-9_]+(?:\\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\b/i,\n\t'constant': /\\b(?:nil|[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\\b/,\n\t'atrule': /@\\b(?:IB(?:Outlet|Designable|Action|Inspectable)|class_protocol|exported|noreturn|NS(?:Copying|Managed)|objc|UIApplicationMain|auto_closure)\\b/,\n\t'builtin': /\\b(?:[A-Z]\\S+|abs|advance|alignof(?:Value)?|assert|contains|count(?:Elements)?|debugPrint(?:ln)?|distance|drop(?:First|Last)|dump|enumerate|equal|filter|find|first|getVaList|indices|isEmpty|join|last|lexicographicalCompare|map|max(?:Element)?|min(?:Element)?|numericCast|overlaps|partition|print(?:ln)?|reduce|reflect|reverse|sizeof(?:Value)?|sort(?:ed)?|split|startsWith|stride(?:of(?:Value)?)?|suffix|swap|toDebugString|toString|transcode|underestimateCount|unsafeBitCast|with(?:ExtendedLifetime|Unsafe(?:MutablePointers?|Pointers?)|VaList))\\b/\n});\nPrism.languages.swift['string'].inside['interpolation'].inside.rest = Prism.languages.swift;\n\n\n// WEBPACK FOOTER //\n// node_modules/prismjs/components/prism-swift.js","Prism.languages.yaml = {\n\t'scalar': {\n\t\tpattern: /([\\-:]\\s*(?:![^\\s]+)?[ \\t]*[|>])[ \\t]*(?:((?:\\r?\\n|\\r)[ \\t]+)[^\\r\\n]+(?:\\2[^\\r\\n]+)*)/,\n\t\tlookbehind: true,\n\t\talias: 'string'\n\t},\n\t'comment': /#.*/,\n\t'key': {\n\t\tpattern: /(\\s*(?:^|[:\\-,[{\\r\\n?])[ \\t]*(?:![^\\s]+)?[ \\t]*)[^\\r\\n{[\\]},#\\s]+?(?=\\s*:\\s)/,\n\t\tlookbehind: true,\n\t\talias: 'atrule'\n\t},\n\t'directive': {\n\t\tpattern: /(^[ \\t]*)%.+/m,\n\t\tlookbehind: true,\n\t\talias: 'important'\n\t},\n\t'datetime': {\n\t\tpattern: /([:\\-,[{]\\s*(?:![^\\s]+)?[ \\t]*)(?:\\d{4}-\\d\\d?-\\d\\d?(?:[tT]|[ \\t]+)\\d\\d?:\\d{2}:\\d{2}(?:\\.\\d*)?[ \\t]*(?:Z|[-+]\\d\\d?(?::\\d{2})?)?|\\d{4}-\\d{2}-\\d{2}|\\d\\d?:\\d{2}(?::\\d{2}(?:\\.\\d*)?)?)(?=[ \\t]*(?:$|,|]|}))/m,\n\t\tlookbehind: true,\n\t\talias: 'number'\n\t},\n\t'boolean': {\n\t\tpattern: /([:\\-,[{]\\s*(?:![^\\s]+)?[ \\t]*)(?:true|false)[ \\t]*(?=$|,|]|})/im,\n\t\tlookbehind: true,\n\t\talias: 'important'\n\t},\n\t'null': {\n\t\tpattern: /([:\\-,[{]\\s*(?:![^\\s]+)?[ \\t]*)(?:null|~)[ \\t]*(?=$|,|]|})/im,\n\t\tlookbehind: true,\n\t\talias: 'important'\n\t},\n\t'string': {\n\t\tpattern: /([:\\-,[{]\\s*(?:![^\\s]+)?[ \\t]*)(\"|')(?:(?!\\2)[^\\\\\\r\\n]|\\\\.)*\\2(?=[ \\t]*(?:$|,|]|}))/m,\n\t\tlookbehind: true,\n\t\tgreedy: true\n\t},\n\t'number': {\n\t\tpattern: /([:\\-,[{]\\s*(?:![^\\s]+)?[ \\t]*)[+-]?(?:0x[\\da-f]+|0o[0-7]+|(?:\\d+\\.?\\d*|\\.?\\d+)(?:e[+-]?\\d+)?|\\.inf|\\.nan)[ \\t]*(?=$|,|]|})/im,\n\t\tlookbehind: true\n\t},\n\t'tag': /![^\\s]+/,\n\t'important': /[&*][\\w]+/,\n\t'punctuation': /---|[:[\\]{}\\-,|>?]|\\.\\.\\./\n};\n\n\n\n// WEBPACK FOOTER //\n// node_modules/prismjs/components/prism-yaml.js","/**! hopscotch - v0.3.1\n*\n* Copyright 2017 LinkedIn Corp. All rights reserved.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global.hopscotch = factory());\n}(this, (function () { 'use strict';\n\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n /* global document */\n\n var Hopscotch;\n var HopscotchBubble;\n var HopscotchCalloutManager;\n var HopscotchI18N;\n var customI18N;\n var customRenderer;\n var customEscape;\n var templateToUse = 'bubble_default';\n var Sizzle = window.Sizzle || null;\n var utils;\n var callbacks;\n var helpers;\n var winLoadHandler;\n var defaultOpts;\n var winHopscotch;\n var undefinedStr = 'undefined';\n var waitingToStart = false;\n var hasJquery = (typeof jQuery === 'undefined' ? 'undefined' : _typeof(jQuery)) !== undefinedStr;\n var hasSessionStorage = false;\n var isStorageWritable = false;\n var validIdRegEx = /^[a-zA-Z]+[a-zA-Z0-9_-]*$/;\n var rtlMatches = {\n left: 'right',\n right: 'left'\n };\n\n // If cookies are disabled, accessing sessionStorage can throw an error.\n // sessionStorage could also throw an error in Safari on write (even though it exists).\n // So, we'll try writing to sessionStorage to verify it's available.\n try {\n if (_typeof(window.sessionStorage) !== undefinedStr) {\n hasSessionStorage = true;\n sessionStorage.setItem('hopscotch.test.storage', 'ok');\n sessionStorage.removeItem('hopscotch.test.storage');\n isStorageWritable = true;\n }\n } catch (err) {}\n\n defaultOpts = {\n smoothScroll: true,\n scrollDuration: 1000,\n scrollTopMargin: 200,\n showCloseButton: true,\n showPrevButton: false,\n showNextButton: true,\n bubbleWidth: 280,\n bubblePadding: 15,\n arrowWidth: 20,\n skipIfNoElement: true,\n isRtl: false,\n cookieName: 'hopscotch.tour.state'\n };\n\n if (!Array.isArray) {\n Array.isArray = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n };\n }\n\n /**\n * Called when the page is done loading.\n *\n * @private\n */\n winLoadHandler = function winLoadHandler() {\n if (waitingToStart) {\n winHopscotch.startTour();\n }\n };\n\n /**\n * utils\n * =====\n * A set of utility functions, mostly for standardizing to manipulate\n * and extract information from the DOM. Basically these are things I\n * would normally use jQuery for, but I don't want to require it for\n * this framework.\n *\n * @private\n */\n utils = {\n /**\n * addClass\n * ========\n * Adds one or more classes to a DOM element.\n *\n * @private\n */\n addClass: function addClass(domEl, classToAdd) {\n var domClasses, classToAddArr, setClass, i, len;\n\n if (!domEl.className) {\n domEl.className = classToAdd;\n } else {\n classToAddArr = classToAdd.split(/\\s+/);\n domClasses = ' ' + domEl.className + ' ';\n for (i = 0, len = classToAddArr.length; i < len; ++i) {\n if (domClasses.indexOf(' ' + classToAddArr[i] + ' ') < 0) {\n domClasses += classToAddArr[i] + ' ';\n }\n }\n domEl.className = domClasses.replace(/^\\s+|\\s+$/g, '');\n }\n },\n\n /**\n * removeClass\n * ===========\n * Remove one or more classes from a DOM element.\n *\n * @private\n */\n removeClass: function removeClass(domEl, classToRemove) {\n var domClasses, classToRemoveArr, currClass, i, len;\n\n classToRemoveArr = classToRemove.split(/\\s+/);\n domClasses = ' ' + domEl.className + ' ';\n for (i = 0, len = classToRemoveArr.length; i < len; ++i) {\n domClasses = domClasses.replace(' ' + classToRemoveArr[i] + ' ', ' ');\n }\n domEl.className = domClasses.replace(/^\\s+|\\s+$/g, '');\n },\n\n /**\n * hasClass\n * ========\n * Determine if a given DOM element has a class.\n */\n hasClass: function hasClass(domEl, classToCheck) {\n var classes;\n\n if (!domEl.className) {\n return false;\n }\n classes = ' ' + domEl.className + ' ';\n return classes.indexOf(' ' + classToCheck + ' ') !== -1;\n },\n\n /**\n * @private\n */\n getPixelValue: function getPixelValue(val) {\n var valType = typeof val === 'undefined' ? 'undefined' : _typeof(val);\n if (valType === 'number') {\n return val;\n }\n if (valType === 'string') {\n return parseInt(val, 10);\n }\n return 0;\n },\n\n /**\n * Inspired by Python... returns val if it's defined, otherwise returns the default.\n *\n * @private\n */\n valOrDefault: function valOrDefault(val, valDefault) {\n return (typeof val === 'undefined' ? 'undefined' : _typeof(val)) !== undefinedStr ? val : valDefault;\n },\n\n /**\n * Invokes a single callback represented by an array.\n * Example input: [\"my_fn\", \"arg1\", 2, \"arg3\"]\n * @private\n */\n invokeCallbackArrayHelper: function invokeCallbackArrayHelper(arr) {\n // Logic for a single callback\n var fn;\n if (Array.isArray(arr)) {\n fn = helpers[arr[0]];\n if (typeof fn === 'function') {\n return fn.apply(this, arr.slice(1));\n }\n }\n },\n\n /**\n * Invokes one or more callbacks. Array should have at most one level of nesting.\n * Example input:\n * [\"my_fn\", \"arg1\", 2, \"arg3\"]\n * [[\"my_fn_1\", \"arg1\", \"arg2\"], [\"my_fn_2\", \"arg2-1\", \"arg2-2\"]]\n * [[\"my_fn_1\", \"arg1\", \"arg2\"], function() { ... }]\n * @private\n */\n invokeCallbackArray: function invokeCallbackArray(arr) {\n var i, len;\n\n if (Array.isArray(arr)) {\n if (typeof arr[0] === 'string') {\n // Assume there are no nested arrays. This is the one and only callback.\n return utils.invokeCallbackArrayHelper(arr);\n } else {\n // assume an array\n for (i = 0, len = arr.length; i < len; ++i) {\n utils.invokeCallback(arr[i]);\n }\n }\n }\n },\n\n /**\n * Helper function for invoking a callback, whether defined as a function literal\n * or an array that references a registered helper function.\n * @private\n */\n invokeCallback: function invokeCallback(cb) {\n if (typeof cb === 'function') {\n return cb();\n }\n if (typeof cb === 'string' && helpers[cb]) {\n // name of a helper\n return helpers[cb]();\n } else {\n // assuming array\n return utils.invokeCallbackArray(cb);\n }\n },\n\n /**\n * If stepCb (the step-specific helper callback) is passed in, then invoke\n * it first. Then invoke tour-wide helper.\n *\n * @private\n */\n invokeEventCallbacks: function invokeEventCallbacks(evtType, stepCb) {\n var cbArr = callbacks[evtType],\n callback,\n fn,\n i,\n len;\n\n if (stepCb) {\n return this.invokeCallback(stepCb);\n }\n\n for (i = 0, len = cbArr.length; i < len; ++i) {\n this.invokeCallback(cbArr[i].cb);\n }\n },\n\n /**\n * @private\n */\n getScrollTop: function getScrollTop() {\n var scrollTop;\n if (_typeof(window.pageYOffset) !== undefinedStr) {\n scrollTop = window.pageYOffset;\n } else {\n // Most likely IE <=8, which doesn't support pageYOffset\n scrollTop = document.documentElement.scrollTop;\n }\n return scrollTop;\n },\n\n /**\n * @private\n */\n getScrollLeft: function getScrollLeft() {\n var scrollLeft;\n if (_typeof(window.pageXOffset) !== undefinedStr) {\n scrollLeft = window.pageXOffset;\n } else {\n // Most likely IE <=8, which doesn't support pageXOffset\n scrollLeft = document.documentElement.scrollLeft;\n }\n return scrollLeft;\n },\n\n /**\n * @private\n */\n getWindowHeight: function getWindowHeight() {\n return window.innerHeight || document.documentElement.clientHeight;\n },\n\n /**\n * @private\n */\n addEvtListener: function addEvtListener(el, evtName, fn) {\n if (el) {\n return el.addEventListener ? el.addEventListener(evtName, fn, false) : el.attachEvent('on' + evtName, fn);\n }\n },\n\n /**\n * @private\n */\n removeEvtListener: function removeEvtListener(el, evtName, fn) {\n if (el) {\n return el.removeEventListener ? el.removeEventListener(evtName, fn, false) : el.detachEvent('on' + evtName, fn);\n }\n },\n\n documentIsReady: function documentIsReady() {\n return document.readyState === 'complete';\n },\n\n /**\n * @private\n */\n evtPreventDefault: function evtPreventDefault(evt) {\n if (evt.preventDefault) {\n evt.preventDefault();\n } else if (event) {\n event.returnValue = false;\n }\n },\n\n /**\n * @private\n */\n extend: function extend(obj1, obj2) {\n var prop;\n for (prop in obj2) {\n if (obj2.hasOwnProperty(prop)) {\n obj1[prop] = obj2[prop];\n }\n }\n },\n\n /**\n * Helper function to get a single target DOM element. We will try to\n * locate the DOM element through several ways, in the following order:\n *\n * 1) Passing the string into document.querySelector\n * 2) Passing the string to jQuery, if it exists\n * 3) Passing the string to Sizzle, if it exists\n * 4) Calling document.getElementById if it is a plain id\n *\n * Default case is to assume the string is a plain id and call\n * document.getElementById on it.\n *\n * @private\n */\n getStepTargetHelper: function getStepTargetHelper(target) {\n var result = document.getElementById(target);\n\n //Backwards compatibility: assume the string is an id\n if (result) {\n return result;\n }\n if (hasJquery) {\n result = jQuery(target);\n return result.length ? result[0] : null;\n }\n if (Sizzle) {\n result = new Sizzle(target);\n return result.length ? result[0] : null;\n }\n if (document.querySelector) {\n try {\n return document.querySelector(target);\n } catch (err) {}\n }\n // Regex test for id. Following the HTML 4 spec for valid id formats.\n // (http://www.w3.org/TR/html4/types.html#type-id)\n if (/^#[a-zA-Z][\\w-_:.]*$/.test(target)) {\n return document.getElementById(target.substring(1));\n }\n\n return null;\n },\n\n /**\n * Given a step, returns the target DOM element associated with it. It is\n * recommended to only assign one target per step. However, there are\n * some use cases which require multiple step targets to be supplied. In\n * this event, we will use the first target in the array that we can\n * locate on the page. See the comments for getStepTargetHelper for more\n * information.\n *\n * @private\n */\n getStepTarget: function getStepTarget(step) {\n var queriedTarget;\n\n if (!step || !step.target) {\n return null;\n }\n\n if (typeof step.target === 'string') {\n //Just one target to test. Check and return its results.\n return utils.getStepTargetHelper(step.target);\n } else if (Array.isArray(step.target)) {\n // Multiple items to check. Check each and return the first success.\n // Assuming they are all strings.\n var i, len;\n\n for (i = 0, len = step.target.length; i < len; i++) {\n if (typeof step.target[i] === 'string') {\n queriedTarget = utils.getStepTargetHelper(step.target[i]);\n\n if (queriedTarget) {\n return queriedTarget;\n }\n }\n }\n return null;\n }\n\n // Assume that the step.target is a DOM element\n return step.target;\n },\n\n /**\n * Convenience method for getting an i18n string. Returns custom i18n value\n * or the default i18n value if no custom value exists.\n *\n * @private\n */\n getI18NString: function getI18NString(key) {\n return customI18N[key] || HopscotchI18N[key];\n },\n\n // Tour session persistence for multi-page tours. Uses HTML5 sessionStorage if available, then\n // falls back to using cookies.\n //\n // The following cookie-related logic is borrowed from:\n // http://www.quirksmode.org/js/cookies.html\n\n /**\n * @private\n */\n setState: function setState(name, value, days) {\n var expires = '',\n date;\n\n if (hasSessionStorage && isStorageWritable) {\n try {\n sessionStorage.setItem(name, value);\n } catch (err) {\n isStorageWritable = false;\n this.setState(name, value, days);\n }\n } else {\n if (hasSessionStorage) {\n //Clear out existing sessionStorage key so the new value we set to cookie gets read.\n //(If we're here, we've run into an error while trying to write to sessionStorage).\n sessionStorage.removeItem(name);\n }\n if (days) {\n date = new Date();\n date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);\n expires = '; expires=' + date.toGMTString();\n }\n document.cookie = name + '=' + value + expires + '; path=/';\n }\n },\n\n /**\n * @private\n */\n getState: function getState(name) {\n var nameEQ = name + '=',\n ca = document.cookie.split(';'),\n i,\n c,\n state;\n\n //return value from session storage if we have it\n if (hasSessionStorage) {\n state = sessionStorage.getItem(name);\n if (state) {\n return state;\n }\n }\n\n //else, try cookies\n for (i = 0; i < ca.length; i++) {\n c = ca[i];\n while (c.charAt(0) === ' ') {\n c = c.substring(1, c.length);\n }\n if (c.indexOf(nameEQ) === 0) {\n state = c.substring(nameEQ.length, c.length);\n break;\n }\n }\n\n return state;\n },\n\n /**\n * @private\n */\n clearState: function clearState(name) {\n if (hasSessionStorage) {\n sessionStorage.removeItem(name);\n } else {\n this.setState(name, '', -1);\n }\n },\n\n /**\n * Originally called it orientation, but placement is more intuitive.\n * Allowing both for now for backwards compatibility.\n * @private\n */\n normalizePlacement: function normalizePlacement(step) {\n if (!step.placement && step.orientation) {\n step.placement = step.orientation;\n }\n },\n\n /**\n * If step is right-to-left enabled, flip the placement and xOffset, but only once.\n * @private\n */\n flipPlacement: function flipPlacement(step) {\n if (step.isRtl && !step._isFlipped) {\n var props = ['orientation', 'placement'],\n prop,\n i;\n if (step.xOffset) {\n step.xOffset = -1 * this.getPixelValue(step.xOffset);\n }\n for (i in props) {\n prop = props[i];\n if (step.hasOwnProperty(prop) && rtlMatches.hasOwnProperty(step[prop])) {\n step[prop] = rtlMatches[step[prop]];\n }\n }\n step._isFlipped = true;\n }\n }\n };\n\n utils.addEvtListener(window, 'load', winLoadHandler);\n\n callbacks = {\n next: [],\n prev: [],\n start: [],\n end: [],\n show: [],\n error: [],\n close: []\n };\n\n /**\n * helpers\n * =======\n * A map of functions to be used as callback listeners. Functions are\n * added to and removed from the map using the functions\n * Hopscotch.registerHelper() and Hopscotch.unregisterHelper().\n */\n helpers = {};\n\n HopscotchI18N = {\n stepNums: null,\n nextBtn: 'Next',\n prevBtn: 'Back',\n doneBtn: 'Done',\n skipBtn: 'Skip',\n closeTooltip: 'Close'\n };\n\n customI18N = {}; // Developer's custom i18n strings goes here.\n\n /**\n * HopscotchBubble\n *\n * @class The HopscotchBubble class represents the view of a bubble. This class is also used for Hopscotch callouts.\n */\n HopscotchBubble = function HopscotchBubble(opt) {\n this.init(opt);\n };\n\n HopscotchBubble.prototype = {\n isShowing: false,\n\n currStep: undefined,\n\n /**\n * setPosition\n *\n * Sets the position of the bubble using the bounding rectangle of the\n * target element and the orientation and offset information specified by\n * the JSON.\n */\n setPosition: function setPosition(step) {\n var bubbleBoundingHeight,\n bubbleBoundingWidth,\n boundingRect,\n top,\n left,\n arrowOffset,\n verticalLeftPosition,\n targetEl = utils.getStepTarget(step),\n el = this.element,\n arrowEl = this.arrowEl,\n arrowPos = step.isRtl ? 'right' : 'left';\n\n utils.flipPlacement(step);\n utils.normalizePlacement(step);\n\n bubbleBoundingWidth = el.offsetWidth;\n bubbleBoundingHeight = el.offsetHeight;\n utils.removeClass(el, 'fade-in-down fade-in-up fade-in-left fade-in-right');\n\n // SET POSITION\n boundingRect = targetEl.getBoundingClientRect();\n\n verticalLeftPosition = step.isRtl ? boundingRect.right - bubbleBoundingWidth : boundingRect.left;\n\n if (step.placement === 'top') {\n top = boundingRect.top - bubbleBoundingHeight - this.opt.arrowWidth;\n left = verticalLeftPosition;\n } else if (step.placement === 'bottom') {\n top = boundingRect.bottom + this.opt.arrowWidth;\n left = verticalLeftPosition;\n } else if (step.placement === 'left') {\n top = boundingRect.top;\n left = boundingRect.left - bubbleBoundingWidth - this.opt.arrowWidth;\n } else if (step.placement === 'right') {\n top = boundingRect.top;\n left = boundingRect.right + this.opt.arrowWidth;\n } else {\n throw new Error('Bubble placement failed because step.placement is invalid or undefined!');\n }\n\n // SET (OR RESET) ARROW OFFSETS\n if (step.arrowOffset !== 'center') {\n arrowOffset = utils.getPixelValue(step.arrowOffset);\n } else {\n arrowOffset = step.arrowOffset;\n }\n if (!arrowOffset) {\n arrowEl.style.top = '';\n arrowEl.style[arrowPos] = '';\n } else if (step.placement === 'top' || step.placement === 'bottom') {\n arrowEl.style.top = '';\n if (arrowOffset === 'center') {\n arrowEl.style[arrowPos] = Math.floor(bubbleBoundingWidth / 2 - arrowEl.offsetWidth / 2) + 'px';\n } else {\n // Numeric pixel value\n arrowEl.style[arrowPos] = arrowOffset + 'px';\n }\n } else if (step.placement === 'left' || step.placement === 'right') {\n arrowEl.style[arrowPos] = '';\n if (arrowOffset === 'center') {\n arrowEl.style.top = Math.floor(bubbleBoundingHeight / 2 - arrowEl.offsetHeight / 2) + 'px';\n } else {\n // Numeric pixel value\n arrowEl.style.top = arrowOffset + 'px';\n }\n }\n\n // HORIZONTAL OFFSET\n if (step.xOffset === 'center') {\n left = boundingRect.left + targetEl.offsetWidth / 2 - bubbleBoundingWidth / 2;\n } else {\n left += utils.getPixelValue(step.xOffset);\n }\n // VERTICAL OFFSET\n if (step.yOffset === 'center') {\n top = boundingRect.top + targetEl.offsetHeight / 2 - bubbleBoundingHeight / 2;\n } else {\n top += utils.getPixelValue(step.yOffset);\n }\n\n // ADJUST TOP FOR SCROLL POSITION\n if (!step.fixedElement) {\n top += utils.getScrollTop();\n left += utils.getScrollLeft();\n }\n\n // ACCOUNT FOR FIXED POSITION ELEMENTS\n el.style.position = step.fixedElement ? 'fixed' : 'absolute';\n\n el.style.top = top + 'px';\n el.style.left = left + 'px';\n },\n\n /**\n * Renders the bubble according to the step JSON.\n *\n * @param {Object} step Information defining how the bubble should look.\n * @param {Number} idx The index of the step in the tour. Not used for callouts.\n * @param {Function} callback Function to be invoked after rendering is finished.\n */\n render: function render(step, idx, callback) {\n var el = this.element,\n tourSpecificRenderer,\n customTourData,\n unsafe,\n currTour,\n totalSteps,\n totalStepsI18n,\n nextBtnText,\n isLast,\n i,\n opts;\n\n // Cache current step information.\n if (step) {\n this.currStep = step;\n } else if (this.currStep) {\n step = this.currStep;\n }\n\n // Check current tour for total number of steps and custom render data\n if (this.opt.isTourBubble) {\n currTour = winHopscotch.getCurrTour();\n if (currTour) {\n customTourData = currTour.customData;\n tourSpecificRenderer = currTour.customRenderer;\n step.isRtl = step.hasOwnProperty('isRtl') ? step.isRtl : currTour.hasOwnProperty('isRtl') ? currTour.isRtl : this.opt.isRtl;\n unsafe = currTour.unsafe;\n if (Array.isArray(currTour.steps)) {\n totalSteps = currTour.steps.length;\n totalStepsI18n = this._getStepI18nNum(this._getStepNum(totalSteps - 1));\n isLast = this._getStepNum(idx) === this._getStepNum(totalSteps - 1);\n }\n }\n } else {\n customTourData = step.customData;\n tourSpecificRenderer = step.customRenderer;\n unsafe = step.unsafe;\n step.isRtl = step.hasOwnProperty('isRtl') ? step.isRtl : this.opt.isRtl;\n }\n\n // Determine label for next button\n if (isLast) {\n nextBtnText = utils.getI18NString('doneBtn');\n } else if (step.showSkip) {\n nextBtnText = utils.getI18NString('skipBtn');\n } else {\n nextBtnText = utils.getI18NString('nextBtn');\n }\n\n utils.flipPlacement(step);\n utils.normalizePlacement(step);\n\n this.placement = step.placement;\n\n // Setup the configuration options we want to pass along to the template\n opts = {\n i18n: {\n prevBtn: utils.getI18NString('prevBtn'),\n nextBtn: nextBtnText,\n closeTooltip: utils.getI18NString('closeTooltip'),\n stepNum: this._getStepI18nNum(this._getStepNum(idx)),\n numSteps: totalStepsI18n\n },\n buttons: {\n showPrev: utils.valOrDefault(step.showPrevButton, this.opt.showPrevButton) && this._getStepNum(idx) > 0,\n showNext: utils.valOrDefault(step.showNextButton, this.opt.showNextButton),\n showCTA: utils.valOrDefault(step.showCTAButton && step.ctaLabel, false),\n ctaLabel: step.ctaLabel,\n showClose: utils.valOrDefault(this.opt.showCloseButton, true)\n },\n step: {\n num: idx,\n isLast: utils.valOrDefault(isLast, false),\n title: step.title || '',\n content: step.content || '',\n isRtl: step.isRtl,\n placement: step.placement,\n padding: utils.valOrDefault(step.padding, this.opt.bubblePadding),\n width: utils.getPixelValue(step.width) || this.opt.bubbleWidth,\n customData: step.customData || {}\n },\n tour: {\n isTour: this.opt.isTourBubble,\n numSteps: totalSteps,\n unsafe: utils.valOrDefault(unsafe, false),\n customData: customTourData || {}\n }\n };\n\n // Render the bubble's content.\n // Use tour renderer if available, then the global customRenderer if defined.\n if (typeof tourSpecificRenderer === 'function') {\n el.innerHTML = tourSpecificRenderer(opts);\n } else if (typeof tourSpecificRenderer === 'string') {\n if (!winHopscotch.templates || typeof winHopscotch.templates[tourSpecificRenderer] !== 'function') {\n throw new Error('Bubble rendering failed - template \"' + tourSpecificRenderer + '\" is not a function.');\n }\n el.innerHTML = winHopscotch.templates[tourSpecificRenderer](opts);\n } else if (customRenderer) {\n el.innerHTML = customRenderer(opts);\n } else {\n if (!winHopscotch.templates || typeof winHopscotch.templates[templateToUse] !== 'function') {\n throw new Error('Bubble rendering failed - template \"' + templateToUse + '\" is not a function.');\n }\n el.innerHTML = winHopscotch.templates[templateToUse](opts);\n }\n\n // Find arrow among new child elements.\n var children = el.children;\n var numChildren = children.length;\n var node;\n for (i = 0; i < numChildren; i++) {\n node = children[i];\n\n if (utils.hasClass(node, 'hopscotch-arrow')) {\n this.arrowEl = node;\n }\n }\n\n // Set z-index and arrow placement\n el.style.zIndex = typeof step.zindex === 'number' ? step.zindex : '';\n this._setArrow(step.placement);\n\n // Set bubble positioning\n // Make sure we're using visibility:hidden instead of display:none for height/width calculations.\n this.hide(false);\n this.setPosition(step);\n\n // only want to adjust window scroll for non-fixed elements\n if (callback) {\n callback(!step.fixedElement);\n }\n\n return this;\n },\n /**\n * Get step number considering steps that were skipped because their target wasn't found\n *\n * @private\n */\n _getStepNum: function _getStepNum(idx) {\n var skippedStepsCount = 0,\n stepIdx,\n skippedSteps = winHopscotch.getSkippedStepsIndexes(),\n i,\n len = skippedSteps.length;\n //count number of steps skipped before current step\n for (i = 0; i < len; i++) {\n stepIdx = skippedSteps[i];\n if (stepIdx < idx) {\n skippedStepsCount++;\n }\n }\n return idx - skippedStepsCount;\n },\n /**\n * Get the I18N step number for the current step.\n *\n * @private\n */\n _getStepI18nNum: function _getStepI18nNum(idx) {\n var stepNumI18N = utils.getI18NString('stepNums');\n if (stepNumI18N && idx < stepNumI18N.length) {\n idx = stepNumI18N[idx];\n } else {\n idx = idx + 1;\n }\n return idx;\n },\n\n /**\n * Sets which side the arrow is on.\n *\n * @private\n */\n _setArrow: function _setArrow(placement) {\n utils.removeClass(this.arrowEl, 'down up right left');\n\n // Whatever the orientation is, we want to arrow to appear\n // \"opposite\" of the orientation. E.g., a top orientation\n // requires a bottom arrow.\n if (placement === 'top') {\n utils.addClass(this.arrowEl, 'down');\n } else if (placement === 'bottom') {\n utils.addClass(this.arrowEl, 'up');\n } else if (placement === 'left') {\n utils.addClass(this.arrowEl, 'right');\n } else if (placement === 'right') {\n utils.addClass(this.arrowEl, 'left');\n }\n },\n\n /**\n * @private\n */\n _getArrowDirection: function _getArrowDirection() {\n if (this.placement === 'top') {\n return 'down';\n }\n if (this.placement === 'bottom') {\n return 'up';\n }\n if (this.placement === 'left') {\n return 'right';\n }\n if (this.placement === 'right') {\n return 'left';\n }\n },\n\n show: function show() {\n var self = this,\n fadeClass = 'fade-in-' + this._getArrowDirection(),\n fadeDur = 1000;\n\n utils.removeClass(this.element, 'hide');\n utils.addClass(this.element, fadeClass);\n setTimeout(function () {\n utils.removeClass(self.element, 'invisible');\n }, 50);\n setTimeout(function () {\n utils.removeClass(self.element, fadeClass);\n }, fadeDur);\n this.isShowing = true;\n return this;\n },\n\n hide: function hide(remove) {\n var el = this.element;\n\n remove = utils.valOrDefault(remove, true);\n el.style.top = '';\n el.style.left = '';\n\n // display: none\n if (remove) {\n utils.addClass(el, 'hide');\n utils.removeClass(el, 'invisible');\n }\n // opacity: 0\n else {\n utils.removeClass(el, 'hide');\n utils.addClass(el, 'invisible');\n }\n utils.removeClass(el, 'animate fade-in-up fade-in-down fade-in-right fade-in-left');\n this.isShowing = false;\n return this;\n },\n\n destroy: function destroy() {\n var el = this.element;\n\n if (el) {\n el.parentNode.removeChild(el);\n }\n utils.removeEvtListener(el, 'click', this.clickCb);\n },\n\n _handleBubbleClick: function _handleBubbleClick(evt) {\n var action;\n\n // Override evt for IE8 as IE8 doesn't pass event but binds it to window\n evt = evt || window.event; // get window.event if argument is falsy (in IE)\n\n // get srcElement if target is falsy (IE)\n var targetElement = evt.target || evt.srcElement;\n\n //Recursively look up the parent tree until we find a match\n //with one of the classes we're looking for, or the triggering element.\n function findMatchRecur(el) {\n /* We're going to make the assumption that we're not binding\n * multiple event classes to the same element.\n * (next + previous = wait... err... what?)\n *\n * In the odd event we end up with an element with multiple\n * possible matches, the following priority order is applied:\n * hopscotch-cta, hopscotch-next, hopscotch-prev, hopscotch-close\n */\n if (el === evt.currentTarget) {\n return null;\n }\n if (utils.hasClass(el, 'hopscotch-cta')) {\n return 'cta';\n }\n if (utils.hasClass(el, 'hopscotch-next')) {\n return 'next';\n }\n if (utils.hasClass(el, 'hopscotch-prev')) {\n return 'prev';\n }\n if (utils.hasClass(el, 'hopscotch-close')) {\n return 'close';\n }\n /*else*/return findMatchRecur(el.parentElement);\n }\n\n action = findMatchRecur(targetElement);\n\n //Now that we know what action we should take, let's take it.\n if (action === 'cta') {\n if (!this.opt.isTourBubble) {\n // This is a callout. Close the callout when CTA is clicked.\n winHopscotch.getCalloutManager().removeCallout(this.currStep.id);\n }\n // Call onCTA callback if one is provided\n if (this.currStep.onCTA) {\n utils.invokeCallback(this.currStep.onCTA);\n }\n } else if (action === 'next') {\n winHopscotch.nextStep(true);\n } else if (action === 'prev') {\n winHopscotch.prevStep(true);\n } else if (action === 'close') {\n if (this.opt.isTourBubble) {\n var currStepNum = winHopscotch.getCurrStepNum(),\n currTour = winHopscotch.getCurrTour(),\n doEndCallback = currStepNum === currTour.steps.length - 1;\n\n utils.invokeEventCallbacks('close');\n\n winHopscotch.endTour(true, doEndCallback);\n } else {\n if (this.opt.onClose) {\n utils.invokeCallback(this.opt.onClose);\n }\n if (this.opt.id && !this.opt.isTourBubble) {\n // Remove via the HopscotchCalloutManager.\n // removeCallout() calls HopscotchBubble.destroy internally.\n winHopscotch.getCalloutManager().removeCallout(this.opt.id);\n } else {\n this.destroy();\n }\n }\n\n utils.evtPreventDefault(evt);\n }\n //Otherwise, do nothing. We didn't click on anything relevant.\n },\n\n init: function init(initOpt) {\n var el = document.createElement('div'),\n self = this,\n resizeCooldown = false,\n // for updating after window resize\n onWinResize,\n _appendToBody2,\n children,\n numChildren,\n node,\n i,\n currTour,\n opt;\n\n //Register DOM element for this bubble.\n this.element = el;\n\n //Merge bubble options with defaults.\n opt = {\n showPrevButton: defaultOpts.showPrevButton,\n showNextButton: defaultOpts.showNextButton,\n bubbleWidth: defaultOpts.bubbleWidth,\n bubblePadding: defaultOpts.bubblePadding,\n arrowWidth: defaultOpts.arrowWidth,\n isRtl: defaultOpts.isRtl,\n showNumber: true,\n isTourBubble: true\n };\n initOpt = (typeof initOpt === 'undefined' ? 'undefined' : _typeof(initOpt)) === undefinedStr ? {} : initOpt;\n utils.extend(opt, initOpt);\n this.opt = opt;\n\n //Apply classes to bubble. Add \"animated\" for fade css animation\n el.className = 'hopscotch-bubble animated';\n if (!opt.isTourBubble) {\n utils.addClass(el, 'hopscotch-callout no-number');\n } else {\n currTour = winHopscotch.getCurrTour();\n if (currTour) {\n utils.addClass(el, 'tour-' + currTour.id);\n }\n }\n\n /**\n * Not pretty, but IE8 doesn't support Function.bind(), so I'm\n * relying on closures to keep a handle of \"this\".\n * Reset position of bubble when window is resized\n *\n * @private\n */\n onWinResize = function onWinResize() {\n if (resizeCooldown || !self.isShowing) {\n return;\n }\n\n resizeCooldown = true;\n setTimeout(function () {\n self.setPosition(self.currStep);\n resizeCooldown = false;\n }, 100);\n };\n\n //Add listener to reset bubble position on window resize\n utils.addEvtListener(window, 'resize', onWinResize);\n\n //Create our click callback handler and keep a\n //reference to it for later.\n this.clickCb = function (evt) {\n self._handleBubbleClick(evt);\n };\n utils.addEvtListener(el, 'click', this.clickCb);\n\n //Hide the bubble by default\n this.hide();\n\n //Finally, append our new bubble to body once the DOM is ready.\n if (utils.documentIsReady()) {\n document.body.appendChild(el);\n } else {\n // Moz, webkit, Opera\n if (document.addEventListener) {\n _appendToBody2 = function appendToBody() {\n document.removeEventListener('DOMContentLoaded', _appendToBody2);\n window.removeEventListener('load', _appendToBody2);\n\n document.body.appendChild(el);\n };\n\n document.addEventListener('DOMContentLoaded', _appendToBody2, false);\n }\n // IE\n else {\n _appendToBody2 = function _appendToBody() {\n if (document.readyState === 'complete') {\n document.detachEvent('onreadystatechange', _appendToBody2);\n window.detachEvent('onload', _appendToBody2);\n document.body.appendChild(el);\n }\n };\n\n document.attachEvent('onreadystatechange', _appendToBody2);\n }\n utils.addEvtListener(window, 'load', _appendToBody2);\n }\n }\n };\n\n /**\n * HopscotchCalloutManager\n *\n * @class Manages the creation and destruction of single callouts.\n * @constructor\n */\n HopscotchCalloutManager = function HopscotchCalloutManager() {\n var callouts = {},\n calloutOpts = {};\n\n /**\n * createCallout\n *\n * Creates a standalone callout. This callout has the same API\n * as a Hopscotch tour bubble.\n *\n * @param {Object} opt The options for the callout. For the most\n * part, these are the same options as you would find in a tour\n * step.\n */\n this.createCallout = function (opt) {\n var callout;\n\n if (opt.id) {\n if (!validIdRegEx.test(opt.id)) {\n throw new Error('Callout ID is using an invalid format. Use alphanumeric, underscores, and/or hyphens only. First character must be a letter.');\n }\n if (callouts[opt.id]) {\n throw new Error('Callout by that id already exists. Please choose a unique id.');\n }\n if (!utils.getStepTarget(opt)) {\n throw new Error('Must specify existing target element via \\'target\\' option.');\n }\n opt.showNextButton = opt.showPrevButton = false;\n opt.isTourBubble = false;\n callout = new HopscotchBubble(opt);\n callouts[opt.id] = callout;\n calloutOpts[opt.id] = opt;\n callout.render(opt, null, function () {\n callout.show();\n if (opt.onShow) {\n utils.invokeCallback(opt.onShow);\n }\n });\n } else {\n throw new Error('Must specify a callout id.');\n }\n return callout;\n };\n\n /**\n * getCallout\n *\n * Returns a callout by its id.\n *\n * @param {String} id The id of the callout to fetch.\n * @returns {Object} HopscotchBubble\n */\n this.getCallout = function (id) {\n return callouts[id];\n };\n\n /**\n * removeAllCallouts\n *\n * Removes all existing callouts.\n */\n this.removeAllCallouts = function () {\n var calloutId;\n\n for (calloutId in callouts) {\n if (callouts.hasOwnProperty(calloutId)) {\n this.removeCallout(calloutId);\n }\n }\n };\n\n /**\n * removeCallout\n *\n * Removes an existing callout by id.\n *\n * @param {String} id The id of the callout to remove.\n */\n this.removeCallout = function (id) {\n var callout = callouts[id];\n\n callouts[id] = null;\n calloutOpts[id] = null;\n if (!callout) {\n return;\n }\n\n callout.destroy();\n };\n\n /**\n * refreshCalloutPositions\n *\n * Refresh the positions for all callouts known by the\n * callout manager. Typically you'll use\n * hopscotch.refreshBubblePosition() to refresh ALL\n * bubbles instead of calling this directly.\n */\n this.refreshCalloutPositions = function () {\n var calloutId, callout, opts;\n\n for (calloutId in callouts) {\n if (callouts.hasOwnProperty(calloutId) && calloutOpts.hasOwnProperty(calloutId)) {\n callout = callouts[calloutId];\n opts = calloutOpts[calloutId];\n if (callout && opts) {\n callout.setPosition(opts);\n }\n }\n }\n };\n };\n\n /**\n * Hopscotch\n *\n * @class Creates the Hopscotch object. Used to manage tour progress and configurations.\n * @constructor\n * @param {Object} initOptions Options to be passed to `configure()`.\n */\n Hopscotch = function Hopscotch(initOptions) {\n var self = this,\n // for targetClickNextFn\n bubble,\n calloutMgr,\n opt,\n currTour,\n currStepNum,\n skippedSteps = {},\n cookieTourId,\n cookieTourStep,\n cookieSkippedSteps = [],\n _configure,\n\n\n /**\n * getBubble\n *\n * Singleton accessor function for retrieving or creating bubble object.\n *\n * @private\n * @param setOptions {Boolean} when true, transfers configuration options to the bubble\n * @returns {Object} HopscotchBubble\n */\n getBubble = function getBubble(setOptions) {\n if (!bubble || !bubble.element || !bubble.element.parentNode) {\n bubble = new HopscotchBubble(opt);\n }\n if (setOptions) {\n utils.extend(bubble.opt, {\n bubblePadding: getOption('bubblePadding'),\n bubbleWidth: getOption('bubbleWidth'),\n showNextButton: getOption('showNextButton'),\n showPrevButton: getOption('showPrevButton'),\n showCloseButton: getOption('showCloseButton'),\n arrowWidth: getOption('arrowWidth'),\n isRtl: getOption('isRtl')\n });\n }\n return bubble;\n },\n\n\n /**\n * Destroy the bubble currently associated with Hopscotch.\n * This is done when we end the current tour.\n *\n * @private\n */\n destroyBubble = function destroyBubble() {\n if (bubble) {\n bubble.destroy();\n bubble = null;\n }\n },\n\n\n /**\n * Convenience method for getting an option. Returns custom config option\n * or the default config option if no custom value exists.\n *\n * @private\n * @param name {String} config option name\n * @returns {Object} config option value\n */\n getOption = function getOption(name) {\n if (typeof opt === 'undefined') {\n return defaultOpts[name];\n }\n return utils.valOrDefault(opt[name], defaultOpts[name]);\n },\n\n\n /**\n * getCurrStep\n *\n * @private\n * @returns {Object} the step object corresponding to the current value of currStepNum\n */\n getCurrStep = function getCurrStep() {\n var step;\n\n if (!currTour || currStepNum < 0 || currStepNum >= currTour.steps.length) {\n step = null;\n } else {\n step = currTour.steps[currStepNum];\n }\n\n return step;\n },\n\n\n /**\n * Used for nextOnTargetClick\n *\n * @private\n */\n targetClickNextFn = function targetClickNextFn() {\n self.nextStep();\n },\n\n\n /**\n * adjustWindowScroll\n *\n * Checks if the bubble or target element is partially or completely\n * outside of the viewport. If it is, adjust the window scroll position\n * to bring it back into the viewport.\n *\n * @private\n * @param {Function} cb Callback to invoke after done scrolling.\n */\n adjustWindowScroll = function adjustWindowScroll(cb) {\n var bubble = getBubble(),\n\n\n // Calculate the bubble element top and bottom position\n bubbleEl = bubble.element,\n bubbleTop = utils.getPixelValue(bubbleEl.style.top),\n bubbleBottom = bubbleTop + utils.getPixelValue(bubbleEl.offsetHeight),\n\n\n // Calculate the target element top and bottom position\n targetEl = utils.getStepTarget(getCurrStep()),\n targetBounds = targetEl.getBoundingClientRect(),\n targetElTop = targetBounds.top + utils.getScrollTop(),\n targetElBottom = targetBounds.bottom + utils.getScrollTop(),\n\n\n // The higher of the two: bubble or target\n targetTop = bubbleTop < targetElTop ? bubbleTop : targetElTop,\n\n // The lower of the two: bubble or target\n targetBottom = bubbleBottom > targetElBottom ? bubbleBottom : targetElBottom,\n\n\n // Calculate the current viewport top and bottom\n windowTop = utils.getScrollTop(),\n windowBottom = windowTop + utils.getWindowHeight(),\n\n\n // This is our final target scroll value.\n scrollToVal = targetTop - getOption('scrollTopMargin'),\n scrollEl,\n yuiAnim,\n yuiEase,\n direction,\n scrollIncr,\n scrollTimeout,\n _scrollTimeoutFn;\n\n // Target and bubble are both visible in viewport\n if (targetTop >= windowTop && (targetTop <= windowTop + getOption('scrollTopMargin') || targetBottom <= windowBottom)) {\n if (cb) {\n cb();\n } // HopscotchBubble.show\n }\n\n // Abrupt scroll to scroll target\n else if (!getOption('smoothScroll')) {\n window.scrollTo(0, scrollToVal);\n\n if (cb) {\n cb();\n } // HopscotchBubble.show\n }\n\n // Smooth scroll to scroll target\n else {\n // Use YUI if it exists\n if ((typeof YAHOO === 'undefined' ? 'undefined' : _typeof(YAHOO)) !== undefinedStr && _typeof(YAHOO.env) !== undefinedStr && _typeof(YAHOO.env.ua) !== undefinedStr && _typeof(YAHOO.util) !== undefinedStr && _typeof(YAHOO.util.Scroll) !== undefinedStr) {\n scrollEl = YAHOO.env.ua.webkit ? document.body : document.documentElement;\n yuiEase = YAHOO.util.Easing ? YAHOO.util.Easing.easeOut : undefined;\n yuiAnim = new YAHOO.util.Scroll(scrollEl, {\n scroll: { to: [0, scrollToVal] }\n }, getOption('scrollDuration') / 1000, yuiEase);\n yuiAnim.onComplete.subscribe(cb);\n yuiAnim.animate();\n }\n\n // Use jQuery if it exists\n else if (hasJquery) {\n jQuery('body, html').animate({ scrollTop: scrollToVal }, getOption('scrollDuration'), cb);\n }\n\n // Use my crummy setInterval scroll solution if we're using plain, vanilla Javascript.\n else {\n if (scrollToVal < 0) {\n scrollToVal = 0;\n }\n\n // 48 * 10 == 480ms scroll duration\n // make it slightly less than CSS transition duration because of\n // setInterval overhead.\n // To increase or decrease duration, change the divisor of scrollIncr.\n direction = windowTop > targetTop ? -1 : 1; // -1 means scrolling up, 1 means down\n scrollIncr = Math.abs(windowTop - scrollToVal) / (getOption('scrollDuration') / 10);\n _scrollTimeoutFn = function scrollTimeoutFn() {\n var scrollTop = utils.getScrollTop(),\n scrollTarget = scrollTop + direction * scrollIncr;\n\n if (direction > 0 && scrollTarget >= scrollToVal || direction < 0 && scrollTarget <= scrollToVal) {\n // Overshot our target. Just manually set to equal the target\n // and clear the interval\n scrollTarget = scrollToVal;\n if (cb) {\n cb();\n } // HopscotchBubble.show\n window.scrollTo(0, scrollTarget);\n return;\n }\n\n window.scrollTo(0, scrollTarget);\n\n if (utils.getScrollTop() === scrollTop) {\n // Couldn't scroll any further.\n if (cb) {\n cb();\n } // HopscotchBubble.show\n return;\n }\n\n // If we reached this point, that means there's still more to scroll.\n setTimeout(_scrollTimeoutFn, 10);\n };\n\n _scrollTimeoutFn();\n }\n }\n },\n\n\n /**\n * goToStepWithTarget\n *\n * Helper function to increment the step number until a step is found where\n * the step target exists or until we reach the end/beginning of the tour.\n *\n * @private\n * @param {Number} direction Either 1 for incrementing or -1 for decrementing\n * @param {Function} cb The callback function to be invoked when the step has been found\n */\n goToStepWithTarget = function goToStepWithTarget(direction, cb) {\n var target, step, goToStepFn;\n\n if (currStepNum + direction >= 0 && currStepNum + direction < currTour.steps.length) {\n\n currStepNum += direction;\n step = getCurrStep();\n\n goToStepFn = function goToStepFn() {\n target = utils.getStepTarget(step);\n\n if (target) {\n //this step was previously skipped, but now its target exists,\n //remove this step from skipped steps set\n if (skippedSteps[currStepNum]) {\n delete skippedSteps[currStepNum];\n }\n // We're done! Return the step number via the callback.\n cb(currStepNum);\n } else {\n //mark this step as skipped, since its target wasn't found\n skippedSteps[currStepNum] = true;\n // Haven't found a valid target yet. Recursively call\n // goToStepWithTarget.\n utils.invokeEventCallbacks('error');\n goToStepWithTarget(direction, cb);\n }\n };\n\n if (step.delay) {\n setTimeout(goToStepFn, step.delay);\n } else {\n goToStepFn();\n }\n } else {\n cb(-1); // signal that we didn't find any step with a valid target\n }\n },\n\n\n /**\n * changeStep\n *\n * Helper function to change step by going forwards or backwards 1.\n * nextStep and prevStep are publicly accessible wrappers for this function.\n *\n * @private\n * @param {Boolean} doCallbacks Flag for invoking onNext or onPrev callbacks\n * @param {Number} direction Either 1 for \"next\" or -1 for \"prev\"\n */\n changeStep = function changeStep(doCallbacks, direction) {\n var bubble = getBubble(),\n self = this,\n step,\n origStep,\n wasMultiPage,\n changeStepCb;\n\n bubble.hide();\n\n doCallbacks = utils.valOrDefault(doCallbacks, true);\n\n step = getCurrStep();\n\n if (step.nextOnTargetClick) {\n // Detach the listener when tour is moving to a different step\n utils.removeEvtListener(utils.getStepTarget(step), 'click', targetClickNextFn);\n }\n\n origStep = step;\n if (direction > 0) {\n wasMultiPage = origStep.multipage;\n } else {\n wasMultiPage = currStepNum > 0 && currTour.steps[currStepNum - 1].multipage;\n }\n\n /**\n * Callback for goToStepWithTarget\n *\n * @private\n */\n changeStepCb = function changeStepCb(stepNum) {\n var doShowFollowingStep;\n\n if (stepNum === -1) {\n // Wasn't able to find a step with an existing element. End tour.\n return this.endTour(true);\n }\n\n if (doCallbacks) {\n if (direction > 0) {\n doShowFollowingStep = utils.invokeEventCallbacks('next', origStep.onNext);\n } else {\n doShowFollowingStep = utils.invokeEventCallbacks('prev', origStep.onPrev);\n }\n }\n\n // If the state of the tour is updated in a callback, assume the client\n // doesn't want to go to next step since they specifically updated.\n if (stepNum !== currStepNum) {\n return;\n }\n\n if (wasMultiPage) {\n // Update state for the next page\n setStateHelper();\n\n // Next step is on a different page, so no need to attempt to render it.\n return;\n }\n\n doShowFollowingStep = utils.valOrDefault(doShowFollowingStep, true);\n\n // If the onNext/onPrev callback returned false, halt the tour and\n // don't show the next step.\n if (doShowFollowingStep) {\n this.showStep(stepNum);\n } else {\n // Halt tour (but don't clear state)\n this.endTour(false);\n }\n };\n\n if (!wasMultiPage && getOption('skipIfNoElement')) {\n goToStepWithTarget(direction, function (stepNum) {\n changeStepCb.call(self, stepNum);\n });\n } else if (currStepNum + direction >= 0 && currStepNum + direction < currTour.steps.length) {\n // only try incrementing once, and invoke error callback if no target is found\n currStepNum += direction;\n step = getCurrStep();\n if (!utils.getStepTarget(step) && !wasMultiPage) {\n utils.invokeEventCallbacks('error');\n return this.endTour(true, false);\n }\n changeStepCb.call(this, currStepNum);\n } else if (currStepNum + direction === currTour.steps.length) {\n return this.endTour();\n }\n\n return this;\n },\n\n\n /**\n * loadTour\n *\n * Loads, but does not display, tour.\n *\n * @private\n * @param tour The tour JSON object\n */\n loadTour = function loadTour(tour) {\n var tmpOpt = {},\n prop,\n tourState,\n tourStateValues;\n\n // Set tour-specific configurations\n for (prop in tour) {\n if (tour.hasOwnProperty(prop) && prop !== 'id' && prop !== 'steps') {\n tmpOpt[prop] = tour[prop];\n }\n }\n\n //this.resetDefaultOptions(); // reset all options so there are no surprises\n // TODO check number of config properties of tour\n _configure.call(this, tmpOpt, true);\n\n // Get existing tour state, if it exists.\n tourState = utils.getState(getOption('cookieName'));\n if (tourState) {\n tourStateValues = tourState.split(':');\n cookieTourId = tourStateValues[0]; // selecting tour is not supported by this framework.\n cookieTourStep = tourStateValues[1];\n\n if (tourStateValues.length > 2) {\n cookieSkippedSteps = tourStateValues[2].split(',');\n }\n\n cookieTourStep = parseInt(cookieTourStep, 10);\n }\n\n return this;\n },\n\n\n /**\n * Find the first step to show for a tour. (What is the first step with a\n * target on the page?)\n */\n findStartingStep = function findStartingStep(startStepNum, savedSkippedSteps, cb) {\n var step, target;\n\n currStepNum = startStepNum || 0;\n skippedSteps = savedSkippedSteps || {};\n step = getCurrStep();\n target = utils.getStepTarget(step);\n\n if (target) {\n // First step had an existing target.\n cb(currStepNum);\n return;\n }\n\n if (!target) {\n // Previous target doesn't exist either. The user may have just\n // clicked on a link that wasn't part of the tour. Another possibility is that\n // the user clicked on the correct link, but the target is just missing for\n // whatever reason. In either case, we should just advance until we find a step\n // that has a target on the page or end the tour if we can't find such a step.\n utils.invokeEventCallbacks('error');\n\n //this step was skipped, since its target does not exist\n skippedSteps[currStepNum] = true;\n\n if (getOption('skipIfNoElement')) {\n goToStepWithTarget(1, cb);\n return;\n } else {\n currStepNum = -1;\n cb(currStepNum);\n }\n }\n },\n showStepHelper = function showStepHelper(stepNum) {\n var step = currTour.steps[stepNum],\n bubble = getBubble(),\n targetEl = utils.getStepTarget(step);\n\n function showBubble() {\n bubble.show();\n utils.invokeEventCallbacks('show', step.onShow);\n }\n\n if (currStepNum !== stepNum && getCurrStep().nextOnTargetClick) {\n // Detach the listener when tour is moving to a different step\n utils.removeEvtListener(utils.getStepTarget(getCurrStep()), 'click', targetClickNextFn);\n }\n\n // Update bubble for current step\n currStepNum = stepNum;\n\n bubble.hide(false);\n\n bubble.render(step, stepNum, function (adjustScroll) {\n // when done adjusting window scroll, call showBubble helper fn\n if (adjustScroll) {\n adjustWindowScroll(showBubble);\n } else {\n showBubble();\n }\n\n // If we want to advance to next step when user clicks on target.\n if (step.nextOnTargetClick) {\n utils.addEvtListener(targetEl, 'click', targetClickNextFn);\n }\n });\n\n setStateHelper();\n },\n setStateHelper = function setStateHelper() {\n var cookieVal = currTour.id + ':' + currStepNum,\n skipedStepIndexes = winHopscotch.getSkippedStepsIndexes();\n\n if (skipedStepIndexes && skipedStepIndexes.length > 0) {\n cookieVal += ':' + skipedStepIndexes.join(',');\n }\n\n utils.setState(getOption('cookieName'), cookieVal, 1);\n },\n\n\n /**\n * init\n *\n * Initializes the Hopscotch object.\n *\n * @private\n */\n init = function init(initOptions) {\n if (initOptions) {\n //initOptions.cookieName = initOptions.cookieName || 'hopscotch.tour.state';\n this.configure(initOptions);\n }\n };\n\n /**\n * getCalloutManager\n *\n * Gets the callout manager.\n *\n * @returns {Object} HopscotchCalloutManager\n *\n */\n this.getCalloutManager = function () {\n if ((typeof calloutMgr === 'undefined' ? 'undefined' : _typeof(calloutMgr)) === undefinedStr) {\n calloutMgr = new HopscotchCalloutManager();\n }\n\n return calloutMgr;\n };\n\n /**\n * startTour\n *\n * Begins the tour.\n *\n * @param {Object} tour The tour JSON object\n * @stepNum {Number} stepNum __Optional__ The step number to start from\n * @returns {Object} Hopscotch\n *\n */\n this.startTour = function (tour, stepNum) {\n var bubble,\n currStepNum,\n skippedSteps = {},\n self = this;\n\n // loadTour if we are calling startTour directly. (When we call startTour\n // from window onLoad handler, we'll use currTour)\n if (!currTour) {\n\n // Sanity check! Is there a tour?\n if (!tour) {\n throw new Error('Tour data is required for startTour.');\n }\n\n // Check validity of tour ID. If invalid, throw an error.\n if (!tour.id || !validIdRegEx.test(tour.id)) {\n throw new Error('Tour ID is using an invalid format. Use alphanumeric, underscores, and/or hyphens only. First character must be a letter.');\n }\n\n currTour = tour;\n loadTour.call(this, tour);\n }\n\n if ((typeof stepNum === 'undefined' ? 'undefined' : _typeof(stepNum)) !== undefinedStr) {\n if (stepNum >= currTour.steps.length) {\n throw new Error('Specified step number out of bounds.');\n }\n currStepNum = stepNum;\n }\n\n // If document isn't ready, wait for it to finish loading.\n // (so that we can calculate positioning accurately)\n if (!utils.documentIsReady()) {\n waitingToStart = true;\n return this;\n }\n\n if (typeof currStepNum === \"undefined\" && currTour.id === cookieTourId && (typeof cookieTourStep === 'undefined' ? 'undefined' : _typeof(cookieTourStep)) !== undefinedStr) {\n currStepNum = cookieTourStep;\n if (cookieSkippedSteps.length > 0) {\n for (var i = 0, len = cookieSkippedSteps.length; i < len; i++) {\n skippedSteps[cookieSkippedSteps[i]] = true;\n }\n }\n } else if (!currStepNum) {\n currStepNum = 0;\n }\n\n // Find the current step we should begin the tour on, and then actually start the tour.\n findStartingStep(currStepNum, skippedSteps, function (stepNum) {\n var target = stepNum !== -1 && utils.getStepTarget(currTour.steps[stepNum]);\n\n if (!target) {\n // Should we trigger onEnd callback? Let's err on the side of caution\n // and not trigger it. Don't want weird stuff happening on a page that\n // wasn't meant for the tour. Up to the developer to fix their tour.\n self.endTour(false, false);\n return;\n }\n\n utils.invokeEventCallbacks('start');\n\n bubble = getBubble();\n // TODO: do we still need this call to .hide()? No longer using opt.animate...\n // Leaving it in for now to play it safe\n bubble.hide(false); // make invisible for boundingRect calculations when opt.animate == true\n\n self.isActive = true;\n\n if (!utils.getStepTarget(getCurrStep())) {\n // First step element doesn't exist\n utils.invokeEventCallbacks('error');\n if (getOption('skipIfNoElement')) {\n self.nextStep(false);\n }\n } else {\n self.showStep(stepNum);\n }\n });\n\n return this;\n };\n\n /**\n * showStep\n *\n * Skips to a specific step and renders the corresponding bubble.\n *\n * @stepNum {Number} stepNum The step number to show\n * @returns {Object} Hopscotch\n */\n this.showStep = function (stepNum) {\n var step = currTour.steps[stepNum],\n prevStepNum = currStepNum;\n if (!utils.getStepTarget(step)) {\n currStepNum = stepNum;\n utils.invokeEventCallbacks('error');\n currStepNum = prevStepNum;\n return;\n }\n\n if (step.delay) {\n setTimeout(function () {\n showStepHelper(stepNum);\n }, step.delay);\n } else {\n showStepHelper(stepNum);\n }\n return this;\n };\n\n /**\n * prevStep\n *\n * Jump to the previous step.\n *\n * @param {Boolean} doCallbacks Flag for invoking onPrev callback. Defaults to true.\n * @returns {Object} Hopscotch\n */\n this.prevStep = function (doCallbacks) {\n changeStep.call(this, doCallbacks, -1);\n return this;\n };\n\n /**\n * nextStep\n *\n * Jump to the next step.\n *\n * @param {Boolean} doCallbacks Flag for invoking onNext callback. Defaults to true.\n * @returns {Object} Hopscotch\n */\n this.nextStep = function (doCallbacks) {\n changeStep.call(this, doCallbacks, 1);\n return this;\n };\n\n /**\n * endTour\n *\n * Cancels out of an active tour.\n *\n * @param {Boolean} clearState Flag for clearing state. Defaults to true.\n * @param {Boolean} doCallbacks Flag for invoking 'onEnd' callbacks. Defaults to true.\n * @returns {Object} Hopscotch\n */\n this.endTour = function (clearState, doCallbacks) {\n var bubble = getBubble(),\n currentStep;\n\n clearState = utils.valOrDefault(clearState, true);\n doCallbacks = utils.valOrDefault(doCallbacks, true);\n\n //remove event listener if current step had it added\n if (currTour) {\n currentStep = getCurrStep();\n if (currentStep && currentStep.nextOnTargetClick) {\n utils.removeEvtListener(utils.getStepTarget(currentStep), 'click', targetClickNextFn);\n }\n }\n\n currStepNum = 0;\n cookieTourStep = undefined;\n\n bubble.hide();\n if (clearState) {\n utils.clearState(getOption('cookieName'));\n }\n if (this.isActive) {\n this.isActive = false;\n\n if (currTour && doCallbacks) {\n utils.invokeEventCallbacks('end');\n }\n }\n\n this.removeCallbacks(null, true);\n this.resetDefaultOptions();\n destroyBubble();\n\n currTour = null;\n\n return this;\n };\n\n /**\n * getCurrTour\n *\n * @return {Object} The currently loaded tour.\n */\n this.getCurrTour = function () {\n return currTour;\n };\n\n /**\n * getCurrTarget\n *\n * @return {Object} The currently visible target.\n */\n this.getCurrTarget = function () {\n return utils.getStepTarget(getCurrStep());\n };\n\n /**\n * getCurrStepNum\n *\n * @return {number} The current zero-based step number.\n */\n this.getCurrStepNum = function () {\n return currStepNum;\n };\n\n /**\n * getSkippedStepsIndexes\n *\n * @return {Array} Array of skipped step indexes\n */\n this.getSkippedStepsIndexes = function () {\n var skippedStepsIdxArray = [],\n stepIds;\n\n for (stepIds in skippedSteps) {\n skippedStepsIdxArray.push(stepIds);\n }\n\n return skippedStepsIdxArray;\n };\n\n /**\n * refreshBubblePosition\n *\n * Tell hopscotch that the position of the current tour element changed\n * and the bubble therefore needs to be redrawn. Also refreshes position\n * of all Hopscotch Callouts on the page.\n *\n * @returns {Object} Hopscotch\n */\n this.refreshBubblePosition = function () {\n var currStep = getCurrStep();\n if (currStep) {\n getBubble().setPosition(currStep);\n }\n this.getCalloutManager().refreshCalloutPositions();\n return this;\n };\n\n /**\n * listen\n *\n * Adds a callback for one of the event types. Valid event types are:\n *\n * @param {string} evtType \"start\", \"end\", \"next\", \"prev\", \"show\", \"close\", or \"error\"\n * @param {Function} cb The callback to add.\n * @param {Boolean} isTourCb Flag indicating callback is from a tour definition.\n * For internal use only!\n * @returns {Object} Hopscotch\n */\n this.listen = function (evtType, cb, isTourCb) {\n if (evtType) {\n callbacks[evtType].push({ cb: cb, fromTour: isTourCb });\n }\n return this;\n };\n\n /**\n * unlisten\n *\n * Removes a callback for one of the event types, e.g. 'start', 'next', etc.\n *\n * @param {string} evtType \"start\", \"end\", \"next\", \"prev\", \"show\", \"close\", or \"error\"\n * @param {Function} cb The callback to remove.\n * @returns {Object} Hopscotch\n */\n this.unlisten = function (evtType, cb) {\n var evtCallbacks = callbacks[evtType],\n i,\n len;\n\n for (i = 0, len = evtCallbacks.length; i < len; ++i) {\n if (evtCallbacks[i].cb === cb) {\n evtCallbacks.splice(i, 1);\n }\n }\n return this;\n };\n\n /**\n * removeCallbacks\n *\n * Remove callbacks for hopscotch events. If tourOnly is set to true, only\n * removes callbacks specified by a tour (callbacks set by external calls\n * to hopscotch.configure or hopscotch.listen will not be removed). If\n * evtName is null or undefined, callbacks for all events will be removed.\n *\n * @param {string} evtName Optional Event name for which we should remove callbacks\n * @param {boolean} tourOnly Optional flag to indicate we should only remove callbacks added\n * by a tour. Defaults to false.\n * @returns {Object} Hopscotch\n */\n this.removeCallbacks = function (evtName, tourOnly) {\n var cbArr, i, len, evt;\n\n // If evtName is null or undefined, remove callbacks for all events.\n for (evt in callbacks) {\n if (!evtName || evtName === evt) {\n if (tourOnly) {\n cbArr = callbacks[evt];\n for (i = 0, len = cbArr.length; i < len; ++i) {\n if (cbArr[i].fromTour) {\n cbArr.splice(i--, 1);\n --len;\n }\n }\n } else {\n callbacks[evt] = [];\n }\n }\n }\n return this;\n };\n\n /**\n * registerHelper\n * ==============\n * Registers a helper function to be used as a callback function.\n *\n * @param {String} id The id of the function.\n * @param {Function} id The callback function.\n */\n this.registerHelper = function (id, fn) {\n if (typeof id === 'string' && typeof fn === 'function') {\n helpers[id] = fn;\n }\n };\n\n this.unregisterHelper = function (id) {\n helpers[id] = null;\n };\n\n this.invokeHelper = function (id) {\n var args = [],\n i,\n len;\n\n for (i = 1, len = arguments.length; i < len; ++i) {\n args.push(arguments[i]);\n }\n if (helpers[id]) {\n helpers[id].call(null, args);\n }\n };\n\n /**\n * setCookieName\n *\n * Sets the cookie name (or sessionStorage name, if supported) used for multi-page\n * tour persistence.\n *\n * @param {String} name The cookie name\n * @returns {Object} Hopscotch\n */\n this.setCookieName = function (name) {\n opt.cookieName = name;\n return this;\n };\n\n /**\n * resetDefaultOptions\n *\n * Resets all configuration options to default.\n *\n * @returns {Object} Hopscotch\n */\n this.resetDefaultOptions = function () {\n opt = {};\n return this;\n };\n\n /**\n * resetDefaultI18N\n *\n * Resets all i18n.\n *\n * @returns {Object} Hopscotch\n */\n this.resetDefaultI18N = function () {\n customI18N = {};\n return this;\n };\n\n /**\n * hasState\n *\n * Returns state from a previous tour run, if it exists.\n *\n * @returns {String} State of previous tour run, or empty string if none exists.\n */\n this.getState = function () {\n return utils.getState(getOption('cookieName'));\n };\n\n /**\n * _configure\n *\n * @see this.configure\n * @private\n * @param options\n * @param {Boolean} isTourOptions Should be set to true when setting options from a tour definition.\n */\n _configure = function _configure(options, isTourOptions) {\n var bubble,\n events = ['next', 'prev', 'start', 'end', 'show', 'error', 'close'],\n eventPropName,\n callbackProp,\n i,\n len;\n\n if (!opt) {\n this.resetDefaultOptions();\n }\n\n utils.extend(opt, options);\n\n if (options) {\n utils.extend(customI18N, options.i18n);\n }\n\n for (i = 0, len = events.length; i < len; ++i) {\n // At this point, options[eventPropName] may have changed from an array\n // to a function.\n eventPropName = 'on' + events[i].charAt(0).toUpperCase() + events[i].substring(1);\n if (options[eventPropName]) {\n this.listen(events[i], options[eventPropName], isTourOptions);\n }\n }\n\n bubble = getBubble(true);\n\n return this;\n };\n\n /**\n * configure\n *\n *
\n     * VALID OPTIONS INCLUDE...\n     *\n     * - bubbleWidth:     Number   - Default bubble width. Defaults to 280.\n     * - bubblePadding:   Number   - DEPRECATED. Default bubble padding. Defaults to 15.\n     * - smoothScroll:    Boolean  - should the page scroll smoothly to the next\n     *                               step? Defaults to TRUE.\n     * - scrollDuration:  Number   - Duration of page scroll. Only relevant when\n     *                               smoothScroll is set to true. Defaults to\n     *                               1000ms.\n     * - scrollTopMargin: NUMBER   - When the page scrolls, how much space should there\n     *                               be between the bubble/targetElement and the top\n     *                               of the viewport? Defaults to 200.\n     * - showCloseButton: Boolean  - should the tour bubble show a close (X) button?\n     *                               Defaults to TRUE.\n     * - showPrevButton:  Boolean  - should the bubble have the Previous button?\n     *                               Defaults to FALSE.\n     * - showNextButton:  Boolean  - should the bubble have the Next button?\n     *                               Defaults to TRUE.\n     * - arrowWidth:      Number   - Default arrow width. (space between the bubble\n     *                               and the targetEl) Used for bubble position\n     *                               calculation. Only use this option if you are\n     *                               using your own custom CSS. Defaults to 20.\n     * - skipIfNoElement  Boolean  - If a specified target element is not found,\n     *                               should we skip to the next step? Defaults to\n     *                               TRUE.\n     * - onNext:          Function - A callback to be invoked after every click on\n     *                               a \"Next\" button.\n     * - isRtl:           Boolean  - Set to true when instantiating in a right-to-left\n     *                               language environment, or if mirrored positioning is\n     *                               needed.\n     *                               Defaults to FALSE.\n     *\n     * - i18n:            Object   - For i18n purposes. Allows you to change the\n     *                               text of button labels and step numbers.\n     * - i18n.stepNums:   Array\\ - Provide a list of strings to be shown as\n     *                               the step number, based on index of array. Unicode\n     *                               characters are supported. (e.g., ['一',\n     *                               '二', '三']) If there are more steps\n     *                               than provided numbers, Arabic numerals\n     *                               ('4', '5', '6', etc.) will be used as default.\n     * // =========\n     * // CALLBACKS\n     * // =========\n     * - onNext:          Function - Invoked after every click on a \"Next\" button.\n     * - onPrev:          Function - Invoked after every click on a \"Prev\" button.\n     * - onStart:         Function - Invoked when the tour is started.\n     * - onEnd:           Function - Invoked when the tour ends.\n     * - onClose:         Function - Invoked when the user closes the tour before finishing.\n     * - onError:         Function - Invoked when the specified target element doesn't exist on the page.\n     *\n     * // ====\n     * // I18N\n     * // ====\n     * i18n:              OBJECT      - For i18n purposes. Allows you to change the text\n     *                                  of button labels and step numbers.\n     * i18n.nextBtn:      STRING      - Label for next button\n     * i18n.prevBtn:      STRING      - Label for prev button\n     * i18n.doneBtn:      STRING      - Label for done button\n     * i18n.skipBtn:      STRING      - Label for skip button\n     * i18n.closeTooltip: STRING      - Text for close button tooltip\n     * i18n.stepNums:   ARRAY - Provide a list of strings to be shown as\n     *                                  the step number, based on index of array. Unicode\n     *                                  characters are supported. (e.g., ['一',\n     *                                  '二', '三']) If there are more steps\n     *                                  than provided numbers, Arabic numerals\n     *                                  ('4', '5', '6', etc.) will be used as default.\n     * 
\n *\n * @example hopscotch.configure({ scrollDuration: 1000, scrollTopMargin: 150 });\n * @example\n * hopscotch.configure({\n * scrollTopMargin: 150,\n * onStart: function() {\n * alert(\"Have fun!\");\n * },\n * i18n: {\n * nextBtn: 'Forward',\n * prevBtn: 'Previous'\n * closeTooltip: 'Quit'\n * }\n * });\n *\n * @param {Object} options A hash of configuration options.\n * @returns {Object} Hopscotch\n */\n this.configure = function (options) {\n return _configure.call(this, options, false);\n };\n\n /**\n * Set the template that should be used for rendering Hopscotch bubbles.\n * If a string, it's assumed your template is available in the\n * hopscotch.templates namespace.\n *\n * @param {String|Function(obj)} The template to use for rendering.\n * @returns {Object} The Hopscotch object (for chaining).\n */\n this.setRenderer = function (render) {\n var typeOfRender = typeof render === 'undefined' ? 'undefined' : _typeof(render);\n\n if (typeOfRender === 'string') {\n templateToUse = render;\n customRenderer = undefined;\n } else if (typeOfRender === 'function') {\n customRenderer = render;\n }\n return this;\n };\n\n /**\n * Sets the escaping method to be used by JST templates.\n *\n * @param {Function} - The escape method to use.\n * @returns {Object} The Hopscotch object (for chaining).\n */\n this.setEscaper = function (esc) {\n if (typeof esc === 'function') {\n customEscape = esc;\n }\n return this;\n };\n\n init.call(this, initOptions);\n };\n\n winHopscotch = new Hopscotch();\n\n // Template includes, placed inside a closure to ensure we don't\n // end up declaring our shim globally.\n (function () {\n var _ = {};\n/*\n * Adapted from the Underscore.js framework. Check it out at\n * https://github.com/jashkenas/underscore\n */\n_.escape = function(str){\n if(customEscape){ return customEscape(str); }\n \n if(str == null) return '';\n return ('' + str).replace(new RegExp('[&<>\"\\']', 'g'), function(match){\n if(match == '&'){ return '&' }\n if(match == '<'){ return '<' }\n if(match == '>'){ return '>' }\n if(match == '\"'){ return '"' }\n if(match == \"'\"){ return ''' }\n });\n}\n\n this[\"templates\"] = this[\"templates\"] || {};\n\nthis[\"templates\"][\"bubble_default\"] = function(data) {\nvar __t, __p = '', __e = _.escape, __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n\n\n function optEscape(str, unsafe){\n if(unsafe){\n return _.escape(str);\n }\n return str;\n }\n;\n__p += '\\n';\n\nvar i18n = data.i18n;\nvar buttons = data.buttons;\nvar step = data.step;\nvar tour = data.tour;\n;\n__p += '\\n
\\n ';\n if(tour.isTour){ ;\n__p += '' +\n((__t = ( i18n.stepNum )) == null ? '' : __t) +\n'';\n } ;\n__p += '\\n
\\n ';\n if(step.title !== ''){ ;\n__p += '

' +\n((__t = ( optEscape(step.title, tour.unsafe) )) == null ? '' : __t) +\n'

';\n } ;\n__p += '\\n ';\n if(step.content !== ''){ ;\n__p += '
' +\n((__t = ( optEscape(step.content, tour.unsafe) )) == null ? '' : __t) +\n'
';\n } ;\n__p += '\\n
\\n
\\n ';\n if(buttons.showPrev){ ;\n__p += '';\n } ;\n__p += '\\n ';\n if(buttons.showCTA){ ;\n__p += '';\n } ;\n__p += '\\n ';\n if(buttons.showNext){ ;\n__p += '';\n } ;\n__p += '\\n
\\n ';\n if(buttons.showClose){ ;\n__p += '';\n } ;\n__p += '\\n
\\n
\\n
\\n
\\n
\\n';\nreturn __p\n};\n }).call(winHopscotch);\n\n var winHopscotch$1 = winHopscotch;\n\n return winHopscotch$1;\n\n})));\n\n\n\n// WEBPACK FOOTER //\n// node_modules/hopscotch/dist/js/hopscotch.js","window.jquery = window.jQuery;\n\nfunction loadOpenAPIFile(name, url) {\n if (window.lucybot.openapi[name]) return;\n window.jQuery.ajax({\n url: url,\n async: false,\n dataType: 'json',\n success: function (response) {\n window.lucybot.openapi[name] = response;\n }\n });\n}\nif (window.config.loadOpenAPISynchronous) {\n for (var name in window.config.openapi || {}) {\n let firstVersion = window.config.openapi[name][0];\n var filename = 'openapi/' + name + '.' + firstVersion.label.replace(/\\W+/g, '_') + '.openapi.json';\n loadOpenAPIFile(name, filename);\n }\n}\nif (window.config.openapiLocation) {\n loadOpenAPIFile('default', window.config.openapiLocation);\n}\n\n\n\n\n// WEBPACK FOOTER //\n// src/app/startup.js"],"sourceRoot":"webpack:///"}