webssh2/public/bundle.map
billchurch 397b3c0068 update xterm.js to 3.0.2, switch to webpack, move javascript out of html
fixes #40
fixes #41
moved /js/client.js to /js/index.js
todo: rework build scripts to utilize webpack vs gulp
2018-02-06 10:24:53 -05:00

1 line
No EOL
400 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"version":3,"sources":["webpack:///webpack/bootstrap f77eb1e80a4901a473b0","webpack:///./node_modules/css-loader/lib/css-base.js","webpack:///./node_modules/style-loader/lib/addStyles.js","webpack:///./src/js/index.js","webpack:///./node_modules/xterm/dist/xterm.css?da63","webpack:///./node_modules/xterm/dist/xterm.css","webpack:///./node_modules/style-loader/lib/urls.js","webpack:///./src/css/style.css?e1b4","webpack:///./src/css/style.css","webpack:///./node_modules/socket.io/node_modules/socket.io-client/dist/socket.io.js","webpack:///./node_modules/xterm/dist/xterm.js","webpack:///./node_modules/xterm/dist/addons/fit/fit.js"],"names":[],"mappings":";AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC,gBAAgB;AACnD,IAAI;AACJ;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,oDAAoD,cAAc;;AAElE;AACA;;;;;;;AC3EA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,iBAAiB,mBAAmB;AACpC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iBAAiB,sBAAsB;AACvC;;AAEA;AACA,mBAAmB,2BAA2B;;AAE9C;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,mBAAmB;AACnC;AACA;;AAEA;AACA;;AAEA,iBAAiB,2BAA2B;AAC5C;AACA;;AAEA,QAAQ,uBAAuB;AAC/B;AACA;AACA,GAAG;AACH;;AAEA,iBAAiB,uBAAuB;AACxC;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;;AAEA;AACA;AACA;;AAEA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA,cAAc;;AAEd,kDAAkD,sBAAsB;AACxE;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD;AACvD;;AAEA,6BAA6B,mBAAmB;;AAEhD;;AAEA;;AAEA;AACA;;;;;;;;;;;;;;;ACvXA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;AAED;AACA;;AAEA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,qDAAqD;AACrD;AACA;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;;AAEA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,+DAA+D,YAAY,IAAI,IAAI,MAAM,IAAI;AAC7F;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtKA;;AAEA;;AAEA;AACA;;;;AAIA,eAAe;;AAEf;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,GAAG;;AAEH;;AAEA;AACA,EAAE;;AAEF,gCAAgC,UAAU,EAAE;AAC5C,C;;;;;;AC5CA;AACA;;;AAGA;AACA,gqDAAiqD,mDAAmD,wCAAwC,yBAAyB,wBAAwB,4BAA4B,gCAAgC,GAAG,iCAAiC,oBAAoB,GAAG,2BAA2B,yBAAyB,aAAa,oJAAoJ,GAAG,mCAAmC,gLAAgL,iBAAiB,oBAAoB,aAAa,eAAe,gBAAgB,mBAAmB,uHAAuH,uBAAuB,mBAAmB,GAAG,8BAA8B,qFAAqF,kBAAkB,oBAAoB,yBAAyB,0BAA0B,iBAAiB,GAAG,qCAAqC,qBAAqB,GAAG,4BAA4B,oHAAoH,yBAAyB,GAAG,mBAAmB,yBAAyB,cAAc,aAAa,GAAG,+BAA+B,yBAAyB,GAAG,wCAAwC,4BAA4B,yBAAyB,yBAAyB,oBAAoB,GAAG,gCAAgC,iHAAiH,GAAG,sCAAsC,mBAAmB,GAAG;;AAElgH;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,WAAW,EAAE;AACrD,wCAAwC,WAAW,EAAE;;AAErD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,sCAAsC;AACtC,GAAG;AACH;AACA,8DAA8D;AAC9D;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;;;;;;;ACvFA;;AAEA;;AAEA;AACA;;;;AAIA,eAAe;;AAEf;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,GAAG;;AAEH;;AAEA;AACA,EAAE;;AAEF,gCAAgC,UAAU,EAAE;AAC5C,C;;;;;;AC5CA;AACA;;;AAGA;AACA,+BAAgC,gDAAgD,qBAAqB,kBAAkB,qCAAqC,gCAAgC,mBAAmB,gBAAgB,GAAG,aAAa,gCAAgC,uCAAuC,kBAAkB,0BAA0B,yCAAyC,wBAAwB,yBAAyB,qBAAqB,kBAAkB,GAAG,UAAU,kBAAkB,sBAAsB,iBAAiB,GAAG,yBAAyB,qBAAqB,kBAAkB,qBAAqB,mBAAmB,GAAG,mCAAmC,gCAAgC,qBAAqB,mBAAmB,GAAG,0DAA0D,gCAAgC,GAAG,gBAAgB,kBAAkB,wCAAwC,0BAA0B,yCAAyC,wBAAwB,kBAAkB,qBAAqB,GAAG,aAAa,4BAA4B,gCAAgC,wCAAwC,yBAAyB,0BAA0B,uBAAuB,GAAG,aAAa,4BAA4B,gCAAgC,wCAAwC,yBAAyB,0BAA0B,0BAA0B,0CAA0C,wBAAwB,uBAAuB,mBAAmB,GAAG,gBAAgB,4BAA4B,6BAA6B,yCAAyC,yBAAyB,0BAA0B,0BAA0B,yCAAyC,wBAAwB,uBAAuB,mBAAmB,GAAG,iBAAiB,6BAA6B,4BAA4B,GAAG,gBAAgB,4BAA4B,gCAAgC,yCAAyC,yBAAyB,0BAA0B,0BAA0B,yCAAyC,wBAAwB,uBAAuB,mBAAmB,GAAG,iBAAiB,gCAAgC,4BAA4B,GAAG,cAAc,4BAA4B,gCAAgC,uCAAuC,yBAAyB,0BAA0B,0BAA0B,yCAAyC,wBAAwB,uBAAuB,mBAAmB,GAAG,eAAe,gCAAgC,4BAA4B,GAAG;;AAEhpF;;;;;;;ACPA,eAAe,6HAAyK,iBAAiB,mBAAmB,cAAc,4BAA4B,YAAY,UAAU,iBAAiB,gEAAgE,SAAS,+BAA+B,kBAAkB,aAAa,gBAAgB,4EAA4E,4HAA4H,2KAA2K,8EAA8E,gBAAgB,aAAa,oGAAoG,kDAAkD,cAAc,oBAAoB,iEAAiE,iBAAiB,aAAa,aAAa,gBAAgB,QAAQ,4YAA4Y,yDAAyD,yGAAyG,0CAA0C,YAAY,oBAAoB,YAAY,IAAI,eAAe,sGAAsG,IAAI,GAAG,IAAI,SAAS,IAAI,uPAAuP,sBAAsB,0CAA0C,kEAAkE,4BAA4B,4BAA4B,MAAM,IAAI,kBAAkB,sFAAsF,0EAA0E,yBAAyB,iBAAiB,aAAa,aAAa,slBAAslB,cAAc,qBAAqB,iGAAiG,2BAA2B,iCAAiC,YAAY,uCAAuC,gCAAgC,mBAAmB,aAAa,0GAA0G,cAAc,IAAI,wDAAwD,WAAW,aAAa,MAAM,IAAI,kBAAkB,UAAU,8DAA8D,aAAa,IAAI,2BAA2B,WAAW,8RAA8R,IAAI,yBAAyB,SAAS,gDAAgD,eAAe,eAAe,eAAe,aAAa,mDAAmD,aAAa,qDAAqD,cAAc,yCAAyC,+DAA+D,IAAI,cAAc,SAAS,IAAI,wBAAwB,SAAS,0BAA0B,cAAc,2CAA2C,mEAAmE,IAAI,YAAY,SAAS,IAAI,sBAAsB,SAAS,wBAAwB,aAAa,uDAAuD,aAAa,OAAO,WAAW,KAAK,mBAAmB,EAAE,EAAE,aAAa,MAAM,eAAe,gBAAgB,kBAAkB,gBAAgB,wBAAwB,cAAc,uBAAuB,YAAY,IAAI,6CAA6C,SAAS,IAAI,IAAI,iDAAiD,SAAS,KAAK,GAAG,qBAAqB,uBAAuB,oCAAoC,kCAAkC,mBAAmB,wBAAwB,yCAAyC,4BAA4B,gCAAgC,wCAAwC,qCAAqC,gKAAgK,SAAS,uBAAuB,oDAAoD,kBAAkB,UAAU,qBAAqB,kDAAkD,oBAAoB,UAAU,iBAAiB,cAAc,UAAU,2CAA2C,6CAA6C,cAAc,aAAa,cAAc,+BAA+B,+BAA+B,0CAA0C,WAAW,sBAAsB,2DAA2D,QAAQ,gDAAgD,qBAAqB,IAAI,sBAAsB,yBAAyB,WAAW,gCAAgC,SAAS,yBAAyB,8CAA8C,cAAc,0HAA0H,cAAc,gCAAgC,mEAAmE,IAAI,qIAAqI,aAAa,aAAa,cAAc,QAAQ,yBAAyB,IAAI,mCAAmC,yBAAyB,IAAI,mCAAmC,SAAS,cAAc,+CAA+C,uIAAuI,MAAM,eAAe,cAAc,gCAAgC,sIAAsI,MAAM,oDAAoD,UAAU,6DAA6D,wCAAwC,6DAA6D,mEAAmE,mEAAmE,8EAA8E,kBAAkB,cAAc,kHAAkH,cAAc,8EAA8E,kBAAkB,wEAAwE,0CAA0C,wBAAwB,QAAQ,eAAe,wCAAwC,0DAA0D,4FAA4F,iBAAiB,cAAc,cAAc,gBAAgB,6MAA6M,gBAAgB,cAAc,uDAAuD,kBAAkB,mBAAmB,aAAa,wBAAwB,cAAc,WAAW,0BAA0B,oCAAoC,mDAAmD,aAAa,kDAAkD,EAAE,0EAA0E,wBAAwB,oCAAoC,IAAI,EAAE,kBAAkB,iBAAiB,+BAA+B,eAAe,oBAAoB,yBAAyB,YAAY,IAAI,EAAE,kBAAkB,0BAA0B,IAAI,MAAM,wCAAwC,kBAAkB,uEAAuE,gBAAgB,IAAI,qBAAqB,SAAS,WAAW,SAAS,cAAc,iCAAiC,aAAa,OAAO,kCAAkC,6DAA6D,gPAAgP,uLAAuL,KAAK,WAAW,QAAQ,4CAA4C,MAAM,sMAAsM,KAAK,wDAAwD,2FAA2F,4FAA4F,gCAAgC,gEAAgE,wCAAwC,0EAA0E,uDAAuD,uCAAuC,YAAY,+CAA+C,qCAAqC,iBAAiB,cAAc,iBAAiB,cAAc,6CAA6C,SAAS,sEAAsE,0CAA0C,kEAAkE,gCAAgC,aAAa,sCAAsC,gCAAgC,yHAAyH,sCAAsC,8CAA8C,MAAM,6BAA6B,kBAAkB,iEAAiE,cAAc,WAAW,+BAA+B,cAAc,MAAM,YAAY,8BAA8B,oCAAoC,0DAA0D,MAAM,aAAa,uBAAuB,IAAI,uBAAuB,YAAY,mCAAmC,0CAA0C,4BAA4B,sCAAsC,kCAAkC,iBAAiB,aAAa,cAAc,mCAAmC,SAAS,uBAAuB,IAAI,wBAAwB,SAAS,yLAAyL,uFAAuF,8EAA8E,SAAS,0LAA0L,YAAY,oBAAoB,YAAY,IAAI,eAAe,QAAQ,UAAU,qCAAqC,mCAAmC,iBAAiB,aAAa,gBAAgB,eAAe,SAAS,OAAO,8BAA8B,mBAAmB,SAAS,kCAAkC,WAAW,mBAAmB,SAAS,6CAA6C,SAAS,8BAA8B,SAAS,SAAS,gBAAgB,eAAe,qCAAqC,oBAAoB,WAAW,mBAAmB,yDAAyD,SAAS,kMAAkM,gCAAgC,sBAAsB,6CAA6C,oBAAoB,mCAAmC,iDAAiD,6BAA6B,kBAAkB,eAAe,+CAA+C,IAAI,qBAAqB,oBAAoB,2CAA2C,wBAAwB,yBAAyB,WAAW,gBAAgB,6DAA6D,YAAY,cAAc,oBAAoB,YAAY,IAAI,eAAe,aAAa,cAAc,+EAA+E,YAAY,oBAAoB,YAAY,IAAI,iBAAiB,aAAa,gBAAgB,0CAA0C,8EAA8E,yCAAyC,wSAAwS,+FAA+F,8JAA8J,kBAAkB,wHAAwH,8EAA8E,gBAAgB,aAAa,oGAAoG,oIAAoI,2CAA2C,gCAAgC,4FAA4F,wCAAwC,iFAAiF,oCAAoC,wCAAwC,qDAAqD,yEAAyE,8CAA8C,uFAAuF,2CAA2C,sHAAsH,6CAA6C,6HAA6H,8CAA8C,4HAA4H,iCAAiC,6DAA6D,6CAA6C,oFAAoF,oDAAoD,mFAAmF,2DAA2D,yBAAyB,gDAAgD,4BAA4B,kBAAkB,4BAA4B,wFAAwF,oCAAoC,cAAc,8BAA8B,EAAE,uBAAuB,oBAAoB,6CAA6C,4BAA4B,yHAAyH,IAAI,gBAAgB,mBAAmB,iBAAiB,EAAE,gDAAgD,+BAA+B,kEAAkE,kBAAkB,mSAAmS,+BAA+B,4CAA4C,+BAA+B,4CAA4C,gCAAgC,oBAAoB,mCAAmC,sBAAsB,iCAAiC,qCAAqC,kCAAkC,aAAa,yCAAyC,mBAAmB,OAAO,iCAAiC,WAAW,+CAA+C,qBAAqB,wBAAwB,SAAS,iCAAiC,2BAA2B,qEAAqE,gCAAgC,yBAAyB,WAAW,6HAA6H,YAAY,WAAW,mCAAmC,qCAAqC,GAAG,2CAA2C,+CAA+C,gCAAgC,gBAAgB,gCAAgC,aAAa,+BAA+B,IAAI,KAAK,wBAAwB,YAAY,gFAAgF,qDAAqD,sLAAsL,iCAAiC,yJAAyJ,kCAAkC,qDAAqD,WAAW,sJAAsJ,KAAK,8BAA8B,oEAAoE,4BAA4B,+KAA+K,8IAA8I,GAAG,IAAI,gBAAgB,mBAAmB,iBAAiB,GAAG,oCAAoC,4BAA4B,8FAA8F,iBAAiB,uCAAuC,iBAAiB,aAAa,gBAAgB,0CAA0C,OAAO,ogBAAogB,icAAic,qRAAqR,yDAAyD,uWAAuW,4BAA4B,4SAA4S,cAAc,SAAS,gDAAgD,SAAS,oFAAoF,mLAAmL,+BAA+B,oBAAoB,+BAA+B,mCAAmC,yBAAyB,gBAAgB,+7BAA+7B,EAAE,SAAS,6BAA6B,MAAM,0GAA0G,KAAK,+BAA+B,WAAW,kCAAkC,0CAA0C,IAAI,qBAAqB,0BAA0B,IAAI,0BAA0B,SAAS,gDAAgD,8BAA8B,sCAAsC,iCAAiC,WAAW,uJAAuJ,YAAY,0BAA0B,cAAc,yBAAyB,aAAa,wBAAwB,6BAA6B,EAAE,+BAA+B,aAAa,yBAAyB,uDAAuD,OAAO,gDAAgD,yBAAyB,+BAA+B,4CAA4C,mFAAmF,+HAA+H,+GAA+G,eAAe,wDAAwD,EAAE,KAAK,mCAAmC,+BAA+B,6CAA6C,GAAG,aAAa,+BAA+B,cAAc,mCAAmC,0GAA0G,aAAa,sBAAsB,aAAa,mBAAmB,cAAc,wEAAwE,aAAa,+IAA+I,8BAA8B,8BAA8B,QAAQ,cAAc,uIAAuI,+BAA+B,kMAAkM,6BAA6B,mCAAmC,IAAI,kCAAkC,kCAAkC,0MAA0M,gDAAgD,MAAM,4CAA4C,MAAM,4CAA4C,8BAA8B,MAAM,mEAAmE,sEAAsE,qCAAqC,uUAAuU,qCAAqC,oCAAoC,WAAW,yCAAyC,mDAAmD,kCAAkC,gCAAgC,WAAW,4EAA4E,0GAA0G,iBAAiB,6BAA6B,WAAW,kCAAkC,eAAe,EAAE,gCAAgC,+HAA+H,8BAA8B,gQAAgQ,oDAAoD,6CAA6C,0CAA0C,oIAAoI,OAAO,4BAA4B,OAAO,yBAAyB,2FAA2F,8BAA8B,aAAa,+FAA+F,aAAa,qEAAqE,aAAa,6CAA6C,0DAA0D,0BAA0B,WAAW,qDAAqD,uBAAuB,yBAAyB,YAAY,iCAAiC,yGAAyG,mCAAmC,uFAAuF,sCAAsC,WAAW,gRAAgR,wCAAwC,4BAA4B,IAAI,2CAA2C,UAAU,oBAAoB,YAAY,IAAI,iBAAiB,aAAa,cAAc,+BAA+B,eAAe,mDAAmD,4EAA4E,gFAAgF,wCAAwC,gBAAgB,oCAAoC,0BAA0B,oBAAoB,YAAY,IAAI,iBAAiB,aAAa,YAAY,sBAAsB,2CAA2C,IAAI,yEAAyE,UAAU,IAAI,uEAAuE,UAAU,UAAU;AACnu+B,CAAC,YAAY,oBAAoB,YAAY,IAAI,eAAe,IAAI,qFAAqF,SAAS,cAAc,iBAAiB,aAAa,cAAc,cAAc,oGAAoG,mDAAmD,2FAA2F,cAAc,seAAse,aAAa,4EAA4E,0EAA0E,qGAAqG,cAAc,iXAAiX,mCAAmC,qDAAqD,gCAAgC,SAAS,2CAA2C,8BAA8B,iBAAiB,+BAA+B,cAAc,4BAA4B,wBAAwB,YAAY,2BAA2B,8BAA8B,iBAAiB,8CAA8C,OAAO,6EAA6E,6JAA6J,+BAA+B,IAAI,kFAAkF,IAAI,sBAAsB,qDAAqD,gHAAgH,UAAU,4BAA4B,0HAA0H,gBAAgB,UAAU,IAAI,mCAAmC,UAAU,sIAAsI,WAAW,sBAAsB,0BAA0B,kCAAkC,qBAAqB,MAAM,IAAI,sCAAsC,UAAU,+DAA+D,oFAAoF,oBAAoB,KAAK,8CAA8C,SAAS,kCAAkC,aAAa,IAAI,uEAAuE,kCAAkC,oCAAoC,gCAAgC,qCAAqC,iCAAiC,sCAAsC,iCAAiC,kDAAkD,wFAAwF,iBAAiB,UAAU,yDAAyD,+BAA+B,MAAM,IAAI,MAAM,IAAI,6CAA6C,UAAU,gGAAgG,SAAS,gBAAgB,wBAAwB,+BAA+B,sEAAsE,8BAA8B,eAAe,gCAAgC,qHAAqH,oBAAoB,YAAY,IAAI,iBAAiB,cAAc,uBAAuB,+CAA+C,+EAA+E,YAAY,iBAAiB,qBAAqB,WAAW,EAAE,4BAA4B,GAAG,gEAAgE,YAAY,+BAA+B,aAAa,sCAAsC,WAAW,2DAA2D,QAAQ,wGAAwG,yCAAyC,qGAAqG,yCAAyC,GAAG,SAAS,6BAA6B,6DAA6D,gCAAgC,WAAW,2BAA2B,sBAAsB,iGAAiG,mNAAmN,gCAAgC,aAAa,oCAAoC,aAAa,GAAG,WAAW,6HAA6H,+BAA+B,WAAW,iBAAiB,iBAAiB,+BAA+B,kDAAkD,eAAe,EAAE,4BAA4B,oBAAoB,mCAAmC,2OAA2O,sCAAsC,sEAAsE,iBAAiB,cAAc,ygBAAygB,mBAAmB,6DAA6D,mBAAmB,yEAAyE,6BAA6B,uGAAuG,8BAA8B,kGAAkG,8BAA8B,kEAAkE,cAAc,+BAA+B,0DAA0D,gCAAgC,+CAA+C,iBAAiB,kCAAkC,sBAAsB,gCAAgC,6CAA6C,iBAAiB,aAAa,gBAAgB,wCAAwC,YAAY,kBAAkB,uCAAuC,kEAAkE,eAAe,YAAY,WAAW,gBAAgB,mBAAmB,kBAAkB,uCAAuC,qBAAqB,2BAA2B,yCAAyC,6BAA6B,kBAAkB,uCAAuC,qBAAqB,wBAAwB,eAAe,+BAA+B,YAAY,cAAc,IAAI,cAAc,UAAU,EAAE,SAAS,SAAS,SAAS,kBAAkB,gEAAgE,kBAAkB,cAAc,EAAE,KAAK,WAAW,gBAAgB,6CAA6C,4BAA4B,yJAAyJ,aAAa,iBAAiB,wDAAwD,WAAW,iCAAiC,SAAS,iCAAiC,oEAAoE,mDAAmD,2DAA2D,0CAA0C,6BAA6B,gBAAgB,uDAAuD,UAAU,0BAA0B,oCAAoC,4BAA4B,gCAAgC,qBAAqB,2BAA2B,6BAA6B,OAAO,yBAAyB,MAAM,IAAI,yDAAyD,SAAS,2DAA2D,WAAW,cAAc,oCAAoC,yBAAyB,gCAAgC,uBAAuB,uBAAuB,gEAAgE,+BAA+B,kBAAkB,sCAAsC,8BAA8B,EAAE,UAAU,GAAG,wCAAwC,sCAAsC,kBAAkB,oCAAoC,qBAAqB,aAAa,aAAa,6BAA6B,4BAA4B,qCAAqC,eAAe,iCAAiC,cAAc,sBAAsB,gBAAgB,uCAAuC,aAAa,EAAE,mCAAmC,WAAW,iHAAiH,qBAAqB,UAAU,iCAAiC,4DAA4D,mCAAmC,MAAM,0BAA0B,gCAAgC,IAAI,KAAK,kBAAkB,YAAY,4CAA4C,iDAAiD,aAAa,6EAA6E,iBAAiB,iBAAiB,UAAU,UAAU,6BAA6B,4CAA4C,gBAAgB,mCAAmC,iBAAiB,EAAE,yCAAyC,6BAA6B,MAAM,4EAA4E,4BAA4B,6BAA6B,6BAA6B,MAAM,uCAAuC,WAAW,yBAAyB,WAAW,oBAAoB,sCAAsC,WAAW,0BAA0B,WAAW,gCAAgC,WAAW,gBAAgB,cAAc,wBAAwB,qCAAqC,gBAAgB,mCAAmC,wBAAwB,8BAA8B,uCAAuC,WAAW,yBAAyB,kBAAkB,uGAAuG,WAAW,wBAAwB,sBAAsB,mCAAmC,WAAW,EAAE,oBAAoB,mBAAmB,EAAE,yCAAyC,mCAAmC,iBAAiB,eAAe,EAAE,gDAAgD,WAAW,KAAK,gCAAgC,QAAQ,gCAAgC,eAAe,SAAS,oDAAoD,SAAS,wBAAwB,KAAK,YAAY,WAAW,iCAAiC,mBAAmB,eAAe,wBAAwB,8BAA8B,GAAG,oBAAoB,YAAY,IAAI,eAAe,mCAAmC,2CAA2C,sCAAsC,UAAU,eAAe,0BAA0B,mBAAmB,6CAA6C,kFAAkF,0DAA0D,IAAI,kBAAkB,iBAAiB,eAAe,kBAAkB,gBAAgB,6DAA6D,sDAAsD,SAAS,oCAAoC,cAAc,YAAY,iBAAiB,MAAM,eAAe,aAAa,cAAc,gCAAgC,IAAI,oJAAoJ,SAAS,cAAc,+BAA+B,MAAM,2EAA2E,SAAS,gBAAgB,uBAAuB,4FAA4F,SAAS,SAAS,gBAAgB,sBAAsB,gBAAgB,iCAAiC,SAAS,sLAAsL,gBAAgB,QAAQ,sDAAsD,MAAM,kBAAkB,SAAS,aAAa,0CAA0C,eAAe,gCAAgC,yCAAyC,cAAc,cAAc,yCAAyC,iBAAiB,sCAAsC,iBAAiB,uCAAuC,yCAAyC,iBAAiB,iEAAiE,yCAAyC,4FAA4F,sCAAsC,gBAAgB,QAAQ,oBAAoB,sBAAsB,eAAe,cAAc,WAAW,YAAY,6FAA6F,kCAAkC,mCAAmC,mCAAmC,aAAa,SAAS,4CAA4C,OAAO,6BAA6B,YAAY,IAAI,eAAe,sBAAsB,mDAAmD,kDAAkD,eAAe,YAAY,aAAa,uGAAuG,WAAW,yBAAyB,qBAAqB,0CAA0C,QAAQ,IAAI,8FAA8F,6FAA6F,sBAAsB,4CAA4C,oDAAoD,6CAA6C,QAAQ,IAAI,2JAA2J,UAAU,GAAG,eAAe,aAAa,cAAc,YAAY,WAAW,KAAK,WAAW,oCAAoC,eAAe,gCAAgC,mCAAmC,8DAA8D,SAAS,gBAAgB,QAAQ,YAAY,KAAK,YAAY,WAAW,mBAAmB,4CAA4C,gBAAgB,4BAA4B,EAAE,yFAAyF,IAAI,uBAAuB,kBAAkB,SAAS,UAAU,mBAAmB,IAAI,wCAAwC,kBAAkB,SAAS,UAAU,gDAAgD,qBAAqB,+BAA+B,GAAG,oBAAoB,YAAY,IAAI,eAAe,qBAAqB,SAAS,+GAA+G,SAAS,sBAAsB,YAAY,+BAA+B,IAAI,KAAK,sBAAsB,qDAAqD,UAAU,eAAe,wBAAwB,mBAAmB,qEAAqE,eAAe,aAAa,cAAc,SAAS,gCAAgC,WAAW,SAAS,cAAc,QAAQ,QAAQ,WAAW,yBAAyB,SAAS,aAAa,mBAAmB,oCAAoC,kGAAkG,SAAS,IAAI,cAAc,kCAAkC,iBAAiB,aAAa,cAAc,cAAc,wCAAwC,6DAA6D,WAAW,mBAAmB,YAAY,uGAAuG,+BAA+B,KAAK,oBAAoB,YAAY,uBAAuB,oEAAoE,wMAAwM,+BAA+B,8CAA8C,kIAAkI,iCAAiC,iDAAiD,6FAA6F,wEAAwE,yBAAyB,uCAAuC,0DAA0D,MAAM,mCAAmC,aAAa,QAAQ,aAAa,gBAAgB,6BAA6B,SAAS,kDAAkD,IAAI,0DAA0D,4BAA4B,SAAS,0EAA0E,iDAAiD,WAAW,eAAe,qHAAqH,qPAAqP,yFAAyF,IAAI,mBAAmB,UAAU,kEAAkE,sCAAsC,uBAAuB,oBAAoB,YAAY,IAAI,iBAAiB,aAAa,cAAc,uBAAuB,8LAA8L,iHAAiH,kCAAkC,QAAQ,UAAU,QAAQ,iJAAiJ,iBAAiB,qCAAqC,2DAA2D,oQAAoQ,IAAI,sEAAsE,SAAS,4BAA4B,oNAAoN,0CAA0C,WAAW,0BAA0B,WAAW,4BAA4B,YAAY,+BAA+B,iBAAiB,6BAA6B,gCAAgC,+BAA+B,aAAa,sCAAsC,8BAA8B,IAAI,WAAW,iBAAiB,2BAA2B,IAAI,iBAAiB,8CAA8C,6BAA6B,SAAS,mEAAmE,yDAAyD,kDAAkD,IAAI,oDAAoD,SAAS,2CAA2C,SAAS,EAAE,OAAO,gCAAgC,+BAA+B,gCAAgC,6CAA6C,4BAA4B,oBAAoB,+BAA+B,2NAA2N,sCAAsC,qEAAqE,8BAA8B,+DAA+D,oBAAoB,YAAY,IAAI,gBAAgB,eAAe,iBAAiB,wBAAwB,yBAAyB,YAAY,WAAW,yBAAyB,UAAU,iBAAiB,aAAa,kBAAkB,2DAA2D,mJAAmJ,8EAA8E,gBAAgB,aAAa,oGAAoG,iFAAiF,cAAc,OAAO,gLAAgL,oBAAoB,gDAAgD,eAAe,cAAc,0GAA0G,iDAAiD,qIAAqI,6BAA6B,mBAAmB,yDAAyD,8BAA8B,2DAA2D,sBAAsB,qBAAqB,mBAAmB,oQAAoQ,gCAAgC,iCAAiC,+BAA+B,qEAAqE,+DAA+D,yDAAyD,uBAAuB,EAAE,kBAAkB,eAAe,EAAE,iCAAiC,kGAAkG,kCAAkC,mCAAmC,gCAAgC,MAAM,6BAA6B,MAAM,oCAAoC,MAAM,yBAAyB,MAAM,gCAAgC,MAAM,sCAAsC,MAAM,wCAAwC,iCAAiC,iBAAiB,6JAA6J,6BAA6B,gBAAgB,kBAAkB,OAAO,KAAK,mBAAmB,gCAAgC,uBAAuB,IAAI,+BAA+B,sBAAsB,gIAAgI,kCAAkC,gFAAgF,qCAAqC,MAAM,QAAQ,4BAA4B,wCAAwC,8BAA8B,yBAAyB,oCAAoC,mBAAmB,qCAAqC,yFAAyF,gCAAgC,cAAc,YAAY,mBAAmB,2BAA2B,eAAe,sBAAsB,qDAAqD,8EAA8E,kBAAkB,4EAA4E,kCAAkC,gCAAgC,6BAA6B,eAAe,gBAAgB,SAAS,OAAO,eAAe,WAAW,gBAAgB,SAAS,YAAY,eAAe,aAAa,kBAAkB,kBAAkB,mBAAmB,wBAAwB,YAAY,eAAe,eAAe,wBAAwB,mGAAmG,0BAA0B,kBAAkB,gDAAgD,eAAe,cAAc,OAAO,+HAA+H,4CAA4C,oDAAoD,gBAAgB,kDAAkD,kCAAkC,8BAA8B,8BAA8B,gBAAgB,gCAAgC,UAAU,gCAAgC,WAAW,mCAAmC,eAAe,GAAG;AACp+3B,qC;;;;;;YCFA,yBAAa,SAA2D,mBAAmB,gDAAgD,aAAa,KAAK,MAAM,gCAAgC,SAAS,qCAAqC,SAAS,mCAAmC,OAAO,KAAK,OAAO,kBAAkB,aAAa,0BAA0B,0BAA0B,gBAAgB,UAAU,UAAU,0CAA0C,8BAAwB,oBAAoB,8CAA8C,kCAAkC,YAAY,YAAY,mCAAmC,iBAAiB,gBAAgB,sBAAsB,oBAAoB,0CAA0C,YAAY,WAAW,YAAY,SAAS,GAAG;AAC5yB;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;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,+BAA+B,wBAAwB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,aAAa;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,aAAa;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,cAAc;AAChD,gCAAgC,eAAe;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,yBAAyB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;AAIA,CAAC,EAAE,0BAA0B;AAC7B;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;AAIA,CAAC,EAAE,gCAAgC;AACnC;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,mBAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,GAAG,qBAAqB;;;;AAIzB,CAAC,GAAG;AACJ;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;;;AAIA,CAAC,GAAG;AACJ;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;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,oCAAoC,8CAA8C,EAAE;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;AAIA,CAAC,GAAG;AACJ;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,qCAAqC;AACtC;;;;AAIA,CAAC,GAAG;AACJ;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;AAIA,CAAC,GAAG;AACJ;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,kBAAkB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,yBAAyB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,IAAI;AACxE;AACA;AACA,qEAAqE,GAAG;AACxE;AACA;AACA;AACA;AACA;AACA,qEAAqE,MAAM;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mBAAmB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mBAAmB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;;;AAIA,CAAC,EAAE,wFAAwF;AAC3F;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,IAAI;AAC/B,sBAAsB,IAAI,KAAK,EAAE,IAAI,IAAI;AACzC;AACA,wBAAwB,IAAI;AAC5B;AACA;AACA,mFAAmF;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,gBAAgB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,6BAA6B,EAAE;AACrF;AACA;AACA;AACA,+CAA+C,8BAA8B;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,QAAQ;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,+BAA+B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,+BAA+B;AACtD;AACA;AACA;AACA;AACA;AACA,gCAAgC,YAAY;AAC5C;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,SAAS;AACT,2DAA2D,iCAAiC;AAC5F;AACA,SAAS;AACT,6DAA6D,iCAAiC;AAC9F;AACA;AACA;AACA,SAAS;AACT,2DAA2D,iCAAiC;AAC5F;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,CAAC;AACD;;;;AAIA,CAAC,EAAE,8DAA8D;AACjE;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA,2EAA2E,uBAAuB;AAClG,0EAA0E,2BAA2B;AACrG;AACA;AACA,0EAA0E,iCAAiC;AAC3G,0EAA0E,4BAA4B;AACtG,0EAA0E,sBAAsB;AAChG,0EAA0E,2BAA2B;AACrG,0EAA0E,0BAA0B;AACpG,2EAA2E,6CAA6C;AACxH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,4CAA4C;AAC/G;AACA,+CAA+C,8BAA8B;AAC7E,+CAA+C,8BAA8B;AAC7E,+CAA+C,8BAA8B;AAC7E,+CAA+C,gDAAgD;AAC/F,+CAA+C,oDAAoD;AACnG,+CAA+C,oDAAoD;AACnG,+CAA+C,oDAAoD;AACnG,+CAA+C,oDAAoD;AACnG,+CAA+C,oDAAoD;AACnG,+CAA+C,oDAAoD;AACnG,+CAA+C,oDAAoD;AACnG,+CAA+C,oDAAoD;AACnG,+CAA+C,oDAAoD;AACnG,+CAA+C,+BAA+B;AAC9E,+CAA+C,+BAA+B;AAC9E,+CAA+C,+BAA+B;AAC9E,gDAAgD,gCAAgC;AAChF,uBAAuB,wBAAwB,+BAA+B;AAC9E,oEAAoE,4CAA4C;AAChH;AACA,2DAA2D,oCAAoC;AAC/F,2DAA2D,iCAAiC;AAC5F,2DAA2D,mCAAmC;AAC9F,2DAA2D,sCAAsC;AACjG,2DAA2D,uCAAuC;AAClG,2DAA2D,uCAAuC;AAClG,2DAA2D,4CAA4C;AACvG,2DAA2D,2CAA2C;AACtG,2DAA2D,uCAAuC;AAClG,2DAA2D,yCAAyC;AACpG,2DAA2D,uCAAuC;AAClG,2DAA2D,oCAAoC;AAC/F,2DAA2D,oCAAoC;AAC/F,2DAA2D,oCAAoC;AAC/F,2DAA2D,oCAAoC;AAC/F,2DAA2D,iCAAiC;AAC5F;AACA;AACA;AACA;AACA;AACA,2DAA2D,mCAAmC;AAC9F,2DAA2D,0CAA0C;AACrG,2DAA2D,wCAAwC;AACnG,2DAA2D,0CAA0C;AACrG,2DAA2D,iDAAiD;AAC5G,2DAA2D,6CAA6C;AACxG,2DAA2D,wCAAwC;AACnG,2DAA2D,0CAA0C;AACrG,2DAA2D,mCAAmC;AAC9F,2DAA2D,iCAAiC;AAC5F,2DAA2D,gCAAgC;AAC3F,2DAA2D,kCAAkC;AAC7F,2DAA2D,uCAAuC;AAClG,2DAA2D,qCAAqC;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,wCAAwC;AAC3F,mDAAmD,mCAAmC;AACtF,mDAAmD,sCAAsC;AACzF,iGAAiG,4CAA4C;AAC7I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,gEAAgE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,oBAAoB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2KAA2K;AAC3K;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;;;AAIA,CAAC,EAAE,qCAAqC;AACxC;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sCAAsC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,kCAAkC;AACtF,kDAAkD,gCAAgC;AAClF,yDAAyD,8BAA8B,EAAE;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,wCAAwC,EAAE;AACpE;AACA;AACA,KAAK;AACL;AACA,0BAA0B,sCAAsC,EAAE;AAClE;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,iBAAiB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,yBAAyB,EAAE;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,6EAA6E;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,4BAA4B,EAAE;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,gBAAgB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,CAAC;AACD;;;;AAIA,CAAC,EAAE,oGAAoG;AACvG;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;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,CAAC;AACD;;;;AAIA,CAAC,GAAG;AACJ;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;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;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,oDAAoD,+CAA+C;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,2DAA2D,mDAAmD,EAAE;AAChH,6DAA6D,qDAAqD,EAAE;AACpH,yDAAyD,iDAAiD,EAAE;AAC5G,wCAAwC,4DAA4D,EAAE;AACtG,4CAA4C,uDAAuD,EAAE;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,2CAA2C,EAAE;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,iCAAiC,EAAE;AAChG,4DAA4D,gCAAgC,EAAE;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,sCAAsC,EAAE;AACnF,uCAAuC,+DAA+D,EAAE;AACxG,qCAAqC,gCAAgC,EAAE;AACvE,sCAAsC,iCAAiC,EAAE;AACzE,uDAAuD,+DAA+D,EAAE;AACxH,4DAA4D,8DAA8D,EAAE;AAC5H,0DAA0D,wCAAwC,EAAE;AACpG;AACA,iEAAiE,8CAA8C,EAAE;AACjH,6DAA6D,gEAAgE,EAAE;AAC/H;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,qEAAqE,yCAAyC,EAAE;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,wBAAwB;AACxB;AACA,wBAAwB;AACxB;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,cAAc;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,2BAA2B,EAAE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE,sEAAsE;AACtE,4HAA4H;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE,sEAAsE;AACtE,4HAA4H;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE,sEAAsE;AACtE,oEAAoE;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE,sEAAsE;AACtE,oEAAoE;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,mBAAmB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,eAAe;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,eAAe;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,UAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,KAAK;AACL;AACA;AACA;AACA,6BAA6B,iBAAiB;AAC9C;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,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;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,UAAU,oBAAoB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA,CAAC,EAAE,0ZAA0Z;AAC7Z;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA,CAAC,wFAAwF;AACzF;;;;AAIA,CAAC,GAAG;AACJ;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,+BAA+B,EAAE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;;;AAIA,CAAC,GAAG;AACJ;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;;;AAIA,CAAC,GAAG;AACJ;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,8BAA8B,EAAE;AAC3G,gDAAgD,8BAA8B;AAC9E,4CAA4C,0BAA0B;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,wBAAwB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,4BAA4B,EAAE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,wBAAwB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;AAIA,CAAC,GAAG;AACJ;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE;AACtE,4DAA4D;AAC5D,6DAA6D;AAC7D,kEAAkE;AAClE,qFAAqF;AACrF,oFAAoF;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,kCAAkC,EAAE;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,WAAW;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;;;AAIA,CAAC,EAAE,+BAA+B;AAClC;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,mDAAmD,eAAe;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iBAAiB;AACjD;AACA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;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,gCAAgC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;AAID,CAAC,EAAE,sBAAsB;AACzB;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;;;AAIA,CAAC,GAAG;AACJ;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,0BAA0B,0DAA0D,EAAE;AACtF;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,aAAa;AACb;AACA;AACA;AACA;AACA,qCAAqC,8BAA8B;AACnE;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,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;AAID,CAAC,EAAE,qCAAqC;AACxC;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA,uBAAuB,WAAW;AAClC;AACA;AACA;AACA,8CAA8C,YAAY;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C,2BAA2B,0BAA0B;AACrD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;AAIA,CAAC,GAAG;AACJ;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,8BAA8B,EAAE;AAC/G,+EAA+E,8BAA8B,EAAE;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;AAIA,CAAC,EAAE,qCAAqC;AACxC;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,iDAAiD,uEAAuE,EAAE;AAC1H;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,kCAAkC,EAAE;AACrF;AACA;AACA;AACA,iDAAiD,mCAAmC,EAAE;AACtF;AACA;AACA;AACA,iDAAiD,0DAA0D,EAAE;AAC7G;AACA;AACA;AACA,iDAAiD,wCAAwC,EAAE;AAC3F;AACA;AACA;AACA,iDAAiD,4CAA4C,EAAE;AAC/F;AACA;AACA;AACA,iDAAiD,iCAAiC,EAAE;AACpF;AACA;AACA,qCAAqC,yBAAyB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mCAAmC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,qDAAqD,EAAE;AACxG,wCAAwC,yBAAyB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;AAIA,CAAC,EAAE,2IAA2I;AAC9I;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;;;AAIA,CAAC,EAAE,uBAAuB;AAC1B;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,aAAa;AAC3C;AACA;AACA;AACA,2BAA2B,mBAAmB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;;;AAIA,CAAC,EAAE,mEAAmE;AACtE;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,8CAA8C;AAC/C;;;;AAIA,CAAC,GAAG;AACJ;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA,CAAC,EAAE,eAAe;AAClB;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;AAIA,CAAC,EAAE,oBAAoB;AACvB;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,2BAA2B,yCAAyC;AACpE;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,0CAA0C,eAAe;AACzD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA,SAAS;AACT;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,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA,+BAA+B,gCAAgC;AAC/D;AACA;AACA;AACA;AACA;AACA,0CAA0C,YAAY;AACtD;AACA;AACA,2BAA2B,kBAAkB;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;AACA;AACA;AACA,mCAAmC,QAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,WAAW;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;AAIA,CAAC,EAAE,oBAAoB;AACvB;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;;;;AAIA,CAAC,GAAG;AACJ;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,CAAC;AACD;;;;AAIA,CAAC,GAAG;AACJ;AACA,8CAA8C,cAAc;AAC5D,oCAAoC;;;;AAIpC,CAAC,GAAG;AACJ;AACA,8CAA8C,cAAc;AAC5D;AACA;;;;AAIA,CAAC,EAAE,gBAAgB,EAAE,GAAG;AACxB,CAAC;AACD;;;;;;;YCzlMA,yBAAa,SAA2D,mBAAmB,gDAAgD,aAAa,KAAK,MAAM,gCAAgC,SAAS,qCAAqC,SAAS,mCAAmC,OAAO,KAAK,OAAO,aAAa,aAAa,0BAA0B,0BAA0B,gBAAgB,UAAU,UAAU,0CAA0C,8BAAwB,oBAAoB,8CAA8C,kCAAkC,YAAY,YAAY,mCAAmC,iBAAiB,gBAAgB,sBAAsB,oBAAoB,0CAA0C,YAAY,WAAW,YAAY,SAAS,GAAG;AACvyB;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA,CAAC,GAAG,EAAE,GAAG;AACT,CAAC;AACD","file":"bundle.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 2);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap f77eb1e80a4901a473b0","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader/lib/css-base.js\n// module id = 0\n// module chunks = 0","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\nvar stylesInDom = {};\n\nvar\tmemoize = function (fn) {\n\tvar memo;\n\n\treturn function () {\n\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\n\t\treturn memo;\n\t};\n};\n\nvar isOldIE = memoize(function () {\n\t// Test for IE <= 9 as proposed by Browserhacks\n\t// @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n\t// Tests for existence of standard globals is to allow style-loader\n\t// to operate correctly into non-standard environments\n\t// @see https://github.com/webpack-contrib/style-loader/issues/177\n\treturn window && document && document.all && !window.atob;\n});\n\nvar getTarget = function (target) {\n return document.querySelector(target);\n};\n\nvar getElement = (function (fn) {\n\tvar memo = {};\n\n\treturn function(target) {\n // If passing function in options, then use it for resolve \"head\" element.\n // Useful for Shadow Root style i.e\n // {\n // insertInto: function () { return document.querySelector(\"#foo\").shadowRoot }\n // }\n if (typeof target === 'function') {\n return target();\n }\n if (typeof memo[target] === \"undefined\") {\n\t\t\tvar styleTarget = getTarget.call(this, target);\n\t\t\t// Special case to return head of iframe instead of iframe itself\n\t\t\tif (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n\t\t\t\ttry {\n\t\t\t\t\t// This will throw an exception if access to iframe is blocked\n\t\t\t\t\t// due to cross-origin restrictions\n\t\t\t\t\tstyleTarget = styleTarget.contentDocument.head;\n\t\t\t\t} catch(e) {\n\t\t\t\t\tstyleTarget = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tmemo[target] = styleTarget;\n\t\t}\n\t\treturn memo[target]\n\t};\n})();\n\nvar singleton = null;\nvar\tsingletonCounter = 0;\nvar\tstylesInsertedAtTop = [];\n\nvar\tfixUrls = require(\"./urls\");\n\nmodule.exports = function(list, options) {\n\tif (typeof DEBUG !== \"undefined\" && DEBUG) {\n\t\tif (typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\n\t}\n\n\toptions = options || {};\n\n\toptions.attrs = typeof options.attrs === \"object\" ? options.attrs : {};\n\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n\t// tags it will allow on a page\n\tif (!options.singleton && typeof options.singleton !== \"boolean\") options.singleton = isOldIE();\n\n\t// By default, add <style> tags to the <head> element\n if (!options.insertInto) options.insertInto = \"head\";\n\n\t// By default, add <style> tags to the bottom of the target\n\tif (!options.insertAt) options.insertAt = \"bottom\";\n\n\tvar styles = listToStyles(list, options);\n\n\taddStylesToDom(styles, options);\n\n\treturn function update (newList) {\n\t\tvar mayRemove = [];\n\n\t\tfor (var i = 0; i < styles.length; i++) {\n\t\t\tvar item = styles[i];\n\t\t\tvar domStyle = stylesInDom[item.id];\n\n\t\t\tdomStyle.refs--;\n\t\t\tmayRemove.push(domStyle);\n\t\t}\n\n\t\tif(newList) {\n\t\t\tvar newStyles = listToStyles(newList, options);\n\t\t\taddStylesToDom(newStyles, options);\n\t\t}\n\n\t\tfor (var i = 0; i < mayRemove.length; i++) {\n\t\t\tvar domStyle = mayRemove[i];\n\n\t\t\tif(domStyle.refs === 0) {\n\t\t\t\tfor (var j = 0; j < domStyle.parts.length; j++) domStyle.parts[j]();\n\n\t\t\t\tdelete stylesInDom[domStyle.id];\n\t\t\t}\n\t\t}\n\t};\n};\n\nfunction addStylesToDom (styles, options) {\n\tfor (var i = 0; i < styles.length; i++) {\n\t\tvar item = styles[i];\n\t\tvar domStyle = stylesInDom[item.id];\n\n\t\tif(domStyle) {\n\t\t\tdomStyle.refs++;\n\n\t\t\tfor(var j = 0; j < domStyle.parts.length; j++) {\n\t\t\t\tdomStyle.parts[j](item.parts[j]);\n\t\t\t}\n\n\t\t\tfor(; j < item.parts.length; j++) {\n\t\t\t\tdomStyle.parts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\t\t} else {\n\t\t\tvar parts = [];\n\n\t\t\tfor(var j = 0; j < item.parts.length; j++) {\n\t\t\t\tparts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\n\t\t\tstylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};\n\t\t}\n\t}\n}\n\nfunction listToStyles (list, options) {\n\tvar styles = [];\n\tvar newStyles = {};\n\n\tfor (var i = 0; i < list.length; i++) {\n\t\tvar item = list[i];\n\t\tvar id = options.base ? item[0] + options.base : item[0];\n\t\tvar css = item[1];\n\t\tvar media = item[2];\n\t\tvar sourceMap = item[3];\n\t\tvar part = {css: css, media: media, sourceMap: sourceMap};\n\n\t\tif(!newStyles[id]) styles.push(newStyles[id] = {id: id, parts: [part]});\n\t\telse newStyles[id].parts.push(part);\n\t}\n\n\treturn styles;\n}\n\nfunction insertStyleElement (options, style) {\n\tvar target = getElement(options.insertInto)\n\n\tif (!target) {\n\t\tthrow new Error(\"Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.\");\n\t}\n\n\tvar lastStyleElementInsertedAtTop = stylesInsertedAtTop[stylesInsertedAtTop.length - 1];\n\n\tif (options.insertAt === \"top\") {\n\t\tif (!lastStyleElementInsertedAtTop) {\n\t\t\ttarget.insertBefore(style, target.firstChild);\n\t\t} else if (lastStyleElementInsertedAtTop.nextSibling) {\n\t\t\ttarget.insertBefore(style, lastStyleElementInsertedAtTop.nextSibling);\n\t\t} else {\n\t\t\ttarget.appendChild(style);\n\t\t}\n\t\tstylesInsertedAtTop.push(style);\n\t} else if (options.insertAt === \"bottom\") {\n\t\ttarget.appendChild(style);\n\t} else if (typeof options.insertAt === \"object\" && options.insertAt.before) {\n\t\tvar nextSibling = getElement(options.insertInto + \" \" + options.insertAt.before);\n\t\ttarget.insertBefore(style, nextSibling);\n\t} else {\n\t\tthrow new Error(\"[Style Loader]\\n\\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\\n Must be 'top', 'bottom', or Object.\\n (https://github.com/webpack-contrib/style-loader#insertat)\\n\");\n\t}\n}\n\nfunction removeStyleElement (style) {\n\tif (style.parentNode === null) return false;\n\tstyle.parentNode.removeChild(style);\n\n\tvar idx = stylesInsertedAtTop.indexOf(style);\n\tif(idx >= 0) {\n\t\tstylesInsertedAtTop.splice(idx, 1);\n\t}\n}\n\nfunction createStyleElement (options) {\n\tvar style = document.createElement(\"style\");\n\n\toptions.attrs.type = \"text/css\";\n\n\taddAttrs(style, options.attrs);\n\tinsertStyleElement(options, style);\n\n\treturn style;\n}\n\nfunction createLinkElement (options) {\n\tvar link = document.createElement(\"link\");\n\n\toptions.attrs.type = \"text/css\";\n\toptions.attrs.rel = \"stylesheet\";\n\n\taddAttrs(link, options.attrs);\n\tinsertStyleElement(options, link);\n\n\treturn link;\n}\n\nfunction addAttrs (el, attrs) {\n\tObject.keys(attrs).forEach(function (key) {\n\t\tel.setAttribute(key, attrs[key]);\n\t});\n}\n\nfunction addStyle (obj, options) {\n\tvar style, update, remove, result;\n\n\t// If a transform function was defined, run it on the css\n\tif (options.transform && obj.css) {\n\t result = options.transform(obj.css);\n\n\t if (result) {\n\t \t// If transform returns a value, use that instead of the original css.\n\t \t// This allows running runtime transformations on the css.\n\t \tobj.css = result;\n\t } else {\n\t \t// If the transform function returns a falsy value, don't add this css.\n\t \t// This allows conditional loading of css\n\t \treturn function() {\n\t \t\t// noop\n\t \t};\n\t }\n\t}\n\n\tif (options.singleton) {\n\t\tvar styleIndex = singletonCounter++;\n\n\t\tstyle = singleton || (singleton = createStyleElement(options));\n\n\t\tupdate = applyToSingletonTag.bind(null, style, styleIndex, false);\n\t\tremove = applyToSingletonTag.bind(null, style, styleIndex, true);\n\n\t} else if (\n\t\tobj.sourceMap &&\n\t\ttypeof URL === \"function\" &&\n\t\ttypeof URL.createObjectURL === \"function\" &&\n\t\ttypeof URL.revokeObjectURL === \"function\" &&\n\t\ttypeof Blob === \"function\" &&\n\t\ttypeof btoa === \"function\"\n\t) {\n\t\tstyle = createLinkElement(options);\n\t\tupdate = updateLink.bind(null, style, options);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\n\t\t\tif(style.href) URL.revokeObjectURL(style.href);\n\t\t};\n\t} else {\n\t\tstyle = createStyleElement(options);\n\t\tupdate = applyToTag.bind(null, style);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\t\t};\n\t}\n\n\tupdate(obj);\n\n\treturn function updateStyle (newObj) {\n\t\tif (newObj) {\n\t\t\tif (\n\t\t\t\tnewObj.css === obj.css &&\n\t\t\t\tnewObj.media === obj.media &&\n\t\t\t\tnewObj.sourceMap === obj.sourceMap\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tupdate(obj = newObj);\n\t\t} else {\n\t\t\tremove();\n\t\t}\n\t};\n}\n\nvar replaceText = (function () {\n\tvar textStore = [];\n\n\treturn function (index, replacement) {\n\t\ttextStore[index] = replacement;\n\n\t\treturn textStore.filter(Boolean).join('\\n');\n\t};\n})();\n\nfunction applyToSingletonTag (style, index, remove, obj) {\n\tvar css = remove ? \"\" : obj.css;\n\n\tif (style.styleSheet) {\n\t\tstyle.styleSheet.cssText = replaceText(index, css);\n\t} else {\n\t\tvar cssNode = document.createTextNode(css);\n\t\tvar childNodes = style.childNodes;\n\n\t\tif (childNodes[index]) style.removeChild(childNodes[index]);\n\n\t\tif (childNodes.length) {\n\t\t\tstyle.insertBefore(cssNode, childNodes[index]);\n\t\t} else {\n\t\t\tstyle.appendChild(cssNode);\n\t\t}\n\t}\n}\n\nfunction applyToTag (style, obj) {\n\tvar css = obj.css;\n\tvar media = obj.media;\n\n\tif(media) {\n\t\tstyle.setAttribute(\"media\", media)\n\t}\n\n\tif(style.styleSheet) {\n\t\tstyle.styleSheet.cssText = css;\n\t} else {\n\t\twhile(style.firstChild) {\n\t\t\tstyle.removeChild(style.firstChild);\n\t\t}\n\n\t\tstyle.appendChild(document.createTextNode(css));\n\t}\n}\n\nfunction updateLink (link, options, obj) {\n\tvar css = obj.css;\n\tvar sourceMap = obj.sourceMap;\n\n\t/*\n\t\tIf convertToAbsoluteUrls isn't defined, but sourcemaps are enabled\n\t\tand there is no publicPath defined then lets turn convertToAbsoluteUrls\n\t\ton by default. Otherwise default to the convertToAbsoluteUrls option\n\t\tdirectly\n\t*/\n\tvar autoFixUrls = options.convertToAbsoluteUrls === undefined && sourceMap;\n\n\tif (options.convertToAbsoluteUrls || autoFixUrls) {\n\t\tcss = fixUrls(css);\n\t}\n\n\tif (sourceMap) {\n\t\t// http://stackoverflow.com/a/26603875\n\t\tcss += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + \" */\";\n\t}\n\n\tvar blob = new Blob([css], { type: \"text/css\" });\n\n\tvar oldSrc = link.href;\n\n\tlink.href = URL.createObjectURL(blob);\n\n\tif(oldSrc) URL.revokeObjectURL(oldSrc);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/style-loader/lib/addStyles.js\n// module id = 1\n// module chunks = 0","require('../../node_modules/xterm/dist/xterm.css')\nrequire('../css/style.css')\n\nimport * as io from '../../node_modules/socket.io/node_modules/socket.io-client/dist/socket.io.js'\nimport * as Terminal from '../../node_modules/xterm/dist/xterm'\n// import * as attach from 'node_modules/xterm/dist/addons/attach/attach'\nimport * as fit from '../../node_modules/xterm/dist/addons/fit/fit'\n// import * as fullscreen from 'node_modules/xterm/dist/addons/fullscreen/fullscreen'\n// import * as search from 'node_modules/xterm/dist/addons/search/search'\n// import * as winptyCompat from 'node_modules/xterm/dist/addons/winptyCompat/winptyCompat'\n// import * as client from './client.js'\n\n// Terminal.applyAddon(attach);\nTerminal.applyAddon(fit)\n// Terminal.applyAddon(fullscreen);\n// Terminal.applyAddon(search);\n// Terminal.applyAddon(winptyCompat);\n/* global io, Terminal, Blob */\n\nvar sessionLogEnable = false\nvar sessionLog, sessionFooter, logDate, currentDate, myFile, errorExist\n\nvar downloadLogButton = document.getElementById('downloadLog')\nvar credentialsButton = document.getElementById('credentials')\nvar toggleLogButton = document.getElementById('toggleLog')\n\ntoggleLogButton.addEventListener('click', toggleLog)\n\ndownloadLogButton.style.display = 'none'\ncredentialsButton.style.display = 'none'\n\nvar terminalContainer = document.getElementById('terminal-container')\n\nvar term = new Terminal({\n cursorBlink: true\n})\nvar socket, termid // eslint-disable-line\nterm.open(terminalContainer)\nterm.focus()\n// term.applyAddon(fit)\n\nif (document.location.pathname) {\n var parts = document.location.pathname.split('/')\n var base = parts.slice(0, parts.length - 1).join('/') + '/'\n var resource = base.substring(1) + 'socket.io'\n socket = io.connect(null, {\n resource: resource\n })\n} else {\n socket = io.connect()\n}\n\nsocket.on('connect', function () {\n socket.emit('geometry', term.cols, term.rows)\n term.on('data', function (data) {\n socket.emit('data', data)\n })\n socket.on('title', function (data) {\n document.title = data\n }).on('status', function (data) {\n document.getElementById('status').innerHTML = data\n }).on('ssherror', function (data) {\n document.getElementById('status').innerHTML = data\n document.getElementById('status').style.backgroundColor = 'red'\n errorExists = true\n }).on('headerBackground', function (data) {\n document.getElementById('header').style.backgroundColor = data\n }).on('header', function (data) {\n document.getElementById('header').innerHTML = data\n }).on('footer', function (data) {\n sessionFooter = data\n document.getElementById('footer').innerHTML = data\n }).on('statusBackground', function (data) {\n document.getElementById('status').style.backgroundColor = data\n }).on('allowreplay', function (data) {\n if (data === true) {\n console.log('allowreplay: ' + data)\n credentialsButton.style.display = 'inline'\n credentialsButton.addEventListener('click', replayCredentials)\n } else {\n credentialsButton.style.display = 'none'\n }\n }).on('data', function (data) {\n term.write(data)\n if (sessionLogEnable) {\n sessionLog = sessionLog + data\n }\n }).on('disconnect', function (err) {\n if (!errorExists) {\n document.getElementById('status').style.backgroundColor = 'red'\n document.getElementById('status').innerHTML =\n 'WEBSOCKET SERVER DISCONNECTED: ' + err\n }\n socket.io.reconnection(false)\n }).on('error', function (err) {\n if (!errorExists) {\n document.getElementById('status').style.backgroundColor = 'red'\n document.getElementById('status').innerHTML = 'ERROR: ' + err\n }\n })\n})\n\n// replay password to server, requires\n// bill test\n\nfunction replayCredentials () { // eslint-disable-line\n socket.emit('control', 'replayCredentials')\n console.log('replaying credentials')\n term.focus()\n return false\n}\n\n// Set variable to toggle log data from client/server to a varialble\n// for later download\nfunction toggleLog () { // eslint-disable-line\n if (sessionLogEnable === true) {\n sessionLogEnable = false\n toggleLogButton.innerHTML =\n '<a class=\"toggleLog\" href=\"javascript:void(0);\">Start Log</a>'\n console.log('stopping log, ' + sessionLogEnable)\n currentDate = new Date()\n sessionLog = sessionLog + '\\r\\n\\r\\nLog End for ' + sessionFooter + ': ' +\n currentDate.getFullYear() + '/' + (currentDate.getMonth() + 1) + '/' +\n currentDate.getDate() + ' @ ' + currentDate.getHours() + ':' +\n currentDate.getMinutes() + ':' + currentDate.getSeconds() + '\\r\\n'\n logDate = currentDate\n term.focus()\n return false\n } else {\n sessionLogEnable = true\n toggleLogButton.innerHTML =\n '<a class=\"toggleLog\" href=\"javascript:void(0)\">Logging - STOP LOG</a>'\n downloadLogButton.style.display = 'inline'\n downloadLogButton.addEventListener('click', downloadLog)\n console.log('starting log, ' + sessionLogEnable)\n currentDate = new Date()\n sessionLog = 'Log Start for ' + sessionFooter + ': ' +\n currentDate.getFullYear() + '/' + (currentDate.getMonth() + 1) + '/' +\n currentDate.getDate() + ' @ ' + currentDate.getHours() + ':' +\n currentDate.getMinutes() + ':' + currentDate.getSeconds() + '\\r\\n\\r\\n'\n logDate = currentDate\n term.focus()\n return false\n }\n}\n\n// cross browser method to \"download\" an element to the local system\n// used for our client-side logging feature\nfunction downloadLog () { // eslint-disable-line\n myFile = 'WebSSH2-' + logDate.getFullYear() + (logDate.getMonth() + 1) +\n logDate.getDate() + '_' + logDate.getHours() + logDate.getMinutes() +\n logDate.getSeconds() + '.log'\n // regex should eliminate escape sequences from being logged.\n var blob = new Blob([sessionLog.replace(/[\\u001b\\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g, '')], {\n type: 'text/plain'\n })\n if (window.navigator.msSaveOrOpenBlob) {\n window.navigator.msSaveBlob(blob, myFile)\n } else {\n var elem = window.document.createElement('a')\n elem.href = window.URL.createObjectURL(blob)\n elem.download = myFile\n document.body.appendChild(elem)\n elem.click()\n document.body.removeChild(elem)\n }\n term.focus()\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/index.js\n// module id = 2\n// module chunks = 0","\nvar content = require(\"!!../../css-loader/index.js!./xterm.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../css-loader/index.js!./xterm.css\", function() {\n\t\tvar newContent = require(\"!!../../css-loader/index.js!./xterm.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/xterm/dist/xterm.css\n// module id = 3\n// module chunks = 0","exports = module.exports = require(\"../../css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/**\\n * Copyright (c) 2014 The xterm.js authors. All rights reserved.\\n * Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)\\n * https://github.com/chjj/term.js\\n * @license MIT\\n *\\n * Permission is hereby granted, free of charge, to any person obtaining a copy\\n * of this software and associated documentation files (the \\\"Software\\\"), to deal\\n * in the Software without restriction, including without limitation the rights\\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\\n * copies of the Software, and to permit persons to whom the Software is\\n * furnished to do so, subject to the following conditions:\\n *\\n * The above copyright notice and this permission notice shall be included in\\n * all copies or substantial portions of the Software.\\n *\\n * THE SOFTWARE IS PROVIDED \\\"AS IS\\\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\\n * THE SOFTWARE.\\n *\\n * Originally forked from (with the author's permission):\\n * Fabrice Bellard's javascript vt100 for jslinux:\\n * http://bellard.org/jslinux/\\n * Copyright (c) 2011 Fabrice Bellard\\n * The original design remains. The terminal itself\\n * has been extended to include xterm CSI codes, among\\n * other features.\\n */\\n\\n/**\\n * Default styles for xterm.js\\n */\\n\\n.xterm {\\n font-family: courier-new, courier, monospace;\\n font-feature-settings: \\\"liga\\\" 0;\\n position: relative;\\n user-select: none;\\n -ms-user-select: none;\\n -webkit-user-select: none;\\n}\\n\\n.xterm.focus,\\n.xterm:focus {\\n outline: none;\\n}\\n\\n.xterm .xterm-helpers {\\n position: absolute;\\n top: 0;\\n /**\\n * The z-index of the helpers must be higher than the canvases in order for\\n * IMEs to appear on top.\\n */\\n z-index: 10;\\n}\\n\\n.xterm .xterm-helper-textarea {\\n /*\\n * HACK: to fix IE's blinking cursor\\n * Move textarea out of the screen to the far left, so that the cursor is not visible.\\n */\\n position: absolute;\\n opacity: 0;\\n left: -9999em;\\n top: 0;\\n width: 0;\\n height: 0;\\n z-index: -10;\\n /** Prevent wrapping so the IME appears against the textarea at the correct position */\\n white-space: nowrap;\\n overflow: hidden;\\n resize: none;\\n}\\n\\n.xterm .composition-view {\\n /* TODO: Composition position got messed up somewhere */\\n background: #000;\\n color: #FFF;\\n display: none;\\n position: absolute;\\n white-space: nowrap;\\n z-index: 1;\\n}\\n\\n.xterm .composition-view.active {\\n display: block;\\n}\\n\\n.xterm .xterm-viewport {\\n /* On OS X this is required in order for the scroll bar to appear fully opaque */\\n background-color: #000;\\n overflow-y: scroll;\\n}\\n\\n.xterm canvas {\\n position: absolute;\\n left: 0;\\n top: 0;\\n}\\n\\n.xterm .xterm-scroll-area {\\n visibility: hidden;\\n}\\n\\n.xterm .xterm-char-measure-element {\\n display: inline-block;\\n visibility: hidden;\\n position: absolute;\\n left: -9999em;\\n}\\n\\n.xterm.enable-mouse-events {\\n /* When mouse events are enabled (eg. tmux), revert to the standard pointer cursor */\\n cursor: default;\\n}\\n\\n.xterm:not(.enable-mouse-events) {\\n cursor: text;\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./node_modules/xterm/dist/xterm.css\n// module id = 4\n// module chunks = 0","\n/**\n * When source maps are enabled, `style-loader` uses a link element with a data-uri to\n * embed the css on the page. This breaks all relative urls because now they are relative to a\n * bundle instead of the current page.\n *\n * One solution is to only use full urls, but that may be impossible.\n *\n * Instead, this function \"fixes\" the relative urls to be absolute according to the current page location.\n *\n * A rudimentary test suite is located at `test/fixUrls.js` and can be run via the `npm test` command.\n *\n */\n\nmodule.exports = function (css) {\n // get current location\n var location = typeof window !== \"undefined\" && window.location;\n\n if (!location) {\n throw new Error(\"fixUrls requires window.location\");\n }\n\n\t// blank or null?\n\tif (!css || typeof css !== \"string\") {\n\t return css;\n }\n\n var baseUrl = location.protocol + \"//\" + location.host;\n var currentDir = baseUrl + location.pathname.replace(/\\/[^\\/]*$/, \"/\");\n\n\t// convert each url(...)\n\t/*\n\tThis regular expression is just a way to recursively match brackets within\n\ta string.\n\n\t /url\\s*\\( = Match on the word \"url\" with any whitespace after it and then a parens\n\t ( = Start a capturing group\n\t (?: = Start a non-capturing group\n\t [^)(] = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t (?: = Start another non-capturing groups\n\t [^)(]+ = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t [^)(]* = Match anything that isn't a parentheses\n\t \\) = Match a end parentheses\n\t ) = End Group\n *\\) = Match anything and then a close parens\n ) = Close non-capturing group\n * = Match anything\n ) = Close capturing group\n\t \\) = Match a close parens\n\n\t /gi = Get all matches, not the first. Be case insensitive.\n\t */\n\tvar fixedCss = css.replace(/url\\s*\\(((?:[^)(]|\\((?:[^)(]+|\\([^)(]*\\))*\\))*)\\)/gi, function(fullMatch, origUrl) {\n\t\t// strip quotes (if they exist)\n\t\tvar unquotedOrigUrl = origUrl\n\t\t\t.trim()\n\t\t\t.replace(/^\"(.*)\"$/, function(o, $1){ return $1; })\n\t\t\t.replace(/^'(.*)'$/, function(o, $1){ return $1; });\n\n\t\t// already a full url? no change\n\t\tif (/^(#|data:|http:\\/\\/|https:\\/\\/|file:\\/\\/\\/)/i.test(unquotedOrigUrl)) {\n\t\t return fullMatch;\n\t\t}\n\n\t\t// convert the url to a full url\n\t\tvar newUrl;\n\n\t\tif (unquotedOrigUrl.indexOf(\"//\") === 0) {\n\t\t \t//TODO: should we add protocol?\n\t\t\tnewUrl = unquotedOrigUrl;\n\t\t} else if (unquotedOrigUrl.indexOf(\"/\") === 0) {\n\t\t\t// path should be relative to the base url\n\t\t\tnewUrl = baseUrl + unquotedOrigUrl; // already starts with '/'\n\t\t} else {\n\t\t\t// path should be relative to current directory\n\t\t\tnewUrl = currentDir + unquotedOrigUrl.replace(/^\\.\\//, \"\"); // Strip leading './'\n\t\t}\n\n\t\t// send back the fixed url(...)\n\t\treturn \"url(\" + JSON.stringify(newUrl) + \")\";\n\t});\n\n\t// send back the fixed css\n\treturn fixedCss;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/style-loader/lib/urls.js\n// module id = 5\n// module chunks = 0","\nvar content = require(\"!!../../node_modules/css-loader/index.js!./style.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../node_modules/css-loader/index.js!./style.css\", function() {\n\t\tvar newContent = require(\"!!../../node_modules/css-loader/index.js!./style.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/css/style.css\n// module id = 6\n// module chunks = 0","exports = module.exports = require(\"../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"body {\\n font-family: helvetica, sans-serif, arial;\\n font-size: 1em;\\n color: #111;\\n background-color: rgb(0, 0, 0);\\n color: rgb(240, 240, 240);\\n height: 100%;\\n margin: 0;\\n}\\n\\n#header {\\n color: rgb(240, 240, 240);\\n background-color: rgb(0, 128, 0);\\n width: 100%;\\n border-color: white;\\n border-style: none none solid none;\\n border-width: 1px;\\n text-align: center;\\n flex: 0 1 auto;\\n z-index: 99;\\n}\\n\\n.box {\\n display: flex;\\n flex-flow: column;\\n height: 100%;\\n}\\n\\n#terminal-container {\\n flex: 1 1 auto;\\n width: 100%;\\n margin: 0 auto;\\n padding: 2px;\\n}\\n\\n#terminal-container .terminal {\\n background-color: #000000;\\n color: #fafafa;\\n padding: 2px;\\n}\\n\\n#terminal-container .terminal:focus .terminal-cursor {\\n background-color: #fafafa;\\n}\\n\\n#bottomdiv {\\n width: 100%;\\n background-color: rgb(50, 50, 50);\\n border-color: white;\\n border-style: solid none none none;\\n border-width: 1px;\\n z-index: 99;\\n flex: 0 1 30px;\\n}\\n\\n#footer {\\n display: inline-block;\\n color: rgb(240, 240, 240);\\n background-color: rgb(50, 50, 50);\\n padding-left: 10px;\\n padding-right: 10px;\\n text-align: left;\\n}\\n\\n#status {\\n display: inline-block;\\n color: rgb(240, 240, 240);\\n background-color: rgb(50, 50, 50);\\n padding-left: 10px;\\n padding-right: 10px;\\n border-color: white;\\n border-style: none solid none solid;\\n border-width: 1px;\\n text-align: left;\\n z-index: 100;\\n}\\n#credentials {\\n display: inline-block;\\n color: rgb(51, 51, 51);\\n background-color: rgb(255, 127, 0);\\n padding-left: 10px;\\n padding-right: 10px;\\n border-color: white;\\n border-style: none solid none none;\\n border-width: 1px;\\n text-align: left;\\n z-index: 100;\\n}\\na.credentials {\\n color: rgb(51, 51, 51);\\n text-decoration: none;\\n}\\n#downloadLog {\\n display: inline-block;\\n color: rgb(240, 240, 240);\\n background-color: rgb(255, 127, 0);\\n padding-left: 10px;\\n padding-right: 10px;\\n border-color: white;\\n border-style: none solid none none;\\n border-width: 1px;\\n text-align: left;\\n z-index: 100;\\n}\\na.downloadLog {\\n color: rgb(240, 240, 240);\\n text-decoration: none;\\n}\\n#toggleLog {\\n display: inline-block;\\n color: rgb(240, 240, 240);\\n background-color: rgb(0, 127, 0);\\n padding-left: 10px;\\n padding-right: 10px;\\n border-color: white;\\n border-style: none solid none none;\\n border-width: 1px;\\n text-align: left;\\n z-index: 100;\\n}\\na.toggleLog {\\n color: rgb(240, 240, 240);\\n text-decoration: none;\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/css/style.css\n// module id = 7\n// module chunks = 0","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.io=e():t.io=e()}(this,function(){return function(t){function e(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return t[r].call(o.exports,o,o.exports,e),o.loaded=!0,o.exports}var n={};return e.m=t,e.c=n,e.p=\"\",e(0)}([function(t,e,n){\"use strict\";function r(t,e){\"object\"===(\"undefined\"==typeof t?\"undefined\":o(t))&&(e=t,t=void 0),e=e||{};var n,r=i(t),s=r.source,u=r.id,h=r.path,f=p[u]&&h in p[u].nsps,l=e.forceNew||e[\"force new connection\"]||!1===e.multiplex||f;return l?(c(\"ignoring socket cache for %s\",s),n=a(s,e)):(p[u]||(c(\"new io instance for %s\",s),p[u]=a(s,e)),n=p[u]),r.query&&!e.query&&(e.query=r.query),n.socket(r.path,e)}var o=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},i=n(1),s=n(7),a=n(13),c=n(3)(\"socket.io-client\");t.exports=e=r;var p=e.managers={};e.protocol=s.protocol,e.connect=r,e.Manager=n(13),e.Socket=n(37)},function(t,e,n){(function(e){\"use strict\";function r(t,n){var r=t;n=n||e.location,null==t&&(t=n.protocol+\"//\"+n.host),\"string\"==typeof t&&(\"/\"===t.charAt(0)&&(t=\"/\"===t.charAt(1)?n.protocol+t:n.host+t),/^(https?|wss?):\\/\\//.test(t)||(i(\"protocol-less url %s\",t),t=\"undefined\"!=typeof n?n.protocol+\"//\"+t:\"https://\"+t),i(\"parse %s\",t),r=o(t)),r.port||(/^(http|ws)$/.test(r.protocol)?r.port=\"80\":/^(http|ws)s$/.test(r.protocol)&&(r.port=\"443\")),r.path=r.path||\"/\";var s=r.host.indexOf(\":\")!==-1,a=s?\"[\"+r.host+\"]\":r.host;return r.id=r.protocol+\"://\"+a+\":\"+r.port,r.href=r.protocol+\"://\"+a+(n&&n.port===r.port?\"\":\":\"+r.port),r}var o=n(2),i=n(3)(\"socket.io-client:url\");t.exports=r}).call(e,function(){return this}())},function(t,e){var n=/^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/,r=[\"source\",\"protocol\",\"authority\",\"userInfo\",\"user\",\"password\",\"host\",\"port\",\"relative\",\"path\",\"directory\",\"file\",\"query\",\"anchor\"];t.exports=function(t){var e=t,o=t.indexOf(\"[\"),i=t.indexOf(\"]\");o!=-1&&i!=-1&&(t=t.substring(0,o)+t.substring(o,i).replace(/:/g,\";\")+t.substring(i,t.length));for(var s=n.exec(t||\"\"),a={},c=14;c--;)a[r[c]]=s[c]||\"\";return o!=-1&&i!=-1&&(a.source=e,a.host=a.host.substring(1,a.host.length-1).replace(/;/g,\":\"),a.authority=a.authority.replace(\"[\",\"\").replace(\"]\",\"\").replace(/;/g,\":\"),a.ipv6uri=!0),a}},function(t,e,n){(function(r){function o(){return!(\"undefined\"==typeof window||!window.process||\"renderer\"!==window.process.type)||(\"undefined\"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||\"undefined\"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||\"undefined\"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/)&&parseInt(RegExp.$1,10)>=31||\"undefined\"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/))}function i(t){var n=this.useColors;if(t[0]=(n?\"%c\":\"\")+this.namespace+(n?\" %c\":\" \")+t[0]+(n?\"%c \":\" \")+\"+\"+e.humanize(this.diff),n){var r=\"color: \"+this.color;t.splice(1,0,r,\"color: inherit\");var o=0,i=0;t[0].replace(/%[a-zA-Z%]/g,function(t){\"%%\"!==t&&(o++,\"%c\"===t&&(i=o))}),t.splice(i,0,r)}}function s(){return\"object\"==typeof console&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function a(t){try{null==t?e.storage.removeItem(\"debug\"):e.storage.debug=t}catch(n){}}function c(){var t;try{t=e.storage.debug}catch(n){}return!t&&\"undefined\"!=typeof r&&\"env\"in r&&(t=r.env.DEBUG),t}function p(){try{return window.localStorage}catch(t){}}e=t.exports=n(5),e.log=s,e.formatArgs=i,e.save=a,e.load=c,e.useColors=o,e.storage=\"undefined\"!=typeof chrome&&\"undefined\"!=typeof chrome.storage?chrome.storage.local:p(),e.colors=[\"lightseagreen\",\"forestgreen\",\"goldenrod\",\"dodgerblue\",\"darkorchid\",\"crimson\"],e.formatters.j=function(t){try{return JSON.stringify(t)}catch(e){return\"[UnexpectedJSONParseError]: \"+e.message}},e.enable(c())}).call(e,n(4))},function(t,e){function n(){throw new Error(\"setTimeout has not been defined\")}function r(){throw new Error(\"clearTimeout has not been defined\")}function o(t){if(u===setTimeout)return setTimeout(t,0);if((u===n||!u)&&setTimeout)return u=setTimeout,setTimeout(t,0);try{return u(t,0)}catch(e){try{return u.call(null,t,0)}catch(e){return u.call(this,t,0)}}}function i(t){if(h===clearTimeout)return clearTimeout(t);if((h===r||!h)&&clearTimeout)return h=clearTimeout,clearTimeout(t);try{return h(t)}catch(e){try{return h.call(null,t)}catch(e){return h.call(this,t)}}}function s(){y&&l&&(y=!1,l.length?d=l.concat(d):m=-1,d.length&&a())}function a(){if(!y){var t=o(s);y=!0;for(var e=d.length;e;){for(l=d,d=[];++m<e;)l&&l[m].run();m=-1,e=d.length}l=null,y=!1,i(t)}}function c(t,e){this.fun=t,this.array=e}function p(){}var u,h,f=t.exports={};!function(){try{u=\"function\"==typeof setTimeout?setTimeout:n}catch(t){u=n}try{h=\"function\"==typeof clearTimeout?clearTimeout:r}catch(t){h=r}}();var l,d=[],y=!1,m=-1;f.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];d.push(new c(t,e)),1!==d.length||y||o(a)},c.prototype.run=function(){this.fun.apply(null,this.array)},f.title=\"browser\",f.browser=!0,f.env={},f.argv=[],f.version=\"\",f.versions={},f.on=p,f.addListener=p,f.once=p,f.off=p,f.removeListener=p,f.removeAllListeners=p,f.emit=p,f.prependListener=p,f.prependOnceListener=p,f.listeners=function(t){return[]},f.binding=function(t){throw new Error(\"process.binding is not supported\")},f.cwd=function(){return\"/\"},f.chdir=function(t){throw new Error(\"process.chdir is not supported\")},f.umask=function(){return 0}},function(t,e,n){function r(t){var n,r=0;for(n in t)r=(r<<5)-r+t.charCodeAt(n),r|=0;return e.colors[Math.abs(r)%e.colors.length]}function o(t){function n(){if(n.enabled){var t=n,r=+new Date,o=r-(p||r);t.diff=o,t.prev=p,t.curr=r,p=r;for(var i=new Array(arguments.length),s=0;s<i.length;s++)i[s]=arguments[s];i[0]=e.coerce(i[0]),\"string\"!=typeof i[0]&&i.unshift(\"%O\");var a=0;i[0]=i[0].replace(/%([a-zA-Z%])/g,function(n,r){if(\"%%\"===n)return n;a++;var o=e.formatters[r];if(\"function\"==typeof o){var s=i[a];n=o.call(t,s),i.splice(a,1),a--}return n}),e.formatArgs.call(t,i);var c=n.log||e.log||console.log.bind(console);c.apply(t,i)}}return n.namespace=t,n.enabled=e.enabled(t),n.useColors=e.useColors(),n.color=r(t),\"function\"==typeof e.init&&e.init(n),n}function i(t){e.save(t),e.names=[],e.skips=[];for(var n=(\"string\"==typeof t?t:\"\").split(/[\\s,]+/),r=n.length,o=0;o<r;o++)n[o]&&(t=n[o].replace(/\\*/g,\".*?\"),\"-\"===t[0]?e.skips.push(new RegExp(\"^\"+t.substr(1)+\"$\")):e.names.push(new RegExp(\"^\"+t+\"$\")))}function s(){e.enable(\"\")}function a(t){var n,r;for(n=0,r=e.skips.length;n<r;n++)if(e.skips[n].test(t))return!1;for(n=0,r=e.names.length;n<r;n++)if(e.names[n].test(t))return!0;return!1}function c(t){return t instanceof Error?t.stack||t.message:t}e=t.exports=o.debug=o[\"default\"]=o,e.coerce=c,e.disable=s,e.enable=i,e.enabled=a,e.humanize=n(6),e.names=[],e.skips=[],e.formatters={};var p},function(t,e){function n(t){if(t=String(t),!(t.length>100)){var e=/^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(t);if(e){var n=parseFloat(e[1]),r=(e[2]||\"ms\").toLowerCase();switch(r){case\"years\":case\"year\":case\"yrs\":case\"yr\":case\"y\":return n*u;case\"days\":case\"day\":case\"d\":return n*p;case\"hours\":case\"hour\":case\"hrs\":case\"hr\":case\"h\":return n*c;case\"minutes\":case\"minute\":case\"mins\":case\"min\":case\"m\":return n*a;case\"seconds\":case\"second\":case\"secs\":case\"sec\":case\"s\":return n*s;case\"milliseconds\":case\"millisecond\":case\"msecs\":case\"msec\":case\"ms\":return n;default:return}}}}function r(t){return t>=p?Math.round(t/p)+\"d\":t>=c?Math.round(t/c)+\"h\":t>=a?Math.round(t/a)+\"m\":t>=s?Math.round(t/s)+\"s\":t+\"ms\"}function o(t){return i(t,p,\"day\")||i(t,c,\"hour\")||i(t,a,\"minute\")||i(t,s,\"second\")||t+\" ms\"}function i(t,e,n){if(!(t<e))return t<1.5*e?Math.floor(t/e)+\" \"+n:Math.ceil(t/e)+\" \"+n+\"s\"}var s=1e3,a=60*s,c=60*a,p=24*c,u=365.25*p;t.exports=function(t,e){e=e||{};var i=typeof t;if(\"string\"===i&&t.length>0)return n(t);if(\"number\"===i&&isNaN(t)===!1)return e[\"long\"]?o(t):r(t);throw new Error(\"val is not a non-empty string or a valid number. val=\"+JSON.stringify(t))}},function(t,e,n){function r(){}function o(t){var n=\"\"+t.type;return e.BINARY_EVENT!==t.type&&e.BINARY_ACK!==t.type||(n+=t.attachments+\"-\"),t.nsp&&\"/\"!==t.nsp&&(n+=t.nsp+\",\"),null!=t.id&&(n+=t.id),null!=t.data&&(n+=JSON.stringify(t.data)),h(\"encoded %j as %s\",t,n),n}function i(t,e){function n(t){var n=d.deconstructPacket(t),r=o(n.packet),i=n.buffers;i.unshift(r),e(i)}d.removeBlobs(t,n)}function s(){this.reconstructor=null}function a(t){var n=0,r={type:Number(t.charAt(0))};if(null==e.types[r.type])return u();if(e.BINARY_EVENT===r.type||e.BINARY_ACK===r.type){for(var o=\"\";\"-\"!==t.charAt(++n)&&(o+=t.charAt(n),n!=t.length););if(o!=Number(o)||\"-\"!==t.charAt(n))throw new Error(\"Illegal attachments\");r.attachments=Number(o)}if(\"/\"===t.charAt(n+1))for(r.nsp=\"\";++n;){var i=t.charAt(n);if(\",\"===i)break;if(r.nsp+=i,n===t.length)break}else r.nsp=\"/\";var s=t.charAt(n+1);if(\"\"!==s&&Number(s)==s){for(r.id=\"\";++n;){var i=t.charAt(n);if(null==i||Number(i)!=i){--n;break}if(r.id+=t.charAt(n),n===t.length)break}r.id=Number(r.id)}return t.charAt(++n)&&(r=c(r,t.substr(n))),h(\"decoded %s as %j\",t,r),r}function c(t,e){try{t.data=JSON.parse(e)}catch(n){return u()}return t}function p(t){this.reconPack=t,this.buffers=[]}function u(){return{type:e.ERROR,data:\"parser error\"}}var h=n(3)(\"socket.io-parser\"),f=n(8),l=n(9),d=n(11),y=n(12);e.protocol=4,e.types=[\"CONNECT\",\"DISCONNECT\",\"EVENT\",\"ACK\",\"ERROR\",\"BINARY_EVENT\",\"BINARY_ACK\"],e.CONNECT=0,e.DISCONNECT=1,e.EVENT=2,e.ACK=3,e.ERROR=4,e.BINARY_EVENT=5,e.BINARY_ACK=6,e.Encoder=r,e.Decoder=s,r.prototype.encode=function(t,n){if(t.type!==e.EVENT&&t.type!==e.ACK||!l(t.data)||(t.type=t.type===e.EVENT?e.BINARY_EVENT:e.BINARY_ACK),h(\"encoding packet %j\",t),e.BINARY_EVENT===t.type||e.BINARY_ACK===t.type)i(t,n);else{var r=o(t);n([r])}},f(s.prototype),s.prototype.add=function(t){var n;if(\"string\"==typeof t)n=a(t),e.BINARY_EVENT===n.type||e.BINARY_ACK===n.type?(this.reconstructor=new p(n),0===this.reconstructor.reconPack.attachments&&this.emit(\"decoded\",n)):this.emit(\"decoded\",n);else{if(!y(t)&&!t.base64)throw new Error(\"Unknown type: \"+t);if(!this.reconstructor)throw new Error(\"got binary data when not reconstructing a packet\");n=this.reconstructor.takeBinaryData(t),n&&(this.reconstructor=null,this.emit(\"decoded\",n))}},s.prototype.destroy=function(){this.reconstructor&&this.reconstructor.finishedReconstruction()},p.prototype.takeBinaryData=function(t){if(this.buffers.push(t),this.buffers.length===this.reconPack.attachments){var e=d.reconstructPacket(this.reconPack,this.buffers);return this.finishedReconstruction(),e}return null},p.prototype.finishedReconstruction=function(){this.reconPack=null,this.buffers=[]}},function(t,e,n){function r(t){if(t)return o(t)}function o(t){for(var e in r.prototype)t[e]=r.prototype[e];return t}t.exports=r,r.prototype.on=r.prototype.addEventListener=function(t,e){return this._callbacks=this._callbacks||{},(this._callbacks[\"$\"+t]=this._callbacks[\"$\"+t]||[]).push(e),this},r.prototype.once=function(t,e){function n(){this.off(t,n),e.apply(this,arguments)}return n.fn=e,this.on(t,n),this},r.prototype.off=r.prototype.removeListener=r.prototype.removeAllListeners=r.prototype.removeEventListener=function(t,e){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var n=this._callbacks[\"$\"+t];if(!n)return this;if(1==arguments.length)return delete this._callbacks[\"$\"+t],this;for(var r,o=0;o<n.length;o++)if(r=n[o],r===e||r.fn===e){n.splice(o,1);break}return this},r.prototype.emit=function(t){this._callbacks=this._callbacks||{};var e=[].slice.call(arguments,1),n=this._callbacks[\"$\"+t];if(n){n=n.slice(0);for(var r=0,o=n.length;r<o;++r)n[r].apply(this,e)}return this},r.prototype.listeners=function(t){return this._callbacks=this._callbacks||{},this._callbacks[\"$\"+t]||[]},r.prototype.hasListeners=function(t){return!!this.listeners(t).length}},function(t,e,n){(function(e){function r(t){if(!t||\"object\"!=typeof t)return!1;if(o(t)){for(var n=0,i=t.length;n<i;n++)if(r(t[n]))return!0;return!1}if(\"function\"==typeof e.Buffer&&e.Buffer.isBuffer&&e.Buffer.isBuffer(t)||\"function\"==typeof e.ArrayBuffer&&t instanceof ArrayBuffer||s&&t instanceof Blob||a&&t instanceof File)return!0;if(t.toJSON&&\"function\"==typeof t.toJSON&&1===arguments.length)return r(t.toJSON(),!0);for(var c in t)if(Object.prototype.hasOwnProperty.call(t,c)&&r(t[c]))return!0;return!1}var o=n(10),i=Object.prototype.toString,s=\"function\"==typeof e.Blob||\"[object BlobConstructor]\"===i.call(e.Blob),a=\"function\"==typeof e.File||\"[object FileConstructor]\"===i.call(e.File);t.exports=r}).call(e,function(){return this}())},function(t,e){var n={}.toString;t.exports=Array.isArray||function(t){return\"[object Array]\"==n.call(t)}},function(t,e,n){(function(t){function r(t,e){if(!t)return t;if(s(t)){var n={_placeholder:!0,num:e.length};return e.push(t),n}if(i(t)){for(var o=new Array(t.length),a=0;a<t.length;a++)o[a]=r(t[a],e);return o}if(\"object\"==typeof t&&!(t instanceof Date)){var o={};for(var c in t)o[c]=r(t[c],e);return o}return t}function o(t,e){if(!t)return t;if(t&&t._placeholder)return e[t.num];if(i(t))for(var n=0;n<t.length;n++)t[n]=o(t[n],e);else if(\"object\"==typeof t)for(var r in t)t[r]=o(t[r],e);return t}var i=n(10),s=n(12),a=Object.prototype.toString,c=\"function\"==typeof t.Blob||\"[object BlobConstructor]\"===a.call(t.Blob),p=\"function\"==typeof t.File||\"[object FileConstructor]\"===a.call(t.File);e.deconstructPacket=function(t){var e=[],n=t.data,o=t;return o.data=r(n,e),o.attachments=e.length,{packet:o,buffers:e}},e.reconstructPacket=function(t,e){return t.data=o(t.data,e),t.attachments=void 0,t},e.removeBlobs=function(t,e){function n(t,a,u){if(!t)return t;if(c&&t instanceof Blob||p&&t instanceof File){r++;var h=new FileReader;h.onload=function(){u?u[a]=this.result:o=this.result,--r||e(o)},h.readAsArrayBuffer(t)}else if(i(t))for(var f=0;f<t.length;f++)n(t[f],f,t);else if(\"object\"==typeof t&&!s(t))for(var l in t)n(t[l],l,t)}var r=0,o=t;n(o),r||e(o)}}).call(e,function(){return this}())},function(t,e){(function(e){function n(t){return e.Buffer&&e.Buffer.isBuffer(t)||e.ArrayBuffer&&t instanceof ArrayBuffer}t.exports=n}).call(e,function(){return this}())},function(t,e,n){\"use strict\";function r(t,e){if(!(this instanceof r))return new r(t,e);t&&\"object\"===(\"undefined\"==typeof t?\"undefined\":o(t))&&(e=t,t=void 0),e=e||{},e.path=e.path||\"/socket.io\",this.nsps={},this.subs=[],this.opts=e,this.reconnection(e.reconnection!==!1),this.reconnectionAttempts(e.reconnectionAttempts||1/0),this.reconnectionDelay(e.reconnectionDelay||1e3),this.reconnectionDelayMax(e.reconnectionDelayMax||5e3),this.randomizationFactor(e.randomizationFactor||.5),this.backoff=new l({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(null==e.timeout?2e4:e.timeout),this.readyState=\"closed\",this.uri=t,this.connecting=[],this.lastPing=null,this.encoding=!1,this.packetBuffer=[];var n=e.parser||c;this.encoder=new n.Encoder,this.decoder=new n.Decoder,this.autoConnect=e.autoConnect!==!1,this.autoConnect&&this.open()}var o=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},i=n(14),s=n(37),a=n(8),c=n(7),p=n(39),u=n(40),h=n(3)(\"socket.io-client:manager\"),f=n(36),l=n(41),d=Object.prototype.hasOwnProperty;t.exports=r,r.prototype.emitAll=function(){this.emit.apply(this,arguments);for(var t in this.nsps)d.call(this.nsps,t)&&this.nsps[t].emit.apply(this.nsps[t],arguments)},r.prototype.updateSocketIds=function(){for(var t in this.nsps)d.call(this.nsps,t)&&(this.nsps[t].id=this.generateId(t))},r.prototype.generateId=function(t){return(\"/\"===t?\"\":t+\"#\")+this.engine.id},a(r.prototype),r.prototype.reconnection=function(t){return arguments.length?(this._reconnection=!!t,this):this._reconnection},r.prototype.reconnectionAttempts=function(t){return arguments.length?(this._reconnectionAttempts=t,this):this._reconnectionAttempts},r.prototype.reconnectionDelay=function(t){return arguments.length?(this._reconnectionDelay=t,this.backoff&&this.backoff.setMin(t),this):this._reconnectionDelay},r.prototype.randomizationFactor=function(t){return arguments.length?(this._randomizationFactor=t,this.backoff&&this.backoff.setJitter(t),this):this._randomizationFactor},r.prototype.reconnectionDelayMax=function(t){return arguments.length?(this._reconnectionDelayMax=t,this.backoff&&this.backoff.setMax(t),this):this._reconnectionDelayMax},r.prototype.timeout=function(t){return arguments.length?(this._timeout=t,this):this._timeout},r.prototype.maybeReconnectOnOpen=function(){!this.reconnecting&&this._reconnection&&0===this.backoff.attempts&&this.reconnect()},r.prototype.open=r.prototype.connect=function(t,e){if(h(\"readyState %s\",this.readyState),~this.readyState.indexOf(\"open\"))return this;h(\"opening %s\",this.uri),this.engine=i(this.uri,this.opts);var n=this.engine,r=this;this.readyState=\"opening\",this.skipReconnect=!1;var o=p(n,\"open\",function(){r.onopen(),t&&t()}),s=p(n,\"error\",function(e){if(h(\"connect_error\"),r.cleanup(),r.readyState=\"closed\",r.emitAll(\"connect_error\",e),t){var n=new Error(\"Connection error\");n.data=e,t(n)}else r.maybeReconnectOnOpen()});if(!1!==this._timeout){var a=this._timeout;h(\"connect attempt will timeout after %d\",a);var c=setTimeout(function(){h(\"connect attempt timed out after %d\",a),o.destroy(),n.close(),n.emit(\"error\",\"timeout\"),r.emitAll(\"connect_timeout\",a)},a);this.subs.push({destroy:function(){clearTimeout(c)}})}return this.subs.push(o),this.subs.push(s),this},r.prototype.onopen=function(){h(\"open\"),this.cleanup(),this.readyState=\"open\",this.emit(\"open\");var t=this.engine;this.subs.push(p(t,\"data\",u(this,\"ondata\"))),this.subs.push(p(t,\"ping\",u(this,\"onping\"))),this.subs.push(p(t,\"pong\",u(this,\"onpong\"))),this.subs.push(p(t,\"error\",u(this,\"onerror\"))),this.subs.push(p(t,\"close\",u(this,\"onclose\"))),this.subs.push(p(this.decoder,\"decoded\",u(this,\"ondecoded\")))},r.prototype.onping=function(){this.lastPing=new Date,this.emitAll(\"ping\")},r.prototype.onpong=function(){this.emitAll(\"pong\",new Date-this.lastPing)},r.prototype.ondata=function(t){this.decoder.add(t)},r.prototype.ondecoded=function(t){this.emit(\"packet\",t)},r.prototype.onerror=function(t){h(\"error\",t),this.emitAll(\"error\",t)},r.prototype.socket=function(t,e){function n(){~f(o.connecting,r)||o.connecting.push(r)}var r=this.nsps[t];if(!r){r=new s(this,t,e),this.nsps[t]=r;var o=this;r.on(\"connecting\",n),r.on(\"connect\",function(){r.id=o.generateId(t)}),this.autoConnect&&n()}return r},r.prototype.destroy=function(t){var e=f(this.connecting,t);~e&&this.connecting.splice(e,1),this.connecting.length||this.close()},r.prototype.packet=function(t){h(\"writing packet %j\",t);var e=this;t.query&&0===t.type&&(t.nsp+=\"?\"+t.query),e.encoding?e.packetBuffer.push(t):(e.encoding=!0,this.encoder.encode(t,function(n){for(var r=0;r<n.length;r++)e.engine.write(n[r],t.options);e.encoding=!1,e.processPacketQueue()}))},r.prototype.processPacketQueue=function(){if(this.packetBuffer.length>0&&!this.encoding){var t=this.packetBuffer.shift();this.packet(t)}},r.prototype.cleanup=function(){h(\"cleanup\");for(var t=this.subs.length,e=0;e<t;e++){var n=this.subs.shift();n.destroy()}this.packetBuffer=[],this.encoding=!1,this.lastPing=null,this.decoder.destroy()},r.prototype.close=r.prototype.disconnect=function(){h(\"disconnect\"),this.skipReconnect=!0,this.reconnecting=!1,\"opening\"===this.readyState&&this.cleanup(),this.backoff.reset(),this.readyState=\"closed\",this.engine&&this.engine.close()},r.prototype.onclose=function(t){h(\"onclose\"),this.cleanup(),this.backoff.reset(),this.readyState=\"closed\",this.emit(\"close\",t),this._reconnection&&!this.skipReconnect&&this.reconnect()},r.prototype.reconnect=function(){if(this.reconnecting||this.skipReconnect)return this;var t=this;if(this.backoff.attempts>=this._reconnectionAttempts)h(\"reconnect failed\"),this.backoff.reset(),this.emitAll(\"reconnect_failed\"),this.reconnecting=!1;else{var e=this.backoff.duration();h(\"will wait %dms before reconnect attempt\",e),this.reconnecting=!0;var n=setTimeout(function(){t.skipReconnect||(h(\"attempting reconnect\"),t.emitAll(\"reconnect_attempt\",t.backoff.attempts),t.emitAll(\"reconnecting\",t.backoff.attempts),t.skipReconnect||t.open(function(e){e?(h(\"reconnect attempt error\"),t.reconnecting=!1,t.reconnect(),t.emitAll(\"reconnect_error\",e.data)):(h(\"reconnect success\"),t.onreconnect())}))},e);this.subs.push({destroy:function(){clearTimeout(n)}})}},r.prototype.onreconnect=function(){var t=this.backoff.attempts;this.reconnecting=!1,this.backoff.reset(),this.updateSocketIds(),this.emitAll(\"reconnect\",t)}},function(t,e,n){t.exports=n(15),t.exports.parser=n(22)},function(t,e,n){(function(e){function r(t,n){if(!(this instanceof r))return new r(t,n);n=n||{},t&&\"object\"==typeof t&&(n=t,t=null),t?(t=u(t),n.hostname=t.host,n.secure=\"https\"===t.protocol||\"wss\"===t.protocol,n.port=t.port,t.query&&(n.query=t.query)):n.host&&(n.hostname=u(n.host).host),this.secure=null!=n.secure?n.secure:e.location&&\"https:\"===location.protocol,n.hostname&&!n.port&&(n.port=this.secure?\"443\":\"80\"),this.agent=n.agent||!1,this.hostname=n.hostname||(e.location?location.hostname:\"localhost\"),this.port=n.port||(e.location&&location.port?location.port:this.secure?443:80),this.query=n.query||{},\"string\"==typeof this.query&&(this.query=h.decode(this.query)),this.upgrade=!1!==n.upgrade,this.path=(n.path||\"/engine.io\").replace(/\\/$/,\"\")+\"/\",this.forceJSONP=!!n.forceJSONP,this.jsonp=!1!==n.jsonp,this.forceBase64=!!n.forceBase64,this.enablesXDR=!!n.enablesXDR,this.timestampParam=n.timestampParam||\"t\",this.timestampRequests=n.timestampRequests,this.transports=n.transports||[\"polling\",\"websocket\"],this.transportOptions=n.transportOptions||{},this.readyState=\"\",this.writeBuffer=[],this.prevBufferLen=0,this.policyPort=n.policyPort||843,this.rememberUpgrade=n.rememberUpgrade||!1,this.binaryType=null,this.onlyBinaryUpgrades=n.onlyBinaryUpgrades,this.perMessageDeflate=!1!==n.perMessageDeflate&&(n.perMessageDeflate||{}),!0===this.perMessageDeflate&&(this.perMessageDeflate={}),this.perMessageDeflate&&null==this.perMessageDeflate.threshold&&(this.perMessageDeflate.threshold=1024),this.pfx=n.pfx||null,this.key=n.key||null,this.passphrase=n.passphrase||null,this.cert=n.cert||null,this.ca=n.ca||null,this.ciphers=n.ciphers||null,this.rejectUnauthorized=void 0===n.rejectUnauthorized||n.rejectUnauthorized,this.forceNode=!!n.forceNode;var o=\"object\"==typeof e&&e;o.global===o&&(n.extraHeaders&&Object.keys(n.extraHeaders).length>0&&(this.extraHeaders=n.extraHeaders),n.localAddress&&(this.localAddress=n.localAddress)),this.id=null,this.upgrades=null,this.pingInterval=null,this.pingTimeout=null,this.pingIntervalTimer=null,this.pingTimeoutTimer=null,this.open()}function o(t){var e={};for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}var i=n(16),s=n(8),a=n(3)(\"engine.io-client:socket\"),c=n(36),p=n(22),u=n(2),h=n(30);t.exports=r,r.priorWebsocketSuccess=!1,s(r.prototype),r.protocol=p.protocol,r.Socket=r,r.Transport=n(21),r.transports=n(16),r.parser=n(22),r.prototype.createTransport=function(t){a('creating transport \"%s\"',t);var e=o(this.query);e.EIO=p.protocol,e.transport=t;var n=this.transportOptions[t]||{};this.id&&(e.sid=this.id);var r=new i[t]({query:e,socket:this,agent:n.agent||this.agent,hostname:n.hostname||this.hostname,port:n.port||this.port,secure:n.secure||this.secure,path:n.path||this.path,forceJSONP:n.forceJSONP||this.forceJSONP,jsonp:n.jsonp||this.jsonp,forceBase64:n.forceBase64||this.forceBase64,enablesXDR:n.enablesXDR||this.enablesXDR,timestampRequests:n.timestampRequests||this.timestampRequests,timestampParam:n.timestampParam||this.timestampParam,policyPort:n.policyPort||this.policyPort,pfx:n.pfx||this.pfx,key:n.key||this.key,passphrase:n.passphrase||this.passphrase,cert:n.cert||this.cert,ca:n.ca||this.ca,ciphers:n.ciphers||this.ciphers,rejectUnauthorized:n.rejectUnauthorized||this.rejectUnauthorized,perMessageDeflate:n.perMessageDeflate||this.perMessageDeflate,extraHeaders:n.extraHeaders||this.extraHeaders,forceNode:n.forceNode||this.forceNode,localAddress:n.localAddress||this.localAddress,requestTimeout:n.requestTimeout||this.requestTimeout,protocols:n.protocols||void 0});return r},r.prototype.open=function(){var t;if(this.rememberUpgrade&&r.priorWebsocketSuccess&&this.transports.indexOf(\"websocket\")!==-1)t=\"websocket\";else{if(0===this.transports.length){var e=this;return void setTimeout(function(){e.emit(\"error\",\"No transports available\")},0)}t=this.transports[0]}this.readyState=\"opening\";try{t=this.createTransport(t)}catch(n){return this.transports.shift(),void this.open()}t.open(),this.setTransport(t)},r.prototype.setTransport=function(t){a(\"setting transport %s\",t.name);var e=this;this.transport&&(a(\"clearing existing transport %s\",this.transport.name),this.transport.removeAllListeners()),this.transport=t,t.on(\"drain\",function(){e.onDrain()}).on(\"packet\",function(t){e.onPacket(t)}).on(\"error\",function(t){e.onError(t)}).on(\"close\",function(){e.onClose(\"transport close\")})},r.prototype.probe=function(t){function e(){if(f.onlyBinaryUpgrades){var e=!this.supportsBinary&&f.transport.supportsBinary;h=h||e}h||(a('probe transport \"%s\" opened',t),u.send([{type:\"ping\",data:\"probe\"}]),u.once(\"packet\",function(e){if(!h)if(\"pong\"===e.type&&\"probe\"===e.data){if(a('probe transport \"%s\" pong',t),f.upgrading=!0,f.emit(\"upgrading\",u),!u)return;r.priorWebsocketSuccess=\"websocket\"===u.name,a('pausing current transport \"%s\"',f.transport.name),f.transport.pause(function(){h||\"closed\"!==f.readyState&&(a(\"changing transport and sending upgrade packet\"),p(),f.setTransport(u),u.send([{type:\"upgrade\"}]),f.emit(\"upgrade\",u),u=null,f.upgrading=!1,f.flush())})}else{a('probe transport \"%s\" failed',t);var n=new Error(\"probe error\");n.transport=u.name,f.emit(\"upgradeError\",n)}}))}function n(){h||(h=!0,p(),u.close(),u=null)}function o(e){var r=new Error(\"probe error: \"+e);r.transport=u.name,n(),a('probe transport \"%s\" failed because of error: %s',t,e),f.emit(\"upgradeError\",r)}function i(){o(\"transport closed\")}function s(){o(\"socket closed\")}function c(t){u&&t.name!==u.name&&(a('\"%s\" works - aborting \"%s\"',t.name,u.name),n())}function p(){u.removeListener(\"open\",e),u.removeListener(\"error\",o),u.removeListener(\"close\",i),f.removeListener(\"close\",s),f.removeListener(\"upgrading\",c)}a('probing transport \"%s\"',t);var u=this.createTransport(t,{probe:1}),h=!1,f=this;r.priorWebsocketSuccess=!1,u.once(\"open\",e),u.once(\"error\",o),u.once(\"close\",i),this.once(\"close\",s),this.once(\"upgrading\",c),u.open()},r.prototype.onOpen=function(){if(a(\"socket open\"),this.readyState=\"open\",r.priorWebsocketSuccess=\"websocket\"===this.transport.name,this.emit(\"open\"),this.flush(),\"open\"===this.readyState&&this.upgrade&&this.transport.pause){a(\"starting upgrade probes\");for(var t=0,e=this.upgrades.length;t<e;t++)this.probe(this.upgrades[t])}},r.prototype.onPacket=function(t){if(\"opening\"===this.readyState||\"open\"===this.readyState||\"closing\"===this.readyState)switch(a('socket receive: type \"%s\", data \"%s\"',t.type,t.data),this.emit(\"packet\",t),this.emit(\"heartbeat\"),t.type){case\"open\":this.onHandshake(JSON.parse(t.data));break;case\"pong\":this.setPing(),this.emit(\"pong\");break;case\"error\":var e=new Error(\"server error\");e.code=t.data,this.onError(e);break;case\"message\":this.emit(\"data\",t.data),this.emit(\"message\",t.data)}else a('packet received with socket readyState \"%s\"',this.readyState)},r.prototype.onHandshake=function(t){this.emit(\"handshake\",t),this.id=t.sid,this.transport.query.sid=t.sid,this.upgrades=this.filterUpgrades(t.upgrades),this.pingInterval=t.pingInterval,this.pingTimeout=t.pingTimeout,this.onOpen(),\"closed\"!==this.readyState&&(this.setPing(),this.removeListener(\"heartbeat\",this.onHeartbeat),this.on(\"heartbeat\",this.onHeartbeat))},r.prototype.onHeartbeat=function(t){clearTimeout(this.pingTimeoutTimer);var e=this;e.pingTimeoutTimer=setTimeout(function(){\"closed\"!==e.readyState&&e.onClose(\"ping timeout\")},t||e.pingInterval+e.pingTimeout)},r.prototype.setPing=function(){var t=this;clearTimeout(t.pingIntervalTimer),t.pingIntervalTimer=setTimeout(function(){a(\"writing ping packet - expecting pong within %sms\",t.pingTimeout),t.ping(),t.onHeartbeat(t.pingTimeout)},t.pingInterval)},r.prototype.ping=function(){var t=this;this.sendPacket(\"ping\",function(){t.emit(\"ping\")})},r.prototype.onDrain=function(){this.writeBuffer.splice(0,this.prevBufferLen),this.prevBufferLen=0,0===this.writeBuffer.length?this.emit(\"drain\"):this.flush()},r.prototype.flush=function(){\"closed\"!==this.readyState&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length&&(a(\"flushing %d packets in socket\",this.writeBuffer.length),this.transport.send(this.writeBuffer),this.prevBufferLen=this.writeBuffer.length,this.emit(\"flush\"))},r.prototype.write=r.prototype.send=function(t,e,n){return this.sendPacket(\"message\",t,e,n),this},r.prototype.sendPacket=function(t,e,n,r){if(\"function\"==typeof e&&(r=e,e=void 0),\"function\"==typeof n&&(r=n,n=null),\"closing\"!==this.readyState&&\"closed\"!==this.readyState){n=n||{},n.compress=!1!==n.compress;var o={type:t,data:e,options:n};this.emit(\"packetCreate\",o),this.writeBuffer.push(o),r&&this.once(\"flush\",r),this.flush()}},r.prototype.close=function(){function t(){r.onClose(\"forced close\"),a(\"socket closing - telling transport to close\"),r.transport.close()}function e(){r.removeListener(\"upgrade\",e),r.removeListener(\"upgradeError\",e),t()}function n(){r.once(\"upgrade\",e),r.once(\"upgradeError\",e)}if(\"opening\"===this.readyState||\"open\"===this.readyState){this.readyState=\"closing\";var r=this;this.writeBuffer.length?this.once(\"drain\",function(){this.upgrading?n():t()}):this.upgrading?n():t()}return this},r.prototype.onError=function(t){a(\"socket error %j\",t),r.priorWebsocketSuccess=!1,this.emit(\"error\",t),this.onClose(\"transport error\",t)},r.prototype.onClose=function(t,e){if(\"opening\"===this.readyState||\"open\"===this.readyState||\"closing\"===this.readyState){a('socket close with reason: \"%s\"',t);var n=this;clearTimeout(this.pingIntervalTimer),clearTimeout(this.pingTimeoutTimer),this.transport.removeAllListeners(\"close\"),this.transport.close(),this.transport.removeAllListeners(),this.readyState=\"closed\",this.id=null,this.emit(\"close\",t,e),n.writeBuffer=[],n.prevBufferLen=0}},r.prototype.filterUpgrades=function(t){for(var e=[],n=0,r=t.length;n<r;n++)~c(this.transports,t[n])&&e.push(t[n]);return e}}).call(e,function(){return this}())},function(t,e,n){(function(t){function r(e){var n,r=!1,a=!1,c=!1!==e.jsonp;if(t.location){var p=\"https:\"===location.protocol,u=location.port;u||(u=p?443:80),r=e.hostname!==location.hostname||u!==e.port,a=e.secure!==p}if(e.xdomain=r,e.xscheme=a,n=new o(e),\"open\"in n&&!e.forceJSONP)return new i(e);if(!c)throw new Error(\"JSONP disabled\");return new s(e)}var o=n(17),i=n(19),s=n(33),a=n(34);e.polling=r,e.websocket=a}).call(e,function(){return this}())},function(t,e,n){(function(e){var r=n(18);t.exports=function(t){var n=t.xdomain,o=t.xscheme,i=t.enablesXDR;try{if(\"undefined\"!=typeof XMLHttpRequest&&(!n||r))return new XMLHttpRequest}catch(s){}try{if(\"undefined\"!=typeof XDomainRequest&&!o&&i)return new XDomainRequest}catch(s){}if(!n)try{return new(e[[\"Active\"].concat(\"Object\").join(\"X\")])(\"Microsoft.XMLHTTP\");\n}catch(s){}}}).call(e,function(){return this}())},function(t,e){try{t.exports=\"undefined\"!=typeof XMLHttpRequest&&\"withCredentials\"in new XMLHttpRequest}catch(n){t.exports=!1}},function(t,e,n){(function(e){function r(){}function o(t){if(c.call(this,t),this.requestTimeout=t.requestTimeout,this.extraHeaders=t.extraHeaders,e.location){var n=\"https:\"===location.protocol,r=location.port;r||(r=n?443:80),this.xd=t.hostname!==e.location.hostname||r!==t.port,this.xs=t.secure!==n}}function i(t){this.method=t.method||\"GET\",this.uri=t.uri,this.xd=!!t.xd,this.xs=!!t.xs,this.async=!1!==t.async,this.data=void 0!==t.data?t.data:null,this.agent=t.agent,this.isBinary=t.isBinary,this.supportsBinary=t.supportsBinary,this.enablesXDR=t.enablesXDR,this.requestTimeout=t.requestTimeout,this.pfx=t.pfx,this.key=t.key,this.passphrase=t.passphrase,this.cert=t.cert,this.ca=t.ca,this.ciphers=t.ciphers,this.rejectUnauthorized=t.rejectUnauthorized,this.extraHeaders=t.extraHeaders,this.create()}function s(){for(var t in i.requests)i.requests.hasOwnProperty(t)&&i.requests[t].abort()}var a=n(17),c=n(20),p=n(8),u=n(31),h=n(3)(\"engine.io-client:polling-xhr\");t.exports=o,t.exports.Request=i,u(o,c),o.prototype.supportsBinary=!0,o.prototype.request=function(t){return t=t||{},t.uri=this.uri(),t.xd=this.xd,t.xs=this.xs,t.agent=this.agent||!1,t.supportsBinary=this.supportsBinary,t.enablesXDR=this.enablesXDR,t.pfx=this.pfx,t.key=this.key,t.passphrase=this.passphrase,t.cert=this.cert,t.ca=this.ca,t.ciphers=this.ciphers,t.rejectUnauthorized=this.rejectUnauthorized,t.requestTimeout=this.requestTimeout,t.extraHeaders=this.extraHeaders,new i(t)},o.prototype.doWrite=function(t,e){var n=\"string\"!=typeof t&&void 0!==t,r=this.request({method:\"POST\",data:t,isBinary:n}),o=this;r.on(\"success\",e),r.on(\"error\",function(t){o.onError(\"xhr post error\",t)}),this.sendXhr=r},o.prototype.doPoll=function(){h(\"xhr poll\");var t=this.request(),e=this;t.on(\"data\",function(t){e.onData(t)}),t.on(\"error\",function(t){e.onError(\"xhr poll error\",t)}),this.pollXhr=t},p(i.prototype),i.prototype.create=function(){var t={agent:this.agent,xdomain:this.xd,xscheme:this.xs,enablesXDR:this.enablesXDR};t.pfx=this.pfx,t.key=this.key,t.passphrase=this.passphrase,t.cert=this.cert,t.ca=this.ca,t.ciphers=this.ciphers,t.rejectUnauthorized=this.rejectUnauthorized;var n=this.xhr=new a(t),r=this;try{h(\"xhr open %s: %s\",this.method,this.uri),n.open(this.method,this.uri,this.async);try{if(this.extraHeaders){n.setDisableHeaderCheck&&n.setDisableHeaderCheck(!0);for(var o in this.extraHeaders)this.extraHeaders.hasOwnProperty(o)&&n.setRequestHeader(o,this.extraHeaders[o])}}catch(s){}if(\"POST\"===this.method)try{this.isBinary?n.setRequestHeader(\"Content-type\",\"application/octet-stream\"):n.setRequestHeader(\"Content-type\",\"text/plain;charset=UTF-8\")}catch(s){}try{n.setRequestHeader(\"Accept\",\"*/*\")}catch(s){}\"withCredentials\"in n&&(n.withCredentials=!0),this.requestTimeout&&(n.timeout=this.requestTimeout),this.hasXDR()?(n.onload=function(){r.onLoad()},n.onerror=function(){r.onError(n.responseText)}):n.onreadystatechange=function(){if(2===n.readyState){var t;try{t=n.getResponseHeader(\"Content-Type\")}catch(e){}\"application/octet-stream\"===t&&(n.responseType=\"arraybuffer\")}4===n.readyState&&(200===n.status||1223===n.status?r.onLoad():setTimeout(function(){r.onError(n.status)},0))},h(\"xhr data %s\",this.data),n.send(this.data)}catch(s){return void setTimeout(function(){r.onError(s)},0)}e.document&&(this.index=i.requestsCount++,i.requests[this.index]=this)},i.prototype.onSuccess=function(){this.emit(\"success\"),this.cleanup()},i.prototype.onData=function(t){this.emit(\"data\",t),this.onSuccess()},i.prototype.onError=function(t){this.emit(\"error\",t),this.cleanup(!0)},i.prototype.cleanup=function(t){if(\"undefined\"!=typeof this.xhr&&null!==this.xhr){if(this.hasXDR()?this.xhr.onload=this.xhr.onerror=r:this.xhr.onreadystatechange=r,t)try{this.xhr.abort()}catch(n){}e.document&&delete i.requests[this.index],this.xhr=null}},i.prototype.onLoad=function(){var t;try{var e;try{e=this.xhr.getResponseHeader(\"Content-Type\")}catch(n){}t=\"application/octet-stream\"===e?this.xhr.response||this.xhr.responseText:this.xhr.responseText}catch(n){this.onError(n)}null!=t&&this.onData(t)},i.prototype.hasXDR=function(){return\"undefined\"!=typeof e.XDomainRequest&&!this.xs&&this.enablesXDR},i.prototype.abort=function(){this.cleanup()},i.requestsCount=0,i.requests={},e.document&&(e.attachEvent?e.attachEvent(\"onunload\",s):e.addEventListener&&e.addEventListener(\"beforeunload\",s,!1))}).call(e,function(){return this}())},function(t,e,n){function r(t){var e=t&&t.forceBase64;u&&!e||(this.supportsBinary=!1),o.call(this,t)}var o=n(21),i=n(30),s=n(22),a=n(31),c=n(32),p=n(3)(\"engine.io-client:polling\");t.exports=r;var u=function(){var t=n(17),e=new t({xdomain:!1});return null!=e.responseType}();a(r,o),r.prototype.name=\"polling\",r.prototype.doOpen=function(){this.poll()},r.prototype.pause=function(t){function e(){p(\"paused\"),n.readyState=\"paused\",t()}var n=this;if(this.readyState=\"pausing\",this.polling||!this.writable){var r=0;this.polling&&(p(\"we are currently polling - waiting to pause\"),r++,this.once(\"pollComplete\",function(){p(\"pre-pause polling complete\"),--r||e()})),this.writable||(p(\"we are currently writing - waiting to pause\"),r++,this.once(\"drain\",function(){p(\"pre-pause writing complete\"),--r||e()}))}else e()},r.prototype.poll=function(){p(\"polling\"),this.polling=!0,this.doPoll(),this.emit(\"poll\")},r.prototype.onData=function(t){var e=this;p(\"polling got data %s\",t);var n=function(t,n,r){return\"opening\"===e.readyState&&e.onOpen(),\"close\"===t.type?(e.onClose(),!1):void e.onPacket(t)};s.decodePayload(t,this.socket.binaryType,n),\"closed\"!==this.readyState&&(this.polling=!1,this.emit(\"pollComplete\"),\"open\"===this.readyState?this.poll():p('ignoring poll - transport state \"%s\"',this.readyState))},r.prototype.doClose=function(){function t(){p(\"writing close packet\"),e.write([{type:\"close\"}])}var e=this;\"open\"===this.readyState?(p(\"transport open - closing\"),t()):(p(\"transport not open - deferring close\"),this.once(\"open\",t))},r.prototype.write=function(t){var e=this;this.writable=!1;var n=function(){e.writable=!0,e.emit(\"drain\")};s.encodePayload(t,this.supportsBinary,function(t){e.doWrite(t,n)})},r.prototype.uri=function(){var t=this.query||{},e=this.secure?\"https\":\"http\",n=\"\";!1!==this.timestampRequests&&(t[this.timestampParam]=c()),this.supportsBinary||t.sid||(t.b64=1),t=i.encode(t),this.port&&(\"https\"===e&&443!==Number(this.port)||\"http\"===e&&80!==Number(this.port))&&(n=\":\"+this.port),t.length&&(t=\"?\"+t);var r=this.hostname.indexOf(\":\")!==-1;return e+\"://\"+(r?\"[\"+this.hostname+\"]\":this.hostname)+n+this.path+t}},function(t,e,n){function r(t){this.path=t.path,this.hostname=t.hostname,this.port=t.port,this.secure=t.secure,this.query=t.query,this.timestampParam=t.timestampParam,this.timestampRequests=t.timestampRequests,this.readyState=\"\",this.agent=t.agent||!1,this.socket=t.socket,this.enablesXDR=t.enablesXDR,this.pfx=t.pfx,this.key=t.key,this.passphrase=t.passphrase,this.cert=t.cert,this.ca=t.ca,this.ciphers=t.ciphers,this.rejectUnauthorized=t.rejectUnauthorized,this.forceNode=t.forceNode,this.extraHeaders=t.extraHeaders,this.localAddress=t.localAddress}var o=n(22),i=n(8);t.exports=r,i(r.prototype),r.prototype.onError=function(t,e){var n=new Error(t);return n.type=\"TransportError\",n.description=e,this.emit(\"error\",n),this},r.prototype.open=function(){return\"closed\"!==this.readyState&&\"\"!==this.readyState||(this.readyState=\"opening\",this.doOpen()),this},r.prototype.close=function(){return\"opening\"!==this.readyState&&\"open\"!==this.readyState||(this.doClose(),this.onClose()),this},r.prototype.send=function(t){if(\"open\"!==this.readyState)throw new Error(\"Transport not open\");this.write(t)},r.prototype.onOpen=function(){this.readyState=\"open\",this.writable=!0,this.emit(\"open\")},r.prototype.onData=function(t){var e=o.decodePacket(t,this.socket.binaryType);this.onPacket(e)},r.prototype.onPacket=function(t){this.emit(\"packet\",t)},r.prototype.onClose=function(){this.readyState=\"closed\",this.emit(\"close\")}},function(t,e,n){(function(t){function r(t,n){var r=\"b\"+e.packets[t.type]+t.data.data;return n(r)}function o(t,n,r){if(!n)return e.encodeBase64Packet(t,r);var o=t.data,i=new Uint8Array(o),s=new Uint8Array(1+o.byteLength);s[0]=v[t.type];for(var a=0;a<i.length;a++)s[a+1]=i[a];return r(s.buffer)}function i(t,n,r){if(!n)return e.encodeBase64Packet(t,r);var o=new FileReader;return o.onload=function(){t.data=o.result,e.encodePacket(t,n,!0,r)},o.readAsArrayBuffer(t.data)}function s(t,n,r){if(!n)return e.encodeBase64Packet(t,r);if(g)return i(t,n,r);var o=new Uint8Array(1);o[0]=v[t.type];var s=new k([o.buffer,t.data]);return r(s)}function a(t){try{t=d.decode(t,{strict:!1})}catch(e){return!1}return t}function c(t,e,n){for(var r=new Array(t.length),o=l(t.length,n),i=function(t,n,o){e(n,function(e,n){r[t]=n,o(e,r)})},s=0;s<t.length;s++)i(s,t[s],o)}var p,u=n(23),h=n(9),f=n(24),l=n(25),d=n(26);t&&t.ArrayBuffer&&(p=n(28));var y=\"undefined\"!=typeof navigator&&/Android/i.test(navigator.userAgent),m=\"undefined\"!=typeof navigator&&/PhantomJS/i.test(navigator.userAgent),g=y||m;e.protocol=3;var v=e.packets={open:0,close:1,ping:2,pong:3,message:4,upgrade:5,noop:6},b=u(v),w={type:\"error\",data:\"parser error\"},k=n(29);e.encodePacket=function(e,n,i,a){\"function\"==typeof n&&(a=n,n=!1),\"function\"==typeof i&&(a=i,i=null);var c=void 0===e.data?void 0:e.data.buffer||e.data;if(t.ArrayBuffer&&c instanceof ArrayBuffer)return o(e,n,a);if(k&&c instanceof t.Blob)return s(e,n,a);if(c&&c.base64)return r(e,a);var p=v[e.type];return void 0!==e.data&&(p+=i?d.encode(String(e.data),{strict:!1}):String(e.data)),a(\"\"+p)},e.encodeBase64Packet=function(n,r){var o=\"b\"+e.packets[n.type];if(k&&n.data instanceof t.Blob){var i=new FileReader;return i.onload=function(){var t=i.result.split(\",\")[1];r(o+t)},i.readAsDataURL(n.data)}var s;try{s=String.fromCharCode.apply(null,new Uint8Array(n.data))}catch(a){for(var c=new Uint8Array(n.data),p=new Array(c.length),u=0;u<c.length;u++)p[u]=c[u];s=String.fromCharCode.apply(null,p)}return o+=t.btoa(s),r(o)},e.decodePacket=function(t,n,r){if(void 0===t)return w;if(\"string\"==typeof t){if(\"b\"===t.charAt(0))return e.decodeBase64Packet(t.substr(1),n);if(r&&(t=a(t),t===!1))return w;var o=t.charAt(0);return Number(o)==o&&b[o]?t.length>1?{type:b[o],data:t.substring(1)}:{type:b[o]}:w}var i=new Uint8Array(t),o=i[0],s=f(t,1);return k&&\"blob\"===n&&(s=new k([s])),{type:b[o],data:s}},e.decodeBase64Packet=function(t,e){var n=b[t.charAt(0)];if(!p)return{type:n,data:{base64:!0,data:t.substr(1)}};var r=p.decode(t.substr(1));return\"blob\"===e&&k&&(r=new k([r])),{type:n,data:r}},e.encodePayload=function(t,n,r){function o(t){return t.length+\":\"+t}function i(t,r){e.encodePacket(t,!!s&&n,!1,function(t){r(null,o(t))})}\"function\"==typeof n&&(r=n,n=null);var s=h(t);return n&&s?k&&!g?e.encodePayloadAsBlob(t,r):e.encodePayloadAsArrayBuffer(t,r):t.length?void c(t,i,function(t,e){return r(e.join(\"\"))}):r(\"0:\")},e.decodePayload=function(t,n,r){if(\"string\"!=typeof t)return e.decodePayloadAsBinary(t,n,r);\"function\"==typeof n&&(r=n,n=null);var o;if(\"\"===t)return r(w,0,1);for(var i,s,a=\"\",c=0,p=t.length;c<p;c++){var u=t.charAt(c);if(\":\"===u){if(\"\"===a||a!=(i=Number(a)))return r(w,0,1);if(s=t.substr(c+1,i),a!=s.length)return r(w,0,1);if(s.length){if(o=e.decodePacket(s,n,!1),w.type===o.type&&w.data===o.data)return r(w,0,1);var h=r(o,c+i,p);if(!1===h)return}c+=i,a=\"\"}else a+=u}return\"\"!==a?r(w,0,1):void 0},e.encodePayloadAsArrayBuffer=function(t,n){function r(t,n){e.encodePacket(t,!0,!0,function(t){return n(null,t)})}return t.length?void c(t,r,function(t,e){var r=e.reduce(function(t,e){var n;return n=\"string\"==typeof e?e.length:e.byteLength,t+n.toString().length+n+2},0),o=new Uint8Array(r),i=0;return e.forEach(function(t){var e=\"string\"==typeof t,n=t;if(e){for(var r=new Uint8Array(t.length),s=0;s<t.length;s++)r[s]=t.charCodeAt(s);n=r.buffer}e?o[i++]=0:o[i++]=1;for(var a=n.byteLength.toString(),s=0;s<a.length;s++)o[i++]=parseInt(a[s]);o[i++]=255;for(var r=new Uint8Array(n),s=0;s<r.length;s++)o[i++]=r[s]}),n(o.buffer)}):n(new ArrayBuffer(0))},e.encodePayloadAsBlob=function(t,n){function r(t,n){e.encodePacket(t,!0,!0,function(t){var e=new Uint8Array(1);if(e[0]=1,\"string\"==typeof t){for(var r=new Uint8Array(t.length),o=0;o<t.length;o++)r[o]=t.charCodeAt(o);t=r.buffer,e[0]=0}for(var i=t instanceof ArrayBuffer?t.byteLength:t.size,s=i.toString(),a=new Uint8Array(s.length+1),o=0;o<s.length;o++)a[o]=parseInt(s[o]);if(a[s.length]=255,k){var c=new k([e.buffer,a.buffer,t]);n(null,c)}})}c(t,r,function(t,e){return n(new k(e))})},e.decodePayloadAsBinary=function(t,n,r){\"function\"==typeof n&&(r=n,n=null);for(var o=t,i=[];o.byteLength>0;){for(var s=new Uint8Array(o),a=0===s[0],c=\"\",p=1;255!==s[p];p++){if(c.length>310)return r(w,0,1);c+=s[p]}o=f(o,2+c.length),c=parseInt(c);var u=f(o,0,c);if(a)try{u=String.fromCharCode.apply(null,new Uint8Array(u))}catch(h){var l=new Uint8Array(u);u=\"\";for(var p=0;p<l.length;p++)u+=String.fromCharCode(l[p])}i.push(u),o=f(o,c)}var d=i.length;i.forEach(function(t,o){r(e.decodePacket(t,n,!0),o,d)})}}).call(e,function(){return this}())},function(t,e){t.exports=Object.keys||function(t){var e=[],n=Object.prototype.hasOwnProperty;for(var r in t)n.call(t,r)&&e.push(r);return e}},function(t,e){t.exports=function(t,e,n){var r=t.byteLength;if(e=e||0,n=n||r,t.slice)return t.slice(e,n);if(e<0&&(e+=r),n<0&&(n+=r),n>r&&(n=r),e>=r||e>=n||0===r)return new ArrayBuffer(0);for(var o=new Uint8Array(t),i=new Uint8Array(n-e),s=e,a=0;s<n;s++,a++)i[a]=o[s];return i.buffer}},function(t,e){function n(t,e,n){function o(t,r){if(o.count<=0)throw new Error(\"after called too many times\");--o.count,t?(i=!0,e(t),e=n):0!==o.count||i||e(null,r)}var i=!1;return n=n||r,o.count=t,0===t?e():o}function r(){}t.exports=n},function(t,e,n){var r;(function(t,o){!function(i){function s(t){for(var e,n,r=[],o=0,i=t.length;o<i;)e=t.charCodeAt(o++),e>=55296&&e<=56319&&o<i?(n=t.charCodeAt(o++),56320==(64512&n)?r.push(((1023&e)<<10)+(1023&n)+65536):(r.push(e),o--)):r.push(e);return r}function a(t){for(var e,n=t.length,r=-1,o=\"\";++r<n;)e=t[r],e>65535&&(e-=65536,o+=w(e>>>10&1023|55296),e=56320|1023&e),o+=w(e);return o}function c(t,e){if(t>=55296&&t<=57343){if(e)throw Error(\"Lone surrogate U+\"+t.toString(16).toUpperCase()+\" is not a scalar value\");return!1}return!0}function p(t,e){return w(t>>e&63|128)}function u(t,e){if(0==(4294967168&t))return w(t);var n=\"\";return 0==(4294965248&t)?n=w(t>>6&31|192):0==(4294901760&t)?(c(t,e)||(t=65533),n=w(t>>12&15|224),n+=p(t,6)):0==(4292870144&t)&&(n=w(t>>18&7|240),n+=p(t,12),n+=p(t,6)),n+=w(63&t|128)}function h(t,e){e=e||{};for(var n,r=!1!==e.strict,o=s(t),i=o.length,a=-1,c=\"\";++a<i;)n=o[a],c+=u(n,r);return c}function f(){if(b>=v)throw Error(\"Invalid byte index\");var t=255&g[b];if(b++,128==(192&t))return 63&t;throw Error(\"Invalid continuation byte\")}function l(t){var e,n,r,o,i;if(b>v)throw Error(\"Invalid byte index\");if(b==v)return!1;if(e=255&g[b],b++,0==(128&e))return e;if(192==(224&e)){if(n=f(),i=(31&e)<<6|n,i>=128)return i;throw Error(\"Invalid continuation byte\")}if(224==(240&e)){if(n=f(),r=f(),i=(15&e)<<12|n<<6|r,i>=2048)return c(i,t)?i:65533;throw Error(\"Invalid continuation byte\")}if(240==(248&e)&&(n=f(),r=f(),o=f(),i=(7&e)<<18|n<<12|r<<6|o,i>=65536&&i<=1114111))return i;throw Error(\"Invalid UTF-8 detected\")}function d(t,e){e=e||{};var n=!1!==e.strict;g=s(t),v=g.length,b=0;for(var r,o=[];(r=l(n))!==!1;)o.push(r);return a(o)}var y=\"object\"==typeof e&&e,m=(\"object\"==typeof t&&t&&t.exports==y&&t,\"object\"==typeof o&&o);m.global!==m&&m.window!==m||(i=m);var g,v,b,w=String.fromCharCode,k={version:\"2.1.2\",encode:h,decode:d};r=function(){return k}.call(e,n,e,t),!(void 0!==r&&(t.exports=r))}(this)}).call(e,n(27)(t),function(){return this}())},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children=[],t.webpackPolyfill=1),t}},function(t,e){!function(){\"use strict\";for(var t=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",n=new Uint8Array(256),r=0;r<t.length;r++)n[t.charCodeAt(r)]=r;e.encode=function(e){var n,r=new Uint8Array(e),o=r.length,i=\"\";for(n=0;n<o;n+=3)i+=t[r[n]>>2],i+=t[(3&r[n])<<4|r[n+1]>>4],i+=t[(15&r[n+1])<<2|r[n+2]>>6],i+=t[63&r[n+2]];return o%3===2?i=i.substring(0,i.length-1)+\"=\":o%3===1&&(i=i.substring(0,i.length-2)+\"==\"),i},e.decode=function(t){var e,r,o,i,s,a=.75*t.length,c=t.length,p=0;\"=\"===t[t.length-1]&&(a--,\"=\"===t[t.length-2]&&a--);var u=new ArrayBuffer(a),h=new Uint8Array(u);for(e=0;e<c;e+=4)r=n[t.charCodeAt(e)],o=n[t.charCodeAt(e+1)],i=n[t.charCodeAt(e+2)],s=n[t.charCodeAt(e+3)],h[p++]=r<<2|o>>4,h[p++]=(15&o)<<4|i>>2,h[p++]=(3&i)<<6|63&s;return u}}()},function(t,e){(function(e){function n(t){for(var e=0;e<t.length;e++){var n=t[e];if(n.buffer instanceof ArrayBuffer){var r=n.buffer;if(n.byteLength!==r.byteLength){var o=new Uint8Array(n.byteLength);o.set(new Uint8Array(r,n.byteOffset,n.byteLength)),r=o.buffer}t[e]=r}}}function r(t,e){e=e||{};var r=new i;n(t);for(var o=0;o<t.length;o++)r.append(t[o]);return e.type?r.getBlob(e.type):r.getBlob()}function o(t,e){return n(t),new Blob(t,e||{})}var i=e.BlobBuilder||e.WebKitBlobBuilder||e.MSBlobBuilder||e.MozBlobBuilder,s=function(){try{var t=new Blob([\"hi\"]);return 2===t.size}catch(e){return!1}}(),a=s&&function(){try{var t=new Blob([new Uint8Array([1,2])]);return 2===t.size}catch(e){return!1}}(),c=i&&i.prototype.append&&i.prototype.getBlob;t.exports=function(){return s?a?e.Blob:o:c?r:void 0}()}).call(e,function(){return this}())},function(t,e){e.encode=function(t){var e=\"\";for(var n in t)t.hasOwnProperty(n)&&(e.length&&(e+=\"&\"),e+=encodeURIComponent(n)+\"=\"+encodeURIComponent(t[n]));return e},e.decode=function(t){for(var e={},n=t.split(\"&\"),r=0,o=n.length;r<o;r++){var i=n[r].split(\"=\");e[decodeURIComponent(i[0])]=decodeURIComponent(i[1])}return e}},function(t,e){t.exports=function(t,e){var n=function(){};n.prototype=e.prototype,t.prototype=new n,t.prototype.constructor=t}},function(t,e){\"use strict\";function n(t){var e=\"\";do e=s[t%a]+e,t=Math.floor(t/a);while(t>0);return e}function r(t){var e=0;for(u=0;u<t.length;u++)e=e*a+c[t.charAt(u)];return e}function o(){var t=n(+new Date);return t!==i?(p=0,i=t):t+\".\"+n(p++)}for(var i,s=\"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_\".split(\"\"),a=64,c={},p=0,u=0;u<a;u++)c[s[u]]=u;o.encode=n,o.decode=r,t.exports=o},function(t,e,n){(function(e){function r(){}function o(t){i.call(this,t),this.query=this.query||{},a||(e.___eio||(e.___eio=[]),a=e.___eio),this.index=a.length;var n=this;a.push(function(t){n.onData(t)}),this.query.j=this.index,e.document&&e.addEventListener&&e.addEventListener(\"beforeunload\",function(){n.script&&(n.script.onerror=r)},!1)}var i=n(20),s=n(31);t.exports=o;var a,c=/\\n/g,p=/\\\\n/g;s(o,i),o.prototype.supportsBinary=!1,o.prototype.doClose=function(){this.script&&(this.script.parentNode.removeChild(this.script),this.script=null),this.form&&(this.form.parentNode.removeChild(this.form),this.form=null,this.iframe=null),i.prototype.doClose.call(this)},o.prototype.doPoll=function(){var t=this,e=document.createElement(\"script\");this.script&&(this.script.parentNode.removeChild(this.script),this.script=null),e.async=!0,e.src=this.uri(),e.onerror=function(e){t.onError(\"jsonp poll error\",e)};var n=document.getElementsByTagName(\"script\")[0];n?n.parentNode.insertBefore(e,n):(document.head||document.body).appendChild(e),this.script=e;var r=\"undefined\"!=typeof navigator&&/gecko/i.test(navigator.userAgent);r&&setTimeout(function(){var t=document.createElement(\"iframe\");document.body.appendChild(t),document.body.removeChild(t)},100)},o.prototype.doWrite=function(t,e){function n(){r(),e()}function r(){if(o.iframe)try{o.form.removeChild(o.iframe)}catch(t){o.onError(\"jsonp polling iframe removal error\",t)}try{var e='<iframe src=\"javascript:0\" name=\"'+o.iframeId+'\">';i=document.createElement(e)}catch(t){i=document.createElement(\"iframe\"),i.name=o.iframeId,i.src=\"javascript:0\"}i.id=o.iframeId,o.form.appendChild(i),o.iframe=i}var o=this;if(!this.form){var i,s=document.createElement(\"form\"),a=document.createElement(\"textarea\"),u=this.iframeId=\"eio_iframe_\"+this.index;s.className=\"socketio\",s.style.position=\"absolute\",s.style.top=\"-1000px\",s.style.left=\"-1000px\",s.target=u,s.method=\"POST\",s.setAttribute(\"accept-charset\",\"utf-8\"),a.name=\"d\",s.appendChild(a),document.body.appendChild(s),this.form=s,this.area=a}this.form.action=this.uri(),r(),t=t.replace(p,\"\\\\\\n\"),this.area.value=t.replace(c,\"\\\\n\");try{this.form.submit()}catch(h){}this.iframe.attachEvent?this.iframe.onreadystatechange=function(){\"complete\"===o.iframe.readyState&&n()}:this.iframe.onload=n}}).call(e,function(){return this}())},function(t,e,n){(function(e){function r(t){var e=t&&t.forceBase64;e&&(this.supportsBinary=!1),this.perMessageDeflate=t.perMessageDeflate,this.usingBrowserWebSocket=h&&!t.forceNode,this.protocols=t.protocols,this.usingBrowserWebSocket||(l=o),i.call(this,t)}var o,i=n(21),s=n(22),a=n(30),c=n(31),p=n(32),u=n(3)(\"engine.io-client:websocket\"),h=e.WebSocket||e.MozWebSocket;if(\"undefined\"==typeof window)try{o=n(35)}catch(f){}var l=h;l||\"undefined\"!=typeof window||(l=o),t.exports=r,c(r,i),r.prototype.name=\"websocket\",r.prototype.supportsBinary=!0,r.prototype.doOpen=function(){if(this.check()){var t=this.uri(),e=this.protocols,n={agent:this.agent,perMessageDeflate:this.perMessageDeflate};n.pfx=this.pfx,n.key=this.key,n.passphrase=this.passphrase,n.cert=this.cert,n.ca=this.ca,n.ciphers=this.ciphers,n.rejectUnauthorized=this.rejectUnauthorized,this.extraHeaders&&(n.headers=this.extraHeaders),this.localAddress&&(n.localAddress=this.localAddress);try{this.ws=this.usingBrowserWebSocket?e?new l(t,e):new l(t):new l(t,e,n)}catch(r){return this.emit(\"error\",r)}void 0===this.ws.binaryType&&(this.supportsBinary=!1),this.ws.supports&&this.ws.supports.binary?(this.supportsBinary=!0,this.ws.binaryType=\"nodebuffer\"):this.ws.binaryType=\"arraybuffer\",this.addEventListeners()}},r.prototype.addEventListeners=function(){var t=this;this.ws.onopen=function(){t.onOpen()},this.ws.onclose=function(){t.onClose()},this.ws.onmessage=function(e){t.onData(e.data)},this.ws.onerror=function(e){t.onError(\"websocket error\",e)}},r.prototype.write=function(t){function n(){r.emit(\"flush\"),setTimeout(function(){r.writable=!0,r.emit(\"drain\")},0)}var r=this;this.writable=!1;for(var o=t.length,i=0,a=o;i<a;i++)!function(t){s.encodePacket(t,r.supportsBinary,function(i){if(!r.usingBrowserWebSocket){var s={};if(t.options&&(s.compress=t.options.compress),r.perMessageDeflate){var a=\"string\"==typeof i?e.Buffer.byteLength(i):i.length;a<r.perMessageDeflate.threshold&&(s.compress=!1)}}try{r.usingBrowserWebSocket?r.ws.send(i):r.ws.send(i,s)}catch(c){u(\"websocket closed before onclose event\")}--o||n()})}(t[i])},r.prototype.onClose=function(){i.prototype.onClose.call(this)},r.prototype.doClose=function(){\"undefined\"!=typeof this.ws&&this.ws.close()},r.prototype.uri=function(){var t=this.query||{},e=this.secure?\"wss\":\"ws\",n=\"\";this.port&&(\"wss\"===e&&443!==Number(this.port)||\"ws\"===e&&80!==Number(this.port))&&(n=\":\"+this.port),this.timestampRequests&&(t[this.timestampParam]=p()),this.supportsBinary||(t.b64=1),t=a.encode(t),t.length&&(t=\"?\"+t);var r=this.hostname.indexOf(\":\")!==-1;return e+\"://\"+(r?\"[\"+this.hostname+\"]\":this.hostname)+n+this.path+t},r.prototype.check=function(){return!(!l||\"__initialize\"in l&&this.name===r.prototype.name)}}).call(e,function(){return this}())},function(t,e){},function(t,e){var n=[].indexOf;t.exports=function(t,e){if(n)return t.indexOf(e);for(var r=0;r<t.length;++r)if(t[r]===e)return r;return-1}},function(t,e,n){\"use strict\";function r(t,e,n){this.io=t,this.nsp=e,this.json=this,this.ids=0,this.acks={},this.receiveBuffer=[],this.sendBuffer=[],this.connected=!1,this.disconnected=!0,n&&n.query&&(this.query=n.query),this.io.autoConnect&&this.open()}var o=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},i=n(7),s=n(8),a=n(38),c=n(39),p=n(40),u=n(3)(\"socket.io-client:socket\"),h=n(30);t.exports=e=r;var f={connect:1,connect_error:1,connect_timeout:1,connecting:1,disconnect:1,error:1,reconnect:1,reconnect_attempt:1,reconnect_failed:1,reconnect_error:1,reconnecting:1,ping:1,pong:1},l=s.prototype.emit;s(r.prototype),r.prototype.subEvents=function(){if(!this.subs){var t=this.io;this.subs=[c(t,\"open\",p(this,\"onopen\")),c(t,\"packet\",p(this,\"onpacket\")),c(t,\"close\",p(this,\"onclose\"))]}},r.prototype.open=r.prototype.connect=function(){return this.connected?this:(this.subEvents(),this.io.open(),\"open\"===this.io.readyState&&this.onopen(),this.emit(\"connecting\"),this)},r.prototype.send=function(){var t=a(arguments);return t.unshift(\"message\"),this.emit.apply(this,t),this},r.prototype.emit=function(t){if(f.hasOwnProperty(t))return l.apply(this,arguments),this;var e=a(arguments),n={type:i.EVENT,data:e};return n.options={},n.options.compress=!this.flags||!1!==this.flags.compress,\"function\"==typeof e[e.length-1]&&(u(\"emitting packet with ack id %d\",this.ids),this.acks[this.ids]=e.pop(),n.id=this.ids++),this.connected?this.packet(n):this.sendBuffer.push(n),delete this.flags,this},r.prototype.packet=function(t){t.nsp=this.nsp,this.io.packet(t)},r.prototype.onopen=function(){if(u(\"transport is open - connecting\"),\"/\"!==this.nsp)if(this.query){var t=\"object\"===o(this.query)?h.encode(this.query):this.query;u(\"sending connect packet with query %s\",t),this.packet({type:i.CONNECT,query:t})}else this.packet({type:i.CONNECT})},r.prototype.onclose=function(t){u(\"close (%s)\",t),this.connected=!1,this.disconnected=!0,delete this.id,this.emit(\"disconnect\",t)},r.prototype.onpacket=function(t){if(t.nsp===this.nsp)switch(t.type){case i.CONNECT:this.onconnect();break;case i.EVENT:this.onevent(t);break;case i.BINARY_EVENT:this.onevent(t);break;case i.ACK:this.onack(t);break;case i.BINARY_ACK:this.onack(t);break;case i.DISCONNECT:this.ondisconnect();break;case i.ERROR:this.emit(\"error\",t.data)}},r.prototype.onevent=function(t){var e=t.data||[];u(\"emitting event %j\",e),null!=t.id&&(u(\"attaching ack callback to event\"),e.push(this.ack(t.id))),this.connected?l.apply(this,e):this.receiveBuffer.push(e)},r.prototype.ack=function(t){var e=this,n=!1;return function(){if(!n){n=!0;var r=a(arguments);u(\"sending ack %j\",r),e.packet({type:i.ACK,id:t,data:r})}}},r.prototype.onack=function(t){var e=this.acks[t.id];\"function\"==typeof e?(u(\"calling ack %s with %j\",t.id,t.data),e.apply(this,t.data),delete this.acks[t.id]):u(\"bad ack %s\",t.id)},r.prototype.onconnect=function(){this.connected=!0,this.disconnected=!1,this.emit(\"connect\"),this.emitBuffered()},r.prototype.emitBuffered=function(){var t;for(t=0;t<this.receiveBuffer.length;t++)l.apply(this,this.receiveBuffer[t]);for(this.receiveBuffer=[],t=0;t<this.sendBuffer.length;t++)this.packet(this.sendBuffer[t]);this.sendBuffer=[]},r.prototype.ondisconnect=function(){u(\"server disconnect (%s)\",this.nsp),this.destroy(),this.onclose(\"io server disconnect\")},r.prototype.destroy=function(){if(this.subs){for(var t=0;t<this.subs.length;t++)this.subs[t].destroy();this.subs=null}this.io.destroy(this)},r.prototype.close=r.prototype.disconnect=function(){return this.connected&&(u(\"performing disconnect (%s)\",this.nsp),this.packet({type:i.DISCONNECT})),this.destroy(),this.connected&&this.onclose(\"io client disconnect\"),this},r.prototype.compress=function(t){return this.flags=this.flags||{},this.flags.compress=t,this}},function(t,e){function n(t,e){var n=[];e=e||0;for(var r=e||0;r<t.length;r++)n[r-e]=t[r];return n}t.exports=n},function(t,e){\"use strict\";function n(t,e,n){return t.on(e,n),{destroy:function(){t.removeListener(e,n)}}}t.exports=n},function(t,e){var n=[].slice;t.exports=function(t,e){if(\"string\"==typeof e&&(e=t[e]),\"function\"!=typeof e)throw new Error(\"bind() requires a function\");var r=n.call(arguments,2);return function(){return e.apply(t,r.concat(n.call(arguments)))}}},function(t,e){function n(t){t=t||{},this.ms=t.min||100,this.max=t.max||1e4,this.factor=t.factor||2,this.jitter=t.jitter>0&&t.jitter<=1?t.jitter:0,this.attempts=0}t.exports=n,n.prototype.duration=function(){var t=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var e=Math.random(),n=Math.floor(e*this.jitter*t);t=0==(1&Math.floor(10*e))?t-n:t+n}return 0|Math.min(t,this.max)},n.prototype.reset=function(){this.attempts=0},n.prototype.setMin=function(t){this.ms=t},n.prototype.setMax=function(t){this.max=t},n.prototype.setJitter=function(t){this.jitter=t}}])});\n//# sourceMappingURL=socket.io.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/socket.io/node_modules/socket.io-client/dist/socket.io.js\n// module id = 8\n// module chunks = 0","(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.Terminal = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar CircularList_1 = require(\"./utils/CircularList\");\nexports.CHAR_DATA_ATTR_INDEX = 0;\nexports.CHAR_DATA_CHAR_INDEX = 1;\nexports.CHAR_DATA_WIDTH_INDEX = 2;\nexports.CHAR_DATA_CODE_INDEX = 3;\nexports.MAX_BUFFER_SIZE = 4294967295;\nvar Buffer = (function () {\n function Buffer(_terminal, _hasScrollback) {\n this._terminal = _terminal;\n this._hasScrollback = _hasScrollback;\n this.clear();\n }\n Object.defineProperty(Buffer.prototype, \"lines\", {\n get: function () {\n return this._lines;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Buffer.prototype, \"hasScrollback\", {\n get: function () {\n return this._hasScrollback && this.lines.maxLength > this._terminal.rows;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Buffer.prototype, \"isCursorInViewport\", {\n get: function () {\n var absoluteY = this.ybase + this.y;\n var relativeY = absoluteY - this.ydisp;\n return (relativeY >= 0 && relativeY < this._terminal.rows);\n },\n enumerable: true,\n configurable: true\n });\n Buffer.prototype._getCorrectBufferLength = function (rows) {\n if (!this._hasScrollback) {\n return rows;\n }\n var correctBufferLength = rows + this._terminal.options.scrollback;\n return correctBufferLength > exports.MAX_BUFFER_SIZE ? exports.MAX_BUFFER_SIZE : correctBufferLength;\n };\n Buffer.prototype.fillViewportRows = function () {\n if (this._lines.length === 0) {\n var i = this._terminal.rows;\n while (i--) {\n this.lines.push(this._terminal.blankLine());\n }\n }\n };\n Buffer.prototype.clear = function () {\n this.ydisp = 0;\n this.ybase = 0;\n this.y = 0;\n this.x = 0;\n this._lines = new CircularList_1.CircularList(this._getCorrectBufferLength(this._terminal.rows));\n this.scrollTop = 0;\n this.scrollBottom = this._terminal.rows - 1;\n this.setupTabStops();\n };\n Buffer.prototype.resize = function (newCols, newRows) {\n var newMaxLength = this._getCorrectBufferLength(newRows);\n if (newMaxLength > this._lines.maxLength) {\n this._lines.maxLength = newMaxLength;\n }\n if (this._lines.length > 0) {\n if (this._terminal.cols < newCols) {\n var ch = [this._terminal.defAttr, ' ', 1, 32];\n for (var i = 0; i < this._lines.length; i++) {\n if (this._lines.get(i) === undefined) {\n this._lines.set(i, this._terminal.blankLine(undefined, undefined, newCols));\n }\n while (this._lines.get(i).length < newCols) {\n this._lines.get(i).push(ch);\n }\n }\n }\n var addToY = 0;\n if (this._terminal.rows < newRows) {\n for (var y = this._terminal.rows; y < newRows; y++) {\n if (this._lines.length < newRows + this.ybase) {\n if (this.ybase > 0 && this._lines.length <= this.ybase + this.y + addToY + 1) {\n this.ybase--;\n addToY++;\n if (this.ydisp > 0) {\n this.ydisp--;\n }\n }\n else {\n this._lines.push(this._terminal.blankLine(undefined, undefined, newCols));\n }\n }\n }\n }\n else {\n for (var y = this._terminal.rows; y > newRows; y--) {\n if (this._lines.length > newRows + this.ybase) {\n if (this._lines.length > this.ybase + this.y + 1) {\n this._lines.pop();\n }\n else {\n this.ybase++;\n this.ydisp++;\n }\n }\n }\n }\n if (newMaxLength < this._lines.maxLength) {\n var amountToTrim = this._lines.length - newMaxLength;\n if (amountToTrim > 0) {\n this._lines.trimStart(amountToTrim);\n this.ybase = Math.max(this.ybase - amountToTrim, 0);\n this.ydisp = Math.max(this.ydisp - amountToTrim, 0);\n }\n this._lines.maxLength = newMaxLength;\n }\n if (this.y >= newRows) {\n this.y = newRows - 1;\n }\n if (addToY) {\n this.y += addToY;\n }\n if (this.x >= newCols) {\n this.x = newCols - 1;\n }\n this.scrollTop = 0;\n }\n this.scrollBottom = newRows - 1;\n };\n Buffer.prototype.translateBufferLineToString = function (lineIndex, trimRight, startCol, endCol) {\n if (startCol === void 0) { startCol = 0; }\n if (endCol === void 0) { endCol = null; }\n var lineString = '';\n var line = this.lines.get(lineIndex);\n if (!line) {\n return '';\n }\n var startIndex = startCol;\n endCol = endCol || line.length;\n var endIndex = endCol;\n for (var i = 0; i < line.length; i++) {\n var char = line[i];\n lineString += char[exports.CHAR_DATA_CHAR_INDEX];\n if (char[exports.CHAR_DATA_WIDTH_INDEX] === 0) {\n if (startCol >= i) {\n startIndex--;\n }\n if (endCol >= i) {\n endIndex--;\n }\n }\n else {\n if (char[exports.CHAR_DATA_CHAR_INDEX].length > 1) {\n if (startCol > i) {\n startIndex += char[exports.CHAR_DATA_CHAR_INDEX].length - 1;\n }\n if (endCol > i) {\n endIndex += char[exports.CHAR_DATA_CHAR_INDEX].length - 1;\n }\n }\n }\n }\n if (trimRight) {\n var rightWhitespaceIndex = lineString.search(/\\s+$/);\n if (rightWhitespaceIndex !== -1) {\n endIndex = Math.min(endIndex, rightWhitespaceIndex);\n }\n if (endIndex <= startIndex) {\n return '';\n }\n }\n return lineString.substring(startIndex, endIndex);\n };\n Buffer.prototype.setupTabStops = function (i) {\n if (i != null) {\n if (!this.tabs[i]) {\n i = this.prevStop(i);\n }\n }\n else {\n this.tabs = {};\n i = 0;\n }\n for (; i < this._terminal.cols; i += this._terminal.options.tabStopWidth) {\n this.tabs[i] = true;\n }\n };\n Buffer.prototype.prevStop = function (x) {\n if (x == null) {\n x = this.x;\n }\n while (!this.tabs[--x] && x > 0)\n ;\n return x >= this._terminal.cols ? this._terminal.cols - 1 : x < 0 ? 0 : x;\n };\n Buffer.prototype.nextStop = function (x) {\n if (x == null) {\n x = this.x;\n }\n while (!this.tabs[++x] && x < this._terminal.cols)\n ;\n return x >= this._terminal.cols ? this._terminal.cols - 1 : x < 0 ? 0 : x;\n };\n return Buffer;\n}());\nexports.Buffer = Buffer;\n\n\n\n},{\"./utils/CircularList\":30}],2:[function(require,module,exports){\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Buffer_1 = require(\"./Buffer\");\nvar EventEmitter_1 = require(\"./EventEmitter\");\nvar BufferSet = (function (_super) {\n __extends(BufferSet, _super);\n function BufferSet(_terminal) {\n var _this = _super.call(this) || this;\n _this._terminal = _terminal;\n _this._normal = new Buffer_1.Buffer(_this._terminal, true);\n _this._normal.fillViewportRows();\n _this._alt = new Buffer_1.Buffer(_this._terminal, false);\n _this._activeBuffer = _this._normal;\n _this.setupTabStops();\n return _this;\n }\n Object.defineProperty(BufferSet.prototype, \"alt\", {\n get: function () {\n return this._alt;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BufferSet.prototype, \"active\", {\n get: function () {\n return this._activeBuffer;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BufferSet.prototype, \"normal\", {\n get: function () {\n return this._normal;\n },\n enumerable: true,\n configurable: true\n });\n BufferSet.prototype.activateNormalBuffer = function () {\n this._alt.clear();\n this._activeBuffer = this._normal;\n this.emit('activate', this._normal);\n };\n BufferSet.prototype.activateAltBuffer = function () {\n this._alt.fillViewportRows();\n this._activeBuffer = this._alt;\n this.emit('activate', this._alt);\n };\n BufferSet.prototype.resize = function (newCols, newRows) {\n this._normal.resize(newCols, newRows);\n this._alt.resize(newCols, newRows);\n };\n BufferSet.prototype.setupTabStops = function (i) {\n this._normal.setupTabStops(i);\n this._alt.setupTabStops(i);\n };\n return BufferSet;\n}(EventEmitter_1.EventEmitter));\nexports.BufferSet = BufferSet;\n\n\n\n},{\"./Buffer\":1,\"./EventEmitter\":7}],3:[function(require,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.wcwidth = (function (opts) {\n var COMBINING_BMP = [\n [0x0300, 0x036F], [0x0483, 0x0486], [0x0488, 0x0489],\n [0x0591, 0x05BD], [0x05BF, 0x05BF], [0x05C1, 0x05C2],\n [0x05C4, 0x05C5], [0x05C7, 0x05C7], [0x0600, 0x0603],\n [0x0610, 0x0615], [0x064B, 0x065E], [0x0670, 0x0670],\n [0x06D6, 0x06E4], [0x06E7, 0x06E8], [0x06EA, 0x06ED],\n [0x070F, 0x070F], [0x0711, 0x0711], [0x0730, 0x074A],\n [0x07A6, 0x07B0], [0x07EB, 0x07F3], [0x0901, 0x0902],\n [0x093C, 0x093C], [0x0941, 0x0948], [0x094D, 0x094D],\n [0x0951, 0x0954], [0x0962, 0x0963], [0x0981, 0x0981],\n [0x09BC, 0x09BC], [0x09C1, 0x09C4], [0x09CD, 0x09CD],\n [0x09E2, 0x09E3], [0x0A01, 0x0A02], [0x0A3C, 0x0A3C],\n [0x0A41, 0x0A42], [0x0A47, 0x0A48], [0x0A4B, 0x0A4D],\n [0x0A70, 0x0A71], [0x0A81, 0x0A82], [0x0ABC, 0x0ABC],\n [0x0AC1, 0x0AC5], [0x0AC7, 0x0AC8], [0x0ACD, 0x0ACD],\n [0x0AE2, 0x0AE3], [0x0B01, 0x0B01], [0x0B3C, 0x0B3C],\n [0x0B3F, 0x0B3F], [0x0B41, 0x0B43], [0x0B4D, 0x0B4D],\n [0x0B56, 0x0B56], [0x0B82, 0x0B82], [0x0BC0, 0x0BC0],\n [0x0BCD, 0x0BCD], [0x0C3E, 0x0C40], [0x0C46, 0x0C48],\n [0x0C4A, 0x0C4D], [0x0C55, 0x0C56], [0x0CBC, 0x0CBC],\n [0x0CBF, 0x0CBF], [0x0CC6, 0x0CC6], [0x0CCC, 0x0CCD],\n [0x0CE2, 0x0CE3], [0x0D41, 0x0D43], [0x0D4D, 0x0D4D],\n [0x0DCA, 0x0DCA], [0x0DD2, 0x0DD4], [0x0DD6, 0x0DD6],\n [0x0E31, 0x0E31], [0x0E34, 0x0E3A], [0x0E47, 0x0E4E],\n [0x0EB1, 0x0EB1], [0x0EB4, 0x0EB9], [0x0EBB, 0x0EBC],\n [0x0EC8, 0x0ECD], [0x0F18, 0x0F19], [0x0F35, 0x0F35],\n [0x0F37, 0x0F37], [0x0F39, 0x0F39], [0x0F71, 0x0F7E],\n [0x0F80, 0x0F84], [0x0F86, 0x0F87], [0x0F90, 0x0F97],\n [0x0F99, 0x0FBC], [0x0FC6, 0x0FC6], [0x102D, 0x1030],\n [0x1032, 0x1032], [0x1036, 0x1037], [0x1039, 0x1039],\n [0x1058, 0x1059], [0x1160, 0x11FF], [0x135F, 0x135F],\n [0x1712, 0x1714], [0x1732, 0x1734], [0x1752, 0x1753],\n [0x1772, 0x1773], [0x17B4, 0x17B5], [0x17B7, 0x17BD],\n [0x17C6, 0x17C6], [0x17C9, 0x17D3], [0x17DD, 0x17DD],\n [0x180B, 0x180D], [0x18A9, 0x18A9], [0x1920, 0x1922],\n [0x1927, 0x1928], [0x1932, 0x1932], [0x1939, 0x193B],\n [0x1A17, 0x1A18], [0x1B00, 0x1B03], [0x1B34, 0x1B34],\n [0x1B36, 0x1B3A], [0x1B3C, 0x1B3C], [0x1B42, 0x1B42],\n [0x1B6B, 0x1B73], [0x1DC0, 0x1DCA], [0x1DFE, 0x1DFF],\n [0x200B, 0x200F], [0x202A, 0x202E], [0x2060, 0x2063],\n [0x206A, 0x206F], [0x20D0, 0x20EF], [0x302A, 0x302F],\n [0x3099, 0x309A], [0xA806, 0xA806], [0xA80B, 0xA80B],\n [0xA825, 0xA826], [0xFB1E, 0xFB1E], [0xFE00, 0xFE0F],\n [0xFE20, 0xFE23], [0xFEFF, 0xFEFF], [0xFFF9, 0xFFFB],\n ];\n var COMBINING_HIGH = [\n [0x10A01, 0x10A03], [0x10A05, 0x10A06], [0x10A0C, 0x10A0F],\n [0x10A38, 0x10A3A], [0x10A3F, 0x10A3F], [0x1D167, 0x1D169],\n [0x1D173, 0x1D182], [0x1D185, 0x1D18B], [0x1D1AA, 0x1D1AD],\n [0x1D242, 0x1D244], [0xE0001, 0xE0001], [0xE0020, 0xE007F],\n [0xE0100, 0xE01EF]\n ];\n function bisearch(ucs, data) {\n var min = 0;\n var max = data.length - 1;\n var mid;\n if (ucs < data[0][0] || ucs > data[max][1])\n return false;\n while (max >= min) {\n mid = (min + max) >> 1;\n if (ucs > data[mid][1])\n min = mid + 1;\n else if (ucs < data[mid][0])\n max = mid - 1;\n else\n return true;\n }\n return false;\n }\n function wcwidthBMP(ucs) {\n if (ucs === 0)\n return opts.nul;\n if (ucs < 32 || (ucs >= 0x7f && ucs < 0xa0))\n return opts.control;\n if (bisearch(ucs, COMBINING_BMP))\n return 0;\n if (isWideBMP(ucs)) {\n return 2;\n }\n return 1;\n }\n function isWideBMP(ucs) {\n return (ucs >= 0x1100 && (ucs <= 0x115f ||\n ucs === 0x2329 ||\n ucs === 0x232a ||\n (ucs >= 0x2e80 && ucs <= 0xa4cf && ucs !== 0x303f) ||\n (ucs >= 0xac00 && ucs <= 0xd7a3) ||\n (ucs >= 0xf900 && ucs <= 0xfaff) ||\n (ucs >= 0xfe10 && ucs <= 0xfe19) ||\n (ucs >= 0xfe30 && ucs <= 0xfe6f) ||\n (ucs >= 0xff00 && ucs <= 0xff60) ||\n (ucs >= 0xffe0 && ucs <= 0xffe6)));\n }\n function wcwidthHigh(ucs) {\n if (bisearch(ucs, COMBINING_HIGH))\n return 0;\n if ((ucs >= 0x20000 && ucs <= 0x2fffd) || (ucs >= 0x30000 && ucs <= 0x3fffd)) {\n return 2;\n }\n return 1;\n }\n var control = opts.control | 0;\n var table = null;\n function init_table() {\n var CODEPOINTS = 65536;\n var BITWIDTH = 2;\n var ITEMSIZE = 32;\n var CONTAINERSIZE = CODEPOINTS * BITWIDTH / ITEMSIZE;\n var CODEPOINTS_PER_ITEM = ITEMSIZE / BITWIDTH;\n table = (typeof Uint32Array === 'undefined')\n ? new Array(CONTAINERSIZE)\n : new Uint32Array(CONTAINERSIZE);\n for (var i = 0; i < CONTAINERSIZE; ++i) {\n var num = 0;\n var pos = CODEPOINTS_PER_ITEM;\n while (pos--)\n num = (num << 2) | wcwidthBMP(CODEPOINTS_PER_ITEM * i + pos);\n table[i] = num;\n }\n return table;\n }\n return function (num) {\n num = num | 0;\n if (num < 32)\n return control | 0;\n if (num < 127)\n return 1;\n var t = table || init_table();\n if (num < 65536)\n return t[num >> 4] >> ((num & 15) << 1) & 3;\n return wcwidthHigh(num);\n };\n})({ nul: 0, control: 0 });\n\n\n\n},{}],4:[function(require,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CHARSETS = {};\nexports.DEFAULT_CHARSET = exports.CHARSETS['B'];\nexports.CHARSETS['0'] = {\n '`': '\\u25c6',\n 'a': '\\u2592',\n 'b': '\\u0009',\n 'c': '\\u000c',\n 'd': '\\u000d',\n 'e': '\\u000a',\n 'f': '\\u00b0',\n 'g': '\\u00b1',\n 'h': '\\u2424',\n 'i': '\\u000b',\n 'j': '\\u2518',\n 'k': '\\u2510',\n 'l': '\\u250c',\n 'm': '\\u2514',\n 'n': '\\u253c',\n 'o': '\\u23ba',\n 'p': '\\u23bb',\n 'q': '\\u2500',\n 'r': '\\u23bc',\n 's': '\\u23bd',\n 't': '\\u251c',\n 'u': '\\u2524',\n 'v': '\\u2534',\n 'w': '\\u252c',\n 'x': '\\u2502',\n 'y': '\\u2264',\n 'z': '\\u2265',\n '{': '\\u03c0',\n '|': '\\u2260',\n '}': '\\u00a3',\n '~': '\\u00b7'\n};\nexports.CHARSETS['A'] = {\n '#': '£'\n};\nexports.CHARSETS['B'] = null;\nexports.CHARSETS['4'] = {\n '#': '£',\n '@': '¾',\n '[': 'ij',\n '\\\\': '½',\n ']': '|',\n '{': '¨',\n '|': 'f',\n '}': '¼',\n '~': '´'\n};\nexports.CHARSETS['C'] =\n exports.CHARSETS['5'] = {\n '[': 'Ä',\n '\\\\': 'Ö',\n ']': 'Å',\n '^': 'Ü',\n '`': 'é',\n '{': 'ä',\n '|': 'ö',\n '}': 'å',\n '~': 'ü'\n };\nexports.CHARSETS['R'] = {\n '#': '£',\n '@': 'à',\n '[': '°',\n '\\\\': 'ç',\n ']': '§',\n '{': 'é',\n '|': 'ù',\n '}': 'è',\n '~': '¨'\n};\nexports.CHARSETS['Q'] = {\n '@': 'à',\n '[': 'â',\n '\\\\': 'ç',\n ']': 'ê',\n '^': 'î',\n '`': 'ô',\n '{': 'é',\n '|': 'ù',\n '}': 'è',\n '~': 'û'\n};\nexports.CHARSETS['K'] = {\n '@': '§',\n '[': 'Ä',\n '\\\\': 'Ö',\n ']': 'Ü',\n '{': 'ä',\n '|': 'ö',\n '}': 'ü',\n '~': 'ß'\n};\nexports.CHARSETS['Y'] = {\n '#': '£',\n '@': '§',\n '[': '°',\n '\\\\': 'ç',\n ']': 'é',\n '`': 'ù',\n '{': 'à',\n '|': 'ò',\n '}': 'è',\n '~': 'ì'\n};\nexports.CHARSETS['E'] =\n exports.CHARSETS['6'] = {\n '@': 'Ä',\n '[': 'Æ',\n '\\\\': 'Ø',\n ']': 'Å',\n '^': 'Ü',\n '`': 'ä',\n '{': 'æ',\n '|': 'ø',\n '}': 'å',\n '~': 'ü'\n };\nexports.CHARSETS['Z'] = {\n '#': '£',\n '@': '§',\n '[': '¡',\n '\\\\': 'Ñ',\n ']': '¿',\n '{': '°',\n '|': 'ñ',\n '}': 'ç'\n};\nexports.CHARSETS['H'] =\n exports.CHARSETS['7'] = {\n '@': 'É',\n '[': 'Ä',\n '\\\\': 'Ö',\n ']': 'Å',\n '^': 'Ü',\n '`': 'é',\n '{': 'ä',\n '|': 'ö',\n '}': 'å',\n '~': 'ü'\n };\nexports.CHARSETS['='] = {\n '#': 'ù',\n '@': 'à',\n '[': 'é',\n '\\\\': 'ç',\n ']': 'ê',\n '^': 'î',\n '_': 'è',\n '`': 'ô',\n '{': 'ä',\n '|': 'ö',\n '}': 'ü',\n '~': 'û'\n};\n\n\n\n},{}],5:[function(require,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar CompositionHelper = (function () {\n function CompositionHelper(textarea, compositionView, terminal) {\n this.textarea = textarea;\n this.compositionView = compositionView;\n this.terminal = terminal;\n this.isComposing = false;\n this.isSendingComposition = false;\n this.compositionPosition = { start: null, end: null };\n }\n CompositionHelper.prototype.compositionstart = function () {\n this.isComposing = true;\n this.compositionPosition.start = this.textarea.value.length;\n this.compositionView.textContent = '';\n this.compositionView.classList.add('active');\n };\n CompositionHelper.prototype.compositionupdate = function (ev) {\n var _this = this;\n this.compositionView.textContent = ev.data;\n this.updateCompositionElements();\n setTimeout(function () {\n _this.compositionPosition.end = _this.textarea.value.length;\n }, 0);\n };\n CompositionHelper.prototype.compositionend = function () {\n this.finalizeComposition(true);\n };\n CompositionHelper.prototype.keydown = function (ev) {\n if (this.isComposing || this.isSendingComposition) {\n if (ev.keyCode === 229) {\n return false;\n }\n else if (ev.keyCode === 16 || ev.keyCode === 17 || ev.keyCode === 18) {\n return false;\n }\n else {\n this.finalizeComposition(false);\n }\n }\n if (ev.keyCode === 229) {\n this.handleAnyTextareaChanges();\n return false;\n }\n return true;\n };\n CompositionHelper.prototype.finalizeComposition = function (waitForPropogation) {\n var _this = this;\n this.compositionView.classList.remove('active');\n this.isComposing = false;\n this.clearTextareaPosition();\n if (!waitForPropogation) {\n this.isSendingComposition = false;\n var input = this.textarea.value.substring(this.compositionPosition.start, this.compositionPosition.end);\n this.terminal.handler(input);\n }\n else {\n var currentCompositionPosition_1 = {\n start: this.compositionPosition.start,\n end: this.compositionPosition.end,\n };\n this.isSendingComposition = true;\n setTimeout(function () {\n if (_this.isSendingComposition) {\n _this.isSendingComposition = false;\n var input = void 0;\n if (_this.isComposing) {\n input = _this.textarea.value.substring(currentCompositionPosition_1.start, currentCompositionPosition_1.end);\n }\n else {\n input = _this.textarea.value.substring(currentCompositionPosition_1.start);\n }\n _this.terminal.handler(input);\n }\n }, 0);\n }\n };\n CompositionHelper.prototype.handleAnyTextareaChanges = function () {\n var _this = this;\n var oldValue = this.textarea.value;\n setTimeout(function () {\n if (!_this.isComposing) {\n var newValue = _this.textarea.value;\n var diff = newValue.replace(oldValue, '');\n if (diff.length > 0) {\n _this.terminal.handler(diff);\n }\n }\n }, 0);\n };\n CompositionHelper.prototype.updateCompositionElements = function (dontRecurse) {\n var _this = this;\n if (!this.isComposing) {\n return;\n }\n if (this.terminal.buffer.isCursorInViewport) {\n var cellHeight = Math.ceil(this.terminal.charMeasure.height * this.terminal.options.lineHeight);\n var cursorTop = this.terminal.buffer.y * cellHeight;\n var cursorLeft = this.terminal.buffer.x * this.terminal.charMeasure.width;\n this.compositionView.style.left = cursorLeft + 'px';\n this.compositionView.style.top = cursorTop + 'px';\n this.compositionView.style.height = cellHeight + 'px';\n this.compositionView.style.lineHeight = cellHeight + 'px';\n var compositionViewBounds = this.compositionView.getBoundingClientRect();\n this.textarea.style.left = cursorLeft + 'px';\n this.textarea.style.top = cursorTop + 'px';\n this.textarea.style.width = compositionViewBounds.width + 'px';\n this.textarea.style.height = compositionViewBounds.height + 'px';\n this.textarea.style.lineHeight = compositionViewBounds.height + 'px';\n }\n if (!dontRecurse) {\n setTimeout(function () { return _this.updateCompositionElements(true); }, 0);\n }\n };\n ;\n CompositionHelper.prototype.clearTextareaPosition = function () {\n this.textarea.style.left = '';\n this.textarea.style.top = '';\n };\n ;\n return CompositionHelper;\n}());\nexports.CompositionHelper = CompositionHelper;\n\n\n\n},{}],6:[function(require,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar C0;\n(function (C0) {\n C0.NUL = '\\x00';\n C0.SOH = '\\x01';\n C0.STX = '\\x02';\n C0.ETX = '\\x03';\n C0.EOT = '\\x04';\n C0.ENQ = '\\x05';\n C0.ACK = '\\x06';\n C0.BEL = '\\x07';\n C0.BS = '\\x08';\n C0.HT = '\\x09';\n C0.LF = '\\x0a';\n C0.VT = '\\x0b';\n C0.FF = '\\x0c';\n C0.CR = '\\x0d';\n C0.SO = '\\x0e';\n C0.SI = '\\x0f';\n C0.DLE = '\\x10';\n C0.DC1 = '\\x11';\n C0.DC2 = '\\x12';\n C0.DC3 = '\\x13';\n C0.DC4 = '\\x14';\n C0.NAK = '\\x15';\n C0.SYN = '\\x16';\n C0.ETB = '\\x17';\n C0.CAN = '\\x18';\n C0.EM = '\\x19';\n C0.SUB = '\\x1a';\n C0.ESC = '\\x1b';\n C0.FS = '\\x1c';\n C0.GS = '\\x1d';\n C0.RS = '\\x1e';\n C0.US = '\\x1f';\n C0.SP = '\\x20';\n C0.DEL = '\\x7f';\n})(C0 = exports.C0 || (exports.C0 = {}));\n;\n\n\n\n},{}],7:[function(require,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar EventEmitter = (function () {\n function EventEmitter() {\n this._events = this._events || {};\n }\n EventEmitter.prototype.on = function (type, listener) {\n this._events[type] = this._events[type] || [];\n this._events[type].push(listener);\n };\n EventEmitter.prototype.off = function (type, listener) {\n if (!this._events[type]) {\n return;\n }\n var obj = this._events[type];\n var i = obj.length;\n while (i--) {\n if (obj[i] === listener || obj[i].listener === listener) {\n obj.splice(i, 1);\n return;\n }\n }\n };\n EventEmitter.prototype.removeAllListeners = function (type) {\n if (this._events[type]) {\n delete this._events[type];\n }\n };\n EventEmitter.prototype.once = function (type, listener) {\n function on() {\n var args = Array.prototype.slice.call(arguments);\n this.off(type, on);\n listener.apply(this, args);\n }\n on.listener = listener;\n this.on(type, on);\n };\n EventEmitter.prototype.emit = function (type) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (!this._events[type]) {\n return;\n }\n var obj = this._events[type];\n for (var i = 0; i < obj.length; i++) {\n obj[i].apply(this, args);\n }\n };\n EventEmitter.prototype.listeners = function (type) {\n return this._events[type] || [];\n };\n EventEmitter.prototype.destroy = function () {\n this._events = {};\n };\n return EventEmitter;\n}());\nexports.EventEmitter = EventEmitter;\n\n\n\n},{}],8:[function(require,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar EscapeSequences_1 = require(\"./EscapeSequences\");\nvar Charsets_1 = require(\"./Charsets\");\nvar Buffer_1 = require(\"./Buffer\");\nvar Types_1 = require(\"./renderer/Types\");\nvar CharWidth_1 = require(\"./CharWidth\");\nvar InputHandler = (function () {\n function InputHandler(_terminal) {\n this._terminal = _terminal;\n }\n InputHandler.prototype.addChar = function (char, code) {\n if (char >= ' ') {\n var ch_width = CharWidth_1.wcwidth(code);\n if (this._terminal.charset && this._terminal.charset[char]) {\n char = this._terminal.charset[char];\n }\n var row = this._terminal.buffer.y + this._terminal.buffer.ybase;\n if (!ch_width && this._terminal.buffer.x) {\n if (this._terminal.buffer.lines.get(row)[this._terminal.buffer.x - 1]) {\n if (!this._terminal.buffer.lines.get(row)[this._terminal.buffer.x - 1][Buffer_1.CHAR_DATA_WIDTH_INDEX]) {\n if (this._terminal.buffer.lines.get(row)[this._terminal.buffer.x - 2]) {\n this._terminal.buffer.lines.get(row)[this._terminal.buffer.x - 2][Buffer_1.CHAR_DATA_CHAR_INDEX] += char;\n this._terminal.buffer.lines.get(row)[this._terminal.buffer.x - 2][3] = char.charCodeAt(0);\n }\n }\n else {\n this._terminal.buffer.lines.get(row)[this._terminal.buffer.x - 1][Buffer_1.CHAR_DATA_CHAR_INDEX] += char;\n this._terminal.buffer.lines.get(row)[this._terminal.buffer.x - 1][3] = char.charCodeAt(0);\n }\n this._terminal.updateRange(this._terminal.buffer.y);\n }\n return;\n }\n if (this._terminal.buffer.x + ch_width - 1 >= this._terminal.cols) {\n if (this._terminal.wraparoundMode) {\n this._terminal.buffer.x = 0;\n this._terminal.buffer.y++;\n if (this._terminal.buffer.y > this._terminal.buffer.scrollBottom) {\n this._terminal.buffer.y--;\n this._terminal.scroll(true);\n }\n else {\n this._terminal.buffer.lines.get(this._terminal.buffer.y).isWrapped = true;\n }\n }\n else {\n if (ch_width === 2)\n return;\n }\n }\n row = this._terminal.buffer.y + this._terminal.buffer.ybase;\n if (this._terminal.insertMode) {\n for (var moves = 0; moves < ch_width; ++moves) {\n var removed = this._terminal.buffer.lines.get(this._terminal.buffer.y + this._terminal.buffer.ybase).pop();\n if (removed[Buffer_1.CHAR_DATA_WIDTH_INDEX] === 0\n && this._terminal.buffer.lines.get(row)[this._terminal.cols - 2]\n && this._terminal.buffer.lines.get(row)[this._terminal.cols - 2][Buffer_1.CHAR_DATA_WIDTH_INDEX] === 2) {\n this._terminal.buffer.lines.get(row)[this._terminal.cols - 2] = [this._terminal.curAttr, ' ', 1, ' '.charCodeAt(0)];\n }\n this._terminal.buffer.lines.get(row).splice(this._terminal.buffer.x, 0, [this._terminal.curAttr, ' ', 1, ' '.charCodeAt(0)]);\n }\n }\n this._terminal.buffer.lines.get(row)[this._terminal.buffer.x] = [this._terminal.curAttr, char, ch_width, char.charCodeAt(0)];\n this._terminal.buffer.x++;\n this._terminal.updateRange(this._terminal.buffer.y);\n if (ch_width === 2) {\n this._terminal.buffer.lines.get(row)[this._terminal.buffer.x] = [this._terminal.curAttr, '', 0, undefined];\n this._terminal.buffer.x++;\n }\n }\n };\n InputHandler.prototype.bell = function () {\n this._terminal.bell();\n };\n InputHandler.prototype.lineFeed = function () {\n if (this._terminal.convertEol) {\n this._terminal.buffer.x = 0;\n }\n this._terminal.buffer.y++;\n if (this._terminal.buffer.y > this._terminal.buffer.scrollBottom) {\n this._terminal.buffer.y--;\n this._terminal.scroll();\n }\n if (this._terminal.buffer.x >= this._terminal.cols) {\n this._terminal.buffer.x--;\n }\n this._terminal.emit('linefeed');\n };\n InputHandler.prototype.carriageReturn = function () {\n this._terminal.buffer.x = 0;\n };\n InputHandler.prototype.backspace = function () {\n if (this._terminal.buffer.x > 0) {\n this._terminal.buffer.x--;\n }\n };\n InputHandler.prototype.tab = function () {\n this._terminal.buffer.x = this._terminal.buffer.nextStop();\n };\n InputHandler.prototype.shiftOut = function () {\n this._terminal.setgLevel(1);\n };\n InputHandler.prototype.shiftIn = function () {\n this._terminal.setgLevel(0);\n };\n InputHandler.prototype.insertChars = function (params) {\n var param = params[0];\n if (param < 1)\n param = 1;\n var row = this._terminal.buffer.y + this._terminal.buffer.ybase;\n var j = this._terminal.buffer.x;\n var ch = [this._terminal.eraseAttr(), ' ', 1, 32];\n while (param-- && j < this._terminal.cols) {\n this._terminal.buffer.lines.get(row).splice(j++, 0, ch);\n this._terminal.buffer.lines.get(row).pop();\n }\n };\n InputHandler.prototype.cursorUp = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n this._terminal.buffer.y -= param;\n if (this._terminal.buffer.y < 0) {\n this._terminal.buffer.y = 0;\n }\n };\n InputHandler.prototype.cursorDown = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n this._terminal.buffer.y += param;\n if (this._terminal.buffer.y >= this._terminal.rows) {\n this._terminal.buffer.y = this._terminal.rows - 1;\n }\n if (this._terminal.buffer.x >= this._terminal.cols) {\n this._terminal.buffer.x--;\n }\n };\n InputHandler.prototype.cursorForward = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n this._terminal.buffer.x += param;\n if (this._terminal.buffer.x >= this._terminal.cols) {\n this._terminal.buffer.x = this._terminal.cols - 1;\n }\n };\n InputHandler.prototype.cursorBackward = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n if (this._terminal.buffer.x >= this._terminal.cols) {\n this._terminal.buffer.x--;\n }\n this._terminal.buffer.x -= param;\n if (this._terminal.buffer.x < 0) {\n this._terminal.buffer.x = 0;\n }\n };\n InputHandler.prototype.cursorNextLine = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n this._terminal.buffer.y += param;\n if (this._terminal.buffer.y >= this._terminal.rows) {\n this._terminal.buffer.y = this._terminal.rows - 1;\n }\n this._terminal.buffer.x = 0;\n };\n InputHandler.prototype.cursorPrecedingLine = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n this._terminal.buffer.y -= param;\n if (this._terminal.buffer.y < 0) {\n this._terminal.buffer.y = 0;\n }\n this._terminal.buffer.x = 0;\n };\n InputHandler.prototype.cursorCharAbsolute = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n this._terminal.buffer.x = param - 1;\n };\n InputHandler.prototype.cursorPosition = function (params) {\n var col;\n var row = params[0] - 1;\n if (params.length >= 2) {\n col = params[1] - 1;\n }\n else {\n col = 0;\n }\n if (row < 0) {\n row = 0;\n }\n else if (row >= this._terminal.rows) {\n row = this._terminal.rows - 1;\n }\n if (col < 0) {\n col = 0;\n }\n else if (col >= this._terminal.cols) {\n col = this._terminal.cols - 1;\n }\n this._terminal.buffer.x = col;\n this._terminal.buffer.y = row;\n };\n InputHandler.prototype.cursorForwardTab = function (params) {\n var param = params[0] || 1;\n while (param--) {\n this._terminal.buffer.x = this._terminal.buffer.nextStop();\n }\n };\n InputHandler.prototype.eraseInDisplay = function (params) {\n var j;\n switch (params[0]) {\n case 0:\n this._terminal.eraseRight(this._terminal.buffer.x, this._terminal.buffer.y);\n j = this._terminal.buffer.y + 1;\n for (; j < this._terminal.rows; j++) {\n this._terminal.eraseLine(j);\n }\n break;\n case 1:\n this._terminal.eraseLeft(this._terminal.buffer.x, this._terminal.buffer.y);\n j = this._terminal.buffer.y;\n while (j--) {\n this._terminal.eraseLine(j);\n }\n break;\n case 2:\n j = this._terminal.rows;\n while (j--)\n this._terminal.eraseLine(j);\n break;\n case 3:\n var scrollBackSize = this._terminal.buffer.lines.length - this._terminal.rows;\n if (scrollBackSize > 0) {\n this._terminal.buffer.lines.trimStart(scrollBackSize);\n this._terminal.buffer.ybase = Math.max(this._terminal.buffer.ybase - scrollBackSize, 0);\n this._terminal.buffer.ydisp = Math.max(this._terminal.buffer.ydisp - scrollBackSize, 0);\n this._terminal.emit('scroll', 0);\n }\n break;\n }\n };\n InputHandler.prototype.eraseInLine = function (params) {\n switch (params[0]) {\n case 0:\n this._terminal.eraseRight(this._terminal.buffer.x, this._terminal.buffer.y);\n break;\n case 1:\n this._terminal.eraseLeft(this._terminal.buffer.x, this._terminal.buffer.y);\n break;\n case 2:\n this._terminal.eraseLine(this._terminal.buffer.y);\n break;\n }\n };\n InputHandler.prototype.insertLines = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n var row = this._terminal.buffer.y + this._terminal.buffer.ybase;\n var scrollBottomRowsOffset = this._terminal.rows - 1 - this._terminal.buffer.scrollBottom;\n var scrollBottomAbsolute = this._terminal.rows - 1 + this._terminal.buffer.ybase - scrollBottomRowsOffset + 1;\n while (param--) {\n this._terminal.buffer.lines.splice(scrollBottomAbsolute - 1, 1);\n this._terminal.buffer.lines.splice(row, 0, this._terminal.blankLine(true));\n }\n this._terminal.updateRange(this._terminal.buffer.y);\n this._terminal.updateRange(this._terminal.buffer.scrollBottom);\n };\n InputHandler.prototype.deleteLines = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n var row = this._terminal.buffer.y + this._terminal.buffer.ybase;\n var j;\n j = this._terminal.rows - 1 - this._terminal.buffer.scrollBottom;\n j = this._terminal.rows - 1 + this._terminal.buffer.ybase - j;\n while (param--) {\n this._terminal.buffer.lines.splice(row, 1);\n this._terminal.buffer.lines.splice(j, 0, this._terminal.blankLine(true));\n }\n this._terminal.updateRange(this._terminal.buffer.y);\n this._terminal.updateRange(this._terminal.buffer.scrollBottom);\n };\n InputHandler.prototype.deleteChars = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n var row = this._terminal.buffer.y + this._terminal.buffer.ybase;\n var ch = [this._terminal.eraseAttr(), ' ', 1, 32];\n while (param--) {\n this._terminal.buffer.lines.get(row).splice(this._terminal.buffer.x, 1);\n this._terminal.buffer.lines.get(row).push(ch);\n }\n this._terminal.updateRange(this._terminal.buffer.y);\n };\n InputHandler.prototype.scrollUp = function (params) {\n var param = params[0] || 1;\n while (param--) {\n this._terminal.buffer.lines.splice(this._terminal.buffer.ybase + this._terminal.buffer.scrollTop, 1);\n this._terminal.buffer.lines.splice(this._terminal.buffer.ybase + this._terminal.buffer.scrollBottom, 0, this._terminal.blankLine());\n }\n this._terminal.updateRange(this._terminal.buffer.scrollTop);\n this._terminal.updateRange(this._terminal.buffer.scrollBottom);\n };\n InputHandler.prototype.scrollDown = function (params) {\n var param = params[0] || 1;\n while (param--) {\n this._terminal.buffer.lines.splice(this._terminal.buffer.ybase + this._terminal.buffer.scrollBottom, 1);\n this._terminal.buffer.lines.splice(this._terminal.buffer.ybase + this._terminal.buffer.scrollTop, 0, this._terminal.blankLine());\n }\n this._terminal.updateRange(this._terminal.buffer.scrollTop);\n this._terminal.updateRange(this._terminal.buffer.scrollBottom);\n };\n InputHandler.prototype.eraseChars = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n var row = this._terminal.buffer.y + this._terminal.buffer.ybase;\n var j = this._terminal.buffer.x;\n var ch = [this._terminal.eraseAttr(), ' ', 1, 32];\n while (param-- && j < this._terminal.cols) {\n this._terminal.buffer.lines.get(row)[j++] = ch;\n }\n };\n InputHandler.prototype.cursorBackwardTab = function (params) {\n var param = params[0] || 1;\n while (param--) {\n this._terminal.buffer.x = this._terminal.buffer.prevStop();\n }\n };\n InputHandler.prototype.charPosAbsolute = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n this._terminal.buffer.x = param - 1;\n if (this._terminal.buffer.x >= this._terminal.cols) {\n this._terminal.buffer.x = this._terminal.cols - 1;\n }\n };\n InputHandler.prototype.HPositionRelative = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n this._terminal.buffer.x += param;\n if (this._terminal.buffer.x >= this._terminal.cols) {\n this._terminal.buffer.x = this._terminal.cols - 1;\n }\n };\n InputHandler.prototype.repeatPrecedingCharacter = function (params) {\n var param = params[0] || 1;\n var line = this._terminal.buffer.lines.get(this._terminal.buffer.ybase + this._terminal.buffer.y);\n var ch = line[this._terminal.buffer.x - 1] || [this._terminal.defAttr, ' ', 1, 32];\n while (param--) {\n line[this._terminal.buffer.x++] = ch;\n }\n };\n InputHandler.prototype.sendDeviceAttributes = function (params) {\n if (params[0] > 0) {\n return;\n }\n if (!this._terminal.prefix) {\n if (this._terminal.is('xterm') || this._terminal.is('rxvt-unicode') || this._terminal.is('screen')) {\n this._terminal.send(EscapeSequences_1.C0.ESC + '[?1;2c');\n }\n else if (this._terminal.is('linux')) {\n this._terminal.send(EscapeSequences_1.C0.ESC + '[?6c');\n }\n }\n else if (this._terminal.prefix === '>') {\n if (this._terminal.is('xterm')) {\n this._terminal.send(EscapeSequences_1.C0.ESC + '[>0;276;0c');\n }\n else if (this._terminal.is('rxvt-unicode')) {\n this._terminal.send(EscapeSequences_1.C0.ESC + '[>85;95;0c');\n }\n else if (this._terminal.is('linux')) {\n this._terminal.send(params[0] + 'c');\n }\n else if (this._terminal.is('screen')) {\n this._terminal.send(EscapeSequences_1.C0.ESC + '[>83;40003;0c');\n }\n }\n };\n InputHandler.prototype.linePosAbsolute = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n this._terminal.buffer.y = param - 1;\n if (this._terminal.buffer.y >= this._terminal.rows) {\n this._terminal.buffer.y = this._terminal.rows - 1;\n }\n };\n InputHandler.prototype.VPositionRelative = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n this._terminal.buffer.y += param;\n if (this._terminal.buffer.y >= this._terminal.rows) {\n this._terminal.buffer.y = this._terminal.rows - 1;\n }\n if (this._terminal.buffer.x >= this._terminal.cols) {\n this._terminal.buffer.x--;\n }\n };\n InputHandler.prototype.HVPosition = function (params) {\n if (params[0] < 1)\n params[0] = 1;\n if (params[1] < 1)\n params[1] = 1;\n this._terminal.buffer.y = params[0] - 1;\n if (this._terminal.buffer.y >= this._terminal.rows) {\n this._terminal.buffer.y = this._terminal.rows - 1;\n }\n this._terminal.buffer.x = params[1] - 1;\n if (this._terminal.buffer.x >= this._terminal.cols) {\n this._terminal.buffer.x = this._terminal.cols - 1;\n }\n };\n InputHandler.prototype.tabClear = function (params) {\n var param = params[0];\n if (param <= 0) {\n delete this._terminal.buffer.tabs[this._terminal.buffer.x];\n }\n else if (param === 3) {\n this._terminal.buffer.tabs = {};\n }\n };\n InputHandler.prototype.setMode = function (params) {\n if (params.length > 1) {\n for (var i = 0; i < params.length; i++) {\n this.setMode([params[i]]);\n }\n return;\n }\n if (!this._terminal.prefix) {\n switch (params[0]) {\n case 4:\n this._terminal.insertMode = true;\n break;\n case 20:\n break;\n }\n }\n else if (this._terminal.prefix === '?') {\n switch (params[0]) {\n case 1:\n this._terminal.applicationCursor = true;\n break;\n case 2:\n this._terminal.setgCharset(0, Charsets_1.DEFAULT_CHARSET);\n this._terminal.setgCharset(1, Charsets_1.DEFAULT_CHARSET);\n this._terminal.setgCharset(2, Charsets_1.DEFAULT_CHARSET);\n this._terminal.setgCharset(3, Charsets_1.DEFAULT_CHARSET);\n break;\n case 3:\n this._terminal.savedCols = this._terminal.cols;\n this._terminal.resize(132, this._terminal.rows);\n break;\n case 6:\n this._terminal.originMode = true;\n break;\n case 7:\n this._terminal.wraparoundMode = true;\n break;\n case 12:\n break;\n case 66:\n this._terminal.log('Serial port requested application keypad.');\n this._terminal.applicationKeypad = true;\n this._terminal.viewport.syncScrollArea();\n break;\n case 9:\n case 1000:\n case 1002:\n case 1003:\n this._terminal.x10Mouse = params[0] === 9;\n this._terminal.vt200Mouse = params[0] === 1000;\n this._terminal.normalMouse = params[0] > 1000;\n this._terminal.mouseEvents = true;\n this._terminal.element.classList.add('enable-mouse-events');\n this._terminal.selectionManager.disable();\n this._terminal.log('Binding to mouse events.');\n break;\n case 1004:\n this._terminal.sendFocus = true;\n break;\n case 1005:\n this._terminal.utfMouse = true;\n break;\n case 1006:\n this._terminal.sgrMouse = true;\n break;\n case 1015:\n this._terminal.urxvtMouse = true;\n break;\n case 25:\n this._terminal.cursorHidden = false;\n break;\n case 1049:\n case 47:\n case 1047:\n this._terminal.buffers.activateAltBuffer();\n this._terminal.selectionManager.setBuffer(this._terminal.buffer);\n this._terminal.viewport.syncScrollArea();\n this._terminal.showCursor();\n break;\n case 2004:\n this._terminal.bracketedPasteMode = true;\n break;\n }\n }\n };\n InputHandler.prototype.resetMode = function (params) {\n if (params.length > 1) {\n for (var i = 0; i < params.length; i++) {\n this.resetMode([params[i]]);\n }\n return;\n }\n if (!this._terminal.prefix) {\n switch (params[0]) {\n case 4:\n this._terminal.insertMode = false;\n break;\n case 20:\n break;\n }\n }\n else if (this._terminal.prefix === '?') {\n switch (params[0]) {\n case 1:\n this._terminal.applicationCursor = false;\n break;\n case 3:\n if (this._terminal.cols === 132 && this._terminal.savedCols) {\n this._terminal.resize(this._terminal.savedCols, this._terminal.rows);\n }\n delete this._terminal.savedCols;\n break;\n case 6:\n this._terminal.originMode = false;\n break;\n case 7:\n this._terminal.wraparoundMode = false;\n break;\n case 12:\n break;\n case 66:\n this._terminal.log('Switching back to normal keypad.');\n this._terminal.applicationKeypad = false;\n this._terminal.viewport.syncScrollArea();\n break;\n case 9:\n case 1000:\n case 1002:\n case 1003:\n this._terminal.x10Mouse = false;\n this._terminal.vt200Mouse = false;\n this._terminal.normalMouse = false;\n this._terminal.mouseEvents = false;\n this._terminal.element.classList.remove('enable-mouse-events');\n this._terminal.selectionManager.enable();\n break;\n case 1004:\n this._terminal.sendFocus = false;\n break;\n case 1005:\n this._terminal.utfMouse = false;\n break;\n case 1006:\n this._terminal.sgrMouse = false;\n break;\n case 1015:\n this._terminal.urxvtMouse = false;\n break;\n case 25:\n this._terminal.cursorHidden = true;\n break;\n case 1049:\n case 47:\n case 1047:\n this._terminal.buffers.activateNormalBuffer();\n this._terminal.selectionManager.setBuffer(this._terminal.buffer);\n this._terminal.refresh(0, this._terminal.rows - 1);\n this._terminal.viewport.syncScrollArea();\n this._terminal.showCursor();\n break;\n case 2004:\n this._terminal.bracketedPasteMode = false;\n break;\n }\n }\n };\n InputHandler.prototype.charAttributes = function (params) {\n if (params.length === 1 && params[0] === 0) {\n this._terminal.curAttr = this._terminal.defAttr;\n return;\n }\n var l = params.length;\n var flags = this._terminal.curAttr >> 18;\n var fg = (this._terminal.curAttr >> 9) & 0x1ff;\n var bg = this._terminal.curAttr & 0x1ff;\n var p;\n for (var i = 0; i < l; i++) {\n p = params[i];\n if (p >= 30 && p <= 37) {\n fg = p - 30;\n }\n else if (p >= 40 && p <= 47) {\n bg = p - 40;\n }\n else if (p >= 90 && p <= 97) {\n p += 8;\n fg = p - 90;\n }\n else if (p >= 100 && p <= 107) {\n p += 8;\n bg = p - 100;\n }\n else if (p === 0) {\n flags = this._terminal.defAttr >> 18;\n fg = (this._terminal.defAttr >> 9) & 0x1ff;\n bg = this._terminal.defAttr & 0x1ff;\n }\n else if (p === 1) {\n flags |= Types_1.FLAGS.BOLD;\n }\n else if (p === 4) {\n flags |= Types_1.FLAGS.UNDERLINE;\n }\n else if (p === 5) {\n flags |= Types_1.FLAGS.BLINK;\n }\n else if (p === 7) {\n flags |= Types_1.FLAGS.INVERSE;\n }\n else if (p === 8) {\n flags |= Types_1.FLAGS.INVISIBLE;\n }\n else if (p === 2) {\n flags |= Types_1.FLAGS.DIM;\n }\n else if (p === 22) {\n flags &= ~Types_1.FLAGS.BOLD;\n flags &= ~Types_1.FLAGS.DIM;\n }\n else if (p === 24) {\n flags &= ~Types_1.FLAGS.UNDERLINE;\n }\n else if (p === 25) {\n flags &= ~Types_1.FLAGS.BLINK;\n }\n else if (p === 27) {\n flags &= ~Types_1.FLAGS.INVERSE;\n }\n else if (p === 28) {\n flags &= ~Types_1.FLAGS.INVISIBLE;\n }\n else if (p === 39) {\n fg = (this._terminal.defAttr >> 9) & 0x1ff;\n }\n else if (p === 49) {\n bg = this._terminal.defAttr & 0x1ff;\n }\n else if (p === 38) {\n if (params[i + 1] === 2) {\n i += 2;\n fg = this._terminal.matchColor(params[i] & 0xff, params[i + 1] & 0xff, params[i + 2] & 0xff);\n if (fg === -1)\n fg = 0x1ff;\n i += 2;\n }\n else if (params[i + 1] === 5) {\n i += 2;\n p = params[i] & 0xff;\n fg = p;\n }\n }\n else if (p === 48) {\n if (params[i + 1] === 2) {\n i += 2;\n bg = this._terminal.matchColor(params[i] & 0xff, params[i + 1] & 0xff, params[i + 2] & 0xff);\n if (bg === -1)\n bg = 0x1ff;\n i += 2;\n }\n else if (params[i + 1] === 5) {\n i += 2;\n p = params[i] & 0xff;\n bg = p;\n }\n }\n else if (p === 100) {\n fg = (this._terminal.defAttr >> 9) & 0x1ff;\n bg = this._terminal.defAttr & 0x1ff;\n }\n else {\n this._terminal.error('Unknown SGR attribute: %d.', p);\n }\n }\n this._terminal.curAttr = (flags << 18) | (fg << 9) | bg;\n };\n InputHandler.prototype.deviceStatus = function (params) {\n if (!this._terminal.prefix) {\n switch (params[0]) {\n case 5:\n this._terminal.send(EscapeSequences_1.C0.ESC + '[0n');\n break;\n case 6:\n this._terminal.send(EscapeSequences_1.C0.ESC + '['\n + (this._terminal.buffer.y + 1)\n + ';'\n + (this._terminal.buffer.x + 1)\n + 'R');\n break;\n }\n }\n else if (this._terminal.prefix === '?') {\n switch (params[0]) {\n case 6:\n this._terminal.send(EscapeSequences_1.C0.ESC + '[?'\n + (this._terminal.buffer.y + 1)\n + ';'\n + (this._terminal.buffer.x + 1)\n + 'R');\n break;\n case 15:\n break;\n case 25:\n break;\n case 26:\n break;\n case 53:\n break;\n }\n }\n };\n InputHandler.prototype.softReset = function (params) {\n this._terminal.cursorHidden = false;\n this._terminal.insertMode = false;\n this._terminal.originMode = false;\n this._terminal.wraparoundMode = true;\n this._terminal.applicationKeypad = false;\n this._terminal.viewport.syncScrollArea();\n this._terminal.applicationCursor = false;\n this._terminal.buffer.scrollTop = 0;\n this._terminal.buffer.scrollBottom = this._terminal.rows - 1;\n this._terminal.curAttr = this._terminal.defAttr;\n this._terminal.buffer.x = this._terminal.buffer.y = 0;\n this._terminal.charset = null;\n this._terminal.glevel = 0;\n this._terminal.charsets = [null];\n };\n InputHandler.prototype.setCursorStyle = function (params) {\n var param = params[0] < 1 ? 1 : params[0];\n switch (param) {\n case 1:\n case 2:\n this._terminal.setOption('cursorStyle', 'block');\n break;\n case 3:\n case 4:\n this._terminal.setOption('cursorStyle', 'underline');\n break;\n case 5:\n case 6:\n this._terminal.setOption('cursorStyle', 'bar');\n break;\n }\n var isBlinking = param % 2 === 1;\n this._terminal.setOption('cursorBlink', isBlinking);\n };\n InputHandler.prototype.setScrollRegion = function (params) {\n if (this._terminal.prefix)\n return;\n this._terminal.buffer.scrollTop = (params[0] || 1) - 1;\n this._terminal.buffer.scrollBottom = (params[1] && params[1] <= this._terminal.rows ? params[1] : this._terminal.rows) - 1;\n this._terminal.buffer.x = 0;\n this._terminal.buffer.y = 0;\n };\n InputHandler.prototype.saveCursor = function (params) {\n this._terminal.buffer.savedX = this._terminal.buffer.x;\n this._terminal.buffer.savedY = this._terminal.buffer.y;\n };\n InputHandler.prototype.restoreCursor = function (params) {\n this._terminal.buffer.x = this._terminal.buffer.savedX || 0;\n this._terminal.buffer.y = this._terminal.buffer.savedY || 0;\n };\n return InputHandler;\n}());\nexports.InputHandler = InputHandler;\n\n\n\n},{\"./Buffer\":1,\"./CharWidth\":3,\"./Charsets\":4,\"./EscapeSequences\":6,\"./renderer/Types\":27}],9:[function(require,module,exports){\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Types_1 = require(\"./Types\");\nvar MouseZoneManager_1 = require(\"./input/MouseZoneManager\");\nvar EventEmitter_1 = require(\"./EventEmitter\");\nvar protocolClause = '(https?:\\\\/\\\\/)';\nvar domainCharacterSet = '[\\\\da-z\\\\.-]+';\nvar negatedDomainCharacterSet = '[^\\\\da-z\\\\.-]+';\nvar domainBodyClause = '(' + domainCharacterSet + ')';\nvar tldClause = '([a-z\\\\.]{2,6})';\nvar ipClause = '((\\\\d{1,3}\\\\.){3}\\\\d{1,3})';\nvar localHostClause = '(localhost)';\nvar portClause = '(:\\\\d{1,5})';\nvar hostClause = '((' + domainBodyClause + '\\\\.' + tldClause + ')|' + ipClause + '|' + localHostClause + ')' + portClause + '?';\nvar pathClause = '(\\\\/[\\\\/\\\\w\\\\.\\\\-%~]*)*';\nvar queryStringHashFragmentCharacterSet = '[0-9\\\\w\\\\[\\\\]\\\\(\\\\)\\\\/\\\\?\\\\!#@$%&\\'*+,:;~\\\\=\\\\.\\\\-]*';\nvar queryStringClause = '(\\\\?' + queryStringHashFragmentCharacterSet + ')?';\nvar hashFragmentClause = '(#' + queryStringHashFragmentCharacterSet + ')?';\nvar negatedPathCharacterSet = '[^\\\\/\\\\w\\\\.\\\\-%]+';\nvar bodyClause = hostClause + pathClause + queryStringClause + hashFragmentClause;\nvar start = '(?:^|' + negatedDomainCharacterSet + ')(';\nvar end = ')($|' + negatedPathCharacterSet + ')';\nvar strictUrlRegex = new RegExp(start + protocolClause + bodyClause + end);\nvar HYPERTEXT_LINK_MATCHER_ID = 0;\nvar Linkifier = (function (_super) {\n __extends(Linkifier, _super);\n function Linkifier(_terminal) {\n var _this = _super.call(this) || this;\n _this._terminal = _terminal;\n _this._linkMatchers = [];\n _this._nextLinkMatcherId = HYPERTEXT_LINK_MATCHER_ID;\n _this._rowsToLinkify = {\n start: null,\n end: null\n };\n _this.registerLinkMatcher(strictUrlRegex, null, { matchIndex: 1 });\n return _this;\n }\n Linkifier.prototype.attachToDom = function (mouseZoneManager) {\n this._mouseZoneManager = mouseZoneManager;\n };\n Linkifier.prototype.linkifyRows = function (start, end) {\n var _this = this;\n if (!this._mouseZoneManager) {\n return;\n }\n if (!this._rowsToLinkify.start) {\n this._rowsToLinkify.start = start;\n this._rowsToLinkify.end = end;\n }\n else {\n this._rowsToLinkify.start = this._rowsToLinkify.start < start ? this._rowsToLinkify.start : start;\n this._rowsToLinkify.end = this._rowsToLinkify.end > end ? this._rowsToLinkify.end : end;\n }\n this._mouseZoneManager.clearAll(start, end);\n if (this._rowsTimeoutId) {\n clearTimeout(this._rowsTimeoutId);\n }\n this._rowsTimeoutId = setTimeout(function () { return _this._linkifyRows(); }, Linkifier.TIME_BEFORE_LINKIFY);\n };\n Linkifier.prototype._linkifyRows = function () {\n this._rowsTimeoutId = null;\n for (var i = this._rowsToLinkify.start; i <= this._rowsToLinkify.end; i++) {\n this._linkifyRow(i);\n }\n this._rowsToLinkify.start = null;\n this._rowsToLinkify.end = null;\n };\n Linkifier.prototype.setHypertextLinkHandler = function (handler) {\n this._linkMatchers[HYPERTEXT_LINK_MATCHER_ID].handler = handler;\n };\n Linkifier.prototype.setHypertextValidationCallback = function (callback) {\n this._linkMatchers[HYPERTEXT_LINK_MATCHER_ID].validationCallback = callback;\n };\n Linkifier.prototype.registerLinkMatcher = function (regex, handler, options) {\n if (options === void 0) { options = {}; }\n if (this._nextLinkMatcherId !== HYPERTEXT_LINK_MATCHER_ID && !handler) {\n throw new Error('handler must be defined');\n }\n var matcher = {\n id: this._nextLinkMatcherId++,\n regex: regex,\n handler: handler,\n matchIndex: options.matchIndex,\n validationCallback: options.validationCallback,\n hoverTooltipCallback: options.tooltipCallback,\n hoverLeaveCallback: options.leaveCallback,\n priority: options.priority || 0\n };\n this._addLinkMatcherToList(matcher);\n return matcher.id;\n };\n Linkifier.prototype._addLinkMatcherToList = function (matcher) {\n if (this._linkMatchers.length === 0) {\n this._linkMatchers.push(matcher);\n return;\n }\n for (var i = this._linkMatchers.length - 1; i >= 0; i--) {\n if (matcher.priority <= this._linkMatchers[i].priority) {\n this._linkMatchers.splice(i + 1, 0, matcher);\n return;\n }\n }\n this._linkMatchers.splice(0, 0, matcher);\n };\n Linkifier.prototype.deregisterLinkMatcher = function (matcherId) {\n for (var i = 1; i < this._linkMatchers.length; i++) {\n if (this._linkMatchers[i].id === matcherId) {\n this._linkMatchers.splice(i, 1);\n return true;\n }\n }\n return false;\n };\n Linkifier.prototype._linkifyRow = function (rowIndex) {\n var absoluteRowIndex = this._terminal.buffer.ydisp + rowIndex;\n if (absoluteRowIndex >= this._terminal.buffer.lines.length) {\n return;\n }\n var text = this._terminal.buffer.translateBufferLineToString(absoluteRowIndex, false);\n for (var i = 0; i < this._linkMatchers.length; i++) {\n this._doLinkifyRow(rowIndex, text, this._linkMatchers[i]);\n }\n };\n Linkifier.prototype._doLinkifyRow = function (rowIndex, text, matcher, offset) {\n var _this = this;\n if (offset === void 0) { offset = 0; }\n var result = [];\n var isHttpLinkMatcher = matcher.id === HYPERTEXT_LINK_MATCHER_ID;\n var match = text.match(matcher.regex);\n if (!match || match.length === 0) {\n return;\n }\n var uri = match[typeof matcher.matchIndex !== 'number' ? 0 : matcher.matchIndex];\n var index = text.indexOf(uri);\n if (matcher.validationCallback) {\n matcher.validationCallback(uri, function (isValid) {\n if (_this._rowsTimeoutId) {\n return;\n }\n if (isValid) {\n _this._addLink(offset + index, rowIndex, uri, matcher);\n }\n });\n }\n else {\n this._addLink(offset + index, rowIndex, uri, matcher);\n }\n var remainingStartIndex = index + uri.length;\n var remainingText = text.substr(remainingStartIndex);\n if (remainingText.length > 0) {\n this._doLinkifyRow(rowIndex, remainingText, matcher, offset + remainingStartIndex);\n }\n };\n Linkifier.prototype._addLink = function (x, y, uri, matcher) {\n var _this = this;\n this._mouseZoneManager.add(new MouseZoneManager_1.MouseZone(x + 1, x + 1 + uri.length, y + 1, function (e) {\n if (matcher.handler) {\n return matcher.handler(e, uri);\n }\n window.open(uri, '_blank');\n }, function (e) {\n _this.emit(Types_1.LinkHoverEventTypes.HOVER, { x: x, y: y, length: uri.length });\n _this._terminal.element.style.cursor = 'pointer';\n }, function (e) {\n _this.emit(Types_1.LinkHoverEventTypes.TOOLTIP, { x: x, y: y, length: uri.length });\n if (matcher.hoverTooltipCallback) {\n matcher.hoverTooltipCallback(e, uri);\n }\n }, function () {\n _this.emit(Types_1.LinkHoverEventTypes.LEAVE, { x: x, y: y, length: uri.length });\n _this._terminal.element.style.cursor = '';\n if (matcher.hoverLeaveCallback) {\n matcher.hoverLeaveCallback();\n }\n }));\n };\n Linkifier.TIME_BEFORE_LINKIFY = 200;\n return Linkifier;\n}(EventEmitter_1.EventEmitter));\nexports.Linkifier = Linkifier;\n\n\n\n},{\"./EventEmitter\":7,\"./Types\":14,\"./input/MouseZoneManager\":17}],10:[function(require,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar EscapeSequences_1 = require(\"./EscapeSequences\");\nvar Charsets_1 = require(\"./Charsets\");\nvar normalStateHandler = {};\nnormalStateHandler[EscapeSequences_1.C0.BEL] = function (parser, handler) { return handler.bell(); };\nnormalStateHandler[EscapeSequences_1.C0.LF] = function (parser, handler) { return handler.lineFeed(); };\nnormalStateHandler[EscapeSequences_1.C0.VT] = normalStateHandler[EscapeSequences_1.C0.LF];\nnormalStateHandler[EscapeSequences_1.C0.FF] = normalStateHandler[EscapeSequences_1.C0.LF];\nnormalStateHandler[EscapeSequences_1.C0.CR] = function (parser, handler) { return handler.carriageReturn(); };\nnormalStateHandler[EscapeSequences_1.C0.BS] = function (parser, handler) { return handler.backspace(); };\nnormalStateHandler[EscapeSequences_1.C0.HT] = function (parser, handler) { return handler.tab(); };\nnormalStateHandler[EscapeSequences_1.C0.SO] = function (parser, handler) { return handler.shiftOut(); };\nnormalStateHandler[EscapeSequences_1.C0.SI] = function (parser, handler) { return handler.shiftIn(); };\nnormalStateHandler[EscapeSequences_1.C0.ESC] = function (parser, handler) { return parser.setState(ParserState.ESCAPED); };\nvar escapedStateHandler = {};\nescapedStateHandler['['] = function (parser, terminal) {\n terminal.params = [];\n terminal.currentParam = 0;\n parser.setState(ParserState.CSI_PARAM);\n};\nescapedStateHandler[']'] = function (parser, terminal) {\n terminal.params = [];\n terminal.currentParam = 0;\n parser.setState(ParserState.OSC);\n};\nescapedStateHandler['P'] = function (parser, terminal) {\n terminal.params = [];\n terminal.currentParam = 0;\n parser.setState(ParserState.DCS);\n};\nescapedStateHandler['_'] = function (parser, terminal) {\n parser.setState(ParserState.IGNORE);\n};\nescapedStateHandler['^'] = function (parser, terminal) {\n parser.setState(ParserState.IGNORE);\n};\nescapedStateHandler['c'] = function (parser, terminal) {\n terminal.reset();\n};\nescapedStateHandler['E'] = function (parser, terminal) {\n terminal.buffer.x = 0;\n terminal.index();\n parser.setState(ParserState.NORMAL);\n};\nescapedStateHandler['D'] = function (parser, terminal) {\n terminal.index();\n parser.setState(ParserState.NORMAL);\n};\nescapedStateHandler['M'] = function (parser, terminal) {\n terminal.reverseIndex();\n parser.setState(ParserState.NORMAL);\n};\nescapedStateHandler['%'] = function (parser, terminal) {\n terminal.setgLevel(0);\n terminal.setgCharset(0, Charsets_1.DEFAULT_CHARSET);\n parser.setState(ParserState.NORMAL);\n parser.skipNextChar();\n};\nescapedStateHandler[EscapeSequences_1.C0.CAN] = function (parser) { return parser.setState(ParserState.NORMAL); };\nvar csiParamStateHandler = {};\ncsiParamStateHandler['?'] = function (parser) { return parser.setPrefix('?'); };\ncsiParamStateHandler['>'] = function (parser) { return parser.setPrefix('>'); };\ncsiParamStateHandler['!'] = function (parser) { return parser.setPrefix('!'); };\ncsiParamStateHandler['0'] = function (parser) { return parser.setParam(parser.getParam() * 10); };\ncsiParamStateHandler['1'] = function (parser) { return parser.setParam(parser.getParam() * 10 + 1); };\ncsiParamStateHandler['2'] = function (parser) { return parser.setParam(parser.getParam() * 10 + 2); };\ncsiParamStateHandler['3'] = function (parser) { return parser.setParam(parser.getParam() * 10 + 3); };\ncsiParamStateHandler['4'] = function (parser) { return parser.setParam(parser.getParam() * 10 + 4); };\ncsiParamStateHandler['5'] = function (parser) { return parser.setParam(parser.getParam() * 10 + 5); };\ncsiParamStateHandler['6'] = function (parser) { return parser.setParam(parser.getParam() * 10 + 6); };\ncsiParamStateHandler['7'] = function (parser) { return parser.setParam(parser.getParam() * 10 + 7); };\ncsiParamStateHandler['8'] = function (parser) { return parser.setParam(parser.getParam() * 10 + 8); };\ncsiParamStateHandler['9'] = function (parser) { return parser.setParam(parser.getParam() * 10 + 9); };\ncsiParamStateHandler['$'] = function (parser) { return parser.setPostfix('$'); };\ncsiParamStateHandler['\"'] = function (parser) { return parser.setPostfix('\"'); };\ncsiParamStateHandler[' '] = function (parser) { return parser.setPostfix(' '); };\ncsiParamStateHandler['\\''] = function (parser) { return parser.setPostfix('\\''); };\ncsiParamStateHandler[';'] = function (parser) { return parser.finalizeParam(); };\ncsiParamStateHandler[EscapeSequences_1.C0.CAN] = function (parser) { return parser.setState(ParserState.NORMAL); };\nvar csiStateHandler = {};\ncsiStateHandler['@'] = function (handler, params, prefix) { return handler.insertChars(params); };\ncsiStateHandler['A'] = function (handler, params, prefix) { return handler.cursorUp(params); };\ncsiStateHandler['B'] = function (handler, params, prefix) { return handler.cursorDown(params); };\ncsiStateHandler['C'] = function (handler, params, prefix) { return handler.cursorForward(params); };\ncsiStateHandler['D'] = function (handler, params, prefix) { return handler.cursorBackward(params); };\ncsiStateHandler['E'] = function (handler, params, prefix) { return handler.cursorNextLine(params); };\ncsiStateHandler['F'] = function (handler, params, prefix) { return handler.cursorPrecedingLine(params); };\ncsiStateHandler['G'] = function (handler, params, prefix) { return handler.cursorCharAbsolute(params); };\ncsiStateHandler['H'] = function (handler, params, prefix) { return handler.cursorPosition(params); };\ncsiStateHandler['I'] = function (handler, params, prefix) { return handler.cursorForwardTab(params); };\ncsiStateHandler['J'] = function (handler, params, prefix) { return handler.eraseInDisplay(params); };\ncsiStateHandler['K'] = function (handler, params, prefix) { return handler.eraseInLine(params); };\ncsiStateHandler['L'] = function (handler, params, prefix) { return handler.insertLines(params); };\ncsiStateHandler['M'] = function (handler, params, prefix) { return handler.deleteLines(params); };\ncsiStateHandler['P'] = function (handler, params, prefix) { return handler.deleteChars(params); };\ncsiStateHandler['S'] = function (handler, params, prefix) { return handler.scrollUp(params); };\ncsiStateHandler['T'] = function (handler, params, prefix) {\n if (params.length < 2 && !prefix) {\n handler.scrollDown(params);\n }\n};\ncsiStateHandler['X'] = function (handler, params, prefix) { return handler.eraseChars(params); };\ncsiStateHandler['Z'] = function (handler, params, prefix) { return handler.cursorBackwardTab(params); };\ncsiStateHandler['`'] = function (handler, params, prefix) { return handler.charPosAbsolute(params); };\ncsiStateHandler['a'] = function (handler, params, prefix) { return handler.HPositionRelative(params); };\ncsiStateHandler['b'] = function (handler, params, prefix) { return handler.repeatPrecedingCharacter(params); };\ncsiStateHandler['c'] = function (handler, params, prefix) { return handler.sendDeviceAttributes(params); };\ncsiStateHandler['d'] = function (handler, params, prefix) { return handler.linePosAbsolute(params); };\ncsiStateHandler['e'] = function (handler, params, prefix) { return handler.VPositionRelative(params); };\ncsiStateHandler['f'] = function (handler, params, prefix) { return handler.HVPosition(params); };\ncsiStateHandler['g'] = function (handler, params, prefix) { return handler.tabClear(params); };\ncsiStateHandler['h'] = function (handler, params, prefix) { return handler.setMode(params); };\ncsiStateHandler['l'] = function (handler, params, prefix) { return handler.resetMode(params); };\ncsiStateHandler['m'] = function (handler, params, prefix) { return handler.charAttributes(params); };\ncsiStateHandler['n'] = function (handler, params, prefix) { return handler.deviceStatus(params); };\ncsiStateHandler['p'] = function (handler, params, prefix) {\n switch (prefix) {\n case '!':\n handler.softReset(params);\n break;\n }\n};\ncsiStateHandler['q'] = function (handler, params, prefix, postfix) {\n if (postfix === ' ') {\n handler.setCursorStyle(params);\n }\n};\ncsiStateHandler['r'] = function (handler, params) { return handler.setScrollRegion(params); };\ncsiStateHandler['s'] = function (handler, params) { return handler.saveCursor(params); };\ncsiStateHandler['u'] = function (handler, params) { return handler.restoreCursor(params); };\ncsiStateHandler[EscapeSequences_1.C0.CAN] = function (handler, params, prefix, postfix, parser) { return parser.setState(ParserState.NORMAL); };\nvar ParserState;\n(function (ParserState) {\n ParserState[ParserState[\"NORMAL\"] = 0] = \"NORMAL\";\n ParserState[ParserState[\"ESCAPED\"] = 1] = \"ESCAPED\";\n ParserState[ParserState[\"CSI_PARAM\"] = 2] = \"CSI_PARAM\";\n ParserState[ParserState[\"CSI\"] = 3] = \"CSI\";\n ParserState[ParserState[\"OSC\"] = 4] = \"OSC\";\n ParserState[ParserState[\"CHARSET\"] = 5] = \"CHARSET\";\n ParserState[ParserState[\"DCS\"] = 6] = \"DCS\";\n ParserState[ParserState[\"IGNORE\"] = 7] = \"IGNORE\";\n})(ParserState = exports.ParserState || (exports.ParserState = {}));\nvar Parser = (function () {\n function Parser(_inputHandler, _terminal) {\n this._inputHandler = _inputHandler;\n this._terminal = _terminal;\n this._state = ParserState.NORMAL;\n }\n Parser.prototype.parse = function (data) {\n var l = data.length;\n var j;\n var cs;\n var ch;\n var code;\n var low;\n var cursorStartX = this._terminal.buffer.x;\n var cursorStartY = this._terminal.buffer.y;\n if (this._terminal.debug) {\n this._terminal.log('data: ' + data);\n }\n this._position = 0;\n if (this._terminal.surrogate_high) {\n data = this._terminal.surrogate_high + data;\n this._terminal.surrogate_high = '';\n }\n for (; this._position < l; this._position++) {\n ch = data[this._position];\n code = data.charCodeAt(this._position);\n if (0xD800 <= code && code <= 0xDBFF) {\n low = data.charCodeAt(this._position + 1);\n if (isNaN(low)) {\n this._terminal.surrogate_high = ch;\n continue;\n }\n code = ((code - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000;\n ch += data.charAt(this._position + 1);\n }\n if (0xDC00 <= code && code <= 0xDFFF)\n continue;\n switch (this._state) {\n case ParserState.NORMAL:\n if (ch in normalStateHandler) {\n normalStateHandler[ch](this, this._inputHandler);\n }\n else {\n this._inputHandler.addChar(ch, code);\n }\n break;\n case ParserState.ESCAPED:\n if (ch in escapedStateHandler) {\n escapedStateHandler[ch](this, this._terminal);\n break;\n }\n switch (ch) {\n case '(':\n case ')':\n case '*':\n case '+':\n case '-':\n case '.':\n switch (ch) {\n case '(':\n this._terminal.gcharset = 0;\n break;\n case ')':\n this._terminal.gcharset = 1;\n break;\n case '*':\n this._terminal.gcharset = 2;\n break;\n case '+':\n this._terminal.gcharset = 3;\n break;\n case '-':\n this._terminal.gcharset = 1;\n break;\n case '.':\n this._terminal.gcharset = 2;\n break;\n }\n this._state = ParserState.CHARSET;\n break;\n case '/':\n this._terminal.gcharset = 3;\n this._state = ParserState.CHARSET;\n this._position--;\n break;\n case 'N':\n break;\n case 'O':\n break;\n case 'n':\n this._terminal.setgLevel(2);\n break;\n case 'o':\n this._terminal.setgLevel(3);\n break;\n case '|':\n this._terminal.setgLevel(3);\n break;\n case '}':\n this._terminal.setgLevel(2);\n break;\n case '~':\n this._terminal.setgLevel(1);\n break;\n case '7':\n this._inputHandler.saveCursor();\n this._state = ParserState.NORMAL;\n break;\n case '8':\n this._inputHandler.restoreCursor();\n this._state = ParserState.NORMAL;\n break;\n case '#':\n this._state = ParserState.NORMAL;\n this._position++;\n break;\n case 'H':\n this._terminal.tabSet();\n this._state = ParserState.NORMAL;\n break;\n case '=':\n this._terminal.log('Serial port requested application keypad.');\n this._terminal.applicationKeypad = true;\n if (this._terminal.viewport) {\n this._terminal.viewport.syncScrollArea();\n }\n this._state = ParserState.NORMAL;\n break;\n case '>':\n this._terminal.log('Switching back to normal keypad.');\n this._terminal.applicationKeypad = false;\n if (this._terminal.viewport) {\n this._terminal.viewport.syncScrollArea();\n }\n this._state = ParserState.NORMAL;\n break;\n default:\n this._state = ParserState.NORMAL;\n this._terminal.error('Unknown ESC control: %s.', ch);\n break;\n }\n break;\n case ParserState.CHARSET:\n if (ch in Charsets_1.CHARSETS) {\n cs = Charsets_1.CHARSETS[ch];\n if (ch === '/') {\n this.skipNextChar();\n }\n }\n else {\n cs = Charsets_1.DEFAULT_CHARSET;\n }\n this._terminal.setgCharset(this._terminal.gcharset, cs);\n this._terminal.gcharset = null;\n this._state = ParserState.NORMAL;\n break;\n case ParserState.OSC:\n if (ch === EscapeSequences_1.C0.ESC || ch === EscapeSequences_1.C0.BEL) {\n if (ch === EscapeSequences_1.C0.ESC)\n this._position++;\n this._terminal.params.push(this._terminal.currentParam);\n switch (this._terminal.params[0]) {\n case 0:\n case 1:\n case 2:\n if (this._terminal.params[1]) {\n this._terminal.title = this._terminal.params[1];\n this._terminal.handleTitle(this._terminal.title);\n }\n break;\n case 3:\n break;\n case 4:\n case 5:\n break;\n case 10:\n case 11:\n case 12:\n case 13:\n case 14:\n case 15:\n case 16:\n case 17:\n case 18:\n case 19:\n break;\n case 46:\n break;\n case 50:\n break;\n case 51:\n break;\n case 52:\n break;\n case 104:\n case 105:\n case 110:\n case 111:\n case 112:\n case 113:\n case 114:\n case 115:\n case 116:\n case 117:\n case 118:\n break;\n }\n this._terminal.params = [];\n this._terminal.currentParam = 0;\n this._state = ParserState.NORMAL;\n }\n else {\n if (!this._terminal.params.length) {\n if (ch >= '0' && ch <= '9') {\n this._terminal.currentParam =\n this._terminal.currentParam * 10 + ch.charCodeAt(0) - 48;\n }\n else if (ch === ';') {\n this._terminal.params.push(this._terminal.currentParam);\n this._terminal.currentParam = '';\n }\n }\n else {\n this._terminal.currentParam += ch;\n }\n }\n break;\n case ParserState.CSI_PARAM:\n if (ch in csiParamStateHandler) {\n csiParamStateHandler[ch](this);\n break;\n }\n this.finalizeParam();\n this._state = ParserState.CSI;\n case ParserState.CSI:\n if (ch in csiStateHandler) {\n if (this._terminal.debug) {\n this._terminal.log(\"CSI \" + (this._terminal.prefix ? this._terminal.prefix : '') + \" \" + (this._terminal.params ? this._terminal.params.join(';') : '') + \" \" + (this._terminal.postfix ? this._terminal.postfix : '') + \" \" + ch);\n }\n csiStateHandler[ch](this._inputHandler, this._terminal.params, this._terminal.prefix, this._terminal.postfix, this);\n }\n else {\n this._terminal.error('Unknown CSI code: %s.', ch);\n }\n this._state = ParserState.NORMAL;\n this._terminal.prefix = '';\n this._terminal.postfix = '';\n break;\n case ParserState.DCS:\n if (ch === EscapeSequences_1.C0.ESC || ch === EscapeSequences_1.C0.BEL) {\n if (ch === EscapeSequences_1.C0.ESC)\n this._position++;\n var pt = void 0;\n var valid = void 0;\n switch (this._terminal.prefix) {\n case '':\n break;\n case '$q':\n pt = this._terminal.currentParam;\n valid = false;\n switch (pt) {\n case '\"q':\n pt = '0\"q';\n break;\n case '\"p':\n pt = '61\"p';\n break;\n case 'r':\n pt = ''\n + (this._terminal.buffer.scrollTop + 1)\n + ';'\n + (this._terminal.buffer.scrollBottom + 1)\n + 'r';\n break;\n case 'm':\n pt = '0m';\n break;\n default:\n this._terminal.error('Unknown DCS Pt: %s.', pt);\n pt = '';\n break;\n }\n this._terminal.send(EscapeSequences_1.C0.ESC + 'P' + +valid + '$r' + pt + EscapeSequences_1.C0.ESC + '\\\\');\n break;\n case '+p':\n break;\n case '+q':\n pt = this._terminal.currentParam;\n valid = false;\n this._terminal.send(EscapeSequences_1.C0.ESC + 'P' + +valid + '+r' + pt + EscapeSequences_1.C0.ESC + '\\\\');\n break;\n default:\n this._terminal.error('Unknown DCS prefix: %s.', this._terminal.prefix);\n break;\n }\n this._terminal.currentParam = 0;\n this._terminal.prefix = '';\n this._state = ParserState.NORMAL;\n }\n else if (!this._terminal.currentParam) {\n if (!this._terminal.prefix && ch !== '$' && ch !== '+') {\n this._terminal.currentParam = ch;\n }\n else if (this._terminal.prefix.length === 2) {\n this._terminal.currentParam = ch;\n }\n else {\n this._terminal.prefix += ch;\n }\n }\n else {\n this._terminal.currentParam += ch;\n }\n break;\n case ParserState.IGNORE:\n if (ch === EscapeSequences_1.C0.ESC || ch === EscapeSequences_1.C0.BEL) {\n if (ch === EscapeSequences_1.C0.ESC)\n this._position++;\n this._state = ParserState.NORMAL;\n }\n break;\n }\n }\n if (this._terminal.buffer.x !== cursorStartX || this._terminal.buffer.y !== cursorStartY) {\n this._terminal.emit('cursormove');\n }\n return this._state;\n };\n Parser.prototype.setState = function (state) {\n this._state = state;\n };\n Parser.prototype.setPrefix = function (prefix) {\n this._terminal.prefix = prefix;\n };\n Parser.prototype.setPostfix = function (postfix) {\n this._terminal.postfix = postfix;\n };\n Parser.prototype.setParam = function (param) {\n this._terminal.currentParam = param;\n };\n Parser.prototype.getParam = function () {\n return this._terminal.currentParam;\n };\n Parser.prototype.finalizeParam = function () {\n this._terminal.params.push(this._terminal.currentParam);\n this._terminal.currentParam = 0;\n };\n Parser.prototype.skipNextChar = function () {\n this._position++;\n };\n return Parser;\n}());\nexports.Parser = Parser;\n\n\n\n},{\"./Charsets\":4,\"./EscapeSequences\":6}],11:[function(require,module,exports){\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar MouseHelper_1 = require(\"./utils/MouseHelper\");\nvar Browser = require(\"./utils/Browser\");\nvar EventEmitter_1 = require(\"./EventEmitter\");\nvar SelectionModel_1 = require(\"./SelectionModel\");\nvar Buffer_1 = require(\"./Buffer\");\nvar DRAG_SCROLL_MAX_THRESHOLD = 50;\nvar DRAG_SCROLL_MAX_SPEED = 15;\nvar DRAG_SCROLL_INTERVAL = 50;\nvar WORD_SEPARATORS = ' ()[]{}\\'\"';\nvar NON_BREAKING_SPACE_CHAR = String.fromCharCode(160);\nvar ALL_NON_BREAKING_SPACE_REGEX = new RegExp(NON_BREAKING_SPACE_CHAR, 'g');\nvar SelectionMode;\n(function (SelectionMode) {\n SelectionMode[SelectionMode[\"NORMAL\"] = 0] = \"NORMAL\";\n SelectionMode[SelectionMode[\"WORD\"] = 1] = \"WORD\";\n SelectionMode[SelectionMode[\"LINE\"] = 2] = \"LINE\";\n})(SelectionMode || (SelectionMode = {}));\nvar SelectionManager = (function (_super) {\n __extends(SelectionManager, _super);\n function SelectionManager(_terminal, _buffer, _charMeasure) {\n var _this = _super.call(this) || this;\n _this._terminal = _terminal;\n _this._buffer = _buffer;\n _this._charMeasure = _charMeasure;\n _this._enabled = true;\n _this._initListeners();\n _this.enable();\n _this._model = new SelectionModel_1.SelectionModel(_terminal);\n _this._activeSelectionMode = SelectionMode.NORMAL;\n return _this;\n }\n SelectionManager.prototype._initListeners = function () {\n var _this = this;\n this._mouseMoveListener = function (event) { return _this._onMouseMove(event); };\n this._mouseUpListener = function (event) { return _this._onMouseUp(event); };\n this._buffer.lines.on('trim', function (amount) { return _this._onTrim(amount); });\n };\n SelectionManager.prototype.disable = function () {\n this.clearSelection();\n this._enabled = false;\n };\n SelectionManager.prototype.enable = function () {\n this._enabled = true;\n };\n SelectionManager.prototype.setBuffer = function (buffer) {\n this._buffer = buffer;\n this.clearSelection();\n };\n Object.defineProperty(SelectionManager.prototype, \"selectionStart\", {\n get: function () { return this._model.finalSelectionStart; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SelectionManager.prototype, \"selectionEnd\", {\n get: function () { return this._model.finalSelectionEnd; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SelectionManager.prototype, \"hasSelection\", {\n get: function () {\n var start = this._model.finalSelectionStart;\n var end = this._model.finalSelectionEnd;\n if (!start || !end) {\n return false;\n }\n return start[0] !== end[0] || start[1] !== end[1];\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SelectionManager.prototype, \"selectionText\", {\n get: function () {\n var start = this._model.finalSelectionStart;\n var end = this._model.finalSelectionEnd;\n if (!start || !end) {\n return '';\n }\n var startRowEndCol = start[1] === end[1] ? end[0] : null;\n var result = [];\n result.push(this._buffer.translateBufferLineToString(start[1], true, start[0], startRowEndCol));\n for (var i = start[1] + 1; i <= end[1] - 1; i++) {\n var bufferLine = this._buffer.lines.get(i);\n var lineText = this._buffer.translateBufferLineToString(i, true);\n if (bufferLine.isWrapped) {\n result[result.length - 1] += lineText;\n }\n else {\n result.push(lineText);\n }\n }\n if (start[1] !== end[1]) {\n var bufferLine = this._buffer.lines.get(end[1]);\n var lineText = this._buffer.translateBufferLineToString(end[1], true, 0, end[0]);\n if (bufferLine.isWrapped) {\n result[result.length - 1] += lineText;\n }\n else {\n result.push(lineText);\n }\n }\n var formattedResult = result.map(function (line) {\n return line.replace(ALL_NON_BREAKING_SPACE_REGEX, ' ');\n }).join(Browser.isMSWindows ? '\\r\\n' : '\\n');\n return formattedResult;\n },\n enumerable: true,\n configurable: true\n });\n SelectionManager.prototype.clearSelection = function () {\n this._model.clearSelection();\n this._removeMouseDownListeners();\n this.refresh();\n };\n SelectionManager.prototype.refresh = function (isNewSelection) {\n var _this = this;\n if (!this._refreshAnimationFrame) {\n this._refreshAnimationFrame = window.requestAnimationFrame(function () { return _this._refresh(); });\n }\n if (Browser.isLinux && isNewSelection) {\n var selectionText = this.selectionText;\n if (selectionText.length) {\n this.emit('newselection', this.selectionText);\n }\n }\n };\n SelectionManager.prototype._refresh = function () {\n this._refreshAnimationFrame = null;\n this.emit('refresh', { start: this._model.finalSelectionStart, end: this._model.finalSelectionEnd });\n };\n SelectionManager.prototype.selectAll = function () {\n this._model.isSelectAllActive = true;\n this.refresh();\n this._terminal.emit('selection');\n };\n SelectionManager.prototype._onTrim = function (amount) {\n var needsRefresh = this._model.onTrim(amount);\n if (needsRefresh) {\n this.refresh();\n }\n };\n SelectionManager.prototype._getMouseBufferCoords = function (event) {\n var coords = this._terminal.mouseHelper.getCoords(event, this._terminal.element, this._charMeasure, this._terminal.options.lineHeight, this._terminal.cols, this._terminal.rows, true);\n if (!coords) {\n return null;\n }\n coords[0]--;\n coords[1]--;\n coords[1] += this._terminal.buffer.ydisp;\n return coords;\n };\n SelectionManager.prototype._getMouseEventScrollAmount = function (event) {\n var offset = MouseHelper_1.MouseHelper.getCoordsRelativeToElement(event, this._terminal.element)[1];\n var terminalHeight = this._terminal.rows * Math.ceil(this._charMeasure.height * this._terminal.options.lineHeight);\n if (offset >= 0 && offset <= terminalHeight) {\n return 0;\n }\n if (offset > terminalHeight) {\n offset -= terminalHeight;\n }\n offset = Math.min(Math.max(offset, -DRAG_SCROLL_MAX_THRESHOLD), DRAG_SCROLL_MAX_THRESHOLD);\n offset /= DRAG_SCROLL_MAX_THRESHOLD;\n return (offset / Math.abs(offset)) + Math.round(offset * (DRAG_SCROLL_MAX_SPEED - 1));\n };\n SelectionManager.prototype.shouldForceSelection = function (event) {\n return Browser.isMac ? event.altKey : event.shiftKey;\n };\n SelectionManager.prototype.onMouseDown = function (event) {\n if (event.button === 2 && this.hasSelection) {\n return;\n }\n if (event.button !== 0) {\n return;\n }\n if (!this._enabled) {\n if (!this.shouldForceSelection(event)) {\n return;\n }\n event.stopPropagation();\n }\n event.preventDefault();\n this._dragScrollAmount = 0;\n if (this._enabled && event.shiftKey) {\n this._onIncrementalClick(event);\n }\n else {\n if (event.detail === 1) {\n this._onSingleClick(event);\n }\n else if (event.detail === 2) {\n this._onDoubleClick(event);\n }\n else if (event.detail === 3) {\n this._onTripleClick(event);\n }\n }\n this._addMouseDownListeners();\n this.refresh(true);\n };\n SelectionManager.prototype._addMouseDownListeners = function () {\n var _this = this;\n this._terminal.element.ownerDocument.addEventListener('mousemove', this._mouseMoveListener);\n this._terminal.element.ownerDocument.addEventListener('mouseup', this._mouseUpListener);\n this._dragScrollIntervalTimer = setInterval(function () { return _this._dragScroll(); }, DRAG_SCROLL_INTERVAL);\n };\n SelectionManager.prototype._removeMouseDownListeners = function () {\n this._terminal.element.ownerDocument.removeEventListener('mousemove', this._mouseMoveListener);\n this._terminal.element.ownerDocument.removeEventListener('mouseup', this._mouseUpListener);\n clearInterval(this._dragScrollIntervalTimer);\n this._dragScrollIntervalTimer = null;\n };\n SelectionManager.prototype._onIncrementalClick = function (event) {\n if (this._model.selectionStart) {\n this._model.selectionEnd = this._getMouseBufferCoords(event);\n }\n };\n SelectionManager.prototype._onSingleClick = function (event) {\n this._model.selectionStartLength = 0;\n this._model.isSelectAllActive = false;\n this._activeSelectionMode = SelectionMode.NORMAL;\n this._model.selectionStart = this._getMouseBufferCoords(event);\n if (!this._model.selectionStart) {\n return;\n }\n this._model.selectionEnd = null;\n var line = this._buffer.lines.get(this._model.selectionStart[1]);\n if (!line) {\n return;\n }\n if (line.length >= this._model.selectionStart[0]) {\n return;\n }\n var char = line[this._model.selectionStart[0]];\n if (char[Buffer_1.CHAR_DATA_WIDTH_INDEX] === 0) {\n this._model.selectionStart[0]++;\n }\n };\n SelectionManager.prototype._onDoubleClick = function (event) {\n var coords = this._getMouseBufferCoords(event);\n if (coords) {\n this._activeSelectionMode = SelectionMode.WORD;\n this._selectWordAt(coords);\n }\n };\n SelectionManager.prototype._onTripleClick = function (event) {\n var coords = this._getMouseBufferCoords(event);\n if (coords) {\n this._activeSelectionMode = SelectionMode.LINE;\n this._selectLineAt(coords[1]);\n }\n };\n SelectionManager.prototype._onMouseMove = function (event) {\n event.stopImmediatePropagation();\n var previousSelectionEnd = this._model.selectionEnd ? [this._model.selectionEnd[0], this._model.selectionEnd[1]] : null;\n this._model.selectionEnd = this._getMouseBufferCoords(event);\n if (!this._model.selectionEnd) {\n this.refresh(true);\n return;\n }\n if (this._activeSelectionMode === SelectionMode.LINE) {\n if (this._model.selectionEnd[1] < this._model.selectionStart[1]) {\n this._model.selectionEnd[0] = 0;\n }\n else {\n this._model.selectionEnd[0] = this._terminal.cols;\n }\n }\n else if (this._activeSelectionMode === SelectionMode.WORD) {\n this._selectToWordAt(this._model.selectionEnd);\n }\n this._dragScrollAmount = this._getMouseEventScrollAmount(event);\n if (this._dragScrollAmount > 0) {\n this._model.selectionEnd[0] = this._terminal.cols;\n }\n else if (this._dragScrollAmount < 0) {\n this._model.selectionEnd[0] = 0;\n }\n if (this._model.selectionEnd[1] < this._buffer.lines.length) {\n var char = this._buffer.lines.get(this._model.selectionEnd[1])[this._model.selectionEnd[0]];\n if (char && char[Buffer_1.CHAR_DATA_WIDTH_INDEX] === 0) {\n this._model.selectionEnd[0]++;\n }\n }\n if (!previousSelectionEnd ||\n previousSelectionEnd[0] !== this._model.selectionEnd[0] ||\n previousSelectionEnd[1] !== this._model.selectionEnd[1]) {\n this.refresh(true);\n }\n };\n SelectionManager.prototype._dragScroll = function () {\n if (this._dragScrollAmount) {\n this._terminal.scrollLines(this._dragScrollAmount, false);\n if (this._dragScrollAmount > 0) {\n this._model.selectionEnd = [this._terminal.cols - 1, this._terminal.buffer.ydisp + this._terminal.rows];\n }\n else {\n this._model.selectionEnd = [0, this._terminal.buffer.ydisp];\n }\n this.refresh();\n }\n };\n SelectionManager.prototype._onMouseUp = function (event) {\n this._removeMouseDownListeners();\n if (this.hasSelection)\n this._terminal.emit('selection');\n };\n SelectionManager.prototype._convertViewportColToCharacterIndex = function (bufferLine, coords) {\n var charIndex = coords[0];\n for (var i = 0; coords[0] >= i; i++) {\n var char = bufferLine[i];\n if (char[Buffer_1.CHAR_DATA_WIDTH_INDEX] === 0) {\n charIndex--;\n }\n else if (char[Buffer_1.CHAR_DATA_CHAR_INDEX].length > 1 && coords[0] !== i) {\n charIndex += char[Buffer_1.CHAR_DATA_CHAR_INDEX].length - 1;\n }\n }\n return charIndex;\n };\n SelectionManager.prototype.setSelection = function (col, row, length) {\n this._model.clearSelection();\n this._removeMouseDownListeners();\n this._model.selectionStart = [col, row];\n this._model.selectionStartLength = length;\n this.refresh();\n };\n SelectionManager.prototype._getWordAt = function (coords) {\n var bufferLine = this._buffer.lines.get(coords[1]);\n if (!bufferLine) {\n return null;\n }\n var line = this._buffer.translateBufferLineToString(coords[1], false);\n var startIndex = this._convertViewportColToCharacterIndex(bufferLine, coords);\n var endIndex = startIndex;\n var charOffset = coords[0] - startIndex;\n var leftWideCharCount = 0;\n var rightWideCharCount = 0;\n var leftLongCharOffset = 0;\n var rightLongCharOffset = 0;\n if (line.charAt(startIndex) === ' ') {\n while (startIndex > 0 && line.charAt(startIndex - 1) === ' ') {\n startIndex--;\n }\n while (endIndex < line.length && line.charAt(endIndex + 1) === ' ') {\n endIndex++;\n }\n }\n else {\n var startCol = coords[0];\n var endCol = coords[0];\n if (bufferLine[startCol][Buffer_1.CHAR_DATA_WIDTH_INDEX] === 0) {\n leftWideCharCount++;\n startCol--;\n }\n if (bufferLine[endCol][Buffer_1.CHAR_DATA_WIDTH_INDEX] === 2) {\n rightWideCharCount++;\n endCol++;\n }\n if (bufferLine[endCol][Buffer_1.CHAR_DATA_CHAR_INDEX].length > 1) {\n rightLongCharOffset += bufferLine[endCol][Buffer_1.CHAR_DATA_CHAR_INDEX].length - 1;\n endIndex += bufferLine[endCol][Buffer_1.CHAR_DATA_CHAR_INDEX].length - 1;\n }\n while (startCol > 0 && startIndex > 0 && !this._isCharWordSeparator(bufferLine[startCol - 1])) {\n var char = bufferLine[startCol - 1];\n if (char[Buffer_1.CHAR_DATA_WIDTH_INDEX] === 0) {\n leftWideCharCount++;\n startCol--;\n }\n else if (char[Buffer_1.CHAR_DATA_CHAR_INDEX].length > 1) {\n leftLongCharOffset += char[Buffer_1.CHAR_DATA_CHAR_INDEX].length - 1;\n startIndex -= char[Buffer_1.CHAR_DATA_CHAR_INDEX].length - 1;\n }\n startIndex--;\n startCol--;\n }\n while (endCol < bufferLine.length && endIndex + 1 < line.length && !this._isCharWordSeparator(bufferLine[endCol + 1])) {\n var char = bufferLine[endCol + 1];\n if (char[Buffer_1.CHAR_DATA_WIDTH_INDEX] === 2) {\n rightWideCharCount++;\n endCol++;\n }\n else if (char[Buffer_1.CHAR_DATA_CHAR_INDEX].length > 1) {\n rightLongCharOffset += char[Buffer_1.CHAR_DATA_CHAR_INDEX].length - 1;\n endIndex += char[Buffer_1.CHAR_DATA_CHAR_INDEX].length - 1;\n }\n endIndex++;\n endCol++;\n }\n }\n endIndex++;\n var start = startIndex\n + charOffset\n - leftWideCharCount\n + leftLongCharOffset;\n var length = Math.min(this._terminal.cols, endIndex\n - startIndex\n + leftWideCharCount\n + rightWideCharCount\n - leftLongCharOffset\n - rightLongCharOffset);\n return { start: start, length: length };\n };\n SelectionManager.prototype._selectWordAt = function (coords) {\n var wordPosition = this._getWordAt(coords);\n if (wordPosition) {\n this._model.selectionStart = [wordPosition.start, coords[1]];\n this._model.selectionStartLength = wordPosition.length;\n }\n };\n SelectionManager.prototype._selectToWordAt = function (coords) {\n var wordPosition = this._getWordAt(coords);\n if (wordPosition) {\n this._model.selectionEnd = [this._model.areSelectionValuesReversed() ? wordPosition.start : (wordPosition.start + wordPosition.length), coords[1]];\n }\n };\n SelectionManager.prototype._isCharWordSeparator = function (charData) {\n if (charData[Buffer_1.CHAR_DATA_WIDTH_INDEX] === 0) {\n return false;\n }\n return WORD_SEPARATORS.indexOf(charData[Buffer_1.CHAR_DATA_CHAR_INDEX]) >= 0;\n };\n SelectionManager.prototype._selectLineAt = function (line) {\n this._model.selectionStart = [0, line];\n this._model.selectionStartLength = this._terminal.cols;\n };\n return SelectionManager;\n}(EventEmitter_1.EventEmitter));\nexports.SelectionManager = SelectionManager;\n\n\n\n},{\"./Buffer\":1,\"./EventEmitter\":7,\"./SelectionModel\":12,\"./utils/Browser\":28,\"./utils/MouseHelper\":32}],12:[function(require,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar SelectionModel = (function () {\n function SelectionModel(_terminal) {\n this._terminal = _terminal;\n this.clearSelection();\n }\n SelectionModel.prototype.clearSelection = function () {\n this.selectionStart = null;\n this.selectionEnd = null;\n this.isSelectAllActive = false;\n this.selectionStartLength = 0;\n };\n Object.defineProperty(SelectionModel.prototype, \"finalSelectionStart\", {\n get: function () {\n if (this.isSelectAllActive) {\n return [0, 0];\n }\n if (!this.selectionEnd || !this.selectionStart) {\n return this.selectionStart;\n }\n return this.areSelectionValuesReversed() ? this.selectionEnd : this.selectionStart;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SelectionModel.prototype, \"finalSelectionEnd\", {\n get: function () {\n if (this.isSelectAllActive) {\n return [this._terminal.cols, this._terminal.buffer.ybase + this._terminal.rows - 1];\n }\n if (!this.selectionStart) {\n return null;\n }\n if (!this.selectionEnd || this.areSelectionValuesReversed()) {\n return [this.selectionStart[0] + this.selectionStartLength, this.selectionStart[1]];\n }\n if (this.selectionStartLength) {\n if (this.selectionEnd[1] === this.selectionStart[1]) {\n return [Math.max(this.selectionStart[0] + this.selectionStartLength, this.selectionEnd[0]), this.selectionEnd[1]];\n }\n }\n return this.selectionEnd;\n },\n enumerable: true,\n configurable: true\n });\n SelectionModel.prototype.areSelectionValuesReversed = function () {\n var start = this.selectionStart;\n var end = this.selectionEnd;\n if (!start || !end) {\n return false;\n }\n return start[1] > end[1] || (start[1] === end[1] && start[0] > end[0]);\n };\n SelectionModel.prototype.onTrim = function (amount) {\n if (this.selectionStart) {\n this.selectionStart[1] -= amount;\n }\n if (this.selectionEnd) {\n this.selectionEnd[1] -= amount;\n }\n if (this.selectionEnd && this.selectionEnd[1] < 0) {\n this.clearSelection();\n return true;\n }\n if (this.selectionStart && this.selectionStart[1] < 0) {\n this.selectionStart[1] = 0;\n }\n return false;\n };\n return SelectionModel;\n}());\nexports.SelectionModel = SelectionModel;\n\n\n\n},{}],13:[function(require,module,exports){\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BufferSet_1 = require(\"./BufferSet\");\nvar Buffer_1 = require(\"./Buffer\");\nvar CompositionHelper_1 = require(\"./CompositionHelper\");\nvar EventEmitter_1 = require(\"./EventEmitter\");\nvar Viewport_1 = require(\"./Viewport\");\nvar Clipboard_1 = require(\"./handlers/Clipboard\");\nvar EscapeSequences_1 = require(\"./EscapeSequences\");\nvar InputHandler_1 = require(\"./InputHandler\");\nvar Parser_1 = require(\"./Parser\");\nvar Renderer_1 = require(\"./renderer/Renderer\");\nvar Linkifier_1 = require(\"./Linkifier\");\nvar SelectionManager_1 = require(\"./SelectionManager\");\nvar CharMeasure_1 = require(\"./utils/CharMeasure\");\nvar Browser = require(\"./utils/Browser\");\nvar MouseHelper_1 = require(\"./utils/MouseHelper\");\nvar Sounds_1 = require(\"./utils/Sounds\");\nvar ColorManager_1 = require(\"./renderer/ColorManager\");\nvar MouseZoneManager_1 = require(\"./input/MouseZoneManager\");\nvar CharAtlas_1 = require(\"./renderer/CharAtlas\");\nvar document = (typeof window !== 'undefined') ? window.document : null;\nvar WRITE_BUFFER_PAUSE_THRESHOLD = 5;\nvar WRITE_BATCH_SIZE = 300;\nvar DEFAULT_OPTIONS = {\n cols: 80,\n rows: 24,\n convertEol: false,\n termName: 'xterm',\n cursorBlink: false,\n cursorStyle: 'block',\n bellSound: Sounds_1.BellSound,\n bellStyle: 'none',\n enableBold: true,\n fontFamily: 'courier-new, courier, monospace',\n fontSize: 15,\n lineHeight: 1.0,\n letterSpacing: 0,\n scrollback: 1000,\n screenKeys: false,\n debug: false,\n cancelEvents: false,\n disableStdin: false,\n useFlowControl: false,\n tabStopWidth: 8,\n theme: null\n};\nvar Terminal = (function (_super) {\n __extends(Terminal, _super);\n function Terminal(options) {\n if (options === void 0) { options = {}; }\n var _this = _super.call(this) || this;\n _this.browser = Browser;\n _this.options = options;\n _this.setup();\n return _this;\n }\n Terminal.prototype.setup = function () {\n var _this = this;\n Object.keys(DEFAULT_OPTIONS).forEach(function (key) {\n if (_this.options[key] == null) {\n _this.options[key] = DEFAULT_OPTIONS[key];\n }\n _this[key] = _this.options[key];\n });\n this.parent = document ? document.body : null;\n this.cols = this.options.cols;\n this.rows = this.options.rows;\n if (this.options.handler) {\n this.on('data', this.options.handler);\n }\n this.cursorState = 0;\n this.cursorHidden = false;\n this.sendDataQueue = '';\n this.customKeyEventHandler = null;\n this.applicationKeypad = false;\n this.applicationCursor = false;\n this.originMode = false;\n this.insertMode = false;\n this.wraparoundMode = true;\n this.bracketedPasteMode = false;\n this.charset = null;\n this.gcharset = null;\n this.glevel = 0;\n this.charsets = [null];\n this.readable = true;\n this.writable = true;\n this.defAttr = (0 << 18) | (257 << 9) | (256 << 0);\n this.curAttr = (0 << 18) | (257 << 9) | (256 << 0);\n this.params = [];\n this.currentParam = 0;\n this.prefix = '';\n this.postfix = '';\n this.writeBuffer = [];\n this.writeInProgress = false;\n this.xoffSentToCatchUp = false;\n this.writeStopped = false;\n this.surrogate_high = '';\n this.userScrolling = false;\n this.inputHandler = new InputHandler_1.InputHandler(this);\n this.parser = new Parser_1.Parser(this.inputHandler, this);\n this.renderer = this.renderer || null;\n this.selectionManager = this.selectionManager || null;\n this.linkifier = this.linkifier || new Linkifier_1.Linkifier(this);\n this._mouseZoneManager = this._mouseZoneManager || null;\n this.buffers = new BufferSet_1.BufferSet(this);\n this.buffer = this.buffers.active;\n this.buffers.on('activate', function (buffer) {\n _this.buffer = buffer;\n });\n if (this.selectionManager) {\n this.selectionManager.setBuffer(this.buffer);\n }\n };\n Terminal.prototype.eraseAttr = function () {\n return (this.defAttr & ~0x1ff) | (this.curAttr & 0x1ff);\n };\n Terminal.prototype.focus = function () {\n if (this.textarea) {\n this.textarea.focus();\n }\n };\n Object.defineProperty(Terminal.prototype, \"isFocused\", {\n get: function () {\n return document.activeElement === this.textarea;\n },\n enumerable: true,\n configurable: true\n });\n Terminal.prototype.getOption = function (key) {\n if (!(key in DEFAULT_OPTIONS)) {\n throw new Error('No option with key \"' + key + '\"');\n }\n if (typeof this.options[key] !== 'undefined') {\n return this.options[key];\n }\n return this[key];\n };\n Terminal.prototype.setOption = function (key, value) {\n if (!(key in DEFAULT_OPTIONS)) {\n throw new Error('No option with key \"' + key + '\"');\n }\n switch (key) {\n case 'bellStyle':\n if (!value) {\n value = 'none';\n }\n break;\n case 'cursorStyle':\n if (!value) {\n value = 'block';\n }\n break;\n case 'lineHeight':\n if (value < 1) {\n console.warn(key + \" cannot be less than 1, value: \" + value);\n return;\n }\n case 'tabStopWidth':\n if (value < 1) {\n console.warn(key + \" cannot be less than 1, value: \" + value);\n return;\n }\n break;\n case 'theme':\n if (this.renderer) {\n this._setTheme(value);\n return;\n }\n break;\n case 'scrollback':\n value = Math.min(value, Buffer_1.MAX_BUFFER_SIZE);\n if (value < 0) {\n console.warn(key + \" cannot be less than 0, value: \" + value);\n return;\n }\n if (this.options[key] !== value) {\n var newBufferLength = this.rows + value;\n if (this.buffer.lines.length > newBufferLength) {\n var amountToTrim = this.buffer.lines.length - newBufferLength;\n var needsRefresh = (this.buffer.ydisp - amountToTrim < 0);\n this.buffer.lines.trimStart(amountToTrim);\n this.buffer.ybase = Math.max(this.buffer.ybase - amountToTrim, 0);\n this.buffer.ydisp = Math.max(this.buffer.ydisp - amountToTrim, 0);\n if (needsRefresh) {\n this.refresh(0, this.rows - 1);\n }\n }\n }\n break;\n }\n this[key] = value;\n this.options[key] = value;\n switch (key) {\n case 'fontFamily':\n case 'fontSize':\n this.renderer.clear();\n this.charMeasure.measure(this.options);\n break;\n case 'enableBold':\n case 'letterSpacing':\n case 'lineHeight':\n this.renderer.clear();\n this.renderer.onResize(this.cols, this.rows, false);\n this.refresh(0, this.rows - 1);\n case 'scrollback':\n this.buffers.resize(this.cols, this.rows);\n this.viewport.syncScrollArea();\n break;\n case 'tabStopWidth':\n this.buffers.setupTabStops();\n break;\n case 'bellSound':\n case 'bellStyle':\n this.syncBellSound();\n break;\n }\n if (this.renderer) {\n this.renderer.onOptionsChanged();\n }\n };\n Terminal.prototype._onTextAreaFocus = function () {\n if (this.sendFocus) {\n this.send(EscapeSequences_1.C0.ESC + '[I');\n }\n this.element.classList.add('focus');\n this.showCursor();\n this.emit('focus');\n };\n ;\n Terminal.prototype.blur = function () {\n return this.textarea.blur();\n };\n Terminal.prototype._onTextAreaBlur = function () {\n this.refresh(this.buffer.y, this.buffer.y);\n if (this.sendFocus) {\n this.send(EscapeSequences_1.C0.ESC + '[O');\n }\n this.element.classList.remove('focus');\n this.emit('blur');\n };\n Terminal.prototype.initGlobal = function () {\n var _this = this;\n this.bindKeys();\n on(this.element, 'copy', function (event) {\n if (!_this.hasSelection()) {\n return;\n }\n Clipboard_1.copyHandler(event, _this, _this.selectionManager);\n });\n var pasteHandlerWrapper = function (event) { return Clipboard_1.pasteHandler(event, _this); };\n on(this.textarea, 'paste', pasteHandlerWrapper);\n on(this.element, 'paste', pasteHandlerWrapper);\n if (Browser.isFirefox) {\n on(this.element, 'mousedown', function (event) {\n if (event.button === 2) {\n Clipboard_1.rightClickHandler(event, _this.textarea, _this.selectionManager);\n }\n });\n }\n else {\n on(this.element, 'contextmenu', function (event) {\n Clipboard_1.rightClickHandler(event, _this.textarea, _this.selectionManager);\n });\n }\n if (Browser.isLinux) {\n on(this.element, 'auxclick', function (event) {\n if (event.button === 1) {\n Clipboard_1.moveTextAreaUnderMouseCursor(event, _this.textarea);\n }\n });\n }\n };\n Terminal.prototype.bindKeys = function () {\n var _this = this;\n var self = this;\n on(this.element, 'keydown', function (ev) {\n if (document.activeElement !== this) {\n return;\n }\n self._keyDown(ev);\n }, true);\n on(this.element, 'keypress', function (ev) {\n if (document.activeElement !== this) {\n return;\n }\n self._keyPress(ev);\n }, true);\n on(this.element, 'keyup', function (ev) {\n if (!wasMondifierKeyOnlyEvent(ev)) {\n _this.focus();\n }\n }, true);\n on(this.textarea, 'keydown', function (ev) {\n _this._keyDown(ev);\n }, true);\n on(this.textarea, 'keypress', function (ev) {\n _this._keyPress(ev);\n _this.textarea.value = '';\n }, true);\n on(this.textarea, 'compositionstart', function () { return _this.compositionHelper.compositionstart(); });\n on(this.textarea, 'compositionupdate', function (e) { return _this.compositionHelper.compositionupdate(e); });\n on(this.textarea, 'compositionend', function () { return _this.compositionHelper.compositionend(); });\n this.on('refresh', function () { return _this.compositionHelper.updateCompositionElements(); });\n this.on('refresh', function (data) { return _this.queueLinkification(data.start, data.end); });\n };\n Terminal.prototype.open = function (parent) {\n var _this = this;\n var i = 0;\n var div;\n this.parent = parent || this.parent;\n if (!this.parent) {\n throw new Error('Terminal requires a parent element.');\n }\n this.context = this.parent.ownerDocument.defaultView;\n this.document = this.parent.ownerDocument;\n this.body = this.document.body;\n CharAtlas_1.initialize(this.document);\n this.element = this.document.createElement('div');\n this.element.classList.add('terminal');\n this.element.classList.add('xterm');\n this.element.setAttribute('tabindex', '0');\n this.parent.appendChild(this.element);\n var fragment = document.createDocumentFragment();\n this.viewportElement = document.createElement('div');\n this.viewportElement.classList.add('xterm-viewport');\n fragment.appendChild(this.viewportElement);\n this.viewportScrollArea = document.createElement('div');\n this.viewportScrollArea.classList.add('xterm-scroll-area');\n this.viewportElement.appendChild(this.viewportScrollArea);\n this._mouseZoneManager = new MouseZoneManager_1.MouseZoneManager(this);\n this.on('scroll', function () { return _this._mouseZoneManager.clearAll(); });\n this.linkifier.attachToDom(this._mouseZoneManager);\n this.helperContainer = document.createElement('div');\n this.helperContainer.classList.add('xterm-helpers');\n fragment.appendChild(this.helperContainer);\n this.textarea = document.createElement('textarea');\n this.textarea.classList.add('xterm-helper-textarea');\n this.textarea.setAttribute('autocorrect', 'off');\n this.textarea.setAttribute('autocapitalize', 'off');\n this.textarea.setAttribute('spellcheck', 'false');\n this.textarea.tabIndex = 0;\n this.textarea.addEventListener('focus', function () { return _this._onTextAreaFocus(); });\n this.textarea.addEventListener('blur', function () { return _this._onTextAreaBlur(); });\n this.helperContainer.appendChild(this.textarea);\n this.compositionView = document.createElement('div');\n this.compositionView.classList.add('composition-view');\n this.compositionHelper = new CompositionHelper_1.CompositionHelper(this.textarea, this.compositionView, this);\n this.helperContainer.appendChild(this.compositionView);\n this.charSizeStyleElement = document.createElement('style');\n this.helperContainer.appendChild(this.charSizeStyleElement);\n this.charMeasure = new CharMeasure_1.CharMeasure(document, this.helperContainer);\n this.syncBellSound();\n this.element.appendChild(fragment);\n this.renderer = new Renderer_1.Renderer(this, this.options.theme);\n this.options.theme = null;\n this.viewport = new Viewport_1.Viewport(this, this.viewportElement, this.viewportScrollArea, this.charMeasure);\n this.viewport.onThemeChanged(this.renderer.colorManager.colors);\n this.on('cursormove', function () { return _this.renderer.onCursorMove(); });\n this.on('resize', function () { return _this.renderer.onResize(_this.cols, _this.rows, false); });\n this.on('blur', function () { return _this.renderer.onBlur(); });\n this.on('focus', function () { return _this.renderer.onFocus(); });\n window.addEventListener('resize', function () { return _this.renderer.onWindowResize(window.devicePixelRatio); });\n this.charMeasure.on('charsizechanged', function () { return _this.renderer.onResize(_this.cols, _this.rows, true); });\n this.renderer.on('resize', function (dimensions) { return _this.viewport.syncScrollArea(); });\n this.selectionManager = new SelectionManager_1.SelectionManager(this, this.buffer, this.charMeasure);\n this.element.addEventListener('mousedown', function (e) { return _this.selectionManager.onMouseDown(e); });\n this.selectionManager.on('refresh', function (data) { return _this.renderer.onSelectionChanged(data.start, data.end); });\n this.selectionManager.on('newselection', function (text) {\n _this.textarea.value = text;\n _this.textarea.focus();\n _this.textarea.select();\n });\n this.on('scroll', function () {\n _this.viewport.syncScrollArea();\n _this.selectionManager.refresh();\n });\n this.viewportElement.addEventListener('scroll', function () { return _this.selectionManager.refresh(); });\n this.mouseHelper = new MouseHelper_1.MouseHelper(this.renderer);\n this.charMeasure.measure(this.options);\n this.refresh(0, this.rows - 1);\n this.initGlobal();\n this.bindMouse();\n };\n Terminal.prototype._setTheme = function (theme) {\n var colors = this.renderer.setTheme(theme);\n if (this.viewport) {\n this.viewport.onThemeChanged(colors);\n }\n };\n Terminal.applyAddon = function (addon) {\n addon.apply(Terminal);\n };\n Terminal.prototype.bindMouse = function () {\n var _this = this;\n var el = this.element;\n var self = this;\n var pressed = 32;\n function sendButton(ev) {\n var button;\n var pos;\n button = getButton(ev);\n pos = self.mouseHelper.getRawByteCoords(ev, self.element, self.charMeasure, self.options.lineHeight, self.cols, self.rows);\n if (!pos)\n return;\n sendEvent(button, pos);\n switch (ev.overrideType || ev.type) {\n case 'mousedown':\n pressed = button;\n break;\n case 'mouseup':\n pressed = 32;\n break;\n case 'wheel':\n break;\n }\n }\n function sendMove(ev) {\n var button = pressed;\n var pos = self.mouseHelper.getRawByteCoords(ev, self.element, self.charMeasure, self.options.lineHeight, self.cols, self.rows);\n if (!pos)\n return;\n button += 32;\n sendEvent(button, pos);\n }\n function encode(data, ch) {\n if (!self.utfMouse) {\n if (ch === 255) {\n data.push(0);\n return;\n }\n if (ch > 127)\n ch = 127;\n data.push(ch);\n }\n else {\n if (ch === 2047) {\n data.push(0);\n return;\n }\n if (ch < 127) {\n data.push(ch);\n }\n else {\n if (ch > 2047)\n ch = 2047;\n data.push(0xC0 | (ch >> 6));\n data.push(0x80 | (ch & 0x3F));\n }\n }\n }\n function sendEvent(button, pos) {\n if (self.vt300Mouse) {\n button &= 3;\n pos.x -= 32;\n pos.y -= 32;\n var data_1 = EscapeSequences_1.C0.ESC + '[24';\n if (button === 0)\n data_1 += '1';\n else if (button === 1)\n data_1 += '3';\n else if (button === 2)\n data_1 += '5';\n else if (button === 3)\n return;\n else\n data_1 += '0';\n data_1 += '~[' + pos.x + ',' + pos.y + ']\\r';\n self.send(data_1);\n return;\n }\n if (self.decLocator) {\n button &= 3;\n pos.x -= 32;\n pos.y -= 32;\n if (button === 0)\n button = 2;\n else if (button === 1)\n button = 4;\n else if (button === 2)\n button = 6;\n else if (button === 3)\n button = 3;\n self.send(EscapeSequences_1.C0.ESC + '['\n + button\n + ';'\n + (button === 3 ? 4 : 0)\n + ';'\n + pos.y\n + ';'\n + pos.x\n + ';'\n + pos.page || 0\n + '&w');\n return;\n }\n if (self.urxvtMouse) {\n pos.x -= 32;\n pos.y -= 32;\n pos.x++;\n pos.y++;\n self.send(EscapeSequences_1.C0.ESC + '[' + button + ';' + pos.x + ';' + pos.y + 'M');\n return;\n }\n if (self.sgrMouse) {\n pos.x -= 32;\n pos.y -= 32;\n self.send(EscapeSequences_1.C0.ESC + '[<'\n + (((button & 3) === 3 ? button & ~3 : button) - 32)\n + ';'\n + pos.x\n + ';'\n + pos.y\n + ((button & 3) === 3 ? 'm' : 'M'));\n return;\n }\n var data = [];\n encode(data, button);\n encode(data, pos.x);\n encode(data, pos.y);\n self.send(EscapeSequences_1.C0.ESC + '[M' + String.fromCharCode.apply(String, data));\n }\n function getButton(ev) {\n var button;\n var shift;\n var meta;\n var ctrl;\n var mod;\n switch (ev.overrideType || ev.type) {\n case 'mousedown':\n button = ev.button != null\n ? +ev.button\n : ev.which != null\n ? ev.which - 1\n : null;\n if (Browser.isMSIE) {\n button = button === 1 ? 0 : button === 4 ? 1 : button;\n }\n break;\n case 'mouseup':\n button = 3;\n break;\n case 'DOMMouseScroll':\n button = ev.detail < 0\n ? 64\n : 65;\n break;\n case 'wheel':\n button = ev.wheelDeltaY > 0\n ? 64\n : 65;\n break;\n }\n shift = ev.shiftKey ? 4 : 0;\n meta = ev.metaKey ? 8 : 0;\n ctrl = ev.ctrlKey ? 16 : 0;\n mod = shift | meta | ctrl;\n if (self.vt200Mouse) {\n mod &= ctrl;\n }\n else if (!self.normalMouse) {\n mod = 0;\n }\n button = (32 + (mod << 2)) + button;\n return button;\n }\n on(el, 'mousedown', function (ev) {\n ev.preventDefault();\n _this.focus();\n if (!_this.mouseEvents || _this.selectionManager.shouldForceSelection(ev)) {\n return;\n }\n sendButton(ev);\n if (_this.vt200Mouse) {\n ev.overrideType = 'mouseup';\n sendButton(ev);\n return _this.cancel(ev);\n }\n if (_this.normalMouse)\n on(_this.document, 'mousemove', sendMove);\n if (!_this.x10Mouse) {\n var handler_1 = function (ev) {\n sendButton(ev);\n if (_this.normalMouse)\n off(_this.document, 'mousemove', sendMove);\n off(_this.document, 'mouseup', handler_1);\n return _this.cancel(ev);\n };\n on(_this.document, 'mouseup', handler_1);\n }\n return _this.cancel(ev);\n });\n on(el, 'wheel', function (ev) {\n if (!_this.mouseEvents)\n return;\n if (_this.x10Mouse || _this.vt300Mouse || _this.decLocator)\n return;\n sendButton(ev);\n ev.preventDefault();\n });\n on(el, 'wheel', function (ev) {\n if (_this.mouseEvents)\n return;\n _this.viewport.onWheel(ev);\n return _this.cancel(ev);\n });\n on(el, 'touchstart', function (ev) {\n if (_this.mouseEvents)\n return;\n _this.viewport.onTouchStart(ev);\n return _this.cancel(ev);\n });\n on(el, 'touchmove', function (ev) {\n if (_this.mouseEvents)\n return;\n _this.viewport.onTouchMove(ev);\n return _this.cancel(ev);\n });\n };\n Terminal.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.readable = false;\n this.writable = false;\n this.handler = function () { };\n this.write = function () { };\n if (this.element && this.element.parentNode) {\n this.element.parentNode.removeChild(this.element);\n }\n };\n Terminal.prototype.refresh = function (start, end) {\n if (this.renderer) {\n this.renderer.queueRefresh(start, end);\n }\n };\n Terminal.prototype.queueLinkification = function (start, end) {\n if (this.linkifier) {\n this.linkifier.linkifyRows(start, end);\n }\n };\n Terminal.prototype.showCursor = function () {\n if (!this.cursorState) {\n this.cursorState = 1;\n this.refresh(this.buffer.y, this.buffer.y);\n }\n };\n Terminal.prototype.scroll = function (isWrapped) {\n var newLine = this.blankLine(undefined, isWrapped);\n var topRow = this.buffer.ybase + this.buffer.scrollTop;\n var bottomRow = this.buffer.ybase + this.buffer.scrollBottom;\n if (this.buffer.scrollTop === 0) {\n var willBufferBeTrimmed = this.buffer.lines.length === this.buffer.lines.maxLength;\n if (bottomRow === this.buffer.lines.length - 1) {\n this.buffer.lines.push(newLine);\n }\n else {\n this.buffer.lines.splice(bottomRow + 1, 0, newLine);\n }\n if (!willBufferBeTrimmed) {\n this.buffer.ybase++;\n if (!this.userScrolling) {\n this.buffer.ydisp++;\n }\n }\n else {\n if (this.userScrolling) {\n this.buffer.ydisp = Math.max(this.buffer.ydisp - 1, 0);\n }\n }\n }\n else {\n var scrollRegionHeight = bottomRow - topRow + 1;\n this.buffer.lines.shiftElements(topRow + 1, scrollRegionHeight - 1, -1);\n this.buffer.lines.set(bottomRow, newLine);\n }\n if (!this.userScrolling) {\n this.buffer.ydisp = this.buffer.ybase;\n }\n this.updateRange(this.buffer.scrollTop);\n this.updateRange(this.buffer.scrollBottom);\n this.emit('scroll', this.buffer.ydisp);\n };\n Terminal.prototype.scrollLines = function (disp, suppressScrollEvent) {\n if (disp < 0) {\n if (this.buffer.ydisp === 0) {\n return;\n }\n this.userScrolling = true;\n }\n else if (disp + this.buffer.ydisp >= this.buffer.ybase) {\n this.userScrolling = false;\n }\n var oldYdisp = this.buffer.ydisp;\n this.buffer.ydisp = Math.max(Math.min(this.buffer.ydisp + disp, this.buffer.ybase), 0);\n if (oldYdisp === this.buffer.ydisp) {\n return;\n }\n if (!suppressScrollEvent) {\n this.emit('scroll', this.buffer.ydisp);\n }\n this.refresh(0, this.rows - 1);\n };\n Terminal.prototype.scrollPages = function (pageCount) {\n this.scrollLines(pageCount * (this.rows - 1));\n };\n Terminal.prototype.scrollToTop = function () {\n this.scrollLines(-this.buffer.ydisp);\n };\n Terminal.prototype.scrollToBottom = function () {\n this.scrollLines(this.buffer.ybase - this.buffer.ydisp);\n };\n Terminal.prototype.write = function (data) {\n var _this = this;\n this.writeBuffer.push(data);\n if (this.options.useFlowControl && !this.xoffSentToCatchUp && this.writeBuffer.length >= WRITE_BUFFER_PAUSE_THRESHOLD) {\n this.send(EscapeSequences_1.C0.DC3);\n this.xoffSentToCatchUp = true;\n }\n if (!this.writeInProgress && this.writeBuffer.length > 0) {\n this.writeInProgress = true;\n setTimeout(function () {\n _this.innerWrite();\n });\n }\n };\n Terminal.prototype.innerWrite = function () {\n var _this = this;\n var writeBatch = this.writeBuffer.splice(0, WRITE_BATCH_SIZE);\n while (writeBatch.length > 0) {\n var data = writeBatch.shift();\n if (this.xoffSentToCatchUp && writeBatch.length === 0 && this.writeBuffer.length === 0) {\n this.send(EscapeSequences_1.C0.DC1);\n this.xoffSentToCatchUp = false;\n }\n this.refreshStart = this.buffer.y;\n this.refreshEnd = this.buffer.y;\n var state = this.parser.parse(data);\n this.parser.setState(state);\n this.updateRange(this.buffer.y);\n this.refresh(this.refreshStart, this.refreshEnd);\n }\n if (this.writeBuffer.length > 0) {\n setTimeout(function () { return _this.innerWrite(); }, 0);\n }\n else {\n this.writeInProgress = false;\n }\n };\n Terminal.prototype.writeln = function (data) {\n this.write(data + '\\r\\n');\n };\n Terminal.prototype.attachCustomKeyEventHandler = function (customKeyEventHandler) {\n this.customKeyEventHandler = customKeyEventHandler;\n };\n Terminal.prototype.setHypertextLinkHandler = function (handler) {\n if (!this.linkifier) {\n throw new Error('Cannot attach a hypertext link handler before Terminal.open is called');\n }\n this.linkifier.setHypertextLinkHandler(handler);\n this.refresh(0, this.rows - 1);\n };\n Terminal.prototype.setHypertextValidationCallback = function (callback) {\n if (!this.linkifier) {\n throw new Error('Cannot attach a hypertext validation callback before Terminal.open is called');\n }\n this.linkifier.setHypertextValidationCallback(callback);\n this.refresh(0, this.rows - 1);\n };\n Terminal.prototype.registerLinkMatcher = function (regex, handler, options) {\n if (this.linkifier) {\n var matcherId = this.linkifier.registerLinkMatcher(regex, handler, options);\n this.refresh(0, this.rows - 1);\n return matcherId;\n }\n return 0;\n };\n Terminal.prototype.deregisterLinkMatcher = function (matcherId) {\n if (this.linkifier) {\n if (this.linkifier.deregisterLinkMatcher(matcherId)) {\n this.refresh(0, this.rows - 1);\n }\n }\n };\n Terminal.prototype.hasSelection = function () {\n return this.selectionManager ? this.selectionManager.hasSelection : false;\n };\n Terminal.prototype.getSelection = function () {\n return this.selectionManager ? this.selectionManager.selectionText : '';\n };\n Terminal.prototype.clearSelection = function () {\n if (this.selectionManager) {\n this.selectionManager.clearSelection();\n }\n };\n Terminal.prototype.selectAll = function () {\n if (this.selectionManager) {\n this.selectionManager.selectAll();\n }\n };\n Terminal.prototype._keyDown = function (ev) {\n if (this.customKeyEventHandler && this.customKeyEventHandler(ev) === false) {\n return false;\n }\n if (!this.compositionHelper.keydown(ev)) {\n if (this.buffer.ybase !== this.buffer.ydisp) {\n this.scrollToBottom();\n }\n return false;\n }\n var result = this._evaluateKeyEscapeSequence(ev);\n if (result.key === EscapeSequences_1.C0.DC3) {\n this.writeStopped = true;\n }\n else if (result.key === EscapeSequences_1.C0.DC1) {\n this.writeStopped = false;\n }\n if (result.scrollLines) {\n this.scrollLines(result.scrollLines);\n return this.cancel(ev, true);\n }\n if (isThirdLevelShift(this.browser, ev)) {\n return true;\n }\n if (result.cancel) {\n this.cancel(ev, true);\n }\n if (!result.key) {\n return true;\n }\n this.emit('keydown', ev);\n this.emit('key', result.key, ev);\n this.showCursor();\n this.handler(result.key);\n return this.cancel(ev, true);\n };\n Terminal.prototype._evaluateKeyEscapeSequence = function (ev) {\n var result = {\n cancel: false,\n key: undefined,\n scrollLines: undefined\n };\n var modifiers = (ev.shiftKey ? 1 : 0) | (ev.altKey ? 2 : 0) | (ev.ctrlKey ? 4 : 0) | (ev.metaKey ? 8 : 0);\n switch (ev.keyCode) {\n case 0:\n if (ev.key === 'UIKeyInputUpArrow') {\n if (this.applicationCursor) {\n result.key = EscapeSequences_1.C0.ESC + 'OA';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[A';\n }\n }\n else if (ev.key === 'UIKeyInputLeftArrow') {\n if (this.applicationCursor) {\n result.key = EscapeSequences_1.C0.ESC + 'OD';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[D';\n }\n }\n else if (ev.key === 'UIKeyInputRightArrow') {\n if (this.applicationCursor) {\n result.key = EscapeSequences_1.C0.ESC + 'OC';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[C';\n }\n }\n else if (ev.key === 'UIKeyInputDownArrow') {\n if (this.applicationCursor) {\n result.key = EscapeSequences_1.C0.ESC + 'OB';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[B';\n }\n }\n break;\n case 8:\n if (ev.shiftKey) {\n result.key = EscapeSequences_1.C0.BS;\n break;\n }\n result.key = EscapeSequences_1.C0.DEL;\n break;\n case 9:\n if (ev.shiftKey) {\n result.key = EscapeSequences_1.C0.ESC + '[Z';\n break;\n }\n result.key = EscapeSequences_1.C0.HT;\n result.cancel = true;\n break;\n case 13:\n result.key = EscapeSequences_1.C0.CR;\n result.cancel = true;\n break;\n case 27:\n result.key = EscapeSequences_1.C0.ESC;\n result.cancel = true;\n break;\n case 37:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'D';\n if (result.key === EscapeSequences_1.C0.ESC + '[1;3D') {\n result.key = (this.browser.isMac) ? EscapeSequences_1.C0.ESC + 'b' : EscapeSequences_1.C0.ESC + '[1;5D';\n }\n }\n else if (this.applicationCursor) {\n result.key = EscapeSequences_1.C0.ESC + 'OD';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[D';\n }\n break;\n case 39:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'C';\n if (result.key === EscapeSequences_1.C0.ESC + '[1;3C') {\n result.key = (this.browser.isMac) ? EscapeSequences_1.C0.ESC + 'f' : EscapeSequences_1.C0.ESC + '[1;5C';\n }\n }\n else if (this.applicationCursor) {\n result.key = EscapeSequences_1.C0.ESC + 'OC';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[C';\n }\n break;\n case 38:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'A';\n if (result.key === EscapeSequences_1.C0.ESC + '[1;3A') {\n result.key = EscapeSequences_1.C0.ESC + '[1;5A';\n }\n }\n else if (this.applicationCursor) {\n result.key = EscapeSequences_1.C0.ESC + 'OA';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[A';\n }\n break;\n case 40:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'B';\n if (result.key === EscapeSequences_1.C0.ESC + '[1;3B') {\n result.key = EscapeSequences_1.C0.ESC + '[1;5B';\n }\n }\n else if (this.applicationCursor) {\n result.key = EscapeSequences_1.C0.ESC + 'OB';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[B';\n }\n break;\n case 45:\n if (!ev.shiftKey && !ev.ctrlKey) {\n result.key = EscapeSequences_1.C0.ESC + '[2~';\n }\n break;\n case 46:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[3;' + (modifiers + 1) + '~';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[3~';\n }\n break;\n case 36:\n if (modifiers)\n result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'H';\n else if (this.applicationCursor)\n result.key = EscapeSequences_1.C0.ESC + 'OH';\n else\n result.key = EscapeSequences_1.C0.ESC + '[H';\n break;\n case 35:\n if (modifiers)\n result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'F';\n else if (this.applicationCursor)\n result.key = EscapeSequences_1.C0.ESC + 'OF';\n else\n result.key = EscapeSequences_1.C0.ESC + '[F';\n break;\n case 33:\n if (ev.shiftKey) {\n result.scrollLines = -(this.rows - 1);\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[5~';\n }\n break;\n case 34:\n if (ev.shiftKey) {\n result.scrollLines = this.rows - 1;\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[6~';\n }\n break;\n case 112:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'P';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + 'OP';\n }\n break;\n case 113:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'Q';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + 'OQ';\n }\n break;\n case 114:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'R';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + 'OR';\n }\n break;\n case 115:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'S';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + 'OS';\n }\n break;\n case 116:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[15;' + (modifiers + 1) + '~';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[15~';\n }\n break;\n case 117:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[17;' + (modifiers + 1) + '~';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[17~';\n }\n break;\n case 118:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[18;' + (modifiers + 1) + '~';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[18~';\n }\n break;\n case 119:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[19;' + (modifiers + 1) + '~';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[19~';\n }\n break;\n case 120:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[20;' + (modifiers + 1) + '~';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[20~';\n }\n break;\n case 121:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[21;' + (modifiers + 1) + '~';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[21~';\n }\n break;\n case 122:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[23;' + (modifiers + 1) + '~';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[23~';\n }\n break;\n case 123:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[24;' + (modifiers + 1) + '~';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[24~';\n }\n break;\n default:\n if (ev.ctrlKey && !ev.shiftKey && !ev.altKey && !ev.metaKey) {\n if (ev.keyCode >= 65 && ev.keyCode <= 90) {\n result.key = String.fromCharCode(ev.keyCode - 64);\n }\n else if (ev.keyCode === 32) {\n result.key = String.fromCharCode(0);\n }\n else if (ev.keyCode >= 51 && ev.keyCode <= 55) {\n result.key = String.fromCharCode(ev.keyCode - 51 + 27);\n }\n else if (ev.keyCode === 56) {\n result.key = String.fromCharCode(127);\n }\n else if (ev.keyCode === 219) {\n result.key = String.fromCharCode(27);\n }\n else if (ev.keyCode === 220) {\n result.key = String.fromCharCode(28);\n }\n else if (ev.keyCode === 221) {\n result.key = String.fromCharCode(29);\n }\n }\n else if (!this.browser.isMac && ev.altKey && !ev.ctrlKey && !ev.metaKey) {\n if (ev.keyCode >= 65 && ev.keyCode <= 90) {\n result.key = EscapeSequences_1.C0.ESC + String.fromCharCode(ev.keyCode + 32);\n }\n else if (ev.keyCode === 192) {\n result.key = EscapeSequences_1.C0.ESC + '`';\n }\n else if (ev.keyCode >= 48 && ev.keyCode <= 57) {\n result.key = EscapeSequences_1.C0.ESC + (ev.keyCode - 48);\n }\n }\n else if (this.browser.isMac && !ev.altKey && !ev.ctrlKey && ev.metaKey) {\n if (ev.keyCode === 65) {\n this.selectAll();\n }\n }\n break;\n }\n return result;\n };\n Terminal.prototype.setgLevel = function (g) {\n this.glevel = g;\n this.charset = this.charsets[g];\n };\n Terminal.prototype.setgCharset = function (g, charset) {\n this.charsets[g] = charset;\n if (this.glevel === g) {\n this.charset = charset;\n }\n };\n Terminal.prototype._keyPress = function (ev) {\n var key;\n if (this.customKeyEventHandler && this.customKeyEventHandler(ev) === false) {\n return false;\n }\n this.cancel(ev);\n if (ev.charCode) {\n key = ev.charCode;\n }\n else if (ev.which == null) {\n key = ev.keyCode;\n }\n else if (ev.which !== 0 && ev.charCode !== 0) {\n key = ev.which;\n }\n else {\n return false;\n }\n if (!key || ((ev.altKey || ev.ctrlKey || ev.metaKey) && !isThirdLevelShift(this.browser, ev))) {\n return false;\n }\n key = String.fromCharCode(key);\n this.emit('keypress', key, ev);\n this.emit('key', key, ev);\n this.showCursor();\n this.handler(key);\n return true;\n };\n Terminal.prototype.send = function (data) {\n var _this = this;\n if (!this.sendDataQueue) {\n setTimeout(function () {\n _this.handler(_this.sendDataQueue);\n _this.sendDataQueue = '';\n }, 1);\n }\n this.sendDataQueue += data;\n };\n Terminal.prototype.bell = function () {\n var _this = this;\n this.emit('bell');\n if (this.soundBell())\n this.bellAudioElement.play();\n if (this.visualBell()) {\n this.element.classList.add('visual-bell-active');\n clearTimeout(this.visualBellTimer);\n this.visualBellTimer = window.setTimeout(function () {\n _this.element.classList.remove('visual-bell-active');\n }, 200);\n }\n };\n Terminal.prototype.log = function (text, data) {\n if (!this.options.debug)\n return;\n if (!this.context.console || !this.context.console.log)\n return;\n this.context.console.log(text, data);\n };\n Terminal.prototype.error = function (text, data) {\n if (!this.options.debug)\n return;\n if (!this.context.console || !this.context.console.error)\n return;\n this.context.console.error(text, data);\n };\n Terminal.prototype.resize = function (x, y) {\n if (isNaN(x) || isNaN(y)) {\n return;\n }\n if (x === this.cols && y === this.rows) {\n if (!this.charMeasure.width || !this.charMeasure.height) {\n this.charMeasure.measure(this.options);\n }\n return;\n }\n if (x < 1)\n x = 1;\n if (y < 1)\n y = 1;\n this.buffers.resize(x, y);\n this.cols = x;\n this.rows = y;\n this.buffers.setupTabStops(this.cols);\n this.charMeasure.measure(this.options);\n this.refresh(0, this.rows - 1);\n this.emit('resize', { cols: x, rows: y });\n };\n Terminal.prototype.updateRange = function (y) {\n if (y < this.refreshStart)\n this.refreshStart = y;\n if (y > this.refreshEnd)\n this.refreshEnd = y;\n };\n Terminal.prototype.maxRange = function () {\n this.refreshStart = 0;\n this.refreshEnd = this.rows - 1;\n };\n Terminal.prototype.eraseRight = function (x, y) {\n var line = this.buffer.lines.get(this.buffer.ybase + y);\n if (!line) {\n return;\n }\n var ch = [this.eraseAttr(), ' ', 1, 32];\n for (; x < this.cols; x++) {\n line[x] = ch;\n }\n this.updateRange(y);\n };\n Terminal.prototype.eraseLeft = function (x, y) {\n var line = this.buffer.lines.get(this.buffer.ybase + y);\n if (!line) {\n return;\n }\n var ch = [this.eraseAttr(), ' ', 1, 32];\n x++;\n while (x--) {\n line[x] = ch;\n }\n this.updateRange(y);\n };\n Terminal.prototype.clear = function () {\n if (this.buffer.ybase === 0 && this.buffer.y === 0) {\n return;\n }\n this.buffer.lines.set(0, this.buffer.lines.get(this.buffer.ybase + this.buffer.y));\n this.buffer.lines.length = 1;\n this.buffer.ydisp = 0;\n this.buffer.ybase = 0;\n this.buffer.y = 0;\n for (var i = 1; i < this.rows; i++) {\n this.buffer.lines.push(this.blankLine());\n }\n this.refresh(0, this.rows - 1);\n this.emit('scroll', this.buffer.ydisp);\n };\n Terminal.prototype.eraseLine = function (y) {\n this.eraseRight(0, y);\n };\n Terminal.prototype.blankLine = function (cur, isWrapped, cols) {\n var attr = cur ? this.eraseAttr() : this.defAttr;\n var ch = [attr, ' ', 1, 32];\n var line = [];\n if (isWrapped) {\n line.isWrapped = isWrapped;\n }\n cols = cols || this.cols;\n for (var i = 0; i < cols; i++) {\n line[i] = ch;\n }\n return line;\n };\n Terminal.prototype.ch = function (cur) {\n if (cur) {\n return [this.eraseAttr(), ' ', 1, 32];\n }\n return [this.defAttr, ' ', 1, 32];\n };\n Terminal.prototype.is = function (term) {\n return (this.options.termName + '').indexOf(term) === 0;\n };\n Terminal.prototype.handler = function (data) {\n if (this.options.disableStdin) {\n return;\n }\n if (this.selectionManager && this.selectionManager.hasSelection) {\n this.selectionManager.clearSelection();\n }\n if (this.buffer.ybase !== this.buffer.ydisp) {\n this.scrollToBottom();\n }\n this.emit('data', data);\n };\n Terminal.prototype.handleTitle = function (title) {\n this.emit('title', title);\n };\n Terminal.prototype.index = function () {\n this.buffer.y++;\n if (this.buffer.y > this.buffer.scrollBottom) {\n this.buffer.y--;\n this.scroll();\n }\n if (this.buffer.x >= this.cols) {\n this.buffer.x--;\n }\n };\n Terminal.prototype.reverseIndex = function () {\n if (this.buffer.y === this.buffer.scrollTop) {\n var scrollRegionHeight = this.buffer.scrollBottom - this.buffer.scrollTop;\n this.buffer.lines.shiftElements(this.buffer.y + this.buffer.ybase, scrollRegionHeight, 1);\n this.buffer.lines.set(this.buffer.y + this.buffer.ybase, this.blankLine(true));\n this.updateRange(this.buffer.scrollTop);\n this.updateRange(this.buffer.scrollBottom);\n }\n else {\n this.buffer.y--;\n }\n };\n Terminal.prototype.reset = function () {\n this.options.rows = this.rows;\n this.options.cols = this.cols;\n var customKeyEventHandler = this.customKeyEventHandler;\n var inputHandler = this.inputHandler;\n var buffers = this.buffers;\n this.setup();\n this.customKeyEventHandler = customKeyEventHandler;\n this.inputHandler = inputHandler;\n this.buffers = buffers;\n this.refresh(0, this.rows - 1);\n this.viewport.syncScrollArea();\n };\n Terminal.prototype.tabSet = function () {\n this.buffer.tabs[this.buffer.x] = true;\n };\n Terminal.prototype.cancel = function (ev, force) {\n if (!this.options.cancelEvents && !force) {\n return;\n }\n ev.preventDefault();\n ev.stopPropagation();\n return false;\n };\n Terminal.prototype.matchColor = function (r1, g1, b1) {\n return matchColor_(r1, g1, b1);\n };\n Terminal.prototype.visualBell = function () {\n return this.options.bellStyle === 'visual' ||\n this.options.bellStyle === 'both';\n };\n Terminal.prototype.soundBell = function () {\n return this.options.bellStyle === 'sound' ||\n this.options.bellStyle === 'both';\n };\n Terminal.prototype.syncBellSound = function () {\n if (!this.element) {\n return;\n }\n if (this.soundBell() && this.bellAudioElement) {\n this.bellAudioElement.setAttribute('src', this.options.bellSound);\n }\n else if (this.soundBell()) {\n this.bellAudioElement = document.createElement('audio');\n this.bellAudioElement.setAttribute('preload', 'auto');\n this.bellAudioElement.setAttribute('src', this.options.bellSound);\n this.helperContainer.appendChild(this.bellAudioElement);\n }\n else if (this.bellAudioElement) {\n this.helperContainer.removeChild(this.bellAudioElement);\n }\n };\n return Terminal;\n}(EventEmitter_1.EventEmitter));\nexports.Terminal = Terminal;\nfunction globalOn(el, type, handler, capture) {\n if (!Array.isArray(el)) {\n el = [el];\n }\n el.forEach(function (element) {\n element.addEventListener(type, handler, capture || false);\n });\n}\nvar on = globalOn;\nfunction off(el, type, handler, capture) {\n if (capture === void 0) { capture = false; }\n el.removeEventListener(type, handler, capture);\n}\nfunction isThirdLevelShift(browser, ev) {\n var thirdLevelKey = (browser.isMac && ev.altKey && !ev.ctrlKey && !ev.metaKey) ||\n (browser.isMSWindows && ev.altKey && ev.ctrlKey && !ev.metaKey);\n if (ev.type === 'keypress') {\n return thirdLevelKey;\n }\n return thirdLevelKey && (!ev.keyCode || ev.keyCode > 47);\n}\nfunction wasMondifierKeyOnlyEvent(ev) {\n return ev.keyCode === 16 ||\n ev.keyCode === 17 ||\n ev.keyCode === 18;\n}\nvar vcolors = (function () {\n var result = ColorManager_1.DEFAULT_ANSI_COLORS.map(function (c) {\n c = c.substring(1);\n return [\n parseInt(c.substring(0, 2), 16),\n parseInt(c.substring(2, 4), 16),\n parseInt(c.substring(4, 6), 16)\n ];\n });\n var r = [0x00, 0x5f, 0x87, 0xaf, 0xd7, 0xff];\n for (var i = 0; i < 216; i++) {\n result.push([\n r[(i / 36) % 6 | 0],\n r[(i / 6) % 6 | 0],\n r[i % 6]\n ]);\n }\n var c;\n for (var i = 0; i < 24; i++) {\n c = 8 + i * 10;\n result.push([c, c, c]);\n }\n return result;\n})();\nvar matchColorCache = {};\nfunction matchColorDistance(r1, g1, b1, r2, g2, b2) {\n return Math.pow(30 * (r1 - r2), 2)\n + Math.pow(59 * (g1 - g2), 2)\n + Math.pow(11 * (b1 - b2), 2);\n}\n;\nfunction matchColor_(r1, g1, b1) {\n var hash = (r1 << 16) | (g1 << 8) | b1;\n if (matchColorCache[hash] != null) {\n return matchColorCache[hash];\n }\n var ldiff = Infinity;\n var li = -1;\n var i = 0;\n var c;\n var r2;\n var g2;\n var b2;\n var diff;\n for (; i < vcolors.length; i++) {\n c = vcolors[i];\n r2 = c[0];\n g2 = c[1];\n b2 = c[2];\n diff = matchColorDistance(r1, g1, b1, r2, g2, b2);\n if (diff === 0) {\n li = i;\n break;\n }\n if (diff < ldiff) {\n ldiff = diff;\n li = i;\n }\n }\n return matchColorCache[hash] = li;\n}\n\n\n\n},{\"./Buffer\":1,\"./BufferSet\":2,\"./CompositionHelper\":5,\"./EscapeSequences\":6,\"./EventEmitter\":7,\"./InputHandler\":8,\"./Linkifier\":9,\"./Parser\":10,\"./SelectionManager\":11,\"./Viewport\":15,\"./handlers/Clipboard\":16,\"./input/MouseZoneManager\":17,\"./renderer/CharAtlas\":19,\"./renderer/ColorManager\":20,\"./renderer/Renderer\":24,\"./utils/Browser\":28,\"./utils/CharMeasure\":29,\"./utils/MouseHelper\":32,\"./utils/Sounds\":33}],14:[function(require,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LinkHoverEventTypes;\n(function (LinkHoverEventTypes) {\n LinkHoverEventTypes[\"HOVER\"] = \"linkhover\";\n LinkHoverEventTypes[\"TOOLTIP\"] = \"linktooltip\";\n LinkHoverEventTypes[\"LEAVE\"] = \"linkleave\";\n})(LinkHoverEventTypes = exports.LinkHoverEventTypes || (exports.LinkHoverEventTypes = {}));\n;\n\n\n\n},{}],15:[function(require,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Viewport = (function () {\n function Viewport(terminal, viewportElement, scrollArea, charMeasure) {\n var _this = this;\n this.terminal = terminal;\n this.viewportElement = viewportElement;\n this.scrollArea = scrollArea;\n this.charMeasure = charMeasure;\n this.currentRowHeight = 0;\n this.lastRecordedBufferLength = 0;\n this.lastRecordedViewportHeight = 0;\n this.lastRecordedBufferHeight = 0;\n this.viewportElement.addEventListener('scroll', this.onScroll.bind(this));\n setTimeout(function () { return _this.syncScrollArea(); }, 0);\n }\n Viewport.prototype.onThemeChanged = function (colors) {\n this.viewportElement.style.backgroundColor = colors.background;\n };\n Viewport.prototype.refresh = function () {\n if (this.charMeasure.height > 0) {\n this.currentRowHeight = this.terminal.renderer.dimensions.scaledCellHeight / window.devicePixelRatio;\n if (this.lastRecordedViewportHeight !== this.terminal.renderer.dimensions.canvasHeight) {\n this.lastRecordedViewportHeight = this.terminal.renderer.dimensions.canvasHeight;\n this.viewportElement.style.height = this.lastRecordedViewportHeight + 'px';\n }\n var newBufferHeight = Math.round(this.currentRowHeight * this.lastRecordedBufferLength);\n if (this.lastRecordedBufferHeight !== newBufferHeight) {\n this.lastRecordedBufferHeight = newBufferHeight;\n this.scrollArea.style.height = this.lastRecordedBufferHeight + 'px';\n }\n }\n };\n Viewport.prototype.syncScrollArea = function () {\n if (this.lastRecordedBufferLength !== this.terminal.buffer.lines.length) {\n this.lastRecordedBufferLength = this.terminal.buffer.lines.length;\n this.refresh();\n }\n else if (this.lastRecordedViewportHeight !== this.terminal.renderer.dimensions.canvasHeight) {\n this.refresh();\n }\n else {\n if (this.terminal.renderer.dimensions.scaledCellHeight / window.devicePixelRatio !== this.currentRowHeight) {\n this.refresh();\n }\n }\n var scrollTop = this.terminal.buffer.ydisp * this.currentRowHeight;\n if (this.viewportElement.scrollTop !== scrollTop) {\n this.viewportElement.scrollTop = scrollTop;\n }\n };\n Viewport.prototype.onScroll = function (ev) {\n var newRow = Math.round(this.viewportElement.scrollTop / this.currentRowHeight);\n var diff = newRow - this.terminal.buffer.ydisp;\n this.terminal.scrollLines(diff, true);\n };\n Viewport.prototype.onWheel = function (ev) {\n if (ev.deltaY === 0) {\n return;\n }\n var multiplier = 1;\n if (ev.deltaMode === WheelEvent.DOM_DELTA_LINE) {\n multiplier = this.currentRowHeight;\n }\n else if (ev.deltaMode === WheelEvent.DOM_DELTA_PAGE) {\n multiplier = this.currentRowHeight * this.terminal.rows;\n }\n this.viewportElement.scrollTop += ev.deltaY * multiplier;\n ev.preventDefault();\n };\n ;\n Viewport.prototype.onTouchStart = function (ev) {\n this.lastTouchY = ev.touches[0].pageY;\n };\n ;\n Viewport.prototype.onTouchMove = function (ev) {\n var deltaY = this.lastTouchY - ev.touches[0].pageY;\n this.lastTouchY = ev.touches[0].pageY;\n if (deltaY === 0) {\n return;\n }\n this.viewportElement.scrollTop += deltaY;\n ev.preventDefault();\n };\n ;\n return Viewport;\n}());\nexports.Viewport = Viewport;\n\n\n\n},{}],16:[function(require,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction prepareTextForTerminal(text, isMSWindows) {\n if (isMSWindows) {\n return text.replace(/\\r?\\n/g, '\\r');\n }\n return text;\n}\nexports.prepareTextForTerminal = prepareTextForTerminal;\nfunction bracketTextForPaste(text, bracketedPasteMode) {\n if (bracketedPasteMode) {\n return '\\x1b[200~' + text + '\\x1b[201~';\n }\n return text;\n}\nexports.bracketTextForPaste = bracketTextForPaste;\nfunction copyHandler(ev, term, selectionManager) {\n if (term.browser.isMSIE) {\n window.clipboardData.setData('Text', selectionManager.selectionText);\n }\n else {\n ev.clipboardData.setData('text/plain', selectionManager.selectionText);\n }\n ev.preventDefault();\n}\nexports.copyHandler = copyHandler;\nfunction pasteHandler(ev, term) {\n ev.stopPropagation();\n var text;\n var dispatchPaste = function (text) {\n text = prepareTextForTerminal(text, term.browser.isMSWindows);\n text = bracketTextForPaste(text, term.bracketedPasteMode);\n term.handler(text);\n term.textarea.value = '';\n term.emit('paste', text);\n term.cancel(ev);\n };\n if (term.browser.isMSIE) {\n if (window.clipboardData) {\n text = window.clipboardData.getData('Text');\n dispatchPaste(text);\n }\n }\n else {\n if (ev.clipboardData) {\n text = ev.clipboardData.getData('text/plain');\n dispatchPaste(text);\n }\n }\n}\nexports.pasteHandler = pasteHandler;\nfunction moveTextAreaUnderMouseCursor(ev, textarea) {\n textarea.style.position = 'fixed';\n textarea.style.width = '20px';\n textarea.style.height = '20px';\n textarea.style.left = (ev.clientX - 10) + 'px';\n textarea.style.top = (ev.clientY - 10) + 'px';\n textarea.style.zIndex = '1000';\n textarea.focus();\n setTimeout(function () {\n textarea.style.position = null;\n textarea.style.width = null;\n textarea.style.height = null;\n textarea.style.left = null;\n textarea.style.top = null;\n textarea.style.zIndex = null;\n }, 4);\n}\nexports.moveTextAreaUnderMouseCursor = moveTextAreaUnderMouseCursor;\nfunction rightClickHandler(ev, textarea, selectionManager) {\n moveTextAreaUnderMouseCursor(ev, textarea);\n textarea.value = selectionManager.selectionText;\n textarea.select();\n}\nexports.rightClickHandler = rightClickHandler;\n\n\n\n},{}],17:[function(require,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar HOVER_DURATION = 500;\nvar MouseZoneManager = (function () {\n function MouseZoneManager(_terminal) {\n var _this = this;\n this._terminal = _terminal;\n this._zones = [];\n this._areZonesActive = false;\n this._tooltipTimeout = null;\n this._currentZone = null;\n this._lastHoverCoords = [null, null];\n this._terminal.element.addEventListener('mousedown', function (e) { return _this._onMouseDown(e); });\n this._mouseMoveListener = function (e) { return _this._onMouseMove(e); };\n this._clickListener = function (e) { return _this._onClick(e); };\n }\n MouseZoneManager.prototype.add = function (zone) {\n this._zones.push(zone);\n if (this._zones.length === 1) {\n this._activate();\n }\n };\n MouseZoneManager.prototype.clearAll = function (start, end) {\n if (this._zones.length === 0) {\n return;\n }\n if (!end) {\n start = 0;\n end = this._terminal.rows - 1;\n }\n for (var i = 0; i < this._zones.length; i++) {\n var zone = this._zones[i];\n if (zone.y > start && zone.y <= end + 1) {\n if (this._currentZone && this._currentZone === zone) {\n this._currentZone.leaveCallback();\n this._currentZone = null;\n }\n this._zones.splice(i--, 1);\n }\n }\n if (this._zones.length === 0) {\n this._deactivate();\n }\n };\n MouseZoneManager.prototype._activate = function () {\n if (!this._areZonesActive) {\n this._areZonesActive = true;\n this._terminal.element.addEventListener('mousemove', this._mouseMoveListener);\n this._terminal.element.addEventListener('click', this._clickListener);\n }\n };\n MouseZoneManager.prototype._deactivate = function () {\n if (this._areZonesActive) {\n this._areZonesActive = false;\n this._terminal.element.removeEventListener('mousemove', this._mouseMoveListener);\n this._terminal.element.removeEventListener('click', this._clickListener);\n }\n };\n MouseZoneManager.prototype._onMouseMove = function (e) {\n if (this._lastHoverCoords[0] !== e.pageX || this._lastHoverCoords[1] !== e.pageY) {\n this._onHover(e);\n this._lastHoverCoords = [e.pageX, e.pageY];\n }\n };\n MouseZoneManager.prototype._onHover = function (e) {\n var _this = this;\n var zone = this._findZoneEventAt(e);\n if (zone === this._currentZone) {\n return;\n }\n if (this._currentZone) {\n this._currentZone.leaveCallback();\n this._currentZone = null;\n if (this._tooltipTimeout) {\n clearTimeout(this._tooltipTimeout);\n }\n }\n if (!zone) {\n return;\n }\n this._currentZone = zone;\n if (zone.hoverCallback) {\n zone.hoverCallback(e);\n }\n this._tooltipTimeout = setTimeout(function () { return _this._onTooltip(e); }, HOVER_DURATION);\n };\n MouseZoneManager.prototype._onTooltip = function (e) {\n this._tooltipTimeout = null;\n var zone = this._findZoneEventAt(e);\n if (zone && zone.tooltipCallback) {\n zone.tooltipCallback(e);\n }\n };\n MouseZoneManager.prototype._onMouseDown = function (e) {\n if (!this._areZonesActive) {\n return;\n }\n var zone = this._findZoneEventAt(e);\n if (zone) {\n e.preventDefault();\n e.stopImmediatePropagation();\n }\n };\n MouseZoneManager.prototype._onClick = function (e) {\n var zone = this._findZoneEventAt(e);\n if (zone) {\n zone.clickCallback(e);\n e.preventDefault();\n e.stopImmediatePropagation();\n }\n };\n MouseZoneManager.prototype._findZoneEventAt = function (e) {\n var coords = this._terminal.mouseHelper.getCoords(e, this._terminal.element, this._terminal.charMeasure, this._terminal.options.lineHeight, this._terminal.cols, this._terminal.rows);\n if (!coords) {\n return null;\n }\n for (var i = 0; i < this._zones.length; i++) {\n var zone = this._zones[i];\n if (zone.y === coords[1] && zone.x1 <= coords[0] && zone.x2 > coords[0]) {\n return zone;\n }\n }\n ;\n return null;\n };\n return MouseZoneManager;\n}());\nexports.MouseZoneManager = MouseZoneManager;\nvar MouseZone = (function () {\n function MouseZone(x1, x2, y, clickCallback, hoverCallback, tooltipCallback, leaveCallback) {\n this.x1 = x1;\n this.x2 = x2;\n this.y = y;\n this.clickCallback = clickCallback;\n this.hoverCallback = hoverCallback;\n this.tooltipCallback = tooltipCallback;\n this.leaveCallback = leaveCallback;\n }\n return MouseZone;\n}());\nexports.MouseZone = MouseZone;\n\n\n\n},{}],18:[function(require,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar CharAtlas_1 = require(\"./CharAtlas\");\nvar Buffer_1 = require(\"../Buffer\");\nexports.INVERTED_DEFAULT_COLOR = -1;\nvar DIM_OPACITY = 0.5;\nvar BaseRenderLayer = (function () {\n function BaseRenderLayer(container, id, zIndex, _alpha, _colors) {\n this._alpha = _alpha;\n this._colors = _colors;\n this._scaledCharWidth = 0;\n this._scaledCharHeight = 0;\n this._scaledCellWidth = 0;\n this._scaledCellHeight = 0;\n this._scaledCharLeft = 0;\n this._scaledCharTop = 0;\n this._canvas = document.createElement('canvas');\n this._canvas.id = \"xterm-\" + id + \"-layer\";\n this._canvas.style.zIndex = zIndex.toString();\n this._ctx = this._canvas.getContext('2d', { alpha: _alpha });\n this._ctx.scale(window.devicePixelRatio, window.devicePixelRatio);\n if (!_alpha) {\n this.clearAll();\n }\n container.appendChild(this._canvas);\n }\n BaseRenderLayer.prototype.onOptionsChanged = function (terminal) { };\n BaseRenderLayer.prototype.onBlur = function (terminal) { };\n BaseRenderLayer.prototype.onFocus = function (terminal) { };\n BaseRenderLayer.prototype.onCursorMove = function (terminal) { };\n BaseRenderLayer.prototype.onGridChanged = function (terminal, startRow, endRow) { };\n BaseRenderLayer.prototype.onSelectionChanged = function (terminal, start, end) { };\n BaseRenderLayer.prototype.onThemeChanged = function (terminal, colorSet) {\n this._refreshCharAtlas(terminal, colorSet);\n };\n BaseRenderLayer.prototype._refreshCharAtlas = function (terminal, colorSet) {\n var _this = this;\n if (this._scaledCharWidth <= 0 && this._scaledCharHeight <= 0) {\n return;\n }\n this._charAtlas = null;\n var result = CharAtlas_1.acquireCharAtlas(terminal, this._colors, this._scaledCharWidth, this._scaledCharHeight);\n if (result instanceof HTMLCanvasElement) {\n this._charAtlas = result;\n }\n else {\n result.then(function (bitmap) { return _this._charAtlas = bitmap; });\n }\n };\n BaseRenderLayer.prototype.resize = function (terminal, dim, charSizeChanged) {\n this._scaledCellWidth = dim.scaledCellWidth;\n this._scaledCellHeight = dim.scaledCellHeight;\n this._scaledCharWidth = dim.scaledCharWidth;\n this._scaledCharHeight = dim.scaledCharHeight;\n this._scaledCharLeft = dim.scaledCharLeft;\n this._scaledCharTop = dim.scaledCharTop;\n this._canvas.width = dim.scaledCanvasWidth;\n this._canvas.height = dim.scaledCanvasHeight;\n this._canvas.style.width = dim.canvasWidth + \"px\";\n this._canvas.style.height = dim.canvasHeight + \"px\";\n if (!this._alpha) {\n this.clearAll();\n }\n if (charSizeChanged) {\n this._refreshCharAtlas(terminal, this._colors);\n }\n };\n BaseRenderLayer.prototype.fillCells = function (x, y, width, height) {\n this._ctx.fillRect(x * this._scaledCellWidth, y * this._scaledCellHeight, width * this._scaledCellWidth, height * this._scaledCellHeight);\n };\n BaseRenderLayer.prototype.fillBottomLineAtCells = function (x, y, width) {\n if (width === void 0) { width = 1; }\n this._ctx.fillRect(x * this._scaledCellWidth, (y + 1) * this._scaledCellHeight - window.devicePixelRatio - 1, width * this._scaledCellWidth, window.devicePixelRatio);\n };\n BaseRenderLayer.prototype.fillLeftLineAtCell = function (x, y) {\n this._ctx.fillRect(x * this._scaledCellWidth, y * this._scaledCellHeight, window.devicePixelRatio, this._scaledCellHeight);\n };\n BaseRenderLayer.prototype.strokeRectAtCell = function (x, y, width, height) {\n this._ctx.lineWidth = window.devicePixelRatio;\n this._ctx.strokeRect(x * this._scaledCellWidth + window.devicePixelRatio / 2, y * this._scaledCellHeight + (window.devicePixelRatio / 2), width * this._scaledCellWidth - window.devicePixelRatio, (height * this._scaledCellHeight) - window.devicePixelRatio);\n };\n BaseRenderLayer.prototype.clearAll = function () {\n if (this._alpha) {\n this._ctx.clearRect(0, 0, this._canvas.width, this._canvas.height);\n }\n else {\n this._ctx.fillStyle = this._colors.background;\n this._ctx.fillRect(0, 0, this._canvas.width, this._canvas.height);\n }\n };\n BaseRenderLayer.prototype.clearCells = function (x, y, width, height) {\n if (this._alpha) {\n this._ctx.clearRect(x * this._scaledCellWidth, y * this._scaledCellHeight, width * this._scaledCellWidth, height * this._scaledCellHeight);\n }\n else {\n this._ctx.fillStyle = this._colors.background;\n this._ctx.fillRect(x * this._scaledCellWidth, y * this._scaledCellHeight, width * this._scaledCellWidth, height * this._scaledCellHeight);\n }\n };\n BaseRenderLayer.prototype.fillCharTrueColor = function (terminal, charData, x, y) {\n this._ctx.font = terminal.options.fontSize * window.devicePixelRatio + \"px \" + terminal.options.fontFamily;\n this._ctx.textBaseline = 'top';\n this._clipRow(terminal, y);\n this._ctx.fillText(charData[Buffer_1.CHAR_DATA_CHAR_INDEX], x * this._scaledCellWidth + this._scaledCharLeft, y * this._scaledCellHeight + this._scaledCharTop);\n };\n BaseRenderLayer.prototype.drawChar = function (terminal, char, code, width, x, y, fg, bg, bold, dim) {\n var colorIndex = 0;\n if (fg < 256) {\n colorIndex = fg + 2;\n }\n else {\n if (bold && terminal.options.enableBold) {\n colorIndex = 1;\n }\n }\n var isAscii = code < 256;\n var isBasicColor = (colorIndex > 1 && fg < 16) && (fg < 8 || bold);\n var isDefaultColor = fg >= 256;\n var isDefaultBackground = bg >= 256;\n if (this._charAtlas && isAscii && (isBasicColor || isDefaultColor) && isDefaultBackground) {\n var charAtlasCellWidth = this._scaledCharWidth + CharAtlas_1.CHAR_ATLAS_CELL_SPACING;\n var charAtlasCellHeight = this._scaledCharHeight + CharAtlas_1.CHAR_ATLAS_CELL_SPACING;\n if (dim) {\n this._ctx.globalAlpha = DIM_OPACITY;\n }\n if (bold && !terminal.options.enableBold) {\n if (colorIndex > 1) {\n colorIndex -= 8;\n }\n }\n this._ctx.drawImage(this._charAtlas, code * charAtlasCellWidth, colorIndex * charAtlasCellHeight, charAtlasCellWidth, this._scaledCharHeight, x * this._scaledCellWidth + this._scaledCharLeft, y * this._scaledCellHeight + this._scaledCharTop, charAtlasCellWidth, this._scaledCharHeight);\n }\n else {\n this._drawUncachedChar(terminal, char, width, fg, x, y, bold, dim);\n }\n };\n BaseRenderLayer.prototype._drawUncachedChar = function (terminal, char, width, fg, x, y, bold, dim) {\n this._ctx.save();\n this._ctx.font = terminal.options.fontSize * window.devicePixelRatio + \"px \" + terminal.options.fontFamily;\n if (bold && terminal.options.enableBold) {\n this._ctx.font = \"bold \" + this._ctx.font;\n }\n this._ctx.textBaseline = 'top';\n if (fg === exports.INVERTED_DEFAULT_COLOR) {\n this._ctx.fillStyle = this._colors.background;\n }\n else if (fg < 256) {\n this._ctx.fillStyle = this._colors.ansi[fg];\n }\n else {\n this._ctx.fillStyle = this._colors.foreground;\n }\n this._clipRow(terminal, y);\n if (dim) {\n this._ctx.globalAlpha = DIM_OPACITY;\n }\n this._ctx.fillText(char, x * this._scaledCellWidth + this._scaledCharLeft, y * this._scaledCellHeight + this._scaledCharTop);\n this._ctx.restore();\n };\n BaseRenderLayer.prototype._clipRow = function (terminal, y) {\n this._ctx.beginPath();\n this._ctx.rect(0, y * this._scaledCellHeight, terminal.cols * this._scaledCellWidth, this._scaledCellHeight);\n this._ctx.clip();\n };\n return BaseRenderLayer;\n}());\nexports.BaseRenderLayer = BaseRenderLayer;\n\n\n\n},{\"../Buffer\":1,\"./CharAtlas\":19}],19:[function(require,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Browser_1 = require(\"../utils/Browser\");\nexports.CHAR_ATLAS_CELL_SPACING = 1;\nvar charAtlasCache = [];\nfunction acquireCharAtlas(terminal, colors, scaledCharWidth, scaledCharHeight) {\n var newConfig = generateConfig(scaledCharWidth, scaledCharHeight, terminal, colors);\n for (var i = 0; i < charAtlasCache.length; i++) {\n var entry = charAtlasCache[i];\n var ownedByIndex = entry.ownedBy.indexOf(terminal);\n if (ownedByIndex >= 0) {\n if (configEquals(entry.config, newConfig)) {\n return entry.bitmap;\n }\n else {\n if (entry.ownedBy.length === 1) {\n charAtlasCache.splice(i, 1);\n }\n else {\n entry.ownedBy.splice(ownedByIndex, 1);\n }\n break;\n }\n }\n }\n for (var i = 0; i < charAtlasCache.length; i++) {\n var entry = charAtlasCache[i];\n if (configEquals(entry.config, newConfig)) {\n entry.ownedBy.push(terminal);\n return entry.bitmap;\n }\n }\n var newEntry = {\n bitmap: generator.generate(scaledCharWidth, scaledCharHeight, terminal.options.fontSize, terminal.options.fontFamily, colors.background, colors.foreground, colors.ansi),\n config: newConfig,\n ownedBy: [terminal]\n };\n charAtlasCache.push(newEntry);\n return newEntry.bitmap;\n}\nexports.acquireCharAtlas = acquireCharAtlas;\nfunction generateConfig(scaledCharWidth, scaledCharHeight, terminal, colors) {\n var clonedColors = {\n foreground: colors.foreground,\n background: colors.background,\n cursor: null,\n cursorAccent: null,\n selection: null,\n ansi: colors.ansi.slice(0, 16)\n };\n return {\n scaledCharWidth: scaledCharWidth,\n scaledCharHeight: scaledCharHeight,\n fontFamily: terminal.options.fontFamily,\n fontSize: terminal.options.fontSize,\n colors: clonedColors\n };\n}\nfunction configEquals(a, b) {\n for (var i = 0; i < a.colors.ansi.length; i++) {\n if (a.colors.ansi[i] !== b.colors.ansi[i]) {\n return false;\n }\n }\n return a.fontFamily === b.fontFamily &&\n a.fontSize === b.fontSize &&\n a.scaledCharWidth === b.scaledCharWidth &&\n a.scaledCharHeight === b.scaledCharHeight &&\n a.colors.foreground === b.colors.foreground &&\n a.colors.background === b.colors.background;\n}\nvar generator;\nfunction initialize(document) {\n if (!generator) {\n generator = new CharAtlasGenerator(document);\n }\n}\nexports.initialize = initialize;\nvar CharAtlasGenerator = (function () {\n function CharAtlasGenerator(_document) {\n this._document = _document;\n this._canvas = this._document.createElement('canvas');\n this._ctx = this._canvas.getContext('2d', { alpha: false });\n this._ctx.scale(window.devicePixelRatio, window.devicePixelRatio);\n }\n CharAtlasGenerator.prototype.generate = function (scaledCharWidth, scaledCharHeight, fontSize, fontFamily, background, foreground, ansiColors) {\n var cellWidth = scaledCharWidth + exports.CHAR_ATLAS_CELL_SPACING;\n var cellHeight = scaledCharHeight + exports.CHAR_ATLAS_CELL_SPACING;\n this._canvas.width = 255 * cellWidth;\n this._canvas.height = (2 + 16) * cellHeight;\n this._ctx.fillStyle = background;\n this._ctx.fillRect(0, 0, this._canvas.width, this._canvas.height);\n this._ctx.save();\n this._ctx.fillStyle = foreground;\n this._ctx.font = fontSize * window.devicePixelRatio + \"px \" + fontFamily;\n this._ctx.textBaseline = 'top';\n for (var i = 0; i < 256; i++) {\n this._ctx.save();\n this._ctx.beginPath();\n this._ctx.rect(i * cellWidth, 0, cellWidth, cellHeight);\n this._ctx.clip();\n this._ctx.fillText(String.fromCharCode(i), i * cellWidth, 0);\n this._ctx.restore();\n }\n this._ctx.save();\n this._ctx.font = \"bold \" + this._ctx.font;\n for (var i = 0; i < 256; i++) {\n this._ctx.save();\n this._ctx.beginPath();\n this._ctx.rect(i * cellWidth, cellHeight, cellWidth, cellHeight);\n this._ctx.clip();\n this._ctx.fillText(String.fromCharCode(i), i * cellWidth, cellHeight);\n this._ctx.restore();\n }\n this._ctx.restore();\n this._ctx.font = fontSize * window.devicePixelRatio + \"px \" + fontFamily;\n for (var colorIndex = 0; colorIndex < 16; colorIndex++) {\n if (colorIndex === 8) {\n this._ctx.font = \"bold \" + this._ctx.font;\n }\n var y = (colorIndex + 2) * cellHeight;\n for (var i = 0; i < 256; i++) {\n this._ctx.save();\n this._ctx.beginPath();\n this._ctx.rect(i * cellWidth, y, cellWidth, cellHeight);\n this._ctx.clip();\n this._ctx.fillStyle = ansiColors[colorIndex];\n this._ctx.fillText(String.fromCharCode(i), i * cellWidth, y);\n this._ctx.restore();\n }\n }\n this._ctx.restore();\n if (!('createImageBitmap' in window) || Browser_1.isFirefox) {\n var result = this._canvas;\n this._canvas = this._document.createElement('canvas');\n this._ctx = this._canvas.getContext('2d');\n this._ctx.scale(window.devicePixelRatio, window.devicePixelRatio);\n return result;\n }\n var charAtlasImageData = this._ctx.getImageData(0, 0, this._canvas.width, this._canvas.height);\n var r = parseInt(background.substr(1, 2), 16);\n var g = parseInt(background.substr(3, 2), 16);\n var b = parseInt(background.substr(5, 2), 16);\n this._clearColor(charAtlasImageData, r, g, b);\n var promise = window.createImageBitmap(charAtlasImageData);\n this._ctx.clearRect(0, 0, this._canvas.width, this._canvas.height);\n return promise;\n };\n CharAtlasGenerator.prototype._clearColor = function (imageData, r, g, b) {\n for (var offset = 0; offset < imageData.data.length; offset += 4) {\n if (imageData.data[offset] === r &&\n imageData.data[offset + 1] === g &&\n imageData.data[offset + 2] === b) {\n imageData.data[offset + 3] = 0;\n }\n }\n };\n return CharAtlasGenerator;\n}());\n\n\n\n},{\"../utils/Browser\":28}],20:[function(require,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar DEFAULT_FOREGROUND = '#ffffff';\nvar DEFAULT_BACKGROUND = '#000000';\nvar DEFAULT_CURSOR = '#ffffff';\nvar DEFAULT_CURSOR_ACCENT = '#000000';\nvar DEFAULT_SELECTION = 'rgba(255, 255, 255, 0.3)';\nexports.DEFAULT_ANSI_COLORS = [\n '#2e3436',\n '#cc0000',\n '#4e9a06',\n '#c4a000',\n '#3465a4',\n '#75507b',\n '#06989a',\n '#d3d7cf',\n '#555753',\n '#ef2929',\n '#8ae234',\n '#fce94f',\n '#729fcf',\n '#ad7fa8',\n '#34e2e2',\n '#eeeeec'\n];\nfunction generate256Colors(first16Colors) {\n var colors = first16Colors.slice();\n var v = [0x00, 0x5f, 0x87, 0xaf, 0xd7, 0xff];\n for (var i = 0; i < 216; i++) {\n var r = toPaddedHex(v[(i / 36) % 6 | 0]);\n var g = toPaddedHex(v[(i / 6) % 6 | 0]);\n var b = toPaddedHex(v[i % 6]);\n colors.push(\"#\" + r + g + b);\n }\n for (var i = 0; i < 24; i++) {\n var c = toPaddedHex(8 + i * 10);\n colors.push(\"#\" + c + c + c);\n }\n return colors;\n}\nfunction toPaddedHex(c) {\n var s = c.toString(16);\n return s.length < 2 ? '0' + s : s;\n}\nvar ColorManager = (function () {\n function ColorManager() {\n this.colors = {\n foreground: DEFAULT_FOREGROUND,\n background: DEFAULT_BACKGROUND,\n cursor: DEFAULT_CURSOR,\n cursorAccent: DEFAULT_CURSOR_ACCENT,\n selection: DEFAULT_SELECTION,\n ansi: generate256Colors(exports.DEFAULT_ANSI_COLORS)\n };\n }\n ColorManager.prototype.setTheme = function (theme) {\n this.colors.foreground = theme.foreground || DEFAULT_FOREGROUND;\n this.colors.background = this._validateColor(theme.background, DEFAULT_BACKGROUND);\n this.colors.cursor = theme.cursor || DEFAULT_CURSOR;\n this.colors.cursorAccent = theme.cursorAccent || DEFAULT_CURSOR_ACCENT;\n this.colors.selection = theme.selection || DEFAULT_SELECTION;\n this.colors.ansi[0] = theme.black || exports.DEFAULT_ANSI_COLORS[0];\n this.colors.ansi[1] = theme.red || exports.DEFAULT_ANSI_COLORS[1];\n this.colors.ansi[2] = theme.green || exports.DEFAULT_ANSI_COLORS[2];\n this.colors.ansi[3] = theme.yellow || exports.DEFAULT_ANSI_COLORS[3];\n this.colors.ansi[4] = theme.blue || exports.DEFAULT_ANSI_COLORS[4];\n this.colors.ansi[5] = theme.magenta || exports.DEFAULT_ANSI_COLORS[5];\n this.colors.ansi[6] = theme.cyan || exports.DEFAULT_ANSI_COLORS[6];\n this.colors.ansi[7] = theme.white || exports.DEFAULT_ANSI_COLORS[7];\n this.colors.ansi[8] = theme.brightBlack || exports.DEFAULT_ANSI_COLORS[8];\n this.colors.ansi[9] = theme.brightRed || exports.DEFAULT_ANSI_COLORS[9];\n this.colors.ansi[10] = theme.brightGreen || exports.DEFAULT_ANSI_COLORS[10];\n this.colors.ansi[11] = theme.brightYellow || exports.DEFAULT_ANSI_COLORS[11];\n this.colors.ansi[12] = theme.brightBlue || exports.DEFAULT_ANSI_COLORS[12];\n this.colors.ansi[13] = theme.brightMagenta || exports.DEFAULT_ANSI_COLORS[13];\n this.colors.ansi[14] = theme.brightCyan || exports.DEFAULT_ANSI_COLORS[14];\n this.colors.ansi[15] = theme.brightWhite || exports.DEFAULT_ANSI_COLORS[15];\n };\n ColorManager.prototype._validateColor = function (color, fallback) {\n if (!color) {\n return fallback;\n }\n if (color.length === 7 && color.charAt(0) === '#') {\n return color;\n }\n if (color.length === 4 && color.charAt(0) === '#') {\n var r = color.charAt(1);\n var g = color.charAt(2);\n var b = color.charAt(3);\n return \"#\" + r + r + g + g + b + b;\n }\n return fallback;\n };\n return ColorManager;\n}());\nexports.ColorManager = ColorManager;\n\n\n\n},{}],21:[function(require,module,exports){\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Buffer_1 = require(\"../Buffer\");\nvar BaseRenderLayer_1 = require(\"./BaseRenderLayer\");\nvar BLINK_INTERVAL = 600;\nvar CursorRenderLayer = (function (_super) {\n __extends(CursorRenderLayer, _super);\n function CursorRenderLayer(container, zIndex, colors) {\n var _this = _super.call(this, container, 'cursor', zIndex, true, colors) || this;\n _this._state = {\n x: null,\n y: null,\n isFocused: null,\n style: null,\n width: null,\n };\n _this._cursorRenderers = {\n 'bar': _this._renderBarCursor.bind(_this),\n 'block': _this._renderBlockCursor.bind(_this),\n 'underline': _this._renderUnderlineCursor.bind(_this)\n };\n return _this;\n }\n CursorRenderLayer.prototype.resize = function (terminal, dim, charSizeChanged) {\n _super.prototype.resize.call(this, terminal, dim, charSizeChanged);\n this._state = {\n x: null,\n y: null,\n isFocused: null,\n style: null,\n width: null,\n };\n };\n CursorRenderLayer.prototype.reset = function (terminal) {\n this._clearCursor();\n if (this._cursorBlinkStateManager) {\n this._cursorBlinkStateManager.dispose();\n this._cursorBlinkStateManager = null;\n this.onOptionsChanged(terminal);\n }\n };\n CursorRenderLayer.prototype.onBlur = function (terminal) {\n if (this._cursorBlinkStateManager) {\n this._cursorBlinkStateManager.pause();\n }\n terminal.refresh(terminal.buffer.y, terminal.buffer.y);\n };\n CursorRenderLayer.prototype.onFocus = function (terminal) {\n if (this._cursorBlinkStateManager) {\n this._cursorBlinkStateManager.resume(terminal);\n }\n else {\n terminal.refresh(terminal.buffer.y, terminal.buffer.y);\n }\n };\n CursorRenderLayer.prototype.onOptionsChanged = function (terminal) {\n var _this = this;\n if (terminal.options.cursorBlink) {\n if (!this._cursorBlinkStateManager) {\n this._cursorBlinkStateManager = new CursorBlinkStateManager(terminal, function () {\n _this._render(terminal, true);\n });\n }\n }\n else {\n if (this._cursorBlinkStateManager) {\n this._cursorBlinkStateManager.dispose();\n this._cursorBlinkStateManager = null;\n }\n terminal.refresh(terminal.buffer.y, terminal.buffer.y);\n }\n };\n CursorRenderLayer.prototype.onCursorMove = function (terminal) {\n if (this._cursorBlinkStateManager) {\n this._cursorBlinkStateManager.restartBlinkAnimation(terminal);\n }\n };\n CursorRenderLayer.prototype.onGridChanged = function (terminal, startRow, endRow) {\n if (!this._cursorBlinkStateManager || this._cursorBlinkStateManager.isPaused) {\n this._render(terminal, false);\n }\n };\n CursorRenderLayer.prototype._render = function (terminal, triggeredByAnimationFrame) {\n if (!terminal.cursorState || terminal.cursorHidden) {\n this._clearCursor();\n return;\n }\n var cursorY = terminal.buffer.ybase + terminal.buffer.y;\n var viewportRelativeCursorY = cursorY - terminal.buffer.ydisp;\n if (viewportRelativeCursorY < 0 || viewportRelativeCursorY >= terminal.rows) {\n this._clearCursor();\n return;\n }\n var charData = terminal.buffer.lines.get(cursorY)[terminal.buffer.x];\n if (!charData) {\n return;\n }\n if (!terminal.isFocused) {\n this._clearCursor();\n this._ctx.save();\n this._ctx.fillStyle = this._colors.cursor;\n this._renderBlurCursor(terminal, terminal.buffer.x, viewportRelativeCursorY, charData);\n this._ctx.restore();\n this._state.x = terminal.buffer.x;\n this._state.y = viewportRelativeCursorY;\n this._state.isFocused = false;\n this._state.style = terminal.options.cursorStyle;\n this._state.width = charData[Buffer_1.CHAR_DATA_WIDTH_INDEX];\n return;\n }\n if (this._cursorBlinkStateManager && !this._cursorBlinkStateManager.isCursorVisible) {\n this._clearCursor();\n return;\n }\n if (this._state) {\n if (this._state.x === terminal.buffer.x &&\n this._state.y === viewportRelativeCursorY &&\n this._state.isFocused === terminal.isFocused &&\n this._state.style === terminal.options.cursorStyle &&\n this._state.width === charData[Buffer_1.CHAR_DATA_WIDTH_INDEX]) {\n return;\n }\n this._clearCursor();\n }\n this._ctx.save();\n this._cursorRenderers[terminal.options.cursorStyle || 'block'](terminal, terminal.buffer.x, viewportRelativeCursorY, charData);\n this._ctx.restore();\n this._state.x = terminal.buffer.x;\n this._state.y = viewportRelativeCursorY;\n this._state.isFocused = false;\n this._state.style = terminal.options.cursorStyle;\n this._state.width = charData[Buffer_1.CHAR_DATA_WIDTH_INDEX];\n };\n CursorRenderLayer.prototype._clearCursor = function () {\n if (this._state) {\n this.clearCells(this._state.x, this._state.y, this._state.width, 1);\n this._state = {\n x: null,\n y: null,\n isFocused: null,\n style: null,\n width: null,\n };\n }\n };\n CursorRenderLayer.prototype._renderBarCursor = function (terminal, x, y, charData) {\n this._ctx.save();\n this._ctx.fillStyle = this._colors.cursor;\n this.fillLeftLineAtCell(x, y);\n this._ctx.restore();\n };\n CursorRenderLayer.prototype._renderBlockCursor = function (terminal, x, y, charData) {\n this._ctx.save();\n this._ctx.fillStyle = this._colors.cursor;\n this.fillCells(x, y, charData[Buffer_1.CHAR_DATA_WIDTH_INDEX], 1);\n this._ctx.fillStyle = this._colors.cursorAccent;\n this.fillCharTrueColor(terminal, charData, x, y);\n this._ctx.restore();\n };\n CursorRenderLayer.prototype._renderUnderlineCursor = function (terminal, x, y, charData) {\n this._ctx.save();\n this._ctx.fillStyle = this._colors.cursor;\n this.fillBottomLineAtCells(x, y);\n this._ctx.restore();\n };\n CursorRenderLayer.prototype._renderBlurCursor = function (terminal, x, y, charData) {\n this._ctx.save();\n this._ctx.strokeStyle = this._colors.cursor;\n this.strokeRectAtCell(x, y, charData[Buffer_1.CHAR_DATA_WIDTH_INDEX], 1);\n this._ctx.restore();\n };\n return CursorRenderLayer;\n}(BaseRenderLayer_1.BaseRenderLayer));\nexports.CursorRenderLayer = CursorRenderLayer;\nvar CursorBlinkStateManager = (function () {\n function CursorBlinkStateManager(terminal, renderCallback) {\n this.renderCallback = renderCallback;\n this.isCursorVisible = true;\n if (terminal.isFocused) {\n this._restartInterval();\n }\n }\n Object.defineProperty(CursorBlinkStateManager.prototype, \"isPaused\", {\n get: function () { return !(this._blinkStartTimeout || this._blinkInterval); },\n enumerable: true,\n configurable: true\n });\n CursorBlinkStateManager.prototype.dispose = function () {\n if (this._blinkInterval) {\n window.clearInterval(this._blinkInterval);\n this._blinkInterval = null;\n }\n if (this._blinkStartTimeout) {\n window.clearTimeout(this._blinkStartTimeout);\n this._blinkStartTimeout = null;\n }\n if (this._animationFrame) {\n window.cancelAnimationFrame(this._animationFrame);\n this._animationFrame = null;\n }\n };\n CursorBlinkStateManager.prototype.restartBlinkAnimation = function (terminal) {\n var _this = this;\n if (this.isPaused) {\n return;\n }\n this._animationTimeRestarted = Date.now();\n this.isCursorVisible = true;\n if (!this._animationFrame) {\n this._animationFrame = window.requestAnimationFrame(function () {\n _this.renderCallback();\n _this._animationFrame = null;\n });\n }\n };\n CursorBlinkStateManager.prototype._restartInterval = function (timeToStart) {\n var _this = this;\n if (timeToStart === void 0) { timeToStart = BLINK_INTERVAL; }\n if (this._blinkInterval) {\n window.clearInterval(this._blinkInterval);\n }\n this._blinkStartTimeout = setTimeout(function () {\n if (_this._animationTimeRestarted) {\n var time = BLINK_INTERVAL - (Date.now() - _this._animationTimeRestarted);\n _this._animationTimeRestarted = null;\n if (time > 0) {\n _this._restartInterval(time);\n return;\n }\n }\n _this.isCursorVisible = false;\n _this._animationFrame = window.requestAnimationFrame(function () {\n _this.renderCallback();\n _this._animationFrame = null;\n });\n _this._blinkInterval = setInterval(function () {\n if (_this._animationTimeRestarted) {\n var time = BLINK_INTERVAL - (Date.now() - _this._animationTimeRestarted);\n _this._animationTimeRestarted = null;\n _this._restartInterval(time);\n return;\n }\n _this.isCursorVisible = !_this.isCursorVisible;\n _this._animationFrame = window.requestAnimationFrame(function () {\n _this.renderCallback();\n _this._animationFrame = null;\n });\n }, BLINK_INTERVAL);\n }, timeToStart);\n };\n CursorBlinkStateManager.prototype.pause = function () {\n this.isCursorVisible = true;\n if (this._blinkInterval) {\n window.clearInterval(this._blinkInterval);\n this._blinkInterval = null;\n }\n if (this._blinkStartTimeout) {\n window.clearTimeout(this._blinkStartTimeout);\n this._blinkStartTimeout = null;\n }\n if (this._animationFrame) {\n window.cancelAnimationFrame(this._animationFrame);\n this._animationFrame = null;\n }\n };\n CursorBlinkStateManager.prototype.resume = function (terminal) {\n this._animationTimeRestarted = null;\n this._restartInterval();\n this.restartBlinkAnimation(terminal);\n };\n return CursorBlinkStateManager;\n}());\n\n\n\n},{\"../Buffer\":1,\"./BaseRenderLayer\":18}],22:[function(require,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar GridCache = (function () {\n function GridCache() {\n this.cache = [];\n }\n GridCache.prototype.resize = function (width, height) {\n for (var x = 0; x < width; x++) {\n if (this.cache.length <= x) {\n this.cache.push([]);\n }\n for (var y = this.cache[x].length; y < height; y++) {\n this.cache[x].push(null);\n }\n this.cache[x].length = height;\n }\n this.cache.length = width;\n };\n GridCache.prototype.clear = function () {\n for (var x = 0; x < this.cache.length; x++) {\n for (var y = 0; y < this.cache[x].length; y++) {\n this.cache[x][y] = null;\n }\n }\n };\n return GridCache;\n}());\nexports.GridCache = GridCache;\n\n\n\n},{}],23:[function(require,module,exports){\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BaseRenderLayer_1 = require(\"./BaseRenderLayer\");\nvar Types_1 = require(\"../Types\");\nvar LinkRenderLayer = (function (_super) {\n __extends(LinkRenderLayer, _super);\n function LinkRenderLayer(container, zIndex, colors, terminal) {\n var _this = _super.call(this, container, 'link', zIndex, true, colors) || this;\n _this._state = null;\n terminal.linkifier.on(Types_1.LinkHoverEventTypes.HOVER, function (e) { return _this._onLinkHover(e); });\n terminal.linkifier.on(Types_1.LinkHoverEventTypes.LEAVE, function (e) { return _this._onLinkLeave(e); });\n return _this;\n }\n LinkRenderLayer.prototype.resize = function (terminal, dim, charSizeChanged) {\n _super.prototype.resize.call(this, terminal, dim, charSizeChanged);\n this._state = null;\n };\n LinkRenderLayer.prototype.reset = function (terminal) {\n this._clearCurrentLink();\n };\n LinkRenderLayer.prototype._clearCurrentLink = function () {\n if (this._state) {\n this.clearCells(this._state.x, this._state.y, this._state.length, 1);\n this._state = null;\n }\n };\n LinkRenderLayer.prototype._onLinkHover = function (e) {\n this._ctx.fillStyle = this._colors.foreground;\n this.fillBottomLineAtCells(e.x, e.y, e.length);\n this._state = e;\n };\n LinkRenderLayer.prototype._onLinkLeave = function (e) {\n this._clearCurrentLink();\n };\n return LinkRenderLayer;\n}(BaseRenderLayer_1.BaseRenderLayer));\nexports.LinkRenderLayer = LinkRenderLayer;\n\n\n\n},{\"../Types\":14,\"./BaseRenderLayer\":18}],24:[function(require,module,exports){\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar TextRenderLayer_1 = require(\"./TextRenderLayer\");\nvar SelectionRenderLayer_1 = require(\"./SelectionRenderLayer\");\nvar CursorRenderLayer_1 = require(\"./CursorRenderLayer\");\nvar ColorManager_1 = require(\"./ColorManager\");\nvar LinkRenderLayer_1 = require(\"./LinkRenderLayer\");\nvar EventEmitter_1 = require(\"../EventEmitter\");\nvar Renderer = (function (_super) {\n __extends(Renderer, _super);\n function Renderer(_terminal, theme) {\n var _this = _super.call(this) || this;\n _this._terminal = _terminal;\n _this._refreshRowsQueue = [];\n _this._refreshAnimationFrame = null;\n _this.colorManager = new ColorManager_1.ColorManager();\n if (theme) {\n _this.colorManager.setTheme(theme);\n }\n _this._renderLayers = [\n new TextRenderLayer_1.TextRenderLayer(_this._terminal.element, 0, _this.colorManager.colors),\n new SelectionRenderLayer_1.SelectionRenderLayer(_this._terminal.element, 1, _this.colorManager.colors),\n new LinkRenderLayer_1.LinkRenderLayer(_this._terminal.element, 2, _this.colorManager.colors, _this._terminal),\n new CursorRenderLayer_1.CursorRenderLayer(_this._terminal.element, 3, _this.colorManager.colors)\n ];\n _this.dimensions = {\n scaledCharWidth: null,\n scaledCharHeight: null,\n scaledCellWidth: null,\n scaledCellHeight: null,\n scaledCharLeft: null,\n scaledCharTop: null,\n scaledCanvasWidth: null,\n scaledCanvasHeight: null,\n canvasWidth: null,\n canvasHeight: null,\n actualCellWidth: null,\n actualCellHeight: null\n };\n _this._devicePixelRatio = window.devicePixelRatio;\n _this._updateDimensions();\n _this.onOptionsChanged();\n return _this;\n }\n Renderer.prototype.onWindowResize = function (devicePixelRatio) {\n if (this._devicePixelRatio !== devicePixelRatio) {\n this._devicePixelRatio = devicePixelRatio;\n this.onResize(this._terminal.cols, this._terminal.rows, true);\n }\n };\n Renderer.prototype.setTheme = function (theme) {\n var _this = this;\n this.colorManager.setTheme(theme);\n this._renderLayers.forEach(function (l) {\n l.onThemeChanged(_this._terminal, _this.colorManager.colors);\n l.reset(_this._terminal);\n });\n this._terminal.refresh(0, this._terminal.rows - 1);\n return this.colorManager.colors;\n };\n Renderer.prototype.onResize = function (cols, rows, didCharSizeChange) {\n var _this = this;\n this._updateDimensions();\n this._renderLayers.forEach(function (l) { return l.resize(_this._terminal, _this.dimensions, didCharSizeChange); });\n this._terminal.refresh(0, this._terminal.rows - 1);\n this.emit('resize', {\n width: this.dimensions.canvasWidth,\n height: this.dimensions.canvasHeight\n });\n };\n Renderer.prototype.onCharSizeChanged = function () {\n this.onResize(this._terminal.cols, this._terminal.rows, true);\n };\n Renderer.prototype.onBlur = function () {\n var _this = this;\n this._renderLayers.forEach(function (l) { return l.onBlur(_this._terminal); });\n };\n Renderer.prototype.onFocus = function () {\n var _this = this;\n this._renderLayers.forEach(function (l) { return l.onFocus(_this._terminal); });\n };\n Renderer.prototype.onSelectionChanged = function (start, end) {\n var _this = this;\n this._renderLayers.forEach(function (l) { return l.onSelectionChanged(_this._terminal, start, end); });\n };\n Renderer.prototype.onCursorMove = function () {\n var _this = this;\n this._renderLayers.forEach(function (l) { return l.onCursorMove(_this._terminal); });\n };\n Renderer.prototype.onOptionsChanged = function () {\n var _this = this;\n this._renderLayers.forEach(function (l) { return l.onOptionsChanged(_this._terminal); });\n };\n Renderer.prototype.clear = function () {\n var _this = this;\n this._renderLayers.forEach(function (l) { return l.reset(_this._terminal); });\n };\n Renderer.prototype.queueRefresh = function (start, end) {\n this._refreshRowsQueue.push({ start: start, end: end });\n if (!this._refreshAnimationFrame) {\n this._refreshAnimationFrame = window.requestAnimationFrame(this._refreshLoop.bind(this));\n }\n };\n Renderer.prototype._refreshLoop = function () {\n var _this = this;\n var start;\n var end;\n if (this._refreshRowsQueue.length > 4) {\n start = 0;\n end = this._terminal.rows - 1;\n }\n else {\n start = this._refreshRowsQueue[0].start;\n end = this._refreshRowsQueue[0].end;\n for (var i = 1; i < this._refreshRowsQueue.length; i++) {\n if (this._refreshRowsQueue[i].start < start) {\n start = this._refreshRowsQueue[i].start;\n }\n if (this._refreshRowsQueue[i].end > end) {\n end = this._refreshRowsQueue[i].end;\n }\n }\n }\n this._refreshRowsQueue = [];\n this._refreshAnimationFrame = null;\n start = Math.max(start, 0);\n end = Math.min(end, this._terminal.rows - 1);\n this._renderLayers.forEach(function (l) { return l.onGridChanged(_this._terminal, start, end); });\n this._terminal.emit('refresh', { start: start, end: end });\n };\n Renderer.prototype._updateDimensions = function () {\n if (!this._terminal.charMeasure.width || !this._terminal.charMeasure.height) {\n return;\n }\n this.dimensions.scaledCharWidth = Math.floor(this._terminal.charMeasure.width * window.devicePixelRatio);\n this.dimensions.scaledCharHeight = Math.ceil(this._terminal.charMeasure.height * window.devicePixelRatio);\n this.dimensions.scaledCellHeight = Math.floor(this.dimensions.scaledCharHeight * this._terminal.options.lineHeight);\n this.dimensions.scaledCharTop = this._terminal.options.lineHeight === 1 ? 0 : Math.round((this.dimensions.scaledCellHeight - this.dimensions.scaledCharHeight) / 2);\n this.dimensions.scaledCellWidth = this.dimensions.scaledCharWidth + Math.round(this._terminal.options.letterSpacing);\n this.dimensions.scaledCharLeft = Math.floor(this._terminal.options.letterSpacing / 2);\n this.dimensions.scaledCanvasHeight = this._terminal.rows * this.dimensions.scaledCellHeight;\n this.dimensions.scaledCanvasWidth = this._terminal.cols * this.dimensions.scaledCellWidth;\n this.dimensions.canvasHeight = Math.round(this.dimensions.scaledCanvasHeight / window.devicePixelRatio);\n this.dimensions.canvasWidth = Math.round(this.dimensions.scaledCanvasWidth / window.devicePixelRatio);\n this.dimensions.actualCellHeight = this.dimensions.canvasHeight / this._terminal.rows;\n this.dimensions.actualCellWidth = this.dimensions.canvasWidth / this._terminal.cols;\n };\n return Renderer;\n}(EventEmitter_1.EventEmitter));\nexports.Renderer = Renderer;\n\n\n\n},{\"../EventEmitter\":7,\"./ColorManager\":20,\"./CursorRenderLayer\":21,\"./LinkRenderLayer\":23,\"./SelectionRenderLayer\":25,\"./TextRenderLayer\":26}],25:[function(require,module,exports){\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BaseRenderLayer_1 = require(\"./BaseRenderLayer\");\nvar SelectionRenderLayer = (function (_super) {\n __extends(SelectionRenderLayer, _super);\n function SelectionRenderLayer(container, zIndex, colors) {\n var _this = _super.call(this, container, 'selection', zIndex, true, colors) || this;\n _this._state = {\n start: null,\n end: null\n };\n return _this;\n }\n SelectionRenderLayer.prototype.resize = function (terminal, dim, charSizeChanged) {\n _super.prototype.resize.call(this, terminal, dim, charSizeChanged);\n this._state = {\n start: null,\n end: null\n };\n };\n SelectionRenderLayer.prototype.reset = function (terminal) {\n if (this._state.start && this._state.end) {\n this._state = {\n start: null,\n end: null\n };\n this.clearAll();\n }\n };\n SelectionRenderLayer.prototype.onSelectionChanged = function (terminal, start, end) {\n if (this._state.start === start || this._state.end === end) {\n return;\n }\n this.clearAll();\n if (!start || !end) {\n return;\n }\n var viewportStartRow = start[1] - terminal.buffer.ydisp;\n var viewportEndRow = end[1] - terminal.buffer.ydisp;\n var viewportCappedStartRow = Math.max(viewportStartRow, 0);\n var viewportCappedEndRow = Math.min(viewportEndRow, terminal.rows - 1);\n if (viewportCappedStartRow >= terminal.rows || viewportCappedEndRow < 0) {\n return;\n }\n var startCol = viewportStartRow === viewportCappedStartRow ? start[0] : 0;\n var startRowEndCol = viewportCappedStartRow === viewportCappedEndRow ? end[0] : terminal.cols;\n this._ctx.fillStyle = this._colors.selection;\n this.fillCells(startCol, viewportCappedStartRow, startRowEndCol - startCol, 1);\n var middleRowsCount = Math.max(viewportCappedEndRow - viewportCappedStartRow - 1, 0);\n this.fillCells(0, viewportCappedStartRow + 1, terminal.cols, middleRowsCount);\n if (viewportCappedStartRow !== viewportCappedEndRow) {\n var endCol = viewportEndRow === viewportCappedEndRow ? end[0] : terminal.cols;\n this.fillCells(0, viewportCappedEndRow, endCol, 1);\n }\n this._state.start = [start[0], start[1]];\n this._state.end = [end[0], end[1]];\n };\n return SelectionRenderLayer;\n}(BaseRenderLayer_1.BaseRenderLayer));\nexports.SelectionRenderLayer = SelectionRenderLayer;\n\n\n\n},{\"./BaseRenderLayer\":18}],26:[function(require,module,exports){\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Buffer_1 = require(\"../Buffer\");\nvar Types_1 = require(\"./Types\");\nvar GridCache_1 = require(\"./GridCache\");\nvar BaseRenderLayer_1 = require(\"./BaseRenderLayer\");\nvar OVERLAP_OWNED_CHAR_DATA = [null, '', 0, -1];\nvar TextRenderLayer = (function (_super) {\n __extends(TextRenderLayer, _super);\n function TextRenderLayer(container, zIndex, colors) {\n var _this = _super.call(this, container, 'text', zIndex, false, colors) || this;\n _this._characterOverlapCache = {};\n _this._state = new GridCache_1.GridCache();\n return _this;\n }\n TextRenderLayer.prototype.resize = function (terminal, dim, charSizeChanged) {\n _super.prototype.resize.call(this, terminal, dim, charSizeChanged);\n var terminalFont = terminal.options.fontSize * window.devicePixelRatio + \"px \" + terminal.options.fontFamily;\n if (this._characterWidth !== dim.scaledCharWidth || this._characterFont !== terminalFont) {\n this._characterWidth = dim.scaledCharWidth;\n this._characterFont = terminalFont;\n this._characterOverlapCache = {};\n }\n this._state.clear();\n this._state.resize(terminal.cols, terminal.rows);\n };\n TextRenderLayer.prototype.reset = function (terminal) {\n this._state.clear();\n this.clearAll();\n };\n TextRenderLayer.prototype.onGridChanged = function (terminal, startRow, endRow) {\n if (this._state.cache.length === 0) {\n return;\n }\n for (var y = startRow; y <= endRow; y++) {\n var row = y + terminal.buffer.ydisp;\n var line = terminal.buffer.lines.get(row);\n this.clearCells(0, y, terminal.cols, 1);\n for (var x = 0; x < terminal.cols; x++) {\n var charData = line[x];\n var code = charData[Buffer_1.CHAR_DATA_CODE_INDEX];\n var char = charData[Buffer_1.CHAR_DATA_CHAR_INDEX];\n var attr = charData[Buffer_1.CHAR_DATA_ATTR_INDEX];\n var width = charData[Buffer_1.CHAR_DATA_WIDTH_INDEX];\n if (width === 0) {\n continue;\n }\n if (code === 32) {\n if (x > 0) {\n var previousChar = line[x - 1];\n if (this._isOverlapping(previousChar)) {\n continue;\n }\n }\n }\n var flags = attr >> 18;\n var bg = attr & 0x1ff;\n var isDefaultBackground = bg >= 256;\n var isInvisible = flags & Types_1.FLAGS.INVISIBLE;\n var isInverted = flags & Types_1.FLAGS.INVERSE;\n if (!code || (code === 32 && isDefaultBackground && !isInverted) || isInvisible) {\n continue;\n }\n if (width !== 0 && this._isOverlapping(charData)) {\n if (x < line.length - 1 && line[x + 1][Buffer_1.CHAR_DATA_CODE_INDEX] === 32) {\n width = 2;\n }\n }\n var fg = (attr >> 9) & 0x1ff;\n if (isInverted) {\n var temp = bg;\n bg = fg;\n fg = temp;\n if (fg === 256) {\n fg = BaseRenderLayer_1.INVERTED_DEFAULT_COLOR;\n }\n if (bg === 257) {\n bg = BaseRenderLayer_1.INVERTED_DEFAULT_COLOR;\n }\n }\n if (width === 2) {\n }\n if (bg < 256) {\n this._ctx.save();\n this._ctx.fillStyle = (bg === BaseRenderLayer_1.INVERTED_DEFAULT_COLOR ? this._colors.foreground : this._colors.ansi[bg]);\n this.fillCells(x, y, width, 1);\n this._ctx.restore();\n }\n this._ctx.save();\n if (flags & Types_1.FLAGS.BOLD) {\n this._ctx.font = \"bold \" + this._ctx.font;\n if (fg < 8) {\n fg += 8;\n }\n }\n if (flags & Types_1.FLAGS.UNDERLINE) {\n if (fg === BaseRenderLayer_1.INVERTED_DEFAULT_COLOR) {\n this._ctx.fillStyle = this._colors.background;\n }\n else if (fg < 256) {\n this._ctx.fillStyle = this._colors.ansi[fg];\n }\n else {\n this._ctx.fillStyle = this._colors.foreground;\n }\n this.fillBottomLineAtCells(x, y);\n }\n this.drawChar(terminal, char, code, width, x, y, fg, bg, !!(flags & Types_1.FLAGS.BOLD), !!(flags & Types_1.FLAGS.DIM));\n this._ctx.restore();\n }\n }\n };\n TextRenderLayer.prototype._isOverlapping = function (charData) {\n if (charData[Buffer_1.CHAR_DATA_WIDTH_INDEX] !== 1) {\n return false;\n }\n var code = charData[Buffer_1.CHAR_DATA_CODE_INDEX];\n if (code < 256) {\n return false;\n }\n var char = charData[Buffer_1.CHAR_DATA_CHAR_INDEX];\n if (this._characterOverlapCache.hasOwnProperty(char)) {\n return this._characterOverlapCache[char];\n }\n this._ctx.save();\n this._ctx.font = this._characterFont;\n var overlaps = Math.floor(this._ctx.measureText(char).width) > this._characterWidth;\n this._ctx.restore();\n this._characterOverlapCache[char] = overlaps;\n return overlaps;\n };\n TextRenderLayer.prototype._clearChar = function (x, y) {\n var colsToClear = 1;\n var state = this._state.cache[x][y];\n if (state && state[Buffer_1.CHAR_DATA_WIDTH_INDEX] === 2) {\n colsToClear = 2;\n }\n this.clearCells(x, y, colsToClear, 1);\n };\n return TextRenderLayer;\n}(BaseRenderLayer_1.BaseRenderLayer));\nexports.TextRenderLayer = TextRenderLayer;\n\n\n\n},{\"../Buffer\":1,\"./BaseRenderLayer\":18,\"./GridCache\":22,\"./Types\":27}],27:[function(require,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar FLAGS;\n(function (FLAGS) {\n FLAGS[FLAGS[\"BOLD\"] = 1] = \"BOLD\";\n FLAGS[FLAGS[\"UNDERLINE\"] = 2] = \"UNDERLINE\";\n FLAGS[FLAGS[\"BLINK\"] = 4] = \"BLINK\";\n FLAGS[FLAGS[\"INVERSE\"] = 8] = \"INVERSE\";\n FLAGS[FLAGS[\"INVISIBLE\"] = 16] = \"INVISIBLE\";\n FLAGS[FLAGS[\"DIM\"] = 32] = \"DIM\";\n})(FLAGS = exports.FLAGS || (exports.FLAGS = {}));\n;\n\n\n\n},{}],28:[function(require,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Generic_1 = require(\"./Generic\");\nvar isNode = (typeof navigator === 'undefined') ? true : false;\nvar userAgent = (isNode) ? 'node' : navigator.userAgent;\nvar platform = (isNode) ? 'node' : navigator.platform;\nexports.isFirefox = !!~userAgent.indexOf('Firefox');\nexports.isMSIE = !!~userAgent.indexOf('MSIE') || !!~userAgent.indexOf('Trident');\nexports.isMac = Generic_1.contains(['Macintosh', 'MacIntel', 'MacPPC', 'Mac68K'], platform);\nexports.isIpad = platform === 'iPad';\nexports.isIphone = platform === 'iPhone';\nexports.isMSWindows = Generic_1.contains(['Windows', 'Win16', 'Win32', 'WinCE'], platform);\nexports.isLinux = platform.indexOf('Linux') >= 0;\n\n\n\n},{\"./Generic\":31}],29:[function(require,module,exports){\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar EventEmitter_1 = require(\"../EventEmitter\");\nvar CharMeasure = (function (_super) {\n __extends(CharMeasure, _super);\n function CharMeasure(document, parentElement) {\n var _this = _super.call(this) || this;\n _this._document = document;\n _this._parentElement = parentElement;\n _this._measureElement = _this._document.createElement('span');\n _this._measureElement.style.position = 'absolute';\n _this._measureElement.style.top = '0';\n _this._measureElement.style.left = '-9999em';\n _this._measureElement.style.lineHeight = 'normal';\n _this._measureElement.textContent = 'W';\n _this._measureElement.setAttribute('aria-hidden', 'true');\n _this._parentElement.appendChild(_this._measureElement);\n return _this;\n }\n Object.defineProperty(CharMeasure.prototype, \"width\", {\n get: function () {\n return this._width;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CharMeasure.prototype, \"height\", {\n get: function () {\n return this._height;\n },\n enumerable: true,\n configurable: true\n });\n CharMeasure.prototype.measure = function (options) {\n this._measureElement.style.fontFamily = options.fontFamily;\n this._measureElement.style.fontSize = options.fontSize + \"px\";\n var geometry = this._measureElement.getBoundingClientRect();\n if (geometry.width === 0 || geometry.height === 0) {\n return;\n }\n if (this._width !== geometry.width || this._height !== geometry.height) {\n this._width = geometry.width;\n this._height = Math.ceil(geometry.height);\n this.emit('charsizechanged');\n }\n };\n return CharMeasure;\n}(EventEmitter_1.EventEmitter));\nexports.CharMeasure = CharMeasure;\n\n\n\n},{\"../EventEmitter\":7}],30:[function(require,module,exports){\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar EventEmitter_1 = require(\"../EventEmitter\");\nvar CircularList = (function (_super) {\n __extends(CircularList, _super);\n function CircularList(_maxLength) {\n var _this = _super.call(this) || this;\n _this._maxLength = _maxLength;\n _this._array = new Array(_this._maxLength);\n _this._startIndex = 0;\n _this._length = 0;\n return _this;\n }\n Object.defineProperty(CircularList.prototype, \"maxLength\", {\n get: function () {\n return this._maxLength;\n },\n set: function (newMaxLength) {\n if (this._maxLength === newMaxLength) {\n return;\n }\n var newArray = new Array(newMaxLength);\n for (var i = 0; i < Math.min(newMaxLength, this.length); i++) {\n newArray[i] = this._array[this._getCyclicIndex(i)];\n }\n this._array = newArray;\n this._maxLength = newMaxLength;\n this._startIndex = 0;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CircularList.prototype, \"length\", {\n get: function () {\n return this._length;\n },\n set: function (newLength) {\n if (newLength > this._length) {\n for (var i = this._length; i < newLength; i++) {\n this._array[i] = undefined;\n }\n }\n this._length = newLength;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CircularList.prototype, \"forEach\", {\n get: function () {\n var _this = this;\n return function (callbackfn) {\n var i = 0;\n var length = _this.length;\n for (var i_1 = 0; i_1 < length; i_1++) {\n callbackfn(_this.get(i_1), i_1);\n }\n };\n },\n enumerable: true,\n configurable: true\n });\n CircularList.prototype.get = function (index) {\n return this._array[this._getCyclicIndex(index)];\n };\n CircularList.prototype.set = function (index, value) {\n this._array[this._getCyclicIndex(index)] = value;\n };\n CircularList.prototype.push = function (value) {\n this._array[this._getCyclicIndex(this._length)] = value;\n if (this._length === this._maxLength) {\n this._startIndex++;\n if (this._startIndex === this._maxLength) {\n this._startIndex = 0;\n }\n this.emit('trim', 1);\n }\n else {\n this._length++;\n }\n };\n CircularList.prototype.pop = function () {\n return this._array[this._getCyclicIndex(this._length-- - 1)];\n };\n CircularList.prototype.splice = function (start, deleteCount) {\n var items = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n items[_i - 2] = arguments[_i];\n }\n if (deleteCount) {\n for (var i = start; i < this._length - deleteCount; i++) {\n this._array[this._getCyclicIndex(i)] = this._array[this._getCyclicIndex(i + deleteCount)];\n }\n this._length -= deleteCount;\n }\n if (items && items.length) {\n for (var i = this._length - 1; i >= start; i--) {\n this._array[this._getCyclicIndex(i + items.length)] = this._array[this._getCyclicIndex(i)];\n }\n for (var i = 0; i < items.length; i++) {\n this._array[this._getCyclicIndex(start + i)] = items[i];\n }\n if (this._length + items.length > this.maxLength) {\n var countToTrim = (this._length + items.length) - this.maxLength;\n this._startIndex += countToTrim;\n this._length = this.maxLength;\n this.emit('trim', countToTrim);\n }\n else {\n this._length += items.length;\n }\n }\n };\n CircularList.prototype.trimStart = function (count) {\n if (count > this._length) {\n count = this._length;\n }\n this._startIndex += count;\n this._length -= count;\n this.emit('trim', count);\n };\n CircularList.prototype.shiftElements = function (start, count, offset) {\n if (count <= 0) {\n return;\n }\n if (start < 0 || start >= this._length) {\n throw new Error('start argument out of range');\n }\n if (start + offset < 0) {\n throw new Error('Cannot shift elements in list beyond index 0');\n }\n if (offset > 0) {\n for (var i = count - 1; i >= 0; i--) {\n this.set(start + i + offset, this.get(start + i));\n }\n var expandListBy = (start + count + offset) - this._length;\n if (expandListBy > 0) {\n this._length += expandListBy;\n while (this._length > this.maxLength) {\n this._length--;\n this._startIndex++;\n this.emit('trim', 1);\n }\n }\n }\n else {\n for (var i = 0; i < count; i++) {\n this.set(start + i + offset, this.get(start + i));\n }\n }\n };\n CircularList.prototype._getCyclicIndex = function (index) {\n return (this._startIndex + index) % this.maxLength;\n };\n return CircularList;\n}(EventEmitter_1.EventEmitter));\nexports.CircularList = CircularList;\n\n\n\n},{\"../EventEmitter\":7}],31:[function(require,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction contains(arr, el) {\n return arr.indexOf(el) >= 0;\n}\nexports.contains = contains;\n;\n\n\n\n},{}],32:[function(require,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar MouseHelper = (function () {\n function MouseHelper(_renderer) {\n this._renderer = _renderer;\n }\n MouseHelper.getCoordsRelativeToElement = function (event, element) {\n if (event.pageX == null) {\n return null;\n }\n var originalElement = element;\n var x = event.pageX;\n var y = event.pageY;\n while (element) {\n x -= element.offsetLeft;\n y -= element.offsetTop;\n element = 'offsetParent' in element ? element.offsetParent : element.parentElement;\n }\n element = originalElement;\n while (element && element !== element.ownerDocument.body) {\n x += element.scrollLeft;\n y += element.scrollTop;\n element = element.parentElement;\n }\n return [x, y];\n };\n MouseHelper.prototype.getCoords = function (event, element, charMeasure, lineHeight, colCount, rowCount, isSelection) {\n if (!charMeasure.width || !charMeasure.height) {\n return null;\n }\n var coords = MouseHelper.getCoordsRelativeToElement(event, element);\n if (!coords) {\n return null;\n }\n coords[0] = Math.ceil((coords[0] + (isSelection ? this._renderer.dimensions.actualCellWidth / 2 : 0)) / this._renderer.dimensions.actualCellWidth);\n coords[1] = Math.ceil(coords[1] / this._renderer.dimensions.actualCellHeight);\n coords[0] = Math.min(Math.max(coords[0], 1), colCount + (isSelection ? 1 : 0));\n coords[1] = Math.min(Math.max(coords[1], 1), rowCount);\n return coords;\n };\n MouseHelper.prototype.getRawByteCoords = function (event, element, charMeasure, lineHeight, colCount, rowCount) {\n var coords = this.getCoords(event, element, charMeasure, lineHeight, colCount, rowCount);\n var x = coords[0];\n var y = coords[1];\n x += 32;\n y += 32;\n return { x: x, y: y };\n };\n return MouseHelper;\n}());\nexports.MouseHelper = MouseHelper;\n\n\n\n},{}],33:[function(require,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BellSound = 'data:audio/wav;base64,UklGRigBAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQQBAADpAFgCwAMlBZoG/wdmCcoKRAypDQ8PbRDBEQQTOxRtFYcWlBePGIUZXhoiG88bcBz7HHIdzh0WHlMeZx51HmkeUx4WHs8dah0AHXwc3hs9G4saxRnyGBIYGBcQFv8U4RPAEoYRQBACD70NWwwHC6gJOwjWBloF7gOBAhABkf8b/qv8R/ve+Xf4Ife79W/0JfPZ8Z/wde9N7ijtE+wU6xvqM+lb6H7nw+YX5mrlxuQz5Mzje+Ma49fioeKD4nXiYeJy4pHitOL04j/jn+MN5IPkFOWs5U3mDefM55/ogOl36m7rdOyE7abuyu8D8Unyj/Pg9D/2qfcb+Yn6/vuK/Qj/lAAlAg==';\n\n\n\n},{}],34:[function(require,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Terminal_1 = require(\"./Terminal\");\nmodule.exports = Terminal_1.Terminal;\n\n\n\n},{\"./Terminal\":13}]},{},[34])(34)\n});\n//# sourceMappingURL=xterm.js.map\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/xterm/dist/xterm.js\n// module id = 9\n// module chunks = 0","(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.fit = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction proposeGeometry(term) {\n if (!term.element.parentElement) {\n return null;\n }\n var parentElementStyle = window.getComputedStyle(term.element.parentElement);\n var parentElementHeight = parseInt(parentElementStyle.getPropertyValue('height'));\n var parentElementWidth = Math.max(0, parseInt(parentElementStyle.getPropertyValue('width')) - 17);\n var elementStyle = window.getComputedStyle(term.element);\n var elementPaddingVer = parseInt(elementStyle.getPropertyValue('padding-top')) + parseInt(elementStyle.getPropertyValue('padding-bottom'));\n var elementPaddingHor = parseInt(elementStyle.getPropertyValue('padding-right')) + parseInt(elementStyle.getPropertyValue('padding-left'));\n var availableHeight = parentElementHeight - elementPaddingVer;\n var availableWidth = parentElementWidth - elementPaddingHor;\n var geometry = {\n cols: Math.floor(availableWidth / term.renderer.dimensions.actualCellWidth),\n rows: Math.floor(availableHeight / term.renderer.dimensions.actualCellHeight)\n };\n return geometry;\n}\nexports.proposeGeometry = proposeGeometry;\n;\nfunction fit(term) {\n var geometry = proposeGeometry(term);\n if (geometry) {\n if (term.rows !== geometry.rows || term.cols !== geometry.cols) {\n term.renderer.clear();\n term.resize(geometry.cols, geometry.rows);\n }\n }\n}\nexports.fit = fit;\n;\nfunction apply(terminalConstructor) {\n terminalConstructor.prototype.proposeGeometry = function () {\n return proposeGeometry(this);\n };\n terminalConstructor.prototype.fit = function () {\n return fit(this);\n };\n}\nexports.apply = apply;\n\n\n\n},{}]},{},[1])(1)\n});\n//# sourceMappingURL=fit.js.map\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/xterm/dist/addons/fit/fit.js\n// module id = 10\n// module chunks = 0"],"sourceRoot":""}