{"version":3,"sources":["webpack:///node_modules/jquery/dist/jquery.min.js","webpack:///node_modules/bootstrap/dist/js/bootstrap.js","webpack:///src/scripts/jax.js","webpack:///src/scripts/sidebar.js","webpack:///src/scripts/expandcollapse.js","webpack:///src/scripts/flex.js","webpack:///src/scripts/jsPdf/jspdf.debug.js","webpack:///src/scripts/jspdf-autotable/dist/jspdf.plugin.autotable.js","webpack:///src/scripts/datepolyfill/date-input-polyfill.dist.js"],"names":[],"mappings":"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,EAAE,0NAA0N,sBAAsB,+DAA+D,eAAe,oBAAoB,4CAA4C,eAAe,qBAAqB,2BAA2B,sBAAsB,0BAA0B,4BAA4B,wBAAwB,4BAA4B,oEAAoE,wBAAwB,UAAU,wFAAwF,oDAAoD,iCAAiC,yBAAyB,4BAA4B,uJAAuJ,gBAAgB,4DAA4D,sEAAsE,SAAS,EAAE,uBAAuB,gCAAgC,0DAA0D,uBAAuB;;CCDz/rF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD,gBAAgB;AAChE,gCAAgC;AAChC;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;;AAEA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gCAAgC;AAChC;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B;AAC3B,2BAA2B;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,sFAAsF,eAAe;AACrG;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iDAAiD,qDAAqD;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,6BAA6B;AAC7B;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA,+BAA+B;;AAE/B;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;;AAE3B;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B;AAC3B;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA,sEAAsE,sBAAsB;AAC5F;AACA;AACA;;AAEA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,sCAAsC,gCAAgC;;AAEtE;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA,yCAAyC,gCAAgC;;AAEzE;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA,+BAA+B;;AAE/B;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,iEAAiE,kCAAkC;;AAEnG;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA,GAAG;;AAEH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;;AAEA;;AAEA,iCAAiC,KAAK;AACtC;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC,iBAAiB,kCAAkC;AACrF;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,cAAc,oCAAoC;AAClD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,uEAAuE;AACvE,0BAA0B,WAAW,wEAAwE;AAC7G;AACA;AACA;AACA;AACA,8BAA8B,kBAAkB;AAChD,qBAAqB;AACrB,8BAA8B,uDAAuD;;AAErF,sBAAsB;AACtB;;AAEA;AACA,oCAAoC,gFAAgF;AACpH,oCAAoC,gFAAgF;AACpH,oCAAoC,iFAAiF;AACrH,oCAAoC;;AAEpC;;AAEA;AACA,iBAAiB;AACjB;;AAEA;AACA;;AAEA;AACA;AACA;AACA,mDAAmD;AACnD;AACA,OAAO,kFAAkF;AACzF;AACA;AACA,KAAK;AACL;AACA;AACA,qDAAqD;AACrD;AACA,OAAO,uDAAuD;AAC9D;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA,gCAAgC;AAChC;AACA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;;AAEA,iCAAiC;;AAEjC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP,6BAA6B,qBAAqB;AAClD;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,4BAA4B,KAAK;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA,8BAA8B;;AAE9B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;;AAEH,CAAC;;CCv2ED;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,K;AACA;;AAEA;AACA,uB;;AAEA;AACA,yB;AACA,4B;;;;;AAKA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,E;;AAED;AACA;AACA;AACA,yBAAyB,mBAAmB;AAC5C,KAAK;AACL,C;CChFA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,kCAAkC;AAClC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,qCAAqC;;AAErC;AACA;AACA;AACA,SAAS;AACT;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL,CAAC,S;CC/HD;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;;;AAIL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;;AAGL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;;AAGL;AACA;AACA;AACA;AACA,M;;;AAGA;AACA;AACA;AACA;AACA,M;;;AAGA,CAAC;;CCpHD,aAAa,2EAA2E,2DAA2D,KAAK,MAAM,4HAA4H,YAAY,yBAAyB,gBAAgB,UAAU,UAAU,0CAA0C,wBAAwB,oBAAoB,8CAA8C,kCAAkC,YAAY,YAAY,mCAAmC,iBAAiB,gBAAgB,sBAAsB,oBAAoB,kDAAkD,WAAW,YAAY,SAAS,EAAE,mBAAmB,sBAAsB,eAAe,iEAAiE,eAAe,2BAA2B,yFAAyF,eAAe,2BAA2B,yFAAyF,eAAe,2BAA2B,qHAAqH,eAAe,6BAA6B,wHAAwH,eAAe,6BAA6B,gFAAgF,eAAe,uCAAuC,GAAG,qBAAqB,sBAAsB,eAAe,kBAAkB,UAAU,yBAAyB,EAAE,4BAA4B,8dAA8d,GAAG,qBAAqB,0BAA0B,gDAAgD,MAAM,uCAAuC,iBAAiB,omBAAomB,EAAE,oBAAoB,0hBAA0hB,cAAc,0hBAA0hB,0XAA0X,80BAA80B,GAAG,qBAAqB,qBAAqB,sBAAsB,kBAAkB,iCAAiC,sCAAsC,IAAI,wCAAwC,4RAA4R,qBAAqB,EAAE,eAAe,qBAAqB,qBAAqB,sBAAsB,kBAAkB,iCAAiC,wCAAwC,IAAI,wCAAwC,kLAAkL,qBAAqB,EAAE,eAAe,qBAAqB,qBAAqB,sBAAsB,MAAM,YAAY,2BAA2B,EAAE,eAAe,kBAAkB,gVAAgV,oEAAoE,qBAAqB,8CAA8C,0BAA0B,mDAAmD,iBAAiB,uxBAAuxB,EAAE,eAAe,qBAAqB,cAAc,eAAe,kBAAkB,gDAAgD,oHAAoH,UAAU,eAAe,+RAA+R,sBAAsB,YAAY,EAAE,0LAA0L,qBAAqB,0BAA0B,6CAA6C,yCAAyC,kBAAkB,kDAAkD,8CAA8C,kBAAkB,kDAAkD,6EAA6E,kBAAkB,oDAAoD,gFAAgF,kBAAkB,oDAAoD,kBAAkB,kBAAkB,mDAAmD,GAAG,qBAAqB,sBAAsB,eAAe,kBAAkB,EAAE,QAAQ,2EAA2E,qCAAqC,iVAAiV,GAAG,sBAAsB,sBAAsB,mBAAmB,kBAAkB,0EAA0E,QAAQ,SAAS,kBAAkB,uVAAuV,gBAAgB,GAAG,sBAAsB,+BAA+B,sBAAsB,8BAA8B,oDAAoD,uDAAuD,GAAG,sBAAsB,kBAAkB,wBAAwB,MAAM,yBAAyB,SAAS,YAAY,GAAG,sBAAsB,cAAc,QAAQ,oEAAoE,wFAAwF,EAAE,wDAAwD,sBAAsB,kBAAkB,gCAAgC,OAAO,iBAAiB,MAAM,+BAA+B,2BAA2B,SAAS,kBAAkB,uIAAuI,gBAAgB,uCAAuC,6BAA6B,wBAAwB,wBAAwB,mBAAmB,mBAAmB,oBAAoB,4BAA4B,kEAAkE,oBAAoB,qCAAqC,YAAY,wEAAwE,+BAA+B,0CAA0C,GAAG,sBAAsB,cAAc,OAAO,slBAAslB,wBAAwB,MAAM,gGAAgG,kCAAkC,uDAAuD,OAAO,yBAAyB,cAAc,6BAA6B,gCAAgC,6EAA6E,OAAO,mBAAmB,SAAS,gBAAgB,gBAAgB,aAAa,eAAe,KAAK,uDAAuD,gBAAgB,wBAAwB,gCAAgC,gBAAgB,UAAU,YAAY,EAAE,uDAAuD,gCAAgC,EAAE,WAAW,gBAAgB,gBAAgB,aAAa,4BAA4B,YAAY,cAAc,cAAc,SAAS,gEAAgE,EAAE,yBAAyB,sBAAsB,cAAc,SAAS,gBAAgB,gBAAgB,2BAA2B,oBAAoB,EAAE,iDAAiD,SAAS,QAAQ,yEAAyE,2BAA2B,MAAM,aAAa,MAAM,cAAc,8EAA8E,OAAO,sBAAsB,2CAA2C,cAAc,uIAAuI,SAAS,YAAY,0BAA0B,qCAAqC,4BAA4B,EAAE,aAAa,sBAAsB,cAAc,KAAK,gFAAgF,6XAA6X,eAAe,kBAAkB,EAAE,gFAAgF,6qBAA6qB,cAAc,8CAA8C,YAAY,sBAAsB,EAAE,eAAe,sBAAsB,cAAc,eAAe,SAAS,MAAM,YAAY,oBAAoB,EAAE,cAAc,EAAE,GAAG,WAAW;;CCAp1e;AACA;AACA;AACA;AACA,CAAC,qBAAqB;;AAEtB;AACA;AACA,CAAC;AACD;AACA;;;;;;AAMA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;;;AAgBD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;AAkBA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gBAAgB;AAChB;;;AAGA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,KAAK;AACL;AACA,+BAA+B;AAC/B,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,iBAAiB,WAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,qBAAqB,8BAA8B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B,iCAAiC,OAAO;AACxC,2BAA2B,OAAO;AAClC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,+CAA+C,OAAO;AACtD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2CAA2C;AACnE,sBAAsB;AACtB,uBAAuB,MAAM,8CAA8C;AAC3E;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,sDAAsD;AACtD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,OAAO;AAC7C;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC,OAAO;AACzC;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B,yBAAyB,OAAO;AAChC,iBAAiB,OAAO;AACxB;AACA;AACA;;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;;AAEA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,KAAK;AACL;AACA;AACA,mBAAmB;AACnB;AACA,iBAAiB;AACjB,OAAO;AACP,iBAAiB;AACjB,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,kFAAkF;;AAElF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B;AACA;AACA,0BAA0B,OAAO;AACjC,2BAA2B,OAAO;AAClC,mBAAmB;AACnB;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gBAAgB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,gCAAgC,gBAAgB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,eAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB;AACjB;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;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,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,0CAA0C,SAAS;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8BAA8B;AAC9B;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,SAAS;AACjD;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf,eAAe,gBAAgB;AAC/B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,aAAa;;AAEb,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,oCAAoC;AACpC,oCAAoC;AACpC;AACA,SAAS;AACT;AACA,oCAAoC;AACpC,oCAAoC;AACpC,oCAAoC;AACpC,oCAAoC;AACpC,oCAAoC;AACpC,oCAAoC;AACpC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B,eAAe,cAAc;AAC7B,eAAe,cAAc;AAC7B,eAAe,cAAc;AAC7B;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B,eAAe,cAAc;AAC7B,eAAe,cAAc;AAC7B,eAAe,cAAc;AAC7B;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO,8CAA8C,OAAO;AAC3E,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,kDAAkD,EAAE;AACpD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,oBAAoB;AAChC;AACA,eAAe,cAAc;AAC7B;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,YAAY,oBAAoB;AAChC;AACA,eAAe,cAAc;AAC7B;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,0CAA0C,UAAU;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD,+DAA+D;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA,gFAAgF;;AAEhF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;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,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,8BAA8B;;;AAG9B;AACA,iBAAiB;AACjB;AACA,yCAAyC;AACzC,iBAAiB;AACjB;AACA;AACA,aAAa;AACb,iBAAiB;AACjB;AACA;AACA,aAAa;AACb,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,8BAA8B;AAC9B;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA,cAAc;;AAEd;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;;;AAGA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF;AAChF;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kEAAkE;AAClE;;AAEA;AACA;;AAEA;AACA,8CAA8C;;AAE9C;AACA,qBAAqB;;AAErB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA,+BAA+B;AAC/B;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,aAAa;AACb;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;;AAEA,yCAAyC,qBAAqB;AAC9D;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,oBAAoB,MAAM;AAC1B,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,oBAAoB,OAAO;AAC3B,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,IAAI;AACJ;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS;AAClB;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;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;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;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;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sCAAsC;AACtC,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA,YAAY,gBAAgB,iDAAiD;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,iBAAiB,gBAAgB;AACjC;AACA;;AAEA;AACA,gCAAgC;AAChC,8BAA8B;AAC9B,2BAA2B;AAC3B,kBAAkB;;AAElB;AACA;AACA;;AAEA;AACA;AACA;;AAEA,0BAA0B;;AAE1B;AACA,wBAAwB;;AAExB;AACA,GAAG;AACH;;AAEA,6BAA6B;AAC7B,2BAA2B;;AAE3B;AACA,yBAAyB;;AAEzB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB;;AAEpB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA,sCAAsC;AACtC,MAAM;;AAEN;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA,iBAAiB,gCAAgC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,sBAAsB;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,qDAAqD,iBAAiB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,wEAAwE;AAC/F;AACA;AACA,uBAAuB;AACvB,KAAK;AACL;AACA;AACA,KAAK;AACL,sBAAsB;;AAEtB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA,sBAAsB;;AAEtB;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB;AACvB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA,sCAAsC,QAAQ;AAC9C;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,gBAAgB,OAAO;AACvB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA,uBAAuB,wEAAwE;;AAE/F;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA,iDAAiD;AACjD;AACA;AACA;;AAEA,gDAAgD,QAAQ;AACxD;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,gDAAgD,SAAS;AACzD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,gDAAgD,QAAQ;AACxD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qCAAqC,QAAQ;AAC7C;AACA;AACA;;AAEA,iDAAiD,SAAS;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,UAAU;AACzB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA,uBAAuB,wBAAwB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,QAAQ;AAC5D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB;AACvB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA,oEAAoE,yBAAyB;AAC7F;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA,oEAAoE,yBAAyB;AAC7F;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oEAAoE,yBAAyB;AAC7F;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb,SAAS;;AAET;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb,iEAAiE,UAAU;AAC3E;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;;AAEA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,4BAA4B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;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,SAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oEAAoE,yBAAyB;AAC7F,qEAAqE,6BAA6B;;AAElG;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,oBAAoB;AACpB,SAAS;;AAET;AACA;AACA;AACA,oBAAoB;AACpB,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA,oCAAoC,iCAAiC;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,SAAS,aAAa,uBAAuB;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,oCAAoC,kBAAkB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mFAAmF;AACnF;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D,6DAA6D;AAC7D,6CAA6C;AAC7C,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;;AAEA;;AAEA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA,oCAAoC,iCAAiC;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,sBAAsB;AAC9D;AACA;AACA;AACA;AACA;AACA,oCAAoC,cAAc;AAClD;AACA;AACA;;AAEA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,oCAAoC,kBAAkB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,uEAAuE;AACvE;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,+BAA+B,sBAAsB;AACrD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA,SAAS;AACT;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,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA,gCAAgC;AAChC,8BAA8B;AAC9B;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;;AAEA;AACA;AACA;AACA;;AAEA,oBAAoB;AACpB,kBAAkB;;AAElB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B;AAC9B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,cAAc,sBAAsB;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA,gCAAgC;AAChC,8BAA8B;AAC9B,6CAA6C;AAC7C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;;AAEtD;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,EAAE,iDAAiD;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,SAAS;AACT;AACA;AACA,QAAQ;;AAER;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,iCAAiC,mDAAmD,0BAA0B,yBAAyB,4BAA4B,2BAA2B,eAAe,iBAAiB,sBAAsB;AACxS;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD,GAAG;AACH,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,gCAAgC;AAClD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8CAA8C,EAAE;AAChD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,2BAA2B;AAC3B,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,sBAAsB;AACvC,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,qBAAqB,OAAO;AAC5B,cAAc,OAAO;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,kBAAkB,0BAA0B;AAC5C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA,kBAAkB,0BAA0B;AAC5C;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,0BAA0B;AAC5C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kBAAkB,0BAA0B;AAC5C;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,gCAAgC;AAChC;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,WAAW;AACX;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,QAAQ,WAAW;AACnB;AACA;;AAEA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;;AAEA,UAAU,SAAS;AACnB;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;;AAEA;;AAEA,QAAQ,SAAS;AACjB;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;;AAEA;;AAEA,QAAQ,SAAS;AACjB;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,QAAQ,SAAS;AACjB;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,QAAQ,SAAS;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,WAAW,SAAS;AACpB;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA,WAAW,SAAS;AACpB;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;;AAEA,YAAY,SAAS;AACrB;AACA,OAAO;AACP;AACA;AACA;;AAEA;;AAEA,2JAA2J;AAC3J;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,cAAc;AACd,gBAAgB;AAChB,iBAAiB;AACjB,WAAW;AACX;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8BAA8B,OAAO;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,KAAK;AACL;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA,+BAA+B,OAAO;AACtC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,iBAAiB,OAAO;AACxB,WAAW,MAAM;AACjB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,OAAO;AACxB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,WAAW,sBAAsB;;AAEjC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS,GAAG;;AAEZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;;AAEA;AACA;AACA;;AAEA,iBAAiB,oBAAoB;AACrC;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,QAAQ;;AAER;AACA,SAAS,EAAE;;AAEX;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI,kBAAkB;AACtB;AACA;AACA;AACA;AACA,IAAI,kBAAkB;AACtB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC,yJAAyJ;AAC3L,EAAE;AACF,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,gEAAgE;AAChE,6CAA6C;AAC7C;AACA;AACA;;AAEA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;;AAEA;AACA;;AAEA,mCAAmC,SAAS,WAAW,UAAU,UAAU;AAC3E,oCAAoC,SAAS,2zBAA2zB,UAAU,GAAG,oBAAoB,KAAK,MAAM,KAAK,iCAAiC,KAAK,OAAO,GAAG,MAAM,GAAG,uBAAuB,GAAG,WAAW,GAAG,uBAAuB,WAAW,iBAAiB,GAAG,sBAAsB,GAAG,cAAc,GAAG,cAAc,GAAG,QAAQ,GAAG,oBAAoB,GAAG,oBAAoB,GAAG,oBAAoB,GAAG,oBAAoB,GAAG,oBAAoB,GAAG,oBA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AEA,sCAAsC,aAAa,mBAAmB;;AAEtE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,+BAA+B,OAAO;AACtC;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,mBAAmB,uCAAuC;AAC1D,qBAAqB,mCAAmC;AACxD;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU,OAAO;AACjB,UAAU,OAAO;AACjB;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,+EAA+E;AAC/E;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;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;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,KAAK;AACL;AACA,KAAK;AACL,gCAAgC;AAChC,KAAK;AACL;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,aAAa;AACvB;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA,IAAI;AACJ;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,0CAA0C,SAAS;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;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;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA,KAAK,OAAO;AACZ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D,uCAAuC,gBAAgB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mGAAmG;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR,OAAO;AACP;AACA,wBAAwB,cAAc;AACtC;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,OAAO;AACP;AACA;AACA,MAAM;AACN,KAAK;AACL,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;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;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA,gCAAgC;;AAEhC;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;AACA,+CAA+C,YAAY;AAC3D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gDAAgD,YAAY;AAC5D;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,cAAc;AACd,cAAc;AACd,eAAe;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,YAAY;AACZ,YAAY;AACZ,aAAa;AACb,SAAS;AACT,oBAAoB;;AAEpB,iBAAiB,kBAAkB;AACnC;;AAEA;AACA;AACA,wCAAwC;;AAExC,2BAA2B,eAAe;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc;;AAEd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,IAAI;;AAEJ,0BAA0B,YAAY;AACtC;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,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,gBAAgB;AAChB,YAAY;AACZ,SAAS;AACT;;AAEA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,cAAc,eAAe;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,qBAAqB;AACrB,YAAY;;AAEZ;AACA;AACA;AACA;AACA;;AAEA,cAAc,WAAW;AACzB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,uCAAuC,QAAQ;AAC/C;;AAEA;AACA;;AAEA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,kBAAkB;;AAElB,6BAA6B;AAC7B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;;AAEJ;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,WAAW;AACX,aAAa;AACb,iBAAiB;AACjB,uBAAuB;AACvB,iBAAiB;AACjB,aAAa;AACb,aAAa;AACb,iBAAiB;;AAEjB,aAAa;AACb,aAAa;AACb,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,WAAW;;AAEX,YAAY;AACZ,gBAAgB;AAChB,gBAAgB;AAChB,gBAAgB;;AAEhB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,mBAAmB;AACnB,iBAAiB;AACjB,sBAAsB;AACtB,eAAe;AACf,kBAAkB;AAClB,gBAAgB;;AAEhB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,YAAY;AACZ,eAAe;;AAEf;AACA;;AAEA;AACA;;AAEA,gBAAgB;AAChB,gBAAgB;AAChB,cAAc;;AAEd,0BAA0B;AAC1B,0BAA0B;AAC1B,2BAA2B;;AAE3B,mBAAmB;AACnB,mBAAmB;AACnB;AACA;;AAEA;AACA;;AAEA,YAAY;;AAEZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe;;AAEf;AACA;AACA;;AAEA,YAAY;;AAEZ,kBAAkB;AAClB,qBAAqB;AACrB,cAAc;AACd,mBAAmB;;AAEnB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,cAAc,mBAAmB;AACjC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,aAAa;AAC3B;AACA,cAAc,aAAa;AAC3B;AACA,cAAc,cAAc;AAC5B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB;;AAEpB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oBAAoB;AACpB,cAAc;AACd,iCAAiC;AACjC,iBAAiB;AACjB,qBAAqB;AACrB,qBAAqB;;AAErB;AACA;AACA;AACA;AACA,yCAAyC;;AAEzC,cAAc,eAAe;AAC7B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mCAAmC,kBAAkB;AACrD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oBAAoB;AACpB,cAAc;AACd,iCAAiC;AACjC,iBAAiB;AACjB,qBAAqB;AACrB,qBAAqB;;AAErB;AACA;AACA;AACA;;AAEA,cAAc,eAAe;AAC7B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,MAAM;AACN,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;;AAEZ,8BAA8B;AAC9B;AACA,6BAA6B;AAC7B,iBAAiB,gBAAgB;AACjC;AACA;AACA,oCAAoC;AACpC,oCAAoC;AACpC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ,UAAU;AACV,cAAc;AACd,YAAY;AACZ,aAAa;;AAEb;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B;AAC3B,MAAM;AACN;AACA;;AAEA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,aAAa;AACb;;AAEA,6BAA6B;AAC7B;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,MAAM;;AAEN;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,oBAAoB;;AAEpB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD,qCAAqC;AACrC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,uBAAuB;;AAEvB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ,4CAA4C;AAC5C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA,YAAY;;AAEZ;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,wBAAwB;AACxB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,uCAAuC;AACvC,uBAAuB;AACvB,aAAa;AACb,WAAW;AACX,8BAA8B;AAC9B;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI;;AAEJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,qBAAqB;AACrB,cAAc;;AAEd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,qBAAqB;AACrB,cAAc;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,mBAAmB;;AAEnB;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,cAAc,yBAAyB;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM,OAAO;AACb;AACA;AACA;AACA;AACA;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,oBAAoB;AACpB,oBAAoB;AACpB,mBAAmB;AACnB,qBAAqB;AACrB,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,CAAC;;;AAGD;AACA;AACA;;AAEA;AACA;;AAEA,aAAa,2EAA2E,2DAA2D,KAAK,MAAM,+HAA+H,YAAY,0BAA0B,0BAA0B,gBAAgB,UAAU,UAAU,0CAA0C,wBAAwB,oBAAoB,8CAA8C,kCAAkC,YAAY,YAAY,mCAAmC,iBAAiB,gBAAgB,uBAAuB,oBAAoB,0CAA0C,YAAY,WAAW,YAAY,SAAS,GAAG;AACvwB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,cAAc,MAAM;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,MAAM;AAClB,YAAY,SAAS;AACrB;AACA,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,SAAS;AACrB;AACA,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA,KAAK;AACL,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,MAAM;AAClB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,cAAc,OAAO;AACrB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,mCAAmC;AAClE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,aAAa,WAAW;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB;;AAExB,yCAAyC,qBAAqB;;AAE9D;AACA;AACA;AACA;AACA;AACA,kCAAkC,oBAAoB;;AAEtD;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,0BAA0B,iBAAiB;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,cAAc,iBAAiB;AAC/B;;AAEA;AACA;AACA;;AAEA;AACA;AACA,8BAA8B,oBAAoB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF,mBAAmB;AACnB;AACA,GAAG,OAAO;AACV;AACA;AACA;AACA;AACA,EAAE,OAAO;AACT;AACA;;AAEA,CAAC;;AAED,CAAC,qIAAqI;AACtI,CAAC,GAAG;AACJ;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA,CAAC,EAAE,WAAW;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,yBAAyB,EAAE;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB,EAAE;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,yBAAyB,IAAI,YAAY,IAAI,YAAY,IAAI;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,IAAI,YAAY,IAAI,YAAY,IAAI;;AAE/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,mFAAmF,sGAAsG,8BAA8B,sBAAsB,aAAa,IAAI;AAC9P;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,CAAC,GAAG;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4CAA4C,0FAA0F;AACtI,SAAS;AACT;AACA,SAAS;AACT,4CAA4C,8KAA8K;AAC1N;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC,EAAE,kJAAkJ;AACrJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA,CAAC,EAAE,wBAAwB;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,aAAa;AAChB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,WAAW;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,8EAA8E,qPAAqP;AACnU,KAAK;AACL;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,qCAAqC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC,IAAI;AACxC,wDAAwD,IAAI,OAAO,IAAI,OAAO,IAAI,6BAA6B,KAAK,WAAW,IAAI,WAAW,IAAI;;AAElJ;;AAEA,CAAC,GAAG;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA,CAAC,GAAG;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS,oCAAoC;AAC7C,6DAA6D,GAAG,MAAM,GAAG;AACzE,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA,CAAC,EAAE,kOAAkO;AACrO;AACA;;AAEA;AACA;AACA;;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,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;;AAEA;;AAEA,oCAAoC,IAAI;AACxC,sFAAsF,IAAI;;AAE1F;;AAEA,CAAC,EAAE,oCAAoC;AACvC;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;;AAEA,CAAC,GAAG;AACJ;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,sCAAsC;AACtC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,wEAAwE,2DAA2D,IAAI;AACvI,KAAK;AACL;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA,YAAY;AACZ;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA,YAAY;AACZ;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,iCAAiC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL,uDAAuD;AACvD;AACA;AACA;;AAEA;AACA,iFAAiF,GAAG;AACpF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,yBAAyB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA,oHAAoH,wBAAwB,0BAA0B,EAAE;AACxK,0FAA0F,wBAAwB,0BAA0B,EAAE;AAC9I;;AAEA;AACA,oCAAoC,oCAAoC,iCAAiC,+BAA+B,4BAA4B;AACpK,6CAA6C,kCAAkC,gCAAgC,8BAA8B;AAC7I;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gCAAgC,QAAQ;AACxC;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA,mHAAmH;AACnH,8FAA8F;AAC9F,mFAAmF;AACnF,sGAAsG;AACtG;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,6EAA6E,sBAAsB;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,gBAAgB;AAChB,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,8BAA8B,YAAY,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,YAAY;AACjG,+BAA+B,WAAW,GAAG,eAAe,GAAG,kBAAkB,GAAG,aAAa;AACjG,kCAAkC,YAAY,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,YAAY;AACrG,iCAAiC,aAAa,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,UAAU;AACnG;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,kKAAkK;AACrK;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,0CAA0C;AAC1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA,CAAC,EAAE,+CAA+C;AAClD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT,KAAK;AACL;;AAEA;;AAEA,CAAC,EAAE,aAAa;AAChB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,CAAC,EAAE,qBAAqB;AACxB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,mCAAmC;AACxG;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,WAAW;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,6DAA6D;AAChE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,qBAAqB;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA,CAAC,GAAG;AACJ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,SAAS;AACT,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA,mCAAmC;AACnC;;AAEA;AACA,+CAA+C;AAC/C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,wBAAwB;AAC3B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,SAAS;AACT,KAAK;AACL;;AAEA;;AAEA;;AAEA,CAAC,EAAE,oBAAoB;AACvB;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,qBAAqB;AACxB;AACA,2BAA2B;AAC3B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,eAAe,SAAS;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gFAAgF;;AAEhF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA,CAAC,GAAG;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,CAAC,EAAE,wBAAwB;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;;AAEA,CAAC,GAAG,EAAE,GAAG;AACT,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,QAAQ;AAClC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kDAAkD;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,+CAA+C;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB,sCAAsC;AAC5D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,WAAW;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,WAAW;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;;AAEH;;AAEA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,aAAa;AAClC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA,yBAAyB,SAAS;AAClC;AACA;AACA;;AAEA;AACA,6BAA6B,UAAU;AACvC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,gCAAgC,SAAS;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB;AACnB;AACA;AACA,KAAK,qBAAqB;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;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,qBAAqB,SAAS;AAC9B;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,OAAO;AACP;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;;AAEJ;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA,IAAI;;AAEJ;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB,eAAe;AACvC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,qBAAqB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;AAED;;AAEA,CAAC;;CCv9hBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,oCAAoC;AACpC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA,mDAAmD,cAAc;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA,mCAAmC,0BAA0B,EAAE;AAC/D,yCAAyC,eAAe;AACxD;AACA;AACA;;AAEA;AACA,8DAA8D,+DAA+D;;AAE7H;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qDAAqD;AACzE,qBAAqB,+DAA+D;AACpF,oBAAoB;AACpB,2BAA2B;AAC3B,SAAS;AACT;AACA,oBAAoB,qEAAqE;AACzF,qBAAqB,6EAA6E;AAClG,oBAAoB;AACpB;AACA,SAAS;AACT;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,wBAAwB;AACxB,sBAAsB;AACtB,8BAA8B;AAC9B,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,EAAE;AACpD,4CAA4C,EAAE;AAC9C,6CAA6C,EAAE;AAC/C,uCAAuC,EAAE;AACzC,+CAA+C,EAAE;AACjD,yCAAyC,EAAE;AAC3C,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,qBAAqB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,sBAAsB;AAC/B;AACA;AACA;AACA,yDAAyD,8BAA8B,EAAE;AACzF,8DAA8D;AAC9D;AACA;AACA,wDAAwD,gBAAgB;AACxE;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA,uDAAuD,0BAA0B;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,gBAAgB;AACrF;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,sBAAsB;AACxD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,gBAAgB;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,mBAAmB;AACnB;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;;;AAGA,OAAO;AACP;AACA;;AAEA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,EAAE;AACtE;AACA,EAAE;AACF,eAAe;AACf;AACA;;AAEA;AACA;AACA,4BAA4B,cAAc;AAC1C;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,cAAc;AAC5B,gEAAgE,cAAc;AAC9E,sBAAsB,iCAAiC;AACvD,2BAA2B,cAAc;AACzC;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0BAA0B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,0BAA0B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,4BAA4B;AAC/E;AACA,iDAAiD,sCAAsC;AACvF;AACA;AACA;AACA;AACA,mBAAmB,0BAA0B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,sDAAsD;AACpG,yDAAyD,6BAA6B;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,mCAAmC,gCAAgC;AACnE;AACA,4BAA4B,cAAc;AAC1C;AACA;AACA,EAAE,YAAY;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;;AAEA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA,2CAA2C,gBAAgB;;AAE3D,kDAAkD,iFAAiF;;;AAGnI,OAAO;AACP;AACA;;AAEA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH,kCAAkC;AAClC;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gBAAgB,sBAAsB;AACtC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,oBAAoB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;;AAGA;;AAEA;AACA;AACA;;;AAGA,OAAO;AACP;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,sBAAsB;AACtB,4BAA4B;AAC5B,0BAA0B;AAC1B,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,iCAAiC;AAChH;AACA;AACA;AACA,6FAA6F,iCAAiC;AAC9H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,uFAAuF,gBAAgB;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,0BAA0B;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA,6IAA6I;AAC7I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,gBAAgB;AAC5E;AACA,wBAAwB,8DAA8D;AACtF;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,gBAAgB;AAC1E;AACA,sDAAsD,uCAAuC;AAC7F;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,uBAAuB,UAAU;AACjC,2CAA2C,eAAe;AAC1D;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,6DAA6D,UAAU;AACvE;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,gBAAgB;AAChB,iBAAiB,wBAAwB;AACzC;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;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;;AAEA;;AAEA;;AAEA;AACA,0BAA0B;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,6DAA6D,UAAU;AACvE;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,sCAAsC,UAAU;AAChD,uBAAuB,aAAa;AACpC;AACA,yBAAyB,cAAc;AACvC,yBAAyB,UAAU;AACnC,oBAAoB,cAAc;AAClC;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,iBAAiB,UAAU,EAAE;AAC7B,+BAA+B,yBAAyB;AACxD;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,0BAA0B,WAAW;AACrC;AACA,mDAAmD,UAAU;AAC7D;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA,gEAAgE;AAChE,EAAE;;AAEF;AACA;AACA,kCAAkC,aAAa;AAC/C;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,gCAAgC;;AAEhC;;;AAGA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;;AAGA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,oBAAoB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;;AAGA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wBAAwB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;;AAEA,8EAA8E,qCAAqC,EAAE;;AAErH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;;;AAGA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mDAAmD,cAAc;AACjE;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iCAAiC,cAAc;AAC/C;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA,4CAA4C,cAAc;AAC1D;AACA;AACA;AACA,kCAAkC,aAAa;AAC/C,gDAAgD,cAAc;AAC9D;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,iBAAiB;AAC1D,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,cAAc;AACnD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA;;AAEA;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iBAAiB,sBAAsB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;AACP;AACA;;AAEA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;;AAGA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;AAGA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;;AAEA;AACA;AACA,iBAAiB,oBAAoB;AACrC;AACA;AACA;AACA,EAAE;AACF;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kBAAkB;AAC7B,WAAW,sBAAsB;AACjC,WAAW,OAAO,gBAAgB;AAClC;AACA;AACA,kCAAkC,mBAAmB;AACrD;AACA;AACA,yDAAyD,oCAAoC,oBAAoB;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,mBAAmB,yBAAyB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C;AACA;AACA,0DAA0D,qBAAqB,EAAE;AACjF,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,0BAA0B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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","file":"scripts.js","sourcesContent":["/*! jQuery v3.4.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=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,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},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.4.1\",k=function(e,t){return new k.fn.init(e,t)},p=/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;function d(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($),V=new RegExp(\"^\"+I+\"$\"),G={ID:new RegExp(\"^#(\"+I+\")\"),CLASS:new RegExp(\"^\\\\.(\"+I+\")\"),TAG:new RegExp(\"^(\"+I+\"|[*])\"),ATTR:new RegExp(\"^\"+W),PSEUDO:new RegExp(\"^\"+$),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-f]{1,6}\"+M+\"?|(\"+M+\")|.)\",\"ig\"),ne=function(e,t,n){var r=\"0x\"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|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(m.childNodes),m.childNodes),t[m.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&&((e?e.ownerDocument||e:m)!==C&&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&&!A[t+\" \"]&&(!v||!v.test(t))&&(1!==p||\"object\"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute(\"id\"))?s=s.replace(re,ie):e.setAttribute(\"id\",s=k),o=(l=h(t)).length;while(o--)l[o]=\"#\"+s+\" \"+xe(l[o]);c=l.join(\",\"),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute(\"id\")}}}return g(t.replace(B,\"$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[k]=!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:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener(\"unload\",oe,!1):n.attachEvent&&n.attachEvent(\"onunload\",oe)),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=k,!C.getElementsByName||!C.getElementsByName(k).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){a.appendChild(e).innerHTML=\"\",e.querySelectorAll(\"[msallowcapture^='']\").length&&v.push(\"[*^$]=\"+M+\"*(?:''|\\\"\\\")\"),e.querySelectorAll(\"[selected]\").length||v.push(\"\\\\[\"+M+\"*(?:value|\"+R+\")\"),e.querySelectorAll(\"[id~=\"+k+\"-]\").length||v.push(\"~=\"),e.querySelectorAll(\":checked\").length||v.push(\":checked\"),e.querySelectorAll(\"a#\"+k+\"+*\").length||v.push(\".#.+[+~]\")}),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(\"!=\",$)}),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===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,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]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[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){A(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=p[e+\" \"];return t||(t=new RegExp(\"(^|\"+M+\")\"+e+\"(\"+M+\"|$)\"))&&p(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);k.find=h,k.expr=h.selectors,k.expr[\":\"]=k.expr.pseudos,k.uniqueSort=k.unique=h.uniqueSort,k.text=h.getText,k.isXMLDoc=h.isXML,k.contains=h.contains,k.escapeSelector=h.escape;var T=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&k(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},N=k.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):\"string\"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,\"string\"==typeof e){if(!(r=\"<\"===e[0]&&\">\"===e[e.length-1]&&3<=e.length?[null,e,null]:L.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 k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.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(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(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,ge={option:[1,\"\"],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)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx\",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==(\"focus\"===t)}function Ae(e,t,n,r,i,o){var a,s;if(\"object\"==typeof t){for(s in\"string\"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&(\"string\"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return\"undefined\"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||\"\").match(R)||[\"\"]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||\"\").split(\".\").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(\".\")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||\"\").match(R)||[\"\"]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||\"\").split(\".\").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp(\"(^|\\\\.)\"+h.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&(\"**\"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,\"handle events\")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,\"events\")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\\x20\\t\\r\\n\\f]*)[^>]*)\\/>/gi,qe=/\\s*$/g;function Oe(e,t){return A(e,\"table\")&&A(11!==t.nodeType?t:t.firstChild,\"tr\")&&k(e).children(\"tbody\")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute(\"type\"))+\"/\"+e.type,e}function Re(e){return\"true/\"===(e.type||\"\").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute(\"type\"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n\")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r\").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 Vt,Gt=[],Yt=/(=)\\?(?=&|$)|\\?\\?/;k.ajaxSetup({jsonp:\"callback\",jsonpCallback:function(){var e=Gt.pop()||k.expando+\"_\"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter(\"json jsonp\",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?\"url\":\"string\"==typeof e.data&&0===(e.contentType||\"\").indexOf(\"application/x-www-form-urlencoded\")&&Yt.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(Yt,\"$1\"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?\"&\":\"?\")+e.jsonp+\"=\"+r),e.converters[\"script json\"]=function(){return o||k.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?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),\"script\"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument(\"\").body).innerHTML=\"
\",2===Vt.childNodes.length),k.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=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(\" \");return-1\").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each([\"ajaxStart\",\"ajaxStop\",\"ajaxComplete\",\"ajaxError\",\"ajaxSuccess\",\"ajaxSend\"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,\"position\"),c=k(e),f={};\"static\"===l&&(e.style.position=\"relative\"),s=c.offset(),o=k.css(e,\"top\"),u=k.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,k.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):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.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\"===k.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\"===k.css(e,\"position\"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,\"borderTopWidth\",!0),i.left+=k.css(e,\"borderLeftWidth\",!0))}return{top:t.top-i.top-k.css(r,\"marginTop\",!0),left:t.left-i.left-k.css(r,\"marginLeft\",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&\"static\"===k.css(e,\"position\"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:\"pageXOffset\",scrollTop:\"pageYOffset\"},function(t,i){var o=\"pageYOffset\"===i;k.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)}}),k.each([\"top\",\"left\"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+\"px\":t})}),k.each({Height:\"height\",Width:\"width\"},function(a,s){k.each({padding:\"inner\"+a,content:s,\"\":\"outer\"+a},function(r,o){k.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?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.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){k.fn[n]=function(e,t){return 0 3)) {\n throw new Error('Bootstrap\\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4')\n }\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: transition.js v3.4.0\n * https://getbootstrap.com/docs/3.4/javascript/#transitions\n * ========================================================================\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // CSS TRANSITION SUPPORT (Shoutout: https://modernizr.com/)\n // ============================================================\n\n function transitionEnd() {\n var el = document.createElement('bootstrap')\n\n var transEndEventNames = {\n WebkitTransition : 'webkitTransitionEnd',\n MozTransition : 'transitionend',\n OTransition : 'oTransitionEnd otransitionend',\n transition : 'transitionend'\n }\n\n for (var name in transEndEventNames) {\n if (el.style[name] !== undefined) {\n return { end: transEndEventNames[name] }\n }\n }\n\n return false // explicit for ie8 ( ._.)\n }\n\n // https://blog.alexmaccaw.com/css-transitions\n $.fn.emulateTransitionEnd = function (duration) {\n var called = false\n var $el = this\n $(this).one('bsTransitionEnd', function () { called = true })\n var callback = function () { if (!called) $($el).trigger($.support.transition.end) }\n setTimeout(callback, duration)\n return this\n }\n\n $(function () {\n $.support.transition = transitionEnd()\n\n if (!$.support.transition) return\n\n $.event.special.bsTransitionEnd = {\n bindType: $.support.transition.end,\n delegateType: $.support.transition.end,\n handle: function (e) {\n if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)\n }\n }\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: alert.js v3.4.0\n * https://getbootstrap.com/docs/3.4/javascript/#alerts\n * ========================================================================\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // ALERT CLASS DEFINITION\n // ======================\n\n var dismiss = '[data-dismiss=\"alert\"]'\n var Alert = function (el) {\n $(el).on('click', dismiss, this.close)\n }\n\n Alert.VERSION = '3.4.0'\n\n Alert.TRANSITION_DURATION = 150\n\n Alert.prototype.close = function (e) {\n var $this = $(this)\n var selector = $this.attr('data-target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n selector = selector === '#' ? [] : selector\n var $parent = $(document).find(selector)\n\n if (e) e.preventDefault()\n\n if (!$parent.length) {\n $parent = $this.closest('.alert')\n }\n\n $parent.trigger(e = $.Event('close.bs.alert'))\n\n if (e.isDefaultPrevented()) return\n\n $parent.removeClass('in')\n\n function removeElement() {\n // detach from parent, fire event then clean up data\n $parent.detach().trigger('closed.bs.alert').remove()\n }\n\n $.support.transition && $parent.hasClass('fade') ?\n $parent\n .one('bsTransitionEnd', removeElement)\n .emulateTransitionEnd(Alert.TRANSITION_DURATION) :\n removeElement()\n }\n\n\n // ALERT PLUGIN DEFINITION\n // =======================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.alert')\n\n if (!data) $this.data('bs.alert', (data = new Alert(this)))\n if (typeof option == 'string') data[option].call($this)\n })\n }\n\n var old = $.fn.alert\n\n $.fn.alert = Plugin\n $.fn.alert.Constructor = Alert\n\n\n // ALERT NO CONFLICT\n // =================\n\n $.fn.alert.noConflict = function () {\n $.fn.alert = old\n return this\n }\n\n\n // ALERT DATA-API\n // ==============\n\n $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: button.js v3.4.0\n * https://getbootstrap.com/docs/3.4/javascript/#buttons\n * ========================================================================\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // BUTTON PUBLIC CLASS DEFINITION\n // ==============================\n\n var Button = function (element, options) {\n this.$element = $(element)\n this.options = $.extend({}, Button.DEFAULTS, options)\n this.isLoading = false\n }\n\n Button.VERSION = '3.4.0'\n\n Button.DEFAULTS = {\n loadingText: 'loading...'\n }\n\n Button.prototype.setState = function (state) {\n var d = 'disabled'\n var $el = this.$element\n var val = $el.is('input') ? 'val' : 'html'\n var data = $el.data()\n\n state += 'Text'\n\n if (data.resetText == null) $el.data('resetText', $el[val]())\n\n // push to event loop to allow forms to submit\n setTimeout($.proxy(function () {\n $el[val](data[state] == null ? this.options[state] : data[state])\n\n if (state == 'loadingText') {\n this.isLoading = true\n $el.addClass(d).attr(d, d).prop(d, true)\n } else if (this.isLoading) {\n this.isLoading = false\n $el.removeClass(d).removeAttr(d).prop(d, false)\n }\n }, this), 0)\n }\n\n Button.prototype.toggle = function () {\n var changed = true\n var $parent = this.$element.closest('[data-toggle=\"buttons\"]')\n\n if ($parent.length) {\n var $input = this.$element.find('input')\n if ($input.prop('type') == 'radio') {\n if ($input.prop('checked')) changed = false\n $parent.find('.active').removeClass('active')\n this.$element.addClass('active')\n } else if ($input.prop('type') == 'checkbox') {\n if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false\n this.$element.toggleClass('active')\n }\n $input.prop('checked', this.$element.hasClass('active'))\n if (changed) $input.trigger('change')\n } else {\n this.$element.attr('aria-pressed', !this.$element.hasClass('active'))\n this.$element.toggleClass('active')\n }\n }\n\n\n // BUTTON PLUGIN DEFINITION\n // ========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.button')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.button', (data = new Button(this, options)))\n\n if (option == 'toggle') data.toggle()\n else if (option) data.setState(option)\n })\n }\n\n var old = $.fn.button\n\n $.fn.button = Plugin\n $.fn.button.Constructor = Button\n\n\n // BUTTON NO CONFLICT\n // ==================\n\n $.fn.button.noConflict = function () {\n $.fn.button = old\n return this\n }\n\n\n // BUTTON DATA-API\n // ===============\n\n $(document)\n .on('click.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n var $btn = $(e.target).closest('.btn')\n Plugin.call($btn, 'toggle')\n if (!($(e.target).is('input[type=\"radio\"], input[type=\"checkbox\"]'))) {\n // Prevent double click on radios, and the double selections (so cancellation) on checkboxes\n e.preventDefault()\n // The target component still receive the focus\n if ($btn.is('input,button')) $btn.trigger('focus')\n else $btn.find('input:visible,button:visible').first().trigger('focus')\n }\n })\n .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: carousel.js v3.4.0\n * https://getbootstrap.com/docs/3.4/javascript/#carousel\n * ========================================================================\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // CAROUSEL CLASS DEFINITION\n // =========================\n\n var Carousel = function (element, options) {\n this.$element = $(element)\n this.$indicators = this.$element.find('.carousel-indicators')\n this.options = options\n this.paused = null\n this.sliding = null\n this.interval = null\n this.$active = null\n this.$items = null\n\n this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))\n\n this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element\n .on('mouseenter.bs.carousel', $.proxy(this.pause, this))\n .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))\n }\n\n Carousel.VERSION = '3.4.0'\n\n Carousel.TRANSITION_DURATION = 600\n\n Carousel.DEFAULTS = {\n interval: 5000,\n pause: 'hover',\n wrap: true,\n keyboard: true\n }\n\n Carousel.prototype.keydown = function (e) {\n if (/input|textarea/i.test(e.target.tagName)) return\n switch (e.which) {\n case 37: this.prev(); break\n case 39: this.next(); break\n default: return\n }\n\n e.preventDefault()\n }\n\n Carousel.prototype.cycle = function (e) {\n e || (this.paused = false)\n\n this.interval && clearInterval(this.interval)\n\n this.options.interval\n && !this.paused\n && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))\n\n return this\n }\n\n Carousel.prototype.getItemIndex = function (item) {\n this.$items = item.parent().children('.item')\n return this.$items.index(item || this.$active)\n }\n\n Carousel.prototype.getItemForDirection = function (direction, active) {\n var activeIndex = this.getItemIndex(active)\n var willWrap = (direction == 'prev' && activeIndex === 0)\n || (direction == 'next' && activeIndex == (this.$items.length - 1))\n if (willWrap && !this.options.wrap) return active\n var delta = direction == 'prev' ? -1 : 1\n var itemIndex = (activeIndex + delta) % this.$items.length\n return this.$items.eq(itemIndex)\n }\n\n Carousel.prototype.to = function (pos) {\n var that = this\n var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))\n\n if (pos > (this.$items.length - 1) || pos < 0) return\n\n if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, \"slid\"\n if (activeIndex == pos) return this.pause().cycle()\n\n return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos))\n }\n\n Carousel.prototype.pause = function (e) {\n e || (this.paused = true)\n\n if (this.$element.find('.next, .prev').length && $.support.transition) {\n this.$element.trigger($.support.transition.end)\n this.cycle(true)\n }\n\n this.interval = clearInterval(this.interval)\n\n return this\n }\n\n Carousel.prototype.next = function () {\n if (this.sliding) return\n return this.slide('next')\n }\n\n Carousel.prototype.prev = function () {\n if (this.sliding) return\n return this.slide('prev')\n }\n\n Carousel.prototype.slide = function (type, next) {\n var $active = this.$element.find('.item.active')\n var $next = next || this.getItemForDirection(type, $active)\n var isCycling = this.interval\n var direction = type == 'next' ? 'left' : 'right'\n var that = this\n\n if ($next.hasClass('active')) return (this.sliding = false)\n\n var relatedTarget = $next[0]\n var slideEvent = $.Event('slide.bs.carousel', {\n relatedTarget: relatedTarget,\n direction: direction\n })\n this.$element.trigger(slideEvent)\n if (slideEvent.isDefaultPrevented()) return\n\n this.sliding = true\n\n isCycling && this.pause()\n\n if (this.$indicators.length) {\n this.$indicators.find('.active').removeClass('active')\n var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])\n $nextIndicator && $nextIndicator.addClass('active')\n }\n\n var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, \"slid\"\n if ($.support.transition && this.$element.hasClass('slide')) {\n $next.addClass(type)\n if (typeof $next === 'object' && $next.length) {\n $next[0].offsetWidth // force reflow\n }\n $active.addClass(direction)\n $next.addClass(direction)\n $active\n .one('bsTransitionEnd', function () {\n $next.removeClass([type, direction].join(' ')).addClass('active')\n $active.removeClass(['active', direction].join(' '))\n that.sliding = false\n setTimeout(function () {\n that.$element.trigger(slidEvent)\n }, 0)\n })\n .emulateTransitionEnd(Carousel.TRANSITION_DURATION)\n } else {\n $active.removeClass('active')\n $next.addClass('active')\n this.sliding = false\n this.$element.trigger(slidEvent)\n }\n\n isCycling && this.cycle()\n\n return this\n }\n\n\n // CAROUSEL PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.carousel')\n var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)\n var action = typeof option == 'string' ? option : options.slide\n\n if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))\n if (typeof option == 'number') data.to(option)\n else if (action) data[action]()\n else if (options.interval) data.pause().cycle()\n })\n }\n\n var old = $.fn.carousel\n\n $.fn.carousel = Plugin\n $.fn.carousel.Constructor = Carousel\n\n\n // CAROUSEL NO CONFLICT\n // ====================\n\n $.fn.carousel.noConflict = function () {\n $.fn.carousel = old\n return this\n }\n\n\n // CAROUSEL DATA-API\n // =================\n\n var clickHandler = function (e) {\n var $this = $(this)\n var href = $this.attr('href')\n if (href) {\n href = href.replace(/.*(?=#[^\\s]+$)/, '') // strip for ie7\n }\n\n var target = $this.attr('data-target') || href\n var $target = $(document).find(target)\n\n if (!$target.hasClass('carousel')) return\n\n var options = $.extend({}, $target.data(), $this.data())\n var slideIndex = $this.attr('data-slide-to')\n if (slideIndex) options.interval = false\n\n Plugin.call($target, options)\n\n if (slideIndex) {\n $target.data('bs.carousel').to(slideIndex)\n }\n\n e.preventDefault()\n }\n\n $(document)\n .on('click.bs.carousel.data-api', '[data-slide]', clickHandler)\n .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)\n\n $(window).on('load', function () {\n $('[data-ride=\"carousel\"]').each(function () {\n var $carousel = $(this)\n Plugin.call($carousel, $carousel.data())\n })\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: collapse.js v3.4.0\n * https://getbootstrap.com/docs/3.4/javascript/#collapse\n * ========================================================================\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n/* jshint latedef: false */\n\n+function ($) {\n 'use strict';\n\n // COLLAPSE PUBLIC CLASS DEFINITION\n // ================================\n\n var Collapse = function (element, options) {\n this.$element = $(element)\n this.options = $.extend({}, Collapse.DEFAULTS, options)\n this.$trigger = $('[data-toggle=\"collapse\"][href=\"#' + element.id + '\"],' +\n '[data-toggle=\"collapse\"][data-target=\"#' + element.id + '\"]')\n this.transitioning = null\n\n if (this.options.parent) {\n this.$parent = this.getParent()\n } else {\n this.addAriaAndCollapsedClass(this.$element, this.$trigger)\n }\n\n if (this.options.toggle) this.toggle()\n }\n\n Collapse.VERSION = '3.4.0'\n\n Collapse.TRANSITION_DURATION = 350\n\n Collapse.DEFAULTS = {\n toggle: true\n }\n\n Collapse.prototype.dimension = function () {\n var hasWidth = this.$element.hasClass('width')\n return hasWidth ? 'width' : 'height'\n }\n\n Collapse.prototype.show = function () {\n if (this.transitioning || this.$element.hasClass('in')) return\n\n var activesData\n var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')\n\n if (actives && actives.length) {\n activesData = actives.data('bs.collapse')\n if (activesData && activesData.transitioning) return\n }\n\n var startEvent = $.Event('show.bs.collapse')\n this.$element.trigger(startEvent)\n if (startEvent.isDefaultPrevented()) return\n\n if (actives && actives.length) {\n Plugin.call(actives, 'hide')\n activesData || actives.data('bs.collapse', null)\n }\n\n var dimension = this.dimension()\n\n this.$element\n .removeClass('collapse')\n .addClass('collapsing')[dimension](0)\n .attr('aria-expanded', true)\n\n this.$trigger\n .removeClass('collapsed')\n .attr('aria-expanded', true)\n\n this.transitioning = 1\n\n var complete = function () {\n this.$element\n .removeClass('collapsing')\n .addClass('collapse in')[dimension]('')\n this.transitioning = 0\n this.$element\n .trigger('shown.bs.collapse')\n }\n\n if (!$.support.transition) return complete.call(this)\n\n var scrollSize = $.camelCase(['scroll', dimension].join('-'))\n\n this.$element\n .one('bsTransitionEnd', $.proxy(complete, this))\n .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])\n }\n\n Collapse.prototype.hide = function () {\n if (this.transitioning || !this.$element.hasClass('in')) return\n\n var startEvent = $.Event('hide.bs.collapse')\n this.$element.trigger(startEvent)\n if (startEvent.isDefaultPrevented()) return\n\n var dimension = this.dimension()\n\n this.$element[dimension](this.$element[dimension]())[0].offsetHeight\n\n this.$element\n .addClass('collapsing')\n .removeClass('collapse in')\n .attr('aria-expanded', false)\n\n this.$trigger\n .addClass('collapsed')\n .attr('aria-expanded', false)\n\n this.transitioning = 1\n\n var complete = function () {\n this.transitioning = 0\n this.$element\n .removeClass('collapsing')\n .addClass('collapse')\n .trigger('hidden.bs.collapse')\n }\n\n if (!$.support.transition) return complete.call(this)\n\n this.$element\n [dimension](0)\n .one('bsTransitionEnd', $.proxy(complete, this))\n .emulateTransitionEnd(Collapse.TRANSITION_DURATION)\n }\n\n Collapse.prototype.toggle = function () {\n this[this.$element.hasClass('in') ? 'hide' : 'show']()\n }\n\n Collapse.prototype.getParent = function () {\n return $(document).find(this.options.parent)\n .find('[data-toggle=\"collapse\"][data-parent=\"' + this.options.parent + '\"]')\n .each($.proxy(function (i, element) {\n var $element = $(element)\n this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)\n }, this))\n .end()\n }\n\n Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {\n var isOpen = $element.hasClass('in')\n\n $element.attr('aria-expanded', isOpen)\n $trigger\n .toggleClass('collapsed', !isOpen)\n .attr('aria-expanded', isOpen)\n }\n\n function getTargetFromTrigger($trigger) {\n var href\n var target = $trigger.attr('data-target')\n || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '') // strip for ie7\n\n return $(document).find(target)\n }\n\n\n // COLLAPSE PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.collapse')\n var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false\n if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.collapse\n\n $.fn.collapse = Plugin\n $.fn.collapse.Constructor = Collapse\n\n\n // COLLAPSE NO CONFLICT\n // ====================\n\n $.fn.collapse.noConflict = function () {\n $.fn.collapse = old\n return this\n }\n\n\n // COLLAPSE DATA-API\n // =================\n\n $(document).on('click.bs.collapse.data-api', '[data-toggle=\"collapse\"]', function (e) {\n var $this = $(this)\n\n if (!$this.attr('data-target')) e.preventDefault()\n\n var $target = getTargetFromTrigger($this)\n var data = $target.data('bs.collapse')\n var option = data ? 'toggle' : $this.data()\n\n Plugin.call($target, option)\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: dropdown.js v3.4.0\n * https://getbootstrap.com/docs/3.4/javascript/#dropdowns\n * ========================================================================\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // DROPDOWN CLASS DEFINITION\n // =========================\n\n var backdrop = '.dropdown-backdrop'\n var toggle = '[data-toggle=\"dropdown\"]'\n var Dropdown = function (element) {\n $(element).on('click.bs.dropdown', this.toggle)\n }\n\n Dropdown.VERSION = '3.4.0'\n\n function getParent($this) {\n var selector = $this.attr('data-target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n var $parent = selector && $(document).find(selector)\n\n return $parent && $parent.length ? $parent : $this.parent()\n }\n\n function clearMenus(e) {\n if (e && e.which === 3) return\n $(backdrop).remove()\n $(toggle).each(function () {\n var $this = $(this)\n var $parent = getParent($this)\n var relatedTarget = { relatedTarget: this }\n\n if (!$parent.hasClass('open')) return\n\n if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return\n\n $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))\n\n if (e.isDefaultPrevented()) return\n\n $this.attr('aria-expanded', 'false')\n $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget))\n })\n }\n\n Dropdown.prototype.toggle = function (e) {\n var $this = $(this)\n\n if ($this.is('.disabled, :disabled')) return\n\n var $parent = getParent($this)\n var isActive = $parent.hasClass('open')\n\n clearMenus()\n\n if (!isActive) {\n if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {\n // if mobile we use a backdrop because click events don't delegate\n $(document.createElement('div'))\n .addClass('dropdown-backdrop')\n .insertAfter($(this))\n .on('click', clearMenus)\n }\n\n var relatedTarget = { relatedTarget: this }\n $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))\n\n if (e.isDefaultPrevented()) return\n\n $this\n .trigger('focus')\n .attr('aria-expanded', 'true')\n\n $parent\n .toggleClass('open')\n .trigger($.Event('shown.bs.dropdown', relatedTarget))\n }\n\n return false\n }\n\n Dropdown.prototype.keydown = function (e) {\n if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return\n\n var $this = $(this)\n\n e.preventDefault()\n e.stopPropagation()\n\n if ($this.is('.disabled, :disabled')) return\n\n var $parent = getParent($this)\n var isActive = $parent.hasClass('open')\n\n if (!isActive && e.which != 27 || isActive && e.which == 27) {\n if (e.which == 27) $parent.find(toggle).trigger('focus')\n return $this.trigger('click')\n }\n\n var desc = ' li:not(.disabled):visible a'\n var $items = $parent.find('.dropdown-menu' + desc)\n\n if (!$items.length) return\n\n var index = $items.index(e.target)\n\n if (e.which == 38 && index > 0) index-- // up\n if (e.which == 40 && index < $items.length - 1) index++ // down\n if (!~index) index = 0\n\n $items.eq(index).trigger('focus')\n }\n\n\n // DROPDOWN PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.dropdown')\n\n if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))\n if (typeof option == 'string') data[option].call($this)\n })\n }\n\n var old = $.fn.dropdown\n\n $.fn.dropdown = Plugin\n $.fn.dropdown.Constructor = Dropdown\n\n\n // DROPDOWN NO CONFLICT\n // ====================\n\n $.fn.dropdown.noConflict = function () {\n $.fn.dropdown = old\n return this\n }\n\n\n // APPLY TO STANDARD DROPDOWN ELEMENTS\n // ===================================\n\n $(document)\n .on('click.bs.dropdown.data-api', clearMenus)\n .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })\n .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)\n .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)\n .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: modal.js v3.4.0\n * https://getbootstrap.com/docs/3.4/javascript/#modals\n * ========================================================================\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // MODAL CLASS DEFINITION\n // ======================\n\n var Modal = function (element, options) {\n this.options = options\n this.$body = $(document.body)\n this.$element = $(element)\n this.$dialog = this.$element.find('.modal-dialog')\n this.$backdrop = null\n this.isShown = null\n this.originalBodyPad = null\n this.scrollbarWidth = 0\n this.ignoreBackdropClick = false\n this.fixedContent = '.navbar-fixed-top, .navbar-fixed-bottom'\n\n if (this.options.remote) {\n this.$element\n .find('.modal-content')\n .load(this.options.remote, $.proxy(function () {\n this.$element.trigger('loaded.bs.modal')\n }, this))\n }\n }\n\n Modal.VERSION = '3.4.0'\n\n Modal.TRANSITION_DURATION = 300\n Modal.BACKDROP_TRANSITION_DURATION = 150\n\n Modal.DEFAULTS = {\n backdrop: true,\n keyboard: true,\n show: true\n }\n\n Modal.prototype.toggle = function (_relatedTarget) {\n return this.isShown ? this.hide() : this.show(_relatedTarget)\n }\n\n Modal.prototype.show = function (_relatedTarget) {\n var that = this\n var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })\n\n this.$element.trigger(e)\n\n if (this.isShown || e.isDefaultPrevented()) return\n\n this.isShown = true\n\n this.checkScrollbar()\n this.setScrollbar()\n this.$body.addClass('modal-open')\n\n this.escape()\n this.resize()\n\n this.$element.on('click.dismiss.bs.modal', '[data-dismiss=\"modal\"]', $.proxy(this.hide, this))\n\n this.$dialog.on('mousedown.dismiss.bs.modal', function () {\n that.$element.one('mouseup.dismiss.bs.modal', function (e) {\n if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true\n })\n })\n\n this.backdrop(function () {\n var transition = $.support.transition && that.$element.hasClass('fade')\n\n if (!that.$element.parent().length) {\n that.$element.appendTo(that.$body) // don't move modals dom position\n }\n\n that.$element\n .show()\n .scrollTop(0)\n\n that.adjustDialog()\n\n if (transition) {\n that.$element[0].offsetWidth // force reflow\n }\n\n that.$element.addClass('in')\n\n that.enforceFocus()\n\n var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })\n\n transition ?\n that.$dialog // wait for modal to slide in\n .one('bsTransitionEnd', function () {\n that.$element.trigger('focus').trigger(e)\n })\n .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n that.$element.trigger('focus').trigger(e)\n })\n }\n\n Modal.prototype.hide = function (e) {\n if (e) e.preventDefault()\n\n e = $.Event('hide.bs.modal')\n\n this.$element.trigger(e)\n\n if (!this.isShown || e.isDefaultPrevented()) return\n\n this.isShown = false\n\n this.escape()\n this.resize()\n\n $(document).off('focusin.bs.modal')\n\n this.$element\n .removeClass('in')\n .off('click.dismiss.bs.modal')\n .off('mouseup.dismiss.bs.modal')\n\n this.$dialog.off('mousedown.dismiss.bs.modal')\n\n $.support.transition && this.$element.hasClass('fade') ?\n this.$element\n .one('bsTransitionEnd', $.proxy(this.hideModal, this))\n .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n this.hideModal()\n }\n\n Modal.prototype.enforceFocus = function () {\n $(document)\n .off('focusin.bs.modal') // guard against infinite focus loop\n .on('focusin.bs.modal', $.proxy(function (e) {\n if (document !== e.target &&\n this.$element[0] !== e.target &&\n !this.$element.has(e.target).length) {\n this.$element.trigger('focus')\n }\n }, this))\n }\n\n Modal.prototype.escape = function () {\n if (this.isShown && this.options.keyboard) {\n this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {\n e.which == 27 && this.hide()\n }, this))\n } else if (!this.isShown) {\n this.$element.off('keydown.dismiss.bs.modal')\n }\n }\n\n Modal.prototype.resize = function () {\n if (this.isShown) {\n $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))\n } else {\n $(window).off('resize.bs.modal')\n }\n }\n\n Modal.prototype.hideModal = function () {\n var that = this\n this.$element.hide()\n this.backdrop(function () {\n that.$body.removeClass('modal-open')\n that.resetAdjustments()\n that.resetScrollbar()\n that.$element.trigger('hidden.bs.modal')\n })\n }\n\n Modal.prototype.removeBackdrop = function () {\n this.$backdrop && this.$backdrop.remove()\n this.$backdrop = null\n }\n\n Modal.prototype.backdrop = function (callback) {\n var that = this\n var animate = this.$element.hasClass('fade') ? 'fade' : ''\n\n if (this.isShown && this.options.backdrop) {\n var doAnimate = $.support.transition && animate\n\n this.$backdrop = $(document.createElement('div'))\n .addClass('modal-backdrop ' + animate)\n .appendTo(this.$body)\n\n this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {\n if (this.ignoreBackdropClick) {\n this.ignoreBackdropClick = false\n return\n }\n if (e.target !== e.currentTarget) return\n this.options.backdrop == 'static'\n ? this.$element[0].focus()\n : this.hide()\n }, this))\n\n if (doAnimate) this.$backdrop[0].offsetWidth // force reflow\n\n this.$backdrop.addClass('in')\n\n if (!callback) return\n\n doAnimate ?\n this.$backdrop\n .one('bsTransitionEnd', callback)\n .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n callback()\n\n } else if (!this.isShown && this.$backdrop) {\n this.$backdrop.removeClass('in')\n\n var callbackRemove = function () {\n that.removeBackdrop()\n callback && callback()\n }\n $.support.transition && this.$element.hasClass('fade') ?\n this.$backdrop\n .one('bsTransitionEnd', callbackRemove)\n .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n callbackRemove()\n\n } else if (callback) {\n callback()\n }\n }\n\n // these following methods are used to handle overflowing modals\n\n Modal.prototype.handleUpdate = function () {\n this.adjustDialog()\n }\n\n Modal.prototype.adjustDialog = function () {\n var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight\n\n this.$element.css({\n paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',\n paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''\n })\n }\n\n Modal.prototype.resetAdjustments = function () {\n this.$element.css({\n paddingLeft: '',\n paddingRight: ''\n })\n }\n\n Modal.prototype.checkScrollbar = function () {\n var fullWindowWidth = window.innerWidth\n if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8\n var documentElementRect = document.documentElement.getBoundingClientRect()\n fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left)\n }\n this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth\n this.scrollbarWidth = this.measureScrollbar()\n }\n\n Modal.prototype.setScrollbar = function () {\n var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)\n this.originalBodyPad = document.body.style.paddingRight || ''\n var scrollbarWidth = this.scrollbarWidth\n if (this.bodyIsOverflowing) {\n this.$body.css('padding-right', bodyPad + scrollbarWidth)\n $(this.fixedContent).each(function (index, element) {\n var actualPadding = element.style.paddingRight\n var calculatedPadding = $(element).css('padding-right')\n $(element)\n .data('padding-right', actualPadding)\n .css('padding-right', parseFloat(calculatedPadding) + scrollbarWidth + 'px')\n })\n }\n }\n\n Modal.prototype.resetScrollbar = function () {\n this.$body.css('padding-right', this.originalBodyPad)\n $(this.fixedContent).each(function (index, element) {\n var padding = $(element).data('padding-right')\n $(element).removeData('padding-right')\n element.style.paddingRight = padding ? padding : ''\n })\n }\n\n Modal.prototype.measureScrollbar = function () { // thx walsh\n var scrollDiv = document.createElement('div')\n scrollDiv.className = 'modal-scrollbar-measure'\n this.$body.append(scrollDiv)\n var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth\n this.$body[0].removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n\n // MODAL PLUGIN DEFINITION\n // =======================\n\n function Plugin(option, _relatedTarget) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.modal')\n var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n if (!data) $this.data('bs.modal', (data = new Modal(this, options)))\n if (typeof option == 'string') data[option](_relatedTarget)\n else if (options.show) data.show(_relatedTarget)\n })\n }\n\n var old = $.fn.modal\n\n $.fn.modal = Plugin\n $.fn.modal.Constructor = Modal\n\n\n // MODAL NO CONFLICT\n // =================\n\n $.fn.modal.noConflict = function () {\n $.fn.modal = old\n return this\n }\n\n\n // MODAL DATA-API\n // ==============\n\n $(document).on('click.bs.modal.data-api', '[data-toggle=\"modal\"]', function (e) {\n var $this = $(this)\n var href = $this.attr('href')\n var target = $this.attr('data-target') ||\n (href && href.replace(/.*(?=#[^\\s]+$)/, '')) // strip for ie7\n\n var $target = $(document).find(target)\n var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())\n\n if ($this.is('a')) e.preventDefault()\n\n $target.one('show.bs.modal', function (showEvent) {\n if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown\n $target.one('hidden.bs.modal', function () {\n $this.is(':visible') && $this.trigger('focus')\n })\n })\n Plugin.call($target, option, this)\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: tooltip.js v3.4.0\n * https://getbootstrap.com/docs/3.4/javascript/#tooltip\n * Inspired by the original jQuery.tipsy by Jason Frame\n * ========================================================================\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // TOOLTIP PUBLIC CLASS DEFINITION\n // ===============================\n\n var Tooltip = function (element, options) {\n this.type = null\n this.options = null\n this.enabled = null\n this.timeout = null\n this.hoverState = null\n this.$element = null\n this.inState = null\n\n this.init('tooltip', element, options)\n }\n\n Tooltip.VERSION = '3.4.0'\n\n Tooltip.TRANSITION_DURATION = 150\n\n Tooltip.DEFAULTS = {\n animation: true,\n placement: 'top',\n selector: false,\n template: '
',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n container: false,\n viewport: {\n selector: 'body',\n padding: 0\n }\n }\n\n Tooltip.prototype.init = function (type, element, options) {\n this.enabled = true\n this.type = type\n this.$element = $(element)\n this.options = this.getOptions(options)\n this.$viewport = this.options.viewport && $(document).find($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))\n this.inState = { click: false, hover: false, focus: false }\n\n if (this.$element[0] instanceof document.constructor && !this.options.selector) {\n throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')\n }\n\n var triggers = this.options.trigger.split(' ')\n\n for (var i = triggers.length; i--;) {\n var trigger = triggers[i]\n\n if (trigger == 'click') {\n this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))\n } else if (trigger != 'manual') {\n var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin'\n var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'\n\n this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))\n this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))\n }\n }\n\n this.options.selector ?\n (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :\n this.fixTitle()\n }\n\n Tooltip.prototype.getDefaults = function () {\n return Tooltip.DEFAULTS\n }\n\n Tooltip.prototype.getOptions = function (options) {\n options = $.extend({}, this.getDefaults(), this.$element.data(), options)\n\n if (options.delay && typeof options.delay == 'number') {\n options.delay = {\n show: options.delay,\n hide: options.delay\n }\n }\n\n return options\n }\n\n Tooltip.prototype.getDelegateOptions = function () {\n var options = {}\n var defaults = this.getDefaults()\n\n this._options && $.each(this._options, function (key, value) {\n if (defaults[key] != value) options[key] = value\n })\n\n return options\n }\n\n Tooltip.prototype.enter = function (obj) {\n var self = obj instanceof this.constructor ?\n obj : $(obj.currentTarget).data('bs.' + this.type)\n\n if (!self) {\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n $(obj.currentTarget).data('bs.' + this.type, self)\n }\n\n if (obj instanceof $.Event) {\n self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true\n }\n\n if (self.tip().hasClass('in') || self.hoverState == 'in') {\n self.hoverState = 'in'\n return\n }\n\n clearTimeout(self.timeout)\n\n self.hoverState = 'in'\n\n if (!self.options.delay || !self.options.delay.show) return self.show()\n\n self.timeout = setTimeout(function () {\n if (self.hoverState == 'in') self.show()\n }, self.options.delay.show)\n }\n\n Tooltip.prototype.isInStateTrue = function () {\n for (var key in this.inState) {\n if (this.inState[key]) return true\n }\n\n return false\n }\n\n Tooltip.prototype.leave = function (obj) {\n var self = obj instanceof this.constructor ?\n obj : $(obj.currentTarget).data('bs.' + this.type)\n\n if (!self) {\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n $(obj.currentTarget).data('bs.' + this.type, self)\n }\n\n if (obj instanceof $.Event) {\n self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false\n }\n\n if (self.isInStateTrue()) return\n\n clearTimeout(self.timeout)\n\n self.hoverState = 'out'\n\n if (!self.options.delay || !self.options.delay.hide) return self.hide()\n\n self.timeout = setTimeout(function () {\n if (self.hoverState == 'out') self.hide()\n }, self.options.delay.hide)\n }\n\n Tooltip.prototype.show = function () {\n var e = $.Event('show.bs.' + this.type)\n\n if (this.hasContent() && this.enabled) {\n this.$element.trigger(e)\n\n var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])\n if (e.isDefaultPrevented() || !inDom) return\n var that = this\n\n var $tip = this.tip()\n\n var tipId = this.getUID(this.type)\n\n this.setContent()\n $tip.attr('id', tipId)\n this.$element.attr('aria-describedby', tipId)\n\n if (this.options.animation) $tip.addClass('fade')\n\n var placement = typeof this.options.placement == 'function' ?\n this.options.placement.call(this, $tip[0], this.$element[0]) :\n this.options.placement\n\n var autoToken = /\\s?auto?\\s?/i\n var autoPlace = autoToken.test(placement)\n if (autoPlace) placement = placement.replace(autoToken, '') || 'top'\n\n $tip\n .detach()\n .css({ top: 0, left: 0, display: 'block' })\n .addClass(placement)\n .data('bs.' + this.type, this)\n\n this.options.container ? $tip.appendTo($(document).find(this.options.container)) : $tip.insertAfter(this.$element)\n this.$element.trigger('inserted.bs.' + this.type)\n\n var pos = this.getPosition()\n var actualWidth = $tip[0].offsetWidth\n var actualHeight = $tip[0].offsetHeight\n\n if (autoPlace) {\n var orgPlacement = placement\n var viewportDim = this.getPosition(this.$viewport)\n\n placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' :\n placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' :\n placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' :\n placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' :\n placement\n\n $tip\n .removeClass(orgPlacement)\n .addClass(placement)\n }\n\n var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)\n\n this.applyPlacement(calculatedOffset, placement)\n\n var complete = function () {\n var prevHoverState = that.hoverState\n that.$element.trigger('shown.bs.' + that.type)\n that.hoverState = null\n\n if (prevHoverState == 'out') that.leave(that)\n }\n\n $.support.transition && this.$tip.hasClass('fade') ?\n $tip\n .one('bsTransitionEnd', complete)\n .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n complete()\n }\n }\n\n Tooltip.prototype.applyPlacement = function (offset, placement) {\n var $tip = this.tip()\n var width = $tip[0].offsetWidth\n var height = $tip[0].offsetHeight\n\n // manually read margins because getBoundingClientRect includes difference\n var marginTop = parseInt($tip.css('margin-top'), 10)\n var marginLeft = parseInt($tip.css('margin-left'), 10)\n\n // we must check for NaN for ie 8/9\n if (isNaN(marginTop)) marginTop = 0\n if (isNaN(marginLeft)) marginLeft = 0\n\n offset.top += marginTop\n offset.left += marginLeft\n\n // $.fn.offset doesn't round pixel values\n // so we use setOffset directly with our own function B-0\n $.offset.setOffset($tip[0], $.extend({\n using: function (props) {\n $tip.css({\n top: Math.round(props.top),\n left: Math.round(props.left)\n })\n }\n }, offset), 0)\n\n $tip.addClass('in')\n\n // check to see if placing tip in new offset caused the tip to resize itself\n var actualWidth = $tip[0].offsetWidth\n var actualHeight = $tip[0].offsetHeight\n\n if (placement == 'top' && actualHeight != height) {\n offset.top = offset.top + height - actualHeight\n }\n\n var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)\n\n if (delta.left) offset.left += delta.left\n else offset.top += delta.top\n\n var isVertical = /top|bottom/.test(placement)\n var arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight\n var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'\n\n $tip.offset(offset)\n this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)\n }\n\n Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {\n this.arrow()\n .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')\n .css(isVertical ? 'top' : 'left', '')\n }\n\n Tooltip.prototype.setContent = function () {\n var $tip = this.tip()\n var title = this.getTitle()\n\n $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)\n $tip.removeClass('fade in top bottom left right')\n }\n\n Tooltip.prototype.hide = function (callback) {\n var that = this\n var $tip = $(this.$tip)\n var e = $.Event('hide.bs.' + this.type)\n\n function complete() {\n if (that.hoverState != 'in') $tip.detach()\n if (that.$element) { // TODO: Check whether guarding this code with this `if` is really necessary.\n that.$element\n .removeAttr('aria-describedby')\n .trigger('hidden.bs.' + that.type)\n }\n callback && callback()\n }\n\n this.$element.trigger(e)\n\n if (e.isDefaultPrevented()) return\n\n $tip.removeClass('in')\n\n $.support.transition && $tip.hasClass('fade') ?\n $tip\n .one('bsTransitionEnd', complete)\n .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n complete()\n\n this.hoverState = null\n\n return this\n }\n\n Tooltip.prototype.fixTitle = function () {\n var $e = this.$element\n if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {\n $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')\n }\n }\n\n Tooltip.prototype.hasContent = function () {\n return this.getTitle()\n }\n\n Tooltip.prototype.getPosition = function ($element) {\n $element = $element || this.$element\n\n var el = $element[0]\n var isBody = el.tagName == 'BODY'\n\n var elRect = el.getBoundingClientRect()\n if (elRect.width == null) {\n // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093\n elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })\n }\n var isSvg = window.SVGElement && el instanceof window.SVGElement\n // Avoid using $.offset() on SVGs since it gives incorrect results in jQuery 3.\n // See https://github.com/twbs/bootstrap/issues/20280\n var elOffset = isBody ? { top: 0, left: 0 } : (isSvg ? null : $element.offset())\n var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }\n var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null\n\n return $.extend({}, elRect, scroll, outerDims, elOffset)\n }\n\n Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {\n return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :\n /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }\n\n }\n\n Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {\n var delta = { top: 0, left: 0 }\n if (!this.$viewport) return delta\n\n var viewportPadding = this.options.viewport && this.options.viewport.padding || 0\n var viewportDimensions = this.getPosition(this.$viewport)\n\n if (/right|left/.test(placement)) {\n var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll\n var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight\n if (topEdgeOffset < viewportDimensions.top) { // top overflow\n delta.top = viewportDimensions.top - topEdgeOffset\n } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow\n delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset\n }\n } else {\n var leftEdgeOffset = pos.left - viewportPadding\n var rightEdgeOffset = pos.left + viewportPadding + actualWidth\n if (leftEdgeOffset < viewportDimensions.left) { // left overflow\n delta.left = viewportDimensions.left - leftEdgeOffset\n } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow\n delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset\n }\n }\n\n return delta\n }\n\n Tooltip.prototype.getTitle = function () {\n var title\n var $e = this.$element\n var o = this.options\n\n title = $e.attr('data-original-title')\n || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)\n\n return title\n }\n\n Tooltip.prototype.getUID = function (prefix) {\n do prefix += ~~(Math.random() * 1000000)\n while (document.getElementById(prefix))\n return prefix\n }\n\n Tooltip.prototype.tip = function () {\n if (!this.$tip) {\n this.$tip = $(this.options.template)\n if (this.$tip.length != 1) {\n throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')\n }\n }\n return this.$tip\n }\n\n Tooltip.prototype.arrow = function () {\n return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))\n }\n\n Tooltip.prototype.enable = function () {\n this.enabled = true\n }\n\n Tooltip.prototype.disable = function () {\n this.enabled = false\n }\n\n Tooltip.prototype.toggleEnabled = function () {\n this.enabled = !this.enabled\n }\n\n Tooltip.prototype.toggle = function (e) {\n var self = this\n if (e) {\n self = $(e.currentTarget).data('bs.' + this.type)\n if (!self) {\n self = new this.constructor(e.currentTarget, this.getDelegateOptions())\n $(e.currentTarget).data('bs.' + this.type, self)\n }\n }\n\n if (e) {\n self.inState.click = !self.inState.click\n if (self.isInStateTrue()) self.enter(self)\n else self.leave(self)\n } else {\n self.tip().hasClass('in') ? self.leave(self) : self.enter(self)\n }\n }\n\n Tooltip.prototype.destroy = function () {\n var that = this\n clearTimeout(this.timeout)\n this.hide(function () {\n that.$element.off('.' + that.type).removeData('bs.' + that.type)\n if (that.$tip) {\n that.$tip.detach()\n }\n that.$tip = null\n that.$arrow = null\n that.$viewport = null\n that.$element = null\n })\n }\n\n\n // TOOLTIP PLUGIN DEFINITION\n // =========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.tooltip')\n var options = typeof option == 'object' && option\n\n if (!data && /destroy|hide/.test(option)) return\n if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.tooltip\n\n $.fn.tooltip = Plugin\n $.fn.tooltip.Constructor = Tooltip\n\n\n // TOOLTIP NO CONFLICT\n // ===================\n\n $.fn.tooltip.noConflict = function () {\n $.fn.tooltip = old\n return this\n }\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: popover.js v3.4.0\n * https://getbootstrap.com/docs/3.4/javascript/#popovers\n * ========================================================================\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // POPOVER PUBLIC CLASS DEFINITION\n // ===============================\n\n var Popover = function (element, options) {\n this.init('popover', element, options)\n }\n\n if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')\n\n Popover.VERSION = '3.4.0'\n\n Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '

'\n })\n\n\n // NOTE: POPOVER EXTENDS tooltip.js\n // ================================\n\n Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)\n\n Popover.prototype.constructor = Popover\n\n Popover.prototype.getDefaults = function () {\n return Popover.DEFAULTS\n }\n\n Popover.prototype.setContent = function () {\n var $tip = this.tip()\n var title = this.getTitle()\n var content = this.getContent()\n\n $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)\n $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events\n this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'\n ](content)\n\n $tip.removeClass('fade top bottom left right in')\n\n // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do\n // this manually by checking the contents.\n if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()\n }\n\n Popover.prototype.hasContent = function () {\n return this.getTitle() || this.getContent()\n }\n\n Popover.prototype.getContent = function () {\n var $e = this.$element\n var o = this.options\n\n return $e.attr('data-content')\n || (typeof o.content == 'function' ?\n o.content.call($e[0]) :\n o.content)\n }\n\n Popover.prototype.arrow = function () {\n return (this.$arrow = this.$arrow || this.tip().find('.arrow'))\n }\n\n\n // POPOVER PLUGIN DEFINITION\n // =========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.popover')\n var options = typeof option == 'object' && option\n\n if (!data && /destroy|hide/.test(option)) return\n if (!data) $this.data('bs.popover', (data = new Popover(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.popover\n\n $.fn.popover = Plugin\n $.fn.popover.Constructor = Popover\n\n\n // POPOVER NO CONFLICT\n // ===================\n\n $.fn.popover.noConflict = function () {\n $.fn.popover = old\n return this\n }\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: scrollspy.js v3.4.0\n * https://getbootstrap.com/docs/3.4/javascript/#scrollspy\n * ========================================================================\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // SCROLLSPY CLASS DEFINITION\n // ==========================\n\n function ScrollSpy(element, options) {\n this.$body = $(document.body)\n this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)\n this.options = $.extend({}, ScrollSpy.DEFAULTS, options)\n this.selector = (this.options.target || '') + ' .nav li > a'\n this.offsets = []\n this.targets = []\n this.activeTarget = null\n this.scrollHeight = 0\n\n this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))\n this.refresh()\n this.process()\n }\n\n ScrollSpy.VERSION = '3.4.0'\n\n ScrollSpy.DEFAULTS = {\n offset: 10\n }\n\n ScrollSpy.prototype.getScrollHeight = function () {\n return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)\n }\n\n ScrollSpy.prototype.refresh = function () {\n var that = this\n var offsetMethod = 'offset'\n var offsetBase = 0\n\n this.offsets = []\n this.targets = []\n this.scrollHeight = this.getScrollHeight()\n\n if (!$.isWindow(this.$scrollElement[0])) {\n offsetMethod = 'position'\n offsetBase = this.$scrollElement.scrollTop()\n }\n\n this.$body\n .find(this.selector)\n .map(function () {\n var $el = $(this)\n var href = $el.data('target') || $el.attr('href')\n var $href = /^#./.test(href) && $(href)\n\n return ($href\n && $href.length\n && $href.is(':visible')\n && [[$href[offsetMethod]().top + offsetBase, href]]) || null\n })\n .sort(function (a, b) { return a[0] - b[0] })\n .each(function () {\n that.offsets.push(this[0])\n that.targets.push(this[1])\n })\n }\n\n ScrollSpy.prototype.process = function () {\n var scrollTop = this.$scrollElement.scrollTop() + this.options.offset\n var scrollHeight = this.getScrollHeight()\n var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height()\n var offsets = this.offsets\n var targets = this.targets\n var activeTarget = this.activeTarget\n var i\n\n if (this.scrollHeight != scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)\n }\n\n if (activeTarget && scrollTop < offsets[0]) {\n this.activeTarget = null\n return this.clear()\n }\n\n for (i = offsets.length; i--;) {\n activeTarget != targets[i]\n && scrollTop >= offsets[i]\n && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])\n && this.activate(targets[i])\n }\n }\n\n ScrollSpy.prototype.activate = function (target) {\n this.activeTarget = target\n\n this.clear()\n\n var selector = this.selector +\n '[data-target=\"' + target + '\"],' +\n this.selector + '[href=\"' + target + '\"]'\n\n var active = $(selector)\n .parents('li')\n .addClass('active')\n\n if (active.parent('.dropdown-menu').length) {\n active = active\n .closest('li.dropdown')\n .addClass('active')\n }\n\n active.trigger('activate.bs.scrollspy')\n }\n\n ScrollSpy.prototype.clear = function () {\n $(this.selector)\n .parentsUntil(this.options.target, '.active')\n .removeClass('active')\n }\n\n\n // SCROLLSPY PLUGIN DEFINITION\n // ===========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.scrollspy')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.scrollspy\n\n $.fn.scrollspy = Plugin\n $.fn.scrollspy.Constructor = ScrollSpy\n\n\n // SCROLLSPY NO CONFLICT\n // =====================\n\n $.fn.scrollspy.noConflict = function () {\n $.fn.scrollspy = old\n return this\n }\n\n\n // SCROLLSPY DATA-API\n // ==================\n\n $(window).on('load.bs.scrollspy.data-api', function () {\n $('[data-spy=\"scroll\"]').each(function () {\n var $spy = $(this)\n Plugin.call($spy, $spy.data())\n })\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: tab.js v3.4.0\n * https://getbootstrap.com/docs/3.4/javascript/#tabs\n * ========================================================================\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // TAB CLASS DEFINITION\n // ====================\n\n var Tab = function (element) {\n // jscs:disable requireDollarBeforejQueryAssignment\n this.element = $(element)\n // jscs:enable requireDollarBeforejQueryAssignment\n }\n\n Tab.VERSION = '3.4.0'\n\n Tab.TRANSITION_DURATION = 150\n\n Tab.prototype.show = function () {\n var $this = this.element\n var $ul = $this.closest('ul:not(.dropdown-menu)')\n var selector = $this.data('target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n if ($this.parent('li').hasClass('active')) return\n\n var $previous = $ul.find('.active:last a')\n var hideEvent = $.Event('hide.bs.tab', {\n relatedTarget: $this[0]\n })\n var showEvent = $.Event('show.bs.tab', {\n relatedTarget: $previous[0]\n })\n\n $previous.trigger(hideEvent)\n $this.trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return\n\n var $target = $(document).find(selector)\n\n this.activate($this.closest('li'), $ul)\n this.activate($target, $target.parent(), function () {\n $previous.trigger({\n type: 'hidden.bs.tab',\n relatedTarget: $this[0]\n })\n $this.trigger({\n type: 'shown.bs.tab',\n relatedTarget: $previous[0]\n })\n })\n }\n\n Tab.prototype.activate = function (element, container, callback) {\n var $active = container.find('> .active')\n var transition = callback\n && $.support.transition\n && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)\n\n function next() {\n $active\n .removeClass('active')\n .find('> .dropdown-menu > .active')\n .removeClass('active')\n .end()\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', false)\n\n element\n .addClass('active')\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', true)\n\n if (transition) {\n element[0].offsetWidth // reflow for transition\n element.addClass('in')\n } else {\n element.removeClass('fade')\n }\n\n if (element.parent('.dropdown-menu').length) {\n element\n .closest('li.dropdown')\n .addClass('active')\n .end()\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', true)\n }\n\n callback && callback()\n }\n\n $active.length && transition ?\n $active\n .one('bsTransitionEnd', next)\n .emulateTransitionEnd(Tab.TRANSITION_DURATION) :\n next()\n\n $active.removeClass('in')\n }\n\n\n // TAB PLUGIN DEFINITION\n // =====================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.tab')\n\n if (!data) $this.data('bs.tab', (data = new Tab(this)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.tab\n\n $.fn.tab = Plugin\n $.fn.tab.Constructor = Tab\n\n\n // TAB NO CONFLICT\n // ===============\n\n $.fn.tab.noConflict = function () {\n $.fn.tab = old\n return this\n }\n\n\n // TAB DATA-API\n // ============\n\n var clickHandler = function (e) {\n e.preventDefault()\n Plugin.call($(this), 'show')\n }\n\n $(document)\n .on('click.bs.tab.data-api', '[data-toggle=\"tab\"]', clickHandler)\n .on('click.bs.tab.data-api', '[data-toggle=\"pill\"]', clickHandler)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: affix.js v3.4.0\n * https://getbootstrap.com/docs/3.4/javascript/#affix\n * ========================================================================\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // AFFIX CLASS DEFINITION\n // ======================\n\n var Affix = function (element, options) {\n this.options = $.extend({}, Affix.DEFAULTS, options)\n\n var target = this.options.target === Affix.DEFAULTS.target ? $(this.options.target) : $(document).find(this.options.target)\n\n this.$target = target\n .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))\n .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))\n\n this.$element = $(element)\n this.affixed = null\n this.unpin = null\n this.pinnedOffset = null\n\n this.checkPosition()\n }\n\n Affix.VERSION = '3.4.0'\n\n Affix.RESET = 'affix affix-top affix-bottom'\n\n Affix.DEFAULTS = {\n offset: 0,\n target: window\n }\n\n Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {\n var scrollTop = this.$target.scrollTop()\n var position = this.$element.offset()\n var targetHeight = this.$target.height()\n\n if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false\n\n if (this.affixed == 'bottom') {\n if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'\n return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'\n }\n\n var initializing = this.affixed == null\n var colliderTop = initializing ? scrollTop : position.top\n var colliderHeight = initializing ? targetHeight : height\n\n if (offsetTop != null && scrollTop <= offsetTop) return 'top'\n if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'\n\n return false\n }\n\n Affix.prototype.getPinnedOffset = function () {\n if (this.pinnedOffset) return this.pinnedOffset\n this.$element.removeClass(Affix.RESET).addClass('affix')\n var scrollTop = this.$target.scrollTop()\n var position = this.$element.offset()\n return (this.pinnedOffset = position.top - scrollTop)\n }\n\n Affix.prototype.checkPositionWithEventLoop = function () {\n setTimeout($.proxy(this.checkPosition, this), 1)\n }\n\n Affix.prototype.checkPosition = function () {\n if (!this.$element.is(':visible')) return\n\n var height = this.$element.height()\n var offset = this.options.offset\n var offsetTop = offset.top\n var offsetBottom = offset.bottom\n var scrollHeight = Math.max($(document).height(), $(document.body).height())\n\n if (typeof offset != 'object') offsetBottom = offsetTop = offset\n if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)\n if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)\n\n var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)\n\n if (this.affixed != affix) {\n if (this.unpin != null) this.$element.css('top', '')\n\n var affixType = 'affix' + (affix ? '-' + affix : '')\n var e = $.Event(affixType + '.bs.affix')\n\n this.$element.trigger(e)\n\n if (e.isDefaultPrevented()) return\n\n this.affixed = affix\n this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null\n\n this.$element\n .removeClass(Affix.RESET)\n .addClass(affixType)\n .trigger(affixType.replace('affix', 'affixed') + '.bs.affix')\n }\n\n if (affix == 'bottom') {\n this.$element.offset({\n top: scrollHeight - height - offsetBottom\n })\n }\n }\n\n\n // AFFIX PLUGIN DEFINITION\n // =======================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.affix')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.affix', (data = new Affix(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.affix\n\n $.fn.affix = Plugin\n $.fn.affix.Constructor = Affix\n\n\n // AFFIX NO CONFLICT\n // =================\n\n $.fn.affix.noConflict = function () {\n $.fn.affix = old\n return this\n }\n\n\n // AFFIX DATA-API\n // ==============\n\n $(window).on('load', function () {\n $('[data-spy=\"affix\"]').each(function () {\n var $spy = $(this)\n var data = $spy.data()\n\n data.offset = data.offset || {}\n\n if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom\n if (data.offsetTop != null) data.offset.top = data.offsetTop\n\n Plugin.call($spy, data)\n })\n })\n\n}(jQuery);\n","function displayAlert() {\r\n $(\"#alertMessage\").removeAttr(\"style\");\r\n if (showAlert) {\r\n $(\"#alertMessage\").attr(\"style\", \"display:block\");\r\n //if (notificationDays >= 1) {\r\n //$(\"#notificationMessage\").html(' Your password will expire in ' + notificationDays + ' day(s) on ' + expirationDateTime + '. If you wish to change it now, use My Settings screen.');\r\n //} else {\r\n $(\"#notificationMessage\").html(' Your password will expire on ' + expirationDateTime + '. If you wish to change it now, use My Settings screen.');\r\n //}\r\n\r\n $(document).ready(function() {\r\n $(\".notification-bar\").show().hide().delay(0).fadeIn(\"slow\");\r\n });\r\n } else {\r\n $(\"#alertMessage\").attr(\"style\", \"display:none\");\r\n }\r\n}\r\n\r\n\r\nfunction displaySystemNotification() {\r\n $(\"#systemNotification\").removeAttr(\"style\");\r\n if (showSystemNotification) {\r\n $(\"#systemNotification\").attr(\"style\", \"display:block\");\r\n $(\"#systemNotificationMessage\").html(systemMessage);\r\n $(document).ready(function() {\r\n $(\".systemnotification-bar\").show().hide().delay(0).fadeIn(\"slow\");\r\n });\r\n } else {\r\n $(\"#systemNotification\").attr(\"style\", \"display:none\");\r\n } \r\n}\r\n\r\nvar showSystemNotification = false;\r\nvar systemMessage = ''; \r\n\r\nvar showAlert = false;\r\nvar notificationDays = 0; \r\nvar expirationDateTime = ''; \r\n\r\n\r\n\r\n\r\nwindow.onload = function(){\r\n window.myfunc();\r\n}\r\n\r\nwindow.onload=function(){\r\n$.fn.focusNextInputField = function () {\r\n return this.each(function () {\r\n var fields = $(this).parents('form:eq(0),body').find('button,input,textarea,select');\r\n var index = fields.index(this);\r\n if (index > -1 && (index + 1) < fields.length) {\r\n fields.eq(index + 1).focus();\r\n }\r\n return false;\r\n });\r\n};\r\n\r\n$('body').on('keydown', 'input[type=date]', function(e) {\r\n var keyCode = e.keyCode || e.which;\r\n if (keyCode === 9) {\r\n e.preventDefault();\r\n $(this).focusNextInputField();\r\n }\r\n});\r\n\r\n\r\n$(\"input[type=date]\").on('keydown', function (e) {\r\n var keyCode = e.keyCode || e.which;\r\n if (keyCode === 9) {\r\n e.preventDefault();\r\n $(this).focusNextInputField();\r\n }\r\n}); \r\n\r\n$(document).on('click',\r\n '.popup-marker',\r\n function () {\r\n $(this).popover({ container: 'body'}).popover('toggle');\r\n });\r\n}","+function ($) {\r\n 'use strict';\r\n\r\n // SIDEBAR PUBLIC CLASS DEFINITION\r\n // ================================\r\n\r\n var Sidebar = function (element, options) {\r\n this.$element = $(element)\r\n this.options = $.extend({}, Sidebar.DEFAULTS, options)\r\n this.transitioning = null\r\n\r\n if (this.options.parent) this.$parent = $(this.options.parent)\r\n if (this.options.toggle) this.toggle()\r\n }\r\n\r\n Sidebar.DEFAULTS = {\r\n toggle: true\r\n }\r\n\r\n Sidebar.prototype.show = function () {\r\n if (this.transitioning || this.$element.hasClass('sidebar-open')) return\r\n\r\n\r\n var startEvent = $.Event('show.bs.sidebar')\r\n this.$element.trigger(startEvent);\r\n if (startEvent.isDefaultPrevented()) return\r\n\r\n this.$element\r\n .addClass('sidebar-open')\r\n\r\n this.transitioning = 1\r\n\r\n var complete = function () {\r\n this.$element\r\n this.transitioning = 0\r\n this.$element.trigger('shown.bs.sidebar')\r\n }\r\n\r\n if (!$.support.transition) return complete.call(this)\r\n\r\n this.$element\r\n .one($.support.transition.end, $.proxy(complete, this))\r\n .emulateTransitionEnd(400)\r\n\r\n //var isButtonOrSidebar = startEvent.is('.sidebar, [data-toggle=\"sidebar\"]') || this.parents('.sidebar, [data-toggle=\"sidebar\"]').length;\r\n //if (isButtonOrSidebar) {\r\n\r\n //}\r\n }\r\n\r\n Sidebar.prototype.hide = function () {\r\n if (this.transitioning || !this.$element.hasClass('sidebar-open')) return\r\n\r\n var startEvent = $.Event('hide.bs.sidebar')\r\n this.$element.trigger(startEvent)\r\n if (startEvent.isDefaultPrevented()) return\r\n\r\n this.$element\r\n .removeClass('sidebar-open')\r\n\r\n this.transitioning = 1\r\n\r\n var complete = function () {\r\n this.transitioning = 0\r\n this.$element\r\n .trigger('hidden.bs.sidebar')\r\n }\r\n\r\n if (!$.support.transition) return complete.call(this)\r\n\r\n this.$element\r\n .one($.support.transition.end, $.proxy(complete, this))\r\n .emulateTransitionEnd(400)\r\n }\r\n\r\n Sidebar.prototype.toggle = function () {\r\n this[this.$element.hasClass('sidebar-open') ? 'hide' : 'show']()\r\n }\r\n\r\n var old = $.fn.sidebar\r\n\r\n $.fn.sidebar = function (option) {\r\n return this.each(function () {\r\n var $this = $(this)\r\n var data = $this.data('bs.sidebar')\r\n var options = $.extend({}, Sidebar.DEFAULTS, $this.data(), typeof options == 'object' && option)\r\n\r\n if (!data && options.toggle && option == 'show') option = !option\r\n if (!data) $this.data('bs.sidebar', (data = new Sidebar(this, options)))\r\n if (typeof option == 'string') data[option]()\r\n })\r\n }\r\n\r\n $.fn.sidebar.Constructor = Sidebar\r\n\r\n $.fn.collapse = function () {\r\n $.fn.sidebar = old\r\n return this\r\n }\r\n\r\n $(document).on('click.bs.sidebar.data-api', '[data-toggle=\"sidebar\"]', function (e) {\r\n var $this = $(this), href\r\n var target = $this.attr('data-target')\r\n || e.preventDefault()\r\n || (href = $this.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '')\r\n var $target = $(target)\r\n var data = $target.data('bs.sidebar')\r\n var option = data ? 'toggle' : $this.data()\r\n\r\n $target.sidebar(option)\r\n })\r\n\r\n $('html').on('click.bs.sidebar.autohide', function (event) {\r\n var $this = $(event.target);\r\n var isButtonOrSidebar = $this.is('.sidebar, [data-toggle=\"sidebar\"]') || $this.parents('.sidebar, [data-toggle=\"sidebar\"]').length;\r\n if (isButtonOrSidebar) {\r\n return;\r\n } else {\r\n var $target = $('.sidebar');\r\n $target.each(function (i, trgt) {\r\n var $trgt = $(trgt);\r\n if ($trgt.data('bs.sidebar') && $trgt.hasClass('sidebar-open')) {\r\n $trgt.sidebar('hide');\r\n }\r\n })\r\n }\r\n });\r\n}(jQuery);","+function ($) {\r\n\r\n 'use strict';\r\n\r\n $(document).on('click', 'a[data-toggle=\"collapse\"]', function (event) {\r\n var objectID = $(this).attr('href');\r\n\r\n if ($(this).hasClass('glyphicon-menu-down')) {\r\n $(this).removeClass('glyphicon-menu-down');\r\n $(this).addClass('glyphicon-menu-right');\r\n }\r\n else if ($(this).hasClass('glyphicon-menu-right')) {\r\n $(this).removeClass('glyphicon-menu-right');\r\n $(this).addClass('glyphicon-menu-down');\r\n }\r\n });\r\n\r\n $(document).on('click', '#collapseAll', function (event) {\r\n var divs = $('.panel-widgetHeading ');\r\n\r\n divs.find('a[data-toggle=\"collapse\"]').each(function () {\r\n var objectID = $(this).attr('href');\r\n $(objectID).removeClass('in');\r\n $(objectID).removeAttr('style');\r\n $(this).addClass('collapsed');\r\n });\r\n\r\n $(this).attr(\"style\", \"display:none\");\r\n $(\"#expandAll\").removeAttr(\"style\");\r\n });\r\n\r\n $(document).on('click', '#expandAll', function (event) {\r\n var divs = $('.panel-widgetHeading ');\r\n\r\n divs.find('a[data-toggle=\"collapse\"]').each(function() {\r\n var objectID = $(this).attr('href');\r\n $(objectID).addClass('in');\r\n $(objectID).removeAttr('style');\r\n $(this).removeClass('collapsed');\r\n });\r\n $(this).attr(\"style\", \"display:none\");\r\n $(\"#collapseAll\").removeAttr(\"style\");\r\n });\r\n\r\n \r\n\r\n $(document).on('click', '#petitioncollapseAll', function (event) {\r\n var divs = $('.petition');\r\n\r\n divs.find('a[data-toggle=\"collapse\"]').each(function () {\r\n var objectID = $(this).attr('href');\r\n $(objectID).removeClass('in');\r\n $(objectID).removeAttr('style');\r\n $(this).addClass('collapsed');\r\n });\r\n\r\n $(this).attr(\"style\", \"display:none\");\r\n $(\"#petitionexpandAll\").removeAttr(\"style\");\r\n });\r\n\r\n $(document).on('click', '#petitionexpandAll', function (event) {\r\n var divs = $('.petition');\r\n\r\n divs.find('a[data-toggle=\"collapse\"]').each(function () {\r\n var objectID = $(this).attr('href');\r\n $(objectID).addClass('in');\r\n $(objectID).removeAttr('style');\r\n $(this).removeClass('collapsed');\r\n });\r\n $(this).attr(\"style\", \"display:none\");\r\n $(\"#petitioncollapseAll\").removeAttr(\"style\");\r\n });\r\n\r\n\r\n $(document).on('click', '#referralcollapseAll', function (event) {\r\n var divs = $('.referral');\r\n\r\n divs.find('a[data-toggle=\"collapse\"]').each(function () {\r\n var objectID = $(this).attr('href');\r\n $(objectID).removeClass('in');\r\n $(objectID).removeAttr('style');\r\n $(this).addClass('collapsed');\r\n });\r\n\r\n $(this).attr(\"style\", \"display:none\");\r\n $(\"#referralexpandAll\").removeAttr(\"style\");\r\n });\r\n\r\n $(document).on('click', '#referralexpandAll', function (event) {\r\n var divs = $('.referral');\r\n\r\n divs.find('a[data-toggle=\"collapse\"]').each(function () {\r\n var objectID = $(this).attr('href');\r\n $(objectID).addClass('in');\r\n $(objectID).removeAttr('style');\r\n $(this).removeClass('collapsed');\r\n });\r\n $(this).attr(\"style\", \"display:none\");\r\n $(\"#referralcollapseAll\").removeAttr(\"style\");\r\n });\r\n\r\n\r\n $.fn.expand = function (object, expandobjectname) {\r\n $(expandobjectname).addClass('in');\r\n $(expandobjectname).removeAttr('style');\r\n $(object).removeClass('collapsed');\r\n }; \r\n\r\n\r\n $.fn.collapse = function (object, collapseobjectname) {\r\n $(collapseobjectname).removeClass('in');\r\n $(collapseobjectname).removeAttr('style');\r\n $(object).addClass('collapsed');\r\n }; \r\n\r\n\r\n}(jQuery);\r\n","!function(e){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=e();else if(\"function\"==typeof define&&define.amd)define([],e);else{var t;t=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this,t.flexibility=e()}}(function(){return function e(t,r,l){function n(f,i){if(!r[f]){if(!t[f]){var s=\"function\"==typeof require&&require;if(!i&&s)return s(f,!0);if(o)return o(f,!0);var a=new Error(\"Cannot find module '\"+f+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var c=r[f]={exports:{}};t[f][0].call(c.exports,function(e){var r=t[f][1][e];return n(r?r:e)},c,c.exports,e,t,r,l)}return r[f].exports}for(var o=\"function\"==typeof require&&require,f=0;f1&&\"flex-start\"===e.style.alignContent)for(t=0;l=e.lines[++n];)l.crossStart=t,t+=l.cross;else if(e.lines.length>1&&\"flex-end\"===e.style.alignContent)for(t=e.flexStyle.crossSpace;l=e.lines[++n];)l.crossStart=t,t+=l.cross;else if(e.lines.length>1&&\"center\"===e.style.alignContent)for(t=e.flexStyle.crossSpace/2;l=e.lines[++n];)l.crossStart=t,t+=l.cross;else if(e.lines.length>1&&\"space-between\"===e.style.alignContent)for(r=e.flexStyle.crossSpace/(e.lines.length-1),t=0;l=e.lines[++n];)l.crossStart=t,t+=l.cross+r;else if(e.lines.length>1&&\"space-around\"===e.style.alignContent)for(r=2*e.flexStyle.crossSpace/(2*e.lines.length),t=r/2;l=e.lines[++n];)l.crossStart=t,t+=l.cross+r;else for(r=e.flexStyle.crossSpace/e.lines.length,t=e.flexStyle.crossInnerBefore;l=e.lines[++n];)l.crossStart=t,l.cross+=r,t+=l.cross}},{}],2:[function(e,t,r){t.exports=function(e){for(var t,r=-1;line=e.lines[++r];)for(t=-1;child=line.children[++t];){var l=child.style.alignSelf;\"auto\"===l&&(l=e.style.alignItems),\"flex-start\"===l?child.flexStyle.crossStart=line.crossStart:\"flex-end\"===l?child.flexStyle.crossStart=line.crossStart+line.cross-child.flexStyle.crossOuter:\"center\"===l?child.flexStyle.crossStart=line.crossStart+(line.cross-child.flexStyle.crossOuter)/2:(child.flexStyle.crossStart=line.crossStart,child.flexStyle.crossOuter=line.cross,child.flexStyle.cross=child.flexStyle.crossOuter-child.flexStyle.crossBefore-child.flexStyle.crossAfter)}}},{}],3:[function(e,t,r){t.exports=function l(e,l){var t=\"row\"===l||\"row-reverse\"===l,r=e.mainAxis;if(r){var n=t&&\"inline\"===r||!t&&\"block\"===r;n||(e.flexStyle={main:e.flexStyle.cross,cross:e.flexStyle.main,mainOffset:e.flexStyle.crossOffset,crossOffset:e.flexStyle.mainOffset,mainBefore:e.flexStyle.crossBefore,mainAfter:e.flexStyle.crossAfter,crossBefore:e.flexStyle.mainBefore,crossAfter:e.flexStyle.mainAfter,mainInnerBefore:e.flexStyle.crossInnerBefore,mainInnerAfter:e.flexStyle.crossInnerAfter,crossInnerBefore:e.flexStyle.mainInnerBefore,crossInnerAfter:e.flexStyle.mainInnerAfter,mainBorderBefore:e.flexStyle.crossBorderBefore,mainBorderAfter:e.flexStyle.crossBorderAfter,crossBorderBefore:e.flexStyle.mainBorderBefore,crossBorderAfter:e.flexStyle.mainBorderAfter})}else t?e.flexStyle={main:e.style.width,cross:e.style.height,mainOffset:e.style.offsetWidth,crossOffset:e.style.offsetHeight,mainBefore:e.style.marginLeft,mainAfter:e.style.marginRight,crossBefore:e.style.marginTop,crossAfter:e.style.marginBottom,mainInnerBefore:e.style.paddingLeft,mainInnerAfter:e.style.paddingRight,crossInnerBefore:e.style.paddingTop,crossInnerAfter:e.style.paddingBottom,mainBorderBefore:e.style.borderLeftWidth,mainBorderAfter:e.style.borderRightWidth,crossBorderBefore:e.style.borderTopWidth,crossBorderAfter:e.style.borderBottomWidth}:e.flexStyle={main:e.style.height,cross:e.style.width,mainOffset:e.style.offsetHeight,crossOffset:e.style.offsetWidth,mainBefore:e.style.marginTop,mainAfter:e.style.marginBottom,crossBefore:e.style.marginLeft,crossAfter:e.style.marginRight,mainInnerBefore:e.style.paddingTop,mainInnerAfter:e.style.paddingBottom,crossInnerBefore:e.style.paddingLeft,crossInnerAfter:e.style.paddingRight,mainBorderBefore:e.style.borderTopWidth,mainBorderAfter:e.style.borderBottomWidth,crossBorderBefore:e.style.borderLeftWidth,crossBorderAfter:e.style.borderRightWidth},\"content-box\"===e.style.boxSizing&&(\"number\"==typeof e.flexStyle.main&&(e.flexStyle.main+=e.flexStyle.mainInnerBefore+e.flexStyle.mainInnerAfter+e.flexStyle.mainBorderBefore+e.flexStyle.mainBorderAfter),\"number\"==typeof e.flexStyle.cross&&(e.flexStyle.cross+=e.flexStyle.crossInnerBefore+e.flexStyle.crossInnerAfter+e.flexStyle.crossBorderBefore+e.flexStyle.crossBorderAfter));e.mainAxis=t?\"inline\":\"block\",e.crossAxis=t?\"block\":\"inline\",\"number\"==typeof e.style.flexBasis&&(e.flexStyle.main=e.style.flexBasis+e.flexStyle.mainInnerBefore+e.flexStyle.mainInnerAfter+e.flexStyle.mainBorderBefore+e.flexStyle.mainBorderAfter),e.flexStyle.mainOuter=e.flexStyle.main,e.flexStyle.crossOuter=e.flexStyle.cross,\"auto\"===e.flexStyle.mainOuter&&(e.flexStyle.mainOuter=e.flexStyle.mainOffset),\"auto\"===e.flexStyle.crossOuter&&(e.flexStyle.crossOuter=e.flexStyle.crossOffset),\"number\"==typeof e.flexStyle.mainBefore&&(e.flexStyle.mainOuter+=e.flexStyle.mainBefore),\"number\"==typeof e.flexStyle.mainAfter&&(e.flexStyle.mainOuter+=e.flexStyle.mainAfter),\"number\"==typeof e.flexStyle.crossBefore&&(e.flexStyle.crossOuter+=e.flexStyle.crossBefore),\"number\"==typeof e.flexStyle.crossAfter&&(e.flexStyle.crossOuter+=e.flexStyle.crossAfter)}},{}],4:[function(e,t,r){var l=e(\"../reduce\");t.exports=function(e){if(e.mainSpace>0){var t=l(e.children,function(e,t){return e+parseFloat(t.style.flexGrow)},0);t>0&&(e.main=l(e.children,function(r,l){return\"auto\"===l.flexStyle.main?l.flexStyle.main=l.flexStyle.mainOffset+parseFloat(l.style.flexGrow)/t*e.mainSpace:l.flexStyle.main+=parseFloat(l.style.flexGrow)/t*e.mainSpace,l.flexStyle.mainOuter=l.flexStyle.main+l.flexStyle.mainBefore+l.flexStyle.mainAfter,r+l.flexStyle.mainOuter},0),e.mainSpace=0)}}},{\"../reduce\":12}],5:[function(e,t,r){var l=e(\"../reduce\");t.exports=function(e){if(e.mainSpace<0){var t=l(e.children,function(e,t){return e+parseFloat(t.style.flexShrink)},0);t>0&&(e.main=l(e.children,function(r,l){return l.flexStyle.main+=parseFloat(l.style.flexShrink)/t*e.mainSpace,l.flexStyle.mainOuter=l.flexStyle.main+l.flexStyle.mainBefore+l.flexStyle.mainAfter,r+l.flexStyle.mainOuter},0),e.mainSpace=0)}}},{\"../reduce\":12}],6:[function(e,t,r){var l=e(\"../reduce\");t.exports=function(e){var t;e.lines=[t={main:0,cross:0,children:[]}];for(var r,n=-1;r=e.children[++n];)\"nowrap\"===e.style.flexWrap||0===t.children.length||\"auto\"===e.flexStyle.main||e.flexStyle.main-e.flexStyle.mainInnerBefore-e.flexStyle.mainInnerAfter-e.flexStyle.mainBorderBefore-e.flexStyle.mainBorderAfter>=t.main+r.flexStyle.mainOuter?(t.main+=r.flexStyle.mainOuter,t.cross=Math.max(t.cross,r.flexStyle.crossOuter)):e.lines.push(t={main:r.flexStyle.mainOuter,cross:r.flexStyle.crossOuter,children:[]}),t.children.push(r);e.flexStyle.mainLines=l(e.lines,function(e,t){return Math.max(e,t.main)},0),e.flexStyle.crossLines=l(e.lines,function(e,t){return e+t.cross},0),\"auto\"===e.flexStyle.main&&(e.flexStyle.main=Math.max(e.flexStyle.mainOffset,e.flexStyle.mainLines+e.flexStyle.mainInnerBefore+e.flexStyle.mainInnerAfter+e.flexStyle.mainBorderBefore+e.flexStyle.mainBorderAfter)),\"auto\"===e.flexStyle.cross&&(e.flexStyle.cross=Math.max(e.flexStyle.crossOffset,e.flexStyle.crossLines+e.flexStyle.crossInnerBefore+e.flexStyle.crossInnerAfter+e.flexStyle.crossBorderBefore+e.flexStyle.crossBorderAfter)),e.flexStyle.crossSpace=e.flexStyle.cross-e.flexStyle.crossInnerBefore-e.flexStyle.crossInnerAfter-e.flexStyle.crossBorderBefore-e.flexStyle.crossBorderAfter-e.flexStyle.crossLines,e.flexStyle.mainOuter=e.flexStyle.main+e.flexStyle.mainBefore+e.flexStyle.mainAfter,e.flexStyle.crossOuter=e.flexStyle.cross+e.flexStyle.crossBefore+e.flexStyle.crossAfter}},{\"../reduce\":12}],7:[function(e,t,r){function l(t){for(var r,l=-1;r=t.children[++l];)e(\"./flex-direction\")(r,t.style.flexDirection);e(\"./flex-direction\")(t,t.style.flexDirection),e(\"./order\")(t),e(\"./flexbox-lines\")(t),e(\"./align-content\")(t),l=-1;for(var n;n=t.lines[++l];)n.mainSpace=t.flexStyle.main-t.flexStyle.mainInnerBefore-t.flexStyle.mainInnerAfter-t.flexStyle.mainBorderBefore-t.flexStyle.mainBorderAfter-n.main,e(\"./flex-grow\")(n),e(\"./flex-shrink\")(n),e(\"./margin-main\")(n),e(\"./margin-cross\")(n),e(\"./justify-content\")(n,t.style.justifyContent,t);e(\"./align-items\")(t)}t.exports=l},{\"./align-content\":1,\"./align-items\":2,\"./flex-direction\":3,\"./flex-grow\":4,\"./flex-shrink\":5,\"./flexbox-lines\":6,\"./justify-content\":8,\"./margin-cross\":9,\"./margin-main\":10,\"./order\":11}],8:[function(e,t,r){t.exports=function(e,t,r){var l,n,o,f=r.flexStyle.mainInnerBefore,i=-1;if(\"flex-end\"===t)for(l=e.mainSpace,l+=f;o=e.children[++i];)o.flexStyle.mainStart=l,l+=o.flexStyle.mainOuter;else if(\"center\"===t)for(l=e.mainSpace/2,l+=f;o=e.children[++i];)o.flexStyle.mainStart=l,l+=o.flexStyle.mainOuter;else if(\"space-between\"===t)for(n=e.mainSpace/(e.children.length-1),l=0,l+=f;o=e.children[++i];)o.flexStyle.mainStart=l,l+=o.flexStyle.mainOuter+n;else if(\"space-around\"===t)for(n=2*e.mainSpace/(2*e.children.length),l=n/2,l+=f;o=e.children[++i];)o.flexStyle.mainStart=l,l+=o.flexStyle.mainOuter+n;else for(l=0,l+=f;o=e.children[++i];)o.flexStyle.mainStart=l,l+=o.flexStyle.mainOuter}},{}],9:[function(e,t,r){t.exports=function(e){for(var t,r=-1;t=e.children[++r];){var l=0;\"auto\"===t.flexStyle.crossBefore&&++l,\"auto\"===t.flexStyle.crossAfter&&++l;var n=e.cross-t.flexStyle.crossOuter;\"auto\"===t.flexStyle.crossBefore&&(t.flexStyle.crossBefore=n/l),\"auto\"===t.flexStyle.crossAfter&&(t.flexStyle.crossAfter=n/l),\"auto\"===t.flexStyle.cross?t.flexStyle.crossOuter=t.flexStyle.crossOffset+t.flexStyle.crossBefore+t.flexStyle.crossAfter:t.flexStyle.crossOuter=t.flexStyle.cross+t.flexStyle.crossBefore+t.flexStyle.crossAfter}}},{}],10:[function(e,t,r){t.exports=function(e){for(var t,r=0,l=-1;t=e.children[++l];)\"auto\"===t.flexStyle.mainBefore&&++r,\"auto\"===t.flexStyle.mainAfter&&++r;if(r>0){for(l=-1;t=e.children[++l];)\"auto\"===t.flexStyle.mainBefore&&(t.flexStyle.mainBefore=e.mainSpace/r),\"auto\"===t.flexStyle.mainAfter&&(t.flexStyle.mainAfter=e.mainSpace/r),\"auto\"===t.flexStyle.main?t.flexStyle.mainOuter=t.flexStyle.mainOffset+t.flexStyle.mainBefore+t.flexStyle.mainAfter:t.flexStyle.mainOuter=t.flexStyle.main+t.flexStyle.mainBefore+t.flexStyle.mainAfter;e.mainSpace=0}}},{}],11:[function(e,t,r){var l=/^(column|row)-reverse$/;t.exports=function(e){e.children.sort(function(e,t){return e.style.order-t.style.order||e.index-t.index}),l.test(e.style.flexDirection)&&e.children.reverse()}},{}],12:[function(e,t,r){function l(e,t,r){for(var l=e.length,n=-1;++n, https://github.com/MrRio/jsPDF\n * 2010 Aaron Spike, https://github.com/acspike\n * 2012 Willow Systems Corporation, willow-systems.com\n * 2012 Pablo Hess, https://github.com/pablohess\n * 2012 Florian Jenett, https://github.com/fjenett\n * 2013 Warren Weckesser, https://github.com/warrenweckesser\n * 2013 Youssef Beddad, https://github.com/lifof\n * 2013 Lee Driscoll, https://github.com/lsdriscoll\n * 2013 Stefan Slonevskiy, https://github.com/stefslon\n * 2013 Jeremy Morel, https://github.com/jmorel\n * 2013 Christoph Hartmann, https://github.com/chris-rock\n * 2014 Juan Pablo Gaviria, https://github.com/juanpgaviria\n * 2014 James Makes, https://github.com/dollaruw\n * 2014 Diego Casorran, https://github.com/diegocr\n * 2014 Steven Spungin, https://github.com/Flamenco\n * 2014 Kenneth Glassey, https://github.com/Gavvers\n *\n * Licensed under the MIT License\n *\n * Contributor(s):\n * siefkenj, ahwolf, rickygu, Midnith, saintclair, eaparango,\n * kim3er, mfo, alnorth, Flamenco\n */\n\n/**\n * Creates new jsPDF document object instance.\n *\n * @class\n * @param orientation One of \"portrait\" or \"landscape\" (or shortcuts \"p\" (Default), \"l\")\n * @param unit Measurement unit to be used when coordinates are specified.\n * One of \"pt\" (points), \"mm\" (Default), \"cm\", \"in\"\n * @param format One of 'pageFormats' as shown below, default: a4\n * @returns {jsPDF}\n * @name jsPDF\n */\nvar jsPDF = function (global) {\n 'use strict';\n\n var pdfVersion = '1.3',\n pageFormats = { // Size in pt of various paper formats\n 'a0': [2383.94, 3370.39],\n 'a1': [1683.78, 2383.94],\n 'a2': [1190.55, 1683.78],\n 'a3': [841.89, 1190.55],\n 'a4': [595.28, 841.89],\n 'a5': [419.53, 595.28],\n 'a6': [297.64, 419.53],\n 'a7': [209.76, 297.64],\n 'a8': [147.40, 209.76],\n 'a9': [104.88, 147.40],\n 'a10': [73.70, 104.88],\n 'b0': [2834.65, 4008.19],\n 'b1': [2004.09, 2834.65],\n 'b2': [1417.32, 2004.09],\n 'b3': [1000.63, 1417.32],\n 'b4': [708.66, 1000.63],\n 'b5': [498.90, 708.66],\n 'b6': [354.33, 498.90],\n 'b7': [249.45, 354.33],\n 'b8': [175.75, 249.45],\n 'b9': [124.72, 175.75],\n 'b10': [87.87, 124.72],\n 'c0': [2599.37, 3676.54],\n 'c1': [1836.85, 2599.37],\n 'c2': [1298.27, 1836.85],\n 'c3': [918.43, 1298.27],\n 'c4': [649.13, 918.43],\n 'c5': [459.21, 649.13],\n 'c6': [323.15, 459.21],\n 'c7': [229.61, 323.15],\n 'c8': [161.57, 229.61],\n 'c9': [113.39, 161.57],\n 'c10': [79.37, 113.39],\n 'dl': [311.81, 623.62],\n 'letter': [612, 792],\n 'government-letter': [576, 756],\n 'legal': [612, 1008],\n 'junior-legal': [576, 360],\n 'ledger': [1224, 792],\n 'tabloid': [792, 1224],\n 'credit-card': [153, 243]\n };\n\n /**\n * jsPDF's Internal PubSub Implementation.\n * See mrrio.github.io/jsPDF/doc/symbols/PubSub.html\n * Backward compatible rewritten on 2014 by\n * Diego Casorran, https://github.com/diegocr\n *\n * @class\n * @name PubSub\n * @ignore This should not be in the public docs.\n */\n function PubSub(context) {\n var topics = {};\n\n this.subscribe = function (topic, callback, once) {\n if (typeof callback !== 'function') {\n return false;\n }\n\n if (!topics.hasOwnProperty(topic)) {\n topics[topic] = {};\n }\n\n var id = Math.random().toString(35);\n topics[topic][id] = [callback, !!once];\n\n return id;\n };\n\n this.unsubscribe = function (token) {\n for (var topic in topics) {\n if (topics[topic][token]) {\n delete topics[topic][token];\n return true;\n }\n }\n return false;\n };\n\n this.publish = function (topic) {\n if (topics.hasOwnProperty(topic)) {\n var args = Array.prototype.slice.call(arguments, 1),\n idr = [];\n\n for (var id in topics[topic]) {\n var sub = topics[topic][id];\n try {\n sub[0].apply(context, args);\n } catch (ex) {\n if (global.console) {\n console.error('jsPDF PubSub Error', ex.message, ex);\n }\n }\n if (sub[1]) idr.push(id);\n }\n if (idr.length) idr.forEach(this.unsubscribe);\n }\n };\n }\n\n /**\n * @constructor\n * @private\n */\n function jsPDF(orientation, unit, format, compressPdf) {\n var options = {};\n\n if ((typeof orientation === 'undefined' ? 'undefined' : _typeof(orientation)) === 'object') {\n options = orientation;\n\n orientation = options.orientation;\n unit = options.unit || unit;\n format = options.format || format;\n compressPdf = options.compress || options.compressPdf || compressPdf;\n }\n\n // Default options\n unit = unit || 'mm';\n format = format || 'a4';\n orientation = ('' + (orientation || 'P')).toLowerCase();\n\n var format_as_string = ('' + format).toLowerCase(),\n compress = !!compressPdf && typeof Uint8Array === 'function',\n textColor = options.textColor || '0 g',\n drawColor = options.drawColor || '0 G',\n activeFontSize = options.fontSize || 16,\n lineHeightProportion = options.lineHeight || 1.15,\n lineWidth = options.lineWidth || 0.200025,\n // 2mm\n objectNumber = 2,\n // 'n' Current object number\n outToPages = !1,\n // switches where out() prints. outToPages true = push to pages obj. outToPages false = doc builder content\n offsets = [],\n // List of offsets. Activated and reset by buildDocument(). Pupulated by various calls buildDocument makes.\n fonts = {},\n // collection of font objects, where key is fontKey - a dynamically created label for a given font.\n fontmap = {},\n // mapping structure fontName > fontStyle > font key - performance layer. See addFont()\n activeFontKey,\n // will be string representing the KEY of the font as combination of fontName + fontStyle\n k,\n // Scale factor\n tmp,\n page = 0,\n currentPage,\n pages = [],\n pagesContext = [],\n // same index as pages and pagedim\n pagedim = [],\n content = [],\n additionalObjects = [],\n lineCapID = 0,\n lineJoinID = 0,\n content_length = 0,\n pageWidth,\n pageHeight,\n pageMode,\n zoomMode,\n layoutMode,\n documentProperties = {\n 'title': '',\n 'subject': '',\n 'author': '',\n 'keywords': '',\n 'creator': ''\n },\n API = {},\n events = new PubSub(API),\n\n\n /////////////////////\n // Private functions\n /////////////////////\n f2 = function f2(number) {\n return number.toFixed(2); // Ie, %.2f\n },\n f3 = function f3(number) {\n return number.toFixed(3); // Ie, %.3f\n },\n padd2 = function padd2(number) {\n return ('0' + parseInt(number)).slice(-2);\n },\n out = function out(string) {\n if (outToPages) {\n /* set by beginPage */\n pages[currentPage].push(string);\n } else {\n // +1 for '\\n' that will be used to join 'content'\n content_length += string.length + 1;\n content.push(string);\n }\n },\n newObject = function newObject() {\n // Begin a new object\n objectNumber++;\n offsets[objectNumber] = content_length;\n out(objectNumber + ' 0 obj');\n return objectNumber;\n },\n\n // Does not output the object until after the pages have been output.\n // Returns an object containing the objectId and content.\n // All pages have been added so the object ID can be estimated to start right after.\n // This does not modify the current objectNumber; It must be updated after the newObjects are output.\n newAdditionalObject = function newAdditionalObject() {\n var objId = pages.length * 2 + 1;\n objId += additionalObjects.length;\n var obj = {\n objId: objId,\n content: ''\n };\n additionalObjects.push(obj);\n return obj;\n },\n\n // Does not output the object. The caller must call newObjectDeferredBegin(oid) before outputing any data\n newObjectDeferred = function newObjectDeferred() {\n objectNumber++;\n offsets[objectNumber] = function () {\n return content_length;\n };\n return objectNumber;\n },\n newObjectDeferredBegin = function newObjectDeferredBegin(oid) {\n offsets[oid] = content_length;\n },\n putStream = function putStream(str) {\n out('stream');\n out(str);\n out('endstream');\n },\n putPages = function putPages() {\n var n,\n p,\n arr,\n i,\n deflater,\n adler32,\n adler32cs,\n wPt,\n hPt,\n pageObjectNumbers = [];\n\n adler32cs = global.adler32cs || jsPDF.adler32cs;\n if (compress && typeof adler32cs === 'undefined') {\n compress = false;\n }\n\n // outToPages = false as set in endDocument(). out() writes to content.\n\n for (n = 1; n <= page; n++) {\n pageObjectNumbers.push(newObject());\n wPt = (pageWidth = pagedim[n].width) * k;\n hPt = (pageHeight = pagedim[n].height) * k;\n out('<>');\n out('endobj');\n\n // Page content\n p = pages[n].join('\\n');\n newObject();\n if (compress) {\n arr = [];\n i = p.length;\n while (i--) {\n arr[i] = p.charCodeAt(i);\n }\n adler32 = adler32cs.from(p);\n deflater = new Deflater(6);\n deflater.append(new Uint8Array(arr));\n p = deflater.flush();\n arr = new Uint8Array(p.length + 6);\n arr.set(new Uint8Array([120, 156])), arr.set(p, 2);\n arr.set(new Uint8Array([adler32 & 0xFF, adler32 >> 8 & 0xFF, adler32 >> 16 & 0xFF, adler32 >> 24 & 0xFF]), p.length + 2);\n p = String.fromCharCode.apply(null, arr);\n out('<>');\n } else {\n out('<>');\n }\n putStream(p);\n out('endobj');\n }\n offsets[1] = content_length;\n out('1 0 obj');\n out('<>');\n out('endobj');\n events.publish('postPutPages');\n },\n putFont = function putFont(font) {\n font.objectNumber = newObject();\n out('<>');\n out('endobj');\n },\n putFonts = function putFonts() {\n for (var fontKey in fonts) {\n if (fonts.hasOwnProperty(fontKey)) {\n putFont(fonts[fontKey]);\n }\n }\n },\n putXobjectDict = function putXobjectDict() {\n // Loop through images, or other data objects\n events.publish('putXobjectDict');\n },\n putResourceDictionary = function putResourceDictionary() {\n out('/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]');\n out('/Font <<');\n\n // Do this for each font, the '1' bit is the index of the font\n for (var fontKey in fonts) {\n if (fonts.hasOwnProperty(fontKey)) {\n out('/' + fontKey + ' ' + fonts[fontKey].objectNumber + ' 0 R');\n }\n }\n out('>>');\n out('/XObject <<');\n putXobjectDict();\n out('>>');\n },\n putResources = function putResources() {\n putFonts();\n events.publish('putResources');\n // Resource dictionary\n offsets[2] = content_length;\n out('2 0 obj');\n out('<<');\n putResourceDictionary();\n out('>>');\n out('endobj');\n events.publish('postPutResources');\n },\n putAdditionalObjects = function putAdditionalObjects() {\n events.publish('putAdditionalObjects');\n for (var i = 0; i < additionalObjects.length; i++) {\n var obj = additionalObjects[i];\n offsets[obj.objId] = content_length;\n out(obj.objId + ' 0 obj');\n out(obj.content);\n out('endobj');\n }\n objectNumber += additionalObjects.length;\n events.publish('postPutAdditionalObjects');\n },\n addToFontDictionary = function addToFontDictionary(fontKey, fontName, fontStyle) {\n // this is mapping structure for quick font key lookup.\n // returns the KEY of the font (ex: \"F1\") for a given\n // pair of font name and type (ex: \"Arial\". \"Italic\")\n if (!fontmap.hasOwnProperty(fontName)) {\n fontmap[fontName] = {};\n }\n fontmap[fontName][fontStyle] = fontKey;\n },\n\n /**\n * FontObject describes a particular font as member of an instnace of jsPDF\n *\n * It's a collection of properties like 'id' (to be used in PDF stream),\n * 'fontName' (font's family name), 'fontStyle' (font's style variant label)\n *\n * @class\n * @public\n * @property id {String} PDF-document-instance-specific label assinged to the font.\n * @property PostScriptName {String} PDF specification full name for the font\n * @property encoding {Object} Encoding_name-to-Font_metrics_object mapping.\n * @name FontObject\n * @ignore This should not be in the public docs.\n */\n addFont = function addFont(PostScriptName, fontName, fontStyle, encoding) {\n var fontKey = 'F' + (Object.keys(fonts).length + 1).toString(10),\n\n // This is FontObject\n font = fonts[fontKey] = {\n 'id': fontKey,\n 'PostScriptName': PostScriptName,\n 'fontName': fontName,\n 'fontStyle': fontStyle,\n 'encoding': encoding,\n 'metadata': {}\n };\n addToFontDictionary(fontKey, fontName, fontStyle);\n events.publish('addFont', font);\n\n return fontKey;\n },\n addFonts = function addFonts() {\n\n var HELVETICA = \"helvetica\",\n TIMES = \"times\",\n COURIER = \"courier\",\n NORMAL = \"normal\",\n BOLD = \"bold\",\n ITALIC = \"italic\",\n BOLD_ITALIC = \"bolditalic\",\n encoding = 'StandardEncoding',\n ZAPF = \"zapfdingbats\",\n standardFonts = [['Helvetica', HELVETICA, NORMAL], ['Helvetica-Bold', HELVETICA, BOLD], ['Helvetica-Oblique', HELVETICA, ITALIC], ['Helvetica-BoldOblique', HELVETICA, BOLD_ITALIC], ['Courier', COURIER, NORMAL], ['Courier-Bold', COURIER, BOLD], ['Courier-Oblique', COURIER, ITALIC], ['Courier-BoldOblique', COURIER, BOLD_ITALIC], ['Times-Roman', TIMES, NORMAL], ['Times-Bold', TIMES, BOLD], ['Times-Italic', TIMES, ITALIC], ['Times-BoldItalic', TIMES, BOLD_ITALIC], ['ZapfDingbats', ZAPF]];\n\n for (var i = 0, l = standardFonts.length; i < l; i++) {\n var fontKey = addFont(standardFonts[i][0], standardFonts[i][1], standardFonts[i][2], encoding);\n\n // adding aliases for standard fonts, this time matching the capitalization\n var parts = standardFonts[i][0].split('-');\n addToFontDictionary(fontKey, parts[0], parts[1] || '');\n }\n events.publish('addFonts', {\n fonts: fonts,\n dictionary: fontmap\n });\n },\n SAFE = function __safeCall(fn) {\n fn.foo = function __safeCallWrapper() {\n try {\n return fn.apply(this, arguments);\n } catch (e) {\n var stack = e.stack || '';\n if (~stack.indexOf(' at ')) stack = stack.split(\" at \")[1];\n var m = \"Error in function \" + stack.split(\"\\n\")[0].split('<')[0] + \": \" + e.message;\n if (global.console) {\n global.console.error(m, e);\n if (global.alert) alert(m);\n } else {\n throw new Error(m);\n }\n }\n };\n fn.foo.bar = fn;\n return fn.foo;\n },\n to8bitStream = function to8bitStream(text, flags) {\n /**\n * PDF 1.3 spec:\n * \"For text strings encoded in Unicode, the first two bytes must be 254 followed by\n * 255, representing the Unicode byte order marker, U+FEFF. (This sequence conflicts\n * with the PDFDocEncoding character sequence thorn ydieresis, which is unlikely\n * to be a meaningful beginning of a word or phrase.) The remainder of the\n * string consists of Unicode character codes, according to the UTF-16 encoding\n * specified in the Unicode standard, version 2.0. Commonly used Unicode values\n * are represented as 2 bytes per character, with the high-order byte appearing first\n * in the string.\"\n *\n * In other words, if there are chars in a string with char code above 255, we\n * recode the string to UCS2 BE - string doubles in length and BOM is prepended.\n *\n * HOWEVER!\n * Actual *content* (body) text (as opposed to strings used in document properties etc)\n * does NOT expect BOM. There, it is treated as a literal GID (Glyph ID)\n *\n * Because of Adobe's focus on \"you subset your fonts!\" you are not supposed to have\n * a font that maps directly Unicode (UCS2 / UTF16BE) code to font GID, but you could\n * fudge it with \"Identity-H\" encoding and custom CIDtoGID map that mimics Unicode\n * code page. There, however, all characters in the stream are treated as GIDs,\n * including BOM, which is the reason we need to skip BOM in content text (i.e. that\n * that is tied to a font).\n *\n * To signal this \"special\" PDFEscape / to8bitStream handling mode,\n * API.text() function sets (unless you overwrite it with manual values\n * given to API.text(.., flags) )\n * flags.autoencode = true\n * flags.noBOM = true\n *\n * ===================================================================================\n * `flags` properties relied upon:\n * .sourceEncoding = string with encoding label.\n * \"Unicode\" by default. = encoding of the incoming text.\n * pass some non-existing encoding name\n * (ex: 'Do not touch my strings! I know what I am doing.')\n * to make encoding code skip the encoding step.\n * .outputEncoding = Either valid PDF encoding name\n * (must be supported by jsPDF font metrics, otherwise no encoding)\n * or a JS object, where key = sourceCharCode, value = outputCharCode\n * missing keys will be treated as: sourceCharCode === outputCharCode\n * .noBOM\n * See comment higher above for explanation for why this is important\n * .autoencode\n * See comment higher above for explanation for why this is important\n */\n\n var i, l, sourceEncoding, encodingBlock, outputEncoding, newtext, isUnicode, ch, bch;\n\n flags = flags || {};\n sourceEncoding = flags.sourceEncoding || 'Unicode';\n outputEncoding = flags.outputEncoding;\n\n // This 'encoding' section relies on font metrics format\n // attached to font objects by, among others,\n // \"Willow Systems' standard_font_metrics plugin\"\n // see jspdf.plugin.standard_font_metrics.js for format\n // of the font.metadata.encoding Object.\n // It should be something like\n // .encoding = {'codePages':['WinANSI....'], 'WinANSI...':{code:code, ...}}\n // .widths = {0:width, code:width, ..., 'fof':divisor}\n // .kerning = {code:{previous_char_code:shift, ..., 'fof':-divisor},...}\n if ((flags.autoencode || outputEncoding) && fonts[activeFontKey].metadata && fonts[activeFontKey].metadata[sourceEncoding] && fonts[activeFontKey].metadata[sourceEncoding].encoding) {\n encodingBlock = fonts[activeFontKey].metadata[sourceEncoding].encoding;\n\n // each font has default encoding. Some have it clearly defined.\n if (!outputEncoding && fonts[activeFontKey].encoding) {\n outputEncoding = fonts[activeFontKey].encoding;\n }\n\n // Hmmm, the above did not work? Let's try again, in different place.\n if (!outputEncoding && encodingBlock.codePages) {\n outputEncoding = encodingBlock.codePages[0]; // let's say, first one is the default\n }\n\n if (typeof outputEncoding === 'string') {\n outputEncoding = encodingBlock[outputEncoding];\n }\n // we want output encoding to be a JS Object, where\n // key = sourceEncoding's character code and\n // value = outputEncoding's character code.\n if (outputEncoding) {\n isUnicode = false;\n newtext = [];\n for (i = 0, l = text.length; i < l; i++) {\n ch = outputEncoding[text.charCodeAt(i)];\n if (ch) {\n newtext.push(String.fromCharCode(ch));\n } else {\n newtext.push(text[i]);\n }\n\n // since we are looping over chars anyway, might as well\n // check for residual unicodeness\n if (newtext[i].charCodeAt(0) >> 8) {\n /* more than 255 */\n isUnicode = true;\n }\n }\n text = newtext.join('');\n }\n }\n\n i = text.length;\n // isUnicode may be set to false above. Hence the triple-equal to undefined\n while (isUnicode === undefined && i !== 0) {\n if (text.charCodeAt(i - 1) >> 8) {\n /* more than 255 */\n isUnicode = true;\n }\n i--;\n }\n if (!isUnicode) {\n return text;\n }\n\n newtext = flags.noBOM ? [] : [254, 255];\n for (i = 0, l = text.length; i < l; i++) {\n ch = text.charCodeAt(i);\n bch = ch >> 8; // divide by 256\n if (bch >> 8) {\n /* something left after dividing by 256 second time */\n throw new Error(\"Character at position \" + i + \" of string '\" + text + \"' exceeds 16bits. Cannot be encoded into UCS-2 BE\");\n }\n newtext.push(bch);\n newtext.push(ch - (bch << 8));\n }\n return String.fromCharCode.apply(undefined, newtext);\n },\n pdfEscape = function pdfEscape(text, flags) {\n /**\n * Replace '/', '(', and ')' with pdf-safe versions\n *\n * Doing to8bitStream does NOT make this PDF display unicode text. For that\n * we also need to reference a unicode font and embed it - royal pain in the rear.\n *\n * There is still a benefit to to8bitStream - PDF simply cannot handle 16bit chars,\n * which JavaScript Strings are happy to provide. So, while we still cannot display\n * 2-byte characters property, at least CONDITIONALLY converting (entire string containing)\n * 16bit chars to (USC-2-BE) 2-bytes per char + BOM streams we ensure that entire PDF\n * is still parseable.\n * This will allow immediate support for unicode in document properties strings.\n */\n return to8bitStream(text, flags).replace(/\\\\/g, '\\\\\\\\').replace(/\\(/g, '\\\\(').replace(/\\)/g, '\\\\)');\n },\n putInfo = function putInfo() {\n out('/Producer (jsPDF ' + jsPDF.version + ')');\n for (var key in documentProperties) {\n if (documentProperties.hasOwnProperty(key) && documentProperties[key]) {\n out('/' + key.substr(0, 1).toUpperCase() + key.substr(1) + ' (' + pdfEscape(documentProperties[key]) + ')');\n }\n }\n var created = new Date(),\n tzoffset = created.getTimezoneOffset(),\n tzsign = tzoffset < 0 ? '+' : '-',\n tzhour = Math.floor(Math.abs(tzoffset / 60)),\n tzmin = Math.abs(tzoffset % 60),\n tzstr = [tzsign, padd2(tzhour), \"'\", padd2(tzmin), \"'\"].join('');\n out(['/CreationDate (D:', created.getFullYear(), padd2(created.getMonth() + 1), padd2(created.getDate()), padd2(created.getHours()), padd2(created.getMinutes()), padd2(created.getSeconds()), tzstr, ')'].join(''));\n },\n putCatalog = function putCatalog() {\n out('/Type /Catalog');\n out('/Pages 1 0 R');\n // PDF13ref Section 7.2.1\n if (!zoomMode) zoomMode = 'fullwidth';\n switch (zoomMode) {\n case 'fullwidth':\n out('/OpenAction [3 0 R /FitH null]');\n break;\n case 'fullheight':\n out('/OpenAction [3 0 R /FitV null]');\n break;\n case 'fullpage':\n out('/OpenAction [3 0 R /Fit]');\n break;\n case 'original':\n out('/OpenAction [3 0 R /XYZ null null 1]');\n break;\n default:\n var pcn = '' + zoomMode;\n if (pcn.substr(pcn.length - 1) === '%') zoomMode = parseInt(zoomMode) / 100;\n if (typeof zoomMode === 'number') {\n out('/OpenAction [3 0 R /XYZ null null ' + f2(zoomMode) + ']');\n }\n }\n if (!layoutMode) layoutMode = 'continuous';\n switch (layoutMode) {\n case 'continuous':\n out('/PageLayout /OneColumn');\n break;\n case 'single':\n out('/PageLayout /SinglePage');\n break;\n case 'two':\n case 'twoleft':\n out('/PageLayout /TwoColumnLeft');\n break;\n case 'tworight':\n out('/PageLayout /TwoColumnRight');\n break;\n }\n if (pageMode) {\n /**\n * A name object specifying how the document should be displayed when opened:\n * UseNone : Neither document outline nor thumbnail images visible -- DEFAULT\n * UseOutlines : Document outline visible\n * UseThumbs : Thumbnail images visible\n * FullScreen : Full-screen mode, with no menu bar, window controls, or any other window visible\n */\n out('/PageMode /' + pageMode);\n }\n events.publish('putCatalog');\n },\n putTrailer = function putTrailer() {\n out('/Size ' + (objectNumber + 1));\n out('/Root ' + objectNumber + ' 0 R');\n out('/Info ' + (objectNumber - 1) + ' 0 R');\n },\n beginPage = function beginPage(width, height) {\n // Dimensions are stored as user units and converted to points on output\n var orientation = typeof height === 'string' && height.toLowerCase();\n if (typeof width === 'string') {\n var format = width.toLowerCase();\n if (pageFormats.hasOwnProperty(format)) {\n width = pageFormats[format][0] / k;\n height = pageFormats[format][1] / k;\n }\n }\n if (Array.isArray(width)) {\n height = width[1];\n width = width[0];\n }\n if (orientation) {\n switch (orientation.substr(0, 1)) {\n case 'l':\n if (height > width) orientation = 's';\n break;\n case 'p':\n if (width > height) orientation = 's';\n break;\n }\n if (orientation === 's') {\n tmp = width;\n width = height;\n height = tmp;\n }\n }\n outToPages = true;\n pages[++page] = [];\n pagedim[page] = {\n width: Number(width) || pageWidth,\n height: Number(height) || pageHeight\n };\n pagesContext[page] = {};\n _setPage(page);\n },\n _addPage = function _addPage() {\n beginPage.apply(this, arguments);\n // Set line width\n out(f2(lineWidth * k) + ' w');\n // Set draw color\n out(drawColor);\n // resurrecting non-default line caps, joins\n if (lineCapID !== 0) {\n out(lineCapID + ' J');\n }\n if (lineJoinID !== 0) {\n out(lineJoinID + ' j');\n }\n events.publish('addPage', {\n pageNumber: page\n });\n },\n _deletePage = function _deletePage(n) {\n if (n > 0 && n <= page) {\n pages.splice(n, 1);\n pagedim.splice(n, 1);\n page--;\n if (currentPage > page) {\n currentPage = page;\n }\n this.setPage(currentPage);\n }\n },\n _setPage = function _setPage(n) {\n if (n > 0 && n <= page) {\n currentPage = n;\n pageWidth = pagedim[n].width;\n pageHeight = pagedim[n].height;\n }\n },\n\n /**\n * Returns a document-specific font key - a label assigned to a\n * font name + font type combination at the time the font was added\n * to the font inventory.\n *\n * Font key is used as label for the desired font for a block of text\n * to be added to the PDF document stream.\n * @private\n * @function\n * @param fontName {String} can be undefined on \"falthy\" to indicate \"use current\"\n * @param fontStyle {String} can be undefined on \"falthy\" to indicate \"use current\"\n * @returns {String} Font key.\n */\n _getFont = function _getFont(fontName, fontStyle) {\n var key;\n\n fontName = fontName !== undefined ? fontName : fonts[activeFontKey].fontName;\n fontStyle = fontStyle !== undefined ? fontStyle : fonts[activeFontKey].fontStyle;\n\n if (fontName !== undefined) {\n fontName = fontName.toLowerCase();\n }\n switch (fontName) {\n case 'sans-serif':\n case 'verdana':\n case 'arial':\n case 'helvetica':\n fontName = 'helvetica';\n break;\n case 'fixed':\n case 'monospace':\n case 'terminal':\n case 'courier':\n fontName = 'courier';\n break;\n case 'serif':\n case 'cursive':\n case 'fantasy':\n default:\n fontName = 'times';\n break;\n }\n\n try {\n // get a string like 'F3' - the KEY corresponding tot he font + type combination.\n key = fontmap[fontName][fontStyle];\n } catch (e) {}\n\n if (!key) {\n //throw new Error(\"Unable to look up font label for font '\" + fontName + \"', '\"\n //+ fontStyle + \"'. Refer to getFontList() for available fonts.\");\n key = fontmap['times'][fontStyle];\n if (key == null) {\n key = fontmap['times']['normal'];\n }\n }\n return key;\n },\n buildDocument = function buildDocument() {\n outToPages = false; // switches out() to content\n\n objectNumber = 2;\n content_length = 0;\n content = [];\n offsets = [];\n additionalObjects = [];\n // Added for AcroForm\n events.publish('buildDocument');\n\n // putHeader()\n out('%PDF-' + pdfVersion);\n\n putPages();\n\n // Must happen after putPages\n // Modifies current object Id\n putAdditionalObjects();\n\n putResources();\n\n // Info\n newObject();\n out('<<');\n putInfo();\n out('>>');\n out('endobj');\n\n // Catalog\n newObject();\n out('<<');\n putCatalog();\n out('>>');\n out('endobj');\n\n // Cross-ref\n var o = content_length,\n i,\n p = \"0000000000\";\n out('xref');\n out('0 ' + (objectNumber + 1));\n out(p + ' 65535 f ');\n for (i = 1; i <= objectNumber; i++) {\n var offset = offsets[i];\n if (typeof offset === 'function') {\n out((p + offsets[i]()).slice(-10) + ' 00000 n ');\n } else {\n out((p + offsets[i]).slice(-10) + ' 00000 n ');\n }\n }\n // Trailer\n out('trailer');\n out('<<');\n putTrailer();\n out('>>');\n out('startxref');\n out('' + o);\n out('%%EOF');\n\n outToPages = true;\n\n return content.join('\\n');\n },\n getStyle = function getStyle(style) {\n // see path-painting operators in PDF spec\n var op = 'S'; // stroke\n if (style === 'F') {\n op = 'f'; // fill\n } else if (style === 'FD' || style === 'DF') {\n op = 'B'; // both\n } else if (style === 'f' || style === 'f*' || style === 'B' || style === 'B*') {\n /*\n Allow direct use of these PDF path-painting operators:\n - f\tfill using nonzero winding number rule\n - f*\tfill using even-odd rule\n - B\tfill then stroke with fill using non-zero winding number rule\n - B*\tfill then stroke with fill using even-odd rule\n */\n op = style;\n }\n return op;\n },\n getArrayBuffer = function getArrayBuffer() {\n var data = buildDocument(),\n len = data.length,\n ab = new ArrayBuffer(len),\n u8 = new Uint8Array(ab);\n\n while (len--) {\n u8[len] = data.charCodeAt(len);\n }return ab;\n },\n getBlob = function getBlob() {\n return new Blob([getArrayBuffer()], {\n type: \"application/pdf\"\n });\n },\n\n /**\n * Generates the PDF document.\n *\n * If `type` argument is undefined, output is raw body of resulting PDF returned as a string.\n *\n * @param {String} type A string identifying one of the possible output types.\n * @param {Object} options An object providing some additional signalling to PDF generator.\n * @function\n * @returns {jsPDF}\n * @methodOf jsPDF#\n * @name output\n */\n _output = SAFE(function (type, options) {\n var datauri = ('' + type).substr(0, 6) === 'dataur' ? 'data:application/pdf;base64,' + btoa(buildDocument()) : 0;\n\n switch (type) {\n case undefined:\n return buildDocument();\n case 'save':\n if (navigator.getUserMedia) {\n if (global.URL === undefined || global.URL.createObjectURL === undefined) {\n return API.output('dataurlnewwindow');\n }\n }\n saveAs(getBlob(), options);\n if (typeof saveAs.unload === 'function') {\n if (global.setTimeout) {\n setTimeout(saveAs.unload, 911);\n }\n }\n break;\n case 'arraybuffer':\n return getArrayBuffer();\n case 'blob':\n return getBlob();\n case 'bloburi':\n case 'bloburl':\n // User is responsible of calling revokeObjectURL\n return global.URL && global.URL.createObjectURL(getBlob()) || void 0;\n case 'datauristring':\n case 'dataurlstring':\n return datauri;\n case 'dataurlnewwindow':\n var nW = global.open(datauri);\n if (nW || typeof safari === \"undefined\") return nW;\n /* pass through */\n case 'datauri':\n case 'dataurl':\n return global.document.location.href = datauri;\n default:\n throw new Error('Output type \"' + type + '\" is not supported.');\n }\n // @TODO: Add different output options\n });\n\n switch (unit) {\n case 'pt':\n k = 1;\n break;\n case 'mm':\n k = 72 / 25.4000508;\n break;\n case 'cm':\n k = 72 / 2.54000508;\n break;\n case 'in':\n k = 72;\n break;\n case 'px':\n k = 96 / 72;\n break;\n case 'pc':\n k = 12;\n break;\n case 'em':\n k = 12;\n break;\n case 'ex':\n k = 6;\n break;\n default:\n throw 'Invalid unit: ' + unit;\n }\n\n //---------------------------------------\n // Public API\n\n /**\n * Object exposing internal API to plugins\n * @public\n */\n API.internal = {\n 'pdfEscape': pdfEscape,\n 'getStyle': getStyle,\n /**\n * Returns {FontObject} describing a particular font.\n * @public\n * @function\n * @param fontName {String} (Optional) Font's family name\n * @param fontStyle {String} (Optional) Font's style variation name (Example:\"Italic\")\n * @returns {FontObject}\n */\n 'getFont': function getFont() {\n return fonts[_getFont.apply(API, arguments)];\n },\n 'getFontSize': function getFontSize() {\n return activeFontSize;\n },\n 'getLineHeight': function getLineHeight() {\n return activeFontSize * lineHeightProportion;\n },\n 'write': function write(string1 /*, string2, string3, etc */) {\n out(arguments.length === 1 ? string1 : Array.prototype.join.call(arguments, ' '));\n },\n 'getCoordinateString': function getCoordinateString(value) {\n return f2(value * k);\n },\n 'getVerticalCoordinateString': function getVerticalCoordinateString(value) {\n return f2((pageHeight - value) * k);\n },\n 'collections': {},\n 'newObject': newObject,\n 'newAdditionalObject': newAdditionalObject,\n 'newObjectDeferred': newObjectDeferred,\n 'newObjectDeferredBegin': newObjectDeferredBegin,\n 'putStream': putStream,\n 'events': events,\n // ratio that you use in multiplication of a given \"size\" number to arrive to 'point'\n // units of measurement.\n // scaleFactor is set at initialization of the document and calculated against the stated\n // default measurement units for the document.\n // If default is \"mm\", k is the number that will turn number in 'mm' into 'points' number.\n // through multiplication.\n 'scaleFactor': k,\n 'pageSize': {\n get width() {\n return pageWidth;\n },\n get height() {\n return pageHeight;\n }\n },\n 'output': function output(type, options) {\n return _output(type, options);\n },\n 'getNumberOfPages': function getNumberOfPages() {\n return pages.length - 1;\n },\n 'pages': pages,\n 'out': out,\n 'f2': f2,\n 'getPageInfo': function getPageInfo(pageNumberOneBased) {\n var objId = (pageNumberOneBased - 1) * 2 + 3;\n return {\n objId: objId,\n pageNumber: pageNumberOneBased,\n pageContext: pagesContext[pageNumberOneBased]\n };\n },\n 'getCurrentPageInfo': function getCurrentPageInfo() {\n var objId = (currentPage - 1) * 2 + 3;\n return {\n objId: objId,\n pageNumber: currentPage,\n pageContext: pagesContext[currentPage]\n };\n },\n 'getPDFVersion': function getPDFVersion() {\n return pdfVersion;\n }\n };\n\n /**\n * Adds (and transfers the focus to) new page to the PDF document.\n * @function\n * @returns {jsPDF}\n *\n * @methodOf jsPDF#\n * @name addPage\n */\n API.addPage = function () {\n _addPage.apply(this, arguments);\n return this;\n };\n /**\n * Adds (and transfers the focus to) new page to the PDF document.\n * @function\n * @returns {jsPDF}\n *\n * @methodOf jsPDF#\n * @name setPage\n * @param {Number} page Switch the active page to the page number specified\n * @example\n * doc = jsPDF()\n * doc.addPage()\n * doc.addPage()\n * doc.text('I am on page 3', 10, 10)\n * doc.setPage(1)\n * doc.text('I am on page 1', 10, 10)\n */\n API.setPage = function () {\n _setPage.apply(this, arguments);\n return this;\n };\n API.insertPage = function (beforePage) {\n this.addPage();\n this.movePage(currentPage, beforePage);\n return this;\n };\n API.movePage = function (targetPage, beforePage) {\n if (targetPage > beforePage) {\n var tmpPages = pages[targetPage];\n var tmpPagedim = pagedim[targetPage];\n var tmpPagesContext = pagesContext[targetPage];\n for (var i = targetPage; i > beforePage; i--) {\n pages[i] = pages[i - 1];\n pagedim[i] = pagedim[i - 1];\n pagesContext[i] = pagesContext[i - 1];\n }\n pages[beforePage] = tmpPages;\n pagedim[beforePage] = tmpPagedim;\n pagesContext[beforePage] = tmpPagesContext;\n this.setPage(beforePage);\n } else if (targetPage < beforePage) {\n var tmpPages = pages[targetPage];\n var tmpPagedim = pagedim[targetPage];\n var tmpPagesContext = pagesContext[targetPage];\n for (var i = targetPage; i < beforePage; i++) {\n pages[i] = pages[i + 1];\n pagedim[i] = pagedim[i + 1];\n pagesContext[i] = pagesContext[i + 1];\n }\n pages[beforePage] = tmpPages;\n pagedim[beforePage] = tmpPagedim;\n pagesContext[beforePage] = tmpPagesContext;\n this.setPage(beforePage);\n }\n return this;\n };\n\n API.deletePage = function () {\n _deletePage.apply(this, arguments);\n return this;\n };\n\n /**\n * Set the display mode options of the page like zoom and layout.\n *\n * @param {integer|String} zoom You can pass an integer or percentage as\n * a string. 2 will scale the document up 2x, '200%' will scale up by the\n * same amount. You can also set it to 'fullwidth', 'fullheight',\n * 'fullpage', or 'original'.\n *\n * Only certain PDF readers support this, such as Adobe Acrobat\n *\n * @param {String} layout Layout mode can be: 'continuous' - this is the\n * default continuous scroll. 'single' - the single page mode only shows one\n * page at a time. 'twoleft' - two column left mode, first page starts on\n * the left, and 'tworight' - pages are laid out in two columns, with the\n * first page on the right. This would be used for books.\n * @param {String} pmode 'UseOutlines' - it shows the\n * outline of the document on the left. 'UseThumbs' - shows thumbnails along\n * the left. 'FullScreen' - prompts the user to enter fullscreen mode.\n *\n * @function\n * @returns {jsPDF}\n * @name setDisplayMode\n */\n API.setDisplayMode = function (zoom, layout, pmode) {\n zoomMode = zoom;\n layoutMode = layout;\n pageMode = pmode;\n\n var validPageModes = [undefined, null, 'UseNone', 'UseOutlines', 'UseThumbs', 'FullScreen'];\n if (validPageModes.indexOf(pmode) == -1) {\n throw new Error('Page mode must be one of UseNone, UseOutlines, UseThumbs, or FullScreen. \"' + pmode + '\" is not recognized.');\n }\n return this;\n },\n\n /**\n * Adds text to page. Supports adding multiline text when 'text' argument is an Array of Strings.\n *\n * @function\n * @param {String|Array} text String or array of strings to be added to the page. Each line is shifted one line down per font, spacing settings declared before this call.\n * @param {Number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\n * @param {Number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\n * @param {Object} flags Collection of settings signalling how the text must be encoded. Defaults are sane. If you think you want to pass some flags, you likely can read the source.\n * @returns {jsPDF}\n * @methodOf jsPDF#\n * @name text\n */\n API.text = function (text, x, y, flags, angle, align) {\n /**\n * Inserts something like this into PDF\n * BT\n * /F1 16 Tf % Font name + size\n * 16 TL % How many units down for next line in multiline text\n * 0 g % color\n * 28.35 813.54 Td % position\n * (line one) Tj\n * T* (line two) Tj\n * T* (line three) Tj\n * ET\n */\n function ESC(s) {\n s = s.split(\"\\t\").join(Array(options.TabLen || 9).join(\" \"));\n return pdfEscape(s, flags);\n }\n\n // Pre-August-2012 the order of arguments was function(x, y, text, flags)\n // in effort to make all calls have similar signature like\n // function(data, coordinates... , miscellaneous)\n // this method had its args flipped.\n // code below allows backward compatibility with old arg order.\n if (typeof text === 'number') {\n tmp = y;\n y = x;\n x = text;\n text = tmp;\n }\n\n // If there are any newlines in text, we assume\n // the user wanted to print multiple lines, so break the\n // text up into an array. If the text is already an array,\n // we assume the user knows what they are doing.\n // Convert text into an array anyway to simplify\n // later code.\n if (typeof text === 'string') {\n if (text.match(/[\\n\\r]/)) {\n text = text.split(/\\r\\n|\\r|\\n/g);\n } else {\n text = [text];\n }\n }\n if (typeof angle === 'string') {\n align = angle;\n angle = null;\n }\n if (typeof flags === 'string') {\n align = flags;\n flags = null;\n }\n if (typeof flags === 'number') {\n angle = flags;\n flags = null;\n }\n var xtra = '',\n mode = 'Td',\n todo;\n if (angle) {\n angle *= Math.PI / 180;\n var c = Math.cos(angle),\n s = Math.sin(angle);\n xtra = [f2(c), f2(s), f2(s * -1), f2(c), ''].join(\" \");\n mode = 'Tm';\n }\n flags = flags || {};\n if (!('noBOM' in flags)) flags.noBOM = true;\n if (!('autoencode' in flags)) flags.autoencode = true;\n\n var strokeOption = '';\n var pageContext = this.internal.getCurrentPageInfo().pageContext;\n if (true === flags.stroke) {\n if (pageContext.lastTextWasStroke !== true) {\n strokeOption = '1 Tr\\n';\n pageContext.lastTextWasStroke = true;\n }\n } else {\n if (pageContext.lastTextWasStroke) {\n strokeOption = '0 Tr\\n';\n }\n pageContext.lastTextWasStroke = false;\n }\n\n if (typeof this._runningPageHeight === 'undefined') {\n this._runningPageHeight = 0;\n }\n\n if (typeof text === 'string') {\n text = ESC(text);\n } else if (Object.prototype.toString.call(text) === '[object Array]') {\n // we don't want to destroy original text array, so cloning it\n var sa = text.concat(),\n da = [],\n len = sa.length;\n // we do array.join('text that must not be PDFescaped\")\n // thus, pdfEscape each component separately\n while (len--) {\n da.push(ESC(sa.shift()));\n }\n var linesLeft = Math.ceil((pageHeight - y - this._runningPageHeight) * k / (activeFontSize * lineHeightProportion));\n if (0 <= linesLeft && linesLeft < da.length + 1) {\n //todo = da.splice(linesLeft-1);\n }\n\n if (align) {\n var left,\n prevX,\n maxLineLength,\n leading = activeFontSize * lineHeightProportion,\n lineWidths = text.map(function (v) {\n return this.getStringUnitWidth(v) * activeFontSize / k;\n }, this);\n maxLineLength = Math.max.apply(Math, lineWidths);\n // The first line uses the \"main\" Td setting,\n // and the subsequent lines are offset by the\n // previous line's x coordinate.\n if (align === \"center\") {\n // The passed in x coordinate defines\n // the center point.\n left = x - maxLineLength / 2;\n x -= lineWidths[0] / 2;\n } else if (align === \"right\") {\n // The passed in x coordinate defines the\n // rightmost point of the text.\n left = x - maxLineLength;\n x -= lineWidths[0];\n } else {\n throw new Error('Unrecognized alignment option, use \"center\" or \"right\".');\n }\n prevX = x;\n text = da[0];\n for (var i = 1, len = da.length; i < len; i++) {\n var delta = maxLineLength - lineWidths[i];\n if (align === \"center\") delta /= 2;\n // T* = x-offset leading Td ( text )\n text += \") Tj\\n\" + (left - prevX + delta) + \" -\" + leading + \" Td (\" + da[i];\n prevX = left + delta;\n }\n } else {\n text = da.join(\") Tj\\nT* (\");\n }\n } else {\n throw new Error('Type of text must be string or Array. \"' + text + '\" is not recognized.');\n }\n // Using \"'\" (\"go next line and render text\" mark) would save space but would complicate our rendering code, templates\n\n // BT .. ET does NOT have default settings for Tf. You must state that explicitely every time for BT .. ET\n // if you want text transformation matrix (+ multiline) to work reliably (which reads sizes of things from font declarations)\n // Thus, there is NO useful, *reliable* concept of \"default\" font for a page.\n // The fact that \"default\" (reuse font used before) font worked before in basic cases is an accident\n // - readers dealing smartly with brokenness of jsPDF's markup.\n\n var curY;\n\n if (todo) {\n //this.addPage();\n //this._runningPageHeight += y - (activeFontSize * 1.7 / k);\n //curY = f2(pageHeight - activeFontSize * 1.7 /k);\n } else {\n curY = f2((pageHeight - y) * k);\n }\n //curY = f2((pageHeight - (y - this._runningPageHeight)) * k);\n\n //\t\t\tif (curY < 0){\n //\t\t\t\tconsole.log('auto page break');\n //\t\t\t\tthis.addPage();\n //\t\t\t\tthis._runningPageHeight = y - (activeFontSize * 1.7 / k);\n //\t\t\t\tcurY = f2(pageHeight - activeFontSize * 1.7 /k);\n //\t\t\t}\n\n out('BT\\n/' + activeFontKey + ' ' + activeFontSize + ' Tf\\n' + // font face, style, size\n activeFontSize * lineHeightProportion + ' TL\\n' + // line spacing\n strokeOption + // stroke option\n textColor + '\\n' + xtra + f2(x * k) + ' ' + curY + ' ' + mode + '\\n(' + text + ') Tj\\nET');\n\n if (todo) {\n //this.text( todo, x, activeFontSize * 1.7 / k);\n //this.text( todo, x, this._runningPageHeight + (activeFontSize * 1.7 / k));\n this.text(todo, x, y); // + (activeFontSize * 1.7 / k));\n }\n\n return this;\n };\n\n /**\n * Letter spacing method to print text with gaps\n *\n * @function\n * @param {String|Array} text String to be added to the page.\n * @param {Number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\n * @param {Number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\n * @param {Number} spacing Spacing (in units declared at inception)\n * @returns {jsPDF}\n * @methodOf jsPDF#\n * @name lstext\n * @deprecated We'll be removing this function. It doesn't take character width into account.\n */\n API.lstext = function (text, x, y, spacing) {\n console.warn('jsPDF.lstext is deprecated');\n for (var i = 0, len = text.length; i < len; i++, x += spacing) {\n this.text(text[i], x, y);\n }return this;\n };\n\n API.line = function (x1, y1, x2, y2) {\n return this.lines([[x2 - x1, y2 - y1]], x1, y1);\n };\n\n API.clip = function () {\n // By patrick-roberts, github.com/MrRio/jsPDF/issues/328\n // Call .clip() after calling .rect() with a style argument of null\n out('W'); // clip\n out('S'); // stroke path; necessary for clip to work\n };\n\n /**\n * This fixes the previous function clip(). Perhaps the 'stroke path' hack was due to the missing 'n' instruction?\n * We introduce the fixed version so as to not break API.\n * @param fillRule\n */\n API.clip_fixed = function (fillRule) {\n // Call .clip() after calling drawing ops with a style argument of null\n // W is the PDF clipping op\n if ('evenodd' === fillRule) {\n out('W*');\n } else {\n out('W');\n }\n // End the path object without filling or stroking it.\n // This operator is a path-painting no-op, used primarily for the side effect of changing the current clipping path\n // (see Section 4.4.3, “Clipping Path Operators”)\n out('n');\n };\n\n /**\n * Adds series of curves (straight lines or cubic bezier curves) to canvas, starting at `x`, `y` coordinates.\n * All data points in `lines` are relative to last line origin.\n * `x`, `y` become x1,y1 for first line / curve in the set.\n * For lines you only need to specify [x2, y2] - (ending point) vector against x1, y1 starting point.\n * For bezier curves you need to specify [x2,y2,x3,y3,x4,y4] - vectors to control points 1, 2, ending point. All vectors are against the start of the curve - x1,y1.\n *\n * @example .lines([[2,2],[-2,2],[1,1,2,2,3,3],[2,1]], 212,110, 10) // line, line, bezier curve, line\n * @param {Array} lines Array of *vector* shifts as pairs (lines) or sextets (cubic bezier curves).\n * @param {Number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\n * @param {Number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\n * @param {Number} scale (Defaults to [1.0,1.0]) x,y Scaling factor for all vectors. Elements can be any floating number Sub-one makes drawing smaller. Over-one grows the drawing. Negative flips the direction.\n * @param {String} style A string specifying the painting style or null. Valid styles include: 'S' [default] - stroke, 'F' - fill, and 'DF' (or 'FD') - fill then stroke. A null value postpones setting the style so that a shape may be composed using multiple method calls. The last drawing method call used to define the shape should not have a null style argument.\n * @param {Boolean} closed If true, the path is closed with a straight line from the end of the last curve to the starting point.\n * @function\n * @returns {jsPDF}\n * @methodOf jsPDF#\n * @name lines\n */\n API.lines = function (lines, x, y, scale, style, closed) {\n var scalex, scaley, i, l, leg, x2, y2, x3, y3, x4, y4;\n\n // Pre-August-2012 the order of arguments was function(x, y, lines, scale, style)\n // in effort to make all calls have similar signature like\n // function(content, coordinateX, coordinateY , miscellaneous)\n // this method had its args flipped.\n // code below allows backward compatibility with old arg order.\n if (typeof lines === 'number') {\n tmp = y;\n y = x;\n x = lines;\n lines = tmp;\n }\n\n scale = scale || [1, 1];\n\n // starting point\n out(f3(x * k) + ' ' + f3((pageHeight - y) * k) + ' m ');\n\n scalex = scale[0];\n scaley = scale[1];\n l = lines.length;\n //, x2, y2 // bezier only. In page default measurement \"units\", *after* scaling\n //, x3, y3 // bezier only. In page default measurement \"units\", *after* scaling\n // ending point for all, lines and bezier. . In page default measurement \"units\", *after* scaling\n x4 = x; // last / ending point = starting point for first item.\n y4 = y; // last / ending point = starting point for first item.\n\n for (i = 0; i < l; i++) {\n leg = lines[i];\n if (leg.length === 2) {\n // simple line\n x4 = leg[0] * scalex + x4; // here last x4 was prior ending point\n y4 = leg[1] * scaley + y4; // here last y4 was prior ending point\n out(f3(x4 * k) + ' ' + f3((pageHeight - y4) * k) + ' l');\n } else {\n // bezier curve\n x2 = leg[0] * scalex + x4; // here last x4 is prior ending point\n y2 = leg[1] * scaley + y4; // here last y4 is prior ending point\n x3 = leg[2] * scalex + x4; // here last x4 is prior ending point\n y3 = leg[3] * scaley + y4; // here last y4 is prior ending point\n x4 = leg[4] * scalex + x4; // here last x4 was prior ending point\n y4 = leg[5] * scaley + y4; // here last y4 was prior ending point\n out(f3(x2 * k) + ' ' + f3((pageHeight - y2) * k) + ' ' + f3(x3 * k) + ' ' + f3((pageHeight - y3) * k) + ' ' + f3(x4 * k) + ' ' + f3((pageHeight - y4) * k) + ' c');\n }\n }\n\n if (closed) {\n out(' h');\n }\n\n // stroking / filling / both the path\n if (style !== null) {\n out(getStyle(style));\n }\n return this;\n };\n\n /**\n * Adds a rectangle to PDF\n *\n * @param {Number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\n * @param {Number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\n * @param {Number} w Width (in units declared at inception of PDF document)\n * @param {Number} h Height (in units declared at inception of PDF document)\n * @param {String} style A string specifying the painting style or null. Valid styles include: 'S' [default] - stroke, 'F' - fill, and 'DF' (or 'FD') - fill then stroke. A null value postpones setting the style so that a shape may be composed using multiple method calls. The last drawing method call used to define the shape should not have a null style argument.\n * @function\n * @returns {jsPDF}\n * @methodOf jsPDF#\n * @name rect\n */\n API.rect = function (x, y, w, h, style) {\n var op = getStyle(style);\n out([f2(x * k), f2((pageHeight - y) * k), f2(w * k), f2(-h * k), 're'].join(' '));\n\n if (style !== null) {\n out(getStyle(style));\n }\n\n return this;\n };\n\n /**\n * Adds a triangle to PDF\n *\n * @param {Number} x1 Coordinate (in units declared at inception of PDF document) against left edge of the page\n * @param {Number} y1 Coordinate (in units declared at inception of PDF document) against upper edge of the page\n * @param {Number} x2 Coordinate (in units declared at inception of PDF document) against left edge of the page\n * @param {Number} y2 Coordinate (in units declared at inception of PDF document) against upper edge of the page\n * @param {Number} x3 Coordinate (in units declared at inception of PDF document) against left edge of the page\n * @param {Number} y3 Coordinate (in units declared at inception of PDF document) against upper edge of the page\n * @param {String} style A string specifying the painting style or null. Valid styles include: 'S' [default] - stroke, 'F' - fill, and 'DF' (or 'FD') - fill then stroke. A null value postpones setting the style so that a shape may be composed using multiple method calls. The last drawing method call used to define the shape should not have a null style argument.\n * @function\n * @returns {jsPDF}\n * @methodOf jsPDF#\n * @name triangle\n */\n API.triangle = function (x1, y1, x2, y2, x3, y3, style) {\n this.lines([[x2 - x1, y2 - y1], // vector to point 2\n [x3 - x2, y3 - y2], // vector to point 3\n [x1 - x3, y1 - y3] // closing vector back to point 1\n ], x1, y1, // start of path\n [1, 1], style, true);\n return this;\n };\n\n /**\n * Adds a rectangle with rounded corners to PDF\n *\n * @param {Number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\n * @param {Number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\n * @param {Number} w Width (in units declared at inception of PDF document)\n * @param {Number} h Height (in units declared at inception of PDF document)\n * @param {Number} rx Radius along x axis (in units declared at inception of PDF document)\n * @param {Number} rx Radius along y axis (in units declared at inception of PDF document)\n * @param {String} style A string specifying the painting style or null. Valid styles include: 'S' [default] - stroke, 'F' - fill, and 'DF' (or 'FD') - fill then stroke. A null value postpones setting the style so that a shape may be composed using multiple method calls. The last drawing method call used to define the shape should not have a null style argument.\n * @function\n * @returns {jsPDF}\n * @methodOf jsPDF#\n * @name roundedRect\n */\n API.roundedRect = function (x, y, w, h, rx, ry, style) {\n var MyArc = 4 / 3 * (Math.SQRT2 - 1);\n this.lines([[w - 2 * rx, 0], [rx * MyArc, 0, rx, ry - ry * MyArc, rx, ry], [0, h - 2 * ry], [0, ry * MyArc, -(rx * MyArc), ry, -rx, ry], [-w + 2 * rx, 0], [-(rx * MyArc), 0, -rx, -(ry * MyArc), -rx, -ry], [0, -h + 2 * ry], [0, -(ry * MyArc), rx * MyArc, -ry, rx, -ry]], x + rx, y, // start of path\n [1, 1], style);\n return this;\n };\n\n /**\n * Adds an ellipse to PDF\n *\n * @param {Number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\n * @param {Number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\n * @param {Number} rx Radius along x axis (in units declared at inception of PDF document)\n * @param {Number} rx Radius along y axis (in units declared at inception of PDF document)\n * @param {String} style A string specifying the painting style or null. Valid styles include: 'S' [default] - stroke, 'F' - fill, and 'DF' (or 'FD') - fill then stroke. A null value postpones setting the style so that a shape may be composed using multiple method calls. The last drawing method call used to define the shape should not have a null style argument.\n * @function\n * @returns {jsPDF}\n * @methodOf jsPDF#\n * @name ellipse\n */\n API.ellipse = function (x, y, rx, ry, style) {\n var lx = 4 / 3 * (Math.SQRT2 - 1) * rx,\n ly = 4 / 3 * (Math.SQRT2 - 1) * ry;\n\n out([f2((x + rx) * k), f2((pageHeight - y) * k), 'm', f2((x + rx) * k), f2((pageHeight - (y - ly)) * k), f2((x + lx) * k), f2((pageHeight - (y - ry)) * k), f2(x * k), f2((pageHeight - (y - ry)) * k), 'c'].join(' '));\n out([f2((x - lx) * k), f2((pageHeight - (y - ry)) * k), f2((x - rx) * k), f2((pageHeight - (y - ly)) * k), f2((x - rx) * k), f2((pageHeight - y) * k), 'c'].join(' '));\n out([f2((x - rx) * k), f2((pageHeight - (y + ly)) * k), f2((x - lx) * k), f2((pageHeight - (y + ry)) * k), f2(x * k), f2((pageHeight - (y + ry)) * k), 'c'].join(' '));\n out([f2((x + lx) * k), f2((pageHeight - (y + ry)) * k), f2((x + rx) * k), f2((pageHeight - (y + ly)) * k), f2((x + rx) * k), f2((pageHeight - y) * k), 'c'].join(' '));\n\n if (style !== null) {\n out(getStyle(style));\n }\n\n return this;\n };\n\n /**\n * Adds an circle to PDF\n *\n * @param {Number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\n * @param {Number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\n * @param {Number} r Radius (in units declared at inception of PDF document)\n * @param {String} style A string specifying the painting style or null. Valid styles include: 'S' [default] - stroke, 'F' - fill, and 'DF' (or 'FD') - fill then stroke. A null value postpones setting the style so that a shape may be composed using multiple method calls. The last drawing method call used to define the shape should not have a null style argument.\n * @function\n * @returns {jsPDF}\n * @methodOf jsPDF#\n * @name circle\n */\n API.circle = function (x, y, r, style) {\n return this.ellipse(x, y, r, r, style);\n };\n\n /**\n * Adds a properties to the PDF document\n *\n * @param {Object} A property_name-to-property_value object structure.\n * @function\n * @returns {jsPDF}\n * @methodOf jsPDF#\n * @name setProperties\n */\n API.setProperties = function (properties) {\n // copying only those properties we can render.\n for (var property in documentProperties) {\n if (documentProperties.hasOwnProperty(property) && properties[property]) {\n documentProperties[property] = properties[property];\n }\n }\n return this;\n };\n\n /**\n * Sets font size for upcoming text elements.\n *\n * @param {Number} size Font size in points.\n * @function\n * @returns {jsPDF}\n * @methodOf jsPDF#\n * @name setFontSize\n */\n API.setFontSize = function (size) {\n activeFontSize = size;\n return this;\n };\n\n /**\n * Sets text font face, variant for upcoming text elements.\n * See output of jsPDF.getFontList() for possible font names, styles.\n *\n * @param {String} fontName Font name or family. Example: \"times\"\n * @param {String} fontStyle Font style or variant. Example: \"italic\"\n * @function\n * @returns {jsPDF}\n * @methodOf jsPDF#\n * @name setFont\n */\n API.setFont = function (fontName, fontStyle) {\n activeFontKey = _getFont(fontName, fontStyle);\n // if font is not found, the above line blows up and we never go further\n return this;\n };\n\n /**\n * Switches font style or variant for upcoming text elements,\n * while keeping the font face or family same.\n * See output of jsPDF.getFontList() for possible font names, styles.\n *\n * @param {String} style Font style or variant. Example: \"italic\"\n * @function\n * @returns {jsPDF}\n * @methodOf jsPDF#\n * @name setFontStyle\n */\n API.setFontStyle = API.setFontType = function (style) {\n activeFontKey = _getFont(undefined, style);\n // if font is not found, the above line blows up and we never go further\n return this;\n };\n\n /**\n * Returns an object - a tree of fontName to fontStyle relationships available to\n * active PDF document.\n *\n * @public\n * @function\n * @returns {Object} Like {'times':['normal', 'italic', ... ], 'arial':['normal', 'bold', ... ], ... }\n * @methodOf jsPDF#\n * @name getFontList\n */\n API.getFontList = function () {\n // TODO: iterate over fonts array or return copy of fontmap instead in case more are ever added.\n var list = {},\n fontName,\n fontStyle,\n tmp;\n\n for (fontName in fontmap) {\n if (fontmap.hasOwnProperty(fontName)) {\n list[fontName] = tmp = [];\n for (fontStyle in fontmap[fontName]) {\n if (fontmap[fontName].hasOwnProperty(fontStyle)) {\n tmp.push(fontStyle);\n }\n }\n }\n }\n\n return list;\n };\n\n /**\n * Add a custom font.\n *\n * @param {String} Postscript name of the Font. Example: \"Menlo-Regular\"\n * @param {String} Name of font-family from @font-face definition. Example: \"Menlo Regular\"\n * @param {String} Font style. Example: \"normal\"\n * @function\n * @returns the {fontKey} (same as the internal method)\n * @methodOf jsPDF#\n * @name addFont\n */\n API.addFont = function (postScriptName, fontName, fontStyle) {\n addFont(postScriptName, fontName, fontStyle, 'StandardEncoding');\n };\n\n /**\n * Sets line width for upcoming lines.\n *\n * @param {Number} width Line width (in units declared at inception of PDF document)\n * @function\n * @returns {jsPDF}\n * @methodOf jsPDF#\n * @name setLineWidth\n */\n API.setLineWidth = function (width) {\n out((width * k).toFixed(2) + ' w');\n return this;\n };\n\n /**\n * Sets the stroke color for upcoming elements.\n *\n * Depending on the number of arguments given, Gray, RGB, or CMYK\n * color space is implied.\n *\n * When only ch1 is given, \"Gray\" color space is implied and it\n * must be a value in the range from 0.00 (solid black) to to 1.00 (white)\n * if values are communicated as String types, or in range from 0 (black)\n * to 255 (white) if communicated as Number type.\n * The RGB-like 0-255 range is provided for backward compatibility.\n *\n * When only ch1,ch2,ch3 are given, \"RGB\" color space is implied and each\n * value must be in the range from 0.00 (minimum intensity) to to 1.00\n * (max intensity) if values are communicated as String types, or\n * from 0 (min intensity) to to 255 (max intensity) if values are communicated\n * as Number types.\n * The RGB-like 0-255 range is provided for backward compatibility.\n *\n * When ch1,ch2,ch3,ch4 are given, \"CMYK\" color space is implied and each\n * value must be a in the range from 0.00 (0% concentration) to to\n * 1.00 (100% concentration)\n *\n * Because JavaScript treats fixed point numbers badly (rounds to\n * floating point nearest to binary representation) it is highly advised to\n * communicate the fractional numbers as String types, not JavaScript Number type.\n *\n * @param {Number|String} ch1 Color channel value\n * @param {Number|String} ch2 Color channel value\n * @param {Number|String} ch3 Color channel value\n * @param {Number|String} ch4 Color channel value\n *\n * @function\n * @returns {jsPDF}\n * @methodOf jsPDF#\n * @name setDrawColor\n */\n API.setDrawColor = function (ch1, ch2, ch3, ch4) {\n var color;\n if (ch2 === undefined || ch4 === undefined && ch1 === ch2 === ch3) {\n // Gray color space.\n if (typeof ch1 === 'string') {\n color = ch1 + ' G';\n } else {\n color = f2(ch1 / 255) + ' G';\n }\n } else if (ch4 === undefined) {\n // RGB\n if (typeof ch1 === 'string') {\n color = [ch1, ch2, ch3, 'RG'].join(' ');\n } else {\n color = [f2(ch1 / 255), f2(ch2 / 255), f2(ch3 / 255), 'RG'].join(' ');\n }\n } else {\n // CMYK\n if (typeof ch1 === 'string') {\n color = [ch1, ch2, ch3, ch4, 'K'].join(' ');\n } else {\n color = [f2(ch1), f2(ch2), f2(ch3), f2(ch4), 'K'].join(' ');\n }\n }\n\n out(color);\n return this;\n };\n\n /**\n * Sets the fill color for upcoming elements.\n *\n * Depending on the number of arguments given, Gray, RGB, or CMYK\n * color space is implied.\n *\n * When only ch1 is given, \"Gray\" color space is implied and it\n * must be a value in the range from 0.00 (solid black) to to 1.00 (white)\n * if values are communicated as String types, or in range from 0 (black)\n * to 255 (white) if communicated as Number type.\n * The RGB-like 0-255 range is provided for backward compatibility.\n *\n * When only ch1,ch2,ch3 are given, \"RGB\" color space is implied and each\n * value must be in the range from 0.00 (minimum intensity) to to 1.00\n * (max intensity) if values are communicated as String types, or\n * from 0 (min intensity) to to 255 (max intensity) if values are communicated\n * as Number types.\n * The RGB-like 0-255 range is provided for backward compatibility.\n *\n * When ch1,ch2,ch3,ch4 are given, \"CMYK\" color space is implied and each\n * value must be a in the range from 0.00 (0% concentration) to to\n * 1.00 (100% concentration)\n *\n * Because JavaScript treats fixed point numbers badly (rounds to\n * floating point nearest to binary representation) it is highly advised to\n * communicate the fractional numbers as String types, not JavaScript Number type.\n *\n * @param {Number|String} ch1 Color channel value\n * @param {Number|String} ch2 Color channel value\n * @param {Number|String} ch3 Color channel value\n * @param {Number|String} ch4 Color channel value\n *\n * @function\n * @returns {jsPDF}\n * @methodOf jsPDF#\n * @name setFillColor\n */\n API.setFillColor = function (ch1, ch2, ch3, ch4) {\n var color;\n\n if (ch2 === undefined || ch4 === undefined && ch1 === ch2 === ch3) {\n // Gray color space.\n if (typeof ch1 === 'string') {\n color = ch1 + ' g';\n } else {\n color = f2(ch1 / 255) + ' g';\n }\n } else if (ch4 === undefined || (typeof ch4 === 'undefined' ? 'undefined' : _typeof(ch4)) === 'object') {\n // RGB\n if (typeof ch1 === 'string') {\n color = [ch1, ch2, ch3, 'rg'].join(' ');\n } else {\n color = [f2(ch1 / 255), f2(ch2 / 255), f2(ch3 / 255), 'rg'].join(' ');\n }\n if (ch4 && ch4.a === 0) {\n //TODO Implement transparency.\n //WORKAROUND use white for now\n color = ['255', '255', '255', 'rg'].join(' ');\n }\n } else {\n // CMYK\n if (typeof ch1 === 'string') {\n color = [ch1, ch2, ch3, ch4, 'k'].join(' ');\n } else {\n color = [f2(ch1), f2(ch2), f2(ch3), f2(ch4), 'k'].join(' ');\n }\n }\n\n out(color);\n return this;\n };\n\n /**\n * Sets the text color for upcoming elements.\n * If only one, first argument is given,\n * treats the value as gray-scale color value.\n *\n * @param {Number} r Red channel color value in range 0-255 or {String} r color value in hexadecimal, example: '#FFFFFF'\n * @param {Number} g Green channel color value in range 0-255\n * @param {Number} b Blue channel color value in range 0-255\n * @function\n * @returns {jsPDF}\n * @methodOf jsPDF#\n * @name setTextColor\n */\n API.setTextColor = function (r, g, b) {\n if (typeof r === 'string' && /^#[0-9A-Fa-f]{6}$/.test(r)) {\n var hex = parseInt(r.substr(1), 16);\n r = hex >> 16 & 255;\n g = hex >> 8 & 255;\n b = hex & 255;\n }\n\n if (r === 0 && g === 0 && b === 0 || typeof g === 'undefined') {\n textColor = f3(r / 255) + ' g';\n } else {\n textColor = [f3(r / 255), f3(g / 255), f3(b / 255), 'rg'].join(' ');\n }\n return this;\n };\n\n /**\n * Is an Object providing a mapping from human-readable to\n * integer flag values designating the varieties of line cap\n * and join styles.\n *\n * @returns {Object}\n * @fieldOf jsPDF#\n * @name CapJoinStyles\n */\n API.CapJoinStyles = {\n 0: 0,\n 'butt': 0,\n 'but': 0,\n 'miter': 0,\n 1: 1,\n 'round': 1,\n 'rounded': 1,\n 'circle': 1,\n 2: 2,\n 'projecting': 2,\n 'project': 2,\n 'square': 2,\n 'bevel': 2\n };\n\n /**\n * Sets the line cap styles\n * See {jsPDF.CapJoinStyles} for variants\n *\n * @param {String|Number} style A string or number identifying the type of line cap\n * @function\n * @returns {jsPDF}\n * @methodOf jsPDF#\n * @name setLineCap\n */\n API.setLineCap = function (style) {\n var id = this.CapJoinStyles[style];\n if (id === undefined) {\n throw new Error(\"Line cap style of '\" + style + \"' is not recognized. See or extend .CapJoinStyles property for valid styles\");\n }\n lineCapID = id;\n out(id + ' J');\n\n return this;\n };\n\n /**\n * Sets the line join styles\n * See {jsPDF.CapJoinStyles} for variants\n *\n * @param {String|Number} style A string or number identifying the type of line join\n * @function\n * @returns {jsPDF}\n * @methodOf jsPDF#\n * @name setLineJoin\n */\n API.setLineJoin = function (style) {\n var id = this.CapJoinStyles[style];\n if (id === undefined) {\n throw new Error(\"Line join style of '\" + style + \"' is not recognized. See or extend .CapJoinStyles property for valid styles\");\n }\n lineJoinID = id;\n out(id + ' j');\n\n return this;\n };\n\n // Output is both an internal (for plugins) and external function\n API.output = _output;\n\n /**\n * Saves as PDF document. An alias of jsPDF.output('save', 'filename.pdf')\n * @param {String} filename The filename including extension.\n *\n * @function\n * @returns {jsPDF}\n * @methodOf jsPDF#\n * @name save\n */\n API.save = function (filename) {\n API.output('save', filename);\n };\n\n // applying plugins (more methods) ON TOP of built-in API.\n // this is intentional as we allow plugins to override\n // built-ins\n for (var plugin in jsPDF.API) {\n if (jsPDF.API.hasOwnProperty(plugin)) {\n if (plugin === 'events' && jsPDF.API.events.length) {\n (function (events, newEvents) {\n\n // jsPDF.API.events is a JS Array of Arrays\n // where each Array is a pair of event name, handler\n // Events were added by plugins to the jsPDF instantiator.\n // These are always added to the new instance and some ran\n // during instantiation.\n var eventname, handler_and_args, i;\n\n for (i = newEvents.length - 1; i !== -1; i--) {\n // subscribe takes 3 args: 'topic', function, runonce_flag\n // if undefined, runonce is false.\n // users can attach callback directly,\n // or they can attach an array with [callback, runonce_flag]\n // that's what the \"apply\" magic is for below.\n eventname = newEvents[i][0];\n handler_and_args = newEvents[i][1];\n events.subscribe.apply(events, [eventname].concat(typeof handler_and_args === 'function' ? [handler_and_args] : handler_and_args));\n }\n })(events, jsPDF.API.events);\n } else {\n API[plugin] = jsPDF.API[plugin];\n }\n }\n }\n\n //////////////////////////////////////////////////////\n // continuing initialization of jsPDF Document object\n //////////////////////////////////////////////////////\n // Add the first page automatically\n addFonts();\n activeFontKey = 'F1';\n _addPage(format, orientation);\n\n events.publish('initialized');\n return API;\n }\n\n /**\n * jsPDF.API is a STATIC property of jsPDF class.\n * jsPDF.API is an object you can add methods and properties to.\n * The methods / properties you add will show up in new jsPDF objects.\n *\n * One property is prepopulated. It is the 'events' Object. Plugin authors can add topics,\n * callbacks to this object. These will be reassigned to all new instances of jsPDF.\n * Examples:\n * jsPDF.API.events['initialized'] = function(){ 'this' is API object }\n * jsPDF.API.events['addFont'] = function(added_font_object){ 'this' is API object }\n *\n * @static\n * @public\n * @memberOf jsPDF\n * @name API\n *\n * @example\n * jsPDF.API.mymethod = function(){\n * // 'this' will be ref to internal API object. see jsPDF source\n * // , so you can refer to built-in methods like so:\n * // this.line(....)\n * // this.text(....)\n * }\n * var pdfdoc = new jsPDF()\n * pdfdoc.mymethod() // <- !!!!!!\n */\n jsPDF.API = {\n events: []\n };\n jsPDF.version = \"1.x-master\";\n\n if (typeof define === 'function' && define.amd) {\n define('jsPDF', function () {\n return jsPDF;\n });\n } else if (typeof module !== 'undefined' && module.exports) {\n module.exports = jsPDF;\n } else {\n global.jsPDF = jsPDF;\n }\n return jsPDF;\n}(typeof self !== \"undefined\" && self || typeof window !== \"undefined\" && window || undefined);\n\n\n/**\n * jsPDF AcroForm Plugin\n * Copyright (c) 2016 Alexander Weidt, https://github.com/BiggA94\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\n(window.AcroForm = function (jsPDFAPI) {\n 'use strict';\n\n var AcroForm = window.AcroForm;\n\n AcroForm.scale = function (x) {\n return x * (acroformPlugin.internal.scaleFactor / 1); // 1 = (96 / 72)\n };\n AcroForm.antiScale = function (x) {\n return 1 / acroformPlugin.internal.scaleFactor * x;\n };\n\n var acroformPlugin = {\n fields: [],\n xForms: [],\n /**\n * acroFormDictionaryRoot contains information about the AcroForm Dictionary\n * 0: The Event-Token, the AcroFormDictionaryCallback has\n * 1: The Object ID of the Root\n */\n acroFormDictionaryRoot: null,\n /**\n * After the PDF gets evaluated, the reference to the root has to be reset,\n * this indicates, whether the root has already been printed out\n */\n printedOut: false,\n internal: null\n };\n\n jsPDF.API.acroformPlugin = acroformPlugin;\n\n var annotReferenceCallback = function annotReferenceCallback() {\n for (var i in this.acroformPlugin.acroFormDictionaryRoot.Fields) {\n var formObject = this.acroformPlugin.acroFormDictionaryRoot.Fields[i];\n // add Annot Reference!\n if (formObject.hasAnnotation) {\n // If theres an Annotation Widget in the Form Object, put the Reference in the /Annot array\n createAnnotationReference.call(this, formObject);\n }\n }\n };\n\n var createAcroForm = function createAcroForm() {\n if (this.acroformPlugin.acroFormDictionaryRoot) {\n //return;\n throw new Error(\"Exception while creating AcroformDictionary\");\n }\n\n // The Object Number of the AcroForm Dictionary\n this.acroformPlugin.acroFormDictionaryRoot = new AcroForm.AcroFormDictionary();\n\n this.acroformPlugin.internal = this.internal;\n\n // add Callback for creating the AcroForm Dictionary\n this.acroformPlugin.acroFormDictionaryRoot._eventID = this.internal.events.subscribe('postPutResources', AcroFormDictionaryCallback);\n\n this.internal.events.subscribe('buildDocument', annotReferenceCallback); //buildDocument\n\n // Register event, that is triggered when the DocumentCatalog is written, in order to add /AcroForm\n this.internal.events.subscribe('putCatalog', putCatalogCallback);\n\n // Register event, that creates all Fields\n this.internal.events.subscribe('postPutPages', createFieldCallback);\n };\n\n /**\n * Create the Reference to the widgetAnnotation, so that it gets referenced in the Annot[] int the+\n * (Requires the Annotation Plugin)\n */\n var createAnnotationReference = function createAnnotationReference(object) {\n var options = {\n type: 'reference',\n object: object\n };\n jsPDF.API.annotationPlugin.annotations[this.internal.getPageInfo(object.page).pageNumber].push(options);\n };\n\n var putForm = function putForm(formObject) {\n if (this.acroformPlugin.printedOut) {\n this.acroformPlugin.printedOut = false;\n this.acroformPlugin.acroFormDictionaryRoot = null;\n }\n if (!this.acroformPlugin.acroFormDictionaryRoot) {\n createAcroForm.call(this);\n }\n this.acroformPlugin.acroFormDictionaryRoot.Fields.push(formObject);\n };\n\n // Callbacks\n\n var putCatalogCallback = function putCatalogCallback() {\n //Put reference to AcroForm to DocumentCatalog\n if (typeof this.acroformPlugin.acroFormDictionaryRoot != 'undefined') {\n // for safety, shouldn't normally be the case\n this.internal.write('/AcroForm ' + this.acroformPlugin.acroFormDictionaryRoot.objId + ' ' + 0 + ' R');\n } else {\n console.log('Root missing...');\n }\n };\n\n /**\n * Adds /Acroform X 0 R to Document Catalog,\n * and creates the AcroForm Dictionary\n */\n var AcroFormDictionaryCallback = function AcroFormDictionaryCallback() {\n // Remove event\n this.internal.events.unsubscribe(this.acroformPlugin.acroFormDictionaryRoot._eventID);\n\n delete this.acroformPlugin.acroFormDictionaryRoot._eventID;\n\n this.acroformPlugin.printedOut = true;\n };\n\n /**\n * Creates the single Fields and writes them into the Document\n *\n * If fieldArray is set, use the fields that are inside it instead of the fields from the AcroRoot\n * (for the FormXObjects...)\n */\n var createFieldCallback = function createFieldCallback(fieldArray) {\n var standardFields = !fieldArray;\n\n if (!fieldArray) {\n // in case there is no fieldArray specified, we want to print out the Fields of the AcroForm\n // Print out Root\n this.internal.newObjectDeferredBegin(this.acroformPlugin.acroFormDictionaryRoot.objId);\n this.internal.out(this.acroformPlugin.acroFormDictionaryRoot.getString());\n }\n\n var fieldArray = fieldArray || this.acroformPlugin.acroFormDictionaryRoot.Kids;\n\n for (var i in fieldArray) {\n var key = i;\n var form = fieldArray[i];\n\n var oldRect = form.Rect;\n\n if (form.Rect) {\n form.Rect = AcroForm.internal.calculateCoordinates.call(this, form.Rect);\n }\n\n // Start Writing the Object\n this.internal.newObjectDeferredBegin(form.objId);\n\n var content = \"\";\n content += form.objId + \" 0 obj\\n\";\n\n content += \"<<\\n\" + form.getContent();\n\n form.Rect = oldRect;\n\n if (form.hasAppearanceStream && !form.appearanceStreamContent) {\n // Calculate Appearance\n var appearance = AcroForm.internal.calculateAppearanceStream.call(this, form);\n content += \"/AP << /N \" + appearance + \" >>\\n\";\n\n this.acroformPlugin.xForms.push(appearance);\n }\n\n // Assume AppearanceStreamContent is a Array with N,R,D (at least one of them!)\n if (form.appearanceStreamContent) {\n content += \"/AP << \";\n // Iterate over N,R and D\n for (var k in form.appearanceStreamContent) {\n var value = form.appearanceStreamContent[k];\n content += \"/\" + k + \" \";\n content += \"<< \";\n if (Object.keys(value).length >= 1 || Array.isArray(value)) {\n // appearanceStream is an Array or Object!\n for (var i in value) {\n var obj = value[i];\n if (typeof obj === 'function') {\n // if Function is referenced, call it in order to get the FormXObject\n obj = obj.call(this, form);\n }\n content += \"/\" + i + \" \" + obj + \" \";\n\n // In case the XForm is already used, e.g. OffState of CheckBoxes, don't add it\n if (!(this.acroformPlugin.xForms.indexOf(obj) >= 0)) this.acroformPlugin.xForms.push(obj);\n }\n } else {\n var obj = value;\n if (typeof obj === 'function') {\n // if Function is referenced, call it in order to get the FormXObject\n obj = obj.call(this, form);\n }\n content += \"/\" + i + \" \" + obj + \" \\n\";\n if (!(this.acroformPlugin.xForms.indexOf(obj) >= 0)) this.acroformPlugin.xForms.push(obj);\n }\n content += \" >>\\n\";\n }\n\n // appearance stream is a normal Object..\n content += \">>\\n\";\n }\n\n content += \">>\\nendobj\\n\";\n\n this.internal.out(content);\n }\n if (standardFields) {\n createXFormObjectCallback.call(this, this.acroformPlugin.xForms);\n }\n };\n\n var createXFormObjectCallback = function createXFormObjectCallback(fieldArray) {\n for (var i in fieldArray) {\n var key = i;\n var form = fieldArray[i];\n // Start Writing the Object\n this.internal.newObjectDeferredBegin(form && form.objId);\n\n var content = \"\";\n content += form ? form.getString() : '';\n this.internal.out(content);\n\n delete fieldArray[key];\n }\n };\n\n // Public:\n\n jsPDFAPI.addField = function (fieldObject) {\n //var opt = parseOptions(fieldObject);\n if (fieldObject instanceof AcroForm.TextField) {\n addTextField.call(this, fieldObject);\n } else if (fieldObject instanceof AcroForm.ChoiceField) {\n addChoiceField.call(this, fieldObject);\n } else if (fieldObject instanceof AcroForm.Button) {\n addButton.call(this, fieldObject);\n } else if (fieldObject instanceof AcroForm.ChildClass) {\n putForm.call(this, fieldObject);\n } else if (fieldObject) {\n // try to put..\n putForm.call(this, fieldObject);\n }\n fieldObject.page = this.acroformPlugin.internal.getCurrentPageInfo().pageNumber;\n return this;\n };\n\n // ############### sort in:\n\n /**\n * Button\n * FT = Btn\n */\n var addButton = function addButton(options) {\n var options = options || new AcroForm.Field();\n\n options.FT = '/Btn';\n\n /**\n * Calculating the Ff entry:\n *\n * The Ff entry contains flags, that have to be set bitwise\n * In the Following the number in the Comment is the BitPosition\n */\n var flags = options.Ff || 0;\n\n // 17, Pushbutton\n if (options.pushbutton) {\n // Options.pushbutton should be 1 or 0\n flags = AcroForm.internal.setBitPosition(flags, 17);\n delete options.pushbutton;\n }\n\n //16, Radio\n if (options.radio) {\n //flags = options.Ff | options.radio << 15;\n flags = AcroForm.internal.setBitPosition(flags, 16);\n delete options.radio;\n }\n\n // 15, NoToggleToOff (Radio buttons only\n if (options.noToggleToOff) {\n //flags = options.Ff | options.noToggleToOff << 14;\n flags = AcroForm.internal.setBitPosition(flags, 15);\n //delete options.noToggleToOff;\n }\n\n // In case, there is no Flag set, it is a check-box\n options.Ff = flags;\n\n putForm.call(this, options);\n };\n\n var addTextField = function addTextField(options) {\n var options = options || new AcroForm.Field();\n\n options.FT = '/Tx';\n\n /**\n * Calculating the Ff entry:\n *\n * The Ff entry contains flags, that have to be set bitwise\n * In the Following the number in the Comment is the BitPosition\n */\n\n var flags = options.Ff || 0;\n\n // 13, multiline\n if (options.multiline) {\n // Set Flag\n flags = flags | 1 << 12;\n // Remove multiline from FieldObject\n //delete options.multiline;\n }\n\n // 14, Password\n if (options.password) {\n flags = flags | 1 << 13;\n //delete options.password;\n }\n\n // 21, FileSelect, PDF 1.4...\n if (options.fileSelect) {\n flags = flags | 1 << 20;\n //delete options.fileSelect;\n }\n\n // 23, DoNotSpellCheck, PDF 1.4...\n if (options.doNotSpellCheck) {\n flags = flags | 1 << 22;\n //delete options.doNotSpellCheck;\n }\n\n // 24, DoNotScroll, PDF 1.4...\n if (options.doNotScroll) {\n flags = flags | 1 << 23;\n //delete options.doNotScroll;\n }\n\n options.Ff = options.Ff || flags;\n\n // Add field\n putForm.call(this, options);\n };\n\n var addChoiceField = function addChoiceField(opt) {\n var options = opt || new AcroForm.Field();\n\n options.FT = '/Ch';\n\n /**\n * Calculating the Ff entry:\n *\n * The Ff entry contains flags, that have to be set bitwise\n * In the Following the number in the Comment is the BitPosition\n */\n\n var flags = options.Ff || 0;\n\n // 18, Combo (If not set, the choiceField is a listBox!!)\n if (options.combo) {\n // Set Flag\n flags = AcroForm.internal.setBitPosition(flags, 18);\n // Remove combo from FieldObject\n delete options.combo;\n }\n\n // 19, Edit\n if (options.edit) {\n flags = AcroForm.internal.setBitPosition(flags, 19);\n delete options.edit;\n }\n\n // 20, Sort\n if (options.sort) {\n flags = AcroForm.internal.setBitPosition(flags, 20);\n delete options.sort;\n }\n\n // 22, MultiSelect (PDF 1.4)\n if (options.multiSelect && this.internal.getPDFVersion() >= 1.4) {\n flags = AcroForm.internal.setBitPosition(flags, 22);\n delete options.multiSelect;\n }\n\n // 23, DoNotSpellCheck (PDF 1.4)\n if (options.doNotSpellCheck && this.internal.getPDFVersion() >= 1.4) {\n flags = AcroForm.internal.setBitPosition(flags, 23);\n delete options.doNotSpellCheck;\n }\n\n options.Ff = flags;\n\n //options.hasAnnotation = true;\n\n // Add field\n putForm.call(this, options);\n };\n})(jsPDF.API);\n\nvar AcroForm = window.AcroForm;\n\nAcroForm.internal = {};\n\nAcroForm.createFormXObject = function (formObject) {\n var xobj = new AcroForm.FormXObject();\n var height = AcroForm.Appearance.internal.getHeight(formObject) || 0;\n var width = AcroForm.Appearance.internal.getWidth(formObject) || 0;\n xobj.BBox = [0, 0, width, height];\n return xobj;\n};\n\n// Contains Methods for creating standard appearances\nAcroForm.Appearance = {\n CheckBox: {\n createAppearanceStream: function createAppearanceStream() {\n var appearance = {\n N: {\n On: AcroForm.Appearance.CheckBox.YesNormal\n },\n D: {\n On: AcroForm.Appearance.CheckBox.YesPushDown,\n Off: AcroForm.Appearance.CheckBox.OffPushDown\n }\n };\n\n return appearance;\n },\n /**\n * If any other icons are needed, the number between the brackets can be changed\n * @returns {string}\n */\n createMK: function createMK() {\n // 3-> Hook\n return \"<< /CA (3)>>\";\n },\n /**\n * Returns the standard On Appearance for a CheckBox\n * @returns {AcroForm.FormXObject}\n */\n YesPushDown: function YesPushDown(formObject) {\n var xobj = AcroForm.createFormXObject(formObject);\n var stream = \"\";\n // F13 is ZapfDingbats (Symbolic)\n formObject.Q = 1; // set text-alignment as centered\n var calcRes = AcroForm.internal.calculateX(formObject, \"3\", \"ZapfDingbats\", 50);\n stream += \"0.749023 g\\n\\\n 0 0 \" + AcroForm.Appearance.internal.getWidth(formObject) + \" \" + AcroForm.Appearance.internal.getHeight(formObject) + \" re\\n\\\n f\\n\\\n BMC\\n\\\n q\\n\\\n 0 0 1 rg\\n\\\n /F13 \" + calcRes.fontSize + \" Tf 0 g\\n\\\n BT\\n\";\n stream += calcRes.text;\n stream += \"ET\\n\\\n Q\\n\\\n EMC\\n\";\n xobj.stream = stream;\n return xobj;\n },\n\n YesNormal: function YesNormal(formObject) {\n var xobj = AcroForm.createFormXObject(formObject);\n var stream = \"\";\n formObject.Q = 1; // set text-alignment as centered\n var calcRes = AcroForm.internal.calculateX(formObject, \"3\", \"ZapfDingbats\", AcroForm.Appearance.internal.getHeight(formObject) * 0.9);\n stream += \"1 g\\n\\\n0 0 \" + AcroForm.Appearance.internal.getWidth(formObject) + \" \" + AcroForm.Appearance.internal.getHeight(formObject) + \" re\\n\\\nf\\n\\\nq\\n\\\n0 0 1 rg\\n\\\n0 0 \" + (AcroForm.Appearance.internal.getWidth(formObject) - 1) + \" \" + (AcroForm.Appearance.internal.getHeight(formObject) - 1) + \" re\\n\\\nW\\n\\\nn\\n\\\n0 g\\n\\\nBT\\n\\\n/F13 \" + calcRes.fontSize + \" Tf 0 g\\n\";\n stream += calcRes.text;\n stream += \"ET\\n\\\n Q\\n\";\n xobj.stream = stream;\n return xobj;\n },\n\n /**\n * Returns the standard Off Appearance for a CheckBox\n * @returns {AcroForm.FormXObject}\n */\n OffPushDown: function OffPushDown(formObject) {\n var xobj = AcroForm.createFormXObject(formObject);\n var stream = \"\";\n stream += \"0.749023 g\\n\\\n 0 0 \" + AcroForm.Appearance.internal.getWidth(formObject) + \" \" + AcroForm.Appearance.internal.getHeight(formObject) + \" re\\n\\\n f\\n\";\n xobj.stream = stream;\n return xobj;\n }\n },\n\n RadioButton: {\n Circle: {\n createAppearanceStream: function createAppearanceStream(name) {\n var appearanceStreamContent = {\n D: {\n 'Off': AcroForm.Appearance.RadioButton.Circle.OffPushDown\n },\n N: {}\n };\n appearanceStreamContent.N[name] = AcroForm.Appearance.RadioButton.Circle.YesNormal;\n appearanceStreamContent.D[name] = AcroForm.Appearance.RadioButton.Circle.YesPushDown;\n return appearanceStreamContent;\n },\n createMK: function createMK() {\n return \"<< /CA (l)>>\";\n },\n\n YesNormal: function YesNormal(formObject) {\n var xobj = AcroForm.createFormXObject(formObject);\n var stream = \"\";\n // Make the Radius of the Circle relative to min(height, width) of formObject\n var DotRadius = AcroForm.Appearance.internal.getWidth(formObject) <= AcroForm.Appearance.internal.getHeight(formObject) ? AcroForm.Appearance.internal.getWidth(formObject) / 4 : AcroForm.Appearance.internal.getHeight(formObject) / 4;\n // The Borderpadding...\n DotRadius *= 0.9;\n var c = AcroForm.Appearance.internal.Bezier_C;\n /*\n The Following is a Circle created with Bezier-Curves.\n */\n stream += \"q\\n\\\n1 0 0 1 \" + AcroForm.Appearance.internal.getWidth(formObject) / 2 + \" \" + AcroForm.Appearance.internal.getHeight(formObject) / 2 + \" cm\\n\\\n\" + DotRadius + \" 0 m\\n\\\n\" + DotRadius + \" \" + DotRadius * c + \" \" + DotRadius * c + \" \" + DotRadius + \" 0 \" + DotRadius + \" c\\n\\\n-\" + DotRadius * c + \" \" + DotRadius + \" -\" + DotRadius + \" \" + DotRadius * c + \" -\" + DotRadius + \" 0 c\\n\\\n-\" + DotRadius + \" -\" + DotRadius * c + \" -\" + DotRadius * c + \" -\" + DotRadius + \" 0 -\" + DotRadius + \" c\\n\\\n\" + DotRadius * c + \" -\" + DotRadius + \" \" + DotRadius + \" -\" + DotRadius * c + \" \" + DotRadius + \" 0 c\\n\\\nf\\n\\\nQ\\n\";\n xobj.stream = stream;\n return xobj;\n },\n YesPushDown: function YesPushDown(formObject) {\n var xobj = AcroForm.createFormXObject(formObject);\n var stream = \"\";\n var DotRadius = AcroForm.Appearance.internal.getWidth(formObject) <= AcroForm.Appearance.internal.getHeight(formObject) ? AcroForm.Appearance.internal.getWidth(formObject) / 4 : AcroForm.Appearance.internal.getHeight(formObject) / 4;\n // The Borderpadding...\n DotRadius *= 0.9;\n // Save results for later use; no need to waste processor ticks on doing math\n var k = DotRadius * 2;\n // var c = AcroForm.Appearance.internal.Bezier_C;\n var kc = k * AcroForm.Appearance.internal.Bezier_C;\n var dc = DotRadius * AcroForm.Appearance.internal.Bezier_C;\n // stream += \"0.749023 g\\n\\\n // q\\n\\\n // 1 0 0 1 \" + AcroForm.Appearance.internal.getWidth(formObject) / 2 + \" \" + AcroForm.Appearance.internal.getHeight(formObject) / 2 + \" cm\\n\\\n // \" + DotRadius * 2 + \" 0 m\\n\\\n // \" + DotRadius * 2 + \" \" + DotRadius * 2 * c + \" \" + DotRadius * 2 * c + \" \" + DotRadius * 2 + \" 0 \" + DotRadius * 2 + \" c\\n\\\n // -\" + DotRadius * 2 * c + \" \" + DotRadius * 2 + \" -\" + DotRadius * 2 + \" \" + DotRadius * 2 * c + \" -\" + DotRadius * 2 + \" 0 c\\n\\\n // -\" + DotRadius * 2 + \" -\" + DotRadius * 2 * c + \" -\" + DotRadius * 2 * c + \" -\" + DotRadius * 2 + \" 0 -\" + DotRadius * 2 + \" c\\n\\\n // \" + DotRadius * 2 * c + \" -\" + DotRadius * 2 + \" \" + DotRadius * 2 + \" -\" + DotRadius * 2 * c + \" \" + DotRadius * 2 + \" 0 c\\n\\\n // f\\n\\\n // Q\\n\\\n // 0 g\\n\\\n // q\\n\\\n // 1 0 0 1 \" + AcroForm.Appearance.internal.getWidth(formObject) / 2 + \" \" + AcroForm.Appearance.internal.getHeight(formObject) / 2 + \" cm\\n\\\n // \" + DotRadius + \" 0 m\\n\\\n // \" + DotRadius + \" \" + DotRadius * c + \" \" + DotRadius * c + \" \" + DotRadius + \" 0 \" + DotRadius + \" c\\n\\\n // -\" + DotRadius * c + \" \" + DotRadius + \" -\" + DotRadius + \" \" + DotRadius * c + \" -\" + DotRadius + \" 0 c\\n\\\n // -\" + DotRadius + \" -\" + DotRadius * c + \" -\" + DotRadius * c + \" -\" + DotRadius + \" 0 -\" + DotRadius + \" c\\n\\\n // \" + DotRadius * c + \" -\" + DotRadius + \" \" + DotRadius + \" -\" + DotRadius * c + \" \" + DotRadius + \" 0 c\\n\\\n // f\\n\\\n // Q\\n\";\n\n // FASTER VERSION with less processor ticks spent on math operations\n stream += \"0.749023 g\\n\\\n q\\n\\\n 1 0 0 1 \" + AcroForm.Appearance.internal.getWidth(formObject) / 2 + \" \" + AcroForm.Appearance.internal.getHeight(formObject) / 2 + \" cm\\n\\\n\" + k + \" 0 m\\n\\\n\" + k + \" \" + kc + \" \" + kc + \" \" + k + \" 0 \" + k + \" c\\n\\\n-\" + kc + \" \" + k + \" -\" + k + \" \" + kc + \" -\" + k + \" 0 c\\n\\\n-\" + k + \" -\" + kc + \" -\" + kc + \" -\" + k + \" 0 -\" + k + \" c\\n\\\n\" + kc + \" -\" + k + \" \" + k + \" -\" + kc + \" \" + k + \" 0 c\\n\\\n f\\n\\\n Q\\n\\\n 0 g\\n\\\n q\\n\\\n 1 0 0 1 \" + AcroForm.Appearance.internal.getWidth(formObject) / 2 + \" \" + AcroForm.Appearance.internal.getHeight(formObject) / 2 + \" cm\\n\\\n\" + DotRadius + \" 0 m\\n\\\n\" + DotRadius + \" \" + dc + \" \" + dc + \" \" + DotRadius + \" 0 \" + DotRadius + \" c\\n\\\n-\" + dc + \" \" + DotRadius + \" -\" + DotRadius + \" \" + dc + \" -\" + DotRadius + \" 0 c\\n\\\n-\" + DotRadius + \" -\" + dc + \" -\" + dc + \" -\" + DotRadius + \" 0 -\" + DotRadius + \" c\\n\\\n\" + dc + \" -\" + DotRadius + \" \" + DotRadius + \" -\" + dc + \" \" + DotRadius + \" 0 c\\n\\\n f\\n\\\n Q\\n\";\n xobj.stream = stream;\n return xobj;\n },\n OffPushDown: function OffPushDown(formObject) {\n var xobj = AcroForm.createFormXObject(formObject);\n var stream = \"\";\n var DotRadius = AcroForm.Appearance.internal.getWidth(formObject) <= AcroForm.Appearance.internal.getHeight(formObject) ? AcroForm.Appearance.internal.getWidth(formObject) / 4 : AcroForm.Appearance.internal.getHeight(formObject) / 4;\n // The Borderpadding...\n DotRadius *= 0.9;\n // Save results for later use; no need to waste processor ticks on doing math\n var k = DotRadius * 2;\n // var c = AcroForm.Appearance.internal.Bezier_C;\n var kc = k * AcroForm.Appearance.internal.Bezier_C;\n // stream += \"0.749023 g\\n\\\n // q\\n\\\n // 1 0 0 1 \" + AcroForm.Appearance.internal.getWidth(formObject) / 2 + \" \" + AcroForm.Appearance.internal.getHeight(formObject) / 2 + \" cm\\n\\\n // \" + DotRadius * 2 + \" 0 m\\n\\\n // \" + DotRadius * 2 + \" \" + DotRadius * 2 * c + \" \" + DotRadius * 2 * c + \" \" + DotRadius * 2 + \" 0 \" + DotRadius * 2 + \" c\\n\\\n // -\" + DotRadius * 2 * c + \" \" + DotRadius * 2 + \" -\" + DotRadius * 2 + \" \" + DotRadius * 2 * c + \" -\" + DotRadius * 2 + \" 0 c\\n\\\n // -\" + DotRadius * 2 + \" -\" + DotRadius * 2 * c + \" -\" + DotRadius * 2 * c + \" -\" + DotRadius * 2 + \" 0 -\" + DotRadius * 2 + \" c\\n\\\n // \" + DotRadius * 2 * c + \" -\" + DotRadius * 2 + \" \" + DotRadius * 2 + \" -\" + DotRadius * 2 * c + \" \" + DotRadius * 2 + \" 0 c\\n\\\n // f\\n\\\n // Q\\n\";\n\n // FASTER VERSION with less processor ticks spent on math operations\n stream += \"0.749023 g\\n\\\n q\\n\\\n 1 0 0 1 \" + AcroForm.Appearance.internal.getWidth(formObject) / 2 + \" \" + AcroForm.Appearance.internal.getHeight(formObject) / 2 + \" cm\\n\\\n\" + k + \" 0 m\\n\\\n\" + k + \" \" + kc + \" \" + kc + \" \" + k + \" 0 \" + k + \" c\\n\\\n-\" + kc + \" \" + k + \" -\" + k + \" \" + kc + \" -\" + k + \" 0 c\\n\\\n-\" + k + \" -\" + kc + \" -\" + kc + \" -\" + k + \" 0 -\" + k + \" c\\n\\\n\" + kc + \" -\" + k + \" \" + k + \" -\" + kc + \" \" + k + \" 0 c\\n\\\n f\\n\\\n Q\\n\";\n xobj.stream = stream;\n return xobj;\n }\n },\n\n Cross: {\n /**\n * Creates the Actual AppearanceDictionary-References\n * @param name\n * @returns\n */\n createAppearanceStream: function createAppearanceStream(name) {\n var appearanceStreamContent = {\n D: {\n 'Off': AcroForm.Appearance.RadioButton.Cross.OffPushDown\n },\n N: {}\n };\n appearanceStreamContent.N[name] = AcroForm.Appearance.RadioButton.Cross.YesNormal;\n appearanceStreamContent.D[name] = AcroForm.Appearance.RadioButton.Cross.YesPushDown;\n return appearanceStreamContent;\n },\n createMK: function createMK() {\n return \"<< /CA (8)>>\";\n },\n\n YesNormal: function YesNormal(formObject) {\n var xobj = AcroForm.createFormXObject(formObject);\n var stream = \"\";\n var cross = AcroForm.Appearance.internal.calculateCross(formObject);\n stream += \"q\\n\\\n 1 1 \" + (AcroForm.Appearance.internal.getWidth(formObject) - 2) + \" \" + (AcroForm.Appearance.internal.getHeight(formObject) - 2) + \" re\\n\\\n W\\n\\\n n\\n\\\n \" + cross.x1.x + \" \" + cross.x1.y + \" m\\n\\\n \" + cross.x2.x + \" \" + cross.x2.y + \" l\\n\\\n \" + cross.x4.x + \" \" + cross.x4.y + \" m\\n\\\n \" + cross.x3.x + \" \" + cross.x3.y + \" l\\n\\\n s\\n\\\n Q\\n\";\n xobj.stream = stream;\n return xobj;\n },\n YesPushDown: function YesPushDown(formObject) {\n var xobj = AcroForm.createFormXObject(formObject);\n var cross = AcroForm.Appearance.internal.calculateCross(formObject);\n var stream = \"\";\n stream += \"0.749023 g\\n\\\n 0 0 \" + AcroForm.Appearance.internal.getWidth(formObject) + \" \" + AcroForm.Appearance.internal.getHeight(formObject) + \" re\\n\\\n f\\n\\\n q\\n\\\n 1 1 \" + (AcroForm.Appearance.internal.getWidth(formObject) - 2) + \" \" + (AcroForm.Appearance.internal.getHeight(formObject) - 2) + \" re\\n\\\n W\\n\\\n n\\n\\\n \" + cross.x1.x + \" \" + cross.x1.y + \" m\\n\\\n \" + cross.x2.x + \" \" + cross.x2.y + \" l\\n\\\n \" + cross.x4.x + \" \" + cross.x4.y + \" m\\n\\\n \" + cross.x3.x + \" \" + cross.x3.y + \" l\\n\\\n s\\n\\\n Q\\n\";\n xobj.stream = stream;\n return xobj;\n },\n OffPushDown: function OffPushDown(formObject) {\n var xobj = AcroForm.createFormXObject(formObject);\n var stream = \"\";\n stream += \"0.749023 g\\n\\\n 0 0 \" + AcroForm.Appearance.internal.getWidth(formObject) + \" \" + AcroForm.Appearance.internal.getHeight(formObject) + \" re\\n\\\n f\\n\";\n xobj.stream = stream;\n return xobj;\n }\n }\n },\n\n /**\n * Returns the standard Appearance\n * @returns {AcroForm.FormXObject}\n */\n createDefaultAppearanceStream: function createDefaultAppearanceStream(formObject) {\n var stream = \"\";\n // Set Helvetica to Standard Font (size: auto)\n // Color: Black\n stream += \"/Helv 0 Tf 0 g\";\n return stream;\n }\n};\n\nAcroForm.Appearance.internal = {\n Bezier_C: 0.551915024494,\n\n calculateCross: function calculateCross(formObject) {\n var min = function min(x, y) {\n return x > y ? y : x;\n };\n\n var width = AcroForm.Appearance.internal.getWidth(formObject);\n var height = AcroForm.Appearance.internal.getHeight(formObject);\n var a = min(width, height);\n var crossSize = a;\n var borderPadding = 2; // The Padding in px\n\n\n var cross = {\n x1: { // upperLeft\n x: (width - a) / 2,\n y: (height - a) / 2 + a },\n x2: { // lowerRight\n x: (width - a) / 2 + a,\n y: (height - a) / 2 //borderPadding\n },\n x3: { // lowerLeft\n x: (width - a) / 2,\n y: (height - a) / 2 //borderPadding\n },\n x4: { // upperRight\n x: (width - a) / 2 + a,\n y: (height - a) / 2 + a }\n };\n\n return cross;\n }\n};\nAcroForm.Appearance.internal.getWidth = function (formObject) {\n return formObject.Rect[2]; //(formObject.Rect[2] - formObject.Rect[0]) || 0;\n};\nAcroForm.Appearance.internal.getHeight = function (formObject) {\n return formObject.Rect[3]; //(formObject.Rect[1] - formObject.Rect[3]) || 0;\n};\n\n// ##########################\n\n//### For inheritance:\nAcroForm.internal.inherit = function (child, parent) {\n var ObjectCreate = Object.create || function (o) {\n var F = function F() {};\n F.prototype = o;\n return new F();\n };\n child.prototype = Object.create(parent.prototype);\n child.prototype.constructor = child;\n};\n\n// ### Handy Functions:\n\nAcroForm.internal.arrayToPdfArray = function (array) {\n if (Array.isArray(array)) {\n var content = ' [';\n for (var i in array) {\n var element = array[i].toString();\n content += element;\n content += i < array.length - 1 ? ' ' : '';\n }\n content += ']';\n\n return content;\n }\n};\n\nAcroForm.internal.toPdfString = function (string) {\n string = string || \"\";\n\n // put Bracket at the Beginning of the String\n if (string.indexOf('(') !== 0) {\n string = '(' + string;\n }\n\n if (string.substring(string.length - 1) != ')') {\n string += '(';\n }\n return string;\n};\n\n// ##########################\n// Classes\n// ##########################\n\n\nAcroForm.PDFObject = function () {\n // The Object ID in the PDF Object Model\n // todo\n var _objId;\n Object.defineProperty(this, 'objId', {\n get: function get() {\n if (!_objId) {\n if (this.internal) {\n _objId = this.internal.newObjectDeferred();\n } else if (jsPDF.API.acroformPlugin.internal) {\n // todo - find better option, that doesn't rely on a Global Static var\n _objId = jsPDF.API.acroformPlugin.internal.newObjectDeferred();\n }\n }\n if (!_objId) {\n console.log(\"Couldn't create Object ID\");\n }\n return _objId;\n },\n configurable: false\n });\n};\n\nAcroForm.PDFObject.prototype.toString = function () {\n return this.objId + \" 0 R\";\n};\n\nAcroForm.PDFObject.prototype.getString = function () {\n var res = this.objId + \" 0 obj\\n<<\";\n var content = this.getContent();\n\n res += content + \">>\\n\";\n if (this.stream) {\n res += \"stream\\n\";\n res += this.stream;\n res += \"endstream\\n\";\n }\n res += \"endobj\\n\";\n return res;\n};\n\nAcroForm.PDFObject.prototype.getContent = function () {\n /**\n * Prints out all enumerable Variables from the Object\n * @param fieldObject\n * @returns {string}\n */\n var createContentFromFieldObject = function createContentFromFieldObject(fieldObject) {\n var content = '';\n\n var keys = Object.keys(fieldObject).filter(function (key) {\n return key != 'content' && key != 'appearanceStreamContent' && key.substring(0, 1) != \"_\";\n });\n\n for (var i in keys) {\n var key = keys[i];\n var value = fieldObject[key];\n\n /*if (key == 'Rect' && value) {\n value = AcroForm.internal.calculateCoordinates.call(jsPDF.API.acroformPlugin.internal, value);\n }*/\n\n if (value) {\n if (Array.isArray(value)) {\n content += '/' + key + ' ' + AcroForm.internal.arrayToPdfArray(value) + \"\\n\";\n } else if (value instanceof AcroForm.PDFObject) {\n // In case it is a reference to another PDFObject, take the referennce number\n content += '/' + key + ' ' + value.objId + \" 0 R\" + \"\\n\";\n } else {\n content += '/' + key + ' ' + value + '\\n';\n }\n }\n }\n return content;\n };\n\n var object = \"\";\n\n object += createContentFromFieldObject(this);\n return object;\n};\n\nAcroForm.FormXObject = function () {\n AcroForm.PDFObject.call(this);\n this.Type = \"/XObject\";\n this.Subtype = \"/Form\";\n this.FormType = 1;\n this.BBox;\n this.Matrix;\n this.Resources = \"2 0 R\";\n this.PieceInfo;\n var _stream;\n Object.defineProperty(this, 'Length', {\n enumerable: true,\n get: function get() {\n return _stream !== undefined ? _stream.length : 0;\n }\n });\n Object.defineProperty(this, 'stream', {\n enumerable: false,\n set: function set(val) {\n _stream = val;\n },\n get: function get() {\n if (_stream) {\n return _stream;\n } else {\n return null;\n }\n }\n });\n};\n\nAcroForm.internal.inherit(AcroForm.FormXObject, AcroForm.PDFObject);\n\nAcroForm.AcroFormDictionary = function () {\n AcroForm.PDFObject.call(this);\n var _Kids = [];\n Object.defineProperty(this, 'Kids', {\n enumerable: false,\n configurable: true,\n get: function get() {\n if (_Kids.length > 0) {\n return _Kids;\n } else {\n return;\n }\n }\n });\n Object.defineProperty(this, 'Fields', {\n enumerable: true,\n configurable: true,\n get: function get() {\n return _Kids;\n }\n });\n // Default Appearance\n this.DA;\n};\n\nAcroForm.internal.inherit(AcroForm.AcroFormDictionary, AcroForm.PDFObject);\n\n// ##### The Objects, the User can Create:\n\n\n// The Field Object contains the Variables, that every Field needs\n// Rectangle for Appearance: lower_left_X, lower_left_Y, width, height\nAcroForm.Field = function () {\n 'use strict';\n\n AcroForm.PDFObject.call(this);\n\n var _Rect;\n Object.defineProperty(this, 'Rect', {\n enumerable: true,\n configurable: false,\n get: function get() {\n if (!_Rect) {\n return;\n }\n var tmp = _Rect;\n //var calculatedRes = AcroForm.internal.calculateCoordinates(_Rect); // do later!\n return tmp;\n },\n set: function set(val) {\n _Rect = val;\n }\n });\n\n var _FT = \"\";\n Object.defineProperty(this, 'FT', {\n enumerable: true,\n set: function set(val) {\n _FT = val;\n },\n get: function get() {\n return _FT;\n }\n });\n /**\n * The Partial name of the Field Object.\n * It has to be unique.\n */\n var _T;\n\n Object.defineProperty(this, 'T', {\n enumerable: true,\n configurable: false,\n set: function set(val) {\n _T = val;\n },\n get: function get() {\n if (!_T || _T.length < 1) {\n if (this instanceof AcroForm.ChildClass) {\n // In case of a Child from a Radio´Group, you don't need a FieldName!!!\n return;\n }\n return \"(FieldObject\" + AcroForm.Field.FieldNum++ + \")\";\n }\n if (_T.substring(0, 1) == \"(\" && _T.substring(_T.length - 1)) {\n return _T;\n }\n return \"(\" + _T + \")\";\n }\n });\n\n var _DA;\n // Defines the default appearance (Needed for variable Text)\n Object.defineProperty(this, 'DA', {\n enumerable: true,\n get: function get() {\n if (!_DA) {\n return;\n }\n return '(' + _DA + ')';\n },\n set: function set(val) {\n _DA = val;\n }\n });\n\n var _DV;\n // Defines the default value\n Object.defineProperty(this, 'DV', {\n enumerable: true,\n configurable: true,\n get: function get() {\n if (!_DV) {\n return;\n }\n return _DV;\n },\n set: function set(val) {\n _DV = val;\n }\n });\n\n //this.Type = \"/Annot\";\n //this.Subtype = \"/Widget\";\n Object.defineProperty(this, 'Type', {\n enumerable: true,\n get: function get() {\n return this.hasAnnotation ? \"/Annot\" : null;\n }\n });\n\n Object.defineProperty(this, 'Subtype', {\n enumerable: true,\n get: function get() {\n return this.hasAnnotation ? \"/Widget\" : null;\n }\n });\n\n /**\n *\n * @type {Array}\n */\n this.BG;\n\n Object.defineProperty(this, 'hasAnnotation', {\n enumerable: false,\n get: function get() {\n if (this.Rect || this.BC || this.BG) {\n return true;\n }\n return false;\n }\n });\n\n Object.defineProperty(this, 'hasAppearanceStream', {\n enumerable: false,\n configurable: true,\n writable: true\n });\n\n Object.defineProperty(this, 'page', {\n enumerable: false,\n configurable: true,\n writable: true\n });\n};\nAcroForm.Field.FieldNum = 0;\n\nAcroForm.internal.inherit(AcroForm.Field, AcroForm.PDFObject);\n\nAcroForm.ChoiceField = function () {\n AcroForm.Field.call(this);\n // Field Type = Choice Field\n this.FT = \"/Ch\";\n // options\n this.Opt = [];\n this.V = '()';\n // Top Index\n this.TI = 0;\n /**\n * Defines, whether the\n * @type {boolean}\n */\n this.combo = false;\n /**\n * Defines, whether the Choice Field is an Edit Field.\n * An Edit Field is automatically an Combo Field.\n */\n Object.defineProperty(this, 'edit', {\n enumerable: true,\n set: function set(val) {\n if (val == true) {\n this._edit = true;\n // ComboBox has to be true\n this.combo = true;\n } else {\n this._edit = false;\n }\n },\n get: function get() {\n if (!this._edit) {\n return false;\n }\n return this._edit;\n },\n configurable: false\n });\n this.hasAppearanceStream = true;\n Object.defineProperty(this, 'V', {\n get: function get() {\n AcroForm.internal.toPdfString();\n }\n });\n};\nAcroForm.internal.inherit(AcroForm.ChoiceField, AcroForm.Field);\nwindow[\"ChoiceField\"] = AcroForm.ChoiceField;\n\nAcroForm.ListBox = function () {\n AcroForm.ChoiceField.call(this);\n //var combo = true;\n};\nAcroForm.internal.inherit(AcroForm.ListBox, AcroForm.ChoiceField);\nwindow[\"ListBox\"] = AcroForm.ListBox;\n\nAcroForm.ComboBox = function () {\n AcroForm.ListBox.call(this);\n this.combo = true;\n};\nAcroForm.internal.inherit(AcroForm.ComboBox, AcroForm.ListBox);\nwindow[\"ComboBox\"] = AcroForm.ComboBox;\n\nAcroForm.EditBox = function () {\n AcroForm.ComboBox.call(this);\n this.edit = true;\n};\nAcroForm.internal.inherit(AcroForm.EditBox, AcroForm.ComboBox);\nwindow[\"EditBox\"] = AcroForm.EditBox;\n\nAcroForm.Button = function () {\n AcroForm.Field.call(this);\n this.FT = \"/Btn\";\n //this.hasAnnotation = true;\n};\nAcroForm.internal.inherit(AcroForm.Button, AcroForm.Field);\nwindow[\"Button\"] = AcroForm.Button;\n\nAcroForm.PushButton = function () {\n AcroForm.Button.call(this);\n this.pushbutton = true;\n};\nAcroForm.internal.inherit(AcroForm.PushButton, AcroForm.Button);\nwindow[\"PushButton\"] = AcroForm.PushButton;\n\nAcroForm.RadioButton = function () {\n AcroForm.Button.call(this);\n this.radio = true;\n var _Kids = [];\n Object.defineProperty(this, 'Kids', {\n enumerable: true,\n get: function get() {\n if (_Kids.length > 0) {\n return _Kids;\n }\n }\n });\n\n Object.defineProperty(this, '__Kids', {\n get: function get() {\n return _Kids;\n }\n });\n\n var _noToggleToOff;\n\n Object.defineProperty(this, 'noToggleToOff', {\n enumerable: false,\n get: function get() {\n return _noToggleToOff;\n },\n set: function set(val) {\n _noToggleToOff = val;\n }\n });\n\n //this.hasAnnotation = false;\n};\nAcroForm.internal.inherit(AcroForm.RadioButton, AcroForm.Button);\nwindow[\"RadioButton\"] = AcroForm.RadioButton;\n\n/*\n * The Child classs of a RadioButton (the radioGroup)\n * -> The single Buttons\n */\nAcroForm.ChildClass = function (parent, name) {\n AcroForm.Field.call(this);\n this.Parent = parent;\n\n // todo: set AppearanceType as variable that can be set from the outside...\n this._AppearanceType = AcroForm.Appearance.RadioButton.Circle; // The Default appearanceType is the Circle\n this.appearanceStreamContent = this._AppearanceType.createAppearanceStream(name);\n\n // Set Print in the Annot Flag\n this.F = AcroForm.internal.setBitPosition(this.F, 3, 1);\n\n // Set AppearanceCharacteristicsDictionary with default appearance if field is not interacting with user\n this.MK = this._AppearanceType.createMK(); // (8) -> Cross, (1)-> Circle, ()-> nothing\n\n // Default Appearance is Off\n this.AS = \"/Off\"; // + name;\n\n this._Name = name;\n};\nAcroForm.internal.inherit(AcroForm.ChildClass, AcroForm.Field);\n\nAcroForm.RadioButton.prototype.setAppearance = function (appearance) {\n if (!('createAppearanceStream' in appearance && 'createMK' in appearance)) {\n console.log(\"Couldn't assign Appearance to RadioButton. Appearance was Invalid!\");\n return;\n }\n for (var i in this.__Kids) {\n var child = this.__Kids[i];\n\n child.appearanceStreamContent = appearance.createAppearanceStream(child._Name);\n child.MK = appearance.createMK();\n }\n};\n\nAcroForm.RadioButton.prototype.createOption = function (name) {\n var parent = this;\n var kidCount = this.__Kids.length;\n\n // Create new Child for RadioGroup\n var child = new AcroForm.ChildClass(parent, name);\n // Add to Parent\n this.__Kids.push(child);\n\n jsPDF.API.addField(child);\n\n return child;\n};\n\nAcroForm.CheckBox = function () {\n Button.call(this);\n this.appearanceStreamContent = AcroForm.Appearance.CheckBox.createAppearanceStream();\n this.MK = AcroForm.Appearance.CheckBox.createMK();\n this.AS = \"/On\";\n this.V = \"/On\";\n};\nAcroForm.internal.inherit(AcroForm.CheckBox, AcroForm.Button);\nwindow[\"CheckBox\"] = AcroForm.CheckBox;\n\nAcroForm.TextField = function () {\n AcroForm.Field.call(this);\n this.DA = AcroForm.Appearance.createDefaultAppearanceStream();\n this.F = 4;\n var _V;\n Object.defineProperty(this, 'V', {\n get: function get() {\n if (_V) {\n return \"(\" + _V + \")\";\n } else {\n return _V;\n }\n },\n enumerable: true,\n set: function set(val) {\n _V = val;\n }\n });\n\n var _DV;\n Object.defineProperty(this, 'DV', {\n get: function get() {\n if (_DV) {\n return \"(\" + _DV + \")\";\n } else {\n return _DV;\n }\n },\n enumerable: true,\n set: function set(val) {\n _DV = val;\n }\n });\n\n var _multiline = false;\n Object.defineProperty(this, 'multiline', {\n enumerable: false,\n get: function get() {\n return _multiline;\n },\n set: function set(val) {\n _multiline = val;\n }\n });\n\n //this.multiline = false;\n //this.password = false;\n /**\n * For PDF 1.4\n * @type {boolean}\n */\n //this.fileSelect = false;\n /**\n * For PDF 1.4\n * @type {boolean}\n */\n //this.doNotSpellCheck = false;\n /**\n * For PDF 1.4\n * @type {boolean}\n */\n //this.doNotScroll = false;\n\n var _MaxLen = false;\n Object.defineProperty(this, 'MaxLen', {\n enumerable: true,\n get: function get() {\n return _MaxLen;\n },\n set: function set(val) {\n _MaxLen = val;\n }\n });\n\n Object.defineProperty(this, 'hasAppearanceStream', {\n enumerable: false,\n get: function get() {\n return this.V || this.DV;\n }\n });\n};\nAcroForm.internal.inherit(AcroForm.TextField, AcroForm.Field);\nwindow[\"TextField\"] = AcroForm.TextField;\n\nAcroForm.PasswordField = function () {\n TextField.call(this);\n Object.defineProperty(this, 'password', {\n value: true,\n enumerable: false,\n configurable: false,\n writable: false\n });\n};\nAcroForm.internal.inherit(AcroForm.PasswordField, AcroForm.TextField);\nwindow[\"PasswordField\"] = AcroForm.PasswordField;\n\n// ############ internal functions\n\n/*\n * small workaround for calculating the TextMetric approximately\n * @param text\n * @param fontsize\n * @returns {TextMetrics} (Has Height and Width)\n */\nAcroForm.internal.calculateFontSpace = function (text, fontsize, fonttype) {\n var fonttype = fonttype || \"helvetica\";\n //re-use canvas object for speed improvements\n var canvas = AcroForm.internal.calculateFontSpace.canvas || (AcroForm.internal.calculateFontSpace.canvas = document.createElement('canvas'));\n\n var context = canvas.getContext('2d');\n context.save();\n var newFont = fontsize + \" \" + fonttype;\n context.font = newFont;\n var res = context.measureText(text);\n context.fontcolor = 'black';\n // Calculate height:\n var context = canvas.getContext('2d');\n res.height = context.measureText(\"3\").width * 1.5; // 3 because in ZapfDingbats its a Hook and a 3 in normal fonts\n context.restore();\n\n var width = res.width;\n\n return res;\n};\n\nAcroForm.internal.calculateX = function (formObject, text, font, maxFontSize) {\n var maxFontSize = maxFontSize || 12;\n var font = font || \"helvetica\";\n var returnValue = {\n text: \"\",\n fontSize: \"\"\n };\n // Remove Brackets\n text = text.substr(0, 1) == '(' ? text.substr(1) : text;\n text = text.substr(text.length - 1) == ')' ? text.substr(0, text.length - 1) : text;\n // split into array of words\n var textSplit = text.split(' ');\n\n /**\n * the color could be ((alpha)||(r,g,b)||(c,m,y,k))\n * @type {string}\n */\n var color = \"0 g\\n\";\n var fontSize = maxFontSize; // The Starting fontSize (The Maximum)\n var lineSpacing = 2;\n var borderPadding = 2;\n\n var height = AcroForm.Appearance.internal.getHeight(formObject) || 0;\n height = height < 0 ? -height : height;\n var width = AcroForm.Appearance.internal.getWidth(formObject) || 0;\n width = width < 0 ? -width : width;\n\n var isSmallerThanWidth = function isSmallerThanWidth(i, lastLine, fontSize) {\n if (i + 1 < textSplit.length) {\n var tmp = lastLine + \" \" + textSplit[i + 1];\n var TextWidth = AcroForm.internal.calculateFontSpace(tmp, fontSize + \"px\", font).width;\n var FieldWidth = width - 2 * borderPadding;\n return TextWidth <= FieldWidth;\n } else {\n return false;\n }\n };\n\n fontSize++;\n FontSize: while (true) {\n var text = \"\";\n fontSize--;\n var textHeight = AcroForm.internal.calculateFontSpace(\"3\", fontSize + \"px\", font).height;\n var startY = formObject.multiline ? height - fontSize : (height - textHeight) / 2;\n startY += lineSpacing;\n var startX = -borderPadding;\n\n var lastX = startX,\n lastY = startY;\n var firstWordInLine = 0,\n lastWordInLine = 0;\n var lastLength = 0;\n\n var y = 0;\n if (fontSize == 0) {\n // In case, the Text doesn't fit at all\n fontSize = 12;\n text = \"(...) Tj\\n\";\n text += \"% Width of Text: \" + AcroForm.internal.calculateFontSpace(text, \"1px\").width + \", FieldWidth:\" + width + \"\\n\";\n break;\n }\n\n lastLength = AcroForm.internal.calculateFontSpace(textSplit[0] + \" \", fontSize + \"px\", font).width;\n\n var lastLine = \"\";\n var lineCount = 0;\n Line: for (var i in textSplit) {\n lastLine += textSplit[i] + \" \";\n // Remove last blank\n lastLine = lastLine.substr(lastLine.length - 1) == \" \" ? lastLine.substr(0, lastLine.length - 1) : lastLine;\n var key = parseInt(i);\n lastLength = AcroForm.internal.calculateFontSpace(lastLine + \" \", fontSize + \"px\", font).width;\n var nextLineIsSmaller = isSmallerThanWidth(key, lastLine, fontSize);\n var isLastWord = i >= textSplit.length - 1;\n if (nextLineIsSmaller && !isLastWord) {\n lastLine += \" \";\n continue; // Line\n } else if (!nextLineIsSmaller && !isLastWord) {\n if (!formObject.multiline) {\n continue FontSize;\n } else {\n if ((textHeight + lineSpacing) * (lineCount + 2) + lineSpacing > height) {\n // If the Text is higher than the FieldObject\n continue FontSize;\n }\n lastWordInLine = key;\n // go on\n }\n } else if (isLastWord) {\n lastWordInLine = key;\n } else {\n if (formObject.multiline && (textHeight + lineSpacing) * (lineCount + 2) + lineSpacing > height) {\n // If the Text is higher than the FieldObject\n continue FontSize;\n }\n }\n\n var line = '';\n\n for (var x = firstWordInLine; x <= lastWordInLine; x++) {\n line += textSplit[x] + ' ';\n }\n\n // Remove last blank\n line = line.substr(line.length - 1) == \" \" ? line.substr(0, line.length - 1) : line;\n //lastLength -= blankSpace.width;\n lastLength = AcroForm.internal.calculateFontSpace(line, fontSize + \"px\", font).width;\n\n // Calculate startX\n switch (formObject.Q) {\n case 2:\n // Right justified\n startX = width - lastLength - borderPadding;\n break;\n case 1:\n // Q = 1 := Text-Alignment: Center\n startX = (width - lastLength) / 2;\n break;\n case 0:\n default:\n startX = borderPadding;\n break;\n }\n text += startX + ' ' + lastY + ' Td\\n';\n text += '(' + line + ') Tj\\n';\n // reset X in PDF\n text += -startX + ' 0 Td\\n';\n\n // After a Line, adjust y position\n lastY = -(fontSize + lineSpacing);\n lastX = startX;\n\n // Reset for next iteration step\n lastLength = 0;\n firstWordInLine = lastWordInLine + 1;\n lineCount++;\n\n lastLine = \"\";\n continue Line;\n }\n break;\n }\n\n returnValue.text = text;\n returnValue.fontSize = fontSize;\n\n return returnValue;\n};\n\nAcroForm.internal.calculateAppearanceStream = function (formObject) {\n if (formObject.appearanceStreamContent) {\n // If appearanceStream is already set, use it\n return formObject.appearanceStreamContent;\n }\n\n if (!formObject.V && !formObject.DV) {\n return;\n }\n\n // else calculate it\n\n var stream = '';\n\n var text = formObject.V || formObject.DV;\n\n var calcRes = AcroForm.internal.calculateX(formObject, text);\n\n stream += '/Tx BMC\\n' + 'q\\n' +\n //color + '\\n' +\n '/F1 ' + calcRes.fontSize + ' Tf\\n' +\n // Text Matrix\n '1 0 0 1 0 0 Tm\\n';\n // Begin Text\n stream += 'BT\\n';\n stream += calcRes.text;\n // End Text\n stream += 'ET\\n';\n stream += 'Q\\n' + 'EMC\\n';\n\n var appearanceStreamContent = new AcroForm.createFormXObject(formObject);\n\n appearanceStreamContent.stream = stream;\n\n var appearance = {\n N: {\n 'Normal': appearanceStreamContent\n }\n };\n\n return appearanceStreamContent;\n};\n\n/*\n * Converts the Parameters from x,y,w,h to lowerLeftX, lowerLeftY, upperRightX, upperRightY\n * @param x\n * @param y\n * @param w\n * @param h\n * @returns {*[]}\n */\nAcroForm.internal.calculateCoordinates = function (x, y, w, h) {\n var coordinates = {};\n\n if (this.internal) {\n var mmtopx = function mmtopx(x) {\n return x * this.internal.scaleFactor;\n };\n\n if (Array.isArray(x)) {\n x[0] = AcroForm.scale(x[0]);\n x[1] = AcroForm.scale(x[1]);\n x[2] = AcroForm.scale(x[2]);\n x[3] = AcroForm.scale(x[3]);\n\n coordinates.lowerLeft_X = x[0] || 0;\n coordinates.lowerLeft_Y = mmtopx.call(this, this.internal.pageSize.height) - x[3] - x[1] || 0;\n coordinates.upperRight_X = x[0] + x[2] || 0;\n coordinates.upperRight_Y = mmtopx.call(this, this.internal.pageSize.height) - x[1] || 0;\n } else {\n x = AcroForm.scale(x);\n y = AcroForm.scale(y);\n w = AcroForm.scale(w);\n h = AcroForm.scale(h);\n coordinates.lowerLeft_X = x || 0;\n coordinates.lowerLeft_Y = this.internal.pageSize.height - y || 0;\n coordinates.upperRight_X = x + w || 0;\n coordinates.upperRight_Y = this.internal.pageSize.height - y + h || 0;\n }\n } else {\n // old method, that is fallback, if we can't get the pageheight, the coordinate-system starts from lower left\n if (Array.isArray(x)) {\n coordinates.lowerLeft_X = x[0] || 0;\n coordinates.lowerLeft_Y = x[1] || 0;\n coordinates.upperRight_X = x[0] + x[2] || 0;\n coordinates.upperRight_Y = x[1] + x[3] || 0;\n } else {\n coordinates.lowerLeft_X = x || 0;\n coordinates.lowerLeft_Y = y || 0;\n coordinates.upperRight_X = x + w || 0;\n coordinates.upperRight_Y = y + h || 0;\n }\n }\n\n return [coordinates.lowerLeft_X, coordinates.lowerLeft_Y, coordinates.upperRight_X, coordinates.upperRight_Y];\n};\n\nAcroForm.internal.calculateColor = function (r, g, b) {\n var color = new Array(3);\n color.r = r | 0;\n color.g = g | 0;\n color.b = b | 0;\n return color;\n};\n\nAcroForm.internal.getBitPosition = function (variable, position) {\n variable = variable || 0;\n var bitMask = 1;\n bitMask = bitMask << position - 1;\n return variable | bitMask;\n};\n\nAcroForm.internal.setBitPosition = function (variable, position, value) {\n variable = variable || 0;\n value = value || 1;\n\n var bitMask = 1;\n bitMask = bitMask << position - 1;\n\n if (value == 1) {\n // Set the Bit to 1\n var variable = variable | bitMask;\n } else {\n // Set the Bit to 0\n var variable = variable & ~bitMask;\n }\n\n return variable;\n};\n\n/**\n * jsPDF addHTML PlugIn\n * Copyright (c) 2014 Diego Casorran\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\n(function (jsPDFAPI) {\n\t'use strict';\n\n\t/**\n * Renders an HTML element to canvas object which added to the PDF\n *\n * This feature requires [html2canvas](https://github.com/niklasvh/html2canvas)\n * or [rasterizeHTML](https://github.com/cburgmer/rasterizeHTML.js)\n *\n * @returns {jsPDF}\n * @name addHTML\n * @param element {Mixed} HTML Element, or anything supported by html2canvas.\n * @param x {Number} starting X coordinate in jsPDF instance's declared units.\n * @param y {Number} starting Y coordinate in jsPDF instance's declared units.\n * @param options {Object} Additional options, check the code below.\n * @param callback {Function} to call when the rendering has finished.\n * NOTE: Every parameter is optional except 'element' and 'callback', in such\n * case the image is positioned at 0x0 covering the whole PDF document\n * size. Ie, to easily take screenshots of webpages saving them to PDF.\n * @deprecated This is being replace with a vector-supporting API. See\n * [this link](https://cdn.rawgit.com/MrRio/jsPDF/master/examples/html2pdf/showcase_supported_html.html)\n */\n\n\tjsPDFAPI.addHTML = function (element, x, y, options, callback) {\n\t\t'use strict';\n\n\t\tif (typeof html2canvas === 'undefined' && typeof rasterizeHTML === 'undefined') throw new Error('You need either ' + 'https://github.com/niklasvh/html2canvas' + ' or https://github.com/cburgmer/rasterizeHTML.js');\n\n\t\tif (typeof x !== 'number') {\n\t\t\toptions = x;\n\t\t\tcallback = y;\n\t\t}\n\n\t\tif (typeof options === 'function') {\n\t\t\tcallback = options;\n\t\t\toptions = null;\n\t\t}\n\n\t\tvar I = this.internal,\n\t\t K = I.scaleFactor,\n\t\t W = I.pageSize.width,\n\t\t H = I.pageSize.height;\n\n\t\toptions = options || {};\n\t\toptions.onrendered = function (obj) {\n\t\t\tx = parseInt(x) || 0;\n\t\t\ty = parseInt(y) || 0;\n\t\t\tvar dim = options.dim || {};\n\t\t\tvar h = dim.h || 0;\n\t\t\tvar w = dim.w || Math.min(W, obj.width / K) - x;\n\n\t\t\tvar format = 'JPEG';\n\t\t\tif (options.format) format = options.format;\n\n\t\t\tif (obj.height > H && options.pagesplit) {\n\t\t\t\tvar crop = function () {\n\t\t\t\t\tvar cy = 0;\n\t\t\t\t\twhile (1) {\n\t\t\t\t\t\tvar canvas = document.createElement('canvas');\n\t\t\t\t\t\tcanvas.width = Math.min(W * K, obj.width);\n\t\t\t\t\t\tcanvas.height = Math.min(H * K, obj.height - cy);\n\t\t\t\t\t\tvar ctx = canvas.getContext('2d');\n\t\t\t\t\t\tctx.drawImage(obj, 0, cy, obj.width, canvas.height, 0, 0, canvas.width, canvas.height);\n\t\t\t\t\t\tvar args = [canvas, x, cy ? 0 : y, canvas.width / K, canvas.height / K, format, null, 'SLOW'];\n\t\t\t\t\t\tthis.addImage.apply(this, args);\n\t\t\t\t\t\tcy += canvas.height;\n\t\t\t\t\t\tif (cy >= obj.height) break;\n\t\t\t\t\t\tthis.addPage();\n\t\t\t\t\t}\n\t\t\t\t\tcallback(w, cy, null, args);\n\t\t\t\t}.bind(this);\n\t\t\t\tif (obj.nodeName === 'CANVAS') {\n\t\t\t\t\tvar img = new Image();\n\t\t\t\t\timg.onload = crop;\n\t\t\t\t\timg.src = obj.toDataURL(\"image/png\");\n\t\t\t\t\tobj = img;\n\t\t\t\t} else {\n\t\t\t\t\tcrop();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvar alias = Math.random().toString(35);\n\t\t\t\tvar args = [obj, x, y, w, h, format, alias, 'SLOW'];\n\n\t\t\t\tthis.addImage.apply(this, args);\n\n\t\t\t\tcallback(w, h, alias, args);\n\t\t\t}\n\t\t}.bind(this);\n\n\t\tif (typeof html2canvas !== 'undefined' && !options.rstz) {\n\t\t\treturn html2canvas(element, options);\n\t\t}\n\n\t\tif (typeof rasterizeHTML !== 'undefined') {\n\t\t\tvar meth = 'drawDocument';\n\t\t\tif (typeof element === 'string') {\n\t\t\t\tmeth = /^http/.test(element) ? 'drawURL' : 'drawHTML';\n\t\t\t}\n\t\t\toptions.width = options.width || W * K;\n\t\t\treturn rasterizeHTML[meth](element, void 0, options).then(function (r) {\n\t\t\t\toptions.onrendered(r.image);\n\t\t\t}, function (e) {\n\t\t\t\tcallback(null, e);\n\t\t\t});\n\t\t}\n\n\t\treturn null;\n\t};\n})(jsPDF.API);\n\n/** @preserve\n * jsPDF addImage plugin\n * Copyright (c) 2012 Jason Siefken, https://github.com/siefkenj/\n * 2013 Chris Dowling, https://github.com/gingerchris\n * 2013 Trinh Ho, https://github.com/ineedfat\n * 2013 Edwin Alejandro Perez, https://github.com/eaparango\n * 2013 Norah Smith, https://github.com/burnburnrocket\n * 2014 Diego Casorran, https://github.com/diegocr\n * 2014 James Robb, https://github.com/jamesbrobb\n *\n * \n */\n\n(function (jsPDFAPI) {\n\t'use strict';\n\n\tvar namespace = 'addImage_',\n\t supported_image_types = ['jpeg', 'jpg', 'png'];\n\n\t// Image functionality ported from pdf.js\n\tvar putImage = function putImage(img) {\n\n\t\tvar objectNumber = this.internal.newObject(),\n\t\t out = this.internal.write,\n\t\t putStream = this.internal.putStream;\n\n\t\timg['n'] = objectNumber;\n\n\t\tout('<>');\n\t\t}\n\t\tif ('trns' in img && img['trns'].constructor == Array) {\n\t\t\tvar trns = '',\n\t\t\t i = 0,\n\t\t\t len = img['trns'].length;\n\t\t\tfor (; i < len; i++) {\n\t\t\t\ttrns += img['trns'][i] + ' ' + img['trns'][i] + ' ';\n\t\t\t}out('/Mask [' + trns + ']');\n\t\t}\n\t\tif ('smask' in img) {\n\t\t\tout('/SMask ' + (objectNumber + 1) + ' 0 R');\n\t\t}\n\t\tout('/Length ' + img['data'].length + '>>');\n\n\t\tputStream(img['data']);\n\n\t\tout('endobj');\n\n\t\t// Soft mask\n\t\tif ('smask' in img) {\n\t\t\tvar dp = '/Predictor ' + img['p'] + ' /Colors 1 /BitsPerComponent ' + img['bpc'] + ' /Columns ' + img['w'];\n\t\t\tvar smask = { 'w': img['w'], 'h': img['h'], 'cs': 'DeviceGray', 'bpc': img['bpc'], 'dp': dp, 'data': img['smask'] };\n\t\t\tif ('f' in img) smask.f = img['f'];\n\t\t\tputImage.call(this, smask);\n\t\t}\n\n\t\t//Palette\n\t\tif (img['cs'] === this.color_spaces.INDEXED) {\n\n\t\t\tthis.internal.newObject();\n\t\t\t//out('<< /Filter / ' + img['f'] +' /Length ' + img['pal'].length + '>>');\n\t\t\t//putStream(zlib.compress(img['pal']));\n\t\t\tout('<< /Length ' + img['pal'].length + '>>');\n\t\t\tputStream(this.arrayBufferToBinaryString(new Uint8Array(img['pal'])));\n\t\t\tout('endobj');\n\t\t}\n\t},\n\t putResourcesCallback = function putResourcesCallback() {\n\t\tvar images = this.internal.collections[namespace + 'images'];\n\t\tfor (var i in images) {\n\t\t\tputImage.call(this, images[i]);\n\t\t}\n\t},\n\t putXObjectsDictCallback = function putXObjectsDictCallback() {\n\t\tvar images = this.internal.collections[namespace + 'images'],\n\t\t out = this.internal.write,\n\t\t image;\n\t\tfor (var i in images) {\n\t\t\timage = images[i];\n\t\t\tout('/I' + image['i'], image['n'], '0', 'R');\n\t\t}\n\t},\n\t checkCompressValue = function checkCompressValue(value) {\n\t\tif (value && typeof value === 'string') value = value.toUpperCase();\n\t\treturn value in jsPDFAPI.image_compression ? value : jsPDFAPI.image_compression.NONE;\n\t},\n\t getImages = function getImages() {\n\t\tvar images = this.internal.collections[namespace + 'images'];\n\t\t//first run, so initialise stuff\n\t\tif (!images) {\n\t\t\tthis.internal.collections[namespace + 'images'] = images = {};\n\t\t\tthis.internal.events.subscribe('putResources', putResourcesCallback);\n\t\t\tthis.internal.events.subscribe('putXobjectDict', putXObjectsDictCallback);\n\t\t}\n\n\t\treturn images;\n\t},\n\t getImageIndex = function getImageIndex(images) {\n\t\tvar imageIndex = 0;\n\n\t\tif (images) {\n\t\t\t// this is NOT the first time this method is ran on this instance of jsPDF object.\n\t\t\timageIndex = Object.keys ? Object.keys(images).length : function (o) {\n\t\t\t\tvar i = 0;\n\t\t\t\tfor (var e in o) {\n\t\t\t\t\tif (o.hasOwnProperty(e)) {\n\t\t\t\t\t\ti++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn i;\n\t\t\t}(images);\n\t\t}\n\n\t\treturn imageIndex;\n\t},\n\t notDefined = function notDefined(value) {\n\t\treturn typeof value === 'undefined' || value === null;\n\t},\n\t generateAliasFromData = function generateAliasFromData(data) {\n\t\treturn typeof data === 'string' && jsPDFAPI.sHashCode(data);\n\t},\n\t doesNotSupportImageType = function doesNotSupportImageType(type) {\n\t\treturn supported_image_types.indexOf(type) === -1;\n\t},\n\t processMethodNotEnabled = function processMethodNotEnabled(type) {\n\t\treturn typeof jsPDFAPI['process' + type.toUpperCase()] !== 'function';\n\t},\n\t isDOMElement = function isDOMElement(object) {\n\t\treturn (typeof object === 'undefined' ? 'undefined' : _typeof(object)) === 'object' && object.nodeType === 1;\n\t},\n\t createDataURIFromElement = function createDataURIFromElement(element, format, angle) {\n\n\t\t//if element is an image which uses data url definition, just return the dataurl\n\t\tif (element.nodeName === 'IMG' && element.hasAttribute('src')) {\n\t\t\tvar src = '' + element.getAttribute('src');\n\t\t\tif (!angle && src.indexOf('data:image/') === 0) return src;\n\n\t\t\t// only if the user doesn't care about a format\n\t\t\tif (!format && /\\.png(?:[?#].*)?$/i.test(src)) format = 'png';\n\t\t}\n\n\t\tif (element.nodeName === 'CANVAS') {\n\t\t\tvar canvas = element;\n\t\t} else {\n\t\t\tvar canvas = document.createElement('canvas');\n\t\t\tcanvas.width = element.clientWidth || element.width;\n\t\t\tcanvas.height = element.clientHeight || element.height;\n\n\t\t\tvar ctx = canvas.getContext('2d');\n\t\t\tif (!ctx) {\n\t\t\t\tthrow 'addImage requires canvas to be supported by browser.';\n\t\t\t}\n\t\t\tif (angle) {\n\t\t\t\tvar x,\n\t\t\t\t y,\n\t\t\t\t b,\n\t\t\t\t c,\n\t\t\t\t s,\n\t\t\t\t w,\n\t\t\t\t h,\n\t\t\t\t to_radians = Math.PI / 180,\n\t\t\t\t angleInRadians;\n\n\t\t\t\tif ((typeof angle === 'undefined' ? 'undefined' : _typeof(angle)) === 'object') {\n\t\t\t\t\tx = angle.x;\n\t\t\t\t\ty = angle.y;\n\t\t\t\t\tb = angle.bg;\n\t\t\t\t\tangle = angle.angle;\n\t\t\t\t}\n\t\t\t\tangleInRadians = angle * to_radians;\n\t\t\t\tc = Math.abs(Math.cos(angleInRadians));\n\t\t\t\ts = Math.abs(Math.sin(angleInRadians));\n\t\t\t\tw = canvas.width;\n\t\t\t\th = canvas.height;\n\t\t\t\tcanvas.width = h * s + w * c;\n\t\t\t\tcanvas.height = h * c + w * s;\n\n\t\t\t\tif (isNaN(x)) x = canvas.width / 2;\n\t\t\t\tif (isNaN(y)) y = canvas.height / 2;\n\n\t\t\t\tctx.clearRect(0, 0, canvas.width, canvas.height);\n\t\t\t\tctx.fillStyle = b || 'white';\n\t\t\t\tctx.fillRect(0, 0, canvas.width, canvas.height);\n\t\t\t\tctx.save();\n\t\t\t\tctx.translate(x, y);\n\t\t\t\tctx.rotate(angleInRadians);\n\t\t\t\tctx.drawImage(element, -(w / 2), -(h / 2));\n\t\t\t\tctx.rotate(-angleInRadians);\n\t\t\t\tctx.translate(-x, -y);\n\t\t\t\tctx.restore();\n\t\t\t} else {\n\t\t\t\tctx.drawImage(element, 0, 0, canvas.width, canvas.height);\n\t\t\t}\n\t\t}\n\t\treturn canvas.toDataURL(('' + format).toLowerCase() == 'png' ? 'image/png' : 'image/jpeg');\n\t},\n\t checkImagesForAlias = function checkImagesForAlias(alias, images) {\n\t\tvar cached_info;\n\t\tif (images) {\n\t\t\tfor (var e in images) {\n\t\t\t\tif (alias === images[e].alias) {\n\t\t\t\t\tcached_info = images[e];\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn cached_info;\n\t},\n\t determineWidthAndHeight = function determineWidthAndHeight(w, h, info) {\n\t\tif (!w && !h) {\n\t\t\tw = -96;\n\t\t\th = -96;\n\t\t}\n\t\tif (w < 0) {\n\t\t\tw = -1 * info['w'] * 72 / w / this.internal.scaleFactor;\n\t\t}\n\t\tif (h < 0) {\n\t\t\th = -1 * info['h'] * 72 / h / this.internal.scaleFactor;\n\t\t}\n\t\tif (w === 0) {\n\t\t\tw = h * info['w'] / info['h'];\n\t\t}\n\t\tif (h === 0) {\n\t\t\th = w * info['h'] / info['w'];\n\t\t}\n\n\t\treturn [w, h];\n\t},\n\t writeImageToPDF = function writeImageToPDF(x, y, w, h, info, index, images) {\n\t\tvar dims = determineWidthAndHeight.call(this, w, h, info),\n\t\t coord = this.internal.getCoordinateString,\n\t\t vcoord = this.internal.getVerticalCoordinateString;\n\n\t\tw = dims[0];\n\t\th = dims[1];\n\n\t\timages[index] = info;\n\n\t\tthis.internal.write('q', coord(w), '0 0', coord(h) // TODO: check if this should be shifted by vcoord\n\t\t, coord(x), vcoord(y + h), 'cm /I' + info['i'], 'Do Q');\n\t};\n\n\t/**\n * COLOR SPACES\n */\n\tjsPDFAPI.color_spaces = {\n\t\tDEVICE_RGB: 'DeviceRGB',\n\t\tDEVICE_GRAY: 'DeviceGray',\n\t\tDEVICE_CMYK: 'DeviceCMYK',\n\t\tCAL_GREY: 'CalGray',\n\t\tCAL_RGB: 'CalRGB',\n\t\tLAB: 'Lab',\n\t\tICC_BASED: 'ICCBased',\n\t\tINDEXED: 'Indexed',\n\t\tPATTERN: 'Pattern',\n\t\tSEPARATION: 'Separation',\n\t\tDEVICE_N: 'DeviceN'\n\t};\n\n\t/**\n * DECODE METHODS\n */\n\tjsPDFAPI.decode = {\n\t\tDCT_DECODE: 'DCTDecode',\n\t\tFLATE_DECODE: 'FlateDecode',\n\t\tLZW_DECODE: 'LZWDecode',\n\t\tJPX_DECODE: 'JPXDecode',\n\t\tJBIG2_DECODE: 'JBIG2Decode',\n\t\tASCII85_DECODE: 'ASCII85Decode',\n\t\tASCII_HEX_DECODE: 'ASCIIHexDecode',\n\t\tRUN_LENGTH_DECODE: 'RunLengthDecode',\n\t\tCCITT_FAX_DECODE: 'CCITTFaxDecode'\n\t};\n\n\t/**\n * IMAGE COMPRESSION TYPES\n */\n\tjsPDFAPI.image_compression = {\n\t\tNONE: 'NONE',\n\t\tFAST: 'FAST',\n\t\tMEDIUM: 'MEDIUM',\n\t\tSLOW: 'SLOW'\n\t};\n\n\tjsPDFAPI.sHashCode = function (str) {\n\t\treturn Array.prototype.reduce && str.split(\"\").reduce(function (a, b) {\n\t\t\ta = (a << 5) - a + b.charCodeAt(0);return a & a;\n\t\t}, 0);\n\t};\n\n\tjsPDFAPI.isString = function (object) {\n\t\treturn typeof object === 'string';\n\t};\n\n\t/**\n * Strips out and returns info from a valid base64 data URI\n * @param {String[dataURI]} a valid data URI of format 'data:[][;base64],'\n * @returns an Array containing the following\n * [0] the complete data URI\n * [1] \n * [2] format - the second part of the mime-type i.e 'png' in 'image/png'\n * [4] \n */\n\tjsPDFAPI.extractInfoFromBase64DataURI = function (dataURI) {\n\t\treturn (/^data:([\\w]+?\\/([\\w]+?));base64,(.+?)$/g.exec(dataURI)\n\t\t);\n\t};\n\n\t/**\n * Check to see if ArrayBuffer is supported\n */\n\tjsPDFAPI.supportsArrayBuffer = function () {\n\t\treturn typeof ArrayBuffer !== 'undefined' && typeof Uint8Array !== 'undefined';\n\t};\n\n\t/**\n * Tests supplied object to determine if ArrayBuffer\n * @param {Object[object]}\n */\n\tjsPDFAPI.isArrayBuffer = function (object) {\n\t\tif (!this.supportsArrayBuffer()) return false;\n\t\treturn object instanceof ArrayBuffer;\n\t};\n\n\t/**\n * Tests supplied object to determine if it implements the ArrayBufferView (TypedArray) interface\n * @param {Object[object]}\n */\n\tjsPDFAPI.isArrayBufferView = function (object) {\n\t\tif (!this.supportsArrayBuffer()) return false;\n\t\tif (typeof Uint32Array === 'undefined') return false;\n\t\treturn object instanceof Int8Array || object instanceof Uint8Array || typeof Uint8ClampedArray !== 'undefined' && object instanceof Uint8ClampedArray || object instanceof Int16Array || object instanceof Uint16Array || object instanceof Int32Array || object instanceof Uint32Array || object instanceof Float32Array || object instanceof Float64Array;\n\t};\n\n\t/**\n * Exactly what it says on the tin\n */\n\tjsPDFAPI.binaryStringToUint8Array = function (binary_string) {\n\t\t/*\n * not sure how efficient this will be will bigger files. Is there a native method?\n */\n\t\tvar len = binary_string.length;\n\t\tvar bytes = new Uint8Array(len);\n\t\tfor (var i = 0; i < len; i++) {\n\t\t\tbytes[i] = binary_string.charCodeAt(i);\n\t\t}\n\t\treturn bytes;\n\t};\n\n\t/**\n * @see this discussion\n * http://stackoverflow.com/questions/6965107/converting-between-strings-and-arraybuffers\n *\n * As stated, i imagine the method below is highly inefficent for large files.\n *\n * Also of note from Mozilla,\n *\n * \"However, this is slow and error-prone, due to the need for multiple conversions (especially if the binary data is not actually byte-format data, but, for example, 32-bit integers or floats).\"\n *\n * https://developer.mozilla.org/en-US/Add-ons/Code_snippets/StringView\n *\n * Although i'm strugglig to see how StringView solves this issue? Doesn't appear to be a direct method for conversion?\n *\n * Async method using Blob and FileReader could be best, but i'm not sure how to fit it into the flow?\n */\n\tjsPDFAPI.arrayBufferToBinaryString = function (buffer) {\n\t\t/*if('TextDecoder' in window){\n \tvar decoder = new TextDecoder('ascii');\n \treturn decoder.decode(buffer);\n }*/\n\n\t\tif (this.isArrayBuffer(buffer)) buffer = new Uint8Array(buffer);\n\n\t\tvar binary_string = '';\n\t\tvar len = buffer.byteLength;\n\t\tfor (var i = 0; i < len; i++) {\n\t\t\tbinary_string += String.fromCharCode(buffer[i]);\n\t\t}\n\t\treturn binary_string;\n\t\t/*\n * Another solution is the method below - convert array buffer straight to base64 and then use atob\n */\n\t\t//return atob(this.arrayBufferToBase64(buffer));\n\t};\n\n\t/**\n * Converts an ArrayBuffer directly to base64\n *\n * Taken from here\n *\n * http://jsperf.com/encoding-xhr-image-data/31\n *\n * Need to test if this is a better solution for larger files\n *\n */\n\tjsPDFAPI.arrayBufferToBase64 = function (arrayBuffer) {\n\t\tvar base64 = '';\n\t\tvar encodings = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n\t\tvar bytes = new Uint8Array(arrayBuffer);\n\t\tvar byteLength = bytes.byteLength;\n\t\tvar byteRemainder = byteLength % 3;\n\t\tvar mainLength = byteLength - byteRemainder;\n\n\t\tvar a, b, c, d;\n\t\tvar chunk;\n\n\t\t// Main loop deals with bytes in chunks of 3\n\t\tfor (var i = 0; i < mainLength; i = i + 3) {\n\t\t\t// Combine the three bytes into a single integer\n\t\t\tchunk = bytes[i] << 16 | bytes[i + 1] << 8 | bytes[i + 2];\n\n\t\t\t// Use bitmasks to extract 6-bit segments from the triplet\n\t\t\ta = (chunk & 16515072) >> 18; // 16515072 = (2^6 - 1) << 18\n\t\t\tb = (chunk & 258048) >> 12; // 258048 = (2^6 - 1) << 12\n\t\t\tc = (chunk & 4032) >> 6; // 4032 = (2^6 - 1) << 6\n\t\t\td = chunk & 63; // 63 = 2^6 - 1\n\n\t\t\t// Convert the raw binary segments to the appropriate ASCII encoding\n\t\t\tbase64 += encodings[a] + encodings[b] + encodings[c] + encodings[d];\n\t\t}\n\n\t\t// Deal with the remaining bytes and padding\n\t\tif (byteRemainder == 1) {\n\t\t\tchunk = bytes[mainLength];\n\n\t\t\ta = (chunk & 252) >> 2; // 252 = (2^6 - 1) << 2\n\n\t\t\t// Set the 4 least significant bits to zero\n\t\t\tb = (chunk & 3) << 4; // 3 = 2^2 - 1\n\n\t\t\tbase64 += encodings[a] + encodings[b] + '==';\n\t\t} else if (byteRemainder == 2) {\n\t\t\tchunk = bytes[mainLength] << 8 | bytes[mainLength + 1];\n\n\t\t\ta = (chunk & 64512) >> 10; // 64512 = (2^6 - 1) << 10\n\t\t\tb = (chunk & 1008) >> 4; // 1008 = (2^6 - 1) << 4\n\n\t\t\t// Set the 2 least significant bits to zero\n\t\t\tc = (chunk & 15) << 2; // 15 = 2^4 - 1\n\n\t\t\tbase64 += encodings[a] + encodings[b] + encodings[c] + '=';\n\t\t}\n\n\t\treturn base64;\n\t};\n\n\tjsPDFAPI.createImageInfo = function (data, wd, ht, cs, bpc, f, imageIndex, alias, dp, trns, pal, smask, p) {\n\t\tvar info = {\n\t\t\talias: alias,\n\t\t\tw: wd,\n\t\t\th: ht,\n\t\t\tcs: cs,\n\t\t\tbpc: bpc,\n\t\t\ti: imageIndex,\n\t\t\tdata: data\n\t\t\t// n: objectNumber will be added by putImage code\n\t\t};\n\n\t\tif (f) info.f = f;\n\t\tif (dp) info.dp = dp;\n\t\tif (trns) info.trns = trns;\n\t\tif (pal) info.pal = pal;\n\t\tif (smask) info.smask = smask;\n\t\tif (p) info.p = p; // predictor parameter for PNG compression\n\n\t\treturn info;\n\t};\n\n\tjsPDFAPI.addImage = function (imageData, format, x, y, w, h, alias, compression, rotation) {\n\t\t'use strict';\n\n\t\tif (typeof format !== 'string') {\n\t\t\tvar tmp = h;\n\t\t\th = w;\n\t\t\tw = y;\n\t\t\ty = x;\n\t\t\tx = format;\n\t\t\tformat = tmp;\n\t\t}\n\n\t\tif ((typeof imageData === 'undefined' ? 'undefined' : _typeof(imageData)) === 'object' && !isDOMElement(imageData) && \"imageData\" in imageData) {\n\t\t\tvar options = imageData;\n\n\t\t\timageData = options.imageData;\n\t\t\tformat = options.format || format;\n\t\t\tx = options.x || x || 0;\n\t\t\ty = options.y || y || 0;\n\t\t\tw = options.w || w;\n\t\t\th = options.h || h;\n\t\t\talias = options.alias || alias;\n\t\t\tcompression = options.compression || compression;\n\t\t\trotation = options.rotation || options.angle || rotation;\n\t\t}\n\n\t\tif (isNaN(x) || isNaN(y)) {\n\t\t\tconsole.error('jsPDF.addImage: Invalid coordinates', arguments);\n\t\t\tthrow new Error('Invalid coordinates passed to jsPDF.addImage');\n\t\t}\n\n\t\tvar images = getImages.call(this),\n\t\t info;\n\n\t\tif (!(info = checkImagesForAlias(imageData, images))) {\n\t\t\tvar dataAsBinaryString;\n\n\t\t\tif (isDOMElement(imageData)) imageData = createDataURIFromElement(imageData, format, rotation);\n\n\t\t\tif (notDefined(alias)) alias = generateAliasFromData(imageData);\n\n\t\t\tif (!(info = checkImagesForAlias(alias, images))) {\n\n\t\t\t\tif (this.isString(imageData)) {\n\n\t\t\t\t\tvar base64Info = this.extractInfoFromBase64DataURI(imageData);\n\n\t\t\t\t\tif (base64Info) {\n\n\t\t\t\t\t\tformat = base64Info[2];\n\t\t\t\t\t\timageData = atob(base64Info[3]); //convert to binary string\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tif (imageData.charCodeAt(0) === 0x89 && imageData.charCodeAt(1) === 0x50 && imageData.charCodeAt(2) === 0x4e && imageData.charCodeAt(3) === 0x47) format = 'png';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tformat = (format || 'JPEG').toLowerCase();\n\n\t\t\t\tif (doesNotSupportImageType(format)) throw new Error('addImage currently only supports formats ' + supported_image_types + ', not \\'' + format + '\\'');\n\n\t\t\t\tif (processMethodNotEnabled(format)) throw new Error('please ensure that the plugin for \\'' + format + '\\' support is added');\n\n\t\t\t\t/**\n * need to test if it's more efficient to convert all binary strings\n * to TypedArray - or should we just leave and process as string?\n */\n\t\t\t\tif (this.supportsArrayBuffer()) {\n\t\t\t\t\t// no need to convert if imageData is already uint8array\n\t\t\t\t\tif (!(imageData instanceof Uint8Array)) {\n\t\t\t\t\t\tdataAsBinaryString = imageData;\n\t\t\t\t\t\timageData = this.binaryStringToUint8Array(imageData);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tinfo = this['process' + format.toUpperCase()](imageData, getImageIndex(images), alias, checkCompressValue(compression), dataAsBinaryString);\n\n\t\t\t\tif (!info) throw new Error('An unkwown error occurred whilst processing the image');\n\t\t\t}\n\t\t}\n\n\t\twriteImageToPDF.call(this, x, y, w, h, info, info.i, images);\n\n\t\treturn this;\n\t};\n\n\t/**\n * JPEG SUPPORT\n **/\n\n\t//takes a string imgData containing the raw bytes of\n\t//a jpeg image and returns [width, height]\n\t//Algorithm from: http://www.64lines.com/jpeg-width-height\n\tvar getJpegSize = function getJpegSize(imgData) {\n\t\t'use strict';\n\n\t\tvar width, height, numcomponents;\n\t\t// Verify we have a valid jpeg header 0xff,0xd8,0xff,0xe0,?,?,'J','F','I','F',0x00\n\t\tif (!imgData.charCodeAt(0) === 0xff || !imgData.charCodeAt(1) === 0xd8 || !imgData.charCodeAt(2) === 0xff || !imgData.charCodeAt(3) === 0xe0 || !imgData.charCodeAt(6) === 'J'.charCodeAt(0) || !imgData.charCodeAt(7) === 'F'.charCodeAt(0) || !imgData.charCodeAt(8) === 'I'.charCodeAt(0) || !imgData.charCodeAt(9) === 'F'.charCodeAt(0) || !imgData.charCodeAt(10) === 0x00) {\n\t\t\tthrow new Error('getJpegSize requires a binary string jpeg file');\n\t\t}\n\t\tvar blockLength = imgData.charCodeAt(4) * 256 + imgData.charCodeAt(5);\n\t\tvar i = 4,\n\t\t len = imgData.length;\n\t\twhile (i < len) {\n\t\t\ti += blockLength;\n\t\t\tif (imgData.charCodeAt(i) !== 0xff) {\n\t\t\t\tthrow new Error('getJpegSize could not find the size of the image');\n\t\t\t}\n\t\t\tif (imgData.charCodeAt(i + 1) === 0xc0 || //(SOF) Huffman - Baseline DCT\n\t\t\timgData.charCodeAt(i + 1) === 0xc1 || //(SOF) Huffman - Extended sequential DCT\n\t\t\timgData.charCodeAt(i + 1) === 0xc2 || // Progressive DCT (SOF2)\n\t\t\timgData.charCodeAt(i + 1) === 0xc3 || // Spatial (sequential) lossless (SOF3)\n\t\t\timgData.charCodeAt(i + 1) === 0xc4 || // Differential sequential DCT (SOF5)\n\t\t\timgData.charCodeAt(i + 1) === 0xc5 || // Differential progressive DCT (SOF6)\n\t\t\timgData.charCodeAt(i + 1) === 0xc6 || // Differential spatial (SOF7)\n\t\t\timgData.charCodeAt(i + 1) === 0xc7) {\n\t\t\t\theight = imgData.charCodeAt(i + 5) * 256 + imgData.charCodeAt(i + 6);\n\t\t\t\twidth = imgData.charCodeAt(i + 7) * 256 + imgData.charCodeAt(i + 8);\n\t\t\t\tnumcomponents = imgData.charCodeAt(i + 9);\n\t\t\t\treturn [width, height, numcomponents];\n\t\t\t} else {\n\t\t\t\ti += 2;\n\t\t\t\tblockLength = imgData.charCodeAt(i) * 256 + imgData.charCodeAt(i + 1);\n\t\t\t}\n\t\t}\n\t},\n\t getJpegSizeFromBytes = function getJpegSizeFromBytes(data) {\n\n\t\tvar hdr = data[0] << 8 | data[1];\n\n\t\tif (hdr !== 0xFFD8) throw new Error('Supplied data is not a JPEG');\n\n\t\tvar len = data.length,\n\t\t block = (data[4] << 8) + data[5],\n\t\t pos = 4,\n\t\t bytes,\n\t\t width,\n\t\t height,\n\t\t numcomponents;\n\n\t\twhile (pos < len) {\n\t\t\tpos += block;\n\t\t\tbytes = readBytes(data, pos);\n\t\t\tblock = (bytes[2] << 8) + bytes[3];\n\t\t\tif ((bytes[1] === 0xC0 || bytes[1] === 0xC2) && bytes[0] === 0xFF && block > 7) {\n\t\t\t\tbytes = readBytes(data, pos + 5);\n\t\t\t\twidth = (bytes[2] << 8) + bytes[3];\n\t\t\t\theight = (bytes[0] << 8) + bytes[1];\n\t\t\t\tnumcomponents = bytes[4];\n\t\t\t\treturn { width: width, height: height, numcomponents: numcomponents };\n\t\t\t}\n\n\t\t\tpos += 2;\n\t\t}\n\n\t\tthrow new Error('getJpegSizeFromBytes could not find the size of the image');\n\t},\n\t readBytes = function readBytes(data, offset) {\n\t\treturn data.subarray(offset, offset + 5);\n\t};\n\n\tjsPDFAPI.processJPEG = function (data, index, alias, compression, dataAsBinaryString) {\n\t\t'use strict';\n\n\t\tvar colorSpace = this.color_spaces.DEVICE_RGB,\n\t\t filter = this.decode.DCT_DECODE,\n\t\t bpc = 8,\n\t\t dims;\n\n\t\tif (this.isString(data)) {\n\t\t\tdims = getJpegSize(data);\n\t\t\treturn this.createImageInfo(data, dims[0], dims[1], dims[3] == 1 ? this.color_spaces.DEVICE_GRAY : colorSpace, bpc, filter, index, alias);\n\t\t}\n\n\t\tif (this.isArrayBuffer(data)) data = new Uint8Array(data);\n\n\t\tif (this.isArrayBufferView(data)) {\n\n\t\t\tdims = getJpegSizeFromBytes(data);\n\n\t\t\t// if we already have a stored binary string rep use that\n\t\t\tdata = dataAsBinaryString || this.arrayBufferToBinaryString(data);\n\n\t\t\treturn this.createImageInfo(data, dims.width, dims.height, dims.numcomponents == 1 ? this.color_spaces.DEVICE_GRAY : colorSpace, bpc, filter, index, alias);\n\t\t}\n\n\t\treturn null;\n\t};\n\n\tjsPDFAPI.processJPG = function () /*data, index, alias, compression, dataAsBinaryString*/{\n\t\treturn this.processJPEG.apply(this, arguments);\n\t};\n})(jsPDF.API);\n\n/**\n * jsPDF Annotations PlugIn\n * Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\n/**\n * There are many types of annotations in a PDF document. Annotations are placed\n * on a page at a particular location. They are not 'attached' to an object.\n *
\n * This plugin current supports
\n *
  • Goto Page (set pageNumber and top in options)\n *
  • Goto Name (set name and top in options)\n *
  • Goto URL (set url in options)\n *

    \n * \tThe destination magnification factor can also be specified when goto is a page number or a named destination. (see documentation below)\n * (set magFactor in options). XYZ is the default.\n *

    \n *

    \n * Links, Text, Popup, and FreeText are supported.\n *

    \n *

    \n * Options In PDF spec Not Implemented Yet\n *

  • link border\n *
  • named target\n *
  • page coordinates\n *
  • destination page scaling and layout\n *
  • actions other than URL and GotoPage\n *
  • background / hover actions\n *

    \n */\n\n/*\n Destination Magnification Factors\n See PDF 1.3 Page 386 for meanings and options\n\n [supported]\n\tXYZ (options; left top zoom)\n\tFit (no options)\n\tFitH (options: top)\n\tFitV (options: left)\n\n\t[not supported]\n\tFitR\n\tFitB\n\tFitBH\n\tFitBV\n */\n\n(function (jsPDFAPI) {\n\t'use strict';\n\n\tvar annotationPlugin = {\n\n\t\t/**\n * An array of arrays, indexed by pageNumber.\n */\n\t\tannotations: [],\n\n\t\tf2: function f2(number) {\n\t\t\treturn number.toFixed(2);\n\t\t},\n\n\t\tnotEmpty: function notEmpty(obj) {\n\t\t\tif (typeof obj != 'undefined') {\n\t\t\t\tif (obj != '') {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tjsPDF.API.annotationPlugin = annotationPlugin;\n\n\tjsPDF.API.events.push(['addPage', function (info) {\n\t\tthis.annotationPlugin.annotations[info.pageNumber] = [];\n\t}]);\n\n\tjsPDFAPI.events.push(['putPage', function (info) {\n\t\t//TODO store annotations in pageContext so reorder/remove will not affect them.\n\t\tvar pageAnnos = this.annotationPlugin.annotations[info.pageNumber];\n\n\t\tvar found = false;\n\t\tfor (var a = 0; a < pageAnnos.length && !found; a++) {\n\t\t\tvar anno = pageAnnos[a];\n\t\t\tswitch (anno.type) {\n\t\t\t\tcase 'link':\n\t\t\t\t\tif (annotationPlugin.notEmpty(anno.options.url) || annotationPlugin.notEmpty(anno.options.pageNumber)) {\n\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\tcase 'reference':\n\t\t\t\tcase 'text':\n\t\t\t\tcase 'freetext':\n\t\t\t\t\tfound = true;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (found == false) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.internal.write(\"/Annots [\");\n\t\tvar f2 = this.annotationPlugin.f2;\n\t\tvar k = this.internal.scaleFactor;\n\t\tvar pageHeight = this.internal.pageSize.height;\n\t\tvar pageInfo = this.internal.getPageInfo(info.pageNumber);\n\t\tfor (var a = 0; a < pageAnnos.length; a++) {\n\t\t\tvar anno = pageAnnos[a];\n\n\t\t\tswitch (anno.type) {\n\t\t\t\tcase 'reference':\n\t\t\t\t\t// References to Widget Anotations (for AcroForm Fields)\n\t\t\t\t\tthis.internal.write(' ' + anno.object.objId + ' 0 R ');\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'text':\n\t\t\t\t\t// Create a an object for both the text and the popup\n\t\t\t\t\tvar objText = this.internal.newAdditionalObject();\n\t\t\t\t\tvar objPopup = this.internal.newAdditionalObject();\n\n\t\t\t\t\tvar title = anno.title || 'Note';\n\t\t\t\t\tvar rect = \"/Rect [\" + f2(anno.bounds.x * k) + \" \" + f2(pageHeight - (anno.bounds.y + anno.bounds.h) * k) + \" \" + f2((anno.bounds.x + anno.bounds.w) * k) + \" \" + f2((pageHeight - anno.bounds.y) * k) + \"] \";\n\t\t\t\t\tline = '<>';\n\t\t\t\t\tobjText.content = line;\n\n\t\t\t\t\tvar parent = objText.objId + ' 0 R';\n\t\t\t\t\tvar popoff = 30;\n\t\t\t\t\tvar rect = \"/Rect [\" + f2((anno.bounds.x + popoff) * k) + \" \" + f2(pageHeight - (anno.bounds.y + anno.bounds.h) * k) + \" \" + f2((anno.bounds.x + anno.bounds.w + popoff) * k) + \" \" + f2((pageHeight - anno.bounds.y) * k) + \"] \";\n\t\t\t\t\t//var rect2 = \"/Rect [\" + f2(anno.bounds.x * k) + \" \" + f2((pageHeight - anno.bounds.y) * k) + \" \" + f2(anno.bounds.x + anno.bounds.w * k) + \" \" + f2(pageHeight - (anno.bounds.y + anno.bounds.h) * k) + \"] \";\n\t\t\t\t\tline = '<>';\n\t\t\t\t\t} else if (anno.options.pageNumber) {\n\t\t\t\t\t\t// first page is 0\n\t\t\t\t\t\tvar info = this.internal.getPageInfo(anno.options.pageNumber);\n\t\t\t\t\t\tline = '<>\";\n\t\t\t\t\t\tthis.internal.write(line);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tthis.internal.write(\"]\");\n\t}]);\n\n\tjsPDFAPI.createAnnotation = function (options) {\n\t\tswitch (options.type) {\n\t\t\tcase 'link':\n\t\t\t\tthis.link(options.bounds.x, options.bounds.y, options.bounds.w, options.bounds.h, options);\n\t\t\t\tbreak;\n\t\t\tcase 'text':\n\t\t\tcase 'freetext':\n\t\t\t\tthis.annotationPlugin.annotations[this.internal.getCurrentPageInfo().pageNumber].push(options);\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\t/**\n * valid options\n *
  • pageNumber or url [required]\n *

    If pageNumber is specified, top and zoom may also be specified

    \n */\n\tjsPDFAPI.link = function (x, y, w, h, options) {\n\t\t'use strict';\n\n\t\tthis.annotationPlugin.annotations[this.internal.getCurrentPageInfo().pageNumber].push({\n\t\t\tx: x,\n\t\t\ty: y,\n\t\t\tw: w,\n\t\t\th: h,\n\t\t\toptions: options,\n\t\t\ttype: 'link'\n\t\t});\n\t};\n\n\t/**\n * valid options\n *
  • pageNumber or url [required]\n *

    If pageNumber is specified, top and zoom may also be specified

    \n */\n\tjsPDFAPI.link = function (x, y, w, h, options) {\n\t\t'use strict';\n\n\t\tthis.annotationPlugin.annotations[this.internal.getCurrentPageInfo().pageNumber].push({\n\t\t\tx: x,\n\t\t\ty: y,\n\t\t\tw: w,\n\t\t\th: h,\n\t\t\toptions: options,\n\t\t\ttype: 'link'\n\t\t});\n\t};\n\n\t/**\n * Currently only supports single line text.\n * Returns the width of the text/link\n */\n\tjsPDFAPI.textWithLink = function (text, x, y, options) {\n\t\t'use strict';\n\n\t\tvar width = this.getTextWidth(text);\n\t\tvar height = this.internal.getLineHeight();\n\t\tthis.text(text, x, y);\n\t\t//TODO We really need the text baseline height to do this correctly.\n\t\t// Or ability to draw text on top, bottom, center, or baseline.\n\t\ty += height * .2;\n\t\tthis.link(x, y - height, width, height, options);\n\t\treturn width;\n\t};\n\n\t//TODO move into external library\n\tjsPDFAPI.getTextWidth = function (text) {\n\t\t'use strict';\n\n\t\tvar fontSize = this.internal.getFontSize();\n\t\tvar txtWidth = this.getStringUnitWidth(text) * fontSize / this.internal.scaleFactor;\n\t\treturn txtWidth;\n\t};\n\n\t//TODO move into external library\n\tjsPDFAPI.getLineHeight = function () {\n\t\treturn this.internal.getLineHeight();\n\t};\n\n\treturn this;\n})(jsPDF.API);\n\n/**\n * jsPDF Autoprint Plugin\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\n/**\n* Makes the PDF automatically print. This works in Chrome, Firefox, Acrobat\n* Reader.\n*\n* @returns {jsPDF}\n* @name autoPrint\n* @example\n* var doc = new jsPDF()\n* doc.text(10, 10, 'This is a test')\n* doc.autoPrint()\n* doc.save('autoprint.pdf')\n*/\n\n(function (jsPDFAPI) {\n 'use strict';\n\n jsPDFAPI.autoPrint = function () {\n 'use strict';\n\n var refAutoPrintTag;\n\n this.internal.events.subscribe('postPutResources', function () {\n refAutoPrintTag = this.internal.newObject();\n this.internal.write(\"<< /S/Named /Type/Action /N/Print >>\", \"endobj\");\n });\n\n this.internal.events.subscribe(\"putCatalog\", function () {\n this.internal.write(\"/OpenAction \" + refAutoPrintTag + \" 0\" + \" R\");\n });\n return this;\n };\n})(jsPDF.API);\n\n/**\n * jsPDF Canvas PlugIn\n * Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\n/**\n * This plugin mimics the HTML5 Canvas\n * \n * The goal is to provide a way for current canvas users to print directly to a PDF.\n */\n\n(function (jsPDFAPI) {\n\t'use strict';\n\n\tjsPDFAPI.events.push(['initialized', function () {\n\t\tthis.canvas.pdf = this;\n\t}]);\n\n\tjsPDFAPI.canvas = {\n\t\tgetContext: function getContext(name) {\n\t\t\tthis.pdf.context2d._canvas = this;\n\t\t\treturn this.pdf.context2d;\n\t\t},\n\t\tstyle: {}\n\t};\n\n\tObject.defineProperty(jsPDFAPI.canvas, 'width', {\n\t\tget: function get() {\n\t\t\treturn this._width;\n\t\t},\n\t\tset: function set(value) {\n\t\t\tthis._width = value;\n\t\t\tthis.getContext('2d').pageWrapX = value + 1;\n\t\t}\n\t});\n\n\tObject.defineProperty(jsPDFAPI.canvas, 'height', {\n\t\tget: function get() {\n\t\t\treturn this._height;\n\t\t},\n\t\tset: function set(value) {\n\t\t\tthis._height = value;\n\t\t\tthis.getContext('2d').pageWrapY = value + 1;\n\t\t}\n\t});\n\n\treturn this;\n})(jsPDF.API);\n\n/** ====================================================================\n * jsPDF Cell plugin\n * Copyright (c) 2013 Youssef Beddad, youssef.beddad@gmail.com\n * 2013 Eduardo Menezes de Morais, eduardo.morais@usp.br\n * 2013 Lee Driscoll, https://github.com/lsdriscoll\n * 2014 Juan Pablo Gaviria, https://github.com/juanpgaviria\n * 2014 James Hall, james@parall.ax\n * 2014 Diego Casorran, https://github.com/diegocr\n *\n * \n * ====================================================================\n */\n\n(function (jsPDFAPI) {\n 'use strict';\n /*jslint browser:true */\n /*global document: false, jsPDF */\n\n var fontName,\n fontSize,\n fontStyle,\n padding = 3,\n margin = 13,\n headerFunction,\n lastCellPos = { x: undefined, y: undefined, w: undefined, h: undefined, ln: undefined },\n pages = 1,\n setLastCellPosition = function setLastCellPosition(x, y, w, h, ln) {\n lastCellPos = { 'x': x, 'y': y, 'w': w, 'h': h, 'ln': ln };\n },\n getLastCellPosition = function getLastCellPosition() {\n return lastCellPos;\n },\n NO_MARGINS = { left: 0, top: 0, bottom: 0 };\n\n jsPDFAPI.setHeaderFunction = function (func) {\n headerFunction = func;\n };\n\n jsPDFAPI.getTextDimensions = function (txt) {\n fontName = this.internal.getFont().fontName;\n fontSize = this.table_font_size || this.internal.getFontSize();\n fontStyle = this.internal.getFont().fontStyle;\n // 1 pixel = 0.264583 mm and 1 mm = 72/25.4 point\n var px2pt = 0.264583 * 72 / 25.4,\n dimensions,\n text;\n\n text = document.createElement('font');\n text.id = \"jsPDFCell\";\n\n try {\n text.style.fontStyle = fontStyle;\n } catch (e) {\n text.style.fontWeight = fontStyle;\n }\n\n text.style.fontName = fontName;\n text.style.fontSize = fontSize + 'pt';\n try {\n text.textContent = txt;\n } catch (e) {\n text.innerText = txt;\n }\n\n document.body.appendChild(text);\n\n dimensions = { w: (text.offsetWidth + 1) * px2pt, h: (text.offsetHeight + 1) * px2pt };\n\n document.body.removeChild(text);\n\n return dimensions;\n };\n\n jsPDFAPI.cellAddPage = function () {\n var margins = this.margins || NO_MARGINS;\n\n this.addPage();\n\n setLastCellPosition(margins.left, margins.top, undefined, undefined);\n //setLastCellPosition(undefined, undefined, undefined, undefined, undefined);\n pages += 1;\n };\n\n jsPDFAPI.cellInitialize = function () {\n lastCellPos = { x: undefined, y: undefined, w: undefined, h: undefined, ln: undefined };\n pages = 1;\n };\n\n jsPDFAPI.cell = function (x, y, w, h, txt, ln, align) {\n var curCell = getLastCellPosition();\n var pgAdded = false;\n\n // If this is not the first cell, we must change its position\n if (curCell.ln !== undefined) {\n if (curCell.ln === ln) {\n //Same line\n x = curCell.x + curCell.w;\n y = curCell.y;\n } else {\n //New line\n var margins = this.margins || NO_MARGINS;\n if (curCell.y + curCell.h + h + margin >= this.internal.pageSize.height - margins.bottom) {\n this.cellAddPage();\n pgAdded = true;\n if (this.printHeaders && this.tableHeaderRow) {\n this.printHeaderRow(ln, true);\n }\n }\n //We ignore the passed y: the lines may have different heights\n y = getLastCellPosition().y + getLastCellPosition().h;\n if (pgAdded) y = margin + 10;\n }\n }\n\n if (txt[0] !== undefined) {\n if (this.printingHeaderRow) {\n this.rect(x, y, w, h, 'FD');\n } else {\n this.rect(x, y, w, h);\n }\n if (align === 'right') {\n if (!(txt instanceof Array)) {\n txt = [txt];\n }\n for (var i = 0; i < txt.length; i++) {\n var currentLine = txt[i];\n var textSize = this.getStringUnitWidth(currentLine) * this.internal.getFontSize();\n this.text(currentLine, x + w - textSize - padding, y + this.internal.getLineHeight() * (i + 1));\n }\n } else {\n this.text(txt, x + padding, y + this.internal.getLineHeight());\n }\n }\n setLastCellPosition(x, y, w, h, ln);\n return this;\n };\n\n /**\n * Return the maximum value from an array\n * @param array\n * @param comparisonFn\n * @returns {*}\n */\n jsPDFAPI.arrayMax = function (array, comparisonFn) {\n var max = array[0],\n i,\n ln,\n item;\n\n for (i = 0, ln = array.length; i < ln; i += 1) {\n item = array[i];\n\n if (comparisonFn) {\n if (comparisonFn(max, item) === -1) {\n max = item;\n }\n } else {\n if (item > max) {\n max = item;\n }\n }\n }\n\n return max;\n };\n\n /**\n * Create a table from a set of data.\n * @param {Integer} [x] : left-position for top-left corner of table\n * @param {Integer} [y] top-position for top-left corner of table\n * @param {Object[]} [data] As array of objects containing key-value pairs corresponding to a row of data.\n * @param {String[]} [headers] Omit or null to auto-generate headers at a performance cost\n * @param {Object} [config.printHeaders] True to print column headers at the top of every page\n * @param {Object} [config.autoSize] True to dynamically set the column widths to match the widest cell value\n * @param {Object} [config.margins] margin values for left, top, bottom, and width\n * @param {Object} [config.fontSize] Integer fontSize to use (optional)\n */\n\n jsPDFAPI.table = function (x, y, data, headers, config) {\n if (!data) {\n throw 'No data for PDF table';\n }\n\n var headerNames = [],\n headerPrompts = [],\n header,\n i,\n ln,\n cln,\n columnMatrix = {},\n columnWidths = {},\n columnData,\n column,\n columnMinWidths = [],\n j,\n tableHeaderConfigs = [],\n model,\n jln,\n func,\n\n\n //set up defaults. If a value is provided in config, defaults will be overwritten:\n autoSize = false,\n printHeaders = true,\n fontSize = 12,\n margins = NO_MARGINS;\n\n margins.width = this.internal.pageSize.width;\n\n if (config) {\n //override config defaults if the user has specified non-default behavior:\n if (config.autoSize === true) {\n autoSize = true;\n }\n if (config.printHeaders === false) {\n printHeaders = false;\n }\n if (config.fontSize) {\n fontSize = config.fontSize;\n }\n if (config.css && typeof config.css['font-size'] !== \"undefined\") {\n fontSize = config.css['font-size'] * 16;\n }\n if (config.margins) {\n margins = config.margins;\n }\n }\n\n /**\n * @property {Number} lnMod\n * Keep track of the current line number modifier used when creating cells\n */\n this.lnMod = 0;\n lastCellPos = { x: undefined, y: undefined, w: undefined, h: undefined, ln: undefined }, pages = 1;\n\n this.printHeaders = printHeaders;\n this.margins = margins;\n this.setFontSize(fontSize);\n this.table_font_size = fontSize;\n\n // Set header values\n if (headers === undefined || headers === null) {\n // No headers defined so we derive from data\n headerNames = Object.keys(data[0]);\n } else if (headers[0] && typeof headers[0] !== 'string') {\n var px2pt = 0.264583 * 72 / 25.4;\n\n // Split header configs into names and prompts\n for (i = 0, ln = headers.length; i < ln; i += 1) {\n header = headers[i];\n headerNames.push(header.name);\n headerPrompts.push(header.prompt);\n columnWidths[header.name] = header.width * px2pt;\n }\n } else {\n headerNames = headers;\n }\n\n if (autoSize) {\n // Create a matrix of columns e.g., {column_title: [row1_Record, row2_Record]}\n func = function func(rec) {\n return rec[header];\n };\n\n for (i = 0, ln = headerNames.length; i < ln; i += 1) {\n header = headerNames[i];\n\n columnMatrix[header] = data.map(func);\n\n // get header width\n columnMinWidths.push(this.getTextDimensions(headerPrompts[i] || header).w);\n column = columnMatrix[header];\n\n // get cell widths\n for (j = 0, cln = column.length; j < cln; j += 1) {\n columnData = column[j];\n columnMinWidths.push(this.getTextDimensions(columnData).w);\n }\n\n // get final column width\n columnWidths[header] = jsPDFAPI.arrayMax(columnMinWidths);\n\n //have to reset\n columnMinWidths = [];\n }\n }\n\n // -- Construct the table\n\n if (printHeaders) {\n var lineHeight = this.calculateLineHeight(headerNames, columnWidths, headerPrompts.length ? headerPrompts : headerNames);\n\n // Construct the header row\n for (i = 0, ln = headerNames.length; i < ln; i += 1) {\n header = headerNames[i];\n tableHeaderConfigs.push([x, y, columnWidths[header], lineHeight, String(headerPrompts.length ? headerPrompts[i] : header)]);\n }\n\n // Store the table header config\n this.setTableHeaderRow(tableHeaderConfigs);\n\n // Print the header for the start of the table\n this.printHeaderRow(1, false);\n }\n\n // Construct the data rows\n for (i = 0, ln = data.length; i < ln; i += 1) {\n var lineHeight;\n model = data[i];\n lineHeight = this.calculateLineHeight(headerNames, columnWidths, model);\n\n for (j = 0, jln = headerNames.length; j < jln; j += 1) {\n header = headerNames[j];\n this.cell(x, y, columnWidths[header], lineHeight, model[header], i + 2, header.align);\n }\n }\n this.lastCellPos = lastCellPos;\n this.table_x = x;\n this.table_y = y;\n return this;\n };\n /**\n * Calculate the height for containing the highest column\n * @param {String[]} headerNames is the header, used as keys to the data\n * @param {Integer[]} columnWidths is size of each column\n * @param {Object[]} model is the line of data we want to calculate the height of\n */\n jsPDFAPI.calculateLineHeight = function (headerNames, columnWidths, model) {\n var header,\n lineHeight = 0;\n for (var j = 0; j < headerNames.length; j++) {\n header = headerNames[j];\n model[header] = this.splitTextToSize(String(model[header]), columnWidths[header] - padding);\n var h = this.internal.getLineHeight() * model[header].length + padding;\n if (h > lineHeight) lineHeight = h;\n }\n return lineHeight;\n };\n\n /**\n * Store the config for outputting a table header\n * @param {Object[]} config\n * An array of cell configs that would define a header row: Each config matches the config used by jsPDFAPI.cell\n * except the ln parameter is excluded\n */\n jsPDFAPI.setTableHeaderRow = function (config) {\n this.tableHeaderRow = config;\n };\n\n /**\n * Output the store header row\n * @param lineNumber The line number to output the header at\n */\n jsPDFAPI.printHeaderRow = function (lineNumber, new_page) {\n if (!this.tableHeaderRow) {\n throw 'Property tableHeaderRow does not exist.';\n }\n\n var tableHeaderCell, tmpArray, i, ln;\n\n this.printingHeaderRow = true;\n if (headerFunction !== undefined) {\n var position = headerFunction(this, pages);\n setLastCellPosition(position[0], position[1], position[2], position[3], -1);\n }\n this.setFontStyle('bold');\n var tempHeaderConf = [];\n for (i = 0, ln = this.tableHeaderRow.length; i < ln; i += 1) {\n this.setFillColor(200, 200, 200);\n\n tableHeaderCell = this.tableHeaderRow[i];\n if (new_page) {\n this.margins.top = margin;\n tableHeaderCell[1] = this.margins && this.margins.top || 0;\n tempHeaderConf.push(tableHeaderCell);\n }\n tmpArray = [].concat(tableHeaderCell);\n this.cell.apply(this, tmpArray.concat(lineNumber));\n }\n if (tempHeaderConf.length > 0) {\n this.setTableHeaderRow(tempHeaderConf);\n }\n this.setFontStyle('normal');\n this.printingHeaderRow = false;\n };\n})(jsPDF.API);\n\n/**\n * jsPDF Context2D PlugIn Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\n *\n * Licensed under the MIT License. http://opensource.org/licenses/mit-license\n */\n\n/**\n * This plugin mimics the HTML5 Canvas's context2d.\n *\n * The goal is to provide a way for current canvas implementations to print directly to a PDF.\n */\n\n/**\n * TODO implement stroke opacity (refactor from fill() method )\n * TODO transform angle and radii parameters\n */\n\n/**\n * require('jspdf.js'); require('lib/css_colors.js');\n */\n\n(function (jsPDFAPI) {\n 'use strict';\n\n jsPDFAPI.events.push(['initialized', function () {\n this.context2d.pdf = this;\n this.context2d.internal.pdf = this;\n this.context2d.ctx = new context();\n this.context2d.ctxStack = [];\n this.context2d.path = [];\n }]);\n\n jsPDFAPI.context2d = {\n pageWrapXEnabled: false,\n pageWrapYEnabled: false,\n pageWrapX: 9999999,\n pageWrapY: 9999999,\n ctx: new context(),\n f2: function f2(number) {\n return number.toFixed(2);\n },\n\n fillRect: function fillRect(x, y, w, h) {\n if (this._isFillTransparent()) {\n return;\n }\n x = this._wrapX(x);\n y = this._wrapY(y);\n\n var xRect = this._matrix_map_rect(this.ctx._transform, { x: x, y: y, w: w, h: h });\n this.pdf.rect(xRect.x, xRect.y, xRect.w, xRect.h, \"f\");\n },\n\n strokeRect: function strokeRect(x, y, w, h) {\n if (this._isStrokeTransparent()) {\n return;\n }\n x = this._wrapX(x);\n y = this._wrapY(y);\n\n var xRect = this._matrix_map_rect(this.ctx._transform, { x: x, y: y, w: w, h: h });\n this.pdf.rect(xRect.x, xRect.y, xRect.w, xRect.h, \"s\");\n },\n\n /**\n * We cannot clear PDF commands that were already written to PDF, so we use white instead.
    \n * As a special case, read a special flag (ignoreClearRect) and do nothing if it is set.\n * This results in all calls to clearRect() to do nothing, and keep the canvas transparent.\n * This flag is stored in the save/restore context and is managed the same way as other drawing states.\n * @param x\n * @param y\n * @param w\n * @param h\n */\n clearRect: function clearRect(x, y, w, h) {\n if (this.ctx.ignoreClearRect) {\n return;\n }\n\n x = this._wrapX(x);\n y = this._wrapY(y);\n\n var xRect = this._matrix_map_rect(this.ctx._transform, { x: x, y: y, w: w, h: h });\n this.save();\n this.setFillStyle('#ffffff');\n //TODO This is hack to fill with white.\n this.pdf.rect(xRect.x, xRect.y, xRect.w, xRect.h, \"f\");\n this.restore();\n },\n\n save: function save() {\n this.ctx._fontSize = this.pdf.internal.getFontSize();\n var ctx = new context();\n ctx.copy(this.ctx);\n this.ctxStack.push(this.ctx);\n this.ctx = ctx;\n },\n\n restore: function restore() {\n this.ctx = this.ctxStack.pop();\n this.setFillStyle(this.ctx.fillStyle);\n this.setStrokeStyle(this.ctx.strokeStyle);\n this.setFont(this.ctx.font);\n this.pdf.setFontSize(this.ctx._fontSize);\n this.setLineCap(this.ctx.lineCap);\n this.setLineWidth(this.ctx.lineWidth);\n this.setLineJoin(this.ctx.lineJoin);\n },\n\n rect: function rect(x, y, w, h) {\n this.moveTo(x, y);\n this.lineTo(x + w, y);\n this.lineTo(x + w, y + h);\n this.lineTo(x, y + h);\n this.lineTo(x, y); //TODO not needed\n this.closePath();\n },\n\n beginPath: function beginPath() {\n this.path = [];\n },\n\n closePath: function closePath() {\n this.path.push({\n type: 'close'\n });\n },\n\n _getRgba: function _getRgba(style) {\n // get the decimal values of r, g, and b;\n var rgba = {};\n\n if (this.internal.rxTransparent.test(style)) {\n rgba.r = 0;\n rgba.g = 0;\n rgba.b = 0;\n rgba.a = 0;\n } else {\n var m = this.internal.rxRgb.exec(style);\n if (m != null) {\n rgba.r = parseInt(m[1]);\n rgba.g = parseInt(m[2]);\n rgba.b = parseInt(m[3]);\n rgba.a = 1;\n } else {\n m = this.internal.rxRgba.exec(style);\n if (m != null) {\n rgba.r = parseInt(m[1]);\n rgba.g = parseInt(m[2]);\n rgba.b = parseInt(m[3]);\n rgba.a = parseFloat(m[4]);\n } else {\n rgba.a = 1;\n if (style.charAt(0) != '#') {\n style = CssColors.colorNameToHex(style);\n if (!style) {\n style = '#000000';\n }\n } else {}\n\n if (style.length === 4) {\n rgba.r = style.substring(1, 2);\n rgba.r += r;\n rgba.g = style.substring(2, 3);\n rgba.g += g;\n rgba.b = style.substring(3, 4);\n rgba.b += b;\n } else {\n rgba.r = style.substring(1, 3);\n rgba.g = style.substring(3, 5);\n rgba.b = style.substring(5, 7);\n }\n rgba.r = parseInt(rgba.r, 16);\n rgba.g = parseInt(rgba.g, 16);\n rgba.b = parseInt(rgba.b, 16);\n }\n }\n }\n rgba.style = style;\n return rgba;\n },\n\n setFillStyle: function setFillStyle(style) {\n // get the decimal values of r, g, and b;\n var r, g, b, a;\n\n if (this.internal.rxTransparent.test(style)) {\n r = 0;\n g = 0;\n b = 0;\n a = 0;\n } else {\n var m = this.internal.rxRgb.exec(style);\n if (m != null) {\n r = parseInt(m[1]);\n g = parseInt(m[2]);\n b = parseInt(m[3]);\n a = 1;\n } else {\n m = this.internal.rxRgba.exec(style);\n if (m != null) {\n r = parseInt(m[1]);\n g = parseInt(m[2]);\n b = parseInt(m[3]);\n a = parseFloat(m[4]);\n } else {\n a = 1;\n if (style.charAt(0) != '#') {\n style = CssColors.colorNameToHex(style);\n if (!style) {\n style = '#000000';\n }\n } else {}\n\n if (style.length === 4) {\n r = style.substring(1, 2);\n r += r;\n g = style.substring(2, 3);\n g += g;\n b = style.substring(3, 4);\n b += b;\n } else {\n r = style.substring(1, 3);\n g = style.substring(3, 5);\n b = style.substring(5, 7);\n }\n r = parseInt(r, 16);\n g = parseInt(g, 16);\n b = parseInt(b, 16);\n }\n }\n }\n\n this.ctx.fillStyle = style;\n this.ctx._isFillTransparent = a == 0;\n this.ctx._fillOpacity = a;\n\n this.pdf.setFillColor(r, g, b, {\n a: a\n });\n this.pdf.setTextColor(r, g, b, {\n a: a\n });\n },\n\n setStrokeStyle: function setStrokeStyle(style) {\n var rgba = this._getRgba(style);\n\n this.ctx.strokeStyle = rgba.style;\n this.ctx._isStrokeTransparent = rgba.a == 0;\n this.ctx._strokeOpacity = rgba.a;\n\n //TODO jsPDF to handle rgba\n if (rgba.a === 0) {\n this.pdf.setDrawColor(255, 255, 255);\n } else if (rgba.a === 1) {\n this.pdf.setDrawColor(rgba.r, rgba.g, rgba.b);\n } else {\n //this.pdf.setDrawColor(rgba.r, rgba.g, rgba.b, {a: rgba.a});\n this.pdf.setDrawColor(rgba.r, rgba.g, rgba.b);\n }\n },\n\n fillText: function fillText(text, x, y, maxWidth) {\n if (this._isFillTransparent()) {\n return;\n }\n x = this._wrapX(x);\n y = this._wrapY(y);\n\n var xpt = this._matrix_map_point(this.ctx._transform, [x, y]);\n x = xpt[0];\n y = xpt[1];\n var rads = this._matrix_rotation(this.ctx._transform);\n var degs = rads * 57.2958;\n\n //TODO only push the clip if it has not been applied to the current PDF context\n if (this.ctx._clip_path.length > 0) {\n var lines;\n if (window.outIntercept) {\n lines = window.outIntercept.type === 'group' ? window.outIntercept.stream : window.outIntercept;\n } else {\n lines = this.internal.getCurrentPage();\n }\n lines.push(\"q\");\n var origPath = this.path;\n this.path = this.ctx._clip_path;\n this.ctx._clip_path = [];\n this._fill(null, true);\n this.ctx._clip_path = this.path;\n this.path = origPath;\n }\n\n // We only use X axis as scale hint \n var scale = 1;\n try {\n scale = this._matrix_decompose(this._getTransform()).scale[0];\n } catch (e) {\n console.warn(e);\n }\n\n // In some cases the transform was very small (5.715760606202283e-17). Most likely a canvg rounding error.\n if (scale < .01) {\n this.pdf.text(text, x, this._getBaseline(y), null, degs);\n } else {\n var oldSize = this.pdf.internal.getFontSize();\n this.pdf.setFontSize(oldSize * scale);\n this.pdf.text(text, x, this._getBaseline(y), null, degs);\n this.pdf.setFontSize(oldSize);\n }\n\n if (this.ctx._clip_path.length > 0) {\n lines.push('Q');\n }\n },\n\n strokeText: function strokeText(text, x, y, maxWidth) {\n if (this._isStrokeTransparent()) {\n return;\n }\n x = this._wrapX(x);\n y = this._wrapY(y);\n\n var xpt = this._matrix_map_point(this.ctx._transform, [x, y]);\n x = xpt[0];\n y = xpt[1];\n var rads = this._matrix_rotation(this.ctx._transform);\n var degs = rads * 57.2958;\n\n //TODO only push the clip if it has not been applied to the current PDF context\n if (this.ctx._clip_path.length > 0) {\n var lines;\n if (window.outIntercept) {\n lines = window.outIntercept.type === 'group' ? window.outIntercept.stream : window.outIntercept;\n } else {\n lines = this.internal.getCurrentPage();\n }\n lines.push(\"q\");\n var origPath = this.path;\n this.path = this.ctx._clip_path;\n this.ctx._clip_path = [];\n this._fill(null, true);\n this.ctx._clip_path = this.path;\n this.path = origPath;\n }\n\n var scale = 1;\n // We only use the X axis as scale hint \n try {\n scale = this._matrix_decompose(this._getTransform()).scale[0];\n } catch (e) {\n console.warn(e);\n }\n\n if (scale === 1) {\n this.pdf.text(text, x, this._getBaseline(y), {\n stroke: true\n }, degs);\n } else {\n var oldSize = this.pdf.internal.getFontSize();\n this.pdf.setFontSize(oldSize * scale);\n this.pdf.text(text, x, this._getBaseline(y), {\n stroke: true\n }, degs);\n this.pdf.setFontSize(oldSize);\n }\n\n if (this.ctx._clip_path.length > 0) {\n lines.push('Q');\n }\n },\n\n setFont: function setFont(font) {\n this.ctx.font = font;\n\n //var rx = /\\s*(\\w+)\\s+(\\w+)\\s+(\\w+)\\s+([\\d\\.]+)(px|pt|em)\\s+[\"']?(\\w+)['\"]?/;\n var rx = /\\s*(\\w+)\\s+(\\w+)\\s+(\\w+)\\s+([\\d\\.]+)(px|pt|em)\\s+(.*)?/;\n m = rx.exec(font);\n if (m != null) {\n var fontStyle = m[1];\n var fontVariant = m[2];\n var fontWeight = m[3];\n var fontSize = m[4];\n var fontSizeUnit = m[5];\n var fontFamily = m[6];\n\n if ('px' === fontSizeUnit) {\n fontSize = Math.floor(parseFloat(fontSize));\n // fontSize = fontSize * 1.25;\n } else if ('em' === fontSizeUnit) {\n fontSize = Math.floor(parseFloat(fontSize) * this.pdf.getFontSize());\n } else {\n fontSize = Math.floor(parseFloat(fontSize));\n }\n\n this.pdf.setFontSize(fontSize);\n\n if (fontWeight === 'bold' || fontWeight === '700') {\n this.pdf.setFontStyle('bold');\n } else {\n if (fontStyle === 'italic') {\n this.pdf.setFontStyle('italic');\n } else {\n this.pdf.setFontStyle('normal');\n }\n }\n\n var name = fontFamily;\n var parts = name.toLowerCase().split(/\\s*,\\s*/);\n var jsPdfFontName;\n\n if (parts.indexOf('arial') != -1) {\n jsPdfFontName = 'Arial';\n } else if (parts.indexOf('verdana') != -1) {\n jsPdfFontName = 'Verdana';\n } else if (parts.indexOf('helvetica') != -1) {\n jsPdfFontName = 'Helvetica';\n } else if (parts.indexOf('sans-serif') != -1) {\n jsPdfFontName = 'sans-serif';\n } else if (parts.indexOf('fixed') != -1) {\n jsPdfFontName = 'Fixed';\n } else if (parts.indexOf('monospace') != -1) {\n jsPdfFontName = 'Monospace';\n } else if (parts.indexOf('terminal') != -1) {\n jsPdfFontName = 'Terminal';\n } else if (parts.indexOf('courier') != -1) {\n jsPdfFontName = 'Courier';\n } else if (parts.indexOf('times') != -1) {\n jsPdfFontName = 'Times';\n } else if (parts.indexOf('cursive') != -1) {\n jsPdfFontName = 'Cursive';\n } else if (parts.indexOf('fantasy') != -1) {\n jsPdfFontName = 'Fantasy';\n } else if (parts.indexOf('serif') != -1) {\n jsPdfFontName = 'Serif';\n } else {\n jsPdfFontName = 'Serif';\n }\n\n //TODO check more cases\n var style;\n if ('bold' === fontWeight) {\n style = 'bold';\n } else {\n style = 'normal';\n }\n\n this.pdf.setFont(jsPdfFontName, style);\n } else {\n var rx = /\\s*(\\d+)(pt|px|em)\\s+([\\w \"]+)\\s*([\\w \"]+)?/;\n var m = rx.exec(font);\n if (m != null) {\n var size = m[1];\n var unit = m[2];\n var name = m[3];\n var style = m[4];\n if (!style) {\n style = 'normal';\n }\n if ('em' === fontSizeUnit) {\n size = Math.floor(parseFloat(fontSize) * this.pdf.getFontSize());\n } else {\n size = Math.floor(parseFloat(size));\n }\n this.pdf.setFontSize(size);\n this.pdf.setFont(name, style);\n }\n }\n },\n\n setTextBaseline: function setTextBaseline(baseline) {\n this.ctx.textBaseline = baseline;\n },\n\n getTextBaseline: function getTextBaseline() {\n return this.ctx.textBaseline;\n },\n\n //TODO implement textAlign\n setTextAlign: function setTextAlign(align) {\n this.ctx.textAlign = align;\n },\n\n getTextAlign: function getTextAlign() {\n return this.ctx.textAlign;\n },\n\n setLineWidth: function setLineWidth(width) {\n this.ctx.lineWidth = width;\n this.pdf.setLineWidth(width);\n },\n\n setLineCap: function setLineCap(style) {\n this.ctx.lineCap = style;\n this.pdf.setLineCap(style);\n },\n\n setLineJoin: function setLineJoin(style) {\n this.ctx.lineJoin = style;\n this.pdf.setLineJoin(style);\n },\n\n moveTo: function moveTo(x, y) {\n x = this._wrapX(x);\n y = this._wrapY(y);\n\n var xpt = this._matrix_map_point(this.ctx._transform, [x, y]);\n x = xpt[0];\n y = xpt[1];\n\n var obj = {\n type: 'mt',\n x: x,\n y: y\n };\n this.path.push(obj);\n },\n\n _wrapX: function _wrapX(x) {\n if (this.pageWrapXEnabled) {\n return x % this.pageWrapX;\n } else {\n return x;\n }\n },\n\n _wrapY: function _wrapY(y) {\n if (this.pageWrapYEnabled) {\n this._gotoPage(this._page(y));\n return (y - this.lastBreak) % this.pageWrapY;\n } else {\n return y;\n }\n },\n\n transform: function transform(a, b, c, d, e, f) {\n //TODO apply to current transformation instead of replacing\n this.ctx._transform = [a, b, c, d, e, f];\n },\n\n setTransform: function setTransform(a, b, c, d, e, f) {\n this.ctx._transform = [a, b, c, d, e, f];\n },\n\n _getTransform: function _getTransform() {\n return this.ctx._transform;\n },\n\n lastBreak: 0,\n // Y Position of page breaks.\n pageBreaks: [],\n // returns: One-based Page Number\n // Should only be used if pageWrapYEnabled is true\n _page: function _page(y) {\n if (this.pageWrapYEnabled) {\n this.lastBreak = 0;\n var manualBreaks = 0;\n var autoBreaks = 0;\n for (var i = 0; i < this.pageBreaks.length; i++) {\n if (y >= this.pageBreaks[i]) {\n manualBreaks++;\n if (this.lastBreak === 0) {\n autoBreaks++;\n }\n var spaceBetweenLastBreak = this.pageBreaks[i] - this.lastBreak;\n this.lastBreak = this.pageBreaks[i];\n var pagesSinceLastBreak = Math.floor(spaceBetweenLastBreak / this.pageWrapY);\n autoBreaks += pagesSinceLastBreak;\n }\n }\n if (this.lastBreak === 0) {\n var pagesSinceLastBreak = Math.floor(y / this.pageWrapY) + 1;\n autoBreaks += pagesSinceLastBreak;\n }\n return autoBreaks + manualBreaks;\n } else {\n return this.pdf.internal.getCurrentPageInfo().pageNumber;\n }\n },\n\n _gotoPage: function _gotoPage(pageOneBased) {\n // This is a stub to be overriden if needed\n },\n\n lineTo: function lineTo(x, y) {\n x = this._wrapX(x);\n y = this._wrapY(y);\n\n var xpt = this._matrix_map_point(this.ctx._transform, [x, y]);\n x = xpt[0];\n y = xpt[1];\n\n var obj = {\n type: 'lt',\n x: x,\n y: y\n };\n this.path.push(obj);\n },\n\n bezierCurveTo: function bezierCurveTo(x1, y1, x2, y2, x, y) {\n x1 = this._wrapX(x1);\n y1 = this._wrapY(y1);\n x2 = this._wrapX(x2);\n y2 = this._wrapY(y2);\n x = this._wrapX(x);\n y = this._wrapY(y);\n\n var xpt;\n xpt = this._matrix_map_point(this.ctx._transform, [x, y]);\n x = xpt[0];\n y = xpt[1];\n xpt = this._matrix_map_point(this.ctx._transform, [x1, y1]);\n x1 = xpt[0];\n y1 = xpt[1];\n xpt = this._matrix_map_point(this.ctx._transform, [x2, y2]);\n x2 = xpt[0];\n y2 = xpt[1];\n\n var obj = {\n type: 'bct',\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2,\n x: x,\n y: y\n };\n this.path.push(obj);\n },\n\n quadraticCurveTo: function quadraticCurveTo(x1, y1, x, y) {\n x1 = this._wrapX(x1);\n y1 = this._wrapY(y1);\n x = this._wrapX(x);\n y = this._wrapY(y);\n\n var xpt;\n xpt = this._matrix_map_point(this.ctx._transform, [x, y]);\n x = xpt[0];\n y = xpt[1];\n xpt = this._matrix_map_point(this.ctx._transform, [x1, y1]);\n x1 = xpt[0];\n y1 = xpt[1];\n\n var obj = {\n type: 'qct',\n x1: x1,\n y1: y1,\n x: x,\n y: y\n };\n this.path.push(obj);\n },\n\n arc: function arc(x, y, radius, startAngle, endAngle, anticlockwise) {\n x = this._wrapX(x);\n y = this._wrapY(y);\n\n if (!this._matrix_is_identity(this.ctx._transform)) {\n var xpt = this._matrix_map_point(this.ctx._transform, [x, y]);\n x = xpt[0];\n y = xpt[1];\n\n var x_radPt0 = this._matrix_map_point(this.ctx._transform, [0, 0]);\n var x_radPt = this._matrix_map_point(this.ctx._transform, [0, radius]);\n radius = Math.sqrt(Math.pow(x_radPt[0] - x_radPt0[0], 2) + Math.pow(x_radPt[1] - x_radPt0[1], 2));\n\n //TODO angles need to be transformed\n }\n\n var obj = {\n type: 'arc',\n x: x,\n y: y,\n radius: radius,\n startAngle: startAngle,\n endAngle: endAngle,\n anticlockwise: anticlockwise\n };\n this.path.push(obj);\n },\n\n drawImage: function drawImage(img, x, y, w, h, x2, y2, w2, h2) {\n if (x2 !== undefined) {\n x = x2;\n y = y2;\n w = w2;\n h = h2;\n }\n x = this._wrapX(x);\n y = this._wrapY(y);\n\n var xRect = this._matrix_map_rect(this.ctx._transform, { x: x, y: y, w: w, h: h });\n var xRect2 = this._matrix_map_rect(this.ctx._transform, { x: x2, y: y2, w: w2, h: h2 });\n\n // TODO implement source clipping and image scaling\n var format;\n var rx = /data:image\\/(\\w+).*/i;\n var m = rx.exec(img);\n if (m != null) {\n format = m[1];\n } else {\n // format = \"jpeg\";\n format = \"png\";\n }\n\n this.pdf.addImage(img, format, xRect.x, xRect.y, xRect.w, xRect.h);\n },\n\n /**\n * Multiply the first matrix by the second\n * @param m1\n * @param m2\n * @returns {*[]}\n * @private\n */\n _matrix_multiply: function _matrix_multiply(m2, m1) {\n var sx = m1[0];\n var shy = m1[1];\n var shx = m1[2];\n var sy = m1[3];\n var tx = m1[4];\n var ty = m1[5];\n\n var t0 = sx * m2[0] + shy * m2[2];\n var t2 = shx * m2[0] + sy * m2[2];\n var t4 = tx * m2[0] + ty * m2[2] + m2[4];\n shy = sx * m2[1] + shy * m2[3];\n sy = shx * m2[1] + sy * m2[3];\n ty = tx * m2[1] + ty * m2[3] + m2[5];\n sx = t0;\n shx = t2;\n tx = t4;\n\n return [sx, shy, shx, sy, tx, ty];\n },\n\n _matrix_rotation: function _matrix_rotation(m) {\n return Math.atan2(m[2], m[0]);\n },\n\n _matrix_decompose: function _matrix_decompose(matrix) {\n\n var a = matrix[0];\n var b = matrix[1];\n var c = matrix[2];\n var d = matrix[3];\n\n var scaleX = Math.sqrt(a * a + b * b);\n a /= scaleX;\n b /= scaleX;\n\n var shear = a * c + b * d;\n c -= a * shear;\n d -= b * shear;\n\n var scaleY = Math.sqrt(c * c + d * d);\n c /= scaleY;\n d /= scaleY;\n shear /= scaleY;\n\n if (a * d < b * c) {\n a = -a;\n b = -b;\n shear = -shear;\n scaleX = -scaleX;\n }\n\n return {\n scale: [scaleX, 0, 0, scaleY, 0, 0],\n translate: [1, 0, 0, 1, matrix[4], matrix[5]],\n rotate: [a, b, -b, a, 0, 0],\n skew: [1, 0, shear, 1, 0, 0]\n };\n },\n\n _matrix_map_point: function _matrix_map_point(m1, pt) {\n var sx = m1[0];\n var shy = m1[1];\n var shx = m1[2];\n var sy = m1[3];\n var tx = m1[4];\n var ty = m1[5];\n\n var px = pt[0];\n var py = pt[1];\n\n var x = px * sx + py * shx + tx;\n var y = px * shy + py * sy + ty;\n return [x, y];\n },\n\n _matrix_map_point_obj: function _matrix_map_point_obj(m1, pt) {\n var xpt = this._matrix_map_point(m1, [pt.x, pt.y]);\n return { x: xpt[0], y: xpt[1] };\n },\n\n _matrix_map_rect: function _matrix_map_rect(m1, rect) {\n var p1 = this._matrix_map_point(m1, [rect.x, rect.y]);\n var p2 = this._matrix_map_point(m1, [rect.x + rect.w, rect.y + rect.h]);\n return { x: p1[0], y: p1[1], w: p2[0] - p1[0], h: p2[1] - p1[1] };\n },\n\n _matrix_is_identity: function _matrix_is_identity(m1) {\n if (m1[0] != 1) {\n return false;\n }\n if (m1[1] != 0) {\n return false;\n }\n if (m1[2] != 0) {\n return false;\n }\n if (m1[3] != 1) {\n return false;\n }\n if (m1[4] != 0) {\n return false;\n }\n if (m1[5] != 0) {\n return false;\n }\n return true;\n },\n\n rotate: function rotate(angle) {\n var matrix = [Math.cos(angle), Math.sin(angle), -Math.sin(angle), Math.cos(angle), 0.0, 0.0];\n this.ctx._transform = this._matrix_multiply(this.ctx._transform, matrix);\n },\n\n scale: function scale(sx, sy) {\n var matrix = [sx, 0.0, 0.0, sy, 0.0, 0.0];\n this.ctx._transform = this._matrix_multiply(this.ctx._transform, matrix);\n },\n\n translate: function translate(x, y) {\n var matrix = [1.0, 0.0, 0.0, 1.0, x, y];\n this.ctx._transform = this._matrix_multiply(this.ctx._transform, matrix);\n },\n\n stroke: function stroke() {\n if (this.ctx._clip_path.length > 0) {\n\n var lines;\n if (window.outIntercept) {\n lines = window.outIntercept.type === 'group' ? window.outIntercept.stream : window.outIntercept;\n } else {\n lines = this.internal.getCurrentPage();\n }\n lines.push(\"q\");\n\n var origPath = this.path;\n this.path = this.ctx._clip_path;\n this.ctx._clip_path = [];\n this._stroke(true);\n\n this.ctx._clip_path = this.path;\n this.path = origPath;\n this._stroke(false);\n\n lines.push(\"Q\");\n } else {\n this._stroke(false);\n }\n },\n\n _stroke: function _stroke(isClip) {\n if (!isClip && this._isStrokeTransparent()) {\n return;\n }\n\n //TODO opacity\n\n var moves = [];\n var closed = false;\n\n var xPath = this.path;\n\n for (var i = 0; i < xPath.length; i++) {\n var pt = xPath[i];\n switch (pt.type) {\n case 'mt':\n moves.push({ start: pt, deltas: [], abs: [] });\n break;\n case 'lt':\n var delta = [pt.x - xPath[i - 1].x, pt.y - xPath[i - 1].y];\n moves[moves.length - 1].deltas.push(delta);\n moves[moves.length - 1].abs.push(pt);\n break;\n case 'bct':\n var delta = [pt.x1 - xPath[i - 1].x, pt.y1 - xPath[i - 1].y, pt.x2 - xPath[i - 1].x, pt.y2 - xPath[i - 1].y, pt.x - xPath[i - 1].x, pt.y - xPath[i - 1].y];\n moves[moves.length - 1].deltas.push(delta);\n break;\n case 'qct':\n // convert to bezier\n var x1 = xPath[i - 1].x + 2.0 / 3.0 * (pt.x1 - xPath[i - 1].x);\n var y1 = xPath[i - 1].y + 2.0 / 3.0 * (pt.y1 - xPath[i - 1].y);\n var x2 = pt.x + 2.0 / 3.0 * (pt.x1 - pt.x);\n var y2 = pt.y + 2.0 / 3.0 * (pt.y1 - pt.y);\n var x3 = pt.x;\n var y3 = pt.y;\n var delta = [x1 - xPath[i - 1].x, y1 - xPath[i - 1].y, x2 - xPath[i - 1].x, y2 - xPath[i - 1].y, x3 - xPath[i - 1].x, y3 - xPath[i - 1].y];\n moves[moves.length - 1].deltas.push(delta);\n break;\n case 'arc':\n //TODO this was hack to avoid out-of-bounds issue\n // No move-to before drawing the arc\n if (moves.length == 0) {\n moves.push({ start: { x: 0, y: 0 }, deltas: [], abs: [] });\n }\n moves[moves.length - 1].arc = true;\n moves[moves.length - 1].abs.push(pt);\n break;\n case 'close':\n closed = true;\n break;\n }\n }\n\n for (var i = 0; i < moves.length; i++) {\n var style;\n if (i == moves.length - 1) {\n style = 's';\n } else {\n style = null;\n }\n if (moves[i].arc) {\n var arcs = moves[i].abs;\n for (var ii = 0; ii < arcs.length; ii++) {\n var arc = arcs[ii];\n var start = arc.startAngle * 360 / (2 * Math.PI);\n var end = arc.endAngle * 360 / (2 * Math.PI);\n var x = arc.x;\n var y = arc.y;\n this.internal.arc2(this, x, y, arc.radius, start, end, arc.anticlockwise, style, isClip);\n }\n } else {\n var x = moves[i].start.x;\n var y = moves[i].start.y;\n if (!isClip) {\n this.pdf.lines(moves[i].deltas, x, y, null, style);\n } else {\n this.pdf.lines(moves[i].deltas, x, y, null, null);\n this.pdf.clip_fixed();\n }\n }\n }\n },\n\n _isFillTransparent: function _isFillTransparent() {\n return this.ctx._isFillTransparent || this.globalAlpha == 0;\n },\n\n _isStrokeTransparent: function _isStrokeTransparent() {\n return this.ctx._isStrokeTransparent || this.globalAlpha == 0;\n },\n\n fill: function fill(fillRule) {\n //evenodd or nonzero (default)\n if (this.ctx._clip_path.length > 0) {\n\n var lines;\n if (window.outIntercept) {\n lines = window.outIntercept.type === 'group' ? window.outIntercept.stream : window.outIntercept;\n } else {\n lines = this.internal.getCurrentPage();\n }\n lines.push(\"q\");\n\n var origPath = this.path;\n this.path = this.ctx._clip_path;\n this.ctx._clip_path = [];\n this._fill(fillRule, true);\n\n this.ctx._clip_path = this.path;\n this.path = origPath;\n this._fill(fillRule, false);\n\n lines.push('Q');\n } else {\n this._fill(fillRule, false);\n }\n },\n\n _fill: function _fill(fillRule, isClip) {\n if (this._isFillTransparent()) {\n return;\n }\n var v2Support = typeof this.pdf.internal.newObject2 === 'function';\n\n var lines;\n if (window.outIntercept) {\n lines = window.outIntercept.type === 'group' ? window.outIntercept.stream : window.outIntercept;\n } else {\n lines = this.internal.getCurrentPage();\n }\n\n // if (this.ctx._clip_path.length > 0) {\n // lines.push('q');\n // var oldPath = this.path;\n // this.path = this.ctx._clip_path;\n // this.ctx._clip_path = [];\n // this._fill(fillRule, true);\n // this.ctx._clip_path = this.path;\n // this.path = oldPath;\n // }\n\n var moves = [];\n var outInterceptOld = window.outIntercept;\n\n if (v2Support) {\n // Blend and Mask\n switch (this.ctx.globalCompositeOperation) {\n case 'normal':\n case 'source-over':\n break;\n case 'destination-in':\n case 'destination-out':\n //TODO this need to be added to the current group or page\n // define a mask stream\n var obj = this.pdf.internal.newStreamObject();\n\n // define a mask state\n var obj2 = this.pdf.internal.newObject2();\n obj2.push('<>'); // /S /Luminosity will need to define color space\n obj2.push('>>');\n\n // add mask to page resources\n var gsName = 'MASK' + obj2.objId;\n this.pdf.internal.addGraphicsState(gsName, obj2.objId);\n\n var instruction = '/' + gsName + ' gs';\n // add mask to page, group, or stream\n lines.splice(0, 0, 'q');\n lines.splice(1, 0, instruction);\n lines.push('Q');\n\n window.outIntercept = obj;\n break;\n default:\n var dictionaryEntry = '/' + this.pdf.internal.blendModeMap[this.ctx.globalCompositeOperation.toUpperCase()];\n if (dictionaryEntry) {\n this.pdf.internal.out(dictionaryEntry + ' gs');\n }\n break;\n }\n }\n\n var alpha = this.ctx.globalAlpha;\n if (this.ctx._fillOpacity < 1) {\n // TODO combine this with global opacity\n alpha = this.ctx._fillOpacity;\n }\n\n //TODO check for an opacity graphics state that was already created\n //TODO do not set opacity if current value is already active\n if (v2Support) {\n var objOpac = this.pdf.internal.newObject2();\n objOpac.push('<>');\n var gsName = 'GS_O_' + objOpac.objId;\n this.pdf.internal.addGraphicsState(gsName, objOpac.objId);\n this.pdf.internal.out('/' + gsName + ' gs');\n }\n\n var xPath = this.path;\n\n for (var i = 0; i < xPath.length; i++) {\n var pt = xPath[i];\n switch (pt.type) {\n case 'mt':\n moves.push({ start: pt, deltas: [], abs: [] });\n break;\n case 'lt':\n var delta = [pt.x - xPath[i - 1].x, pt.y - xPath[i - 1].y];\n moves[moves.length - 1].deltas.push(delta);\n moves[moves.length - 1].abs.push(pt);\n break;\n case 'bct':\n var delta = [pt.x1 - xPath[i - 1].x, pt.y1 - xPath[i - 1].y, pt.x2 - xPath[i - 1].x, pt.y2 - xPath[i - 1].y, pt.x - xPath[i - 1].x, pt.y - xPath[i - 1].y];\n moves[moves.length - 1].deltas.push(delta);\n break;\n case 'qct':\n // convert to bezier\n var x1 = xPath[i - 1].x + 2.0 / 3.0 * (pt.x1 - xPath[i - 1].x);\n var y1 = xPath[i - 1].y + 2.0 / 3.0 * (pt.y1 - xPath[i - 1].y);\n var x2 = pt.x + 2.0 / 3.0 * (pt.x1 - pt.x);\n var y2 = pt.y + 2.0 / 3.0 * (pt.y1 - pt.y);\n var x3 = pt.x;\n var y3 = pt.y;\n var delta = [x1 - xPath[i - 1].x, y1 - xPath[i - 1].y, x2 - xPath[i - 1].x, y2 - xPath[i - 1].y, x3 - xPath[i - 1].x, y3 - xPath[i - 1].y];\n moves[moves.length - 1].deltas.push(delta);\n break;\n case 'arc':\n //TODO this was hack to avoid out-of-bounds issue when drawing circle\n // No move-to before drawing the arc\n if (moves.length === 0) {\n moves.push({ deltas: [], abs: [] });\n }\n moves[moves.length - 1].arc = true;\n moves[moves.length - 1].abs.push(pt);\n break;\n case 'close':\n moves.push({ close: true });\n break;\n }\n }\n\n for (var i = 0; i < moves.length; i++) {\n var style;\n if (i == moves.length - 1) {\n style = 'f';\n if (fillRule === 'evenodd') {\n style += '*';\n }\n } else {\n style = null;\n }\n\n if (moves[i].close) {\n this.pdf.internal.out('h');\n this.pdf.internal.out('f');\n } else if (moves[i].arc) {\n if (moves[i].start) {\n this.internal.move2(this, moves[i].start.x, moves[i].start.y);\n }\n var arcs = moves[i].abs;\n for (var ii = 0; ii < arcs.length; ii++) {\n var arc = arcs[ii];\n //TODO lines deltas were getting in here\n if (typeof arc.startAngle !== 'undefined') {\n var start = arc.startAngle * 360 / (2 * Math.PI);\n var end = arc.endAngle * 360 / (2 * Math.PI);\n var x = arc.x;\n var y = arc.y;\n if (ii === 0) {\n this.internal.move2(this, x, y);\n }\n this.internal.arc2(this, x, y, arc.radius, start, end, arc.anticlockwise, null, isClip);\n if (ii === arcs.length - 1) {\n // The original arc move did not occur because of the algorithm\n if (moves[i].start) {\n var x = moves[i].start.x;\n var y = moves[i].start.y;\n this.internal.line2(c2d, x, y);\n }\n }\n } else {\n this.internal.line2(c2d, arc.x, arc.y);\n }\n }\n } else {\n var x = moves[i].start.x;\n var y = moves[i].start.y;\n if (!isClip) {\n this.pdf.lines(moves[i].deltas, x, y, null, style);\n } else {\n this.pdf.lines(moves[i].deltas, x, y, null, null);\n this.pdf.clip_fixed();\n }\n }\n }\n\n window.outIntercept = outInterceptOld;\n\n // if (this.ctx._clip_path.length > 0) {\n // lines.push('Q');\n // }\n },\n\n pushMask: function pushMask() {\n var v2Support = typeof this.pdf.internal.newObject2 === 'function';\n\n if (!v2Support) {\n console.log('jsPDF v2 not enabled');\n return;\n }\n\n // define a mask stream\n var obj = this.pdf.internal.newStreamObject();\n\n // define a mask state\n var obj2 = this.pdf.internal.newObject2();\n obj2.push('<>'); // /S /Luminosity will need to define color space\n obj2.push('>>');\n\n // add mask to page resources\n var gsName = 'MASK' + obj2.objId;\n this.pdf.internal.addGraphicsState(gsName, obj2.objId);\n\n var instruction = '/' + gsName + ' gs';\n this.pdf.internal.out(instruction);\n },\n\n clip: function clip() {\n //TODO do we reset the path, or just copy it?\n if (this.ctx._clip_path.length > 0) {\n for (var i = 0; i < this.path.length; i++) {\n this.ctx._clip_path.push(this.path[i]);\n }\n } else {\n this.ctx._clip_path = this.path;\n }\n this.path = [];\n },\n\n measureText: function measureText(text) {\n var pdf = this.pdf;\n return {\n getWidth: function getWidth() {\n var fontSize = pdf.internal.getFontSize();\n var txtWidth = pdf.getStringUnitWidth(text) * fontSize / pdf.internal.scaleFactor;\n // Convert points to pixels\n txtWidth *= 1.3333;\n return txtWidth;\n },\n\n get width() {\n return this.getWidth(text);\n }\n };\n },\n _getBaseline: function _getBaseline(y) {\n var height = parseInt(this.pdf.internal.getFontSize());\n // TODO Get descent from font descriptor\n var descent = height * .25;\n switch (this.ctx.textBaseline) {\n case 'bottom':\n return y - descent;\n case 'top':\n return y + height;\n case 'hanging':\n return y + height - descent;\n case 'middle':\n return y + height / 2 - descent;\n case 'ideographic':\n // TODO not implemented\n return y;\n case 'alphabetic':\n default:\n return y;\n }\n }\n };\n\n var c2d = jsPDFAPI.context2d;\n\n // accessor methods\n Object.defineProperty(c2d, 'fillStyle', {\n set: function set(value) {\n this.setFillStyle(value);\n },\n get: function get() {\n return this.ctx.fillStyle;\n }\n });\n Object.defineProperty(c2d, 'strokeStyle', {\n set: function set(value) {\n this.setStrokeStyle(value);\n },\n get: function get() {\n return this.ctx.strokeStyle;\n }\n });\n Object.defineProperty(c2d, 'lineWidth', {\n set: function set(value) {\n this.setLineWidth(value);\n },\n get: function get() {\n return this.ctx.lineWidth;\n }\n });\n Object.defineProperty(c2d, 'lineCap', {\n set: function set(val) {\n this.setLineCap(val);\n },\n get: function get() {\n return this.ctx.lineCap;\n }\n });\n Object.defineProperty(c2d, 'lineJoin', {\n set: function set(val) {\n this.setLineJoin(val);\n },\n get: function get() {\n return this.ctx.lineJoin;\n }\n });\n Object.defineProperty(c2d, 'miterLimit', {\n set: function set(val) {\n this.ctx.miterLimit = val;\n },\n get: function get() {\n return this.ctx.miterLimit;\n }\n });\n Object.defineProperty(c2d, 'textBaseline', {\n set: function set(value) {\n this.setTextBaseline(value);\n },\n get: function get() {\n return this.getTextBaseline();\n }\n });\n Object.defineProperty(c2d, 'textAlign', {\n set: function set(value) {\n this.setTextAlign(value);\n },\n get: function get() {\n return this.getTextAlign();\n }\n });\n Object.defineProperty(c2d, 'font', {\n set: function set(value) {\n this.setFont(value);\n },\n get: function get() {\n return this.ctx.font;\n }\n });\n Object.defineProperty(c2d, 'globalCompositeOperation', {\n set: function set(value) {\n this.ctx.globalCompositeOperation = value;\n },\n get: function get() {\n return this.ctx.globalCompositeOperation;\n }\n });\n Object.defineProperty(c2d, 'globalAlpha', {\n set: function set(value) {\n this.ctx.globalAlpha = value;\n },\n get: function get() {\n return this.ctx.globalAlpha;\n }\n });\n // Not HTML API\n Object.defineProperty(c2d, 'ignoreClearRect', {\n set: function set(value) {\n this.ctx.ignoreClearRect = value;\n },\n get: function get() {\n return this.ctx.ignoreClearRect;\n }\n });\n // End Not HTML API\n\n c2d.internal = {};\n\n c2d.internal.rxRgb = /rgb\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*\\)/;\n c2d.internal.rxRgba = /rgba\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*([\\d\\.]+)\\s*\\)/;\n c2d.internal.rxTransparent = /transparent|rgba\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*0+\\s*\\)/;\n\n // http://hansmuller-flex.blogspot.com/2011/10/more-about-approximating-circular-arcs.html\n c2d.internal.arc = function (c2d, xc, yc, r, a1, a2, anticlockwise, style) {\n var includeMove = true;\n\n var k = this.pdf.internal.scaleFactor;\n var pageHeight = this.pdf.internal.pageSize.height;\n var f2 = this.pdf.internal.f2;\n\n var a1r = a1 * (Math.PI / 180);\n var a2r = a2 * (Math.PI / 180);\n var curves = this.createArc(r, a1r, a2r, anticlockwise);\n var pathData = null;\n\n for (var i = 0; i < curves.length; i++) {\n var curve = curves[i];\n if (includeMove && i === 0) {\n this.pdf.internal.out([f2((curve.x1 + xc) * k), f2((pageHeight - (curve.y1 + yc)) * k), 'm', f2((curve.x2 + xc) * k), f2((pageHeight - (curve.y2 + yc)) * k), f2((curve.x3 + xc) * k), f2((pageHeight - (curve.y3 + yc)) * k), f2((curve.x4 + xc) * k), f2((pageHeight - (curve.y4 + yc)) * k), 'c'].join(' '));\n } else {\n this.pdf.internal.out([f2((curve.x2 + xc) * k), f2((pageHeight - (curve.y2 + yc)) * k), f2((curve.x3 + xc) * k), f2((pageHeight - (curve.y3 + yc)) * k), f2((curve.x4 + xc) * k), f2((pageHeight - (curve.y4 + yc)) * k), 'c'].join(' '));\n }\n\n //c2d._lastPoint = {x: curve.x1 + xc, y: curve.y1 + yc};\n c2d._lastPoint = { x: xc, y: yc };\n // f2((curve.x1 + xc) * k), f2((pageHeight - (curve.y1 + yc)) * k), 'm', f2((curve.x2 + xc) * k), f2((pageHeight - (curve.y2 + yc)) * k), f2((curve.x3 + xc) * k), f2((pageHeight - (curve.y3 + yc)) * k), f2((curve.x4 + xc) * k), f2((pageHeight - (curve.y4 + yc)) * k), 'c'\n }\n\n if (style !== null) {\n this.pdf.internal.out(this.pdf.internal.getStyle(style));\n }\n };\n\n /**\n *\n * @param x Edge point X\n * @param y Edge point Y\n * @param r Radius\n * @param a1 start angle\n * @param a2 end angle\n * @param anticlockwise\n * @param style\n * @param isClip\n */\n c2d.internal.arc2 = function (c2d, x, y, r, a1, a2, anticlockwise, style, isClip) {\n // we need to convert from cartesian to polar here methinks.\n var centerX = x; // + r;\n var centerY = y;\n\n if (!isClip) {\n this.arc(c2d, centerX, centerY, r, a1, a2, anticlockwise, style);\n } else {\n this.arc(c2d, centerX, centerY, r, a1, a2, anticlockwise, null);\n this.pdf.clip_fixed();\n }\n };\n\n c2d.internal.move2 = function (c2d, x, y) {\n var k = this.pdf.internal.scaleFactor;\n var pageHeight = this.pdf.internal.pageSize.height;\n var f2 = this.pdf.internal.f2;\n\n this.pdf.internal.out([f2(x * k), f2((pageHeight - y) * k), 'm'].join(' '));\n c2d._lastPoint = { x: x, y: y };\n };\n\n c2d.internal.line2 = function (c2d, dx, dy) {\n var k = this.pdf.internal.scaleFactor;\n var pageHeight = this.pdf.internal.pageSize.height;\n var f2 = this.pdf.internal.f2;\n\n //var pt = {x: c2d._lastPoint.x + dx, y: c2d._lastPoint.y + dy};\n var pt = { x: dx, y: dy };\n\n this.pdf.internal.out([f2(pt.x * k), f2((pageHeight - pt.y) * k), 'l'].join(' '));\n //this.pdf.internal.out('f');\n c2d._lastPoint = pt;\n };\n\n /**\n * Return a array of objects that represent bezier curves which approximate the circular arc centered at the origin, from startAngle to endAngle (radians) with the specified radius.\n *\n * Each bezier curve is an object with four points, where x1,y1 and x4,y4 are the arc's end points and x2,y2 and x3,y3 are the cubic bezier's control points.\n */\n\n c2d.internal.createArc = function (radius, startAngle, endAngle, anticlockwise) {\n var EPSILON = 0.00001; // Roughly 1/1000th of a degree, see below\n var twoPI = Math.PI * 2;\n var piOverTwo = Math.PI / 2.0;\n\n // normalize startAngle, endAngle to [0, 2PI]\n var startAngleN = startAngle;\n if (startAngleN < twoPI || startAngleN > twoPI) {\n startAngleN = startAngleN % twoPI;\n }\n if (startAngleN < 0) {\n startAngleN = twoPI + startAngleN;\n }\n\n while (startAngle > endAngle) {\n startAngle = startAngle - twoPI;\n }\n var totalAngle = Math.abs(endAngle - startAngle);\n if (totalAngle < twoPI) {\n if (anticlockwise) {\n totalAngle = twoPI - totalAngle;\n }\n }\n\n // Compute the sequence of arc curves, up to PI/2 at a time.\n var curves = [];\n var sgn = anticlockwise ? -1 : +1;\n\n var a1 = startAngleN;\n for (; totalAngle > EPSILON;) {\n var remain = sgn * Math.min(totalAngle, piOverTwo);\n var a2 = a1 + remain;\n curves.push(this.createSmallArc(radius, a1, a2));\n totalAngle -= Math.abs(a2 - a1);\n a1 = a2;\n }\n\n return curves;\n };\n\n c2d.internal.getCurrentPage = function () {\n return this.pdf.internal.pages[this.pdf.internal.getCurrentPageInfo().pageNumber];\n };\n\n /**\n * Cubic bezier approximation of a circular arc centered at the origin, from (radians) a1 to a2, where a2-a1 < pi/2. The arc's radius is r.\n *\n * Returns an object with four points, where x1,y1 and x4,y4 are the arc's end points and x2,y2 and x3,y3 are the cubic bezier's control points.\n *\n * This algorithm is based on the approach described in: A. Riškus, \"Approximation of a Cubic Bezier Curve by Circular Arcs and Vice Versa,\" Information Technology and Control, 35(4), 2006 pp. 371-378.\n */\n\n c2d.internal.createSmallArc = function (r, a1, a2) {\n // Compute all four points for an arc that subtends the same total angle\n // but is centered on the X-axis\n\n var a = (a2 - a1) / 2.0;\n\n var x4 = r * Math.cos(a);\n var y4 = r * Math.sin(a);\n var x1 = x4;\n var y1 = -y4;\n\n var q1 = x1 * x1 + y1 * y1;\n var q2 = q1 + x1 * x4 + y1 * y4;\n var k2 = 4 / 3 * (Math.sqrt(2 * q1 * q2) - q2) / (x1 * y4 - y1 * x4);\n\n var x2 = x1 - k2 * y1;\n var y2 = y1 + k2 * x1;\n var x3 = x2;\n var y3 = -y2;\n\n // Find the arc points' actual locations by computing x1,y1 and x4,y4\n // and rotating the control points by a + a1\n\n var ar = a + a1;\n var cos_ar = Math.cos(ar);\n var sin_ar = Math.sin(ar);\n\n return {\n x1: r * Math.cos(a1),\n y1: r * Math.sin(a1),\n x2: x2 * cos_ar - y2 * sin_ar,\n y2: x2 * sin_ar + y2 * cos_ar,\n x3: x3 * cos_ar - y3 * sin_ar,\n y3: x3 * sin_ar + y3 * cos_ar,\n x4: r * Math.cos(a2),\n y4: r * Math.sin(a2)\n };\n };\n\n function context() {\n this._isStrokeTransparent = false;\n this._strokeOpacity = 1;\n this.strokeStyle = '#000000';\n this.fillStyle = '#000000';\n this._isFillTransparent = false;\n this._fillOpacity = 1;\n this.font = \"12pt times\";\n this.textBaseline = 'alphabetic'; // top,bottom,middle,ideographic,alphabetic,hanging\n this.textAlign = 'start';\n this.lineWidth = 1;\n this.lineJoin = 'miter'; // round, bevel, miter\n this.lineCap = 'butt'; // butt, round, square\n this._transform = [1, 0, 0, 1, 0, 0]; // sx, shy, shx, sy, tx, ty\n this.globalCompositeOperation = 'normal';\n this.globalAlpha = 1.0;\n this._clip_path = [];\n // TODO miter limit //default 10\n\n // Not HTML API\n this.ignoreClearRect = false;\n\n this.copy = function (ctx) {\n this._isStrokeTransparent = ctx._isStrokeTransparent;\n this._strokeOpacity = ctx._strokeOpacity;\n this.strokeStyle = ctx.strokeStyle;\n this._isFillTransparent = ctx._isFillTransparent;\n this._fillOpacity = ctx._fillOpacity;\n this.fillStyle = ctx.fillStyle;\n this.font = ctx.font;\n this.lineWidth = ctx.lineWidth;\n this.lineJoin = ctx.lineJoin;\n this.lineCap = ctx.lineCap;\n this.textBaseline = ctx.textBaseline;\n this.textAlign = ctx.textAlign;\n this._fontSize = ctx._fontSize;\n this._transform = ctx._transform.slice(0);\n this.globalCompositeOperation = ctx.globalCompositeOperation;\n this.globalAlpha = ctx.globalAlpha;\n this._clip_path = ctx._clip_path.slice(0); //TODO deep copy?\n\n // Not HTML API\n this.ignoreClearRect = ctx.ignoreClearRect;\n };\n }\n\n return this;\n})(jsPDF.API);\n\n/** @preserve\n * jsPDF fromHTML plugin. BETA stage. API subject to change. Needs browser\n * Copyright (c) 2012 Willow Systems Corporation, willow-systems.com\n * 2014 Juan Pablo Gaviria, https://github.com/juanpgaviria\n * 2014 Diego Casorran, https://github.com/diegocr\n * 2014 Daniel Husar, https://github.com/danielhusar\n * 2014 Wolfgang Gassler, https://github.com/woolfg\n * 2014 Steven Spungin, https://github.com/flamenco\n *\n * \n * ====================================================================\n */\n\n(function (jsPDFAPI) {\n\tvar clone, _DrillForContent, FontNameDB, FontStyleMap, TextAlignMap, FontWeightMap, FloatMap, ClearMap, GetCSS, PurgeWhiteSpace, Renderer, ResolveFont, ResolveUnitedNumber, UnitedNumberMap, elementHandledElsewhere, images, loadImgs, checkForFooter, process, tableToJson;\n\tclone = function () {\n\t\treturn function (obj) {\n\t\t\tClone.prototype = obj;\n\t\t\treturn new Clone();\n\t\t};\n\t\tfunction Clone() {}\n\t}();\n\tPurgeWhiteSpace = function PurgeWhiteSpace(array) {\n\t\tvar fragment, i, l, lTrimmed, r, rTrimmed, trailingSpace;\n\t\ti = 0;\n\t\tl = array.length;\n\t\tfragment = void 0;\n\t\tlTrimmed = false;\n\t\trTrimmed = false;\n\t\twhile (!lTrimmed && i !== l) {\n\t\t\tfragment = array[i] = array[i].trimLeft();\n\t\t\tif (fragment) {\n\t\t\t\tlTrimmed = true;\n\t\t\t}\n\t\t\ti++;\n\t\t}\n\t\ti = l - 1;\n\t\twhile (l && !rTrimmed && i !== -1) {\n\t\t\tfragment = array[i] = array[i].trimRight();\n\t\t\tif (fragment) {\n\t\t\t\trTrimmed = true;\n\t\t\t}\n\t\t\ti--;\n\t\t}\n\t\tr = /\\s+$/g;\n\t\ttrailingSpace = true;\n\t\ti = 0;\n\t\twhile (i !== l) {\n\t\t\t// Leave the line breaks intact\n\t\t\tif (array[i] != \"\\u2028\") {\n\t\t\t\tfragment = array[i].replace(/\\s+/g, \" \");\n\t\t\t\tif (trailingSpace) {\n\t\t\t\t\tfragment = fragment.trimLeft();\n\t\t\t\t}\n\t\t\t\tif (fragment) {\n\t\t\t\t\ttrailingSpace = r.test(fragment);\n\t\t\t\t}\n\t\t\t\tarray[i] = fragment;\n\t\t\t}\n\t\t\ti++;\n\t\t}\n\t\treturn array;\n\t};\n\tRenderer = function Renderer(pdf, x, y, settings) {\n\t\tthis.pdf = pdf;\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.settings = settings;\n\t\t//list of functions which are called after each element-rendering process\n\t\tthis.watchFunctions = [];\n\t\tthis.init();\n\t\treturn this;\n\t};\n\tResolveFont = function ResolveFont(css_font_family_string) {\n\t\tvar name, part, parts;\n\t\tname = void 0;\n\t\tparts = css_font_family_string.split(\",\");\n\t\tpart = parts.shift();\n\t\twhile (!name && part) {\n\t\t\tname = FontNameDB[part.trim().toLowerCase()];\n\t\t\tpart = parts.shift();\n\t\t}\n\t\treturn name;\n\t};\n\tResolveUnitedNumber = function ResolveUnitedNumber(css_line_height_string) {\n\n\t\t//IE8 issues\n\t\tcss_line_height_string = css_line_height_string === \"auto\" ? \"0px\" : css_line_height_string;\n\t\tif (css_line_height_string.indexOf(\"em\") > -1 && !isNaN(Number(css_line_height_string.replace(\"em\", \"\")))) {\n\t\t\tcss_line_height_string = Number(css_line_height_string.replace(\"em\", \"\")) * 18.719 + \"px\";\n\t\t}\n\t\tif (css_line_height_string.indexOf(\"pt\") > -1 && !isNaN(Number(css_line_height_string.replace(\"pt\", \"\")))) {\n\t\t\tcss_line_height_string = Number(css_line_height_string.replace(\"pt\", \"\")) * 1.333 + \"px\";\n\t\t}\n\n\t\tvar normal, undef, value;\n\t\tundef = void 0;\n\t\tnormal = 16.00;\n\t\tvalue = UnitedNumberMap[css_line_height_string];\n\t\tif (value) {\n\t\t\treturn value;\n\t\t}\n\t\tvalue = {\n\t\t\t\"xx-small\": 9,\n\t\t\t\"x-small\": 11,\n\t\t\tsmall: 13,\n\t\t\tmedium: 16,\n\t\t\tlarge: 19,\n\t\t\t\"x-large\": 23,\n\t\t\t\"xx-large\": 28,\n\t\t\tauto: 0\n\t\t}[{ css_line_height_string: css_line_height_string }];\n\n\t\tif (value !== undef) {\n\t\t\treturn UnitedNumberMap[css_line_height_string] = value / normal;\n\t\t}\n\t\tif (value = parseFloat(css_line_height_string)) {\n\t\t\treturn UnitedNumberMap[css_line_height_string] = value / normal;\n\t\t}\n\t\tvalue = css_line_height_string.match(/([\\d\\.]+)(px)/);\n\t\tif (value.length === 3) {\n\t\t\treturn UnitedNumberMap[css_line_height_string] = parseFloat(value[1]) / normal;\n\t\t}\n\t\treturn UnitedNumberMap[css_line_height_string] = 1;\n\t};\n\tGetCSS = function GetCSS(element) {\n\t\tvar css, tmp, computedCSSElement;\n\t\tcomputedCSSElement = function (el) {\n\t\t\tvar compCSS;\n\t\t\tcompCSS = function (el) {\n\t\t\t\tif (document.defaultView && document.defaultView.getComputedStyle) {\n\t\t\t\t\treturn document.defaultView.getComputedStyle(el, null);\n\t\t\t\t} else if (el.currentStyle) {\n\t\t\t\t\treturn el.currentStyle;\n\t\t\t\t} else {\n\t\t\t\t\treturn el.style;\n\t\t\t\t}\n\t\t\t}(el);\n\t\t\treturn function (prop) {\n\t\t\t\tprop = prop.replace(/-\\D/g, function (match) {\n\t\t\t\t\treturn match.charAt(1).toUpperCase();\n\t\t\t\t});\n\t\t\t\treturn compCSS[prop];\n\t\t\t};\n\t\t}(element);\n\t\tcss = {};\n\t\ttmp = void 0;\n\t\tcss[\"font-family\"] = ResolveFont(computedCSSElement(\"font-family\")) || \"times\";\n\t\tcss[\"font-style\"] = FontStyleMap[computedCSSElement(\"font-style\")] || \"normal\";\n\t\tcss[\"text-align\"] = TextAlignMap[computedCSSElement(\"text-align\")] || \"left\";\n\t\ttmp = FontWeightMap[computedCSSElement(\"font-weight\")] || \"normal\";\n\t\tif (tmp === \"bold\") {\n\t\t\tif (css[\"font-style\"] === \"normal\") {\n\t\t\t\tcss[\"font-style\"] = tmp;\n\t\t\t} else {\n\t\t\t\tcss[\"font-style\"] = tmp + css[\"font-style\"];\n\t\t\t}\n\t\t}\n\t\tcss[\"font-size\"] = ResolveUnitedNumber(computedCSSElement(\"font-size\")) || 1;\n\t\tcss[\"line-height\"] = ResolveUnitedNumber(computedCSSElement(\"line-height\")) || 1;\n\t\tcss[\"display\"] = computedCSSElement(\"display\") === \"inline\" ? \"inline\" : \"block\";\n\n\t\ttmp = css[\"display\"] === \"block\";\n\t\tcss[\"margin-top\"] = tmp && ResolveUnitedNumber(computedCSSElement(\"margin-top\")) || 0;\n\t\tcss[\"margin-bottom\"] = tmp && ResolveUnitedNumber(computedCSSElement(\"margin-bottom\")) || 0;\n\t\tcss[\"padding-top\"] = tmp && ResolveUnitedNumber(computedCSSElement(\"padding-top\")) || 0;\n\t\tcss[\"padding-bottom\"] = tmp && ResolveUnitedNumber(computedCSSElement(\"padding-bottom\")) || 0;\n\t\tcss[\"margin-left\"] = tmp && ResolveUnitedNumber(computedCSSElement(\"margin-left\")) || 0;\n\t\tcss[\"margin-right\"] = tmp && ResolveUnitedNumber(computedCSSElement(\"margin-right\")) || 0;\n\t\tcss[\"padding-left\"] = tmp && ResolveUnitedNumber(computedCSSElement(\"padding-left\")) || 0;\n\t\tcss[\"padding-right\"] = tmp && ResolveUnitedNumber(computedCSSElement(\"padding-right\")) || 0;\n\n\t\tcss[\"page-break-before\"] = computedCSSElement(\"page-break-before\") || \"auto\";\n\n\t\t//float and clearing of floats\n\t\tcss[\"float\"] = FloatMap[computedCSSElement(\"cssFloat\")] || \"none\";\n\t\tcss[\"clear\"] = ClearMap[computedCSSElement(\"clear\")] || \"none\";\n\n\t\tcss[\"color\"] = computedCSSElement(\"color\");\n\n\t\treturn css;\n\t};\n\telementHandledElsewhere = function elementHandledElsewhere(element, renderer, elementHandlers) {\n\t\tvar handlers, i, isHandledElsewhere, l, t;\n\t\tisHandledElsewhere = false;\n\t\ti = void 0;\n\t\tl = void 0;\n\t\tt = void 0;\n\t\thandlers = elementHandlers[\"#\" + element.id];\n\t\tif (handlers) {\n\t\t\tif (typeof handlers === \"function\") {\n\t\t\t\tisHandledElsewhere = handlers(element, renderer);\n\t\t\t} else {\n\t\t\t\ti = 0;\n\t\t\t\tl = handlers.length;\n\t\t\t\twhile (!isHandledElsewhere && i !== l) {\n\t\t\t\t\tisHandledElsewhere = handlers[i](element, renderer);\n\t\t\t\t\ti++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\thandlers = elementHandlers[element.nodeName];\n\t\tif (!isHandledElsewhere && handlers) {\n\t\t\tif (typeof handlers === \"function\") {\n\t\t\t\tisHandledElsewhere = handlers(element, renderer);\n\t\t\t} else {\n\t\t\t\ti = 0;\n\t\t\t\tl = handlers.length;\n\t\t\t\twhile (!isHandledElsewhere && i !== l) {\n\t\t\t\t\tisHandledElsewhere = handlers[i](element, renderer);\n\t\t\t\t\ti++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn isHandledElsewhere;\n\t};\n\ttableToJson = function tableToJson(table, renderer) {\n\t\tvar data, headers, i, j, rowData, tableRow, table_obj, table_with, cell, l;\n\t\tdata = [];\n\t\theaders = [];\n\t\ti = 0;\n\t\tl = table.rows[0].cells.length;\n\t\ttable_with = table.clientWidth;\n\t\twhile (i < l) {\n\t\t\tcell = table.rows[0].cells[i];\n\t\t\theaders[i] = {\n\t\t\t\tname: cell.textContent.toLowerCase().replace(/\\s+/g, ''),\n\t\t\t\tprompt: cell.textContent.replace(/\\r?\\n/g, ''),\n\t\t\t\twidth: cell.clientWidth / table_with * renderer.pdf.internal.pageSize.width\n\t\t\t};\n\t\t\ti++;\n\t\t}\n\t\ti = 1;\n\t\twhile (i < table.rows.length) {\n\t\t\ttableRow = table.rows[i];\n\t\t\trowData = {};\n\t\t\tj = 0;\n\t\t\twhile (j < tableRow.cells.length) {\n\t\t\t\trowData[headers[j].name] = tableRow.cells[j].textContent.replace(/\\r?\\n/g, '');\n\t\t\t\tj++;\n\t\t\t}\n\t\t\tdata.push(rowData);\n\t\t\ti++;\n\t\t}\n\t\treturn table_obj = {\n\t\t\trows: data,\n\t\t\theaders: headers\n\t\t};\n\t};\n\tvar SkipNode = {\n\t\tSCRIPT: 1,\n\t\tSTYLE: 1,\n\t\tNOSCRIPT: 1,\n\t\tOBJECT: 1,\n\t\tEMBED: 1,\n\t\tSELECT: 1\n\t};\n\tvar listCount = 1;\n\t_DrillForContent = function DrillForContent(element, renderer, elementHandlers) {\n\t\tvar cn, cns, fragmentCSS, i, isBlock, l, px2pt, table2json, cb;\n\t\tcns = element.childNodes;\n\t\tcn = void 0;\n\t\tfragmentCSS = GetCSS(element);\n\t\tisBlock = fragmentCSS.display === \"block\";\n\t\tif (isBlock) {\n\t\t\trenderer.setBlockBoundary();\n\t\t\trenderer.setBlockStyle(fragmentCSS);\n\t\t}\n\t\tpx2pt = 0.264583 * 72 / 25.4;\n\t\ti = 0;\n\t\tl = cns.length;\n\t\twhile (i < l) {\n\t\t\tcn = cns[i];\n\t\t\tif ((typeof cn === \"undefined\" ? \"undefined\" : _typeof(cn)) === \"object\") {\n\n\t\t\t\t//execute all watcher functions to e.g. reset floating\n\t\t\t\trenderer.executeWatchFunctions(cn);\n\n\t\t\t\t/*** HEADER rendering **/\n\t\t\t\tif (cn.nodeType === 1 && cn.nodeName === 'HEADER') {\n\t\t\t\t\tvar header = cn;\n\t\t\t\t\t//store old top margin\n\t\t\t\t\tvar oldMarginTop = renderer.pdf.margins_doc.top;\n\t\t\t\t\t//subscribe for new page event and render header first on every page\n\t\t\t\t\trenderer.pdf.internal.events.subscribe('addPage', function (pageInfo) {\n\t\t\t\t\t\t//set current y position to old margin\n\t\t\t\t\t\trenderer.y = oldMarginTop;\n\t\t\t\t\t\t//render all child nodes of the header element\n\t\t\t\t\t\t_DrillForContent(header, renderer, elementHandlers);\n\t\t\t\t\t\t//set margin to old margin + rendered header + 10 space to prevent overlapping\n\t\t\t\t\t\t//important for other plugins (e.g. table) to start rendering at correct position after header\n\t\t\t\t\t\trenderer.pdf.margins_doc.top = renderer.y + 10;\n\t\t\t\t\t\trenderer.y += 10;\n\t\t\t\t\t}, false);\n\t\t\t\t}\n\n\t\t\t\tif (cn.nodeType === 8 && cn.nodeName === \"#comment\") {\n\t\t\t\t\tif (~cn.textContent.indexOf(\"ADD_PAGE\")) {\n\t\t\t\t\t\trenderer.pdf.addPage();\n\t\t\t\t\t\trenderer.y = renderer.pdf.margins_doc.top;\n\t\t\t\t\t}\n\t\t\t\t} else if (cn.nodeType === 1 && !SkipNode[cn.nodeName]) {\n\t\t\t\t\t/*** IMAGE RENDERING ***/\n\t\t\t\t\tvar cached_image;\n\t\t\t\t\tif (cn.nodeName === \"IMG\") {\n\t\t\t\t\t\tvar url = cn.getAttribute(\"src\");\n\t\t\t\t\t\tcached_image = images[renderer.pdf.sHashCode(url) || url];\n\t\t\t\t\t}\n\t\t\t\t\tif (cached_image) {\n\t\t\t\t\t\tif (renderer.pdf.internal.pageSize.height - renderer.pdf.margins_doc.bottom < renderer.y + cn.height && renderer.y > renderer.pdf.margins_doc.top) {\n\t\t\t\t\t\t\trenderer.pdf.addPage();\n\t\t\t\t\t\t\trenderer.y = renderer.pdf.margins_doc.top;\n\t\t\t\t\t\t\t//check if we have to set back some values due to e.g. header rendering for new page\n\t\t\t\t\t\t\trenderer.executeWatchFunctions(cn);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar imagesCSS = GetCSS(cn);\n\t\t\t\t\t\tvar imageX = renderer.x;\n\t\t\t\t\t\tvar fontToUnitRatio = 12 / renderer.pdf.internal.scaleFactor;\n\n\t\t\t\t\t\t//define additional paddings, margins which have to be taken into account for margin calculations\n\t\t\t\t\t\tvar additionalSpaceLeft = (imagesCSS[\"margin-left\"] + imagesCSS[\"padding-left\"]) * fontToUnitRatio;\n\t\t\t\t\t\tvar additionalSpaceRight = (imagesCSS[\"margin-right\"] + imagesCSS[\"padding-right\"]) * fontToUnitRatio;\n\t\t\t\t\t\tvar additionalSpaceTop = (imagesCSS[\"margin-top\"] + imagesCSS[\"padding-top\"]) * fontToUnitRatio;\n\t\t\t\t\t\tvar additionalSpaceBottom = (imagesCSS[\"margin-bottom\"] + imagesCSS[\"padding-bottom\"]) * fontToUnitRatio;\n\n\t\t\t\t\t\t//if float is set to right, move the image to the right border\n\t\t\t\t\t\t//add space if margin is set\n\t\t\t\t\t\tif (imagesCSS['float'] !== undefined && imagesCSS['float'] === 'right') {\n\t\t\t\t\t\t\timageX += renderer.settings.width - cn.width - additionalSpaceRight;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\timageX += additionalSpaceLeft;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\trenderer.pdf.addImage(cached_image, imageX, renderer.y + additionalSpaceTop, cn.width, cn.height);\n\t\t\t\t\t\tcached_image = undefined;\n\t\t\t\t\t\t//if the float prop is specified we have to float the text around the image\n\t\t\t\t\t\tif (imagesCSS['float'] === 'right' || imagesCSS['float'] === 'left') {\n\t\t\t\t\t\t\t//add functiont to set back coordinates after image rendering\n\t\t\t\t\t\t\trenderer.watchFunctions.push(function (diffX, thresholdY, diffWidth, el) {\n\t\t\t\t\t\t\t\t//undo drawing box adaptions which were set by floating\n\t\t\t\t\t\t\t\tif (renderer.y >= thresholdY) {\n\t\t\t\t\t\t\t\t\trenderer.x += diffX;\n\t\t\t\t\t\t\t\t\trenderer.settings.width += diffWidth;\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t} else if (el && el.nodeType === 1 && !SkipNode[el.nodeName] && renderer.x + el.width > renderer.pdf.margins_doc.left + renderer.pdf.margins_doc.width) {\n\t\t\t\t\t\t\t\t\trenderer.x += diffX;\n\t\t\t\t\t\t\t\t\trenderer.y = thresholdY;\n\t\t\t\t\t\t\t\t\trenderer.settings.width += diffWidth;\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}.bind(this, imagesCSS['float'] === 'left' ? -cn.width - additionalSpaceLeft - additionalSpaceRight : 0, renderer.y + cn.height + additionalSpaceTop + additionalSpaceBottom, cn.width));\n\t\t\t\t\t\t\t//reset floating by clear:both divs\n\t\t\t\t\t\t\t//just set cursorY after the floating element\n\t\t\t\t\t\t\trenderer.watchFunctions.push(function (yPositionAfterFloating, pages, el) {\n\t\t\t\t\t\t\t\tif (renderer.y < yPositionAfterFloating && pages === renderer.pdf.internal.getNumberOfPages()) {\n\t\t\t\t\t\t\t\t\tif (el.nodeType === 1 && GetCSS(el).clear === 'both') {\n\t\t\t\t\t\t\t\t\t\trenderer.y = yPositionAfterFloating;\n\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}.bind(this, renderer.y + cn.height, renderer.pdf.internal.getNumberOfPages()));\n\n\t\t\t\t\t\t\t//if floating is set we decrease the available width by the image width\n\t\t\t\t\t\t\trenderer.settings.width -= cn.width + additionalSpaceLeft + additionalSpaceRight;\n\t\t\t\t\t\t\t//if left just add the image width to the X coordinate\n\t\t\t\t\t\t\tif (imagesCSS['float'] === 'left') {\n\t\t\t\t\t\t\t\trenderer.x += cn.width + additionalSpaceLeft + additionalSpaceRight;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t//if no floating is set, move the rendering cursor after the image height\n\t\t\t\t\t\t\trenderer.y += cn.height + additionalSpaceTop + additionalSpaceBottom;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t/*** TABLE RENDERING ***/\n\t\t\t\t\t} else if (cn.nodeName === \"TABLE\") {\n\t\t\t\t\t\ttable2json = tableToJson(cn, renderer);\n\t\t\t\t\t\trenderer.y += 10;\n\t\t\t\t\t\trenderer.pdf.table(renderer.x, renderer.y, table2json.rows, table2json.headers, {\n\t\t\t\t\t\t\tautoSize: false,\n\t\t\t\t\t\t\tprintHeaders: elementHandlers.printHeaders,\n\t\t\t\t\t\t\tmargins: renderer.pdf.margins_doc,\n\t\t\t\t\t\t\tcss: GetCSS(cn)\n\t\t\t\t\t\t});\n\t\t\t\t\t\trenderer.y = renderer.pdf.lastCellPos.y + renderer.pdf.lastCellPos.h + 20;\n\t\t\t\t\t} else if (cn.nodeName === \"OL\" || cn.nodeName === \"UL\") {\n\t\t\t\t\t\tlistCount = 1;\n\t\t\t\t\t\tif (!elementHandledElsewhere(cn, renderer, elementHandlers)) {\n\t\t\t\t\t\t\t_DrillForContent(cn, renderer, elementHandlers);\n\t\t\t\t\t\t}\n\t\t\t\t\t\trenderer.y += 10;\n\t\t\t\t\t} else if (cn.nodeName === \"LI\") {\n\t\t\t\t\t\tvar temp = renderer.x;\n\t\t\t\t\t\trenderer.x += 20 / renderer.pdf.internal.scaleFactor;\n\t\t\t\t\t\trenderer.y += 3;\n\t\t\t\t\t\tif (!elementHandledElsewhere(cn, renderer, elementHandlers)) {\n\t\t\t\t\t\t\t_DrillForContent(cn, renderer, elementHandlers);\n\t\t\t\t\t\t}\n\t\t\t\t\t\trenderer.x = temp;\n\t\t\t\t\t} else if (cn.nodeName === \"BR\") {\n\t\t\t\t\t\trenderer.y += fragmentCSS[\"font-size\"] * renderer.pdf.internal.scaleFactor;\n\t\t\t\t\t\trenderer.addText(\"\\u2028\", clone(fragmentCSS));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (!elementHandledElsewhere(cn, renderer, elementHandlers)) {\n\t\t\t\t\t\t\t_DrillForContent(cn, renderer, elementHandlers);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if (cn.nodeType === 3) {\n\t\t\t\t\tvar value = cn.nodeValue;\n\t\t\t\t\tif (cn.nodeValue && cn.parentNode.nodeName === \"LI\") {\n\t\t\t\t\t\tif (cn.parentNode.parentNode.nodeName === \"OL\") {\n\t\t\t\t\t\t\tvalue = listCount++ + '. ' + value;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar fontSize = fragmentCSS[\"font-size\"];\n\t\t\t\t\t\t\tvar offsetX = (3 - fontSize * 0.75) * renderer.pdf.internal.scaleFactor;\n\t\t\t\t\t\t\tvar offsetY = fontSize * 0.75 * renderer.pdf.internal.scaleFactor;\n\t\t\t\t\t\t\tvar radius = fontSize * 1.74 / renderer.pdf.internal.scaleFactor;\n\t\t\t\t\t\t\tcb = function cb(x, y) {\n\t\t\t\t\t\t\t\tthis.pdf.circle(x + offsetX, y + offsetY, radius, 'FD');\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// Only add the text if the text node is in the body element\n\t\t\t\t\t// Add compatibility with IE11\n\t\t\t\t\tif (!!(cn.ownerDocument.body.compareDocumentPosition(cn) & 16)) {\n\t\t\t\t\t\trenderer.addText(value, fragmentCSS);\n\t\t\t\t\t}\n\t\t\t\t} else if (typeof cn === \"string\") {\n\t\t\t\t\trenderer.addText(cn, fragmentCSS);\n\t\t\t\t}\n\t\t\t}\n\t\t\ti++;\n\t\t}\n\t\telementHandlers.outY = renderer.y;\n\n\t\tif (isBlock) {\n\t\t\treturn renderer.setBlockBoundary(cb);\n\t\t}\n\t};\n\timages = {};\n\tloadImgs = function loadImgs(element, renderer, elementHandlers, cb) {\n\t\tvar imgs = element.getElementsByTagName('img'),\n\t\t l = imgs.length,\n\t\t found_images,\n\t\t x = 0;\n\t\tfunction done() {\n\t\t\trenderer.pdf.internal.events.publish('imagesLoaded');\n\t\t\tcb(found_images);\n\t\t}\n\t\tfunction loadImage(url, width, height) {\n\t\t\tif (!url) return;\n\t\t\tvar img = new Image();\n\t\t\tfound_images = ++x;\n\t\t\timg.crossOrigin = '';\n\t\t\timg.onerror = img.onload = function () {\n\t\t\t\tif (img.complete) {\n\t\t\t\t\t//to support data urls in images, set width and height\n\t\t\t\t\t//as those values are not recognized automatically\n\t\t\t\t\tif (img.src.indexOf('data:image/') === 0) {\n\t\t\t\t\t\timg.width = width || img.width || 0;\n\t\t\t\t\t\timg.height = height || img.height || 0;\n\t\t\t\t\t}\n\t\t\t\t\t//if valid image add to known images array\n\t\t\t\t\tif (img.width + img.height) {\n\t\t\t\t\t\tvar hash = renderer.pdf.sHashCode(url) || url;\n\t\t\t\t\t\timages[hash] = images[hash] || img;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (! --x) {\n\t\t\t\t\tdone();\n\t\t\t\t}\n\t\t\t};\n\t\t\timg.src = url;\n\t\t}\n\t\twhile (l--) {\n\t\t\tloadImage(imgs[l].getAttribute(\"src\"), imgs[l].width, imgs[l].height);\n\t\t}return x || done();\n\t};\n\tcheckForFooter = function checkForFooter(elem, renderer, elementHandlers) {\n\t\t//check if we can found a